adapt master to develop master 5.42.0
authorKatja Luther <k.luther@bgbm.org>
Fri, 2 Feb 2024 07:30:23 +0000 (08:30 +0100)
committerKatja Luther <k.luther@bgbm.org>
Fri, 2 Feb 2024 07:30:23 +0000 (08:30 +0100)
1769 files changed:
.gitattributes
.gitignore
README.md
eu.etaxonomy.taxeditor.application/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin.properties
eu.etaxonomy.taxeditor.application/OSGI-INF/l10n/plugin_de.properties
eu.etaxonomy.taxeditor.application/fragment.e4xmi
eu.etaxonomy.taxeditor.application/plugin.xml
eu.etaxonomy.taxeditor.application/pom.xml
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/ApplicationWorkbenchAdvisor.java
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/ApplicationWorkbenchWindowAdvisor.java
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/LifeCycleManager.java
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/TaxonomicEditorPlugin.java
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/ChecklistPerspective.java
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/Default.java
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/DerivatePerspective.java
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/PolytomousKey.java
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/Taxonomic.java
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/Uses.java
eu.etaxonomy.taxeditor.bulkeditor/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.bulkeditor/OSGI-INF/l10n/bundle.properties
eu.etaxonomy.taxeditor.bulkeditor/OSGI-INF/l10n/bundle_de.properties
eu.etaxonomy.taxeditor.bulkeditor/fragment.e4xmi
eu.etaxonomy.taxeditor.bulkeditor/pom.xml
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/EntityListener.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityContainer.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityCreator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityPersistenceService.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/e4/handler/NewObjectHandler.java [moved from eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/e4/handler/NewObjectHandlerE4.java with 79% similarity]
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorLables.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorQuery.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditorUtil.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorConstants.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/IBulkEditorSortProvider.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/BulkEditorPropertyTester.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditor.java [moved from eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorE4.java with 60% similarity]
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorComposite.java [moved from eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorE4Composite.java with 88% similarity]
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorConfigLabelAccumulator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorLabelStyleConfiguration.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorPropertyAccessor.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorSearch.java [moved from eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorSearchE4.java with 97% similarity]
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/e4/command/DynamicMarkerTypeEditingMenuE4.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/command/DynamicNewObjectMenuE4.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/ConvertPerson2TeamHandlerE4.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/ConvertTeam2PersonHandlerE4.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/CopyHandler.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/DeleteHandlerE4.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/MergeGroupHandlerE4.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/RemoveMergeCandidateHandlerE4.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/SetMarkerFlagHandlerE4.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/SetMergeCandidateHandlerE4.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/SetMergeTargetHandlerE4.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/defaultHandler/OpenBulkEditorForIdentifiableEntityE4.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/defaultHandler/OpenBulkEditorForTaxonNodeHandler.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AgentEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/BulkEditorInputType.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/GroupEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameRelationshipEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/OccurrenceEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/ReferenceEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/TaxonBulkEditorInput.java [moved from eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/TaxonEditorInput.java with 86% similarity]
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/UserEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/AgentCreator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/GroupCreator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/NameCreator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/OccurrenceCreator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/ReferenceCreator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/UserCreator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/AbstractDateComparator.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/AbstractSortProvider.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/CdmBaseSortProvider.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/IdentifiableEntitySortProvider.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/ReferenceSortProvider.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/operation/SetMarkerFlagOperation.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/preference/BulkEditorGeneralPreferencePage.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/preference/BulkEditorMarkerPreferencePage.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsContentProvider.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsLabelProvider.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/e4/ReferencingObjectsViewE4.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/l10n/Messages.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/l10n/messages.properties
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/l10n/messages_de.properties
eu.etaxonomy.taxeditor.cdmlib/.gitignore
eu.etaxonomy.taxeditor.cdmlib/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.cdmlib/README.txt
eu.etaxonomy.taxeditor.cdmlib/build.properties
eu.etaxonomy.taxeditor.cdmlib/dev-linked-projects/README.md [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/lib/FastInfoset-1.2.13.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/Saxon-HE-9.7.0-2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/activation-1.1.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/antlr-2.7.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/aopalliance-1.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/apache-log4j-extras-1.2.17.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/aspectjrt-1.8.8.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/aspectjweaver-1.8.8.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/avro-1.6.3.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/batik-anim-1.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/batik-awt-util-1.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/batik-bridge-1.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/batik-css-1.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/batik-dom-1.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/batik-ext-1.8.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/batik-extension-1.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/batik-gvt-1.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/batik-js-1.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/batik-parser-1.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/batik-script-1.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/batik-svg-dom-1.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/batik-svggen-1.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/batik-transcoder-1.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/batik-util-1.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/batik-xml-1.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cglib-3.2.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/cglib-nodep-3.2.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/classmate-1.3.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/codemodel-2.2.11.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/com.springsource.org.aopalliance-1.0.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/com.springsource.org.apache.commons.logging-1.1.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/commons-codec-1.10.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/commons-collections-3.2.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/commons-csv-1.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/commons-dbcp-1.4.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/commons-io-2.4.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/commons-lang-2.6.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/commons-lang3-3.3.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/commons-logging-1.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/commons-math3-3.6.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/commons-pool-1.5.4.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/concurrent-1.3.4.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/dbunit-2.4.9.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/docx4j-6.0.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/dom4j-1.6.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/dozer-5.3.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/dtd-parser-1.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/easymock-2.3.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/easymockclassextension-2.3.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/ehcache-core-2.6.11.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/ezmorph-1.0.6.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/fop-1.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/google-api-translate-java-0.92.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/guava-19.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/h2mig_pagestore_addon.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hamcrest-core-1.3.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-c3p0-5.0.7.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-cglib-repack-2.1_3.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-commons-annotations-5.0.1.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-core-5.0.7.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-ehcache-5.0.7.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-entitymanager-5.0.7.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-envers-5.0.7.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-4.2.0.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-analyzers-4.2.0.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-engine-5.11.10.Final.jar [new file with mode: 0755]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-engine-5.5.2.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-orm-5.11.10.Final.jar [new file with mode: 0755]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-orm-5.5.2.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-validator-5.2.2.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-validator-cdi-5.2.2.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/hsqldb-2.3.3.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/icu4j-2.6.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/istack-commons-runtime-2.21.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/istack-commons-tools-2.21.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/itextpdf-5.5.8.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jackson-annotations-2.6.5.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jackson-core-2.6.5.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jackson-core-asl-1.8.8.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jackson-databind-2.6.5.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jackson-mapper-asl-1.8.8.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jakarta-regexp-1.4.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jandex-2.0.0.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/javassist-3.20.0-GA.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/javax.el-2.2.6.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/javax.el-api-2.2.5.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/javax.servlet-api-3.1.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-api-2.2.12.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-core-2.2.11.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-jxc-2.2.11.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-runtime-2.2.11.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-xjc-2.2.11.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jaxb1-impl-2.2-EA.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jaxen-1.1.4.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jaxen-1.1.6.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jboss-logging-3.3.0.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jcl-over-slf4j-1.7.6.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jdom-1.1.3.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jdom2-2.0.6.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jena-arq-2.13.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jena-core-2.13.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jena-iri-1.1.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jena-tdb-1.1.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/joda-time-2.9.1.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/jsonld-java-0.5.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jsr250-api-1.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jta-1.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/jtds-1.3.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/junit-4.12.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/junit-benchmarks-0.7.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/libthrift-0.9.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/log4j-1.2.17.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/lsid-client-1.1.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/lsid-server-1.1.2.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/mapstruct-1.0.0.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/mysql-connector-java-8.0.15.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/objenesis-1.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/odfdom-0.8.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/odfdom-java-0.8.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/ognl-2.6.9.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/opencsv-2.3.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/paranamer-2.3.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/poi-3.13.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/poi-ooxml-3.13.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/poi-ooxml-schemas-3.13.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/postgresql-9.4-1206-jdbc4.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/redmine-java-api-3.1.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/relaxngDatatype-20020414.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/rngom-2.2.11.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/sanselan-0.97-incubator.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/servlet-api-2.5.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/slf4j-api-1.7.13.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/slf4j-log4j12-1.7.13.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/slf4j-nop-1.7.13.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/snappy-java-1.0.4.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/solr-analysis-extras-3.6.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/solr-core-3.6.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/solr-solrj-3.6.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-aop-4.2.4.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-aspects-4.2.4.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-beans-4.2.4.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-context-4.2.4.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-context-support-4.2.4.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-core-4.2.4.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-expression-4.2.4.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-jdbc-4.2.4.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-modules-cache-0.7.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-orm-4.2.4.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-oxm-4.2.4.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-plugin-core-1.2.0.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-plugin-metadata-1.2.0.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-config-4.0.3.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-core-4.0.3.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-oauth2-2.0.11.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-web-4.0.3.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-test-4.2.4.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-tx-4.2.4.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-web-4.2.4.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/spring-webmvc-4.2.4.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/springfox-core-2.3.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/springfox-schema-2.3.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/springfox-spi-2.3.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/springfox-spring-web-2.3.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/springfox-swagger-common-2.3.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/springfox-swagger2-2.3.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/standard-1.1.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/txw2-2.2.11.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/usertype.jodatime-2.0.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/usertype.spi-2.0.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/validation-api-1.1.0.Final.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/wsdl4j-1.6.3.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/x-1.1.2.tld [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/xalan-2.7.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/xercesImpl-2.11.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/xml-apis-1.0.b2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/xml-apis-ext-1.3.04.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/xml-resolver-1.2.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/xmlbeans-2.6.0.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/xmlgraphics-commons-1.5.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/xmlpull-1.1.3.1.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/xmlunit-1.6.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/xom-1.2.5.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/xpp3-1.1.4c.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/xpp3_min-1.1.4c.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/xsom-20140925.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/xstream-1.4.8.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/lib/yjp-controller-api-redist-9.0.8.jar [deleted file]
eu.etaxonomy.taxeditor.cdmlib/pom.xml
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationException.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteController.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationState.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/ICdmChangeListener.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/ICdmDataChangeService.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCachingProxy.java [moved from eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCacher.java with 74% similarity]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/lazyloading/CdmLazyLoader.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/CdmEagerLoadingException.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/CdmRemotingException.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/RemoteExecutionTimestampsUtil.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/cache/ConversationalTransientEntityCacher.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/server/CdmServerUtils.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmPersistentRemoteSource.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmRemoteSourceException.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmServerInfo.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmServerInfoConfig.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CachedCommonServiceImpl.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CdmServiceInterceptorException.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/IRemoteInvocationTermCacher.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/RemoteInvocationTermCacher.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/TimestampingHttpInvokerRequestExecutor.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmClientSessionException.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySession.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionManager.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/DefaultNewEntityListener.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ICdmEntitySession.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ICdmEntitySessionEnabled.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ICdmEntitySessionManager.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ICdmEntitySessionManagerObserver.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/NullSession.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/mock/MockCdmEntitySession.java [deleted file]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/mock/MockCdmEntitySessionManager.java [deleted file]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/net/sf/ehcache/util/PreferredLoaderObjectInputStream.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/proxy/AbstractLazyInitializer.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/springframework/remoting/httpinvoker/CachingHttpInvokerProxyFactoryBean.java
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/localApplicationContext.xml [deleted file]
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/remotingApplicationContext.xml
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j.xml [deleted file]
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j2.xml [new file with mode: 0755]
eu.etaxonomy.taxeditor.editor.src/main/java/eu/etaxonomy/taxeditor/editor/name/container/RulerWithIcon.java
eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin.properties
eu.etaxonomy.taxeditor.editor/OSGI-INF/l10n/plugin_de.properties
eu.etaxonomy.taxeditor.editor/fragment.e4xmi
eu.etaxonomy.taxeditor.editor/plugin.xml
eu.etaxonomy.taxeditor.editor/pom.xml
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/AppModelId.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/CdmDataTransfer.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/ChooseFromMultipleTaxonNodesDialog.java
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/AreasSelectionDialog.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/DescriptiveDataSetComposite.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/DescriptiveDataSetEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/DescriptiveDataSetNavigator.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/character/CharacterDragListener.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/character/CharacterDropAdapter.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/character/handler/AddFeatureToCharacterTreeHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/character/operation/CreateNewCharacterOperation.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/handler/CreateDescriptiveDataSetHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/handler/DeleteDescriptiveDataSetHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/handler/OpenCharacterMatrixHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/handler/OpenDescriptiveDataSetEditorHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CategoricalDataHistogram.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CdmContentProposalAdapter.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CellEditorDataConversionConfiguration.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CellSelectionListener.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/CharacterMatrixBottomToolbar.java [deleted file]
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/CharacterMatrixListDataProvider.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixPart.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixToolbar.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/ColumnGroupWrapper.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/DataComboElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/DataDialogComposite.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/DescriptionTreeFormat.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/MatrixRowComparator.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/SpecimenColumnPropertyAccessor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/SpecimenSelectionDialog.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/categorical/CategoricalComboBoxDataProvider.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/CategoricalDataDialog.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/categorical/CategoricalDataDialogComposite.java [new file with mode: 0644]
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/DeleteDescriptionHandler.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/QuantitativeDataDialog.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/descriptiveDataSet/matrix/quantitative/QuantitativeDataEditModeDisplayConverter.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/supplementalInfo/SupplementalInfoDisplayConverter.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/e4/TaxonEditorInput.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/e4/TaxonEditorInputE4.java with 69% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/e4/TaxonEditorInputDataChangeBehaviourE4.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/group/authority/CdmAuthorityEditorInput.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/group/authority/e4/CdmAuthorityEditorE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/group/authority/e4/handler/EditCdmAuthoritiesHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/create/NewNameHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/create/NewReferenceHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/defaultHandler/DefaultOpenSpecimenEditorForTypeSpecimenHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/defaultHandler/DefaultOpenTaxonEditorForTaxonBaseHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/defaultHandler/DefaultOpenTaxonEditorForTaxonNodeHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/internal/TaxeditorEditorPlugin.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/AbstractIdentificationEditorInput.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/AbstractGraphKeyEditor.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/AbstractGraphKeyEditorE4.java with 91% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/KeyEditorDataChangeBehaviourE4.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/handler/ApplyLayoutHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/IPolytomousKeyEditorPage.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditorInput.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyGraphContentProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyLabelProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListContentProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListLabelProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/PolytomousKeyGraphEditorE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/PolytomousKeyListEditorE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/CreateChildNodeHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/CreateSiblingNodeHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/DeleteNodeHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/InsertNewNodeHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/OpenPolytomousGraphEditorHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/e4/handler/RefreshNodeNumberingHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/CreateNodeOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/CreatePolytomousKeyNodeOperation.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/RemotingCreatePolytomousKeyNodeOperation.java with 65% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/DeleteNodeOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/InsertPolytomousKeyNodeOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/RefreshNodeNumberingOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/l10n/Messages.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/l10n/messages.properties
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/l10n/messages_de.properties
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/EditorAnnotation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/IContainerConstants.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/LineBreakListener.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/LineWrapSupport.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/RulerWithIcon.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/IDropTargetable.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/IDropTargetableE4.java with 79% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/TaxonEditor.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/TaxonNameEditorE4.java with 77% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AbstractGroup.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AbstractGroupE4.java with 77% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AbstractGroupedContainer.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AbstractGroupedContainerE4.java with 94% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AbstractHomotypicalGroupContainer.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AbstractHomotypicalGroupContainerE4.java with 83% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AcceptedGroup.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AcceptedGroupE4.java with 86% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AcceptedNameContainerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/ConceptContainer.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/ConceptContainerE4.java with 78% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/ContainerFactory.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/ContainerFactoryE4.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/HomotypicalSynonymGroup.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/HomotypicalSynonymGroupE4.java with 85% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/MisappliedGroup.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/MisappliedGroupE4.java with 62% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/NameViewer.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/NameViewerE4.java with 98% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/SynonymContainerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDragListenerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDropTargetEffect.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDropTargetListener.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDropTargetListenerE4.java with 50% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/ChangeSynonymToAcceptedTaxonHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/ChangeSynonymToAcceptedTaxonHandlerE4.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/ChangeToInvalidDesignationHandlerE4.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/ChangeToMisapplicationHandler.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/ChangeToMisapplicationHandlerE4.java with 93% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/ChangeToProParteSynonymHandler.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/ChangeToProParteSynonymHandlerE5.java with 93% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/ChangeToSynonymHandler.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/ChangeToSynonymHandlerE4.java with 92% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/CreateHeterotypicSynonymHandler.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/CreateHeterotypicSynonymHandlerE4.java with 91% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/CreateHomotypicSynonymHandler.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/CreateHomotypicSynonymHandlerE4.java with 92% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/CreateInvalidDesignationHandlerE4.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/CreateMisapplicationHandler.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/CreateMisapplicationHandlerE4.java with 92% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/CreateProParteSynonymHandler.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/CreateProParteSynonymHandlerE4.java with 92% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/CreateSynonymInHomotypicalGroupHandler.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/CreateSynonymInHomotypicalGroupHandlerE4.java with 92% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/DeleteAllEmptyNamesHandler.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/DeleteAllEmptyNamesHandlerE4.java with 83% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/DeleteTaxonBaseHandler.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/DeleteTaxonBaseHandlerE4.java with 96% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/MoveSynonymToAnotherAcceptedTaxonHandler.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/MoveSynonymToAnotherAcceptedTaxonHandlerE4.java with 55% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/SetBasionymHandler.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/SetBasionymHandlerE4.java with 92% similarity]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/SwapSynonymAndAcceptedHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/SwapSynonymAndAcceptedHandlerE4.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/SwapSynonymAndAcceptedSetNameInSourceHandlerE5.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/operation/MoveSynonymToAnotherAcceptedTaxonOperationE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicGroupOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToAcceptedTaxonOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToConceptOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToMisapplicationOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateNewTaxonBaseOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInExistingHomotypicalGroupOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInNewGroupOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteMisapplicationOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteSynonymOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteTaxonBaseOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/SwapSynonymAndAcceptedOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/validation/ValidationContextListener.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/validation/ValidationDaemon.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditorComparator.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditorInput.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/DistributionColumnAccessor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/DistributionEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/DistributionEditorPart.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/FilterStatusDisplayConverter.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/StatusComboBoxDataProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/StatusDataDisplayConverter.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/StatusDisplayConverter.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/StatusHelper.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/TaxonDistributionDtoComparator.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/handler/OpenChecklistEditorHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/edit/CdmComboBoxViewerCellEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/listener/ChecklistModifyListener.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptContentProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptLabelProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/e4/ConceptRelationViewer.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/e4/ConceptViewPartE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/e4/handler/CreateConceptRelationHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/e4/handler/DeleteConceptRelationHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/e4/handler/OpenRelatedConceptHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/e4/handler/OpenRelatedConceptInBulkEditorHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/graph/ConceptGraphContentProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/graph/e4/ConceptGraphViewE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDropListener.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AbstractAddDerivativeHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AddConsensusSequenceHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AddDnaSampleHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AddExistingMediaHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AddMediaSpecimenHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AddSingleReadHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AddSpecimenHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/AddTissueSampleHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/CreateFieldUnitHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/DeleteDerivateHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivativeEditorForDescriptionElement.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivativeEditorForGatheringEvent.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivativeEditorForSpecimenOrOBservationBase.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenDerivativeEditorForTaxonNode.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/OpenSpecimenEditorFromMenu.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/SingleReadCopyToClipboardHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/SingleReadReuseHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/ToggleLinkWithTaxonSelectionHandler.java [deleted file]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/operation/MoveDerivateOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/searchFilter/DerivateSearchCompositeController.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptionElementDragListener.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptionElementDropAdapter.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/DescriptiveContentProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveLabelProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewerComparator.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewerSorter.java with 54% similarity]
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/CreateDescriptionElementHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/DeleteHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/DescriptionsMenuPropertyTesterE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/DynamicFeatureMenuE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/MoveDescriptionElementsHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/MoveDescriptionElementsSetNameInSourceHandlerE5.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/MoveDescriptionToOtherTaxonHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/MoveDescriptionToOtherTaxonSetNameInSourceHandlerE5.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/SetDefaultDescriptionHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/ToggleShowOnlyIndividualAssociationsHandlerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/AddDerivedUnitFacadeMediaOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/CreateDescriptionElementOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/CreateTaxonDescriptionOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/DeleteDescriptionElementOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/DeleteSpecimenDescriptionOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/DeleteTaxonDescriptionOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/DeleteTaxonNameDescriptionOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/MoveDescriptionElementsOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/MoveDescriptionToOtherTaxonOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/SetDefaultDescriptionOperation.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaContentProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaViewLabelProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/e4/MediaViewPartE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/AbstractMoveImageHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/AddExistingMediaHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/AddImageGalleryHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/CreateMediaHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/DeleteMediaHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/MoveImageDownInListHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/handler/MoveImageUpInListHandler.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/AddMediaToImageGalleryOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/CreateImageOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/DeleteMediaOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/MoveMediaInListOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/operation/RemoveImageFromDescriptionElementOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/UsesContentProvider.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/e4/UsesViewPartE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/CreateUseRecordOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/uses/operation/CreateUseSummaryOperation.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeConceptRelationshipTypeOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeConceptToSynonymOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicGroupOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeHomotypicalGroupBasionymOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToConceptOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToHomotypicalGroupBasionymOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/ChangeSynonymToMisapplicationOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateConceptRelationOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateDescriptionElementOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInExisitingHomotypicalGroupOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateSynonymInNewGroupOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteConceptRelationOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteDescriptionElementOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteMisapplicationOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteSynonymOperationTest.java
eu.etaxonomy.taxeditor.editor/src/test/java/eu/etaxonomy/taxeditor/editor/name/operation/SwapSynonymAndAcceptedOperationTest.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/html/gettingstarted/downloading_the_taxonomic_editor.html
eu.etaxonomy.taxeditor.help/pom.xml
eu.etaxonomy.taxeditor.help/src/eu/etaxonomy/taxeditor/help/Activator.java
eu.etaxonomy.taxeditor.local/.gitignore [moved from eu.etaxonomy.taxeditor.webapp/.gitignore with 100% similarity]
eu.etaxonomy.taxeditor.local/META-INF/MANIFEST.MF [new file with mode: 0644]
eu.etaxonomy.taxeditor.local/OSGI-INF/l10n/bundle.properties [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/OSGI-INF/l10n/bundle_de.properties [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/build.properties [new file with mode: 0644]
eu.etaxonomy.taxeditor.local/fragment.e4xmi [new file with mode: 0644]
eu.etaxonomy.taxeditor.local/lib/c3p0-0.9.5.2.jar [moved from eu.etaxonomy.taxeditor.cdmlib/lib/c3p0-0.9.5.2.jar with 100% similarity, mode: 0755]
eu.etaxonomy.taxeditor.local/lib/h2-1.4.190.jar [moved from eu.etaxonomy.taxeditor.cdmlib/lib/h2-1.4.190.jar with 100% similarity, mode: 0755]
eu.etaxonomy.taxeditor.local/lib/javax.servlet-api-4.0.1.jar [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/lib/jdbc4-2.0.jar [moved from eu.etaxonomy.taxeditor.cdmlib/lib/jdbc4-2.0.jar with 100% similarity, mode: 0755]
eu.etaxonomy.taxeditor.local/lib/jetty-http-9.4.26.v20200117.jar [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/lib/jetty-io-9.4.26.v20200117.jar [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/lib/jetty-security-9.4.26.v20200117.jar [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/lib/jetty-server-9.4.26.v20200117.jar [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/lib/jetty-servlet-9.4.26.v20200117.jar [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/lib/jetty-util-9.4.26.v20200117.jar [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/lib/jetty-webapp-9.4.26.v20200117.jar [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/lib/jetty-xml-9.4.26.v20200117.jar [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/lib/mchange-commons-java-0.2.11.jar [moved from eu.etaxonomy.taxeditor.cdmlib/lib/mchange-commons-java-0.2.11.jar with 100% similarity, mode: 0755]
eu.etaxonomy.taxeditor.local/plugin.xml [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/pom.xml [moved from eu.etaxonomy.taxeditor.webapp/pom.xml with 75% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/l10n/Messages.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/l10n/messages.properties [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/l10n/messages_de.properties [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/CdmEmbeddedServerException.java [moved from eu.etaxonomy.taxeditor.webapp/src/main/java/eu/etaxonomy/taxeditor/webapp/CdmEmbeddedServerException.java with 94% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/CdmServer.java [moved from eu.etaxonomy.taxeditor.webapp/src/main/java/eu/etaxonomy/taxeditor/webapp/CdmServer.java with 92% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/TaxeditorLocalPlugin.java [moved from eu.etaxonomy.taxeditor.webapp/src/main/java/eu/etaxonomy/taxeditor/webapp/TaxeditorWebappPlugin.java with 84% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/datasource/common/CdmDataSourceRepository.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/CdmDataSourceRepository.java with 92% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/datasource/wizard/CdmDataSourceCredentialsWizardPage.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceCredentialsWizardPage.java with 95% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/datasource/wizard/CdmDataSourceH2WizardPage.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceH2WizardPage.java with 78% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/datasource/wizard/CdmDataSourceMySQLWizardPage.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceMySQLWizardPage.java with 93% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/datasource/wizard/CdmDataSourcePostgreSQLServerWizardPage.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourcePostgreSQLServerWizardPage.java with 93% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/datasource/wizard/CdmDataSourceSQLServerWizardPage.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceSQLServerWizardPage.java with 80% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/datasource/wizard/CdmDataSourceTypeSelectionWizardPage.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceTypeSelectionWizardPage.java with 82% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/datasource/wizard/CdmDataSourceWizard.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceWizard.java with 56% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/handler/ReconnectHandlerE4.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/handler/ShowRemotingLoginWindowHandlerE4.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/handler/SwitchUserHandlerE4.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/server/CdmStoreConnectorLocal.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/server/CdmStoreLocal.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/server/RemotingLoginDialogLocal.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/view/datasource/CdmDataSourceContentProvider.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceContentProvider.java with 65% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/view/datasource/CdmDataSourceLabelProvider.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceLabelProvider.java with 82% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/view/datasource/CdmDataSourceViewerComparator.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmDataSourceViewerComparator.java with 96% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/view/datasource/CdmMetaDataAwareDataSourceContainer.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmMetaDataAwareDataSourceContainer.java with 80% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/view/datasource/e4/CdmDataSourceViewPartE4.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/e4/CdmDataSourceViewPartE4.java with 89% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/view/datasource/e4/handler/AbstractDataSourceHandler.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/e4/handler/AbstractDataSourceHandlerE4.java with 88% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/view/datasource/e4/handler/CloneDataSourceHandlerE4.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/e4/handler/CloneDataSourceHandlerE4.java with 80% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/view/datasource/e4/handler/CreateDataSourceHandlerE4.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/e4/handler/CreateDataSourceHandlerE4.java with 88% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/view/datasource/e4/handler/DeleteDataSourceHandlerE4.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/e4/handler/DeleteDataSourceHandlerE4.java with 76% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/view/datasource/e4/handler/EditDataSourceHandlerE4.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/e4/handler/EditDataSourceHandlerE4.java with 80% similarity]
eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/view/datasource/handler/DataSourceMenuPropertyTester.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/handler/DataSourceMenuPropertyTester.java with 68% similarity]
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.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/AlignmentEditorInput.java
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/e4/AlignmentEditorE4.java
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/e4/handler/EditSequenceHandlerE4.java
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/e4/handler/ExportSequenceToFileHandlerE4.java
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/e4/handler/LoadPherogramHandlerE4.java
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/editor/e4/handler/ShowPherogramHandlerE4.java
eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/io/CDMSequenceMatrixAdapter.java
eu.etaxonomy.taxeditor.molecular/src/test/java/eu/etaxonomy/taxeditor/molecular/io/SequenceIDIteratorTest.java
eu.etaxonomy.taxeditor.navigation/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle.properties
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle_de.properties
eu.etaxonomy.taxeditor.navigation/fragment.e4xmi
eu.etaxonomy.taxeditor.navigation/plugin.xml
eu.etaxonomy.taxeditor.navigation/pom.xml
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/AppModelId.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/NavigationUtil.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/RecentNamesContributionItem.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/WorkbenchUndoContextAdapterFactory.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/PolytomousKeyViewPartDataChangeBehaviorE4.java [deleted file]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/PolytomousKeyViewPartE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/handler/DeletePolytomousKeyHandlerE4.java [moved from eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/handler/RemotingDeletePolytomousKeyHandlerE4.java with 91% similarity]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/handler/EditPolytomousKeyNodesHandlerE4.java [moved from eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/handler/RemotingEditPolytomousKeyNodesHandlerE4.java with 97% similarity]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/handler/UpdatePolytomousKeyAllNodesHandlerE4.java [moved from eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/handler/RemotingUpdatePolytomousKeyAllNodesHandlerE4.java with 81% similarity]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/DeleteOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/DeletePolytomousKeyOperation.java [moved from eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/RemotingDeletePolytomousKeyOperation.java with 88% similarity]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/RefreshNodesOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/UpdatePolytomousKeyAllNodesOperation.java [moved from eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/RemotingUpdatePolytomousKeyAllNodesOperation.java with 86% similarity]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/l10n/Messages.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/l10n/messages.properties
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/l10n/messages_de.properties
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/EmptyRoot.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/Root.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeNavigatorComparator.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/TaxonNavigatorDataChangeBehaviorE4.java [deleted file]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/TaxonNavigatorE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/TaxonNavigatorLabelProviderE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/TreeNodeDropAdapterE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/AggregateDistributionForSubTreeHandler.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/ChangeAcceptedTaxonToSynonymHandlerE4.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/ChangeAcceptedTaxonToSynonymSetNameInSourceHandlerE5.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/CloneClassificationHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/CopyHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/CreateClassificationHierarchyHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/DeleteHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/DeleteTaxonNodeHandlerE4.java [moved from eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemotingDeleteTaxonNodeHandlerE4.java with 58% similarity]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/DoubtfulHandler.java [moved from eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/UnplacedExcludedDoubtfulHandler.java with 92% similarity]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/LinkWithTaxonHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/MoveFactualDataHandlerE4.java [moved from eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemotingMoveFactualDataHandlerE4.java with 92% similarity]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/MoveFactualDataSetNameInSourceHandlerE5.java [moved from eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemotingMoveFactualDataSetNameInSourceHandlerE5.java with 91% similarity]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/MoveTaxonNodeHandlerE4.java [moved from eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemotingMoveTaxonNodeHandlerE4.java with 52% similarity]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/NavigatorCdmHandler.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/NewClassificationHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/NewTaxonNodeHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RefreshTreeHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemotingChangeAcceptedTaxonToSynonymHandlerE4.java [deleted file]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemotingChangeAcceptedTaxonToSynonymSetNameInSourceHandlerE5.java [deleted file]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemoveDoubtfulHandler.java [deleted file]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemoveExcludedHandler.java [deleted file]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemoveUnplacedHandler.java [deleted file]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/SetDoubtfulHandler.java [deleted file]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/SetExcludedHandler.java [deleted file]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/SetPublishFlagForSubtreeHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/SetSecReferenceForSubtreeHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/SetUnplacedHandler.java [deleted file]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/ChangeAcceptedTaxonToSynonymOperation.java [moved from eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/RemotingChangeAcceptedTaxonToSynonymOperation.java with 57% similarity]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/DeleteOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/DeleteTaxonNodeOperation.java [moved from eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/RemotingDeleteTaxonNodeOperation.java with 91% similarity]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveFactualDataOperation.java [moved from eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/RemotingMoveFactualDataOperation.java with 82% similarity]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperation.java [moved from eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/RemotingMoveTaxonOperation.java with 69% similarity]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/SetPublishForSubtreeOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/SetSecundumForSubtreeOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/SetUnplacedExcludedDoubtfulOperation.java [deleted file]
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/UpdateSubtreeOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CloneClassificationOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateClassification.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateNewTaxonHierarchyOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreatePolytomousKey.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/operation/CreateTaxonNode.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchBar.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchOption.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/e4/SearchResultViewE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/log4j.properties [deleted file]
eu.etaxonomy.taxeditor.navigation/src/test/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperationTest.java
eu.etaxonomy.taxeditor.navigation/src/test/java/log4j.properties [deleted file]
eu.etaxonomy.taxeditor.navigation/src/test/resources/eu/etaxonomy/cdm/applicationContext-test.xml [deleted file]
eu.etaxonomy.taxeditor.navigation/src/test/resources/eu/etaxonomy/cdm/defaultApplicationContext.xml [deleted file]
eu.etaxonomy.taxeditor.printpublisher/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.printpublisher/build.properties
eu.etaxonomy.taxeditor.printpublisher/lib/objenesis-3.1.jar [new file with mode: 0644]
eu.etaxonomy.taxeditor.printpublisher/pom.xml
eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/PrintUtil.java
eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/handler/GeneratePdfHandler.java
eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/internal/PrintpublisherPlugin.java
eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/AbstractPublishWizard.java
eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/AbstractPublishWizardPage.java
eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/DirectPublishingWizard.java
eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/PublishWizardODF.java
eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/PublishWizardPDF.java
eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/PublishWizardTaxPub.java
eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/PublishWizardXML.java
eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/SelectDirectoryWizardPage.java
eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/SelectFeatureTreeWizardPage.java
eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/SelectOptionsWizardPage.java
eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/SelectServiceWizardPage.java
eu.etaxonomy.taxeditor.printpublisher/src/main/java/eu/etaxonomy/taxeditor/printpublisher/wizard/SelectTaxaWizardPage.java
eu.etaxonomy.taxeditor.store/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties
eu.etaxonomy.taxeditor.store/fragment.e4xmi
eu.etaxonomy.taxeditor.store/icons/ban_new.gif [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/icons/no_entry.png [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/icons/no_entry_2.png [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/icons/no_entry_3.png [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/pom.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/AbcdImportAdminPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/AbcdImportProviderAdminPreferencePage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/CdmLightExportAdminPreference.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/ChecklistEditorGeneralAdminPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/CommonNameLanguageAdminPreferences.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/DistributionAdminPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/EnabledComputedDescriptionsAdmin.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/FactualDataAdminPreferencePage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/LanguageAdminMenuPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/LanguageRepresentationAdminPreferencePage.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/MediaMetaDataPreference.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NameRelationshipTypeAdminPreferences.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NomenclaturalStatusTypeAdminPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/RankAdminPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/SearchDialogAdminPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/SecundumReferenceHandlingAdmin.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/TaxonPreferencesMisappliedNamesAdmin.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/wizard/DatabaseRepairUpdateCachesWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/wizard/DatabaseRepairUpdateSortIndicesWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/wizard/ImportPreferencesWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/wizard/NameDetailsViewComposite.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/dnd/transfer/TaxonNodeTransfer.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/CdmEntitySessionInput.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/IBulkEditor.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/ICharacterMatrix.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/IReferencingObjectsView.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermSorter.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/FeatureDtoContentProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/FeatureTreeViewerComparator.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermBasePropertyTester.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermDtoContentProvider.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/editor/definedterm/TermTransfer.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermTreeViewerComparator.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/DefinedTermDragListenerE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/DefinedTermDropAdapterE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/DefinedTermEditorE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/DefinedTermMenuE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/DefinedTermTreeMenu.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/handler/CreateDefinedTermHandlerE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/handler/DeleteTermBaseHandlerE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/handler/MoveDefinedTermHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/handler/OpenDefinedTermEditorHandlerE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/AbstractDefinedTermEditorInput.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/input/TermEditorInput.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/CreateDefinedTermOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/CreateTermVocabularyOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/DeleteTermBaseOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/MoveDefinedTermOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/event/EventUtility.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/event/WorkbenchEventConstants.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/AvailableFeaturesWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureNodeTransfer.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreeContentProvider.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreeLabelProvider.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/AbstractTermTreeEditor.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/CharacterTreeEditor.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/FeatureNodeDragListener.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/FeatureTreeEditor.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/IFeatureTreeEditor.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/NamedAreaTreeEditor.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/PresenceAbsenceTreeEditor.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/PropertyTreeEditor.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/RankTreeEditor.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/StructureTreeEditor.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/AddChildFeatureHandler.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/AddFeatureHandler.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/CreateFeatureTreeHandler.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/PasteFeatureHandler.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/RemoveFeatureHandler.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/defaultHandler/OpenReferencingObjectsViewHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/defaultHandler/e4/DefaultOpenClassificationWizardHandlerE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/defaultHandler/e4/DefaultOpenHandlerBaseE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/defaultHandler/e4/DefaultOpenSetBaseHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/defaultHandler/e4/DefaultOpenTaxonNodeWizardHandlerE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/e4/OpenDistributionPerAreaStatusAdminWizardHandler.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/e4/OpenDistributionPerAreaStatusWizardHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/e4/OpenPasswordWizzardHandlerE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/e4/ReconnectHandlerE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/update/P2Util.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/update/SearchPluginHandler.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/update/UpdateHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/identificationkey/AbstractIdentificaitonKeyWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/identificationkey/AbstractIdentificationKeyWizard.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractIOManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/ExportManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/ImportManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/AbstractImportWizard.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/AbstractImportWizardE4.java with 89% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/AbstractOpenImportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/GenericConfiguratorWizardPageE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/ImportFromFileDataSourceWithReferenceWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/ImportFromFileDataSourceWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/abcd/AbcdImportConfiguratorWizardPage.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbcdImportConfiguratorWizardPage.java with 53% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/abcd/AbcdImportConfiguratorWizardPageE4.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/abcd/AbcdImportWizardE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/abcd/OpenAbcdImportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/excel/distribution/ExcelDistributionUpdateWizardE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/excel/distribution/OpenExcelDistributionImportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/excel/specimen/OpenExcelSpecimenImportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/excel/specimen/SpecimenCdmExcelImportWizardE4.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/excel/taxa/ExcelNormalExplicitTaxaImportWizardE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/excel/taxa/OpenExcelTaxaImportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/owl/OpenOwlImportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/owl/OwlImportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/ris/OpenRisImportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/ris/RISImportWizardE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/sdd/OpenSddImportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/sdd/SddImportWizardE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/tcs/OpenTcsImportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/tcs/TcsImportWizardE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/AbstractExportWizard.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/AbstractExportWizardE4.java with 75% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/AbstractOpenExportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/cdmlight/CdmLightExportWizardE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/cdmlight/MetaDataConfigurationWizardPage.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/cdmlight/OpenCdmLightExportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/col/ColExportWizardE4.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/col/OpenColExportWizard.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/csv/CsvExportWizardE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/csv/OpenCsvExportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/csv/name/CsvNameExportWizardE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/csv/name/OpenCsvNameExportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/csv/print/OpenCsvPrintExportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/dwca/DarwinCoreArchiveExportWizardE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/dwca/OpenDwcaExportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/jaxb/JaxbExportWizardE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/jaxb/OpenJaxbExportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/owl/OpenOwlTermExportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/owl/OwlTermExportComposite.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/owl/OwlTermExportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/owl/OwlTermExportWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/sdd/OpenSddExportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/sdd/SddExportWizardE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/wfo/OpenWfoBackboneExportWizard.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/wfo/WfoBackboneExportWizard.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbcdImportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbcdSourceSelectionPage.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbstractExcelExportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbstractExportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbstractImportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CdmLightExportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ClassificationChooserWizardPage.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CsvExportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CsvNameExportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CsvPrintExportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/DarwinCoreArchiveExportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/EndnoteImportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ExcelDistributionUpdateWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ExcelNormalExplicitTaxaImportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ExportToFileDestinationWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/GenericConfiguratorWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ImportFromFileAndChooseVocIdWizardPage.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ImportFromFileDataSourceWizardPage.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/JaxbExportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/JaxbImportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/NomenclaturalCodeWizardPage.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/RISImportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/SddExportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/SddImportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/SpecimenCdmExcelImportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/TcsExportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/TcsImportWizard.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/Messages.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/messages.properties
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/messages_de.properties
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractDataChangeBehaviour.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractUtility.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/CdmProgressMonitorAdapter.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/ColorResources.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DefaultTermComparator.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DeleteResultMessagingUtils.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/FeatureNodeContainerTree.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IDerivedUnitFacadePart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/IDirtyMarkable.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/ImageResources.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/LineSelection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/MessagingUtils.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/NomenclaturalCodeHelper.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/PolytomousKeyRelationship.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/TaxeditorPartService.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonRelationshipTypeInverseContainer.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonTransfer.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/TextHelper.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AbstractNewEntityWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AbstractNewEntityWizardParentChild.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/AmplificationGeneralWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/ExternalReferenceServiceWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewAmplificationWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewClassificationWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewCollectionWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewCommonNameReferenceWizard.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewDerivedUnitBaseWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewFeatureVocabularyWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewGrantedAuthorityWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewGroupWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewInstitutionWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewNonViralNameWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewPersonWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewPolytomousKeyWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewPrimerWizard.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/NewTaxonNodeWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonNodeWizardDialog.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTeamWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewUserWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/PolytomousKeyWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/PrimerWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/VocabularyWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractDescriptionPostOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPersistentPostOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPostOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/AbstractPostTaxonOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/CdmDefaultOperation.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingCdmDefaultOperation.java with 73% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/CdmOperation.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingCdmOperation.java with 76% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/CdmUpdateOperation.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingCdmUpdateOperation.java with 90% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/e4/CdmHandlerE4.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/e4/RemotingCdmHandlerE4.java with 94% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/parser/ParseHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AbcdImportPreference.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AbcdImportProvider.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AbstractGeneralTermPreference.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AbstractVocabularySelectionPreference.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AreaCheckBoxTreeComposite.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/BiocaseProvideConfig.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmLightExportPreference.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmPreferenceCache.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmStorePropertyTester.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CommonNameVocabularyPreferencePage.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DefaultFeatureTreePreferenecs.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DistributionDetailsViewPreference.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DistributionGeneralPreference.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DistributionStatusPreferencePage.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/EditorPreferencePredicate.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/EnableComputedDescriptions.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ExperimentalFeaturesPreferences.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ExternalServicesPreferences.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/FactualDataPreference.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralPreferencePage.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralTermPreferencePage.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IOPreferences.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageEditorPreferencePage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguagePreferences.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageRepresentationPreferencePage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ListComponent.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LocalOrDefaultEnum.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NameDetailsConfigurator.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NameDetailsViewConfiguration.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NamePreferences.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NamedAreaVocabularyPreferencePage.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NavigatorOrderEnum.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NomenclaturalCodePreferences.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/OrderPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencePropertyTester.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PublishEnumX.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PublishFlagLocalPreference.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/RankPreference.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/Resources.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SearchDialogPreferences.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SearchPreferences.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SecundumReferenceHandling.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SupplementalDataPreferences.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonPreferences.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonPreferencesMisappliedNames.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonomicEditorGeneralPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TermOrderXX.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TermTreePreference.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonSearchPreferences.java with 55% similarity, mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/UIPreferences.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/AbstractMatchingPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/NonViralNameMatchingPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/CdmPreferencePage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/CommonNameLanguagePreferences.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/DefinedTermBaseLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/FeatureMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/LanguageMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/NameFeatureMenuPreference.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/NameRelationshipTypeMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/NameTypeDesignationStatusMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/SpecimenTypeDesignationStatusMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AbstractAdminTermSelectionWizardPage.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AbstractTermSelectionWizardPage.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AreaViewerComparator.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableAreaVocabulariesPage.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionPage.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionPerAreaStatusPage.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionPerAreaStatusWizard.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionStatusAdminWizard.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionStatusPage.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionStatusWizard.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableVocabularyWizard.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/CdmCheckBoxTreeViewer.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/CheckBoxTreeComposite.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/GeneralVocabularyPreferencePage.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/NamedAreaWrapper.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/TermSelectionWizardPage.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/VocabularyTermWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/security/RequiredPermissions.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/AppModelId.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStoreConnector.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/LoginManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/SearchManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/StoreUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/TermManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/TermStore.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/UsageTermCollection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/UseObjectStore.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/AvailableTermsWizard.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/AvailableTermsWizardPage.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/AvailableFeaturesWizardPage.java with 58% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/CharacterNodeDtoTransfer.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/CharacterTransfer.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/CharacterTransfer.java with 92% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermChooseWizard.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/TermChooseWizard.java with 63% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermChooseWizardPage.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/TermChooseWizardPage.java with 59% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermNodeDtoTransfer.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermNodeTransfer.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermTreeContentProvider.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermTreeLabelProvider.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermTreePropertyTester.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreePropertyTester.java with 73% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/ICharacterEditor.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/ITermTreeEditor.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermNodeDragListener.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermNodeDtoDragListener.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeDropAdapter.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/FeatureTreeDropAdapter.java with 64% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeDtoDropAdapter.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeDtoEditorComposite.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeEditor.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeEditorComposite.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/FeatureTreeEditorComposite.java with 83% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeSorter.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/AbstractAddTermHandler.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/AddChildTermHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/AddTermHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/CopyTermHandler.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/CopyFeatureHandler.java with 72% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/CreateTermTreeHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/OpenTermTreeEditorHandler.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/PasteTermHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/RemoveTermHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/RemoveTermTreeHandler.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/RemoveFeatureTreeHandler.java with 64% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/TermTreeExportOntologyHandler.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/FeatureTreeExportOntologyHandler.java with 91% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/TermTreeExportWordHandler.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/FeatureTreeExportWordHandler.java with 83% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/operation/AddFeatureOperation.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/operation/AddFeatureOperation.java with 80% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/operation/AddOntologyTermOperation.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/operation/AddOntologyTermOperation.java with 72% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/operation/CreateFeatureTreeOperation.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/operation/CreateFeatureTreeOperation.java with 89% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/operation/MoveFeatureOperation.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/operation/MoveFeatureOperation.java with 57% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/operation/RemoveFeatureOperation.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/operation/RemoveFeatureOperation.java with 78% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/operation/RemoveFeatureTreeOperation.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/operation/RemoveFeatureTreeOperation.java with 85% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/UuidAndTitleCacheLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/AbstractComboElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/EnumComboElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/InverseTermWrapper.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/MisappliedRelationshipComboElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/OriginalSourceTypeComparator.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/RelationshipTypeCombo.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/NameRelationshipTypeCombo.java with 72% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermCollectionComboElement.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/VocabularyComboElement.java with 56% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/term/TermComboElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/term/TermUuidContentProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/termvocabulary/TermVocabularyComboLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/CloneClassificationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/LoginDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/SuperAreaSelectionWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/UriDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/configurator/AggregationConfigurationWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/configurator/DistributionAggregationConfiguratorWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/configurator/DistributionAggregationWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/configurator/SetSecundumConfiguratorWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/configurator/StructuredAggregationConfigurationWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/configurator/StructuredDescriptionAggregationConfigurationWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/configurator/deleteConfigurator/DeleteNameConfiguratorComposite.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/configurator/deleteConfigurator/DeleteTaxonBaseConfiguratorComposite.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/configurator/deleteConfigurator/DeleteTaxonConfiguratorComposite.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/configurator/wizard/NamedAreaTermDtoContentProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/AbstractFilteredCdmEnumSelectionDialog.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/AbstractFilteredIdentifierSelectionDialog.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/AmplificationSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ClassificationSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CollectionSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CollectorSelectionDialog.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CommonNameNamedAreaSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CommonNameReferenceSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/DerivedUnitSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/DescriptiveDataSetSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ExtReferenceSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/FeatureSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/FeatureTreeSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/FieldUnitSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/FilterDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/GrantedAuthoritySelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/GroupSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/InstitutionSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/MediaSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NameSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NamedAreaSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/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/NomenclaturalPersonAuthorSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NomenclaturalReferenceSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/OriginalSourceTypeSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/PersonSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/PolytomousKeySelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/PrimerSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/ReferenceSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/RightsSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SearchDialog.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/SpecimenOrObservationBaseSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SpecimenOrObservationTypeSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonBaseSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonNodeAndBoolean.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonNodeSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonNodeSelectionNaturalOrderDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonSelectionDialog.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/dialog/selection/TeamSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/UserSelectionDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractCdmEntityWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractCdmFormElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractFormSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractRelevanceFormElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractUriWithExceptionLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/BigDecimalWithLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/BrowserElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CacheRelevance.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CacheRelevanceHelper.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java [changed mode: 0644->0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmPropertyChangeEvent.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CheckboxElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/DateDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/DoiWithLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/FloatWithLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/GatheringEventUnitElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ICacheRelevantFormElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IEnableableFormElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IEntityElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IRelevantFormElement.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ISelectable.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ImageElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/LabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/LsidWithExceptionLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MinMaxTextSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MultilanguageTextElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/NumberWithLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/OrcidWithLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/OriginalLabelDataElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/PartialElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/PointElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/RemovableTextElement.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/RepresentationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/RootElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelAndSetNullElement.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TimePeriodElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TimePeriodElementBase.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ToggleableTextElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TranslatableRepresentationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/UriWithLabelElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/VerbatimTimePeriodElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/AbstractCdmComposite.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/combo/EnumTermComboController.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/element/DateElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/element/DateElementController.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/mvc/element/TextWithLabelElementController.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/openurl/IOpenUrlEnabled.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/openurl/OpenUrlReferencePage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/openurl/OpenUrlSelectorElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/openurl/OpenUrlSelectorWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/password/EditPasswordElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/password/PasswordWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/password/PasswordWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractEntityCollectionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractIdentifiableEntityDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/DefaultCdmBaseComparator.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/EmptyElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/ICdmDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/ITaxonBaseDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/InstitutionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/InstitutionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/InstitutionWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/NomenclaturalTeamMemberElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/PersonDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/PersonDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/PersonWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/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/TeamOrPersonBaseDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/AbstractEditWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/ClassificationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/ClassificationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/ClassificationWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/CloneClassificationWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/CloneClassificationWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/EditTaxonNodeWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeAgentRelationCollectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeAgentRelationCollectionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/common/ExternalLinksElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/common/ExternalLinksSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/common/ReferenceEntityDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/common/ReferencedEntityDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/CommonNameSourceElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DerivedUnitElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescribedSpecimenSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementMediaSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementSourceElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementSourceSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionSourceElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionSourceSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/GeoScopeElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/GeoScopeSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/MediaDetailsSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/NaturalLanguageDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/NaturalLanguageSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ScopeElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ScopeSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/SourceComparator.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StateDataElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StateDataSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StatisticalMeasurementValueElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/StatisticalMeasurementValueSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/AbstractDetailedDescriptionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/CategoricalDataDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/CommonNameDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/DistributionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/IndividualsAssociationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/QuantitativeDataDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/TaxonInteractionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/TemporalDataDetailElement.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/TextDataDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/AbstractApplicableElement.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/CharacterDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/CharacterDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/CharacterDtoDetailElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/CharacterDtoDetailSection.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/CharacterNodeDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/CharacterNodeDtoDetailElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/CharacterNodeDtoDetailSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureDistributionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureDistributionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureNodeDetailElement.java [deleted file]
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/FeatureTreeDetailElement.java [deleted file]
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 [new file with mode: 0644]
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/feature/OnlyApplicableIfEntityCollectionSectionForNode.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/TermNodeDetailElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/TermNodeDetailSection.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureNodeDetailSection.java with 60% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/TermTreeDetailElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/TermTreeDetailElementForNode.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/TermTreeDetailSection.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureTreeDetailSection.java with 65% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/TermTreeDetailSectionForNode.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/grantedAuthority/GrantedAuthorityCollectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/grantedAuthority/GrantedAuthorityDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/grantedAuthority/GrantedAuthorityDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/grantedAuthority/GrantedAuthorityDetailWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/grantedAuthority/GrantedAuthorityLabelTextProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GroupDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GroupDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GroupDetailWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/GroupSelectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/MemberDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/group/MemberDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyNodeDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/PolytomousKeyNodeDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/ScopeRestrictionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/key/TaxonomicScopeSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/ImageFileElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaMetaElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaRepresentationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaRepresentationPartElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaRepresentationPartSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaRepresentationSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/media/MediaSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/AbstractTypeDesignationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/AuthorshipDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/AuthorshipDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/HybridDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/HybridDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameRelationshipDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameRelationshipDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameRelationshipWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameRelationshipWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NameTypeDesignationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NomenclaturalStatusElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NomenclaturalStatusSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/ProtologueElement.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/ProtologueSection.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/RuleConsideredElement.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/SpecimenTypeDesignationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/TextTypeDesignationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/TypeDesignationSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/operation/DeleteTypeDesignationOperation.java [changed mode: 0755->0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/type/CloneTypeWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/type/CloneTypeWizardComposite.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/type/CloneTypeWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/AbstractDeterminationEventDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/AbstractEventDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/AbstractSpecimenOrObservationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/CollectingAreaDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/CollectingAreasDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/CollectionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/CollectionWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/CurrentDeterminationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitBaseWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitGeneralDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitGeneralWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitMediaSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationEventDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationHistoryDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitDetailSection.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitFacadeDetailElement.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitDetailElement.java with 83% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitFacadeDetailSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitFacadeGeneralDetailElement.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitGeneralDetailElement.java with 60% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitFacadeGeneralDetailSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitGeneralDetailSection.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitGeneralWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GatheringEventWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeoScopeDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/GeoScopePolyKeyDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/OccurrenceStatusElement.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/OriginalLabelDataSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SourceCollectionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenCollectionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/SpecimenCollectionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/StatusCollectionDetailSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/association/DerivedUnitTypeDesignationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/association/DerivedUnitTypeDesignationSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/association/TaxonAssociationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/association/TaxonAssociationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenAbstractDeterminationEventDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenCurrentDeterminationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenGeneralDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/derivedUnit/PreservedSpecimenSourceCollectionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AbstractSampleDesignationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AbstractUnboundEntityCollectionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationCloningDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationCloningDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGelPhotoCollectionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGelPhotoDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationGeneralDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationPrimerDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AmplificationPrimerDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/CurrentSampleDesignationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaQualityDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaQualityDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSampleGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSampleGeneralDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSamplePreparationPreservationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/DnaSamplePreparationPreservationSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/PrimerGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationHistoryDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SampleDesignationTextDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceContigFileCollectionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceGeneralDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceReferenceCollectionDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceReferenceCollectionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadGeneralDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadPherogramCollectionDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/TissueSampleGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/TissueSampleGeneralDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/AdvancedNomenclaturalSourceElement.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/AdvancedSourceElement.java [new file with mode: 0644]
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 53% 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 68% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/NomenclaturalSourceElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/OriginalSourceAdvancedSection.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/OriginalSourceElement.java [new file with mode: 0755]
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/ReferenceDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/ReferenceWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/SecundumSourceDetailElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/SecundumSourceElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/SecundumSourceSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/SingleSourceSection.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractOriginalSourceElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractReferencedEntityElement.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractSingleSourceElement.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractSourcedEntityElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AnnotationDtoElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AnnotationDtoSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AnnotationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AnnotationSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CdmBaseDtoElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CdmBaseDtoSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CdmBaseElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CreditElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CreditSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/ExtensionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/ExtensionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/HeadlineDtoSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/IdentifiableSourceElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/MarkerDtoElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/MarkerDtoSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/MarkerElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/MarkerSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/RightsElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/RightsSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/SourceSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/VersionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/AbstractIdentifierSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/DerivedUnitFacadeIdentifierSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/IdentifierElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/identifier/IdentifierSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/ParsingMessagesSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonBaseDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonOfRelationshipElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonRelationshipDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonRelationshipDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/taxon/TaxonWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/user/GroupsByUserDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/user/GroupsByUserDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/user/UserDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/user/UserDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/user/UserDetailWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/userecords/UseRecordDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/userecords/UseRecordDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/AbstractTermBaseDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/DefinedTermDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/DefinedTermDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/FeatureDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/LanguageDetailElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/MeasurementUnitCollectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/MeasurementUnitCollectionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/MeasurementUnitDtoCollectionElement.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/MeasurementUnitDtoCollectionSection.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/NamedAreaDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/NamedAreaDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/NamedAreaLevelDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/PresenceAbsenceTermDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierCollectionsCollectionSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierCollectionsDtoCollectionSection.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierCollectionsElement.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierVocabulariesElement.java with 52% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierDtoCollectionsElement.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierVocabulariesCollectionSection.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedStateCollectionElement.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StateVocabularyCollectionElement.java with 50% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedStateCollectionSection.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedStateCollectionsDtoElement.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedStateDtoCollectionSection.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StateVocabularyCollectionSection.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureCollectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureCollectionSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureDtoCollectionElement.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureDtoCollectionSection.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/TermMediaSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/TermTranslationWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/TermVocabularyDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/TermVocabularyDetailSection.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/ClassificationSelectionElement.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/CommonNameReferenceSelectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EditFromSelectionWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EntitySelectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EntitySelectionElementWithAbbreviatedTitle.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/ui/selection/TaxonNodeSelectionElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/GoogleLanguageApiWrapper.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TermTranslationWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TranslationWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TranslationWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/util/OperationsUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/util/ProgressMonitorClientManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/util/TaxonTreeNodeContentProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/util/TaxonTreeNodeLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerChooser.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerContextMenuE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerUtilE4.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/DtoWithEntity.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/BioCaseEditorInput.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/DataImportEditorInput.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/SpecimenProviderSelectionWizardPage.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/DataImportView.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/DataImportViewE4.java with 61% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/GbifResponseImportView.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/GbifResponseImportViewE4.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/SaveImportedSpecimenAction.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/SaveImportedSpecimenActionE4.java with 83% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/SpecimenImportView.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/SpecimenImportViewE4.java with 92% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/SpecimenProviderSelectionWizardPage.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/SpecimenProviderSelectionWizardPageE4.java with 84% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/SpecimenSearchWizard.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/SpecimenSearchWizardE4.java with 91% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/SpecimenSearchWizardPage.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/SpecimenSearchWizardPage.java with 85% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/SpecimenSearchWizardPageE4.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/handler/OpenSpecimenImportWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/e4/handler/ChangeConnectionHandlerE4.java [deleted file]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/e4/handler/UpdateDataSourceHandlerE4.java [deleted file]
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/AbstractCdmDataViewer.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/AbstractCdmDataViewerE4.java with 90% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/AbstractCdmEditorPart.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/AbstractCdmEditorPartE4.java with 71% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/details/DetailsPartE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/details/DetailsViewerE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/supplementaldata/SupplementalDataPartE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/supplementaldata/SupplementalDataViewerE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/CdmRemoteServerContentProvider.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistContentProvider.java with 75% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/CdmRemoteServerLabelProvider.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/CdmRemoteServerViewPart.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/common/CdmRemoteServerRepository.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/common/CdmRemoteServerViewerComparator.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/AbstractRemoteServerHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/CreateRemoteServerHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/DeleteRemoteServerHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/EditRemoteServerHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/MoveDownRemoteServerHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/MoveUpRemoteServerHandler.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/wizard/CdmRemoteServerWizard.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/wizard/CdmRemoteServerWizardPage.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/search/derivative/DerivateContentProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/search/derivative/DerivateLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/search/facet/FilterComposite.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/search/facet/SearchController.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/search/facet/occurrence/OccurrenceSearchController.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/search/facet/occurrence/OccurrenceSearchResult.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/search/facet/occurrence/OccurrenceSearchResultComposite.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/search/facet/term/TermSearchController.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/search/facet/term/TermSearchResult.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/search/facet/term/TermSearchResultComposite.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/search/specimen/SpecimenProviderSelectionComposite.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/search/specimen/SpecimenProviderSelectionController.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/sessions/InspectSessionHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/sessions/InspectSessionsDialog.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/sessions/SessionsViewPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/GfBioTerminologyImportComposite.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/GfBioTerminologyImportPresenter.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/OntologyTermContentProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/parser/HierarchyParser.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/parser/OntologyTermParser.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/parser/ParserUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/parser/SuggestParser.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/parser/TermParser.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/parser/TerminologyParser.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/requests/AbstractTerminologyServiceRequest.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/wrapper/HierarchyTermWrapper.java
eu.etaxonomy.taxeditor.store/src/main/resources/eu/etaxonomy/cdm/editorApplicationContext.xml [deleted file]
eu.etaxonomy.taxeditor.store/src/test/java/eu/etaxonomy/taxeditor/store/NameProtectTitleCacheTest.java
eu.etaxonomy.taxeditor.store/src/test/java/eu/etaxonomy/taxeditor/store/operations/AbstractTaxeditorOperationTestBase.java
eu.etaxonomy.taxeditor.store/src/test/java/eu/etaxonomy/taxeditor/store/operations/TestUpdateOperation.java [moved from eu.etaxonomy.taxeditor.store/src/test/java/eu/etaxonomy/taxeditor/store/operations/RemotingTestUpdateOperation.java with 84% similarity]
eu.etaxonomy.taxeditor.store/src/test/java/eu/etaxonomy/taxeditor/store/utility/AbstractUtilityTest.java
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/applicationContext-test.xml [deleted file]
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/cdm.datasources.xml [deleted file]
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/cdmfs.xml [deleted file]
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/database/TermsDataSet-with_auditing_info.xml [deleted file]
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/database/TermsDataSet.xml [deleted file]
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/database/schema/dataset.dtd [deleted file]
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/io/EndnoteRecordImportTest-input.xml [deleted file]
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/io/NormalExplicitImportTest-input.xls [deleted file]
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/io/NormalExplicitImportTest.xml [deleted file]
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/io/TcsXmlImportConfiguratorTest-input.xml [deleted file]
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/store/CdmStoreTest.xml [deleted file]
eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/store/ConcurrentSessionTest.xml [deleted file]
eu.etaxonomy.taxeditor.store/src/test/resources/unitils.properties [deleted file]
eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.test/build.properties
eu.etaxonomy.taxeditor.test/lib/dbunit-2.4.9.jar [deleted file]
eu.etaxonomy.taxeditor.test/lib/h2-1.4.200.jar [new file with mode: 0644]
eu.etaxonomy.taxeditor.test/lib/org.springframework.context-3.2.2.RELEASE.jar [deleted file]
eu.etaxonomy.taxeditor.test/lib/unitils-core-3.4.2.jar [deleted file]
eu.etaxonomy.taxeditor.test/lib/unitils-database-3.4.2.jar [deleted file]
eu.etaxonomy.taxeditor.test/lib/unitils-dbmaintainer-3.4.2.jar [deleted file]
eu.etaxonomy.taxeditor.test/lib/unitils-dbunit-3.4.2.jar [deleted file]
eu.etaxonomy.taxeditor.test/lib/unitils-spring-3.4.2.jar [deleted file]
eu.etaxonomy.taxeditor.test/pom.xml
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/cdm/api/cache/CdmClientCachingTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmRemoteSourceTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/HttpInvokerServicesTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/RemotingSessionAwareTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/TestConfig.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/lazyloading/CdmServiceCacherTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemoteLazyLoadingTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/lazyloading/RemotePersistentCollectionTest.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/BaseOperationTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/operation/PolytomousKeyViewPartTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/operation/RemotingCdmUpdateOperationTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/operation/TaxonEditorTest.java [moved from eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/operation/TaxonNameEditorTest.java with 92% similarity]
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/operation/TaxonNavigatorTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/service/IOServiceExportTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/service/IOServiceImportTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/service/ProgressMonitorServiceTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/service/ServiceInterceptorTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionAwareTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionManagerTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/session/MockSessionOwner.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/MockConversationEnabled.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/dialogs/CdmServerInfoTest.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/.cdmLibrary/writableResources/cdm.datasources.xml
eu.etaxonomy.taxeditor.test/src/test/resources/.cdmLibrary/writableResources/mgd.datasources.xml
eu.etaxonomy.taxeditor.test/src/test/resources/datasources.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/cdm/api/cache/CdmClientCachingTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/cdm/database/schema/dataset.dtd
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/cdm/testRemotingApplicationContext.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/lazyloading/CdmEntityCacherTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/operation/PolytomousKeyViewPartTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/operation/RemotingCdmUpdateOperationTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/operation/TaxonEditorTest.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/operation/TaxonNameEditorTest.xml [deleted file]
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/operation/TaxonNavigatorTest.testDeleteClassificationWithDeleteChildren.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/operation/TaxonNavigatorTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/service/IOServiceExportTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/session/CdmEntitySessionAwareTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/session/CdmEntitySessionManagerTest.xml
eu.etaxonomy.taxeditor.test/src/test/resources/h2/cdmTest.h2.db
eu.etaxonomy.taxeditor.test/src/test/resources/imports/SDD.xml
eu.etaxonomy.taxeditor.test/src/test/resources/log4j2-test.xml [moved from eu.etaxonomy.taxeditor.test/src/test/resources/log4j.xml with 100% similarity]
eu.etaxonomy.taxeditor.webapp/META-INF/MANIFEST.MF [deleted file]
eu.etaxonomy.taxeditor.webapp/build.properties [deleted file]
eu.etaxonomy.taxeditor.webapp/src/main/resources/etc/jetty/.svnignore [deleted file]
eu.etaxonomy.taxeditor.webapp/src/main/resources/etc/jetty/jetty-runner-9.2.3.v20140905.jar [deleted file]
eu.etaxonomy.taxeditor.webapp/src/main/resources/etc/jetty/start-9.2.3.v20140905.jar [deleted file]
eu.etaxonomy.taxeditor.workbench/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.workbench/fragment.e4xmi
eu.etaxonomy.taxeditor.workbench/pom.xml
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/l10n/Messages.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/l10n/messages.properties [new file with mode: 0755]
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/l10n/messages_de.properties [new file with mode: 0755]
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/Activator.java
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/AppModelId.java
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/OpenExternalAboutPlatformHandler.java
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/OpenExternalParserHelpHandler.java
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/OpenPartHandler.java
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/WorkbenchUtility.java
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/datasource/CdmEmbeddedServerException.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/datasource/ICdmEmbeddedServerException.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/datasource/ICdmServerError.java [moved from eu.etaxonomy.taxeditor.webapp/src/main/java/eu/etaxonomy/taxeditor/webapp/ICDMServerError.java with 80% similarity, mode: 0755]
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/datasource/IRemotingLoginDialog.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/handler/CollapseHandler.java
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/handler/OpenAdminPreferencesHandler.java
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/handler/OpenPreferencesHandler.java
eu.etaxonomy.taxeditor/deploy_nightly.sh
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 [new file with mode: 0755]
setup-project.sh
src/changes/changes.xml [deleted file]
src/site/apt/getting-started.apt
src/site/fml/troubleshooting.fml
src/site/site.xml

index 177934b63a27ee3cd514cd06d3ab13d923d976ae..c3ebb972bbef4d6f17e5a8c0070f9390d84c486e 100644 (file)
@@ -140,193 +140,56 @@ eu.etaxonomy.taxeditor.cdmlib/META-INF/aop.xml -text
 eu.etaxonomy.taxeditor.cdmlib/README.txt -text
 eu.etaxonomy.taxeditor.cdmlib/build.properties -text
 eu.etaxonomy.taxeditor.cdmlib/lib/activation-1.1.1.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/antlr-2.7.7.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/aopalliance-1.0.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/aspectjrt-1.7.1.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/aspectjweaver-1.7.1.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/avro-1.6.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/batik-anim-1.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/batik-awt-util-1.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/batik-bridge-1.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/batik-css-1.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/batik-dom-1.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/batik-ext-1.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/batik-extension-1.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/batik-gvt-1.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/batik-js-1.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/batik-parser-1.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/batik-script-1.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/batik-svg-dom-1.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/batik-svggen-1.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/batik-transcoder-1.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/batik-util-1.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/batik-xml-1.7.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/c3p0-0.9.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/cglib-nodep-2.2.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/com.springsource.org.aopalliance-1.0.0.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/com.springsource.org.apache.commons.logging-1.1.1.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/commons-beanutils-1.8.3.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/commons-codec-20041127.091804.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/commons-collections-3.2.1.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/commons-dbcp-1.4.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/commons-io-2.4.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/commons-lang-2.6.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/commons-logging-1.1.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/commons-pool-1.5.4.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/concurrent-1.3.4.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/dbunit-2.4.9.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/dom4j-1.6.1.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/doxia-core-1.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/doxia-logging-api-1.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/doxia-module-apt-1.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/doxia-module-xhtml-1.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/doxia-sink-api-1.3.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/ehcache-core-2.6.9.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/ezmorph-1.0.6.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/fop-1.1.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/google-api-translate-java-0.92.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/guava-r05.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/h2-1.3.170.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/h2mig_pagestore_addon.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/hamcrest-core-1.3.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-c3p0-4.1.10.Final.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-cglib-repack-2.1_3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-commons-annotations-4.0.1.Final.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-core-4.1.10.Final.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-ehcache-4.1.10.Final.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-entitymanager-4.1.10.Final.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-envers-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/hibernate-search-4.2.0.Final.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-analyzers-4.2.0.Final.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-engine-4.2.0.Final.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-orm-4.2.0.Final.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-validator-4.3.1.Final.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/hsqldb-1.8.0.10.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/httpclient-4.2.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/httpcore-4.2.4.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/icu4j-2.6.1.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0-SNAPSHOT-sources.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/identificationKeyAPI-1.0-SNAPSHOT.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/itextpdf-5.4.0.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/jackson-core-asl-1.8.8.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/jackson-mapper-asl-1.8.8.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/jakarta-regexp-1.4.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/javassist-3.17.1-GA.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-api-2.2.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-impl-2.2-EA.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-xjc-2.2-EA.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/jaxb1-impl-2.2-EA.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/jaxen-1.1.4.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/jboss-logging-3.1.3.GA.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/jdbc4-2.0.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/jdom-1.1.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/jena-core-2.11.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/jena-iri-1.0.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/joda-time-2.1.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/junit-benchmarks-0.5.0.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/log4j-1.2.17.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/lsid-client-1.1.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/lsid-server-1.1.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/lucene-analyzers-3.6.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/lucene-core-3.6.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/lucene-facet-3.6.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/lucene-grouping-3.6.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/lucene-highlighter-3.6.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/lucene-kuromoji-3.6.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/lucene-memory-3.6.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/lucene-misc-3.6.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/lucene-phonetic-3.6.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/lucene-queries-3.6.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/lucene-smartcn-3.6.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/lucene-spatial-3.6.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/lucene-spellchecker-3.6.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/lucene-stempel-3.6.2.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/mchange-commons-java-0.2.3.3.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/mysql-connector-java-5.1.24.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/ognl-2.6.9.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/opencsv-2.3.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.common-3.6.0.v20110523.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.osgi-3.7.2.v20120110-1415.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/org.osgi.core-1.0.0.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/org.springframework.aop-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/org.springframework.aspects-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/org.springframework.beans-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/org.springframework.context-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/org.springframework.core-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/org.springframework.expression-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/org.springframework.jdbc-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/org.springframework.orm-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/org.springframework.oxm-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/org.springframework.test-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/org.springframework.transaction-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/org.springframework.web-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/org.springframework.web.servlet-3.2.2.RELEASE.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/osgi-3.6.0.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/p6spy-1.3.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/paranamer-2.3.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/plexus-classworlds-1.2-alpha-9.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/plexus-container-default-1.0-alpha-30.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/plexus-utils-2.0.5.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/poi-3.10-FINAL.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/poi-ooxml-3.10-FINAL.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/poi-ooxml-schemas-3.10-FINAL.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/postgresql-9.1-901.jdbc4.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/sanselan-0.97-incubator.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/servlet-api-2.5.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/slf4j-api-1.7.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/slf4j-log4j12-1.7.2.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/snappy-java-1.0.4.1.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/solr-analysis-extras-3.6.2.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/solr-core-3.6.2.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/solr-solrj-3.6.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/spring-aop-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/spring-beans-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/spring-context-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/spring-context-support-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/spring-core-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/spring-expression-3.2.2.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/spring-modules-cache-0.7.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-config-3.1.3.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-core-3.1.3.RELEASE.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-remoting-3.1.3.RELEASE.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/stax-1.2.0.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/stax-api-1.0.1.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/swagger-annotations-1.3.5.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/unitils-core-3.4.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/unitils-database-3.4.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/unitils-dbmaintainer-3.4.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/unitils-dbunit-3.4.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/unitils-spring-3.4.2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/usertype.jodatime-2.0.1.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/usertype.spi-2.0.1.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/validation-api-1.0.0.GA.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/wsdl4j-1.6.2.jar -text
 eu.etaxonomy.taxeditor.cdmlib/lib/xalan-2.6.0.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/xercesImpl-2.11.0.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/xml-apis-1.0.b2.jar -text
-eu.etaxonomy.taxeditor.cdmlib/lib/xml-apis-ext-1.3.04.jar -text
 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/xmlbeans-2.3.0.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/xmlunit-1.4.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
@@ -459,7 +322,6 @@ eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/po
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/CreateNodeOperation.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/DeleteNodeOperation.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/operation/RefreshNodeNumberingOperation.java -text
-eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractGroup.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractGroupedContainer.java -text
 eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractHomotypicalGroupContainer.java -text
@@ -1318,7 +1180,6 @@ eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CsvE
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CsvNameExportWizard.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CsvPrintExportWizard.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/DarwinCoreArchiveExportWizard.java -text
-eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/EndnoteImportWizard.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ExcelNormalExplicitTaxaImportWizard.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ExportToFileDestinationWizardPage.java -text
 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/GenericConfiguratorWizardPage.java -text
@@ -1903,7 +1764,6 @@ eu.etaxonomy.taxeditor.test/src/main/resources/datasources.xml -text
 eu.etaxonomy.taxeditor.test/src/main/resources/eu/etaxonomy/cdm/api/cache/CdmClientCachingTest.xml -text
 eu.etaxonomy.taxeditor.test/src/main/resources/eu/etaxonomy/cdm/cdm.datasources.xml -text
 eu.etaxonomy.taxeditor.test/src/main/resources/eu/etaxonomy/cdm/model/PolytomousKeyTest.xml -text
-eu.etaxonomy.taxeditor.test/src/main/resources/eu/etaxonomy/cdm/model/TaxonNameEditorTest.xml -text
 eu.etaxonomy.taxeditor.test/src/main/resources/eu/etaxonomy/cdm/model/TaxonNavigatorTest.xml -text
 eu.etaxonomy.taxeditor.test/src/main/resources/eu/etaxonomy/cdm/testRemotingApplicationContext.xml -text
 eu.etaxonomy.taxeditor.test/src/main/resources/eu/etaxonomy/taxeditor/lazyloading/AbstractLazyInitializerTest.xml -text
@@ -1917,7 +1777,6 @@ eu.etaxonomy.taxeditor.test/src/main/resources/unitils.properties -text
 eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/cdm/api/cache/CdmClientCachingTest.java -text
 eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/cdm/api/cache/CdmModelGetMethodCacherTest.java -text
 eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/cdm/model/PolytomousKeyTest.java -text
-eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/cdm/model/TaxonNameEditorTest.java -text
 eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/cdm/model/TaxonNavigatorTest.java -text
 eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/application/menu/general/NewMenuTest.java -text
 eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java -text
@@ -1973,6 +1832,12 @@ src/site/fml/troubleshooting.fml -text
 src/site/resources/css/site.css -text
 src/site/resources/images/taxeditor_transformed.png -text
 src/site/site.xml -text
+eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ExportSequenceToFileHandler.java -text
+eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/io/CDMSequenceMatrixAdapter.java -text
+eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/io/SequenceIDIterator.java -text
+eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/io/wizard/ExportSingleReadAlignmentWizard.java -text
+eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/io/wizard/ExportSingleReadAlignmentWizardPage.java -text
+eu.etaxonomy.taxeditor.molecular/src/test/java/eu/etaxonomy/taxeditor/molecular/io/SequenceIDIteratorTest.java -text
 
 # The following files will be ignored when merging another
 # branch into this branch in case of merge conflict and
@@ -1985,13 +1850,9 @@ src/site/site.xml -text
 **/pom.xml merge=ours
 **/MANIFEST.MF merge=ours
 **/feature.xml merge=ours
-eu.etaxonomy.taxeditor.cdmlib/.classpath merge=ours
 eu.etaxonomy.taxeditor.cdmlib/build.properties merge=ours
-eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/handler/ExportSequenceToFileHandler.java -text
-eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/io/CDMSequenceMatrixAdapter.java -text
-eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/io/SequenceIDIterator.java -text
-eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/io/wizard/ExportSingleReadAlignmentWizard.java -text
-eu.etaxonomy.taxeditor.molecular/src/main/java/eu/etaxonomy/taxeditor/molecular/io/wizard/ExportSingleReadAlignmentWizardPage.java -text
-eu.etaxonomy.taxeditor.molecular/src/test/java/eu/etaxonomy/taxeditor/molecular/io/SequenceIDIteratorTest.java -text
-eu.etaxonomy.taxeditor/eu.etaxonomy.taxeditor.product merge=ours
+eu.etaxonomy.taxeditor.printpublisher/build.properties merge=ours
 eu.etaxonomy.taxeditor/eu.etaxonomy.taxeditor.product.with.jre merge=ours
+eu.etaxonomy.taxeditor/eu.etaxonomy.taxeditor.product merge=ours
+
+
index 55b96930b4a365bc9db404690948b3758815f92a..b99e496b08421d8ccd0938108530e539c4bde929 100644 (file)
@@ -14,12 +14,14 @@ eu.etaxonomy.taxeditor.cdmlib/lib/cdmlib*
 eu.etaxonomy.taxeditor.cdmlib/lib/http*
 eu.etaxonomy.taxeditor.cdmlib/lib/JavaAPIforKml*.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/iiif-apis*.jar
-eu.etaxonomy.taxeditor.cdmlib/lib/commons-beanutils*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/commons-lang3*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/commons-text*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/commons-codec*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/commons-imaging*.jar
 
 eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.servletbridge.extensionbundle-1.2.0.v20100503.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.transforms.hook-1.0.300.v20100719.jar
 eu.etaxonomy.taxeditor.cdmlib/lib/org.eclipse.equinox.weaving.hook-1.0.100.v20110502.jar
-eu.etaxonomy.taxeditor.cdmlib/log4j-1.2.14src.zip
 eu.etaxonomy.taxeditor.feature.platform/bin
 eu.etaxonomy.taxeditor.feature/compile.eu.etaxonomy.taxeditor.product.feature.xml
 eu.etaxonomy.taxeditor.feature/plugin_customization.ini
@@ -34,11 +36,108 @@ 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
 eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/cdm/database/schema/PUBLIC.xsd
 workbench.xmi
+eu.etaxonomy.taxeditor.cdmlib/lib/jackson-annotations-2.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/jackson-core-2.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/jackson-databind-2.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/h2-1.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/classmate-1.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/javax.el-api-3.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/validation-api-2.*.Final.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/jakarta.validation-api-*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/jboss-logging-3.*.Final.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/slf4j-api-1.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/log4j-api-2.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/log4j-core-2.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/log4j-slf4j-impl-2.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/jcl-over-slf4j-*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-validator-6.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-validator-cdi-6.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/aspectjrt-1.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/aspectjweaver-1.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/aopalliance-1.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/spring-aop-4.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/spring-aspects-4.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/spring-beans-4.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/spring-context-4.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/spring-core-4.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/spring-expression-4.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/spring-jdbc-4.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/spring-oxm-4.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/spring-orm-4.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-core-4.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/spring-test-4.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/spring-tx-4.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/spring-web-4.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/javax.persistence-api-*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/byte-buddy-*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/mysql-connector-java-*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/postgresql-*.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.cdmlib/lib/commons-lang-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
+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-beanutils-1.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/json-lib-2.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/commons-math3-3.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-api-2.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/javax.activation-api-1.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/opencsv-2.3.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/joda-time-2.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/usertype.core-7.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-core-5.*.Final.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-entitymanager-5.*.Final.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-envers-5.*.Final.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-engine-5.*.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.cdmlib/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.cdmlib/lib/mchange-commons-java-*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/jboss-transaction-api_1.2_spec-1.*.Final.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/itextpdf-5.*.jar
+eu.etaxonomy.taxeditor.cdmlib/lib/json-2*.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-*.jar
+eu.etaxonomy.taxeditor.local/lib/cdmlib-remote-webapp.war
+eu.etaxonomy.taxeditor.local/lib/cdmlib-remote-webapp.war
+eu.etaxonomy.taxeditor.local/lib/cdmlib-remote-webapp-*.war
+eu.etaxonomy.taxeditor.local/lib/log4j-core-*.jar
+eu.etaxonomy.taxeditor.local/lib/log4j-api-*.jar
+eu.etaxonomy.taxeditor.printpublisher/lib/cdmlib-*.jar
+eu.etaxonomy.taxeditor.printpublisher/lib/fop-2.*.jar
index 0df61ad85536d2f4b341abc121cfae15a02f3921..d7f983e4a4ac72a1d83413a2b6cbb11876798d8a 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
 ## Users
 
-End users please see http://wp5.e-taxonomy.eu/taxeditor
+End users please see https://cybertaxonomy.org/taxeditor/
 
 ## Developers
 
-Developer resources are fund in the wiki: https://dev.e-taxonomy.eu/redmine/projects/edit/wiki/TaxonomicEditorDev
+Developer resources are found in the wiki: https://dev.e-taxonomy.eu/redmine/projects/edit/wiki/TaxonomicEditorDev
index a8f3a52a855a37276b68668f1a2fc149b3efb9a5..fa088d5dae998b90ffed3a328b871146e6694292 100644 (file)
@@ -2,13 +2,15 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Application
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.application;singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.42.0
 Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin
 Bundle-Vendor: EDIT
 Bundle-Localization: OSGI-INF/l10n/plugin
 Export-Package: eu.etaxonomy.taxeditor
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
+ eu.etaxonomy.taxeditor.local,
+ eu.etaxonomy.taxeditor.cdmlib,
  eu.etaxonomy.taxeditor.store,
  eu.etaxonomy.taxeditor.navigation,
  eu.etaxonomy.taxeditor.editor,
@@ -38,15 +40,15 @@ Require-Bundle: org.eclipse.ui,
  org.eclipse.e4.core.di,
  org.eclipse.e4.core.services,
  org.eclipse.e4.core.di.annotations,
- eu.etaxonomy.taxeditor.cdmlib,
  org.eclipse.osgi.services,
  org.eclipse.equinox.event
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: eu.etaxonomy.cdm.database,
- javax.annotation;version="1.0.0";resolution:=optional,
+ javax.annotation;version="1.2.0",
  javax.inject;version="1.0.0",
- org.apache.log4j,
+ org.apache.logging.log4j,
+ org.apache.logging.log4j.core,
  org.eclipse.equinox.app,
  org.eclipse.equinox.p2.repository.metadata,
  org.osgi.framework,
index 25c5979651f3b9f41f8d795ea78af0650dbcd588..4ea77b4e696a9e780e55775f8baad3b41404ba1c 100644 (file)
@@ -1,7 +1,7 @@
 productName=EDIT Taxonomic Editor\r
 productBlurb=EDIT Taxonomic Editor\n\Version: {0}\nBuild Date: {1} CET\n\n\\r
 Copyright (C) 2009-2018 EDIT\n\European Distributed Institute of Taxonomy \n\\r
-http://cybertaxonomy.eu/ \n\n\\r
+https://cybertaxonomy.org/ \n\n\\r
 The contents of this product are subject to the Mozilla Public License Version 1.1,  \n\\r
 You may not use this product except in compliance with the License. \n\\r
 You may obtain a copy of the License at http://www.mozilla.org/MPL/ \n\\r
index cd8799999c01eaa00c9976f42fcf445cdfc8b3e3..76b905e12d2b4561600e73433d18c3260ed8e03e 100644 (file)
@@ -1,7 +1,7 @@
 productName=EDIT Taxonomischer Editor
 productBlurb=EDIT Taxonomischer Editor\n\Version: {0}\nBuild Date: {1} CET\n\n\
 Copyright (C) 2009-2014 EDIT\n\European Distributed Institute of Taxonomy \n\
-http://cybertaxonomy.eu/ \n\n\
+https://cybertaxonomy.org/ \n\n\
 The contents of this product are subject to the Mozilla Public License Version 1.1  \n\
 You may not use this product except in compliance with the License. \n\
 You may obtain a copy of the License at http://www.mozilla.org/MPL/ \n\
index 581cfb2b459a428a71f4fe96bef2ccdbcbba83f1..a67aa6b210a75b4f12b06c90d581bf0361841bcd 100644 (file)
@@ -37,7 +37,7 @@
         <children xsi:type="menu:HandledMenuItem" xmi:id="_35iN8B7PEeeC-JvycL9ysA" elementId="org.eclipse.ui.main.menu.window.preferences" label="%command.label.12" command="_l9kXoB7PEeeC-JvycL9ysA"/>
       </children>
       <children xsi:type="menu:Menu" xmi:id="_KDFiMB6tEeePLJ5to5QrXQ" elementId="org.eclipse.ui.main.menu.admin" label="%menu.label.4">
-        <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_QAx6wD8_EemTy7SLZkowuQ" coreExpressionId="hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
+        <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_QAx6wD8_EemTy7SLZkowuQ" coreExpressionId="hasROLE_USER_MANAGER_OR_hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_RsV7EB-IEeeIA_2gwq7JKg" elementId="org.eclipse.ui.main.menu.admin.dbpreferences" label="%command.label.23" command="_JXXNIB-IEeeIA_2gwq7JKg">
           <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_ckfJUB-IEeeIA_2gwq7JKg" coreExpressionId="hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
         </children>
index 53053d16e0bd2f7feac2b9acaac67bea55fa65fe..0836416e2ff484d088f4b71aa0717ef9f427eb07 100644 (file)
@@ -46,7 +46,7 @@
       <perspective
             class="eu.etaxonomy.taxeditor.perspective.DescriptiveDataSetPerspective"
             id="eu.etaxonomy.taxeditor.perspective.DescriptiveDataSetPerspective"
-            name="Descriptive Data Set">
+            name="Descriptive Dataset">
       </perspective>
      
    </extension>
index e2a9a4fec5c170af23bb8f13ba0f5ed1c3b2187b..755ba26d245a83a760fda5a1abc5febd98507923 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.16.0</version>
+    <version>5.42.0</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index 932071f0fdbd436d72edac9bcb18131e6e3f8d27..ae058587103de352454d81411886bf5f1e2b830f 100644 (file)
@@ -1,6 +1,8 @@
 package eu.etaxonomy.taxeditor;
 
 
+import java.io.OptionalDataException;
+
 import org.apache.http.NoHttpResponseException;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.ui.application.IWorkbenchConfigurer;
@@ -12,6 +14,7 @@ import org.eclipse.ui.statushandlers.StatusAdapter;
 import org.springframework.remoting.RemoteAccessException;
 import org.springframework.remoting.RemoteConnectFailureException;
 
+import eu.etaxonomy.cdm.persistence.permission.PermissionDeniedException;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmAuthenticationException;
@@ -76,57 +79,80 @@ public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
 
                    if(statusAdapter.getStatus().matches(IStatus.ERROR)) {
 
-                       IStatus status = statusAdapter.getStatus();
                        Throwable t = statusAdapter.getStatus().getException();
-                       // NOTE : the global status handling mechanism in the case of
-                       //        runtime exceptions is called twice, once by the application
-                       //        throwing the exception and then by the rcp logging mechanism
-                       //        The check below is to make sure that the same exception is
-                       //        not shown twice in succession.
-                       if(t != null && previousT == t) {
-                       return;
-                   }
-                       previousT = t;
-
-                if (t != null && ( t instanceof NoHttpResponseException || (t.getCause() != null && t.getCause() instanceof CdmAuthenticationException) || (t.getMessage() != null && t.getMessage().contains("status code = 403")))){
-                    MessagingUtils.informationDialog("Access denied", MessagingUtils.ACCESS_DENIED);
-
-                }else
-
-                       // NOTE : Currently we only allow RuntimeExceptions since
-                       //        allowing all kinds of exceptions would also include
-                       //        those in generated status objects coming from from logging triggers
-                       //        leading to a recursive infinite loop of :
-                       //        initial exception thrown -> status handling -> dialog opening + logging of status ->
-                       //        status handling -> dialog opening + logging of status ... and so on
-                       if(t != null &&
-                               t instanceof RuntimeException &&
-                               ! "Widget is disposed".equals(t.getMessage()) &&
-                               ! handleKnownRuntimeException(t,statusAdapter.getStatus().getPlugin())) {
-
-                           MessagingUtils.errorDialog("Error",
-                                   null,
-                                   MessagingUtils.UNEXPECTED_ERROR_MESSAGE,
-                                   statusAdapter.getStatus().getPlugin(),
-                                   t,
-                                   true);
-
-                       } else if (t != null && ("Widget is disposed".equals(t.getMessage()))){
-                    MessagingUtils.warn(this.getClass(), t);
-                    if (PreferencesUtil.isShowUpWidgetIsDisposedMessages()){
-                        MessagingUtils.errorDialog("Widget is disposed",
-                                null,
-                                MessagingUtils.WIDGET_IS_DISPOSED_MESSAGE,
-                                statusAdapter.getStatus().getPlugin(),
-                                t,
-                                true);
-
+                       if (t != null){
+                       // NOTE : the global status handling mechanism in the case of
+                       //        runtime exceptions is called twice, once by the application
+                       //        throwing the exception and then by the rcp logging mechanism.
+                       //        The check below is to make sure that the same exception is
+                       //        not shown twice in succession.
+                       if(previousT == t) {
+                       return;
+                   }
+                       previousT = t;
+
+                       if (t.getCause() instanceof PermissionDeniedException){
+                           MessagingUtils.informationDialog("Permission denied", MessagingUtils.PERMISSION_DENIED);
+                   }
+                       else if (t instanceof NoHttpResponseException
+                                 || t.getCause() instanceof CdmAuthenticationException
+                                 || (t.getMessage() != null && t.getMessage().contains("status code = 403"))){
+                               t.printStackTrace();
+                        MessagingUtils.informationDialog("Access denied", MessagingUtils.ACCESS_DENIED);
+                    }else if (includesCause(t, OptionalDataException.class)){
+                        MessagingUtils.informationDialog("Error (OptionalDataException)",
+                                MessagingUtils.RESTART_EDITOR_MESSAGE
+                                );
+                    }else
+
+                       // NOTE : Currently we only allow RuntimeExceptions since
+                       //        allowing all kinds of exceptions would also include
+                       //        those in generated status objects coming from from logging triggers
+                       //        leading to a recursive infinite loop of :
+                       //        initial exception thrown -> status handling -> dialog opening + logging of status ->
+                       //        status handling -> dialog opening + logging of status ... and so on
+                       if(t instanceof RuntimeException &&
+                               ! "Widget is disposed".equals(t.getMessage()) &&
+                               ! handleKnownRuntimeException(t,statusAdapter.getStatus().getPlugin())) {
+
+                           MessagingUtils.errorDialog("Error",
+                                   null,
+                                   MessagingUtils.UNEXPECTED_ERROR_MESSAGE,
+                                   statusAdapter.getStatus().getPlugin(),
+                                   t,
+                                   true);
+
+                       } else if (("Widget is disposed".equals(t.getMessage()))){
+                        MessagingUtils.warn(this.getClass(), t);
+                        if (PreferencesUtil.isShowUpWidgetIsDisposedMessages()){
+                            MessagingUtils.errorDialog("Widget is disposed",
+                                    null,
+                                    MessagingUtils.WIDGET_IS_DISPOSED_MESSAGE,
+                                    statusAdapter.getStatus().getPlugin(),
+                                    t,
+                                    true);
+                        }
                     }
-                }
+                       }
                    }
                }
 
-               private boolean handleKnownRuntimeException(Throwable t, String pluginId) {
+               /**
+                * Analyzes whether the throwable includes an exception of type clazz
+                * in the stacktrace.
+         */
+        private <T extends Exception> boolean includesCause(Throwable t, Class<? extends Throwable> clazz) {
+            boolean result = false;
+
+            if (clazz.isAssignableFrom(t.getClass()) ){
+                return true;
+            }else if (t.getCause() != null && t.getCause() != t){
+                return includesCause(t.getCause(), clazz);
+            }
+            return result;
+        }
+
+        private boolean handleKnownRuntimeException(Throwable t, String pluginId) {
                    if(t instanceof RemoteConnectFailureException ||
                            t.getCause() instanceof RemoteConnectFailureException) {
                        MessagingUtils.errorDialog("Connection Failure",
index 7b5469b04d209d5ae9e71b9e711f32592699847a..773cfc736cb602494e8ecf098a7aff15a849be68 100644 (file)
@@ -14,10 +14,7 @@ import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
 import org.eclipse.ui.application.WorkbenchWindowAdvisor;
 import org.eclipse.ui.internal.WorkbenchWindow;
 
-import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
 import eu.etaxonomy.taxeditor.handler.update.P2Util;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.util.ApplicationUtil;
 
 /**
@@ -45,7 +42,7 @@ public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
                configurer.setTitle(ApplicationUtil.getTitle());
                configurer.setShowProgressIndicator(true);
 
-               CdmDataSourceRepository.createDefaultH2DataSource();
+//             CdmDataSourceRepository.createDefaultH2DataSource();
        }
 
        @Override
@@ -66,10 +63,10 @@ public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
         }
 
            P2Util.setP2UpdateRepositories();
-
-           if(PreferencesUtil.shouldConnectAtStartUp()) {
-                   CdmStore.connect();
-        }
+//      TODO: think about how to implement this with
+//         if(PreferencesUtil.shouldConnectAtStartUp()) {
+//                 CdmStore.connect();
+//        }
        }
 
        @Override
index 53158ef30d832c09216239b57a99250c60ec65e2..ab267fafc900dc377489e819d4741b811f64347d 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2017 EDIT
 * European Distributed Institute of Taxonomy
@@ -47,7 +46,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author pplitzner
  * @date 05.07.2017
- *
  */
 public class LifeCycleManager implements IContextListener{
 
@@ -74,7 +72,6 @@ public class LifeCycleManager implements IContextListener{
     private void processAdditions(MApplication application) {
         this.application = application;
         hideParts();
-
     }
 
     @ProcessRemovals
@@ -120,24 +117,14 @@ public class LifeCycleManager implements IContextListener{
             }catch(IllegalStateException e){
                 //application does not have an active window
             }
-
         }
-
-
-
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
 
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void contextStop(IMemento memento, IProgressMonitor monitor) {
         hideParts();
@@ -156,9 +143,6 @@ public class LifeCycleManager implements IContextListener{
         }
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void contextStart(IMemento memento, IProgressMonitor monitor) {
         PreferencesUtil.setDefaults();
@@ -171,7 +155,6 @@ public class LifeCycleManager implements IContextListener{
                 .getActiveWorkbenchWindow();
         if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey())){
 
-
             IPerspectiveRegistry registry = workbench.getPerspectiveRegistry();
             IWorkbenchPage page = window.getActivePage();
             page.setPerspective(registry.findPerspectiveWithId("eu.etaxonomy.taxeditor.perspective.checklistperspective"));
@@ -179,7 +162,6 @@ public class LifeCycleManager implements IContextListener{
             EditorUtil.setMediaVisible(false);
         }else{
 
-
             IPerspectiveRegistry registry = workbench.getPerspectiveRegistry();
             IWorkbenchPage page = window.getActivePage();
             page.setPerspective(registry.findPerspectiveWithId("eu.etaxonomy.taxeditor.application.perspective.taxonomic"));
@@ -190,18 +172,11 @@ public class LifeCycleManager implements IContextListener{
         PreferencesUtil.checkNomenclaturalCode();
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void contextRefresh(IProgressMonitor monitor) {
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
     }
-
-}
+}
\ No newline at end of file
index 0067f170cc85f740d6e19ff43aaeb80b5c369044..fa9f52c95339edd6e7cd0435e61b77136500f1f9 100644 (file)
@@ -1,6 +1,7 @@
 package eu.etaxonomy.taxeditor;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.equinox.p2.core.IProvisioningAgent;
 import org.eclipse.equinox.p2.engine.IProfileRegistry;
 import org.eclipse.equinox.p2.operations.ProvisioningSession;
@@ -21,8 +22,8 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
  * @author n.hoffmann
  */
 public class TaxonomicEditorPlugin extends AbstractUIPlugin {
-       private static final Logger logger = Logger
-                       .getLogger(TaxonomicEditorPlugin.class);
+
+       private static final Logger logger = LogManager.getLogger();
 
        // The plug-in ID
        /** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.application"</code> */
@@ -107,10 +108,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 f46354e15dbfed7ae2cb4a85fda4a6cce8affc1a..f80f3e7281cce1c3eb912a0355ef40076f9e5f61 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.perspective;
 
 import org.eclipse.ui.IFolderLayout;
@@ -17,17 +16,9 @@ import eu.etaxonomy.taxeditor.editor.AppModelId;
 /**
  * @author a.oppermann
  * @created Nov 18, 2014
- * @version 1.0
  */
 public class ChecklistPerspective extends Default {
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui
-        * .IPageLayout)
-        */
        @Override
        public void createInitialLayout(IPageLayout layout) {
                IFolderLayout navigationFolder = layout.createFolder("navigation",
@@ -49,6 +40,5 @@ public class ChecklistPerspective extends Default {
         layout.addPlaceholder(MEDIA_VIEW, IPageLayout.RIGHT, 0.5f, FACTUAL_DATA_VIEW);
 
         createAdditionalFolder(layout, layout.getEditorArea());
-
        }
-}
+}
\ No newline at end of file
index bee0cd579faaa3547e22e910efa8584479c605b9..345ce17b0a8f9bd476668dc5f4d054a3f155c21f 100644 (file)
@@ -1,5 +1,10 @@
 /**
+ * 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.perspective;
 
@@ -11,7 +16,6 @@ import eu.etaxonomy.taxeditor.store.AppModelId;
 
 /**
  * @author n.hoffmann
- *
  */
 public abstract class Default implements IPerspectiveFactory {
 
@@ -20,7 +24,7 @@ public abstract class Default implements IPerspectiveFactory {
        protected static final String DETAILS_VIEW = AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_VIEW_E4_DETAILS_DETAILSPARTE4;
        protected static final String SUPPLEMENTAL_VIEW = AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_VIEW_E4_SUPPLEMENTALDATA_SUPPLEMENTALDATAPARTE4;
        protected static final String NAVIGATOR = eu.etaxonomy.taxeditor.navigation.AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR;
-       protected static final String NAME_EDITOR = eu.etaxonomy.taxeditor.editor.AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_NAME_E4_TAXONNAMEEDITORE4;
+       protected static final String NAME_EDITOR = eu.etaxonomy.taxeditor.editor.AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_TAXONEDITOR;
        protected static final String FACTUAL_DATA_VIEW = eu.etaxonomy.taxeditor.editor.AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_FACTUALDATAPARTE4;
        protected static final String MEDIA_VIEW = eu.etaxonomy.taxeditor.editor.AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_MEDIA_E4_MEDIAVIEWPARTE4;
        protected static final String SEARCH_RESULTS = eu.etaxonomy.taxeditor.navigation.AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_SEARCH_E4_SEARCHRESULTVIEWE4;
@@ -28,15 +32,8 @@ public abstract class Default implements IPerspectiveFactory {
        protected static final String CONCEPT_VIEW = eu.etaxonomy.taxeditor.editor.AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_CONCEPT_E4_CONCEPTVIEWPARTE4;
        protected static final String REFERENCING_VIEW = eu.etaxonomy.taxeditor.bulkeditor.AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_BULKEDITOR_REFERENCINGOBJECTS_E4_REFERENCINGOBJECTSVIEWE4;
 
-
        public static final String ADDITIONAL = "additional";
 
-       /**
-        *
-        * @param layout
-        * @param refId
-        */
        public void createAdditionalFolder(IPageLayout layout, String refId) {
        }
-
-}
+}
\ No newline at end of file
index b39651a9cfed0f3a28637a3e5cd3e2dbb9163558..4a3583c31d06cb4f14d3328be83d9b07ae340f96 100644 (file)
@@ -17,7 +17,6 @@ import eu.etaxonomy.taxeditor.navigation.search.SearchBar;
 /**
  * @author pplitzner
  * @date 10.12.2013
- *
  */
 public class DerivatePerspective extends Default {
 
@@ -33,7 +32,5 @@ public class DerivatePerspective extends Default {
         layout.addView(DETAILS_VIEW, IPageLayout.RIGHT, 0.6f, layout.getEditorArea());
 
         layout.addView(FACTUAL_DATA_VIEW, IPageLayout.BOTTOM, 0.6f, NAVIGATOR);
-
     }
-
-}
+}
\ No newline at end of file
index 5b5bf8ae05b3744548fe545292891677b9ea325f..d8e64e7d8363ba2b8ea7e3e30741909ff506d288 100644 (file)
@@ -9,13 +9,9 @@ import eu.etaxonomy.taxeditor.navigation.AppModelId;
 
 /**
  * @author n.hoffmann
- *
  */
 public class PolytomousKey extends Default {
 
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-        */
        @Override
        public void createInitialLayout(IPageLayout layout) {
                layout.addView(AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_KEY_POLYTOMOUS_E4_POLYTOMOUSKEYVIEWPARTE4, IPageLayout.LEFT, 0.25f, layout.getEditorArea());
@@ -26,5 +22,4 @@ public class PolytomousKey extends Default {
 
                createAdditionalFolder(layout, layout.getEditorArea());
        }
-
 }
index d46b2bfd62fdcf0bd5034a24390641d9356f1186..76394f9b901213a4e17f3b11c5d334e1f1b4ac9c 100644 (file)
@@ -18,7 +18,6 @@ import eu.etaxonomy.taxeditor.navigation.search.SearchBar;
 /**
  * @author n.hoffmann
  * @created Jan 17, 2011
- * @version 1.0
  */
 public class Taxonomic extends Default {
 
index 911fdf3ee4c7dad1acc5628f4cc0e68324948c34..80a9b27acbde51d431cf19889408122830dbc7f5 100644 (file)
@@ -22,7 +22,4 @@ public class Uses extends Default {
 \r
                createAdditionalFolder(layout, layout.getEditorArea());\r
        }\r
-\r
-\r
-}\r
-\r
+}
\ No newline at end of file
index 976d4b1ea0d3c22f366947cbe5e7dd20e9501f03..893377d66a937649e61ffb1aceec86f096e3bca8 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.16.0
+Bundle-Version: 5.42.0
 Bundle-Activator: eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin
 Bundle-Vendor: EDIT
 Export-Package: eu.etaxonomy.taxeditor.annotatedlineeditor,
@@ -32,7 +32,9 @@ Require-Bundle: eu.etaxonomy.taxeditor.workbench,
  org.eclipse.e4.core.di,
  org.eclipse.nebula.widgets.nattable.extension.e4
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: eu.etaxonomy.taxeditor.editor,
+Import-Package: javax.annotation;version="1.2.0",
+ eu.etaxonomy.taxeditor.editor,
+ eu.etaxonomy.taxeditor.operation,
  org.eclipse.core.runtime,
  org.eclipse.equinox.app,
  org.eclipse.jface.text,
@@ -40,6 +42,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 584a026013dc205d2a6adcc4b6b815434cbbbe35..6531280c2047f3b34808ca647c5295ad5fa72c30 100644 (file)
@@ -1,6 +1,6 @@
 #Properties file for eu.etaxonomy.taxeditor.bulkeditor
 editor.name = Bulk Editor
-editor.name.0 = Name Editor
+editor.name.0 = Taxon Editor
 editor.name.1 = Data Import Editor
 menu.label = Bulk Editor
 menu.label.0 = Search Specimen
index 8080ba314bcdb6df63bebd60cc3a43bb95ff3fb0..223ac5c3e33af8d85f0b755942a7ad8f70588022 100644 (file)
@@ -1,6 +1,6 @@
 #Properties file for eu.etaxonomy.taxeditor.bulkeditor
 editor.name = Bulk Editor
-editor.name.0 = Namens Editor
+editor.name.0 = Taxon Editor
 editor.name.1 = Daten-Import Editor
 menu.label = Bulk Editor
 menu.label.0 = Suche Specimen
@@ -15,7 +15,7 @@ command.label.1 = Markiere als Kandidat(en) f\u00fcr Duplikatenentfernung
 command.label.2 = Entferne Kandidat f\u00fcr Duplikatenentfernung
 command.label.3 = Dedupliziere Gruppe
 command.label.4 = L\u00f6schen
-command.label.5 = Umwandeln in Person
+command.label.5 = In Person umwandeln
 command.label.6 = Umwandeln in Team
 command.name = Gruppen zusammenfügen
 command.name.0 = Setze als Ziel für Gruppenzusammenfügung
index 702acaf8446bb6bec35f37d774391c458fafea60..3d47fc30c42d6b6672a3c75020495f1cff24992f 100644 (file)
@@ -63,7 +63,7 @@
         <children xsi:type="menu:DynamicMenuContribution" xmi:id="_BRphkIKhEee80qfpLNk7uw" elementId="eu.etaxonomy.taxeditor.bulkeditor.dynamicmenucontribution.referencing.openIn" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.CdmViewerContextMenuE4"/>
       </menus>
     </elements>
-    <elements xsi:type="basic:PartDescriptor" xmi:id="_Mu8jsJRaEeeDJ72ZvUwCLA" elementId="bulkeditor.editor" label="%editor.name" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.bulkeditor/eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4">
+    <elements xsi:type="basic:PartDescriptor" xmi:id="_Mu8jsJRaEeeDJ72ZvUwCLA" elementId="bulkeditor.editor" label="%editor.name" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.bulkeditor/eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor">
       <tags>nonRestore</tags>
       <handlers xmi:id="_VdeUEJcNEeeM745tzuPNCQ" elementId="eu.etaxonomy.taxeditor.bulkeditor.e4.handler.ConvertPerson2TeamHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.bulkeditor/eu.etaxonomy.taxeditor.bulkeditor.e4.handler.ConvertPerson2TeamHandlerE4" command="_RFEJYJcNEeeM745tzuPNCQ"/>
       <handlers xmi:id="_y_IbIJcNEeeM745tzuPNCQ" elementId="eu.etaxonomy.taxeditor.bulkeditor.e4.handler.ConvertTeam2PersonHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.bulkeditor/eu.etaxonomy.taxeditor.bulkeditor.e4.handler.ConvertTeam2PersonHandlerE4" command="_PtZy4JcNEeeM745tzuPNCQ"/>
@@ -72,7 +72,7 @@
       <handlers xmi:id="_Q5hLQJcOEeeM745tzuPNCQ" elementId="eu.etaxonomy.taxeditor.bulkeditor.e4.handler.RemoveMergeCandidateHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.bulkeditor/eu.etaxonomy.taxeditor.bulkeditor.e4.handler.RemoveMergeCandidateHandlerE4" command="_MNLNYJcNEeeM745tzuPNCQ"/>
       <handlers xmi:id="_We1N8JcOEeeM745tzuPNCQ" elementId="eu.etaxonomy.taxeditor.bulkeditor.e4.handler.SetMergeCandidateHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.bulkeditor/eu.etaxonomy.taxeditor.bulkeditor.e4.handler.SetMergeCandidateHandlerE4" command="_Kkf_YJcNEeeM745tzuPNCQ"/>
       <handlers xmi:id="_a-U4EJcOEeeM745tzuPNCQ" elementId="eu.etaxonomy.taxeditor.bulkeditor.e4.handler.SetMergeTargetHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.bulkeditor/eu.etaxonomy.taxeditor.bulkeditor.e4.handler.SetMergeTargetHandlerE4" command="_GAm9cJcNEeeM745tzuPNCQ"/>
-      <handlers xmi:id="_qPOPQJcOEeeM745tzuPNCQ" elementId="eu.etaxonomy.taxeditor.annotatedlineeditor.e4.handler.NewObjectHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.bulkeditor/eu.etaxonomy.taxeditor.annotatedlineeditor.e4.handler.NewObjectHandlerE4" command="_jWkVYJcOEeeM745tzuPNCQ"/>
+      <handlers xmi:id="_qPOPQJcOEeeM745tzuPNCQ" elementId="eu.etaxonomy.taxeditor.annotatedlineeditor.e4.handler.NewObjectHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.bulkeditor/eu.etaxonomy.taxeditor.annotatedlineeditor.e4.handler.NewObjectHandler" command="_jWkVYJcOEeeM745tzuPNCQ"/>
       <handlers xmi:id="_c9ppwKK6EeeZb4PEjoRsuw" elementId="eu.etaxonomy.taxeditor.bulkeditor.e4.handler.SetMarkerFlagHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.bulkeditor/eu.etaxonomy.taxeditor.bulkeditor.e4.handler.SetMarkerFlagHandlerE4" command="_Svo9oKK6EeeZb4PEjoRsuw"/>
       <handlers xmi:id="_I8Q8cGQEEeiuIMJ7WBlkCA" elementId="eu.etaxonomy.taxeditor.bulkeditor.handler.0" contributionURI="bundleclass://eu.etaxonomy.taxeditor.bulkeditor/eu.etaxonomy.taxeditor.bulkeditor.e4.handler.CopyHandler" command="_FSL3YGQEEeiuIMJ7WBlkCA"/>
       <menus xsi:type="menu:PopupMenu" xmi:id="_B6IFsJcMEeeM745tzuPNCQ" elementId="eu.etaxonomy.taxeditor.bulkeditor.popupmenu.bulkeditor">
index e0605e147bb124965a0a460e5f3533adc0d84bfa..ef056e03d52c034eee170f7c6abaeb958e67d5d3 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>5.16.0</version>
+               <version>5.42.0</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index 75f18128fb01e1c1ffe486cd022bf2fcf8f85ec8..b74947e17aeb7e0b1c7724de1a681ef3d0cfedc3 100644 (file)
@@ -12,7 +12,8 @@ package eu.etaxonomy.taxeditor.annotatedlineeditor;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 /**
  * <p>Abstract EntityListener class.</p>
@@ -23,7 +24,7 @@ import org.apache.log4j.Logger;
 abstract public class EntityListener implements PropertyChangeListener {
 
     @SuppressWarnings("unused")
-    private static final Logger logger = Logger.getLogger(EntityListener.class);
+    private static final Logger logger = LogManager.getLogger(EntityListener.class);
 
        @Override
     public void propertyChange(PropertyChangeEvent evt) {
index bfa3825607f8aea23febb6ff6ea6547ee03493e3..e4776f2edbb211cbaf1e4e8e6d290c66bc28762b 100644 (file)
@@ -15,16 +15,12 @@ import java.util.Set;
  *
  * @author p.ciardelli
  * @created 25.06.2009
- * @version 1.0
  * @param <T>
  */
 public interface IEntityContainer<T> {
 
        /**
         * <p>getEntity</p>
-        *
-        * @param <T> a T object.
-        * @return a T object.
         */
        T getEntity();
 
@@ -32,22 +28,16 @@ public interface IEntityContainer<T> {
 
        /**
         * <p>getEditableText</p>
-        *
-        * @return a {@link java.lang.String} object.
         */
        String getEditableText();
 
        /**
         * <p>getAttachedEntities</p>
-        *
-        * @return a {@link java.util.Set} object.
         */
        Set<T> getAttachedEntities();
 
        /**
         * <p>markAsMerged</p>
-        *
-        * @param mergeTarget a T object.
         */
        void markAsMerged(T mergeTarget);
 
@@ -86,8 +76,6 @@ public interface IEntityContainer<T> {
 
        /**
         * <p>setText</p>
-        *
-        * @param text a {@link java.lang.String} object.
         */
        void setText(String text);
 
index 4601d246c6a6d98e379b16fa7ded4710d4e5031a..f48ab36cf150203cbf8a30971ea58aaad6d9336a 100644 (file)
@@ -6,18 +6,15 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.annotatedlineeditor;
 
 import java.util.Map;
 
-
 /**
  * <p>IEntityCreator interface.</p>
  *
  * @author p.ciardelli
  * @created 03.07.2009
- * @version 1.0
  */
 public interface IEntityCreator<T> {
 
@@ -25,10 +22,9 @@ public interface IEntityCreator<T> {
         * <p>createEntity</p>
         *
         * @param text a {@link java.lang.String} object.
-        * @param <T> a T object.
         * @return a T object.
         */
-       T createEntity(String text);
+       public T createEntity(String text);
 
        /**
         * <p>createEntity</p>
@@ -37,7 +33,7 @@ public interface IEntityCreator<T> {
         * @param text a {@link java.lang.String} object.
         * @return a T object.
         */
-       T createEntity(Object key, String text);
+       public T createEntity(Object key, String text);
 
        /**
         * Get a map of keys for all objects that can be created by this entity creator
@@ -45,14 +41,12 @@ public interface IEntityCreator<T> {
         *
         * @return a {@link java.util.Map} object.
         */
-       Map<? extends Object, String> getKeyLabelPairs();
+       public Map<? extends Object, String> getKeyLabelPairs();
 
        /**
         * Return a flag indicating whether this creator also saves the entities
         *
         * @return true or false
         */
-       boolean savesEntity();
-
-
-}
+       public boolean savesEntity();
+}
\ No newline at end of file
index 4f058352884d2ed86ed523361c7f5aaeb7a3d394..73d43d55e7d8a5d2fe485d8653cad8fa72b97c6e 100644 (file)
@@ -6,13 +6,11 @@
 * 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.annotatedlineeditor;
 
 import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 
-
 /**
  * Performs the retrieving and saving of a list of entities edited by a <code>ListEditor</code>,
  * interacting with the persistence layer.
@@ -21,17 +19,14 @@ import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableExcepti
  *
  * @author p.ciardelli
  * @created 07.07.2009
- * @version 1.0
  */
 public interface IEntityPersistenceService<T> {
 
        /**
         * <p>create</p>
-        *
-        * @param entity a {@link java.lang.Object} object.
         * @return a boolean.
         */
-       T create(T entity);
+       public T create(T entity);
 
        /**
         * <p>save</p>
@@ -39,7 +34,7 @@ public interface IEntityPersistenceService<T> {
         * @param entity a {@link java.lang.Object} object.
         * @return a boolean.
         */
-       T save(T entity);
+       public T save(T entity);
 
        /**
         * <p>merge</p>
@@ -48,7 +43,7 @@ public interface IEntityPersistenceService<T> {
         * @param mergeTarget a {@link java.lang.Object} object.
         * @return a boolean.
         */
-       boolean merge(T entity, T mergeTarget);
+       public boolean merge(T entity, T mergeTarget);
 
        /**
         * <p>delete</p>
@@ -57,5 +52,5 @@ public interface IEntityPersistenceService<T> {
         * @return a boolean.
         * @throws ReferencedObjectUndeletableException
         */
-       boolean delete(T entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException;
-}
+       public boolean delete(T entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException;
+}
\ No newline at end of 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.annotatedlineeditor.e4.handler;
 
 import javax.inject.Named;
@@ -24,31 +23,31 @@ import org.eclipse.jface.window.Window;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.permission.User;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
 import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
+import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput;
 import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.GroupCreator;
 import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.UserCreator;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 
 /**
- *
  * @author pplitzner
  * @date 12.09.2017
- *
  */
-public class NewObjectHandlerE4 {
+public class NewObjectHandler {
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             @Named(IServiceConstants.ACTIVE_SHELL)Shell shell,
             MHandledMenuItem menuItem) {
-        if(!(activePart.getObject() instanceof BulkEditorE4)){
+        if(!(activePart.getObject() instanceof BulkEditor)){
             return;
         }
         Object key = menuItem.getTransientData().get(IBulkEditorConstants.DYNAMIC_OPEN_OBJECT_ID+".key");
 
-        BulkEditorE4 bulkEditor = (BulkEditorE4) activePart.getObject();
+        BulkEditor bulkEditor = (BulkEditor) activePart.getObject();
 
         if (key != null) {
             String text = menuItem.getCommand().getCommandName();
@@ -65,41 +64,42 @@ public class NewObjectHandlerE4 {
                 nonEmptyInputValidator = new IInputValidator() {
                     @Override
                     public String isValid(String text) {
-                        if(text == null || text.isEmpty()) {
+                        if(text == null || text.isEmpty() || !text.matches(User.USERNAME_REGEX)) {
                             return Messages.GROUP_CREATOR_Name_not_accepted_message;
                         }
                         return null;
                     }
                 };
             }
-            InputDialog dialog = new InputDialog(shell,
+            InputDialog dialog = null;
+            if (!(bulkEditor.getEditorInput() instanceof OccurrenceEditorInput)){
+                dialog = new InputDialog(shell,
                     String.format("Create %s", text), String.format("Enter new %s", text), "",
                     nonEmptyInputValidator);
+            }
 
-            if (dialog.open() != Window.CANCEL) {
-                IEntityCreator entityCreator = bulkEditor.getEditorInput().getEntityCreator();
-                Object createdEntity = entityCreator.createEntity(key, dialog.getValue());
+            if (dialog == null || dialog.open() != Window.CANCEL) {
+                IEntityCreator<?> entityCreator = bulkEditor.getEditorInput().getEntityCreator();
+                String title = null;
+                if (dialog != null){
+                    title = dialog.getValue();
+                }
+                Object createdEntity = entityCreator.createEntity(key, title);
                 if (createdEntity == null){
                     return;
                 }
                 bulkEditor.getEditorInput().getModel().add(createdEntity);
                 if (createdEntity instanceof CdmBase){
-                    if (!((CdmBase)createdEntity).isPersited()){
+                    if (!((CdmBase)createdEntity).isPersisted()){
                         bulkEditor.getEditorInput().addSaveCandidate((CdmBase)createdEntity);
                         bulkEditor.setDirty();
                     }
 
                 }
                 IStructuredSelection selection = new StructuredSelection(createdEntity);
-
                 bulkEditor.refresh();
-
-
                 bulkEditor.setFocus();
-
                 bulkEditor.setSelection(selection);
-
-
             }
         }
     }
@@ -108,7 +108,7 @@ public class NewObjectHandlerE4 {
     public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             MHandledMenuItem menuItem){
         boolean canExecute = false;
-        canExecute = activePart.getObject() instanceof BulkEditorE4;
+        canExecute = activePart.getObject() instanceof BulkEditor;
         menuItem.setVisible(canExecute);
         return canExecute;
     }
index 7a230c5fc41138e34b69c787c13a53a571a71c84..4f4adfa448f5b0b8551a509c1de01bcec2ce9d3b 100644 (file)
@@ -1,21 +1,17 @@
 /**
-       * Copyright (C) 2016 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.
-       */
-
+* Copyright (C) 2016 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.bulkeditor;
 /**
  * @author kluther
  * @date 29 Feb 2016
- *
  */
 public interface BulkEditorLables {
-       
-
 
            public static final String CONVERT_TEAM_2_PERSON_LABEL = "Convert Team to Person";
            public static final String CONVERT_PERSON_2_TEAM_LABEL = "Convert Person to Team";
@@ -28,8 +24,8 @@ public interface BulkEditorLables {
            public static final String NO_CONVERT_PERSON_TO_TEAM_MESSAGE = "Can not convert Person into a Team.";
            public static final String TRANSFORMATION_NOT_POSSIBLE_PERSON_PART_OF_TEAM_MESSAGE = "Person can not be transformed into team as it is already part of a team.";
            public static final String NO_CONVERT_TEAM_TO_PERSON_MESSAGE = "Can not convert Team to Person";
-          
-          
+
+
            public static final String UNSAVED_CHANGES_MESSAGE = "There are unsaved changes in the source taxon. Please save first.";
                public static final String SINGLE_PERSON_SELECTION_MESSAGE = "The chosen operation is available only for a single person";
                public static final String SINGLE_TEAM_SELECTION_MESSAGE = "The chosen operation is available only for a single team";
@@ -39,8 +35,4 @@ public interface BulkEditorLables {
                public static final String ONLY_TEAM_SELECTION_MESSAGE = "Only a team can be converted into a person.";
                public static final String ONLY_FOR_BULKEDITOR_MESSAGE = "You have to choose a line in the bulkeditor to perform this operation.";
 
-
-
-       
-
-}
+}
\ No newline at end of file
index 2ce3910b5df1c2c9f6583bc420a96c38df3402bb..53cf0820bb45babddb1585e0d7fe36a9007dbb1c 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.bulkeditor;
 
 import java.util.ArrayList;
@@ -20,7 +19,6 @@ import eu.etaxonomy.cdm.persistence.query.OrderHint;
 /**
  * @author n.hoffmann
  * @created Dec 14, 2010
- * @version 1.0
  */
 public class BulkEditorQuery {
 
index c38bf47132b7c18a234ab27d0aa00002c0239eb9..3c2892a8ee0ad640a9dbd6d03648348117f412b5 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.bulkeditor;
 
 import org.eclipse.core.commands.operations.IOperationHistory;
@@ -18,25 +17,18 @@ import org.eclipse.e4.ui.workbench.modeling.EModelService;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
 
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
 
 /**
- * <p>BulkEditorUtil class.</p>
- *
  * @author n.hoffmann
  * @created Mar 12, 2010
  */
 public class BulkEditorUtil extends AbstractUtility{
 
-       /**
-        * <p>getPluginId</p>
-        *
-        * @return a {@link java.lang.String} object.
-        */
        public static String getPluginId(){
                return TaxeditorBulkeditorPlugin.PLUGIN_ID;
        }
@@ -49,7 +41,7 @@ public class BulkEditorUtil extends AbstractUtility{
             editorAreaPartStack.getChildren().add(part);
         }
         part = partService.showPart(part, PartState.ACTIVATE);
-        BulkEditorE4 bulkEditor = (BulkEditorE4) part.getObject();
+        BulkEditor bulkEditor = (BulkEditor) part.getObject();
         bulkEditor.init(input);
        }
 
index 149f93ef4e3c7852cc127532e48059211c34537a..04eecd3a20d932fab0bdf9d43197caa45a3a7625 100644 (file)
@@ -6,18 +6,16 @@
 * 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.bulkeditor;
 
-
 /**
  * <p>IBulkEditorConstants interface.</p>
  *
  * @author p.ciardelli
  * @created 03.07.2009
- * @version 1.0
  */
 public interface IBulkEditorConstants {
+       
        /** Constant <code>TYPE_MERGE_TARGET="merge_target_annotation"</code> */
        public static final String TYPE_MERGE_TARGET = "merge_target_annotation";
        /** Constant <code>TYPE_MERGE_CANDIDATE="merge_candidate_annotation"</code> */
@@ -31,4 +29,4 @@ public interface IBulkEditorConstants {
        public static final String DYNAMIC_OPEN_OBJECT_ID = "taxeditor-bulkeditor.dynamicnewobjectcommand";
        /** Constant <code>DYNAMIC_DELETE_OBJECT_ID="taxeditor-bulkeditor.dynamicdeleteobjec"{trunked}</code> */
        public static final String DYNAMIC_DELETE_OBJECT_ID = "taxeditor-bulkeditor.dynamicdeleteobjectcommand";
-}
+}
\ No newline at end of file
index 3c9798d36a8449bf0df874d6e3700d32291ad1cd..d54758a8c15e5b60fe936c585ed9f8bb115aeb7c 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.bulkeditor;
 
 import java.util.Comparator;
@@ -16,16 +15,12 @@ import java.util.Set;
 /**
  * @author n.hoffmann
  * @created Dec 14, 2010
- * @version 1.0
  */
 public interface IBulkEditorSortProvider<T> {
 
-       /**
-        * 
-        */
        public Map<String, Comparator<T>> getComparators();     
        
        public Set<String> getComparatorNames();
        
        public Comparator<T> getComparatorByName(String name);
-}
+}
\ No newline at end of file
index 9f05028976a19bf9aee5d290c4b031b0a0ca0a85..308bf0694d64d0d08acc332aef449db194b38ede 100644 (file)
@@ -6,29 +6,26 @@
 * 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.bulkeditor.command;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.expressions.PropertyTester;
 
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 import eu.etaxonomy.taxeditor.bulkeditor.input.GroupEditorInput;
 import eu.etaxonomy.taxeditor.bulkeditor.input.MediaEditorInput;
 import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput;
-import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonEditorInput;
+import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonBulkEditorInput;
 
 /**
  * @author p.ciardelli
  * @created 21.09.2009
- * @version 1.0
  */
 public class BulkEditorPropertyTester extends PropertyTester {
 
     @SuppressWarnings("unused")
-    private static final Logger logger = Logger
-                       .getLogger(BulkEditorPropertyTester.class);
+    private static final Logger logger = LogManager.getLogger(BulkEditorPropertyTester.class);
 
        private static final String IS_MERGING_ENABLED = "isMergingEnabled";
 
@@ -43,9 +40,9 @@ public class BulkEditorPropertyTester extends PropertyTester {
        @Override
     public boolean test(Object receiver, String property, Object[] args,
                        Object expectedValue) {
-               BulkEditorE4 bulkEditor = null;
+               BulkEditor bulkEditor = null;
 
-               bulkEditor = (BulkEditorE4) receiver;
+               bulkEditor = (BulkEditor) receiver;
                if (IS_MERGING_ENABLED.equals(property)) {
                        AbstractBulkEditorInput<?> input = bulkEditor.getEditorInput();
                        return ((AbstractBulkEditorInput<?>) input).isMergingEnabled();
@@ -61,11 +58,11 @@ public class BulkEditorPropertyTester extends PropertyTester {
             return bulkEditor.getEditorInput() instanceof OccurrenceEditorInput;
                }
         else if(IS_TAXON_EDITOR.equals(property)){
-            return bulkEditor.getEditorInput() instanceof TaxonEditorInput;
+            return bulkEditor.getEditorInput() instanceof TaxonBulkEditorInput;
         }
         else if(IS_MEDIA_EDITOR.equals(property)){
             return bulkEditor.getEditorInput() instanceof MediaEditorInput;
         }
                return false;
        }
-}
+}
\ No newline at end of file
similarity index 60%
rename from eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorE4.java
rename to eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditor.java
index 1fa3f0e0cc38ff74db443bb38caec9f49dc535e3..210fbf6c993cd13eead87f0a04f4c6a94d29860b 100644 (file)
@@ -6,18 +6,25 @@
 * 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.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;
@@ -31,54 +38,61 @@ 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;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 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;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
+import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.permission.Group;
 import eu.etaxonomy.cdm.model.permission.User;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorQuery;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 import eu.etaxonomy.taxeditor.bulkeditor.input.GroupEditorInput;
-import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonEditorInput;
+import eu.etaxonomy.taxeditor.bulkeditor.input.MediaEditorInput;
+import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonBulkEditorInput;
+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;
 
 /**
  * @author pplitzner
  * @since Sep 8, 2017
  */
-public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnabled, IPostOperationEnabled,
+public class BulkEditor implements IPartContentHasDetails, IPostOperationEnabled,
         IDirtyMarkable, IDerivedUnitFacadePart, IPartContentHasFactualData,
-        IPartContentHasSupplementalData, IPartContentHasMedia, IE4SavablePart, ITaxonEditor {
+        IPartContentHasSupplementalData, IPartContentHasMedia, IE4SavablePart, ITaxonEditor, IBulkEditor {
 
     @Inject
        private MDirtyable dirty;
 
     private AbstractBulkEditorInput input;
 
-    private ConversationHolder conversation;
-
     @Inject
     private IEventBroker eventBroker;
 
@@ -90,15 +104,16 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
 
     private BulkEditorQuery lastQuery = null;
 
-    private BulkEditorE4Composite bulkEditorComposite;
+    private BulkEditorComposite bulkEditorComposite;
+
+    private Set<AbstractPostOperation> operations = new HashSet<>();
 
     @Inject
-    public BulkEditorE4() {
+    public BulkEditor() {
        }
 
     public void init(AbstractBulkEditorInput<?> input){
            this.input = input;
-           this.conversation = input.getConversation();
            thisPart.setLabel(input.getEditorName());
 
            bulkEditorComposite.init(input);
@@ -106,7 +121,7 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
 
        @PostConstruct
        public void createPartControl(Composite parent, IEclipseContext context) {
-           bulkEditorComposite = new BulkEditorE4Composite(this, parent, SWT.NONE);
+           bulkEditorComposite = new BulkEditorComposite(this, parent, SWT.NONE);
            ContextInjectionFactory.inject(bulkEditorComposite, context);
        }
 
@@ -117,30 +132,55 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
        }
 
     public void save(IProgressMonitor monitor, boolean resetMerge) {
+       IStructuredSelection selection = getLastSelection();
+       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();
         }
         input.saveModel(resetMerge);
 
-        IStructuredSelection selection = getSelection();
-
         dirty.setDirty(false);
         input.dispose();
         input.bind();
-        conversation.commit(true);
 
         if (lastQuery != null){
             bulkEditorComposite.performSearch(lastQuery, selection);
         }
+
     }
 
 
-       @Focus
+       private IStructuredSelection getLastSelection() {
+               return new StructuredSelection(this.bulkEditorComposite.getLastSelectedObject());
+       }
+
+       @Override
+    @Focus
        public void setFocus() {
         //make sure to bind again if maybe in another view the conversation was unbound
-        if(conversation!=null && !conversation.isBound()){
-            conversation.bind();
-        }
+
         if(input!=null && input.getCdmEntitySession()!= null) {
             input.getCdmEntitySession().bind();
         }
@@ -151,10 +191,6 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
 
        @PreDestroy
        public void dispose() {
-           if(conversation!=null){
-               conversation.unregisterForDataStoreChanges(this);
-               conversation.close();
-           }
            if(input!=null){
                input.dispose();
            }
@@ -173,8 +209,6 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
     @Optional
     @Inject
     private void updateAfterSearch(@UIEventTopic(WorkbenchEventConstants.BULK_EDITOR_SEARCH_FINISHED)IStructuredSelection selection){
-
-
         if(selection!=null){
             setSelection(selection);
         }
@@ -188,6 +222,11 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
         return bulkEditorComposite.getSelection();
     }
 
+    public IStructuredSelection getCellSelection(){
+        return bulkEditorComposite.getCellSelection();
+    }
+
+    @Override
     public void setSelection(IStructuredSelection selection){
         bulkEditorComposite.setSelection(selection);
     }
@@ -213,10 +252,6 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
         bulkEditorComposite.copyDataToClipboard();
     }
 
-    @Override
-    public void update(CdmDataChangeMap arg0) {
-    }
-
     @Override
     public boolean canAttachMedia() {
         return true;
@@ -238,7 +273,16 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
             if (element instanceof DescriptionBase){
                 if (element instanceof TaxonNameDescription){
                     TaxonName changedName = ((TaxonNameDescription)element).getTaxonName();
-                    getEditorInput().addSaveCandidate(changedName);
+                    if (getEditorInput() instanceof TaxonBulkEditorInput){
+                        IStructuredSelection sel = getSelection();
+                        Object firstElement = sel.getFirstElement();
+                        if (firstElement instanceof TaxonBase){
+                            getEditorInput().addSaveCandidate((TaxonBase)firstElement);
+                        }
+                    }else{
+                        getEditorInput().addSaveCandidate(changedName);
+                    }
+
                     input.replaceInModel(changedName);
                 }else if (element instanceof TaxonDescription){
                     Taxon changedTaxon = ((TaxonDescription)element).getTaxon();
@@ -248,19 +292,74 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
             }else if (element instanceof DescriptionElementBase){
                 if (((DescriptionElementBase)element).getInDescription() instanceof TaxonNameDescription){
                     TaxonName changedName = ((TaxonNameDescription)((DescriptionElementBase)element).getInDescription()).getTaxonName();
-                    getEditorInput().addSaveCandidate(changedName);
+                    //check whether the bulk editor is taxon or name bulk editor
+                    if (getEditorInput() instanceof TaxonBulkEditorInput){
+                        IStructuredSelection sel = getSelection();
+                        Object firstElement = sel.getFirstElement();
+                        if (firstElement instanceof TaxonBase){
+                            getEditorInput().addSaveCandidate((TaxonBase)firstElement);
+                        }
+                    }else{
+                        getEditorInput().addSaveCandidate(changedName);
+                    }
                     input.replaceInModel(changedName);
                 }else if (((DescriptionElementBase)element).getInDescription() instanceof TaxonDescription){
                     Taxon changedTaxon = ((TaxonDescription)((DescriptionElementBase)element).getInDescription()).getTaxon();
                     getEditorInput().addSaveCandidate(changedTaxon);
                     input.replaceInModel(changedTaxon);
+                }else if (((DescriptionElementBase)element).getInDescription() instanceof SpecimenDescription){
+                    SpecimenOrObservationBase changedSpecimen = ((SpecimenDescription)((DescriptionElementBase)element).getInDescription()).getDescribedSpecimenOrObservation();
+                    getEditorInput().addSaveCandidate(changedSpecimen);
+                    input.replaceInModel(changedSpecimen);
+                }
+            }else if (element instanceof Media && input instanceof MediaEditorInput){
+               getEditorInput().addSaveCandidate((Media)element);
+                input.replaceInModel((Media)element);
+            }else if (element instanceof Media ) {
+                IStructuredSelection sel = getSelection();
+                Object firstElement = sel.getFirstElement();
+                if (firstElement instanceof TaxonBase){
+                    TaxonBase changedTaxon = (TaxonBase)sel.getFirstElement();
+                    getEditorInput().addSaveCandidate(changedTaxon);
+                    input.replaceInModel(changedTaxon);
+                }else if (firstElement instanceof SpecimenOrObservationBase){
+                    SpecimenOrObservationBase changedSpecimen = (SpecimenOrObservationBase)sel.getFirstElement();
+                    getEditorInput().addSaveCandidate(changedSpecimen);
+                    input.replaceInModel(changedSpecimen);
                 }
             }else if(element instanceof Group){
                  Group oldGroup = ((GroupEditorInput)input).getEntityFromModel((Group)element);
                  ((GroupEditorInput)input).getSaveUserCandidates().addAll(oldGroup.getMembers());
                  getEditorInput().addSaveCandidate((Group)element);
                  input.replaceInModel((CdmBase) element);
-            }else{
+            }else if(element instanceof TaxonName && input instanceof TaxonBulkEditorInput){
+                IStructuredSelection sel = this.getSelection();
+                TaxonBase taxonBase = null;
+                if (sel.getFirstElement() instanceof TaxonBase){
+                    taxonBase = HibernateProxyHelper.deproxy(sel.getFirstElement(), TaxonBase.class);
+                }
+
+                getEditorInput().addSaveCandidate(taxonBase);
+                input.replaceInModel( taxonBase);
+            }else if(element instanceof TypeDesignationBase ){
+                IStructuredSelection sel = this.getSelection();
+                TaxonName name = null;
+                TaxonBase taxon = null;
+                if (sel.getFirstElement() instanceof TaxonName){
+                    name = HibernateProxyHelper.deproxy(sel.getFirstElement(), TaxonName.class);
+                }else if (sel.getFirstElement() instanceof TaxonBase) {
+                       taxon = HibernateProxyHelper.deproxy(sel.getFirstElement(), TaxonBase.class);
+                }
+                if (name != null) {
+                       getEditorInput().addSaveCandidate(name);
+                       input.replaceInModel( name);
+                }else {
+                       getEditorInput().addSaveCandidate(taxon);
+                       input.replaceInModel(taxon);
+                }
+
+            }
+            else{
                 getEditorInput().addSaveCandidate((CdmBase)element);
                 input.replaceInModel((CdmBase) element);
             }
@@ -284,10 +383,7 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
         return false;
     }
 
-    @Override
-    public ConversationHolder getConversationHolder() {
-        return conversation;
-    }
+
 
     public BulkEditorQuery getLastQuery() {
        return lastQuery;
@@ -317,13 +413,13 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
 
     @Override
     public void addOperation(AbstractPostOperation operation) {
-        // operations not yet used for bulk editor
+        operations.add(operation);
     }
 
     @Inject
     @Optional
     private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_NAME_EDITOR) List<CdmBase> cdmBases) {
-        if (getEditorInput() instanceof TaxonEditorInput){
+        if (getEditorInput() instanceof TaxonBulkEditorInput){
             for (CdmBase cdmBase: cdmBases){
                 if (getEditorInput().getModel().contains(cdmBase)){
                     input.performSearch(lastQuery, getSelection());
similarity index 88%
rename from eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorE4Composite.java
rename to eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorComposite.java
index 21df58400a1d57871d4186b14d769796e0fa5db4..74d725f30775bbd51c5034fa2c8a1155a0f3522b 100644 (file)
@@ -6,11 +6,11 @@
 * 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.bulkeditor.e4;
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -19,6 +19,7 @@ import java.util.Set;
 
 import javax.inject.Inject;
 
+import org.eclipse.e4.core.services.events.IEventBroker;
 import org.eclipse.e4.ui.services.EMenuService;
 import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
 import org.eclipse.jface.layout.GridDataFactory;
@@ -55,6 +56,7 @@ import org.eclipse.nebula.widgets.nattable.grid.layer.GridLayer;
 import org.eclipse.nebula.widgets.nattable.grid.layer.RowHeaderLayer;
 import org.eclipse.nebula.widgets.nattable.layer.AbstractLayer;
 import org.eclipse.nebula.widgets.nattable.layer.DataLayer;
+import org.eclipse.nebula.widgets.nattable.layer.cell.ILayerCell;
 import org.eclipse.nebula.widgets.nattable.layer.stack.DefaultBodyLayerStack;
 import org.eclipse.nebula.widgets.nattable.painter.cell.CheckBoxPainter;
 import org.eclipse.nebula.widgets.nattable.painter.cell.ImagePainter;
@@ -82,16 +84,15 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.SpecimenDescription;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorQuery;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
- *
  * @author pplitzner
  * @since Sep 8, 2017
- *
  */
-public class BulkEditorE4Composite extends Composite {
+public class BulkEditorComposite extends Composite {
 
     public static final String LABEL_CANDIDATE = "LABEL_CANDIDATE"; //$NON-NLS-1$
     public static final String LABEL_CANDIDATE_ICON = "LABEL_CANDIDATE_ICON"; //$NON-NLS-1$
@@ -119,11 +120,15 @@ public class BulkEditorE4Composite extends Composite {
 
     private ListDataProvider<CdmBase> bodyDataProvider;
 
-    private BulkEditorE4 bulkEditor;
-    private BulkEditorSearchE4 bulkEditorSearch;
+    private BulkEditor bulkEditor;
+    private BulkEditorSearch bulkEditorSearch;
+
+    @Inject
+    private IEventBroker eventBroker;
 
+    private Object lastSelectedObject;
 
-    public BulkEditorE4Composite(BulkEditorE4 bulkEditor, Composite parent, int style) {
+    public BulkEditorComposite(BulkEditor bulkEditor, Composite parent, int style) {
         super(parent, style);
         parent.setLayout(new GridLayout());
         this.bulkEditor = bulkEditor;
@@ -141,12 +146,11 @@ public class BulkEditorE4Composite extends Composite {
         bottomComposite.setLayout(new GridLayout());
        }
 
-       @SuppressWarnings("unused")
     public void init(AbstractBulkEditorInput<?> input){
 
         input.getPropertyKeys().forEach(key->columnList.add(key));
 
-           bulkEditorSearch = new BulkEditorSearchE4(this, topComposite, SWT.NONE);
+           bulkEditorSearch = new BulkEditorSearch(this, topComposite, SWT.NONE);
            //layout needed because the search bar is added after @PostConstuct method
            topComposite.getParent().layout();
 
@@ -169,7 +173,6 @@ public class BulkEditorE4Composite extends Composite {
         selectionListener.setFullySelectedRowsOnly(false);
 
         bottomComposite.layout();
-
        }
 
        private void createTable(){
@@ -294,10 +297,10 @@ public class BulkEditorE4Composite extends Composite {
             public void configureUiBindings(
                     UiBindingRegistry uiBindingRegistry) {
                 // add e4 menu to NatTable
-                        new PopupMenuBuilder(natTable, e4Menu)
-                        .withHideColumnMenuItem()
-                        .withShowAllColumnsMenuItem()
-                        .build();
+                new PopupMenuBuilder(natTable, e4Menu)
+                       .withHideColumnMenuItem()
+                       .withShowAllColumnsMenuItem()
+                       .build();
 
                 // register the UI binding for header, corner and body region
                 uiBindingRegistry.registerMouseDownBinding(
@@ -309,7 +312,6 @@ public class BulkEditorE4Composite extends Composite {
             }
         });
 
-
         //enable sorting
         natTable.addConfiguration(new SingleClickSortConfiguration());
 
@@ -359,11 +361,11 @@ public class BulkEditorE4Composite extends Composite {
        }
 
        public void performSearch(BulkEditorQuery query) {
+           eventBroker.post(WorkbenchEventConstants.CURRENT_ACTIVE_EDITOR, null);
            performSearch(query, null);
+
        }
 
-       /** {@inheritDoc}
-        * @param selection */
     public void performSearch(BulkEditorQuery query, IStructuredSelection selection) {
         if (query != null) {
             if(StoreUtil.promptCheckIsDirty(bulkEditor)){
@@ -375,14 +377,35 @@ public class BulkEditorE4Composite extends Composite {
     }
 
     public void refresh(){
+       IStructuredSelection sel = getSelection();
         natTable.doCommand(new VisualRefreshCommand());
+        this.setSelection(sel);
     }
 
     public List<String> getColumnList() {
         return columnList;
     }
 
+    public IStructuredSelection getCellSelection(){
+
+        Set<Range> selectedRowPositions = bodyLayer.getSelectionLayer().getSelectedRowPositions();
+        Collection<ILayerCell> cells = bodyLayer.getSelectionLayer().getSelectedCells();
+        if (cells.size() == 1){
+            return new StructuredSelection(cells.iterator().next().getDataValue());
+        }
+        List<Object> selectedObjects = new ArrayList<>();
+        for (Range range : selectedRowPositions) {
+            for(int i=range.start;i<range.end;i++){
+                if (i>=0){
+                    selectedObjects.add(bodyDataProvider.getRowObject(i));
+                }
+            }
+        }
+        return new StructuredSelection(selectedObjects);
+    }
+
     public IStructuredSelection getSelection(){
+
         Set<Range> selectedRowPositions = bodyLayer.getSelectionLayer().getSelectedRowPositions();
         List<Object> selectedObjects = new ArrayList<>();
         for (Range range : selectedRowPositions) {
@@ -401,18 +424,22 @@ public class BulkEditorE4Composite 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);
             }
         }
     }
 
     public void copyDataToClipboard() {
         String textData = ""; //$NON-NLS-1$
-        IStructuredSelection selection = getSelection();
+        IStructuredSelection selection = getCellSelection();
         Object[] objects = selection.toArray();
         for (Object object : objects) {
             if(object instanceof CdmBase){
                 textData += bulkEditor.getEditorInput().getText((CdmBase)object);
+            }else if (object instanceof String){
+                textData += (String)object;
+            }else {
+                textData += object.toString();
             }
         }
         final TextTransfer textTransfer = TextTransfer.getInstance();
@@ -425,24 +452,31 @@ public class BulkEditorE4Composite extends Composite {
         }
     }
 
-    ListDataProvider<CdmBase> getBodyDataProvider() {
+    protected ListDataProvider<CdmBase> getBodyDataProvider() {
         return bodyDataProvider;
     }
 
-    ESelectionService getSelService() {
+    protected ESelectionService getSelService() {
         return selService;
     }
 
-    NatTable getNatTable() {
+    protected NatTable getNatTable() {
         return natTable;
     }
 
-    public Properties getNatTableState() {
+    protected Properties getNatTableState() {
         return bulkEditorSearch.getNatTableState();
     }
 
-    File getStatePropertiesFile() {
+    protected File getStatePropertiesFile() {
         return bulkEditorSearch.getStatePropertiesFile();
     }
 
+       public Object getLastSelectedObject() {
+               return lastSelectedObject;
+       }
+
+       public void setLastSelectedObject(Object lastSelectedObject) {
+               this.lastSelectedObject = lastSelectedObject;
+       }
 }
index a16d4ebf1f647cfb9acfa22fe0a01b3c1f592a0b..4cb94d635fa14eeddf561d17d36c19f60ce3fb8e 100644 (file)
@@ -45,15 +45,15 @@ public class BulkEditorConfigLabelAccumulator implements IConfigLabelAccumulator
         }
         CdmBase rowObject = dataProvider.getRowObject(rowPosition);
         if(input.getMergeCandidates().contains(rowObject)){
-            configLabels.addLabel(BulkEditorE4Composite.LABEL_CANDIDATE);
+            configLabels.addLabel(BulkEditorComposite.LABEL_CANDIDATE);
             if(columnPosition==0){
-                configLabels.addLabel(BulkEditorE4Composite.LABEL_CANDIDATE_ICON);
+                configLabels.addLabel(BulkEditorComposite.LABEL_CANDIDATE_ICON);
             }
         }
         else if(input.getMergeTarget()==rowObject){
-            configLabels.addLabel(BulkEditorE4Composite.LABEL_TARGET);
+            configLabels.addLabel(BulkEditorComposite.LABEL_TARGET);
             if(columnPosition==0){
-                configLabels.addLabel(BulkEditorE4Composite.LABEL_TARGET_ICON);
+                configLabels.addLabel(BulkEditorComposite.LABEL_TARGET_ICON);
             }
         }
     }
index 511f1b266064c5a3cd8a9be90fb832ee7dc01866..20f27b112d97ce388eb13977950080da6d100293 100644 (file)
@@ -40,7 +40,7 @@ public final class BulkEditorLabelStyleConfiguration extends AbstractRegistryCon
                 CellConfigAttributes.CELL_STYLE,
                 candidateCellStyle,
                 DisplayMode.NORMAL,
-                BulkEditorE4Composite.LABEL_CANDIDATE);
+                BulkEditorComposite.LABEL_CANDIDATE);
         configRegistry.registerConfigAttribute(
                 CellConfigAttributes.CELL_PAINTER,
                 new CellPainterDecorator(
@@ -49,7 +49,7 @@ public final class BulkEditorLabelStyleConfiguration extends AbstractRegistryCon
                         new ImagePainter(ImageResources.getImage(ImageResources.ACTIVE_DELETE_ICON)),
                         false),
                 DisplayMode.NORMAL,
-                BulkEditorE4Composite.LABEL_CANDIDATE_ICON);
+                BulkEditorComposite.LABEL_CANDIDATE_ICON);
 
         //deduplication target style
         Style targetCellStyle = new Style();
@@ -58,7 +58,7 @@ public final class BulkEditorLabelStyleConfiguration extends AbstractRegistryCon
                 ColorResources.getColor(Resources.COLOR_BULK_EDITOR_TARGET));
         configRegistry.registerConfigAttribute(
                 CellConfigAttributes.CELL_STYLE, targetCellStyle,
-                DisplayMode.NORMAL, BulkEditorE4Composite.LABEL_TARGET);
+                DisplayMode.NORMAL, BulkEditorComposite.LABEL_TARGET);
         configRegistry.registerConfigAttribute(
                 CellConfigAttributes.CELL_PAINTER,
                 new CellPainterDecorator(
@@ -67,7 +67,7 @@ public final class BulkEditorLabelStyleConfiguration extends AbstractRegistryCon
                         new ImagePainter(ImageResources.getImage(ImageResources.IMPORT)),
                         false),
                 DisplayMode.NORMAL,
-                BulkEditorE4Composite.LABEL_TARGET_ICON);
+                BulkEditorComposite.LABEL_TARGET_ICON);
 
     }
 }
\ No newline at end of file
index 08ca6bc777253993193b0042ef0564c9acf2265b..6ea0df391eb815e791213697f0b398650b1d1ea7 100644 (file)
@@ -21,9 +21,9 @@ import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 public class BulkEditorPropertyAccessor implements IColumnPropertyAccessor<CdmBase> {
 
         private AbstractBulkEditorInput<CdmBase> input;
-        private BulkEditorE4Composite bulkEditorComposite;
+        private BulkEditorComposite bulkEditorComposite;
 
-        public BulkEditorPropertyAccessor(BulkEditorE4Composite bulkEditorComposite, AbstractBulkEditorInput<CdmBase> input) {
+        public BulkEditorPropertyAccessor(BulkEditorComposite bulkEditorComposite, AbstractBulkEditorInput<CdmBase> input) {
             super();
             this.input = input;
             this.bulkEditorComposite = bulkEditorComposite;
similarity index 97%
rename from eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorSearchE4.java
rename to eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorSearch.java
index 9dd79c2685e82127a0ec8af4a380b7f9c5bb3182..a86fa21dfa8235148853646321b87f75c7e017c8 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.bulkeditor.e4;
 
 import java.io.File;
@@ -47,15 +46,14 @@ import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
  * @author e.-m.lee
  * @author n.hoffmann
  * @created 17.08.2009
- * @version 1.0
  */
-public class BulkEditorSearchE4 {
+public class BulkEditorSearch {
 
        private static final String SEARCH = Messages.BulkEditorSearchE4_SEARCH;
 
        private static final String DEFAULT_TEXT = String.format(Messages.BulkEditorSearchE4_WILDCARD, SearchManager.WILDCARD);
 
-       private final BulkEditorE4Composite editor;
+       private final BulkEditorComposite editor;
 
     private DisplayPersistenceDialogCommandHandler displayPersistenceDialogCommandHandler;
 
@@ -67,10 +65,9 @@ public class BulkEditorSearchE4 {
 
        private Button btnManageState;
 
-
        public Object ORDER_BY = new Object();
 
-       public BulkEditorSearchE4(BulkEditorE4Composite editor, Composite parent, int style) {
+       public BulkEditorSearch(BulkEditorComposite editor, Composite parent, int style) {
                this.editor = editor;
 
                createControl(parent, style);
@@ -149,7 +146,6 @@ public class BulkEditorSearchE4 {
                }
        }
 
-
        /**
         * Creates the search textfield.
         */
@@ -223,4 +219,4 @@ public class BulkEditorSearchE4 {
                        text.setFocus();
                }
        }
-}
+}
\ No newline at end of file
index c50362d90f959a70f5696e9230501311a50061f1..8a01f594997a77135c0b213253d202faef823556 100644 (file)
@@ -49,18 +49,25 @@ public class BulkEditorTooltip extends DefaultToolTip {
         int row = this.natTable.getRowPositionByY(event.y);
 
         LabelStack configLabels = natTable.getConfigLabelsByPosition(col, row);
-        if(configLabels.hasLabel(BulkEditorE4Composite.LABEL_TARGET)){
+        if(configLabels.hasLabel(BulkEditorComposite.LABEL_TARGET)){
             return Messages.BulkEditorTooltip_TARGET;
         }
-        else if(configLabels.hasLabel(BulkEditorE4Composite.LABEL_CANDIDATE)){
+        else if(configLabels.hasLabel(BulkEditorComposite.LABEL_CANDIDATE)){
             return Messages.BulkEditorTooltip_CANDIDATE;
         }
         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
@@ -75,16 +82,16 @@ public class BulkEditorTooltip extends DefaultToolTip {
         int row = this.natTable.getRowPositionByY(event.y);
 
         LabelStack configLabels = natTable.getConfigLabelsByPosition(col, row);
-        if(configLabels.hasLabel(BulkEditorE4Composite.LABEL_CANDIDATE)
-                || configLabels.hasLabel(BulkEditorE4Composite.LABEL_TARGET)){
+        if(configLabels.hasLabel(BulkEditorComposite.LABEL_CANDIDATE)
+                || configLabels.hasLabel(BulkEditorComposite.LABEL_TARGET)){
             return true;
         }
 
         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 cdb1f7a93341341822b9fc922a8ad52980bef491..69f6c5df23e0153b1605d54499db27532c301031 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2018 EDIT
 * European Distributed Institute of Taxonomy
@@ -26,17 +25,16 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 /**
  * @author pplitzner
  * @date 09.07.2018
- *
  */
 final class CellSelectionListener extends E4SelectionListener<CdmBase> {
 
-    private BulkEditorE4Composite bulkEditor;
+    private BulkEditorComposite bulkEditor;
 
     public CellSelectionListener(
             ESelectionService service,
             SelectionLayer selectionLayer,
             IRowDataProvider<CdmBase> rowDataProvider,
-            BulkEditorE4Composite bulkEditor) {
+            BulkEditorComposite bulkEditor) {
         super(service, selectionLayer, rowDataProvider);
         this.bulkEditor = bulkEditor;
     }
@@ -49,6 +47,7 @@ final class CellSelectionListener extends E4SelectionListener<CdmBase> {
             if(selectedCells.size()==1){
                 Object rowObject = bulkEditor.getBodyDataProvider().getRowObject(cellSelectionEvent.getRowPosition());
                 bulkEditor.getSelService().setSelection(new StructuredSelection(rowObject));
+                bulkEditor.setLastSelectedObject(rowObject);
                 return;
             }
         }
@@ -59,10 +58,11 @@ final class CellSelectionListener extends E4SelectionListener<CdmBase> {
                 if (fullySelectedRowPositions[0]>=0){
                     Object rowObject = bulkEditor.getBodyDataProvider().getRowObject(fullySelectedRowPositions[0]);
                     bulkEditor.getSelService().setSelection(new StructuredSelection(rowObject));
+                    bulkEditor.setLastSelectedObject(rowObject);
                 }
                 return;
             }
         }
-        bulkEditor.getSelService().setSelection(new StructuredSelection());
+//        bulkEditor.getSelService().setSelection(new StructuredSelection());
     }
 }
index fa9464fb58e91cd8b874be3e07388eff5a4b8ae2..5b34909eb9f6e67f6767c0e61ff72aba8dbb83c9 100644 (file)
@@ -27,7 +27,7 @@ import org.eclipse.jface.viewers.StructuredSelection;
 
 import eu.etaxonomy.cdm.model.common.IAnnotatableEntity;
 import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -85,7 +85,7 @@ public class DynamicMarkerTypeEditingMenuE4 {
            public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
                    MHandledMenuItem menuItem){
                boolean canExecute = false;
-               StructuredSelection selection = (StructuredSelection)((BulkEditorE4)activePart.getObject()).getSelection();
+               StructuredSelection selection = (StructuredSelection)((BulkEditor)activePart.getObject()).getSelection();
                canExecute = !selection.isEmpty() && selection.getFirstElement() instanceof IAnnotatableEntity;
                menuItem.setVisible(canExecute);
                return canExecute;
index 09a17b80c175efeda9e4957f6bc7b082b5691dae..fa09ac676e51310d622fbd82a9ed2f0959328496 100644 (file)
@@ -9,7 +9,9 @@
 
 package eu.etaxonomy.taxeditor.bulkeditor.e4.command;
 
+import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 
@@ -27,7 +29,7 @@ import org.eclipse.e4.ui.services.IServiceConstants;
 
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
 import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 
@@ -38,24 +40,46 @@ import eu.etaxonomy.taxeditor.l10n.Messages;
 public class DynamicNewObjectMenuE4 {
 
        private Map<? extends Object, String> classLabelPairs;
-    private BulkEditorE4 editor;
+    private BulkEditor editor;
 
     @AboutToShow
     public void aboutToShow(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             List<MMenuElement> items) {
 
-        editor = (BulkEditorE4) activePart.getObject();
+        editor = (BulkEditor) activePart.getObject();
 
                classLabelPairs = getClassLabelPairs();
+               
 
                MMenu menu = MMenuFactory.INSTANCE.createMenu();
         menu.setLabel(Messages.DynamicNewObjectMenuE4_NEW);
         items.add(menu);
-
-        for(final Object key : classLabelPairs.keySet()){
+        List<Object> keys = new ArrayList(classLabelPairs.keySet());
+        Collections.sort(keys, new Comparator<Object>() {
+
+                       @Override
+                       public int compare(Object o1, Object o2) {
+                               if (o1 == o2) {
+                                       return 0;
+                               }
+                               if (o1 == null) {
+                                       return -1;
+                               }
+                               if (o2 == null) {
+                                       return 1;
+                               }
+                               if (o1 instanceof String && o2 instanceof String) {
+                                       return ((String)o1).compareTo((String)o2);
+                               }
+                               return 0;
+                       }
+               });
+        for(final Object key : keys){
             createMenuItem(menu, key);
         }
        }
+    
+    
 
        private void createMenuItem(MMenu menu, final Object key){
            MHandledMenuItem menuItem = MMenuFactory.INSTANCE.createHandledMenuItem();
index 75d82fa8f9d3143bc7d50427757d3f08e3e0e160..b56c6e0aca3cd20398f48f313667045297015a71 100644 (file)
@@ -27,7 +27,7 @@ import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.strategy.merge.MergeException;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -42,7 +42,7 @@ public class ConvertPerson2TeamHandlerE4 {
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
 
-        BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
+        BulkEditor editor = (BulkEditor) activePart.getObject();
         if (editor.isDirty()){
             boolean proceed = MessageDialog.openQuestion(null,
                     "Save changes", "You have made changes that must be saved before this query can be executed. Would you like to proceed?");
@@ -64,9 +64,9 @@ public class ConvertPerson2TeamHandlerE4 {
             } catch (IllegalArgumentException e) {
                 MessagingUtils.errorDialog("Can not convert Person into a Team", null, e.getLocalizedMessage(), TaxeditorBulkeditorPlugin.PLUGIN_ID,e, true);
             } catch (MergeException e) {
-                MessagingUtils.informationDialog("Convert not possible", "Person can not be transformed into team as it is already part of a team.");
+                MessagingUtils.informationDialog("Convert not possible", "Person can not be transformed into team. Probably it is referenced in a way that allows only persons. Check referencing objects view for details.");
             }
-            if (result != null &&result.isOk()){
+            if (result != null && result.isOk()){
                 team = (Team)result.getCdmEntity();
                 editor.getEditorInput().getModel().remove(person);
                 editor.getEditorInput().getModel().add(team);
@@ -78,7 +78,7 @@ public class ConvertPerson2TeamHandlerE4 {
     public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             MHandledMenuItem menuItem){
         boolean canExecute = false;
-        BulkEditorE4 bulkEditorE4 = (BulkEditorE4)activePart.getObject();
+        BulkEditor bulkEditorE4 = (BulkEditor)activePart.getObject();
         StructuredSelection selection = (StructuredSelection)bulkEditorE4.getSelection();
         canExecute = !selection.isEmpty() && bulkEditorE4.getEditorInput().isConvertingEnabled();
         Iterator<?> iterator = selection.iterator();
index def4d74fca5c035878bc88be8d0ad838bcfff0b3..b3e4e6e2a47432ec285c7c74f3f85238212e5ee3 100644 (file)
@@ -27,7 +27,7 @@ import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.strategy.merge.MergeException;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -41,7 +41,7 @@ public class ConvertTeam2PersonHandlerE4 {
     @Execute
        public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
 
-        BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
+        BulkEditor editor = (BulkEditor) activePart.getObject();
         if (editor.isDirty()){
             boolean proceed = MessageDialog.openQuestion(null,
                     "Save changes", "You have made changes that must be saved before this query can be executed. Would you like to proceed?");
@@ -77,7 +77,7 @@ public class ConvertTeam2PersonHandlerE4 {
     public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             MHandledMenuItem menuItem){
         boolean canExecute = false;
-        BulkEditorE4 bulkEditorE4 = (BulkEditorE4)activePart.getObject();
+        BulkEditor bulkEditorE4 = (BulkEditor)activePart.getObject();
         StructuredSelection selection = (StructuredSelection)bulkEditorE4.getSelection();
         canExecute = !selection.isEmpty() && bulkEditorE4.getEditorInput().isConvertingEnabled();
         Iterator iterator = selection.iterator();
index 5085b09a9939b6542852dc4094db1528e77ac785..7454f4c6853ccccd29a23408348fd391cb259018 100644 (file)
@@ -17,7 +17,7 @@ import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
 import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 
 /**
  *
@@ -29,7 +29,7 @@ public class CopyHandler  {
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
-        BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
+        BulkEditor editor = (BulkEditor) activePart.getObject();
         editor.copyDataToClipboard();
     }
 
@@ -37,8 +37,8 @@ public class CopyHandler  {
     public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             MHandledMenuItem menuItem) {
         boolean canExecute = false;
-        BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
-        IStructuredSelection selection = editor.getSelection();
+        BulkEditor editor = (BulkEditor) activePart.getObject();
+        IStructuredSelection selection = editor.getCellSelection();
         canExecute = selection.size()==1;
         menuItem.setVisible(canExecute);
         return canExecute;
index 954763164ee8890e72e49ee88b8afdf8b9b28c0f..a38d496d58ebea8074aadb124566f1d808c8d985 100644 (file)
@@ -51,12 +51,13 @@ import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.DeleteResultMessagingUtils;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.remoting.CdmEagerLoadingException;
+import eu.etaxonomy.taxeditor.security.RequiredPermissions;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.dialog.configurator.deleteConfigurator.DeleteConfiguratorDialog;
 
@@ -79,6 +80,7 @@ public class DeleteHandlerE4 {
     private static final String TAXON = Messages.DeleteHandler_TAXON;
     private static final String SYNONYM = Messages.DeleteHandler_SYNONYM;
     private static final String NAME = Messages.DeleteHandler_NAME;
+    private static final String OBJECT_MISSIN_RIGHTS = Messages.DeleteHandler_OBJECT_MISSING_RIGHTS;
     private static final String USER = Messages.DeleteHandler_USER;
     private static final String GROUP = Messages.DeleteHandler_GROUP;
     private static final String REFERENCE = Messages.DeleteHandler_REFERENCE;
@@ -92,7 +94,7 @@ public class DeleteHandlerE4 {
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             @Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
 
-        BulkEditorE4 editor= (BulkEditorE4) activePart.getObject();
+        BulkEditor editor= (BulkEditor) activePart.getObject();
         IStructuredSelection selection = editor.getSelection();
 
         Iterator iterator = selection.iterator();
@@ -100,7 +102,7 @@ public class DeleteHandlerE4 {
         Set<CdmBase> removeFromSelection = new HashSet();
         for(selection.iterator();iterator.hasNext();){
             CdmBase cdmBase = (CdmBase) iterator.next();
-            if (!cdmBase.isPersited()){
+            if (!cdmBase.isPersisted()){
                 editor.getEditorInput().getModel().remove(cdmBase);
                 editor.getEditorInput().getSaveCandidates().remove(cdmBase);
                 removeFromSelection.add(cdmBase);
@@ -129,16 +131,26 @@ public class DeleteHandlerE4 {
         iterator = selection.iterator();
         for(selection.iterator();iterator.hasNext();){
             CdmBase cdmBase = (CdmBase) iterator.next();
-            if (cdmBase.isPersited()){
+            if (cdmBase.isPersisted()){
                 delete(cdmBase, shell, editor);
             }
         }
     }
 
-    private void delete(CdmBase object, Shell shell, BulkEditorE4 editor){
+    private void delete(CdmBase object, Shell shell, BulkEditor editor){
         String errorMessage= OBJECT;
         DeleteConfiguratorBase config = null;
         DeleteResult result = new DeleteResult();
+        boolean deleteAllowed = CdmStore.currentAuthentiationHasPermission(object,
+                RequiredPermissions.NAME_DELETE);
+        if (!deleteAllowed){
+            MessagingUtils.messageDialog(OBJECT_MISSIN_RIGHTS, getClass(),
+                    String.format(
+                            Messages.DeleteHandler_OBJECT_MISSING_RIGHTS_MESSAGE+"\n",
+                            object.getUserFriendlyDescription()),
+                    null);
+            return;
+        }
         try {
             ICdmRepository controller;
             controller = CdmStore.getCurrentApplicationConfiguration();
@@ -157,6 +169,7 @@ public class DeleteHandlerE4 {
                 if (result_dialog != IStatus.OK){
                     return;
                 }
+
                 result = service.isDeletable(((SpecimenOrObservationBase<?>) object).getUuid(), config);
                 errorMessage = SPECIMEN_OR_OBSERVATION;
 
@@ -184,8 +197,14 @@ public class DeleteHandlerE4 {
                     if (result_dialog != IStatus.OK){
                         return;
                     }
-                    result = controller.getNameService().isDeletable(name.getUuid(), config);
-                    errorMessage = NAME;
+
+                    if (deleteAllowed){
+                        result = controller.getNameService().isDeletable(name.getUuid(), config);
+                        errorMessage = NAME;
+                    }else{
+                        errorMessage = NAME;
+                        result.setError();
+                    }
                 } catch(Exception e){
                     MessagingUtils.messageDialog(((TaxonName) object).getTitleCache() + " " +ALREADY_DELETED, getClass(),
                             Messages.DeleteHandler_ALREADY_DELETED,
@@ -271,10 +290,8 @@ public class DeleteHandlerE4 {
 
                 result = controller.getMediaService().isDeletable(media.getUuid(), config);
                 errorMessage = MEDIA;
-
             }
 
-
         } catch (Exception e){
             MessagingUtils.errorDialog(AN_EXCEPTION_OCCURED+" "+DELETE_NOT_POSSIBLE, getClass(), e.getMessage(), TaxeditorBulkeditorPlugin.PLUGIN_ID, null, true); //$NON-NLS-1$
         }
@@ -282,13 +299,13 @@ public class DeleteHandlerE4 {
             //convert first letter to upper case
             errorMessage = errorMessage.substring(0, 1).toUpperCase()+errorMessage.substring(1);
             if (!result.getExceptions().isEmpty()) {
-                List<String> messages = new ArrayList<String>();
+                List<String> messages = new ArrayList<>();
                 for (Exception e:result.getExceptions()){
                     messages.add(e.getMessage());
                 }
                 errorMessage += " " +COULD_NOT_BE_DELETED; //$NON-NLS-1$
                 //MessagingUtils.errorDialog("test", getClass(), "message", TaxeditorBulkeditorPlugin.PLUGIN_ID, result.getExceptions().iterator().next(),true);
-                DeleteResultMessagingUtils.messageDialogWithDetails(result,errorMessage, TaxeditorBulkeditorPlugin.PLUGIN_ID);
+                DeleteResultMessagingUtils.messageDialogWithDetails(result, errorMessage, TaxeditorBulkeditorPlugin.PLUGIN_ID);
             }else{
                 MessagingUtils.messageDialog(DELETE_NOT_POSSIBLE, getClass(), errorMessage+" "+COULD_NOT_BE_DELETED+" "+AN_EXCEPTION_OCCURED, null); //$NON-NLS-1$ //$NON-NLS-2$
             }
@@ -317,9 +334,9 @@ public class DeleteHandlerE4 {
     public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             MHandledMenuItem menuItem){
         boolean canExecute = false;
-        IStructuredSelection selection = ((BulkEditorE4)activePart.getObject()).getSelection();
+        IStructuredSelection selection = ((BulkEditor)activePart.getObject()).getSelection();
         canExecute = !selection.isEmpty();
-        Iterator iterator = selection.iterator();
+        Iterator<?> iterator = selection.iterator();
         for(selection.iterator();iterator.hasNext();){
             if(!(iterator.next() instanceof CdmBase)){
                 canExecute = false;
@@ -329,6 +346,4 @@ public class DeleteHandlerE4 {
         menuItem.setVisible(canExecute);
         return canExecute;
     }
-
-
-}
+}
\ No newline at end of file
index 3d922afaf7d9f7e46c5ceadf500a22f5edb7db54..3b08a95fe148fb4bce96ac4740011b7fa78cc0cc 100644 (file)
@@ -20,6 +20,7 @@ import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
 import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
@@ -28,8 +29,10 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.strategy.merge.MergeException;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorQuery;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -48,7 +51,7 @@ public class MergeGroupHandlerE4 {
             @Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             @Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
 
-        BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
+        BulkEditor editor = (BulkEditor) activePart.getObject();
         AbstractBulkEditorInput input = editor.getEditorInput();
         Set<CdmBase> mergedCandidates = new HashSet<>();
 
@@ -135,13 +138,15 @@ public class MergeGroupHandlerE4 {
         }
         editor.setDirty();
         editor.refresh();
+
+        EventUtility.postAsyncEvent(WorkbenchEventConstants.BULK_EDITOR_SEARCH_FINISHED, new StructuredSelection(mergeTarget));
     }
 
     @CanExecute
     public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             MHandledMenuItem menuItem) {
         boolean canExecute = false;
-        BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
+        BulkEditor editor = (BulkEditor) activePart.getObject();
         canExecute = !editor.getEditorInput().getMergeCandidates().isEmpty()
                 && editor.getEditorInput().getMergeTarget()!=null;
         menuItem.setVisible(canExecute);
index 28a490191860602f7691ee3f11f626caa5832503..178c481de7e5e55f8862bc307d7e1b907854ee83 100644 (file)
@@ -20,7 +20,7 @@ import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
 import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 
 /**
  *
@@ -33,7 +33,7 @@ public class RemoveMergeCandidateHandlerE4  {
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
-        BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
+        BulkEditor editor = (BulkEditor) activePart.getObject();
         IStructuredSelection selection = editor.getSelection();
         Iterator iterator = selection.iterator();
         for(selection.iterator();iterator.hasNext();){
@@ -47,8 +47,8 @@ public class RemoveMergeCandidateHandlerE4  {
     public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             MHandledMenuItem menuItem) {
         boolean canExecute = false;
-        BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
-        IStructuredSelection selection = ((BulkEditorE4)activePart.getObject()).getSelection();
+        BulkEditor editor = (BulkEditor) activePart.getObject();
+        IStructuredSelection selection = ((BulkEditor)activePart.getObject()).getSelection();
         boolean selectedMergeCandidate = false;
         Iterator iterator = selection.iterator();
         for(selection.iterator();iterator.hasNext();){
index 791860ef3f417e4939165256770243aae816717c..402391a335e4d90389eebaac42a8a6b5e40f39ea 100644 (file)
@@ -25,7 +25,7 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 import eu.etaxonomy.taxeditor.bulkeditor.e4.command.DynamicMarkerTypeEditingMenuE4;
 import eu.etaxonomy.taxeditor.bulkeditor.operation.SetMarkerFlagOperation;
 import eu.etaxonomy.taxeditor.event.EventUtility;
@@ -45,7 +45,7 @@ public class SetMarkerFlagHandlerE4 {
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             MHandledMenuItem menuItem, UISynchronize sync) {
 
-        BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
+        BulkEditor editor = (BulkEditor) activePart.getObject();
         MarkerType markerType = (MarkerType) menuItem.getTransientData().get(DynamicMarkerTypeEditingMenuE4.COMMAND_PARAMETER_MARKER_TYPE);
         boolean markerState = (boolean) menuItem.getTransientData().get(DynamicMarkerTypeEditingMenuE4.COMMAND_PARAMETER_MARKER_STATE);
 
@@ -66,7 +66,7 @@ public class SetMarkerFlagHandlerE4 {
     public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             MHandledMenuItem menuItem){
         boolean canExecute = false;
-        IStructuredSelection selection = ((BulkEditorE4)activePart.getObject()).getSelection();
+        IStructuredSelection selection = ((BulkEditor)activePart.getObject()).getSelection();
         canExecute = !selection.isEmpty();
         Iterator iterator = selection.iterator();
         for(selection.iterator();iterator.hasNext();){
index b317d3b0566bf3479cc31d05bc456bffbda9b969..4b2bf57679ae59bcca0edb20bb9283066c9faa14 100644 (file)
@@ -20,7 +20,7 @@ import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
 import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 
 /**
@@ -33,7 +33,7 @@ public class SetMergeCandidateHandlerE4 {
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
-        BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
+        BulkEditor editor = (BulkEditor) activePart.getObject();
         IStructuredSelection selection = editor.getSelection();
         Iterator iterator = selection.iterator();
         for(selection.iterator();iterator.hasNext();){
@@ -56,8 +56,8 @@ public class SetMergeCandidateHandlerE4 {
     public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             MHandledMenuItem menuItem) {
         boolean canExecute = false;
-        BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
-        IStructuredSelection selection = ((BulkEditorE4)activePart.getObject()).getSelection();
+        BulkEditor editor = (BulkEditor) activePart.getObject();
+        IStructuredSelection selection = ((BulkEditor)activePart.getObject()).getSelection();
         canExecute = !selection.isEmpty()
                 && editor.getEditorInput().isMergingEnabled();
         Iterator iterator = selection.iterator();
index 200791ef6ed453b3d9be17f2c8fa0e33231de0f5..674668f5417477ee1c39c05d4a30c5ff9a8aed2c 100644 (file)
@@ -18,7 +18,7 @@ import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
 import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 
 /**
@@ -31,7 +31,7 @@ public class SetMergeTargetHandlerE4 {
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
-        BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
+        BulkEditor editor = (BulkEditor) activePart.getObject();
         CdmBase cdmBase = (CdmBase) editor.getSelection().getFirstElement();
         AbstractBulkEditorInput input = editor.getEditorInput();
         if(input.getMergeCandidates().contains(cdmBase)){
@@ -45,8 +45,8 @@ public class SetMergeTargetHandlerE4 {
     public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             MHandledMenuItem menuItem) {
         boolean canExecute = false;
-        BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
-        IStructuredSelection selection = ((BulkEditorE4)activePart.getObject()).getSelection();
+        BulkEditor editor = (BulkEditor) activePart.getObject();
+        IStructuredSelection selection = ((BulkEditor)activePart.getObject()).getSelection();
         Object firstElement = selection.getFirstElement();
         canExecute = selection.size()==1
                 && editor.getEditorInput().isMergingEnabled()
index 912d00d3cf5c659b3eff668a8f362d70ee6a57ee..377f4aff8f276ba847fcd0ff2a959be2514477c6 100644 (file)
@@ -1,3 +1,11 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.bulkeditor.handler.defaultHandler;
 
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
@@ -15,57 +23,32 @@ import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4;
 
-public class OpenBulkEditorForIdentifiableEntityE4 extends DefaultOpenHandlerBaseE4<Object>{
+public class OpenBulkEditorForIdentifiableEntityE4 extends DefaultOpenHandlerBaseE4<IdentifiableEntity, UuidAndTitleCache<IdentifiableEntity>>{
 
-    /**
-     * {@inheritDoc}
-     */
-//    @Override
-//    protected IdentifiableEntity getEntity(UUID uuid) {
-//        return CdmStore.getCommonService().find(IdentifiableEntity.class, uuid);
-//    }
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    protected void open(Object entity, Shell shell, EPartService partService) {
-        @SuppressWarnings("rawtypes")
-        AbstractBulkEditorInput input = null;
-        if (entity instanceof UuidAndTitleCache){
-            input = AbstractBulkEditorInput.NewInstance(((UuidAndTitleCache)entity).getType(), ((UuidAndTitleCache)entity).getUuid());
-        }else if (entity instanceof IdentifiableEntity){
-            input = AbstractBulkEditorInput.NewInstance((IdentifiableEntity)entity);
-        }
+    protected void open(UuidAndTitleCache<IdentifiableEntity> entity, Shell shell, EPartService partService) {
+        AbstractBulkEditorInput<?> input = AbstractBulkEditorInput.NewInstance(entity.getType(), entity.getUuid());
         BulkEditorUtil.openBulkEditor(input, modelService, partService, application);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    protected boolean canExecute(Object entity) {
-        if (entity instanceof UuidAndTitleCache){
-            return (TaxonName.class.isAssignableFrom(((UuidAndTitleCache)entity).getType())
-                    || AgentBase.class.isAssignableFrom(((UuidAndTitleCache)entity).getType())
-                    || SpecimenOrObservationBase.class.isAssignableFrom(((UuidAndTitleCache)entity).getType())
-                    || TaxonBase.class.isAssignableFrom(((UuidAndTitleCache)entity).getType())
-                    || Reference.class.isAssignableFrom(((UuidAndTitleCache)entity).getType()));
-        }
-
-        return entity instanceof Reference
-            || entity instanceof TaxonName
-            || entity instanceof AgentBase
-            || entity instanceof SpecimenOrObservationBase
-            || entity instanceof TaxonBase
-            || entity instanceof Media
-            ;
+    protected boolean canExecute(UuidAndTitleCache<IdentifiableEntity> entity) {
+            Class<?> type = entity.getType();
+            return (TaxonName.class.isAssignableFrom(type)
+                    || AgentBase.class.isAssignableFrom(type)
+                    || SpecimenOrObservationBase.class.isAssignableFrom(type)
+                    || TaxonBase.class.isAssignableFrom(type)
+                    || Reference.class.isAssignableFrom(type)
+                    || Media.class.isAssignableFrom(type));
+    }
 
-   }
+    @Override
+    protected boolean allowsMultiple() {
+        return true;
+    }
 
     @Override
     protected String getPartId() {
         return eu.etaxonomy.taxeditor.bulkeditor.AppModelId.PARTDESCRIPTOR_BULKEDITOR_EDITOR;
     }
-
-}
+}
\ No newline at end of file
index c3c1170cdc0c1d999a96a19143aa5a6c63acfe9e..53c57f8edf1a01960083e98a80f8582500c7bc6e 100644 (file)
@@ -1,43 +1,44 @@
+/**
+* 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.bulkeditor.handler.defaultHandler;
 
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
-import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Shell;
 
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
-import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonEditorInput;
+import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonBulkEditorInput;
 import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4;
 
-public class OpenBulkEditorForTaxonNodeHandler extends DefaultOpenHandlerBaseE4<TaxonNodeDto> {
-
-//    @Override
-//    protected TaxonNode getEntity(UUID uuid) {
-//        return CdmStore.getService(ITaxonNodeService.class).load(uuid);
-//    }
+public class OpenBulkEditorForTaxonNodeHandler extends DefaultOpenHandlerBaseE4<ITaxonTreeNode, TaxonNodeDto> {
 
     @Override
     protected void open(TaxonNodeDto entity, Shell shell, EPartService partService) {
-        AbstractBulkEditorInput input = TaxonEditorInput.getInstance();
+        AbstractBulkEditorInput<?> input = TaxonBulkEditorInput.getInstance();
         input.setEntityUuid(entity.getTaxonUuid());
         BulkEditorUtil.openBulkEditor(input, modelService, partService, application);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    protected boolean canExecute(Object selection) {
-        if (((IStructuredSelection)selection).getFirstElement() instanceof TaxonNodeDto && ((IStructuredSelection)selection).size() == 1){
-            return ((TaxonNodeDto)((IStructuredSelection)selection).getFirstElement()).getTaxonUuid()!=null;
-        }
-        return false;
+    protected boolean canExecute(TaxonNodeDto selection) {
+        return selection.getTaxonUuid()!=null;
+    }
+
+    @Override
+    protected boolean allowsMultiple() {
+        return true;
     }
 
     @Override
     protected String getPartId() {
         return eu.etaxonomy.taxeditor.bulkeditor.AppModelId.PARTDESCRIPTOR_BULKEDITOR_EDITOR;
     }
-
-}
+}
\ No newline at end of file
index 105a612763bce68c5f2fdddcc41feba52afbdd90..973188067ec9528800c9663d03d65dbc15a3f415 100644 (file)
@@ -25,7 +25,6 @@ import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
 import ca.odell.glazedlists.BasicEventList;
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
@@ -55,14 +54,14 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created 25.06.2009
  */
 public abstract class AbstractBulkEditorInput<T extends CdmBase>
-        extends CdmEntitySessionInput
+        extends CdmEntitySessionInput<T>
         implements IEntityPersistenceService<T> {
 
-
     private static final String PROPERTY_PROTECTED_TITLECACHE = "Protect TitleCache";
     private static final String TYPE_PROPERTY = Messages.BulkEditorE4_TYPE;
     private static final String ID_PROPERTY = "Id"; //$NON-NLS-1$
     private static final String UUID_PROPERTY = "Uuid"; //$NON-NLS-1$
+    private static final String CREATED_BY_PROPERTY = "Created by"; //$NON-NLS-1$
 
        private UUID entityUuid;
 
@@ -75,46 +74,39 @@ public abstract class AbstractBulkEditorInput<T extends CdmBase>
 
     private Set<T> saveCandidates = new HashSet<>();
 
-
        private Set<T> markedMergeCandidates = new HashSet<>();
        private T markedMergeTarget = null;
 
        private HashMap<T, Set<T>> mergedEntities = new HashMap<>();
 
        private IEntityCreator<T> entityCreator;
-       private final ConversationHolder conversation;
+
 
     private Job searchJob;
 
        public AbstractBulkEditorInput() {
            super(true);
-           this.conversation = CdmStore.createConversation();
+
        }
 
-       static public AbstractBulkEditorInput NewInstance(BulkEditorInputType inputType) {
+       static public AbstractBulkEditorInput<?> NewInstance(BulkEditorInputType inputType) {
 
                return BulkEditorInputType.getInput(inputType);
        }
 
-       public static AbstractBulkEditorInput NewInstance(IdentifiableEntity entity) {
+       public static AbstractBulkEditorInput<?> NewInstance(IdentifiableEntity entity) {
 
                BulkEditorInputType inputType = BulkEditorInputType.getByType(entity.getClass());
-
                AbstractBulkEditorInput<?> editorInput = NewInstance(inputType);
-
                editorInput.setEntityUuid(entity.getUuid());
-
                return editorInput;
        }
 
-       public static AbstractBulkEditorInput NewInstance(Class clazz, UUID uuid) {
+       public static AbstractBulkEditorInput<?> NewInstance(Class clazz, UUID uuid) {
 
         BulkEditorInputType inputType = BulkEditorInputType.getByType(clazz);
-
         AbstractBulkEditorInput<?> editorInput = NewInstance(inputType);
-
         editorInput.setEntityUuid(uuid);
-
         return editorInput;
     }
 
@@ -140,8 +132,10 @@ public abstract class AbstractBulkEditorInput<T extends CdmBase>
         properties.add(PROPERTY_PROTECTED_TITLECACHE);
         properties.addAll(getPropertyKeys_internal());
         properties.add(TYPE_PROPERTY);
+        properties.add(CREATED_BY_PROPERTY);
         properties.add(ID_PROPERTY);
         properties.add(UUID_PROPERTY);
+
         return properties;
     }
 
@@ -165,6 +159,13 @@ public abstract class AbstractBulkEditorInput<T extends CdmBase>
         else if(property.equals(ID_PROPERTY)){
             return cdmBase.getId();
         }
+        else if(property.equals(CREATED_BY_PROPERTY)){
+            if (cdmBase.getCreatedBy() != null){
+                return cdmBase.getCreatedBy().getUsername();
+            } else {
+                return null;
+            }
+        }
         return null;
     }
 
@@ -227,19 +228,28 @@ public abstract class AbstractBulkEditorInput<T extends CdmBase>
        public void performSearch(final BulkEditorQuery bulkEditorQuery, IStructuredSelection selection) {
            //cancel previous search job
            if(searchJob!=null && searchJob.getState()!=Job.NONE){
-               searchJob.cancel();
+               boolean isCanceled = searchJob.cancel();
+               if (!isCanceled){
+                   while (!isCanceled){
+                   try {
+                       Thread.sleep(200);
+                   } catch (InterruptedException e) {
+                   }
+                   isCanceled = searchJob.cancel();
+                   }
+               }
                searchJob = null;
-               /*
-                * wait for a little while for the job to finish
-                * to avoid asynchronously loaded results of the
-                * previous search being shown in the next search
-                * (not critical but explicitly waiting for the job to finish
-                * could run into an endless loop by mistake)
-                */
-               try {
-                Thread.sleep(500);
-            } catch (InterruptedException e) {
-            }
+//             /*
+//              * wait for a little while for the job to finish
+//              * to avoid asynchronously loaded results of the
+//              * previous search being shown in the next search
+//              * (not critical but explicitly waiting for the job to finish
+//              * could run into an endless loop by mistake)
+//              */
+//             try {
+//                Thread.sleep(500);
+//            } catch (InterruptedException e) {
+//            }
            }
         model.clear();
         markedMergeCandidates.clear();
@@ -248,6 +258,7 @@ public abstract class AbstractBulkEditorInput<T extends CdmBase>
                if(getEntityUuid() != null){
                        T entity = loadEntity(getEntityUuid());
                        model.add(entity);
+                       setEntityUuid(null);
                }
                else if(bulkEditorQuery != null){
             IIdentifiableEntityServiceConfigurator<?> configurator = bulkEditorQuery.getSearchConfigurator();
@@ -257,15 +268,17 @@ public abstract class AbstractBulkEditorInput<T extends CdmBase>
             try {
                 UUID uuid = UUID.fromString(titleSearchString);
                 T entity = loadEntity(uuid);
-                //UUID search found -> add entity to list and return
-                model.add(entity);
+                //UUID search found -> add entity to list if not null and return
+                if (entity != null){
+                    model.add(entity);
+                }
                 return;
             } catch (IllegalArgumentException e) {
                 // search string was no UUID
             }
             //-> continue with standard search
 
-            int pageSize = configurator.getPageSize()!=null?configurator.getPageSize():getPageSize();
+            int pageSize = configurator.getPageSize() != null ? configurator.getPageSize():getPageSize();
             configurator.setPageSize(pageSize);
                        long count = countEntities(configurator);
                        int totalWork = count>Integer.MAX_VALUE?Integer.MAX_VALUE:(int)count;
@@ -454,16 +467,13 @@ public abstract class AbstractBulkEditorInput<T extends CdmBase>
         return getModel();
     }
 
-
     @Override
     public Map<Object, List<String>> getPropertyPathsMap() {
         // TODO Auto-generated method stub
         return null;
     }
 
-       public ConversationHolder getConversation() {
-               return conversation;
-       }
+
 
        public Set<T> getSaveCandidates() {
         return saveCandidates;
index d35b6b31447c43baee1a3e93b2d396c3e36e4458..4976a626532b2a113f04c19b9d6f067e1d6663c7 100644 (file)
@@ -35,25 +35,24 @@ import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
-
 /**
  * @author p.ciardelli
  * @created 25.06.2009
- * @version 1.0
  */
 public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase> {
 
-       private static final long serialVersionUID = 3387950621617078479L;
-
        public static final String ID = "bulkeditor.input.author";
 
        private static AgentEditorInput instance;
 
-       private static final String PROPERTY_NOMENCLATURAL_TITLE = "Abbrev. Title";
+       private static final String PROPERTY_NOMENCLATURAL_TITLE = "Abbrev. Title Cache";
+       private static final String PROPERTY_NOMENCLATURAL_TITLECACHE_PROTECTED = "Protect Abbrev. Title Cache";
        private static final String PROPERTY_FAMILY_NAME = "Family Name";
-       private static final String PROPERTY_OTHER_NAME = "Other Name";
+       private static final String PROPERTY_OTHER_NAME = "Other/Given Name";
        private static final String PROPERTY_INITIALS = "Initials";
        private static final String PROPERTY_TEAM_HAS_MORE_MEMBERS = "et al.";
+       private static final String PROPERTY_COLLECTOR_TITLECACHE = "Collector Title Cache";
+       private static final String PROPERTY_COLLECTOR_TITLECACHE_PROTECTED = "Protect Collector Title Cache";
 
        public static String getID() {
                return ID;
@@ -63,6 +62,9 @@ public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase>
        protected List<String> getPropertyKeys_internal() {
            List<String> propertyKeysInternal = new ArrayList<>();
            propertyKeysInternal.add(PROPERTY_NOMENCLATURAL_TITLE);
+           propertyKeysInternal.add(PROPERTY_NOMENCLATURAL_TITLECACHE_PROTECTED);
+           propertyKeysInternal.add(PROPERTY_COLLECTOR_TITLECACHE);
+        propertyKeysInternal.add(PROPERTY_COLLECTOR_TITLECACHE_PROTECTED);
            propertyKeysInternal.add(PROPERTY_FAMILY_NAME);
            propertyKeysInternal.add(PROPERTY_OTHER_NAME);
            propertyKeysInternal.add(PROPERTY_INITIALS);
@@ -73,8 +75,17 @@ public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase>
        @Override
        public Object getPropertyValue(TeamOrPersonBase cdmBase, String property) {
            if(property.equals(PROPERTY_NOMENCLATURAL_TITLE)){
-               return cdmBase.getNomenclaturalTitle();
+               return cdmBase.getNomenclaturalTitleCache();
            }
+           else if(property.equals(PROPERTY_NOMENCLATURAL_TITLECACHE_PROTECTED) && cdmBase.isInstanceOf(Team.class)){
+            return HibernateProxyHelper.deproxy(cdmBase, Team.class).isProtectedNomenclaturalTitleCache();
+        }
+           else if(property.equals(PROPERTY_COLLECTOR_TITLECACHE)){
+               return HibernateProxyHelper.deproxy(cdmBase, TeamOrPersonBase.class).getCollectorTitleCache();
+        }
+           else if(property.equals(PROPERTY_COLLECTOR_TITLECACHE_PROTECTED) && cdmBase.isInstanceOf(Team.class)){
+            return HibernateProxyHelper.deproxy(cdmBase, Team.class).isProtectedCollectorTitleCache();
+        }
            else if(property.equals(PROPERTY_FAMILY_NAME)
                    && cdmBase.isInstanceOf(Person.class)){
                return HibernateProxyHelper.deproxy(cdmBase, Person.class).getFamilyName();
@@ -96,12 +107,22 @@ public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase>
 
        @Override
        public boolean isBooleanProperty(String property) {
-           if(property.equals(PROPERTY_TEAM_HAS_MORE_MEMBERS)){
+           if(property.equals(PROPERTY_TEAM_HAS_MORE_MEMBERS) || property.equals(PROPERTY_NOMENCLATURAL_TITLECACHE_PROTECTED)
+                   || property.equals(PROPERTY_COLLECTOR_TITLECACHE_PROTECTED)){
                return true;
            }
            return super.isBooleanProperty(property);
        }
 
+       @Override
+    public boolean isCacheProperty(String property) {
+        if(property.equals(PROPERTY_NOMENCLATURAL_TITLECACHE_PROTECTED)
+                || property.equals(PROPERTY_COLLECTOR_TITLECACHE_PROTECTED)){
+            return true;
+        }
+        return super.isCacheProperty(property);
+    }
+
     @Override
     public String getName() {
                return BulkEditorInputType.AGENT.label;
index bdff3049c5f51fddb1073472d74b9a05a433eb39..8a549c94373ec8eae9c5f080d264c7c07ab7a591 100644 (file)
@@ -39,7 +39,7 @@ public enum BulkEditorInputType {
        OCCURRENCE(Messages.BulkEditorInputType_4, OccurrenceEditorInput.ID),
        USER(Messages.BulkEditorInputType_5, UserEditorInput.ID),
        GROUP(Messages.BulkEditorInputType_6, GroupEditorInput.ID),
-       TAXON(Messages.BulkEditorInputType_7, TaxonEditorInput.ID),
+       TAXON(Messages.BulkEditorInputType_7, TaxonBulkEditorInput.ID),
        MEDIA(Messages.BulkEditorInputType_8, MediaEditorInput.ID);
 
        public String id;
@@ -119,7 +119,7 @@ public enum BulkEditorInputType {
                        return USER;
                } else if (input instanceof GroupEditorInput) {
                        return GROUP;
-               } else if (input instanceof TaxonEditorInput){
+               } else if (input instanceof TaxonBulkEditorInput){
                        return TAXON;
                }else if (input instanceof MediaEditorInput){
             return MEDIA;
@@ -145,7 +145,7 @@ public enum BulkEditorInputType {
                case GROUP:
                        return new GroupEditorInput();
                case TAXON:
-                       return new TaxonEditorInput();
+                       return new TaxonBulkEditorInput();
                case MEDIA:
             return new MediaEditorInput();
                default:
index c1c7623bc621ee76bbefa32d9345f32bf194da43..273c9d83f3e0e8fadcf4ac25b0e1df24d0b0c22b 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.bulkeditor.input;
 
 import java.util.ArrayList;
@@ -17,8 +16,6 @@ import java.util.List;
 import java.util.Set;
 import java.util.UUID;
 
-import javax.validation.ConstraintViolationException;
-
 import eu.etaxonomy.cdm.api.service.IGroupService;
 import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
@@ -36,10 +33,11 @@ import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
+import jakarta.validation.ConstraintViolationException;
+
 /**
  * @author n.hoffmann
  * @created Mar 9, 2011
- * @version 1.0
  */
 public class GroupEditorInput extends AbstractBulkEditorInput<Group> {
 
@@ -75,7 +73,6 @@ public class GroupEditorInput extends AbstractBulkEditorInput<Group> {
                    MessagingUtils.messageDialog(Messages.GROUP_CREATOR_Name_not_accepted, getClass(), Messages.GROUP_CREATOR_Name_not_accepted_message);
                    return null;
                }
-
        }
 
        @Override
@@ -142,6 +139,4 @@ public class GroupEditorInput extends AbstractBulkEditorInput<Group> {
     public void setSaveUserCandidates(Set<User> saveUserCandidates) {
         this.saveUserCandidates = saveUserCandidates;
     }
-
-
-}
+}
\ No newline at end of file
index 6ebcb4ceeb4e145690d49b2b8be3fb1a4c7d47a7..74999921351485f3d2a651099c5e6ed9ba2e1141 100644 (file)
@@ -143,7 +143,7 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonName> {
        @Override
        public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {
                configurator.setPropertyPaths(getPropertyPaths());
-               return CdmStore.getSearchManager().findNames(configurator, this.getConversation());
+               return CdmStore.getSearchManager().findNames(configurator);
        }
 
        @Override
@@ -181,8 +181,8 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonName> {
 
        @Override
        public String getTypeText(Object entity) {
-               if((entity instanceof TaxonName) && (((TaxonName) entity).getNomenclaturalCode() != null)){
-                       return ((TaxonName) entity).getNomenclaturalCode().getTitleCache();
+               if((entity instanceof TaxonName) && (((TaxonName) entity).getNameType() != null)){
+                       return ((TaxonName) entity).getNameType().getTitleCache();
                }
                return super.getTypeText(entity);
        }
@@ -206,10 +206,10 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonName> {
         public void addSaveCandidate(TaxonName name){
            if (!name.getHybridChildRelations().isEmpty()){
                for (HybridRelationship rel: name.getHybridChildRelations()){
-                   if (!rel.getParentName().isPersited()){
+                   if (!rel.getParentName().isPersisted()){
                        super.addSaveCandidate(rel.getParentName());
                    }
-                   if (!rel.getHybridName().isPersited()){
+                   if (!rel.getHybridName().isPersisted()){
                     super.addSaveCandidate(rel.getHybridName());
                 }
                }
index 5673019d83a5e01312340f3afef122b67f009771..60d6b698b82c7ad35ed5793031cbbc78b7d778eb 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.bulkeditor.input;
 
 import java.util.ArrayList;
@@ -24,12 +23,9 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author n.hoffmann
  * @created Oct 19, 2010
- * @version 1.0
  */
 public class NameRelationshipEditorInput extends AbstractBulkEditorInput<NameRelationship> {
 
-       private static final long serialVersionUID = -7453923697752787687L;
-
        public static final String ID = "bulkeditor.input.nameRelationship";
 
        private static NameRelationshipEditorInput instance;
@@ -102,5 +98,4 @@ public class NameRelationshipEditorInput extends AbstractBulkEditorInput<NameRel
     public void merge() {
 
     }
-
-}
+}
\ No newline at end of file
index 137f0706dbf67e6d9b7b874ebea137873a14eb7c..429acb0d949a7e7f4c7899f18d1284d9632ff9dc 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.bulkeditor.input;
 
 import java.util.ArrayList;
@@ -17,6 +16,7 @@ import java.util.UUID;
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
+import eu.etaxonomy.cdm.api.service.config.FindOccurrencesConfigurator;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
@@ -37,9 +37,8 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @author n.hoffmann
  * @created Jun 16, 2010
  */
-public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObservationBase> {
-
-       private static final long serialVersionUID = 1014860873939989973L;
+public class OccurrenceEditorInput 
+               extends AbstractBulkEditorInput<SpecimenOrObservationBase> {
 
        public static final String ID = "bulkeditor.input.occurrence"; //$NON-NLS-1$
 
@@ -178,7 +177,7 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
        @Override
        protected List<SpecimenOrObservationBase> listEntities(
                        IIdentifiableEntityServiceConfigurator configurator) {
-               return CdmStore.getSearchManager().findOccurrences(configurator, false);
+               return CdmStore.getSearchManager().findOccurrences((FindOccurrencesConfigurator)configurator, false);
        }
 
     @Override
@@ -194,7 +193,7 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
        @Override
        public String getTypeText(Object entity) {
         if(HibernateProxyHelper.isInstanceOf(entity, SpecimenOrObservationBase.class)){
-            return ((SpecimenOrObservationBase) entity).getRecordBasis().getMessage();
+            return ((SpecimenOrObservationBase<?>) entity).getRecordBasis().getLabel();
          }
            return super.getTypeText(entity);
        }
@@ -220,7 +219,6 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
        @Override
     public SpecimenOrObservationBase<?> save(SpecimenOrObservationBase entity) {
            return CdmStore.getService(IOccurrenceService.class).merge(entity, true).getMergedEntity();
-
        }
 
        @Override
@@ -247,4 +245,4 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
                List<String> propertyPaths = Arrays.asList(new String[]{});
                return CdmStore.getService(IOccurrenceService.class).load(entityUuid, propertyPaths);
        }
-}
+}
\ No newline at end of file
index f2b0a91c0778f4d16b1a1c2a710b5d6806fac90f..5366a286cd912647d788a9938b69fe7103ec72aa 100644 (file)
@@ -211,7 +211,7 @@ public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
        @Override
        public String getTypeText(Object entity) {
                if(entity instanceof Reference){
-                       return ((Reference) entity).getType().getMessage(CdmStore.getDefaultLanguage());
+                       return ((Reference) entity).getType().getLabel(CdmStore.getDefaultLanguage());
                }
                return super.getTypeText(entity);
        }
@@ -220,5 +220,4 @@ public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
     public void merge() {
 
     }
-
-}
+}
\ No newline at end of file
similarity index 86%
rename from eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/TaxonEditorInput.java
rename to eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/TaxonBulkEditorInput.java
index f71a0e2ea9ab065bb621c112f7290faa111c126d..ecb779f98a54d44ce3e458562f6c33ee68c9cb38 100644 (file)
-package eu.etaxonomy.taxeditor.bulkeditor.input;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Arrays;\r
-import java.util.List;\r
-import java.util.UUID;\r
-\r
-import eu.etaxonomy.cdm.api.service.INameService;\r
-import eu.etaxonomy.cdm.api.service.ITaxonService;\r
-import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;\r
-import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;\r
-import eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator;\r
-import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;\r
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
-import eu.etaxonomy.cdm.model.name.HybridRelationship;\r
-import eu.etaxonomy.cdm.model.name.TaxonName;\r
-import eu.etaxonomy.cdm.model.taxon.Synonym;\r
-import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
-import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;\r
-import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;\r
-import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.TaxonCreator;\r
-import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.IdentifiableEntitySortProvider;\r
-import eu.etaxonomy.taxeditor.store.CdmStore;\r
-\r
-public class TaxonEditorInput extends AbstractBulkEditorInput<TaxonBase>{\r
-\r
-       private static TaxonEditorInput instance;\r
-\r
-       public static final String ID = "bulkeditor.input.taxon";\r
-\r
-       private static final String PROPERTY_PUBLISH = "Publish";\r
-\r
-       private List<TaxonName> saveNameCandidates = new ArrayList<>();\r
-\r
-       public static AbstractBulkEditorInput getInstance() {\r
-               if (instance == null) {\r
-                       instance = new TaxonEditorInput();\r
-               }\r
-\r
-               return instance;\r
-       }\r
-\r
-    @Override\r
-    protected List<String> getPropertyKeys_internal() {\r
-        List<String> propertyKeysInternal = new ArrayList<>();\r
-        propertyKeysInternal.add(PROPERTY_PUBLISH);\r
-        return propertyKeysInternal;\r
-    }\r
-\r
-    @Override\r
-    public Object getPropertyValue(TaxonBase cdmBase, String property) {\r
-        if(property.equals(PROPERTY_PUBLISH)){\r
-            return cdmBase.isPublish();\r
-        }\r
-        return super.getPropertyValue(cdmBase, property);\r
-    }\r
-\r
-    @Override\r
-    public boolean isBooleanProperty(String property) {\r
-        if(property.equals(PROPERTY_PUBLISH)){\r
-            return true;\r
-        }\r
-        return super.isBooleanProperty(property);\r
-    }\r
-\r
-    @Override\r
-       public String getName() {\r
-               return BulkEditorInputType.TAXON.label;\r
-       }\r
-\r
-       public static Object getID() {\r
-               return ID;\r
-       }\r
-\r
-       @Override\r
-    public List<IBulkEditorSortProvider<TaxonBase>> getSortProviders() {\r
-        List<IBulkEditorSortProvider<TaxonBase>> sortProviders = super.getSortProviders();\r
-\r
-        sortProviders.add(0, new IdentifiableEntitySortProvider<TaxonBase>());\r
-\r
-        return sortProviders;\r
-    }\r
-\r
-       @Override\r
-       public boolean isMergingEnabled() {\r
-               return false;\r
-       }\r
-       @Override\r
-       public TaxonBase save(TaxonBase entity) {\r
-           return CdmStore.getService(ITaxonService.class).merge(entity, true).getMergedEntity();\r
-       }\r
-\r
-    @Override\r
-    protected long countEntities(IIdentifiableEntityServiceConfigurator configurator) {\r
-        return CdmStore.getService(ITaxonService.class).countByTitle(configurator);\r
-    }\r
-\r
-       @Override\r
-       public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {\r
-//             IFindTaxaAndNamesConfigurator<TaxonBase> newConfig = new FindTaxaAndNamesConfiguratorImpl<>();\r
-//             newConfig.setTitleSearchString(configurator.getTitleSearchStringSqlized());\r
-//             newConfig.setMatchMode(MatchMode.ANYWHERE);\r
-           List<String> propertyPaths = getPropertyPaths();\r
-           configurator.setPropertyPaths(propertyPaths);\r
-               List<TaxonBase> taxa =  CdmStore.getSearchManager().findTaxa(configurator);\r
-               List<TaxonBase> taxaCopy = new ArrayList<TaxonBase>();\r
-               for (TaxonBase taxon:taxa){\r
-\r
-                       if (taxon instanceof Taxon){\r
-                               taxaCopy.add(HibernateProxyHelper.deproxy(taxon, Taxon.class));\r
-                       }else{\r
-                               taxaCopy.add(HibernateProxyHelper.deproxy(taxon, Synonym.class));\r
-                       }\r
-               }\r
-               return taxaCopy;\r
-       }\r
-\r
-       @Override\r
-       protected TaxonBase loadEntity(UUID entityUuid) {\r
-               List<String> propertyPaths = Arrays.asList(new String[]{});\r
-               return CdmStore.getService(ITaxonService.class).load(entityUuid, propertyPaths);\r
-       }\r
-\r
-       @Override\r
-    public boolean delete(TaxonBase entity, DeleteConfiguratorBase config) {\r
-               if (entity instanceof Taxon){\r
-                       TaxonDeletionConfigurator taxonConfig = null;\r
-                       if (config instanceof TaxonDeletionConfigurator){\r
-                               taxonConfig = (TaxonDeletionConfigurator)config;\r
-                       }else{\r
-\r
-                       }\r
-\r
-                       return CdmStore.getService(ITaxonService.class).deleteTaxon(entity.getUuid(), taxonConfig, null) != null;\r
-               } else{\r
-                       SynonymDeletionConfigurator synConfig = null;\r
-                       if (config instanceof SynonymDeletionConfigurator){\r
-                               synConfig = (SynonymDeletionConfigurator)config;\r
-                       }else{\r
-\r
-                       }\r
-\r
-                       return CdmStore.getService(ITaxonService.class).deleteSynonym(entity.getUuid(), synConfig) != null;\r
-               }\r
-       }\r
-\r
-       @Override\r
-       protected IEntityCreator<TaxonBase> createEntityCreator() {\r
-               return new TaxonCreator();\r
-       }\r
-\r
-    @Override\r
-    public void merge() {\r
-\r
-    }\r
-\r
-    @Override\r
-    public void addSaveCandidate(TaxonBase taxonBase){\r
-        if (!taxonBase.getName().getHybridChildRelations().isEmpty()){\r
-            for (HybridRelationship rel: taxonBase.getName().getHybridChildRelations()){\r
-                if (!rel.getParentName().isPersited()){\r
-                    this.saveNameCandidates.add(rel.getParentName());\r
-                }\r
-                if (!rel.getHybridName().isPersited()){\r
-                    this.saveNameCandidates.add(rel.getHybridName());\r
-                }\r
-            }\r
-        }\r
-\r
-        super.addSaveCandidate(taxonBase);\r
-    }\r
-\r
-    @Override\r
-    public void saveModel(boolean resetMerge){\r
-        CdmStore.getService(INameService.class).save(this.saveNameCandidates);\r
-        super.saveModel(resetMerge);\r
-    }\r
-\r
-    private List<String> getPropertyPaths(){\r
-        List<String> taxonBasePropertyPaths = Arrays.asList(new String[] {\r
-        "descriptions.descriptionElements.*",\r
-        "typeDesignations"});\r
-\r
-        return taxonBasePropertyPaths;\r
-   }\r
-\r
-}\r
+/**
+* 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.bulkeditor.input;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
+
+import eu.etaxonomy.cdm.api.service.INameService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
+import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
+import eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator;
+import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.name.HybridRelationship;
+import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.taxon.Synonym;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
+import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
+import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.TaxonCreator;
+import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.IdentifiableEntitySortProvider;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class TaxonBulkEditorInput extends AbstractBulkEditorInput<TaxonBase>{
+
+       private static TaxonBulkEditorInput instance;
+
+       public static final String ID = "bulkeditor.input.taxon";
+
+       private static final String PROPERTY_PUBLISH = "Publish";
+
+       private List<TaxonName> saveNameCandidates = new ArrayList<>();
+
+       public static AbstractBulkEditorInput getInstance() {
+               if (instance == null) {
+                       instance = new TaxonBulkEditorInput();
+               }
+
+               return instance;
+       }
+
+    @Override
+    protected List<String> getPropertyKeys_internal() {
+        List<String> propertyKeysInternal = new ArrayList<>();
+        propertyKeysInternal.add(PROPERTY_PUBLISH);
+        return propertyKeysInternal;
+    }
+
+    @Override
+    public Object getPropertyValue(TaxonBase cdmBase, String property) {
+        if(property.equals(PROPERTY_PUBLISH)){
+            return cdmBase.isPublish();
+        }
+        return super.getPropertyValue(cdmBase, property);
+    }
+
+    @Override
+    public boolean isBooleanProperty(String property) {
+        if(property.equals(PROPERTY_PUBLISH)){
+            return true;
+        }
+        return super.isBooleanProperty(property);
+    }
+
+    @Override
+       public String getName() {
+               return BulkEditorInputType.TAXON.label;
+       }
+
+       public static Object getID() {
+               return ID;
+       }
+
+       @Override
+    public List<IBulkEditorSortProvider<TaxonBase>> getSortProviders() {
+        List<IBulkEditorSortProvider<TaxonBase>> sortProviders = super.getSortProviders();
+
+        sortProviders.add(0, new IdentifiableEntitySortProvider<TaxonBase>());
+
+        return sortProviders;
+    }
+
+       @Override
+       public boolean isMergingEnabled() {
+               return false;
+       }
+       @Override
+       public TaxonBase save(TaxonBase entity) {
+           return CdmStore.getService(ITaxonService.class).merge(entity, true).getMergedEntity();
+       }
+
+    @Override
+    protected long countEntities(IIdentifiableEntityServiceConfigurator configurator) {
+        return CdmStore.getService(ITaxonService.class).countByTitle(configurator);
+    }
+
+       @Override
+       public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {
+//             IFindTaxaAndNamesConfigurator<TaxonBase> newConfig = new FindTaxaAndNamesConfiguratorImpl<>();
+//             newConfig.setTitleSearchString(configurator.getTitleSearchStringSqlized());
+//             newConfig.setMatchMode(MatchMode.ANYWHERE);
+           List<String> propertyPaths = getPropertyPaths();
+           configurator.setPropertyPaths(propertyPaths);
+               List<TaxonBase> taxa =  CdmStore.getSearchManager().findTaxa(configurator);
+               List<TaxonBase> taxaCopy = new ArrayList<TaxonBase>();
+               for (TaxonBase taxon:taxa){
+
+                       if (taxon instanceof Taxon){
+                               taxaCopy.add(HibernateProxyHelper.deproxy(taxon, Taxon.class));
+                       }else{
+                               taxaCopy.add(HibernateProxyHelper.deproxy(taxon, Synonym.class));
+                       }
+               }
+               return taxaCopy;
+       }
+
+       @Override
+       protected TaxonBase loadEntity(UUID entityUuid) {
+               List<String> propertyPaths = Arrays.asList(new String[]{});
+               return CdmStore.getService(ITaxonService.class).load(entityUuid, propertyPaths);
+       }
+
+       @Override
+    public boolean delete(TaxonBase entity, DeleteConfiguratorBase config) {
+               if (entity instanceof Taxon){
+                       TaxonDeletionConfigurator taxonConfig = null;
+                       if (config instanceof TaxonDeletionConfigurator){
+                               taxonConfig = (TaxonDeletionConfigurator)config;
+                       }else{
+
+                       }
+
+                       return CdmStore.getService(ITaxonService.class).deleteTaxon(entity.getUuid(), taxonConfig, null) != null;
+               } else{
+                       SynonymDeletionConfigurator synConfig = null;
+                       if (config instanceof SynonymDeletionConfigurator){
+                               synConfig = (SynonymDeletionConfigurator)config;
+                       }else{
+
+                       }
+
+                       return CdmStore.getService(ITaxonService.class).deleteSynonym(entity.getUuid(), synConfig) != null;
+               }
+       }
+
+       @Override
+       protected IEntityCreator<TaxonBase> createEntityCreator() {
+               return new TaxonCreator();
+       }
+
+    @Override
+    public void merge() {
+
+    }
+
+    @Override
+    public void addSaveCandidate(TaxonBase taxonBase){
+        if (taxonBase == null){
+            MessagingUtils.info(Messages.TAXON_EDITOR_INPUT_Selection_lost);
+            return;
+        }
+        if (!taxonBase.getName().getHybridChildRelations().isEmpty()){
+            for (HybridRelationship rel: taxonBase.getName().getHybridChildRelations()){
+                if (!rel.getParentName().isPersisted()){
+                    this.saveNameCandidates.add(rel.getParentName());
+                }
+                if (!rel.getHybridName().isPersisted()){
+                    this.saveNameCandidates.add(rel.getHybridName());
+                }
+            }
+        }
+
+        super.addSaveCandidate(taxonBase);
+    }
+
+    @Override
+    public void saveModel(boolean resetMerge){
+        CdmStore.getService(INameService.class).save(this.saveNameCandidates);
+        super.saveModel(resetMerge);
+    }
+
+    private List<String> getPropertyPaths(){
+        List<String> taxonBasePropertyPaths = Arrays.asList(new String[] {
+            "descriptions.descriptionElements.*",
+            "typeDesignations"});
+
+        return taxonBasePropertyPaths;
+   }
+}
\ No newline at end of file
index 08465a8e2e183baf506fafee5950b0cc8078069a..589e7869e4cf9c930cf6330b9d6c98bb00a90e95 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.bulkeditor.input;
 
 import java.util.ArrayList;
@@ -30,7 +29,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author n.hoffmann
  * @created Mar 9, 2011
- * @version 1.0
  */
 public class UserEditorInput extends AbstractBulkEditorInput<User> {
 
@@ -79,7 +77,6 @@ public class UserEditorInput extends AbstractBulkEditorInput<User> {
                return CdmStore.getSearchManager().findUsers(configurator);
        }
 
-
        @Override
        protected IEntityCreator<User> createEntityCreator() {
                return new UserCreator();
@@ -105,5 +102,4 @@ public class UserEditorInput extends AbstractBulkEditorInput<User> {
        public Comparator<User> getTitleComparator(){
         return new UserNameComparator();
     }
-
-}
+}
\ No newline at end of file
index e8c3f4860cd86acf62348d9ef253387d708302b6..cdd9615255ebc32afa78b54cdede15ed0afd8d7f 100644 (file)
@@ -12,7 +12,8 @@ package eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
@@ -20,14 +21,12 @@ import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
 
 /**
- * <p>TeamOrPersonCreator class.</p>
- *
  * @author p.ciardelli
  * @created 18.09.2009
  */
 public class AgentCreator implements IEntityCreator<TeamOrPersonBase> {
 
-    private static final Logger logger = Logger.getLogger(AgentCreator.class);
+    private static final Logger logger = LogManager.getLogger();
 
        @Override
     public TeamOrPersonBase createEntity(String text) {
@@ -53,11 +52,6 @@ public class AgentCreator implements IEntityCreator<TeamOrPersonBase> {
                return teamOrPerson;
        }
 
-       /**
-        * <p>getKeyLabelPairs</p>
-        *
-        * @return a {@link java.util.Map} object.
-        */
        @Override
     public Map<Object, String> getKeyLabelPairs() {
                Map<Object, String> result = new HashMap<>();
index b7e5a0f6c8c80cd50d8572e57f353b6818e19163..a1638f4f9b3301baad6e0c069d4014b81efd54fe 100644 (file)
@@ -13,8 +13,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import javax.validation.ConstraintViolationException;
-
 import eu.etaxonomy.cdm.api.service.IGroupService;
 import eu.etaxonomy.cdm.model.permission.Group;
 import eu.etaxonomy.cdm.persistence.query.MatchMode;
@@ -22,6 +20,7 @@ import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import jakarta.validation.ConstraintViolationException;
 
 /**
  * @author n.hoffmann
index b7075e47f46059b8d4a492cf4b0b2a629719e825..f228ae3a6b9abc5a8cfffcc49c90f15d6fabefc1 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.bulkeditor.input.entitycreator;
 
 import java.util.Comparator;
@@ -22,8 +21,6 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>NameCreator class.</p>
- *
  * @author p.ciardelli
  * @created 07.07.2009
  */
@@ -42,11 +39,6 @@ public class NameCreator implements IEntityCreator<TaxonName> {
                return ParseHandler.parseName(text, (Rank) key);
        }
 
-       /**
-        * <p>getKeyLabelPairs</p>
-        *
-        * @return a {@link java.util.Map} object.
-        */
         @Override
     public Map<Rank, String> getKeyLabelPairs() {
                Map<Rank, String> result = new TreeMap<Rank, String>(
@@ -65,4 +57,4 @@ public class NameCreator implements IEntityCreator<TaxonName> {
                // TODO Auto-generated method stub
                return false;
        }
-}
+}
\ No newline at end of file
index 6cf79b0753a24ece5b592169e1878de332236f34..80632ec0a5cad7f4847f5e6a41b7fabd69ff4360 100644 (file)
@@ -13,7 +13,7 @@ import java.util.Arrays;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jface.wizard.WizardDialog;
 
@@ -36,7 +36,7 @@ public class OccurrenceCreator implements
                IEntityCreator<SpecimenOrObservationBase> {
 
        @SuppressWarnings("unused")
-    private static final Logger logger = Logger.getLogger(OccurrenceCreator.class);
+    private static final Logger logger = LogManager.getLogger(OccurrenceCreator.class);
 
        @Override
        public SpecimenOrObservationBase createEntity(String text) {
index 9c3e0e2717f5c8efa656f8bf28622a934736b506..507b4018e6d26ea57342045aecb952e44e32ae29 100644 (file)
@@ -36,55 +36,55 @@ public class ReferenceCreator implements IEntityCreator<Reference> {
                Reference reference = null;
 
                // TODO replace w more generic method when cdmlib matures accordingly
-               if  (ReferenceType.Article.getMessage().equals(key)) {
+               if  (ReferenceType.Article.getLabel().equals(key)) {
                        reference = ReferenceFactory.newArticle();
                }
-               if  (ReferenceType.Book.getMessage().equals(key)) {
+               if  (ReferenceType.Book.getLabel().equals(key)) {
                        reference = ReferenceFactory.newBook();
                }
-               if  (ReferenceType.BookSection.getMessage().equals(key)) {
+               if  (ReferenceType.BookSection.getLabel().equals(key)) {
                        reference = ReferenceFactory.newBookSection();
                }
-               if  (ReferenceType.CdDvd.getMessage().equals(key)) {
+               if  (ReferenceType.CdDvd.getLabel().equals(key)) {
                        reference = ReferenceFactory.newCdDvd();
                }
-               if  (ReferenceType.Database.getMessage().equals(key)) {
+               if  (ReferenceType.Database.getLabel().equals(key)) {
                        reference = ReferenceFactory.newDatabase();
                }
-               if  (ReferenceType.Generic.getMessage().equals(key)) {
+               if  (ReferenceType.Generic.getLabel().equals(key)) {
                        reference = ReferenceFactory.newGeneric();
                }
-               if  (ReferenceType.InProceedings.getMessage().equals(key)) {
+               if  (ReferenceType.InProceedings.getLabel().equals(key)) {
                        reference = ReferenceFactory.newInProceedings();
                }
-               if  (ReferenceType.Journal.getMessage().equals(key)) {
+               if  (ReferenceType.Journal.getLabel().equals(key)) {
                        reference = ReferenceFactory.newJournal();
                }
-               if  (ReferenceType.Map.getMessage().equals(key)) {
+               if  (ReferenceType.Map.getLabel().equals(key)) {
                        reference = ReferenceFactory.newMap();
                }
-               if  (ReferenceType.Patent.getMessage().equals(key)) {
+               if  (ReferenceType.Patent.getLabel().equals(key)) {
                        reference = ReferenceFactory.newPatent();
                }
-               if  (ReferenceType.PersonalCommunication.getMessage().equals(key)) {
+               if  (ReferenceType.PersonalCommunication.getLabel().equals(key)) {
                        reference = ReferenceFactory.newPersonalCommunication();
                }
-               if  (ReferenceType.PrintSeries.getMessage().equals(key)) {
+               if  (ReferenceType.PrintSeries.getLabel().equals(key)) {
                        reference = ReferenceFactory.newPrintSeries();
                }
-               if  (ReferenceType.Proceedings.getMessage().equals(key)) {
+               if  (ReferenceType.Proceedings.getLabel().equals(key)) {
                        reference = ReferenceFactory.newProceedings();
                }
-               if  (ReferenceType.Report.getMessage().equals(key)) {
+               if  (ReferenceType.Report.getLabel().equals(key)) {
                        reference = ReferenceFactory.newReport();
                }
-               if  (ReferenceType.Thesis.getMessage().equals(key)) {
+               if  (ReferenceType.Thesis.getLabel().equals(key)) {
                        reference = ReferenceFactory.newThesis();
                }
-               if  (ReferenceType.WebPage.getMessage().equals(key)) {
+               if  (ReferenceType.WebPage.getLabel().equals(key)) {
                        reference = ReferenceFactory.newWebPage();
                }
-               if  (ReferenceType.Section.getMessage().equals(key)) {
+               if  (ReferenceType.Section.getLabel().equals(key)) {
             reference = ReferenceFactory.newSection();
         }
                if (reference == null) {
@@ -104,7 +104,7 @@ public class ReferenceCreator implements IEntityCreator<Reference> {
     public Map<Object, String> getKeyLabelPairs() {
                Map<Object, String> result = new HashMap<Object, String>();
                for (ReferenceType type : ReferenceType.values()) {
-                       result.put(type.getMessage(), type.getMessage());
+                       result.put(type.getLabel(), type.getLabel());
                }
                return result;
        }
index 5f0d01cf20ad0124120472e5fadbd8df49f71220..d1325b38de54d058f6bfcf1b3ded51805b063e44 100644 (file)
@@ -6,15 +6,13 @@
 * 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.bulkeditor.input.entitycreator;
 
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import javax.validation.ConstraintViolationException;
-
+import org.eclipse.core.runtime.IStatus;
 import org.springframework.security.access.AccessDeniedException;
 
 import eu.etaxonomy.cdm.api.service.IUserService;
@@ -25,26 +23,21 @@ import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
+import jakarta.validation.ConstraintViolationException;
+
 /**
  * @author n.hoffmann
  * @created Mar 9, 2011
- * @version 1.0
  */
 public class UserCreator  implements IEntityCreator<User>{
 
     public static final String USER = "User"; //$NON-NLS-1$
 
-    /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#createEntity(java.lang.String)
-        */
        @Override
        public User createEntity(String text) {
                return createEntity(null, text);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#createEntity(java.lang.Object, java.lang.String)
-        */
        @Override
        public User createEntity(Object key, String text) {
 
@@ -52,7 +45,11 @@ public class UserCreator  implements IEntityCreator<User>{
             User user = User.NewInstance(text, text);
             List<User> userList =CdmStore.getService(IUserService.class).listByUsername(user.getUsername(), MatchMode.EXACT, null, 100, 0, null, null);
             if (userList.isEmpty()){
+               try {
                 CdmStore.getService(IUserService.class).createUser(user);
+               }catch(Exception e) {
+                       MessagingUtils.messageDialog(Messages.USER_CREATOR_Name_not_accepted, getClass(), Messages.USER_CREATOR_Name_not_accepted_message);
+               }
                 user = CdmStore.getService(IUserService.class).loadWithUpdate(user.getUuid());
                 return user;
             } else{
@@ -69,9 +66,6 @@ public class UserCreator  implements IEntityCreator<User>{
 
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator#getKeyLabelPairs()
-        */
        @Override
        public Map<Object, String> getKeyLabelPairs() {
                Map<Object, String> result = new HashMap<Object, String>();
@@ -84,5 +78,4 @@ public class UserCreator  implements IEntityCreator<User>{
                // TODO Auto-generated method stub
                return false;
        }
-
-}
+}
\ No newline at end of file
index fd1219a69262d94544814a13d0e9bf0414139eeb..5b835bf3468a1aa0d6d85e3f5b3947d76b923704 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.bulkeditor.input.sortprovider;
 
 import java.util.Comparator;
@@ -18,7 +17,6 @@ import eu.etaxonomy.cdm.model.common.ICdmBase;
 /**
  * @author n.hoffmann
  * @created Dec 14, 2010
- * @version 1.0
  */
 public abstract class AbstractDateComparator<T extends ICdmBase> implements Comparator<T>{
 
index f0487bde5263002d4b7bcc1ec63df55c6575739d..edfb6f95db0c9cf342339757dcffe6c7d1c378a0 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.bulkeditor.input.sortprovider;
 
 import java.util.Comparator;
@@ -19,34 +18,23 @@ import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
 /**
  * @author n.hoffmann
  * @created Dec 14, 2010
- * @version 1.0
  */
 public class AbstractSortProvider<T> implements IBulkEditorSortProvider<T> {
 
-       Map<String, Comparator<T>> comparators = new HashMap<String, Comparator<T>>();
+       protected Map<String, Comparator<T>> comparators = new HashMap<>();
        
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider#getComparators()
-        */
        @Override
        public Map<String, Comparator<T>> getComparators() {
                return comparators;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider#getComparatorNames()
-        */
        @Override
        public Set<String> getComparatorNames() {
                return comparators.keySet();
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider#getComparatorByName(java.lang.String)
-        */
        @Override
        public Comparator<T> getComparatorByName(String name) {
                return comparators.get(name);
        }
-
-}
+}
\ No newline at end of file
index bae9767533388f9b33ab6ce7d92b96fd257a03db..5f0bd7145997953d1bd5bf7aef1fb2283f74e0c1 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.bulkeditor.input.sortprovider;
 
 import org.joda.time.DateTime;
@@ -16,26 +15,18 @@ import eu.etaxonomy.cdm.model.common.ICdmBase;
 /**
  * @author n.hoffmann
  * @created Dec 14, 2010
- * @version 1.0
  */
 public class CdmBaseSortProvider<T extends ICdmBase> extends AbstractSortProvider<T> {
 
-       /**
-        * 
-        */
        public CdmBaseSortProvider() {
                comparators.put("Created When", new CreatedDateComparator());
        }
        
        private class CreatedDateComparator extends AbstractDateComparator<T>{
 
-               /* (non-Javadoc)
-                * @see eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.AbstractDateComparator#getDate(eu.etaxonomy.cdm.model.common.ICdmBase)
-                */
                @Override
                protected DateTime getDate(T object) {
                        return object.getCreated();
-               }
-               
+               }       
        }
-}
+}
\ No newline at end of file
index cdeeeba62a521daf242ea7e1d5a5cce4180a326b..b13e6d974149ea0d9cda3c2ed7599598db976bb3 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.bulkeditor.input.sortprovider;
 
 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
@@ -14,12 +13,10 @@ import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
 /**
  * @author n.hoffmann
  * @created Dec 14, 2010
- * @version 1.0
  */
 public class IdentifiableEntitySortProvider<T extends IIdentifiableEntity> extends AbstractSortProvider<T> {
 
        public IdentifiableEntitySortProvider(){
                comparators.put("Title Cache", new TitleCacheComparator<T>());
        }
-       
-}
+}
\ No newline at end of file
index ebdc23b07969a5ee26300ce904b720f0eb777103..b9d0efefead09c20d4d78a739cf638a057fddfdd 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.bulkeditor.input.sortprovider;
 
 import java.util.Comparator;
@@ -17,13 +16,9 @@ import eu.etaxonomy.cdm.model.reference.Reference;
 /**
  * @author n.hoffmann
  * @created Dec 14, 2010
- * @version 1.0
  */
 public class ReferenceSortProvider extends AbstractSortProvider<Reference> {
 
-       /**
-        *
-        */
        public ReferenceSortProvider() {
                comparators.put("Type", new ReferenceTypeComparator());
                comparators.put("Year", new ReferenceYearComparator());
@@ -31,18 +26,11 @@ public class ReferenceSortProvider extends AbstractSortProvider<Reference> {
 
        private class ReferenceYearComparator implements Comparator<Reference> {
 
-               /**
-                * @param o1
-                * @return
-                */
                private String getYearString(Reference o) {
                        TimePeriod datePublished = o == null ? null : o.getDatePublished();
                        return datePublished == null? null : datePublished.toString();
                }
 
-               /* (non-Javadoc)
-                * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-                */
                @Override
         public int compare(Reference o1, Reference o2) {
                        String yearString1 = getYearString(o1);
@@ -63,15 +51,11 @@ public class ReferenceSortProvider extends AbstractSortProvider<Reference> {
 
                        }
                        return returnVal;
-
                }
        }
 
        private class ReferenceTypeComparator implements Comparator<Reference> {
 
-               /* (non-Javadoc)
-                * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-                */
                @Override
         public int compare(Reference o1, Reference o2) {
                        String typeString1 = o1.getClass().toString();
@@ -95,6 +79,4 @@ public class ReferenceSortProvider extends AbstractSortProvider<Reference> {
                        }
                }
        }
-
-
-}
+}
\ No newline at end of file
index 4c30e13fb595c242560211a73e622e8c711a8661..aaa7a234a7822e670359aecb3fa782d9f9fdfa96 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.bulkeditor.operation;
 
 import java.util.Set;
@@ -26,7 +25,6 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 /**
  * @author n.hoffmann
  * @created Dec 13, 2010
- * @version 1.0
  */
 public class SetMarkerFlagOperation extends AbstractPostTaxonOperation {
 
@@ -34,11 +32,6 @@ public class SetMarkerFlagOperation extends AbstractPostTaxonOperation {
        private MarkerType markerType;
        private boolean value;
 
-       /**
-        * @param label
-        * @param undoContext
-        * @param postOperationEnabled
-        */
        public SetMarkerFlagOperation(String label, IUndoContext undoContext,
                        Set<IAnnotatableEntity> annotatableEntities, MarkerType markerType, boolean value,
                        IPostOperationEnabled postOperationEnabled) {
@@ -48,9 +41,6 @@ public class SetMarkerFlagOperation extends AbstractPostTaxonOperation {
                this.value = value;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -64,18 +54,12 @@ public class SetMarkerFlagOperation extends AbstractPostTaxonOperation {
                return postExecute(null);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                return execute(monitor, info);
        }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
+       
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -87,5 +71,4 @@ public class SetMarkerFlagOperation extends AbstractPostTaxonOperation {
                
                return postExecute(null);
        }
-
-}
+}
\ No newline at end of file
index c75e94cac608640ee9cebed142319fe8f7819512..925cd2c69e3629d1b4f99043e72af807ee613e8c 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.bulkeditor.preference;
 
 import org.eclipse.jface.preference.BooleanFieldEditor;
@@ -19,7 +18,6 @@ import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
 /**
  * @author n.hoffmann
  * @created Dec 13, 2010
- * @version 1.0
  */
 public class BulkEditorGeneralPreferencePage extends FieldEditorPreferencePageE4 {
 
@@ -29,5 +27,4 @@ public class BulkEditorGeneralPreferencePage extends FieldEditorPreferencePageE4
                 Messages.BulkEditorGeneralPreferencePage,
                 getFieldEditorParent()));
     }
-
-}
+}
\ No newline at end of file
index 0c0d8786708bf0c07355a9f74c9dfd45e21eac37..18ba123bfcdfdf8dfa0da4a24396870ac11fd8af 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.bulkeditor.preference;
 
 import org.eclipse.jface.preference.BooleanFieldEditor;
@@ -21,11 +20,9 @@ import eu.etaxonomy.taxeditor.store.TermStore;
 /**
  * @author p.ciardelli
  * @created 17.08.2009
- * @version 1.0
  */
 public class BulkEditorMarkerPreferencePage extends FieldEditorPreferencePageE4 {
 
-
     @Override
     protected void createFieldEditors() {
         if(CdmStore.isActive()){
@@ -37,4 +34,4 @@ public class BulkEditorMarkerPreferencePage extends FieldEditorPreferencePageE4
         }
 
     }
-}
+}
\ No newline at end of file
index dc84b3c5ac4da4aa5baeaaf34e9803aef8d1784c..7977a938136edf70d7c860973dd10c055431d6ed 100644 (file)
@@ -11,7 +11,7 @@ package eu.etaxonomy.taxeditor.bulkeditor.referencingobjects;
 
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.Viewer;
 
@@ -25,7 +25,7 @@ public class ReferencingObjectsContentProvider implements
                IStructuredContentProvider {
 
     @SuppressWarnings("unused")
-    private static final Logger logger = Logger.getLogger(ReferencingObjectsContentProvider.class);
+    private static final Logger logger = LogManager.getLogger(ReferencingObjectsContentProvider.class);
 
        @Override
     public Object[] getElements(Object inputElement) {
index a4ac2fea5048d9933c9e201ffd5535e66d787df4..78291e3127742fac4fe1ab90c95f4dfb97725aea 100644 (file)
@@ -9,16 +9,16 @@
 
 package eu.etaxonomy.taxeditor.bulkeditor.referencingobjects;
 
-import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.jface.viewers.ITableLabelProvider;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.swt.graphics.Image;
 
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.persistence.dto.ReferencingObjectDto;
 import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.model.DescriptionHelper;
 
 /**
  * Requires an <code>IReferencingObjectsService</code> to translate the label
@@ -30,7 +30,7 @@ import eu.etaxonomy.taxeditor.model.DescriptionHelper;
 public class ReferencingObjectsLabelProvider extends LabelProvider implements ITableLabelProvider {
 
     @SuppressWarnings("unused")
-    private static final Logger logger = Logger.getLogger(ReferencingObjectsLabelProvider.class);
+    private static final Logger logger = LogManager.getLogger(ReferencingObjectsLabelProvider.class);
 
        /**
         * <p>Constructor for ReferencingObjectsLabelProvider.</p>
@@ -45,25 +45,44 @@ public class ReferencingObjectsLabelProvider extends LabelProvider implements IT
 
        @Override
     public String getColumnText(Object element, int columnIndex) {
-               String text = null;
-
-               Object deproxiedElement = HibernateProxyHelper.deproxy(element);
-
-               if (columnIndex == 0) {
-                       text = DescriptionHelper.getObjectClassname(deproxiedElement);
-               }else if (columnIndex == 1) {
-                       text = DescriptionHelper.getObjectDescription(deproxiedElement);
-               }else if (columnIndex == 2) {
-                       if(element instanceof CdmBase){
-                               text = ((CdmBase) element).getUuid().toString();
-                       }
-               }else if (columnIndex == 3) {
-                       if(element instanceof CdmBase){
-                               text = ((CdmBase) element).getId() + ""; //$NON-NLS-1$
-                       }
-               }
-
-               return (StringUtils.isBlank(text)) ? Messages.ReferencingObjectsLabelProvider_No_description_available : text;
+           if (element == null){
+               return "";
+           }else if (element instanceof String){
+               return columnIndex == 0 ? element.toString() :"";
+           }else if (element instanceof ReferencingObjectDto){
+               ReferencingObjectDto dto = (ReferencingObjectDto)element;
+               if (columnIndex == 0) {
+                   Class<?> type = dto.getType() != null ? dto.getType() : dto.getReferencedEntity() != null? dto.getReferencedEntity().getClass() : null;
+                   return type == null? null : CdmUtils.userFriendlyClassName(type);
+               }else if (columnIndex == 1) {
+                   return dto.getTitleCache();
+               }else if (columnIndex == 2) {
+                   return dto.getUuid() == null ? null : dto.getUuid().toString();
+               }else if (columnIndex == 3) {
+                   return String.valueOf(dto.getId() == null? null :dto.getId());
+               }else{
+                   return "-";
+               }
+           }
+           else{
+               //this should not happen, but just in case
+               String text = null;
+               Object deproxiedElement = CdmBase.deproxy(element);
+               if (columnIndex == 0) {
+                       text = CdmUtils.userFriendlyClassName(deproxiedElement.getClass());
+               }else if (columnIndex == 1) {
+                       text = element.toString();
+               }else if (columnIndex == 2) {
+                       if(element instanceof CdmBase){
+                               text = ((CdmBase) element).getUuid().toString();
+                       }
+               }else if (columnIndex == 3) {
+                       if(element instanceof CdmBase){
+                               text = String.valueOf(((CdmBase) element).getId());
+                       }
+               }
+               return (StringUtils.isBlank(text)) ? Messages.ReferencingObjectsLabelProvider_No_description_available : text;
+           }
 
        }
-}
+}
\ No newline at end of file
index dab48be3de4042718065c1c1c108d35fbf72c825..e5c4a2f30673a3fb9e5421eaa5b3a98017e2a18a 100644 (file)
 package eu.etaxonomy.taxeditor.bulkeditor.referencingobjects.e4;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 
-import org.apache.log4j.Logger;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
@@ -42,10 +48,9 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Table;
-import org.springframework.remoting.RemoteAccessException;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 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;
@@ -59,6 +64,7 @@ import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.cdm.model.common.CdmBase;
@@ -79,44 +85,51 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermBase;
+import eu.etaxonomy.cdm.model.term.TermNode;
+import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
+import eu.etaxonomy.cdm.persistence.dto.ReferencingObjectDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.bulkeditor.referencingobjects.ReferencingObjectsContentProvider;
 import eu.etaxonomy.taxeditor.bulkeditor.referencingobjects.ReferencingObjectsLabelProvider;
 import eu.etaxonomy.taxeditor.editor.IReferencingObjectsView;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.DescriptionHelper;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPartE4;
+import eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPart;
 
 /**
+ * This view loads and presents referencing objects information asynchronously.
+ *
+ * Most of the task is done in UpdateRefObjectsJob.run()
  *
  * @author pplitzner
+ * @author k.luther
+ * @author a.mueller
  * @since Aug 16, 2017
- *
  */
-public class ReferencingObjectsViewE4 extends AbstractCdmEditorPartE4 implements IReferencingObjectsView{
+public class ReferencingObjectsViewE4
+        extends AbstractCdmEditorPart<TableViewer>
+        implements IReferencingObjectsView{
+
+    private static final Logger logger = LogManager.getLogger();
 
-    private static final Logger logger = Logger
-                       .getLogger(ReferencingObjectsViewE4.class);
+    private static final List<ReferencingObjectDto> EMPTY_LIST = Arrays.asList();  //immutable empty list
+    private static final RefObjectDtoComparator COMPARATOR = new RefObjectDtoComparator();
 
     private Label contentDescription;
 
-       private String referencedObjectTitleCache;
-       private ConversationHolder conversation;
-       private UUID actualUuid;
-       List<CdmBase> referencingObjects = null;
-       Set<CdmBase> referencingObjectsSet = null;
-       IProgressMonitor actualMonitor = null;
-       private Job currentJob = null;
+       private volatile UUID actualUuid;  //volatile as it used used between threads but only written in the synchronized method
+       private Job currentJob = null;  //this variable should only be accessed in synchronized updateToNewItem
 
     @PostConstruct
     public void create(Composite parent, EMenuService menuService) {
-        if (CdmStore.isActive()){
-            if(conversation == null){
-                conversation = CdmStore.createConversation();
-            }
-        }
-        else{
+        if (!CdmStore.isActive()){
             return;
         }
         parent.setLayout(new GridLayout());
@@ -130,9 +143,9 @@ public class ReferencingObjectsViewE4 extends AbstractCdmEditorPartE4 implements
                tableViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
 
                tableViewer.setCellModifier(new ICellModifier() {
+
             @Override
-            public void modify(Object element, String property, Object value) {
-            }
+            public void modify(Object element, String property, Object value) {}
 
             @Override
             public Object getValue(Object element, String property) {
@@ -163,7 +176,6 @@ public class ReferencingObjectsViewE4 extends AbstractCdmEditorPartE4 implements
 
         //create context menu
         menuService.registerContextMenu(viewer.getControl(), "eu.etaxonomy.taxeditor.bulkeditor.popupmenu.referencingobjectsview");
-
        }
 
        /**
@@ -192,76 +204,159 @@ public class ReferencingObjectsViewE4 extends AbstractCdmEditorPartE4 implements
                viewer.setColumnProperties(titles);
        }
 
-       @Override
-    public void updateReferencingObjects(final UUID entityUUID, final Class objectClass) {
-           if (actualUuid == entityUUID){
-               return ;
-           }
 
-           if(actualMonitor!=null && !actualMonitor.isCanceled()){
-               while(!actualMonitor.isCanceled()){
-                   actualMonitor.setCanceled(true);
-               }
+    private class ItemDto {
+        String typeName;
+        String itemLabel;
+        UUID itemUuid;
+        Integer itemId;
+        Class<? extends CdmBase> itemClass;
 
-           }
-               currentJob = new Job("Update Referencing Objects") {
-
-                       @Override
-                       protected IStatus run(final IProgressMonitor monitor) {
-                               monitor.beginTask("Calculating referencing objects", 100);
-                               actualUuid = entityUUID;
-
-                               monitor.worked(5);
-                               referencingObjects = new ArrayList<>();
-                               if(monitor.isCanceled()) {
-                                   actualUuid = null;
-                    return Status.CANCEL_STATUS;
-                }
-                               if (actualMonitor != null){
-                                   actualMonitor.setCanceled(true);
+        private String bestLabel(){
+            return (StringUtils.isNotBlank(this.typeName)? this.typeName + " " : "")
+                    + "'"+(StringUtils.isNotBlank(this.itemLabel)? this.itemLabel : this.itemUuid.toString()) +"'"
+                    + (this.itemId != null? " (id=" + this.itemId+")" : "");
+        }
+    }
 
-                               }
-                               actualMonitor = monitor;
-                               if (entityUUID != null){
-                       referencingObjectsSet = getReferencingObjects(entityUUID, objectClass);
+       private class UpdateRefObjectsJob extends Job{
 
-                       if(monitor.isCanceled()) {
-                           actualUuid = null;
+           final private ItemDto item;
 
-                           return Status.CANCEL_STATUS;
-                       }
-                       monitor.worked(30);
-                       referencingObjects = sortReferencing();
-                       if (referencingObjects == null){
-                           if (monitor.isCanceled()){
-                               actualUuid = null;
-
-                               return Status.CANCEL_STATUS;
-                           }
-                       }
+        public UpdateRefObjectsJob(String name, ItemDto item) {
+            super(name);
+            this.item = item;
+            if (item.itemUuid == null){
+                throw new RuntimeException("Item uuid must always exist at this point");
+            }
+        }
 
-                       if(monitor.isCanceled()) {
-                           return Status.CANCEL_STATUS;
-                       }
-                       monitor.worked(80);
+        @Override
+        protected IStatus run(final IProgressMonitor monitor) {
 
-                       updateView();
-                               }
-                               monitor.done();
-                               actualMonitor = null;
+            monitor.beginTask("Calculating referencing objects for " + item.itemLabel, 100);
 
-                               return Status.OK_STATUS;
+            //set to loading
+            monitor.subTask("Load empty");
+            monitor.worked(1);
+            updateView("Loading " + item.bestLabel(), EMPTY_LIST, item.itemUuid);
+            if(monitor.isCanceled()) {
+                return Status.CANCEL_STATUS;
+            }
 
+            //handle transient instance
+            if (item.itemId != null && item.itemId.equals(0)){
+                updateView("Not yet persisted: " + item.bestLabel(), EMPTY_LIST, item.itemUuid);
+                monitor.done();
+                return Status.OK_STATUS;
+            }
+            monitor.worked(1);  //sum = 2
+
+            //load uninitialized DTOs from server
+            monitor.subTask("Load base data from server");
+            Set<ReferencingObjectDto> refObjectsFromServer = loadReferencingObjects(item.itemUuid, item.itemClass);
+            if (refObjectsFromServer == null){
+                updateView("An error occurred when loading " + item.bestLabel(), EMPTY_LIST, item.itemUuid);
+                return Status.CANCEL_STATUS;  //TODO is this correct?, null can happen e.g. if server call throws exception
+            }
+            if(monitor.isCanceled()) {
+                return Status.CANCEL_STATUS;
+            }
+            monitor.worked(10); //sum = 12
+
+            //show count
+            monitor.subTask("Show without description");
+            int count = refObjectsFromServer.size();
+            updateView("Loading " + count + " items for " + item.bestLabel(), EMPTY_LIST, item.itemUuid);
+            monitor.worked(1);  //sum = 13
+
+            //sort
+            List<ReferencingObjectDto> localDtos = sortToList(refObjectsFromServer);
+            updateView("0/" + count + " items for " + item.bestLabel(), localDtos, item.itemUuid);
+            if(monitor.isCanceled()) {
+                return Status.CANCEL_STATUS;
+            }
+            monitor.worked(2);  //sum = 15
 
-                       }
-               };
-               currentJob.setUser(true);
+            //initialize
+            monitor.subTask("Initialize");
+            initializeDtos(localDtos, item, monitor, 83);  //is calling updateView itself; sum = 95
+            if(monitor.isCanceled()) {
+                return Status.CANCEL_STATUS;
+            }
+            monitor.worked(2);  //sum = 100 (just in case)
+            monitor.done();
+
+            return Status.OK_STATUS;
+        }
+       }
 
+       private synchronized void updateToNewItem(final ItemDto item) {
+               if (currentJob != null){
+                   currentJob.cancel();
+               }
+               Job newJob = new UpdateRefObjectsJob("Update Referencing Objects for " + item.bestLabel(), item);
+               newJob.setUser(true);
+               actualUuid = item.itemUuid;
+               currentJob = newJob;
                currentJob.schedule();
        }
 
-       private Set<CdmBase> getReferencingObjects(UUID entity, Class objectClass) {
-               CdmBase referencedObject = null;
+    private List<ReferencingObjectDto> sortToList(Set<ReferencingObjectDto> referencingObjectsSet) {
+        List<ReferencingObjectDto> result = new ArrayList<>(referencingObjectsSet);
+        Collections.sort(result, COMPARATOR);
+        return result;
+    }
+
+    protected boolean initializeDtos(List<ReferencingObjectDto> localDtos, ItemDto item, IProgressMonitor monitor, int work) {
+
+        IProgressMonitor subMonitor = AbstractUtility.getSubProgressMonitor(monitor, work);
+        subMonitor.beginTask("Initialize DTOs", localDtos.size());
+        int i = 100 - 20;  //the first run should only include 20 records
+        int initCount = 0;
+
+        Set<ReferencingObjectDto> toInitialize = new HashSet<>();
+        for (ReferencingObjectDto dto : localDtos){
+            initCount++;
+            toInitialize.add(dto);
+            subMonitor.worked(1);
+            if (++i == 100){
+                if (monitor.isCanceled()){
+                    return false;
+                }
+                initBulk(toInitialize, initCount, localDtos, item);
+                //reset
+                toInitialize = new HashSet<>();
+                i = 0;
+            }
+        }
+        //final bulk
+        if (monitor.isCanceled()){
+            return false;
+        }
+        initBulk(toInitialize, initCount, localDtos, item);
+        return true;
+    }
+
+    private void initBulk(Set<ReferencingObjectDto> toInitialize, int initCount,
+            List<ReferencingObjectDto> localDtos, ItemDto item) {
+        Set<ReferencingObjectDto> initialized = CdmStore.getCommonService().initializeReferencingObjectDtos(toInitialize, true, true, true, CdmStore.getDefaultLanguage());
+        Map<UUID,ReferencingObjectDto> map = new HashMap<>();
+        initialized.forEach(i->map.put(i.getUuid(), i));
+        toInitialize.forEach(dto->mergeInitializedData(dto, map.get(dto.getUuid())));
+        String initStr = initCount < localDtos.size()? initCount + "/" + localDtos.size() + " items": "Items";
+        updateView(initStr + " for " + item.bestLabel(), localDtos, item.itemUuid);
+    }
+
+    private void mergeInitializedData(ReferencingObjectDto to, ReferencingObjectDto from) {
+        to.setTitleCache(from.getTitleCache());
+        to.setOpenInTarget(from.getOpenInTarget());
+        to.setReferencedEntity(from.getReferencedEntity());
+    }
+
+    private Set<ReferencingObjectDto> loadReferencingObjects(UUID entity, Class<? extends CdmBase> objectClass) {
+               //TODO why do we need to load the referenced object here
+        CdmBase referencedObject = null;
         try {
                if (objectClass.getSuperclass().equals(TeamOrPersonBase.class) ){
                        referencedObject = CdmStore.getService(IAgentService.class).load(entity);
@@ -282,7 +377,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)){
@@ -301,106 +396,85 @@ public class ReferencingObjectsViewE4 extends AbstractCdmEditorPartE4 implements
             else if(CdmBase.class.isAssignableFrom(objectClass)){
                 referencedObject = CdmStore.getCommonService().find(objectClass, entity);
             }
-                       //referencedObject =(CdmBase) CdmStore.getService(IIdentifiableEntityService.class).load(referencedObject.getUuid());
-               Set<CdmBase> setOfReferencingObjects = null;
+               Set<ReferencingObjectDto> setOfReferencingObjects = null;
 
                if (referencedObject != null){
-                   if(referencedObject.isInstanceOf(IdentifiableEntity.class)){
-                       referencedObjectTitleCache = (HibernateProxyHelper.deproxy(referencedObject, IdentifiableEntity.class)).getTitleCache();
-                   }
-                   else if(referencedObject.isInstanceOf(DescriptionElementBase.class)){
-                       referencedObjectTitleCache = DescriptionHelper.getLabel(referencedObject);
-                   }
-                   else if (referencedObject.isInstanceOf(User.class)){
-                       referencedObjectTitleCache = ((User)referencedObject).getUsername();
-                   }else{
-                       referencedObjectTitleCache = null;
-                   }
-                       setOfReferencingObjects = CdmStore.getCommonService().getReferencingObjects(referencedObject);
-                       return setOfReferencingObjects;
+                       setOfReferencingObjects = CdmStore.getCommonService().getReferencingObjectDtos(referencedObject);
+                       if (setOfReferencingObjects != null){
+                           return setOfReferencingObjects;
+                       }else{
+                           //for some reason sometimes this seems to return null, whenever it is called
+                    throw new RuntimeException("getReferencingObjectDtos() did not return a value for object uuid: " + referencedObject.getUuid() + ", class: " + referencedObject.getClass());
+                       }
+               }else{
+                   throw new RuntimeException("referenced object could not be retrieved for uuid: " + entity + ", class: " + objectClass);
                }
 
         } catch (Exception e) {
             logger.debug("Error retrieving referencing objects", e);
             e.printStackTrace();
-            updateDescription("The referencing objects view could not be loaded completely. Some Problems occurred.");
+            updateDescriptionLabel("The referencing objects view could not be loaded completely. Some problems occurred: " + e.getMessage());
+            return null;
         }
-               return null;
        }
 
-       private List<CdmBase> sortReferencing(){
+       /**
+        * Compares the referencing object by type and id. Using "description" for
+        * comparation has been given up to avoid initialization before comparison.
+        */
+       static class RefObjectDtoComparator implements Comparator<ReferencingObjectDto>{
 
-           if (referencingObjectsSet != null){
-            List<CdmBase> referencingObjects = new ArrayList<CdmBase>(referencingObjectsSet);
-            try{
-                Collections.sort(referencingObjects, new ReferencingClassComparator());
-            }catch (RemoteAccessException e){
-                logger.debug(e.getStackTrace());
-                return null;
+        @Override
+        public int compare(ReferencingObjectDto dto1, ReferencingObjectDto dto2) {
+            int result = dto1.getType().getSimpleName().compareToIgnoreCase(dto2.getType().getSimpleName());
+            if (result == 0) {
+                result = Integer.compare(dto1.getId(),dto2.getId());
             }
-            return referencingObjects;
-
+            return result;
         }
-
-           return null;
        }
 
-       class ReferencingClassComparator implements Comparator<CdmBase>   {
-
-               @Override
-        public int compare(CdmBase o1, CdmBase o2) {
-                       String string1 = o1.getClass().getSimpleName();
-                       String string2 = o2.getClass().getSimpleName();
-                       int result = string1.compareToIgnoreCase(string2);
-                       if (result == 0) {
-                               string1 = DescriptionHelper.getObjectDescription(o1);
-                               string2 = DescriptionHelper.getObjectDescription(o2);
-
-                               result = string1.compareToIgnoreCase(string2);
-                               if (result == 0){
-                                   return o1.getUuid().compareTo(o2.getUuid());
-                               }
-                       }
-                               return result;
-               }
-       }
-
-       private void updateView() {
-           Display.getDefault().asyncExec(new Runnable() {
-            @Override
-            public void run() {
-
-                       if (viewer != null && !viewer.getControl().isDisposed()){
-                               try{
-                                       viewer.setInput(referencingObjects);
-
-                                       viewer.refresh();
-
-                                       //enable/disable table
-                                       viewer.getControl().setEnabled(referencingObjects!=null);
-                               }catch(Exception e){
-                                   e.printStackTrace();
-                                   logger.debug(e.getStackTrace());
-                                   updateDescription("The referencing objects view could not be loaded completely. Some Problems occurred.");
-                               }
-                       }
-            }
-            });
+       //not sure if it needs to be synchronized, only the local variable actualUuid is read
+       private void updateView(final String label,
+               final List<ReferencingObjectDto> referencingObjects, UUID itemUuid) {
+
+           if (this.actualUuid == itemUuid){
+               Display.getDefault().asyncExec(()->{
+                   if (contentDescription != null && !contentDescription.isDisposed()){
+                       contentDescription.setText(label);
+                   }
+                   if (viewer != null && !viewer.getControl().isDisposed()){
+                       try{
+                           viewer.setInput(referencingObjects);
+                           viewer.refresh();
+
+                           //enable/disable table
+                           viewer.getControl().setEnabled(referencingObjects!=null);
+                       }catch(Exception e){
+                           e.printStackTrace();
+                           logger.debug(e.getStackTrace());
+                           updateDescriptionLabel("The referencing objects view could not be updated completely. Some Problems occurred: " + e.getMessage());
+                       }
+                   }
+               });
+           }
        }
 
 
-       private void updateDescription(final String description){
-           Display.getDefault().asyncExec(new Runnable() {
-            @Override
-            public void run() {
+       private void updateDescriptionLabel(final String description){
+           Display.getDefault().asyncExec(()->{
                 if(contentDescription!=null && !contentDescription.isDisposed()) {
                     contentDescription.setText(description.replace("&", "&&"));
                 }
             }
-
-         });
+         );
         }
 
+    @Override
+    protected boolean showEmptyIfNoActiveEditor(){
+        return false;
+    }
+
     @Override
     public void selectionChanged_internal(Object selection, MPart activePart, MPart thisPart) {
         if(activePart==thisPart){
@@ -409,67 +483,125 @@ public class ReferencingObjectsViewE4 extends AbstractCdmEditorPartE4 implements
 
         IStructuredSelection structuredSelection = createSelection(selection);
         if(structuredSelection!=null){
-               //referencedObjectTitleCache = null;
                showViewer(structuredSelection, activePart, viewer);
         }
        }
 
        @Override
        public void showViewer(IStructuredSelection selection, MPart activePart, Viewer viewer){
-       //      this.part = part;
-
-               Object firstElement = selection.getFirstElement();
-               if (firstElement instanceof TermDto){
-                  TermDto termDto = (TermDto) firstElement;
-                  updateDescription("'"+termDto.getRepresentation_L10n() + "' is referenced by:");
-                  updateReferencingObjects(termDto.getUuid(), TermBase.class );
-                  return;
-               }
-               if(firstElement instanceof TreeNode){
-                   firstElement = ((TreeNode) firstElement).getValue();
-               }
-               if (firstElement instanceof TaxonNode && !((TaxonNode)firstElement).hasTaxon()){
-                       firstElement = ((TaxonNode)firstElement).getClassification();
+           handleNewSelection(selection.getFirstElement());
+       }
+
+       //Note AM: this can probably be done better together with base class methods
+       //         As I am not so familiar with this structure I only adapt it this way to be on the safe side
+       @Override
+    public void handleNewSelection(Object firstElement){
+        ItemDto dto = makeItemDto(firstElement);
+               if (dto.itemUuid == null || dto.itemClass == null || dto.itemUuid.equals(this.actualUuid)){
+                   return;
                }
-               if(firstElement instanceof CdmBase){
-                   CdmBase referencedCdmObject = (CdmBase) firstElement;
-                   if (referencedCdmObject.getUuid() == actualUuid){
-                       return;
-                   }
-                   if (referencedCdmObject != null){
-                if(referencedCdmObject.isInstanceOf(IdentifiableEntity.class)){
-                    referencedObjectTitleCache = (HibernateProxyHelper.deproxy(referencedCdmObject, IdentifiableEntity.class)).getTitleCache();
-                }
-                else if(referencedCdmObject.isInstanceOf(DescriptionElementBase.class)){
-                    referencedObjectTitleCache = DescriptionHelper.getLabel(referencedCdmObject);
-                }
-                else if (referencedCdmObject.isInstanceOf(User.class)){
-                    referencedObjectTitleCache = ((User)referencedCdmObject).getUsername();
-                }else if (referencedCdmObject.isInstanceOf(TaxonNode.class)){
-                    referencedObjectTitleCache = "TaxonNode of "+(HibernateProxyHelper.deproxy(referencedCdmObject, TaxonNode.class)).getTaxon().getTitleCache();
-                }
-                   }
-                   if (referencedObjectTitleCache != null){
-                       updateDescription(referencedCdmObject.getUserFriendlyTypeName() + " '" + referencedObjectTitleCache + "' is referenced by:");
-                   } else{
-                       updateDescription("");
-                   }
+               updateToNewItem(dto);
+       }
 
-                   updateReferencingObjects(referencedCdmObject.getUuid(),firstElement.getClass() );
+    /**
+     * Transforms the selection into uniform format (ItemDto).
+     * This method must be fast / should never require a server call
+     * as it takes place before the update Job is started and therefore is not
+     * asynchronous.
+     */
+    public ItemDto makeItemDto(Object firstElement) {
+
+        ItemDto dto = new ItemDto();
+        if(firstElement instanceof TreeNode){
+            firstElement = ((TreeNode) firstElement).getValue();
+        }
+        if (firstElement instanceof TaxonNode && !((TaxonNode)firstElement).hasTaxon()){
+            firstElement = ((TaxonNode)firstElement).getClassification();
+        }
 
+        if (firstElement instanceof AbstractTermDto){
+           AbstractTermDto termDto = (AbstractTermDto) firstElement;
+           dto.itemLabel = termDto.getTitleCache();
+           dto.itemUuid= termDto.getUuid();
+           dto.typeName = termDto.getTermType().getLabel();
+           dto.itemId = null;   // id does not yet exist in TermDto
+           if (termDto instanceof TermDto){
+               dto.itemClass = TermBase.class;
+           }else if(termDto instanceof TermTreeDto){
+               dto.itemClass = TermTree.class;
+               dto.typeName = dto.typeName + " Tree";
+           }else if(termDto instanceof TermVocabularyDto){
+               dto.itemClass = TermVocabulary.class;
+               dto.typeName = dto.typeName + " Vocabulary";
+           }else{
+               //make it an unhandled selection
+               dto.itemUuid = null;
+           }
+        }else if (firstElement instanceof TermNodeDto){
+            TermNodeDto termNodeDto = (TermNodeDto) firstElement;
+            dto.itemLabel = (termNodeDto.getTerm() != null? termNodeDto.getTerm().getTitleCache() : termNodeDto.getTreeIndex());
+            dto.itemUuid= termNodeDto.getUuid();
+            dto.typeName = termNodeDto.getType().getLabel() + " Node";
+            dto.itemId = null;  //does not yet exist in TermDto
+            dto.itemClass = TermNode.class;
+        }else if(firstElement instanceof CdmBase){
+                   CdmBase cdmBase = CdmBase.deproxy(firstElement, CdmBase.class);
+                   String label = null;
+               if(cdmBase instanceof IdentifiableEntity){
+                label = (HibernateProxyHelper.deproxy(cdmBase, IdentifiableEntity.class)).getTitleCache();
+            }
+            else if(cdmBase instanceof DescriptionElementBase){
+                label = DescriptionHelper.getLabel(cdmBase);
+            }
+            else if (cdmBase instanceof User){
+                label = ((User)cdmBase).getUsername();
+            }else if (cdmBase instanceof TaxonNode){
+                label = ((TaxonNode)cdmBase).getTaxon().getTitleCache();
+            }
+               if (CdmUtils.isBlank(label)){
+                   label = "#"+cdmBase.getId();
+               }
+               dto.typeName = cdmBase.getUserFriendlyTypeName();
+               dto.itemLabel = label;
+               dto.itemUuid= cdmBase.getUuid();
+               dto.itemClass = cdmBase.getClass();
+               dto.itemId = cdmBase.getId();
+               }else if  (firstElement instanceof UuidAndTitleCache<?>){
+                   @SuppressWarnings("unchecked")
+            UuidAndTitleCache<? extends CdmBase> element = (UuidAndTitleCache<? extends CdmBase>) firstElement;
+                   dto.typeName = CdmUtils.userFriendlyClassName(element.getType());
+                   dto.itemLabel = element.getTitleCache();
+            if (CdmUtils.isBlank(dto.itemLabel)){
+                dto.itemLabel = "id=" + element.getId();
+            }
+            dto.itemUuid= element.getUuid();
+            dto.itemClass = element.getType();
+            dto.itemId = element.getId();
+               }else if (firstElement instanceof String){
+            dto.typeName = "String";
+            dto.itemLabel = firstElement.toString();
+            dto.itemUuid= null;
+            dto.itemClass = null;
+            dto.itemId = null;
+               }else if (firstElement != null){
+                   dto.typeName = CdmUtils.userFriendlyClassName(firstElement.getClass());
+                   dto.itemLabel = firstElement.toString();
+                   dto.itemUuid= null;
+                   dto.itemClass = null;
+                   dto.itemId = null;
+               }else{
+                   dto.typeName = null;
+                   dto.itemLabel = "no selection";
+                   dto.itemUuid= null;
+                   dto.itemClass = null;
+                   dto.itemId = null;
                }
-               else if (firstElement != null){
-                   updateView();
-            updateDescription("");
-               }
-       }
+        return dto;
+    }
 
        @PreDestroy
        public void dispose() {
-           if(conversation!=null){
-               conversation.close();
-               conversation = null;
-           }
+           //no conversation in this view
        }
 
        @Override
@@ -486,5 +618,4 @@ public class ReferencingObjectsViewE4 extends AbstractCdmEditorPartE4 implements
        protected String getViewName() {
                return "Referencing Objects";
        }
-
-}
+}
\ No newline at end of file
index 2e24bb2dee687cc425cb778d2cfaece2ef056a11..390d4a87c383963c02408a3d4a799f7b946dbe8a 100644 (file)
@@ -53,6 +53,8 @@ public class Messages extends NLS {
     public static String DeleteHandler_IRREVERSIBLE;
     public static String DeleteHandler_MEDIA;
     public static String DeleteHandler_NAME;
+    public static String DeleteHandler_OBJECT_MISSING_RIGHTS;
+    public static String DeleteHandler_OBJECT_MISSING_RIGHTS_MESSAGE;
     public static String DeleteHandler_OBJECT;
     public static String DeleteHandler_REALLY_DELETE;
     public static String DeleteHandler_REFERENCE;
@@ -75,6 +77,7 @@ public class Messages extends NLS {
     public static String MergeGroupHandler_cancel;
     public static String MergeGroupHandler_SaveChanges;
     public static String MergeGroupHandler_description;
+    public static String TAXON_EDITOR_INPUT_Selection_lost;
 
        static {
                // initialize resource bundle
index 58620df277daf6405c370d3ab228bb48d4ee2312..f04c2aed78f2ac7a1033561341f2c1b7132ec06e 100644 (file)
@@ -24,6 +24,8 @@ BulkEditorSearchE4_WILDCARD=Use '%s' for wildcard searching
 BulkEditorTooltip_CANDIDATE=Candidate for duplicate removal
 BulkEditorTooltip_TARGET=Target for duplicate removal
 
+TAXON_EDITOR_INPUT_Selection_lost=The selection in bulkeditor is somehow lost, please try again.
+
 USER_CREATOR_user_exists_title=The user already exists
 USER_CREATOR_user_exists=The user already exists in database
 USER_CREATOR_Acces_denied=Access denied
@@ -38,10 +40,10 @@ GROUP_CREATOR_Name_not_accepted=Groupname not accepted
 ReferencingObjectsLabelProvider_No_description_available=No description available
 ConvertPerson2TeamHandler_warning=While reloading the data an exception occurred
 ConvertPerson2TeamHandler_lable=Convert Person to Team
-DeleteHandler_CAN_BE_DELETED=can be deleted but related object(s) could not be deleted. 
+DeleteHandler_CAN_BE_DELETED= can be deleted but related object(s) could not be deleted. 
 DeleteHandler_CONFIRM=Confirm Deletion
-DeleteHandler_COULD_NOT_BE_DELETED=could not be deleted.
-DeleteHandler_ALREADY_DELETED=was already deleted
+DeleteHandler_COULD_NOT_BE_DELETED= could not be deleted.
+DeleteHandler_ALREADY_DELETED= was already deleted
 DeleteHandler_DELETE=Delete
 DeleteHandler_DELETE_NOT_POSSIBLE=Delete not possible
 DeleteHandler_EXCEPTION=An exception occurred.
@@ -49,6 +51,8 @@ DeleteHandler_GROUP=group
 DeleteHandler_IRREVERSIBLE=\nThis operation is irreversible!
 DeleteHandler_MEDIA=media
 DeleteHandler_NAME=name
+DeleteHandler_OBJECT_MISSING_RIGHTS_MESSAGE=Due to missing rights %s can not be deleted
+DeleteHandler_OBJECT_MISSING_RIGHTS=Missing rights
 DeleteHandler_OBJECT=object
 DeleteHandler_REALLY_DELETE=Do you really want to delete the %s?
 DeleteHandler_REFERENCE=reference
index e5bc153f421d4838db84305f7302f1f9be8b988d..55ea8b63cd2fca1ae41290fbcce5f6c19359a849 100644 (file)
@@ -24,6 +24,8 @@ BulkEditorSearchE4_WILDCARD='%s' f\u00FCr Platzhalter-Suche benutzen
 BulkEditorTooltip_CANDIDATE= Kandidat für Duplikatenentfernung
 BulkEditorTooltip_TARGET=Ziel für Duplikatenentfernung
 
+TAXON_EDITOR_INPUT_Selection_lost=Die Auswahl im Bulkeditor ist verloren gegangen, bitte versuchen Sie es erneut.
+
 USER_CREATOR_user_exists_title=Der Benutzer existiert bereits
 USER_CREATOR_user_exists=Der Benutzer existiert bereits in der Datenbank.
 USER_CREATOR_Acces_denied=Access denied
@@ -47,6 +49,8 @@ DeleteHandler_GROUP=Gruppe
 DeleteHandler_IRREVERSIBLE=Dieser Vorgang kann nicht rückgängig gemacht werden!
 DeleteHandler_MEDIA=Medienobjekt
 DeleteHandler_NAME=Name
+DeleteHandler_OBJECT_MISSING_RIGHTS_MESSAGE=Aufgrund fehlender Rechte kann %s nicht gelöscht werden
+DeleteHandler_OBJECT_MISSING_RIGHTS=Fehlende Rechte
 DeleteHandler_OBJECT=Objekt
 DeleteHandler_REALLY_DELETE=%s wirklich löschen?
 DeleteHandler_REFERENCE=Referenz
index 8000a78c4ef391d06ce0f4381b512e49a8f79272..187010da15ae79539a5f98e167cca21ef34966ae 100644 (file)
@@ -1,2 +1,3 @@
 bin
 /target/
+/dev-linked-projects/*-classes
index 29307fcb383f75e390e1adea60e745b7ad477377..51ca720252207575ca79a4b3b1c1783b7cac2afe 100644 (file)
@@ -2,44 +2,49 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: CDM Library Dependencies Plugin
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.cdmlib;singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.42.0
 Eclipse-BundleShape: dir
-Export-Package: com.google.api,
- com.google.api.detect,
- com.google.api.translate,
- com.sun.istack,
+Export-Package: com.fasterxml.jackson.core,
+ com.fasterxml.jackson.core.type,
+ com.fasterxml.jackson.databind,
+ com.fasterxml.jackson.databind.node,
  com.sun.istack.internal.tools,
  com.sun.istack.internal.ws,
- com.sun.istack.localization,
- com.sun.istack.logging,
- com.sun.istack.tools,
  eu.etaxonomy.cdm,
  eu.etaxonomy.cdm.api.application,
  eu.etaxonomy.cdm.api.cache,
  eu.etaxonomy.cdm.api.conversation,
- eu.etaxonomy.cdm.api.facade,
+ eu.etaxonomy.cdm.api.filter,
+ eu.etaxonomy.cdm.api.remoting,
  eu.etaxonomy.cdm.api.service,
  eu.etaxonomy.cdm.api.service.config,
  eu.etaxonomy.cdm.api.service.description,
  eu.etaxonomy.cdm.api.service.dto,
  eu.etaxonomy.cdm.api.service.exception,
+ eu.etaxonomy.cdm.api.service.geo,
+ eu.etaxonomy.cdm.api.service.l10n,
  eu.etaxonomy.cdm.api.service.longrunningService,
  eu.etaxonomy.cdm.api.service.lsid,
  eu.etaxonomy.cdm.api.service.lsid.impl,
+ eu.etaxonomy.cdm.api.service.media,
  eu.etaxonomy.cdm.api.service.molecular,
  eu.etaxonomy.cdm.api.service.name,
  eu.etaxonomy.cdm.api.service.pager,
  eu.etaxonomy.cdm.api.service.pager.impl,
  eu.etaxonomy.cdm.api.service.search,
  eu.etaxonomy.cdm.api.service.statistics,
- eu.etaxonomy.cdm.api.service.util,
- eu.etaxonomy.cdm.api.utility,
+ eu.etaxonomy.cdm.api.util,
  eu.etaxonomy.cdm.api.validation,
  eu.etaxonomy.cdm.api.validation.batch,
  eu.etaxonomy.cdm.cache,
  eu.etaxonomy.cdm.common,
  eu.etaxonomy.cdm.common.media,
  eu.etaxonomy.cdm.common.monitor,
+ eu.etaxonomy.cdm.compare.common,
+ eu.etaxonomy.cdm.compare.location,
+ eu.etaxonomy.cdm.compare.name,
+ eu.etaxonomy.cdm.compare.taxon,
+ eu.etaxonomy.cdm.compare.term,
  eu.etaxonomy.cdm.config,
  eu.etaxonomy.cdm.database,
  eu.etaxonomy.cdm.database.types,
@@ -56,16 +61,19 @@ Export-Package: com.google.api,
  eu.etaxonomy.cdm.ext.occurrence.gbif,
  eu.etaxonomy.cdm.ext.openurl,
  eu.etaxonomy.cdm.ext.sru,
+ eu.etaxonomy.cdm.facade,
  eu.etaxonomy.cdm.filter,
  eu.etaxonomy.cdm.format,
  eu.etaxonomy.cdm.format.common,
- eu.etaxonomy.cdm.format.taxon,
  eu.etaxonomy.cdm.format.description,
+ eu.etaxonomy.cdm.format.description.distribution,
+ eu.etaxonomy.cdm.format.taxon,
  eu.etaxonomy.cdm.hibernate,
  eu.etaxonomy.cdm.hibernate.search,
  eu.etaxonomy.cdm.io.api.application,
  eu.etaxonomy.cdm.io.berlinModel,
  eu.etaxonomy.cdm.io.cdmLight,
+ eu.etaxonomy.cdm.io.coldp,
  eu.etaxonomy.cdm.io.common,
  eu.etaxonomy.cdm.io.common.events,
  eu.etaxonomy.cdm.io.common.mapping,
@@ -86,9 +94,7 @@ Export-Package: com.google.api,
  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,
  eu.etaxonomy.cdm.io.sdd,
  eu.etaxonomy.cdm.io.sdd.ikeyplus,
@@ -97,12 +103,12 @@ Export-Package: com.google.api,
  eu.etaxonomy.cdm.io.service,
  eu.etaxonomy.cdm.io.specimen,
  eu.etaxonomy.cdm.io.specimen.abcd206.in,
- eu.etaxonomy.cdm.io.specimen.excel.in,
  eu.etaxonomy.cdm.io.specimen.gbif.in,
  eu.etaxonomy.cdm.io.taxonx,
  eu.etaxonomy.cdm.io.tcsxml,
  eu.etaxonomy.cdm.io.tcsxml.in,
  eu.etaxonomy.cdm.io.tcsxml.out,
+ eu.etaxonomy.cdm.io.wfo.out,
  eu.etaxonomy.cdm.jaxb,
  eu.etaxonomy.cdm.model,
  eu.etaxonomy.cdm.model.agent,
@@ -147,52 +153,13 @@ Export-Package: com.google.api,
  eu.etaxonomy.cdm.persistence.dto,
  eu.etaxonomy.cdm.persistence.fetch,
  eu.etaxonomy.cdm.persistence.hibernate,
- eu.etaxonomy.cdm.persistence.permission,
- eu.etaxonomy.cdm.persistence.permission.voter,
  eu.etaxonomy.cdm.persistence.hibernate.replace,
  eu.etaxonomy.cdm.persistence.hibernate.replace.impl,
+ eu.etaxonomy.cdm.persistence.permission,
+ eu.etaxonomy.cdm.persistence.permission.voter,
  eu.etaxonomy.cdm.persistence.query,
  eu.etaxonomy.cdm.persistence.view,
- eu.etaxonomy.cdm.print,
- eu.etaxonomy.cdm.print.out,
- eu.etaxonomy.cdm.print.out.odf,
- eu.etaxonomy.cdm.print.out.pdf,
- eu.etaxonomy.cdm.print.out.taxpub,
- eu.etaxonomy.cdm.print.out.xml,
  eu.etaxonomy.cdm.ref,
- eu.etaxonomy.cdm.remote.config,
- eu.etaxonomy.cdm.remote.controller,
- eu.etaxonomy.cdm.remote.controller.dto,
- eu.etaxonomy.cdm.remote.controller.ext,
- eu.etaxonomy.cdm.remote.controller.interceptor,
- eu.etaxonomy.cdm.remote.controller.oaipmh,
- eu.etaxonomy.cdm.remote.controller.util,
- eu.etaxonomy.cdm.remote.dto.assembler,
- eu.etaxonomy.cdm.remote.dto.assembler.converter,
- eu.etaxonomy.cdm.remote.dto.common,
- eu.etaxonomy.cdm.remote.dto.dc,
- eu.etaxonomy.cdm.remote.dto.dwc,
- eu.etaxonomy.cdm.remote.dto.namecatalogue,
- eu.etaxonomy.cdm.remote.dto.oaipmh,
- eu.etaxonomy.cdm.remote.dto.polytomouskey,
- eu.etaxonomy.cdm.remote.dto.tdwg,
- eu.etaxonomy.cdm.remote.dto.tdwg.voc,
- eu.etaxonomy.cdm.remote.editor,
- eu.etaxonomy.cdm.remote.exception,
- eu.etaxonomy.cdm.remote.json,
- eu.etaxonomy.cdm.remote.json.processor,
- eu.etaxonomy.cdm.remote.json.processor.bean,
- eu.etaxonomy.cdm.remote.json.processor.matcher,
- eu.etaxonomy.cdm.remote.json.processor.value,
- eu.etaxonomy.cdm.remote.json.util,
- eu.etaxonomy.cdm.remote.l10n,
- eu.etaxonomy.cdm.remote.oauth2,
- eu.etaxonomy.cdm.remote.service,
- eu.etaxonomy.cdm.remote.view,
- eu.etaxonomy.cdm.remote.view.oaipmh,
- eu.etaxonomy.cdm.remote.view.oaipmh.dc,
- eu.etaxonomy.cdm.remote.view.oaipmh.dwc,
- eu.etaxonomy.cdm.remote.view.oaipmh.rdf,
  eu.etaxonomy.cdm.strategy,
  eu.etaxonomy.cdm.strategy.cache,
  eu.etaxonomy.cdm.strategy.cache.agent,
@@ -212,219 +179,41 @@ Export-Package: com.google.api,
  eu.etaxonomy.cdm.validation,
  eu.etaxonomy.cdm.validation.annotation,
  eu.etaxonomy.cdm.validation.constraint,
- eu.etaxonomy.remote.dto.rdf,
  eu.etaxonomy.taxeditor.remoting,
  eu.etaxonomy.taxeditor.remoting.cache,
  eu.etaxonomy.taxeditor.remoting.server,
  eu.etaxonomy.taxeditor.remoting.source,
  eu.etaxonomy.taxeditor.service,
  eu.etaxonomy.taxeditor.session,
- eu.etaxonomy.taxeditor.session.mock,
- javassist.util.proxy,
+ jakarta.validation,
  javax.persistence,
- javax.validation,
  junit.framework;uses:="org.junit.runner.manipulation,org.junit.runner,org.junit.runner.notification",
  net.sf.ehcache,
  net.sf.ehcache.config,
  net.sf.ehcache.statistics,
  net.sf.ehcache.store,
- net.sf.json;uses:="net.sf.json.processors,net.sf.json.util,org.apache.commons.lang.exception",
+ net.sf.ehcache.util,
  org.aopalliance.aop,
- org.apache.commons.collections;uses:="org.apache.commons.collections.keyvalue,new org.apache.commons.collections",
- org.apache.commons.collections.buffer,
+ org.apache.commons.collections4,
+ org.apache.commons.collections4.map,
  org.apache.commons.dbcp,
+ org.apache.commons.imaging,
  org.apache.commons.io;uses:="org.apache.commons.io.filefilter",
  org.apache.commons.lang;uses:="org.apache.commons.lang.exception",
  org.apache.commons.lang.exception,
  org.apache.commons.lang.text,
+ org.apache.commons.lang3;uses:="org.apache.commons.lang.exception",
+ org.apache.commons.lang3.exception,
+ org.apache.commons.lang3.text,
  org.apache.commons.logging,
  org.apache.commons.math3.stat,
  org.apache.commons.math3.stat.descriptive,
- org.apache.fop.apps,
  org.apache.http,
  org.apache.http.client,
  org.apache.http.util,
- org.apache.log4j;uses:="org.apache.log4j.helpers,org.apache.log4j.or,org.apache.log4j.spi",
- org.apache.log4j.chainsaw;
-  uses:="org.apache.log4j,
-   javax.swing,
-   javax.swing.table,
-   org.apache.log4j.spi,
-   javax.swing.event,
-   org.xml.sax.helpers,
-   org.xml.sax",
- org.apache.log4j.config;uses:="org.apache.log4j",
- org.apache.log4j.helpers;uses:="org.apache.log4j,org.apache.log4j.spi",
- org.apache.log4j.jdbc;uses:="org.apache.log4j,org.apache.log4j.spi",
- org.apache.log4j.jmx;uses:="org.apache.log4j,org.apache.log4j.spi,javax.management",
- org.apache.log4j.lf5;uses:="org.apache.log4j.lf5.viewer,org.apache.log4j,org.apache.log4j.spi",
- org.apache.log4j.lf5.config,
- org.apache.log4j.lf5.util;uses:="org.apache.log4j.lf5.viewer,org.apache.log4j.lf5",
- org.apache.log4j.lf5.viewer;
-  uses:="org.apache.log4j.lf5.util,
-   org.apache.log4j.lf5.viewer.categoryexplorer,
-   org.apache.log4j.lf5,
-   javax.swing,
-   javax.swing.table,
-   javax.swing.event,
-   org.apache.log4j.lf5.viewer.configure",
- org.apache.log4j.lf5.viewer.categoryexplorer;
-  uses:="org.apache.log4j.lf5,
-   javax.swing.tree,
-   javax.swing,
-   javax.swing.table,
-   javax.swing.event",
- org.apache.log4j.lf5.viewer.configure;uses:="org.apache.log4j.lf5.viewer,javax.swing.tree,org.w3c.dom",
- org.apache.log4j.lf5.viewer.images,
- org.apache.log4j.net;
-  uses:="javax.naming,
-   org.apache.log4j.helpers,
-   org.apache.log4j,
-   javax.jms,
-   javax.mail.internet,
-   org.apache.log4j.spi,
-   javax.mail",
- org.apache.log4j.nt;uses:="org.apache.log4j,org.apache.log4j.spi",
- org.apache.log4j.or;uses:="org.apache.log4j.spi",
- org.apache.log4j.or.jms;uses:="org.apache.log4j.or",
- org.apache.log4j.or.sax;uses:="org.apache.log4j.or",
- org.apache.log4j.spi;uses:="org.apache.log4j,org.apache.log4j.or",
- org.apache.log4j.varia;uses:="org.apache.log4j,org.apache.log4j.spi",
- org.apache.log4j.xml;
-  uses:="org.apache.log4j.config,
-   org.apache.log4j.helpers,
-   org.apache.log4j,
-   javax.xml.parsers,
-   org.apache.log4j.spi,
-   org.w3c.dom,
-   org.xml.sax",
- org.apache.lucene,
- org.apache.lucene.analysis,
- org.apache.lucene.analysis.ar,
- org.apache.lucene.analysis.bg,
- org.apache.lucene.analysis.br,
- org.apache.lucene.analysis.ca,
- 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,
- org.apache.lucene.analysis.core,
- org.apache.lucene.analysis.custom,
- org.apache.lucene.analysis.cz,
- org.apache.lucene.analysis.da,
- org.apache.lucene.analysis.de,
- org.apache.lucene.analysis.el,
- org.apache.lucene.analysis.en,
- org.apache.lucene.analysis.es,
- org.apache.lucene.analysis.eu,
- org.apache.lucene.analysis.fa,
- org.apache.lucene.analysis.fi,
- org.apache.lucene.analysis.fr,
- org.apache.lucene.analysis.ga,
- org.apache.lucene.analysis.gl,
- org.apache.lucene.analysis.hi,
- org.apache.lucene.analysis.hu,
- org.apache.lucene.analysis.hunspell,
- org.apache.lucene.analysis.hy,
- org.apache.lucene.analysis.id,
- org.apache.lucene.analysis.in,
- org.apache.lucene.analysis.it,
- org.apache.lucene.analysis.lt,
- org.apache.lucene.analysis.lv,
- org.apache.lucene.analysis.miscellaneous,
- org.apache.lucene.analysis.ngram,
- org.apache.lucene.analysis.nl,
- org.apache.lucene.analysis.no,
- 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,
- org.apache.lucene.analysis.ro,
- org.apache.lucene.analysis.ru,
- org.apache.lucene.analysis.shingle,
- org.apache.lucene.analysis.sinks,
- org.apache.lucene.analysis.snowball,
- org.apache.lucene.analysis.sr,
- org.apache.lucene.analysis.standard,
- org.apache.lucene.analysis.standard.std40,
- org.apache.lucene.analysis.sv,
- org.apache.lucene.analysis.synonym,
- org.apache.lucene.analysis.th,
- org.apache.lucene.analysis.tokenattributes,
- org.apache.lucene.analysis.tr,
- org.apache.lucene.analysis.util,
- org.apache.lucene.analysis.wikipedia,
- org.apache.lucene.bkdtree,
- org.apache.lucene.codecs,
- org.apache.lucene.codecs.blocktree,
- org.apache.lucene.codecs.compressing,
- org.apache.lucene.codecs.idversion,
- org.apache.lucene.codecs.lucene50,
- org.apache.lucene.codecs.lucene53,
- org.apache.lucene.codecs.lucene54,
- org.apache.lucene.codecs.perfield,
- org.apache.lucene.collation,
- org.apache.lucene.collation.tokenattributes,
- org.apache.lucene.document,
- org.apache.lucene.index,
- org.apache.lucene.payloads,
- org.apache.lucene.queryparser.analyzing,
- org.apache.lucene.queryparser.classic,
- org.apache.lucene.queryparser.complexPhrase,
- org.apache.lucene.queryparser.ext,
- org.apache.lucene.queryparser.flexible.core,
- org.apache.lucene.queryparser.flexible.core.builders,
- org.apache.lucene.queryparser.flexible.core.config,
- org.apache.lucene.queryparser.flexible.core.messages,
- org.apache.lucene.queryparser.flexible.core.nodes,
- org.apache.lucene.queryparser.flexible.core.parser,
- org.apache.lucene.queryparser.flexible.core.processors,
- org.apache.lucene.queryparser.flexible.core.util,
- org.apache.lucene.queryparser.flexible.messages,
- org.apache.lucene.queryparser.flexible.precedence,
- org.apache.lucene.queryparser.flexible.precedence.processors,
- org.apache.lucene.queryparser.flexible.standard,
- org.apache.lucene.queryparser.flexible.standard.builders,
- org.apache.lucene.queryparser.flexible.standard.config,
- org.apache.lucene.queryparser.flexible.standard.nodes,
- org.apache.lucene.queryparser.flexible.standard.parser,
- org.apache.lucene.queryparser.flexible.standard.processors,
- org.apache.lucene.queryparser.simple,
- org.apache.lucene.queryparser.surround.parser,
- org.apache.lucene.queryparser.surround.query,
- org.apache.lucene.queryparser.xml,
- org.apache.lucene.queryparser.xml.builders,
- org.apache.lucene.rangetree,
- org.apache.lucene.sandbox.queries,
- org.apache.lucene.sandbox.queries.regex,
- org.apache.lucene.search,
- org.apache.lucene.search.similarities,
- org.apache.lucene.search.spans,
- org.apache.lucene.search.spell,
- org.apache.lucene.search.suggest,
- org.apache.lucene.search.suggest.analyzing,
- org.apache.lucene.search.suggest.document,
- org.apache.lucene.search.suggest.fst,
- org.apache.lucene.search.suggest.jaspell,
- org.apache.lucene.search.suggest.tst,
- org.apache.lucene.store,
- org.apache.lucene.util,
- org.apache.lucene.util.automaton,
- org.apache.lucene.util.fst,
- org.apache.lucene.util.mutable,
- org.apache.lucene.util.packed,
- org.apache.sanselan;uses:="org.apache.sanselan.common,org.apache.sanselan.common.byteSources",
- org.apache.xerces.dom,
- org.h2.jdbc,
- org.hamcrest,
+ org.apache.logging.log4j,
+ org.apache.logging.log4j.core,
  org.hibernate,
- org.hibernate.annotations.common.reflection,
  org.hibernate.cache.internal,
  org.hibernate.cfg,
  org.hibernate.classic,
@@ -434,8 +223,6 @@ Export-Package: com.google.api,
  org.hibernate.engine.internal,
  org.hibernate.engine.spi,
  org.hibernate.engine.transaction.spi,
- org.hibernate.envers.query.criteria,
- org.hibernate.envers.tools,
  org.hibernate.internal,
  org.hibernate.internal.util,
  org.hibernate.internal.util.collections,
@@ -444,16 +231,7 @@ Export-Package: com.google.api,
  org.hibernate.persister.entity,
  org.hibernate.pretty,
  org.hibernate.proxy,
- org.hibernate.proxy.pojo.javassist,
- org.hibernate.search,
- org.hibernate.search.backend.impl.lucene,
- org.hibernate.search.backend.impl.lucene.analysis,
- org.hibernate.search.backend.impl.lucene.overrides,
- org.hibernate.search.backend.impl.lucene.works,
- org.hibernate.search.spatial.impl,
  org.hibernate.type,
- org.jadira.usertype.dateandtime.joda,
- org.jadira.usertype.dateandtime.shared.spi,
  org.jboss.logging,
  org.jdom;uses:="org.jdom.filter",
  org.jdom.input;
@@ -482,7 +260,6 @@ Export-Package: com.google.api,
  org.joda.time.field;uses:="org.joda.time",
  org.joda.time.format;uses:="org.joda.time",
  org.joda.time.tz;uses:="org.joda.time",
- org.json,
  org.junit;uses:="org.hamcrest",
  org.junit.runner,
  org.slf4j,
@@ -502,7 +279,6 @@ Export-Package: com.google.api,
  org.springframework.beans.factory.config,
  org.springframework.beans.factory.support,
  org.springframework.beans.factory.xml,
- org.springframework.cache.ehcache,
  org.springframework.context;
   uses:="org.springframework.core.io,
    org.springframework.beans,
@@ -522,32 +298,6 @@ Export-Package: com.google.api,
  org.springframework.core.io.support,
  org.springframework.core.type.classreading,
  org.springframework.jdbc.datasource,
- org.springframework.orm.hibernate3;
-  uses:="org.apache.commons.logging,
-   org.aopalliance.intercept,
-   org.hibernate.jdbc,
-   org.springframework.dao.support,
-   org.springframework.core,
-   org.hibernate.connection,
-   org.hibernate.classic,
-   org.hibernate.transaction,
-   org.hibernate.context,
-   org.springframework.beans.factory,
-   org.hibernate.engine,
-   org.springframework.transaction,
-   org.hibernate.cfg,
-   org.springframework.core.io,
-   org.springframework.jdbc.support,
-   org.hibernate,
-   javax.sql,
-   org.springframework.orm,
-   org.springframework.jdbc.support.lob,
-   org.hibernate.criterion,
-   javax.transaction,
-   org.hibernate.cache,
-   org.springframework.dao,
-   org.springframework.transaction.support",
- org.springframework.orm.hibernate4,
  org.springframework.remoting,
  org.springframework.remoting.httpinvoker,
  org.springframework.remoting.support,
@@ -556,50 +306,9 @@ Export-Package: com.google.api,
  org.springframework.security.authentication.dao,
  org.springframework.security.authentication.encoding,
  org.springframework.security.authentication.event,
- org.springframework.security.config,
  org.springframework.security.core,
  org.springframework.security.core.context,
  org.springframework.security.core.userdetails,
- org.springframework.security.oauth2.client,
- org.springframework.security.oauth2.client.filter,
- org.springframework.security.oauth2.client.filter.state,
- org.springframework.security.oauth2.client.http,
- org.springframework.security.oauth2.client.resource,
- org.springframework.security.oauth2.client.test,
- org.springframework.security.oauth2.client.token,
- org.springframework.security.oauth2.client.token.auth,
- org.springframework.security.oauth2.client.token.grant.client,
- org.springframework.security.oauth2.client.token.grant.code,
- org.springframework.security.oauth2.client.token.grant.implicit,
- org.springframework.security.oauth2.client.token.grant.password,
- org.springframework.security.oauth2.client.token.grant.redirect,
- org.springframework.security.oauth2.common,
- org.springframework.security.oauth2.common.exceptions,
- org.springframework.security.oauth2.common.util,
- org.springframework.security.oauth2.config.annotation.builders,
- org.springframework.security.oauth2.config.annotation.configuration,
- org.springframework.security.oauth2.config.annotation.configurers,
- org.springframework.security.oauth2.config.annotation.web.configuration,
- org.springframework.security.oauth2.config.annotation.web.configurers,
- org.springframework.security.oauth2.config.xml,
- org.springframework.security.oauth2.http.converter,
- org.springframework.security.oauth2.http.converter.jaxb,
- org.springframework.security.oauth2.provider,
- org.springframework.security.oauth2.provider.approval,
- org.springframework.security.oauth2.provider.authentication,
- org.springframework.security.oauth2.provider.client,
- org.springframework.security.oauth2.provider.code,
- org.springframework.security.oauth2.provider.endpoint,
- org.springframework.security.oauth2.provider.error,
- org.springframework.security.oauth2.provider.expression,
- org.springframework.security.oauth2.provider.implicit,
- org.springframework.security.oauth2.provider.password,
- org.springframework.security.oauth2.provider.refresh,
- org.springframework.security.oauth2.provider.request,
- org.springframework.security.oauth2.provider.token,
- org.springframework.security.oauth2.provider.token.store,
- org.springframework.security.oauth2.provider.token.store.redis,
- org.springframework.security.oauth2.provider.vote,
  org.springframework.security.provisioning,
  org.springframework.stereotype,
  org.springframework.transaction;uses:="org.springframework.core",
@@ -633,19 +342,6 @@ Export-Package: com.google.api,
    org.apache.commons.logging,
    org.springframework.beans.factory",
  org.springframework.util,
- org.springframework.web.servlet;
-  uses:="org.springframework.web.multipart,
-   org.apache.commons.logging,
-   org.springframework.context.i18n,
-   org.springframework.ui.context,
-   org.springframework.util,
-   org.springframework.beans,
-   org.springframework.context,
-   org.springframework.web.context,
-   org.springframework.context.event,
-   javax.servlet,
-   org.springframework.ui,
-   javax.servlet.http",
  org.swtchart
 Bundle-Vendor: EDIT
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
@@ -656,221 +352,77 @@ Require-Bundle: org.eclipse.osgi,
  org.eclipse.e4.ui.services;bundle-version="1.2.100",
  org.eclipse.swt
 Bundle-ClassPath: .,
- lib/activation-1.1.1.jar,
- lib/apache-log4j-extras-1.2.17.jar,
- lib/aspectjrt-1.8.8.jar,
- lib/aspectjweaver-1.8.8.jar,
- lib/batik-xml-1.7.jar,
- lib/cdmlib-commons-5.16.0.jar,
- lib/cdmlib-ext-5.16.0.jar,
- lib/cdmlib-io-5.16.0.jar,
- lib/cdmlib-model-5.16.0.jar,
- lib/cdmlib-persistence-5.16.0.jar,
- lib/cdmlib-print-5.16.0.jar,
- lib/cdmlib-remote-5.16.0.jar,
- lib/cdmlib-cache-5.16.0.jar,
- lib/cdmlib-services-5.16.0.jar,
- lib/com.springsource.org.aopalliance-1.0.0.jar,
- lib/com.springsource.org.apache.commons.logging-1.1.1.jar,
- lib/commons-beanutils-1.9.4.jar,
- lib/commons-codec-1.10.jar,
- lib/commons-collections-3.2.2.jar,
- lib/commons-csv-1.0.jar,
+ lib/aspectjweaver-1.9.7.jar,
+ lib/cdmlib-commons-5.42.0.jar,
+ lib/cdmlib-ext-5.42.0.jar,
+ lib/cdmlib-io-5.42.0.jar,
+ lib/cdmlib-model-5.42.0.jar,
+ lib/cdmlib-api-5.42.0.jar,
+ lib/cdmlib-persistence-5.42.0.jar,
+ lib/cdmlib-cache-5.42.0.jar,
+ lib/cdmlib-services-5.42.0.jar,
+ lib/commons-codec-1.15.jar,
+ lib/commons-collections4-4.4.jar,
  lib/commons-dbcp-1.4.jar,
- lib/commons-io-2.4.jar,
+ lib/commons-imaging-1.0-alpha3.jar,
+ lib/commons-io-2.11.0.jar,
+ lib/commons-lang3-3.12.0.jar,
+ lib/commons-text-1.10.0.jar,
  lib/commons-lang-2.6.jar,
- lib/commons-lang3-3.3.2.jar,
- lib/commons-logging-1.2.jar,
- lib/commons-pool-1.5.4.jar,
- lib/dbunit-2.4.9.jar,
- lib/dom4j-1.6.1.jar,
- lib/dozer-5.3.0.jar,
- lib/dtd-parser-1.1.jar,
- lib/ehcache-core-2.6.11.jar,
- lib/ezmorph-1.0.6.jar,
- lib/google-api-translate-java-0.92.jar,
+ lib/commons-pool-1.6.jar,
+ lib/ehcache-2.10.6.jar,
  lib/h2-1.4.190.jar,
- lib/h2mig_pagestore_addon.jar,
  lib/hamcrest-core-1.3.jar,
- lib/hibernate-c3p0-5.0.7.Final.jar,
- lib/hibernate-cglib-repack-2.1_3.jar,
- lib/hibernate-commons-annotations-5.0.1.Final.jar,
- lib/hibernate-core-5.0.7.Final.jar,
- lib/hibernate-ehcache-5.0.7.Final.jar,
- lib/hibernate-entitymanager-5.0.7.Final.jar,
- lib/hibernate-envers-5.0.7.Final.jar,
- lib/hibernate-jpa-2.1-api-1.0.0.Final.jar,
- lib/hibernate-search-4.2.0.Final.jar,
- lib/hibernate-search-analyzers-4.2.0.Final.jar,
- lib/hibernate-search-engine-5.5.2.Final.jar,
- lib/hibernate-search-orm-5.5.2.Final.jar,
- lib/hibernate-validator-5.2.2.Final.jar,
- lib/hibernate-validator-cdi-5.2.2.Final.jar,
- lib/hsqldb-2.3.3.jar,
- lib/icu4j-2.6.1.jar,
- lib/identificationKeyAPI-1.0.jar,
- lib/itextpdf-5.5.8.jar,
- lib/jackson-annotations-2.6.5.jar,
- lib/jackson-core-2.6.5.jar,
- lib/jboss-logging-3.3.0.Final.jar,
+ lib/hibernate-core-5.4.33.Final.jar,
+ lib/hibernate-envers-5.4.33.Final.jar,
+ lib/hibernate-validator-6.2.3.Final.jar,
+ lib/hibernate-search-engine-5.11.10.Final.jar,
+ lib/byte-buddy-1.12.10.jar,
+ lib/javax.persistence-api-2.2.jar,
+ lib/jackson-annotations-2.13.3.jar,
+ lib/jackson-core-2.13.3.jar,
+ lib/jackson-databind-2.13.3.jar,
+ lib/jboss-logging-3.4.3.Final.jar,
  lib/jdom-1.1.3.jar,
- lib/jdom2-2.0.6.jar,
- lib/joda-time-2.9.1.jar,
- lib/log4j-1.2.17.jar,
+ lib/joda-time-2.10.14.jar,
+ lib/jcl-over-slf4j-1.7.36.jar,
+ lib/log4j-api-2.19.0.jar,
+ lib/log4j-core-2.19.0.jar,
+ lib/log4j-slf4j-impl-2.19.0.jar,
+ lib/slf4j-api-1.7.36.jar,
  lib/lsid-client-1.1.2.jar,
- lib/sanselan-0.97-incubator.jar,
- lib/spring-aop-4.2.4.RELEASE.jar,
- lib/spring-aspects-4.2.4.RELEASE.jar,
- lib/spring-beans-4.2.4.RELEASE.jar,
- lib/spring-context-4.2.4.RELEASE.jar,
- lib/spring-context-support-4.2.4.RELEASE.jar,
- lib/spring-core-4.2.4.RELEASE.jar,
- lib/spring-expression-4.2.4.RELEASE.jar,
- lib/spring-jdbc-4.2.4.RELEASE.jar,
- lib/spring-modules-cache-0.7.jar,
- lib/spring-orm-4.2.4.RELEASE.jar,
- lib/spring-oxm-4.2.4.RELEASE.jar,
- lib/spring-plugin-core-1.2.0.RELEASE.jar,
- lib/spring-plugin-metadata-1.2.0.RELEASE.jar,
- lib/spring-security-config-4.0.3.RELEASE.jar,
- lib/spring-security-core-4.0.3.RELEASE.jar,
- lib/spring-security-web-4.0.3.RELEASE.jar,
- lib/spring-test-4.2.4.RELEASE.jar,
- lib/spring-tx-4.2.4.RELEASE.jar,
- lib/spring-web-4.2.4.RELEASE.jar,
- lib/spring-webmvc-4.2.4.RELEASE.jar,
- lib/springfox-core-2.3.1.jar,
- lib/springfox-schema-2.3.1.jar,
- lib/springfox-spi-2.3.1.jar,
- lib/springfox-spring-web-2.3.1.jar,
- lib/springfox-swagger-common-2.3.1.jar,
- lib/springfox-swagger2-2.3.1.jar,
- lib/standard-1.1.2.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-core-4.3.30.RELEASE.jar,
+ lib/spring-jdbc-4.3.30.RELEASE.jar,
+ lib/spring-security-core-4.2.20.RELEASE.jar,
+ lib/spring-tx-4.3.30.RELEASE.jar,
+ lib/spring-web-4.3.30.RELEASE.jar,
+ lib/spring-orm-4.3.30.RELEASE.jar,
  lib/tools.jar,
- lib/txw2-2.2.11.jar,
- lib/usertype.jodatime-2.0.1.jar,
- lib/usertype.spi-2.0.1.jar,
- lib/validation-api-1.1.0.Final.jar,
- lib/wsdl4j-1.6.3.jar,
- lib/xalan-2.7.0.jar,
- lib/xercesImpl-2.11.0.jar,
- lib/xml-apis-1.0.b2.jar,
- lib/xml-apis-ext-1.3.04.jar,
- lib/xml-resolver-1.2.jar,
- lib/xmlbeans-2.6.0.jar,
- lib/xmlgraphics-commons-1.5.jar,
- lib/xmlpull-1.1.3.1.jar,
- lib/xmlunit-1.6.jar,
- lib/xom-1.2.5.jar,
- lib/xpp3_min-1.1.4c.jar,
- lib/xpp3-1.1.4c.jar,
- lib/xsom-20140925.jar,
- lib/xstream-1.4.8.jar,
- lib/yjp-controller-api-redist-9.0.8.jar,
- lib/spring-security-oauth2-2.0.11.RELEASE.jar,
+ lib/jakarta.validation-api-3.0.2.jar,
+ lib/validation-api-2.0.1.Final.jar,
+ lib/xml-apis-1.4.01.jar,
  lib/opencsv-2.3.jar,
- lib/jdbc4-2.0.jar,
- lib/junit-4.12.jar,
- lib/jackson-databind-2.6.5.jar,
- lib/jackson-core-asl-1.8.8.jar,
- lib/jackson-mapper-asl-1.8.8.jar,
- lib/jakarta-regexp-1.4.jar,
- lib/jandex-2.0.0.Final.jar,
- lib/javassist-3.20.0-GA.jar,
- lib/javax.el-2.2.6.jar,
- lib/javax.el-api-2.2.5.jar,
- lib/javax.servlet-api-3.1.0.jar,
- lib/jaxb-api-2.2.12.jar,
- lib/jaxb-core-2.2.11.jar,
- lib/jaxb-jxc-2.2.11.jar,
- lib/jaxb-runtime-2.2.11.jar,
- lib/jaxb-xjc-2.2.11.jar,
- lib/jaxb1-impl-2.2-EA.jar,
- lib/jaxen-1.1.4.jar,
- lib/jaxen-1.1.6.jar,
- lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar,
- lib/jcl-over-slf4j-1.7.6.jar,
- lib/jena-arq-2.13.0.jar,
- lib/jena-core-2.13.0.jar,
- lib/jena-iri-1.1.2.jar,
- lib/jena-tdb-1.1.2.jar,
- lib/json-20090211.jar,
- lib/json-lib-2.4-jdk15.jar,
- lib/jsonld-java-0.5.1.jar,
- lib/jsr250-api-1.0.jar,
- lib/jta-1.1.jar,
- lib/jtds-1.3.1.jar,
- lib/junit-benchmarks-0.7.2.jar,
- lib/batik-dom-1.7.jar,
- lib/batik-anim-1.7.jar,
- lib/batik-awt-util-1.7.jar,
- lib/batik-bridge-1.7.jar,
- lib/batik-css-1.7.jar,
- lib/batik-ext-1.8.jar,
- lib/batik-extension-1.7.jar,
- lib/batik-gvt-1.7.jar,
- lib/batik-js-1.7.jar,
- lib/batik-parser-1.7.jar,
- lib/batik-script-1.7.jar,
- lib/batik-svg-dom-1.7.jar,
- lib/batik-svggen-1.7.jar,
- lib/batik-transcoder-1.7.jar,
- lib/batik-util-1.7.jar,
- lib/c3p0-0.9.5.2.jar,
- lib/slf4j-api-1.7.13.jar,
- lib/slf4j-log4j12-1.7.13.jar,
- lib/slf4j-nop-1.7.13.jar,
+ lib/junit-4.13.2.jar,
  lib/antlr-2.7.7.jar,
- lib/aopalliance-1.0.jar,
- lib/avro-1.6.3.jar,
- lib/cglib-3.2.0.jar,
- lib/cglib-nodep-3.2.0.jar,
- lib/classmate-1.3.1.jar,
- lib/codemodel-2.2.11.jar,
- lib/concurrent-1.3.4.jar,
- lib/easymock-2.3.jar,
- lib/easymockclassextension-2.3.jar,
- lib/FastInfoset-1.2.13.jar,
- lib/fop-1.1.jar,
- lib/guava-19.0.jar,
- lib/libthrift-0.9.2.jar,
- lib/lsid-server-1.1.2.jar,
- lib/mapstruct-1.0.0.Final.jar,
- lib/mchange-commons-java-0.2.11.jar,
- lib/objenesis-1.2.jar,
- lib/odfdom-0.8.jar,
- lib/odfdom-java-0.8.7.jar,
- lib/ognl-2.6.9.jar,
- lib/paranamer-2.3.jar,
- lib/poi-3.13.jar,
- lib/poi-ooxml-3.13.jar,
- lib/poi-ooxml-schemas-3.13.jar,
- lib/postgresql-9.4-1206-jdbc4.jar,
- lib/relaxngDatatype-20020414.jar,
- lib/rngom-2.2.11.jar,
- lib/Saxon-HE-9.7.0-2.jar,
- lib/servlet-api-2.5.jar,
- lib/snappy-java-1.0.4.1.jar,
- lib/solr-analysis-extras-3.6.2.jar,
- lib/solr-core-3.6.2.jar,
- lib/solr-solrj-3.6.2.jar,
- lib/lucene-core-5.4.1.jar,
- lib/istack-commons-runtime-2.21.jar,
- lib/istack-commons-tools-2.21.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/redmine-java-api-3.1.0.jar,
+ lib/postgresql-42.5.1.jar,
+ lib/lucene-core-5.5.5.jar,
+ lib/lucene-queryparser-5.5.5.jar,
+ lib/lucene-analyzers-common-5.5.5.jar,
+ lib/lucene-sandbox-5.5.5.jar,
+ lib/lucene-suggest-5.5.5.jar,
  lib/org.swtchart_0.10.0.v20160212.jar,
  lib/commons-math3-3.6.1.jar,
- lib/docx4j-6.0.1.jar,
- lib/mysql-connector-java-8.0.15.jar,
- lib/httpclient-4.5.11.jar,
- lib/httpclient-cache-4.2.6.jar,
- lib/httpcore-4.4.13.jar,
- lib/httpmime-4.5.1.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/iiif-apis-0.3.7.jar
+ lib/c3p0-0.9.5.2.jar,
+ lib/mchange-commons-java-0.2.11.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.29.jar
 Import-Package: eu.etaxonomy.cdm.api.application
index 2f307b2cf461c9fa391eef0332ea8a075a22704e..0fdb2c671b2656b841d4946cb8eb565618811ac2 100644 (file)
@@ -19,14 +19,6 @@ Normal Dependencies
     
     Apache License v2.0
     
-- Apache Jakarta Commons Logging
-
-    commons-logging-*.jar
-    http://jakarta.apache.org/commons/logging/
-    (Logging adapter for various logging backends like JDK 1.4 logging or Log4J)
-    
-    Apache License v2.0
-
 - Apache Avalon Framework
 
     avalon-framework-*.jar
@@ -35,14 +27,6 @@ Normal Dependencies
     
     Apache License v2.0
 
-- Apache XML Graphics Commons
-
-    xmlgraphics-commons-*.jar
-    http://xmlgraphics.apache.org/
-    (Common Library for Apache Batik and Apache FOP)
-    
-    Apache License v2.0
-
 - Apache Batik
 
     batik-*.jar
@@ -50,6 +34,8 @@ Normal Dependencies
     (SVG Implementation)
     
     Apache License v2.0
+    
+    => removed 2020-08
 
 - Apache XML Commons Externals (JAXP API)
 
@@ -67,10 +53,6 @@ Normal Dependencies
         http://www.w3.org/Consortium/Legal/copyright-documents
         http://www.w3.org/Consortium/Legal/
 
-    xml-apis-ext-*.jar
-    http://xml.apache.org/commons/components/external/
-    (additional DOM APIs from W3C, like SVG, SMIL and Simple API for CSS)
-    
     Apache License v2.0 (applies to the distribution)
     W3C Software Notice and License (applies to the various DOM Java bindings)
     W3C Document License (applies to the DOM documentation)
@@ -78,33 +60,6 @@ Normal Dependencies
         http://www.w3.org/Consortium/Legal/copyright-documents
         http://www.w3.org/Consortium/Legal/
 
-- Apache Xalan-J
-
-    xalan-*.jar and serializer-*.jar
-    http://xalan.apache.org
-    (JAXP-compliant XSLT and XPath implementation)
-    
-    Apache License v2.0 (applies to Xalan-J)
-    Apache License v1.1 (applies to Apache BCEL and Apache REGEXP bundled in the JAR)
-    Historical Permission Notice and Disclaimer (applies to CUP Parser Generator)
-        http://www.opensource.org/licenses/historical.php
-        (see xalan.runtime.LICENSE.txt)
-
-
-Special Dependencies
------------------------
-
-- Apache Xerces-J
-
-    xercesImpl-*.jar
-    http://xerces.apache.org
-    (JAXP-compliant XML parser and DOM Level 3 implementation)
-    
-    Apache License v2.0
-    
-    Xerces-J is not directly referenced by FOP or any of its dependencies.
-    
-
 A note on JAXP
 -----------------------
 
@@ -184,10 +139,4 @@ Additional development-time dependencies
 
     (not bundled, provided by Apache Ant or your IDE)
     http://www.junit.org
-    Common Public License V1.0
-
-- XMLUnit (optional)
-
-    (not bundled, to be added to your Apache Ant installation)
-    http://xmlunit.sourceforge.net/
-    BSD style license
\ No newline at end of file
+    Common Public License V1.0
\ No newline at end of file
index 0b4ecfc6744f6feb4fda8653cf32eae4b88b2ee5..7a0270b24b53c7000458a5d8d36823d3e9213938 100644 (file)
 bin.includes = META-INF/,\
                .,\
-               lib/activation-1.1.1.jar,\
-               lib/apache-log4j-extras-1.2.17.jar,\
-               lib/aspectjrt-1.8.8.jar,\
-               lib/aspectjweaver-1.8.8.jar,\
-               lib/batik-xml-1.7.jar,\
-               lib/cdmlib-commons-5.16.0.jar,\
-               lib/cdmlib-ext-5.16.0.jar,\
-               lib/cdmlib-io-5.16.0.jar,\
-               lib/cdmlib-model-5.16.0.jar,\
-               lib/cdmlib-persistence-5.16.0.jar,\
-               lib/cdmlib-print-5.16.0.jar,\
-               lib/cdmlib-remote-5.16.0.jar,\
-               lib/cdmlib-services-5.16.0.jar,\
-               lib/com.springsource.org.aopalliance-1.0.0.jar,\
-               lib/com.springsource.org.apache.commons.logging-1.1.1.jar,\
-               lib/commons-beanutils-1.9.4.jar,\
-               lib/commons-codec-1.10.jar,\
-               lib/commons-collections-3.2.2.jar,\
-               lib/commons-csv-1.0.jar,\
+               lib/aspectjweaver-1.9.7.jar,\
+               lib/cdmlib-commons-5.42.0.jar,\
+               lib/cdmlib-ext-5.42.0.jar,\
+               lib/cdmlib-io-5.42.0.jar,\
+               lib/cdmlib-model-5.42.0.jar,\
+               lib/cdmlib-api-5.42.0.jar,\
+               lib/cdmlib-persistence-5.42.0.jar,\
+               lib/cdmlib-services-5.42.0.jar,\
+               lib/commons-collections4-4.4.jar,\
+               lib/commons-codec-1.15.jar,\
                lib/commons-dbcp-1.4.jar,\
-               lib/commons-io-2.4.jar,\
+               lib/commons-io-2.11.0.jar,\
                lib/commons-lang-2.6.jar,\
-               lib/commons-lang3-3.3.2.jar,\
-               lib/commons-logging-1.2.jar,\
-               lib/commons-pool-1.5.4.jar,\
-               lib/dbunit-2.4.9.jar,\
-               lib/dom4j-1.6.1.jar,\
-               lib/dozer-5.3.0.jar,\
-               lib/dtd-parser-1.1.jar,\
-               lib/ehcache-core-2.6.11.jar,\
-               lib/ezmorph-1.0.6.jar,\
-               lib/google-api-translate-java-0.92.jar,\
+               lib/commons-lang3-3.12.0.jar,\
+               lib/commons-pool-1.6.jar,\
+               lib/commons-math3-3.6.1.jar,\
+               lib/commons-text-1.10.0.jar,\
+               lib/commons-imaging-1.0-alpha3.jar,\
+               lib/ehcache-2.10.6.jar,\
                lib/h2-1.4.190.jar,\
-               lib/h2mig_pagestore_addon.jar,\
-               lib/hamcrest-core-1.3.jar,\
-               lib/hibernate-c3p0-5.0.7.Final.jar,\
-               lib/hibernate-cglib-repack-2.1_3.jar,\
-               lib/hibernate-commons-annotations-5.0.1.Final.jar,\
-               lib/hibernate-core-5.0.7.Final.jar,\
-               lib/hibernate-ehcache-5.0.7.Final.jar,\
-               lib/hibernate-entitymanager-5.0.7.Final.jar,\
-               lib/hibernate-envers-5.0.7.Final.jar,\
-               lib/hibernate-jpa-2.1-api-1.0.0.Final.jar,\
-               lib/hibernate-search-4.2.0.Final.jar,\
-               lib/hibernate-search-analyzers-4.2.0.Final.jar,\
-               lib/hibernate-search-engine-5.5.2.Final.jar,\
-               lib/hibernate-search-orm-5.5.2.Final.jar,\
-               lib/hibernate-validator-5.2.2.Final.jar,\
-               lib/hibernate-validator-cdi-5.2.2.Final.jar,\
-               lib/hsqldb-2.3.3.jar,\
-               lib/httpclient-4.5.11.jar,\
-               lib/httpclient-cache-4.2.6.jar,\
-               lib/httpcore-4.4.13.jar,\
-               lib/httpmime-4.5.1.jar,\
-               lib/icu4j-2.6.1.jar,\
-               lib/identificationKeyAPI-1.0.jar,\
-               lib/itextpdf-5.5.8.jar,\
-               lib/jackson-annotations-2.6.5.jar,\
-               lib/jackson-core-2.6.5.jar,\
-               lib/jboss-logging-3.3.0.Final.jar,\
+               lib/hibernate-core-5.4.33.Final.jar,\
+               lib/hibernate-envers-5.4.33.Final.jar,\
+               lib/hibernate-search-engine-5.11.10.Final.jar,\
+               lib/lucene-core-5.5.5.jar,\
+               lib/byte-buddy-1.12.10.jar,\
+               lib/antlr-2.7.7.jar,\
+               lib/javax.persistence-api-2.2.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/jackson-annotations-2.13.3.jar,\
+               lib/jackson-core-2.13.3.jar,\
+               lib/jackson-databind-2.13.3.jar,\
+               lib/jboss-logging-3.4.3.Final.jar,\
                lib/jdom-1.1.3.jar,\
-               lib/jdom2-2.0.6.jar,\
-               lib/joda-time-2.9.1.jar,\
-               lib/log4j-1.2.17.jar,\
+               lib/joda-time-2.10.14.jar,\
+               lib/log4j-api-2.19.0.jar,\
+               lib/log4j-core-2.19.0.jar,\
+               lib/log4j-slf4j-impl-2.19.0.jar,\
+                          lib/slf4j-api-1.7.36.jar,\
                lib/lsid-client-1.1.2.jar,\
-               lib/sanselan-0.97-incubator.jar,\
-               lib/spring-aop-4.2.4.RELEASE.jar,\
-               lib/spring-aspects-4.2.4.RELEASE.jar,\
-               lib/spring-beans-4.2.4.RELEASE.jar,\
-               lib/spring-context-4.2.4.RELEASE.jar,\
-               lib/spring-context-support-4.2.4.RELEASE.jar,\
-               lib/spring-core-4.2.4.RELEASE.jar,\
-               lib/spring-expression-4.2.4.RELEASE.jar,\
-               lib/spring-jdbc-4.2.4.RELEASE.jar,\
-               lib/spring-modules-cache-0.7.jar,\
-               lib/spring-orm-4.2.4.RELEASE.jar,\
-               lib/spring-oxm-4.2.4.RELEASE.jar,\
-               lib/spring-plugin-core-1.2.0.RELEASE.jar,\
-               lib/spring-plugin-metadata-1.2.0.RELEASE.jar,\
-               lib/spring-security-config-4.0.3.RELEASE.jar,\
-               lib/spring-security-core-4.0.3.RELEASE.jar,\
-               lib/spring-security-web-4.0.3.RELEASE.jar,\
-               lib/spring-test-4.2.4.RELEASE.jar,\
-               lib/spring-tx-4.2.4.RELEASE.jar,\
-               lib/spring-web-4.2.4.RELEASE.jar,\
-               lib/spring-webmvc-4.2.4.RELEASE.jar,\
-               lib/springfox-core-2.3.1.jar,\
-               lib/springfox-schema-2.3.1.jar,\
-               lib/springfox-spi-2.3.1.jar,\
-               lib/springfox-spring-web-2.3.1.jar,\
-               lib/springfox-swagger-common-2.3.1.jar,\
-               lib/springfox-swagger2-2.3.1.jar,\
-               lib/standard-1.1.2.jar,\
+               lib/jcl-over-slf4j-1.7.36.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-core-4.3.30.RELEASE.jar,\
+               lib/spring-security-core-4.2.20.RELEASE.jar,\
+               lib/spring-tx-4.3.30.RELEASE.jar,\
+               lib/spring-web-4.3.30.RELEASE.jar,\
+               lib/spring-orm-4.3.30.RELEASE.jar,\
                lib/tools.jar,\
-               lib/txw2-2.2.11.jar,\
-               lib/usertype.jodatime-2.0.1.jar,\
-               lib/usertype.spi-2.0.1.jar,\
-               lib/validation-api-1.1.0.Final.jar,\
-               lib/wsdl4j-1.6.3.jar,\
-               lib/xalan-2.7.0.jar,\
-               lib/xercesImpl-2.11.0.jar,\
-               lib/xml-apis-1.0.b2.jar,\
-               lib/xml-apis-ext-1.3.04.jar,\
-               lib/xml-resolver-1.2.jar,\
-               lib/xmlbeans-2.6.0.jar,\
-               lib/xmlgraphics-commons-1.5.jar,\
-               lib/xmlpull-1.1.3.1.jar,\
-               lib/xmlunit-1.6.jar,\
-               lib/xom-1.2.5.jar,\
-               lib/xpp3_min-1.1.4c.jar,\
-               lib/xpp3-1.1.4c.jar,\
-               lib/xsom-20140925.jar,\
-               lib/xstream-1.4.8.jar,\
-               lib/yjp-controller-api-redist-9.0.8.jar,\
-               lib/spring-security-oauth2-2.0.11.RELEASE.jar,\
+               lib/jakarta.validation-api-3.0.2.jar,\
+               lib/validation-api-2.0.1.Final.jar,\
+               lib/xml-apis-1.4.01.jar,\
                lib/opencsv-2.3.jar,\
-               lib/jdbc4-2.0.jar,\
-               lib/junit-4.12.jar,\
-               lib/jackson-databind-2.6.5.jar,\
-               lib/jackson-core-asl-1.8.8.jar,\
-               lib/jackson-mapper-asl-1.8.8.jar,\
-               lib/jakarta-regexp-1.4.jar,\
-               lib/jandex-2.0.0.Final.jar,\
-               lib/javassist-3.20.0-GA.jar,\
-               lib/javax.el-2.2.6.jar,\
-               lib/javax.el-api-2.2.5.jar,\
-               lib/javax.servlet-api-3.1.0.jar,\
-               lib/jaxb-api-2.2.12.jar,\
-               lib/jaxb-core-2.2.11.jar,\
-               lib/jaxb-jxc-2.2.11.jar,\
-               lib/jaxb-runtime-2.2.11.jar,\
-               lib/jaxb-xjc-2.2.11.jar,\
-               lib/jaxb1-impl-2.2-EA.jar,\
-               lib/jaxen-1.1.4.jar,\
-               lib/jaxen-1.1.6.jar,\
-               lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar,\
-               lib/jcl-over-slf4j-1.7.6.jar,\
-               lib/jena-arq-2.13.0.jar,\
-               lib/jena-core-2.13.0.jar,\
-               lib/jena-iri-1.1.2.jar,\
-               lib/jena-tdb-1.1.2.jar,\
-               lib/json-20090211.jar,\
-               lib/json-lib-2.4-jdk15.jar,\
-               lib/jsonld-java-0.5.1.jar,\
-               lib/jsr250-api-1.0.jar,\
-               lib/jta-1.1.jar,\
-               lib/jtds-1.3.1.jar,\
-               lib/junit-benchmarks-0.7.2.jar,\
-               lib/batik-dom-1.7.jar,\
-               lib/batik-anim-1.7.jar,\
-               lib/batik-awt-util-1.7.jar,\
-               lib/batik-bridge-1.7.jar,\
-               lib/batik-css-1.7.jar,\
-               lib/batik-ext-1.8.jar,\
-               lib/batik-extension-1.7.jar,\
-               lib/batik-gvt-1.7.jar,\
-               lib/batik-js-1.7.jar,\
-               lib/batik-parser-1.7.jar,\
-               lib/batik-script-1.7.jar,\
-               lib/batik-svg-dom-1.7.jar,\
-               lib/batik-svggen-1.7.jar,\
-               lib/batik-transcoder-1.7.jar,\
-               lib/batik-util-1.7.jar,\
-               lib/c3p0-0.9.5.2.jar,\
-               lib/slf4j-api-1.7.13.jar,\
-               lib/slf4j-log4j12-1.7.13.jar,\
-               lib/slf4j-nop-1.7.13.jar,\
-               lib/antlr-2.7.7.jar,\
-               lib/aopalliance-1.0.jar,\
-               lib/avro-1.6.3.jar,\
-               lib/cglib-3.2.0.jar,\
-               lib/cglib-nodep-3.2.0.jar,\
-               lib/classmate-1.3.1.jar,\
-               lib/codemodel-2.2.11.jar,\
-               lib/concurrent-1.3.4.jar,\
-               lib/easymock-2.3.jar,\
-               lib/easymockclassextension-2.3.jar,\
-               lib/FastInfoset-1.2.13.jar,\
-               lib/fop-1.1.jar,\
-               lib/guava-19.0.jar,\
-               lib/libthrift-0.9.2.jar,\
-               lib/lsid-server-1.1.2.jar,\
-               lib/mapstruct-1.0.0.Final.jar,\
+               lib/junit-4.13.2.jar,\
+               lib/postgresql-42.5.1.jar,\
                lib/mchange-commons-java-0.2.11.jar,\
-               lib/objenesis-1.2.jar,\
-               lib/odfdom-0.8.jar,\
-               lib/odfdom-java-0.8.7.jar,\
-               lib/ognl-2.6.9.jar,\
-               lib/paranamer-2.3.jar,\
-               lib/poi-3.13.jar,\
-               lib/poi-ooxml-3.13.jar,\
-               lib/poi-ooxml-schemas-3.13.jar,\
-               lib/postgresql-9.4-1206-jdbc4.jar,\
-               lib/relaxngDatatype-20020414.jar,\
-               lib/rngom-2.2.11.jar,\
-               lib/Saxon-HE-9.7.0-2.jar,\
-               lib/servlet-api-2.5.jar,\
-               lib/snappy-java-1.0.4.1.jar,\
-               lib/solr-analysis-extras-3.6.2.jar,\
-               lib/solr-core-3.6.2.jar,\
-               lib/solr-solrj-3.6.2.jar,\
-               lib/lucene-core-5.4.1.jar,\
-               lib/istack-commons-runtime-2.21.jar,\
-               lib/istack-commons-tools-2.21.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.16.0.jar,\
-               lib/redmine-java-api-3.1.0.jar,\
+               lib/cdmlib-cache-5.42.0.jar,\
                lib/org.swtchart_0.10.0.v20160212.jar,\
-               lib/commons-math3-3.6.1.jar,\
-               lib/docx4j-6.0.1.jar,\
-               lib/mysql-connector-java-8.0.15.jar,\
-               lib/JavaAPIforKml-2.2.1.jar,\
-               lib/iiif-apis-0.3.7.jar
-
+               lib/mysql-connector-java-8.0.29.jar,\
+               lib/c3p0-0.9.5.2.jar,\
+               lib/jboss-transaction-api_1.2_spec-1.1.1.Final.jar,\
+               lib/spring-jdbc-4.3.30.RELEASE.jar
 jars.compile.order = .
 output.. = bin/
 source.. = src/main/java/,\
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/lib/FastInfoset-1.2.13.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/FastInfoset-1.2.13.jar
deleted file mode 100644 (file)
index 933e4ee..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/FastInfoset-1.2.13.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/Saxon-HE-9.7.0-2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/Saxon-HE-9.7.0-2.jar
deleted file mode 100644 (file)
index 83fc05a..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/Saxon-HE-9.7.0-2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/activation-1.1.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/activation-1.1.1.jar
deleted file mode 100644 (file)
index 1b703ab..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/activation-1.1.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/antlr-2.7.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/antlr-2.7.7.jar
deleted file mode 100644 (file)
index 5e5f14b..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/antlr-2.7.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/aopalliance-1.0.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/aopalliance-1.0.jar
deleted file mode 100644 (file)
index 578b1a0..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/aopalliance-1.0.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/apache-log4j-extras-1.2.17.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/apache-log4j-extras-1.2.17.jar
deleted file mode 100644 (file)
index b08d8d5..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/apache-log4j-extras-1.2.17.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/aspectjrt-1.8.8.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/aspectjrt-1.8.8.jar
deleted file mode 100644 (file)
index 4c69902..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/aspectjrt-1.8.8.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/aspectjweaver-1.8.8.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/aspectjweaver-1.8.8.jar
deleted file mode 100644 (file)
index 5e5d3ce..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/aspectjweaver-1.8.8.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/avro-1.6.3.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/avro-1.6.3.jar
deleted file mode 100644 (file)
index eef37ce..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/avro-1.6.3.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-anim-1.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/batik-anim-1.7.jar
deleted file mode 100644 (file)
index 2a150b2..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-anim-1.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-awt-util-1.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/batik-awt-util-1.7.jar
deleted file mode 100644 (file)
index f83b5bd..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-awt-util-1.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-bridge-1.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/batik-bridge-1.7.jar
deleted file mode 100644 (file)
index 872cf27..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-bridge-1.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-css-1.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/batik-css-1.7.jar
deleted file mode 100644 (file)
index ef3013d..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-css-1.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-dom-1.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/batik-dom-1.7.jar
deleted file mode 100644 (file)
index 0206475..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-dom-1.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-ext-1.8.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/batik-ext-1.8.jar
deleted file mode 100644 (file)
index 6a09ca3..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-ext-1.8.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-extension-1.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/batik-extension-1.7.jar
deleted file mode 100644 (file)
index 03343f0..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-extension-1.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-gvt-1.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/batik-gvt-1.7.jar
deleted file mode 100644 (file)
index 9aa9686..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-gvt-1.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-js-1.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/batik-js-1.7.jar
deleted file mode 100644 (file)
index ccad3cc..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-js-1.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-parser-1.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/batik-parser-1.7.jar
deleted file mode 100644 (file)
index b84ad36..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-parser-1.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-script-1.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/batik-script-1.7.jar
deleted file mode 100644 (file)
index a684f1c..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-script-1.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-svg-dom-1.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/batik-svg-dom-1.7.jar
deleted file mode 100644 (file)
index 463d0e0..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-svg-dom-1.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-svggen-1.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/batik-svggen-1.7.jar
deleted file mode 100644 (file)
index 0feaf60..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-svggen-1.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-transcoder-1.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/batik-transcoder-1.7.jar
deleted file mode 100644 (file)
index 3934ed0..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-transcoder-1.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-util-1.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/batik-util-1.7.jar
deleted file mode 100644 (file)
index c50d1ff..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-util-1.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-xml-1.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/batik-xml-1.7.jar
deleted file mode 100644 (file)
index 45ba157..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/batik-xml-1.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cglib-3.2.0.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cglib-3.2.0.jar
deleted file mode 100644 (file)
index 51e2d85..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cglib-3.2.0.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/cglib-nodep-3.2.0.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/cglib-nodep-3.2.0.jar
deleted file mode 100644 (file)
index e11f7cb..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/cglib-nodep-3.2.0.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/classmate-1.3.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/classmate-1.3.1.jar
deleted file mode 100644 (file)
index 01bf55b..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/classmate-1.3.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/codemodel-2.2.11.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/codemodel-2.2.11.jar
deleted file mode 100644 (file)
index 02f3da4..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/codemodel-2.2.11.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/com.springsource.org.aopalliance-1.0.0.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/com.springsource.org.aopalliance-1.0.0.jar
deleted file mode 100644 (file)
index 3c5cf8b..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/com.springsource.org.aopalliance-1.0.0.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/com.springsource.org.apache.commons.logging-1.1.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/com.springsource.org.apache.commons.logging-1.1.1.jar
deleted file mode 100644 (file)
index f50c78c..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/com.springsource.org.apache.commons.logging-1.1.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-codec-1.10.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/commons-codec-1.10.jar
deleted file mode 100644 (file)
index 1d7417c..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-codec-1.10.jar and /dev/null differ
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-csv-1.0.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/commons-csv-1.0.jar
deleted file mode 100644 (file)
index 5f58e40..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-csv-1.0.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-dbcp-1.4.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/commons-dbcp-1.4.jar
deleted file mode 100644 (file)
index c4c1c4f..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-dbcp-1.4.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-lang-2.6.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/commons-lang-2.6.jar
deleted file mode 100644 (file)
index 98467d3..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-lang-2.6.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-lang3-3.3.2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/commons-lang3-3.3.2.jar
deleted file mode 100644 (file)
index 2ce08ae..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-lang3-3.3.2.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/commons-math3-3.6.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/commons-math3-3.6.1.jar
deleted file mode 100644 (file)
index 0ff582c..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-math3-3.6.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-pool-1.5.4.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/commons-pool-1.5.4.jar
deleted file mode 100644 (file)
index 43edf99..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/commons-pool-1.5.4.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/concurrent-1.3.4.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/concurrent-1.3.4.jar
deleted file mode 100644 (file)
index 551f347..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/concurrent-1.3.4.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/dbunit-2.4.9.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/dbunit-2.4.9.jar
deleted file mode 100644 (file)
index 130921b..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/dbunit-2.4.9.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/docx4j-6.0.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/docx4j-6.0.1.jar
deleted file mode 100644 (file)
index 5e193bb..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/docx4j-6.0.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/dom4j-1.6.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/dom4j-1.6.1.jar
deleted file mode 100644 (file)
index c8c4dbb..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/dom4j-1.6.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/dozer-5.3.0.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/dozer-5.3.0.jar
deleted file mode 100644 (file)
index adf3728..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/dozer-5.3.0.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/dtd-parser-1.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/dtd-parser-1.1.jar
deleted file mode 100644 (file)
index e6e6c4e..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/dtd-parser-1.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/easymock-2.3.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/easymock-2.3.jar
deleted file mode 100644 (file)
index 190213e..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/easymock-2.3.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/easymockclassextension-2.3.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/easymockclassextension-2.3.jar
deleted file mode 100644 (file)
index e1069f3..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/easymockclassextension-2.3.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/ehcache-core-2.6.11.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/ehcache-core-2.6.11.jar
deleted file mode 100644 (file)
index 0eb926b..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/ehcache-core-2.6.11.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/fop-1.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/fop-1.1.jar
deleted file mode 100644 (file)
index 5113064..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/fop-1.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/google-api-translate-java-0.92.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/google-api-translate-java-0.92.jar
deleted file mode 100644 (file)
index 9d88e1b..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/google-api-translate-java-0.92.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/guava-19.0.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/guava-19.0.jar
deleted file mode 100644 (file)
index b175ca8..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/guava-19.0.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/h2mig_pagestore_addon.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/h2mig_pagestore_addon.jar
deleted file mode 100644 (file)
index 51548b4..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/h2mig_pagestore_addon.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/hamcrest-core-1.3.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hamcrest-core-1.3.jar
deleted file mode 100644 (file)
index 9d5fe16..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/hamcrest-core-1.3.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-c3p0-5.0.7.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-c3p0-5.0.7.Final.jar
deleted file mode 100644 (file)
index bb6633e..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-c3p0-5.0.7.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-cglib-repack-2.1_3.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-cglib-repack-2.1_3.jar
deleted file mode 100644 (file)
index 1ba9b5b..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-cglib-repack-2.1_3.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-commons-annotations-5.0.1.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-commons-annotations-5.0.1.Final.jar
deleted file mode 100644 (file)
index 82e425d..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-commons-annotations-5.0.1.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-core-5.0.7.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-core-5.0.7.Final.jar
deleted file mode 100644 (file)
index 7265b21..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-core-5.0.7.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-ehcache-5.0.7.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-ehcache-5.0.7.Final.jar
deleted file mode 100644 (file)
index a248250..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-ehcache-5.0.7.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-entitymanager-5.0.7.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-entitymanager-5.0.7.Final.jar
deleted file mode 100644 (file)
index 31d1aa4..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-entitymanager-5.0.7.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-envers-5.0.7.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-envers-5.0.7.Final.jar
deleted file mode 100644 (file)
index dd5ed8a..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-envers-5.0.7.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar
deleted file mode 100644 (file)
index e2f2c59..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-4.2.0.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-4.2.0.Final.jar
deleted file mode 100644 (file)
index 84efeac..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-4.2.0.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-analyzers-4.2.0.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-analyzers-4.2.0.Final.jar
deleted file mode 100644 (file)
index 4dcc34a..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-analyzers-4.2.0.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-engine-5.11.10.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-engine-5.11.10.Final.jar
new file mode 100755 (executable)
index 0000000..3de6a1b
Binary files /dev/null and b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-engine-5.11.10.Final.jar 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.11.10.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-orm-5.11.10.Final.jar
new file mode 100755 (executable)
index 0000000..3848bf8
Binary files /dev/null and b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-search-orm-5.11.10.Final.jar 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/hibernate-validator-5.2.2.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-validator-5.2.2.Final.jar
deleted file mode 100644 (file)
index ba42764..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-validator-5.2.2.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-validator-cdi-5.2.2.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-validator-cdi-5.2.2.Final.jar
deleted file mode 100644 (file)
index 37f8ab1..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/hibernate-validator-cdi-5.2.2.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/hsqldb-2.3.3.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/hsqldb-2.3.3.jar
deleted file mode 100644 (file)
index 2f05edf..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/hsqldb-2.3.3.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/icu4j-2.6.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/icu4j-2.6.1.jar
deleted file mode 100644 (file)
index 9b5f51f..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/icu4j-2.6.1.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/istack-commons-runtime-2.21.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/istack-commons-runtime-2.21.jar
deleted file mode 100644 (file)
index aa950a8..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/istack-commons-runtime-2.21.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/istack-commons-tools-2.21.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/istack-commons-tools-2.21.jar
deleted file mode 100644 (file)
index acfa7e3..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/istack-commons-tools-2.21.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/jackson-annotations-2.6.5.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jackson-annotations-2.6.5.jar
deleted file mode 100644 (file)
index 68b6162..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jackson-annotations-2.6.5.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jackson-core-2.6.5.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jackson-core-2.6.5.jar
deleted file mode 100644 (file)
index 5ee8d20..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jackson-core-2.6.5.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jackson-core-asl-1.8.8.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jackson-core-asl-1.8.8.jar
deleted file mode 100644 (file)
index 05f3353..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jackson-core-asl-1.8.8.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jackson-databind-2.6.5.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jackson-databind-2.6.5.jar
deleted file mode 100644 (file)
index feb8bba..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jackson-databind-2.6.5.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jackson-mapper-asl-1.8.8.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jackson-mapper-asl-1.8.8.jar
deleted file mode 100644 (file)
index 7c7cd21..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jackson-mapper-asl-1.8.8.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jakarta-regexp-1.4.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jakarta-regexp-1.4.jar
deleted file mode 100644 (file)
index 5d70c35..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jakarta-regexp-1.4.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jandex-2.0.0.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jandex-2.0.0.Final.jar
deleted file mode 100644 (file)
index d24086a..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jandex-2.0.0.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/javassist-3.20.0-GA.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/javassist-3.20.0-GA.jar
deleted file mode 100644 (file)
index 0f1ff72..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/javassist-3.20.0-GA.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/javax.el-2.2.6.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/javax.el-2.2.6.jar
deleted file mode 100644 (file)
index 90a9ab5..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/javax.el-2.2.6.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/javax.el-api-2.2.5.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/javax.el-api-2.2.5.jar
deleted file mode 100644 (file)
index 4a3001e..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/javax.el-api-2.2.5.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/javax.servlet-api-3.1.0.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/javax.servlet-api-3.1.0.jar
deleted file mode 100644 (file)
index 6b14c3d..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/javax.servlet-api-3.1.0.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-api-2.2.12.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-api-2.2.12.jar
deleted file mode 100644 (file)
index 3f4638c..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-api-2.2.12.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-core-2.2.11.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-core-2.2.11.jar
deleted file mode 100644 (file)
index cc0aad1..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-core-2.2.11.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-jxc-2.2.11.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-jxc-2.2.11.jar
deleted file mode 100644 (file)
index 79db7c4..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-jxc-2.2.11.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-runtime-2.2.11.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-runtime-2.2.11.jar
deleted file mode 100644 (file)
index a1f047f..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-runtime-2.2.11.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-xjc-2.2.11.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-xjc-2.2.11.jar
deleted file mode 100644 (file)
index 0a753d0..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb-xjc-2.2.11.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb1-impl-2.2-EA.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb1-impl-2.2-EA.jar
deleted file mode 100644 (file)
index 6717848..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jaxb1-impl-2.2-EA.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jaxen-1.1.4.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jaxen-1.1.4.jar
deleted file mode 100644 (file)
index c201609..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jaxen-1.1.4.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jaxen-1.1.6.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jaxen-1.1.6.jar
deleted file mode 100644 (file)
index 52f47a4..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jaxen-1.1.6.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jboss-logging-3.3.0.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jboss-logging-3.3.0.Final.jar
deleted file mode 100644 (file)
index ea45d4d..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jboss-logging-3.3.0.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar
deleted file mode 100644 (file)
index b3bf81f..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jcl-over-slf4j-1.7.6.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jcl-over-slf4j-1.7.6.jar
deleted file mode 100644 (file)
index 1a1ceee..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jcl-over-slf4j-1.7.6.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jdom-1.1.3.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jdom-1.1.3.jar
deleted file mode 100644 (file)
index a287727..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jdom-1.1.3.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jdom2-2.0.6.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jdom2-2.0.6.jar
deleted file mode 100644 (file)
index 2850ca1..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jdom2-2.0.6.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jena-arq-2.13.0.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jena-arq-2.13.0.jar
deleted file mode 100644 (file)
index 3b17e6e..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jena-arq-2.13.0.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jena-core-2.13.0.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jena-core-2.13.0.jar
deleted file mode 100644 (file)
index ba93796..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jena-core-2.13.0.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jena-iri-1.1.2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jena-iri-1.1.2.jar
deleted file mode 100644 (file)
index d520498..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jena-iri-1.1.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jena-tdb-1.1.2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jena-tdb-1.1.2.jar
deleted file mode 100644 (file)
index 580c9cd..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jena-tdb-1.1.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/joda-time-2.9.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/joda-time-2.9.1.jar
deleted file mode 100644 (file)
index 583e06a..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/joda-time-2.9.1.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/jsonld-java-0.5.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jsonld-java-0.5.1.jar
deleted file mode 100644 (file)
index d61cc0f..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jsonld-java-0.5.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jsr250-api-1.0.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jsr250-api-1.0.jar
deleted file mode 100644 (file)
index c1f29bf..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jsr250-api-1.0.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jta-1.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jta-1.1.jar
deleted file mode 100644 (file)
index 7736ec9..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jta-1.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/jtds-1.3.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/jtds-1.3.1.jar
deleted file mode 100644 (file)
index 518b425..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/jtds-1.3.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/junit-4.12.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/junit-4.12.jar
deleted file mode 100644 (file)
index 3a7fc26..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/junit-4.12.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/junit-benchmarks-0.7.2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/junit-benchmarks-0.7.2.jar
deleted file mode 100644 (file)
index 93aee13..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/junit-benchmarks-0.7.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/libthrift-0.9.2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/libthrift-0.9.2.jar
deleted file mode 100644 (file)
index 39143a5..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/libthrift-0.9.2.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/lsid-client-1.1.2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/lsid-client-1.1.2.jar
deleted file mode 100644 (file)
index 8f664a8..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/lsid-client-1.1.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/lsid-server-1.1.2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/lsid-server-1.1.2.jar
deleted file mode 100644 (file)
index 1fffae1..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/lsid-server-1.1.2.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/mapstruct-1.0.0.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/mapstruct-1.0.0.Final.jar
deleted file mode 100644 (file)
index 20a0d2c..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/mapstruct-1.0.0.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/mysql-connector-java-8.0.15.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/mysql-connector-java-8.0.15.jar
deleted file mode 100644 (file)
index fa0979f..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/mysql-connector-java-8.0.15.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/objenesis-1.2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/objenesis-1.2.jar
deleted file mode 100644 (file)
index fb04d7f..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/objenesis-1.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/odfdom-0.8.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/odfdom-0.8.jar
deleted file mode 100644 (file)
index 91737ca..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/odfdom-0.8.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/odfdom-java-0.8.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/odfdom-java-0.8.7.jar
deleted file mode 100644 (file)
index 60c7707..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/odfdom-java-0.8.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/ognl-2.6.9.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/ognl-2.6.9.jar
deleted file mode 100644 (file)
index 0f1c0fb..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/ognl-2.6.9.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/opencsv-2.3.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/opencsv-2.3.jar
deleted file mode 100644 (file)
index 01f82ca..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/opencsv-2.3.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/paranamer-2.3.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/paranamer-2.3.jar
deleted file mode 100644 (file)
index ad12ae9..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/paranamer-2.3.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/poi-3.13.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/poi-3.13.jar
deleted file mode 100644 (file)
index a9e3800..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/poi-3.13.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/poi-ooxml-3.13.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/poi-ooxml-3.13.jar
deleted file mode 100644 (file)
index 726768c..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/poi-ooxml-3.13.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/poi-ooxml-schemas-3.13.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/poi-ooxml-schemas-3.13.jar
deleted file mode 100644 (file)
index bd88397..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/poi-ooxml-schemas-3.13.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/postgresql-9.4-1206-jdbc4.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/postgresql-9.4-1206-jdbc4.jar
deleted file mode 100644 (file)
index 5bae20e..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/postgresql-9.4-1206-jdbc4.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/redmine-java-api-3.1.0.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/redmine-java-api-3.1.0.jar
deleted file mode 100644 (file)
index fe050aa..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/redmine-java-api-3.1.0.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/relaxngDatatype-20020414.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/relaxngDatatype-20020414.jar
deleted file mode 100644 (file)
index db9206f..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/relaxngDatatype-20020414.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/rngom-2.2.11.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/rngom-2.2.11.jar
deleted file mode 100644 (file)
index 00cf5b4..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/rngom-2.2.11.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/sanselan-0.97-incubator.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/sanselan-0.97-incubator.jar
deleted file mode 100644 (file)
index fff931f..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/sanselan-0.97-incubator.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/servlet-api-2.5.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/servlet-api-2.5.jar
deleted file mode 100644 (file)
index fb52493..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/servlet-api-2.5.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/slf4j-api-1.7.13.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/slf4j-api-1.7.13.jar
deleted file mode 100644 (file)
index f07884e..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/slf4j-api-1.7.13.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/slf4j-log4j12-1.7.13.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/slf4j-log4j12-1.7.13.jar
deleted file mode 100644 (file)
index a8dd5c5..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/slf4j-log4j12-1.7.13.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/slf4j-nop-1.7.13.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/slf4j-nop-1.7.13.jar
deleted file mode 100644 (file)
index 5496e46..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/slf4j-nop-1.7.13.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/snappy-java-1.0.4.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/snappy-java-1.0.4.1.jar
deleted file mode 100644 (file)
index 8198919..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/snappy-java-1.0.4.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/solr-analysis-extras-3.6.2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/solr-analysis-extras-3.6.2.jar
deleted file mode 100644 (file)
index a7e7d6e..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/solr-analysis-extras-3.6.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/solr-core-3.6.2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/solr-core-3.6.2.jar
deleted file mode 100644 (file)
index 010fb3b..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/solr-core-3.6.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/solr-solrj-3.6.2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/solr-solrj-3.6.2.jar
deleted file mode 100644 (file)
index 1f91eec..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/solr-solrj-3.6.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-aop-4.2.4.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-aop-4.2.4.RELEASE.jar
deleted file mode 100644 (file)
index 7fb0ba7..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-aop-4.2.4.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-aspects-4.2.4.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-aspects-4.2.4.RELEASE.jar
deleted file mode 100644 (file)
index 8be8424..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-aspects-4.2.4.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-beans-4.2.4.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-beans-4.2.4.RELEASE.jar
deleted file mode 100644 (file)
index 89232b4..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-beans-4.2.4.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-context-4.2.4.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-context-4.2.4.RELEASE.jar
deleted file mode 100644 (file)
index 38cfab6..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-context-4.2.4.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-context-support-4.2.4.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-context-support-4.2.4.RELEASE.jar
deleted file mode 100644 (file)
index d979371..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-context-support-4.2.4.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-core-4.2.4.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-core-4.2.4.RELEASE.jar
deleted file mode 100644 (file)
index f2cd8fb..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-core-4.2.4.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-expression-4.2.4.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-expression-4.2.4.RELEASE.jar
deleted file mode 100644 (file)
index 483f3f1..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-expression-4.2.4.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-jdbc-4.2.4.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-jdbc-4.2.4.RELEASE.jar
deleted file mode 100644 (file)
index 4f0abf1..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-jdbc-4.2.4.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-modules-cache-0.7.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-modules-cache-0.7.jar
deleted file mode 100644 (file)
index 072881e..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-modules-cache-0.7.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-orm-4.2.4.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-orm-4.2.4.RELEASE.jar
deleted file mode 100644 (file)
index e4f6cca..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-orm-4.2.4.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-oxm-4.2.4.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-oxm-4.2.4.RELEASE.jar
deleted file mode 100644 (file)
index f191a6b..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-oxm-4.2.4.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-plugin-core-1.2.0.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-plugin-core-1.2.0.RELEASE.jar
deleted file mode 100644 (file)
index c290363..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-plugin-core-1.2.0.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-plugin-metadata-1.2.0.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-plugin-metadata-1.2.0.RELEASE.jar
deleted file mode 100644 (file)
index 6eaa98c..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-plugin-metadata-1.2.0.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-config-4.0.3.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-config-4.0.3.RELEASE.jar
deleted file mode 100644 (file)
index 427c2b2..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-config-4.0.3.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-core-4.0.3.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-core-4.0.3.RELEASE.jar
deleted file mode 100644 (file)
index 18c51b3..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-core-4.0.3.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-oauth2-2.0.11.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-oauth2-2.0.11.RELEASE.jar
deleted file mode 100644 (file)
index a0a9a4e..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-oauth2-2.0.11.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-web-4.0.3.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-web-4.0.3.RELEASE.jar
deleted file mode 100644 (file)
index 018f192..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-security-web-4.0.3.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-test-4.2.4.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-test-4.2.4.RELEASE.jar
deleted file mode 100644 (file)
index f5a6691..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-test-4.2.4.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-tx-4.2.4.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-tx-4.2.4.RELEASE.jar
deleted file mode 100644 (file)
index dda3bc0..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-tx-4.2.4.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-web-4.2.4.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-web-4.2.4.RELEASE.jar
deleted file mode 100644 (file)
index d788595..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-web-4.2.4.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-webmvc-4.2.4.RELEASE.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/spring-webmvc-4.2.4.RELEASE.jar
deleted file mode 100644 (file)
index ee87814..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/spring-webmvc-4.2.4.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-core-2.3.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-core-2.3.1.jar
deleted file mode 100644 (file)
index 0cedf11..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-core-2.3.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-schema-2.3.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-schema-2.3.1.jar
deleted file mode 100644 (file)
index e1ccee6..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-schema-2.3.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-spi-2.3.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-spi-2.3.1.jar
deleted file mode 100644 (file)
index 2dd9873..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-spi-2.3.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-spring-web-2.3.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-spring-web-2.3.1.jar
deleted file mode 100644 (file)
index c64b035..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-spring-web-2.3.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-swagger-common-2.3.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-swagger-common-2.3.1.jar
deleted file mode 100644 (file)
index 31302c9..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-swagger-common-2.3.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-swagger2-2.3.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-swagger2-2.3.1.jar
deleted file mode 100644 (file)
index 31744df..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/springfox-swagger2-2.3.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/standard-1.1.2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/standard-1.1.2.jar
deleted file mode 100644 (file)
index bc528ac..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/standard-1.1.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/txw2-2.2.11.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/txw2-2.2.11.jar
deleted file mode 100644 (file)
index eca81b2..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/txw2-2.2.11.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/usertype.jodatime-2.0.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/usertype.jodatime-2.0.1.jar
deleted file mode 100644 (file)
index 37c5a78..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/usertype.jodatime-2.0.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/usertype.spi-2.0.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/usertype.spi-2.0.1.jar
deleted file mode 100644 (file)
index bf37698..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/usertype.spi-2.0.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/validation-api-1.1.0.Final.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/validation-api-1.1.0.Final.jar
deleted file mode 100644 (file)
index de85403..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/validation-api-1.1.0.Final.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/wsdl4j-1.6.3.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/wsdl4j-1.6.3.jar
deleted file mode 100644 (file)
index b9c10b9..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/wsdl4j-1.6.3.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/x-1.1.2.tld b/eu.etaxonomy.taxeditor.cdmlib/lib/x-1.1.2.tld
deleted file mode 100644 (file)
index e52ffe8..0000000
+++ /dev/null
@@ -1,448 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
-    version="2.0">
-    
-  <description>JSTL 1.1 XML library</description>
-  <display-name>JSTL XML</display-name>
-  <tlib-version>1.1</tlib-version>
-  <short-name>x</short-name>
-  <uri>http://java.sun.com/jsp/jstl/xml</uri>
-
-  <validator>
-    <description>
-        Provides validation features for JSTL XML tags.
-    </description>
-    <validator-class>
-       org.apache.taglibs.standard.tlv.JstlXmlTLV
-    </validator-class>
-  </validator>
-
-  <tag>
-    <description>
-        Simple conditional tag that establishes a context for
-        mutually exclusive conditional operations, marked by
-        &lt;when&gt; and &lt;otherwise&gt;
-    </description>
-    <name>choose</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.core.ChooseTag</tag-class>
-    <body-content>JSP</body-content>
-  </tag>
-
-  <tag>
-    <description>
-       Like &lt;%= ... &gt;, but for XPath expressions.
-    </description>
-    <name>out</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.xml.ExprTag</tag-class>
-    <body-content>empty</body-content>
-    <attribute>
-        <description>
-XPath expression to be evaluated.
-        </description>
-        <name>select</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Determines whether characters &lt;,&gt;,&amp;,'," in the
-resulting string should be converted to their
-corresponding character entity codes. Default
-value is true.
-        </description>
-        <name>escapeXml</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <description>
-        XML conditional tag, which evalutes its body if the
-        supplied XPath expression evalutes to 'true' as a boolean
-    </description>
-    <name>if</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.xml.IfTag</tag-class>
-    <body-content>JSP</body-content>
-    <attribute>
-        <description>
-The test condition that tells whether or not the
-body content should be processed.
-        </description>
-        <name>select</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Name of the exported scoped variable for the
-resulting value of the test condition. The type
-of the scoped variable is Boolean.
-        </description>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Scope for var.
-        </description>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <description>
-       XML iteration tag.
-    </description>
-    <name>forEach</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.xml.ForEachTag</tag-class>
-    <body-content>JSP</body-content>
-    <attribute>
-        <description>
-Name of the exported scoped variable for the
-current item of the iteration. This scoped variable
-has nested visibility. Its type depends on the
-result of the XPath expression in the select
-attribute.
-        </description>
-       <name>var</name>
-       <required>false</required>
-       <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-XPath expression to be evaluated.
-        </description>
-       <name>select</name>
-       <required>true</required>
-       <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Iteration begins at the item located at the
-specified index. First item of the collection has
-index 0.
-        </description>
-       <name>begin</name>
-       <required>false</required>
-       <rtexprvalue>true</rtexprvalue>
-       <type>int</type>
-    </attribute>
-    <attribute>
-        <description>
-Iteration ends at the item located at the specified
-index (inclusive).
-        </description>
-       <name>end</name>
-       <required>false</required>
-       <rtexprvalue>true</rtexprvalue>
-       <type>int</type>
-    </attribute>
-    <attribute>
-        <description>
-Iteration will only process every step items of
-the collection, starting with the first one.
-        </description>
-       <name>step</name>
-       <required>false</required>
-       <rtexprvalue>true</rtexprvalue>
-       <type>int</type>
-    </attribute>
-    <attribute>
-        <description>
-Name of the exported scoped variable for the
-status of the iteration. Object exported is of type
-javax.servlet.jsp.jstl.core.LoopTagStatus. This scoped variable has nested visibility.
-        </description>
-       <name>varStatus</name>
-       <required>false</required>
-       <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <description>
-       Subtag of &lt;choose&gt; that follows &lt;when&gt; tags
-       and runs only if all of the prior conditions evaluated to
-       'false'
-    </description>
-    <name>otherwise</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.core.OtherwiseTag</tag-class>
-    <body-content>JSP</body-content>
-  </tag>
-
-  <tag>
-    <description>
-        Adds a parameter to a containing 'transform' tag's Transformer
-    </description>
-    <name>param</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.xml.ParamTag</tag-class>
-    <body-content>JSP</body-content>
-    <attribute>
-        <description>
-Name of the transformation parameter.
-        </description>
-        <name>name</name>
-        <required>true</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Value of the parameter.
-        </description>
-        <name>value</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <description>
-       Parses XML content from 'source' attribute or 'body'
-    </description>
-    <name>parse</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.xml.ParseTag</tag-class>
-    <tei-class>org.apache.taglibs.standard.tei.XmlParseTEI</tei-class>
-    <body-content>JSP</body-content>
-    <attribute>
-        <description>
-Name of the exported scoped variable for
-the parsed XML document. The type of the
-scoped variable is implementation
-dependent.
-        </description>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Name of the exported scoped variable for
-the parsed XML document. The type of the
-scoped variable is
-org.w3c.dom.Document.
-        </description>
-        <name>varDom</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Scope for var.
-        </description>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Scope for varDom.
-        </description>
-        <name>scopeDom</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Deprecated. Use attribute 'doc' instead.
-        </description>
-        <name>xml</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Source XML document to be parsed.
-        </description>
-        <name>doc</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-The system identifier (URI) for parsing the
-XML document.
-        </description>
-        <name>systemId</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Filter to be applied to the source
-document.
-        </description>
-        <name>filter</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <description>
-       Saves the result of an XPath expression evaluation in a 'scope'
-    </description>
-    <name>set</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.xml.SetTag</tag-class>
-    <body-content>empty</body-content>
-    <attribute>
-        <description>
-Name of the exported scoped variable to hold
-the value specified in the action. The type of the
-scoped variable is whatever type the select
-expression evaluates to.
-        </description>
-        <name>var</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-XPath expression to be evaluated.
-        </description>
-       <name>select</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Scope for var.
-        </description>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <description>
-       Conducts a transformation given a source XML document
-       and an XSLT stylesheet
-    </description>
-    <name>transform</name>
-    <tag-class>org.apache.taglibs.standard.tag.rt.xml.TransformTag</tag-class>
-    <tei-class>org.apache.taglibs.standard.tei.XmlTransformTEI</tei-class>
-    <body-content>JSP</body-content>
-    <attribute>
-        <description>
-Name of the exported
-scoped variable for the
-transformed XML
-document. The type of the
-scoped variable is
-org.w3c.dom.Document.
-        </description>
-        <name>var</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Scope for var.
-        </description>
-        <name>scope</name>
-        <required>false</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Result
-Object that captures or
-processes the transformation
-result.
-        </description>
-        <name>result</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Deprecated. Use attribute
-'doc' instead.
-        </description>
-        <name>xml</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Source XML document to be
-transformed. (If exported by
-&lt;x:set&gt;, it must correspond
-to a well-formed XML
-document, not a partial
-document.)
-        </description>
-        <name>doc</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-Deprecated. Use attribute
-'docSystemId' instead.
-        </description>
-        <name>xmlSystemId</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-The system identifier (URI)
-for parsing the XML
-document.
-        </description>
-        <name>docSystemId</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-javax.xml.transform.Source
-Transformation stylesheet as
-a String, Reader, or
-Source object.
-        </description>
-       <name>xslt</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-    <attribute>
-        <description>
-The system identifier (URI)
-for parsing the XSLT
-stylesheet.
-        </description>
-       <name>xsltSystemId</name>
-        <required>false</required>
-        <rtexprvalue>true</rtexprvalue>
-    </attribute>
-  </tag>
-
-  <tag>
-    <description>
-        Subtag of &lt;choose&gt; that includes its body if its
-        expression evalutes to 'true'
-    </description>
-    <name>when</name>
-    <tag-class>org.apache.taglibs.standard.tag.common.xml.WhenTag</tag-class>
-    <body-content>JSP</body-content>
-    <attribute>
-        <description>
-The test condition that tells whether or
-not the body content should be
-processed
-        </description>
-        <name>select</name>
-        <required>true</required>
-        <rtexprvalue>false</rtexprvalue>
-    </attribute>
-  </tag>
-
-</taglib>
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
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/xercesImpl-2.11.0.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/xercesImpl-2.11.0.jar
deleted file mode 100644 (file)
index 0aaa990..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/xercesImpl-2.11.0.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/xml-apis-1.0.b2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/xml-apis-1.0.b2.jar
deleted file mode 100644 (file)
index ad33a5a..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/xml-apis-1.0.b2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/xml-apis-ext-1.3.04.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/xml-apis-ext-1.3.04.jar
deleted file mode 100644 (file)
index a7869d6..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/xml-apis-ext-1.3.04.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/xml-resolver-1.2.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/xml-resolver-1.2.jar
deleted file mode 100644 (file)
index e535bdc..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/xml-resolver-1.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/xmlbeans-2.6.0.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/xmlbeans-2.6.0.jar
deleted file mode 100644 (file)
index d1b6627..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/xmlbeans-2.6.0.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/xmlgraphics-commons-1.5.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/xmlgraphics-commons-1.5.jar
deleted file mode 100644 (file)
index 0ff3b4f..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/xmlgraphics-commons-1.5.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/xmlpull-1.1.3.1.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/xmlpull-1.1.3.1.jar
deleted file mode 100644 (file)
index cbc149d..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/xmlpull-1.1.3.1.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/xmlunit-1.6.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/xmlunit-1.6.jar
deleted file mode 100644 (file)
index b9328ef..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/xmlunit-1.6.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/xom-1.2.5.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/xom-1.2.5.jar
deleted file mode 100644 (file)
index 1f71ab9..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/xom-1.2.5.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/xpp3-1.1.4c.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/xpp3-1.1.4c.jar
deleted file mode 100644 (file)
index 451ac82..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/xpp3-1.1.4c.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/xpp3_min-1.1.4c.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/xpp3_min-1.1.4c.jar
deleted file mode 100644 (file)
index 813a9a8..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/xpp3_min-1.1.4c.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/xsom-20140925.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/xsom-20140925.jar
deleted file mode 100644 (file)
index f391598..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/xsom-20140925.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/xstream-1.4.8.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/xstream-1.4.8.jar
deleted file mode 100644 (file)
index a493c3b..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/xstream-1.4.8.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.cdmlib/lib/yjp-controller-api-redist-9.0.8.jar b/eu.etaxonomy.taxeditor.cdmlib/lib/yjp-controller-api-redist-9.0.8.jar
deleted file mode 100644 (file)
index 3974277..0000000
Binary files a/eu.etaxonomy.taxeditor.cdmlib/lib/yjp-controller-api-redist-9.0.8.jar and /dev/null differ
index 58ab8ecbd0fcc7930559d0d85340d6c365da0972..0a583b8adb2b385bef23d0d73e63cfe35c70eb18 100644 (file)
@@ -4,21 +4,30 @@
   <parent>\r
     <groupId>eu.etaxonomy</groupId>\r
     <artifactId>taxeditor-parent</artifactId>\r
-    <version>5.16.0</version>\r
+    <version>5.42.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.13.3</jackson.version>\r
+      <poi.version>4.1.2</poi.version>\r
+      <hibernate.version>5.4.33.Final</hibernate.version>\r
+      <hibernate-search.version>5.11.10.Final</hibernate-search.version>\r
+      <lucene.version>5.5.5</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
-\r
   <build>\r
     <pluginManagement>\r
       <plugins>\r
         <plugin>\r
           <groupId>org.apache.maven.plugins</groupId>\r
           <artifactId>maven-surefire-plugin</artifactId>\r
-          <version>2.7</version>\r
+          <version>3.0.0-M7</version>\r
         </plugin>\r
       </plugins>\r
     </pluginManagement>\r
@@ -26,7 +35,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
@@ -39,7 +48,7 @@
                 cdmlib-remote-webapp\r
               </excludeArtifactIds>\r
               <includeArtifactIds>\r
-                cdmlib-services,cdmlib-commons,cdmlib-cache,cdmlib-persistence,cdmlib-ext,cdmlib-model,cdmlib-io,cdmlib-print,cdmlib-remote,cdmlib-test\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
             </goals>\r
             <configuration>\r
               <includeArtifactIds>\r
-                httpclient,JavaAPIforKml,iiif-apis,commons-beanutils\r
+                httpclient,JavaAPIforKml,iiif-apis,commons-lang3,commons-lang,commons-text,\r
+                commons-codec,commons-io,\r
+                log4j-core,log4j-api,slf4j-api,jboss-logging,jcl-over-slf4j,log4j-slf4j-impl,\r
+                lucene-analyzers-common,lucene-core,lucene-queryparser,lucene-suggest,lucene-sandbox,\r
+                commons-imaging,jackson-databind,jackson-annotations,jackson-core,\r
+                jakarta.validation-api,validation-api,\r
+                ehcache,\r
+                hibernate-validator,\r
+                spring-context,spring-aspects,spring-beans,\r
+                spring-tx,spring-web,spring-core,spring-aop,\r
+                spring-jdbc,spring-orm,\r
+                spring-security-core,\r
+                aspectjweaver,\r
+                byte-buddy,\r
+                hibernate-core,hibernate-envers,hibernate-search-engine,\r
+                antlr,\r
+                javax.persistence-api,\r
+                xml-apis,lsid-client,jdom,\r
+                commons-collections4,commons-math3,\r
+                c3p0,mchange-commons-java,\r
+                opencsv,joda-time,\r
+                h2,mysql-connector-java,postgresql,\r
+                junit,hamcrest-core,commons-dbcp,commons-pool,\r
+                jboss-transaction-api_1.2_spec\r
               </includeArtifactIds>\r
               <outputDirectory>\r
                 ${basedir}/lib\r
             </goals>\r
             <configuration>\r
               <includeArtifactIds>\r
-                httpclient-cache,httpcore,httpmime\r
-<!--                 c3p0,mchange-commons-java,h2,postgresql,mysql-connector-java,jdbc4 -->\r
+                httpclient-cache,httpcore\r
               </includeArtifactIds>\r
               <outputDirectory>\r
                 ${basedir}/lib\r
               <excludeTransitive>false</excludeTransitive>\r
             </configuration>\r
           </execution>\r
-          <execution>\r
-            <id>copy-dependency-war</id>\r
-            <phase>validate</phase>\r
-            <goals>\r
-              <goal>copy-dependencies</goal>\r
-            </goals>\r
-            <configuration>\r
-              <includeArtifactIds>\r
-                cdmlib-remote-webapp\r
-              </includeArtifactIds>\r
-              <outputDirectory>\r
-                ${basedir}/src/main/resources/etc/jetty\r
-              </outputDirectory>\r
-              <overWriteReleases>true</overWriteReleases>\r
-              <overWriteSnapshots>true</overWriteSnapshots>\r
-              <excludeTransitive>true</excludeTransitive>\r
-            </configuration>\r
-          </execution>\r
         </executions>\r
       </plugin>\r
       <plugin>\r
         <groupId>org.apache.maven.plugins</groupId>\r
         <artifactId>maven-antrun-plugin</artifactId>\r
-        <version>1.7</version>\r
         <executions>\r
           <execution>\r
             <id>update-snapshot-jar-names</id>\r
             </goals>\r
             <configuration>\r
               <target>\r
-                <echo>Anonymizing war</echo>\r
-                <move todir="./src/main/resources/etc/jetty">\r
-                  <fileset dir="./src/main/resources/etc/jetty" />\r
-                  <mapper type="regexp"\r
-                    from="(^cdmlib\-remote\-webapp).*(\.war)" to="\1\2" />\r
-                </move>\r
                 <echo>Update cdmlib jars to SNAPSHOT when build with\r
                   timestamp\r
                 </echo>\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
       </build>\r
     </profile>\r
   </profiles>\r
-  <repositories>\r
-    <repository>\r
-      <id>SpringSource Enterprise Bundle Repository - External Bundle\r
-        Milestones\r
-      </id>\r
-      <url>http://repository.springsource.com/maven/bundles/milestone\r
-      </url>\r
-    </repository>\r
-    <repository>\r
-      <id>SpringSource Enterprise Bundle Repository - SpringSource\r
-        Bundle\r
-        Releases\r
-      </id>\r
-      <url>http://repository.springsource.com/maven/bundles/release\r
-      </url>\r
-    </repository>\r
-    <repository>\r
-      <id>SpringSource Enterprise Bundle Repository - External Bundle\r
-        Releases\r
-      </id>\r
-      <url>http://repository.springsource.com/maven/bundles/external\r
-      </url>\r
-    </repository>\r
-        <repository>\r
-        <id>repository.springsource.release</id>\r
-        <name>SpringSource GA Repository</name>\r
-        <url>http://repo.springsource.org/release</url>\r
-    </repository>\r
-  </repositories>\r
   <dependencies>\r
+  \r
+    <!-- direct dependencies (used within this module) -->\r
+    \r
+    <!--   used e.g. in CdmApplicationRemoteConfiguration -->\r
     <dependency>\r
+      <!-- used e.g. by CdmServiceCacher -->\r
       <groupId>eu.etaxonomy</groupId>\r
-      <artifactId>cdmlib-remote-webapp</artifactId>\r
+      <artifactId>cdmlib-cache</artifactId>\r
       <version>${cdmlib.version}</version>\r
-      <type>war</type>\r
     </dependency>\r
     <dependency>\r
+      <!-- used e.g. by CdmApplicationState -->\r
       <groupId>eu.etaxonomy</groupId>\r
       <artifactId>cdmlib-commons</artifactId>\r
       <version>${cdmlib.version}</version>\r
     </dependency>\r
     <dependency>\r
+      <!-- used e.g. by CdmChangeEvent -->\r
       <groupId>eu.etaxonomy</groupId>\r
       <artifactId>cdmlib-model</artifactId>\r
       <version>${cdmlib.version}</version>\r
     </dependency>\r
     <dependency>\r
       <groupId>eu.etaxonomy</groupId>\r
-      <artifactId>cdmlib-persistence</artifactId>\r
+      <artifactId>cdmlib-io</artifactId>\r
       <version>${cdmlib.version}</version>\r
     </dependency>\r
     <dependency>\r
       <groupId>eu.etaxonomy</groupId>\r
-      <artifactId>cdmlib-remote</artifactId>\r
+      <artifactId>cdmlib-ext</artifactId>\r
       <version>${cdmlib.version}</version>\r
     </dependency>\r
     <dependency>\r
       <groupId>eu.etaxonomy</groupId>\r
-      <artifactId>cdmlib-print</artifactId>\r
+      <artifactId>cdmlib-persistence</artifactId>\r
       <version>${cdmlib.version}</version>\r
     </dependency>\r
     <dependency>\r
       <version>${cdmlib.version}</version>\r
     </dependency>\r
     <dependency>\r
-      <groupId>eu.etaxonomy</groupId>\r
-      <artifactId>cdmlib-io</artifactId>\r
-      <version>${cdmlib.version}</version>\r
+      <groupId>org.springframework</groupId>\r
+      <!-- used e.g. by CachingHttpInvokerProxyFactoryBean -->\r
+      <artifactId>spring-aop</artifactId>\r
+      <version>${spring.version}</version>\r
     </dependency>\r
     <dependency>\r
-      <groupId>eu.etaxonomy</groupId>\r
-      <artifactId>cdmlib-ext</artifactId>\r
-      <version>${cdmlib.version}</version>\r
+      <groupId>org.springframework</groupId>\r
+      <artifactId>spring-beans</artifactId>\r
+      <version>${spring.version}</version>\r
     </dependency>\r
     <dependency>\r
-      <groupId>eu.etaxonomy</groupId>\r
-      <artifactId>cdmlib-cache</artifactId>\r
-      <version>${cdmlib.version}</version>\r
+      <groupId>org.springframework</groupId>\r
+      <artifactId>spring-context</artifactId>\r
+      <version>${spring.version}</version>\r
     </dependency>\r
     <dependency>\r
-      <groupId>dom4j</groupId>\r
-      <artifactId>dom4j</artifactId>\r
-      <version>1.6</version>\r
+      <groupId>org.springframework</groupId>\r
+      <artifactId>spring-core</artifactId>\r
+      <version>${spring.version}</version>\r
     </dependency>\r
     <dependency>\r
-      <groupId>log4j</groupId>\r
-      <artifactId>log4j</artifactId>\r
-      <version>1.2.17</version>\r
+      <groupId>org.springframework</groupId>\r
+      <artifactId>spring-tx</artifactId>\r
+      <version>${spring.version}</version>\r
+    </dependency>\r
+    <dependency>\r
+      <groupId>org.springframework</groupId>\r
+      <artifactId>spring-web</artifactId>\r
+      <version>${spring.version}</version>\r
+    </dependency>\r
+    <dependency>\r
+      <groupId>org.springframework.security</groupId>\r
+      <artifactId>spring-security-core</artifactId>\r
+      <version>${spring-security.version}</version>\r
+    </dependency>\r
+    <dependency>\r
+      <!-- used e.g. by CdmLazyLoader -->\r
+      <groupId>org.hibernate</groupId>\r
+      <artifactId>hibernate-core</artifactId>\r
+      <version>${hibernate.version}</version>\r
+    </dependency>\r
+    <dependency>\r
+        <groupId>org.apache.commons</groupId>\r
+        <artifactId>commons-lang3</artifactId>\r
+        <version>3.12.0</version>\r
+    </dependency>\r
+    <dependency>\r
+      <!-- used e.g. by CdmServerUtils -->\r
+      <groupId>commons-io</groupId>\r
+      <artifactId>commons-io</artifactId>\r
+      <version>2.11.0</version>\r
+    </dependency>\r
+    <dependency>\r
+      <!-- used e.g. by CdmServerUtils -->\r
+      <groupId>org.apache.commons</groupId>\r
+      <artifactId>commons-text</artifactId>\r
+      <version>1.10.0</version>\r
+    </dependency>\r
+      <dependency>\r
+      <!-- used in AuthenticatingHttpInvokerRequestExecutor -->\r
+      <groupId>commons-codec</groupId>\r
+      <artifactId>commons-codec</artifactId>\r
+      <version>1.15</version>\r
     </dependency>\r
     <dependency>\r
+      <!-- CdmServiceCacher -->\r
+      <groupId>org.apache.logging.log4j</groupId>\r
+      <artifactId>log4j-core</artifactId>\r
+      <version>${log4j.version}</version>\r
+    </dependency>\r
+    <dependency>\r
+      <!-- CdmServiceCacher -->\r
+      <groupId>org.apache.logging.log4j</groupId>\r
+      <artifactId>log4j-api</artifactId>\r
+      <version>${log4j.version}</version>\r
+    </dependency>\r
+    <dependency>\r
+       <groupId>org.aspectj</groupId>\r
+       <!-- used e.g. by CdmLazyLoader -->\r
+       <artifactId>aspectjweaver</artifactId>\r
+       <version>${aspectj.version}</version>\r
+    </dependency>\r
+    <dependency>\r
+      <groupId>org.apache.httpcomponents</groupId>\r
+      <artifactId>httpclient</artifactId>\r
+      <!-- version defined in parent pom -->\r
+    </dependency>\r
+    <dependency>\r
+      <!-- used e.g. by CdmServerInfo -->\r
+      <groupId>org.apache.httpcomponents</groupId>\r
+      <artifactId>httpcore</artifactId>\r
+      <version>4.4.15</version>\r
+    </dependency>\r
+    <!--<dependency>\r
+     \r
+      <groupId>org.json</groupId>\r
+      <artifactId>json</artifactId>\r
+      <version>20220320</version>\r
+    </dependency>-->\r
+      <dependency>\r
+      <!-- used e.g. by CdmServerInfo -->\r
+      <groupId>com.fasterxml.jackson.core</groupId>\r
+      <artifactId>jackson-core</artifactId>\r
+      <version>${jackson.version}</version>\r
+    </dependency>\r
+    <dependency>\r
+      <!-- used e.g. by CdmServerInfo -->\r
+      <groupId>com.fasterxml.jackson.core</groupId>\r
+      <artifactId>jackson-databind</artifactId>\r
+      <version>${jackson.version}</version>\r
+    </dependency>\r
+    <dependency>\r
+      <!-- used e.g. by ICdmEntitySession -->\r
+      <groupId>net.sf.ehcache</groupId>\r
+      <artifactId>ehcache</artifactId>\r
+      <version>2.10.6</version>\r
+    </dependency>\r
+    <dependency>\r
+      <!-- used e.g. by CdmPersistentRemoteSource -->\r
       <groupId>org.jdom</groupId>\r
       <artifactId>jdom</artifactId>\r
       <version>1.1.3</version>\r
     </dependency>\r
+    \r
+    <!-- indirectly used with compile error -->\r
     <dependency>\r
-      <groupId>org.springframework</groupId>\r
-      <artifactId>spring-context</artifactId>\r
-      <version>4.2.4.RELEASE</version>\r
+      <!-- indirectly used e.g. by AbstractPersistentCollection -->\r
+      <groupId>javax.persistence</groupId>\r
+      <artifactId>javax.persistence-api</artifactId>\r
+      <version>2.2</version>\r
     </dependency>\r
     <dependency>\r
-      <groupId>org.springframework</groupId>\r
-      <artifactId>spring-context-support</artifactId>\r
-      <version>4.2.4.RELEASE</version>\r
+      <!-- indirectly used e.g. by AbstractPersistentCollection -->\r
+      <groupId>org.jboss.logging</groupId>\r
+      <artifactId>jboss-logging</artifactId>\r
+      <version>3.4.3.Final</version>\r
+    </dependency>\r
+    \r
+    <!-- indirectly used, by other taxeditor modules -->\r
+    <!--   ... by taxeditor.local -->\r
+    <dependency>\r
+      <groupId>eu.etaxonomy</groupId>\r
+      <artifactId>cdmlib-api</artifactId>\r
+      <version>${cdmlib.version}</version>\r
+    </dependency>\r
+    \r
+    <!--   ... by taxeditor.store -->\r
+    <dependency>\r
+      <groupId>joda-time</groupId>\r
+      <artifactId>joda-time</artifactId>\r
+      <version>2.10.14</version>\r
+    </dependency>\r
+    <dependency>\r
+      <groupId>net.sf.opencsv</groupId>\r
+      <artifactId>opencsv</artifactId>\r
+      <version>2.3</version>\r
     </dependency>\r
     <dependency>\r
       <groupId>org.springframework</groupId>\r
       <artifactId>spring-aspects</artifactId>\r
-      <version>4.2.4.RELEASE</version>\r
+      <version>${spring.version}</version>\r
     </dependency>\r
     <dependency>\r
-      <groupId>org.springframework</groupId>\r
-      <artifactId>spring-test</artifactId>\r
-      <version>4.2.4.RELEASE</version>\r
+      <groupId>com.ibm.lsid</groupId>\r
+      <artifactId>lsid-client</artifactId>\r
+      <version>1.1.2</version>\r
     </dependency>\r
     <dependency>\r
-      <groupId>org.springframework</groupId>\r
-      <artifactId>spring-beans</artifactId>\r
-      <version>4.2.4.RELEASE</version>\r
+      <groupId>org.apache.commons</groupId>\r
+      <artifactId>commons-imaging</artifactId>\r
+      <version>1.0-alpha3</version>\r
+    </dependency>\r
+    \r
+    <!-- used by taxeditor.editor -> character matrix -->\r
+    <dependency>\r
+      <groupId>org.apache.commons</groupId>\r
+      <artifactId>commons-math3</artifactId>\r
+      <version>3.6.1</version>\r
     </dependency>\r
+    \r
+    <!-- used by bulkeditor -->\r
     <dependency>\r
-      <groupId>org.springframework</groupId>\r
-      <artifactId>spring-tx</artifactId>\r
-      <version>4.2.4.RELEASE</version>\r
+      <!-- used by CharacterMatrix/bulkeditor (LinkedList) and UpdateResult.exceptions (CircularFifoQueue)  -->\r
+      <groupId>org.apache.commons</groupId>\r
+      <artifactId>commons-collections4</artifactId>\r
+      <version>4.4</version>\r
     </dependency>\r
+        <!-- used by taxeditor.local -->\r
     <dependency>\r
-               <groupId>org.springframework</groupId>\r
-               <artifactId>spring-web</artifactId>\r
-               <version>4.2.4.RELEASE</version>\r
-       </dependency>\r
+      <!-- used by datasource dialogue finish button  -->\r
+      <groupId>com.mchange</groupId>\r
+      <artifactId>mchange-commons-java</artifactId>\r
+      <version>0.2.11</version>\r
+    </dependency>\r
+    \r
+    <!-- needed by taxeditor.test during test run, maybe move to test package only -->\r
     <dependency>\r
-      <groupId>org.springframework</groupId>\r
-      <artifactId>spring-core</artifactId>\r
-      <version>4.2.4.RELEASE</version>\r
+      <!-- used by hibernate -->\r
+      <groupId>net.bytebuddy</groupId>\r
+      <artifactId>byte-buddy</artifactId>\r
+      <version>1.12.10</version>\r
+    </dependency>\r
+    <dependency>\r
+      <!-- dependency of xerces -->\r
+      <groupId>xml-apis</groupId>\r
+      <artifactId>xml-apis</artifactId>\r
+      <version>1.4.01</version>\r
     </dependency>\r
+    <!-- needed only for H2Local and unitils, move maybe to test + local together with c3p0 -->\r
     <dependency>\r
+      <groupId>commons-pool</groupId>\r
+      <artifactId>commons-pool</artifactId>\r
+      <version>1.6</version>\r
+    </dependency>\r
+    \r
+    <!-- For Unit Tests Start -->\r
+    <!-- keep junit and its dependency hamcrest here as long as each plugin\r
+         has its own unit tests and junit is not yet added there in a way\r
+         that it does not appear in production bundles -->\r
+    <dependency>\r
+        <groupId>junit</groupId>\r
+        <artifactId>junit</artifactId>\r
+        <version>4.13.2</version>\r
+        <scope>test</scope>\r
+    </dependency>\r
+    <dependency>\r
+        <groupId>org.hamcrest</groupId>\r
+        <artifactId>hamcrest-core</artifactId>\r
+        <version>1.3</version>\r
+    <!--     <scope>test</scope> -->\r
+    </dependency>\r
+     \r
+    <!-- END for Unit Tests -->\r
+    \r
+    <!-- required during RUNTIME -->\r
+    \r
+    <dependency>\r
+      <!-- for handling HibernateSystemException, see #10277, TODO try to handle without adding dependency  -->\r
       <groupId>org.springframework</groupId>\r
-      <artifactId>spring-aop</artifactId>\r
-      <version>4.2.4.RELEASE</version>\r
+      <artifactId>spring-orm</artifactId>\r
+      <version>${spring.version}</version>\r
+    </dependency>\r
+  <dependency>\r
+      <!-- for handling BridgeException, see #10277, TODO try to handle without adding dependency  -->\r
+      <groupId>org.hibernate</groupId>\r
+      <artifactId>hibernate-search-engine</artifactId>\r
+      <version>${hibernate-search.version}</version>\r
     </dependency>\r
     <dependency>\r
-               <groupId>org.springframework</groupId>\r
-               <artifactId>spring-expression</artifactId>\r
-               <version>4.2.4.RELEASE</version>\r
-       </dependency>\r
-   <dependency>\r
-               <groupId>org.springframework</groupId>\r
-               <artifactId>spring-orm</artifactId>\r
-               <version>4.2.4.RELEASE</version>\r
-       </dependency>\r
+      <!-- throws exception in bulk editor after search if not present -->\r
+      <groupId>org.hibernate</groupId>\r
+      <artifactId>hibernate-envers</artifactId>\r
+      <version>${hibernate.version}</version>\r
+    </dependency>\r
     <dependency>\r
-               <groupId>org.springframework</groupId>\r
-               <artifactId>spring-jdbc</artifactId>\r
-               <version>4.2.4.RELEASE</version>\r
-       </dependency>\r
+      <!-- throws exception in bulk editor after search during deserialization if not present -->\r
+      <groupId>org.apache.lucene</groupId>\r
+      <artifactId>lucene-core</artifactId>\r
+      <version>${lucene.version}</version>\r
+    </dependency>\r
     <dependency>\r
-      <groupId>org.springframework.security</groupId>\r
-      <artifactId>spring-security-core</artifactId>\r
-      <version>4.0.3.RELEASE</version>\r
+      <!-- e.g. when opening character matrix\r
+           probably only used by hibernate-core, so remove when removing hibernate-core -->\r
+      <groupId>antlr</groupId>\r
+      <artifactId>antlr</artifactId>\r
+      <version>2.7.7</version>\r
     </dependency>\r
     <dependency>\r
-      <groupId>org.springframework.security</groupId>\r
-      <artifactId>spring-security-config</artifactId>\r
-      <version>4.0.3.RELEASE</version>\r
+      <!-- used e.g. by login dialog, CdmServerInfo:411 -->  \r
+      <groupId>com.fasterxml.jackson.core</groupId>\r
+      <artifactId>jackson-annotations</artifactId>\r
+      <version>${jackson.version}</version>\r
     </dependency>\r
     <dependency>\r
-      <groupId>org.springframework.security</groupId>\r
-      <artifactId>spring-security-remoting</artifactId>\r
-      <version>4.0.3.RELEASE</version>\r
+        <!-- for any transactions, e.g. when first time logging in -->\r
+        <groupId>org.jboss.spec.javax.transaction</groupId>\r
+        <artifactId>jboss-transaction-api_1.2_spec</artifactId>\r
+        <version>1.1.1.Final</version>\r
     </dependency>\r
+    \r
     <dependency>\r
-      <groupId>commons-lang</groupId>\r
-      <artifactId>commons-lang</artifactId>\r
-      <version>2.6</version>\r
+        <!-- for showing maps in distribution details view -->\r
+        <groupId>de.micromata.jak</groupId>\r
+        <!-- Java11 required <groupId>uk.m0nom</groupId>  -->\r
+        <artifactId>JavaAPIforKml</artifactId>\r
+        <version>2.2.1</version>\r
     </dependency>\r
+    \r
     <dependency>\r
-        <groupId>commons-beanutils</groupId>\r
-        <artifactId>commons-beanutils</artifactId>\r
-        <version>1.9.4</version>\r
+      <!-- used if a validation result is returned, see https://dev.e-taxonomy.eu/redmine/issues/10182#note-10  -->\r
+      <!-- can probably be removed after switching to jakarta.validation-api with spring 6.x -->\r
+      <groupId>javax.validation</groupId>\r
+      <artifactId>validation-api</artifactId>\r
+      <version>2.0.1.Final</version>\r
     </dependency>\r
+    \r
     <dependency>\r
-      <groupId>au.com.bytecode</groupId>\r
-      <artifactId>opencsv</artifactId>\r
-      <version>2.4</version>\r
+      <!-- used in datasource view and in test, maybe enough if in taxeditor.local and taxeditor.test -->\r
+      <groupId>com.mchange</groupId>\r
+      <artifactId>c3p0</artifactId>\r
+      <version>0.9.5.2</version>\r
     </dependency>\r
-\r
+    \r
+    <!-- database related, should be moved to local/test when possible -->\r
+    <!-- only for supporting test button in datasource dialogue, dialogue should be moved to taxeditor.local -->\r
     <dependency>\r
-      <groupId>org.apache.httpcomponents</groupId>\r
-      <artifactId>httpclient</artifactId>\r
+      <groupId>mysql</groupId>\r
+      <artifactId>mysql-connector-java</artifactId>\r
+      <version>8.0.29</version>\r
     </dependency>\r
-\r
-    <!-- For Unit Tests Start -->\r
-       <!-- still needed? -->\r
-\r
+    <dependency>\r
+        <groupId>com.h2database</groupId>\r
+        <artifactId>h2</artifactId>\r
+        <version>1.4.190</version>\r
+    </dependency>\r
+    <dependency>\r
+        <groupId>org.postgresql</groupId>\r
+        <artifactId>postgresql</artifactId>\r
+        <version>42.5.1</version>\r
+    </dependency>\r
+    \r
+    <!-- Only added for correct package export, but reported as needed -->\r
+    \r
+    <!-- dbcp and pool needed for H2Local and unitils, \r
+     move to taxeditor.webapp and taxedtior.test once all db dependencies are moved to webapp-->   \r
     <dependency>\r
       <groupId>commons-dbcp</groupId>\r
       <artifactId>commons-dbcp</artifactId>\r
       <version>1.4</version>\r
     </dependency>\r
+    \r
+    <!-- For Hibernate Mapping Start -->\r
     <dependency>\r
-      <groupId>commons-pool</groupId>\r
-      <artifactId>commons-pool</artifactId>\r
-      <version>1.5.4</version>\r
+      <groupId>jakarta.validation</groupId>\r
+      <artifactId>jakarta.validation-api</artifactId>\r
+      <version>3.0.2</version>\r
     </dependency>\r
\r
-    <!-- For Unit Tests End -->\r
-\r
-    <!-- For Hibernate Mapping Start -->\r
+    \r
+    <!-- needed at least in taxeditor.test by BundleLoader; try to move there but test carefully -->\r
     <dependency>\r
-      <groupId>wsdl4j</groupId>\r
-      <artifactId>wsdl4j</artifactId>\r
-      <version>1.6.3</version>\r
+      <groupId>commons-lang</groupId>\r
+      <artifactId>commons-lang</artifactId>\r
+      <version>2.6</version>\r
     </dependency>\r
     <dependency>\r
-      <groupId>javax.validation</groupId>\r
-      <artifactId>validation-api</artifactId>\r
-      <version>1.1.0.Final</version>\r
+      <!-- required when running test -->\r
+      <groupId>org.springframework</groupId>\r
+      <artifactId>spring-jdbc</artifactId>\r
+      <version>${spring.version}</version>\r
     </dependency>\r
-    <!-- For Hibernate Mapping End -->\r
     \r
-    <!-- KML/IIIF dependencies should not bee needed for the taxeditor, but at current the KMLDocumentBuilder \r
-         is used in the EditGeoService bean which is needed to display the distribution maps in the editor.\r
-     -->\r
-     <dependency>\r
-        <groupId>de.micromata.jak</groupId>\r
-        <artifactId>JavaAPIforKml</artifactId>\r
-        <version>2.2.1</version><!-- must be same version as in cdmlib -->\r
+    <!-- logging -->\r
+    <dependency> \r
+        <groupId>org.slf4j</groupId>\r
+        <artifactId>slf4j-api</artifactId>\r
+        <version>1.7.36</version>\r
     </dependency>\r
     <dependency>\r
-        <groupId>de.digitalcollections.iiif</groupId>\r
-        <artifactId>iiif-apis</artifactId>\r
-        <version>0.3.7</version>\r
+      <groupId>org.apache.logging.log4j</groupId>\r
+      <artifactId>log4j-slf4j-impl</artifactId>\r
+      <version>${log4j.version}</version>\r
+    </dependency>\r
+    <dependency>\r
+      <groupId>org.slf4j</groupId>\r
+      <artifactId>jcl-over-slf4j</artifactId>\r
+      <version>1.7.36</version>\r
+    </dependency>\r
+\r
+    <dependency>\r
+      <!-- https://stackoverflow.com/questions/38727655/maven-dependency-plugin-nosuchelementexception-for-aether-repositorysystem -->\r
+      <groupId>org.apache.maven.resolver</groupId>\r
+      <artifactId>maven-resolver-api</artifactId>\r
+      <version>1.4.1</version>\r
     </dependency>\r
+     \r
   </dependencies>\r
 </project>\r
 \r
index 36acd3dadb67c8b0290bfcb72fa437f764134818..690ebb6073923bf52a27656447a7894a9ee28ddc 100644 (file)
@@ -19,5 +19,4 @@ public class CdmApplicationException extends Exception {
     public CdmApplicationException(Exception ex) {
         super(ex);
     }
-
-}
+}
\ No newline at end of file
index 87f76fdfe557b95e8004e2ce520c034772812fee..a9eb78780ceef1b10126a203d869849a7bddf2bc 100644 (file)
@@ -6,7 +6,6 @@
  * 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
-\r
 package eu.etaxonomy.cdm.api.application;\r
 \r
 import java.util.ArrayList;\r
@@ -16,10 +15,8 @@ import java.util.List;
 import java.util.Map;\r
 \r
 import org.apache.commons.lang3.StringUtils;\r
-import org.apache.log4j.Logger;\r
-import org.springframework.beans.BeansException;\r
-import org.springframework.context.ApplicationContext;\r
-import org.springframework.context.ApplicationContextAware;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
 import org.springframework.remoting.httpinvoker.CachingHttpInvokerProxyFactoryBean;\r
 import org.springframework.remoting.httpinvoker.HttpComponentsHttpInvokerRequestExecutor;\r
 import org.springframework.security.access.AccessDecisionVoter;\r
@@ -33,24 +30,19 @@ import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContext;\r
 import org.springframework.security.core.context.SecurityContextHolder;\r
 import org.springframework.stereotype.Component;\r
-import org.springframework.transaction.PlatformTransactionManager;\r
-import org.springframework.transaction.TransactionStatus;\r
 \r
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
-import eu.etaxonomy.cdm.api.conversation.ConversationHolderMock;\r
 import eu.etaxonomy.cdm.api.service.IAgentService;\r
 import eu.etaxonomy.cdm.api.service.IAnnotationService;\r
 import eu.etaxonomy.cdm.api.service.IClassificationService;\r
 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
@@ -68,16 +60,22 @@ import eu.etaxonomy.cdm.api.service.IRegistrationService;
 import eu.etaxonomy.cdm.api.service.IRightsService;\r
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;\r
 import eu.etaxonomy.cdm.api.service.ITaxonService;\r
+import eu.etaxonomy.cdm.api.service.ITermCollectionService;\r
 import eu.etaxonomy.cdm.api.service.ITermNodeService;\r
 import eu.etaxonomy.cdm.api.service.ITermService;\r
 import eu.etaxonomy.cdm.api.service.ITermTreeService;\r
 import eu.etaxonomy.cdm.api.service.ITestService;\r
 import eu.etaxonomy.cdm.api.service.IUserService;\r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
+import eu.etaxonomy.cdm.api.service.geo.IDistributionService;\r
 import eu.etaxonomy.cdm.api.service.longrunningService.ILongRunningTasksService;\r
+import eu.etaxonomy.cdm.api.service.media.MediaInfoFactory;\r
 import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;\r
 import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;\r
 import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;\r
+import eu.etaxonomy.cdm.api.service.registration.IRegistrationWorkingSetService;\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
@@ -97,25 +95,27 @@ import eu.etaxonomy.taxeditor.service.RemoteInvocationTermCacher;
 import eu.etaxonomy.taxeditor.session.CdmEntitySessionManager;\r
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;\r
 \r
-\r
 /**\r
  * CDM Application Configuration class which manages the configuration for remoting\r
  * clients\r
  */\r
 @Component\r
 // TODO split into CdmRepository and proper @Configuration class\r
-public class CdmApplicationRemoteConfiguration implements ICdmRepository, ApplicationContextAware  {\r
+public class CdmApplicationRemoteConfiguration implements ICdmRepository {\r
 \r
     @SuppressWarnings("unused")\r
-    private static final Logger logger = Logger.getLogger(CdmApplicationRemoteConfiguration.class);\r
+    private static final Logger logger = LogManager.getLogger();\r
 \r
     /**\r
-     * Timeout for service lookup etc. This timeout (milliseconds) should me more\r
+     * Timeout for service lookup etc. This timeout (milliseconds) should be more\r
      * strict than {@link #HTTP_READ_TIMEOUT} to avoid connecting to\r
      * cdm servers when the network quality is too bad.\r
-     *\r
+     * Note AM: IMO we should not be to strict, sometimes services do not respond too fast\r
+     *     during the first call (e.g. test server), therefore I put this up from 1 to 3 sec.\r
+     *     Better we should inform the user that the connection might be of low quality\r
+     *     instead of making the connection completely unavailable.\r
      */\r
-    public static final int HTTP_READ_TIMEOUT_MIN = 1000; // one second\r
+    public static final int HTTP_READ_TIMEOUT_MIN = 3000; // 3 seconds\r
 \r
     /**\r
      * Timeout for normal operation (milliseconds)\r
@@ -131,9 +131,6 @@ public class CdmApplicationRemoteConfiguration implements ICdmRepository, Applic
      */\r
     public static final int HTTP_READ_TIMEOUT = 10 * 60 * 1000;\r
 \r
-\r
-    protected ApplicationContext applicationContext;\r
-\r
     private ICdmRemoteSource remoteSource;\r
 \r
     //TODO should be something like Map<Class<IService>, IService>, but we have no common service base interface yet\r
@@ -157,7 +154,6 @@ public class CdmApplicationRemoteConfiguration implements ICdmRepository, Applic
 \r
     public CdmApplicationRemoteConfiguration(ICdmRemoteSource remoteSource) {\r
         this.remoteSource = remoteSource;\r
-\r
     }\r
 \r
     public void setRemoteSource(ICdmRemoteSource remoteSource) {\r
@@ -204,16 +200,6 @@ public class CdmApplicationRemoteConfiguration implements ICdmRepository, Applic
 \r
     // ****************************** APPLICATION CONTEXT *************************************************/\r
 \r
-    @Override\r
-    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException{\r
-        this.applicationContext = applicationContext;\r
-    }\r
-\r
-    @Override\r
-    public PlatformTransactionManager getTransactionManager() throws UnsupportedOperationException {\r
-        throw new UnsupportedOperationException("getTransactionManager is not implemented for CdmApplicationRemoteConfiguration");\r
-    }\r
-\r
     public IEditGeoService getEditGeoService() {\r
         return (IEditGeoService) getService(IEditGeoService.class, "/remoting/editgeo.service", new AuthenticatingHttpInvokerRequestExecutor());\r
     }\r
@@ -235,8 +221,8 @@ public class CdmApplicationRemoteConfiguration implements ICdmRepository, Applic
  // ****************************** GETTER *************************************************/\r
 \r
     @Override\r
-    public final Object getBean(String name){\r
-        throw new UnsupportedOperationException("getBean is not implemented for CdmApplicationRemoteConfiguration");\r
+    public IAccountRegistrationService getAccountRegistrationService() {\r
+        return (IAccountRegistrationService) getService(IAccountRegistrationService.class, "/remoting/accountregistrationservice.service", new AuthenticatingHttpInvokerRequestExecutor());\r
     }\r
 \r
     @Override\r
@@ -284,6 +270,16 @@ public class CdmApplicationRemoteConfiguration implements ICdmRepository, Applic
         return (IDescriptionService) getService(IDescriptionService.class, "/remoting/description.service", new AuthenticatingHttpInvokerRequestExecutor());\r
     }\r
 \r
+    @Override\r
+    public IDistributionService getDistributionService(){\r
+        return (IDistributionService) getService(IDistributionService.class, "/remoting/distribution.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
@@ -378,29 +374,19 @@ public class CdmApplicationRemoteConfiguration implements ICdmRepository, Applic
         return new ProviderManager(Arrays.asList((AuthenticationProvider)daoAuthenticationProvider));\r
     }\r
 \r
-\r
-    @Override\r
-    public ConversationHolder NewConversation() {\r
-        return new ConversationHolderMock();\r
-    }\r
-\r
     @Override\r
     public ICollectionService getCollectionService(){\r
         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
+    public ITermCollectionService getTermCollectionService() {\r
+        return (ITermCollectionService) getService(ITermCollectionService.class, "/remoting/termcollection.service", new AuthenticatingHttpInvokerRequestExecutor());\r
     }\r
 \r
        @Override\r
@@ -423,7 +409,6 @@ public class CdmApplicationRemoteConfiguration implements ICdmRepository, Applic
         return (IPolytomousKeyService) getService(IPolytomousKeyService.class, "/remoting/polytomouskey.service", new AuthenticatingHttpInvokerRequestExecutor());\r
     }\r
 \r
-\r
     @Override\r
     public IPolytomousKeyNodeService getPolytomousKeyNodeService(){\r
         return (IPolytomousKeyNodeService) getService(IPolytomousKeyNodeService.class, "/remoting/polytomouskeynode.service", new AuthenticatingHttpInvokerRequestExecutor());\r
@@ -444,6 +429,11 @@ public class CdmApplicationRemoteConfiguration implements ICdmRepository, Applic
         return (IRegistrationService) getService(IRegistrationService.class, "/remoting/registration.service", new AuthenticatingHttpInvokerRequestExecutor());\r
     }\r
 \r
+    @Override\r
+    public IRegistrationWorkingSetService getRegistrationWorkingSetService() {\r
+        return (IRegistrationWorkingSetService) getService(IRegistrationWorkingSetService.class, "/remoting/registrationworkingset.service", new AuthenticatingHttpInvokerRequestExecutor());\r
+    }\r
+\r
     @Override\r
     public IGroupService getGroupService(){\r
         return (IGroupService) getService(IGroupService.class, "/remoting/group.service", new AuthenticatingHttpInvokerRequestExecutor());\r
@@ -454,6 +444,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
@@ -464,6 +459,11 @@ public class CdmApplicationRemoteConfiguration implements ICdmRepository, Applic
         return (IEntityConstraintViolationService) getService(IEntityConstraintViolationService.class, "/remoting/entityconstraintviolation.service", new AuthenticatingHttpInvokerRequestExecutor());\r
     }\r
 \r
+    @Override\r
+    public MediaInfoFactory getMediaInfoFactory(){ // TODO use interface\r
+        return (MediaInfoFactory) getService(MediaInfoFactory.class, "/remoting/mediainfofactory.service", new AuthenticatingHttpInvokerRequestExecutor());\r
+    }\r
+\r
     @Override\r
     public ICdmPermissionEvaluator getPermissionEvaluator(){\r
 \r
@@ -484,26 +484,6 @@ public class CdmApplicationRemoteConfiguration implements ICdmRepository, Applic
         return cdmPermissionEvaluator;\r
     }\r
 \r
-    @Override\r
-    public TransactionStatus startTransaction() throws UnsupportedOperationException {\r
-        throw new UnsupportedOperationException("startTransaction is not implemented for CdmApplicationRemoteConfiguration");\r
-    }\r
-\r
-    @Override\r
-    public TransactionStatus startTransaction(Boolean readOnly) throws UnsupportedOperationException {\r
-        throw new UnsupportedOperationException("startTransaction is not implemented for CdmApplicationRemoteConfiguration");\r
-    }\r
-\r
-    @Override\r
-    public void commitTransaction(TransactionStatus txStatus) throws UnsupportedOperationException {\r
-        throw new UnsupportedOperationException("commitTransaction is not implemented for CdmApplicationRemoteConfiguration");\r
-    }\r
-\r
-       @Override\r
-       public void rollbackTransaction(TransactionStatus arg0) {\r
-        throw new UnsupportedOperationException("rollbackTransaction is not implemented for CdmApplicationRemoteConfiguration");\r
-       }\r
-\r
     @Override\r
     public void authenticate(String username, String password){\r
         UsernamePasswordAuthenticationToken tokenForUser = new UsernamePasswordAuthenticationToken(username, password);\r
index e5950676bc26cabbc9b6cc22b4828705598309f1..0e8f73759e3ea17f96ee2878874d632624310c23 100644 (file)
@@ -6,13 +6,12 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
-
 package eu.etaxonomy.cdm.api.application;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.hibernate.collection.internal.AbstractPersistentCollection;
 import org.hibernate.proxy.AbstractLazyInitializer;
 import org.springframework.context.ApplicationListener;
@@ -31,15 +30,11 @@ import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
 
 /**
  * CDM Application Controller class for remoting clients
- *
- * FIXME:Remoting extending {@link CdmApplicationController} is a temporary workaround.
- * The {@link CdmApplicationController} should be split into a CdmApplicationControllerBase
- * class with {@link CdmApplicationController} and this class as subclasses
- *
  */
-public class CdmApplicationRemoteController  extends CdmApplicationController {
+public class CdmApplicationRemoteController
+        extends CdmApplicationControllerBase<ICdmRepository> {
 
-    private static final Logger logger = Logger.getLogger(CdmApplicationRemoteController.class);
+    private static final Logger logger = LogManager.getLogger();
 
     public static final Resource DEFAULT_REMOTE_APPLICATION_CONTEXT_RESOURCE =
             new ClassPathResource("/eu/etaxonomy/cdm/remotingApplicationContext.xml");
@@ -61,13 +56,6 @@ public class CdmApplicationRemoteController  extends CdmApplicationController {
 
     /**
      * Creates new instance of CdmApplicationRemoteController
-     *
-     * @param applicationContextResource
-     * @param remoteSource
-     * @param omitTermLoading
-     * @param progressMonitor
-     * @param listeners
-     * @return
      */
     public static CdmApplicationRemoteController NewInstance(ICdmRemoteSource remoteSource,
             IProgressMonitor progressMonitor,
@@ -78,7 +66,6 @@ public class CdmApplicationRemoteController  extends CdmApplicationController {
                 false,
                 progressMonitor,
                 listeners);
-
     }
 
     public static CdmApplicationRemoteController NewInstance(ICdmRemoteSource remoteSource,
@@ -95,12 +82,6 @@ public class CdmApplicationRemoteController  extends CdmApplicationController {
 
     /**
      * Constructs CdmApplicationRemoteController
-     *
-     * @param applicationContextResource
-     * @param remoteSource
-     * @param omitTermLoading
-     * @param progressMonitor
-     * @param listeners
      */
     private CdmApplicationRemoteController(Resource applicationContextResource,
             ICdmRemoteSource remoteSource,
@@ -135,7 +116,7 @@ public class CdmApplicationRemoteController  extends CdmApplicationController {
         progressMonitor.beginTask("Connecting to '" + remoteSource.getName() + "'", nTasks);
 
         progressMonitor.subTask("Initialising CDM Model Cache ...");
-        CdmRemoteCacheManager.getInstance();
+        CdmRemoteCacheManager.INSTANCE();
         CdmRemoteCacheManager.removeEntityCaches();
         progressMonitor.worked(1);
         progressMonitor.subTask("Starting application context ...");
@@ -148,7 +129,6 @@ public class CdmApplicationRemoteController  extends CdmApplicationController {
     @Override
     protected void init(){
         configuration = new CdmApplicationRemoteConfiguration(remoteSource);
-        ((CdmApplicationRemoteConfiguration)configuration).setApplicationContext(applicationContext);
         AbstractLazyInitializer.setConfiguration((CdmApplicationRemoteConfiguration)configuration);
         AbstractPersistentCollection.setConfiguration((CdmApplicationRemoteConfiguration)configuration);
     }
index 8a4d88e78c6b220639fcf8ccaedb09b747522abb..20a2a65a352dfd3a83086fb493214250458221d2 100644 (file)
@@ -13,7 +13,6 @@ import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Type;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.Dictionary;
@@ -29,11 +28,12 @@ import org.osgi.framework.BundleException;
 import org.osgi.framework.Constants;
 import org.springframework.security.core.context.SecurityContext;
 
-import eu.etaxonomy.cdm.api.cache.CdmServiceCacher;
+import eu.etaxonomy.cdm.api.cache.CdmServiceCachingProxy;
 import eu.etaxonomy.cdm.api.service.ICommonService;
 import eu.etaxonomy.cdm.api.service.IService;
 import eu.etaxonomy.cdm.api.service.ITestService;
 import eu.etaxonomy.cdm.api.service.longrunningService.ILongRunningTasksService;
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.io.service.IIOService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.taxeditor.service.ICachedCommonService;
@@ -47,14 +47,14 @@ public class CdmApplicationState {
 
     private static CdmApplicationState cdmApplicationState;
 
-    private ICdmRepository appConfig;
+    private CdmApplicationRemoteController appConfig;
 
     private ICdmDataChangeService dataChangeService;
 
     //FIXME SecurityContextHolder.getContext()
     private SecurityContext securityContext;
 
-    private static CdmServiceCacher cdmServiceCacher;
+    private static CdmServiceCachingProxy termProxy;
 
     private static String cdmlibVersion = null;
     private static String cdmlibLastModified = null;
@@ -66,24 +66,20 @@ public class CdmApplicationState {
         return cdmApplicationState;
     }
 
-    public void setAppConfig(ICdmRepository appConfig) {
+    public void setAppConfig(CdmApplicationRemoteController appConfig) {
         this.appConfig = appConfig;
-        if(appConfig instanceof CdmApplicationRemoteController) {
-            CdmBase.setNewEntityListener(new DefaultNewEntityListener());
-        } else {
-            CdmBase.setNewEntityListener(null);
-        }
+        CdmBase.setNewEntityListener(new DefaultNewEntityListener());
     }
 
-    public ICdmRepository getAppConfig() {
+    public CdmApplicationRemoteController getAppConfig() {
         return appConfig;
     }
 
-    public static void setCurrentAppConfig(ICdmRepository appConfig) {
+    public static void setCurrentAppConfig(CdmApplicationRemoteController appConfig) {
         getInstance().setAppConfig(appConfig);
     }
 
-    public static ICdmRepository getCurrentAppConfig() {
+    public static CdmApplicationRemoteController getCurrentAppConfig() {
         return getInstance().getAppConfig();
     }
 
@@ -117,11 +113,11 @@ public class CdmApplicationState {
     }
 
     public static void dispose() {
-        getInstance().setCurrentDataChangeService(null);
+        setCurrentDataChangeService(null);
         getInstance().setAppConfig(null);
         getInstance().setSecurityContext(null);
         cdmApplicationState = null;
-        cdmServiceCacher = null;
+        termProxy = null;
         cdmlibVersion = null;
         cdmlibLastModified = null;
     }
@@ -189,12 +185,12 @@ public class CdmApplicationState {
         return ((CdmApplicationRemoteController)configuration).getCachedCommonService();
     }
 
-    public static CdmServiceCacher getCdmServiceCacher() {
-        return cdmServiceCacher;
+    public static CdmServiceCachingProxy getTermProxy() {
+        return termProxy;
     }
 
-    public static void setCdmServiceCacher(CdmServiceCacher cacher) {
-        cdmServiceCacher = cacher;
+    public static void setTermProxy(CdmServiceCachingProxy cacher) {
+        termProxy = cacher;
     }
 
     public static void updateCdmlibManifestInfo() {
@@ -212,9 +208,11 @@ public class CdmApplicationState {
                 if(jar.startsWith(cdmlibPathPrefix) && jar.endsWith(jarSuffix)) {
                     URL fileURL = bundle.getEntry(jar);
                     File file = null;
+                    String urlString = null;
                     try {
-                        String urlString = FileLocator.resolve(fileURL).toExternalForm().replace(" ", "%20");
-                        file = new File(new URI(urlString));
+                       urlString = FileLocator.resolve(fileURL).toExternalForm().replace(" ", "%20");
+
+                        file = new File(new URI(urlString).getJavaUri());
                         JarFile jarFile = new JarFile(file);
                         Manifest manifest = jarFile.getManifest();
                         Attributes attributes = manifest.getMainAttributes();
@@ -233,7 +231,10 @@ public class CdmApplicationState {
                         throw new IllegalStateException(urise);
                     } catch (IOException ioe) {
                         throw new IllegalStateException(ioe);
-                    }
+                    } catch (IllegalArgumentException iae) {
+                       String message = iae.getMessage().concat("uri " + jar + "\n " + urlString);
+                       throw new IllegalStateException(message);
+                       }
                 }
             }
         } catch (BundleException e) {
index 8351dcbc844170d4cf66e5430e38e30c8e189497..3a3f9e4f4be00f251b52016571af6df3a545e049 100644 (file)
@@ -15,5 +15,4 @@ package eu.etaxonomy.cdm.api.application;
 public interface ICdmChangeListener {
 
     public void onChange(CdmChangeEvent event);
-
-}
+}
\ No newline at end of file
similarity index 74%
rename from eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCacher.java
rename to eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCachingProxy.java
index 9246ea43df8d27ec61e59d5bbeb7542b7d9c5250..4a4c634fbec329546e10f48990d7ef56f1927a6d 100644 (file)
@@ -1,10 +1,19 @@
+/**
+ * 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.cdm.api.cache;
 
 import java.io.File;
 import java.util.UUID;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.config.EhCacheConfiguration;
@@ -21,9 +30,11 @@ import eu.etaxonomy.taxeditor.session.CdmEntitySession;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManagerObserver;
+import net.sf.ehcache.CacheManager;
 import net.sf.ehcache.config.CacheConfiguration;
 import net.sf.ehcache.config.DiskStoreConfiguration;
 import net.sf.ehcache.config.SizeOfPolicyConfiguration;
+import net.sf.ehcache.store.MemoryStoreEvictionPolicy;
 
 /**
  * Class which uses CDM services to cache cdm entities
@@ -31,11 +42,15 @@ import net.sf.ehcache.config.SizeOfPolicyConfiguration;
  * FIXME: Currently only handles term entities. It would be
  *        interesting to have a generic method which finds the
  *        correct service to load / cache the entity.
+ * TODO by AM: compare with {@link CdmTermCacher} and merge if possible
  *
  * @author cmathew
  */
-@Component //FIXME This indicates that the CdmServiceCacher is initialized as Spring Component but it seems only to be instantiated directly
-public class CdmServiceCacher extends CdmCacherBase implements ICdmEntitySessionManagerObserver {
+public class CdmServiceCachingProxy
+        extends CdmPermanentCacheBase
+        implements ICdmEntitySessionManagerObserver {
+
+    private static final Logger logger = LogManager.getLogger();
 
     private ICdmEntitySessionManager cdmEntitySessionManager;
 
@@ -43,9 +58,14 @@ public class CdmServiceCacher extends CdmCacherBase implements ICdmEntitySession
 
     private CacheLoader cacheLoader;
 
+    //NOTE AM: this is currently not used
     @Autowired
     private ConfigFileUtil configFileUtil = null;
 
+    public CdmServiceCachingProxy() {
+        super();
+    }
+
     @Override
     protected void setup() {
 
@@ -53,16 +73,15 @@ public class CdmServiceCacher extends CdmCacherBase implements ICdmEntitySession
 
         DefinedTermBase.setCacher(this);
         CdmTransientEntityCacher.setPermanentCacher(this);
-        //TermServiceRequestExecutor.setDefaultCacher(this);
         RemoteInvocationTermCacher.setDefaultCacher(this);
 
         cacheLoader = new CacheLoader(this);
     }
 
+    //FIXME #10218 setting up the cache manager here probably has no effect
+    //      as described in #10214
     private void setUpCacheManager() {
 
-        EhCacheConfiguration cacheConfig = new EhCacheConfiguration();
-
         DiskStoreConfiguration diskStoreConfiguration = new DiskStoreConfiguration();
         File ehcacheFolder = null;
         if(configFileUtil != null){
@@ -76,29 +95,38 @@ public class CdmServiceCacher extends CdmCacherBase implements ICdmEntitySession
             ehcacheFolder = ConfigFileUtil.getCdmHomeSubDirFallback("taxeditor-ehcache");
         }
 
-        // FIXME use subfolder per taxeditor version to allow running multiple installations in parallel
+        // FIXME use subfolder per taxeditor version to allow running multiple
+        //   installations in parallel
         // String taxEditorVersion = ..;
         // File ehcacheFolder = new File(ehcacheFolder, taxEditorVersion);
         diskStoreConfiguration.setPath(ehcacheFolder.getAbsolutePath());
 
+        EhCacheConfiguration cacheConfig = new EhCacheConfiguration();
         cacheConfig.setDiskStoreConfiguration(diskStoreConfiguration);
-        addCacheManager(cacheConfig.cacheManager());
+
+        CacheManager cacheManager = cacheConfig.cacheManager();
+        setCacheManager(cacheManager);
     }
 
     @Override
-    protected CacheConfiguration getDefaultCacheConfiguration() {
+    protected CacheConfiguration getPermanentCacheConfiguration() {
+
         // For a better understanding on how to size caches, refer to
-        // http://ehcache.org/documentation/configuration/cache-size
+        // https://www.ehcache.org/documentation/2.8/configuration/cache-size.html
 
+        //probably size of policy configuration is not really needed here
         SizeOfPolicyConfiguration sizeOfConfig = new SizeOfPolicyConfiguration();
         sizeOfConfig.setMaxDepth(100);
         sizeOfConfig.setMaxDepthExceededBehavior("abort");
 
-        return new CacheConfiguration(DEFAULT_CACHE_NAME, 0)
-               .eternal(true)
-               .statistics(true)
-               .sizeOfPolicy(sizeOfConfig)
-               .overflowToOffHeap(false);
+        CacheConfiguration config = new CacheConfiguration(PERMANENT_CACHE_NAME, 1000)
+                .memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy.LFU)
+                .eternal(false)
+                .sizeOfPolicy(sizeOfConfig)
+                // default ttl and tti set to 1 hour and 20 min
+                .timeToLiveSeconds(60*60*1)
+                .timeToIdleSeconds(60*20);
+        return config;
     }
 
     @Override
@@ -107,6 +135,9 @@ public class CdmServiceCacher extends CdmCacherBase implements ICdmEntitySession
         return load(term);
     }
 
+    /**
+     * <code>true</code> if the parameter is a term or a representation
+     */
     @Override
     public boolean isCachable(CdmBase cdmEntity) {
        if(cdmEntity == null){
@@ -139,7 +170,7 @@ public class CdmServiceCacher extends CdmCacherBase implements ICdmEntitySession
         // first we check in the active session cache if the
         // entity has been loaded there
         // FIXME:Remoting do we really need the cdmTransientEntityCacher
-        // here. Is it not guaranteed that all every entity which 'isCachable'
+        // here. Is it not guaranteed that every entity which 'isCachable'
         // by this cacher is cached only in this cacher ?
         if(!isCachable(cdmBase) && cdmTransientEntityCacher != null) {
             CdmEntityCacheKey<T> key = CdmTransientEntityCacher.generateKey(cdmBase);
@@ -153,10 +184,11 @@ public class CdmServiceCacher extends CdmCacherBase implements ICdmEntitySession
 
     @Override
     public <T extends CdmBase> T load(T cdmEntity) {
+        @SuppressWarnings("unchecked")
         T cachedCdmEntity = (T)getFromCache(cdmEntity.getUuid());
 
         if(isCachable(cdmEntity) && cachedCdmEntity == null) {
-            cachedCdmEntity =  cacheLoader.load(cdmEntity, false, true);
+            cachedCdmEntity = cacheLoader.load(cdmEntity, false, true);
         }
         return cachedCdmEntity;
     }
@@ -170,4 +202,4 @@ public class CdmServiceCacher extends CdmCacherBase implements ICdmEntitySession
             this.cdmTransientEntityCacher = null;
         }
     }
-}
+}
\ No newline at end of file
index 4f0a29df3b1572ef8896cf0a4ebe8daa2c23f386..00d1cd49252089cea576b5cae0dc1ca1729e2c99 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * 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.cdm.api.lazyloading;
 
 import java.util.ArrayList;
@@ -86,7 +94,6 @@ public class CdmLazyLoader {
 
        /**
         *  'Around' advice for the initialization of Collection objects
-        *
         */
        @Around(value = "possibleCollectionLazyInitializationException()")
        public Object preloadCollectionOnDemand(ProceedingJoinPoint pjp) throws Throwable {
@@ -128,19 +135,19 @@ public class CdmLazyLoader {
        private CollectionField getCollectionField(PersistentCollection pc) {
                if(pc != null) {
                        if(pc instanceof PersistentSet) {
-                               return new CollectionField(new HashSet((Set)pc), "set");
+                               return new CollectionField(new HashSet<>((Set)pc), "set");
                        }
                        if(pc instanceof PersistentSortedSet) {
-                               return new CollectionField(new TreeSet((Set)pc), "set");
+                               return new CollectionField(new TreeSet<>((Set)pc), "set");
                        }
                        if(pc instanceof PersistentList) {
-                               return new CollectionField(new ArrayList((List)pc), "list");
+                               return new CollectionField(new ArrayList<>((List)pc), "list");
                        }
                        if(pc instanceof PersistentMap || pc instanceof PersistentMultiLanguageText) {
-                               return new CollectionField(new HashMap((Map)pc), "map");
+                               return new CollectionField(new HashMap<>((Map)pc), "map");
                        }
                        if(pc instanceof PersistentSortedMap) {
-                               return new CollectionField(new TreeMap((Map)pc), "map");
+                               return new CollectionField(new TreeMap<>((Map)pc), "map");
                        }
                }
                return null;
index 7a036f2db6522cdd97a96bb632e8ea082588d52a..fce56d0dee7e56b79effcdf7b691a450c493ba6b 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * 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.remoting;
 
 public class CdmEagerLoadingException extends RuntimeException {
index 58e4fac447875acc260ee2a178e5f0fdf2507667..97d1094ef5cd830d0404cd8cfe5f9bb7ce5ce760 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * 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.remoting;
 
 public class CdmRemotingException extends RuntimeException {
index 12b6f6089e2461a362be0f1efbc56222b9330001..c84dc28515000149e55dc6cb3a115465f5a738a0 100644 (file)
@@ -9,19 +9,27 @@
 package eu.etaxonomy.taxeditor.remoting;
 
 /**
+ * Singleton/static class to log the last httpInvoker
+ * request and response metadata.
+ * This is currently static to be easily accessible by MessagingUtils.
+ *
+ * Note: does not work clean in a  multi-thread environment yet.
+ *
  * @author a.kohlbecker
  * @since Jan 17, 2020
  */
 public class RemoteExecutionTimestampsUtil {
 
-    protected static String lastRequestClientTime = null;
+    private static String lastRequestClientTime = null;
 
-    protected static String lastResponseHeaderTime = null;
+    private static String lastResponseHeaderTime = null;
 
-    protected static String lastServiceMethod = null;
+    private static String lastService = null;
+
+    private static String lastMethod = null;
 
-    public RemoteExecutionTimestampsUtil() {
 
+    public RemoteExecutionTimestampsUtil() {
     }
 
     static public String getLastRequestClientTime() {
@@ -40,11 +48,19 @@ public class RemoteExecutionTimestampsUtil {
         lastResponseHeaderTime = time;
     }
 
-    static public String getLastServiceMethod() {
-        return lastServiceMethod;
+    static public String getLastService() {
+        return lastService;
+    }
+
+    static public void setLastService(String lastService) {
+        RemoteExecutionTimestampsUtil.lastService = lastService;
+    }
+
+    static public String getLastMethod() {
+        return lastMethod;
     }
 
-    static public void setLastServiceMethod(String lastMethod) {
-        lastServiceMethod = lastMethod;
+    static public void setLastMethod(String lastMethod) {
+        RemoteExecutionTimestampsUtil.lastMethod = lastMethod;
     }
 }
index cf492760b02bb33692de6251f88d15c12e55db92..0034c17fff207a06a934da74013749ebd08c4ea4 100755 (executable)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2018 EDIT
 * European Distributed Institute of Taxonomy
@@ -56,7 +55,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 196c4adba936fd826a089514ea796e99dbf0dc37..e26b052acd7c80b0199b09f5130a13de80ecab53 100644 (file)
@@ -12,11 +12,11 @@ import java.io.File;
 import java.io.IOException;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.text.StringEscapeUtils;
 
-import eu.etaxonomy.cdm.api.application.CdmApplicationUtils;
 import eu.etaxonomy.cdm.config.CdmPersistentXMLSource.CdmSourceProperties;
 import eu.etaxonomy.cdm.database.CdmPersistentDataSource;
+import eu.etaxonomy.cdm.persistence.utils.CdmPersistenceUtils;
 
 /**
  * @author cmathew
@@ -33,9 +33,9 @@ public class CdmServerUtils {
         configStringBuilder.append("  xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" + System.lineSeparator());
         configStringBuilder.append("  xmlns:tx=\"http://www.springframework.org/schema/tx\"" + System.lineSeparator());
         configStringBuilder.append("  xmlns:context=\"http://www.springframework.org/schema/context\"" + System.lineSeparator());
-        configStringBuilder.append("  xsi:schemaLocation=\"http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" + System.lineSeparator());
-        configStringBuilder.append("  http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-2.5.xsd" + System.lineSeparator());
-        configStringBuilder.append("  http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" + System.lineSeparator());
+        configStringBuilder.append("  xsi:schemaLocation=\"http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-4.3.xsd" + System.lineSeparator());
+        configStringBuilder.append("  http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-4.3.xsd" + System.lineSeparator());
+        configStringBuilder.append("  http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx-4.3.xsd" + System.lineSeparator());
         configStringBuilder.append("\">" + System.lineSeparator());
         configStringBuilder.append(" <bean id=\"dataSourceProperties\" class=\"eu.etaxonomy.cdm.remote.config.DataSourceProperties\">" + System.lineSeparator());
         configStringBuilder.append("   <property name=\"propsMap\">" + System.lineSeparator());
@@ -48,7 +48,7 @@ public class CdmServerUtils {
             String user = dataSource.getUsername();
             String password = dataSource.getPassword();
             String driverClass = dataSource.getCdmSourceProperty(CdmSourceProperties.DRIVER_CLASS);
-            String jdbcUrl = StringEscapeUtils.escapeXml(dataSource.getCdmSourceProperty(CdmSourceProperties.URL));
+            String jdbcUrl = StringEscapeUtils.escapeXml10(dataSource.getCdmSourceProperty(CdmSourceProperties.URL));
             configStringBuilder.append(" <bean id=\""  + beanId + "\" lazy-init=\"true\" class=\"com.mchange.v2.c3p0.ComboPooledDataSource\">" + System.lineSeparator());
             configStringBuilder.append("   <property name=\"driverClass\" value=\"" + driverClass + "\"/>" + System.lineSeparator());
             configStringBuilder.append("   <property name=\"user\" value=\"" + user + "\"/>" + System.lineSeparator());
@@ -75,7 +75,8 @@ public class CdmServerUtils {
     }
 
     public static File writeManagedServerConfig(String config, String fileName) throws IOException {
-        File managedConfigFile = new File(CdmApplicationUtils.getWritableResourceDir(), fileName);
+        //TODO we need a pass-through class for CdmPersistenceUtils once cdmlib-persistence is not available anymore on classpath)
+        File managedConfigFile = new File(CdmPersistenceUtils.getWritableResourceDir(), fileName);
         if(managedConfigFile.exists()) {
             managedConfigFile.delete();
         }
@@ -84,4 +85,4 @@ public class CdmServerUtils {
         }
         return managedConfigFile;
     }
-}
+}
\ No newline at end of file
index 9dd2e4a4d80f99838f96ca0d730e1960d312cedf..b6d645c6b38b11e30573f6ab908beadfef419629 100644 (file)
@@ -19,7 +19,7 @@ import java.util.Enumeration;
 import java.util.List;
 import java.util.Properties;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.jdom.Attribute;
 import org.jdom.Element;
 
@@ -38,7 +38,7 @@ public class CdmPersistentRemoteSource
         implements ICdmPersistentSource{
 
     @SuppressWarnings("unused")
-       private static final Logger logger = Logger.getLogger(CdmPersistentRemoteSource.class);
+       private static final Logger logger = LogManager.getLogger(CdmPersistentRemoteSource.class);
 
        public static final String REMOTESOURCE_BEAN_POSTFIX = "RemoteSource";
        private String beanName;
index 8ce92aa87ec225cd5025d5edb9843e62d48a4437..9a90b02c2eb5378e62e7c2ad9ba22a69965a0acd 100644 (file)
@@ -19,4 +19,4 @@ public class CdmRemoteSourceException extends Exception {
        public CdmRemoteSourceException(Exception e) {
                super(e);
        }
-}
+}
\ No newline at end of file
index 085b750e8316d9a81b29fae08c93c89ae4f59d52..98c51e032aa8d632480d14a499ce2286039ee273 100644 (file)
@@ -15,11 +15,12 @@ import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.net.Socket;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpResponse;
 import org.apache.http.client.ClientProtocolException;
@@ -29,16 +30,18 @@ import org.apache.http.client.methods.HttpGet;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.util.EntityUtils;
-import org.apache.log4j.Logger;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
+import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration;
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.config.CdmSourceException;
 import eu.etaxonomy.cdm.config.ConfigFileUtil;
 import eu.etaxonomy.cdm.config.ICdmSource;
@@ -54,14 +57,17 @@ import eu.etaxonomy.taxeditor.remoting.server.CdmServerUtils;
  */
 public class CdmServerInfo {
 
-    public static final Logger logger = Logger.getLogger(CdmServerInfo.class);
+    public static final Logger logger = LogManager.getLogger(CdmServerInfo.class);
 
-    private final static String CDMSERVER_PREFIX = "cdmserver/";
+    protected final static String CDMSERVER_PREFIX = "cdmserver/";
     private final static String NAME_PRODUCTION = "cybertaxonomy.org";
     private final static String SERVER_PRODUCTION = "api.cybertaxonomy.org";
 
     private final static String NAME_DEMO_1 = "demo I";
     private final static String SERVER_DEMO_1 = "160.45.63.230";
+    private final static String NAME_DEMO_2 = "demo II";
+    private final static String SERVER_DEMO_2 = "160.45.63.231";
+
 
     public final static String SERVER_LOCALHOST = "localhost";
     private final static String NAME_LOCALHOST = "localhost";
@@ -75,13 +81,13 @@ public class CdmServerInfo {
     public final static int NULL_PORT = -1;
     public final static String NULL_PORT_STRING = "N/A";
 
-    private static final String CDM_REMOTE_SERVERS_CONFIG_FILE = "cdm_remote_servers.json";
+    protected static final String CDM_REMOTE_SERVERS_CONFIG_FILE = "cdm_remote_servers.json";
 
 
     private final String name;
     private final String server;
     private int port;
-    private final List<CdmInstanceInfo> instances;
+    protected final List<CdmInstanceInfo> instances;
 
     private String cdmlibServicesVersion = "";
     private String cdmlibServicesLastModified = "";
@@ -148,13 +154,21 @@ public class CdmServerInfo {
         String url = guessProtocol() + "://" + server + ":" + String.valueOf(port) + "/" + prefix + "info.jsp";
         String responseBody = getResponse(url);
         if(responseBody != null) {
+            JsonNode tree = null;
+            ObjectMapper mapper = new ObjectMapper();
+            JsonNode resultNode = null;
             try {
-                JSONObject info = new JSONObject(responseBody);
-                cdmlibServicesVersion =  info.getString("cdmlibServicesVersion");
-                cdmlibServicesLastModified = info.getString("cdmlibServicesLastModified");
-            } catch (JSONException e) {
-                throw new CdmServerException(e);
+                tree =  mapper.readTree(responseBody);
+
+            if (tree != null) {
+                cdmlibServicesVersion =  tree.get("cdmlibServicesVersion").textValue();
+                cdmlibServicesLastModified = tree.get("cdmlibServicesLastModified").textValue();
+            }
+            } catch (JsonProcessingException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
             }
+
         }
     }
 
@@ -168,24 +182,34 @@ public class CdmServerInfo {
         String responseBody = getResponse(url);
         if(responseBody != null) {
             try {
-                JSONArray array = new JSONArray(responseBody);
-                for(int i=0;i<array.length();i++) {
-                    JSONObject instance = (JSONObject)array.get(i);
-                    if(instance != null) {
-                        JSONObject conf = (JSONObject)instance.get("configuration");
-                        if(conf != null) {
-                            String instanceName = conf.getString("instanceName");
-                            // we need to remove the first (char) forward slash from
-                            // the base path
-                            String basePath = conf.getString("basePath").substring(1);
-                            addInstance(instanceName, basePath);
-                            logger.info("Added instance with name : " + instanceName + ", basePath : " + basePath);
+                JsonNode tree = null;
+                ObjectMapper mapper = new ObjectMapper();
+                JsonNode resultNode = null;
+
+                tree =  mapper.readTree(responseBody);
+                if (tree != null) {
+                    for(int i=0;i<tree.size();i++) {
+                        JsonNode instance = tree.get(i);
+                        if(instance != null) {
+                            JsonNode conf = instance.get("configuration");
+                            if(conf != null) {
+                                String instanceName = conf.get("instanceName").textValue();
+                                // we need to remove the first (char) forward slash from
+                                // the base path
+                                String basePath = conf.get("basePath").textValue().substring(1);
+                                addInstance(instanceName, basePath);
+                                logger.info("Added instance with name : " + instanceName + ", basePath : " + basePath);
+                            }
                         }
                     }
                 }
-            } catch (JSONException e) {
-                throw new CdmServerException(e);
+            } catch (JsonProcessingException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
             }
+
+
+
         }
     }
 
@@ -380,7 +404,7 @@ public class CdmServerInfo {
         return result;
     }
 
-    public static List<CdmServerInfo> getCdmServers() {
+    public static List<CdmServerInfo> getCdmServers(boolean isLocal) {
         List<CdmServerInfoConfig> configList;
         File file = new File(ConfigFileUtil.perUserCdmFolderFallback(), CDM_REMOTE_SERVERS_CONFIG_FILE);
         if (file.exists()){
@@ -392,13 +416,16 @@ public class CdmServerInfo {
         for(CdmServerInfoConfig config : configList) {
             serverInfoList.add(new CdmServerInfo(config));
         }
-        // The local host managed server must not be in the config file
-        CdmServerInfoConfig localHostManagedConfig = new CdmServerInfoConfig(NAME_LOCALHOST_MGD, SERVER_LOCALHOST, NULL_PORT, CDMSERVER_PREFIX, false);
-        serverInfoList.add(new CdmServerInfo(localHostManagedConfig));
+        // The local host managed server must not be in the config file, this should be moved and only added when plugin is installed
+        if (isLocal){
+            CdmServerInfoConfig localHostManagedConfig = new CdmServerInfoConfig(NAME_LOCALHOST_MGD, SERVER_LOCALHOST, NULL_PORT, CDMSERVER_PREFIX, false);
+            serverInfoList.add(new CdmServerInfo(localHostManagedConfig));
+        }
+
         return serverInfoList;
     }
 
-    private static List<CdmServerInfoConfig>  loadFromConfigFile(File file) {
+    public static List<CdmServerInfoConfig>  loadFromConfigFile(File file) {
 
         List<CdmServerInfoConfig> serverList = null;
 
@@ -425,11 +452,27 @@ public class CdmServerInfo {
         return serverList;
     }
 
+    public static boolean saveToConfigFile(Collection<CdmServerInfoConfig> serverList, File file) {
+
+       ObjectMapper mapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT);;
+       try {
+          mapper.writeValue(file, serverList);
+
+
+       } catch (IOException e) {
+               throw new RuntimeException(e);
+       }
+
+        return true;
+    }
+
+
     private static List<CdmServerInfoConfig> createDefaultServerConfigList() {
 
         List<CdmServerInfoConfig> serverInfoList = new ArrayList<>();
-        serverInfoList.add(new CdmServerInfoConfig(NAME_PRODUCTION, SERVER_PRODUCTION, 80, "", false));
+        serverInfoList.add(new CdmServerInfoConfig(NAME_PRODUCTION, SERVER_PRODUCTION, 443, "", false));
         serverInfoList.add(new CdmServerInfoConfig(NAME_DEMO_1, SERVER_DEMO_1, 80, CDMSERVER_PREFIX, false));
+        serverInfoList.add(new CdmServerInfoConfig(NAME_DEMO_2, SERVER_DEMO_2, 80, CDMSERVER_PREFIX, false));
         serverInfoList.add(new CdmServerInfoConfig(NAME_LOCALHOST, SERVER_LOCALHOST, 8080, CDMSERVER_PREFIX, true));
         return serverInfoList;
     }
@@ -461,7 +504,7 @@ public class CdmServerInfo {
         String value = System.getProperty("cdm.server.dev.port");
         boolean available = false;
         CdmInstanceInfo devInstance = null;
-        if(value != null && !value.isEmpty()) {
+        if(CdmUtils.isNotBlank(value)) {
             int devPort = Integer.valueOf(value);
             CdmServerInfo devCii = new CdmServerInfo(new CdmServerInfoConfig(NAME_LOCALHOST_DEV, SERVER_LOCALHOST_DEV, devPort, "", false));
             try {
index 06abdd824282c7166a857140e2c5b078c1c63867..ef58e0093e326e905eb5e038f9a091e249481d41 100644 (file)
@@ -16,7 +16,7 @@ public class CdmServerInfoConfig {
 
     private String name;
     private String server;
-    private int port;
+    private Integer port;
     private String prefix;
     private boolean ignoreCdmLibVersion;
 
@@ -28,10 +28,16 @@ public class CdmServerInfoConfig {
         this.ignoreCdmLibVersion = ignoreCdmLibVersion;
     }
 
-    public CdmServerInfoConfig() {
-
+    public CdmServerInfoConfig(String name) {
+        this.name = name;
+        this.server = "";
+        this.port = null;
+        this.prefix = "";
+        this.ignoreCdmLibVersion = false;
     }
-
+    public CdmServerInfoConfig() {        
+    }
+    
     public String getName() {
         return name;
     }
@@ -48,11 +54,11 @@ public class CdmServerInfoConfig {
         this.server = server;
     }
 
-    public int getPort() {
+    public Integer getPort() {
         return port;
     }
 
-    public void setPort(int port) {
+    public void setPort(Integer port) {
         this.port = port;
     }
 
index 4c119c3dcdda3120ad06ba0f0f9d699a7cd9ba2a..fb51660cb7e26cbb98a9ca2159ca5749ca937ada 100644 (file)
@@ -13,7 +13,6 @@ import java.util.UUID;
 
 import org.springframework.stereotype.Component;
 
-import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
@@ -47,7 +46,7 @@ public class CachedCommonServiceImpl implements ICachedCommonService {
     private List<String> getPropertyPaths(Object obj) {
         List<String> propertyPaths = null;
         ICdmEntitySession cdmEntitySession =
-                ((CdmApplicationRemoteController)CdmApplicationState.getCurrentAppConfig()).getCdmEntitySessionManager().getActiveSession();
+                CdmApplicationState.getCurrentAppConfig().getCdmEntitySessionManager().getActiveSession();
         if(cdmEntitySession != null) {
             propertyPaths = cdmEntitySession.getPropertyPaths(obj);
         }
@@ -83,5 +82,4 @@ public class CachedCommonServiceImpl implements ICachedCommonService {
     public boolean containsValue(UUID ownerUuid, String fieldName, Object element) {
         return  CdmApplicationState.getCurrentAppConfig().getCommonService().containsValue(ownerUuid, fieldName, element);
     }
-
-}
+}
\ No newline at end of file
index cb0ea35540fdac449e7633e05d490a313a9f4437..0d5928e739a20eb47e019f36c6df71dd4140ce2e 100644 (file)
@@ -19,4 +19,4 @@ public class CdmServiceInterceptorException extends RuntimeException {
        public CdmServiceInterceptorException(Exception ex) {
                super(ex);
        }
-}
+}
\ No newline at end of file
index 14f63ef85f9ed836f4ca7289b5384205a96512d1..7b41248202001e7c8172673137d962a53c7995ca 100644 (file)
@@ -20,5 +20,4 @@ public interface IRemoteInvocationTermCacher {
     public void cacheTerms(RemoteInvocation ri, RemoteInvocationResult rir);
 
     public RemoteInvocationResult termsFromCache(RemoteInvocation ri);
-
-}
+}
\ No newline at end of file
index 7808c477bc3b742b7ae4bc8db72ed5dedf8f3be0..dd0f447c8a061f3d970942c1556eb1b32d2cde12 100644 (file)
@@ -14,40 +14,45 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.springframework.remoting.support.RemoteInvocation;
 import org.springframework.remoting.support.RemoteInvocationResult;
 
-import eu.etaxonomy.cdm.api.cache.CdmServiceCacher;
+import eu.etaxonomy.cdm.api.cache.CdmServiceCachingProxy;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
 
 
+/**
+ * Note by AM (2022-06-15): This caches terms. But it seems that only the method
+ * "listByTermType" from term service is cached.
+ */
 public class RemoteInvocationTermCacher implements IRemoteInvocationTermCacher {
 
-    private static final Logger logger = Logger.getLogger(RemoteInvocationTermCacher.class);
+    private static final Logger logger = LogManager.getLogger();
 
        private static Map<TermType, RemoteInvocationResult> termTypeMap = new HashMap<>();
 
-       private static CdmServiceCacher cdmServiceCacher;
+       private static CdmServiceCachingProxy termCachingProxy;
 
-       public static void setDefaultCacher(CdmServiceCacher csc) {
-        cdmServiceCacher = csc;
+       public static void setDefaultCacher(CdmServiceCachingProxy termCache) {
+        termCachingProxy = termCache;
     }
 
        @Override
-       public void cacheTerms(RemoteInvocation ri, RemoteInvocationResult rir) {
-           if(cdmServiceCacher != null) {
-               if(ri.getMethodName().equals("listByTermType")) {
-                   if(ri.getArguments()[1] == null) {
+       public void cacheTerms(RemoteInvocation remoteInvoc, RemoteInvocationResult remoteInvocResul) {
+           if(termCachingProxy != null) {
+               if(remoteInvoc.getMethodName().equals("listByTermType")) {
+                   if(remoteInvoc.getArguments()[1] == null) {
                        Set<DefinedTermBase<?>> terms = new HashSet<>();
-                       if(rir.getValue() != null) {
-                           terms.addAll((List<DefinedTermBase<?>>)rir.getValue());
+                       if(remoteInvocResul.getValue() != null) {
+                           terms.addAll((List<DefinedTermBase<?>>)remoteInvocResul.getValue());
 
                            for(DefinedTermBase<?> term : terms) {
-                               cdmServiceCacher.load(term);
+                               termCachingProxy.load(term);
                            }
-                           termTypeMap.put((TermType)ri.getArguments()[0], rir);
+                           termTypeMap.put((TermType)remoteInvoc.getArguments()[0], remoteInvocResul);
                        }
                    }
                }
@@ -57,7 +62,7 @@ public class RemoteInvocationTermCacher implements IRemoteInvocationTermCacher {
        }
 
        @Override
-       public  RemoteInvocationResult termsFromCache(RemoteInvocation ri) {
-               return termTypeMap.get(ri.getArguments()[0]);
+       public  RemoteInvocationResult termsFromCache(RemoteInvocation remoteInvocation) {
+               return termTypeMap.get(remoteInvocation.getArguments()[0]);
        }
-}
+}
\ No newline at end of file
index a6b3105618602096be1358d351b7e670aab2b3c1..bfd2169d8a53d812b4878abdeb1f1daededa024d 100644 (file)
@@ -31,7 +31,8 @@ import org.springframework.remoting.httpinvoker.HttpInvokerClientConfiguration;
 import eu.etaxonomy.taxeditor.remoting.RemoteExecutionTimestampsUtil;
 
 /**
- * HttpInvokerRequestExecutor which extends the {@link HttpComponentsHttpInvokerRequestExecutor} by two functionalities:
+ * HttpInvokerRequestExecutor which extends the spring
+ * {@link HttpComponentsHttpInvokerRequestExecutor} by two functionalities:
  *
  * <ol>
  * <li>Records time stamps when sending the request and when receiving the response.</li>
@@ -65,11 +66,11 @@ public class TimestampingHttpInvokerRequestExecutor extends HttpComponentsHttpIn
 
         setExecutionRequestClientTimestamp(httpPost.getURI());
 
-        HttpResponse respone = super.executeHttpPost(config, httpClient, httpPost);
+        HttpResponse response = super.executeHttpPost(config, httpClient, httpPost);
 
-        setExecutionResponseHttpHeaderTimestamp(respone);
+        setExecutionResponseHttpHeaderTimestamp(response);
 
-        return respone;
+        return response;
     }
 
     private void setExecutionRequestClientTimestamp(URI requestURI){
@@ -78,9 +79,8 @@ public class TimestampingHttpInvokerRequestExecutor extends HttpComponentsHttpIn
         String dateTimeStr = date.format(DateTimeFormatter.ISO_DATE_TIME);
         RemoteExecutionTimestampsUtil.setLastRequestClientTime(dateTimeStr);
         if(requestURI != null){
-            RemoteExecutionTimestampsUtil.setLastServiceMethod(requestURI.toString());
+            RemoteExecutionTimestampsUtil.setLastService(requestURI.toString());
         }
-
     }
 
     private void setExecutionResponseHttpHeaderTimestamp(HttpResponse respone){
@@ -106,4 +106,4 @@ public class TimestampingHttpInvokerRequestExecutor extends HttpComponentsHttpIn
                 .setConnectionReuseStrategy(new NoConnectionReuseStrategy()) // see #8812
                 .build();
     }
-}
+}
\ No newline at end of file
index 275c7b32d3f95c5f65734c992622de2283f7efac..b56dfb1072c2411d5f4a1529d45dc77d369e62e7 100644 (file)
@@ -1,3 +1,11 @@
+/**
+* Copyright (C) 2020 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.session;
 
 public class CdmClientSessionException extends RuntimeException {
index 76879b2b0d9f33b4a802fe5193bd00cec82b9c36..5fd23d5a653ade11b2316ed3b973efb9aee6a8ac 100644 (file)
@@ -15,7 +15,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 import eu.etaxonomy.cdm.api.service.IService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
@@ -26,7 +27,7 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.persistence.dao.initializer.IBeanInitializer;
 import eu.etaxonomy.cdm.persistence.dto.MergeResult;
 import eu.etaxonomy.taxeditor.remoting.cache.ConversationalTransientEntityCacher;
-import net.sf.ehcache.statistics.LiveCacheStatistics;
+import net.sf.ehcache.statistics.FlatStatistics;
 
 /**
  * NOTE : It would be nice to have this class performing merge / delete operations
@@ -38,23 +39,23 @@ import net.sf.ehcache.statistics.LiveCacheStatistics;
  */
 public class CdmEntitySession implements ICdmEntitySession  {
 
-    private static final Logger logger = Logger.getLogger(CdmEntitySession.class);
+    private static final Logger logger = LogManager.getLogger();
 
     private final CdmEntitySessionManager cdmEntitySessionManager;
 
-    private final ICdmEntitySessionEnabled sessionOwner;
+    private final ICdmEntitySessionEnabled<?> sessionOwner;
 
     private ConversationalTransientEntityCacher cdmTransientEntityCacher;
 
-    private List<ICdmEntitySessionEnabled> changeObservers;
+    private List<ICdmEntitySessionEnabled<?>> changeObservers;
 
-    public CdmEntitySession(ICdmEntitySessionEnabled sessionOwner, CdmEntitySessionManager cdmEntitySessionManager) {
+    public CdmEntitySession(ICdmEntitySessionEnabled<?> sessionOwner, CdmEntitySessionManager cdmEntitySessionManager) {
         this.sessionOwner = sessionOwner;
         this.cdmEntitySessionManager = cdmEntitySessionManager;
         init(sessionOwner, cdmEntitySessionManager);
     }
 
-    private void init(ICdmEntitySessionEnabled sessionOwner, CdmEntitySessionManager cdmEntitySessionManager) {
+    private void init(ICdmEntitySessionEnabled<?> sessionOwner, CdmEntitySessionManager cdmEntitySessionManager) {
         this.cdmTransientEntityCacher = new ConversationalTransientEntityCacher(sessionOwner);
         this.changeObservers = new ArrayList<>();
         cdmEntitySessionManager.addToOwnerSessionMap(sessionOwner, this);
@@ -230,13 +231,13 @@ public class CdmEntitySession implements ICdmEntitySession  {
     }
 
     @Override
-    public LiveCacheStatistics getCacheStatistics() {
+    public FlatStatistics getCacheStatistics() {
         return cdmTransientEntityCacher.getCacheStatistics();
     }
 
     @Override
     public <T extends CdmBase> Collection<T> getRootEntities() {
-        return sessionOwner.getRootEntities();
+        return getOwner().getRootEntities();
     }
 
     public CdmTransientEntityCacher getCacher() {
@@ -259,4 +260,4 @@ public class CdmEntitySession implements ICdmEntitySession  {
     public void addNewCdmEntity(CdmBase newEntity) {
         cdmTransientEntityCacher.load(newEntity);
     }
-}
+}
\ No newline at end of file
index 1cd86f27f942294dd00a2bf7cdf52cbf4b7895c8..89df1fe56e3cf116d8273541c074cfd539ee306d 100644 (file)
@@ -16,7 +16,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.springframework.stereotype.Component;
 
 import eu.etaxonomy.cdm.api.service.UpdateResult;
@@ -33,14 +34,12 @@ import eu.etaxonomy.cdm.persistence.dto.MergeResult;
 @Component
 public class CdmEntitySessionManager implements ICdmEntitySessionManager {
 
-    private static final Logger logger = Logger.getLogger(CdmEntitySessionManager.class);
+    private static final Logger logger = LogManager.getLogger();
 
-    private final Map<ICdmEntitySessionEnabled, ICdmEntitySession> ownerSessionMap = new HashMap<>();
+    private final Map<ICdmEntitySessionEnabled<?>, ICdmEntitySession> ownerSessionMap = new HashMap<>();
 
     private final List<ICdmEntitySessionManagerObserver> sessionObservers = new ArrayList<>();
 
-    //private ICdmEntitySession activeSession;
-
     private final InheritableThreadLocal<ICdmEntitySession> tlActiveSession = new InheritableThreadLocal<>();
 
     private NullSession nullSession;
@@ -51,7 +50,7 @@ public class CdmEntitySessionManager implements ICdmEntitySessionManager {
     }
 
     @Override
-    public ICdmEntitySession newSession(ICdmEntitySessionEnabled sessionOwner, boolean setAsActive) {
+    public ICdmEntitySession newSession(ICdmEntitySessionEnabled<?> sessionOwner, boolean setAsActive) {
         ICdmEntitySession session = ownerSessionMap.get(sessionOwner);
         if(session == null) {
             session = new CdmEntitySession(sessionOwner, this);
@@ -83,7 +82,7 @@ public class CdmEntitySessionManager implements ICdmEntitySessionManager {
     }
 
     private void setActiveSession(ICdmEntitySession activeSession) {
-       this. tlActiveSession.set(activeSession);
+        this.tlActiveSession.set(activeSession);
         notifyObservers();
     }
 
@@ -93,12 +92,12 @@ public class CdmEntitySessionManager implements ICdmEntitySessionManager {
     }
 
     @Override
-    public void bind(ICdmEntitySessionEnabled sessionOwner) {
+    public void bind(ICdmEntitySessionEnabled<?> sessionOwner) {
         if(sessionOwner == null) {
             setActiveSession(null);
             return;
         }
-        ICdmEntitySession session  = ownerSessionMap.get(sessionOwner);
+        ICdmEntitySession session = ownerSessionMap.get(sessionOwner);
         if(session == null) {
             throw new CdmClientSessionException("Trying to bind session which does not exist");
         }
@@ -107,16 +106,17 @@ public class CdmEntitySessionManager implements ICdmEntitySessionManager {
     }
 
     @Override
-    public boolean contains(ICdmEntitySessionEnabled sessionOwner) {
+    public boolean contains(ICdmEntitySessionEnabled<?> sessionOwner) {
         return ownerSessionMap.containsKey(sessionOwner);
     }
 
     @Override
     public <T extends Object> T load(T obj, boolean update) {
-        if(tlActiveSession.get() == null) {
+        ICdmEntitySession session = tlActiveSession.get();
+        if(session == null) {
             return obj;
         } else {
-            return tlActiveSession.get().load(obj, update);
+            return session.load(obj, update);
         }
     }
 
@@ -159,7 +159,7 @@ public class CdmEntitySessionManager implements ICdmEntitySessionManager {
         return tlActiveSession.get().load(cdmBaseList, update);
     }
 
-    void remove(ICdmEntitySessionEnabled owner) {
+    void remove(ICdmEntitySessionEnabled<?> owner) {
         ICdmEntitySession session = ownerSessionMap.get(owner);
         if(session == null) {
             logger.info("No Session connected to owner, nothing to do");
@@ -174,7 +174,7 @@ public class CdmEntitySessionManager implements ICdmEntitySessionManager {
     }
 
     @Override
-    public void dispose(ICdmEntitySessionEnabled owner) {
+    public void dispose(ICdmEntitySessionEnabled<?> owner) {
         ICdmEntitySession session = ownerSessionMap.get(owner);
         if(session != null) {
             session.dispose();
@@ -186,9 +186,9 @@ public class CdmEntitySessionManager implements ICdmEntitySessionManager {
 
     @Override
     public void disposeAll() {
-        Set<ICdmEntitySessionEnabled> owners =
-                new HashSet<ICdmEntitySessionEnabled>(ownerSessionMap.keySet());
-        for(ICdmEntitySessionEnabled owner : owners) {
+        Set<ICdmEntitySessionEnabled<?>> owners =
+                new HashSet<>(ownerSessionMap.keySet());
+        for(ICdmEntitySessionEnabled<?> owner : owners) {
             ICdmEntitySession session = ownerSessionMap.get(owner);
             if(session != null) {
                 session.dispose();
@@ -196,7 +196,7 @@ public class CdmEntitySessionManager implements ICdmEntitySessionManager {
         }
     }
 
-    public void addToOwnerSessionMap(ICdmEntitySessionEnabled owner, ICdmEntitySession session) {
+    public void addToOwnerSessionMap(ICdmEntitySessionEnabled<?> owner, ICdmEntitySession session) {
         ownerSessionMap.put(owner, session);
         notifyObservers();
     }
@@ -211,12 +211,4 @@ public class CdmEntitySessionManager implements ICdmEntitySessionManager {
             sessionObserver.changed();
         }
     }
-
-    @Override
-    public boolean isRemoting() {
-        // FIXME:Remoting stupid method to check whether we are in remoting
-        return true;
-    }
-
-}
-
+}
\ No newline at end of file
index 4b7709632ea3b592a57ee765fb49887dcd826e74..8dcbfee5cf8ed5ee13d4c516cd16689d64c2b6b5 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.session;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
@@ -21,7 +21,7 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
  */
 public class DefaultNewEntityListener implements NewEntityListener {
 
-    private static final Logger logger = Logger.getLogger(DefaultNewEntityListener.class);
+    private static final Logger logger = LogManager.getLogger(DefaultNewEntityListener.class);
 
     @Override
     public void onCreate(CdmBase cdmBase) {
index fdb5166f1e587d07bb39137b5aff9810a276b14a..e49b0e8273c0afbf31d5dcdb6e69fc5840e9a7f9 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.session;
 
 import java.util.Collection;
@@ -9,13 +17,13 @@ import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.cache.EntityCacherDebugResult;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.persistence.dto.MergeResult;
-import net.sf.ehcache.statistics.LiveCacheStatistics;
+import net.sf.ehcache.statistics.FlatStatistics;
 
 public interface ICdmEntitySession {
 
-    public ICdmEntitySessionEnabled getOwner();
+    public ICdmEntitySessionEnabled<?> getOwner();
 
-    public LiveCacheStatistics getCacheStatistics();
+    public FlatStatistics getCacheStatistics();
 
        public  <O extends Object> O load(O obj, boolean update);
 
@@ -88,4 +96,4 @@ public interface ICdmEntitySession {
 
     public void addNewCdmEntity(CdmBase newEntity);
 
-}
+}
\ No newline at end of file
index be2e46c7c867f14f8a89b5851200c849ee6ab366..b817ac00fbbc8a08cc2db135534d4f7c3e395a3e 100644 (file)
@@ -1,17 +1,24 @@
+/**
+* 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.session;
 
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
-import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.ICdmBase;
 
-public interface ICdmEntitySessionEnabled {
+public interface ICdmEntitySessionEnabled<T extends ICdmBase> {
 
     public ICdmEntitySession getCdmEntitySession();
 
-    public <T extends CdmBase> Collection<T> getRootEntities();
+    public Collection<T> getRootEntities();
 
     public Map<Object, List<String>> getPropertyPathsMap();
-
-}
+}
\ No newline at end of file
index 79511f7fb0c3d53956e3ec274a3afb736aec1bf6..6676393a8bac0db2042a0b6988cc95a2074b4c4d 100644 (file)
@@ -35,7 +35,7 @@ public interface ICdmEntitySessionManager {
      * @param setAsActive if
      * @return the new session
      */
-    public abstract ICdmEntitySession newSession(ICdmEntitySessionEnabled sessionOwner, boolean setAsActive);
+    public abstract ICdmEntitySession newSession(ICdmEntitySessionEnabled<?> sessionOwner, boolean setAsActive);
 
     /**
      * Makes the {@link NullSession} the active session.
@@ -48,7 +48,7 @@ public interface ICdmEntitySessionManager {
         *
         * @param sessionOwner
         */
-       public abstract void bind(ICdmEntitySessionEnabled sessionOwner);
+       public abstract void bind(ICdmEntitySessionEnabled<?> sessionOwner);
 
        /**
         * Loads an object intto the active session and returns the cached object
@@ -111,9 +111,7 @@ public interface ICdmEntitySessionManager {
 
     public void addSessionObserver(ICdmEntitySessionManagerObserver sessionObserver);
 
-    public boolean isRemoting();
-
-    public void dispose(ICdmEntitySessionEnabled owner);
+    public void dispose(ICdmEntitySessionEnabled<?> owner);
 
     public void disposeAll();
 
@@ -124,12 +122,11 @@ public interface ICdmEntitySessionManager {
      * @param sessionOwner the session owner
      * @return <code>true</code> if a session exists
      */
-    public boolean contains(ICdmEntitySessionEnabled sessionOwner);
+    public boolean contains(ICdmEntitySessionEnabled<?> sessionOwner);
 
     /**
      * Returns the {@link NullSession} singleton instance (within this session manager)
      * @return the null session
      */
     public ICdmEntitySession getNullSession();
-
-}
+}
\ No newline at end of file
index d68b441115f19f513113c03b4cc05c56845e233c..94faf2b9ad11261fcb67d39312f4fd2c53f7d76c 100644 (file)
@@ -15,5 +15,4 @@ package eu.etaxonomy.taxeditor.session;
 public interface ICdmEntitySessionManagerObserver {
 
     public void changed();
-
-}
+}
\ No newline at end of file
index 5f24b119a6ffe7ef0cbb6e999abb8676ee3b31f3..520551cb772f2c0c17fbd56cc178f87c6d6276d8 100644 (file)
@@ -18,7 +18,7 @@ import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.cache.EntityCacherDebugResult;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.persistence.dto.MergeResult;
-import net.sf.ehcache.statistics.LiveCacheStatistics;
+import net.sf.ehcache.statistics.FlatStatistics;
 
 /**
  * @author cmathew
@@ -44,7 +44,7 @@ public class NullSession implements ICdmEntitySession {
     }
 
     @Override
-    public LiveCacheStatistics getCacheStatistics() {
+    public FlatStatistics getCacheStatistics() {
         return null;
     }
 
@@ -160,4 +160,5 @@ public class NullSession implements ICdmEntitySession {
         return mergeResult;
     }
 
+
 }
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/mock/MockCdmEntitySession.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/mock/MockCdmEntitySession.java
deleted file mode 100644 (file)
index 64c1bd5..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/**
-* 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.session.mock;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.UUID;
-
-import eu.etaxonomy.cdm.api.service.IService;
-import eu.etaxonomy.cdm.api.service.UpdateResult;
-import eu.etaxonomy.cdm.cache.EntityCacherDebugResult;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.persistence.dto.MergeResult;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
-import net.sf.ehcache.statistics.LiveCacheStatistics;
-
-/**
- * @author cmathew
- * @date 29 Jan 2015
- */
-public class MockCdmEntitySession implements ICdmEntitySession  {
-
-    @Override
-    public <O extends Object> O load(O obj, boolean update) {
-        return obj;
-    }
-
-    @Override
-    public  <T extends CdmBase> T load(T cdmBase, boolean update) {
-        return cdmBase;
-    }
-
-    @Override
-    public  <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update) {
-        return cdmBaseList;
-    }
-
-    @Override
-    public void setEntitiesAsLatest() {
-    }
-
-    @Override
-    public void dispose() {
-    }
-
-    @Override
-    public void bind() {
-    }
-
-    @Override
-    public  <T extends CdmBase> EntityCacherDebugResult debug(T cdmBase) {
-        return new EntityCacherDebugResult();
-    }
-
-
-    @Override
-    public <T extends CdmBase> T remoteLoad(IService<T> service, UUID uuid) {
-        return service.load(uuid);
-    }
-
-    @Override
-    public <T extends CdmBase> T remoteLoad(IService<T> service, UUID uuid, List<String> propertyPaths) {
-        return service.load(uuid, propertyPaths);
-    }
-
-    @Override
-    public <T extends CdmBase> UUID remoteSave(IService<T> service, T cdmBase) {
-        return service.save(cdmBase).getUuid();
-    }
-
-    @Override
-    public <T extends CdmBase> T remoteUpdate(IService<T> service, T cdmBase) {
-        return cdmBase;
-    }
-
-    @Override
-    public ICdmEntitySessionEnabled getOwner() {
-        return null;
-    }
-
-    @Override
-    public LiveCacheStatistics getCacheStatistics() {
-        return null;
-    }
-
-    @Override
-    public boolean isActive() {
-        return false;
-    }
-
-    @Override
-    public <T extends CdmBase> List<T> getRootEntities() {
-        return null;
-    }
-
-    @Override
-    public <T extends CdmBase> EntityCacherDebugResult debug(Collection<T> cdmBase, boolean includeIgnored) {
-        return null;
-    }
-
-    @Override
-    public <T extends CdmBase> EntityCacherDebugResult debug(boolean includeIgnored) {
-        return null;
-    }
-
-    @Override
-    public <T extends CdmBase> void update() {
-    }
-
-    @Override
-    public UpdateResult load(UpdateResult updateResult, boolean update) {
-        return updateResult;
-    }
-
-    @Override
-    public List<String> getPropertyPaths(Object obj) {
-        return null;
-    }
-
-    @Override
-    public void addNewCdmEntity(CdmBase newEntity) {
-    }
-
-    @Override
-    public <T extends CdmBase> MergeResult<T> load(MergeResult<T> mergeResult, boolean update) {
-        return mergeResult;
-    }
-}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/mock/MockCdmEntitySessionManager.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/mock/MockCdmEntitySessionManager.java
deleted file mode 100644 (file)
index 7585c9d..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/**
-* 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.session.mock;
-
-import java.util.Collection;
-
-import eu.etaxonomy.cdm.api.service.UpdateResult;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.ICdmBase;
-import eu.etaxonomy.cdm.persistence.dto.MergeResult;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManagerObserver;
-
-public class MockCdmEntitySessionManager implements ICdmEntitySessionManager {
-
-       @Override
-       public void bind(ICdmEntitySessionEnabled sessionOwner) {
-       }
-
-       @Override
-       public <T> T load(T obj, boolean update) {
-               return obj;
-       }
-
-       @Override
-       public <T extends CdmBase> T load(T obj, boolean update) {
-               return obj;
-       }
-
-       @Override
-       public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update) {
-               return cdmBaseList;
-       }
-
-    @Override
-    public ICdmEntitySession newSession(ICdmEntitySessionEnabled sessionOwner, boolean setAsActive) {
-        return new MockCdmEntitySession();
-    }
-
-    @Override
-    public ICdmEntitySession getActiveSession() {
-        return new MockCdmEntitySession();
-    }
-
-    @Override
-    public Collection<ICdmEntitySession> getSessions() {
-        return null;
-    }
-
-    @Override
-    public void addSessionObserver(ICdmEntitySessionManagerObserver sessionObserver) {
-
-    }
-
-    @Override
-    public boolean isRemoting() {
-        return false;
-    }
-
-    @Override
-    public void dispose(ICdmEntitySessionEnabled owner) {
-    }
-
-    @Override
-    public void disposeAll() {
-    }
-
-    @Override
-    public <T extends CdmBase> void update() {
-    }
-
-    @Override
-    public UpdateResult load(UpdateResult updateResult, boolean update) {
-        return updateResult;
-    }
-
-    @Override
-    public boolean contains(ICdmEntitySessionEnabled sessionOwner) {
-        return false;
-    }
-
-    @Override
-    public ICdmEntitySession bindNullSession() {
-        return new MockCdmEntitySession();
-    }
-
-    @Override
-    public ICdmEntitySession getNullSession() {
-        return new MockCdmEntitySession();
-    }
-
-    @Override
-    public <T extends ICdmBase> MergeResult<T> load(MergeResult<T> mergeResult, boolean update) {
-        return mergeResult;
-    }
-}
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/net/sf/ehcache/util/PreferredLoaderObjectInputStream.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/net/sf/ehcache/util/PreferredLoaderObjectInputStream.java
new file mode 100644 (file)
index 0000000..4263627
--- /dev/null
@@ -0,0 +1,87 @@
+/**
+ *  Copyright Terracotta, Inc.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package net.sf.ehcache.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectStreamClass;
+import java.util.HashMap;
+
+/**
+ * Note by AM (2022-06-15): this is an exact copy of the same class in ehcache (v2.x)
+ *     but with correct handling for primitive types.
+ *     This class should be removed when upgrading to ehcache 3.x as it seems not to exist in
+ *     this version anymore.
+ *
+ *     For further information see #10075 and #10077
+ *
+ * =========================================
+ * Original javadoc:
+ *
+ * ObjectInputStream that uses a supplied classloader when resolving classes
+ *
+ * @author teck
+ */
+public class PreferredLoaderObjectInputStream extends ObjectInputStream {
+
+    private final ClassLoader loader;
+
+    /**
+     * Constructor
+     *
+     * @param in
+     * @throws IOException
+     */
+    public PreferredLoaderObjectInputStream(InputStream in, ClassLoader loader) throws IOException {
+        super(in);
+        this.loader = loader;
+    }
+
+// ************** REPLACED METHOD ********************************/
+
+    @Override
+    protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
+
+        try {
+            return Class.forName(desc.getName(), false, loader);
+        } catch (ClassNotFoundException ex) {
+            Class<?> cl = primClasses.get(desc.getName());
+            if (cl != null) {
+                return cl;
+            } else {
+                throw ex;
+            }
+        }
+    }
+    //copied from
+    /** table mapping primitive type names to corresponding class objects */
+    private static final HashMap<String, Class<?>> primClasses
+        = new HashMap<>(8, 1.0F);
+    static {
+        primClasses.put("boolean", boolean.class);
+        primClasses.put("byte", byte.class);
+        primClasses.put("char", char.class);
+        primClasses.put("short", short.class);
+        primClasses.put("int", int.class);
+        primClasses.put("long", long.class);
+        primClasses.put("float", float.class);
+        primClasses.put("double", double.class);
+        primClasses.put("void", void.class);
+    }
+
+}
index a6b66ad4727b60455cf51bc38b9d1e503be8f64f..5f3da4324222f86c8fd9368dd21ba73ffad51c6d 100644 (file)
@@ -1,27 +1,8 @@
-
-
 /*
  * Hibernate, Relational Persistence for Idiomatic Java
  *
- * Copyright (c) 2008-2011, Red Hat Inc. or third-party contributors as
- * indicated by the @author tags or express copyright attribution
- * statements applied by the authors.  All third-party contributions are
- * distributed under license by Red Hat Inc.
- *
- * This copyrighted material is made available to anyone wishing to use, modify,
- * copy, or redistribute it subject to the terms and conditions of the GNU
- * Lesser General Public License, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this distribution; if not, write to:
- * Free Software Foundation, Inc.
- * 51 Franklin Street, Fifth Floor
- * Boston, MA  02110-1301  USA
+ * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
+ * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
  */
 package org.hibernate.collection.internal;
 
@@ -34,10 +15,10 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
-
-import javax.naming.NamingException;
+import java.util.Map;
 
 import org.hibernate.AssertionFailure;
+import org.hibernate.FlushMode;
 import org.hibernate.HibernateException;
 import org.hibernate.LazyInitializationException;
 import org.hibernate.Session;
@@ -45,19 +26,29 @@ import org.hibernate.collection.spi.PersistentCollection;
 import org.hibernate.engine.internal.ForeignKeys;
 import org.hibernate.engine.spi.CollectionEntry;
 import org.hibernate.engine.spi.EntityEntry;
+import org.hibernate.engine.spi.PersistenceContext;
 import org.hibernate.engine.spi.SessionFactoryImplementor;
 import org.hibernate.engine.spi.SessionImplementor;
+import org.hibernate.engine.spi.SharedSessionContractImplementor;
 import org.hibernate.engine.spi.Status;
 import org.hibernate.engine.spi.TypedValue;
+import org.hibernate.internal.CoreLogging;
+import org.hibernate.internal.CoreMessageLogger;
 import org.hibernate.internal.SessionFactoryRegistry;
 import org.hibernate.internal.util.MarkerObject;
-import org.hibernate.internal.util.collections.EmptyIterator;
 import org.hibernate.internal.util.collections.IdentitySet;
 import org.hibernate.persister.collection.CollectionPersister;
 import org.hibernate.persister.entity.EntityPersister;
 import org.hibernate.pretty.MessageHelper;
+import org.hibernate.resource.transaction.spi.TransactionStatus;
+import org.hibernate.type.CompositeType;
+import org.hibernate.type.IntegerType;
+import org.hibernate.type.LongType;
+import org.hibernate.type.PostgresUUIDType;
+import org.hibernate.type.StringType;
 import org.hibernate.type.Type;
-import org.jboss.logging.Logger;
+import org.hibernate.type.UUIDBinaryType;
+import org.hibernate.type.UUIDCharType;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration;
 import eu.etaxonomy.cdm.cache.ProxyUtils;
@@ -68,16 +59,19 @@ import eu.etaxonomy.taxeditor.service.ICachedCommonService;
 /**
  * Base class implementing {@link org.hibernate.collection.spi.PersistentCollection}
  *
- * This a extended copy of the original class from hibernate. It has been extended to
+ * This is an extended copy of the original class from hibernate. It has been extended to
  * allow making remote service calls to spring httpinvoker services (see section at the bottom
  * of this class).
  *
+ * NOTE: For updating this class to the latest hibernate version, update the serialVersionUID as
+ *       described above, copy the new class to the old class BUT keep those 5 places marked with
+ *       ##REMOTING-KEEP##
  *
  * @author Gavin King
  * @author Cherian Mathew
  */
 public abstract class AbstractPersistentCollection implements Serializable, PersistentCollection {
-       private static final Logger log = Logger.getLogger( AbstractPersistentCollection.class );
+       private static final CoreMessageLogger LOG = CoreLogging.messageLogger( AbstractPersistentCollection.class );
 
        /**
         * <b>IMPORTANT:</b><br>
@@ -97,9 +91,10 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
         * The correct <code>serialVersionUID</code> is the <code>stream classdesc serialVersionUID</code>
         * from the error message.
         */
-       private static final long serialVersionUID = 2742261122392386159L;
+       private static final long serialVersionUID = 6275967693128102740L;
 
-       private transient SessionImplementor session;
+       private transient SharedSessionContractImplementor session;
+       private boolean isTempSession = false;
        private boolean initialized;
        private transient List<DelayedOperation> operationQueue;
        private transient boolean directlyAccessible;
@@ -112,53 +107,76 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
        // collections detect changes made via their public interface and mark
        // themselves as dirty as a performance optimization
        private boolean dirty;
+       protected boolean elementRemoved;
        private Serializable storedSnapshot;
 
        private String sessionFactoryUuid;
-       private boolean specjLazyLoad = false;
+       private boolean allowLoadOutsideTransaction;
+
+       /**
+        * Not called by Hibernate, but used by non-JDK serialization,
+        * eg. SOAP libraries.
+        */
+       public AbstractPersistentCollection() {
+       }
+
+       protected AbstractPersistentCollection(SharedSessionContractImplementor session) {
+               this.session = session;
+       }
+
+       /**
+        * @deprecated {@link #AbstractPersistentCollection(SharedSessionContractImplementor)} should be used instead.
+        */
+       @Deprecated
+       protected AbstractPersistentCollection(SessionImplementor session) {
+               this( (SharedSessionContractImplementor) session );
+       }
 
        @Override
-    public final String getRole() {
+       public final String getRole() {
                return role;
        }
 
        @Override
-    public final Serializable getKey() {
+       public final Serializable getKey() {
                return key;
        }
 
        @Override
-    public final boolean isUnreferenced() {
+       public final boolean isUnreferenced() {
                return role == null;
        }
 
        @Override
-    public final boolean isDirty() {
+       public final boolean isDirty() {
                return dirty;
        }
 
        @Override
-    public final void clearDirty() {
+       public boolean isElementRemoved() {
+               return elementRemoved;
+       }
+
+       @Override
+       public final void clearDirty() {
                dirty = false;
+               elementRemoved = false;
        }
 
        @Override
-    public final void dirty() {
+       public final void dirty() {
                dirty = true;
        }
 
        @Override
-    public final Serializable getStoredSnapshot() {
+       public final Serializable getStoredSnapshot() {
                return storedSnapshot;
        }
 
        //Careful: these methods do not initialize the collection.
 
-       /**
-        * Is the initialized collection empty?
-        */
        @Override
-    public abstract boolean empty();
+       public abstract boolean empty();
 
        /**
         * Called by any read-only method of the collection interface
@@ -177,104 +195,112 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                                return true;
                        }
                        else {
+                               //##REMOTING-KEEP##
                                // In remoting we are sure that session is null
                                // both when using property paths and switching off conversations
                                if(session == null && remoting) {
-                                       log.info("--> readSize, of " + getRole() + " with key " + getKey());
+                                       LOG.info("--> readSize, of " + getRole() + " with key " + getKey());
                                        read();
                                } else {
-                                       boolean isExtraLazy = withTemporarySessionIfNeeded(
-                                                       new LazyInitializationWork<Boolean>() {
-                                                               @Override
-                                                               public Boolean doWork() {
-                                                                       CollectionEntry entry = session.getPersistenceContext().getCollectionEntry( AbstractPersistentCollection.this );
-
-                                                                       if ( entry != null ) {
-                                                                               CollectionPersister persister = entry.getLoadedPersister();
-                                                                               if ( persister.isExtraLazy() ) {
-                                                                                       if ( hasQueuedOperations() ) {
-                                                                                               session.flush();
-                                                                                       }
-                                                                                       cachedSize = persister.getSize( entry.getLoadedKey(), session );
-                                                                                       return true;
-                                                                               }
-                                                                               else {
-                                                                                       read();
+                           //keep formatting below to ease update to newer hibernate version
+                               //##REMOTING-KEEP END##
+                               final boolean isExtraLazy = withTemporarySessionIfNeeded(
+                                               new LazyInitializationWork<Boolean>() {
+                                                       @Override
+                                                       public Boolean doWork() {
+                                                               final CollectionEntry entry = session.getPersistenceContextInternal().getCollectionEntry( AbstractPersistentCollection.this );
+
+                                                               if ( entry != null ) {
+                                                                       final CollectionPersister persister = entry.getLoadedPersister();
+                                                                       if ( persister.isExtraLazy() ) {
+                                                                               if ( hasQueuedOperations() ) {
+                                                                                       session.flush();
                                                                                }
+                                                                               cachedSize = persister.getSize( entry.getLoadedKey(), session );
+                                                                               return true;
                                                                        }
-                                                                       else{
-                                                                               throwLazyInitializationExceptionIfNotConnected();
+                                                                       else {
+                                                                               read();
                                                                        }
-                                                                       return false;
                                                                }
+                                                               else{
+                                                                       throwLazyInitializationExceptionIfNotConnected();
+                                                               }
+                                                               return false;
                                                        }
-                                                       );
-                                       if ( isExtraLazy ) {
-                                               return true;
-                                       }
+                                               }
+                               );
+                               if ( isExtraLazy ) {
+                                       return true;
+                               }
                                }
                        }
                }
                return false;
        }
 
+       /**
+        * TBH not sure why this is public
+        *
+        * @param <T> The java type of the return for this LazyInitializationWork
+        */
        public static interface LazyInitializationWork<T> {
+               /**
+                * Do the represented work and return the result.
+                *
+                * @return The result
+                */
                public T doWork();
        }
 
        private <T> T withTemporarySessionIfNeeded(LazyInitializationWork<T> lazyInitializationWork) {
-               SessionImplementor originalSession = null;
-               boolean isTempSession = false;
-               boolean isJTA = false;
+               SharedSessionContractImplementor tempSession = null;
 
                if ( session == null ) {
-                       if ( specjLazyLoad ) {
-                               session = openTemporarySessionForLoading();
-                               isTempSession = true;
+                       if ( allowLoadOutsideTransaction ) {
+                               tempSession = openTemporarySessionForLoading();
                        }
                        else {
                                throwLazyInitializationException( "could not initialize proxy - no Session" );
                        }
                }
-               else if ( !session.isOpen() ) {
-                       if ( specjLazyLoad ) {
-                               originalSession = session;
-                               session = openTemporarySessionForLoading();
-                               isTempSession = true;
+               else if ( !session.isOpenOrWaitingForAutoClose() ) {
+                       if ( allowLoadOutsideTransaction ) {
+                               tempSession = openTemporarySessionForLoading();
                        }
                        else {
                                throwLazyInitializationException( "could not initialize proxy - the owning Session was closed" );
                        }
                }
                else if ( !session.isConnected() ) {
-                       if ( specjLazyLoad ) {
-                               originalSession = session;
-                               session = openTemporarySessionForLoading();
-                               isTempSession = true;
+                       if ( allowLoadOutsideTransaction ) {
+                               tempSession = openTemporarySessionForLoading();
                        }
                        else {
                                throwLazyInitializationException( "could not initialize proxy - the owning Session is disconnected" );
                        }
                }
 
-               if ( isTempSession ) {
-                       // TODO: On the next major release, add an
-                       // 'isJTA' or 'getTransactionFactory' method to Session.
-                       /*isJTA = session.getTransactionCoordinator()
-                                       .getTransactionContext().getTransactionEnvironment()
-                                       .getTransactionFactory()
-                                       .compatibleWithJtaSynchronization();*/
+               SharedSessionContractImplementor originalSession = null;
+               boolean isJTA = false;
+
+               if ( tempSession != null ) {
+                       isTempSession = true;
+                       originalSession = session;
+                       session = tempSession;
+
                        isJTA = session.getTransactionCoordinator().getTransactionCoordinatorBuilder().isJta();
+
                        if ( !isJTA ) {
                                // Explicitly handle the transactions only if we're not in
                                // a JTA environment.  A lazy loading temporary session can
                                // be created even if a current session and transaction are
                                // open (ex: session.clear() was used).  We must prevent
                                // multiple transactions.
-                               ( ( Session) session ).beginTransaction();
+                               ( (Session) session ).beginTransaction();
                        }
 
-                       session.getPersistenceContext().addUninitializedDetachedCollection(
+                       session.getPersistenceContextInternal().addUninitializedDetachedCollection(
                                        session.getFactory().getCollectionPersister( getRole() ),
                                        this
                        );
@@ -284,62 +310,70 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                        return lazyInitializationWork.doWork();
                }
                finally {
-                       if ( isTempSession ) {
+                       if ( tempSession != null ) {
                                // make sure the just opened temp session gets closed!
+                               isTempSession = false;
+                               session = originalSession;
+
                                try {
                                        if ( !isJTA ) {
-                                               ( ( Session) session ).getTransaction().commit();
+                                               ( (Session) tempSession ).getTransaction().commit();
                                        }
-                                       ( (Session) session ).close();
+                                       ( (Session) tempSession ).close();
                                }
                                catch (Exception e) {
-                                       log.warn( "Unable to close temporary session used to load lazy collection associated to no session" );
+                                       LOG.warn( "Unable to close temporary session used to load lazy collection associated to no session" );
                                }
-                               session = originalSession;
                        }
                }
        }
 
-       private SessionImplementor openTemporarySessionForLoading() {
+       private SharedSessionContractImplementor openTemporarySessionForLoading() {
                if ( sessionFactoryUuid == null ) {
                        throwLazyInitializationException( "SessionFactory UUID not known to create temporary Session for loading" );
                }
 
-               SessionFactoryImplementor sf = (SessionFactoryImplementor)
+               final SessionFactoryImplementor sf = (SessionFactoryImplementor)
                                SessionFactoryRegistry.INSTANCE.getSessionFactory( sessionFactoryUuid );
-               return (SessionImplementor) sf.openSession();
+               final SharedSessionContractImplementor session = (SharedSessionContractImplementor) sf.openSession();
+               session.getPersistenceContextInternal().setDefaultReadOnly( true );
+               session.setFlushMode( FlushMode.MANUAL );
+               return session;
        }
 
        protected Boolean readIndexExistence(final Object index) {
                if ( !initialized ) {
+                       //##REMOTING-KEEP##
                        // In remoting we are sure that session is null
                        // both when using property paths and switching off conversations
                        if(session == null && remoting) {
-                               log.info("--> readIndexExistence, of " + getRole() + " with key " + getKey());
+                               LOG.info("--> readIndexExistence, of " + getRole() + " with key " + getKey());
                                read();
                        } else {
-                               Boolean extraLazyExistenceCheck = withTemporarySessionIfNeeded(
-                                               new LazyInitializationWork<Boolean>() {
-                                                       @Override
-                                                       public Boolean doWork() {
-                                                               CollectionEntry entry = session.getPersistenceContext().getCollectionEntry( AbstractPersistentCollection.this );
-                                                               CollectionPersister persister = entry.getLoadedPersister();
-                                                               if ( persister.isExtraLazy() ) {
-                                                                       if ( hasQueuedOperations() ) {
-                                                                               session.flush();
-                                                                       }
-                                                                       return persister.indexExists( entry.getLoadedKey(), index, session );
+                   //keep formatting below to ease update to newer hibernate version
+                       //##REMOTING-KEEP END##
+                       final Boolean extraLazyExistenceCheck = withTemporarySessionIfNeeded(
+                                       new LazyInitializationWork<Boolean>() {
+                                               @Override
+                                               public Boolean doWork() {
+                                                       final CollectionEntry entry = session.getPersistenceContextInternal().getCollectionEntry( AbstractPersistentCollection.this );
+                                                       final CollectionPersister persister = entry.getLoadedPersister();
+                                                       if ( persister.isExtraLazy() ) {
+                                                               if ( hasQueuedOperations() ) {
+                                                                       session.flush();
                                                                }
-                                                               else {
-                                                                       read();
-                                                               }
-                                                               return null;
+                                                               return persister.indexExists( entry.getLoadedKey(), index, session );
+                                                       }
+                                                       else {
+                                                               read();
                                                        }
+                                                       return null;
                                                }
-                                               );
-                               if ( extraLazyExistenceCheck != null ) {
-                                       return extraLazyExistenceCheck;
-                               }
+                                       }
+                       );
+                       if ( extraLazyExistenceCheck != null ) {
+                               return extraLazyExistenceCheck;
+                       }
                        }
                }
                return null;
@@ -347,35 +381,38 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
 
        protected Boolean readElementExistence(final Object element) {
                if ( !initialized ) {
+                       //##REMOTING-KEEP##
                        // In remoting we are sure that session is null
                        // both when using property paths and switching off conversations
                        if(session == null && remoting) {
-                               log.info("--> readElementExistence, of " + getRole() + " with key " + getKey());
+                               LOG.info("--> readElementExistence, of " + getRole() + " with key " + getKey());
                                read();
 
                        } else {
-                               Boolean extraLazyExistenceCheck = withTemporarySessionIfNeeded(
-                                               new LazyInitializationWork<Boolean>() {
-                                                       @Override
-                                                       public Boolean doWork() {
-                                                               CollectionEntry entry = session.getPersistenceContext().getCollectionEntry( AbstractPersistentCollection.this );
-                                                               CollectionPersister persister = entry.getLoadedPersister();
-                                                               if ( persister.isExtraLazy() ) {
-                                                                       if ( hasQueuedOperations() ) {
-                                                                               session.flush();
-                                                                       }
-                                                                       return persister.elementExists( entry.getLoadedKey(), element, session );
+                   //keep formatting below to ease update to newer hibernate version
+                       //##REMOTING-KEEP END##
+                       final Boolean extraLazyExistenceCheck = withTemporarySessionIfNeeded(
+                                       new LazyInitializationWork<Boolean>() {
+                                               @Override
+                                               public Boolean doWork() {
+                                                       final CollectionEntry entry = session.getPersistenceContextInternal().getCollectionEntry( AbstractPersistentCollection.this );
+                                                       final CollectionPersister persister = entry.getLoadedPersister();
+                                                       if ( persister.isExtraLazy() ) {
+                                                               if ( hasQueuedOperations() ) {
+                                                                       session.flush();
                                                                }
-                                                               else {
-                                                                       read();
-                                                               }
-                                                               return null;
+                                                               return persister.elementExists( entry.getLoadedKey(), element, session );
+                                                       }
+                                                       else {
+                                                               read();
                                                        }
+                                                       return null;
                                                }
-                                               );
-                               if ( extraLazyExistenceCheck != null ) {
-                                       return extraLazyExistenceCheck;
-                               }
+                                       }
+                       );
+                       if ( extraLazyExistenceCheck != null ) {
+                               return extraLazyExistenceCheck;
+                       }
                        }
                }
                return null;
@@ -385,41 +422,44 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
 
        protected Object readElementByIndex(final Object index) {
                if ( !initialized ) {
+                       //##REMOTING-KEEP##
                        // In remoting we are sure that session is null
                        // both when using property paths and switching off conversations
                        if(session == null && remoting) {
-                               log.info("--> readElementByIndex, of " + getRole() + " with key " + getKey());
+                               LOG.info("--> readElementByIndex, of " + getRole() + " with key " + getKey());
                                read();
 
                        } else {
-                               class ExtraLazyElementByIndexReader implements LazyInitializationWork {
-                                       private boolean isExtraLazy;
-                                       private Object element;
+                   //keep formatting below to ease update to newer hibernate version
+                       //##REMOTING-KEEP END##
+                       class ExtraLazyElementByIndexReader implements LazyInitializationWork {
+                               private boolean isExtraLazy;
+                               private Object element;
 
-                                       @Override
-                                       public Object doWork() {
-                                               CollectionEntry entry = session.getPersistenceContext().getCollectionEntry( AbstractPersistentCollection.this );
-                                               CollectionPersister persister = entry.getLoadedPersister();
-                                               isExtraLazy = persister.isExtraLazy();
-                                               if ( isExtraLazy ) {
-                                                       if ( hasQueuedOperations() ) {
-                                                               session.flush();
-                                                       }
-                                                       element = persister.getElementByIndex( entry.getLoadedKey(), index, session, owner );
-                                               }
-                                               else {
-                                                       read();
+                               @Override
+                               public Object doWork() {
+                                       final CollectionEntry entry = session.getPersistenceContextInternal().getCollectionEntry( AbstractPersistentCollection.this );
+                                       final CollectionPersister persister = entry.getLoadedPersister();
+                                       isExtraLazy = persister.isExtraLazy();
+                                       if ( isExtraLazy ) {
+                                               if ( hasQueuedOperations() ) {
+                                                       session.flush();
                                                }
-                                               return null;
+                                               element = persister.getElementByIndex( entry.getLoadedKey(), index, session, owner );
+                                       }
+                                       else {
+                                               read();
                                        }
+                                       return null;
                                }
+                       }
 
-                               ExtraLazyElementByIndexReader reader = new ExtraLazyElementByIndexReader();
-                               //noinspection unchecked
-                               withTemporarySessionIfNeeded( reader );
-                               if ( reader.isExtraLazy ) {
-                                       return reader.element;
-                               }
+                       final ExtraLazyElementByIndexReader reader = new ExtraLazyElementByIndexReader();
+                       //noinspection unchecked
+                       withTemporarySessionIfNeeded( reader );
+                       if ( reader.isExtraLazy ) {
+                               return reader.element;
+                       }
                        }
                }
                return UNKNOWN;
@@ -430,10 +470,14 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                return cachedSize;
        }
 
-       private boolean isConnectedToSession() {
-               return session != null &&
-                               session.isOpen() &&
-                               session.getPersistenceContext().containsCollection( this );
+       protected boolean isConnectedToSession() {
+               return session != null
+                               && session.isOpen()
+                               && session.getPersistenceContextInternal().containsCollection( this );
+       }
+
+       protected boolean isInitialized() {
+               return initialized;
        }
 
        /**
@@ -450,9 +494,9 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
         */
        @SuppressWarnings({"JavaDoc"})
        protected boolean isOperationQueueEnabled() {
-               return !initialized &&
-                               isConnectedToSession() &&
-                               isInverseCollection();
+               return !initialized
+                               && isConnectedToSession()
+                               && isInverseCollection();
        }
 
        /**
@@ -462,9 +506,9 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
         */
        @SuppressWarnings({"JavaDoc"})
        protected boolean isPutQueueEnabled() {
-               return !initialized &&
-                               isConnectedToSession() &&
-                               isInverseOneToManyOrNoOrphanDelete();
+               return !initialized
+                               && isConnectedToSession()
+                               && isInverseOneToManyOrNoOrphanDelete();
        }
 
        /**
@@ -474,17 +518,17 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
         */
        @SuppressWarnings({"JavaDoc"})
        protected boolean isClearQueueEnabled() {
-               return !initialized &&
-                               isConnectedToSession() &&
-                               isInverseCollectionNoOrphanDelete();
+               return !initialized
+                               && isConnectedToSession()
+                               && isInverseCollectionNoOrphanDelete();
        }
 
        /**
         * Is this the "inverse" end of a bidirectional association?
         */
        @SuppressWarnings({"JavaDoc"})
-       private boolean isInverseCollection() {
-               CollectionEntry ce = session.getPersistenceContext().getCollectionEntry( this );
+       protected boolean isInverseCollection() {
+               final CollectionEntry ce = session.getPersistenceContextInternal().getCollectionEntry( this );
                return ce != null && ce.getLoadedPersister().isInverse();
        }
 
@@ -493,11 +537,13 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
         * no orphan delete enabled?
         */
        @SuppressWarnings({"JavaDoc"})
-       private boolean isInverseCollectionNoOrphanDelete() {
-               CollectionEntry ce = session.getPersistenceContext().getCollectionEntry( this );
-               return ce != null &&
-                               ce.getLoadedPersister().isInverse() &&
-                               !ce.getLoadedPersister().hasOrphanDelete();
+       protected boolean isInverseCollectionNoOrphanDelete() {
+               final CollectionEntry ce = session.getPersistenceContextInternal().getCollectionEntry( this );
+               if ( ce == null ) {
+                       return false;
+               }
+               final CollectionPersister loadedPersister = ce.getLoadedPersister();
+               return loadedPersister.isInverse() && !loadedPersister.hasOrphanDelete();
        }
 
        /**
@@ -505,12 +551,13 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
         * of a collection with no orphan delete?
         */
        @SuppressWarnings({"JavaDoc"})
-       private boolean isInverseOneToManyOrNoOrphanDelete() {
-               CollectionEntry ce = session.getPersistenceContext().getCollectionEntry( this );
-               return ce != null && ce.getLoadedPersister().isInverse() && (
-                               ce.getLoadedPersister().isOneToMany() ||
-                                               !ce.getLoadedPersister().hasOrphanDelete()
-               );
+       protected boolean isInverseOneToManyOrNoOrphanDelete() {
+               final CollectionEntry ce = session.getPersistenceContextInternal().getCollectionEntry( this );
+               if ( ce == null ) {
+                       return false;
+               }
+               final CollectionPersister loadedPersister = ce.getLoadedPersister();
+               return loadedPersister.isInverse() && ( loadedPersister.isOneToMany() || !loadedPersister.hasOrphanDelete() );
        }
 
        /**
@@ -522,7 +569,22 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                        operationQueue = new ArrayList<DelayedOperation>( 10 );
                }
                operationQueue.add( operation );
-               dirty = true; //needed so that we remove this collection from the second-level cache
+               //needed so that we remove this collection from the second-level cache
+               dirty = true;
+       }
+
+       /**
+        * Replace entity instances with copy in {@code copyCache}/.
+        *
+        * @param copyCache - mapping from entity in the process of being
+        *                    merged to managed copy.
+        */
+       public final void replaceQueuedOperationValues(CollectionPersister persister, Map copyCache) {
+               for ( DelayedOperation operation : operationQueue ) {
+                       if ( ValueDelayedOperation.class.isInstance( operation ) ) {
+                               ( (ValueDelayedOperation) operation ).replace( persister, copyCache );
+                       }
+               }
        }
 
        /**
@@ -533,73 +595,50 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                for ( DelayedOperation operation : operationQueue ) {
                        operation.operate();
                }
+               clearOperationQueue();
        }
 
-       /**
-        * After flushing, re-init snapshot state.
-        */
        @Override
-    public void setSnapshot(Serializable key, String role, Serializable snapshot) {
+       public void setSnapshot(Serializable key, String role, Serializable snapshot) {
                this.key = key;
                this.role = role;
                this.storedSnapshot = snapshot;
        }
 
-       /**
-        * After flushing, clear any "queued" additions, since the
-        * database state is now synchronized with the memory state.
-        */
        @Override
-    public void postAction() {
-               operationQueue = null;
+       public void postAction() {
+               clearOperationQueue();
                cachedSize = -1;
                clearDirty();
        }
 
-       /**
-        * Not called by Hibernate, but used by non-JDK serialization,
-        * eg. SOAP libraries.
-        */
-       public AbstractPersistentCollection() {
-       }
-
-       protected AbstractPersistentCollection(SessionImplementor session) {
-               this.session = session;
+       public final void clearOperationQueue() {
+               operationQueue = null;
        }
 
-       /**
-        * return the user-visible collection (or array) instance
-        */
        @Override
-    public Object getValue() {
+       public Object getValue() {
                return this;
        }
 
-       /**
-        * Called just before reading any rows from the JDBC result set
-        */
        @Override
-    public void beginRead() {
+       public void beginRead() {
                // override on some subclasses
                initializing = true;
        }
 
-       /**
-        * Called after reading all rows from the JDBC result set
-        */
        @Override
-    public boolean endRead() {
+       public boolean endRead() {
                //override on some subclasses
                return afterInitialize();
        }
 
        @Override
-    public boolean afterInitialize() {
+       public boolean afterInitialize() {
                setInitialized();
                //do this bit after setting initialized to true or it will recurse
-               if ( operationQueue != null ) {
+               if ( hasQueuedOperations() ) {
                        performQueuedOperations();
-                       operationQueue = null;
                        cachedSize = -1;
                        return false;
                }
@@ -617,24 +656,26 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
         * @throws LazyInitializationException if we cannot initialize
         */
        protected final void initialize(final boolean writing) {
-           if ( initialized ) {
-               return;
-           }
-
+               if ( initialized ) {
+                       return;
+               }
+               //##REMOTING-KEEP##
            // In remoting we are sure that session is null
            // both when using property paths and switching off conversations
            if(session == null && remoting) {
                remoteInitialize();
            } else {
-               withTemporarySessionIfNeeded(
-                       new LazyInitializationWork<Object>() {
-                           @Override
-                           public Object doWork() {
-                               session.initializeCollection( AbstractPersistentCollection.this, writing );
-                               return null;
-                           }
-                       }
-                       );
+           //keep formatting below to ease update to newer hibernate version
+               //##REMOTING-KEEP END##
+           withTemporarySessionIfNeeded(
+                               new LazyInitializationWork<Object>() {
+                                       @Override
+                                       public Object doWork() {
+                                               session.initializeCollection( AbstractPersistentCollection.this, writing );
+                                               return null;
+                                       }
+                               }
+               );
            }
        }
 
@@ -664,111 +705,166 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                this.directlyAccessible = directlyAccessible;
        }
 
-       /**
-        * Could the application possibly have a direct reference to
-        * the underlying collection implementation?
-        */
        @Override
-    public boolean isDirectlyAccessible() {
+       public boolean isDirectlyAccessible() {
                return directlyAccessible;
        }
 
-       /**
-        * Disassociate this collection from the given session.
-        *
-        * @return true if this was currently associated with the given session
-        */
        @Override
-    public final boolean unsetSession(SessionImplementor currentSession) {
-               prepareForPossibleSpecialSpecjInitialization();
+       public final boolean unsetSession(SharedSessionContractImplementor currentSession) {
+               prepareForPossibleLoadingOutsideTransaction();
                if ( currentSession == this.session ) {
-                       this.session = null;
+                       if ( !isTempSession ) {
+                               if ( hasQueuedOperations() ) {
+                                       final String collectionInfoString = MessageHelper.collectionInfoString( getRole(), getKey() );
+                                       try {
+                                               final TransactionStatus transactionStatus =
+                                                               session.getTransactionCoordinator().getTransactionDriverControl().getStatus();
+                                               if ( transactionStatus.isOneOf(
+                                                               TransactionStatus.ROLLED_BACK,
+                                                               TransactionStatus.MARKED_ROLLBACK,
+                                                               TransactionStatus.FAILED_COMMIT,
+                                                               TransactionStatus.FAILED_ROLLBACK,
+                                                               TransactionStatus.ROLLING_BACK
+                                               ) ) {
+                                                       // It was due to a rollback.
+                                                       LOG.queuedOperationWhenDetachFromSessionOnRollback( collectionInfoString );
+                                               }
+                                               else {
+                                                       // We don't know why the collection is being detached.
+                                                       // Just log the info.
+                                                       LOG.queuedOperationWhenDetachFromSession( collectionInfoString );
+                                               }
+                                       }
+                                       catch (Exception e) {
+                                               // We don't know why the collection is being detached.
+                                               // Just log the info.
+                                               LOG.queuedOperationWhenDetachFromSession( collectionInfoString );
+                                       }
+                               }
+                               if ( allowLoadOutsideTransaction && !initialized && session.getLoadQueryInfluencers().hasEnabledFilters() ) {
+                                       final String collectionInfoString = MessageHelper.collectionInfoString( getRole(), getKey() );
+                                       LOG.enabledFiltersWhenDetachFromSession( collectionInfoString );
+                               }
+                               this.session = null;
+                       }
                        return true;
                }
                else {
+                       if ( this.session != null ) {
+                               LOG.logCannotUnsetUnexpectedSessionInCollection( generateUnexpectedSessionStateMessage( currentSession ) );
+                       }
                        return false;
                }
        }
 
-       protected void prepareForPossibleSpecialSpecjInitialization() {
+       protected void prepareForPossibleLoadingOutsideTransaction() {
                if ( session != null ) {
-                       specjLazyLoad = session.getFactory().getSettings().isInitializeLazyStateOutsideTransactionsEnabled();
+                       allowLoadOutsideTransaction = session.getFactory().getSessionFactoryOptions().isInitializeLazyStateOutsideTransactionsEnabled();
 
-                       if ( specjLazyLoad && sessionFactoryUuid == null ) {
-                               try {
-                                       sessionFactoryUuid = (String) session.getFactory().getReference().get( "uuid" ).getContent();
-                               }
-                               catch (NamingException e) {
-                                       //not much we can do if this fails...
-                               }
+                       if ( allowLoadOutsideTransaction && sessionFactoryUuid == null ) {
+                               sessionFactoryUuid = session.getFactory().getUuid();
                        }
                }
        }
 
-
-       /**
-        * Associate the collection with the given session.
-        *
-        * @return false if the collection was already associated with the session
-        *
-        * @throws HibernateException if the collection was already associated
-        * with another open session
-        */
        @Override
-    public final boolean setCurrentSession(SessionImplementor session) throws HibernateException {
+       public final boolean setCurrentSession(SharedSessionContractImplementor session) throws HibernateException {
                if ( session == this.session ) {
                        return false;
                }
-               else {
+               else if ( this.session != null ) {
+                       final String msg = generateUnexpectedSessionStateMessage( session );
                        if ( isConnectedToSession() ) {
-                               CollectionEntry ce = session.getPersistenceContext().getCollectionEntry( this );
-                               if ( ce == null ) {
-                                       throw new HibernateException(
-                                                       "Illegal attempt to associate a collection with two open sessions"
-                                       );
-                               }
-                               else {
-                                       throw new HibernateException(
-                                                       "Illegal attempt to associate a collection with two open sessions: " +
-                                                                       MessageHelper.collectionInfoString(
-                                                                                       ce.getLoadedPersister(), this,
-                                                                                       ce.getLoadedKey(), session
-                                                                       )
-                                       );
-                               }
+                               throw new HibernateException(
+                                               "Illegal attempt to associate a collection with two open sessions. " + msg
+                               );
                        }
                        else {
-                               this.session = session;
-                               return true;
+                               LOG.logUnexpectedSessionInCollectionNotConnected( msg );
                        }
                }
+               if ( hasQueuedOperations() ) {
+                       LOG.queuedOperationWhenAttachToSession( MessageHelper.collectionInfoString( getRole(), getKey() ) );
+               }
+               this.session = session;
+               return true;
+       }
+
+       private String generateUnexpectedSessionStateMessage(SharedSessionContractImplementor session) {
+               // NOTE: If this.session != null, this.session may be operating on this collection
+               // (e.g., by changing this.role, this.key, or even this.session) in a different thread.
+
+               // Grab the current role and key (it can still get changed by this.session...)
+               // If this collection is connected to this.session, then this.role and this.key should
+               // be consistent with the CollectionEntry in this.session (as long as this.session doesn't
+               // change it). Don't access the CollectionEntry in this.session because that could result
+               // in multi-threaded access to this.session.
+               final String roleCurrent = role;
+               final Serializable keyCurrent = key;
+
+               final StringBuilder sb = new StringBuilder( "Collection : " );
+               if ( roleCurrent != null ) {
+                       sb.append( MessageHelper.collectionInfoString( roleCurrent, keyCurrent ) );
+               }
+               else {
+                       final CollectionEntry ce = session.getPersistenceContextInternal().getCollectionEntry( this );
+                       if ( ce != null ) {
+                               sb.append(
+                                               MessageHelper.collectionInfoString(
+                                                               ce.getLoadedPersister(),
+                                                               this,
+                                                               ce.getLoadedKey(),
+                                                               session
+                                               )
+                               );
+                       }
+                       else {
+                               sb.append( "<unknown>" );
+                       }
+               }
+               // only include the collection contents if debug logging
+               if ( LOG.isDebugEnabled() ) {
+                       final String collectionContents = wasInitialized() ? toString() : "<uninitialized>";
+                       sb.append( "\nCollection contents: [" ).append( collectionContents ).append( "]" );
+               }
+               return sb.toString();
        }
 
-       /**
-        * Do we need to completely recreate this collection when it changes?
-        */
        @Override
-    public boolean needsRecreate(CollectionPersister persister) {
+       public boolean needsRecreate(CollectionPersister persister) {
+               // Workaround for situations like HHH-7072.  If the collection element is a component that consists entirely
+               // of nullable properties, we currently have to forcefully recreate the entire collection.  See the use
+               // of hasNotNullableColumns in the AbstractCollectionPersister constructor for more info.  In order to delete
+               // row-by-row, that would require SQL like "WHERE ( COL = ? OR ( COL is null AND ? is null ) )", rather than
+               // the current "WHERE COL = ?" (fails for null for most DBs).  Note that
+               // the param would have to be bound twice.  Until we eventually add "parameter bind points" concepts to the
+               // AST in ORM 5+, handling this type of condition is either extremely difficult or impossible.  Forcing
+               // recreation isn't ideal, but not really any other option in ORM 4.
+               // Selecting a type used in where part of update statement
+               // (must match condition in org.hibernate.persister.collection.BasicCollectionPersister#doUpdateRows).
+               // See HHH-9474
+               Type whereType;
+               if ( persister.hasIndex() ) {
+                       whereType = persister.getIndexType();
+               }
+               else {
+                       whereType = persister.getElementType();
+               }
+               if ( whereType instanceof CompositeType ) {
+                       CompositeType componentIndexType = (CompositeType) whereType;
+                       return !componentIndexType.hasNotNullProperty();
+               }
                return false;
        }
 
-       /**
-        * To be called internally by the session, forcing
-        * immediate initialization.
-        */
        @Override
-    public final void forceInitialization() throws HibernateException {
+       public final void forceInitialization() throws HibernateException {
                if ( !initialized ) {
                        if ( initializing ) {
                                throw new AssertionFailure( "force initialize loading collection" );
                        }
-                       if ( session == null ) {
-                               throw new HibernateException( "collection is not associated with any session" );
-                       }
-                       if ( !session.isConnected() ) {
-                               throw new HibernateException( "disconnected session" );
-                       }
-                       session.initializeCollection( this, false );
+                       initialize( false );
                }
        }
 
@@ -781,66 +877,54 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                return session.getPersistenceContext().getSnapshot( this );
        }
 
-       /**
-        * Is this instance initialized?
-        */
        @Override
-    public final boolean wasInitialized() {
+       public final boolean wasInitialized() {
                return initialized;
        }
 
        @Override
-    public boolean isRowUpdatePossible() {
+       public boolean isRowUpdatePossible() {
                return true;
        }
 
-       /**
-        * Does this instance have any "queued" additions?
-        */
        @Override
-    public final boolean hasQueuedOperations() {
+       public final boolean hasQueuedOperations() {
                return operationQueue != null;
        }
 
-       /**
-        * Iterate the "queued" additions
-        */
        @Override
-    public final Iterator queuedAdditionIterator() {
+       public final Iterator queuedAdditionIterator() {
                if ( hasQueuedOperations() ) {
                        return new Iterator() {
-                               int i = 0;
+                               private int index;
 
                                @Override
-                public Object next() {
-                                       return operationQueue.get( i++ ).getAddedInstance();
+                               public Object next() {
+                                       return operationQueue.get( index++ ).getAddedInstance();
                                }
 
                                @Override
-                public boolean hasNext() {
-                                       return i < operationQueue.size();
+                               public boolean hasNext() {
+                                       return index < operationQueue.size();
                                }
 
                                @Override
-                public void remove() {
+                               public void remove() {
                                        throw new UnsupportedOperationException();
                                }
                        };
                }
                else {
-                       return EmptyIterator.INSTANCE;
+                       return Collections.emptyIterator();
                }
        }
 
-       /**
-        * Iterate the "queued" additions
-        */
        @Override
-    @SuppressWarnings({"unchecked"})
+       @SuppressWarnings({"unchecked"})
        public final Collection getQueuedOrphans(String entityName) {
                if ( hasQueuedOperations() ) {
-                       Collection additions = new ArrayList( operationQueue.size() );
-                       Collection removals = new ArrayList( operationQueue.size() );
+                       final Collection additions = new ArrayList( operationQueue.size() );
+                       final Collection removals = new ArrayList( operationQueue.size() );
                        for ( DelayedOperation operation : operationQueue ) {
                                additions.add( operation.getAddedInstance() );
                                removals.add( operation.getOrphan() );
@@ -852,32 +936,23 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                }
        }
 
-       /**
-        * Called before inserting rows, to ensure that any surrogate keys
-        * are fully generated
-        */
        @Override
-    public void preInsert(CollectionPersister persister) throws HibernateException {
+       public void preInsert(CollectionPersister persister) throws HibernateException {
        }
 
-       /**
-        * Called after inserting a row, to fetch the natively generated id
-        */
        @Override
-    public void afterRowInsert(CollectionPersister persister, Object entry, int i) throws HibernateException {
+       public void afterRowInsert(CollectionPersister persister, Object entry, int i) throws HibernateException {
        }
 
-       /**
-        * get all "orphaned" elements
-        */
        @Override
-    public abstract Collection getOrphans(Serializable snapshot, String entityName) throws HibernateException;
+       public abstract Collection getOrphans(Serializable snapshot, String entityName) throws HibernateException;
 
        /**
-        * Get the current session
+        * Get the session currently associated with this collection.
+        *
+        * @return The session
         */
-       @SuppressWarnings({"JavaDoc"})
-       public final SessionImplementor getSession() {
+       public final SharedSessionContractImplementor getSession() {
                return session;
        }
 
@@ -889,21 +964,20 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                }
 
                @Override
-        public boolean hasNext() {
+               public boolean hasNext() {
                        return itr.hasNext();
                }
 
                @Override
-        public Object next() {
+               public Object next() {
                        return itr.next();
                }
 
                @Override
-        public void remove() {
+               public void remove() {
                        write();
                        itr.remove();
                }
-
        }
 
        protected final class ListIteratorProxy implements ListIterator {
@@ -914,55 +988,54 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                }
 
                @Override
-        @SuppressWarnings({"unchecked"})
+               @SuppressWarnings({"unchecked"})
                public void add(Object o) {
                        write();
                        itr.add( o );
                }
 
                @Override
-        public boolean hasNext() {
+               public boolean hasNext() {
                        return itr.hasNext();
                }
 
                @Override
-        public boolean hasPrevious() {
+               public boolean hasPrevious() {
                        return itr.hasPrevious();
                }
 
                @Override
-        public Object next() {
+               public Object next() {
                        return itr.next();
                }
 
                @Override
-        public int nextIndex() {
+               public int nextIndex() {
                        return itr.nextIndex();
                }
 
                @Override
-        public Object previous() {
+               public Object previous() {
                        return itr.previous();
                }
 
                @Override
-        public int previousIndex() {
+               public int previousIndex() {
                        return itr.previousIndex();
                }
 
                @Override
-        public void remove() {
+               public void remove() {
                        write();
                        itr.remove();
                }
 
                @Override
-        @SuppressWarnings({"unchecked"})
+               @SuppressWarnings({"unchecked"})
                public void set(Object o) {
                        write();
                        itr.set( o );
                }
-
        }
 
        protected class SetProxy implements java.util.Set {
@@ -973,79 +1046,81 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                }
 
                @Override
-        @SuppressWarnings({"unchecked"})
+               @SuppressWarnings({"unchecked"})
                public boolean add(Object o) {
                        write();
                        return set.add( o );
                }
 
                @Override
-        @SuppressWarnings({"unchecked"})
+               @SuppressWarnings({"unchecked"})
                public boolean addAll(Collection c) {
                        write();
                        return set.addAll( c );
                }
 
                @Override
-        public void clear() {
+               public void clear() {
                        write();
                        set.clear();
                }
 
                @Override
-        public boolean contains(Object o) {
+               public boolean contains(Object o) {
                        return set.contains( o );
                }
 
                @Override
-        public boolean containsAll(Collection c) {
+               @SuppressWarnings("unchecked")
+               public boolean containsAll(Collection c) {
                        return set.containsAll( c );
                }
 
                @Override
-        public boolean isEmpty() {
+               public boolean isEmpty() {
                        return set.isEmpty();
                }
 
                @Override
-        public Iterator iterator() {
+               public Iterator iterator() {
                        return new IteratorProxy( set.iterator() );
                }
 
                @Override
-        public boolean remove(Object o) {
+               public boolean remove(Object o) {
                        write();
                        return set.remove( o );
                }
 
                @Override
-        public boolean removeAll(Collection c) {
+               @SuppressWarnings("unchecked")
+               public boolean removeAll(Collection c) {
                        write();
                        return set.removeAll( c );
                }
 
                @Override
-        public boolean retainAll(Collection c) {
+               @SuppressWarnings("unchecked")
+               public boolean retainAll(Collection c) {
                        write();
                        return set.retainAll( c );
                }
 
                @Override
-        public int size() {
+               public int size() {
                        return set.size();
                }
 
                @Override
-        public Object[] toArray() {
+               public Object[] toArray() {
                        return set.toArray();
                }
 
                @Override
-        @SuppressWarnings({"unchecked"})
+               @SuppressWarnings({"unchecked"})
                public Object[] toArray(Object[] array) {
                        return set.toArray( array );
                }
-
        }
 
        protected final class ListProxy implements java.util.List {
@@ -1095,6 +1170,7 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                }
 
                @Override
+               @SuppressWarnings("unchecked")
                public boolean containsAll(Collection c) {
                        return list.containsAll( c );
                }
@@ -1147,12 +1223,14 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                }
 
                @Override
+               @SuppressWarnings("unchecked")
                public boolean removeAll(Collection c) {
                        write();
                        return list.removeAll( c );
                }
 
                @Override
+               @SuppressWarnings("unchecked")
                public boolean retainAll(Collection c) {
                        write();
                        return list.retainAll( c );
@@ -1199,6 +1277,41 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                public Object getOrphan();
        }
 
+       protected interface ValueDelayedOperation extends DelayedOperation {
+               void replace(CollectionPersister collectionPersister, Map copyCache);
+       }
+
+       protected abstract class AbstractValueDelayedOperation implements ValueDelayedOperation {
+               private Object addedValue;
+               private Object orphan;
+
+               protected AbstractValueDelayedOperation(Object addedValue, Object orphan) {
+                       this.addedValue = addedValue;
+                       this.orphan = orphan;
+               }
+
+               @Override
+        public void replace(CollectionPersister persister, Map copyCache) {
+                       if ( addedValue != null ) {
+                               addedValue = getReplacement( persister.getElementType(), addedValue, copyCache );
+                       }
+               }
+
+               protected final Object getReplacement(Type type, Object current, Map copyCache) {
+                       return type.replace( current, null, session, owner, copyCache );
+               }
+
+               @Override
+               public final Object getAddedInstance() {
+                       return addedValue;
+               }
+
+               @Override
+               public final Object getOrphan() {
+                       return orphan;
+               }
+       }
+
        /**
         * Given a collection of entity instances that used to
         * belong to the collection, and a collection of instances
@@ -1209,38 +1322,42 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                        Collection oldElements,
                        Collection currentElements,
                        String entityName,
-                       SessionImplementor session) throws HibernateException {
+                       SharedSessionContractImplementor session) throws HibernateException {
 
                // short-circuit(s)
                if ( currentElements.size() == 0 ) {
-                       return oldElements; // no new elements, the old list contains only Orphans
+                       // no new elements, the old list contains only Orphans
+                       return oldElements;
                }
                if ( oldElements.size() == 0 ) {
-                       return oldElements; // no old elements, so no Orphans neither
+                       // no old elements, so no Orphans neither
+                       return oldElements;
                }
 
                final EntityPersister entityPersister = session.getFactory().getEntityPersister( entityName );
                final Type idType = entityPersister.getIdentifierType();
+               final boolean useIdDirect = mayUseIdDirect( idType );
 
                // create the collection holding the Orphans
-               Collection res = new ArrayList();
+               final Collection res = new ArrayList();
 
                // collect EntityIdentifier(s) of the *current* elements - add them into a HashSet for fast access
-               java.util.Set currentIds = new HashSet();
-               java.util.Set currentSaving = new IdentitySet();
+               final java.util.Set currentIds = new HashSet();
+               final java.util.Set currentSaving = new IdentitySet();
+               final PersistenceContext persistenceContext = session.getPersistenceContextInternal();
                for ( Object current : currentElements ) {
                        if ( current != null && ForeignKeys.isNotTransient( entityName, current, null, session ) ) {
-                               EntityEntry ee = session.getPersistenceContext().getEntry( current );
+                               final EntityEntry ee = persistenceContext.getEntry( current );
                                if ( ee != null && ee.getStatus() == Status.SAVING ) {
                                        currentSaving.add( current );
                                }
                                else {
-                                       Serializable currentId = ForeignKeys.getEntityIdentifierIfNotUnsaved(
+                                       final Serializable currentId = ForeignKeys.getEntityIdentifierIfNotUnsaved(
                                                        entityName,
                                                        current,
                                                        session
                                        );
-                                       currentIds.add( new TypedValue( idType, currentId, entityPersister.getEntityMode() ) );
+                                       currentIds.add( useIdDirect ? currentId : new TypedValue( idType, currentId ) );
                                }
                        }
                }
@@ -1248,8 +1365,8 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                // iterate over the *old* list
                for ( Object old : oldElements ) {
                        if ( !currentSaving.contains( old ) ) {
-                               Serializable oldId = ForeignKeys.getEntityIdentifierIfNotUnsaved( entityName, old, session );
-                               if ( !currentIds.contains( new TypedValue( idType, oldId, entityPersister.getEntityMode() ) ) ) {
+                               final Serializable oldId = ForeignKeys.getEntityIdentifierIfNotUnsaved( entityName, old, session );
+                               if ( !currentIds.contains( useIdDirect ? oldId : new TypedValue( idType, oldId ) ) ) {
                                        res.add( old );
                                }
                        }
@@ -1258,20 +1375,37 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                return res;
        }
 
+       private static boolean mayUseIdDirect(Type idType) {
+               return idType == StringType.INSTANCE
+                       || idType == IntegerType.INSTANCE
+                       || idType == LongType.INSTANCE
+                       || idType == UUIDBinaryType.INSTANCE
+                       || idType == UUIDCharType.INSTANCE
+                       || idType == PostgresUUIDType.INSTANCE;
+       }
+
+       /**
+        * Removes entity entries that have an equal identifier with the incoming entity instance
+        *
+        * @param list The list containing the entity instances
+        * @param entityInstance The entity instance to match elements.
+        * @param entityName The entity name
+        * @param session The session
+        */
        public static void identityRemove(
                        Collection list,
-                       Object object,
+                       Object entityInstance,
                        String entityName,
-                       SessionImplementor session) throws HibernateException {
+                       SharedSessionContractImplementor session) {
 
-               if ( object != null && ForeignKeys.isNotTransient( entityName, object, null, session ) ) {
+               if ( entityInstance != null && ForeignKeys.isNotTransient( entityName, entityInstance, null, session ) ) {
                        final EntityPersister entityPersister = session.getFactory().getEntityPersister( entityName );
-                       Type idType = entityPersister.getIdentifierType();
+                       final Type idType = entityPersister.getIdentifierType();
 
-                       Serializable idOfCurrent = ForeignKeys.getEntityIdentifierIfNotUnsaved( entityName, object, session );
-                       Iterator itr = list.iterator();
+                       final Serializable idOfCurrent = ForeignKeys.getEntityIdentifierIfNotUnsaved( entityName, entityInstance, session );
+                       final Iterator itr = list.iterator();
                        while ( itr.hasNext() ) {
-                               Serializable idOfOld = ForeignKeys.getEntityIdentifierIfNotUnsaved( entityName, itr.next(), session );
+                               final Serializable idOfOld = ForeignKeys.getEntityIdentifierIfNotUnsaved( entityName, itr.next(), session );
                                if ( idType.isEqual( idOfCurrent, idOfOld, session.getFactory() ) ) {
                                        itr.remove();
                                        break;
@@ -1281,28 +1415,55 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                }
        }
 
+       /**
+        * Removes entity entries that have an equal identifier with the incoming entity instance
+        *
+        * @param list The list containing the entity instances
+        * @param entityInstance The entity instance to match elements.
+        * @param entityName The entity name
+        * @param session The session
+        *
+        * @deprecated {@link #identityRemove(Collection, Object, String, SharedSessionContractImplementor)}
+        *             should be used instead.
+        */
+       @Deprecated
+       public static void identityRemove(
+                       Collection list,
+                       Object entityInstance,
+                       String entityName,
+                       SessionImplementor session) {
+               identityRemove( list, entityInstance, entityName, (SharedSessionContractImplementor) session );
+       }
+
        @Override
-    public Object getIdentifier(Object entry, int i) {
+       public Object getIdentifier(Object entry, int i) {
                throw new UnsupportedOperationException();
        }
 
        @Override
-    public Object getOwner() {
+       public Object getOwner() {
                return owner;
        }
 
        @Override
-    public void setOwner(Object owner) {
+       public void setOwner(Object owner) {
                this.owner = owner;
        }
 
-       /** ------ Below is section of code which makes remote service calls ----- */
-       // The affected methods are :
-       // initialize(final boolean writing)
-       // readSize()
-       // readIndexExistence(final Object index)
-       // readElementExistence(final Object element)
-       // readElementByIndex(final Object index)
+
+/** ##REMOTING-KEEP## #######################################################
+
+    ADDED PART: Below is the section of code which makes remote service calls.
+    Keeps this code when upgrading to newer hibernate version. Also keep
+    other code marked with ##REMOTING-KEEP## in the following 5 methods:
+
+    {@link #initialize(boolean)}
+       {@link #readSize()}
+       {@link #readIndexExistence(Object)}
+       {@link #readElementExistence(Object)}
+       {@link #readElementByIndex(Object)}
+
+    ######################################################################### */
 
        private static CdmApplicationRemoteConfiguration configuration;
        private static boolean remoting = false;
@@ -1312,17 +1473,21 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                configuration = conf;
        }
 
-
        private void remoteInitialize() {
 
                if (getOwner() != null && !initialized) {
-
+                   Object collectionType = null;
+                   Field field = null;
+                   String fieldName = null;
+                   Class<?> clazz = null;
+                   String codePart = "1";
                        try {
                                String role = getRole();
-                               String fieldName = role.substring(role.lastIndexOf(".") + 1);
-                               log.info("--> Remote Lazy Initializing Collection " + getRole() + " , owner : " + getOwner().getClass() + "/" + getKey() + " , field : " + fieldName);
+                               fieldName = role.substring(role.lastIndexOf(".") + 1);
+                               LOG.info("--> Remote Lazy Initializing Collection " + getRole() + " , owner : " + getOwner().getClass() + "/" + getKey() + " , field : " + fieldName);
                                Object owner = getOwner();
                                CdmBase cdmBase;
+                   codePart = "2";
                                if(owner instanceof CdmBase) {
                                    cdmBase = (CdmBase)owner;
                                } else {
@@ -1331,36 +1496,41 @@ public abstract class AbstractPersistentCollection implements Serializable, Pers
                                if(configuration == null) {
                                        throw new HibernateException("CdmApplicationRemoteConfiguration not initialized (null)");
                                }
+                codePart = "3";
+
                                ICachedCommonService cachedCommonService = configuration.getCachedCommonService();
                                if(cachedCommonService == null) {
                                        throw new HibernateException("commonService not initialized (null)");
                                }
+                codePart = "4";
 
                                //Object obj = ProxyUtils.deproxyIfInitialized(cachedCommonService.initializeCollection(this));
                                Object obj = ProxyUtils.deproxyIfInitialized(cachedCommonService.initializeCollection(cdmBase.getUuid(), fieldName));
                                if(ProxyUtils.isUninitializedProxy(obj)) {
                                    throw new HibernateException("Persistent Collection initialized but is still a proxy");
                                }
+                codePart = "5";
                                afterInitialize();
 
-                               Class<?> clazz = getClass();
+                               clazz = getClass();
+                codePart = "6";
                                if (clazz != null) {
-                                       //CollectionField cf = cachedCommonService.getCollectionField(col);
-                                       //cachedCommonService.updatePersistentCollection(cf);
-                                   Object collectionType = ProxyUtils.getCollectionType(obj, clazz);
-                                       Field field = clazz.getDeclaredField(collectionType.toString());
+                                       collectionType = ProxyUtils.getCollectionType(obj, clazz);
+                       codePart = "7";
+                                       field = clazz.getDeclaredField(collectionType.toString());
+                       codePart = "8";
                                        field.setAccessible(true);
                                        field.set(this, obj);
-                                       ProxyUtils.setRoleValueInOwner(owner, role, obj);
+                           codePart = "9";
 
+                                       ProxyUtils.setRoleValueInOwner(owner, role, obj);
                                }
                        } catch (Exception ex) {
-                               throw new CdmEagerLoadingException(ex);
+                           String originalMessage = ex.getMessage();
+                           String message = originalMessage + ", clazz: " + (clazz == null? "" :clazz.getSimpleName())+ ", field: " + field != null? field.getName(): fieldName + ", collectionType: " + collectionType + ", at code part: " + codePart;
+                           throw new CdmEagerLoadingException(message);
                        }
                }
        }
-
-
-
-}
-
+    // ##REMOTING-KEEP END##
+}
\ No newline at end of file
index de085411f6010086d5f8383062b05ddbd944714a..f989f1479cd9eac593e707cc6be1ef5eae66063e 100644 (file)
-/*
- * Hibernate, Relational Persistence for Idiomatic Java
- *
- * Copyright (c) 2008-2011, Red Hat Inc. or third-party contributors as
- * indicated by the @author tags or express copyright attribution
- * statements applied by the authors.  All third-party contributions are
- * distributed under license by Red Hat Inc.
- *
- * This copyrighted material is made available to anyone wishing to use, modify,
- * copy, or redistribute it subject to the terms and conditions of the GNU
- * Lesser General Public License, as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this distribution; if not, write to:
- * Free Software Foundation, Inc.
- * 51 Franklin Street, Fifth Floor
- * Boston, MA  02110-1301  USA
- */
-package org.hibernate.proxy;
-
-import java.io.Serializable;
-
-import javax.naming.NamingException;
-
-import org.hibernate.HibernateException;
-import org.hibernate.LazyInitializationException;
-import org.hibernate.Session;
-import org.hibernate.SessionException;
-import org.hibernate.TransientObjectException;
-import org.hibernate.engine.spi.EntityKey;
-import org.hibernate.engine.spi.SessionFactoryImplementor;
-import org.hibernate.engine.spi.SessionImplementor;
-import org.hibernate.internal.SessionFactoryRegistry;
-import org.hibernate.persister.entity.EntityPersister;
-import org.jboss.logging.Logger;
-
-import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration;
-import eu.etaxonomy.cdm.cache.ProxyUtils;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.taxeditor.service.ICachedCommonService;
-
-/**
- * Convenience base class for lazy initialization handlers.  Centralizes the basic plumbing of doing lazy
- * initialization freeing subclasses to acts as essentially adapters to their intended entity mode and/or
- * proxy generation strategy.
- *
- * @author Gavin King
- */
-public abstract class AbstractLazyInitializer implements LazyInitializer {
-       private static final Logger log = Logger.getLogger( AbstractLazyInitializer.class );
-
-       private String entityName;
-       private Serializable id;
-       private Object target;
-       private boolean initialized;
-       private boolean readOnly;
-       private boolean unwrap;
-       private transient SessionImplementor session;
-       private Boolean readOnlyBeforeAttachedToSession;
-
-       private String sessionFactoryUuid;
-       private boolean specjLazyLoad = false;
-
-       /**
-        * For serialization from the non-pojo initializers (HHH-3309)
-        */
-       protected AbstractLazyInitializer() {
-       }
-
-       /**
-        * Main constructor.
-        *
-        * @param entityName The name of the entity being proxied.
-        * @param id The identifier of the entity being proxied.
-        * @param session The session owning the proxy.
-        */
-       protected AbstractLazyInitializer(String entityName, Serializable id, SessionImplementor session) {
-               this.entityName = entityName;
-               this.id = id;
-               // initialize other fields depending on session state
-               if ( session == null ) {
-                       unsetSession();
-               }
-               else {
-                       setSession( session );
-               }
-       }
-
-       @Override
-       public final String getEntityName() {
-               return entityName;
-       }
-
-       @Override
-       public final Serializable getIdentifier() {
-               return id;
-       }
-
-       @Override
-       public final void setIdentifier(Serializable id) {
-               this.id = id;
-       }
-
-       @Override
-       public final boolean isUninitialized() {
-               return !initialized;
-       }
-
-       @Override
-       public final SessionImplementor getSession() {
-               return session;
-       }
-
-       @Override
-       public final void setSession(SessionImplementor s) throws HibernateException {
-               if ( s != session ) {
-                       // check for s == null first, since it is least expensive
-                       if ( s == null ) {
-                               unsetSession();
-                       }
-                       else if ( isConnectedToSession() ) {
-                               //TODO: perhaps this should be some other RuntimeException...
-                               throw new HibernateException( "illegally attempted to associate a proxy with two open Sessions" );
-                       }
-                       else {
-                               // s != null
-                               session = s;
-                               if ( readOnlyBeforeAttachedToSession == null ) {
-                                       // use the default read-only/modifiable setting
-                                       final EntityPersister persister = s.getFactory().getEntityPersister( entityName );
-                                       setReadOnly( s.getPersistenceContext().isDefaultReadOnly() || !persister.isMutable() );
-                               }
-                               else {
-                                       // use the read-only/modifiable setting indicated during deserialization
-                                       setReadOnly( readOnlyBeforeAttachedToSession.booleanValue() );
-                                       readOnlyBeforeAttachedToSession = null;
-                               }
-                       }
-               }
-       }
-
-       private static EntityKey generateEntityKeyOrNull(Serializable id, SessionImplementor s, String entityName) {
-               if ( id == null || s == null || entityName == null ) {
-                       return null;
-               }
-               return s.generateEntityKey( id, s.getFactory().getEntityPersister( entityName ) );
-       }
-
-       @Override
-       public final void unsetSession() {
-               prepareForPossibleSpecialSpecjInitialization();
-               session = null;
-               readOnly = false;
-               readOnlyBeforeAttachedToSession = null;
-       }
-
-       @Override
-       public final void initialize() throws HibernateException {
-               // In remoting we are sure that session is null
-               // both when using property paths and switching off conversations
-               if(session == null && remoting) {
-                       remoteInitialize();
-               }
-               if ( !initialized ) {
-                       if ( specjLazyLoad ) {
-                               specialSpecjInitialization();
-                       }
-                       else if ( session == null ) {
-                               throw new LazyInitializationException( "could not initialize proxy - no Session" );
-                       }
-                       else if ( !session.isOpen() ) {
-                               throw new LazyInitializationException( "could not initialize proxy - the owning Session was closed" );
-                       }
-                       else if ( !session.isConnected() ) {
-                               throw new LazyInitializationException( "could not initialize proxy - the owning Session is disconnected" );
-                       }
-                       else {
-                               target = session.immediateLoad( entityName, id );
-                               initialized = true;
-                               checkTargetState();
-                       }
-               }
-               else {
-                       checkTargetState();
-               }
-       }
-
-       protected void specialSpecjInitialization() {
-               if ( session == null ) {
-                       //we have a detached collection thats set to null, reattach
-                       if ( sessionFactoryUuid == null ) {
-                               throw new LazyInitializationException( "could not initialize proxy - no Session" );
-                       }
-                       try {
-                               SessionFactoryImplementor sf = (SessionFactoryImplementor)
-                                               SessionFactoryRegistry.INSTANCE.getSessionFactory( sessionFactoryUuid );
-                               SessionImplementor session = (SessionImplementor) sf.openSession();
-
-                               // TODO: On the next major release, add an
-                               // 'isJTA' or 'getTransactionFactory' method to Session.
-                               /*boolean isJTA = session.getTransactionCoordinator()
-                                               .getTransactionContext().getTransactionEnvironment()
-                                               .getTransactionFactory()
-                                               .compatibleWithJtaSynchronization();
-                               */
-                               boolean isJTA = session.getTransactionCoordinator().getTransactionCoordinatorBuilder().isJta();
-
-                               if ( !isJTA ) {
-                                       // Explicitly handle the transactions only if we're not in
-                                       // a JTA environment.  A lazy loading temporary session can
-                                       // be created even if a current session and transaction are
-                                       // open (ex: session.clear() was used).  We must prevent
-                                       // multiple transactions.
-                                       ( ( Session) session ).beginTransaction();
-                               }
-
-                               try {
-                                       target = session.immediateLoad( entityName, id );
-                               }
-                               finally {
-                                       // make sure the just opened temp session gets closed!
-                                       try {
-                                               if ( !isJTA ) {
-                                                       ( ( Session) session ).getTransaction().commit();
-                                               }
-                                               ( (Session) session ).close();
-                                       }
-                                       catch (Exception e) {
-                                               log.warn( "Unable to close temporary session used to load lazy proxy associated to no session" );
-                                       }
-                               }
-                               initialized = true;
-                               checkTargetState();
-                       }
-                       catch (Exception e) {
-                               e.printStackTrace();
-                               throw new LazyInitializationException( e.getMessage() );
-                       }
-               }
-               else if ( session.isOpen() && session.isConnected() ) {
-                       target = session.immediateLoad( entityName, id );
-                       initialized = true;
-                       checkTargetState();
-               }
-               else {
-                       throw new LazyInitializationException( "could not initialize proxy - Session was closed or disced" );
-               }
-       }
-
-       protected void prepareForPossibleSpecialSpecjInitialization() {
-               if ( session != null ) {
-                       specjLazyLoad = session.getFactory().getSettings().isInitializeLazyStateOutsideTransactionsEnabled();
-
-                       if ( specjLazyLoad && sessionFactoryUuid == null ) {
-                               try {
-                                       sessionFactoryUuid = (String) session.getFactory().getReference().get( "uuid" ).getContent();
-                               }
-                               catch (NamingException e) {
-                                       //not much we can do if this fails...
-                               }
-                       }
-               }
-       }
-
-       private void checkTargetState() {
-               if ( !unwrap ) {
-                       if ( target == null ) {
-                               getSession().getFactory().getEntityNotFoundDelegate().handleEntityNotFound( entityName, id );
-                       }
-               }
-       }
-
-       /**
-        * Getter for property 'connectedToSession'.
-        *
-        * @return Value for property 'connectedToSession'.
-        */
-       protected final boolean isConnectedToSession() {
-               return getProxyOrNull() != null;
-       }
-
-       private Object getProxyOrNull() {
-               final EntityKey entityKey = generateEntityKeyOrNull( getIdentifier(), session, getEntityName() );
-               if ( entityKey != null && session != null && session.isOpen() ) {
-                       return session.getPersistenceContext().getProxy( entityKey );
-               }
-               return null;
-       }
-
-       @Override
-       public final Object getImplementation() {
-               initialize();
-               return target;
-       }
-
-       @Override
-       public final void setImplementation(Object target) {
-               this.target = target;
-               initialized = true;
-       }
-
-       @Override
-       public final Object getImplementation(SessionImplementor s) throws HibernateException {
-               final EntityKey entityKey = generateEntityKeyOrNull( getIdentifier(), s, getEntityName() );
-               return (entityKey == null ? null : s.getPersistenceContext().getEntity( entityKey ));
-       }
-
-       /**
-        * Getter for property 'target'.
-        * <p/>
-        * Same as {@link #getImplementation()} except that this method will not force initialization.
-        *
-        * @return Value for property 'target'.
-        */
-       protected final Object getTarget() {
-               return target;
-       }
-
-       @Override
-       public final boolean isReadOnlySettingAvailable() {
-               return (session != null && !session.isClosed());
-       }
-
-       private void errorIfReadOnlySettingNotAvailable() {
-               if ( session == null ) {
-                       throw new TransientObjectException(
-                                       "Proxy is detached (i.e, session is null). The read-only/modifiable setting is only accessible when the proxy is associated with an open session."
-                       );
-               }
-               if ( session.isClosed() ) {
-                       throw new SessionException(
-                                       "Session is closed. The read-only/modifiable setting is only accessible when the proxy is associated with an open session."
-                       );
-               }
-       }
-
-       @Override
-       public final boolean isReadOnly() {
-               errorIfReadOnlySettingNotAvailable();
-               return readOnly;
-       }
-
-       @Override
-       public final void setReadOnly(boolean readOnly) {
-               errorIfReadOnlySettingNotAvailable();
-               // only update if readOnly is different from current setting
-               if ( this.readOnly != readOnly ) {
-                       final EntityPersister persister = session.getFactory().getEntityPersister( entityName );
-                       if ( !persister.isMutable() && !readOnly ) {
-                               throw new IllegalStateException( "cannot make proxies for immutable entities modifiable" );
-                       }
-                       this.readOnly = readOnly;
-                       if ( initialized ) {
-                               EntityKey key = generateEntityKeyOrNull( getIdentifier(), session, getEntityName() );
-                               if ( key != null && session.getPersistenceContext().containsEntity( key ) ) {
-                                       session.getPersistenceContext().setReadOnly( target, readOnly );
-                               }
-                       }
-               }
-       }
-
-       /**
-        * Get the read-only/modifiable setting that should be put in affect when it is
-        * attached to a session.
-        * <p/>
-        * This method should only be called during serialization when read-only/modifiable setting
-        * is not available (i.e., isReadOnlySettingAvailable() == false)
-        *
-        * @return null, if the default setting should be used;
-        *         true, for read-only;
-        *         false, for modifiable
-        *
-        * @throws IllegalStateException if isReadOnlySettingAvailable() == true
-        */
-       protected final Boolean isReadOnlyBeforeAttachedToSession() {
-               if ( isReadOnlySettingAvailable() ) {
-                       throw new IllegalStateException(
-                                       "Cannot call isReadOnlyBeforeAttachedToSession when isReadOnlySettingAvailable == true"
-                       );
-               }
-               return readOnlyBeforeAttachedToSession;
-       }
-
-       /**
-        * Set the read-only/modifiable setting that should be put in affect when it is
-        * attached to a session.
-        * <p/>
-        * This method should only be called during deserialization, before associating
-        * the proxy with a session.
-        *
-        * @param readOnlyBeforeAttachedToSession, the read-only/modifiable setting to use when
-        * associated with a session; null indicates that the default should be used.
-        *
-        * @throws IllegalStateException if isReadOnlySettingAvailable() == true
-        */
-       /* package-private */
-       final void setReadOnlyBeforeAttachedToSession(Boolean readOnlyBeforeAttachedToSession) {
-               if ( isReadOnlySettingAvailable() ) {
-                       throw new IllegalStateException(
-                                       "Cannot call setReadOnlyBeforeAttachedToSession when isReadOnlySettingAvailable == true"
-                       );
-               }
-               this.readOnlyBeforeAttachedToSession = readOnlyBeforeAttachedToSession;
-       }
-
-       @Override
-       public boolean isUnwrap() {
-               return unwrap;
-       }
-
-       @Override
-       public void setUnwrap(boolean unwrap) {
-               this.unwrap = unwrap;
-       }
-
-       /** Below is section of code which makes remote service calls */
-
-       private static CdmApplicationRemoteConfiguration configuration;
-       private static boolean remoting = false;
-
-       public static void setConfiguration(CdmApplicationRemoteConfiguration conf) {
-           remoting = true;
-           configuration = conf;
-       }
-
-
-       private void remoteInitialize() {
-
-               if(!initialized) {
-                       int classid = ((Integer)getIdentifier()).intValue();
-                       log.info("--> Remote Lazy Initializing Object " + getEntityName() + " with id " + classid);
-                       Class clazz;
-                       try {
-                               clazz = Class.forName(getEntityName());
-                       } catch (ClassNotFoundException e) {
-                               throw new HibernateException("Class for " + getEntityName() + " not found", e);
-                       }
-                       if(configuration == null) {
-                               throw new HibernateException("CdmApplicationRemoteConfiguration not initialized (null)");
-                       }
-                       ICachedCommonService cachedCommonService = configuration.getCachedCommonService();
-                       if(cachedCommonService == null) {
-                               throw new HibernateException("commonService not initialized (null)");
-                       }
-
-                       CdmBase cdmBase = cachedCommonService.find(clazz,classid);
-            if(ProxyUtils.isUninitializedProxy(cdmBase)) {
-                throw new HibernateException("CdmBase Object initialized but is still a proxy");
-            }
-                       setImplementation(cdmBase);
-
-               }
-       }
-
-       public static boolean isInitialized(AbstractLazyInitializer obj) {
-               return obj.initialized;
-       }
-}
+/* Hibernate, Relational Persistence for Idiomatic Java\r
+ *\r
+ * License: GNU Lesser General Public License (LGPL), version 2.1 or later.\r
+ * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.\r
+ */\r
+package org.hibernate.proxy;\r
+\r
+import java.io.Serializable;\r
+\r
+import org.hibernate.FlushMode;\r
+import org.hibernate.HibernateException;\r
+import org.hibernate.LazyInitializationException;\r
+import org.hibernate.SessionException;\r
+import org.hibernate.TransientObjectException;\r
+import org.hibernate.boot.spi.SessionFactoryOptions;\r
+import org.hibernate.engine.spi.EntityKey;\r
+import org.hibernate.engine.spi.PersistenceContext;\r
+import org.hibernate.engine.spi.SessionFactoryImplementor;\r
+import org.hibernate.engine.spi.SharedSessionContractImplementor;\r
+import org.hibernate.internal.CoreLogging;\r
+import org.hibernate.internal.CoreMessageLogger;\r
+import org.hibernate.internal.SessionFactoryRegistry;\r
+import org.hibernate.persister.entity.EntityPersister;\r
+\r
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration;\r
+import eu.etaxonomy.cdm.cache.ProxyUtils;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.taxeditor.service.ICachedCommonService;\r
+\r
+/**\r
+ * Convenience base class for lazy initialization handlers.  Centralizes the basic plumbing of doing lazy\r
+ * initialization freeing subclasses to acts as essentially adapters to their intended entity mode and/or\r
+ * proxy generation strategy.\r
+ *\r
+ * ##FIXME REMOTING## for adaptations needed for remoting search for "remote"\r
+ *\r
+ * @author Gavin King\r
+ */\r
+public abstract class AbstractLazyInitializer implements LazyInitializer {\r
+    private static final CoreMessageLogger LOG = CoreLogging.messageLogger( AbstractLazyInitializer.class );\r
+\r
+    private String entityName;\r
+    private Serializable id;\r
+    private Object target;\r
+    private boolean initialized;\r
+    private boolean readOnly;\r
+    private boolean unwrap;\r
+    private transient SharedSessionContractImplementor session;\r
+    private Boolean readOnlyBeforeAttachedToSession;\r
+\r
+    private String sessionFactoryUuid;\r
+    private boolean allowLoadOutsideTransaction;\r
+\r
+    /**\r
+     * @deprecated This constructor was initially intended for serialization only, and is not useful anymore.\r
+     * In any case it should not be relied on by user code.\r
+     * Subclasses should rather implement Serializable with an {@code Object writeReplace()} method returning\r
+     * a subclass of {@link AbstractSerializableProxy},\r
+     * which in turn implements Serializable and an {@code Object readResolve()} method\r
+     * instantiating the {@link AbstractLazyInitializer} subclass\r
+     * and calling {@link AbstractSerializableProxy#afterDeserialization(AbstractLazyInitializer)} on it.\r
+     * See {@link org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor} and\r
+     * {@link org.hibernate.proxy.pojo.bytebuddy.SerializableProxy} for examples.\r
+     */\r
+    @Deprecated\r
+    protected AbstractLazyInitializer() {\r
+    }\r
+\r
+    /**\r
+     * Main constructor.\r
+     *\r
+     * @param entityName The name of the entity being proxied.\r
+     * @param id The identifier of the entity being proxied.\r
+     * @param session The session owning the proxy.\r
+     */\r
+    protected AbstractLazyInitializer(String entityName, Serializable id, SharedSessionContractImplementor session) {\r
+        this.entityName = entityName;\r
+        this.id = id;\r
+        // initialize other fields depending on session state\r
+        if ( session == null ) {\r
+            unsetSession();\r
+        }\r
+        else {\r
+            setSession( session );\r
+        }\r
+    }\r
+\r
+    @Override\r
+    public final String getEntityName() {\r
+        return entityName;\r
+    }\r
+\r
+    @Override\r
+    public final Serializable getInternalIdentifier() {\r
+        return id;\r
+    }\r
+\r
+    @Override\r
+    public final Serializable getIdentifier() {\r
+        if ( isUninitialized() && isInitializeProxyWhenAccessingIdentifier() ) {\r
+            initialize();\r
+        }\r
+        return id;\r
+    }\r
+\r
+    private boolean isInitializeProxyWhenAccessingIdentifier() {\r
+        return getSession() != null && getSession().getFactory()\r
+                .getSessionFactoryOptions()\r
+                .getJpaCompliance().isJpaProxyComplianceEnabled();\r
+    }\r
+\r
+    @Override\r
+    public final void setIdentifier(Serializable id) {\r
+        this.id = id;\r
+    }\r
+\r
+    @Override\r
+    public final boolean isUninitialized() {\r
+        return !initialized;\r
+    }\r
+\r
+    @Override\r
+    public final SharedSessionContractImplementor getSession() {\r
+        return session;\r
+    }\r
+\r
+    @Override\r
+    public final void setSession(SharedSessionContractImplementor s) throws HibernateException {\r
+        if ( s != session ) {\r
+            // check for s == null first, since it is least expensive\r
+            if ( s == null ) {\r
+                unsetSession();\r
+            }\r
+            else if ( isConnectedToSession() ) {\r
+                //TODO: perhaps this should be some other RuntimeException...\r
+                LOG.attemptToAssociateProxyWithTwoOpenSessions(\r
+                    entityName,\r
+                    id\r
+                );\r
+                throw new HibernateException( "illegally attempted to associate proxy [" + entityName + "#" + id + "] with two open Sessions" );\r
+            }\r
+            else {\r
+                // s != null\r
+                session = s;\r
+                if ( readOnlyBeforeAttachedToSession == null ) {\r
+                    // use the default read-only/modifiable setting\r
+                    final EntityPersister persister = s.getFactory().getEntityPersister( entityName );\r
+                    setReadOnly( s.getPersistenceContext().isDefaultReadOnly() || !persister.isMutable() );\r
+                }\r
+                else {\r
+                    // use the read-only/modifiable setting indicated during deserialization\r
+                    setReadOnly( readOnlyBeforeAttachedToSession );\r
+                    readOnlyBeforeAttachedToSession = null;\r
+                }\r
+            }\r
+        }\r
+    }\r
+\r
+    private static EntityKey generateEntityKeyOrNull(Serializable id, SharedSessionContractImplementor s, String entityName) {\r
+        if ( id == null || s == null || entityName == null ) {\r
+            return null;\r
+        }\r
+        return s.generateEntityKey( id, s.getFactory().getEntityPersister( entityName ) );\r
+    }\r
+\r
+    @Override\r
+    public final void unsetSession() {\r
+        prepareForPossibleLoadingOutsideTransaction();\r
+        session = null;\r
+        readOnly = false;\r
+        readOnlyBeforeAttachedToSession = null;\r
+    }\r
+\r
+    @Override\r
+    public final void initialize() throws HibernateException {\r
+        // In remoting we are sure that session is null\r
+        // both when using property paths and switching off conversations\r
+        if(session == null && remoting) {\r
+            remoteInitialize();\r
+        }\r
+        if ( !initialized ) {\r
+            if ( allowLoadOutsideTransaction ) {\r
+                permissiveInitialization();\r
+            }\r
+            else if ( session == null ) {\r
+                throw new LazyInitializationException( "could not initialize proxy [" + entityName + "#" + id + "] - no Session" );\r
+            }\r
+            else if ( !session.isOpenOrWaitingForAutoClose() ) {\r
+                throw new LazyInitializationException( "could not initialize proxy [" + entityName + "#" + id + "] - the owning Session was closed" );\r
+            }\r
+            else if ( !session.isConnected() ) {\r
+                throw new LazyInitializationException( "could not initialize proxy [" + entityName + "#" + id + "] - the owning Session is disconnected" );\r
+            }\r
+            else {\r
+                target = session.immediateLoad( entityName, id );\r
+                initialized = true;\r
+                checkTargetState(session);\r
+            }\r
+        }\r
+        else {\r
+            checkTargetState(session);\r
+        }\r
+    }\r
+\r
+    protected void permissiveInitialization() {\r
+        if ( session == null ) {\r
+            //we have a detached collection that is set to null, reattach\r
+            if ( sessionFactoryUuid == null ) {\r
+                throw new LazyInitializationException( "could not initialize proxy [" + entityName + "#" + id + "] - no Session" );\r
+            }\r
+            try {\r
+                SessionFactoryImplementor sf = (SessionFactoryImplementor)\r
+                        SessionFactoryRegistry.INSTANCE.getSessionFactory( sessionFactoryUuid );\r
+                SharedSessionContractImplementor session = (SharedSessionContractImplementor) sf.openSession();\r
+                session.getPersistenceContext().setDefaultReadOnly( true );\r
+                session.setFlushMode( FlushMode.MANUAL );\r
+\r
+                boolean isJTA = session.getTransactionCoordinator().getTransactionCoordinatorBuilder().isJta();\r
+\r
+                if ( !isJTA ) {\r
+                    // Explicitly handle the transactions only if we're not in\r
+                    // a JTA environment.  A lazy loading temporary session can\r
+                    // be created even if a current session and transaction are\r
+                    // open (ex: session.clear() was used).  We must prevent\r
+                    // multiple transactions.\r
+                    session.beginTransaction();\r
+                }\r
+\r
+                try {\r
+                    target = session.immediateLoad( entityName, id );\r
+                    initialized = true;\r
+                    checkTargetState(session);\r
+                }\r
+                finally {\r
+                    // make sure the just opened temp session gets closed!\r
+                    try {\r
+                        if ( !isJTA ) {\r
+                            session.getTransaction().commit();\r
+                        }\r
+                        session.close();\r
+                    }\r
+                    catch (Exception e) {\r
+                        LOG.warn( "Unable to close temporary session used to load lazy proxy associated to no session" );\r
+                    }\r
+                }\r
+            }\r
+            catch (Exception e) {\r
+                LOG.error( "Initialization failure [" + entityName + "#" + id + "]", e );\r
+                throw new LazyInitializationException( e.getMessage() );\r
+            }\r
+        }\r
+        else if ( session.isOpenOrWaitingForAutoClose() && session.isConnected() ) {\r
+            target = session.immediateLoad( entityName, id );\r
+            initialized = true;\r
+            checkTargetState(session);\r
+        }\r
+        else {\r
+            throw new LazyInitializationException( "could not initialize proxy [" + entityName + "#" + id + "] - Session was closed or disced" );\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Attempt to initialize the proxy without loading anything from the database.\r
+     *\r
+     * This will only have any effect if the proxy is still attached to a session,\r
+     * and the entity being proxied has been loaded and added to the persistence context\r
+     * of that session since the proxy was created.\r
+     */\r
+    public final void initializeWithoutLoadIfPossible() {\r
+        if ( !initialized && session != null && session.isOpenOrWaitingForAutoClose() ) {\r
+            final EntityKey key = session.generateEntityKey(\r
+                    getInternalIdentifier(),\r
+                    session.getFactory().getMetamodel().entityPersister( getEntityName() )\r
+            );\r
+            final Object entity = session.getPersistenceContextInternal().getEntity( key );\r
+            if ( entity != null ) {\r
+                setImplementation( entity );\r
+            }\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Initialize internal state based on the currently attached session,\r
+     * in order to be ready to load data even after the proxy is detached from the session.\r
+     *\r
+     * This method only has any effect if\r
+     * {@link SessionFactoryOptions#isInitializeLazyStateOutsideTransactionsEnabled()} is {@code true}.\r
+     */\r
+    protected void prepareForPossibleLoadingOutsideTransaction() {\r
+        if ( session != null ) {\r
+            allowLoadOutsideTransaction = session.getFactory().getSessionFactoryOptions().isInitializeLazyStateOutsideTransactionsEnabled();\r
+\r
+            if ( allowLoadOutsideTransaction && sessionFactoryUuid == null ) {\r
+                sessionFactoryUuid = session.getFactory().getUuid();\r
+            }\r
+        }\r
+    }\r
+\r
+    private void checkTargetState(SharedSessionContractImplementor session) {\r
+        if ( !unwrap ) {\r
+            if ( target == null ) {\r
+                session.getFactory().getEntityNotFoundDelegate().handleEntityNotFound( entityName, id );\r
+            }\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Getter for property 'connectedToSession'.\r
+     *\r
+     * @return Value for property 'connectedToSession'.\r
+     */\r
+    protected final boolean isConnectedToSession() {\r
+        return getProxyOrNull() != null;\r
+    }\r
+\r
+    private Object getProxyOrNull() {\r
+        final EntityKey entityKey = generateEntityKeyOrNull( getInternalIdentifier(), session, getEntityName() );\r
+        if ( entityKey != null && session != null && session.isOpenOrWaitingForAutoClose() ) {\r
+            return session.getPersistenceContextInternal().getProxy( entityKey );\r
+        }\r
+        return null;\r
+    }\r
+\r
+    @Override\r
+    public final Object getImplementation() {\r
+        initialize();\r
+        return target;\r
+    }\r
+\r
+    @Override\r
+    public final void setImplementation(Object target) {\r
+        this.target = target;\r
+        initialized = true;\r
+    }\r
+\r
+    @Override\r
+    public final Object getImplementation(SharedSessionContractImplementor s) throws HibernateException {\r
+        final EntityKey entityKey = generateEntityKeyOrNull( getInternalIdentifier(), s, getEntityName() );\r
+        return ( entityKey == null ? null : s.getPersistenceContext().getEntity( entityKey ) );\r
+    }\r
+\r
+    /**\r
+     * Getter for property 'target'.\r
+     * <p/>\r
+     * Same as {@link #getImplementation()} except that this method will not force initialization.\r
+     *\r
+     * @return Value for property 'target'.\r
+     */\r
+    protected final Object getTarget() {\r
+        return target;\r
+    }\r
+\r
+    @Override\r
+    public final boolean isReadOnlySettingAvailable() {\r
+        return (session != null && !session.isClosed());\r
+    }\r
+\r
+    private void errorIfReadOnlySettingNotAvailable() {\r
+        if ( session == null ) {\r
+            throw new TransientObjectException(\r
+                    "Proxy [" + entityName + "#" + id + "] is detached (i.e, session is null). The read-only/modifiable setting is only accessible when the proxy is associated with an open session."\r
+            );\r
+        }\r
+        if ( !session.isOpenOrWaitingForAutoClose() ) {\r
+            throw new SessionException(\r
+                    "Session is closed. The read-only/modifiable setting is only accessible when the proxy [" + entityName + "#" + id + "] is associated with an open session."\r
+            );\r
+        }\r
+    }\r
+\r
+    @Override\r
+    public final boolean isReadOnly() {\r
+        errorIfReadOnlySettingNotAvailable();\r
+        return readOnly;\r
+    }\r
+\r
+    @Override\r
+    public final void setReadOnly(boolean readOnly) {\r
+        errorIfReadOnlySettingNotAvailable();\r
+        // only update if readOnly is different from current setting\r
+        if ( this.readOnly != readOnly ) {\r
+            final EntityPersister persister = session.getFactory().getEntityPersister( entityName );\r
+            if ( !persister.isMutable() && !readOnly ) {\r
+                throw new IllegalStateException( "cannot make proxies [" + entityName + "#" + id + "] for immutable entities modifiable" );\r
+            }\r
+            this.readOnly = readOnly;\r
+            if ( initialized ) {\r
+                EntityKey key = generateEntityKeyOrNull( getInternalIdentifier(), session, getEntityName() );\r
+                final PersistenceContext persistenceContext = session.getPersistenceContext();\r
+                if ( key != null && persistenceContext.containsEntity( key ) ) {\r
+                    persistenceContext.setReadOnly( target, readOnly );\r
+                }\r
+            }\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Get the read-only/modifiable setting that should be put in affect when it is\r
+     * attached to a session.\r
+     * <p/>\r
+     * This method should only be called during serialization when read-only/modifiable setting\r
+     * is not available (i.e., isReadOnlySettingAvailable() == false)\r
+     *\r
+     * @return null, if the default setting should be used;\r
+     *         true, for read-only;\r
+     *         false, for modifiable\r
+     *\r
+     * @throws IllegalStateException if isReadOnlySettingAvailable() == true\r
+     */\r
+    public final Boolean isReadOnlyBeforeAttachedToSession() {\r
+        if ( isReadOnlySettingAvailable() ) {\r
+            throw new IllegalStateException(\r
+                    "Cannot call isReadOnlyBeforeAttachedToSession when isReadOnlySettingAvailable == true [" + entityName + "#" + id + "]"\r
+            );\r
+        }\r
+        return readOnlyBeforeAttachedToSession;\r
+    }\r
+\r
+    /**\r
+     * Get whether the proxy can load data even\r
+     * if it's not attached to a session with an ongoing transaction.\r
+     *\r
+     * This method should only be called during serialization,\r
+     * and only makes sense after a call to {@link #prepareForPossibleLoadingOutsideTransaction()}.\r
+     *\r
+     * @return {@code true} if out-of-transaction loads are allowed, {@code false} otherwise.\r
+     */\r
+    protected boolean isAllowLoadOutsideTransaction() {\r
+        return allowLoadOutsideTransaction;\r
+    }\r
+\r
+    /**\r
+     * Get the session factory UUID.\r
+     *\r
+     * This method should only be called during serialization,\r
+     * and only makes sense after a call to {@link #prepareForPossibleLoadingOutsideTransaction()}.\r
+     *\r
+     * @return the session factory UUID.\r
+     */\r
+    protected String getSessionFactoryUuid() {\r
+        return sessionFactoryUuid;\r
+    }\r
+\r
+    /**\r
+     * Restore settings that are not passed to the constructor,\r
+     * but are still preserved during serialization.\r
+     *\r
+     * This method should only be called during deserialization, before associating\r
+     * the proxy with a session.\r
+     *\r
+     * @param readOnlyBeforeAttachedToSession the read-only/modifiable setting to use when\r
+     * associated with a session; null indicates that the default should be used.\r
+     * @param sessionFactoryUuid the session factory uuid, to be used if {@code allowLoadOutsideTransaction} is {@code true}.\r
+     * @param allowLoadOutsideTransaction whether the proxy can load data even\r
+     * if it's not attached to a session with an ongoing transaction.\r
+     *\r
+     * @throws IllegalStateException if isReadOnlySettingAvailable() == true\r
+     */\r
+    /* package-private */\r
+    final void afterDeserialization(Boolean readOnlyBeforeAttachedToSession,\r
+            String sessionFactoryUuid, boolean allowLoadOutsideTransaction) {\r
+        if ( isReadOnlySettingAvailable() ) {\r
+            throw new IllegalStateException(\r
+                    "Cannot call afterDeserialization when isReadOnlySettingAvailable == true [" + entityName + "#" + id + "]"\r
+            );\r
+        }\r
+        this.readOnlyBeforeAttachedToSession = readOnlyBeforeAttachedToSession;\r
+\r
+        this.sessionFactoryUuid = sessionFactoryUuid;\r
+        this.allowLoadOutsideTransaction = allowLoadOutsideTransaction;\r
+    }\r
+\r
+    @Override\r
+    public boolean isUnwrap() {\r
+        return unwrap;\r
+    }\r
+\r
+    @Override\r
+    public void setUnwrap(boolean unwrap) {\r
+        this.unwrap = unwrap;\r
+    }\r
+\r
+    /** Below is section of code which makes remote service calls */\r
+\r
+    private static CdmApplicationRemoteConfiguration configuration;\r
+    private static boolean remoting = false;\r
+\r
+    public static void setConfiguration(CdmApplicationRemoteConfiguration conf) {\r
+        remoting = true;\r
+        configuration = conf;\r
+    }\r
+\r
+\r
+    private void remoteInitialize() {\r
+\r
+        if(!initialized) {\r
+            int classid = ((Integer)getIdentifier()).intValue();\r
+            LOG.info("--> Remote Lazy Initializing Object " + getEntityName() + " with id " + classid);\r
+            Class clazz;\r
+            try {\r
+                clazz = Class.forName(getEntityName());\r
+            } catch (ClassNotFoundException e) {\r
+                throw new HibernateException("Class for " + getEntityName() + " not found", e);\r
+            }\r
+            if(configuration == null) {\r
+                throw new HibernateException("CdmApplicationRemoteConfiguration not initialized (null)");\r
+            }\r
+            ICachedCommonService cachedCommonService = configuration.getCachedCommonService();\r
+            if(cachedCommonService == null) {\r
+                throw new HibernateException("commonService not initialized (null)");\r
+            }\r
+\r
+            CdmBase cdmBase = cachedCommonService.find(clazz,classid);\r
+            if(ProxyUtils.isUninitializedProxy(cdmBase)) {\r
+                throw new HibernateException("CdmBase Object initialized but is still a proxy");\r
+            }\r
+            setImplementation(cdmBase);\r
+\r
+        }\r
+    }\r
+\r
+    public static boolean isInitialized(AbstractLazyInitializer obj) {\r
+        return obj.initialized;\r
+    }\r
+}\r
index 3004b7f0d0334e83cfa85ceb82f23daa8d880765..8fe0e938f16e8144aec5e8b0cf349bfe005d29bb 100644 (file)
@@ -8,18 +8,22 @@
 */
 package org.springframework.remoting.httpinvoker;
 
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.HashSet;
 import java.util.Set;
 
 import org.aopalliance.intercept.MethodInvocation;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.springframework.remoting.support.RemoteInvocation;
 import org.springframework.remoting.support.RemoteInvocationResult;
 
-import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.taxeditor.remoting.RemoteExecutionTimestampsUtil;
 import eu.etaxonomy.taxeditor.service.IRemoteInvocationTermCacher;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
 
@@ -29,15 +33,15 @@ import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
  * <b>Performance measurement:</b></br>
  * Supports measuring the request processing time at the client side. Setting "{@value #PROP_KEY_MEASURE_DURATION}"
  * as system parameter enables the measurement. To make the measurements appear for each request in the log, the logging <code>Level</code>
- * for <code>HttpInvokerProxyFactoryBean</code> needs to be set to at least {@link org.apache.log4j.Level#INFO}. Otherwise the duration is
- * only reported in case of errors.
+ * for <code>HttpInvokerProxyFactoryBean</code> needs to be set to at least {@link org.apache.logging.log4j.Level#INFO}.
+ * Otherwise the duration is only reported in case of errors.
  *
  * @author a.kohlbecker
  * @since Feb 4, 2020
  */
 public class CachingHttpInvokerProxyFactoryBean extends HttpInvokerProxyFactoryBean {
 
-    private static final Logger logger = Logger.getLogger(CachingHttpInvokerProxyFactoryBean.class);
+    private static final Logger logger = LogManager.getLogger(CachingHttpInvokerProxyFactoryBean.class);
 
     private static final String PROP_KEY_MEASURE_DURATION = "remoting.httpinvoker.measureDuration";
 
@@ -55,6 +59,7 @@ public class CachingHttpInvokerProxyFactoryBean extends HttpInvokerProxyFactoryB
         persistingMethods.add("findWithUpdate");
         persistingMethods.add("loadWithUpdate");
         measureDuration = System.getProperty(PROP_KEY_MEASURE_DURATION) != null;
+        //measureDuration = true;
     }
 
     @Override
@@ -73,7 +78,9 @@ public class CachingHttpInvokerProxyFactoryBean extends HttpInvokerProxyFactoryB
         }
 
         // A)  if this is a term service call for term lists try to get the terms from the cache
-        if(ITermService.class.isAssignableFrom(originalInvocation.getMethod().getDeclaringClass())){
+
+
+        if(ITermService.class.isAssignableFrom(this.getServiceInterface())){
             return handleTermRequest(invocation, originalInvocation);
         }
         // B) handle other service calls
@@ -84,21 +91,28 @@ public class CachingHttpInvokerProxyFactoryBean extends HttpInvokerProxyFactoryB
 
     private RemoteInvocationResult handleGeneralRequest(RemoteInvocation invocation,
             MethodInvocation originalInvocation) throws Exception {
+
         RemoteInvocationResult invocationResult = doExecuteRequest(invocation, originalInvocation);
         if(invocationResult.getValue() != null && !invocationResult.hasException()) {
 
+            //Note AM (2022-06-15): the debug information seem to be misleading (also because cache() is not used/implemented anymore)
             if(persistingMethods.contains(invocation.getMethodName())) {
                 invocationResult = new RemoteInvocationResult(cdmEntitySessionManager().load(invocationResult.getValue(), true));
-                logger.debug("Entity cached with updating cached data");
+                if (logger.isDebugEnabled()){logger.debug("Entity cached with updating cached data");}
             } else if(invocationResult.getValue() instanceof UpdateResult){
                 UpdateResult result = (UpdateResult)invocationResult.getValue();
                 if(result.isOk()){
-                    logger.debug("Entity from UpdateResult stored in cache with updating cached data" );
-                    cdmEntitySessionManager().load(result, true);
+                    if (logger.isDebugEnabled()){logger.debug("Entity from UpdateResult stored in cache with updating cached data" );}
+                    try {
+                        cdmEntitySessionManager().load(result, true);
+                    } catch (Exception e) {
+                        String message = "Error when trying to add update result to session cache in TaxEditor";
+                        throw new RuntimeException(message, e);
+                    }
                 }
             } else {
                 invocationResult = new RemoteInvocationResult(cdmEntitySessionManager().load(invocationResult.getValue(), false));
-                logger.debug("Entity cached without updating cached data" );
+                if (logger.isDebugEnabled()){logger.debug("Entity cached without updating cached data" );}
             }
         }
         cache(invocation, invocationResult);
@@ -111,13 +125,19 @@ public class CachingHttpInvokerProxyFactoryBean extends HttpInvokerProxyFactoryB
 
     private RemoteInvocationResult handleTermRequest(RemoteInvocation invocation, MethodInvocation originalInvocation)
             throws Exception {
+
         RemoteInvocationResult invocationResult = null;
         if(remoteInvocationTermCacher != null){
             invocationResult = remoteInvocationTermCacher.termsFromCache(invocation);
             if(invocationResult == null) {
                 invocationResult = doExecuteRequest(invocation, originalInvocation);
-                remoteInvocationTermCacher.cacheTerms(invocation, invocationResult);
-                logger.debug("Term list loaded and cached");
+                try {
+                    remoteInvocationTermCacher.cacheTerms(invocation, invocationResult);
+                } catch (Exception e) {
+                    String message = "Error when caching terms in TaxEditor";
+                    throw new RuntimeException(message, e);
+                }
+                logger.warn("Term list loaded and cached");
             } else {
                 logger.debug("Term list found in cache, not loaded");
             }
@@ -136,10 +156,16 @@ public class CachingHttpInvokerProxyFactoryBean extends HttpInvokerProxyFactoryB
             startTime = System.currentTimeMillis();
         }
         try {
+            //setLastMethod can not be done later as invocation is not avaiable later or super class method are final
+            RemoteExecutionTimestampsUtil.setLastMethod(invocation.getMethodName());
             RemoteInvocationResult result = super.executeRequest(invocation, originalInvocation);
             if(measureDuration){
                 double duration = System.currentTimeMillis() - startTime;
-                logger.info(getServiceUrl() + "#" + invocation.getMethodName() + " [" + duration + " ms]");
+
+                LocalDateTime date = LocalDateTime.now();
+                String dateTimeStr = date.format(DateTimeFormatter.ISO_DATE_TIME);
+                System.out.println(dateTimeStr + ": "+ getServiceUrl() + "#" + invocation.getMethodName() + " [" + duration + " ms]");
+                logger.info(dateTimeStr + getServiceUrl() + "#" + invocation.getMethodName() + " [" + duration + " ms]");
             }
             return result;
         } catch(Exception e) {
@@ -161,7 +187,7 @@ public class CachingHttpInvokerProxyFactoryBean extends HttpInvokerProxyFactoryB
     private ICdmEntitySessionManager cdmEntitySessionManager(){
         if(cdmEntitySessionManager == null) {
             cdmEntitySessionManager =
-                    ((CdmApplicationRemoteController)CdmApplicationState.getCurrentAppConfig()).getCdmEntitySessionManager();
+                    CdmApplicationState.getCurrentAppConfig().getCdmEntitySessionManager();
         }
         return cdmEntitySessionManager;
     }
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/localApplicationContext.xml b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/localApplicationContext.xml
deleted file mode 100644 (file)
index c1d6b8a..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
-  xmlns:tx="http://www.springframework.org/schema/tx"
-  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
-    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
-    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
-
-  
-  <!-- Default application context and term initializer -->
-  <import resource="classpath:/eu/etaxonomy/cdm/defaultApplicationContext.xml" />
-  <bean id="persistentTermInitializer" class="eu.etaxonomy.cdm.database.PersistentTermInitializer">
-    <property name="omit" value="false" />
-  </bean>
-  
-  
-  
-  <bean id="cdmEntitySessionManager" class="eu.etaxonomy.taxeditor.session.CdmEntitySessionManager" />
-  
-  <import resource="classpath:/eu/etaxonomy/cdm/remote.xml" />
-  <import resource="classpath:eu/etaxonomy/cdm/remote/json/jsonConfigurations.xml" />
-
-  <context:component-scan base-package="eu/etaxonomy/cdm/ext" />
-
-  <context:component-scan base-package="eu/etaxonomy/cdm/remote">
-    <context:exclude-filter type="regex"
-      expression="eu\.etaxonomy\.cdm\.remote\.config\.DataSourceConfigurer" />
-    <context:exclude-filter type="regex"
-      expression="eu\.etaxonomy\.cdm\.remote\.config\.LoggingConfigurer" />
-    <context:exclude-filter type="regex"
-      expression="eu\.etaxonomy\.cdm\.remote\.view\.PatternViewResolver" />
-    <context:exclude-filter type="regex"
-      expression="eu\.etaxonomy\.cdm\.remote\.vaadin\..*" />
-    <context:exclude-filter type="regex"
-      expression="eu\.etaxonomy\.cdm\.remote\.controller\..*Portal.*" />
-  </context:component-scan>
-</beans>
index e523362536904251b8e45738b920e23fd8ef3040..8cfe50d62ba8c699d17554f885e32ddacbd31b77 100644 (file)
@@ -2,9 +2,9 @@
 <beans xmlns="http://www.springframework.org/schema/beans"\r
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"\r
   xmlns:tx="http://www.springframework.org/schema/tx"\r
-  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
-    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
-    http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context-3.1.xsd">\r
+  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
+    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
+    http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context-4.3.xsd">\r
     \r
   <!--\r
    UNUSED: replaced by CdmApplicationRemoteConfiguration but CdmApplicationRemoteConfiguration should be transformed into \r
@@ -59,7 +59,7 @@
     class="org.springframework.security.authentication.ProviderManager">\r
     <property name="providers">\r
       <list>\r
-        <ref local="daoAuthenticationProvider" />\r
+        <ref bean="daoAuthenticationProvider" />\r
       </list>\r
     </property>\r
   </bean>\r
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j.xml b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j.xml
deleted file mode 100644 (file)
index 14b670b..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
-  debug="false">
-  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
-    <param name="Target" value="System.out" />
-    <layout class="org.apache.log4j.PatternLayout">
-      <param name="ConversionPattern" value="%d %p [%c] - %m%n" />
-    </layout>
-    <filter class="org.apache.log4j.filter.ExpressionFilter">
-      <param name="expression"
-        value="msg like  '.*has a maxElementsInMemory of 0. This might lead to performance degradation or OutOfMemoryError at Terracotta client.*'" />
-      <param name="acceptOnMatch" value="false" />
-    </filter>
-    <filter class="org.apache.log4j.filter.ExpressionFilter">
-      <param name="expression"
-        value="msg like  '.*object references was reached while attempting to calculate the size of the object graph.*'" />
-      <param name="acceptOnMatch" value="false" />
-    </filter>
-  </appender>
-  <root>
-    <priority value="WARN" />
-    <appender-ref ref="CONSOLE" />
-  </root>
-<!--   <logger name="org.hibernate.proxy.AbstractLazyInitializer"> -->
-<!--     <level value="info" /> -->
-<!--   </logger> -->
-<!--   <logger -->
-<!--     name="org.hibernate.collection.internal.AbstractPersistentCollection"> -->
-<!--     <level value="info" /> -->
-<!--   </logger> -->
-<!--   <logger -->
-<!--     name="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor"> -->
-<!--     <level value="info" /> -->
-<!--   </logger> -->
-<!--   <logger -->
-<!--     name="eu.etaxonomy.taxeditor.session.DefaultNewEntityListener"> -->
-<!--     <level value="info" /> -->
-<!--   </logger> -->
-<!--     <logger -->
-<!--     name="eu.etaxonomy.taxeditor.util.ProgressMonitorClientManager"> -->
-<!--     <level value="info" /> -->
-<!--   </logger> -->
-</log4j:configuration>
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j2.xml b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j2.xml
new file mode 100755 (executable)
index 0000000..cc5ea9b
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN">
+  <Appenders>
+    <File name="A1" fileName="A1.log" append="true">
+      <XMLLayout/>  <!-- maybe we need to add jackson-dataformat-xml dependency for this -->
+    </File>
+   <!-- <Console name="STDOUT" target="System.out">
+      <PatternLayout  pattern="%d %p [%c] - %m%n"/>
+      <Filters>
+        <RegexFilter regex=".*has a maxElementsInMemory of 0. This might lead to performance degradation or OutOfMemoryError at Terracotta client.*"
+          onMatch="DENY" onMismatch="NEUTRALonMis"/>
+        <RegexFilter regex=".*object references was reached while attempting to calculate the size of the object graph.*"
+          onMatch="DENY"/>
+      </Filters>      
+    </Console>-->
+  </Appenders>
+  <Loggers>
+    <Root level="warn">
+      <AppenderRef ref="A1"/>
+      <!-- <AppenderRef ref="STDOUT"/> -->
+    </Root>
+    <Logger name="eu.etaxonomy.taxeditor.handler.update.UpdateHandler" level="info"/>
+    <Logger name="org.eclipse.equinox.p2.operations.ProvisioningSession" level="info"/>
+    <Logger name="org.eclipse.equinox.internal.p2.engine.ProvisioningPlan" level="info"/>
+    <Logger name="org.springframework.remoting.httpinvoker.CachingHttpInvokerProxyFactoryBean" level="info"/>
+    <!-- ### NOT USED 
+    <Logger name="org.hibernate.proxy.AbstractLazyInitializer" level="info"/>
+    <Logger name="org.hibernate.collection.internal.AbstractPersistentCollection" level="info"/>
+    <Logger name="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor" level="info"/>
+    <Logger name="eu.etaxonomy.taxeditor.session.DefaultNewEntityListener" level="info"/>
+     --> 
+  </Loggers> 
+</Configuration>
\ No newline at end of file
index db441616093b6fbd10531d4797615ce3d97f46c2..2cfe64f2e26fdac71353fa233083d383f793ac5f 100644 (file)
@@ -11,7 +11,7 @@ package eu.etaxonomy.taxeditor.editor.name.container;
 
 import java.util.Iterator;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.IRegion;
@@ -62,7 +62,7 @@ import org.eclipse.ui.forms.widgets.TableWrapData;
  * @version 1.0
  */
 public class RulerWithIcon implements IVerticalRuler, IVerticalRulerExtension {
-       private static final Logger logger = Logger.getLogger(RulerWithIcon.class);
+       private static final Logger logger = LogManager.getLogger(RulerWithIcon.class);
 
        /**
         * Internal listener class.
index 578dcb9097b2378516608ca0f1b07ca3f98dc276..605b7511b77dc51f454115195772a5c80a54b43c 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.16.0
+Bundle-Version: 5.42.0
 Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin
 Bundle-Vendor: %Bundle-Vendor.0
 Bundle-Localization: OSGI-INF/l10n/plugin
@@ -27,11 +27,10 @@ Require-Bundle: org.eclipse.ui,
  org.eclipse.core.expressions,
  org.eclipse.ui.forms,
  eu.etaxonomy.taxeditor.store,
- eu.etaxonomy.taxeditor.bulkeditor,
  eu.etaxonomy.taxeditor.workbench,
+ eu.etaxonomy.taxeditor.cdmlib,
  org.eclipse.zest.core,
  org.eclipse.zest.layouts,
- eu.etaxonomy.taxeditor.cdmlib,
  org.eclipse.ui.ide,
  org.eclipse.e4.ui.workbench,
  org.eclipse.e4.core.di,
@@ -40,13 +39,16 @@ Require-Bundle: org.eclipse.ui,
  org.eclipse.e4.core.commands,
  org.eclipse.e4.core.services,
  org.eclipse.e4.core.contexts,
+ org.eclipse.equinox.p2.ui,
  org.eclipse.nebula.widgets.nattable.core,
  org.eclipse.nebula.widgets.nattable.extension.glazedlists,
+ org.eclipse.nebula.widgets.nattable.extension.e4;bundle-version="1.1.0",
  ca.odell.glazedlists,
- org.eclipse.nebula.widgets.nattable.extension.e4;bundle-version="1.1.0"
+ eu.etaxonomy.taxeditor.bulkeditor
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: javax.annotation;version="1.0.0";resolution:=optional,
+Import-Package: eu.etaxonomy.taxeditor.model,
+ javax.annotation;version="1.2.0",
  javax.inject;version="1.0.0",
  org.apache.commons.collections4.map,
  org.eclipse.core.databinding.beans,
index b3a1f93e0a37a2493631b4deb692f3e7ea057f44..69032cfda60c29b5172a69047860c2438dc63a65 100755 (executable)
@@ -4,7 +4,7 @@ Bundle-Name.0 = EDIT Taxonomic Editor - Editor Bundle
 command.name.17 = Set Basionym\r
 command.name.18 = Remove Basionym\r
 editor.name = Multipage Taxon Editor\r
-editor.name.0 = Taxon Name Editor\r
+editor.name.0 = Taxon Editor\r
 editor.name.1 = Key\r
 editor.name.2 = Polytomous Key Graph Editor\r
 editor.name.3 = Polytomous Key List Editor\r
@@ -49,9 +49,9 @@ command.label.58 = Before the Current Node
 command.label.24 = New Alternative\r
 command.label.25 = Refresh\r
 command.label.26 = Delete\r
-command.label.27 = New Factual Data Set\r
+command.label.27 = New Factual Dataset\r
 menu.label.1 = New\r
-command.label.28 = Move Factual Data Set to other Taxon\r
+command.label.28 = Move Factual Dataset to other Taxon\r
 command.label.29 = Move Fact(s) to other Taxon\r
 command.label.30 = Delete\r
 command.label.31 = Save\r
@@ -72,7 +72,7 @@ command.label.43 = Open Related Concept
 command.label.44 = Delete\r
 command.label.45 = Edit Authorities\r
 extension.name = Name Commands\r
-category.name.0 = -- Name Editor\r
+category.name.0 = -- Taxon Editor\r
 command.name = Open Parent\r
 command.name.0 = Create Homotypic Synonym\r
 command.name.1 = Create Heterotypic Synonym\r
@@ -86,14 +86,15 @@ command.name.7 = Set Basionym / Original Combination
 command.name.8 = Remove Basionym / Original Combination\r
 command.name.9 = Delete All Empty Names\r
 category.name.1 = -- Factual\r
-command.name.10 = Create Factual Data Set\r
-command.name.11 = New Factual Data Set\r
-command.name.13 = Move Factual Data Set to other Taxon\r
-command.name.131 = Move Factual Data Set to other Taxon and set Name in Sources if empty\r
-command.label.131 = Move Factual Data Set to other Taxon and set Name in Sources if empty\r
+command.name.10 = Create Factual Dataset\r
+command.name.11 = New Factual Dataset\r
+command.name.13 = Move Factual Dataset to other Taxon\r
+command.name.131 = Move Factual Dataset to other Taxon and set Name in Sources if empty\r
+command.label.131 = Move Factual Dataset to other Taxon and set Name in Sources if empty\r
 command.name.132 = Move Fact(s) to other Taxon and set Name in Sources if empty\r
 command.label.132 = Move Fact(s) to other Taxon and set Name in Sources if empty\r
 command.name.12 = Move Fact(s) to other Taxon\r
+command.name.133 = Set as default factual data set\r
 category.name.2 = -- New Uses\r
 command.name.14 = New Use\r
 command.name.15 = New Use Summary\r
@@ -190,71 +191,71 @@ command.name.COPY_SINGLE_READ_TO_CLIPBOARD = Copy SingleRead to clipboard
 command.name.REUSE_SINGLE_READ = Reuse SingleRead\r
 command.name.REMOVE_SINGLE_READ = Remove SingleRead from sequence\r
 \r
-viewCommandMapping.viewerName.NAME_EDITOR = Name Editor\r
+viewCommandMapping.viewerName.NAME_EDITOR = Taxon Editor\r
 viewCommandMapping.viewerName.SPECIMEN_EDITOR = Specimen Editor (tree)\r
 viewCommandMapping.viewerName.CHECKLIST_EDITOR = Distribution Editor\r
 command.name.OPEN_EDITOR_FOR_TYPE_SPECIMEN = Open specimen tree editor for type specimen
 menu.label.5 = Add...
 handledmenuitem.label.1 = Specimen
 handledmenuitem.label.2 = Tissue Sample
-handledmenuitem.label.3 = DNA Sample
-handledmenuitem.label.4 = Consensus Sequence
+handledmenuitem.label.3 = DNA sample
+handledmenuitem.label.4 = Consensus sequence
 menu.label.6 = Media
-handledmenuitem.label.5 = Media Specimen
-handledmenuitem.label.6 = Existing Media
-handledmenuitem.label.7 = Single Read
-handledmenuitem.label.8 = Create Field Unit For selected taxon
-handledmenuitem.label.9 = Create Field Unit
-command.commandname.1 = Create Field Unit
-command.commandname.2 = Add Specimen
-command.commandname.3 = Add Tissue Sample
-command.commandname.4 = Add DNA Sample
-command.commandname.5 = Add Existing Media
-command.commandname.6 = Add Media Specimen
-command.commandname.7 = Add Consensus Sequence
-command.commandname.8 = Add Single Read
+handledmenuitem.label.5 = Media specimen
+handledmenuitem.label.6 = Existing media
+handledmenuitem.label.7 = Single read
+handledmenuitem.label.8 = Create field unit for selected taxon
+handledmenuitem.label.9 = Create field unit
+command.commandname.1 = Create field unit
+command.commandname.2 = Add specimen
+command.commandname.3 = Add tissue sample
+command.commandname.4 = Add DNA sample
+command.commandname.5 = Add existing media
+command.commandname.6 = Add media specimen
+command.commandname.7 = Add consensus sequence
+command.commandname.8 = Add single read
 
 dynamicmenucontribution.label.1 = Open in...
 partdescriptor.label.1 = Character Editor
 handledmenuitem.label.10 = Remove Character
 handledtoolitem.label.1 = Collapse
 handledtoolitem.label.2 = Expand
-partdescriptor.label.2 = Taxon Name Editor
+partdescriptor.label.2 = Taxon Editor
 handledtoolitem.label.3 = Collapse
 handledtoolitem.label.4 = Expand
 handledmenuitem.label.11 = Open Graph
-partdescriptor.label.3 = Descriptive Data Set Editor
-partdescriptor.tooltip.1 = Descriptive Data Set Editor
+partdescriptor.label.3 = Descriptive Dataset Editor
+partdescriptor.tooltip.1 = Descriptive Dataset Editor
 partdescriptor.label.4 = Character Matrix
 partdescriptor.tooltip.2 = Character Matrix
 menu.label.7 = Character Matrix
 handledmenuitem.label.12 = Export
-partdescriptor.label.5 = Descriptive Data Set Navigator
+partdescriptor.label.5 = Descriptive Dataset Navigator
 dynamicmenucontribution.label.2 = Open in...
-handledmenuitem.label.13 = New Descriptive Data Set
-handledmenuitem.tooltip.1 = New Descriptive Data Set
-handledmenuitem.label.14 = Delete Descriptive Data Set
-handledmenuitem.tooltip.2 = Delete Descriptive Data Set
+handledmenuitem.label.13 = New Descriptive Dataset
+handledmenuitem.tooltip.1 = New Descriptive Dataset
+handledmenuitem.label.14 = Delete Descriptive Dataset
+handledmenuitem.tooltip.2 = Delete Descriptive Dataset
 command.commandname.9 = Delete
 command.commandname.10 = Delete Media
 command.commandname.11 = Open related concept in bulk editor
 command.commandname.12 = Open Graph Editor
 command.commandname.13 = Open Specimen Editor
 command.commandname.14 = Open Character Matrix
-command.commandname.15 = Open Descriptive Data Set Editor
+command.commandname.15 = Open Descriptive Dataset Editor
 command.commandname.16 = Export Character Matrix
-command.commandname.17 = New Descriptive Data Set
-command.commandname.18 = Delete Descriptive Data Set
+command.commandname.17 = New Descriptive Dataset
+command.commandname.18 = Delete Descriptive Dataset
 command.commandname.19 = Refresh
 command.commandname.20 = Open specimen tree editor for gathering event
-handledmenuitem.label.15 = Descriptive Data Sets
+handledmenuitem.label.15 = Descriptive Datasets
 handledmenuitem.label.16 = Character Editor
 handledmenuitem.tooltip.4 = Character Editor
 handledmenuitem.label.17 = Remove Taxon
 command.commandname.21 = Remove taxon
-handledmenuitem.label.18 = New Factual Data Set with source
-handledmenuitem.label.19 = Create default description
-handledmenuitem.label.20 = Create literature description
+handledmenuitem.label.18 = New Factual Dataset with source
+handledmenuitem.label.19 = Default description
+handledmenuitem.label.20 = Literature description
 handledmenuitem.label.21 = Invalid Designation\r
 command.commandname.22 = Create Invalid Designation\r
 handledmenuitem.label.22 = Invalid Designation\r
index feb3ba851954e65a30dac552fe9eadc7c79f7ace..22455be553aa977e884bfdaa7e992ba92ab7209a 100644 (file)
@@ -4,7 +4,7 @@ Bundle-Name.0 = EDIT Taxonomischer Editor - Editor Bundle
 command.name.17 = Setze Basionym
 command.name.18 = Entferne Basionym
 editor.name = Multipage Taxon Editor
-editor.name.0 = Editor Taxonname
+editor.name.0 = Taxon Editor
 editor.name.1 = Bestimmungsschl\u00fcssel
 editor.name.2 = Polytomer Bestimmungsschl\u00fcssel Graph Editor
 editor.name.3 = Polytomer Bestimmungsschl\u00fcssel List Editor
@@ -55,6 +55,7 @@ command.label.28 = Verschiebe Faktendaten-Set zu anderem Taxon
 command.label.29 = Verschiebe Fakt(en) zu anderem Taxon
 command.label.30 = L\u00f6schen
 command.label.31 = Speichern
+command.name.133 = Setze Faktendaten-Set als Default
 menu.label.2 = Neue Derivate
 command.label.32 = Neue Nutzung
 command.label.33 = Neue Zusammenfassung
@@ -72,7 +73,7 @@ command.label.43 = \u00d6ffne verbundenes Konzept
 command.label.44 = L\u00f6schen
 command.label.45 = Bearbeite Rechte
 extension.name = Namensbefehle
-category.name.0 = -- Namenseditor
+category.name.0 = -- Taxon Editor
 command.name = \u00d6ffne Elter
 command.name.0 = Erstelle homotypisches Synonym
 command.name.1 = Erstelle heterotypisches Synonym
@@ -183,14 +184,14 @@ command.label.UNLINK_FROM_TAXON_SELECTION = Verkn
 command.label.REUSE_SINGLE_READ_HERE = Single-Read hier wiederverwenden
 command.label.REUSE_SINGLE_READ_FOR_OTHER_SEQUENCE = Für andere Sequenz wiederverwenden
 command.label.REMOVE_SINGLE_READ_FROM_THIS_SEQUENCE = Von dieser Sequenz entfernen
-command.name.OPEN_NAME_EDITOR_FOR_TAXON_NODE = Öffne Namenseditor für Taxonknoten
+command.name.OPEN_NAME_EDITOR_FOR_TAXON_NODE = Öffne Taxon Editor für Taxonknoten
 command.name.OPEN_DERIVATIVE_EDITOR = Öffne Specimen-Editor (Baum)
 command.name.LINK_WITH_TAXON_SELECTION = Verknüpfe mit Taxonauswahl
 command.name.COPY_SINGLE_READ_TO_CLIPBOARD = Kopiere Single-Read in die Zwischenablage
 command.name.REUSE_SINGLE_READ = Single-Read wiederverwenden
 command.name.REMOVE_SINGLE_READ = Entferne Single-Read von Sequenz
 
-viewCommandMapping.viewerName.NAME_EDITOR = Namenseditor
+viewCommandMapping.viewerName.NAME_EDITOR = Taxon Editor
 viewCommandMapping.viewerName.SPECIMEN_EDITOR = Specimen-Editor (Baum)
 viewCommandMapping.viewerName.CHECKLIST_EDITOR = Verbreitungs-Editor
 command.name.OPEN_EDITOR_FOR_TYPE_SPECIMEN = Öffne Specimen-Baum-Editor für Typusbelege
@@ -219,7 +220,7 @@ partdescriptor.label.1 = Character-Editor
 handledmenuitem.label.10 = Character entfernen
 handledtoolitem.label.1 = Einklappen
 handledtoolitem.label.2 = Ausklappen
-partdescriptor.label.2 = Editor Taxonname
+partdescriptor.label.2 = Taxon Editor
 handledtoolitem.label.3 = Einklappen
 handledtoolitem.label.4 = Ausklappen
 handledmenuitem.label.11 = Graph öffnen
@@ -253,8 +254,8 @@ handledmenuitem.tooltip.4 = Character-Editor
 handledmenuitem.label.17 = Taxon entfernen
 command.commandname.21 = Taxon entfernen
 handledmenuitem.label.18 = Neues Faktendaten-Set mit Quelle
-handledmenuitem.label.19 = Standard-Beschreibung erstellen
-handledmenuitem.label.20 = Literatur-Beschreibung erstellen
+handledmenuitem.label.19 = Neue Standard-Beschreibung
+handledmenuitem.label.20 = Neue Literatur-Beschreibung
 handledmenuitem.label.21 = Invalid Designation
 command.commandname.22 = Erstelle Invalid Designation
 handledmenuitem.label.22 = Invalid Designation
@@ -268,7 +269,7 @@ handledmenuitem.label.26 = Kopieren
 handledmenuitem.label.27 = Löschen
 handledmenuitem.label.28 = Beschreibung löschen
 partdescriptor.label.6 = Distribution Editor
-command.commandname.24 = Beschreibung löschen
-command.commandname.25 = Beleg(e) zufügen
+command.commandname.24 = Löschen
+command.commandname.25 = Beleg(e) hinzufügen
 command.commandname.26 = Aggregieren
 command.commandname.27 = Erzeuge polytomen Schlüssel
\ No newline at end of file
index 85e72b195cc8fbecf5e80883c777988ca0cea067..a996f2b01383160e9d28c7810b8505f404fb6897 100644 (file)
@@ -14,7 +14,7 @@
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_gSpRsDQDEeeTNOFVGI4q2w" featurename="descriptors" parentElementId="xpath:/">
     <elements xsi:type="basic:PartDescriptor" xmi:id="_gSpRsTQDEeeTNOFVGI4q2w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView" label="%command.label.DERIVATIVE_EDITOR" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.editor/icons/derivate_view-16x16-32.png" tooltip="%command.label.DERIVATIVE_EDITOR" allowMultiple="true" category="" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView">
       <tags>View</tags>
-      <tags>nonRestore</tags>
+      <tags>nonRfestore</tags>
       <handlers xmi:id="_E5l4wDVqEee_b7RlBzTDRw" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.CreateFieldUnitHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.CreateFieldUnitHandler" command="_BjF3ADVqEee_b7RlBzTDRw"/>
       <handlers xmi:id="_ha1I4DmBEeeOos_QXKSXcA" elementId="eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddSpecimenHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddSpecimenHandler" command="_qqMbcDmBEeeOos_QXKSXcA"/>
       <handlers xmi:id="_FOiO0DocEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddTissueSampleHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddTissueSampleHandler" command="_I2LD4DocEeecLdI14WMq7w"/>
@@ -23,7 +23,6 @@
       <handlers xmi:id="_3RPaQDorEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddExistingMediaHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddExistingMediaHandler" command="_-haZEDonEeecLdI14WMq7w"/>
       <handlers xmi:id="_OOIwoDooEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddConsensusSequenceHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddConsensusSequenceHandler" command="_IdPwEDooEeecLdI14WMq7w"/>
       <handlers xmi:id="_Vf1coDooEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddSingleReadHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.AddSingleReadHandler" command="_LTuN8DooEeecLdI14WMq7w"/>
-      <handlers xmi:id="_Y1cLkDueEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.ToggleLinkWithTaxonSelectionHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.ToggleLinkWithTaxonSelectionHandler" command="_UwK_UDueEeeOtqC_3qh40A"/>
       <handlers xmi:id="_sGhWgDulEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler.deep" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler" command="_fKT-wDulEeeOtqC_3qh40A"/>
       <handlers xmi:id="_QNvcUDumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler.copySingleRead" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadCopyToClipboardHandler" command="_N0wLsDumEeeOtqC_3qh40A"/>
       <handlers xmi:id="_bAGysDumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadHandler.reuseSingleRead" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.SingleReadReuseHandler" command="_HmerkDumEeeOtqC_3qh40A"/>
@@ -50,8 +49,6 @@
         <children xsi:type="menu:MenuSeparator" xmi:id="_sp6BoDy8EeeqBMqdgjGMrQ" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.5"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_um1oYDVpEee_b7RlBzTDRw" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.create_field_unit_for_taxon" label="%handledmenuitem.label.8" command="_BjF3ADVqEee_b7RlBzTDRw"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_5GMRcDWQEeeNfoZ3nN0K8Q" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.createfieldunit" label="%handledmenuitem.label.9" command="_BjF3ADVqEee_b7RlBzTDRw"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_QoiUMDuhEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.2"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_eElJ8DueEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabellink_with_taxon_selection" label="%command.label.LINK_WITH_TAXON_SELECTION" command="_UwK_UDueEeeOtqC_3qh40A"/>
         <children xsi:type="menu:MenuSeparator" xmi:id="_9nI4IDumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.4"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_h4pX0DumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.commandnamereuse_single_read" label="%command.label.REUSE_SINGLE_READ_HERE" command="_HmerkDumEeeOtqC_3qh40A"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_oQXH0DumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabelreuse_single_read_for_other_sequence" label="%command.label.REUSE_SINGLE_READ_FOR_OTHER_SEQUENCE" command="_N0wLsDumEeeOtqC_3qh40A"/>
       <handlers xmi:id="_tc-7wLy2EeioE565ihOF2g" elementId="eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.CreateDescriptionWithSourceHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.CreateDescriptionWithSourceHandler" command="_Z51sQLy2EeioE565ihOF2g"/>
       <handlers xmi:id="_i7ovoL9OEemCian_vXpNsA" elementId="eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.MoveDescriptionToOtherTaxonHandlerSetNameInSource" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.MoveDescriptionToOtherTaxonSetNameInSourceHandlerE5" command="_yknsIL9NEemCian_vXpNsA"/>
       <handlers xmi:id="_GakGYL9PEemCian_vXpNsA" elementId="eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.MoveDescriptionElementsHandlerSetNameInSource" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.MoveDescriptionElementsSetNameInSourceHandlerE5" command="__8WFwL9OEemCian_vXpNsA"/>
+      <handlers xmi:id="_BKqkwGQfEe6yp7ON-qKPbg" elementId="eu.etaxonomy.taxeditor.editor.handler.5" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.SetDefaultDescriptionHandler" command="_ZyKbwGQbEe6yp7ON-qKPbg"/>
       <menus xsi:type="menu:PopupMenu" xmi:id="_HxxDt4GxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.popupmenu.factualDataView">
         <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_bMfdYIG5EeehlNPrK_b5JA" coreExpressionId="isCdmStoreConnected"/>
         <children xsi:type="menu:DynamicMenuContribution" xmi:id="_2t3BgIHWEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.DynamicFeatureMenuE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.DynamicFeatureMenuE4"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_qVkKkL9OEemCian_vXpNsA" elementId="eu.etaxonomy.taxeditor.editor.factualData.moveDescriptionElementSetNameInSource" label="%command.label.132" command="__8WFwL9OEemCian_vXpNsA"/>
         <children xsi:type="menu:MenuSeparator" xmi:id="_pOAxAIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.10"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_rLS9EIGxEeehlNPrK_b5JA" elementId="eu.etaxonomy.taxeditor.editor.factualData.delete" label="%command.label.30" command="_AqgMcIG5EeehlNPrK_b5JA"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_HRQIgGQfEe6yp7ON-qKPbg" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.commandname133" label="%command.name.133" command="_ZyKbwGQbEe6yp7ON-qKPbg"/>
       </menus>
       <toolbar xmi:id="_sfp2sL2jEeeyWfw0n8-ICQ" elementId="eu.etaxonomy.taxeditor.editor.toolbar.0">
         <children xsi:type="menu:HandledToolItem" xmi:id="_t7kbEL2jEeeyWfw0n8-ICQ" elementId="eu.etaxonomy.taxeditor.editor.handledtoolitem.factual.showIndividualAssociations" label="%command.name.41" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.editor/icons/link_obj.gif" type="Check" command="_4eDWoIy0EeeQaL4TL8oz7Q"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_KT8rYIZ5EeeOc9DZcjNN7g" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel44" label="%command.label.44" command="_Ob4xIIZ5EeeOc9DZcjNN7g"/>
       </menus>
     </elements>
-    <elements xsi:type="basic:PartDescriptor" xmi:id="_tLceMIl4Eeeox7omhvOBWg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4" label="%partdescriptor.label.2" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.editor/icons/edit_16x16.gif" tooltip="" allowMultiple="true" category="" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4">
+    <elements xsi:type="basic:PartDescriptor" xmi:id="_tLceMIl4Eeeox7omhvOBWg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor" label="%partdescriptor.label.2" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.editor/icons/edit_16x16.gif" tooltip="" allowMultiple="true" category="" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor">
       <tags>View</tags>
       <tags>nonRestore</tags>
       <handlers xmi:id="_tLceQIl4Eeeox7omhvOBWg" elementId="eu.etaxonomy.taxeditor.editor.nameEditor.handler.SaveHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/eu.etaxonomy.taxeditor.workbench.SaveHandler" command="_majwMEaQEeeXMc6kSYO7Xg"/>
-      <handlers xmi:id="_DCv88IvPEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateHeterotypicSynonymHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateHeterotypicSynonymHandlerE4" command="_ult4EIvOEee7R4eqeQiXZg"/>
-      <handlers xmi:id="_OqNIQIvPEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateHomotypicSynonymHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateHomotypicSynonymHandlerE4" command="_KpUFsIvPEee7R4eqeQiXZg"/>
-      <handlers xmi:id="_XFc2QIvPEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateSynonymInHomotypicalGroupHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateSynonymInHomotypicalGroupHandlerE4" command="_VPLRIIvPEee7R4eqeQiXZg"/>
-      <handlers xmi:id="_ffY8sIvPEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateMisapplicationHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateMisapplicationHandlerE4" command="_c0byUIvPEee7R4eqeQiXZg"/>
-      <handlers xmi:id="_qKP84IvPEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeSynonymToAcceptedTaxonHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeSynonymToAcceptedTaxonHandlerE4" command="_oBnccIvPEee7R4eqeQiXZg"/>
-      <handlers xmi:id="_14GrIIvPEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeToSynonymHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeToSynonymHandlerE4" command="_yh49QIvPEee7R4eqeQiXZg"/>
-      <handlers xmi:id="_8Lzd0IvPEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeToMisapplicationHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeToMisapplicationHandlerE4" command="_56AaUIvPEee7R4eqeQiXZg"/>
-      <handlers xmi:id="_GTxMUIvQEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.DeleteTaxonBaseHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.DeleteTaxonBaseHandlerE4" command="_CoVcYIvQEee7R4eqeQiXZg"/>
-      <handlers xmi:id="_OZLNMIvQEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.DeleteAllEmptyNamesHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.DeleteAllEmptyNamesHandlerE4" command="_L4vQwIvQEee7R4eqeQiXZg"/>
-      <handlers xmi:id="_WWqoMIvQEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.SwapSynonymAndAcceptedHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.SwapSynonymAndAcceptedHandlerE4" command="_UFDx8IvQEee7R4eqeQiXZg"/>
-      <handlers xmi:id="_edkd4IvQEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.SetBasionymHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.SetBasionymHandlerE4" command="_b2nCsIvQEee7R4eqeQiXZg"/>
-      <handlers xmi:id="_lv9GYIvQEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.MoveSynonymToAnotherAcceptedTaxonHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.MoveSynonymToAnotherAcceptedTaxonHandlerE4" command="_jNvBQIvQEee7R4eqeQiXZg"/>
-      <handlers xmi:id="_g8QScFgWEeiQk_eTMvMviQ" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateProParteSynonymHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateProParteSynonymHandlerE4" command="_HSKdYFgXEeiQk_eTMvMviQ"/>
-      <handlers xmi:id="_442rEFj-EeiQk_eTMvMviQ" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeToProParteSynonymHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeToProParteSynonymHandlerE5" command="_BgX6gFj_EeiQk_eTMvMviQ"/>
-      <handlers xmi:id="_a4ggsLzGEeiaf9p39XS3qw" elementId="eu.etaxonomy.taxeditor.editor.handler.createInvalidDesignationHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateInvalidDesignationHandlerE4" command="_DlSuULzFEeiaf9p39XS3qw"/>
-      <handlers xmi:id="_g52YELzGEeiaf9p39XS3qw" elementId="eu.etaxonomy.taxeditor.editor.handler.changeToInvalidDesignationHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeToInvalidDesignationHandlerE4" command="_UQb18LzFEeiaf9p39XS3qw"/>
+      <handlers xmi:id="_DCv88IvPEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateHeterotypicSynonymHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateHeterotypicSynonymHandler" command="_ult4EIvOEee7R4eqeQiXZg"/>
+      <handlers xmi:id="_OqNIQIvPEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateHomotypicSynonymHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateHomotypicSynonymHandler" command="_KpUFsIvPEee7R4eqeQiXZg"/>
+      <handlers xmi:id="_XFc2QIvPEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateSynonymInHomotypicalGroupHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateSynonymInHomotypicalGroupHandler" command="_VPLRIIvPEee7R4eqeQiXZg"/>
+      <handlers xmi:id="_ffY8sIvPEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateMisapplicationHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateMisapplicationHandler" command="_c0byUIvPEee7R4eqeQiXZg"/>
+      <handlers xmi:id="_qKP84IvPEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeSynonymToAcceptedTaxonHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeSynonymToAcceptedTaxonHandler" command="_oBnccIvPEee7R4eqeQiXZg"/>
+      <handlers xmi:id="_14GrIIvPEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeToSynonymHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeToSynonymHandler" command="_yh49QIvPEee7R4eqeQiXZg"/>
+      <handlers xmi:id="_8Lzd0IvPEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeToMisapplicationHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeToMisapplicationHandler" command="_56AaUIvPEee7R4eqeQiXZg"/>
+      <handlers xmi:id="_GTxMUIvQEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.DeleteTaxonBaseHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.DeleteTaxonBaseHandler" command="_CoVcYIvQEee7R4eqeQiXZg"/>
+      <handlers xmi:id="_OZLNMIvQEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.DeleteAllEmptyNamesHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.DeleteAllEmptyNamesHandler" command="_L4vQwIvQEee7R4eqeQiXZg"/>
+      <handlers xmi:id="_WWqoMIvQEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.SwapSynonymAndAcceptedHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.SwapSynonymAndAcceptedHandler" command="_UFDx8IvQEee7R4eqeQiXZg"/>
+      <handlers xmi:id="_edkd4IvQEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.SetBasionymHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.SetBasionymHandler" command="_b2nCsIvQEee7R4eqeQiXZg"/>
+      <handlers xmi:id="_lv9GYIvQEee7R4eqeQiXZg" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.MoveSynonymToAnotherAcceptedTaxonHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.MoveSynonymToAnotherAcceptedTaxonHandler" command="_jNvBQIvQEee7R4eqeQiXZg"/>
+      <handlers xmi:id="_g8QScFgWEeiQk_eTMvMviQ" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateProParteSynonymHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.CreateProParteSynonymHandler" command="_HSKdYFgXEeiQk_eTMvMviQ"/>
+      <handlers xmi:id="_442rEFj-EeiQk_eTMvMviQ" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeToProParteSynonymHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.ChangeToProParteSynonymHandler" command="_BgX6gFj_EeiQk_eTMvMviQ"/>
       <handlers xmi:id="_MYvcYL9MEemCian_vXpNsA" elementId="eu.etaxonomy.taxeditor.editor.name.e4.handler.SwapSynonymAndAcceptedHandlerE4SetNameInSource" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.name.e4.handler.SwapSynonymAndAcceptedSetNameInSourceHandlerE5" command="_tuB4AL9KEemCian_vXpNsA"/>
       <menus xsi:type="menu:PopupMenu" xmi:id="_tLceQYl4Eeeox7omhvOBWg" elementId="eu.etaxonomy.taxeditor.editor.popupmenu.nameeditor">
         <children xsi:type="menu:Menu" xmi:id="_R6buoIl5Eeeox7omhvOBWg" elementId="eu.etaxonomy.taxeditor.editor.nameEditor.menu.new" label="%menu.label">
           <children xsi:type="menu:MenuSeparator" xmi:id="_LGspoIl8Eeeox7omhvOBWg" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.16"/>
           <children xsi:type="menu:HandledMenuItem" xmi:id="_2S-_cFgWEeiQk_eTMvMviQ" elementId="eu.etaxonomy.taxeditor.editor.nameEditor.menuItem.newProParteSynonym" label="%command.label.60" command="_HSKdYFgXEeiQk_eTMvMviQ"/>
           <children xsi:type="menu:HandledMenuItem" xmi:id="_MCsX0Il8Eeeox7omhvOBWg" elementId="eu.etaxonomy.taxeditor.editor.nameEditor.menuItem.newMisapplication" label="%command.label.49" command="_c0byUIvPEee7R4eqeQiXZg"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_7mgS0LzEEeiaf9p39XS3qw" elementId="eu.etaxonomy.taxeditor.editor.nameEditor.menuItem.newInvalidDesignation" label="%handledmenuitem.label.21" command="_DlSuULzFEeiaf9p39XS3qw"/>
         </children>
         <children xsi:type="menu:MenuSeparator" xmi:id="_bxjbgE3LEeiplYSgvvNXRQ" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.23"/>
         <children xsi:type="menu:DynamicMenuContribution" xmi:id="_drYq8E3LEeiplYSgvvNXRQ" elementId="eu.etaxonomy.taxeditor.editor.dynamicmenucontribution.nameEditor.openInCdmViewer" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.CdmViewerContextMenuE4"/>
           <children xsi:type="menu:HandledMenuItem" xmi:id="_F0EH0FkAEeiQk_eTMvMviQ" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.changeToProparteSynonym" label="%command.label.60" command="_BgX6gFj_EeiQk_eTMvMviQ">
             <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_Lc4KcFkAEeiQk_eTMvMviQ" coreExpressionId="isNotProparteSynonym"/>
           </children>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_p_1hoLzFEeiaf9p39XS3qw" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.changeToInvalidDesignation" label="%handledmenuitem.label.22" command="_UQb18LzFEeiaf9p39XS3qw">
-            <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_LbnU4LzGEeiaf9p39XS3qw" coreExpressionId="isNotInvalidDesignation"/>
-          </children>
         </children>
         <children xsi:type="menu:MenuSeparator" xmi:id="_a0anEIl5Eeeox7omhvOBWg" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.13"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_bu3dIIl5Eeeox7omhvOBWg" elementId="eu.etaxonomy.taxeditor.editor.nameEditor.menuItem.delete" label="%command.label.15" command="_CoVcYIvQEee7R4eqeQiXZg"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_dVXg4Il5Eeeox7omhvOBWg" elementId="eu.etaxonomy.taxeditor.editor.nameEditor.menuItem.deleteEmptyNames" label="%command.label.16" command="_L4vQwIvQEee7R4eqeQiXZg"/>
         <children xsi:type="menu:MenuSeparator" xmi:id="_e7Jy8Il5Eeeox7omhvOBWg" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.14"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_VYMVkL9KEemCian_vXpNsA" elementId="eu.etaxonomy.taxeditor.editor.nameEditor.menuItem.swapSynonymWithAccpeted" label="%command.label.171" command="_tuB4AL9KEemCian_vXpNsA"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_fkhgEIl5Eeeox7omhvOBWg" elementId="eu.etaxonomy.taxeditor.editor.nameEditor.menuItem.swapSynonymWithAccpetedSetNameInSource" label="%command.label.17" command="_UFDx8IvQEee7R4eqeQiXZg"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_VYMVkL9KEemCian_vXpNsA" elementId="eu.etaxonomy.taxeditor.editor.nameEditor.menuItem.swapSynonymWithAccpeted" label="%command.label.171" command="_tuB4AL9KEemCian_vXpNsA"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_hdfz4Il5Eeeox7omhvOBWg" elementId="eu.etaxonomy.taxeditor.editor.nameEditor.menuItem.setAsBasionym" label="%command.label.57" command="_b2nCsIvQEee7R4eqeQiXZg"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_iw4HUIl5Eeeox7omhvOBWg" elementId="eu.etaxonomy.taxeditor.editor.nameEditor.menuItem.moveSynonym" label="%command.label.56" command="_jNvBQIvQEee7R4eqeQiXZg"/>
         <children xsi:type="menu:MenuSeparator" xmi:id="_kS2QYIl5Eeeox7omhvOBWg" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.15"/>
       </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="__SlnwI97EeqyUKRuXQ8miw" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.deletedescription" label="%handledmenuitem.label.28" command="_MYd44I98EeqyUKRuXQ8miw"/>
         <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>
     <elements xsi:type="basic:PartDescriptor" xmi:id="_XcQMEN8mEee9zP45RW4C3A" elementId="eu.etaxonomy.taxeditor.editor.descriptiveDataSet.DescriptiveDataSetNavigator" label="%partdescriptor.label.5" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.descriptiveDataSet.DescriptiveDataSetNavigator">
       <handlers xmi:id="_mjo-gOSjEee9gvnH2Eirpw" elementId="eu.etaxonomy.taxeditor.editor.descriptiveDataSet.handler.CreateDescriptiveDataSetHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.descriptiveDataSet.handler.CreateDescriptiveDataSetHandler" command="_XO7eUOSjEee9gvnH2Eirpw"/>
       <handlers xmi:id="_yQHcoOS3EeeKONG__xkGZg" elementId="eu.etaxonomy.taxeditor.editor.descriptiveDataSet.handler.deleteDescriptiveDataSet" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.descriptiveDataSet.handler.DeleteDescriptiveDataSetHandler" command="_uPmNgOS3EeeKONG__xkGZg"/>
       <menus xsi:type="menu:PopupMenu" xmi:id="__S3vQN87Eee9zP45RW4C3A" elementId="eu.etaxonomy.taxeditor.editor.popupmenu.descriptiveDataSetNavigator">
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_UUfGcOSjEee9gvnH2Eirpw" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.newdescriptivedataset" label="%handledmenuitem.label.13" tooltip="%handledmenuitem.tooltip.1" command="_XO7eUOSjEee9gvnH2Eirpw"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_UUfGcOSjEee9gvnH2Eirpw" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.newdescriptivedataset" label="%menu.label" tooltip="%handledmenuitem.tooltip.1" command="_XO7eUOSjEee9gvnH2Eirpw"/>
         <children xsi:type="menu:MenuSeparator" xmi:id="_ZD5bgLIfEeqvn5lIFwyIRw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.31"/>
         <children xsi:type="menu:DynamicMenuContribution" xmi:id="_BRxE4N88Eee9zP45RW4C3A" elementId="eu.etaxonomy.taxeditor.editor.descriptiveDataSetNavigator.dynamicmenucontribution.cdmViewer" label="%dynamicmenucontribution.label.2" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.CdmViewerContextMenuE4"/>
         <children xsi:type="menu:MenuSeparator" xmi:id="_aFtd0LIfEeqvn5lIFwyIRw" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.32"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_JSt1kOS4EeeKONG__xkGZg" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.deleteDescriptiveDataSet" label="%handledmenuitem.label.14" tooltip="%handledmenuitem.tooltip.2" command="_uPmNgOS3EeeKONG__xkGZg"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_JSt1kOS4EeeKONG__xkGZg" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.deleteDescriptiveDataSet" label="%command.commandname.9" tooltip="%handledmenuitem.tooltip.2" command="_uPmNgOS3EeeKONG__xkGZg"/>
       </menus>
       <toolbar xmi:id="_gz3CkPycEeeOqKfc2I-67A" elementId="eu.etaxonomy.taxeditor.editor.toolbar.2"/>
     </elements>
     <elements xsi:type="commands:Command" xmi:id="_pKdiQDoqEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.command.add_derivate.add_media_specimen" commandName="%command.commandname.6"/>
     <elements xsi:type="commands:Command" xmi:id="_IdPwEDooEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.command.add_derivate.add_consensus_sequence" commandName="%command.commandname.7"/>
     <elements xsi:type="commands:Command" xmi:id="_LTuN8DooEeecLdI14WMq7w" elementId="eu.etaxonomy.taxeditor.editor.command.add_derivate.add_single_read" commandName="%command.commandname.8"/>
-    <elements xsi:type="commands:Command" xmi:id="_UwK_UDueEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.derivative.toggleLinkWithTaxonSelection" commandName="%command.label.LINK_WITH_TAXON_SELECTION"/>
     <elements xsi:type="commands:Command" xmi:id="_fKT-wDulEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.derivate.deepDelete" commandName="%command.label.54"/>
     <elements xsi:type="commands:Command" xmi:id="_HmerkDumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.derivative.reuseSingleRead" commandName="%command.name.REUSE_SINGLE_READ"/>
     <elements xsi:type="commands:Command" xmi:id="_N0wLsDumEeeOtqC_3qh40A" elementId="eu.etaxonomy.taxeditor.editor.derivative.copySingleReadToClipBoard" commandName="%command.name.COPY_SINGLE_READ_TO_CLIPBOARD"/>
     <elements xsi:type="commands:Command" xmi:id="_ZHC3oLKVEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.charactermatrix.command.createDefaultTaxonDescription" commandName="%handledmenuitem.label.19"/>
     <elements xsi:type="commands:Command" xmi:id="_fkPkkLKVEeikjKoOnLFm2w" elementId="eu.etaxonomy.taxeditor.editor.charactermatrix.command.createLiteratureTaxonDescription" commandName="%handledmenuitem.label.20"/>
     <elements xsi:type="commands:Command" xmi:id="_Z51sQLy2EeioE565ihOF2g" elementId="eu.etaxonomy.taxeditor.editor.view.descriptive.command.adddescriptionWithSource" commandName="%handledmenuitem.label.18"/>
-    <elements xsi:type="commands:Command" xmi:id="_DlSuULzFEeiaf9p39XS3qw" elementId="eu.etaxonomy.taxeditor.editor.command.createinvaliddesignation" commandName="%command.commandname.22"/>
-    <elements xsi:type="commands:Command" xmi:id="_UQb18LzFEeiaf9p39XS3qw" elementId="eu.etaxonomy.taxeditor.editor.command.changeToInvalidDesignation" commandName="%command.commandname.23"/>
     <elements xsi:type="commands:Command" xmi:id="_tuB4AL9KEemCian_vXpNsA" elementId="eu.etaxonomy.taxeditor.editor.name.swapSynonymAndAcceptedSetNameInSource" commandName="%command.name.611"/>
     <elements xsi:type="commands:Command" xmi:id="_yknsIL9NEemCian_vXpNsA" elementId="eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.MoveDescriptionToOtherTaxonHandlerSetNameInSource" commandName="%command.name.131"/>
     <elements xsi:type="commands:Command" xmi:id="__8WFwL9OEemCian_vXpNsA" elementId="eu.etaxonomy.taxeditor.editor.view.descriptive.command.moveDescriptionElementsSetNameInSource" commandName="%command.name.132"/>
     <elements xsi:type="commands:Command" xmi:id="_zCGQ8JN1EeqyUKRuXQ8miw" elementId="eu.etaxonomy.taxeditor.editor.charactermatrix.command.addDescription" commandName="%command.commandname.25"/>
     <elements xsi:type="commands:Command" xmi:id="_K2C_oKZAEeq8Gc-K2nsNRg" elementId="eu.etaxonomy.taxeditor.editor.command.aggregation" commandName="%command.commandname.26"/>
     <elements xsi:type="commands:Command" xmi:id="_vWxB4KoiEeqBXdGXVmg_xA" elementId="eu.etaxonomy.taxeditor.editor.command.create_key" commandName="%command.commandname.27"/>
+    <elements xsi:type="commands:Command" xmi:id="_ZyKbwGQbEe6yp7ON-qKPbg" elementId="eu.etaxonomy.taxeditor.editor.view.descriptive.e4.command.SetDefaultDescription" commandName="%command.name.133"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_pZmusEalEeeXMc6kSYO7Xg" featurename="children" parentElementId="eu.etaxonomy.taxeditor.menu.showView" positionInList="after:eu.etaxonomy.taxeditor.workbench.menuseparator.navigation">
     <elements xsi:type="menu:HandledMenuItem" xmi:id="_FPIHQKNwEeebGZ23ERGMGw" elementId="eu.etaxonomy.taxeditor.editor.showViewMenu.conceptGraph" label="%view.name.3" iconURI="" tooltip="%view.name.3" command="_WPjpoDSnEeek0dKsFNy--Q">
     <elements xsi:type="commands:Handler" xmi:id="_EYtGcJMmEeeR4YRjNqCKeA" elementId="eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenTaxonEditorForTaxonNodeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenTaxonEditorForTaxonNodeHandler" command="_9S0o4JMlEeeR4YRjNqCKeA"/>
     <elements xsi:type="commands:Handler" xmi:id="_9MRA4KNrEeee0INlRJv_6Q" elementId="eu.etaxonomy.taxeditor.editor.view.checklist.e4.handler.OpenChecklistEditorHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.checklist.e4.handler.OpenChecklistEditorHandlerE4" command="_Qi76oKNsEeee0INlRJv_6Q"/>
     <elements xsi:type="commands:Handler" xmi:id="_MAx1UKz0EeeBIsZyvYlAaA" elementId="eu.etaxonomy.taxeditor.editor.group.authority.e4.handler.EditCdmAuthoritiesHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.group.authority.e4.handler.EditCdmAuthoritiesHandlerE4" command="_cxTosKzzEeeBIsZyvYlAaA"/>
-    <elements xsi:type="commands:Handler" xmi:id="_MtFB8K21EeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.view.datasource.e4.handler.CreateDataSourceHandlerE4.newMenu" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.datasource.e4.handler.CreateDataSourceHandlerE4" command="_61IwAK20EeeykrJkROy5EA"/>
     <elements xsi:type="commands:Handler" xmi:id="_TlvGYK22EeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.editor.handler.create.NewReferenceHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.handler.create.NewReferenceHandler" command="_x3ecAK21EeeykrJkROy5EA"/>
     <elements xsi:type="commands:Handler" xmi:id="_Xi9w8K22EeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.editor.handler.create.NewNameHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.handler.create.NewNameHandler" command="_1CaG8K21EeeykrJkROy5EA"/>
     <elements xsi:type="commands:Handler" xmi:id="_ahCroK22EeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.editor.handler.create.NewTeamHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.handler.create.NewTeamHandler" command="_2vSfgK21EeeykrJkROy5EA"/>
     <elements xsi:type="commands:Handler" xmi:id="_HN2_oJN2EeqyUKRuXQ8miw" elementId="eu.etaxonomy.taxeditor.editor.handler.addDescription" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.handler.AddDescriptionHandler" command="_gE3lwIGyEeehlNPrK_b5JA"/>
     <elements xsi:type="commands:Handler" xmi:id="_EBL2EKY_Eeq8Gc-K2nsNRg" elementId="eu.etaxonomy.taxeditor.editor.handler.aggregate" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.handler.AggregationHandler" command="_K2C_oKZAEeq8Gc-K2nsNRg"/>
     <elements xsi:type="commands:Handler" xmi:id="_4HDLwKoiEeqBXdGXVmg_xA" elementId="eu.etaxonomy.taxeditor.editor.handler.create_key" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.handler.GeneratePolytomousKeyHandler" command="_vWxB4KoiEeqBXdGXVmg_xA"/>
+    <elements xsi:type="commands:Handler" xmi:id="_FET3MGQcEe6yp7ON-qKPbg" elementId="eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.SetDefaultDescription" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler.SetDefaultDescriptionHandler" command="_ZyKbwGQbEe6yp7ON-qKPbg"/>
   </fragments>
-  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_OyvD8KNOEee5fYT78qEx0A" featurename="children" parentElementId="bulkeditor.menus.openmenu" positionInList="last">
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_OyvD8KNOEee5fYT78qEx0A" featurename="children" parentElementId="bulkeditor.menus.openmenu" positionInList="before:eu.etaxonomy.taxeditor.bulkeditor.handledmenuitem.specimen">
     <elements xsi:type="menu:HandledMenuItem" xmi:id="_SZZBkKNOEee5fYT78qEx0A" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.specimen_editor" label="%command.label.DERIVATIVE_EDITOR" tooltip="%command.label.DERIVATIVE_EDITOR" command="_PDjFMLsKEeeQJq8FDGEi1g">
       <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_JmrHoMyMEeiaBbSMdwpwIg" coreExpressionId="isShowSpecimenMenuEnabled"/>
     </elements>
       <parameters xmi:id="_wJkmoEalEeeXMc6kSYO7Xg" elementId="eu.etaxonomy.taxeditor.editor.showView.parameter.charactereditor" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.editor.descriptiveDataSet.CharacterEditor"/>
     </elements>
   </fragments>
-  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_dXKrQE3HEeiplYSgvvNXRQ" featurename="children" parentElementId="eu.etaxonomy.navigation.menu.new" positionInList="last">
-    <elements xsi:type="menu:MenuSeparator" xmi:id="_dXKrSU3HEeiplYSgvvNXRQ" elementId="eu.etaxonomy.taxeditor.editor.menuseparator.21"/>
-    <elements xsi:type="menu:HandledMenuItem" xmi:id="_dXKrSk3HEeiplYSgvvNXRQ" elementId="eu.etaxonomy.taxeditor.editor.handledmenuitem.commandlabel48" label="%command.label.48" command="_61IwAK20EeeykrJkROy5EA"/>
-  </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_O9MesAFOEeq_lPZZ3P8SoQ" featurename="children" parentElementId="eu.etaxonomy.taxeditor.menu.showView" positionInList="before:eu.etaxonomy.taxeditor.workbench.menuseparator.navigation">
     <elements xsi:type="menu:HandledMenuItem" xmi:id="_O9MevQFOEeq_lPZZ3P8SoQ" elementId="eu.etaxonomy.taxeditor.editor.showViewMenu.descriptiveDataSetNavigator" label="%handledmenuitem.label.15" tooltip="%handledmenuitem.tooltip.3" command="_WPjpoDSnEeek0dKsFNy--Q">
       <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_O9MevgFOEeq_lPZZ3P8SoQ" coreExpressionId="isCdmStoreConnected"/>
index 99c9c375f4367519053a8850a3134a8e9492c3dd..4c9c3904a99db7999f7637c018fb09c4938e823b 100644 (file)
             </test>
          </with>
       </definition>
-      <definition
-            id="isNotInvalidDesignation">
-         <with
-               variable="selection">
-            <test
-                  property="eu.etaxonomy.taxeditor.editor.name.propertyTester.isNotInvalidDesignation">
-            </test>
-         </with>
-      </definition>
       <definition
             id="isTaxonBase">
          <with
             class="eu.etaxonomy.taxeditor.editor.name.handler.NameEditorMenuPropertyTester"
             id="eu.etaxonomy.taxeditor.editor.name.propertyTester"
             namespace="eu.etaxonomy.taxeditor.editor.name.propertyTester"
-            properties="isAcceptedTaxon,isSynonym,isNotSynonym,isMisapplication,isProparteSynonym,isNotProparteSynonym,isNotMisapplication,isNotInvalidDesignation,isTaxonBase,hasEmptyNames,isAcceptedAndHasNoHomotypicSynonyms,isNotHomotypicSynonymOfAcceptedTaxon,isNotAcceptedTaxon,isSynonymInHomotypicalGroupWithMoreSynonyms,isOrphaned"
+            properties="isAcceptedTaxon,isSynonym,isNotSynonym,isMisapplication,isProparteSynonym,isNotProparteSynonym,isNotMisapplication,isTaxonBase,hasEmptyNames,isAcceptedAndHasNoHomotypicSynonyms,isNotHomotypicSynonymOfAcceptedTaxon,isNotAcceptedTaxon,isSynonymInHomotypicalGroupWithMoreSynonyms,isOrphaned"
             type="java.lang.Object">
       </propertyTester>
       <propertyTester
       <viewCommandMapping
             commandId="eu.etaxonomy.taxeditor.editor.view.concept.command.open"
             selection="eu.etaxonomy.cdm.model.taxon.TaxonRelationship"
-            viewerName="Name Editor">
+            viewerName="Taxon Editor">
       </viewCommandMapping>
       <viewCommandMapping
             commandId="eu.etaxonomy.taxeditor.editor.openBulkEditorForTaxonRelationship"
       <viewCommandMapping
             commandId="eu.etaxonomy.taxeditor.editor.command.descriptiveDataSet.openDescriptiveDataSetEditor"
             selection="eu.etaxonomy.cdm.model.description.DescriptiveDataSet"
-            viewerName="Descriptive Data Set Editor">
+            viewerName="Descriptive Dataset Editor">
       </viewCommandMapping>
       <viewCommandMapping
             commandId="eu.etaxonomy.taxeditor.editor.command.descriptiveDataSet.openCharacterMatrix"
       <viewCommandMapping
             commandId="eu.etaxonomy.taxeditor.editor.command.descriptiveDataSet.openDescriptiveDataSetEditor"
             selection="eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache"
-            viewerName="Descriptive Data Set Editor">
+            viewerName="Descriptive Dataset Editor">
       </viewCommandMapping>
       <viewCommandMapping
             commandId="eu.etaxonomy.taxeditor.openSpecimenEditorForGatheringEvent"
index 8ccd5737a0ececf19127a505bf8c4b750b00bd05..1e9b95dc7c4c91cc4435b02d9833066722433e92 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
        <groupId>eu.etaxonomy</groupId>
        <artifactId>taxeditor-parent</artifactId>
-    <version>5.16.0</version>
+    <version>5.42.0</version>
   </parent>
   
   <modelVersion>4.0.0</modelVersion>
index d228f148887769e83de547ec102a367456b76efe..006924d69baa436d4a9b0fee70ed664a27856acb 100644 (file)
@@ -237,7 +237,7 @@ public class AppModelId {
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_DESCRIPTIVEDATASET_HANDLER_OPENCHARACTERMATRIXHANDLER = "eu.etaxonomy.taxeditor.editor.descriptiveDataSet.handler.OpenCharacterMatrixHandler";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_DESCRIPTIVEDATASET_HANDLER_OPENDESCRIPTIVEDATASETEDITORHANDLER = "eu.etaxonomy.taxeditor.editor.descriptiveDataSet.handler.OpenDescriptiveDataSetEditorHandler";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_DESCRIPTIVEDATASET_HANDLER_REFRESHDESCRIPTIVEDATASETNAVIGATORHANDLER = "eu.etaxonomy.taxeditor.editor.descriptiveDataSet.handler.RefreshDescriptiveDataSetNavigatorHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_VIEW_DATASOURCE_E4_HANDLER_CREATEDATASOURCEHANDLERE4_NEWMENU = "eu.etaxonomy.taxeditor.view.datasource.e4.handler.CreateDataSourceHandlerE4.newMenu";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_VIEW_DATASOURCE_E4_HANDLER_CREATEDATASOURCEHANDLERE4_NEWMENU = "eu.etaxonomy.taxeditor.view.datasource.e4.handler.CreateDataSourceHandlerE4";
        public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_0 = "eu.etaxonomy.taxeditor.editor.menuseparator.0";
        public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_1 = "eu.etaxonomy.taxeditor.editor.menuseparator.1";
        public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_10 = "eu.etaxonomy.taxeditor.editor.menuseparator.10";
@@ -277,7 +277,7 @@ public class AppModelId {
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_GROUP_AUTHORITY_E4_CDMAUTHORITYEDITORE4 = "eu.etaxonomy.taxeditor.editor.group.authority.e4.CdmAuthorityEditorE4";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_KEY_POLYTOMOUS_E4_POLYTOMOUSKEYGRAPHEDITORE4 = "eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyGraphEditorE4";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_KEY_POLYTOMOUS_E4_POLYTOMOUSKEYLISTEDITORE4 = "eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyListEditorE4";
-       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_NAME_E4_TAXONNAMEEDITORE4 = "eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4";
+       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_TAXONEDITOR= "eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor";
        //public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_CHECKLIST_E4_CHECKLISTEDITORE4 = "eu.etaxonomy.taxeditor.editor.view.checklist.e4.ChecklistEditorE4";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_CHECKLIST_E4_DISTRIBUTIONEDITORPART = "eu.etaxonomy.taxeditor.editor.view.checklist.e4.DistributionEditorPart";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_CONCEPT_E4_CONCEPTVIEWPARTE4 = "eu.etaxonomy.taxeditor.editor.view.concept.e4.ConceptViewPartE4";
index 801a7021bb78daddfcc306a3e5aa7a0aca6c4bd0..e71b55182c990e8b9e48ec1957c6eb4fb11db972 100644 (file)
@@ -19,7 +19,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.swt.dnd.ByteArrayTransfer;
 import org.eclipse.swt.dnd.TransferData;
 
@@ -38,7 +38,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class CdmDataTransfer extends ByteArrayTransfer {
 
        @SuppressWarnings("unused")
-    private static final Logger logger = Logger.getLogger(CdmDataTransfer.class);
+    private static final Logger logger = LogManager.getLogger(CdmDataTransfer.class);
 
        private static int SEPARATOR = -10;
        private static int EOF = -20;
index 3cef27580de37047ac1a5ef5b15a4c6fc4061306..1c706a6932c84ab39af35b6eb6935eb6a619fcfa 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor;
 
 import java.util.ArrayList;
@@ -14,9 +13,15 @@ import java.util.List;
 import java.util.Set;
 
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.dialogs.ListDialog;
 
@@ -29,18 +34,18 @@ import eu.etaxonomy.taxeditor.editor.l10n.Messages;
  *
  * @author n.hoffmann
  * @created 19.03.2009
- * @version 1.0
  */
 public class ChooseFromMultipleTaxonNodesDialog extends ListDialog {
+    Button okButton;
 
        public static TaxonNode choose(Set<TaxonNode> taxonNodes){
                ChooseFromMultipleTaxonNodesDialog dialog = new ChooseFromMultipleTaxonNodesDialog(EditorUtil.getShell());
                dialog.setInput(taxonNodes);
+               
                int result = dialog.open();
                
-               if(result == IStatus.OK){
+               if(result == IStatus.OK ){                  
                        Classification selectedClassification = (Classification) dialog.getResult()[0];
-                       
                        for(TaxonNode taxonNode : taxonNodes){
                                if(taxonNode.getClassification().equals(selectedClassification)){
                                        return taxonNode;
@@ -49,15 +54,36 @@ public class ChooseFromMultipleTaxonNodesDialog extends ListDialog {
                }
                return null;
        }
+       @Override
+    protected void createButtonsForButtonBar(Composite parent) {
+        okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
+        createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
+        okButton.setEnabled(false);
+    }
        
        public ChooseFromMultipleTaxonNodesDialog(Shell parent) {
                super(parent);
                setTitle(Messages.ChooseFromMultipleTaxonNodesDialog_CHOOSE_CLASSIFICATION);
                setMessage(Messages.ChooseFromMultipleTaxonNodesDialog_CHOOSE_CLASSIFICATION_MESSAGE);
                setContentProvider(new ClassificationContentProvider());
-               setLabelProvider(new ClassificationLabelProvider());
+               setLabelProvider(new ClassificationLabelProvider());            
        }
        
+       @Override
+    public void create() {
+        super.create();
+        this.getTableViewer().addSelectionChangedListener(new ISelectionChangedListener() {
+            @Override
+            public void selectionChanged(SelectionChangedEvent event) {
+                IStructuredSelection s = (IStructuredSelection) event.getSelection();
+                Object obj = s.getFirstElement();
+                if (obj != null) {
+                    okButton.setEnabled(true);
+                }
+              }
+            });
+    }
+       
        private class ClassificationLabelProvider extends LabelProvider{
                @Override
                public String getText(Object element) {
@@ -71,7 +97,7 @@ public class ChooseFromMultipleTaxonNodesDialog extends ListDialog {
                public Object[] getElements(Object inputElement) {
                        Set<TaxonNode> taxonNodes = (Set<TaxonNode>) inputElement;
                                
-                               List<Classification> classifications = new ArrayList<Classification>(); 
+                               List<Classification> classifications = new ArrayList<>(); 
                                
                                for(TaxonNode node : taxonNodes){
                                        classifications.add(node.getClassification());
@@ -88,6 +114,7 @@ public class ChooseFromMultipleTaxonNodesDialog extends ListDialog {
                @Override
                public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
                        
-               }               
+               }       
+               
        }
-}
+}
\ No newline at end of file
index 142a89bf3b0c531d8f979ec3a00027080e0a9b3c..5e78e8c9b33a702fe50e1fdd1a30131943ebfa39 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.editor;
 
 import java.util.Collection;
@@ -36,26 +35,29 @@ import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
-import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonEditorInput;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
+import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonBulkEditorInput;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.DescriptiveDataSetEditor;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrixPart;
-import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4;
+import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditorInput;
 import eu.etaxonomy.taxeditor.editor.group.authority.e4.CdmAuthorityEditorE4;
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.checklist.e4.DistributionEditorPart;
 import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
 import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.security.RequiredPermissions;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
 import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
 
@@ -64,11 +66,10 @@ import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
  *
  * @author n.hoffmann
  * @created 20.01.2009
- * @version 1.0
  */
 public class EditorUtil extends AbstractUtility {
 
-    private static final String NAME_EDITOR_ID = "eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4";
+    private static final String NAME_EDITOR_ID = "eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor";
 
     private static boolean factsVisible = true;
 
@@ -104,17 +105,7 @@ public class EditorUtil extends AbstractUtility {
         editor.init(descriptiveDataSetUuid, true);
     }
 
-    public static void openDistributionEditor(UuidAndTitleCache parentUuidAndTitleCache, EModelService modelService, EPartService partService, MApplication application){
-        Collection<MPart> parts = partService.getParts();
-        String partId = AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_CHECKLIST_E4_DISTRIBUTIONEDITORPART;
-        checkAndCloseFactsAndMediaParts(partService);
-        MPart part = showPart(partId, modelService, partService, application);
-        DistributionEditorPart editor = (DistributionEditorPart) part.getObject();
-        editor.init(parentUuidAndTitleCache);
-    }
-
-    public static void openDistributionEditor(List<UuidAndTitleCache> parentTaxonUuidList, EModelService modelService, EPartService partService, MApplication application){
-        Collection<MPart> parts = partService.getParts();
+    public static void openDistributionEditor(List<UuidAndTitleCache<ITaxonTreeNode>> parentTaxonUuidList, EModelService modelService, EPartService partService, MApplication application){
         String partId = AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_CHECKLIST_E4_DISTRIBUTIONEDITORPART;
         checkAndCloseFactsAndMediaParts(partService);
         MPart part = showPart(partId, modelService, partService, application);
@@ -175,7 +166,6 @@ public class EditorUtil extends AbstractUtility {
         }
 
         return partService.showPart(part, PartState.ACTIVATE);
-
     }
 
     public static MPart showPart(String partId, EModelService modelService, EPartService partService){
@@ -191,33 +181,24 @@ public class EditorUtil extends AbstractUtility {
     }
 
        public static void openTaxonNodeE4(UUID taxonNodeUuid, EModelService modelService, EPartService partService, MApplication application) {
-           TaxonEditorInputE4 input = TaxonEditorInputE4.NewInstance(taxonNodeUuid);
-           openNameEditor_internal(input, modelService, partService, application);
+           TaxonEditorInput input = TaxonEditorInput.NewInstance(taxonNodeUuid);
+           openTaxonEditor_internal(input, modelService, partService, application);
        }
 
        public static void openTaxonBaseE4(UUID taxonBaseUuid, EModelService modelService, EPartService partService, MApplication application) {
-           TaxonEditorInputE4 input = TaxonEditorInputE4.NewInstanceFromTaxonBase(taxonBaseUuid);
-           openNameEditor_internal(input, modelService, partService, application);
+           TaxonEditorInput input = TaxonEditorInput.NewInstanceFromTaxonBase(taxonBaseUuid);
+           openTaxonEditor_internal(input, modelService, partService, application);
        }
 
-    public static void openTaxonBaseE4(UUID taxonBaseUuid) {
-        //FIXME E4 this can probably be removed when fully migrated
-        TaxonEditorInputE4 input = TaxonEditorInputE4.NewInstanceFromTaxonBase(taxonBaseUuid);
-
-        EPartService partService = TaxeditorEditorPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getService(EPartService.class);
-        EModelService modelService = TaxeditorEditorPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getService(EModelService.class);
-        openNameEditor_internal(input, modelService, partService, null);
-    }
-
-    private static void openNameEditor_internal(TaxonEditorInputE4 input, EModelService modelService, EPartService partService, MApplication application) {
-        TaxonBase taxonBase = input.getTaxon();
+    private static void openTaxonEditor_internal(TaxonEditorInput input, EModelService modelService, EPartService partService, MApplication application) {
+        TaxonBase<?> taxonBase = input.getTaxon();
         TaxonNode node = input.getTaxonNode();
-        if(taxonBase==null){
+        if(taxonBase == null){
             return;
         }
         boolean hasPermission = false;
 //        if (node != null){
-//            hasPermission = CdmStore.currentAuthentiationHasPermission(node, RequiredPermissions.TAXON_EDIT);
+            hasPermission = CdmStore.currentAuthentiationHasPermission(node, RequiredPermissions.TAXON_EDIT);
 //        }
 //        if (!hasPermission){
 //            MessagingUtils.warningDialog(Messages.EditorUtil_MISSING_PERMISSION, TaxonEditorInputE4.class, Messages.EditorUtil_MISSING_PERMISSION_MESSAGE);
@@ -225,68 +206,72 @@ public class EditorUtil extends AbstractUtility {
 //        }
         if (taxonBase.isOrphaned()) {
             if(taxonBase.isInstanceOf(Synonym.class)){
-                MessagingUtils.warningDialog(Messages.EditorUtil_ORPHAN_ACCEPTED_TAXON, TaxonEditorInputE4.class, Messages.EditorUtil_ORPHAN_ACCEPTED_TAXON_MESSAGE);
+                MessagingUtils.warningDialog(Messages.EditorUtil_ORPHAN_ACCEPTED_TAXON, TaxonEditorInput.class, Messages.EditorUtil_ORPHAN_ACCEPTED_TAXON_MESSAGE);
                 return;
             }
             else{
-                MessagingUtils.warningDialog(Messages.EditorUtil_ORPHAN_TAXON, TaxonEditorInputE4.class, Messages.EditorUtil_ORPHAN_TAXON_MESSAGE);
+                MessagingUtils.warningDialog(Messages.EditorUtil_ORPHAN_TAXON, TaxonEditorInput.class, Messages.EditorUtil_ORPHAN_TAXON_MESSAGE);
                 return;
             }
         }
 
-
         Collection<MPart> parts = partService.getParts();
         //check if part is already opened
+        MPart alreadyOpenInOtherClassification = null;
         for (MPart part : parts) {
-               if(part.getObject() instanceof TaxonNameEditorE4
-                    && ((TaxonNameEditorE4) part.getObject()).getTaxon()!=null
-                    && ((TaxonNameEditorE4) part.getObject()).getTaxon().getUuid().equals(input.getTaxon().getUuid())){
-                   if (part.isDirty()){
-                       forceUserSaveE4Editor(((TaxonNameEditorE4) part.getObject()), getShell());
+               if(part.getObject() instanceof TaxonEditor
+                    && ((TaxonEditor) part.getObject()).getTaxon()!=null
+                    && ((TaxonEditor) part.getObject()).getTaxon().getUuid().equals(input.getTaxon().getUuid())){
+
+                   UUID inputNode = input.getTaxonNode().getUuid();
+                   UUID editorNode = ((TaxonEditor) part.getObject()).getTaxonNode().getUuid();
+                   if (!inputNode.equals(editorNode)){
+                       alreadyOpenInOtherClassification = part;
+                   }else{
+                       ((TaxonEditor) part.getObject()).init(input);
+                       partService.activate(part, true);
+                       return;
                    }
-                partService.hidePart(part);
-                break;
             }
         }
-        MPart part = showPart(NAME_EDITOR_ID, modelService, partService, application);
-
-        TaxonNameEditorE4 editor = (TaxonNameEditorE4) part.getObject();
-        editor.init(input);
-
-        if (factsVisible){
-            showFacts(modelService, partService);
-            factsVisible = false;
+        if (alreadyOpenInOtherClassification != null){
+            boolean doSave = forceUserSaveE4Editor(((TaxonEditor) alreadyOpenInOtherClassification.getObject()), getShell());
+            if (doSave){
+                input = TaxonEditorInput.NewInstance(input.getTaxonNode().getUuid());
+                partService.hidePart(alreadyOpenInOtherClassification);
+            }else {
+                return;
+            }
         }
 
-        if (mediaVisible){
-            showMedia(modelService, partService);
-            mediaVisible = false;
-        }
+        MPart part = showPart(NAME_EDITOR_ID, modelService, partService, application);
 
+        TaxonEditor editor = (TaxonEditor) part.getObject();
+//        editor.setDisabled();
+        editor.init(input);
+//        editor.setEnabled();
         editor.setFocus();
     }
 
     public static void showMedia(EModelService modelService, EPartService partService) {
         String partIdFactualData = AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_MEDIA_E4_MEDIAVIEWPARTE4;
         showPart(partIdFactualData, modelService, partService);
-
     }
 
     public static void showFacts(EModelService modelService, EPartService partService) {
         String partIdFactualData = AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVE_E4_FACTUALDATAPARTE4;
         showPart(partIdFactualData, modelService, partService);
-
     }
 
     public static Collection<MPart> checkForChanges(UUID taxonUUID, EPartService partService ){
         Collection<MPart> parts = partService.getParts();
-        Collection<MPart> dirtyParts = new HashSet();
+        Collection<MPart> dirtyParts = new HashSet<>();
         //check if part is already opened
         boolean isDirty = false;
         for (MPart part : parts) {
-            if(part.getObject() instanceof TaxonNameEditorE4
-                    && ((TaxonNameEditorE4) part.getObject()).getTaxon()!=null
-                    && ((TaxonNameEditorE4) part.getObject()).getTaxon().getUuid().equals(taxonUUID)){
+            if(part.getObject() instanceof TaxonEditor
+                    && ((TaxonEditor) part.getObject()).getTaxon()!=null
+                    && ((TaxonEditor) part.getObject()).getTaxon().getUuid().equals(taxonUUID)){
                 if (part.isDirty()){
                     dirtyParts.add(part);
                 }
@@ -306,16 +291,16 @@ public class EditorUtil extends AbstractUtility {
         Collection<IE4SavablePart> dirtyParts = new HashSet<>();
         //check if part is already opened
         for (MPart part : parts) {
-            if(part.getObject() instanceof TaxonNameEditorE4
-                    && ((TaxonNameEditorE4) part.getObject()).getTaxon()!=null
-                    && ((TaxonNameEditorE4) part.getObject()).getTaxon().getUuid().equals(taxonUUID)){
+            if(part.getObject() instanceof TaxonEditor
+                    && ((TaxonEditor) part.getObject()).getTaxon()!=null
+                    && ((TaxonEditor) part.getObject()).getTaxon().getUuid().equals(taxonUUID)){
                 if (part.isDirty()){
                     dirtyParts.add((IE4SavablePart) part);
                 }
 
                 break;
             }else if (taxonUUID == null){
-                if (part.isDirty() && (part.getObject() instanceof TaxonNameEditorE4 || (part.getObject() instanceof BulkEditorE4 && ((BulkEditorE4)part.getObject()).getEditorInput() instanceof TaxonEditorInput))){
+                if (part.isDirty() && (part.getObject() instanceof TaxonEditor || (part.getObject() instanceof BulkEditor && ((BulkEditor)part.getObject()).getEditorInput() instanceof TaxonBulkEditorInput))){
                     dirtyParts.add((IE4SavablePart) part.getObject());
                 }
             }
@@ -332,12 +317,12 @@ public class EditorUtil extends AbstractUtility {
         *            a {@link java.util.UUID} object.
         */
        public static void openEmptyE4(UUID parentNodeUuid) {
-               TaxonEditorInputE4 input = TaxonEditorInputE4
+               TaxonEditorInput input = TaxonEditorInput
                                .NewEmptyInstance(parentNodeUuid);
         EPartService partService = TaxeditorEditorPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getService(EPartService.class);
         MPart part = partService.createPart(NAME_EDITOR_ID);
         part = partService.showPart(part, PartState.ACTIVATE);
-        TaxonNameEditorE4 editor = (TaxonNameEditorE4) part.getObject();
+        TaxonEditor editor = (TaxonEditor) part.getObject();
         editor.init(input);
        }
 
@@ -369,17 +354,6 @@ public class EditorUtil extends AbstractUtility {
         EditorUtil.mediaVisible = mediaVisible;
     }
 
-    /**
-        * <p>
-        * forceUserSave
-        * </p>
-        *
-        * @param editor
-        *            a {@link org.eclipse.ui.IEditorPart} object.
-        * @param shell
-        *            a {@link org.eclipse.swt.widgets.Shell} object.
-        * @return a boolean.
-        */
        public static boolean forceUserSave(IEditorPart editor, Shell shell) {
                if (editor.isDirty()) {
 
@@ -484,8 +458,8 @@ public class EditorUtil extends AbstractUtility {
         Collection<MPart> parts = partService.getParts();
         for (MPart part : parts) {
             Object object = part.getObject();
-            if(object instanceof TaxonNameEditorE4){
-                TaxonNameEditorE4 taxonEditor = (TaxonNameEditorE4)object;
+            if(object instanceof TaxonEditor){
+                TaxonEditor taxonEditor = (TaxonEditor)object;
                 TaxonNode node = taxonEditor.getEditorInput().getTaxonNode();
                 if (node.treeIndex()!= null){
                        if(node.treeIndex().startsWith(treeIndex)){
@@ -501,6 +475,27 @@ public class EditorUtil extends AbstractUtility {
         }
     }
 
+    public static void closeObsoleteEditorWithChildren(TaxonNodeDto taxonNode, EPartService partService){
+        String treeIndex = taxonNode.getTreeIndex();
+        Collection<MPart> parts = partService.getParts();
+        for (MPart part : parts) {
+            Object object = part.getObject();
+            if(object instanceof TaxonEditor){
+                TaxonEditor taxonEditor = (TaxonEditor)object;
+                TaxonNode node = taxonEditor.getEditorInput().getTaxonNode();
+                if (node.treeIndex()!= null){
+                    if(node.treeIndex().startsWith(treeIndex)){
+                        if (part.isDirty()){
+                            forceUserSaveE4Editor(taxonEditor, getShell());
+                        }
+                        partService.hidePart(part);
+                    }
+                }else{
+                    logger.debug("The taxonnode of taxon " + node.getTaxon().getTitleCache() + " uuid: " + node.getUuid() + " has no treeindex");;
+                }
+            }
+        }
+    }
 
     public static void closeObsoleteDescriptiveDatasetEditor(UUID datasetUuid, EPartService partService){
 
@@ -521,7 +516,6 @@ public class EditorUtil extends AbstractUtility {
         }
     }
 
-
     public static void closePart(String partID, EPartService partService){
 
         Collection<MPart> parts = partService.getParts();
@@ -533,15 +527,12 @@ public class EditorUtil extends AbstractUtility {
         }
     }
 
-    public static void updateEditor(TaxonNode taxonNode, TaxonNameEditorE4 editor){
+    public static void updateEditor(TaxonNode taxonNode, TaxonEditor editor){
         String treeIndex = taxonNode.treeIndex();
         TaxonNode node = editor.getEditorInput().getTaxonNode();
         if(node.treeIndex().equals(treeIndex)){
-               TaxonEditorInputE4 input = TaxonEditorInputE4.NewInstance(node.getUuid());
+               TaxonEditorInput input = TaxonEditorInput.NewInstance(node.getUuid());
                editor.init(input);
-
-
         }
     }
-
-}
+}
\ No newline at end of file
index 05c634eee4852250637fd63119a1df70ea4ba051..35fd2ba5ea20228b24d61f305fa64f068167750d 100644 (file)
@@ -37,7 +37,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since Oct 29, 2018
  *
  */
-public class AreasSelectionDialog extends Dialog{
+public class AreasSelectionDialog extends Dialog {
 
     private CheckBoxTreeComposite treeComposite;
 
@@ -45,19 +45,20 @@ public class AreasSelectionDialog extends Dialog{
 
     private Collection<TermVocabularyDto> areaVocabularies;
 
-
     protected AreasSelectionDialog(Shell parentShell, List<TermDto> selectedAreas) {
         super(parentShell);
         this.selectedAreas = selectedAreas;
-        this.areaVocabularies = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(TermType.NamedArea);
+        this.areaVocabularies = CdmStore.getService(IVocabularyService.class)
+                .findVocabularyDtoByTermType(TermType.NamedArea);
     }
 
     @Override
     protected Control createDialogArea(Composite parent) {
-        treeComposite = new CheckBoxTreeComposite(parent, new TermDtoContentProvider(), new TermDtoLabelProvider(), SWT.NONE);
+        treeComposite = new CheckBoxTreeComposite(parent, new TermDtoContentProvider(), new TermDtoLabelProvider(),
+                SWT.NONE);
         treeComposite.getViewer().setComparator(new DefinedTermSorter());
         treeComposite.getViewer().setInput(areaVocabularies);
-        Collections.sort(selectedAreas, (o1, o2)->o1.getOrderIndex()-o2.getOrderIndex());
+        Collections.sort(selectedAreas, (o1, o2) -> o1.getOrderIndex() - o2.getOrderIndex());
         treeComposite.setCheckedElements(selectedAreas.toArray());
         treeComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
         return treeComposite;
@@ -75,7 +76,7 @@ public class AreasSelectionDialog extends Dialog{
         selectedAreas.clear();
         List<Object> checkedElements = Arrays.asList(treeComposite.getViewer().getCheckedElements());
         checkedElements = checkedElements.stream()
-                .filter(element->element instanceof TermDto && !treeComposite.getViewer().getGrayed(element))
+                .filter(element -> element instanceof TermDto && !treeComposite.getViewer().getGrayed(element))
                 .collect(Collectors.toList());
         selectedAreas = new ArrayList(checkedElements);
         super.okPressed();
@@ -86,7 +87,7 @@ public class AreasSelectionDialog extends Dialog{
         return true;
     }
 
-    public List<TermDto> getSelectedAreas(){
+    public List<TermDto> getSelectedAreas() {
         return selectedAreas;
     }
 }
index 8941402ac7bb469a2ce0f46d7a3ca74664908488..952f080b320add028ae9690d7b618f1bd0a639d7 100644 (file)
@@ -22,15 +22,15 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.swt.widgets.Tree;
 
+import eu.etaxonomy.cdm.api.service.l10n.TermRepresentation_L10n;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.term.TermTree;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
-import eu.etaxonomy.cdm.remote.l10n.TermRepresentation_L10n;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditorComposite;
 import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.termtree.e4.TermTreeEditorComposite;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermUuidComboViewer;
 import eu.etaxonomy.taxeditor.util.TaxonTreeNodeContentProvider;
 import eu.etaxonomy.taxeditor.util.TaxonTreeNodeLabelProvider;
@@ -44,7 +44,7 @@ public class DescriptiveDataSetComposite extends Composite {
     private Text txtDescriptiveDataSet;
     private TermUuidComboViewer comboRankMin;
     private TermUuidComboViewer comboRankMax;
-    private FeatureTreeEditorComposite<Feature> featureTreeEditorComposite;
+    private TermTreeEditorComposite<Feature> TermTreeEditorComposite;
     private TreeViewer taxonNodeTree;
     private List<TermDto> areas = new ArrayList<>();
     private Text textAreaText;
@@ -135,8 +135,8 @@ public class DescriptiveDataSetComposite extends Composite {
         btnChooseArea = new Button(composite, SWT.NONE);
         btnChooseArea.setImage(ImageResources.getImage(ImageResources.BROWSE_ICON));
 
-        featureTreeEditorComposite = new FeatureTreeEditorComposite<>(this, SWT.NONE);
-        featureTreeEditorComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
+        TermTreeEditorComposite = new TermTreeEditorComposite<>(this, SWT.NONE);
+        TermTreeEditorComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
     }
 
     @Override
@@ -161,15 +161,15 @@ public class DescriptiveDataSetComposite extends Composite {
         comboRankMax.setElement(max);
     }
 
-    public FeatureTreeEditorComposite<Feature> getFeatureTreeEditorComposite() {
-        return featureTreeEditorComposite;
+    public TermTreeEditorComposite<Feature> getTermTreeEditorComposite() {
+        return TermTreeEditorComposite;
     }
 
     public TermTree<Feature> getCharacters(){
-        return featureTreeEditorComposite.getFeatureTree();
+        return TermTreeEditorComposite.getFeatureTree();
     }
     public void setCharacters(TermTree<Feature> characters) {
-        featureTreeEditorComposite.setSelectedTree(characters);
+        TermTreeEditorComposite.setSelectedTree(characters);
     }
 
     public TreeViewer getTaxonNodeTree() {
index dcc2acd05db9faeed5a3bd4e4aeb804af0a9458e..040322d0e976789f486d0d53f9f6042bce421dad 100644 (file)
@@ -53,8 +53,6 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.api.service.ITermService;
@@ -89,13 +87,12 @@ import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
  * @since Nov 21, 2017
  *
  */
-public class DescriptiveDataSetEditor implements IE4SavablePart, IConversationEnabled, ICdmEntitySessionEnabled,
-IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable, IDescriptiveDataSetEditor {
+public class DescriptiveDataSetEditor implements IE4SavablePart, 
+               ICdmEntitySessionEnabled<DescriptiveDataSet>, IPartContentHasDetails, 
+               IPartContentHasSupplementalData, IDirtyMarkable, IDescriptiveDataSetEditor {
 
     private DescriptiveDataSetComposite composite;
 
-    private ConversationHolder conversation;
-
     private ICdmEntitySession cdmEntitySession;
 
     private DescriptiveDataSet descriptiveDataSet;
@@ -117,9 +114,6 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable, IDescri
     public void create(Composite parent, IEclipseContext context, @Named(IServiceConstants.ACTIVE_SHELL)Shell shell,
             EMenuService menuService){
         if (CdmStore.isActive()){
-            if(conversation == null){
-                conversation = CdmStore.createConversation();
-            }
             if(cdmEntitySession == null){
                 cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
             }
@@ -174,7 +168,7 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable, IDescri
             }
         });
 
-        composite.getFeatureTreeEditorComposite().init("Character Tree",
+        composite.getTermTreeEditorComposite().init("Character Tree",
                 TermType.Character,
                 null,
                 null,
@@ -291,11 +285,6 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable, IDescri
     @Override
     public void save(IProgressMonitor monitor) {
 
-        if (!conversation.isBound()) {
-            conversation.bind();
-
-        }
-        conversation.commit(true);
         Collection<TermDto> areas = composite.getAreas();
         Object input = composite.getTaxonNodeTree().getInput();
         if(input!=null){
@@ -347,10 +336,6 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable, IDescri
 
     @PreDestroy
     public void dispose() {
-        if (conversation != null) {
-            conversation.close();
-            conversation = null;
-        }
         if(cdmEntitySession != null) {
             cdmEntitySession.dispose();
             cdmEntitySession = null;
@@ -364,9 +349,7 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable, IDescri
         if(composite!=null){
             composite.setFocus();
         }
-        if (getConversationHolder() != null) {
-            getConversationHolder().bind();
-        }
+
         if(cdmEntitySession != null) {
             cdmEntitySession.bind();
         }
@@ -380,9 +363,7 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable, IDescri
         return descriptiveDataSet;
     }
 
-    @Override
-    public void update(CdmDataChangeMap arg0) {
-    }
+    
 
     @Override
     public ICdmEntitySession getCdmEntitySession() {
@@ -399,11 +380,6 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable, IDescri
         return null;
     }
 
-    @Override
-    public ConversationHolder getConversationHolder() {
-        return conversation;
-    }
-
     @Override
     public void changed(Object element) {
         dirty.setDirty(true);
index 5477b444d31577c5ea7f0d7a15d357118d5bcc9a..a3999d53ede413bc1043f2fcbae0f2928ecfe59a 100644 (file)
@@ -34,11 +34,10 @@ import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.ViewerComparator;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.IMemento;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
@@ -55,7 +54,8 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @date 12.12.2017
  *
  */
-public class DescriptiveDataSetNavigator implements IConversationEnabled, ICdmEntitySessionEnabled, IContextListener{
+public class DescriptiveDataSetNavigator 
+               implements ICdmEntitySessionEnabled<DescriptiveDataSet>, IContextListener{
 
     private ListViewer viewer;
 
@@ -64,8 +64,6 @@ public class DescriptiveDataSetNavigator implements IConversationEnabled, ICdmEn
 
     private ISelectionChangedListener selectionChangedListener;
 
-    private ConversationHolder conversation;
-
     private ICdmEntitySession cdmEntitySession;
 
     private List<DescriptiveDataSet> descriptiveDataSets;
@@ -91,6 +89,7 @@ public class DescriptiveDataSetNavigator implements IConversationEnabled, ICdmEn
                 return super.getText(element);
             }
         });
+        viewer.setComparator(new ViewerComparator());
 
         viewer.addDoubleClickListener(new IDoubleClickListener() {
 
@@ -118,9 +117,9 @@ public class DescriptiveDataSetNavigator implements IConversationEnabled, ICdmEn
 
     public void init(){
         if (CdmStore.isActive()){
-            if(conversation == null) {
-                conversation = CdmStore.createConversation();
-            }
+//            if(conversation == null) {
+//                conversation = CdmStore.createConversation();
+//            }
             if(cdmEntitySession == null){
                 cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
             }
@@ -162,55 +161,30 @@ public class DescriptiveDataSetNavigator implements IConversationEnabled, ICdmEn
         refresh();
     }
 
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void update(CdmDataChangeMap arg0) {
-    }
+    
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public ICdmEntitySession getCdmEntitySession() {
         return cdmEntitySession;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public <T extends CdmBase> Collection<T> getRootEntities() {
+    public Collection<DescriptiveDataSet> getRootEntities() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Map<Object, List<String>> getPropertyPathsMap() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public ConversationHolder getConversationHolder() {
-        return conversation;
-    }
-
     public ESelectionService getSelService() {
         return selService;
     }
 
     @PreDestroy
     public void dispose() {
-        if (conversation != null) {
-            conversation.close();
-            conversation = null;
-        }
+        
         if(cdmEntitySession != null) {
             cdmEntitySession.dispose();
             cdmEntitySession = null;
@@ -219,33 +193,22 @@ public class DescriptiveDataSetNavigator implements IConversationEnabled, ICdmEn
 
     @Focus
     public void setFocus() {
-        if (getConversationHolder() != null) {
-            getConversationHolder().bind();
-        }
+        
         if(cdmEntitySession != null) {
             cdmEntitySession.bind();
         }
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
         // TODO Auto-generated method stub
 
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void contextStop(IMemento memento, IProgressMonitor monitor) {
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void contextStart(IMemento memento, IProgressMonitor monitor) {
         if(viewer!=null && viewer.getControl()!=null && !viewer.getControl().isDisposed()){
@@ -253,18 +216,11 @@ public class DescriptiveDataSetNavigator implements IConversationEnabled, ICdmEn
         }
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void contextRefresh(IProgressMonitor monitor) {
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
     }
-
-}
+}
\ No newline at end of file
index f183b56e126ca434d5de7521b117cf9390f6065a..4c73938cb264d3036181f466d945fe59685cd457 100644 (file)
@@ -23,15 +23,15 @@ import org.eclipse.swt.widgets.Display;
 
 import eu.etaxonomy.cdm.model.description.Character;
 import eu.etaxonomy.cdm.model.term.TermNode;
-import eu.etaxonomy.taxeditor.featuretree.CharacterTransfer;
-import eu.etaxonomy.taxeditor.featuretree.e4.FeatureNodeDragListener;
+import eu.etaxonomy.taxeditor.termtree.CharacterTransfer;
+import eu.etaxonomy.taxeditor.termtree.e4.TermNodeDragListener;
 
 /**
  * @author pplitzner
  * @since Jun 2, 2017
  *
  */
-public class CharacterDragListener extends FeatureNodeDragListener {
+public class CharacterDragListener extends TermNodeDragListener {
 
     private TreeViewer structureViewer;
     private TreeViewer propertyViewer;
index d53f418cd36c54b05b1e8a37341dfd31878a79cb..08d5ba9c95a7abde466cd154e4f32c86ef35cecd 100644 (file)
@@ -13,14 +13,15 @@ import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.dnd.DropTargetEvent;
 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.Character;
-import eu.etaxonomy.cdm.model.term.TermNode;
 import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.taxeditor.featuretree.CharacterTransfer;
-import eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeDropAdapter;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.termtree.CharacterTransfer;
+import eu.etaxonomy.taxeditor.termtree.e4.TermTreeDtoDropAdapter;
 
 /**
  *
@@ -28,7 +29,7 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  * @date Jun 1, 2017
  *
  */
-public class CharacterDropAdapter extends FeatureTreeDropAdapter {
+public class CharacterDropAdapter extends TermTreeDtoDropAdapter {
 
        private CharacterEditor characterEditor;
 
@@ -53,7 +54,7 @@ public class CharacterDropAdapter extends FeatureTreeDropAdapter {
            if(!characterEditor.isVocabularySet()){
                return false;
            }
-           TermNode target = (TermNode) getCurrentTarget();
+           TermNodeDto target = (TermNodeDto) getCurrentTarget();
            if(data instanceof Object[]){
                Object[] transferObjects = (Object[])data;
                for(int i=0;i<transferObjects.length;i++){
@@ -62,9 +63,9 @@ public class CharacterDropAdapter extends FeatureTreeDropAdapter {
                        Character character = (Character)object;
                        if(target==null){
                         //drop on feature tree
-                        target = ((TermTree)getViewer().getInput()).getRoot();
+                        target = ((TermTreeDto)getViewer().getInput()).getRoot();
                     }
-                    CdmStore.getService(IFeatureNodeService.class).createChildFeatureNode(target.getUuid(), character, characterEditor.getVocabulary().getUuid());
+                    CdmStore.getService(ITermNodeService.class).createChildNode(target.getUuid(), character, characterEditor.getVocabulary().getUuid());
                    }
                }
                getViewer().refresh();
index 680d210e46c044129587727fa7b24f1de9c3eb37..47875796f977fc20f7e7c94692c0bdc69fe919cb 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2017 EDIT
 * European Distributed Institute of Taxonomy
@@ -18,14 +17,17 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.UUID;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.e4.core.di.annotations.Optional;
 import org.eclipse.e4.ui.di.Focus;
 import org.eclipse.e4.ui.di.Persist;
+import org.eclipse.e4.ui.di.UIEventTopic;
 import org.eclipse.e4.ui.di.UISynchronize;
 import org.eclipse.e4.ui.model.application.ui.MDirtyable;
 import org.eclipse.e4.ui.services.EMenuService;
@@ -54,55 +56,67 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.forms.widgets.FormToolkit;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
+import eu.etaxonomy.cdm.api.service.ITermNodeService;
 import eu.etaxonomy.cdm.api.service.ITermTreeService;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.cdm.format.description.CharacterLabelBuilder;
+import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.Character;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.Representation;
 import eu.etaxonomy.cdm.model.term.TermNode;
 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.model.term.VocabularyEnum;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.cdm.persistence.dto.CharacterDto;
+import eu.etaxonomy.cdm.persistence.dto.CharacterNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
 import eu.etaxonomy.taxeditor.editor.AppModelId;
-import eu.etaxonomy.taxeditor.editor.definedterm.FeatureTreeViewerComparator;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermTreeViewerComparator;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.featuretree.CharacterTransfer;
-import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
-import eu.etaxonomy.taxeditor.featuretree.FeatureTreeContentProvider;
-import eu.etaxonomy.taxeditor.featuretree.FeatureTreeLabelProvider;
-import eu.etaxonomy.taxeditor.featuretree.e4.AbstractTermTreeEditor;
-import eu.etaxonomy.taxeditor.featuretree.e4.FeatureNodeDragListener;
-import eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeDropAdapter;
-import eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditorComposite;
-import eu.etaxonomy.taxeditor.featuretree.e4.IFeatureTreeEditor;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.termtree.CharacterTransfer;
+import eu.etaxonomy.taxeditor.termtree.TermTreeContentProvider;
+import eu.etaxonomy.taxeditor.termtree.TermTreeLabelProvider;
+import eu.etaxonomy.taxeditor.termtree.e4.ICharacterEditor;
+import eu.etaxonomy.taxeditor.termtree.e4.TermNodeDtoDragListener;
+import eu.etaxonomy.taxeditor.termtree.e4.TermTreeDtoDropAdapter;
+import eu.etaxonomy.taxeditor.termtree.e4.TermTreeDtoEditorComposite;
+import eu.etaxonomy.taxeditor.termtree.e4.TermTreeEditor;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.FeatureTreeSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.TermVocabularySelectionDialog;
+import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
 import eu.etaxonomy.taxeditor.workbench.part.IE4ViewerPart;
 
 /**
  * Editor for combining structure and property terms to characters.
+ * 
  * @author pplitzner
  * @date 24.05.2017
- *
  */
-public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled, ISelectionChangedListener,
-        ModifyListener, IE4ViewerPart, IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable {
+public class CharacterEditor implements ICharacterEditor, ISelectionChangedListener, ModifyListener, IE4ViewerPart,
+        IPartContentHasDetails, IPartContentHasSupplementalData, IDirtyMarkable, IE4SavablePart {
 
-    private FeatureTreeEditorComposite<Character> characterTreeEditorComposite;
+    private TermTreeDtoEditorComposite characterTreeEditorComposite;
     private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());
 
     @Inject
@@ -114,13 +128,19 @@ public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled,
     @Inject
     private MDirtyable dirty;
 
-    private ConversationHolder conversation;
-
     private ICdmEntitySession cdmEntitySession;
 
     private TermVocabulary vocabulary;
     private TreeViewer structureViewer;
     private TreeViewer propertyViewer;
+    private Button btnAddCharacter;
+    private Button btnAddRatioTo;
+
+    private List<AbstractPostOperation> operations = new ArrayList<>();
+
+    private List<CharacterNodeDto> nodesToUpdate = new ArrayList<>();
+
+    private Map<Character, CharacterNodeDto> nodesToSave = new HashMap<>();
 
     public CharacterEditor() {
     }
@@ -129,16 +149,15 @@ public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled,
      * Create contents of the view part.
      */
     @PostConstruct
-    public void createControls(Composite parent, EMenuService menuService ) {
-        if (CdmStore.isActive()){
-            if(conversation == null){
-                conversation = CdmStore.createConversation();
-            }
-            if(cdmEntitySession==null){
+    public void createControls(Composite parent, EMenuService menuService) {
+        if (CdmStore.isActive()) {
+            // if(conversation == null){
+            // conversation = CdmStore.createConversation();
+            // }
+            if (cdmEntitySession == null) {
                 cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
             }
-        }
-        else{
+        } else {
             return;
         }
         parent.setLayout(new GridLayout(1, false));
@@ -147,7 +166,7 @@ public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled,
         vocChooserComposite.setLayout(new GridLayout(4, false));
         vocChooserComposite.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, false, 2, 1));
         Label lblVocImport = new Label(vocChooserComposite, SWT.NONE);
-        lblVocImport.setText("Character vocabulary");
+        lblVocImport.setText("Character vocabulary:");
         Text txtVocabulary = new Text(vocChooserComposite, SWT.NONE);
         txtVocabulary.setEditable(false);
         Button btnChooseVoc = new Button(vocChooserComposite, SWT.PUSH);
@@ -156,15 +175,19 @@ public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled,
 
             @Override
             public void widgetSelected(SelectionEvent e) {
-                // hard-coded filter for "built-in" vocabularies Feature and Name Feature
+                // hard-coded filter for "built-in" vocabularies Feature and
+                // Name Feature
                 Set<TermVocabulary> vocabulariesToBeFiltered = new HashSet<>();
-                vocabulariesToBeFiltered.add(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.Feature.getUuid()));
-                vocabulariesToBeFiltered.add(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()));
-                if(vocabulary!=null){
+                vocabulariesToBeFiltered
+                        .add(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.Feature.getUuid()));
+                vocabulariesToBeFiltered
+                        .add(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()));
+                if (vocabulary != null) {
                     vocabulariesToBeFiltered.add(vocabulary);
                 }
-                vocabulary = TermVocabularySelectionDialog.select("Select vocabulary for characters", btnChooseVoc.getShell(), vocabulariesToBeFiltered, TermType.Character);
-                if(vocabulary!=null){
+                vocabulary = TermVocabularySelectionDialog.select("Select vocabulary for characters",
+                        btnChooseVoc.getShell(), vocabulariesToBeFiltered, TermType.Character);
+                if (vocabulary != null) {
                     txtVocabulary.setText(vocabulary.getLabel());
                 }
             }
@@ -182,7 +205,7 @@ public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled,
         gl_composite.marginWidth = 0;
         composite.setLayout(gl_composite);
 
-        structureViewer = createTreeViewer(composite, TermType.Structure);
+        structureViewer = createTreeViewer(composite, TermType.Structure, Messages.CharacterEditor_STRUCTURES);
 
         Composite composite_1 = new Composite(sashForm, SWT.NONE);
         formToolkit.adapt(composite_1);
@@ -191,10 +214,11 @@ public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled,
         gl_composite_1.marginWidth = 0;
         composite_1.setLayout(gl_composite_1);
 
-        propertyViewer = createTreeViewer(composite_1, TermType.Property);
+        propertyViewer = createTreeViewer(composite_1, TermType.Property, Messages.CharacterEditor_PROPERTIES);
+        propertyViewer.addSelectionChangedListener(this);
 
         int ops = DND.DROP_COPY | DND.DROP_MOVE;
-        Transfer[] transfers = new Transfer[] {CharacterTransfer.getInstance()};
+        Transfer[] transfers = new Transfer[] { CharacterTransfer.getInstance() };
         propertyViewer.addDragSupport(ops, transfers, new CharacterDragListener(structureViewer, propertyViewer));
 
         Composite composite_3 = new Composite(sashForm, SWT.NONE);
@@ -204,126 +228,263 @@ public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled,
         gl_composite_3.marginWidth = 0;
         composite_3.setLayout(gl_composite_3);
 
-        Button btnAddCharacter = new Button(composite_3, SWT.NONE);
+        Composite composite_4 = new Composite(composite_3, SWT.NONE);
+        formToolkit.adapt(composite_4);
+        formToolkit.paintBordersFor(composite_4);
+        GridLayout gl_composite_4 = new GridLayout(1, false);
+        gl_composite_4.marginWidth = 0;
+        composite_4.setLayout(gl_composite_4);
+
+        btnAddCharacter = new Button(composite_4, SWT.NONE);
         btnAddCharacter.setText(">>"); //$NON-NLS-1$
         formToolkit.adapt(btnAddCharacter, true, true);
         btnAddCharacter.addSelectionListener(new SelectionAdapter() {
             @Override
             public void widgetSelected(SelectionEvent e) {
-                if(!isVocabularySet()){
+                if (!isVocabularySet()) {
+                    return;
+                }
+                if (confirmSaveDirty()) {
                     return;
                 }
                 ISelection structureTreeSelection = structureViewer.getSelection();
                 ISelection propertyTreeSelection = propertyViewer.getSelection();
-                if(structureTreeSelection==null || propertyTreeSelection==null || characterTreeEditorComposite.getFeatureTree()==null){
+                if (structureTreeSelection == null || propertyTreeSelection == null
+                        || characterTreeEditorComposite.getFeatureTree() == null) {
                     MessagingUtils.warningDialog(Messages.CharacterEditor_CANNOT_PERFORM_TITLE, CharacterEditor.this,
                             Messages.CharacterEditor_CANNOT_PERFORM_MESSAGE);
                     return;
                 }
-                Collection<Character> characters = createCharacters((TreeSelection)structureTreeSelection, (TreeSelection)propertyTreeSelection);
-                TermNode<Character> parent = ((TermTree<Character>) characterTreeEditorComposite.getViewer().getInput()).getRoot();
+                Collection<Character> characters = createCharacters((TreeSelection) structureTreeSelection,
+                        (TreeSelection) propertyTreeSelection);
+                TermNodeDto parent = ((TermTreeDto) characterTreeEditorComposite.getFeatureTree()).getRoot();
+                ISelection sel = characterTreeEditorComposite.getViewer().getSelection();
+
+                TermNodeDto parentNode = parent;
+                if (sel instanceof TreeSelection) {
+                    TreeSelection treeSel = (TreeSelection) sel;
+                    Object o = treeSel.getFirstElement();
+                    if (o instanceof CharacterNodeDto) {
+                        parentNode = (TermNodeDto) o;
+                    }
+                }
+
                 for (Character character : characters) {
-                    //add new Character to feature tree
-                    UpdateResult result = CdmStore.getService(IFeatureNodeService.class).createChildFeatureNode(parent.getUuid(), character, vocabulary.getUuid());
-                    cdmEntitySession.load(result, true);
+                    // add new Character to feature tree
+                    TermTreeDto tree = (TermTreeDto)getTreeDtoForUuid(parent.getTreeUuid());
+                    CharacterNodeDto nodeDto = new CharacterNodeDto(CharacterDto.fromCharacter(character), parentNode,
+                            0, tree, null, 0, null, null);
+                    nodesToSave.put(character, nodeDto);
+                    setDirty();
+                    // result =
+                    // CdmStore.getService(ITermNodeService.class).createChildFeatureNode(parent.getUuid(),
+                    // character, vocabulary.getUuid());
+
                 }
+
                 refresh();
             }
         });
+        btnAddCharacter.setEnabled(false);
 
-        characterTreeEditorComposite = addFeatureTreeEditor(composite_3);
-        initFeatureTreeComposite(TermType.Character, characterTreeEditorComposite, new FeatureNodeDragListener(characterTreeEditorComposite.getViewer()),
-                new CharacterDropAdapter(this, characterTreeEditorComposite.getViewer(), sync),
+        btnAddRatioTo = new Button(composite_4, SWT.NONE);
+        btnAddRatioTo.setText("ratio to"); //$NON-NLS-1$
+
+        btnAddRatioTo.setSize(btnAddCharacter.getSize());
+        btnAddRatioTo.setEnabled(false);
 
-                new Transfer[] {FeatureNodeTransfer.getInstance(), CharacterTransfer.getInstance()},
-                this,
-                this);
+        formToolkit.adapt(btnAddRatioTo, true, true);
+        btnAddRatioTo.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+
+                if (confirmSaveDirty()) {
+                    return;
+                }
+                ISelection structureTreeSelection = structureViewer.getSelection();
+                ISelection characterSelection = characterTreeEditorComposite.getViewer().getSelection();
+                if (structureTreeSelection == null || characterSelection == null) {
+                    MessagingUtils.warningDialog(Messages.CharacterEditor_CANNOT_PERFORM_TITLE, CharacterEditor.this,
+                            Messages.CharacterEditor_CANNOT_PERFORM_MESSAGE);
+                    return;
+                }
+
+                CharacterNodeDto character = (CharacterNodeDto) ((TreeSelection) characterSelection).getFirstElement();
+                TermNode ratioToNode = (TermNode) ((TreeSelection) structureTreeSelection).getFirstElement();
+                if (character == null) {
+                    return;
+                }
+                TermDto termDto = character.getTerm();
+                TermNodeDto structure = null;
+                TermNodeDto property = null;
+                Representation structureRepresentation = null;
+                Representation propertyRepresentation = null;
+                Representation ratioToRepresentation = ratioToNode.getTerm()
+                        .getRepresentation(CdmStore.getDefaultLanguage());
+                if (termDto instanceof CharacterDto) {
+                    CharacterDto dto = (CharacterDto) termDto;
+                    dto.setRatioTo(TermNodeDto.fromNode(ratioToNode, null));
+                    structure = dto.getStructure();
+                    structureRepresentation = structure.getTerm()
+                            .getPreferredRepresentation(CdmStore.getDefaultLanguage());
+                    property = dto.getProperty();
+                    propertyRepresentation = property.getTerm()
+                            .getPreferredRepresentation(CdmStore.getDefaultLanguage());
+                }
+
+                String label = null;
+                String abbrevLabel = null;
+
+                if (structureRepresentation != null && propertyRepresentation != null) {
+                    if (structureRepresentation.getLabel() != null && propertyRepresentation.getLabel() != null
+                            && ratioToRepresentation.getLabel() != null) {
+                        label = propertyRepresentation.getLabel() + " ratio " + structureRepresentation.getLabel()
+                                + " to " + ratioToRepresentation.getLabel();
+                    }
+                    if (structureRepresentation.getAbbreviatedLabel() != null
+                            && propertyRepresentation.getAbbreviatedLabel() != null
+                            && ratioToRepresentation.getAbbreviatedLabel() != null) {
+                        abbrevLabel = propertyRepresentation.getAbbreviatedLabel() + " ratio "
+                                + structureRepresentation.getAbbreviatedLabel() + " to "
+                                + ratioToRepresentation.getAbbreviatedLabel();
+                    }
+                }
+                if (label == null) {
+                    // default label
+                    label = property.getTerm().getRepresentation_L10n() + " ratio "
+                            + structure.getTerm().getRepresentation_L10n() + " to " + ratioToNode.getTerm().getLabel();
+                }
+                character.getTerm().getRepresentation(CdmStore.getDefaultLanguage()).setLabel(label);
+                character.getTerm().getRepresentation(CdmStore.getDefaultLanguage()).setAbbreviatedLabel(abbrevLabel);
+
+                setDirty();
+                nodesToUpdate.add(character);
+
+                refresh();
+
+                characterTreeEditorComposite.getViewer().setSelection(new StructuredSelection(character));
+                EventUtility.postEvent(WorkbenchEventConstants.REFRESH_DETAILS, true);
+            }
+        });
+
+        characterTreeEditorComposite = addFeatureTreeEditor(composite_3);
+        initFeatureTreeComposite(TermType.Character, characterTreeEditorComposite,
+                new TermNodeDtoDragListener(characterTreeEditorComposite.getViewer()),
+                new TermTreeDtoDropAdapter(this, characterTreeEditorComposite.getViewer(), sync), null);
 
         characterTreeEditorComposite.getLabel_title().setText(Messages.CharacterEditor_CHARACTERS);
 
-        //add context menu to character viewer
+        // add context menu to character viewer
         menuService.registerContextMenu(characterTreeEditorComposite.getViewer().getControl(),
                 AppModelId.POPUPMENU_EU_ETAXONOMY_TAXEDITOR_EDITOR_POPUPMENU_CHARACTEREDITOR);
 
     }
 
-    private TreeViewer createTreeViewer(Composite parent, TermType termType) {
+    private TreeViewer createTreeViewer(Composite parent, TermType termType, String labelString) {
         Composite composite = new Composite(parent, SWT.NONE);
         composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
         composite.setLayout(new GridLayout(2, false));
         Label label = new Label(composite, SWT.NONE);
-        label.setText(termType.getMessage());
+        label.setText(labelString);
         Button btnRefresh = new Button(composite, SWT.PUSH);
         btnRefresh.setImage(ImageResources.getImage(ImageResources.REFRESH));
         btnRefresh.setToolTipText("Refresh");
 
-
         TreeViewer viewer = new TreeViewer(composite);
         viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
-        viewer.setContentProvider(new FeatureTreeContentProvider());
-        viewer.setLabelProvider(new FeatureTreeLabelProvider());
-        viewer.setComparator(new FeatureTreeViewerComparator());
+        viewer.setContentProvider(new TermTreeContentProvider());
+        viewer.setLabelProvider(new TermTreeLabelProvider());
+        viewer.setComparator(new TermTreeViewerComparator());
         viewer.addSelectionChangedListener(this);
-        viewer.setInput(CdmStore.getService(ITermTreeService.class).list(termType, null, null, null, AbstractTermTreeEditor.TREE_PROPERTY_PATH));
+        viewer.setInput(CdmStore.getService(ITermTreeService.class).list(termType, null, null, null,
+                TermTreeEditor.TREE_PROPERTY_PATH));
         btnRefresh.addSelectionListener(new SelectionAdapter() {
 
             @Override
             public void widgetSelected(SelectionEvent e) {
+                viewer.setInput(CdmStore.getService(ITermTreeService.class).list(termType, null, null, null,
+                        TermTreeEditor.TREE_PROPERTY_PATH));
                 refresh(viewer);
             }
         });
         return viewer;
     }
 
-    private <T extends DefinedTermBase> FeatureTreeEditorComposite<T> addFeatureTreeEditor(Composite composite_3) {
-        FeatureTreeEditorComposite<T> featureTreeEditorComposite = new FeatureTreeEditorComposite<>(composite_3, SWT.NONE);
-        featureTreeEditorComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
-        return featureTreeEditorComposite;
+    private <T extends DefinedTermBase> TermTreeDtoEditorComposite<T> addFeatureTreeEditor(Composite composite_3) {
+        TermTreeDtoEditorComposite<T> TermTreeEditorComposite = new TermTreeDtoEditorComposite<>(composite_3, SWT.NONE);
+        TermTreeEditorComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+        return TermTreeEditorComposite;
     }
 
-    private void initFeatureTreeComposite(
-            TermType termType,
-            FeatureTreeEditorComposite featureTreeEditorComposite,
-            FeatureNodeDragListener featureNodeDragListener,
-            FeatureTreeDropAdapter featureNodeDropAdapter,
-            Transfer[] transfers,
-            ISelectionChangedListener viewerSelectionChangedListener,
-            ModifyListener modifyListener) {
+    private void initFeatureTreeComposite(TermType termType, TermTreeDtoEditorComposite TermTreeEditorComposite,
+            TermNodeDtoDragListener featureNodeDragListener, TermTreeDtoDropAdapter featureNodeDropAdapter,
+            Transfer[] transfers) {
 
-        featureTreeEditorComposite.init(
-                featureNodeDragListener,
-                featureNodeDropAdapter,
-                transfers,
-                viewerSelectionChangedListener,
-                new FeatureTreeChooserListener(featureTreeEditorComposite, termType),
-                modifyListener);
+        TermTreeEditorComposite.init(featureNodeDragListener, featureNodeDropAdapter, transfers, this,
+                new FeatureTreeChooserListener(TermTreeEditorComposite, termType), this);
     }
 
     @Focus
-    public void focus(){
-        if(characterTreeEditorComposite!=null){
+    public void focus() {
+        if (characterTreeEditorComposite != null) {
             characterTreeEditorComposite.getViewer().getControl().setFocus();
         }
-        if(conversation!=null && !conversation.isBound()){
-            conversation.bind();
-        }
-        if(cdmEntitySession != null) {
+        if (cdmEntitySession != null) {
             cdmEntitySession.bind();
         }
     }
 
-    public static Collection<Character> createCharacters(TreeSelection structureTreeSelection, TreeSelection propertyTreeSelection){
+    public static Collection<Character> createCharacters(TreeSelection structureTreeSelection,
+            TreeSelection propertyTreeSelection) {
         Set<Character> characters = new HashSet<>();
-        //get selected structures and properties
+        // get selected structures and properties
         Iterator<TermNode<DefinedTerm>> structureIterator = structureTreeSelection.iterator();
 
-        //create all combinations of structures and properties
-        while(structureIterator.hasNext()){
-            TermNode<DefinedTerm> structureNode = structureIterator.next();
+        // create all combinations of structures and properties
+        while (structureIterator.hasNext()) {
+            Object o = structureIterator.next();
+            TermNode<DefinedTerm> structureNode = null;
+            if (o instanceof TermNode) {
+                structureNode = (TermNode<DefinedTerm>) o;
+            } else {
+                return null;
+
+            }
+
             Iterator<TermNode<DefinedTerm>> propertiesIterator = propertyTreeSelection.iterator();
-            while(propertiesIterator.hasNext()){
+            while (propertiesIterator.hasNext()) {
                 TermNode<DefinedTerm> propertyNode = propertiesIterator.next();
-                Character character = CharacterTransfer.createCharacter(structureNode, propertyNode);
+                Representation structureRepresentation = structureNode.getTerm()
+                        .getRepresentation(PreferencesUtil.getGlobalLanguage());
+                if (structureRepresentation == null) {
+                    structureRepresentation = structureNode.getTerm().getRepresentation(Language.DEFAULT());
+                }
+                Representation propertyRepresentation = propertyNode.getTerm()
+                        .getRepresentation(PreferencesUtil.getGlobalLanguage());
+                if (propertyRepresentation == null) {
+                    propertyRepresentation = propertyNode.getTerm().getRepresentation(Language.DEFAULT());
+                }
+                String label = null;
+                String abbrevLabel = null;
+                if (structureRepresentation != null && propertyRepresentation != null) {
+                    if (structureRepresentation.getLabel() != null && propertyRepresentation.getLabel() != null) {
+                        label = structureRepresentation.getLabel() + " " + propertyRepresentation.getLabel();
+                    }
+                    if (structureRepresentation.getAbbreviatedLabel() != null
+                            && propertyRepresentation.getAbbreviatedLabel() != null) {
+                        abbrevLabel = structureRepresentation.getAbbreviatedLabel() + " "
+                                + propertyRepresentation.getAbbreviatedLabel();
+                    }
+                }
+                if (label != null) {
+                    // default label
+                    label = structureNode.getTerm().getLabel() + " " + propertyNode.getTerm().getLabel();
+                }
+                Character character = Character.NewInstance(structureNode, propertyNode, null, label, abbrevLabel);
+                CharacterLabelBuilder labelBuilder = CharacterLabelBuilder.NewDefaultInstance();
+                character.setLabel(labelBuilder.buildLabel(character, CdmStore.getDefaultLanguage()));
+                character.setAvailableForTaxon(true);
+                character.setAvailableForOccurrence(true);
                 characters.add(character);
 
             }
@@ -333,19 +494,40 @@ public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled,
 
     @Override
     @Persist
-    public void save(IProgressMonitor monitor){
-        if (!conversation.isBound()) {
-            conversation.bind();
-        }
-
-        TermTree<Character> featureTree = characterTreeEditorComposite.getFeatureTree();
-
-        CdmStore.getService(ITermTreeService.class).merge(featureTree, true);
+    public void save(IProgressMonitor monitor) {
 
+        UpdateResult result = new UpdateResult();
+        if (nodesToSave != null && this.getVocabulary() != null) {
+            result.includeResult(CdmStore.getService(ITermNodeService.class)
+                    .saveNewCharacterNodeDtoMap(this.nodesToSave, this.getVocabulary().getUuid()));
+        }
+        nodesToSave.clear();
+        TermCollectionDto featureTree = characterTreeEditorComposite.getFeatureTree();
+        if (operations != null && !operations.isEmpty()) {
+            for (AbstractPostOperation<TermNode> operation : operations) {
+                AbstractUtility.executeOperation(operation, sync);
+            }
+            operations.clear();
+        }        
+       
+        result.includeResult(CdmStore.getService(ITermNodeService.class).saveCharacterNodeDtoList(this.nodesToUpdate));
+        
+        nodesToUpdate.clear();
         // commit the conversation and start a new transaction immediately
-        conversation.commit(true);
+        // conversation.commit(true);
+        if (result.getUpdatedObjects() != null && !result.getUpdatedObjects().isEmpty()) {
+            Object o = result.getUpdatedObjects().iterator().next();
+            if (o instanceof TermNode) {
+                TermNode node = (TermNode) o;
+                TermTree updateTree = (TermTree) node.getGraph();
+                if (updateTree != null) {
+                    characterTreeEditorComposite.setSelectedTree(updateTree);
+                }
+            }
 
-        initializeTrees();
+        }
+
+        // initializeTrees();
 
         dirty.setDirty(false);
     }
@@ -353,9 +535,6 @@ public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled,
     private void initializeTrees() {
         Object[] expandedElements = characterTreeEditorComposite.getViewer().getExpandedElements();
         characterTreeEditorComposite.getViewer().getTree().removeAll();
-        TermTree tree = (TermTree) characterTreeEditorComposite.getViewer().getInput();
-        cdmEntitySession.load(tree, true);
-        characterTreeEditorComposite.getViewer().setInput(tree);
         characterTreeEditorComposite.getViewer().setExpandedElements(expandedElements);
     }
 
@@ -365,12 +544,9 @@ public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled,
     }
 
     @PreDestroy
-    public void dispose(){
-        if(conversation!=null){
-            conversation.close();
-            conversation = null;
-        }
-        if(cdmEntitySession != null) {
+    public void dispose() {
+
+        if (cdmEntitySession != null) {
             cdmEntitySession.dispose();
             cdmEntitySession = null;
         }
@@ -378,10 +554,15 @@ public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled,
     }
 
     public boolean isVocabularySet() {
-        if(vocabulary==null){
-            MessagingUtils.warningDialog("Character creation not possible", this.getClass(), "Please select a vocabulary for the characters.");
+        if (vocabulary == null) {
+            MessagingUtils.warningDialog("Character creation not possible", this.getClass(),
+                    "Please select a vocabulary for the characters.");
         }
-        return vocabulary!=null;
+        return vocabulary != null;
+    }
+
+    public boolean confirmSaveDirty() {
+        return StoreUtil.promptCheckIsDirty(this);
     }
 
     public TermVocabulary getVocabulary() {
@@ -390,21 +571,18 @@ public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled,
 
     @Override
     public Map<Object, List<String>> getPropertyPathsMap() {
-        List<String> propertyPaths = Arrays.asList(new String[] {
-                "children", //$NON-NLS-1$
+        List<String> propertyPaths = Arrays.asList(new String[] { "children", //$NON-NLS-1$
                 "feature", //$NON-NLS-1$
                 "featureTree", //$NON-NLS-1$
         });
-        Map<Object, List<String>> propertyPathMap =
-                new HashMap<Object, List<String>>();
-        propertyPathMap.put(TermNode.class,propertyPaths);
+        Map<Object, List<String>> propertyPathMap = new HashMap<Object, List<String>>();
+        propertyPathMap.put(TermNode.class, propertyPaths);
         return propertyPathMap;
     }
 
     @Override
-    public List<TermTree<Character>> getRootEntities() {
-        List<TermTree<Character>> root = new ArrayList<>();
-        cdmEntitySession.load(characterTreeEditorComposite.getFeatureTree(), true);
+    public List<TermCollectionDto> getRootEntities() {
+        List<TermCollectionDto> root = new ArrayList<>();
         root.add(characterTreeEditorComposite.getFeatureTree());
         return root;
     }
@@ -416,26 +594,45 @@ public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled,
 
     @Focus
     public void setFocus() {
-        if(conversation!=null && !conversation.isBound()){
-            conversation.bind();
-        }
+
     }
 
     @Override
     public void selectionChanged(SelectionChangedEvent event) {
-        //propagate selection
+        // propagate selection
         selService.setSelection(event.getSelection());
+        ISelection selStructure = null;
+        ISelection selProperty = null;
+        selStructure = structureViewer.getSelection();
+        selProperty = propertyViewer.getSelection();
+
+        if (selStructure != null && selProperty != null && selStructure instanceof TreeSelection
+                && selProperty instanceof TreeSelection
+                && ((TreeSelection) selStructure).getFirstElement() instanceof TermNode
+                && ((TreeSelection) selProperty).getFirstElement() instanceof TermNode && this.vocabulary != null) {
+            btnAddCharacter.setEnabled(true);
+        } else {
+            btnAddCharacter.setEnabled(false);
+        }
+        ISelection selCharacter = this.characterTreeEditorComposite.getViewer().getSelection();
+        if (selStructure != null && selCharacter != null && selStructure instanceof TreeSelection
+                && selCharacter instanceof TreeSelection
+                && ((TreeSelection) selStructure).getFirstElement() instanceof TermNode
+                && ((TreeSelection) selCharacter).getFirstElement() instanceof CharacterNodeDto) {
+            btnAddRatioTo.setEnabled(true);
+        } else {
+            btnAddRatioTo.setEnabled(false);
+        }
     }
 
-
     @Override
     public void modifyText(ModifyEvent e) {
-        characterTreeEditorComposite.getFeatureTree().setTitleCache(((Text) e.widget).getText(), true);
+        characterTreeEditorComposite.getFeatureTree().setTitleCache(((Text) e.widget).getText());
         setDirty();
     }
 
-
-    private void setDirty() {
+    @Override
+    public void setDirty() {
         dirty.setDirty(true);
     }
 
@@ -449,46 +646,38 @@ public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled,
         return TermType.Character;
     }
 
-    public TermTree<Character> getCharacterTree(){
+    public TermCollectionDto getCharacterTree() {
         return characterTreeEditorComposite.getFeatureTree();
     }
 
-
-    public void refresh(TreeViewer viewer){
+    public void refresh(TreeViewer viewer) {
         viewer.refresh();
 
         characterTreeEditorComposite.getViewer().setInput(characterTreeEditorComposite.getViewer().getInput());
     }
 
-    private class FeatureTreeChooserListener extends SelectionAdapter{
-        private FeatureTreeEditorComposite<Feature> featureTreeEditorComposite;
+    private class FeatureTreeChooserListener extends SelectionAdapter {
+        private TermTreeDtoEditorComposite<Feature> TermTreeEditorComposite;
         private TermType termType;
 
-        public FeatureTreeChooserListener(FeatureTreeEditorComposite<Feature> featureTreeEditorComposite, TermType termType) {
+        public FeatureTreeChooserListener(TermTreeDtoEditorComposite<Feature> TermTreeEditorComposite,
+                TermType termType) {
             super();
-            this.featureTreeEditorComposite = featureTreeEditorComposite;
+            this.TermTreeEditorComposite = TermTreeEditorComposite;
             this.termType = termType;
         }
 
         @Override
         public void widgetSelected(SelectionEvent e) {
-            TermTree tree = FeatureTreeSelectionDialog.select(featureTreeEditorComposite.getDisplay().getActiveShell(), null, termType);
-            if(tree!=null){
-//                cdmEntitySession.load(tree, true);
-                featureTreeEditorComposite.setSelectedTree(tree);
+            TermTree tree = FeatureTreeSelectionDialog.select(TermTreeEditorComposite.getDisplay().getActiveShell(),
+                    null, termType);
+            if (tree != null) {
+                cdmEntitySession.load(tree, true);
+                TermTreeEditorComposite.setSelectedTree(tree);
             }
         }
     }
 
-    @Override
-    public void update(CdmDataChangeMap arg0) {
-    }
-
-    @Override
-    public ConversationHolder getConversationHolder() {
-        return conversation;
-    }
-
     @Override
     public void changed(Object element) {
         setDirty();
@@ -503,7 +692,7 @@ public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled,
     @Override
     public boolean postOperation(Object objectAffectedByOperation) {
         characterTreeEditorComposite.getViewer().refresh();
-        if(objectAffectedByOperation instanceof TermNode){
+        if (objectAffectedByOperation instanceof TermNode) {
             StructuredSelection selection = new StructuredSelection(objectAffectedByOperation);
             characterTreeEditorComposite.getViewer().setSelection(selection);
         }
@@ -519,7 +708,68 @@ public class CharacterEditor implements IFeatureTreeEditor,IConversationEnabled,
     public void refresh() {
         structureViewer.refresh();
         propertyViewer.refresh();
-        characterTreeEditorComposite.getViewer().setInput(characterTreeEditorComposite.getViewer().getInput());
+        characterTreeEditorComposite.refresh();
+
+    }
+
+    @Override
+    public TermNodeDto getNodeDtoForUuid(UUID nodeUuid) {
+        return (TermNodeDto) this.characterTreeEditorComposite.getNodeUuidMap().get(nodeUuid);
+
+    }
+
+    @Override
+    public void addOperation(AbstractPostOperation operation) {
+        operations.add(operation);
+
+    }
+
+    @Inject
+    @Optional
+    private void addSaveCandidate(
+            @UIEventTopic(WorkbenchEventConstants.ADD_SAVE_CHARACTER) CharacterNodeDto characterNodeDto) {
+
+        if (characterNodeDto != null) {
+            if (nodesToUpdate.contains(characterNodeDto)) {
+                nodesToUpdate.remove(characterNodeDto);
+            }
+            nodesToUpdate.add(characterNodeDto);
+        }
+
+    }
+
+    @Override
+    public TreeViewer getViewer() {
+        return this.characterTreeEditorComposite.getViewer();
+    }
+
+    @Override
+    public TermCollectionDto getTreeDtoForUuid(UUID treeUuid) {
+        if (this.characterTreeEditorComposite.getFeatureTree().getUuid().equals(treeUuid)) {
+            return this.characterTreeEditorComposite.getFeatureTree();
+        }
+        return null;
+    }
+
+    @Override
+    public boolean checkDuplicates(UUID termUuid, UUID treeUuid) {
+        for (TermDto dto : characterTreeEditorComposite.getFeatureTree().getTerms()) {
+            if (dto != null && dto.getUuid().equals(termUuid)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    @Override
+    public void setNodeDtoForUuid(TermNodeDto node) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void setTreeDtoForUuid(TermTreeDto tree) {
+        // TODO Auto-generated method stub
 
     }
 
index fa6559459672e47ecdae4c8f13e76ab2b6e0698a..9a8617d33815acfe86f002952879514c3899e983 100644 (file)
@@ -22,14 +22,14 @@ import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.character.CharacterEditor;
-import eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler;
+import eu.etaxonomy.taxeditor.termtree.e4.handler.AddTermHandler;
 
 /**
  * @author pplitzner
  * @since Jul 12, 2017
  *
  */
-public class AddFeatureToCharacterTreeHandler extends AddFeatureHandler {
+public class AddFeatureToCharacterTreeHandler extends AddTermHandler {
 
     @Execute
     @Override
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/character/operation/CreateNewCharacterOperation.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/character/operation/CreateNewCharacterOperation.java
new file mode 100755 (executable)
index 0000000..7f99930
--- /dev/null
@@ -0,0 +1,65 @@
+/**
+* Copyright (C) 2020 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.character.operation;
+
+import java.util.UUID;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+import eu.etaxonomy.cdm.api.service.ITermNodeService;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.cdm.model.description.Character;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since Oct 16, 2020
+ */
+public class CreateNewCharacterOperation extends AbstractPostOperation<Character>{
+
+    UUID parentUuid;
+    UUID vocabularyUuid;
+
+    /**
+     * @param label
+     * @param undoContext
+     * @param element
+     * @param postOperationEnabled
+     */
+    public CreateNewCharacterOperation(String label, IUndoContext undoContext, Character element,
+            IPostOperationEnabled postOperationEnabled) {
+        super(label, undoContext, element, postOperationEnabled);
+        // TODO Auto-generated constructor stub
+    }
+
+    @Override
+    public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+            UpdateResult result = CdmStore.getService(ITermNodeService.class).createChildNode(parentUuid, getElement(), vocabularyUuid);
+            return postExecute(result.getCdmEntity());
+    }
+
+    @Override
+    public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+}
index ffad6db60f5ceb569ef4295f2d7378b589371057..8516e72569d8cb3a4540e1edfcff41eadb87d53b 100644 (file)
@@ -35,7 +35,6 @@ public class CreateDescriptiveDataSetHandler {
                DescriptiveDataSet descriptiveDataSet = DescriptiveDataSet.NewInstance();
                descriptiveDataSet.setLabel(dataSetName);
                CdmStore.getService(IDescriptiveDataSetService.class).merge(descriptiveDataSet, true);
-               navigator.getConversationHolder().commit();
                navigator.addDescriptiveDataSet(descriptiveDataSet);
                EditorUtil.openDescriptiveDataSetEditor(descriptiveDataSet.getUuid(), modelService, partService, application);
            }
index ae70412b7edabb1ef1664422ecdd4f002905a701..1b048e0bd18065c017d53a78041d7051a615ac56 100644 (file)
@@ -1,4 +1,11 @@
-
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.handler;
 
 import java.util.Iterator;
@@ -29,6 +36,7 @@ import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.DescriptiveDataSetNaviga
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.operation.IFeedbackGenerator;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.dialog.configurator.deleteConfigurator.DeleteConfiguratorDialog;
 
@@ -44,7 +52,7 @@ public class DeleteDescriptiveDataSetHandler {
            this.partService = partService;
            Object object = activePart.getObject();
            if(!selection.isEmpty()  && object instanceof DescriptiveDataSetNavigator){
-               Iterator iterator = selection.iterator();
+               Iterator<?> iterator = selection.iterator();
                while(iterator.hasNext()){
                    Object next = iterator.next();
                    if(next instanceof DescriptiveDataSet){
@@ -53,19 +61,16 @@ public class DeleteDescriptiveDataSetHandler {
                        if (!DeleteConfiguratorDialog.openConfirmWithConfigurator(deleteConfig, shell, Messages.DeleteDescriptiveDataSetHandler_DELETE_TITLE,  Messages.DeleteDescriptiveDataSetHandler_DELETE_MESSAGE)){
                            return;
                        }
-//                         IDescriptiveDataSetService descriptiveDataSetService = CdmStore.getService(IDescriptiveDataSetService.class);
-//                         descriptiveDataSetService.delete(((DescriptiveDataSet) next).getUuid());
-                           deleteDescriptiveDataSet(((DescriptiveDataSet) next).getUuid(), deleteConfig);
-                           DescriptiveDataSetNavigator navigator = (DescriptiveDataSetNavigator) object;
-                           navigator.removeDescriptiveDataSet((DescriptiveDataSet) next);
-                           navigator.getConversationHolder().commit();
-                           navigator.getSelService().setSelection(null);
-
-                       }
-                       else{
-                           MessagingUtils.errorDialog(Messages.DeleteDescriptiveDataSetHandler_DELETE_FAILED_TITLE, DeleteDescriptiveDataSetHandler.class, Messages.DeleteDescriptiveDataSetHandler_DELETE_FAILED_MESSAGE, TaxeditorEditorPlugin.PLUGIN_ID, null, false);
-                           return;
-                       }
+//                     IDescriptiveDataSetService descriptiveDataSetService = CdmStore.getService(IDescriptiveDataSetService.class);
+//                     descriptiveDataSetService.delete(((DescriptiveDataSet) next).getUuid());
+                    deleteDescriptiveDataSet(((DescriptiveDataSet) next).getUuid(), deleteConfig);
+                    DescriptiveDataSetNavigator navigator = (DescriptiveDataSetNavigator) object;
+                    navigator.removeDescriptiveDataSet((DescriptiveDataSet) next);
+                    navigator.getSelService().setSelection(null);
+                }else{
+                    MessagingUtils.errorDialog(Messages.DeleteDescriptiveDataSetHandler_DELETE_FAILED_TITLE, DeleteDescriptiveDataSetHandler.class, Messages.DeleteDescriptiveDataSetHandler_DELETE_FAILED_MESSAGE, TaxeditorEditorPlugin.PLUGIN_ID, null, false);
+                    return;
+                }
                }
            }
        }
@@ -85,7 +90,7 @@ public class DeleteDescriptiveDataSetHandler {
                                 monitorUuid,
                                 50,
                                 null,
-                                (List)null,
+                                (List<IFeedbackGenerator>)null,
                                 subMonitor);
                 Object resultObject = remotingMonitor.getResult();
                 if(resultObject instanceof Exception){
@@ -100,8 +105,6 @@ public class DeleteDescriptiveDataSetHandler {
                                         .stream().map(ex->ex.toString())
                                         .collect(Collectors.joining("\n"))));
                     }
-
-
                 }
             } catch (InterruptedException e) {
                 return;
@@ -111,8 +114,4 @@ public class DeleteDescriptiveDataSetHandler {
 
         job.schedule();
     }
-
-
-
-
 }
\ No newline at end of file
index 76626f07ba381364ce32fac2bf17487a0998e371..5fb704264397e2a21684b500a22e326fae12038c 100644 (file)
@@ -1,41 +1,36 @@
-
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.handler;
 
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.editor.AppModelId;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4;
 
-public class OpenCharacterMatrixHandler extends DefaultOpenHandlerBaseE4<DescriptiveDataSet>{
-
-    /**
-     * {@inheritDoc}
-     */
-//    @Override
-//    protected DescriptiveDataSet getEntity(UUID uuid) {
-//        return CdmStore.getService(IDescriptiveDataSetService.class).load(uuid);
-//    }
+public class OpenCharacterMatrixHandler extends DefaultOpenHandlerBaseE4<DescriptiveDataSet, UuidAndTitleCache<DescriptiveDataSet>>{
 
     @Override
-    protected void open(DescriptiveDataSet entity, Shell shell, EPartService partService) {
+    protected void open(UuidAndTitleCache<DescriptiveDataSet> entity, Shell shell, EPartService partService) {
         EditorUtil.openCharacterMatrix(entity.getUuid(), modelService, partService, application);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    protected boolean canExecute(Object entity) {
-        return true;
+    protected boolean canExecute(UuidAndTitleCache<DescriptiveDataSet> entity) {
+        return DescriptiveDataSet.class.isAssignableFrom(entity.getType());
     }
 
     @Override
     protected String getPartId() {
         return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_DESCRIPTIVEDATASET_MATRIX_CHARACTERMATRIXPART;
     }
-
-
 }
\ No newline at end of file
index df9c1142ac1bfcb021b5eb0ea79a5770149fed7e..d1edd4aed1915c0ec12ce4d42a64fa53f1556e42 100644 (file)
@@ -1,41 +1,36 @@
-
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.handler;
 
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.editor.AppModelId;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4;
 
-public class OpenDescriptiveDataSetEditorHandler extends DefaultOpenHandlerBaseE4<DescriptiveDataSet>{
-
-    /**
-     * {@inheritDoc}
-     */
-//    @Override
-//    protected DescriptiveDataSet getEntity(UUID uuid) {
-//        return CdmStore.getService(IDescriptiveDataSetService.class).load(uuid);
-//    }
+public class OpenDescriptiveDataSetEditorHandler extends DefaultOpenHandlerBaseE4<DescriptiveDataSet, UuidAndTitleCache<DescriptiveDataSet>>{
 
     @Override
-    protected void open(DescriptiveDataSet entity, Shell shell, EPartService partService) {
+    protected void open(UuidAndTitleCache<DescriptiveDataSet> entity, Shell shell, EPartService partService) {
         EditorUtil.openDescriptiveDataSetEditor(entity.getUuid(), modelService, partService, application);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    protected boolean canExecute(Object entity) {
-        return true;
+    protected boolean canExecute(UuidAndTitleCache<DescriptiveDataSet> entity) {
+        return DescriptiveDataSet.class.isAssignableFrom(entity.getType());
     }
 
     @Override
     protected String getPartId() {
         return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DESCRIPTIVEDATASET_DESCRIPTIVEDATASETEDITOR;
     }
-
-
 }
\ No newline at end of file
index d84cc8ae208a206384c2a6e885b7e5d41c7c2c14..25e46d498b41fc2580a9c78181977afb2adf122b 100644 (file)
@@ -14,41 +14,40 @@ import java.util.List;
 import org.apache.commons.math3.stat.Frequency;
 
 import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 
 /**
  * @author pplitzner
  * @since Jul 12, 2018
- *
  */
 public class CategoricalDataHistogram {
 
     private Feature feature;
     private Frequency frequency;
-    private List<State> states;
+    private List<DefinedTermBase<?>> states;
 
     public CategoricalDataHistogram(Feature feature) {
         this.feature = feature;
         this.states = new ArrayList<>();
         this.frequency = new Frequency();
         feature.getSupportedCategoricalEnumerations()
-        .forEach(voc->voc.getTerms()
+            .forEach(terms->terms.getDistinctTerms()
                 .forEach(state->states.add(state)));
     }
 
-    public void addState(State state){
+    public void addState(DefinedTermBase<?> state){
         frequency.addValue(state.getLabel());
     }
 
-    public long getCount(State state){
+    public long getCount(DefinedTermBase<?> state){
         return frequency.getCount(state.getLabel());
     }
 
-    public List<State> getStates() {
+    public List<DefinedTermBase<?>> getStates() {
         return states;
     }
 
     public Feature getFeature() {
         return feature;
     }
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CdmContentProposalAdapter.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CdmContentProposalAdapter.java
new file mode 100644 (file)
index 0000000..e4a189b
--- /dev/null
@@ -0,0 +1,2189 @@
+package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix;
+
+/*******************************************************************************
+ * Copyright (c) 2005, 2015 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *     Hannes Erven <hannes@erven.at> - Bug 293841 - [FieldAssist] NumLock keyDown event should not close the proposal popup [with patch]
+ *******************************************************************************/
+
+
+import java.util.ArrayList;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.ListenerList;
+import org.eclipse.jface.bindings.keys.KeyStroke;
+import org.eclipse.jface.dialogs.PopupDialog;
+import org.eclipse.jface.fieldassist.IContentProposal;
+import org.eclipse.jface.fieldassist.IContentProposalListener;
+import org.eclipse.jface.fieldassist.IContentProposalListener2;
+import org.eclipse.jface.fieldassist.IContentProposalProvider;
+import org.eclipse.jface.fieldassist.IControlContentAdapter;
+import org.eclipse.jface.fieldassist.IControlContentAdapter2;
+import org.eclipse.jface.fieldassist.SimpleContentProposalProvider;
+import org.eclipse.jface.preference.JFacePreferences;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.util.Util;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.FocusAdapter;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.ScrollBar;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * ContentProposalAdapter can be used to attach content proposal behavior to a
+ * control. This behavior includes obtaining proposals, opening a popup dialog,
+ * managing the content of the control relative to the selections in the popup,
+ * and optionally opening up a secondary popup to further describe proposals.
+ * <p>
+ * A number of configurable options are provided to determine how the control
+ * content is altered when a proposal is chosen, how the content proposal popup
+ * is activated, and whether any filtering should be done on the proposals as
+ * the user types characters.
+ * <p>
+ * This class provides some overridable methods to allow clients to manually
+ * control the popup. However, most of the implementation remains private.
+ *
+ * 
+ */
+public class CdmContentProposalAdapter {
+
+       /*
+        * The lightweight popup used to show content proposals for a text field. If
+        * additional information exists for a proposal, then selecting that
+        * proposal will result in the information being displayed in a secondary
+        * popup.
+        */
+       class ContentProposalPopup extends PopupDialog {
+               /*
+                * The listener we install on the popup and related controls to
+                * determine when to close the popup. Some events (move, resize, close,
+                * deactivate) trigger closure as soon as they are received, simply
+                * because one of the registered listeners received them. Other events
+                * depend on additional circumstances.
+                */
+               private final class PopupCloserListener implements Listener {
+                       private boolean scrollbarClicked = false;
+
+                       @Override
+                       public void handleEvent(final Event e) {
+
+                               // If focus is leaving an important widget or the field's
+                               // shell is deactivating
+                               if (e.type == SWT.FocusOut) {
+                                       scrollbarClicked = false;
+                                       /*
+                                        * Ignore this event if it's only happening because focus is
+                                        * moving between the popup shells, their controls, or a
+                                        * scrollbar. Do this in an async since the focus is not
+                                        * actually switched when this event is received.
+                                        */
+                                       e.display.asyncExec(() -> {
+                                               if (isValid()) {
+                                                       if (scrollbarClicked || hasFocus()) {
+                                                               return;
+                                                       }
+                                                       // Workaround a problem on X and Mac, whereby at
+                                                       // this point, the focus control is not known.
+                                                       // This can happen, for example, when resizing
+                                                       // the popup shell on the Mac.
+                                                       // Check the active shell.
+                                                       Shell activeShell = e.display.getActiveShell();
+                                                       if (activeShell == getShell()
+                                                                       || (infoPopup != null && infoPopup
+                                                                                       .getShell() == activeShell)) {
+                                                               return;
+                                                       }
+                                                       /*
+                                                        * System.out.println(e);
+                                                        * System.out.println(e.display.getFocusControl());
+                                                        * System.out.println(e.display.getActiveShell());
+                                                        */
+                                                       close();
+                                               }
+                                       });
+                                       return;
+                               }
+
+                               // Scroll bar has been clicked. Remember this for focus event
+                               // processing.
+                               if (e.type == SWT.Selection) {
+                                       scrollbarClicked = true;
+                                       return;
+                               }
+                               // For all other events, merely getting them dictates closure.
+                               close();
+                       }
+
+                       // Install the listeners for events that need to be monitored for
+                       // popup closure.
+                       void installListeners() {
+                               // Listeners on this popup's table and scroll bar
+                               proposalTable.addListener(SWT.FocusOut, this);
+                               ScrollBar scrollbar = proposalTable.getVerticalBar();
+                               if (scrollbar != null) {
+                                       scrollbar.addListener(SWT.Selection, this);
+                               }
+
+                               // Listeners on this popup's shell
+                               getShell().addListener(SWT.Deactivate, this);
+                               getShell().addListener(SWT.Close, this);
+
+                               // Listeners on the target control
+                               control.addListener(SWT.MouseDoubleClick, this);
+                               control.addListener(SWT.MouseDown, this);
+                               control.addListener(SWT.Dispose, this);
+                               control.addListener(SWT.FocusOut, this);
+                               // Listeners on the target control's shell
+                               Shell controlShell = control.getShell();
+                               controlShell.addListener(SWT.Move, this);
+                               controlShell.addListener(SWT.Resize, this);
+
+                       }
+
+                       // Remove installed listeners
+                       void removeListeners() {
+                               if (isValid()) {
+                                       proposalTable.removeListener(SWT.FocusOut, this);
+                                       ScrollBar scrollbar = proposalTable.getVerticalBar();
+                                       if (scrollbar != null) {
+                                               scrollbar.removeListener(SWT.Selection, this);
+                                       }
+
+                                       getShell().removeListener(SWT.Deactivate, this);
+                                       getShell().removeListener(SWT.Close, this);
+                               }
+
+                               if (control != null && !control.isDisposed()) {
+
+                                       control.removeListener(SWT.MouseDoubleClick, this);
+                                       control.removeListener(SWT.MouseDown, this);
+                                       control.removeListener(SWT.Dispose, this);
+                                       control.removeListener(SWT.FocusOut, this);
+
+                                       Shell controlShell = control.getShell();
+                                       controlShell.removeListener(SWT.Move, this);
+                                       controlShell.removeListener(SWT.Resize, this);
+                               }
+                       }
+               }
+
+               /*
+                * The listener we will install on the target control.
+                */
+               private final class TargetControlListener implements Listener {
+                       // Key events from the control
+                       @Override
+                       public void handleEvent(Event e) {
+                               if (!isValid()) {
+                                       return;
+                               }
+
+                               char key = e.character;
+
+                               // Traverse events are handled depending on whether the
+                               // event has a character.
+                               if (e.type == SWT.Traverse) {
+                                       // If the traverse event contains a legitimate character,
+                                       // then we must set doit false so that the widget will
+                                       // receive the key event. We return immediately so that
+                                       // the character is handled only in the key event.
+                                       // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=132101
+                                       if (key != 0) {
+                                               e.doit = false;
+                                               return;
+                                       }
+                                       // Traversal does not contain a character. Set doit true
+                                       // to indicate TRAVERSE_NONE will occur and that no key
+                                       // event will be triggered. We will check for navigation
+                                       // keys below.
+                                       e.detail = SWT.TRAVERSE_NONE;
+                                       e.doit = true;
+                               } else {
+                                       // Default is to only propagate when configured that way.
+                                       // Some keys will always set doit to false anyway.
+                                       e.doit = propagateKeys;
+                               }
+
+                               // No character. Check for navigation keys.
+
+                               if (key == 0) {
+                                       int newSelection = proposalTable.getSelectionIndex();
+                                       int visibleRows = (proposalTable.getSize().y / proposalTable
+                                                       .getItemHeight()) - 1;
+                                       switch (e.keyCode) {
+                                       case SWT.ARROW_UP:
+                                               newSelection -= 1;
+                                               if (newSelection < 0) {
+                                                       newSelection = proposalTable.getItemCount() - 1;
+                                               }
+                                               // Not typical - usually we get this as a Traverse and
+                                               // therefore it never propagates. Added for consistency.
+                                               if (e.type == SWT.KeyDown) {
+                                                       // don't propagate to control
+                                                       e.doit = false;
+                                               }
+
+                                               break;
+
+                                       case SWT.ARROW_DOWN:
+                                               newSelection += 1;
+                                               if (newSelection > proposalTable.getItemCount() - 1) {
+                                                       newSelection = 0;
+                                               }
+                                               // Not typical - usually we get this as a Traverse and
+                                               // therefore it never propagates. Added for consistency.
+                                               if (e.type == SWT.KeyDown) {
+                                                       // don't propagate to control
+                                                       e.doit = false;
+                                               }
+
+                                               break;
+
+                                       case SWT.PAGE_DOWN:
+                                               newSelection += visibleRows;
+                                               if (newSelection >= proposalTable.getItemCount()) {
+                                                       newSelection = proposalTable.getItemCount() - 1;
+                                               }
+                                               if (e.type == SWT.KeyDown) {
+                                                       // don't propagate to control
+                                                       e.doit = false;
+                                               }
+                                               break;
+
+                                       case SWT.PAGE_UP:
+                                               newSelection -= visibleRows;
+                                               if (newSelection < 0) {
+                                                       newSelection = 0;
+                                               }
+                                               if (e.type == SWT.KeyDown) {
+                                                       // don't propagate to control
+                                                       e.doit = false;
+                                               }
+                                               break;
+
+                                       case SWT.HOME:
+                                               newSelection = 0;
+                                               if (e.type == SWT.KeyDown) {
+                                                       // don't propagate to control
+                                                       e.doit = false;
+                                               }
+                                               break;
+
+                                       case SWT.END:
+                                               newSelection = proposalTable.getItemCount() - 1;
+                                               if (e.type == SWT.KeyDown) {
+                                                       // don't propagate to control
+                                                       e.doit = false;
+                                               }
+                                               break;
+
+                                       // If received as a Traverse, these should propagate
+                                       // to the control as keydown. If received as a keydown,
+                                       // proposals should be recomputed since the cursor
+                                       // position has changed.
+                                       case SWT.ARROW_LEFT:
+                                       case SWT.ARROW_RIGHT:
+                                               if (e.type == SWT.Traverse) {
+                                                       e.doit = false;
+                                               } else {
+                                                       e.doit = true;
+                                                       String contents = getControlContentAdapter()
+                                                                       .getControlContents(getControl());
+                                                       // If there are no contents, changes in cursor
+                                                       // position have no effect. Note also that we do
+                                                       // not affect the filter text on ARROW_LEFT as
+                                                       // we would with BS.
+                                                       if (contents.length() > 0) {
+                                                               asyncRecomputeProposals(filterText);
+                                                       }
+                                               }
+                                               break;
+
+                                       // Any unknown keycodes will cause the popup to close.
+                                       // Modifier keys are explicitly checked and ignored because
+                                       // they are not complete yet (no character).
+                                       default:
+                                               if (e.keyCode != SWT.CAPS_LOCK && e.keyCode != SWT.NUM_LOCK
+                                                               && e.keyCode != SWT.MOD1
+                                                               && e.keyCode != SWT.MOD2
+                                                               && e.keyCode != SWT.MOD3
+                                                               && e.keyCode != SWT.MOD4) {
+                                                       close();
+                                               }
+                                               return;
+                                       }
+
+                                       // If any of these navigation events caused a new selection,
+                                       // then handle that now and return.
+                                       if (newSelection >= 0) {
+                                               selectProposal(newSelection);
+                                       }
+                                       return;
+                               }
+
+                               // key != 0
+                               // Check for special keys involved in cancelling, accepting, or
+                               // filtering the proposals.
+                               switch (key) {
+                               case SWT.ESC:
+                                       e.doit = false;
+                                       close();
+                                       break;
+
+                               case SWT.LF:
+                               case SWT.CR:
+                                       e.doit = false;
+                                       Object p = getSelectedProposal();
+                                       if (p != null) {
+                                               acceptCurrentProposal();
+                                       } else {
+                                               close();
+                                       }
+                                       break;
+
+                               case SWT.TAB:
+                                       e.doit = false;
+                                       getShell().setFocus();
+                                       return;
+
+                               case SWT.BS:
+                                       // Backspace should back out of any stored filter text
+                                       if (filterStyle != FILTER_NONE) {
+                                               // We have no filter to back out of, so do nothing
+                                               if (filterText.length() == 0) {
+                                                       return;
+                                               }
+                                               // There is filter to back out of
+                                               filterText = filterText.substring(0, filterText
+                                                               .length() - 1);
+                                               asyncRecomputeProposals(filterText);
+                                               return;
+                                       }
+                                       // There is no filtering provided by us, but some
+                                       // clients provide their own filtering based on content.
+                                       // Recompute the proposals if the cursor position
+                                       // will change (is not at 0).
+                                       int pos = getControlContentAdapter().getCursorPosition(
+                                                       getControl());
+                                       // We rely on the fact that the contents and pos do not yet
+                                       // reflect the result of the BS. If the contents were
+                                       // already empty, then BS should not cause
+                                       // a recompute.
+                                       if (pos > 0) {
+                                               asyncRecomputeProposals(filterText);
+                                       }
+                                       break;
+
+                               default:
+                                       // If the key is a defined unicode character, and not one of
+                                       // the special cases processed above, update the filter text
+                                       // and filter the proposals.
+                                       if (Character.isDefined(key)) {
+                                               if (filterStyle == FILTER_CUMULATIVE) {
+                                                       filterText = filterText + String.valueOf(key);
+                                               } else if (filterStyle == FILTER_CHARACTER) {
+                                                       filterText = String.valueOf(key);
+                                               }
+                                               // Recompute proposals after processing this event.
+                                               asyncRecomputeProposals(filterText);
+                                       }
+                                       break;
+                               }
+                       }
+               }
+
+               /*
+                * Internal class used to implement the secondary popup.
+                */
+               private class InfoPopupDialog extends PopupDialog {
+
+                       /*
+                        * The text control that displays the text.
+                        */
+                       private Text text;
+
+                       /*
+                        * The String shown in the popup.
+                        */
+                       private String contents = EMPTY;
+
+                       /*
+                        * Construct an info-popup with the specified parent.
+                        */
+                       InfoPopupDialog(Shell parent) {
+                               super(parent, PopupDialog.HOVER_SHELLSTYLE, false, false, false,
+                                               false, false, null, null);
+                       }
+
+                       /*
+                        * Create a text control for showing the info about a proposal.
+                        */
+                       @Override
+                       protected Control createDialogArea(Composite parent) {
+                               text = new Text(parent, SWT.MULTI | SWT.READ_ONLY | SWT.WRAP
+                                               | SWT.NO_FOCUS);
+
+                               // Use the compact margins employed by PopupDialog.
+                               GridData gd = new GridData(GridData.BEGINNING
+                                               | GridData.FILL_BOTH);
+                               gd.horizontalIndent = PopupDialog.POPUP_HORIZONTALSPACING;
+                               gd.verticalIndent = PopupDialog.POPUP_VERTICALSPACING;
+                               text.setLayoutData(gd);
+                               text.setText(contents);
+
+                               // since SWT.NO_FOCUS is only a hint...
+                               text.addFocusListener(new FocusAdapter() {
+                                       @Override
+                                       public void focusGained(FocusEvent event) {
+                                               ContentProposalPopup.this.close();
+                                       }
+                               });
+                               return text;
+                       }
+
+                       /*
+                        * Adjust the bounds so that we appear adjacent to our parent shell
+                        */
+                       @Override
+                       protected void adjustBounds() {
+                               Rectangle parentBounds = getParentShell().getBounds();
+                               Rectangle proposedBounds;
+                               // Try placing the info popup to the right
+                               Rectangle rightProposedBounds = new Rectangle(parentBounds.x
+                                               + parentBounds.width
+                                               + PopupDialog.POPUP_HORIZONTALSPACING, parentBounds.y
+                                               + PopupDialog.POPUP_VERTICALSPACING,
+                                               parentBounds.width, parentBounds.height);
+                               rightProposedBounds = getConstrainedShellBounds(rightProposedBounds);
+                               // If it won't fit on the right, try the left
+                               if (rightProposedBounds.intersects(parentBounds)) {
+                                       Rectangle leftProposedBounds = new Rectangle(parentBounds.x
+                                                       - parentBounds.width - POPUP_HORIZONTALSPACING - 1,
+                                                       parentBounds.y, parentBounds.width,
+                                                       parentBounds.height);
+                                       leftProposedBounds = getConstrainedShellBounds(leftProposedBounds);
+                                       // If it won't fit on the left, choose the proposed bounds
+                                       // that fits the best
+                                       if (leftProposedBounds.intersects(parentBounds)) {
+                                               if (rightProposedBounds.x - parentBounds.x >= parentBounds.x
+                                                               - leftProposedBounds.x) {
+                                                       rightProposedBounds.x = parentBounds.x
+                                                                       + parentBounds.width
+                                                                       + PopupDialog.POPUP_HORIZONTALSPACING;
+                                                       proposedBounds = rightProposedBounds;
+                                               } else {
+                                                       leftProposedBounds.width = parentBounds.x
+                                                                       - POPUP_HORIZONTALSPACING
+                                                                       - leftProposedBounds.x;
+                                                       proposedBounds = leftProposedBounds;
+                                               }
+                                       } else {
+                                               // use the proposed bounds on the left
+                                               proposedBounds = leftProposedBounds;
+                                       }
+                               } else {
+                                       // use the proposed bounds on the right
+                                       proposedBounds = rightProposedBounds;
+                               }
+                               getShell().setBounds(proposedBounds);
+                       }
+
+                       @Override
+                       protected Color getForeground() {
+                               return control.getDisplay().
+                                               getSystemColor(SWT.COLOR_INFO_FOREGROUND);
+                       }
+
+                       @Override
+                       protected Color getBackground() {
+                               return control.getDisplay().
+                                               getSystemColor(SWT.COLOR_INFO_BACKGROUND);
+                       }
+
+                       /*
+                        * Set the text contents of the popup.
+                        */
+                       void setContents(String newContents) {
+                               if (newContents == null) {
+                                       newContents = EMPTY;
+                               }
+                               this.contents = newContents;
+                               if (text != null && !text.isDisposed()) {
+                                       text.setText(contents);
+                               }
+                       }
+
+                       /*
+                        * Return whether the popup has focus.
+                        */
+                       boolean hasFocus() {
+                               if (text == null || text.isDisposed()) {
+                                       return false;
+                               }
+                               return text.getShell().isFocusControl()
+                                               || text.isFocusControl();
+                       }
+               }
+
+               /*
+                * The listener installed on the target control.
+                */
+               private Listener targetControlListener;
+
+               /*
+                * The listener installed in order to close the popup.
+                */
+               private PopupCloserListener popupCloser;
+
+               /*
+                * The table used to show the list of proposals.
+                */
+               private Table proposalTable;
+
+               /*
+                * The proposals to be shown (cached to avoid repeated requests).
+                */
+               private IContentProposal[] proposals;
+
+               /*
+                * Secondary popup used to show detailed information about the selected
+                * proposal..
+                */
+               private InfoPopupDialog infoPopup;
+
+               /*
+                * Flag indicating whether there is a pending secondary popup update.
+                */
+               private boolean pendingDescriptionUpdate = false;
+
+               /*
+                * Filter text - tracked while popup is open, only if we are told to
+                * filter
+                */
+               private String filterText = EMPTY;
+
+               /**
+                * Constructs a new instance of this popup, specifying the control for
+                * which this popup is showing content, and how the proposals should be
+                * obtained and displayed.
+                *
+                * @param infoText
+                *            Text to be shown in a lower info area, or
+                *            <code>null</code> if there is no info area.
+                */
+               ContentProposalPopup(String infoText, IContentProposal[] proposals) {
+                       // IMPORTANT: Use of SWT.ON_TOP is critical here for ensuring
+                       // that the target control retains focus on Mac and Linux. Without
+                       // it, the focus will disappear, keystrokes will not go to the
+                       // popup, and the popup closer will wrongly close the popup.
+                       // On platforms where SWT.ON_TOP overrides SWT.RESIZE, we will live
+                       // with this.
+                       // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=126138
+                       super(control.getShell(), SWT.RESIZE | SWT.ON_TOP, false, false, false,
+                                       false, false, null, infoText);
+                       this.proposals = proposals;
+               }
+
+               @Override
+               protected Color getForeground() {
+                       return JFaceResources.getColorRegistry().get(
+                                       JFacePreferences.CONTENT_ASSIST_FOREGROUND_COLOR);
+               }
+
+               @Override
+               protected Color getBackground() {
+                       return JFaceResources.getColorRegistry().get(
+                                       JFacePreferences.CONTENT_ASSIST_BACKGROUND_COLOR);
+               }
+
+               /*
+                * Creates the content area for the proposal popup. This creates a table
+                * and places it inside the composite. The table will contain a list of
+                * all the proposals.
+                *
+                * @param parent The parent composite to contain the dialog area; must
+                * not be <code>null</code>.
+                */
+               @Override
+               protected final Control createDialogArea(final Composite parent) {
+                       // Use virtual where appropriate (see flag definition).
+                       if (USE_VIRTUAL) {
+                               proposalTable = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL
+                                               | SWT.VIRTUAL);
+
+                               Listener listener = event -> handleSetData(event);
+                               proposalTable.addListener(SWT.SetData, listener);
+                       } else {
+                               proposalTable = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL);
+                       }
+
+                       // set the proposals to force population of the table.
+                       setProposals(filterProposals(proposals, filterText));
+
+                       proposalTable.setHeaderVisible(false);
+                       proposalTable.addSelectionListener(new SelectionListener() {
+
+                               @Override
+                               public void widgetSelected(SelectionEvent e) {
+                                       // If a proposal has been selected, show it in the secondary
+                                       // popup. Otherwise close the popup.
+                                       if (e.item == null) {
+                                               if (infoPopup != null) {
+                                                       infoPopup.close();
+                                               }
+                                       } else {
+                                               showProposalDescription();
+                                       }
+                               }
+
+                               // Default selection was made. Accept the current proposal.
+                               @Override
+                               public void widgetDefaultSelected(SelectionEvent e) {
+                                       acceptCurrentProposal();
+                               }
+                       });
+                       return proposalTable;
+               }
+
+               @Override
+               protected void adjustBounds() {
+                       // Get our control's location in display coordinates.
+                       Point location = control.getDisplay().map(control.getParent(), null, control.getLocation());
+                       int initialX = location.x + POPUP_OFFSET;
+                       int initialY = location.y + control.getSize().y + POPUP_OFFSET;
+                       // If we are inserting content, use the cursor position to
+                       // position the control.
+                       if (getProposalAcceptanceStyle() == PROPOSAL_INSERT) {
+                               Rectangle insertionBounds = controlContentAdapter
+                                               .getInsertionBounds(control);
+                               initialX = initialX + insertionBounds.x;
+                               initialY = location.y + insertionBounds.y
+                                               + insertionBounds.height;
+                       }
+
+                       // If there is no specified size, force it by setting
+                       // up a layout on the table.
+                       if (popupSize == null) {
+                               GridData data = new GridData(GridData.FILL_BOTH);
+                               data.heightHint = proposalTable.getItemHeight()
+                                               * POPUP_CHAR_HEIGHT;
+                               data.widthHint = Math.max(control.getSize().x,
+                                               POPUP_MINIMUM_WIDTH);
+                               proposalTable.setLayoutData(data);
+                               getShell().pack();
+                               popupSize = getShell().getSize();
+                       }
+
+                       // Constrain to the display
+                       Rectangle constrainedBounds = getConstrainedShellBounds(new Rectangle(initialX, initialY, popupSize.x, popupSize.y));
+
+                       // If there has been an adjustment causing the popup to overlap
+                       // with the control, then put the popup above the control.
+                       if (constrainedBounds.y < initialY)
+                               getShell().setBounds(initialX, location.y - popupSize.y, popupSize.x, popupSize.y);
+                       else
+                               getShell().setBounds(initialX, initialY, popupSize.x, popupSize.y);
+
+                       // Now set up a listener to monitor any changes in size.
+                       getShell().addListener(SWT.Resize, e -> {
+                               popupSize = getShell().getSize();
+                               if (infoPopup != null) {
+                                       infoPopup.adjustBounds();
+                               }
+                       });
+               }
+
+               /*
+                * Handle the set data event. Set the item data of the requested item to
+                * the corresponding proposal in the proposal cache.
+                */
+               private void handleSetData(Event event) {
+                       TableItem item = (TableItem) event.item;
+                       int index = proposalTable.indexOf(item);
+
+                       if (0 <= index && index < proposals.length) {
+                               IContentProposal current = proposals[index];
+                               item.setText(getString(current));
+                               item.setImage(getImage(current));
+                               item.setData(current);
+                       } else {
+                               // this should not happen, but does on win32
+                       }
+               }
+
+               /*
+                * Caches the specified proposals and repopulates the table if it has
+                * been created.
+                */
+               private void setProposals(IContentProposal[] newProposals) {
+                       if (newProposals == null || newProposals.length == 0) {
+                               newProposals = getEmptyProposalArray();
+                       }
+                       this.proposals = newProposals;
+
+                       // If there is a table
+                       if (isValid()) {
+                               final int newSize = newProposals.length;
+                               if (USE_VIRTUAL) {
+                                       // Set and clear the virtual table. Data will be
+                                       // provided in the SWT.SetData event handler.
+                                       proposalTable.setItemCount(newSize);
+                                       proposalTable.clearAll();
+                               } else {
+                                       // Populate the table manually
+                                       proposalTable.setRedraw(false);
+                                       proposalTable.setItemCount(newSize);
+                                       TableItem[] items = proposalTable.getItems();
+                                       for (int i = 0; i < items.length; i++) {
+                                               TableItem item = items[i];
+                                               IContentProposal proposal = newProposals[i];
+                                               item.setText(getString(proposal));
+                                               item.setImage(getImage(proposal));
+                                               item.setData(proposal);
+                                       }
+                                       proposalTable.setRedraw(true);
+                               }
+                               // Default to the first selection if there is content.
+                               if (newProposals.length > 0) {
+                                       selectProposal(0);
+                               } else {
+                                       // No selection, close the secondary popup if it was open
+                                       if (infoPopup != null) {
+                                               infoPopup.close();
+                                       }
+
+                               }
+                       }
+               }
+
+               /*
+                * Get the string for the specified proposal. Always return a String of
+                * some kind.
+                */
+               private String getString(IContentProposal proposal) {
+                       if (proposal == null) {
+                               return EMPTY;
+                       }
+                       if (labelProvider == null) {
+                               return proposal.getLabel() == null ? proposal.getContent()
+                                               : proposal.getLabel();
+                       }
+                       return labelProvider.getText(proposal);
+               }
+
+               /*
+                * Get the image for the specified proposal. If there is no image
+                * available, return null.
+                */
+               private Image getImage(IContentProposal proposal) {
+                       if (proposal == null || labelProvider == null) {
+                               return null;
+                       }
+                       return labelProvider.getImage(proposal);
+               }
+
+               /*
+                * Return an empty array. Used so that something always shows in the
+                * proposal popup, even if no proposal provider was specified.
+                */
+               private IContentProposal[] getEmptyProposalArray() {
+                       return new IContentProposal[0];
+               }
+
+               /*
+                * Answer true if the popup is valid, which means the table has been
+                * created and not disposed.
+                */
+               private boolean isValid() {
+                       return proposalTable != null && !proposalTable.isDisposed();
+               }
+
+               /*
+                * Return whether the receiver has focus. Since 3.4, this includes a
+                * check for whether the info popup has focus.
+                */
+               private boolean hasFocus() {
+                       if (!isValid()) {
+                               return false;
+                       }
+                       if (getShell().isFocusControl() || proposalTable.isFocusControl()) {
+                               return true;
+                       }
+                       if (infoPopup != null && infoPopup.hasFocus()) {
+                               return true;
+                       }
+                       return false;
+               }
+
+               /*
+                * Return the current selected proposal.
+                */
+               private IContentProposal getSelectedProposal() {
+                       if (isValid()) {
+                               int i = proposalTable.getSelectionIndex();
+                               if (proposals == null || i < 0 || i >= proposals.length) {
+                                       return null;
+                               }
+                               return proposals[i];
+                       }
+                       return null;
+               }
+
+               /*
+                * Select the proposal at the given index.
+                */
+               private void selectProposal(int index) {
+                       Assert
+                                       .isTrue(index >= 0,
+                                                       "Proposal index should never be negative"); //$NON-NLS-1$
+                       if (!isValid() || proposals == null || index >= proposals.length) {
+                               return;
+                       }
+                       proposalTable.setSelection(index);
+                       proposalTable.showSelection();
+
+                       showProposalDescription();
+               }
+
+               /**
+                * Opens this ContentProposalPopup. This method is extended in order to
+                * add the control listener when the popup is opened and to invoke the
+                * secondary popup if applicable.
+                *
+                * @return the return code
+                *
+                * @see org.eclipse.jface.window.Window#open()
+                */
+               @Override
+               public int open() {
+                       int value = super.open();
+                       if (popupCloser == null) {
+                               popupCloser = new PopupCloserListener();
+                       }
+                       popupCloser.installListeners();
+                       IContentProposal p = getSelectedProposal();
+                       if (p != null) {
+                               showProposalDescription();
+                       }
+                       return value;
+               }
+
+               /**
+                * Closes this popup. This method is extended to remove the control
+                * listener.
+                *
+                * @return <code>true</code> if the window is (or was already) closed,
+                *         and <code>false</code> if it is still open
+                */
+               @Override
+               public boolean close() {
+                       popupCloser.removeListeners();
+                       if (infoPopup != null) {
+                               infoPopup.close();
+                       }
+                       boolean ret = super.close();
+                       notifyPopupClosed();
+                       return ret;
+               }
+
+               /*
+                * Show the currently selected proposal's description in a secondary
+                * popup.
+                */
+               private void showProposalDescription() {
+                       // If we do not already have a pending update, then
+                       // create a thread now that will show the proposal description
+                       if (!pendingDescriptionUpdate) {
+                               // Create a thread that will sleep for the specified delay
+                               // before creating the popup. We do not use Jobs since this
+                               // code must be able to run independently of the Eclipse
+                               // runtime.
+                               Runnable runnable = () -> {
+                                       pendingDescriptionUpdate = true;
+                                       try {
+                                               Thread.sleep(POPUP_DELAY);
+                                       } catch (InterruptedException e) {
+                                       }
+                                       if (!isValid()) {
+                                               return;
+                                       }
+                                       getShell().getDisplay().syncExec(() -> {
+                                               // Query the current selection since we have
+                                               // been delayed
+                                               IContentProposal p = getSelectedProposal();
+                                               if (p != null) {
+                                                       String description = p.getDescription();
+                                                       if (description != null) {
+                                                               if (infoPopup == null) {
+                                                                       infoPopup = new InfoPopupDialog(
+                                                                                       getShell());
+                                                                       infoPopup.open();
+                                                                       infoPopup
+                                                                                       .getShell()
+                                                                                       .addDisposeListener(
+                                                                                                       event -> infoPopup = null);
+                                                               }
+                                                               infoPopup.setContents(p
+                                                                               .getDescription());
+                                                       } else if (infoPopup != null) {
+                                                               infoPopup.close();
+                                                       }
+                                                       pendingDescriptionUpdate = false;
+
+                                               }
+                                       });
+                               };
+                               Thread t = new Thread(runnable);
+                               t.start();
+                       }
+               }
+
+               /*
+                * Accept the current proposal.
+                */
+               private void acceptCurrentProposal() {
+                       // Close before accepting the proposal. This is important
+                       // so that the cursor position can be properly restored at
+                       // acceptance, which does not work without focus on some controls.
+                       // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=127108
+                       IContentProposal proposal = getSelectedProposal();
+                       close();
+                       proposalAccepted(proposal);
+               }
+
+               /*
+                * Request the proposals from the proposal provider, and recompute any
+                * caches. Repopulate the popup if it is open.
+                */
+               private void recomputeProposals(String filterText) {
+                       IContentProposal[] allProposals = getProposals();
+                       if (allProposals == null)
+                                allProposals = getEmptyProposalArray();
+                       // If the non-filtered proposal list is empty, we should
+                       // close the popup.
+                       // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=147377
+                       if (allProposals.length == 0) {
+                               proposals = allProposals;
+                               close();
+                       } else {
+                               // Keep the popup open, but filter by any provided filter text
+                               setProposals(filterProposals(allProposals, filterText));
+                       }
+               }
+
+               /*
+                * In an async block, request the proposals. This is used when clients
+                * are in the middle of processing an event that affects the widget
+                * content. By using an async, we ensure that the widget content is up
+                * to date with the event.
+                */
+               private void asyncRecomputeProposals(final String filterText) {
+                       if (isValid()) {
+                               control.getDisplay().asyncExec(() -> {
+                                       recordCursorPosition();
+                                       recomputeProposals(filterText);
+                               });
+                       } else {
+                               recomputeProposals(filterText);
+                       }
+               }
+
+               /*
+                * Filter the provided list of content proposals according to the filter
+                * text.
+                */
+               private IContentProposal[] filterProposals(
+                               IContentProposal[] proposals, String filterString) {
+                       if (filterString.length() == 0) {
+                               return proposals;
+                       }
+
+                       // Check each string for a match. Use the string displayed to the
+                       // user, not the proposal content.
+                       ArrayList<IContentProposal> list = new ArrayList<>();
+                       for (int i = 0; i < proposals.length; i++) {
+                               String string = getString(proposals[i]);
+                               if (string.length() >= filterString.length()
+                                               && string.substring(0, filterString.length())
+                                                               .equalsIgnoreCase(filterString)) {
+                                       list.add(proposals[i]);
+                               }
+
+                       }
+                       return list.toArray(new IContentProposal[list
+                                       .size()]);
+               }
+
+               Listener getTargetControlListener() {
+                       if (targetControlListener == null) {
+                               targetControlListener = new TargetControlListener();
+                       }
+                       return targetControlListener;
+               }
+       }
+
+       /**
+        * Flag that controls the printing of debug info.
+        */
+       public static final boolean DEBUG = false;
+
+       /**
+        * Indicates that a chosen proposal should be inserted into the field.
+        */
+       public static final int PROPOSAL_INSERT = 1;
+
+       /**
+        * Indicates that a chosen proposal should replace the entire contents of
+        * the field.
+        */
+       public static final int PROPOSAL_REPLACE = 2;
+
+       /**
+        * Indicates that the contents of the control should not be modified when a
+        * proposal is chosen. This is typically used when a client needs more
+        * specialized behavior when a proposal is chosen. In this case, clients
+        * typically register an IContentProposalListener so that they are notified
+        * when a proposal is chosen.
+        */
+       public static final int PROPOSAL_IGNORE = 3;
+
+       /**
+        * Indicates that there should be no filter applied as keys are typed in the
+        * popup.
+        */
+       public static final int FILTER_NONE = 1;
+
+       /**
+        * Indicates that a single character filter applies as keys are typed in the
+        * popup.
+        */
+       public static final int FILTER_CHARACTER = 2;
+
+       /**
+        * Indicates that a cumulative filter applies as keys are typed in the
+        * popup. That is, each character typed will be added to the filter.
+        *
+        * @deprecated As of 3.4, filtering that is sensitive to changes in the
+        *             control content should be performed by the supplied
+        *             {@link IContentProposalProvider}, such as that performed by
+        *             {@link SimpleContentProposalProvider}
+        */
+       @Deprecated
+       public static final int FILTER_CUMULATIVE = 3;
+
+       /*
+        * Set to <code>true</code> to use a Table with SWT.VIRTUAL. This is a
+        * workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=98585#c40
+        * The corresponding SWT bug is
+        * https://bugs.eclipse.org/bugs/show_bug.cgi?id=90321
+        */
+       private static final boolean USE_VIRTUAL = !Util.isMotif();
+
+       /*
+        * The delay before showing a secondary popup.
+        */
+       private static final int POPUP_DELAY = 750;
+
+       /*
+        * The character height hint for the popup. May be overridden by using
+        * setInitialPopupSize.
+        */
+       private static final int POPUP_CHAR_HEIGHT = 10;
+
+       /*
+        * The minimum pixel width for the popup. May be overridden by using
+        * setInitialPopupSize.
+        */
+       private static final int POPUP_MINIMUM_WIDTH = 300;
+
+       /*
+        * The pixel offset of the popup from the bottom corner of the control.
+        */
+       private static final int POPUP_OFFSET = 3;
+
+       /*
+        * Empty string.
+        */
+       private static final String EMPTY = ""; //$NON-NLS-1$
+
+       /*
+        * The object that provides content proposals.
+        */
+       private IContentProposalProvider proposalProvider;
+
+       /*
+        * A label provider used to display proposals in the popup, and to extract
+        * Strings from non-String proposals.
+        */
+       private ILabelProvider labelProvider;
+
+       /*
+        * The control for which content proposals are provided.
+        */
+       private Control control;
+
+       /*
+        * The adapter used to extract the String contents from an arbitrary
+        * control.
+        */
+       private IControlContentAdapter controlContentAdapter;
+
+       /*
+        * The popup used to show proposals.
+        */
+       private ContentProposalPopup popup;
+
+       /*
+        * The keystroke that signifies content proposals should be shown.
+        */
+       private KeyStroke triggerKeyStroke;
+
+       /*
+        * The String containing characters that auto-activate the popup.
+        */
+       private String autoActivateString;
+
+       /*
+        * Integer that indicates how an accepted proposal should affect the
+        * control. One of PROPOSAL_IGNORE, PROPOSAL_INSERT, or PROPOSAL_REPLACE.
+        * Default value is PROPOSAL_INSERT.
+        */
+       private int proposalAcceptanceStyle = PROPOSAL_INSERT;
+
+       /*
+        * A boolean that indicates whether key events received while the proposal
+        * popup is open should also be propagated to the control. Default value is
+        * true.
+        */
+       private boolean propagateKeys = true;
+
+       /*
+        * Integer that indicates the filtering style. One of FILTER_CHARACTER,
+        * FILTER_CUMULATIVE, FILTER_NONE.
+        */
+       private int filterStyle = FILTER_NONE;
+
+       /*
+        * The listener we install on the control.
+        */
+       private Listener controlListener;
+
+       /*
+        * The list of IContentProposalListener listeners.
+        */
+       private ListenerList proposalListeners = new ListenerList();
+
+       /*
+        * The list of IContentProposalListener2 listeners.
+        */
+       private ListenerList proposalListeners2 = new ListenerList();
+
+       /*
+        * Flag that indicates whether the adapter is enabled. In some cases,
+        * adapters may be installed but depend upon outside state.
+        */
+       private boolean isEnabled = true;
+
+       /*
+        * The delay in milliseconds used when autoactivating the popup.
+        */
+       private int autoActivationDelay = 0;
+
+       /*
+        * A boolean indicating whether a keystroke has been received. Used to see
+        * if an autoactivation delay was interrupted by a keystroke.
+        */
+       private boolean receivedKeyDown;
+
+       /*
+        * The desired size in pixels of the proposal popup.
+        */
+       private Point popupSize;
+
+       /*
+        * The remembered position of the insertion position. Not all controls will
+        * restore the insertion position if the proposal popup gets focus, so we
+        * need to remember it.
+        */
+       private int insertionPos = -1;
+
+       /*
+        * The remembered selection range. Not all controls will restore the
+        * selection position if the proposal popup gets focus, so we need to
+        * remember it.
+        */
+       private Point selectionRange = new Point(-1, -1);
+
+       /*
+        * A flag that indicates that we are watching modify events
+        */
+       private boolean watchModify = false;
+
+       /**
+        * Construct a content proposal adapter that can assist the user with
+        * choosing content for the field.
+        *
+        * @param control
+        *            the control for which the adapter is providing content assist.
+        *            May not be <code>null</code>.
+        * @param controlContentAdapter
+        *            the <code>IControlContentAdapter</code> used to obtain and
+        *            update the control's contents as proposals are accepted. May
+        *            not be <code>null</code>.
+        * @param proposalProvider
+        *            the <code>IContentProposalProvider</code> used to obtain
+        *            content proposals for this control, or <code>null</code> if
+        *            no content proposal is available.
+        * @param keyStroke
+        *            the keystroke that will invoke the content proposal popup. If
+        *            this value is <code>null</code>, then proposals will be
+        *            activated automatically when any of the auto activation
+        *            characters are typed.
+        * @param autoActivationCharacters
+        *            An array of characters that trigger auto-activation of content
+        *            proposal. If specified, these characters will trigger
+        *            auto-activation of the proposal popup, regardless of whether
+        *            an explicit invocation keyStroke was specified. If this
+        *            parameter is <code>null</code>, then only a specified
+        *            keyStroke will invoke content proposal. If this parameter is
+        *            <code>null</code> and the keyStroke parameter is
+        *            <code>null</code>, then all alphanumeric characters will
+        *            auto-activate content proposal.
+        */
+       public CdmContentProposalAdapter(Control control,
+                       IControlContentAdapter controlContentAdapter,
+                       IContentProposalProvider proposalProvider, KeyStroke keyStroke,
+                       char[] autoActivationCharacters) {
+               super();
+               // We always assume the control and content adapter are valid.
+               Assert.isNotNull(control);
+               Assert.isNotNull(controlContentAdapter);
+               this.control = control;
+               this.controlContentAdapter = controlContentAdapter;
+
+               // The rest of these may be null
+               this.proposalProvider = proposalProvider;
+               this.triggerKeyStroke = keyStroke;
+               if (autoActivationCharacters != null) {
+                       this.autoActivateString = new String(autoActivationCharacters);
+               }
+               addControlListener(control);
+       }
+
+       /**
+        * Get the control on which the content proposal adapter is installed.
+        *
+        * @return the control on which the proposal adapter is installed.
+        */
+       public Control getControl() {
+               return control;
+       }
+
+       /**
+        * Get the label provider that is used to show proposals.
+        *
+        * @return the {@link ILabelProvider} used to show proposals, or
+        *         <code>null</code> if one has not been installed.
+        */
+       public ILabelProvider getLabelProvider() {
+               return labelProvider;
+       }
+
+       /**
+        * Return a boolean indicating whether the receiver is enabled.
+        *
+        * @return <code>true</code> if the adapter is enabled, and
+        *         <code>false</code> if it is not.
+        */
+       public boolean isEnabled() {
+               return isEnabled;
+       }
+
+       /**
+        * Set the label provider that is used to show proposals. The lifecycle of
+        * the specified label provider is not managed by this adapter. Clients must
+        * dispose the label provider when it is no longer needed.
+        *
+        * @param labelProvider
+        *            the {@link ILabelProvider} used to show proposals.
+        */
+       public void setLabelProvider(ILabelProvider labelProvider) {
+               this.labelProvider = labelProvider;
+       }
+
+       /**
+        * Return the proposal provider that provides content proposals given the
+        * current content of the field. A value of <code>null</code> indicates
+        * that there are no content proposals available for the field.
+        *
+        * @return the {@link IContentProposalProvider} used to show proposals. May
+        *         be <code>null</code>.
+        */
+       public IContentProposalProvider getContentProposalProvider() {
+               return proposalProvider;
+       }
+
+       /**
+        * Set the content proposal provider that is used to show proposals.
+        *
+        * @param proposalProvider
+        *            the {@link IContentProposalProvider} used to show proposals
+        */
+       public void setContentProposalProvider(
+                       IContentProposalProvider proposalProvider) {
+               this.proposalProvider = proposalProvider;
+       }
+
+       /**
+        * Return the array of characters on which the popup is autoactivated.
+        *
+        * @return An array of characters that trigger auto-activation of content
+        *         proposal. If specified, these characters will trigger
+        *         auto-activation of the proposal popup, regardless of whether an
+        *         explicit invocation keyStroke was specified. If this parameter is
+        *         <code>null</code>, then only a specified keyStroke will invoke
+        *         content proposal. If this value is <code>null</code> and the
+        *         keyStroke value is <code>null</code>, then all alphanumeric
+        *         characters will auto-activate content proposal.
+        */
+       public char[] getAutoActivationCharacters() {
+               if (autoActivateString == null) {
+                       return null;
+               }
+               return autoActivateString.toCharArray();
+       }
+
+       /**
+        * Set the array of characters that will trigger autoactivation of the
+        * popup.
+        *
+        * @param autoActivationCharacters
+        *            An array of characters that trigger auto-activation of content
+        *            proposal. If specified, these characters will trigger
+        *            auto-activation of the proposal popup, regardless of whether
+        *            an explicit invocation keyStroke was specified. If this
+        *            parameter is <code>null</code>, then only a specified
+        *            keyStroke will invoke content proposal. If this parameter is
+        *            <code>null</code> and the keyStroke value is
+        *            <code>null</code>, then all alphanumeric characters will
+        *            auto-activate content proposal.
+        *
+        */
+       public void setAutoActivationCharacters(char[] autoActivationCharacters) {
+               if (autoActivationCharacters == null) {
+                       this.autoActivateString = null;
+               } else {
+                       this.autoActivateString = new String(autoActivationCharacters);
+               }
+       }
+
+       /**
+        * Set the delay, in milliseconds, used before any autoactivation is
+        * triggered.
+        *
+        * @return the time in milliseconds that will pass before a popup is
+        *         automatically opened
+        */
+       public int getAutoActivationDelay() {
+               return autoActivationDelay;
+
+       }
+
+       /**
+        * Set the delay, in milliseconds, used before autoactivation is triggered.
+        *
+        * @param delay
+        *            the time in milliseconds that will pass before a popup is
+        *            automatically opened
+        */
+       public void setAutoActivationDelay(int delay) {
+               autoActivationDelay = delay;
+
+       }
+
+       /**
+        * Get the integer style that indicates how an accepted proposal affects the
+        * control's content.
+        *
+        * @return a constant indicating how an accepted proposal should affect the
+        *         control's content. Should be one of <code>PROPOSAL_INSERT</code>,
+        *         <code>PROPOSAL_REPLACE</code>, or <code>PROPOSAL_IGNORE</code>.
+        *         (Default is <code>PROPOSAL_INSERT</code>).
+        */
+       public int getProposalAcceptanceStyle() {
+               return proposalAcceptanceStyle;
+       }
+
+       /**
+        * Set the integer style that indicates how an accepted proposal affects the
+        * control's content.
+        *
+        * @param acceptance
+        *            a constant indicating how an accepted proposal should affect
+        *            the control's content. Should be one of
+        *            <code>PROPOSAL_INSERT</code>, <code>PROPOSAL_REPLACE</code>,
+        *            or <code>PROPOSAL_IGNORE</code>
+        */
+       public void setProposalAcceptanceStyle(int acceptance) {
+               proposalAcceptanceStyle = acceptance;
+       }
+
+       /**
+        * Return the integer style that indicates how keystrokes affect the content
+        * of the proposal popup while it is open.
+        *
+        * @return a constant indicating how keystrokes in the proposal popup affect
+        *         filtering of the proposals shown. <code>FILTER_NONE</code>
+        *         specifies that no filtering will occur in the content proposal
+        *         list as keys are typed. <code>FILTER_CHARACTER</code> specifies
+        *         the content of the popup will be filtered by the most recently
+        *         typed character. <code>FILTER_CUMULATIVE</code> is deprecated
+        *         and no longer recommended. It specifies that the content of the
+        *         popup will be filtered by a string containing all the characters
+        *         typed since the popup has been open. The default is
+        *         <code>FILTER_NONE</code>.
+        */
+       public int getFilterStyle() {
+               return filterStyle;
+       }
+
+       /**
+        * Set the integer style that indicates how keystrokes affect the content of
+        * the proposal popup while it is open. Popup-based filtering is useful for
+        * narrowing and navigating the list of proposals provided once the popup is
+        * open. Filtering of the proposals will occur even when the control content
+        * is not affected by user typing. Note that automatic filtering is not used
+        * to achieve content-sensitive filtering such as auto-completion. Filtering
+        * that is sensitive to changes in the control content should be performed
+        * by the supplied {@link IContentProposalProvider}.
+        *
+        * @param filterStyle
+        *            a constant indicating how keystrokes received in the proposal
+        *            popup affect filtering of the proposals shown.
+        *            <code>FILTER_NONE</code> specifies that no automatic
+        *            filtering of the content proposal list will occur as keys are
+        *            typed in the popup. <code>FILTER_CHARACTER</code> specifies
+        *            that the content of the popup will be filtered by the most
+        *            recently typed character. <code>FILTER_CUMULATIVE</code> is
+        *            deprecated and no longer recommended. It specifies that the
+        *            content of the popup will be filtered by a string containing
+        *            all the characters typed since the popup has been open.
+        */
+       public void setFilterStyle(int filterStyle) {
+               this.filterStyle = filterStyle;
+       }
+
+       /**
+        * Return the size, in pixels, of the content proposal popup.
+        *
+        * @return a Point specifying the last width and height, in pixels, of the
+        *         content proposal popup.
+        */
+       public Point getPopupSize() {
+               return popupSize;
+       }
+
+       /**
+        * Set the size, in pixels, of the content proposal popup. This size will be
+        * used the next time the content proposal popup is opened.
+        *
+        * @param size
+        *            a Point specifying the desired width and height, in pixels, of
+        *            the content proposal popup.
+        */
+       public void setPopupSize(Point size) {
+               popupSize = size;
+       }
+
+       /**
+        * Get the boolean that indicates whether key events (including
+        * auto-activation characters) received by the content proposal popup should
+        * also be propagated to the adapted control when the proposal popup is
+        * open.
+        *
+        * @return a boolean that indicates whether key events (including
+        *         auto-activation characters) should be propagated to the adapted
+        *         control when the proposal popup is open. Default value is
+        *         <code>true</code>.
+        */
+       public boolean getPropagateKeys() {
+               return propagateKeys;
+       }
+
+       /**
+        * Set the boolean that indicates whether key events (including
+        * auto-activation characters) received by the content proposal popup should
+        * also be propagated to the adapted control when the proposal popup is
+        * open.
+        *
+        * @param propagateKeys
+        *            a boolean that indicates whether key events (including
+        *            auto-activation characters) should be propagated to the
+        *            adapted control when the proposal popup is open.
+        */
+       public void setPropagateKeys(boolean propagateKeys) {
+               this.propagateKeys = propagateKeys;
+       }
+
+       /**
+        * Return the content adapter that can get or retrieve the text contents
+        * from the adapter's control. This method is used when a client, such as a
+        * content proposal listener, needs to update the control's contents
+        * manually.
+        *
+        * @return the {@link IControlContentAdapter} which can update the control
+        *         text.
+        */
+       public IControlContentAdapter getControlContentAdapter() {
+               return controlContentAdapter;
+       }
+
+       /**
+        * Set the boolean flag that determines whether the adapter is enabled.
+        *
+        * @param enabled
+        *            <code>true</code> if the adapter is enabled and responding
+        *            to user input, <code>false</code> if it is ignoring user
+        *            input.
+        *
+        */
+       public void setEnabled(boolean enabled) {
+               // If we are disabling it while it's proposing content, close the
+               // content proposal popup.
+               if (isEnabled && !enabled) {
+                       if (popup != null) {
+                               popup.close();
+                       }
+               }
+               isEnabled = enabled;
+       }
+
+       /**
+        * Add the specified listener to the list of content proposal listeners that
+        * are notified when content proposals are chosen.
+        * </p>
+        *
+        * @param listener
+        *            the IContentProposalListener to be added as a listener. Must
+        *            not be <code>null</code>. If an attempt is made to register
+        *            an instance which is already registered with this instance,
+        *            this method has no effect.
+        *
+        * @see org.eclipse.jface.fieldassist.IContentProposalListener
+        */
+       public void addContentProposalListener(IContentProposalListener listener) {
+               proposalListeners.add(listener);
+       }
+
+       /**
+        * Removes the specified listener from the list of content proposal
+        * listeners that are notified when content proposals are chosen.
+        * </p>
+        *
+        * @param listener
+        *            the IContentProposalListener to be removed as a listener. Must
+        *            not be <code>null</code>. If the listener has not already
+        *            been registered, this method has no effect.
+        *
+        * @since 3.3
+        * @see org.eclipse.jface.fieldassist.IContentProposalListener
+        */
+       public void removeContentProposalListener(IContentProposalListener listener) {
+               proposalListeners.remove(listener);
+       }
+
+       /**
+        * Add the specified listener to the list of content proposal listeners that
+        * are notified when a content proposal popup is opened or closed.
+        * </p>
+        *
+        * @param listener
+        *            the IContentProposalListener2 to be added as a listener. Must
+        *            not be <code>null</code>. If an attempt is made to register
+        *            an instance which is already registered with this instance,
+        *            this method has no effect.
+        *
+        * @since 3.3
+        * @see org.eclipse.jface.fieldassist.IContentProposalListener2
+        */
+       public void addContentProposalListener(IContentProposalListener2 listener) {
+               proposalListeners2.add(listener);
+       }
+
+       /**
+        * Remove the specified listener from the list of content proposal listeners
+        * that are notified when a content proposal popup is opened or closed.
+        * </p>
+        *
+        * @param listener
+        *            the IContentProposalListener2 to be removed as a listener.
+        *            Must not be <code>null</code>. If the listener has not
+        *            already been registered, this method has no effect.
+        *
+        * @since 3.3
+        * @see org.eclipse.jface.fieldassist.IContentProposalListener2
+        */
+       public void removeContentProposalListener(IContentProposalListener2 listener) {
+               proposalListeners2.remove(listener);
+       }
+
+       /*
+        * Add our listener to the control. Debug information to be left in until
+        * this support is stable on all platforms.
+        */
+       private void addControlListener(Control control) {
+               if (DEBUG) {
+                       System.out
+                                       .println("ContentProposalListener#installControlListener()"); //$NON-NLS-1$
+               }
+
+               if (controlListener != null) {
+                       return;
+               }
+               controlListener = new Listener() {
+                       @Override
+                       public void handleEvent(Event e) {
+                               if (!isEnabled) {
+                                       return;
+                               }
+
+                               switch (e.type) {
+                               case SWT.Traverse:
+                               case SWT.KeyDown:
+                                       if (DEBUG) {
+                                               StringBuffer sb;
+                                               if (e.type == SWT.Traverse) {
+                                                       sb = new StringBuffer("Traverse"); //$NON-NLS-1$
+                                               } else {
+                                                       sb = new StringBuffer("KeyDown"); //$NON-NLS-1$
+                                               }
+                                               sb.append(" received by adapter"); //$NON-NLS-1$
+                                               dump(sb.toString(), e);
+                                       }
+                                       // If the popup is open, it gets first shot at the
+                                       // keystroke and should set the doit flags appropriately.
+                                       if (popup != null) {
+                                               popup.getTargetControlListener().handleEvent(e);
+                                               if (DEBUG) {
+                                                       StringBuffer sb;
+                                                       if (e.type == SWT.Traverse) {
+                                                               sb = new StringBuffer("Traverse"); //$NON-NLS-1$
+                                                       } else {
+                                                               sb = new StringBuffer("KeyDown"); //$NON-NLS-1$
+                                                       }
+                                                       sb.append(" after being handled by popup"); //$NON-NLS-1$
+                                                       dump(sb.toString(), e);
+                                               }
+                                               // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=192633
+                                               // If the popup is open and this is a valid character, we
+                                               // want to watch for the modified text.
+                                               if (propagateKeys && e.character != 0)
+                                                       watchModify = true;
+
+                                               return;
+                                       }
+
+                                       // We were only listening to traverse events for the popup
+                                       if (e.type == SWT.Traverse) {
+                                               return;
+                                       }
+
+                                       // The popup is not open. We are looking at keydown events
+                                       // for a trigger to open the popup.
+                                       if (triggerKeyStroke != null) {
+                                               // Either there are no modifiers for the trigger and we
+                                               // check the character field...
+                                               if ((triggerKeyStroke.getModifierKeys() == KeyStroke.NO_KEY && triggerKeyStroke
+                                                               .getNaturalKey() == e.character)
+                                                               ||
+                                                               // ...or there are modifiers, in which case the
+                                                               // keycode and state must match
+                                                               (triggerKeyStroke.getNaturalKey() == e.keyCode && ((triggerKeyStroke
+                                                                               .getModifierKeys() & e.stateMask) == triggerKeyStroke
+                                                                               .getModifierKeys()))) {
+                                                       // We never propagate the keystroke for an explicit
+                                                       // keystroke invocation of the popup
+                                                       e.doit = false;
+                                                       openProposalPopup(false);
+                                                       return;
+                                               }
+                                       }
+                                       /*
+                                        * The triggering keystroke was not invoked. If a character
+                                        * was typed, compare it to the autoactivation characters.
+                                        */
+                                       if (e.character != 0) {
+                                               if (autoActivateString != null) {
+                                                       if (autoActivateString.indexOf(e.character) >= 0) {
+                                                               autoActivate();
+                                                       } else {
+                                                               // No autoactivation occurred, so record the key
+                                                               // down as a means to interrupt any
+                                                               // autoactivation that is pending due to
+                                                               // autoactivation delay.
+                                                               receivedKeyDown = true;
+                                                               // watch the modify so we can close the popup in
+                                                               // cases where there is no longer a trigger
+                                                               // character in the content
+                                                               watchModify = true;
+                                                       }
+                                               } else {
+                                                       // The autoactivate string is null. If the trigger
+                                                       // is also null, we want to act on any modification
+                                                       // to the content. Set a flag so we'll catch this
+                                                       // in the modify event.
+                                                       if (triggerKeyStroke == null) {
+                                                               watchModify = true;
+                                                       }
+                                               }
+                                       } else {
+                                               // A non-character key has been pressed. Interrupt any
+                                               // autoactivation that is pending due to autoactivation delay.
+                                               receivedKeyDown = true;
+                                       }
+                                       break;
+
+
+                                       // There are times when we want to monitor content changes
+                                       // rather than individual keystrokes to determine whether
+                                       // the popup should be closed or opened based on the entire
+                                       // content of the control.
+                                       // The watchModify flag ensures that we don't autoactivate if
+                                       // the content change was caused by something other than typing.
+                                       // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=183650
+                                       case SWT.Modify:
+                                               if (allowsAutoActivate() && watchModify) {
+                                                       if (DEBUG) {
+                                                               dump("Modify event triggers popup open or close", e); //$NON-NLS-1$
+                                                       }
+                                                       watchModify = false;
+                                                       // We are in autoactivation mode, either for specific
+                                                       // characters or for all characters. In either case,
+                                                       // we should close the proposal popup when there is no
+                                                       // content in the control.
+                                                       if (isControlContentEmpty()) {
+                                                               // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=192633
+                                                               closeProposalPopup();
+                                                       } else {
+                                                               // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=147377
+                                                               // Given that we will close the popup when there are
+                                                               // no valid proposals, we must consider reopening it on any
+                                                               // content change when there are no particular autoActivation
+                                                               // characters
+                                                               if (autoActivateString == null) {
+                                                                       autoActivate();
+                                                               } else {
+                                                                       // Autoactivation characters are defined, but this
+                                                                       // modify event does not involve one of them.  See
+                                                                       // if any of the autoactivation characters are left
+                                                                       // in the content and close the popup if none remain.
+                                                                       if (!shouldPopupRemainOpen())
+                                                                               closeProposalPopup();
+                                                               }
+                                                       }
+                                               }
+                                               break;
+                               default:
+                                       break;
+                               }
+                       }
+
+                       /**
+                        * Dump the given events to "standard" output.
+                        *
+                        * @param who
+                        *            who is dumping the event
+                        * @param e
+                        *            the event
+                        */
+                       private void dump(String who, Event e) {
+                               StringBuffer sb = new StringBuffer(
+                                               "--- [ContentProposalAdapter]\n"); //$NON-NLS-1$
+                               sb.append(who);
+                               sb.append(" - e: keyCode=" + e.keyCode + hex(e.keyCode)); //$NON-NLS-1$
+                               sb.append("; character=" + e.character + hex(e.character)); //$NON-NLS-1$
+                               sb.append("; stateMask=" + e.stateMask + hex(e.stateMask)); //$NON-NLS-1$
+                               sb.append("; doit=" + e.doit); //$NON-NLS-1$
+                               sb.append("; detail=" + e.detail + hex(e.detail)); //$NON-NLS-1$
+                               sb.append("; widget=" + e.widget); //$NON-NLS-1$
+                               System.out.println(sb);
+                       }
+
+                       private String hex(int i) {
+                               return "[0x" + Integer.toHexString(i) + ']'; //$NON-NLS-1$
+                       }
+               };
+               control.addListener(SWT.KeyDown, controlListener);
+               control.addListener(SWT.Traverse, controlListener);
+               control.addListener(SWT.Modify, controlListener);
+
+               if (DEBUG) {
+                       System.out
+                                       .println("ContentProposalAdapter#installControlListener() - installed"); //$NON-NLS-1$
+               }
+       }
+
+       /**
+        * Open the proposal popup and display the proposals provided by the
+        * proposal provider. If there are no proposals to be shown, do not show the
+        * popup. This method returns immediately. That is, it does not wait for the
+        * popup to open or a proposal to be selected.
+        *
+        * @param autoActivated
+        *            a boolean indicating whether the popup was autoactivated. If
+        *            false, a beep will sound when no proposals can be shown.
+        */
+       private void openProposalPopup(boolean autoActivated) {
+               if (isValid()) {
+                       if (popup == null) {
+                               // Check whether there are any proposals to be shown.
+                               recordCursorPosition(); // must be done before getting proposals
+                               IContentProposal[] proposals = getProposals();
+                               if (proposals == null)
+                                       return;
+                               if (proposals.length > 0) {
+                                       if (DEBUG) {
+                                               System.out.println("POPUP OPENED BY PRECEDING EVENT"); //$NON-NLS-1$
+                                       }
+                                       recordCursorPosition();
+                                       popup = new ContentProposalPopup(null, proposals);
+                                       popup.open();
+                                       popup.getShell().addDisposeListener(event -> popup = null);
+                                       internalPopupOpened();
+                                       notifyPopupOpened();
+                               } else if (!autoActivated) {
+                                       getControl().getDisplay().beep();
+                               }
+                       }
+               }
+       }
+
+       /**
+        * Open the proposal popup and display the proposals provided by the
+        * proposal provider. This method returns immediately. That is, it does not
+        * wait for a proposal to be selected. This method is used by subclasses to
+        * explicitly invoke the opening of the popup. If there are no proposals to
+        * show, the popup will not open and a beep will be sounded.
+        */
+       protected void openProposalPopup() {
+               openProposalPopup(false);
+       }
+
+       /**
+        * Close the proposal popup without accepting a proposal. This method
+        * returns immediately, and has no effect if the proposal popup was not
+        * open. This method is used by subclasses to explicitly close the popup
+        * based on additional logic.
+        *
+        * @since 3.3
+        */
+       protected void closeProposalPopup() {
+               if (popup != null) {
+                       popup.close();
+               }
+       }
+
+       /*
+        * A content proposal has been accepted. Update the control contents
+        * accordingly and notify any listeners.
+        *
+        * @param proposal the accepted proposal
+        */
+       private void proposalAccepted(IContentProposal proposal) {
+               switch (proposalAcceptanceStyle) {
+               case (PROPOSAL_REPLACE):
+                       setControlContent(proposal.getContent(), proposal
+                                       .getCursorPosition());
+                       break;
+               case (PROPOSAL_INSERT):
+                       insertControlContent(proposal.getContent(), proposal
+                                       .getCursorPosition());
+                       break;
+               default:
+                       // do nothing. Typically a listener is installed to handle this in
+                       // a custom way.
+                       break;
+               }
+
+               // In all cases, notify listeners of an accepted proposal.
+               notifyProposalAccepted(proposal);
+       }
+
+       /*
+        * Set the text content of the control to the specified text, setting the
+        * cursorPosition at the desired location within the new contents.
+        */
+       private void setControlContent(String text, int cursorPosition) {
+               if (isValid()) {
+                       // should already be false, but just in case.
+                       watchModify = false;
+                       controlContentAdapter.setControlContents(control, text,
+                                       cursorPosition);
+               }
+       }
+
+       /*
+        * Insert the specified text into the control content, setting the
+        * cursorPosition at the desired location within the new contents.
+        */
+       private void insertControlContent(String text, int cursorPosition) {
+               if (isValid()) {
+                       // should already be false, but just in case.
+                       watchModify = false;
+                       // Not all controls preserve their selection index when they lose
+                       // focus, so we must set it explicitly here to what it was before
+                       // the popup opened.
+                       // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=127108
+                       // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=139063
+                       if (controlContentAdapter instanceof IControlContentAdapter2
+                                       && selectionRange.x != -1) {
+                               ((IControlContentAdapter2) controlContentAdapter).setSelection(
+                                               control, selectionRange);
+                       } else if (insertionPos != -1) {
+                               controlContentAdapter.setCursorPosition(control, insertionPos);
+                       }
+                       controlContentAdapter.insertControlContents(control, text,
+                                       cursorPosition);
+               }
+       }
+
+       /*
+        * Check that the control and content adapter are valid.
+        */
+       private boolean isValid() {
+               return control != null && !control.isDisposed()
+                               && controlContentAdapter != null;
+       }
+
+       /*
+        * Record the control's cursor position.
+        */
+       private void recordCursorPosition() {
+               if (isValid()) {
+                       IControlContentAdapter adapter = getControlContentAdapter();
+                       insertionPos = adapter.getCursorPosition(control);
+                       // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=139063
+                       if (adapter instanceof IControlContentAdapter2) {
+                               selectionRange = ((IControlContentAdapter2) adapter)
+                                               .getSelection(control);
+                       }
+
+               }
+       }
+
+       /*
+        * Get the proposals from the proposal provider. Gets all of the proposals
+        * without doing any filtering.
+        */
+       private IContentProposal[] getProposals() {
+               if (proposalProvider == null || !isValid()) {
+                       return null;
+               }
+               if (DEBUG) {
+                       System.out.println(">>> obtaining proposals from provider"); //$NON-NLS-1$
+               }
+               int position = insertionPos;
+               if (position == -1) {
+                       position = getControlContentAdapter().getCursorPosition(
+                                       getControl());
+               }
+               String contents = getControlContentAdapter().getControlContents(
+                               getControl());
+               IContentProposal[] proposals = proposalProvider.getProposals(contents,
+                               position);
+               return proposals;
+       }
+
+       /**
+        * Autoactivation has been triggered. Open the popup using any specified
+        * delay.
+        */
+       private void autoActivate() {
+               if (autoActivationDelay > 0) {
+                       Runnable runnable = () -> {
+                               receivedKeyDown = false;
+                               try {
+                                       Thread.sleep(autoActivationDelay);
+                               } catch (InterruptedException e) {
+                               }
+                               if (!isValid() || receivedKeyDown) {
+                                       return;
+                               }
+                               getControl().getDisplay().syncExec(() -> openProposalPopup(true));
+                       };
+                       Thread t = new Thread(runnable);
+                       t.start();
+               } else {
+                       // Since we do not sleep, we must open the popup
+                       // in an async exec. This is necessary because
+                       // this method may be called in the middle of handling
+                       // some event that will cause the cursor position or
+                       // other important info to change as a result of this
+                       // event occurring.
+                       getControl().getDisplay().asyncExec(() -> {
+                               if (isValid()) {
+                                       openProposalPopup(true);
+                               }
+                       });
+               }
+       }
+       
+       public void activate() {
+           getControl().getDisplay().asyncExec(() -> {
+            if (isValid()) {
+                openProposalPopup(true);
+            }
+        });
+       }
+
+       /*
+        * A proposal has been accepted. Notify interested listeners.
+        */
+       private void notifyProposalAccepted(IContentProposal proposal) {
+               if (DEBUG) {
+                       System.out.println("Notify listeners - proposal accepted."); //$NON-NLS-1$
+               }
+               final Object[] listenerArray = proposalListeners.getListeners();
+               for (int i = 0; i < listenerArray.length; i++) {
+                       ((IContentProposalListener) listenerArray[i])
+                                       .proposalAccepted(proposal);
+               }
+       }
+
+       /*
+        * The proposal popup has opened. Notify interested listeners.
+        */
+       private void notifyPopupOpened() {
+               if (DEBUG) {
+                       System.out.println("Notify listeners - popup opened."); //$NON-NLS-1$
+               }
+               final Object[] listenerArray = proposalListeners2.getListeners();
+//             for (int i = 0; i < listenerArray.length; i++) {
+//                     ((IContentProposalListener2) listenerArray[i])
+//                                     .proposalPopupOpened(this);
+//             }
+       }
+
+       /*
+        * The proposal popup has closed. Notify interested listeners.
+        */
+       private void notifyPopupClosed() {
+               if (DEBUG) {
+                       System.out.println("Notify listeners - popup closed."); //$NON-NLS-1$
+               }
+               final Object[] listenerArray = proposalListeners2.getListeners();
+//             for (int i = 0; i < listenerArray.length; i++) {
+//                     ((IContentProposalListener2) listenerArray[i])
+//                                     .proposalPopupClosed(this);
+//             }
+       }
+
+       /**
+        * Returns whether the content proposal popup has the focus. This includes
+        * both the primary popup and any secondary info popup that may have focus.
+        *
+        * @return <code>true</code> if the proposal popup or its secondary info
+        *         popup has the focus
+        * @since 3.4
+        */
+       public boolean hasProposalPopupFocus() {
+               return popup != null && popup.hasFocus();
+       }
+
+       /*
+        * Return whether the control content is empty
+        */
+       private boolean isControlContentEmpty() {
+               return getControlContentAdapter().getControlContents(getControl())
+                               .length() == 0;
+       }
+
+       /*
+        * The popup has just opened, but listeners have not yet
+        * been notified.  Perform any cleanup that is needed.
+        */
+       private void internalPopupOpened() {
+               // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=243612
+               if (control instanceof Combo) {
+                       ((Combo)control).setListVisible(false);
+               }
+       }
+
+       /*
+        * Return whether a proposal popup should remain open.
+        * If it was autoactivated by specific characters, and
+        * none of those characters remain, then it should not remain
+        * open.  This method should not be used to determine
+        * whether autoactivation has occurred or should occur, only whether
+        * the circumstances would dictate that a popup remain open.
+        */
+       private boolean shouldPopupRemainOpen() {
+               // If we always autoactivate or never autoactivate, it should remain open
+               if (autoActivateString == null || autoActivateString.length() == 0)
+                       return true;
+               String content = getControlContentAdapter().getControlContents(getControl());
+               for (int i=0; i<autoActivateString.length(); i++) {
+                       if (content.indexOf(autoActivateString.charAt(i)) >= 0)
+                               return true;
+               }
+               return false;
+       }
+
+       /*
+        * Return whether this adapter is configured for autoactivation, by
+        * specific characters or by any characters.
+        */
+       private boolean allowsAutoActivate() {
+               return (autoActivateString != null && autoActivateString.length() > 0) // there are specific autoactivation chars supplied
+                 || (autoActivateString == null && triggerKeyStroke == null);    // we autoactivate on everything
+       }
+
+       /**
+        * Sets focus to the proposal popup. If the proposal popup is not opened,
+        * this method is ignored. If the secondary popup has focus, focus is
+        * returned to the main proposal popup.
+        *
+        * @since 3.6
+        */
+       public void setProposalPopupFocus() {
+               if (isValid() && popup != null)
+                       popup.getShell().setFocus();
+       }
+
+       /**
+        * Answers a boolean indicating whether the main proposal popup is open.
+        *
+        * @return <code>true</code> if the proposal popup is open, and
+        *         <code>false</code> if it is not.
+        *
+        * @since 3.6
+        */
+       public boolean isProposalPopupOpen() {
+               if (isValid() && popup != null)
+                       return true;
+               return false;
+       }
+
+}
index fd5d39573a217a2953b9915ab67cd2a01607041b..d6ad3c3aa0be30cfa9c8bc358300b23bd9870fb6 100644 (file)
@@ -21,7 +21,6 @@ import org.eclipse.nebula.widgets.nattable.edit.gui.ICellEditDialog;
 import org.eclipse.nebula.widgets.nattable.style.DisplayMode;
 import org.eclipse.swt.graphics.Point;
 
-import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.categorical.CategoricalComboBoxDataProvider;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.categorical.CategoricalDataCellEditor;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.categorical.CategoricalDataDisplayConverter;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.quantitative.QuantitativeDataDialogEditor;
@@ -76,6 +75,7 @@ final class CellEditorDataConversionConfiguration extends AbstractRegistryConfig
         //make cell editable
         configRegistry.registerConfigAttribute(
                 EditConfigAttributes.CELL_EDITABLE_RULE,
+//                getEditRule(matrix.getBodyDataProvider()),
                 IEditableRule.ALWAYS_EDITABLE,
                 DisplayMode.EDIT,
                 CharacterMatrixConfigLabelAccumulator.CATEGORICAL_EDITABLE
@@ -89,7 +89,7 @@ final class CellEditorDataConversionConfiguration extends AbstractRegistryConfig
                 );
         //register categorical editor
         configRegistry.registerConfigAttribute(EditConfigAttributes.CELL_EDITOR,
-                new CategoricalDataCellEditor(matrix, new CategoricalComboBoxDataProvider(matrix)),
+                new CategoricalDataCellEditor(matrix),
                 DisplayMode.EDIT,
                 CharacterMatrixConfigLabelAccumulator.CATEGORICAL_EDITABLE
                 );
@@ -101,6 +101,7 @@ final class CellEditorDataConversionConfiguration extends AbstractRegistryConfig
         //make cell editable
         configRegistry.registerConfigAttribute(
                 EditConfigAttributes.CELL_EDITABLE_RULE,
+//                getEditRule(matrix.getBodyDataProvider()),
                 IEditableRule.ALWAYS_EDITABLE,
                 DisplayMode.EDIT,
                 CharacterMatrixConfigLabelAccumulator.QUANTITATIVE_EDITABLE
@@ -117,6 +118,8 @@ final class CellEditorDataConversionConfiguration extends AbstractRegistryConfig
                 DisplayMode.NORMAL,
                 CharacterMatrixConfigLabelAccumulator.QUANTITATIVE);
 
+        
+        
         //Open cell editor in dialog
         configRegistry.registerConfigAttribute(
                 EditConfigAttributes.OPEN_IN_DIALOG,
@@ -129,6 +132,18 @@ final class CellEditorDataConversionConfiguration extends AbstractRegistryConfig
                 new QuantitativeDataDialogEditor(matrix),
                 DisplayMode.EDIT,
                 CharacterMatrixConfigLabelAccumulator.QUANTITATIVE_EDITABLE);
+        configRegistry.registerConfigAttribute(
+                EditConfigAttributes.OPEN_IN_DIALOG,
+                Boolean.TRUE,
+                DisplayMode.EDIT,
+                CharacterMatrixConfigLabelAccumulator.CATEGORICAL_EDITABLE);
+        //register categorical editor
+        configRegistry.registerConfigAttribute(
+                EditConfigAttributes.CELL_EDITOR,
+                new CategoricalDataCellEditor(matrix),
+                DisplayMode.EDIT,
+                CharacterMatrixConfigLabelAccumulator.CATEGORICAL_EDITABLE);
+        
         // configure custom dialog settings
         Map<String, Object> editDialogSettings = new HashMap<>();
         editDialogSettings.put(ICellEditDialog.DIALOG_SHELL_TITLE, "Quantitative Data");
@@ -148,5 +163,17 @@ final class CellEditorDataConversionConfiguration extends AbstractRegistryConfig
                 DisplayMode.EDIT,
                 CharacterMatrixConfigLabelAccumulator.QUANTITATIVE_EDITABLE);
     }
+   
+    
+//    private static IEditableRule getEditRule(final IDataProvider dataProvider) {
+//                     return new EditableRule(){
+//                     public boolean isEditable(int columnIndex, int rowIndex) {
+//                             Object dataValue = dataProvider.getDataValue(columnIndex, rowIndex);
+//                             if (dataValue instanceof Set && ((Set)dataValue).size()>1){
+//                                     return false;
+//                             }else return true;
+//                             }
+//                     };
+//             }
 
 }
index 3b632b01bc3e6874248e11246a94d982e0ff4e0c..cd13f2807f43f8befd1cf0dde0dfc3bf34ad1beb 100644 (file)
@@ -22,6 +22,7 @@ import org.eclipse.nebula.widgets.nattable.selection.event.CellSelectionEvent;
 import org.eclipse.nebula.widgets.nattable.selection.event.RowSelectionEvent;
 
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
+import eu.etaxonomy.cdm.persistence.dto.DescriptionBaseDto;
 
 /**
  * @author pplitzner
@@ -56,6 +57,19 @@ final class CellSelectionListener extends E4SelectionListener<Object> {
                         return;
                     }
                 }
+            }else if (columnPosition == 0 ){
+                Collection<ILayerCell> selectedCells = cellSelectionEvent.getSelectionLayer().getSelectedCells();
+                if(selectedCells.size()==1){
+                    ILayerCell cell = selectedCells.iterator().next();
+                    int rowIndex = cell.getRowIndex();
+
+                    Object dataValue = cell.getDataValue();
+                    if(dataValue!=null && dataValue instanceof DescriptionBaseDto){
+                        DescriptionBaseDto descBase = (DescriptionBaseDto)dataValue;
+                        part.getSelectionService().setSelection(new StructuredSelection(descBase));
+                        return;
+                    }
+                }
             }
         }
         else if(event instanceof RowSelectionEvent){
index fab019ab7e7142ba1b4285f8d74ba77234ff52b5..c1d13754786d32e2d9a1fed3cbc732369fe26967 100644 (file)
@@ -13,6 +13,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -48,6 +49,7 @@ import org.eclipse.nebula.widgets.nattable.coordinate.Range;
 import org.eclipse.nebula.widgets.nattable.copy.command.InternalCopyDataCommandHandler;
 import org.eclipse.nebula.widgets.nattable.copy.command.InternalPasteDataCommandHandler;
 import org.eclipse.nebula.widgets.nattable.data.IDataProvider;
+import org.eclipse.nebula.widgets.nattable.data.IRowDataProvider;
 import org.eclipse.nebula.widgets.nattable.data.ListDataProvider;
 import org.eclipse.nebula.widgets.nattable.export.command.ExportCommandHandler;
 import org.eclipse.nebula.widgets.nattable.extension.e4.selection.E4SelectionListener;
@@ -58,6 +60,7 @@ import org.eclipse.nebula.widgets.nattable.extension.glazedlists.tree.GlazedList
 import org.eclipse.nebula.widgets.nattable.freeze.CompositeFreezeLayer;
 import org.eclipse.nebula.widgets.nattable.freeze.FreezeHelper;
 import org.eclipse.nebula.widgets.nattable.freeze.FreezeLayer;
+import org.eclipse.nebula.widgets.nattable.grid.GridRegion;
 import org.eclipse.nebula.widgets.nattable.grid.command.ClientAreaResizeCommand;
 import org.eclipse.nebula.widgets.nattable.grid.data.DefaultColumnHeaderDataProvider;
 import org.eclipse.nebula.widgets.nattable.grid.data.DefaultCornerDataProvider;
@@ -73,11 +76,14 @@ import org.eclipse.nebula.widgets.nattable.group.ColumnGroupModel;
 import org.eclipse.nebula.widgets.nattable.layer.AbstractLayer;
 import org.eclipse.nebula.widgets.nattable.layer.DataLayer;
 import org.eclipse.nebula.widgets.nattable.layer.ILayer;
+import org.eclipse.nebula.widgets.nattable.layer.cell.ILayerCell;
 import org.eclipse.nebula.widgets.nattable.persistence.gui.PersistenceDialog;
 import org.eclipse.nebula.widgets.nattable.selection.SelectionLayer;
+import org.eclipse.nebula.widgets.nattable.selection.command.SelectRowsCommand;
 import org.eclipse.nebula.widgets.nattable.sort.SortHeaderLayer;
 import org.eclipse.nebula.widgets.nattable.sort.config.SingleClickSortConfiguration;
 import org.eclipse.nebula.widgets.nattable.style.theme.ModernNatTableThemeConfiguration;
+import org.eclipse.nebula.widgets.nattable.tooltip.NatTableContentTooltip;
 import org.eclipse.nebula.widgets.nattable.tree.ITreeRowModel;
 import org.eclipse.nebula.widgets.nattable.tree.TreeLayer;
 import org.eclipse.nebula.widgets.nattable.tree.command.TreeExpandToLevelCommand;
@@ -91,6 +97,7 @@ import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Menu;
 
 import ca.odell.glazedlists.BasicEventList;
@@ -105,30 +112,39 @@ import eu.etaxonomy.cdm.api.service.config.RemoveDescriptionsFromDescriptiveData
 import eu.etaxonomy.cdm.api.service.dto.FieldUnitDTO;
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
 import eu.etaxonomy.cdm.api.service.dto.SpecimenRowWrapperDTO;
+import eu.etaxonomy.cdm.api.service.dto.TaxonRowWrapperDTO;
+import eu.etaxonomy.cdm.api.service.l10n.TermRepresentation_L10n;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.MeasurementUnit;
+import eu.etaxonomy.cdm.model.description.SpecimenDescription;
 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
-import eu.etaxonomy.cdm.model.term.TermNode;
-import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.cdm.persistence.dto.DescriptiveDataSetBaseDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
 import eu.etaxonomy.cdm.persistence.dto.SpecimenNodeWrapper;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.operation.IFeedbackGenerator;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
 
 /**
  * Character matrix editor for editing specimen/taxon descriptions in a table
+ * 
  * @author pplitzner
  * @since Nov 26, 2017
- *
  */
 public class CharacterMatrix extends Composite {
 
@@ -150,6 +166,7 @@ public class CharacterMatrix extends Composite {
     static final String LABEL_TAXON_DESCRIPTION = "LABEL_TAXON_DESCRIPTION"; //$NON-NLS-1$
     static final String LABEL_DESCRIPTION_HAS_SUPPLEMENTAL_DATA = "LABEL_DESCRIPTION_HAS_SUPPLEMENTAL_DATA"; //$NON-NLS-1$
 
+    boolean isFirstCall = true;
     @Inject
     private UISynchronize sync;
 
@@ -158,12 +175,14 @@ public class CharacterMatrix extends Composite {
 
     private NatTable natTable;
 
-//    private Collection<RowWrapperDTO<?>> rowsToSave = new HashSet<>();
     private HashMap<UUID, RowWrapperDTO<?>> rowsToMerge = new HashMap<>();
 
-    private Map<Integer, Feature> indexToFeatureMap = new HashMap<>();
+    private Map<Integer, FeatureDto> indexToFeatureMap = new HashMap<>();
+    private Map<UUID, Integer> featureToIndexMap = new HashMap<>();
 
-    private Map<Feature, List<TermDto>> categoricalFeatureToStateMap = new HashMap<>();
+    private Map<UUID, List<TermDto>> categoricalFeatureToStateMap = new HashMap<>();
+    
+    private Map<UUID, List<TermDto>> categoricalFeatureToModifierMap = new HashMap<>();
 
     private LinkedMap<String, String> propertyToLabelMap = new LinkedMap<>();
 
@@ -171,13 +190,13 @@ public class CharacterMatrix extends Composite {
 
     private Collection<SpecimenNodeWrapper> specimenCache = null;
 
-    private Map<Feature, CategoricalDataHistogram> featureToHistogramMap = new HashMap<>();
+    private Map<FeatureDto, CategoricalDataHistogram> featureToHistogramMap = new HashMap<>();
 
     private ListDataProvider<Object> bodyDataProvider;
 
     private FreezeLayer freezeLayer;
 
-    private List<Feature> features;
+    private List<FeatureDto> features;
 
     private CharacterMatrixPart part;
 
@@ -187,18 +206,22 @@ public class CharacterMatrix extends Composite {
 
     private MatrixBodyLayerStack bodyLayer;
 
+    private SelectionLayer selectionLayer;
+
     private boolean isTreeView = true;
 
     private CharacterMatrixToolbar toolbar;
 
     private DescriptionTreeFormat treeFormat;
-//    private List<UUID> descriptionUuidsToDelete;
-    Map<RemoveDescriptionsFromDescriptiveDataSetConfigurator, List<UUID>> descriptionUuidsToDelete;
+
+    private Map<RemoveDescriptionsFromDescriptiveDataSetConfigurator, List<UUID>> descriptionUuidsToDelete;
 
     private List<SpecimenRowWrapperDTO> specimenToAdd;
 
     private MouseEventMatcher mouseEventMatcher = null;
 
+    private Set<DescriptionBase<?>> descriptionsToSave = new HashSet<>();
+
     public CharacterMatrix(Composite parent, CharacterMatrixPart part) {
         super(parent, SWT.NONE);
         this.part = part;
@@ -207,32 +230,23 @@ public class CharacterMatrix extends Composite {
         createToolBar();
 
         natTable = new NatTable(this, false);
-
-//        createBottomToolbar();
-
     }
 
-    private void createToolBar(){
+    private void createToolBar() {
         toolbar = new CharacterMatrixToolbar(this, SWT.NONE);
     }
 
-    @SuppressWarnings("unused")
-    private void createBottomToolbar() {
-        new CharacterMatrixBottomToolbar(this, SWT.NONE);
-    }
-
-
-    private void applyStyles(){
+    private void applyStyles() {
         ModernNatTableThemeConfiguration configuration = new ModernNatTableThemeConfiguration();
         // NOTE: Getting the colors and fonts from the GUIHelper ensures that
         // they are disposed properly (required by SWT)
         configuration.cHeaderBgColor = GUIHelper.getColor(211, 211, 211);
         configuration.rHeaderBgColor = GUIHelper.getColor(211, 211, 211);
         natTable.addConfiguration(configuration);
-
     }
 
-    void toggleTreeFlat(boolean isTree, Button btnToggleFlat, Button btnToggleTree, Button btnCollapseAll, Button btnExpandAll, Button btnFreezeSuppInfo) {
+    void toggleTreeFlat(boolean isTree, Button btnToggleFlat, Button btnToggleTree, Button btnCollapseAll,
+            Button btnExpandAll, Button btnFreezeSuppInfo) {
         isTreeView = isTree;
         createTable(isTree, freezeLayer.isFrozen(), true);
         btnToggleFlat.setEnabled(isTree);
@@ -245,7 +259,8 @@ public class CharacterMatrix extends Composite {
         return isTreeView;
     }
 
-    public void createTable(boolean treeView, boolean freezeSupplementalColumns, boolean isInitialExpandToDeepestTaxonLevel){
+    public void createTable(boolean treeView, boolean freezeSupplementalColumns,
+            boolean isInitialExpandToDeepestTaxonLevel) {
         /**
          * layers
          */
@@ -262,165 +277,199 @@ public class CharacterMatrix extends Composite {
          */
         registerHandlersAndListeners();
 
-        //grab all space
+        // grab all space
         GridDataFactory.fillDefaults().grab(true, true).applyTo(natTable);
 
-        //update label to current data set
-        toolbar.getWsLabel().setText(getDescriptiveDataSet().getLabel());
+        // update label to current dataset
+        toolbar.getWsLabel().setText(getDescriptiveDataSet().getTitleCache());
         toolbar.getWsLabel().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
         toolbar.getWsLabel().getParent().layout();
 
-        //initial freeze of supplemental columns
+        // initial freeze of supplemental columns
         freezeSupplementalColumns(freezeSupplementalColumns);
 
-
-        //add tooltip to table
-//        new CategoricalChartTooltip(this);
-//        new QuantitativeChartTooltip(this);
-
+        // add tooltip to table
+        // new CategoricalChartTooltip(this);
+        // new QuantitativeChartTooltip(this);
 
         this.layout();
         natTable.doCommand(new ClientAreaResizeCommand(natTable));
 
         // expand all taxa
-        if(isInitialExpandToDeepestTaxonLevel){
+        if (isInitialExpandToDeepestTaxonLevel) {
             Integer deepestTaxonLevel = treeFormat.getDeepestTaxonLevel();
-            if(deepestTaxonLevel!=null){
-                natTable.doCommand(new TreeExpandToLevelCommand(deepestTaxonLevel-2));
+            if (deepestTaxonLevel != null) {
+                natTable.doCommand(new TreeExpandToLevelCommand(deepestTaxonLevel - 2));
             }
         }
+        new NatTableContentTooltip(natTable, GridRegion.BODY) {
+            @Override
+            protected String getText(Event event) {
+                int col = this.natTable.getColumnPositionByX(event.x);
+                int row = this.natTable.getRowPositionByY(event.y);
+
+                ILayerCell cell = this.natTable.getCellByPosition(col, row);
+                int i = cell.getRowIndex();
+                if (!cell.getConfigLabels().getLabels().contains("TAXON_AGGREGATED_DESCRIPTION") && cell.getConfigLabels().getLabels().contains(CharacterMatrixConfigLabelAccumulator.NOT_EDITABLE)) {
+                    Object o = bodyDataProvider.getRowObject(cell.getRowIndex());
+                    String object = "";
+                    if (o instanceof TaxonNodeDto || o instanceof TaxonRowWrapperDTO) {
+                        object = "taxon";
+                    } else {
+                        object = "specimen";
+                    }
+
+                    return "Multiple data exist. Editing only possible in factual data view of " + object;
+                }
+                if (cell.getConfigLabels().getLabels().contains("TAXON_AGGREGATED_DESCRIPTION") && cell.getConfigLabels().getLabels().contains(CharacterMatrixConfigLabelAccumulator.NOT_EDITABLE)) {
+                    
+                    return "Aggregated data are not editable.";
+                }
+                if (cell.getConfigLabels().getLabels().contains(CharacterMatrixConfigLabelAccumulator.NOT_APPLICABLE)) {
+                    return "This character is not applicable because of the state of a parent feature.";
+                }
+                return null;
+            }
+        };
 
         // clean up table state
         getNatTableState().remove(NatTable.INITIAL_PAINT_COMPLETE_FLAG);
         getNatTableState().remove(PersistenceDialog.ACTIVE_VIEW_CONFIGURATION_KEY);
     }
 
-    private List<Feature> initFeatureList(TermNode<Feature> node){
-        List<Feature> features = new ArrayList<>();
-        List<TermNode<Feature>> childNodes = node.getChildNodes();
-        for (TermNode<Feature> childNode : childNodes) {
-            features.add(childNode.getTerm());
-            features.addAll(initFeatureList(childNode));
+    private List<FeatureDto> initFeatureList(TermNodeDto node) {
+        List<FeatureDto> features = new ArrayList<>();
+        List<TermNodeDto> childNodes = node.getChildren();
+        for (TermNodeDto childNode : childNodes) {
+            if (childNode != null) {
+                features.add((FeatureDto) childNode.getTerm());
+                features.addAll(initFeatureList(childNode));
+            }
         }
         return features;
     }
 
-    public void initDescriptiveDataSet(){
-        //get features/columns stored in descriptive data set
-        TermTree<Feature> tree = getDescriptiveDataSet().getDescriptiveSystem();
-        features = initFeatureList(tree.getRoot());
+    public void initDescriptiveDataSet() {
+        // get features/columns stored in descriptive dataset
+        TermCollectionDto tree = getDescriptiveDataSet().getDescriptiveSystem();
+        features = initFeatureList(((TermTreeDto) tree).getRoot());
 
-        Set<Feature> duplicateFeatures = features.stream().filter(i -> Collections.frequency(features, i) >1)
-        .collect(Collectors.toSet());
+        Set<FeatureDto> duplicateFeatures = features.stream().filter(i -> Collections.frequency(features, i) > 1)
+                .collect(Collectors.toSet());
 
         if (!duplicateFeatures.isEmpty()) {
-            throw new IllegalArgumentException("Duplicate features found: "
-                    + duplicateFeatures.stream().map(feature -> feature.getLabel()).collect(Collectors.joining(",")));
+            throw new IllegalArgumentException("Duplicate features found: " + duplicateFeatures.stream()
+                    .map(feature -> feature.getRepresentation_L10n()).collect(Collectors.joining(",")));
         }
 
-        //init state data for categorical features
-        features.forEach(feature->fetchSupportedStates(feature));
+        // init state data for categorical features
+        // features.forEach(feature->fetchSupportedStates(feature));
+        fetchSupportedStates(features);
+        fetchSupportedModifiers(features);
 
         descriptions = new BasicEventList<>();
 
     }
 
-    private void fetchSupportedStates(Feature feature) {
-        List<TermDto> supportedStates = CdmStore.getService(IDescriptiveDataSetService.class).getSupportedStatesForFeature(feature.getUuid());
-        categoricalFeatureToStateMap.put(feature, supportedStates);
-    }
+    private void fetchSupportedStates(List<FeatureDto> features) {
+        Set<UUID> featureUuids = new HashSet<>();
+        features.forEach(i -> featureUuids.add(i.getUuid()));
+        categoricalFeatureToStateMap = CdmStore.getService(IDescriptiveDataSetService.class)
+                .getSupportedStatesForFeature(featureUuids);
 
+    }
+    
+    private void fetchSupportedModifiers(List<FeatureDto> features) {
+        Set<UUID> featureUuids = new HashSet<>();
+        features.forEach(i -> featureUuids.add(i.getUuid()));
+        categoricalFeatureToModifierMap = CdmStore.getService(IDescriptiveDataSetService.class)
+                .getRecommendedModifiersForFeature(featureUuids);
 
+    }
 
     private void createLayers(boolean treeView) {
 
         SortedList<Object> sortedList = new SortedList<>(descriptions, new MatrixRowComparator());
         // wrap the SortedList with the TreeList
         treeFormat = new DescriptionTreeFormat(getDescriptiveDataSet());
-        TreeList<Object> treeList = new TreeList(sortedList, treeFormat, TreeList.NODES_START_COLLAPSED);
+        @SuppressWarnings("unchecked")
+        TreeList<Object> treeList = new TreeList<Object>(sortedList, treeFormat, TreeList.NODES_START_COLLAPSED);
         // wrap the SortedList with the TreeList
-        treeFormat = new DescriptionTreeFormat(getDescriptiveDataSet());
+        // treeFormat = new DescriptionTreeFormat(getDescriptiveDataSet());
 
         /**
          * data provider
          */
         SpecimenColumnPropertyAccessor columnPropertyAccessor = new SpecimenColumnPropertyAccessor(this);
-        bodyDataProvider = treeView?new ListDataProvider<>(treeList, columnPropertyAccessor):new ListDataProvider<>(sortedList, columnPropertyAccessor);
+//        bodyDataProvider = treeView ? new CharacterMatrixListDataProvider<>(treeList, columnPropertyAccessor)
+//                : new CharacterMatrixListDataProvider<>(sortedList, columnPropertyAccessor);
+        bodyDataProvider = treeView ? new ListDataProvider<>(treeList, columnPropertyAccessor)
+                : new ListDataProvider<>(sortedList, columnPropertyAccessor);
 
         DataLayer bodyDataLayer = new DataLayer(bodyDataProvider);
         bodyDataLayer.registerCommandHandler(new CopyPasteUpdateDataCommandHandler(bodyDataLayer));
 
-
         /**
          * BODY layer
          *
          *
-
-        ViewportLayer
-
-             ^
-        TreeLayer (default visible)
-
-             ^
-        CompositeFreezeLayer
-         - viewportLayer
-         - selectionLayer
-         - freezeLayer
-
-             ^
-        FreezeLayer
-
-             ^
-        SelectionLayer
-
-             ^
-        ColumnHideShowLayer
-
-             ^
-        DataLayer
-
+         * 
+         * ViewportLayer
+         * 
+         * ^ TreeLayer (default visible)
+         * 
+         * ^ CompositeFreezeLayer - viewportLayer - selectionLayer - freezeLayer
+         * 
+         * ^ FreezeLayer
+         * 
+         * ^ SelectionLayer
+         * 
+         * ^ ColumnHideShowLayer
+         * 
+         * ^ DataLayer
          *
-
+         * 
+         * 
          */
 
         configRegistry = new ConfigRegistry();
-        //register labels
+        // register labels
         CharacterMatrixConfigLabelAccumulator labelAccumulator = new CharacterMatrixConfigLabelAccumulator(this);
         bodyDataLayer.setConfigLabelAccumulator(labelAccumulator);
 
-
         propertyToLabelMap.put(TAXON_COLUMN, Messages.CharacterMatrix_TAXON);
         propertyToLabelMap.put(COLLECTOR_COLUMN, Messages.CharacterMatrix_COLLECTOR_NO);
         propertyToLabelMap.put(IDENTIFIER_COLUMN, Messages.CharacterMatrix_IDENTIFIER);
         propertyToLabelMap.put(COUNTRY_COLUMN, Messages.CharacterMatrix_COUNTRY);
-        for(int i=0;i<features.size();i++){
-            Feature feature = features.get(i);
+        for (int i = 0; i < features.size(); i++) {
+            FeatureDto feature = features.get(i);
             initLabels(i, feature);
         }
 
         // layer for event handling of GlazedLists and PropertyChanges
-        GlazedListsEventLayer eventLayer = new GlazedListsEventLayer<>(bodyDataLayer, (EventList)bodyDataProvider.getList());
+        GlazedListsEventLayer<Object> eventLayer = new GlazedListsEventLayer<>(bodyDataLayer,
+                (EventList<Object>) bodyDataProvider.getList());
 
-        GlazedListTreeData treeData = new GlazedListTreeData<>(treeList);
-        ITreeRowModel treeRowModel = new GlazedListTreeRowModel<>(treeData);
+        GlazedListTreeData<?> treeData = new GlazedListTreeData<>(treeList);
+        ITreeRowModel<?> treeRowModel = new GlazedListTreeRowModel<>(treeData);
 
         // assemble the column groups
         LinkedList<ColumnGroupWrapper> columnGroups = new LinkedList<>();
-        List<TermNode<Feature>> rootChildren = getDescriptiveDataSet().getDescriptiveSystem().getRootChildren();
+        List<TermNodeDto> rootChildren = ((TermTreeDto) getDescriptiveDataSet().getDescriptiveSystem()).getRoot()
+                .getChildren();
         buildHeader(rootChildren, columnGroups);
 
         bodyLayer = new MatrixBodyLayerStack(eventLayer, columnGroups);
-        final SelectionLayer selectionLayer = bodyLayer.getSelectionLayer();
+        selectionLayer = bodyLayer.getSelectionLayer();
         freezeLayer = new FreezeLayer(selectionLayer);
-        final CompositeFreezeLayer compositeFreezeLayer = new CompositeFreezeLayer(
-                freezeLayer, bodyLayer.getViewportLayer(), selectionLayer);
+        final CompositeFreezeLayer compositeFreezeLayer = new CompositeFreezeLayer(freezeLayer,
+                bodyLayer.getViewportLayer(), selectionLayer);
         TreeLayer treeLayer = null;
-        if (treeView){
+        if (treeView) {
             treeLayer = new TreeLayer(compositeFreezeLayer, treeRowModel);
         }
 
-        topMostLayer = treeView?treeLayer:compositeFreezeLayer;
-
+        topMostLayer = treeView ? treeLayer : compositeFreezeLayer;
 
         /**
          * column header layer
@@ -428,34 +477,36 @@ public class CharacterMatrix extends Composite {
         IDataProvider columnHeaderDataProvider = new DefaultColumnHeaderDataProvider(
                 propertyToLabelMap.values().toArray(new String[] {}), propertyToLabelMap);
         DataLayer columnHeaderDataLayer = new DataLayer(columnHeaderDataProvider);
-        ColumnHeaderLayer columnHeaderLayer = new ColumnHeaderLayer(columnHeaderDataLayer, topMostLayer, selectionLayer);
+        ColumnHeaderLayer columnHeaderLayer = new ColumnHeaderLayer(columnHeaderDataLayer, topMostLayer,
+                selectionLayer);
 
         ILayer topHeaderLayer = columnHeaderLayer;
 
-        if(!columnGroups.isEmpty()){
+        if (!columnGroups.isEmpty()) {
             // first group level
             ColumnGroupWrapper groupLevel1 = columnGroups.get(0);
             ColumnGroupHeaderLayer groupLayerLevel1 = null;
             ColumnGroupGroupHeaderLayer groupLayerLevel2 = null;
             groupLayerLevel1 = new ColumnGroupHeaderLayer(columnHeaderLayer, selectionLayer, groupLevel1.getModel());
-            for (Entry<TermNode<Feature>, TreeSet<Integer>> entry: groupLevel1.getColumnGroupToIndexMap().entrySet()) {
-                TermNode<Feature> group = entry.getKey();
+            for (Entry<TermNodeDto, TreeSet<Integer>> entry : groupLevel1.getColumnGroupToIndexMap().entrySet()) {
+                TermNodeDto group = entry.getKey();
                 TreeSet<Integer> indexList = entry.getValue();
                 int[] intArray = indexList.stream().mapToInt(Integer::intValue).toArray();
-                groupLayerLevel1.addColumnsIndexesToGroup(group.getTerm().getTitleCache(), intArray);
+                groupLayerLevel1.addColumnsIndexesToGroup(group.getTerm().getRepresentation_L10n(), intArray);
                 groupLayerLevel1.setGroupUnbreakable(indexList.iterator().next());
             }
             topHeaderLayer = groupLayerLevel1;
 
             // second group level
-            if(columnGroups.size()>1){
+            if (columnGroups.size() > 1) {
                 ColumnGroupWrapper groupLevel2 = columnGroups.get(1);
-                groupLayerLevel2 = new ColumnGroupGroupHeaderLayer(groupLayerLevel1, selectionLayer, groupLevel2.getModel());
-                for (Entry<TermNode<Feature>, TreeSet<Integer>> entry: groupLevel2.getColumnGroupToIndexMap().entrySet()) {
-                    TermNode<Feature> group = entry.getKey();
+                groupLayerLevel2 = new ColumnGroupGroupHeaderLayer(groupLayerLevel1, selectionLayer,
+                        groupLevel2.getModel());
+                for (Entry<TermNodeDto, TreeSet<Integer>> entry : groupLevel2.getColumnGroupToIndexMap().entrySet()) {
+                    TermNodeDto group = entry.getKey();
                     TreeSet<Integer> indexList = entry.getValue();
                     int[] intArray = indexList.stream().mapToInt(Integer::intValue).toArray();
-                    groupLayerLevel2.addColumnsIndexesToGroup(group.getTerm().getTitleCache(), intArray);
+                    groupLayerLevel2.addColumnsIndexesToGroup(group.getTerm().getRepresentation_L10n(), intArray);
                     groupLayerLevel2.setGroupUnbreakable(indexList.iterator().next());
                 }
                 topHeaderLayer = groupLayerLevel2;
@@ -465,24 +516,15 @@ public class CharacterMatrix extends Composite {
         // add the SortHeaderLayer to the column header layer stack
         // as we use GlazedLists, we use the GlazedListsSortModel which
         // delegates the sorting to the SortedList
-        final SortHeaderLayer<DescriptionBase> sortHeaderLayer = new SortHeaderLayer<>(
-                topHeaderLayer,
-                new GlazedListsSortModel<>(
-                        sortedList,
-                        columnPropertyAccessor,
-                        configRegistry,
-                        columnHeaderDataLayer));
-
-
+        final SortHeaderLayer<DescriptionBase<?>> sortHeaderLayer = new SortHeaderLayer<>(topHeaderLayer,
+                new GlazedListsSortModel<>(sortedList, columnPropertyAccessor, configRegistry, columnHeaderDataLayer));
 
         /**
          * row header layer
          */
         IDataProvider rowHeaderDataProvider = new DefaultRowHeaderDataProvider(bodyDataProvider);
         DefaultRowHeaderDataLayer rowHeaderDataLayer = new DefaultRowHeaderDataLayer(rowHeaderDataProvider);
-        RowHeaderLayer rowHeaderLayer = new RowHeaderLayer(rowHeaderDataLayer,
-                topMostLayer, selectionLayer);
-
+        RowHeaderLayer rowHeaderLayer = new RowHeaderLayer(rowHeaderDataLayer, topMostLayer, selectionLayer);
 
         /**
          * corner layer
@@ -491,43 +533,44 @@ public class CharacterMatrix extends Composite {
                 new DataLayer(new DefaultCornerDataProvider(columnHeaderDataProvider, rowHeaderDataProvider)),
                 rowHeaderLayer, sortHeaderLayer);
 
-
         /**
          * GRID layer (composition of all other layers)
          */
         GridLayer gridLayer = new GridLayer(topMostLayer, sortHeaderLayer, rowHeaderLayer, cornerLayer);
-
         natTable.setLayer(gridLayer);
-
     }
 
-    private TreeSet<Integer> recurseChildIndexes(TermNode<Feature> node){
+    private TreeSet<Integer> recurseChildIndexes(TermNodeDto node) {
         TreeSet<Integer> childIndexes = new TreeSet<>();
-        if(node.getChildCount()>0){
-            List<TermNode<Feature>> childNodes = node.getChildNodes();
-            for (TermNode<Feature> childNode: childNodes) {
-                childIndexes.addAll(recurseChildIndexes(childNode));
+        if (node.getChildren().size() > 0) {
+            List<TermNodeDto> childNodes = node.getChildren();
+            for (TermNodeDto childNode : childNodes) {
+                if (childNode != null) {
+                    childIndexes.addAll(recurseChildIndexes(childNode));
+                }
             }
         }
-        childIndexes.add(features.indexOf(node.getTerm())+LEADING_COLUMN_COUNT);
+        childIndexes.add(features.indexOf(node.getTerm()) + LEADING_COLUMN_COUNT);
         return childIndexes;
     }
 
-    private void buildHeader(List<TermNode<Feature>> nodes, LinkedList<ColumnGroupWrapper> columnGroups){
-        Map<TermNode<Feature>, TreeSet<Integer>> columnGroupToIndexMap = new HashMap<>();
-        List<TermNode<Feature>> childNodes = new ArrayList<>();
-        for (TermNode<Feature> node : nodes) {
-            TreeSet<Integer> childIndexes = recurseChildIndexes(node);
-            if(childIndexes.size()>1){
-                // filter out groups that only have one member
-                columnGroupToIndexMap.put(node, childIndexes);
+    private void buildHeader(List<TermNodeDto> nodes, LinkedList<ColumnGroupWrapper> columnGroups) {
+        Map<TermNodeDto, TreeSet<Integer>> columnGroupToIndexMap = new HashMap<>();
+        List<TermNodeDto> childNodes = new ArrayList<>();
+        for (TermNodeDto node : nodes) {
+            if (node != null) {
+                TreeSet<Integer> childIndexes = recurseChildIndexes(node);
+                if (childIndexes.size() > 1) {
+                    // filter out groups that only have one member
+                    columnGroupToIndexMap.put(node, childIndexes);
+                }
+                childNodes.addAll(node.getChildren());
             }
-            childNodes.addAll(node.getChildNodes());
         }
-        if(!columnGroupToIndexMap.isEmpty()){
+        if (!columnGroupToIndexMap.isEmpty()) {
             columnGroups.addFirst(new ColumnGroupWrapper(new ColumnGroupModel(), columnGroupToIndexMap));
         }
-        if(!childNodes.isEmpty()){
+        if (!childNodes.isEmpty()) {
             buildHeader(childNodes, columnGroups);
         }
     }
@@ -535,29 +578,27 @@ public class CharacterMatrix extends Composite {
     private void registerHandlersAndListeners() {
         natTable.registerCommandHandler(new ExportCommandHandler(natTable));
 
-        //selection listener
-        E4SelectionListener selectionListener = new CellSelectionListener(part.getSelectionService(),
+        // selection listener
+        E4SelectionListener<Object> selectionListener = new CellSelectionListener(part.getSelectionService(),
                 bodyLayer.getSelectionLayer(), bodyDataProvider, part);
         bodyLayer.getSelectionLayer().addLayerListener(selectionListener);
         selectionListener.setFullySelectedRowsOnly(false);
 
-        //register handler for view configuration menu
+        // register handler for view configuration menu
         natTable.registerCommandHandler(toolbar.getDisplayPersistenceDialogCommandHandler());
 
-        //register handlers for copy&paste
-        natTable.registerCommandHandler(
-                new InternalPasteDataCommandHandler(bodyLayer.getSelectionLayer(), natTable.getInternalCellClipboard()));
+        // register handlers for copy&paste
+        natTable.registerCommandHandler(new InternalPasteDataCommandHandler(bodyLayer.getSelectionLayer(),
+                natTable.getInternalCellClipboard()));
         natTable.registerCommandHandler(
                 new InternalCopyDataCommandHandler(bodyLayer.getSelectionLayer(), natTable.getInternalCellClipboard()));
     }
 
-    private void configureNatTable(boolean treeView,
-            ConfigRegistry configRegistry,
-            AbstractLayer topMostLayer) {
+    private void configureNatTable(boolean treeView, ConfigRegistry configRegistry, AbstractLayer topMostLayer) {
         /**
          * CONFIGURATION
          */
-      //+++CONTEXT MENU+++
+        // +++CONTEXT MENU+++
         menuService.registerContextMenu(natTable, "eu.etaxonomy.taxeditor.editor.popupmenu.charactermatrix"); //$NON-NLS-1$
         // get the menu registered by EMenuService
         final Menu e4Menu = natTable.getMenu();
@@ -566,15 +607,16 @@ public class CharacterMatrix extends Composite {
 
         applyStyles();
 
-        //add default configuration because autoconfigure is set to false in constructor
+        // add default configuration because autoconfigure is set to false in
+        // constructor
         natTable.addConfiguration(new DefaultNatTableStyleConfiguration());
 
         // this is for DEBUG ONLY
-//                natTable.addConfiguration(new DebugMenuConfiguration(natTable));
+        // natTable.addConfiguration(new DebugMenuConfiguration(natTable));
 
         // override the default sort configuration and change the mouse bindings
         // to sort on a single click
-        if(!treeView){
+        if (!treeView) {
             natTable.addConfiguration(new SingleClickSortConfiguration());
         }
 
@@ -582,156 +624,150 @@ public class CharacterMatrix extends Composite {
 
         // add the header menu configuration for adding the column header menu
         // with hide/show actions
-//        natTable.addConfiguration(new CharacterMatrixHeaderMenuConfiguration(natTable));
+        // natTable.addConfiguration(new
+        // CharacterMatrixHeaderMenuConfiguration(natTable));
 
-        // add custom configuration for data conversion and add column labels to viewport layer
+        // add custom configuration for data conversion and add column labels to
+        // viewport layer
         topMostLayer.addConfiguration(new CellEditorDataConversionConfiguration(this));
 
-        //copy&paste configuration
-        natTable.addConfiguration(new CopyPasteEditBindings(bodyLayer.getSelectionLayer(), natTable.getInternalCellClipboard()));
-
+        // copy&paste configuration
+        natTable.addConfiguration(
+                new CopyPasteEditBindings(bodyLayer.getSelectionLayer(), natTable.getInternalCellClipboard()));
 
         // remove the menu reference from NatTable instance
         natTable.setMenu(null);
 
-
-//        natTable.addConfiguration(new CharacterMatrixHeaderMenuConfiguration(natTable));
-
+        // natTable.addConfiguration(new
+        // CharacterMatrixHeaderMenuConfiguration(natTable));
 
         natTable.configure();
 
-
-        natTable.addConfiguration(
-                    new AbstractUiBindingConfiguration() {
-                @Override
-                public void configureUiBindings(
-                        UiBindingRegistry uiBindingRegistry) {
-                    // add e4 menu to NatTable
-
-
-                    uiBindingRegistry.unregisterMouseDownBinding(mouseEventMatcher);
-                    new PopupMenuBuilder(natTable, e4Menu)
-                    .withHideColumnMenuItem()
-                    .withShowAllColumnsMenuItem()
-                    .build();
-
-                    // register the UI binding for header, corner and body region
-                    mouseEventMatcher = new MouseEventMatcher(
-                            SWT.NONE,
-                            null,
-                            MouseEventMatcher.RIGHT_BUTTON);
-                    uiBindingRegistry.registerMouseDownBinding(mouseEventMatcher,
-                            new PopupMenuAction(e4Menu));
+        natTable.addConfiguration(new AbstractUiBindingConfiguration() {
+            @Override
+            public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
+                // add e4 menu to NatTable
+                uiBindingRegistry.unregisterMouseDownBinding(mouseEventMatcher);
+                if (isFirstCall) {
+                    new PopupMenuBuilder(natTable, e4Menu).withHideColumnMenuItem().withShowAllColumnsMenuItem()
+                            .build();
+                    isFirstCall = false;
+                } else {
+                    new PopupMenuBuilder(natTable, e4Menu).build();
                 }
-            });
+                // register the UI binding for header, corner and body region
+                mouseEventMatcher = new MouseEventMatcher(SWT.NONE, null, MouseEventMatcher.RIGHT_BUTTON);
+                uiBindingRegistry.registerMouseDownBinding(mouseEventMatcher, new PopupMenuAction(e4Menu));
+            }
+        });
 
     }
 
-    void freezeSupplementalColumns(boolean freeze){
-        int rightMostFreezeColumIndex = LEADING_COLUMN_COUNT-1;
+    void freezeSupplementalColumns(boolean freeze) {
+        int rightMostFreezeColumIndex = LEADING_COLUMN_COUNT - 1;
         Collection<Integer> hiddenColumnIndexes = bodyLayer.getColumnHideShowLayer().getHiddenColumnIndexes();
         for (Integer integer : hiddenColumnIndexes) {
-            if(integer<LEADING_COLUMN_COUNT){
+            if (integer < LEADING_COLUMN_COUNT) {
                 rightMostFreezeColumIndex--;
             }
         }
-        if(freeze){
+        if (freeze) {
             FreezeHelper.freeze(freezeLayer, bodyLayer.getViewportLayer(),
                     new PositionCoordinate(bodyLayer.getViewportLayer(), 0, 0),
                     new PositionCoordinate(bodyLayer.getViewportLayer(), rightMostFreezeColumIndex, -1));
-        }
-        else{
+        } else {
             FreezeHelper.unfreeze(freezeLayer, bodyLayer.getViewportLayer());
         }
     }
 
-    private void initLabels(int index, Feature feature) {
-        indexToFeatureMap.put(index+LEADING_COLUMN_COUNT, feature);
-
-        String label = feature.getLabel();
+    private void initLabels(int index, FeatureDto feature) {
+        indexToFeatureMap.put(index + LEADING_COLUMN_COUNT, feature);
+        featureToIndexMap.put(feature.getUuid(), index + LEADING_COLUMN_COUNT);
+        List<Language> languages = new ArrayList<>();
+        languages.add(PreferencesUtil.getGlobalLanguage());
+        feature.localize(new TermRepresentation_L10n(), languages);
+        String label = feature.getRepresentation_L10n();
         String property = feature.getUuid().toString();
-        //show unit for quantitative data
-        if(feature.isSupportsQuantitativeData()){
-            Set<MeasurementUnit> recommendedMeasurementUnits = feature.getRecommendedMeasurementUnits();
-//            if(recommendedMeasurementUnits.size()>1){
-//                MessagingUtils.warningDialog(Messages.CharacterMatrix_INIT_PROBLEM, CharacterMatrix.class,
-//                        String.format(Messages.CharacterMatrix_INIT_PROBLEM_MESSAGE, feature.getLabel()));
-//            }
-            if(recommendedMeasurementUnits.size()==1){
-                MeasurementUnit unit = recommendedMeasurementUnits.iterator().next();
-                label += " ["+unit.getIdInVocabulary()+"]"; //$NON-NLS-1$ //$NON-NLS-2$
+        // show unit for quantitative data
+        if (feature.isSupportsQuantitativeData()) {
+            Set<TermDto> recommendedMeasurementUnits = feature.getRecommendedMeasurementUnits();
+            // if(recommendedMeasurementUnits.size()>1){
+            // MessagingUtils.warningDialog(Messages.CharacterMatrix_INIT_PROBLEM,
+            // CharacterMatrix.class,
+            // String.format(Messages.CharacterMatrix_INIT_PROBLEM_MESSAGE,
+            // feature.getLabel()));
+            // }
+            if (recommendedMeasurementUnits.size() == 1) {
+                TermDto unit = recommendedMeasurementUnits.iterator().next();
+                label += " [" + unit.getIdInVocabulary() + "]"; //$NON-NLS-1$ //$NON-NLS-2$
             }
         }
         propertyToLabelMap.put(property, label);
     }
 
     public void loadDescriptions(boolean isInitialExpandToDeepestTaxonLevel, boolean initialLoading) {
-        UUID monitorUuid =  CdmApplicationState.getLongRunningTasksService().monitGetRowWrapper(this.getDescriptiveDataSet().getUuid());
 
-        final Collection<RowWrapperDTO> wrappers = new ArrayList<>();
+        UUID monitorUuid = CdmApplicationState.getLongRunningTasksService()
+                .monitGetRowWrapper(this.getDescriptiveDataSet().getUuid(), PreferencesUtil.getGlobalLanguage());
+
+        final Collection<RowWrapperDTO<?>> wrappers = new ArrayList<>();
         String jobLabel = Messages.CharacterMatrix_LOAD_CHARACTER_DATA;
         Job job = Job.create(jobLabel, (ICoreRunnable) monitor -> {
             SubMonitor subMonitor = SubMonitor.convert(monitor);
             subMonitor.beginTask(jobLabel, IProgressMonitor.UNKNOWN);
             IRemotingProgressMonitor remotingMonitor;
             try {
-                 remotingMonitor = CdmStore.getProgressMonitorClientManager()
-                .pollMonitor(jobLabel,
-                        monitorUuid,
-                        50,
-                        null,
-                        (List)null,
-                        subMonitor);
+                remotingMonitor = CdmStore.getProgressMonitorClientManager().pollMonitor(jobLabel, monitorUuid, 50,
+                        null, (List<IFeedbackGenerator>) null, subMonitor);
             } catch (InterruptedException e) {
                 MessagingUtils.informationDialog(Messages.CharacterMatrix_LOADING_FAILED_TITLE,
                         Messages.CharacterMatrix_LOADING_FAILED_MESSAGE);
                 return;
             }
             Object result = remotingMonitor.getResult();
-            if(result instanceof Collection){
-                wrappers.addAll((Collection<RowWrapperDTO>) result);
-            }
-            if(result instanceof Exception){
-                MessagingUtils.errorDialog("Exception during description loading", this.getClass(), "An exception occured during loading", TaxeditorEditorPlugin.PLUGIN_ID, (Throwable) result, true);
+            if (result instanceof Collection) {
+                wrappers.addAll((Collection<RowWrapperDTO<?>>) result);
             }
-            else if(wrappers.isEmpty()){
+            if (result instanceof Exception) {
+                MessagingUtils.errorDialog("Exception during description loading", this.getClass(),
+                        "An exception occured during loading", TaxeditorEditorPlugin.PLUGIN_ID, (Throwable) result,
+                        true);
+            } else if (wrappers.isEmpty()) {
                 MessagingUtils.informationDialog(Messages.CharacterMatrix_NO_DESCRIPTION_TITLE,
                         Messages.CharacterMatrix_NO_DESCRIPTION_MESSAGE);
             }
             monitor.done();
         });
-        job.addJobChangeListener(new JobChangeAdapter(){
+        job.addJobChangeListener(new JobChangeAdapter() {
             @Override
             public void done(IJobChangeEvent event) {
-                sync.syncExec(()->{
-                    List<RowWrapperDTO> rowsWithoutTaxonNode = wrappers.stream().filter(row->row.getTaxonNode()==null).collect(Collectors.toList());
-                    if(!rowsWithoutTaxonNode.isEmpty()){
-                        String collect = rowsWithoutTaxonNode.stream().
-                        map(row->row.getDescription().toString())
-                        .collect(Collectors.joining("\n\n - ")); //$NON-NLS-1$
-                        MessagingUtils.warningDialog(
-                                Messages.CharacterMatrix_NO_NODE_FOUND_TITLE,
-                                this.getClass(),
-                                String.format(Messages.CharacterMatrix_NO_NODE_FOUND_MESSAGE, collect)
-                                );
+                sync.syncExec(() -> {
+                    List<RowWrapperDTO> rowsWithoutTaxonNode = wrappers.stream()
+                            .filter(row -> row.getTaxonNode() == null).collect(Collectors.toList());
+                    if (!rowsWithoutTaxonNode.isEmpty()) {
+                        String collect = rowsWithoutTaxonNode.stream().map(row -> row.getDescription().toString())
+                                .collect(Collectors.joining("\n\n - ")); //$NON-NLS-1$
+                        MessagingUtils.warningDialog(Messages.CharacterMatrix_NO_NODE_FOUND_TITLE, this.getClass(),
+                                String.format(Messages.CharacterMatrix_NO_NODE_FOUND_MESSAGE, collect));
                     }
                     descriptions.clear();
-                    wrappers.stream().filter(row->row.getTaxonNode()!=null).forEach(wrapper->CharacterMatrix.this.descriptions.add(wrapper));
-                    if(initialLoading){
+                    // part.setDescriptiveDataSet(CdmStore.getService(IDescriptiveDataSetService.class).getDescriptiveDataSetDtoByUuid(part.getDescriptiveDataSet().getUuid()));
+                    wrappers.stream().filter(row -> row.getTaxonNode() != null)
+                            .forEach(wrapper -> CharacterMatrix.this.descriptions.add(wrapper));
+                    if (initialLoading) {
                         loadingDone(isInitialExpandToDeepestTaxonLevel);
                     }
-
                 });
             }
         });
         job.schedule();
     }
 
-    public IStructuredSelection getSelection(){
+    public IStructuredSelection getSelection() {
         Set<Range> selectedRowPositions = bodyLayer.getSelectionLayer().getSelectedRowPositions();
         List<Object> selectedObjects = new ArrayList<>();
         for (Range range : selectedRowPositions) {
-            for(int i=range.start;i<range.end;i++){
+            for (int i = range.start; i < range.end; i++) {
                 selectedObjects.add(bodyDataProvider.getRowObject(i));
             }
         }
@@ -744,14 +780,34 @@ public class CharacterMatrix extends Composite {
 
     }
 
-    public List<TermDto> getSupportedStatesForCategoricalFeature(Feature feature){
-        return categoricalFeatureToStateMap.get(feature);
+    public List<TermDto> getSupportedStatesForCategoricalFeature(UUID featureUuid) {
+        return categoricalFeatureToStateMap.get(featureUuid);
+    }
+    
+    public List<TermDto> getRecommendModifiersForCategoricalFeature(UUID featureUuid) {
+        return categoricalFeatureToModifierMap.get(featureUuid);
+    }
+
+    public Set<DescriptionBase<?>> getDescriptionsToSave() {
+        return descriptionsToSave;
+    }
+
+    public void addDescriptionToSave(DescriptionBase<?> descriptionToSave) {
+        this.descriptionsToSave.add(descriptionToSave);
     }
 
-    public Map<Integer, Feature> getIndexToFeatureMap() {
+    public Map<Integer, FeatureDto> getIndexToFeatureMap() {
         return indexToFeatureMap;
     }
 
+    public Map<UUID, Integer> getFeatureToIndexMap() {
+        return featureToIndexMap;
+    }
+
+    public void setFeatureToIndexMap(Map<UUID, Integer> featureToIndexMap) {
+        this.featureToIndexMap = featureToIndexMap;
+    }
+
     public LinkedMap<String, String> getPropertyToLabelMap() {
         return propertyToLabelMap;
     }
@@ -764,19 +820,19 @@ public class CharacterMatrix extends Composite {
         return descriptionUuidsToDelete;
     }
 
-    public void addDescriptionToDelete(UUID descriptionToDelete, RemoveDescriptionsFromDescriptiveDataSetConfigurator config) {
-        if (descriptionUuidsToDelete == null){
+    public void addDescriptionToDelete(UUID descriptionToDelete,
+            RemoveDescriptionsFromDescriptiveDataSetConfigurator config) {
+        if (descriptionUuidsToDelete == null) {
             descriptionUuidsToDelete = new HashMap<>();
         }
-        if (descriptionUuidsToDelete.get(config) != null){
+        if (descriptionUuidsToDelete.get(config) != null) {
             descriptionUuidsToDelete.get(config).add(descriptionToDelete);
-        }else{
+        } else {
             List<UUID> uuidList = new ArrayList<>();
             uuidList.add(descriptionToDelete);
             this.descriptionUuidsToDelete.put(config, uuidList);
         }
 
-
     }
 
     public List<SpecimenRowWrapperDTO> getSpecimenToAdd() {
@@ -784,16 +840,17 @@ public class CharacterMatrix extends Composite {
     }
 
     public void addSpecimenToAdd(Collection<SpecimenRowWrapperDTO> specimenToAdd) {
-        if (this.specimenToAdd == null){
-            this.specimenToAdd = new ArrayList();
+        if (this.specimenToAdd == null) {
+            this.specimenToAdd = new ArrayList<>();
         }
 
         this.specimenToAdd.addAll(specimenToAdd);
         this.specimenCache.removeAll(specimenToAdd);
     }
+
     public void addSpecimenToAdd(SpecimenRowWrapperDTO specimenToAdd) {
-        if (this.specimenToAdd == null){
-            this.specimenToAdd = new ArrayList();
+        if (this.specimenToAdd == null) {
+            this.specimenToAdd = new ArrayList<>();
         }
 
         this.specimenToAdd.add(specimenToAdd);
@@ -812,51 +869,63 @@ public class CharacterMatrix extends Composite {
         return descriptions;
     }
 
-    public DescriptiveDataSet getDescriptiveDataSet() {
+    public DescriptiveDataSetBaseDto getDescriptiveDataSet() {
         return part.getDescriptiveDataSet();
     }
 
-    public void setDescriptiveDataSet(DescriptiveDataSet dataSet) {
+    public void setDescriptiveDataSet(DescriptiveDataSetBaseDto dataSet) {
         part.setDescriptiveDataSet(dataSet);
     }
 
     public Collection<SpecimenNodeWrapper> getSpecimenCache() {
-             return specimenCache;
+        return specimenCache;
     }
 
     public void setSpecimenCache(Collection<SpecimenNodeWrapper> specimenCache) {
-        this.specimenCache = specimenCache.stream()
-                .filter(wrapper ->
-        //map descriptions on a list of uuids of the described specimen
-        !this.descriptions.stream()
-        .filter(rowWrapper->rowWrapper instanceof SpecimenRowWrapperDTO)
-        .map(specimenRowWrapper->((SpecimenRowWrapperDTO) specimenRowWrapper).getSpecimen().getUuid())
-        .collect(Collectors.toList())
-        //and check if the specimen to add is already contained
-        .contains(wrapper.getUuidAndTitleCache().getUuid())
-        )
-        .collect(Collectors.toList());
-    }
-
-//    public void addRowToSave(RowWrapperDTO<?> row){
-//        rowsToMerge.put(row.getDescription().getDescription().getUuid(), row);
-//    }
-//
-//    public HashMap<UUID,RowWrapperDTO<?>> getRowsToSave() {
-//        return rowsToMerge;
-//    }
+        this.specimenCache = specimenCache.stream().filter(wrapper ->
+        // map descriptions on a list of uuids of the described specimen
+        !this.descriptions.stream().filter(rowWrapper -> rowWrapper instanceof SpecimenRowWrapperDTO)
+                .map(specimenRowWrapper -> ((SpecimenRowWrapperDTO) specimenRowWrapper).getSpecimenDto().getUuid())
+                .collect(Collectors.toList())
+                // and check if the specimen to add is already contained
+                .contains(wrapper.getUuidAndTitleCache().getUuid())).collect(Collectors.toList());
+    }
+
+    // public void addRowToSave(RowWrapperDTO<?> row){
+    // rowsToMerge.put(row.getDescription().getDescription().getUuid(), row);
+    // }
+    //
+    // public HashMap<UUID,RowWrapperDTO<?>> getRowsToSave() {
+    // return rowsToMerge;
+    // }
 
     public HashMap<UUID, RowWrapperDTO<?>> getRowsToMerge() {
         return rowsToMerge;
     }
 
-    public void putRowToMerge(RowWrapperDTO rowToMerge) {
-        if (this.rowsToMerge == null){
+    public void putRowToMerge(RowWrapperDTO<?> rowToMerge) {
+        if (this.rowsToMerge == null) {
             this.rowsToMerge = new HashMap<>();
         }
-        this.rowsToMerge.put(rowToMerge.getDescription().getDescription().getUuid(), rowToMerge);
+        this.rowsToMerge.put(rowToMerge.getDescription().getDescriptionUuid(), rowToMerge);
     }
 
+//    /**
+//     * @return the actualSelection
+//     */
+//    @Override
+//    public DescriptionElementDto getActualSelection() {
+//        return actualSelection;
+//    }
+//
+//    /**
+//     * @param actualSelection
+//     *            the actualSelection to set
+//     */
+//    public void setActualSelection(DescriptionElementDto actualSelection) {
+//        this.actualSelection = actualSelection;
+//    }
+
     public Properties getNatTableState() {
         return toolbar.getNatTableState();
     }
@@ -873,123 +942,168 @@ public class CharacterMatrix extends Composite {
         return new File(WorkbenchUtility.getBaseLocation(), CHARACTER_MATRIX_STATE_PROPERTIES);
     }
 
-    public List<Feature> getFeatures() {
+    public List<FeatureDto> getFeatures() {
         return features;
     }
 
-    public Map<Feature, CategoricalDataHistogram> getFeatureToHistogramMap() {
+    public Map<FeatureDto, CategoricalDataHistogram> getFeatureToHistogramMap() {
         return featureToHistogramMap;
     }
 
+    public ICdmEntitySession getCdmEntitySession() {
+        return part.getCdmEntitySession();
+    }
 
+    @Inject
+    @Optional
+    private void updateSpecimenList(@UIEventTopic(WorkbenchEventConstants.REFRESH_DESCRIPTIVE_DATASET) UUID uuid) {
+        if (uuid != null && uuid.equals(part.getDescriptiveDataSet().getUuid())) {
+            this.specimenCache = null;
 
-    public ICdmEntitySession getCdmEntitiySession(){
-        return part.getCdmEntitySession();
+        }
     }
 
     @Inject
     @Optional
-    private void updateSpecimenList(@UIEventTopic(WorkbenchEventConstants.REFRESH_DESCRIPTIVE_DATASET)UUID uuid){
-        if(uuid!= null && uuid.equals(part.getDescriptiveDataSet().getUuid())){
-           this.specimenCache = null;
+    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){
+    public void addRowsToMatrix(Collection<SpecimenNodeWrapper> wrappers) {
 
-        List<UUID> specimenUuids = new ArrayList();
+        List<UUID> specimenUuids = new ArrayList<>();
         wrappers.forEach(wrapper -> specimenUuids.add(wrapper.getUuidAndTitleCache().getUuid()));
-//        List<SpecimenOrObservationBase> specimens = CdmStore.getService(IOccurrenceService.class).load(specimenUuids, null);
-        Map<UUID, UuidAndTitleCache<FieldUnit>> specimenMap = new HashMap();
-
-        for (UUID specimenUuid: specimenUuids ){
-            try{
-                FieldUnitDTO fieldUnitDto = CdmStore.getService(IOccurrenceService.class).loadFieldUnitDTO(specimenUuid);
-                if (fieldUnitDto != null){
-                    UuidAndTitleCache<FieldUnit> fieldUnit = new UuidAndTitleCache(FieldUnit.class, fieldUnitDto.getUuid(), null, fieldUnitDto.getTitleCache());
+        // List<SpecimenOrObservationBase> specimens =
+        // CdmStore.getService(IOccurrenceService.class).load(specimenUuids,
+        // null);
+        Map<UUID, UuidAndTitleCache<FieldUnit>> specimenMap = new HashMap<>();
+
+        for (UUID specimenUuid : specimenUuids) {
+            try {
+                FieldUnitDTO fieldUnitDto = CdmStore.getService(IOccurrenceService.class)
+                        .loadFieldUnitDTO(specimenUuid);
+                if (fieldUnitDto != null) {
+                    UuidAndTitleCache<FieldUnit> fieldUnit = new UuidAndTitleCache<>(FieldUnit.class,
+                            fieldUnitDto.getUuid(), null, fieldUnitDto.getLabel());
                     specimenMap.put(specimenUuid, fieldUnit);
                 }
-            }catch(Exception e){
+            } catch (Exception e) {
                 e.printStackTrace();
             }
 
         }
-        for (SpecimenNodeWrapper wrapper: wrappers){
-            SpecimenRowWrapperDTO rowWrapper = CdmStore.getService(IDescriptiveDataSetService.class).createSpecimenRowWrapper(wrapper.getUuidAndTitleCache().getUuid(), wrapper.getTaxonNode().getUuid(), getDescriptiveDataSet().getUuid());
+        for (SpecimenNodeWrapper wrapper : wrappers) {
+            SpecimenRowWrapperDTO rowWrapper = CdmStore.getService(IDescriptiveDataSetService.class)
+                    .createSpecimenRowWrapper(wrapper.getUuidAndTitleCache().getUuid(),
+                            wrapper.getTaxonNode().getUuid(), getDescriptiveDataSet().getUuid(), PreferencesUtil.getGlobalLanguage());
             addSpecimenToAdd(rowWrapper);
-//            SpecimenRowWrapperDTO rowWrapper = new SpecimenRowWrapperDTO(wrapper.getUuidAndTitleCache(), wrapper.getType(), wrapper.getTaxonNode(), specimenMap.get(wrapper.getUuidAndTitleCache().getUuid()), null, null);
+            // SpecimenRowWrapperDTO rowWrapper = new
+            // SpecimenRowWrapperDTO(wrapper.getUuidAndTitleCache(),
+            // wrapper.getType(), wrapper.getTaxonNode(),
+            // specimenMap.get(wrapper.getUuidAndTitleCache().getUuid()), null,
+            // null);
             descriptions.add(rowWrapper);
         }
 
-
         setDirty();
     }
 
-    public void addSpecimensToDescriptiveDataSet(){
-        if (specimenToAdd == null || specimenToAdd.isEmpty()){
-            return;
+    public HashMap<UUID, DescriptionBase<?>> addSpecimensToDescriptiveDataSet() {
+        if (specimenToAdd == null || specimenToAdd.isEmpty()) {
+            return new HashMap<>();
         }
-        UpdateResult result = CdmStore.getService(IDescriptiveDataSetService.class).addRowWrapperToDataset(specimenToAdd, getDescriptiveDataSet().getUuid());
-        if(!result.getExceptions().isEmpty()){
+        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()
-                            .stream().map(ex->ex.toString())
-                            .collect(Collectors.joining("\n"))));
+                    String.format(Messages.CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_MESSAGE, result
+                            .getExceptions().stream().map(ex -> ex.toString()).collect(Collectors.joining("\n"))));
         }
         DescriptiveDataSet dataSet = (DescriptiveDataSet) result.getCdmEntity();
-        dataSet = this.getCdmEntitiySession().load(dataSet, true);
+        HashMap<UUID, DescriptionBase<?>> resultMap = new HashMap<>();
+        for (CdmBase updated : result.getUpdatedObjects()) {
+            if (updated instanceof SpecimenDescription) {
+                resultMap.put(updated.getUuid(), (DescriptionBase<?>) updated);
+            }
+
+        }
+        dataSet = this.getCdmEntitySession().load(dataSet, true);
         // update local dataset
-        this.setDescriptiveDataSet(dataSet);
+        DescriptiveDataSetBaseDto dto = DescriptiveDataSetBaseDto.fromDescriptiveDataSet(dataSet);
+        this.setDescriptiveDataSet(dto);
 
-        //these descriptions are already updated
-        for (SpecimenRowWrapperDTO row: specimenToAdd){
-            this.rowsToMerge.remove(row.getDescription().getDescription().getUuid());
+        // these descriptions are already updated
+        for (SpecimenRowWrapperDTO row : specimenToAdd) {
+            this.rowsToMerge.remove(row.getDescription().getDescriptionUuid());
         }
         specimenToAdd.clear();
-//        UUID monitorUuid =  CdmApplicationState.getLongRunningTasksService().addRowWrapperToDataset(specimenToAdd, getDescriptiveDataSet().getUuid());
-//        specimenToAdd = null;
-//        String jobLabel = "Add specimens to matrix";
-//        Job job = Job.create(jobLabel, (ICoreRunnable) monitor -> {
-//            SubMonitor subMonitor = SubMonitor.convert(monitor);
-//            subMonitor.beginTask(jobLabel, IProgressMonitor.UNKNOWN);
-//            IRemotingProgressMonitor remotingMonitor;
-//            try {
-//                remotingMonitor = CdmStore.getProgressMonitorClientManager()
-//                        .pollMonitor(jobLabel,
-//                                monitorUuid,
-//                                50,
-//                                null,
-//                                (List)null,
-//                                subMonitor);
-//                Object resultObject = remotingMonitor.getResult();
-//                if(resultObject instanceof Exception){
-//                    MessagingUtils.errorDialog("Adding specimens failed", this, "Adding specimens was not successfull", TaxeditorEditorPlugin.PLUGIN_ID, (Exception)resultObject, true, true);
-//                }
-//                else if(resultObject instanceof UpdateResult){
-//                    UpdateResult result = (UpdateResult)resultObject;
-//                    if(!result.getExceptions().isEmpty()){
-//                        MessagingUtils.warningDialog(Messages.CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_TITLE, this,
-//                                String.format(Messages.CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_MESSAGE, result.getExceptions()
-//                                        .stream().map(ex->ex.toString())
-//                                        .collect(Collectors.joining("\n"))));
-//                    }
-//                    DescriptiveDataSet dataSet = (DescriptiveDataSet) result.getCdmEntity();
-//                    dataSet = this.getCdmEntitiySession().load(dataSet, true);
-//                    // update local dataset
-//                    this.setDescriptiveDataSet(dataSet);
-//
-////                    this.loadDescriptions(getDescriptiveDataSet().getUuid(), false);
-//
-//
-//                }
-//            } catch (InterruptedException e) {
-//                return;
-//            }
-//            monitor.done();
-//        });
-//
-//        job.schedule();
+        return resultMap;
+
+    }
+
+    public void setSelectedObject(Object selectedObject) {
+
+        int rowIndex = ((IRowDataProvider<Object>) bodyDataProvider).indexOfRowObject(selectedObject);
+        int rowPosition = selectionLayer.getRowPositionByIndex(rowIndex);
+        natTable.doCommand(new SelectRowsCommand(natTable, 1, rowPosition, false, false));
+    }
+
+    public TreeList<Object> updateDescriptions(boolean treeView) {
+        SortedList<Object> sortedList = new SortedList<>(descriptions, new MatrixRowComparator());
+        // wrap the SortedList with the TreeList
+        treeFormat = new DescriptionTreeFormat(getDescriptiveDataSet());
+        TreeList<Object> treeList = new TreeList<Object>(sortedList, treeFormat, TreeList.NODES_START_COLLAPSED);
+        // wrap the SortedList with the TreeList
+        // treeFormat = new DescriptionTreeFormat(getDescriptiveDataSet());
+
+        /**
+         * data provider
+         */
+        SpecimenColumnPropertyAccessor columnPropertyAccessor = new SpecimenColumnPropertyAccessor(this);
+        bodyDataProvider = treeView ? new ListDataProvider<>(treeList, columnPropertyAccessor)
+                : new ListDataProvider<>(sortedList, columnPropertyAccessor);
+        return treeList;
+
+    }
+
+    @Override
+    public void dispose() {
+        super.dispose();
+        if (descriptions != null) {
+            descriptions.dispose();
+        }
+        descriptions = null;
+        this.natTable.dispose();
+        this.natTable = null;
+        categoricalFeatureToStateMap = null;
+        rowsToMerge.clear();
+        rowsToMerge = null;
+        indexToFeatureMap = null;
+        propertyToLabelMap = null;
+        specimenCache = null;
+        featureToHistogramMap = null;
+        bodyDataProvider = null;
+        freezeLayer = null;
+        features = null;
+        topMostLayer.dispose();
+        topMostLayer = null;
+        configRegistry = null;
+        bodyLayer.dispose();
+        bodyLayer = null;
+        toolbar.dispose();
+        toolbar = null;
+        treeFormat = null;
+        descriptionUuidsToDelete = null;
+        specimenToAdd = null;
+        mouseEventMatcher = null;
+        descriptionsToSave = null;
+        menuService = null;
+        sync = null;
+        part = null;
+
     }
 
 }
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixBottomToolbar.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixBottomToolbar.java
deleted file mode 100644 (file)
index 8963918..0000000
+++ /dev/null
@@ -1,345 +0,0 @@
-/**
-* Copyright (C) 2018 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-import java.util.UUID;
-import java.util.stream.Collectors;
-
-import org.eclipse.core.runtime.ICoreRunnable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubMonitor;
-import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-
-import eu.etaxonomy.cdm.api.application.CdmApplicationState;
-import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
-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.SpecimenRowWrapperDTO;
-import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
-import eu.etaxonomy.cdm.filter.TaxonNodeFilter;
-import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
-import eu.etaxonomy.cdm.model.location.NamedArea;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.ui.dialog.configurator.StructuredAggregationConfigurationWizard;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonSelectionDialog;
-
-/**
- * @author pplitzner
- * @since Jul 9, 2018
- */
-public class CharacterMatrixBottomToolbar extends Composite{
-
-    private CharacterMatrix matrix;
-
-    public CharacterMatrixBottomToolbar(CharacterMatrix matrix, int style) {
-        super(matrix, style);
-        this.matrix = matrix;
-
-        init();
-    }
-
-    private void init() {
-
-        setLayout(new RowLayout());
-        GridDataFactory.fillDefaults().grab(true, false).applyTo(this);
-
-//        /**
-//         * Add description button
-//         */
-//        Button btnAddDescription = new Button(this, SWT.PUSH);
-//        btnAddDescription.setImage(ImageResources.getImage(ImageResources.ADD_ICON_GREEN));
-//        btnAddDescription.addSelectionListener(new SelectionAdapter() {
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                if(StoreUtil.promptCheckIsDirty(matrix.getPart())){
-//                    return;
-//                }
-//                SpecimenSelectionDialog dialog = new SpecimenSelectionDialog(matrix.getShell(), matrix, null);
-//                if(dialog.open()==Window.OK){
-//                    Collection<SpecimenNodeWrapper> wrappers = dialog.getSpecimen();
-//                    if(wrappers.stream().anyMatch(wrapper->wrapper.getTaxonDescriptionUuid()==null)
-//                            && !MessagingUtils.confirmDialog(
-//                                    "Create Taxon Association",
-//                                    "Some specimens are not linked with taxon via IndividualsAssociation yet.\n"
-//                                    + "Do you want to create this association?")){
-//                        return;
-//                    }
-//                    addRowsToMatrix(wrappers, matrix.getDescriptiveDataSet().getUuid());
-//                    wrappers.forEach(wrapper->matrix.getSpecimenCache().remove(wrapper));
-//                }
-//            }
-//        });
-        /**
-         * Remove description button
-         */
-//        Button btnRemoveDescription = new Button(this, SWT.PUSH);
-//        btnRemoveDescription.setImage(ImageResources.getImage(ImageResources.ACTIVE_DELETE_ICON));
-//        btnRemoveDescription.addSelectionListener(new SelectionAdapter() {
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                if(StoreUtil.promptCheckIsDirty(matrix.getPart())){
-//                    return;
-//                }
-//                if(!MessagingUtils.confirmDialog(Messages.CharacterMatrixBottomToolbar_CONFIRM_DELETE_TITLE, Messages.CharacterMatrixBottomToolbar_CONFIRM_DELETE_MESSAGE)){
-//                    return;
-//                }
-//                int[] fullySelectedRowPositions = matrix.getBodyLayer().getSelectionLayer().getFullySelectedRowPositions();
-//                List<RowWrapperDTO> toRemove = new ArrayList<>();
-//                for (int i : fullySelectedRowPositions) {
-//                    Object rowObject = matrix.getBodyDataProvider().getRowObject(i);
-//                    if(rowObject instanceof RowWrapperDTO){
-//                        toRemove.add((RowWrapperDTO) rowObject);
-//                    }
-//                }
-//                toRemove.forEach(rowToRemove -> {
-//                    matrix.putDescriptionToDelete(rowToRemove.getDescription().getUuid());
-//                    matrix.getDescriptions().remove(rowToRemove);
-//                    matrix.setDirty();
-////                    CdmStore.getService(IDescriptiveDataSetService.class).removeDescription(
-////                            rowToRemove.getDescription().getUuid(), matrix.getDescriptiveDataSet().getUuid());
-//                });
-//            }
-//        });
-        /**
-         * Aggregate button
-         */
-        Button btnAggregate = new Button(this, SWT.PUSH);
-        btnAggregate.setText(Messages.CharacterMatrixBottomToolbar_AGGREGATE);
-        btnAggregate.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                if(StoreUtil.promptCheckIsDirty(matrix.getPart())){
-                    return;
-                }
-                aggregatDescriptiveDataSet(matrix.getDescriptiveDataSet().getUuid());
-            }
-        });
-        /**
-         * Key generation button
-         */
-        Button btnGenerateKey = new Button(this, SWT.PUSH);
-        btnGenerateKey.setText("Generate Polytomous Key");
-        btnGenerateKey.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                if(StoreUtil.promptCheckIsDirty(matrix.getPart())){
-                    return;
-                }
-                Set<TaxonNodeDto> nodeDtos = matrix.getDescriptiveDataSet().getTaxonSubtreeFilter().stream()
-                        .map(node->new TaxonNodeDto(node))
-                        .collect(Collectors.toSet());
-                TaxonNodeDto parentDto = CdmStore.getService(ITaxonNodeService.class).findCommonParentDto(nodeDtos);
-                UUID taxonUuid = parentDto.getTaxonUuid();
-                int response = MessagingUtils.confirmDialog(
-                        "Choose taxonomic scope",
-                        String.format("The common parent taxon of this data set 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");
-                if(response==2){
-                    return;
-                }
-                else if(response==1){
-                    Taxon taxon = TaxonSelectionDialog.selectTaxon(getShell(), null);
-                    if(taxon==null){
-                        return;
-                    }
-                    taxonUuid = taxon.getUuid();
-                }
-                generateKey(matrix.getDescriptiveDataSet().getUuid(), taxonUuid);
-            }
-
-        });
-    }
-
-    private void aggregatDescriptiveDataSet(UUID descriptiveDataSetUuid){
-
-        StructuredDescriptionAggregationConfiguration config = StructuredDescriptionAggregationConfiguration.NewInstance(
-                null, null);
-        IStructuredSelection sel = matrix.getSelection();
-        Object o = sel.getFirstElement();
-        TaxonNodeFilter filter = TaxonNodeFilter.NewRankInstance(matrix.getDescriptiveDataSet().getMinRank(),
-                matrix.getDescriptiveDataSet().getMaxRank());
-        for (NamedArea namedArea : matrix.getDescriptiveDataSet().getGeoFilter()) {
-            filter = filter.orArea(namedArea.getUuid());
-        }
-//        for (TaxonNode taxonNode : matrix.getDescriptiveDataSet().getTaxonSubtreeFilter()) {
-//            filter = filter.orSubtree(taxonNode);
-//        }
-
-        if (o instanceof TaxonNodeDto){
-            filter = filter.orSubtree(CdmStore.getService(ITaxonNodeService.class).load(((TaxonNodeDto)o).getUuid()));
-        }else{
-            for (TaxonNode taxonNode : matrix.getDescriptiveDataSet().getTaxonSubtreeFilter()) {
-                filter = filter.orSubtree(taxonNode);
-            }
-        }
-        config.setTaxonNodeFilter(filter);
-
-        config.setDatasetUuid(matrix.getDescriptiveDataSet().getUuid());
-        config.setAggregateToHigherRanks(true);
-        config.setAggregationMode(AggregationMode.byAreasAndRanks());
-        config.setAdaptBatchSize(false);
-        TaxonNodeDto node = null;
-        if (o instanceof TaxonNodeDto){
-            node =(TaxonNodeDto)o;
-        }
-        StructuredAggregationConfigurationWizard aggregationWizard = new StructuredAggregationConfigurationWizard(config, this.matrix.getDescriptiveDataSet(), null);
-        WizardDialog dialog = new WizardDialog(StoreUtil.getShell(),
-                aggregationWizard);
-
-        int open = dialog.open();
-        if (open != Window.OK){
-            return;
-        }
-        UUID monitorUuid =  CdmApplicationState.getLongRunningTasksService().invoke(config);
-
-        String jobLabel = "Aggregate Descriptive Data Set";
-        Job job = Job.create(jobLabel, (ICoreRunnable) monitor -> {
-            SubMonitor subMonitor = SubMonitor.convert(monitor);
-            subMonitor.beginTask(jobLabel, IProgressMonitor.UNKNOWN);
-            IRemotingProgressMonitor remotingMonitor;
-            try {
-                remotingMonitor = CdmStore.getProgressMonitorClientManager()
-                        .pollMonitor(jobLabel,
-                                monitorUuid,
-                                50,
-                                null,
-                                (List)null,
-                                subMonitor);
-                Object resultObject = remotingMonitor.getResult();
-                if(resultObject instanceof Exception){
-                    MessagingUtils.errorDialog("Aggregation failed", this, "Aggregation was not successfull", TaxeditorEditorPlugin.PLUGIN_ID, (Exception)resultObject, true, true);
-                }
-                else if(resultObject instanceof UpdateResult){
-                    DescriptiveDataSet dataSet = (DescriptiveDataSet) ((UpdateResult) resultObject).getCdmEntity();
-                    dataSet = matrix.getCdmEntitiySession().load(dataSet, true);
-                    // update local dataset
-                    matrix.setDescriptiveDataSet(dataSet);
-                    matrix.loadDescriptions(false, false);
-                }
-            } catch (InterruptedException e) {
-                return;
-            }
-            monitor.done();
-        });
-        job.addJobChangeListener(new JobChangeAdapter(){
-            @Override
-            public void done(IJobChangeEvent event) {
-                CharacterMatrixBottomToolbar.this.getDisplay().asyncExec(()->{
-                    matrix.redraw();
-                });
-            }
-        });
-        job.schedule();
-    }
-
-    private void addRowsToMatrix(Collection<SpecimenRowWrapperDTO> wrappers, UUID descriptiveDataSetUuid){
-        UUID monitorUuid =  CdmApplicationState.getLongRunningTasksService().addRowWrapperToDataset(wrappers, descriptiveDataSetUuid);
-
-        String jobLabel = "Add specimens to matrix";
-        Job job = Job.create(jobLabel, (ICoreRunnable) monitor -> {
-            SubMonitor subMonitor = SubMonitor.convert(monitor);
-            subMonitor.beginTask(jobLabel, IProgressMonitor.UNKNOWN);
-            IRemotingProgressMonitor remotingMonitor;
-            try {
-                remotingMonitor = CdmStore.getProgressMonitorClientManager()
-                        .pollMonitor(jobLabel,
-                                monitorUuid,
-                                50,
-                                null,
-                                (List)null,
-                                subMonitor);
-                Object resultObject = remotingMonitor.getResult();
-                if(resultObject instanceof Exception){
-                    MessagingUtils.errorDialog("Adding specimens failed", this, "Adding specimens was not successfull", TaxeditorEditorPlugin.PLUGIN_ID, (Exception)resultObject, true, true);
-                }
-                else if(resultObject instanceof UpdateResult){
-                    UpdateResult result = (UpdateResult)resultObject;
-                    if(!result.getExceptions().isEmpty()){
-                        MessagingUtils.warningDialog(Messages.CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_TITLE, this,
-                                String.format(Messages.CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_MESSAGE, result.getExceptions()
-                                        .stream().map(ex->ex.toString())
-                                        .collect(Collectors.joining("\n"))));
-                    }
-                    DescriptiveDataSet dataSet = (DescriptiveDataSet) result.getCdmEntity();
-                    dataSet = matrix.getCdmEntitiySession().load(dataSet, true);
-                    // update local dataset
-                    matrix.setDescriptiveDataSet(dataSet);
-                    matrix.loadDescriptions(false, false);
-                }
-            } catch (InterruptedException e) {
-                return;
-            }
-            monitor.done();
-        });
-        job.addJobChangeListener(new JobChangeAdapter(){
-            @Override
-            public void done(IJobChangeEvent event) {
-                CharacterMatrixBottomToolbar.this.getDisplay().asyncExec(()->{
-                    matrix.redraw();
-                });
-            }
-        });
-        job.schedule();
-    }
-
-    private void generateKey(UUID datasetUuid, UUID taxonUuid) {
-
-        UUID monitorUuid =  CdmApplicationState.getLongRunningTasksService().generatePolytomousKey(datasetUuid, taxonUuid);
-
-        String jobLabel = "Generate polytomous key";
-        Job job = Job.create(jobLabel, (ICoreRunnable) monitor -> {
-            SubMonitor subMonitor = SubMonitor.convert(monitor);
-            subMonitor.beginTask(jobLabel, IProgressMonitor.UNKNOWN);
-            IRemotingProgressMonitor remotingMonitor;
-            try {
-                remotingMonitor = CdmStore.getProgressMonitorClientManager()
-                        .pollMonitor(jobLabel,
-                                monitorUuid,
-                                50,
-                                null,
-                                (List)null,
-                                subMonitor);
-                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);
-                }
-            } catch (InterruptedException e) {
-                return;
-            }
-            monitor.done();
-        });
-        job.schedule();
-
-    }
-
-}
index 7d586bbadf9c7897e1f130080b2f1e6a8195a7fa..d898f0eb606511a42fc080443bdcabab55a646b2 100644 (file)
@@ -14,17 +14,19 @@ import java.util.Set;
 import org.eclipse.nebula.widgets.nattable.layer.LabelStack;
 import org.eclipse.nebula.widgets.nattable.layer.cell.IConfigLabelAccumulator;
 
-import eu.etaxonomy.cdm.api.service.dto.DescriptionBaseDto;
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
 import eu.etaxonomy.cdm.api.service.dto.SpecimenRowWrapperDTO;
 import eu.etaxonomy.cdm.api.service.dto.TaxonRowWrapperDTO;
-import eu.etaxonomy.cdm.model.description.CategoricalData;
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.DescriptionType;
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.QuantitativeData;
-import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.persistence.dto.CategoricalDataDto;
+import eu.etaxonomy.cdm.persistence.dto.DescriptionBaseDto;
+import eu.etaxonomy.cdm.persistence.dto.DescriptionElementDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
+import eu.etaxonomy.cdm.persistence.dto.QuantitativeDataDto;
+import eu.etaxonomy.cdm.persistence.dto.StateDataDto;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
 
 /**
  * @author pplitzner
@@ -37,8 +39,10 @@ public class CharacterMatrixConfigLabelAccumulator implements IConfigLabelAccumu
     public static final String DEFAULT_OVERRIDDEN = "DEFAULT_OVERRIDDEN";
     public static final String QUANTITATIVE = "QUANTITATIVE";
     public static final String CATEGORICAL = "CATEGORICAL";
-    public static final String CATEGORICAL_EDITABLE = CATEGORICAL+"_EDITABLE";
-    public static final String QUANTITATIVE_EDITABLE = QUANTITATIVE+"_EDITABLE";
+    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;
 
@@ -50,134 +54,200 @@ 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){
+        if (rowObject instanceof TaxonNodeDto) {
             configLabels.addLabel(CharacterMatrix.LABEL_TAXON_ROW);
-        }
-        else if(rowObject instanceof TaxonRowWrapperDTO){
+        } else if (rowObject instanceof TaxonRowWrapperDTO) {
             TaxonRowWrapperDTO taxonRowWrapper = (TaxonRowWrapperDTO) rowObject;
-            if(MatrixUtility.isAggregatedTaxonDescription(taxonRowWrapper)){
+            if (MatrixUtility.isAggregatedTaxonDescription(taxonRowWrapper)) {
                 configLabels.addLabel(CharacterMatrix.LABEL_TAXON_AGGREGATED_DESCRIPTION);
                 isEditable = false;
-                if(columnPosition==0){
+                if (columnPosition == 0) {
                     configLabels.addLabel(CharacterMatrix.LABEL_TAXON_AGGREGATED_DESCRIPTION_ICON);
                 }
-            }
-            else if(MatrixUtility.isDefaultTaxonDescription(taxonRowWrapper)){
+            } else if (MatrixUtility.isDefaultTaxonDescription(taxonRowWrapper)) {
                 configLabels.addLabel(CharacterMatrix.LABEL_TAXON_DEFAULT_DESCRIPTION);
-                if(columnPosition==0){
+                if (columnPosition == 0) {
                     configLabels.addLabel(CharacterMatrix.LABEL_TAXON_DEFAULT_DESCRIPTION_ICON);
                 }
-            }
-            else if(MatrixUtility.isLiteratureTaxonDescription(taxonRowWrapper)){
+            } else if (MatrixUtility.isLiteratureTaxonDescription(taxonRowWrapper)) {
                 configLabels.addLabel(CharacterMatrix.LABEL_TAXON_LITERATURE_DESCRIPTION);
-                if(columnPosition==0){
+                if (columnPosition == 0) {
                     configLabels.addLabel(CharacterMatrix.LABEL_TAXON_LITERATURE_DESCRIPTION_ICON);
                 }
                 // check for existing default values
-                if(columnPosition>=CharacterMatrix.LEADING_COLUMN_COUNT){
-                    Feature feature = matrix.getFeatures().get(columnPosition-CharacterMatrix.LEADING_COLUMN_COUNT);
-                    if(hasDefaultValue(feature, taxonRowWrapper)){
+                if (columnPosition >= CharacterMatrix.LEADING_COLUMN_COUNT) {
+                    FeatureDto feature = matrix.getFeatures()
+                            .get(columnPosition - CharacterMatrix.LEADING_COLUMN_COUNT);
+                    if (hasDefaultValue(feature, taxonRowWrapper)) {
                         configLabels.addLabel(HAS_DEFAULT);
-                        if(hasDefaultOverriddenValue(feature, taxonRowWrapper)){
+                        if (hasDefaultOverriddenValue(feature, taxonRowWrapper)) {
                             configLabels.removeLabel(HAS_DEFAULT);
                             configLabels.addLabel(DEFAULT_OVERRIDDEN);
                         }
                     }
                 }
             }
-            //check for supplemental data
-            if(!taxonRowWrapper.getDescription().getDescription().getSources().isEmpty() && columnPosition==0){
-                configLabels.addLabel(CharacterMatrix.LABEL_DESCRIPTION_HAS_SUPPLEMENTAL_DATA);
-            }
+            // check for supplemental data TODO: add supplemental data to DTO
+            // if(!taxonRowWrapper.getDescription().getSources().isEmpty() &&
+            // columnPosition==0){
+            // configLabels.addLabel(CharacterMatrix.LABEL_DESCRIPTION_HAS_SUPPLEMENTAL_DATA);
+            // }
             configLabels.addLabel(CharacterMatrix.LABEL_TAXON_DESCRIPTION);
         }
 
-        if(columnPosition==0){
+        if (columnPosition == 0) {
             configLabels.addLabel(CharacterMatrix.TAXON_COLUMN);
-        }
-        else if(columnPosition==1){
+        } else if (columnPosition == 1) {
             configLabels.addLabel(CharacterMatrix.COLLECTOR_COLUMN);
-        }
-        else if(columnPosition==2){
+        } else if (columnPosition == 2) {
             configLabels.addLabel(CharacterMatrix.IDENTIFIER_COLUMN);
-        }
-        else if(columnPosition==3){
+        } else if (columnPosition == 3) {
             configLabels.addLabel(CharacterMatrix.COUNTRY_COLUMN);
-        }
-        else{
-            Feature feature = matrix.getFeatures().get(columnPosition-CharacterMatrix.LEADING_COLUMN_COUNT);
+        } else {
+            FeatureDto feature = matrix.getFeatures().get(columnPosition - CharacterMatrix.LEADING_COLUMN_COUNT);
             configLabels.addLabel(MatrixUtility.getProperty(feature));
             // check for default values
-            if(rowObject instanceof SpecimenRowWrapperDTO){
-                SpecimenRowWrapperDTO specimenRowWrapper = (SpecimenRowWrapperDTO)rowObject;
-                if(hasDefaultValue(feature, specimenRowWrapper)){
+            if (rowObject instanceof SpecimenRowWrapperDTO) {
+                SpecimenRowWrapperDTO specimenRowWrapper = (SpecimenRowWrapperDTO) rowObject;
+                if (hasDefaultValue(feature, specimenRowWrapper)) {
                     configLabels.addLabel(HAS_DEFAULT);
-                    if(hasDefaultOverriddenValue(feature, specimenRowWrapper)){
+                    if (hasDefaultOverriddenValue(feature, specimenRowWrapper)) {
                         configLabels.removeLabel(HAS_DEFAULT);
                         configLabels.addLabel(DEFAULT_OVERRIDDEN);
                     }
                 }
+
+            }
+            if (rowObject instanceof RowWrapperDTO) {
+                if (hasMoreThanOneValue(feature, (RowWrapperDTO) rowObject)) {
+                    isEditable = false;
+                }
+                if (!isApplicableCheck(feature, (RowWrapperDTO) rowObject)) {
+                    isApplicable = false;
+                }
             }
 
-            if(feature.isSupportsCategoricalData()){
+            if (feature.isSupportsCategoricalData()) {
+
                 configLabels.addLabel(CATEGORICAL);
-                if(isEditable){
+                if (isEditable && isApplicable) {
                     configLabels.addLabel(CATEGORICAL_EDITABLE);
+                } else if (!isEditable && isApplicable) {
+                    configLabels.addLabel(NOT_EDITABLE);
                 }
-            }
-            else if(feature.isSupportsQuantitativeData()){
+
+            } else if (feature.isSupportsQuantitativeData()) {
                 configLabels.addLabel(QUANTITATIVE);
-                if(isEditable){
+                if (isEditable && isApplicable) {
                     configLabels.addLabel(QUANTITATIVE_EDITABLE);
+                } else if (!isEditable && isApplicable) {
+                    configLabels.addLabel(NOT_EDITABLE);
                 }
             }
+            if (!isApplicable) {
+                configLabels.addLabel(NOT_APPLICABLE);
+
+            }
         }
     }
 
-    private boolean hasDefaultOverriddenValue(Feature feature, RowWrapperDTO<?> rowWrapper) {
-        DescriptionElementBase dataValueForFeature = rowWrapper.getDataValueForFeature(feature);
-        if(dataValueForFeature!=null){
-            if(dataValueForFeature instanceof CategoricalData){
-                return !((CategoricalData) dataValueForFeature).getStatesOnly().isEmpty();
-            }
-            else if(dataValueForFeature instanceof QuantitativeData){
-                return !((QuantitativeData) dataValueForFeature).getStatisticalValues().isEmpty();
+    private boolean hasDefaultOverriddenValue(FeatureDto feature, RowWrapperDTO<?> rowWrapper) {
+        Set<DescriptionElementDto> dataValueForFeature = rowWrapper.getDataValueForFeature(feature.getUuid());
+        if (dataValueForFeature != null) {
+            for (DescriptionElementDto dto : dataValueForFeature) {
+                if (dto instanceof CategoricalDataDto && !((CategoricalDataDto) dto).getStates().isEmpty()) {
+                    return true;
+                } else if (dto instanceof QuantitativeDataDto && !((QuantitativeDataDto) dto).getValues().isEmpty()) {
+                    return true;
+                }
             }
         }
         return false;
     }
 
-    private boolean hasDefaultValue(Feature feature, RowWrapperDTO<?> rowWrapperDTO) {
-        if(rowWrapperDTO instanceof SpecimenRowWrapperDTO
-                && ((SpecimenRowWrapperDTO) rowWrapperDTO).getDefaultDescription()!=null){
-            TaxonDescription taxDescription = (TaxonDescription)((SpecimenRowWrapperDTO)rowWrapperDTO).getDefaultDescription().getDescription().getDescription();
+    private boolean hasDefaultValue(FeatureDto feature, RowWrapperDTO<?> rowWrapperDTO) {
+        if (rowWrapperDTO instanceof SpecimenRowWrapperDTO
+                && ((SpecimenRowWrapperDTO) rowWrapperDTO).getDefaultDescription() != null) {
+            DescriptionBaseDto taxDescription = ((SpecimenRowWrapperDTO) rowWrapperDTO).getDefaultDescription()
+                    .getDescription();
             return hasDefaultValue(feature, taxDescription);
-        }
-        else if(rowWrapperDTO instanceof TaxonRowWrapperDTO){
-            TaxonRowWrapperDTO taxonRowWrapper = (TaxonRowWrapperDTO)rowWrapperDTO;
+        } else if (rowWrapperDTO instanceof TaxonRowWrapperDTO) {
+            TaxonRowWrapperDTO taxonRowWrapper = (TaxonRowWrapperDTO) rowWrapperDTO;
             Set<DescriptionBaseDto> descriptions = taxonRowWrapper.getTaxonDescriptions();
             for (DescriptionBaseDto taxonDescription : descriptions) {
-                if(matrix.getDescriptiveDataSet().getDescriptions().contains(taxonDescription)
-                        && taxonDescription.getDescription().getTypes().contains(DescriptionType.DEFAULT_VALUES_FOR_AGGREGATION)){
-                    return hasDefaultValue(feature, (TaxonDescription)taxonDescription.getDescription());
-                }
+                // if(matrix.getDescriptiveDataSet().getDescriptions().contains(taxonDescription)
+                // &&
+                // taxonDescription.getTypes().contains(DescriptionType.DEFAULT_VALUES_FOR_AGGREGATION)){
+                // return hasDefaultValue(feature, taxonDescription);
+                // }
+                // TODO: correct implementation
+                return false;
             }
         }
         return false;
     }
 
-    private boolean hasDefaultValue(Feature feature, TaxonDescription defaultDescription) {
-        if(defaultDescription!=null){
-            Optional<DescriptionElementBase> descriptionElement = defaultDescription.getElements().stream()
-                    .filter(element->element.getFeature().equals(feature))
-                    .findAny();
-            if(descriptionElement.isPresent() && descriptionElement.get() instanceof CategoricalData){
-                return !((CategoricalData) descriptionElement.get()).getStatesOnly().isEmpty();
+    private boolean hasMoreThanOneValue(FeatureDto feature, RowWrapperDTO<?> rowWrapperDTO) {
+
+        Set<DescriptionElementDto> elements = rowWrapperDTO.getDataValueForFeature(feature.getUuid());
+        return elements != null && elements.size() > 1;
+
+    }
+
+    private boolean isApplicableCheck(FeatureDto feature, RowWrapperDTO<?> rowWrapperDTO) {
+        TermTreeDto tree = (TermTreeDto) 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());
+                            }
+                        }
+                    }
+                }
             }
-            else if(descriptionElement.isPresent() && descriptionElement.get() instanceof QuantitativeData){
-                return !((QuantitativeData) descriptionElement.get()).getStatisticalValues().isEmpty();
+        }
+        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) {
+        if (defaultDescription != null) {
+            Optional<DescriptionElementDto> descriptionElement = defaultDescription.getElements().stream()
+                    .filter(element -> element.getFeatureUuid().equals(feature.getUuid())).findAny();
+            if (descriptionElement.isPresent() && descriptionElement.get() instanceof CategoricalDataDto) {
+                return !((CategoricalDataDto) descriptionElement.get()).getStates().isEmpty();
+            } else if (descriptionElement.isPresent() && descriptionElement.get() instanceof QuantitativeDataDto) {
+                return !((QuantitativeDataDto) descriptionElement.get()).getValues().isEmpty();
             }
 
         }
index 5c2ef8e7862223a08a8b817a56f3a579444796eb..36425100620bd24de09412f4e41c26e06ab06f65 100644 (file)
@@ -16,7 +16,9 @@ import org.eclipse.nebula.widgets.nattable.painter.cell.TextPainter;
 import org.eclipse.nebula.widgets.nattable.painter.cell.decorator.CellPainterDecorator;
 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;
 
@@ -62,17 +64,43 @@ public final class CharacterMatrixLabelStyleConfiguration extends AbstractRegist
         Style hasDefaultValueStyle = new Style();
         hasDefaultValueStyle.setAttributeValue(
                 CellStyleAttributes.BACKGROUND_COLOR,
-                GUIHelper.COLOR_GRAY);
+                GUIHelper.COLOR_WIDGET_LIGHT_SHADOW);
         configRegistry.registerConfigAttribute(
                 CellConfigAttributes.CELL_STYLE,
                 hasDefaultValueStyle,
                 DisplayMode.NORMAL,
                 CharacterMatrixConfigLabelAccumulator.HAS_DEFAULT);
+        
+        Style notEditableValueStyle = new Style();
+        notEditableValueStyle.setAttributeValue(
+                CellStyleAttributes.BACKGROUND_COLOR,
+                GUIHelper.COLOR_GRAY);
+        configRegistry.registerConfigAttribute(
+                CellConfigAttributes.CELL_STYLE,
+                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(
                 CellStyleAttributes.BACKGROUND_COLOR,
-                GUIHelper.COLOR_RED);
+                GUIHelper.getColor(255, 128, 0));
         configRegistry.registerConfigAttribute(
                 CellConfigAttributes.CELL_STYLE,
                 defaultOverriddenStyle,
@@ -90,6 +118,31 @@ public final class CharacterMatrixLabelStyleConfiguration extends AbstractRegist
                 DisplayMode.NORMAL,
                 CharacterMatrix.LABEL_DESCRIPTION_HAS_SUPPLEMENTAL_DATA);
 
+        Style style = new Style();
+
+        style.setAttributeValue(CellStyleAttributes.HORIZONTAL_ALIGNMENT, HorizontalAlignmentEnum.LEFT);
+        configRegistry.registerConfigAttribute(
+                CellConfigAttributes.CELL_STYLE,
+                style,
+                DisplayMode.NORMAL,
+                CharacterMatrix.IDENTIFIER_COLUMN);
+        configRegistry.registerConfigAttribute(
+                CellConfigAttributes.CELL_STYLE,
+                style,
+                DisplayMode.NORMAL,
+                CharacterMatrix.COLLECTOR_COLUMN);
+        configRegistry.registerConfigAttribute(
+                CellConfigAttributes.CELL_STYLE,
+                style,
+                DisplayMode.NORMAL,
+                CharacterMatrix.COUNTRY_COLUMN);
+        configRegistry.registerConfigAttribute(
+                CellConfigAttributes.CELL_STYLE,
+                style,
+                DisplayMode.NORMAL,
+                CharacterMatrix.TAXON_COLUMN);
+
+
         /*
          * cell painter for description icons
          */
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixListDataProvider.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixListDataProvider.java
new file mode 100644 (file)
index 0000000..b69a148
--- /dev/null
@@ -0,0 +1,29 @@
+/**
+* Copyright (C) 2023 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix;
+
+import java.util.List;
+
+import org.eclipse.nebula.widgets.nattable.data.IColumnAccessor;
+import org.eclipse.nebula.widgets.nattable.data.ListDataProvider;
+
+/**
+ * @author katjaluther
+ * @since 16.08.2023
+ */
+public class CharacterMatrixListDataProvider<T> extends ListDataProvider<T> {
+
+    public CharacterMatrixListDataProvider(List<T> list, IColumnAccessor<T> columnAccessor) {
+       super(list, columnAccessor);
+    }
+    
+    public IColumnAccessor<T> getColumnAccessor() {
+        return this.columnAccessor;
+    }
+}
index b9834db79754cd1d477f106485b6c0755b2200c1..e8b87245a02ff977f7355fb1a48d761293af4b21 100644 (file)
@@ -8,12 +8,14 @@
  */
 package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.UUID;
 import java.util.stream.Collectors;
 
@@ -37,14 +39,11 @@ import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.IDescriptionService;
 import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.config.RemoveDescriptionsFromDescriptiveDataSetConfigurator;
-import eu.etaxonomy.cdm.api.service.dto.DescriptionBaseDto;
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
 import eu.etaxonomy.cdm.api.service.dto.SpecimenRowWrapperDTO;
 import eu.etaxonomy.cdm.model.common.CdmBase;
@@ -52,7 +51,12 @@ import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.cdm.persistence.dto.DescriptionBaseDto;
+import eu.etaxonomy.cdm.persistence.dto.DescriptionElementDto;
+import eu.etaxonomy.cdm.persistence.dto.DescriptiveDataSetBaseDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.MergeResult;
+import eu.etaxonomy.taxeditor.editor.ICharacterMatrix;
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
@@ -67,15 +71,15 @@ import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
 
 /**
  * Character matrix editor for editing specimen/taxon descriptions in a table
+ * 
  * @author pplitzner
  * @since Nov 26, 2017
- *
  */
-public class CharacterMatrixPart implements IE4SavablePart, IConversationEnabled, IDirtyMarkable,
-ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetails{
+public class CharacterMatrixPart
+        implements IE4SavablePart, IDirtyMarkable, ICdmEntitySessionEnabled<DescriptiveDataSet>,
+        IPartContentHasSupplementalData, IPartContentHasDetails, ICharacterMatrix {
 
-    private static final List<String> WS_PROPERTY_PATH = Arrays.asList(new String[] {
-            "descriptions", //$NON-NLS-1$
+    private static final List<String> WS_PROPERTY_PATH = Arrays.asList(new String[] { "descriptions", //$NON-NLS-1$
             "descriptions.describedSpecimenOrObservation", //$NON-NLS-1$
             "descriptions.describedSpecimenOrObservation.gatheringEvent", //$NON-NLS-1$
             "descriptions.describedSpecimenOrObservation.gatheringEvent.actor", //$NON-NLS-1$
@@ -98,9 +102,7 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
             "maxRank", //$NON-NLS-1$
     });
 
-    private DescriptiveDataSet descriptiveDataSet;
-
-    private ConversationHolder conversation;
+    private DescriptiveDataSetBaseDto descriptiveDataSet;
 
     private ICdmEntitySession cdmEntitySession;
 
@@ -124,14 +126,10 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
 
     @PostConstruct
     public void create(Composite parent, IEclipseContext context) {
-        if(CdmStore.isActive() && conversation==null){
-            conversation = CdmStore.createConversation();
-        }
-        if(cdmEntitySession == null){
+        if (cdmEntitySession == null) {
             cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
             cdmEntitySession.bind();
-        }
-        else{
+        } else {
             return;
         }
         stackLayout = new StackLayout();
@@ -144,29 +142,36 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
     }
 
     public void init(UUID descriptiveDataSetUuid, boolean treeView) {
-        this.descriptiveDataSet = CdmStore.getService(IDescriptiveDataSetService.class).load(descriptiveDataSetUuid, WS_PROPERTY_PATH);
-        if(descriptiveDataSet!=null){
-            if(descriptiveDataSet.getDescriptiveSystem()==null
-                    || descriptiveDataSet.getDescriptiveSystem().getTermType()==null
-                    || !descriptiveDataSet.getDescriptiveSystem().getTermType().equals(TermType.Character)){
-                MessagingUtils.informationDialog(Messages.CharacterMatrixPart_COULD_NOT_OPEN, Messages.CharacterMatrixPart_COULD_NOT_OPEN_MESSAGE);
+        // this.descriptiveDataSet =
+        // CdmStore.getService(IDescriptiveDataSetService.class).load(descriptiveDataSetUuid,
+        // WS_PROPERTY_PATH);
+        this.descriptiveDataSet = CdmStore.getService(IDescriptiveDataSetService.class)
+                .getDescriptiveDataSetDtoByUuid(descriptiveDataSetUuid);
+        if (descriptiveDataSet != null) {
+            if (descriptiveDataSet.getDescriptiveSystem() == null
+                    || descriptiveDataSet.getDescriptiveSystem().getTermType() == null
+                    || !descriptiveDataSet.getDescriptiveSystem().getTermType().equals(TermType.Character)) {
+                MessagingUtils.informationDialog(Messages.CharacterMatrixPart_COULD_NOT_OPEN,
+                        Messages.CharacterMatrixPart_COULD_NOT_OPEN_MESSAGE);
                 loadingFailed();
                 return;
             }
             try {
                 matrix.initDescriptiveDataSet();
             } catch (IllegalArgumentException e) {
-                MessagingUtils.errorDialog("Error during initilization", this, "Could not load matrix", TaxeditorEditorPlugin.PLUGIN_ID, e, false);
+                MessagingUtils.errorDialog("Error during initilization", this, "Could not load matrix",
+                        TaxeditorEditorPlugin.PLUGIN_ID, e, false);
                 loadingFailed();
                 return;
             }
             matrix.createTable(treeView, true, true);
-            thisPart.setLabel(descriptiveDataSet.getLabel());
-            matrix.loadDescriptions( true, true);
+            thisPart.setLabel(descriptiveDataSet.getTitleCache());
+            matrix.loadDescriptions(true, true);
+
         }
     }
 
-    public IStructuredSelection getSelection(){
+    public IStructuredSelection getSelection() {
         return matrix.getSelection();
     }
 
@@ -174,11 +179,11 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
         this.dirty.setDirty(true);
     }
 
-    public DescriptiveDataSet getDescriptiveDataSet() {
+    public DescriptiveDataSetBaseDto getDescriptiveDataSet() {
         return descriptiveDataSet;
     }
 
-    public void setDescriptiveDataSet(DescriptiveDataSet dataSet) {
+    public void setDescriptiveDataSet(DescriptiveDataSetBaseDto dataSet) {
         this.descriptiveDataSet = dataSet;
     }
 
@@ -198,41 +203,68 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
     @Override
     public void save(IProgressMonitor monitor) {
 
-
-        matrix.addSpecimensToDescriptiveDataSet();
-        //newly added descriptions should not be saved again.
-//        descriptions.removeAll(matrix.getRowsToSave().values());
+        HashMap<UUID, DescriptionBase<?>> descriptionResults = matrix.addSpecimensToDescriptiveDataSet();
+        // newly added descriptions should not be saved again.
+        // descriptions.removeAll(matrix.getRowsToSave().values());
         // save edited descriptions
         List<DescriptionBaseDto> descriptionsToMerge = matrix.getRowsToMerge().values().stream()
-                .map(row->row.getDescription())
-                .collect(Collectors.toList());
+                .map(row -> row.getDescription()).collect(Collectors.toList());
 
-        if (matrix.getDescriptionsToDelete() != null && !matrix.getDescriptionsToDelete().isEmpty()){
+        if (matrix.getDescriptionsToDelete() != null && !matrix.getDescriptionsToDelete().isEmpty()) {
             DeleteResult result = new DeleteResult();
-            for (RemoveDescriptionsFromDescriptiveDataSetConfigurator config: matrix.getDescriptionsToDelete().keySet()){
-               result.includeResult(CdmStore.getService(IDescriptiveDataSetService.class).removeDescriptions(matrix.getDescriptionsToDelete().get(config), matrix.getDescriptiveDataSet().getUuid(), config));
+            for (RemoveDescriptionsFromDescriptiveDataSetConfigurator config : matrix.getDescriptionsToDelete()
+                    .keySet()) {
+                result.includeResult(CdmStore.getService(IDescriptiveDataSetService.class).removeDescriptions(
+                        matrix.getDescriptionsToDelete().get(config), matrix.getDescriptiveDataSet().getUuid(),
+                        config));
             }
             matrix.getDescriptionsToDelete().clear();
 
         }
 
-        UpdateResult results = CdmStore.getService(IDescriptionService.class).mergeDescriptions(descriptionsToMerge, matrix.getDescriptiveDataSet().getUuid());
+        List<MergeResult<DescriptionBase>> resultsFromSave = CdmStore.getService(IDescriptionService.class)
+                .merge(new ArrayList<>(matrix.getDescriptionsToSave()), true);
+        for (MergeResult<DescriptionBase> result : resultsFromSave) {
+            Set<DescriptionBase> newEntities = result.getNewEntities();
+            for (DescriptionBase<?> newEntity : newEntities) {
+                descriptionResults.put(newEntity.getUuid(), newEntity);
+            }
+            descriptionResults.put(result.getMergedEntity().getUuid(), result.getMergedEntity());
+        }
+        matrix.getDescriptionsToSave().clear();
+        UpdateResult results = CdmStore.getService(IDescriptionService.class).mergeDescriptions(descriptionsToMerge,
+                matrix.getDescriptiveDataSet().getUuid());
         matrix.getRowsToMerge().clear();
-        conversation.commit();
-        HashMap<UUID, DescriptionBase> descriptionResults = new HashMap<>();
-        for (CdmBase result: results.getUpdatedObjects()){
-            if (result instanceof DescriptionBase){
-                descriptionResults.put(result.getUuid(), (DescriptionBase)result);
+        // conversation.commit();
+
+        for (CdmBase result : results.getUpdatedObjects()) {
+            if (result instanceof DescriptionBase) {
+                descriptionResults.put(result.getUuid(), (DescriptionBase<?>) result);
             }
         }
-        List<Object> updateRows = matrix.getDescriptions().stream().filter(row->descriptionResults.keySet().contains(((RowWrapperDTO)row).getDescription().getDescription().getUuid())).collect(Collectors.toList());
-        for (Object updateRow: updateRows){
-            if (updateRow instanceof SpecimenRowWrapperDTO){
-                SpecimenRowWrapperDTO dto = (SpecimenRowWrapperDTO)updateRow;
-                dto.getDescription().setDescription(descriptionResults.get(((SpecimenRowWrapperDTO) updateRow).getDescription().getDescription().getUuid()));
+        List<Object> updateRows = matrix.getDescriptions().stream()
+                .filter(row -> descriptionResults.keySet()
+                        .contains(((RowWrapperDTO<?>) row).getDescription().getDescriptionUuid()))
+                .collect(Collectors.toList());
+        
+        Set<UUID> uuids = new HashSet<>();
+        for (UUID uuid: descriptionResults.keySet()) {
+            uuids.add(uuid);
+        }
+        
+        List<DescriptionBaseDto> dtos = CdmStore.getService(IDescriptionService.class).loadDtos(uuids);
+        Map<UUID, DescriptionBaseDto> dtoMap = new HashMap<>();
+        dtos.forEach(s->dtoMap.put(s.getDescriptionUuid(), s));
+        for (Object updateRow : updateRows) {
+            if (updateRow instanceof SpecimenRowWrapperDTO) {
+                SpecimenRowWrapperDTO dto = (SpecimenRowWrapperDTO) updateRow;
+                
+//                DescriptionBaseDto desc = DescriptionBaseDto.fromDescription(descriptionResults
+//                        .get(((SpecimenRowWrapperDTO) updateRow).getDescription().getDescriptionUuid()));
+                dto.setDescription(dtoMap.get(dto.getDescription().getDescriptionUuid()));
             }
         }
-//        matrix.loadDescriptions(getDescriptiveDataSet().getUuid(), false);
+        // matrix.loadDescriptions(getDescriptiveDataSet().getUuid(), false);
         eventBroker.post(WorkbenchEventConstants.CURRENT_ACTIVE_EDITOR, null);
         dirty.setDirty(false);
     }
@@ -243,41 +275,37 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
     }
 
     @Focus
-    public void setFocus(){
-        if(conversation!=null){
-            conversation.bind();
-        }
-        if(cdmEntitySession != null) {
+    public void setFocus() {
+        if (cdmEntitySession != null) {
             cdmEntitySession.bind();
         }
     }
 
     @PreDestroy
-    public void dispose(){
-        if (conversation != null) {
-            conversation.close();
-            conversation = null;
-        }
-        if(cdmEntitySession != null) {
+    public void dispose() {
+        if (cdmEntitySession != null) {
             cdmEntitySession.dispose();
             cdmEntitySession = null;
         }
+        descriptiveDataSet = null;
+        this.matrix.dispose();
         dirty.setDirty(false);
     }
 
-    @Override
-    public void update(CdmDataChangeMap arg0) {
-    }
-
-    @Override
-    public ConversationHolder getConversationHolder() {
-        return conversation;
-    }
-
     @Override
     public void changed(Object element) {
         setDirty();
         matrix.getNatTable().refresh();
+        if (element instanceof DescriptionBase) {
+            if (!matrix.getRowsToMerge().containsKey(((DescriptionBase<?>) element).getUuid())) {
+                matrix.addDescriptionToSave((DescriptionBase<?>) element);
+            }
+        }else if (element instanceof DescriptionElementDto) {
+            
+            if (!matrix.getRowsToMerge().containsKey(((DescriptionElementDto) element).getElementUuid())) {
+               // matrix.putRowToMerge(rowWrapper);
+            }
+        }
     }
 
     @Override
@@ -292,13 +320,14 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
 
     @Override
     public Collection<DescriptiveDataSet> getRootEntities() {
-        return Collections.singleton(this.descriptiveDataSet);
+        // no dataset entity only dto
+        return null;
     }
 
     @Override
     public Map<Object, List<String>> getPropertyPathsMap() {
         Map<Object, List<String>> propertyMap = new HashMap<>();
-        propertyMap.put(SpecimenOrObservationBase.class,WS_PROPERTY_PATH);
+        propertyMap.put(SpecimenOrObservationBase.class, WS_PROPERTY_PATH);
         return propertyMap;
     }
 
@@ -311,4 +340,15 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
         matrix.getParent().layout();
     }
 
+   
+    @Override
+    public IStructuredSelection getActualSelection() {
+
+        return matrix.getSelection();
+    }
+    
+    @Override
+    public FeatureDto getActualFeature(int columnPosition) {
+        return matrix.getFeatures().get(columnPosition - CharacterMatrix.LEADING_COLUMN_COUNT);
+    }
 }
index b9aaf3cc073d08a7c61ca53ba8eec3f76f6c7bbc..3ff5489b19f109d581a3ac913d2c7b4978ad6f28 100644 (file)
@@ -15,7 +15,7 @@ import java.util.Collection;
 import java.util.Properties;
 import java.util.function.Consumer;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.viewers.ArrayContentProvider;
 import org.eclipse.jface.viewers.ComboViewer;
 import org.eclipse.jface.viewers.LabelProvider;
@@ -87,6 +87,7 @@ public class CharacterMatrixToolbar extends Composite {
         ComboViewer comboStates = new ComboViewer(this, SWT.DROP_DOWN);
         Button btnManageState = new Button(this, SWT.PUSH);
         Button btnExcelExport = new Button(this, SWT.PUSH);
+        Button btnRefresh = new Button(this, SWT.PUSH);
 
         /**
          * Toogle tree button
@@ -255,6 +256,26 @@ public class CharacterMatrixToolbar extends Composite {
             }
         });
 
+        /**
+         * excel export
+         */
+//        btnRefresh.setToolTipText(Messages.CharacterMatrix_REFFRESH);
+        btnRefresh.setImage(ImageResources.getImage(ImageResources.REFRESH));
+        btnRefresh.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                if (matrix != null && matrix.getPart() != null){
+
+                    matrix.getPart().init(matrix.getDescriptiveDataSet().getUuid(), true);
+                    matrix.initDescriptiveDataSet();
+                    matrix.redraw();
+                }
+
+
+
+            }
+        });
+
     }
 
     private void persistTableState() {
index 0b3d459af24254d1ff3a519b3a6b0c3afb6ff60b..3a59fd0b3fd5835aa41a2626758bcc83fee5471e 100644 (file)
@@ -13,8 +13,7 @@ import java.util.TreeSet;
 
 import org.eclipse.nebula.widgets.nattable.group.ColumnGroupModel;
 
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.term.TermNode;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
 
 /**
  * @author pplitzner
@@ -23,10 +22,10 @@ import eu.etaxonomy.cdm.model.term.TermNode;
  */
 public class ColumnGroupWrapper {
     private ColumnGroupModel model;
-    private Map<TermNode<Feature>, TreeSet<Integer>> columnGroupToIndexMap;
+    private Map<TermNodeDto, TreeSet<Integer>> columnGroupToIndexMap;
 
     public ColumnGroupWrapper(ColumnGroupModel model,
-            Map<TermNode<Feature>, TreeSet<Integer>> columnGroupToIndexMap) {
+            Map<TermNodeDto, TreeSet<Integer>> columnGroupToIndexMap) {
         this.model = model;
         this.columnGroupToIndexMap = columnGroupToIndexMap;
     }
@@ -37,10 +36,10 @@ public class ColumnGroupWrapper {
     public void setModel(ColumnGroupModel model) {
         this.model = model;
     }
-    public Map<TermNode<Feature>, TreeSet<Integer>> getColumnGroupToIndexMap() {
+    public Map<TermNodeDto, TreeSet<Integer>> getColumnGroupToIndexMap() {
         return columnGroupToIndexMap;
     }
-    public void setColumnGroupToIndexMap(Map<TermNode<Feature>, TreeSet<Integer>> columnGroupToIndexMap) {
+    public void setColumnGroupToIndexMap(Map<TermNodeDto, TreeSet<Integer>> columnGroupToIndexMap) {
         this.columnGroupToIndexMap = columnGroupToIndexMap;
     }
 
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/DataComboElement.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/DataComboElement.java
new file mode 100644 (file)
index 0000000..cfb0115
--- /dev/null
@@ -0,0 +1,264 @@
+/**
+* Copyright (C) 2023 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.equinox.internal.p2.ui.misc.StringMatcher;
+import org.eclipse.jface.fieldassist.ComboContentAdapter;
+import org.eclipse.jface.fieldassist.ContentProposalAdapter;
+import org.eclipse.jface.fieldassist.IContentProposal;
+import org.eclipse.jface.fieldassist.IContentProposalListener;
+import org.eclipse.jface.fieldassist.IContentProposalProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Listener;
+
+import eu.etaxonomy.cdm.persistence.dto.StateDataDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author katjaluther
+ * @since 26.09.2023
+ */
+public class DataComboElement {
+
+    private Combo valueCombo;
+    
+
+    private CdmContentProposalAdapter adapter ;
+
+    
+    public DataComboElement(Composite valuesComposite, String value, StateDataDto selectedState, List<TermDto> dataValues, boolean modifier, int style) {
+
+        valueCombo = new Combo(valuesComposite, SWT.BORDER);
+        int index = 0;
+        int selectedIndex = 0;
+        valueCombo.add("", index);
+        index++;
+        for (TermDto term : dataValues) {
+            valueCombo.add(term.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage()).getLabel(), index);
+            valueCombo.setData(term.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage()).getLabel(), term);
+
+            try {
+                   if (selectedState != null && ((!modifier && selectedState.getState() != null && term.getUuid().equals(selectedState.getState().getUuid())) || (modifier && selectedState.getModifiers() != null && !selectedState.getModifiers().isEmpty() && term.getUuid().equals(selectedState.getModifiers().iterator().next().getUuid()))) ){
+                       selectedIndex = index;
+                   }
+            }catch(NullPointerException e) {
+                System.err.println(e.getMessage());
+            }
+            index++;
+        }
+//        if (selectedIndex != 0) {
+//            valueCombo.select(selectedIndex);
+//        }else {
+//            if (value != null && !value.equals("null")) {
+//                valueCombo.setText(value);
+//                
+//            }
+//        }
+//        
+        valueCombo.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                int index = valueCombo.getSelectionIndex();
+                if (index >-1) {
+                    TermDto state = (TermDto)valueCombo.getData(valueCombo.getItem(index));
+                    if (selectedState == null) {
+                        return;
+                    }
+                    if (modifier) {
+                        if (selectedState.getModifiers() == null) {
+                            selectedState.setModifiers(new ArrayList<TermDto>());
+                        }else {
+                            selectedState.getModifiers().clear();
+                        }
+                        if (state != null) {
+                            selectedState.addModifier(state);
+                        }
+                    }else {
+                        selectedState.setState(state);
+                    }
+                }
+            }
+        });
+        
+//        ContentProposalAdapter adapter;
+
+        adapter = new CdmContentProposalAdapter(valueCombo, new ComboContentAdapter(), getProposalProvider(), null, null);
+        adapter.setPropagateKeys(true);
+        adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_INSERT);
+        adapter.addContentProposalListener(new IContentProposalListener() {
+            @SuppressWarnings("unchecked")
+            @Override
+            public void proposalAccepted(IContentProposal proposal) {
+                Listener[] listeners = valueCombo.getListeners(SWT.Selection);
+
+                for (Listener listener : listeners) {
+                    valueCombo.removeListener(SWT.Selection, listener);
+                }
+                int selectedIndex = 0;
+                if (proposal.getContent() == null) {
+                    // set selection to the emptyElement
+                    selectedIndex = 0;
+                } else {
+                    int index = 1;
+                    if (proposal.getContent() != null) {
+                        for (TermDto value: dataValues) {                           
+                            if (value.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage()).getLabel().equals(proposal.getContent())) {
+                                selectedIndex = index++;
+                                break;
+                            }
+                            index++;
+                            
+                        }
+                    }
+                    
+                }
+
+                for (Listener listener : listeners) {
+                    valueCombo.addListener(SWT.Selection, listener);
+                }
+                valueCombo.select(selectedIndex); 
+                TermDto state = (TermDto)valueCombo.getData(valueCombo.getItem(selectedIndex));
+                
+                if (selectedState == null) {
+                    return;
+                }
+                if (modifier) {
+                    if (selectedState.getModifiers()== null) {
+                        selectedState.setModifiers(new ArrayList<TermDto>());
+                    }else {
+                        selectedState.getModifiers().clear();
+                    }
+                    if (state != null) {
+                        selectedState.addModifier(state);
+                    }
+                }else {
+                    selectedState.setState(state);
+                }               
+            }
+        });
+
+        if (selectedIndex != 0) {
+            valueCombo.select(selectedIndex);
+        }else {
+            if (value != null && !value.equals("null")) {
+                valueCombo.setText(value);  
+                valueCombo.setFocus();
+            }
+        }
+        
+
+    }
+        
+       
+    IContentProposalProvider getProposalProvider() {
+        return new IContentProposalProvider() {
+            
+            @Override
+            public IContentProposal[] getProposals(String contents, int position) {
+                String[] items = valueCombo.getItems();
+                if (contents.length() == 0 || items.length == 0) {
+                    return new IContentProposal[0];
+                }
+                StringMatcher matcher = new StringMatcher("*" + contents + "*", true, false); //$NON-NLS-1$ //$NON-NLS-2$
+                ArrayList<String> matches = new ArrayList<>();
+                for (int i = 0; i < items.length; i++) {
+                    if (matcher.match(items[i])) {
+                        matches.add(items[i]);
+                    }
+                }
+                if (matches.size() == 0) {
+                    for (int i = 0; i < items.length; i++) {
+                        matches.add(items[i]);
+                    }
+                }
+                Collections.sort(matches);
+
+                // We don't want to autoactivate if the only proposal exactly matches
+                // what is in the combo.  This prevents the popup from
+                // opening when the user is merely scrolling through the combo values or
+                // has accepted a combo value.
+                if (matches.size() == 1 && matches.get(0).equals(valueCombo.getText())) {
+                    return new IContentProposal[0];
+                }
+
+                if (matches.isEmpty()) {
+                    return new IContentProposal[0];
+                }
+
+                // Make the proposals
+                IContentProposal[] proposals = new IContentProposal[matches.size()];
+                for (int i = 0; i < matches.size(); i++) {
+                    final String proposal = matches.get(i);
+                    proposals[i] = new IContentProposal() {
+
+                        @Override
+                        public String getContent() {
+                            return proposal;
+                        }
+
+                        @Override
+                        public int getCursorPosition() {
+                            return proposal.length();
+                        }
+
+                        @Override
+                        public String getDescription() {
+                            return null;
+                        }
+
+                        @Override
+                        public String getLabel() {
+                            return null;
+                        }
+                    };
+                }
+
+                return proposals;
+            }
+        };
+    }
+
+
+    /**
+     * @return the valueCombo
+     */
+    public Combo getValueCombo() {
+        return valueCombo;
+    }
+
+
+    /**
+     * @param valueCombo the valueCombo to set
+     */
+    public void setValueCombo(Combo valueCombo) {
+        this.valueCombo = valueCombo;
+    }
+    
+    public void setListVisible(boolean isSet) {
+        this.valueCombo.setListVisible(isSet);
+    }
+
+
+    /**
+     * @return the adapter
+     */
+    public CdmContentProposalAdapter getAdapter() {
+        return adapter;
+    }
+    
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/DataDialogComposite.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/DataDialogComposite.java
new file mode 100644 (file)
index 0000000..8337870
--- /dev/null
@@ -0,0 +1,131 @@
+/**
+* Copyright (C) 2023 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+
+import eu.etaxonomy.cdm.model.description.NoDescriptiveDataStatus;
+import eu.etaxonomy.cdm.persistence.dto.DescriptionElementDto;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author katjaluther
+ * @since 19.09.2023
+ */
+public abstract class DataDialogComposite extends Composite {
+    protected Combo noDataCombo;
+    protected Composite valuesComposite;
+    protected Composite headComposite;
+    protected CharacterMatrix matrix;
+    protected DescriptionElementDto editorValue;     
+    
+    public DataDialogComposite(Composite parent, int style) {
+        super(parent, style);       
+    }
+    
+    public NoDescriptiveDataStatus getNoDataValue(){
+        int selectIndex = noDataCombo.getSelectionIndex();
+        if (selectIndex > -1) {
+            String item = noDataCombo.getItem(selectIndex);
+            NoDescriptiveDataStatus status = (NoDescriptiveDataStatus)noDataCombo.getData(item);
+            return status;
+        }
+       return null;
+    }
+    
+    protected void createNoDataCombo(Composite composite) {
+        
+        Composite noDataComposite = new Composite(this, SWT.NONE);
+        noDataComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+
+        noDataComposite.setLayout(new GridLayout(2, false));       
+        
+        Label lblNoDataLabel = new Label(noDataComposite, SWT.NONE);
+        lblNoDataLabel.setText("No Data Available");
+        noDataCombo = new Combo(noDataComposite, SWT.NONE | SWT.READ_ONLY);
+        noDataCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+        int index = 1;
+        noDataCombo.add("", 0);
+        List<NoDescriptiveDataStatus> valueList = new ArrayList<>();
+        Collections.addAll(valueList, NoDescriptiveDataStatus.values());
+        Collections.sort(valueList, new Comparator<NoDescriptiveDataStatus>() {
+            @Override
+            public int compare(NoDescriptiveDataStatus o1, NoDescriptiveDataStatus o2) {
+                return o1.getLabel(CdmStore.getDefaultLanguage()).compareTo(o2.getLabel(CdmStore.getDefaultLanguage()));
+            }
+        });
+        for (NoDescriptiveDataStatus status : valueList) {            
+            noDataCombo.add(status.getLabel(), index);
+            noDataCombo.setData(status.getLabel(), status);   
+            if (editorValue != null && editorValue.getNoDataStatus() != null && editorValue.getNoDataStatus().equals(status)) {
+                noDataCombo.select(index);
+            }
+            index++;
+
+        }
+        
+        noDataCombo.addSelectionListener(new SelectionAdapter() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                String name = noDataCombo.getText();
+                editorValue.setNoDataStatus((NoDescriptiveDataStatus)noDataCombo.getData(name));
+                if (StringUtils.isNotBlank(name)) {
+                    valuesComposite.setEnabled(false);
+                    for(Control c: valuesComposite.getChildren()) {
+                        c.setVisible(false);
+                    }
+                    if (headComposite != null) {
+                        headComposite.setEnabled(false);
+                        for(Control c: headComposite.getChildren()) {
+                            c.setVisible(false);
+                        }
+                    }
+                   // valuesComposite.dispose();
+                }else {
+                    valuesComposite.setEnabled(true);
+                    for(Control c: valuesComposite.getChildren()) {
+                        c.setVisible(true);
+                    }
+                    if (headComposite != null) {
+                        headComposite.setEnabled(true);
+                        for(Control c: headComposite.getChildren()) {
+                            c.setVisible(true);
+                        }
+                    }
+                }
+                
+            }
+
+       });
+    }
+    
+    protected void refresh() {
+        this.getShell().redraw();
+        this.getShell().pack();
+    }
+   
+    
+    
+
+}
index 1ca70e7e1a278e216695faec3b4a442adb97022b..4b795074c817288d85ec614cc80fc56eb0a6a5bf 100644 (file)
@@ -19,9 +19,9 @@ import ca.odell.glazedlists.TreeList;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
 import eu.etaxonomy.cdm.api.service.dto.SpecimenRowWrapperDTO;
-import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
-import eu.etaxonomy.cdm.model.name.Rank;
+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.store.CdmStore;
 
 /**
@@ -34,13 +34,13 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
  public class DescriptionTreeFormat implements TreeList.Format<Object> {
 
-     private Rank maxRank;
+     private TermDto maxRank;
 
      private Integer deepestTaxonLevel = null;
 
      private Map<UUID, TaxonNodeDto> uuidToTaxonNodeDtoMap = new HashMap<>();
 
-     public DescriptionTreeFormat(DescriptiveDataSet descriptiveDataSet) {
+     public DescriptionTreeFormat(DescriptiveDataSetBaseDto descriptiveDataSet) {
          this.maxRank = descriptiveDataSet.getMaxRank();
      }
 
@@ -75,7 +75,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
          level++;
 
          if(node!=null){
-             if(maxRank!=null && node.getRankOrderIndex()!=null && node.getRankOrderIndex()==maxRank.getOrderIndex()){
+             if(maxRank!=null && node.getRankOrderIndex()!=null && node.getRankOrderIndex().equals(maxRank.getOrderIndex())){
                  path.add(node);
                  return level;
              }
@@ -83,13 +83,16 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
              if(parentNodeDto==null){
                  parentNodeDto = CdmStore.getService(ITaxonNodeService.class).parentDto(node.getUuid());
                  if(parentNodeDto!=null){
-                     uuidToTaxonNodeDtoMap.put(node.getParentUUID(), parentNodeDto);
+                     uuidToTaxonNodeDtoMap.put(parentNodeDto.getUuid(), parentNodeDto);
                  }
              }
-             if(parentNodeDto!=null){
+             if (parentNodeDto != null){
                  level = addPathRecursive(path, parentNodeDto, level);
                  path.add(node);
              }
+
+
+
          }
          return level;
      }
index e8c6bbebf2e07de56706fccef317e84691fd41e9..556d9fb79675bf060f033c6afc4125f617ccf3e7 100644 (file)
@@ -11,10 +11,8 @@ package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix;
 import java.util.Comparator;
 
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
-import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionType;
-import eu.etaxonomy.cdm.model.description.SpecimenDescription;
-import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.persistence.dto.DescriptionBaseDto;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoByNameComparator;
 
@@ -79,33 +77,33 @@ public class MatrixRowComparator implements Comparator<Object>{
             else{
                 // same taxon node
             }
-            DescriptionBase description1 = rowWrapper1.getDescription().getDescription();
-            DescriptionBase description2 = rowWrapper2.getDescription().getDescription();
+            DescriptionBaseDto description1 = rowWrapper1.getDescription();
+            DescriptionBaseDto description2 = rowWrapper2.getDescription();
             //compare by taxon description type
-            if(description1 instanceof TaxonDescription){
-                if(description2 instanceof SpecimenDescription){
+            if(description1.getTaxonDto() != null){
+                if(description2.getSpecimenDto() != null){
                     return -1;
                 }
             }
             else{
-                if(description2 instanceof TaxonDescription){
+                if(description2.getTaxonDto() != null){
                     return 1;
                 }
             }
             //both descriptions are of the same type
-            if(description1 instanceof SpecimenDescription){
+            if(description1.getSpecimenDto() != null){
                 //description2 has to also be a SpecimenDescription
-                return compareSpecimenDescriptions((SpecimenDescription)description1, (SpecimenDescription)description2);
+                return compareSpecimenDescriptions(description1, description2);
             }
-            else if(description1 instanceof TaxonDescription){
+            else if(description1.getTaxonDto() != null){
                 //description2 has to also be a TaxonDescription
-                return compareTaxonDescriptions((TaxonDescription)description1, (TaxonDescription)description2);
+                return compareTaxonDescriptions(description1, description2);
             }
         }
         return o1.hashCode()-o2.hashCode();
     }
 
-    private int compareTaxonDescriptions(TaxonDescription taxonDescription1, TaxonDescription taxonDescription2) {
+    private int compareTaxonDescriptions(DescriptionBaseDto taxonDescription1, DescriptionBaseDto taxonDescription2) {
         boolean isComputed1 = taxonDescription1.getTypes().stream()
                 .anyMatch(type -> type.equals(DescriptionType.AGGREGATED_STRUC_DESC));
         boolean isComputed2 = taxonDescription2.getTypes().stream()
@@ -134,10 +132,10 @@ public class MatrixRowComparator implements Comparator<Object>{
         return taxonDescription1.hashCode()-taxonDescription2.hashCode();
     }
 
-    private int compareSpecimenDescriptions(SpecimenDescription specimenDescription1,
-            SpecimenDescription specimenDescription2) {
-        int id1 = specimenDescription1.getDescribedSpecimenOrObservation().getId();
-        int id2 = specimenDescription2.getDescribedSpecimenOrObservation().getId();
+    private int compareSpecimenDescriptions(DescriptionBaseDto specimenDescription1,
+            DescriptionBaseDto specimenDescription2) {
+        int id1 = specimenDescription1.getSpecimenDto().getId();
+        int id2 = specimenDescription2.getSpecimenDto().getId();
         return id1-id2;
     }
 
index 909d80fe3a16fe97941f28facecb418458a66078..b561396127c91f6789cf9e5c84c70ad6c9816563 100644 (file)
@@ -12,12 +12,20 @@ import java.util.Set;
 
 import org.eclipse.swt.graphics.Image;
 
+import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
 import eu.etaxonomy.cdm.api.service.dto.TaxonRowWrapperDTO;
 import eu.etaxonomy.cdm.model.description.DescriptionType;
 import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
 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.CategoricalDataDto;
+import eu.etaxonomy.cdm.persistence.dto.DescriptionElementDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
+import eu.etaxonomy.cdm.persistence.dto.StateDataDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 
 /**
@@ -33,8 +41,8 @@ public class MatrixUtility {
      * @param feature
      * @return
      */
-    public static String getProperty(Feature feature){
-        return feature.getLabel();
+    public static String getProperty(FeatureDto feature){
+        return feature.getTitleCache();
     }
 
     /**
@@ -70,7 +78,7 @@ public class MatrixUtility {
     }
 
     private static boolean hasType(TaxonRowWrapperDTO taxonRowWrapperDTO, DescriptionType descriptionType){
-        return taxonRowWrapperDTO.getDescription().getDescription().getTypes().stream()
+        return taxonRowWrapperDTO.getDescription().getTypes().stream()
         .anyMatch(type->type.equals(descriptionType));
     }
 
@@ -85,5 +93,53 @@ 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()
+//        .anyMatch(type->type.equals(descriptionType));
+//    }
 }
 
index 1db521e7fe9ce64d85feb7c29da25a9afa44edac..2f41c8abaac42940a5aeee248333d20a21824f87 100644 (file)
@@ -11,24 +11,23 @@ package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
-import java.util.UUID;
-import java.util.stream.Collectors;
+import java.util.Set;
 
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.nebula.widgets.nattable.data.IColumnPropertyAccessor;
 
-import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
 import eu.etaxonomy.cdm.api.service.dto.SpecimenRowWrapperDTO;
 import eu.etaxonomy.cdm.api.service.dto.TaxonRowWrapperDTO;
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.State;
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.persistence.dto.DescriptionElementDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
-import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
  * Property accessor class which maps setting and getting data for
  * each row in the character matrix
+ *
  * @author pplitzner
  * @since Nov 26, 2017
  *
@@ -48,17 +47,26 @@ public class SpecimenColumnPropertyAccessor implements IColumnPropertyAccessor<O
             switch (columnIndex) {
             case 0:
                 if(matrix.isTreeView()){
-                    return "#"+rowWrapper.getSpecimen().getId();
+                    return "#"+rowWrapper.getSpecimenDto().getId();
                 }
                 else{
                     return rowWrapper.getTaxonNode();
                 }
             case 1:
-                if (rowWrapper.getFieldUnit() != null){
-                    return rowWrapper.getFieldUnit().getTitleCache();
-                }else{
-                    return "no information";
-                }
+                if (rowWrapper.getSpecimenDto() != null){
+                       if (StringUtils.isBlank(rowWrapper.getSpecimenDto().getCollectorsString())){
+                               if (rowWrapper.getFieldUnit() != null){
+                                       return rowWrapper.getFieldUnit().getTitleCache();
+                               }else{
+                                       return "no information";
+                               }
+                       }
+                    return rowWrapper.getSpecimenDto().getCollectorsString();
+                }else if (rowWrapper.getFieldUnit() != null){
+                               return rowWrapper.getFieldUnit().getTitleCache();
+                       }else{
+                               return "no information";
+                       }
             case 2:
                 return rowWrapper.getIdentifier();
             case 3:
@@ -67,19 +75,78 @@ public class SpecimenColumnPropertyAccessor implements IColumnPropertyAccessor<O
             default:
                 break;
             }
-            Feature feature = matrix.getIndexToFeatureMap().get(columnIndex);
-            return rowWrapper.getDisplayDataForFeature(feature);
+            FeatureDto feature = matrix.getIndexToFeatureMap().get(columnIndex);
+            return rowWrapper.getDisplayDataForFeature(feature.getUuid());
         }
         else if(rowObject instanceof TaxonRowWrapperDTO){
             TaxonRowWrapperDTO taxonWrapper = (TaxonRowWrapperDTO)rowObject;
             if(columnIndex==0){
                 return taxonWrapper.getDescription();
             }
-            Feature feature = matrix.getIndexToFeatureMap().get(columnIndex);
-            return taxonWrapper.getDisplayDataForFeature(feature);
+            FeatureDto feature = matrix.getIndexToFeatureMap().get(columnIndex);
+            if (feature == null){
+                return null;
+            }
+            return taxonWrapper.getDisplayDataForFeature(feature.getUuid());
 
+        } else if (columnIndex == 0) {
+            return rowObject;
         }
-        else if (columnIndex == 0) {
+        return null;
+    }
+    
+    public Object getData(Object rowObject, int columnIndex) {
+        if (rowObject instanceof SpecimenRowWrapperDTO) {
+            SpecimenRowWrapperDTO rowWrapper = (SpecimenRowWrapperDTO) rowObject;
+            switch (columnIndex) {
+            case 0:
+                if (matrix.isTreeView()) {
+                    return "#" + rowWrapper.getSpecimenDto().getId();
+                } else {
+                    return rowWrapper.getTaxonNode();
+                }
+            case 1:
+                if (rowWrapper.getSpecimenDto() != null) {
+                    if (StringUtils.isBlank(rowWrapper.getSpecimenDto().getCollectorsString())) {
+                        if (rowWrapper.getFieldUnit() != null) {
+                            return rowWrapper.getFieldUnit().getTitleCache();
+                        } else {
+                            return "no information";
+                        }
+                    }
+                    return rowWrapper.getSpecimenDto().getCollectorsString();
+                } else if (rowWrapper.getFieldUnit() != null) {
+                    return rowWrapper.getFieldUnit().getTitleCache();
+                } else {
+                    return "no information";
+                }
+            case 2:
+                return rowWrapper.getIdentifier();
+            case 3:
+                return rowWrapper.getCountry();
+
+            default:
+                break;
+            }
+            FeatureDto feature = matrix.getIndexToFeatureMap().get(columnIndex);
+            Set<DescriptionElementDto> data = rowWrapper.getDataValueForFeature(feature.getUuid());
+            DescriptionElementDto result = null;
+            if (data != null && !data.isEmpty()) {
+                result = data.iterator().next();
+            }
+            return result;
+        } else if (rowObject instanceof TaxonRowWrapperDTO) {
+            TaxonRowWrapperDTO taxonWrapper = (TaxonRowWrapperDTO) rowObject;
+            if (columnIndex == 0) {
+                return taxonWrapper.getDescription();
+            }
+            FeatureDto feature = matrix.getIndexToFeatureMap().get(columnIndex);
+            if (feature == null) {
+                return null;
+            }
+            return taxonWrapper.getDataValueForFeature(feature.getUuid());
+
+        } else if (columnIndex == 0) {
             return rowObject;
         }
         return null;
@@ -87,23 +154,21 @@ public class SpecimenColumnPropertyAccessor implements IColumnPropertyAccessor<O
 
     @Override
     public void setDataValue(Object rowObject, int columnIndex, Object newValue) {
-        if(rowObject instanceof RowWrapperDTO){
-            RowWrapperDTO rowWrapper = (RowWrapperDTO)rowObject;
+        if (rowObject instanceof RowWrapperDTO) {
+            RowWrapperDTO rowWrapper = (RowWrapperDTO) rowObject;
 
-            Feature feature = matrix.getIndexToFeatureMap().get(columnIndex);
+            FeatureDto feature = matrix.getIndexToFeatureMap().get(columnIndex);
             if(feature.isSupportsCategoricalData()
-                    && newValue instanceof Collection
-                    && ((Collection) newValue).stream().allMatch(o->o instanceof TermDto)){
-                List<TermDto> dtos = (List<TermDto>)newValue;
-                List<UUID> termUuids = dtos.stream().map(dto->dto.getUuid()).collect(Collectors.toList());
-                List<DefinedTermBase> terms = CdmStore.getService(ITermService.class).load(termUuids, null);
-                List<State> states = new ArrayList<>();
-                for (DefinedTermBase definedTermBase : terms) {
-                    if(definedTermBase instanceof State){
-                        states.add((State) definedTermBase);
-                    }
+                    && newValue instanceof Collection){
+
+                List<Object> dtos = new ArrayList<>();
+                
+                //TODO:This needs to be adapted because already added modifiers will be deleted!!!!!
+                if (((Collection) newValue).stream().allMatch(o -> o instanceof TermDto)) {
+                    dtos = (List<Object>) newValue;
                 }
-                rowWrapper.setDataValueForCategoricalData(feature, states);
+
+                rowWrapper.setDataValueForCategoricalData(feature.getUuid(), dtos, PreferencesUtil.getGlobalLanguage());
                 matrix.putRowToMerge(rowWrapper);
             }
         }
index e7a55c1d738920466e56ace93f16196e4c41b189..d01a46d32b8c5254803d6a1b8b87e5512a4f6880 100644 (file)
@@ -16,7 +16,7 @@ import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.viewers.ArrayContentProvider;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
@@ -62,6 +62,11 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  */
 public class SpecimenSelectionDialog extends Dialog {
 
+    /**
+     *
+     */
+    private static final String TAXONOMIC_SUBTREE_FILTER = "Taxonomic Subtree Filter: ";
+
     private static String TEXT_FILTER_DEFAULT = "Enter text filter";
 
     private TableViewer list;
@@ -98,7 +103,7 @@ public class SpecimenSelectionDialog extends Dialog {
         gridData.horizontalAlignment = GridData.BEGINNING;
         gridData.horizontalSpan = 3;
         l_title_filter.setLayoutData(gridData);
-        l_title.setText("Taxonomic Subtree Filter: ");
+        l_title.setText(TAXONOMIC_SUBTREE_FILTER);
         if (taxonTitleList != null && !taxonTitleList.isEmpty()){
             Iterator<String> iterator = taxonTitleList.iterator();
             String titleString=iterator.next();
@@ -106,6 +111,8 @@ public class SpecimenSelectionDialog extends Dialog {
                 titleString += ", "+ iterator.next();
             }
             l_title_filter.setText(titleString);
+        }else {
+            l_title_filter.setText(" - ");
         }
         Button btnRemoveFilterButton = new Button(composite_1, SWT.NONE);
         btnRemoveFilterButton.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
@@ -116,8 +123,8 @@ public class SpecimenSelectionDialog extends Dialog {
             public void widgetSelected(SelectionEvent e) {
 //                txtTextFilter.setText("");
                 treeIndexList = null;
-                l_title.setText("");
-                l_title_filter.setText("");
+                l_title.setText(TAXONOMIC_SUBTREE_FILTER);
+                l_title_filter.setText(" - ");
                 refreshInput();
             }
         });
@@ -199,7 +206,12 @@ public class SpecimenSelectionDialog extends Dialog {
         columnSpecimen.getColumn().setText("Specimen");
         columnSpecimen.getColumn().setResizable(true);
         columnSpecimen.getColumn().setMoveable(true);
-        columnSpecimen.getColumn().setWidth(400);
+        columnSpecimen.getColumn().setWidth(150);
+        TableViewerColumn columnSpecimenID = new TableViewerColumn(list, SWT.NONE);
+        columnSpecimenID.getColumn().setText("ID");
+        columnSpecimenID.getColumn().setResizable(true);
+        columnSpecimenID.getColumn().setMoveable(true);
+        columnSpecimenID.getColumn().setWidth(50);
 
         table.setHeaderVisible(true);
         table.setLinesVisible(true);
@@ -306,7 +318,7 @@ public class SpecimenSelectionDialog extends Dialog {
     protected void configureShell(Shell newShell) {
         super.configureShell(newShell);
         newShell.setText(Messages.SpecimenSelectionDialog_SELECT_SPECIMENS);
-        newShell.setMinimumSize(500, 600);
+//        newShell.setMinimumSize(500, 600);
         newShell.setSize(800, 600);
     }
 
@@ -354,9 +366,11 @@ public class SpecimenSelectionDialog extends Dialog {
                 case 0:
                     return wrapper.getTaxonNode().getTitleCache();
                 case 1:
-                    return wrapper.getType().getMessage();
+                    return wrapper.getType().getLabel();
                 case 2:
-                    return wrapper.getUuidAndTitleCache().getTitleCache();
+                       return wrapper.getUuidAndTitleCache().getTitleCache();
+                case 3:
+                    return wrapper.getUuidAndTitleCache().getId().toString();
                 default:
                     break;
                 }
index 7a09f61c9ed32182ea64ca0b8c116d5fcd528a97..21440607633a0f5a67ab37ca3207ee522ca4a8ad 100644 (file)
@@ -9,11 +9,12 @@
 */
 package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.categorical;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.eclipse.nebula.widgets.nattable.edit.editor.IComboBoxDataProvider;
 
-import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrix;
 
@@ -33,9 +34,21 @@ public class CategoricalComboBoxDataProvider implements IComboBoxDataProvider {
 
     @Override
     public List<?> getValues(int columnIndex, int rowIndex) {
-        Feature feature = matrix.getIndexToFeatureMap().get(columnIndex);
-        List<TermDto> supportedStatesForCategoricalFeature = matrix.getSupportedStatesForCategoricalFeature(feature);
-        return supportedStatesForCategoricalFeature;
+        FeatureDto feature = matrix.getIndexToFeatureMap().get(columnIndex);
+        List<TermDto> supportedStatesForCategoricalFeature = matrix
+                .getSupportedStatesForCategoricalFeature(feature.getUuid());
+        List<Object> objectsList = new ArrayList<>();
+
+        int index = 0;
+//        for (NoDescriptiveDataStatus status : NoDescriptiveDataStatus.values()) {
+//            objectsList.add(index, status);
+//            index++;
+//        }
+        for (TermDto term : supportedStatesForCategoricalFeature) {
+            objectsList.add(index, term);
+            index++;
+        }
+        return objectsList;
     }
 
 }
index 389279a39a45fa94071f544a25af7343a1f649c4..4a2b4d16ec4daae4bdc4633e2c3c3fe2661b0dbb 100644 (file)
 */
 package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.categorical;
 
-import org.eclipse.nebula.widgets.nattable.edit.editor.ComboBoxCellEditor;
-import org.eclipse.nebula.widgets.nattable.widget.NatCombo;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.jface.window.Window;
+import org.eclipse.nebula.widgets.nattable.config.IConfigRegistry;
+import org.eclipse.nebula.widgets.nattable.edit.ICellEditHandler;
+import org.eclipse.nebula.widgets.nattable.edit.gui.AbstractDialogCellEditor;
+import org.eclipse.nebula.widgets.nattable.layer.cell.ILayerCell;
+import org.eclipse.nebula.widgets.nattable.widget.EditModeEnum;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
-import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.persistence.dto.CategoricalDataDto;
+import eu.etaxonomy.cdm.persistence.dto.DescriptionElementDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrix;
 
 /**
  * Cell editor for CategoricalData
+ * 
  * @author pplitzner
  * @since Dec 7, 2017
  *
  */
-public class CategoricalDataCellEditor extends ComboBoxCellEditor{
+public class CategoricalDataCellEditor extends AbstractDialogCellEditor {
 
+    private CategoricalDataDto editorValue;
+    private RowWrapperDTO<?> rowWrapperDTO;
+    private boolean closed;
     private CharacterMatrix matrix;
+    private Character initialInput;
+   
 
-    public CategoricalDataCellEditor(CharacterMatrix matrix, CategoricalComboBoxDataProvider categoricalComboBoxDataProvider) {
-        super(categoricalComboBoxDataProvider, 10);
+    public CategoricalDataCellEditor(CharacterMatrix matrix) {
+        super();
         this.matrix = matrix;
-        setUseCheckbox(true);
-        setMultiselect(true);
-        setShowDropdownFilter(true);
     }
 
     @Override
-    public void setCanonicalValue(Object canonicalValue) {
-        if(canonicalValue==null){
-            Object rowWrapper = matrix.getBodyDataProvider().getRowObject(this.getRowIndex());
-            if(rowWrapper instanceof RowWrapperDTO){
-                Feature feature = matrix.getIndexToFeatureMap().get(getColumnIndex());
-                // FIXME avoid creating empty CategoricalData
-                ((RowWrapperDTO) rowWrapper).addCategoricalData(feature);
-            }
+    public int open() {
+        Object rowObject = matrix.getBodyDataProvider().getRowObject(getRowIndex());
+        if(rowObject instanceof RowWrapperDTO){
+            this.closed = false;
+            return getDialogInstance().open();
         }
-        super.setCanonicalValue(canonicalValue);
+        return Window.CANCEL;
     }
 
     @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() {
-                @Override
-                public void widgetSelected(SelectionEvent e) {
-                    matrix.setDirty();
-                }
-                @Override
-                public void widgetDefaultSelected(SelectionEvent e) {
+    public CategoricalDataDialog createDialogInstance() {
+        return new CategoricalDataDialog(this.initialInput, matrix, this.parent.getShell(), getCanonicalValue(), this.layerCell, this, this.configRegistry);
+    }
+
+    @Override
+    public CategoricalDataDialog getDialogInstance() {
+        return (CategoricalDataDialog) this.dialog;
+    }
+
+    @Override
+    public Object getEditorValue() {
+        return this.editorValue;
+    }
+
+    @Override
+    public void setEditorValue(Object value) {
+        ((CategoricalDataDialog)this.dialog).setEditorValue((CategoricalDataDto) value);
+        ((CategoricalDataDialog)this.dialog).setRowWrapper(rowWrapperDTO);
+        this.editorValue = (CategoricalDataDto) value;
+    }
+
+    @Override
+    public void close() {
+        this.closed = true;
+        this.dialog = null;
+        this.editorValue = null;
+    }
+
+    @Override
+    public boolean isClosed() {
+        return closed;
+    }
+
+    @Override
+    public Control activateCell(Composite parent, Object originalCanonicalValue, EditModeEnum editMode,
+            ICellEditHandler editHandler, ILayerCell cell, IConfigRegistry configRegistry) {
+        this.initialInput = null;
+        Object rowObject = matrix.getBodyDataProvider().getRowObject(cell.getRowIndex());
+        FeatureDto feature = matrix.getIndexToFeatureMap().get(cell.getColumnIndex());
+        if(feature.getSupportedCategoricalEnumerations().isEmpty()) {
+            return null;
+        }
+        CategoricalDataDto categoricalDataDto = null;
+        if(rowObject instanceof RowWrapperDTO){
+            rowWrapperDTO = (RowWrapperDTO<?>) rowObject;
+            Set<DescriptionElementDto> dataValueForFeature = rowWrapperDTO.getDataValueForFeature(feature.getUuid());
+            if (dataValueForFeature != null && dataValueForFeature.size() > 1){
+                return null;
+            }
+            
+            DescriptionElementDto dto = null;
+            if (dataValueForFeature != null){
+                Iterator<DescriptionElementDto> it = dataValueForFeature.iterator();
+                if(it.hasNext() ){
+                    dto = it.next();                    
                 }
-            });
-            return natCombo;
+            }
+            if(dto instanceof CategoricalDataDto){
+                categoricalDataDto = (CategoricalDataDto) dto;
+                categoricalDataDto.setFeatureDto(feature);
+            }
+            //create new Quantitative Data
+            if (categoricalDataDto == null) {
+                categoricalDataDto = ((RowWrapperDTO) rowObject).addCategoricalData(feature);
+            }
+            /**
+             * when opening the the dialog by a key stroke, store the key pressed
+             * and pass it to the dialog. This is common behavior but by overriding
+             * this method we always pass the QuantitativeData object to the dialog
+             * so we need to buffer the key stroke
+             */
+            if(originalCanonicalValue instanceof Character){
+                this.initialInput = (Character) originalCanonicalValue;
+            }
         }
-        return null;
+        return super.activateCell(parent, categoricalDataDto, editMode, editHandler, cell, configRegistry);
     }
 
+    @Override
+    public void setDialogSettings(Map<String, Object> editDialogSettings) {
+        //pass through dialog setting to wrapped dialog
+        ((CategoricalDataDialog)this.dialog).setDialogSettings(editDialogSettings);
+    }
+
+   
+
 }
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/categorical/CategoricalDataDialog.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/categorical/CategoricalDataDialog.java
new file mode 100644 (file)
index 0000000..99256cb
--- /dev/null
@@ -0,0 +1,122 @@
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.categorical;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.jface.window.Window;
+import org.eclipse.nebula.widgets.nattable.config.IConfigRegistry;
+import org.eclipse.nebula.widgets.nattable.edit.editor.ICellEditor;
+import org.eclipse.nebula.widgets.nattable.edit.gui.CellEditDialog;
+import org.eclipse.nebula.widgets.nattable.layer.cell.ILayerCell;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
+import eu.etaxonomy.cdm.persistence.dto.CategoricalDataDto;
+import eu.etaxonomy.cdm.persistence.dto.StateDataDto;
+import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrix;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author pplitzner
+ * @since Jul 19, 2018
+ *
+ */
+public class CategoricalDataDialog extends CellEditDialog {
+
+    private Character initialInput;
+
+    private CharacterMatrix matrix;
+
+    public CategoricalDataDialog(Character initialInput, CharacterMatrix matrix, Shell parentShell, Object originalCanonicalValue, ILayerCell cell,
+            ICellEditor cellEditor, IConfigRegistry configRegistry) {
+        super(parentShell, originalCanonicalValue, cell, cellEditor, configRegistry);
+        this.initialInput = initialInput;
+        this.matrix = matrix;
+        
+        
+    }
+
+    private CategoricalDataDto editorValue;
+    private RowWrapperDTO<?> rowWrapperDTO;
+
+    private CategoricalDataDialogComposite composite;
+
+    @Override
+    protected Control createDialogArea(Composite parent) {
+        Collection<String> displayStrings = rowWrapperDTO.getDisplayDataForFeature(editorValue.getFeatureUuid());
+        String initialDisplay = null;
+        StringBuffer sb = new StringBuffer();
+        boolean first = true;
+        if (displayStrings != null) {
+            for (String o : displayStrings) {
+                sb.append(first? o : ", " + o);
+                first = false;
+                           
+            }
+        }
+        initialDisplay = (sb.length() > 0)? sb.toString() : "-";
+        
+        composite = new CategoricalDataDialogComposite(initialDisplay, this.initialInput, editorValue , parent, matrix,SWT.NONE);
+        return composite;
+    }
+
+    void setEditorValue(CategoricalDataDto editorValue) {
+        this.editorValue = editorValue;
+    }
+
+    void setRowWrapper(RowWrapperDTO<?> rowWrapperDTO) {
+        this.rowWrapperDTO = rowWrapperDTO;
+    }
+
+    @Override
+    public boolean close() {
+        if(getReturnCode()==Window.OK){
+            //clear values
+            //editorValue.getValues().clear();
+            //add back all values from text fields
+            
+            if (composite.getNoDataValue() == null) {
+                Set<StateDataDto> selectedStates= composite.getSelectedStates();
+                Set<StateDataDto> statesToRemove = new HashSet<>();
+                for (StateDataDto state: selectedStates) {
+                    if (state.getState() == null) {
+                        statesToRemove.add(state);
+                    }
+                }
+                selectedStates.removeAll(statesToRemove);
+                rowWrapperDTO.setDataValueForCategoricalData(editorValue.getFeatureDto().getUuid(), new ArrayList<StateDataDto>(selectedStates), PreferencesUtil.getGlobalLanguage());
+            }else {
+                rowWrapperDTO.getDataValueForFeature(editorValue.getFeatureDto().getUuid()).clear();
+                CategoricalDataDto element = rowWrapperDTO.addCategoricalData(editorValue.getFeatureDto());
+                element.setNoDataStatus(composite.getNoDataValue());
+                
+                rowWrapperDTO.generateNewDisplayString(editorValue.getFeatureUuid(), element, PreferencesUtil.getGlobalLanguage());
+            }
+            
+            
+            matrix.putRowToMerge(rowWrapperDTO);
+
+            matrix.setDirty();
+        }
+        return super.close();
+    }
+    
+    @Override
+    protected boolean isResizable() {
+        return true;
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/categorical/CategoricalDataDialogComposite.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/categorical/CategoricalDataDialogComposite.java
new file mode 100644 (file)
index 0000000..e1923f1
--- /dev/null
@@ -0,0 +1,209 @@
+// $Id$
+/**
+ * Copyright (C) 2018 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.categorical;
+
+
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+
+import eu.etaxonomy.cdm.persistence.dto.CategoricalDataDto;
+import eu.etaxonomy.cdm.persistence.dto.DescriptionElementDto;
+import eu.etaxonomy.cdm.persistence.dto.StateDataDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrix;
+import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.DataComboElement;
+import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.DataDialogComposite;
+import eu.etaxonomy.taxeditor.model.ImageResources;
+
+/**
+ * @author k.luther
+ * @date 16.09.2023
+ *
+ */
+public class CategoricalDataDialogComposite extends DataDialogComposite {
+
+   
+//    Combo noDataCombo;
+    
+    String initialString;
+    private Set<StateDataDto> stateList;
+    
+    
+    
+
+    public CategoricalDataDialogComposite(String initialInput, Character c, CategoricalDataDto editorVal, Composite parent, CharacterMatrix matrix,
+            int style) {
+        super(parent, style);
+        this.matrix = matrix;
+        this.editorValue = editorVal;
+        initialString = initialInput;
+        
+
+        setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+        ((GridData)getLayoutData()).minimumWidth= 300;
+
+        setLayout(new GridLayout(1, false));       
+
+        createNoDataCombo(this);
+        headComposite = new Composite(this, SWT.NONE);
+        headComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+
+        headComposite.setLayout(new GridLayout(2, false));  
+        Label lblNewLabel = new Label(headComposite, SWT.NONE);
+        if (getModifiers() != null && !getModifiers().isEmpty()) {
+            lblNewLabel.setText("Modifier and State");
+        }else {
+            lblNewLabel.setText("State");
+        }
+        
+        Button addNewState =  new Button(headComposite, SWT.NONE);
+        addNewState.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, true, true, 1,1));
+        
+        addNewState.setImage(ImageResources.getImage(ImageResources.ADD_ICON));
+        //new Label(composite_2, SWT.NONE);
+        addNewState.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                DataComboElement emptyTextField = addState(valuesComposite, 
+                        initialString == null ? null : c, new StateDataDto());
+                emptyTextField.getValueCombo().setFocus();
+                emptyTextField.setListVisible(true);
+                
+                refresh();
+            }
+        });
+        
+        valuesComposite = new Composite(this, SWT.NONE);
+        valuesComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+
+        valuesComposite.setLayout(new GridLayout(1, false));     
+        
+        List<TermDto> selectedTerms = new ArrayList<>();
+        if (editorVal != null) {
+            editorVal.getStates().removeIf(s->s == null);
+            editorVal.getStates().forEach(s -> selectedTerms.add(s.getState()));
+        }
+       
+       
+        // add empty text field for new state
+        DataComboElement emptyDataElement = addState(valuesComposite, 
+               initialString == null ? null : c, new StateDataDto());
+
+        // add existing states
+        ((CategoricalDataDto)editorValue).getStates().stream()
+                .forEach(state -> addState(valuesComposite, null, state));
+
+        if (editorValue.getNoDataStatus()!= null) {
+            headComposite.setEnabled(false);
+            valuesComposite.setEnabled(false);
+            for(Control control: valuesComposite.getChildren()) {
+                control.setVisible(false);
+            }
+            for(Control control: headComposite.getChildren()) {
+                control.setVisible(false);
+            }
+        }       
+       emptyDataElement.getAdapter().activate();
+    }
+   
+    public DescriptionElementDto getEditorValue() {
+        return editorValue;
+    }
+    
+    private List<TermDto> getCategoricalValues(){
+       List<TermDto> supportedStatesForCategoricalFeature = matrix
+                .getSupportedStatesForCategoricalFeature(editorValue.getFeatureUuid());
+        
+       return supportedStatesForCategoricalFeature;
+    }
+    
+    
+    private List<TermDto> getModifiers(){
+        List<TermDto> recommendedModifiersForCategoricalFeature = matrix
+                 .getRecommendModifiersForCategoricalFeature(editorValue.getFeatureUuid());
+         
+        return recommendedModifiersForCategoricalFeature;
+    }
+    
+    public Set<StateDataDto> getSelectedStates(){
+//        String[] selected = valueCombo.getSelections();
+//        List<TermDto> selectedStates = new ArrayList<>();
+//        for (String value: selected) {
+//            selectedStates.add((TermDto)valueCombo.getData(value));
+//        }
+        return stateList;
+    }
+    
+    private DataComboElement addState(Composite valuesComposite, Character value, StateDataDto selectedState) {
+        
+        Composite composite_2 = new Composite(valuesComposite, SWT.NONE);
+        
+        composite_2.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
+        int numColumns = 2;
+        if (getModifiers() != null && !getModifiers().isEmpty()) {
+            numColumns = 3;
+        }
+        GridLayout gl_composite_2 = new GridLayout(numColumns, false);
+        gl_composite_2.marginHeight = 0;
+        gl_composite_2.marginWidth = 0;
+        gl_composite_2.verticalSpacing = 0;
+        gl_composite_2.horizontalSpacing = 1;
+        composite_2.setLayout(gl_composite_2);
+        
+        Composite composite_3 = new Composite(composite_2, SWT.NONE);        
+        composite_3.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, numColumns, 2));
+        GridLayout gl_composite_3 = new GridLayout(1, false);
+        gl_composite_3.marginHeight = 0;
+        gl_composite_3.marginWidth = 0;
+        gl_composite_3.verticalSpacing = 0;
+        gl_composite_3.horizontalSpacing = 1;
+        composite_3.setLayout(gl_composite_3);
+        
+        if (getModifiers() != null && !getModifiers().isEmpty()) {
+            DataComboElement modifierCombo = new DataComboElement(composite_2, null, selectedState, getModifiers(), true, getStyle());
+        }
+        DataComboElement element = new DataComboElement(composite_2, String.valueOf(value), selectedState, getCategoricalValues(), false, getStyle());
+        
+        if (stateList == null) {
+            stateList = new HashSet<>();
+        }
+        if (selectedState != null) {
+            stateList.add(selectedState);
+        }
+        
+        Button btnRemove = new Button(composite_2, SWT.NONE);
+        btnRemove.setImage(ImageResources.getImage(ImageResources.TRASH_ICON));
+        //new Label(composite_2, SWT.NONE);
+        btnRemove.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                  composite_2.dispose();
+                  stateList.remove(selectedState);
+                  valuesComposite.getShell().redraw();
+                  valuesComposite.getShell().pack();
+            }
+        });
+        return element;
+    }
+}
\ No newline at end of file
index 67a0324b13be78e69d702496ed98189e5ec26dc1..2db98be511f09ea0a7b65abc05f43759731cf6fc 100644 (file)
@@ -12,8 +12,9 @@ import java.util.Collection;
 
 import org.eclipse.nebula.widgets.nattable.data.convert.DisplayConverter;
 
+import eu.etaxonomy.cdm.api.service.l10n.TermRepresentation_L10n;
+import eu.etaxonomy.cdm.persistence.dto.CategoricalDataDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
-import eu.etaxonomy.cdm.remote.l10n.TermRepresentation_L10n;
 
 /**
  * Converts CategoricalData and States of one cell of the character matrix to a
@@ -27,20 +28,22 @@ public class CategoricalDataDisplayConverter extends DisplayConverter {
 
     @Override
     public Object canonicalToDisplayValue(Object canonicalValue) {
-        if(canonicalValue instanceof TermDto){
-            ((TermDto) canonicalValue).localize(new TermRepresentation_L10n());
-            return ((TermDto) canonicalValue).getRepresentation_L10n();
+        if(canonicalValue instanceof CategoricalDataDto){
+            return canonicalValue;
         }
-        else if (canonicalValue instanceof Collection) {
+        if (canonicalValue instanceof TermDto) {
+            ((TermDto) canonicalValue).localize(new TermRepresentation_L10n());
+            return ((TermDto) canonicalValue).getTitleCache();
+        } else if (canonicalValue instanceof Collection) {
             // Collection.toString() will add [ and ] around
             // 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;
-        }
-        else if(canonicalValue!=null){
+        } else if (canonicalValue != null) {
             return canonicalValue.toString();
         }
         return null;
index 2c7d4cad79a2560653a37bda72f84be21a2e9fc6..66b55b4291705f2c5ca9f04ff003d4e6d32a7c0d 100755 (executable)
@@ -8,15 +8,15 @@
 */
 package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.handler;
 
-import java.util.ArrayList;
-import java.util.Iterator;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 import java.util.UUID;
+import java.util.stream.Collectors;
 
 import javax.inject.Named;
 
 import org.eclipse.core.runtime.ICoreRunnable;
-import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.e4.core.di.annotations.CanExecute;
@@ -30,20 +30,25 @@ import org.eclipse.jface.window.Window;
 import org.eclipse.jface.wizard.WizardDialog;
 
 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.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.description.DescriptiveDataSet;
-import eu.etaxonomy.cdm.model.location.NamedArea;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
 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.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.operation.IFeedbackGenerator;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.dialog.configurator.StructuredAggregationConfigurationWizard;
@@ -53,6 +58,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) {
 
@@ -60,54 +66,63 @@ public class AggregationHandler {
         CharacterMatrixPart matrixPart = (CharacterMatrixPart) activePart.getObject();
 
         CharacterMatrix matrix = matrixPart.getMatrix();
+        if(StoreUtil.promptCheckIsDirty(matrixPart)){
+            return;
+        }
 
-        StructuredDescriptionAggregationConfiguration config = StructuredDescriptionAggregationConfiguration.NewInstance(
-                null, null);
-        IStructuredSelection sel = matrix.getSelection();
-//        Object o = sel.getFirstElement();
-        List<TaxonNodeDto> nodeDtos = new ArrayList<>();
-        Iterator iterator = sel.iterator();
-        while (iterator.hasNext()){
-            Object o = iterator.next();
-            if (o instanceof TaxonNodeDto){
-                nodeDtos.add((TaxonNodeDto)o);
+
+        //ranks
+        UUID minRankUuid = matrix.getDescriptiveDataSet().getMinRank() != null? matrix.getDescriptiveDataSet().getMinRank().getUuid(): null;
+        UUID maxRankUuid = matrix.getDescriptiveDataSet().getMaxRank() != null? matrix.getDescriptiveDataSet().getMaxRank().getUuid(): null;
+        TaxonNodeFilter filter = TaxonNodeFilter.NewRankInstance(minRankUuid, maxRankUuid);
+
+        //geofilter
+        if (matrix.getDescriptiveDataSet().getGeoFilter() != null){
+            for (TermDto namedArea : matrix.getDescriptiveDataSet().getGeoFilter()) {
+                filter = filter.orArea(namedArea.getUuid());
             }
         }
-        TaxonNodeFilter filter = TaxonNodeFilter.NewRankInstance(matrix.getDescriptiveDataSet().getMinRank(),
-                matrix.getDescriptiveDataSet().getMaxRank());
-        for (NamedArea namedArea : matrix.getDescriptiveDataSet().getGeoFilter()) {
-            filter = filter.orArea(namedArea.getUuid());
-        }
-
 
+        //taxon nodes
+        IStructuredSelection sel = matrix.getSelection();
+        @SuppressWarnings("unchecked")
+        List<TaxonNodeDto> nodeDtos = (List<TaxonNodeDto>)sel.toList().stream()
+            .filter(o->o instanceof TaxonNodeDto)
+            .collect(Collectors.toList());
         if (!nodeDtos.isEmpty()){
             for (TaxonNodeDto dto: nodeDtos){
                 filter = filter.orSubtree(dto.getUuid());
             }
         }else{
-            for (TaxonNode taxonNode : matrix.getDescriptiveDataSet().getTaxonSubtreeFilter()) {
-                filter = filter.orSubtree(taxonNode);
-            }
+               if (matrix.getDescriptiveDataSet() != null && matrix.getDescriptiveDataSet().getSubTreeFilter() != null){
+                   for (TaxonNodeDto taxonNode : matrix.getDescriptiveDataSet().getSubTreeFilter()) {
+                       filter = filter.orSubtree(taxonNode.getUuid());
+                   }
+               }
         }
-        config.setTaxonNodeFilter(filter);
+        filter.setIncludeUnpublished(true);
+
+        StructuredDescriptionAggregationConfiguration config =
+                StructuredDescriptionAggregationConfiguration.NewInstance(filter, (IProgressMonitor)null);
 
         config.setDatasetUuid(matrix.getDescriptiveDataSet().getUuid());
-        config.setAggregateToHigherRanks(true);
-        config.setAggregationMode(AggregationMode.byAreasAndRanks());
+        config.setAggregationMode(AggregationMode.byWithinTaxonAndToParent());
+        config.setIncludeLiterature(true);
+        config.setIncludeDefault(true);
         config.setAdaptBatchSize(false);
-        TaxonNodeDto node = null;
 
         StructuredAggregationConfigurationWizard aggregationWizard = new StructuredAggregationConfigurationWizard(config, matrix.getDescriptiveDataSet(), nodeDtos);
-        WizardDialog dialog = new WizardDialog(StoreUtil.getShell(),
+        WizardDialog dialog = new WizardDialog(AbstractUtility.getShell(),
                 aggregationWizard);
 
         int open = dialog.open();
         if (open != Window.OK){
             return;
         }
-        UUID monitorUuid =  CdmApplicationState.getLongRunningTasksService().invoke(config);
 
-        String jobLabel = "Aggregate Descriptive Data Set";
+        //job
+        String jobLabel = "Aggregate Descriptive Dataset";
+        UUID monitorUuid =  CdmApplicationState.getLongRunningTasksService().invoke(config);
         Job job = Job.create(jobLabel, (ICoreRunnable) monitor -> {
             SubMonitor subMonitor = SubMonitor.convert(monitor);
             subMonitor.beginTask(jobLabel, IProgressMonitor.UNKNOWN);
@@ -118,32 +133,34 @@ public class AggregationHandler {
                                 monitorUuid,
                                 50,
                                 null,
-                                (List)null,
+                                (List<IFeedbackGenerator>)null,
                                 subMonitor);
                 Object resultObject = remotingMonitor.getResult();
                 if(resultObject instanceof Exception){
                     MessagingUtils.errorDialog("Aggregation failed", this, "Aggregation was not successfull", TaxeditorEditorPlugin.PLUGIN_ID, (Exception)resultObject, true, true);
                 }
                 else if(resultObject instanceof UpdateResult){
-                    DescriptiveDataSet dataSet = (DescriptiveDataSet) ((UpdateResult) resultObject).getCdmEntity();
-                    dataSet = matrix.getCdmEntitiySession().load(dataSet, true);
-                    // update local dataset
-                    matrix.setDescriptiveDataSet(dataSet);
-                    matrix.loadDescriptions(false, false);
+                    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);
+                    }
+                    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(), PreferencesUtil.getGlobalLanguage());
+                                       boolean isRemoved = matrixPart.getMatrix().getDescriptions().remove(rowWrapper);
+                                       matrixPart.getMatrix().getDescriptions().add(rowWrapper);
+                       }
                 }
             } catch (InterruptedException e) {
                 return;
             }
+
             monitor.done();
         });
-//        job.addJobChangeListener(new JobChangeAdapter(){
-//            @Override
-//            public void done(IJobChangeEvent event) {
-//                CharacterMatrixBottomToolbar.this.getDisplay().asyncExec(()->{
-//                    matrix.redraw();
-//                });
-//            }
-//        });
+
         job.schedule();
     }
 
@@ -156,6 +173,5 @@ public class AggregationHandler {
                 !(selection.getFirstElement() instanceof TaxonRowWrapperDTO) );
 
         return canExecute;
-
     }
-}
+}
\ No newline at end of file
index 124dfb101d66812dbeb14e65dbd3558517d35fc7..1f1bc70ab0364b1933e889073ba87cacb13701b7 100644 (file)
@@ -17,8 +17,8 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 
 import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
 import eu.etaxonomy.cdm.model.description.DescriptionType;
-import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
-import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.persistence.dto.DescriptionBaseDto;
+import eu.etaxonomy.cdm.persistence.dto.DescriptiveDataSetBaseDto;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrixPart;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -41,12 +41,12 @@ public class CreateDefaultTaxonDescriptionHandler extends CreateTaxonDescription
         boolean canExecute = super.canExecute(activePart, menuItem);
         if(canExecute){
             CharacterMatrixPart matrixPart = (CharacterMatrixPart) activePart.getObject();
-            DescriptiveDataSet descriptiveDataSet = matrixPart.getDescriptiveDataSet();
+            DescriptiveDataSetBaseDto descriptiveDataSet = matrixPart.getDescriptiveDataSet();
             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 d500e81911d08c45f76ee48d7c1f8ad4ff180e78..af459357c60e4077796d70d65e6d2f6fbe51f67a 100644 (file)
@@ -21,9 +21,10 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
 import eu.etaxonomy.cdm.api.service.dto.TaxonRowWrapperDTO;
 import eu.etaxonomy.cdm.model.description.DescriptionType;
-import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
+import eu.etaxonomy.cdm.persistence.dto.DescriptiveDataSetBaseDto;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrixPart;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
@@ -40,12 +41,13 @@ public abstract class CreateTaxonDescriptionHandler {
         if(StoreUtil.promptCheckIsDirty(matrixPart)){
             return;
         }
-        DescriptiveDataSet descriptiveDataSet = matrixPart.getDescriptiveDataSet();
+        DescriptiveDataSetBaseDto descriptiveDataSet = matrixPart.getDescriptiveDataSet();
         TaxonNodeDto node = (TaxonNodeDto) matrixPart.getSelection().getFirstElement();
         TaxonRowWrapperDTO taxonRowWrapperDTO = CdmStore.getService(IDescriptiveDataSetService.class)
-                .createTaxonDescription(descriptiveDataSet.getUuid(), node.getUuid(), getDescriptionType());
-        matrixPart.getMatrix().getCdmEntitiySession().load(taxonRowWrapperDTO.getDescription(), true);
+                .createTaxonDescription(descriptiveDataSet.getUuid(), node.getUuid(), getDescriptionType(), PreferencesUtil.getGlobalLanguage());
+//        matrixPart.getMatrix().getCdmEntitySession().load(taxonRowWrapperDTO.getDescription(), true);
         matrixPart.getMatrix().getDescriptions().add(taxonRowWrapperDTO);
+        matrixPart.getMatrix().layout();
     }
 
     protected abstract DescriptionType getDescriptionType();
index 57fdfafd0d98edf1b3b113c4bb89c8fb6f35319f..f97352c1ce1758205fe35084fdaa3399038409e5 100755 (executable)
@@ -22,10 +22,9 @@ import org.eclipse.swt.widgets.Shell;
 import eu.etaxonomy.cdm.api.service.config.RemoveDescriptionsFromDescriptiveDataSetConfigurator;
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
 import eu.etaxonomy.cdm.api.service.dto.SpecimenRowWrapperDTO;
-import eu.etaxonomy.cdm.model.description.DescriptionBase;
-import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
-import eu.etaxonomy.cdm.model.description.SpecimenDescription;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.persistence.dto.DescriptionBaseDto;
+import eu.etaxonomy.cdm.persistence.dto.DescriptiveDataSetBaseDto;
 import eu.etaxonomy.cdm.persistence.dto.SpecimenNodeWrapper;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrixPart;
@@ -47,18 +46,18 @@ public class DeleteDescriptionHandler{
 //        if(StoreUtil.promptCheckIsDirty(matrixPart)){
 //            return;
 //        }
-        DescriptiveDataSet descriptiveDataSet = matrixPart.getDescriptiveDataSet();
+        DescriptiveDataSetBaseDto descriptiveDataSet = matrixPart.getDescriptiveDataSet();
         RowWrapperDTO wrapper = (RowWrapperDTO) matrixPart.getSelection().getFirstElement();
-        DescriptionBase description = wrapper.getDescription().getDescription();
+        DescriptionBaseDto description = wrapper.getDescription();
         RemoveDescriptionsFromDescriptiveDataSetConfigurator deleteConfig = new RemoveDescriptionsFromDescriptiveDataSetConfigurator();
 
         if (!DeleteConfiguratorDialog.openConfirmWithConfigurator(deleteConfig, shell, Messages.DeleteDescriptiveDataSetHandler_DELETE_TITLE,  Messages.CharacterMatrix_DELETE_DESCRIPTION)){
             return;
         }
         boolean ok = matrixPart.getMatrix().getDescriptions().remove(wrapper);
-        matrixPart.getMatrix().addDescriptionToDelete(description.getUuid(), deleteConfig);
-        if (description instanceof SpecimenDescription){
-            UuidAndTitleCache<SpecimenOrObservationBase> uuidAndTitleCache = new UuidAndTitleCache<>(((SpecimenRowWrapperDTO)wrapper).getSpecimen().getUuid(), ((SpecimenRowWrapperDTO)wrapper).getSpecimen().getId(), ((SpecimenRowWrapperDTO)wrapper).getSpecimen().getTitleCache());
+        matrixPart.getMatrix().addDescriptionToDelete(description.getDescriptionUuid(), deleteConfig);
+        if (description.getSpecimenDto() != null){
+            UuidAndTitleCache<SpecimenOrObservationBase> uuidAndTitleCache = new UuidAndTitleCache<>(((SpecimenRowWrapperDTO)wrapper).getSpecimenDto().getUuid(), ((SpecimenRowWrapperDTO)wrapper).getSpecimenDto().getId(), ((SpecimenRowWrapperDTO)wrapper).getSpecimenDto().getLabel());
             SpecimenNodeWrapper nodeWrapper = new SpecimenNodeWrapper(uuidAndTitleCache,
                     ((SpecimenRowWrapperDTO)wrapper).getType(),
                     wrapper.getTaxonNode());
@@ -70,6 +69,7 @@ public class DeleteDescriptionHandler{
         }
         matrixPart.getMatrix().update();
         if (ok){
+            matrixPart.getMatrix().redraw();
             matrixPart.setDirty();
         }
     }
@@ -79,7 +79,7 @@ public class DeleteDescriptionHandler{
             MHandledMenuItem menuItem){
 
             CharacterMatrixPart matrixPart = (CharacterMatrixPart) activePart.getObject();
-            DescriptiveDataSet descriptiveDataSet = matrixPart.getDescriptiveDataSet();
+            DescriptiveDataSetBaseDto descriptiveDataSet = matrixPart.getDescriptiveDataSet();
             IStructuredSelection selection = ((CharacterMatrixPart)activePart.getObject()).getSelection();
 
             boolean canExecute = selection.size()==1
index 2dc18b165771cc0ce53f5f82fe7815d2fe7e0fb2..de325d868d36c652ac6616fb61c18da7144e7065 100755 (executable)
@@ -11,12 +11,12 @@ package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.handler;
 import java.util.List;
 import java.util.Set;
 import java.util.UUID;
-import java.util.stream.Collectors;
 
 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,16 +54,21 @@ public class GeneratePolytomousKeyHandler {
         if(StoreUtil.promptCheckIsDirty(matrix.getPart())){
             return;
         }
-        Set<TaxonNodeDto> nodeDtos = matrix.getDescriptiveDataSet().getTaxonSubtreeFilter().stream()
-                .map(node->new TaxonNodeDto(node))
-                .collect(Collectors.toSet());
+        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 data set is :\n%s\n\n"
+                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;
         }
@@ -95,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 b3e4589ef2710d74aafc28c09cbd6d32b44091d9..14c6cc3c110bb7bebc4aa77577fdcaa3144efbf7 100644 (file)
@@ -27,9 +27,10 @@ import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
-import eu.etaxonomy.cdm.model.description.QuantitativeData;
-import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
+import eu.etaxonomy.cdm.persistence.dto.QuantitativeDataDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrix;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
  * @author pplitzner
@@ -49,7 +50,7 @@ public class QuantitativeDataDialog extends CellEditDialog {
         this.matrix = matrix;
     }
 
-    private QuantitativeData editorValue;
+    private QuantitativeDataDto editorValue;
     private RowWrapperDTO<?> rowWrapperDTO;
 
     private QuantitativeDataDialogComposite composite;
@@ -60,7 +61,7 @@ public class QuantitativeDataDialog extends CellEditDialog {
         return composite;
     }
 
-    void setEditorValue(QuantitativeData editorValue) {
+    void setEditorValue(QuantitativeDataDto editorValue) {
         this.editorValue = editorValue;
     }
 
@@ -72,29 +73,34 @@ public class QuantitativeDataDialog extends CellEditDialog {
     public boolean close() {
         if(getReturnCode()==Window.OK){
             //clear values
-            editorValue.getStatisticalValues().clear();
+            editorValue.getValues().clear();
             //add back all values from text fields
-            Map<StatisticalMeasure, List<String>> measureToValueMap = new HashMap<>();
+            Map<TermDto, List<String>> measureToValueMap = new HashMap<>();
 
-            Map<StatisticalMeasure, List<Text>> textFields = composite.getTextFields();
-            Set<Entry<StatisticalMeasure,List<Text>>> entrySet = textFields.entrySet();
-            for (Entry<StatisticalMeasure, List<Text>> entry : entrySet) {
-                StatisticalMeasure statisticalMeasure = entry.getKey();
+            Map<TermDto, List<Text>> textFields = composite.getTextFields();
+            Set<Entry<TermDto,List<Text>>> entrySet = textFields.entrySet();
+            for (Entry<TermDto, List<Text>> entry : entrySet) {
+                TermDto statisticalMeasure = entry.getKey();
                 List<String> values = entry.getValue().stream()
                         .filter(text->text.isEnabled())
                         .map(text->text.getText())
                         .collect(Collectors.toList());
                 measureToValueMap.put(statisticalMeasure, values);
             }
-            rowWrapperDTO.setDataValueForQuantitativeData(editorValue.getFeature(), measureToValueMap, composite.getEditorValue().getUnit());
-//            if (composite.getEditorValue().getUnit() == null && (composite.getEditorValue().getFeature().getRecommendedMeasurementUnits() != null && composite.getEditorValue().getFeature().getRecommendedMeasurementUnits().size() == 1)){
-//                editorValue.setUnit(editorValue.getFeature().getRecommendedMeasurementUnits().iterator().next());
-//            }else{
-//                editorValue.setUnit(composite.getEditorValue().getUnit());
-//            }
+            rowWrapperDTO.setDataValueForQuantitativeData(editorValue.getFeatureDto().getUuid(), measureToValueMap, composite.getEditorValue().getMeasurementUnit(), composite.getNoDataValue(), PreferencesUtil.getGlobalLanguage());
+            if (composite.getEditorValue().getMeasurementUnit() == null && (composite.getEditorValue().getFeatureDto().getRecommendedMeasurementUnits() != null && composite.getEditorValue().getFeatureDto().getRecommendedMeasurementUnits().size() == 1)){
+                editorValue.setMeasurementUnit(editorValue.getFeatureDto().getRecommendedMeasurementUnits().iterator().next());
+            }
 
-//            ((QuantitativeData)rowWrapperDTO.getDataValueForFeature(editorValue.getFeature())).setUnit(editorValue.getUnit());
+//            ((QuantitativeDataDto)rowWrapperDTO.getDataValueForFeature(editorValue.getFeatureDto().getUuid())).setMeasurementUnit(editorValue.getMeasurementUnit());
             matrix.putRowToMerge(rowWrapperDTO);
+//            DescriptionElementDto actualSelection = null;
+//            if (rowWrapperDTO.getDataValueForFeature(editorValue.getFeatureDto().getUuid()).iterator().hasNext()) {
+//                actualSelection = rowWrapperDTO.getDataValueForFeature(editorValue.getFeatureDto().getUuid()).iterator()
+//                        .next();
+//            }
+//
+//            matrix.setActualSelection(actualSelection);
             matrix.setDirty();
         }
         return super.close();
index 41db2e8c5fec840858d11cdfb7682a9880d942cd..2ff7df09c9905415bc2b88202e2e29c7839b5e76 100644 (file)
@@ -11,10 +11,13 @@ 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;
 import java.util.Map.Entry;
+import java.util.Set;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.ScrolledComposite;
@@ -29,9 +32,10 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.common.CdmUtils;
-import eu.etaxonomy.cdm.model.description.MeasurementUnit;
-import eu.etaxonomy.cdm.model.description.QuantitativeData;
 import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
+import eu.etaxonomy.cdm.persistence.dto.QuantitativeDataDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.DataDialogComposite;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 
 /**
@@ -39,22 +43,27 @@ import eu.etaxonomy.taxeditor.model.ImageResources;
  * @date 16.07.2018
  *
  */
-public class QuantitativeDataDialogComposite extends Composite {
+public class QuantitativeDataDialogComposite extends DataDialogComposite {
 
-    private Map<StatisticalMeasure, List<Text>> textFieldMap = new HashMap<>();
-    QuantitativeData editorValue;
+    private Map<TermDto, List<Text>> textFieldMap = new HashMap<>();
     Combo unitCombo;
-    Map<MeasurementUnit, Integer> unitMap = null;
-
-    public QuantitativeDataDialogComposite(Character initialInput, QuantitativeData editorVal, Composite parent, int style) {
+   
+    Map<TermDto, Integer> unitMap = null;
+    TermDto exactValueDto = TermDto.fromTerm(StatisticalMeasure.EXACT_VALUE());
+
+   
+    
+    public QuantitativeDataDialogComposite(Character initialInput, QuantitativeDataDto editorVal, Composite parent,
+            int style) {
         super(parent, style);
         this.editorValue = editorVal;
-        if (editorValue.getFeature().getRecommendedMeasurementUnits() != null && editorValue.getFeature().getRecommendedMeasurementUnits().size()>0){
+        if (editorValue.getFeatureDto().getRecommendedMeasurementUnits() != null
+                && editorValue.getFeatureDto().getRecommendedMeasurementUnits().size() > 0) {
             unitMap = new HashMap<>();
-            Integer i = 0;
-            for (MeasurementUnit unit: editorValue.getFeature().getRecommendedMeasurementUnits()){
+            Integer i = editorValue.getFeatureDto().getRecommendedMeasurementUnits().size() - 1;
+            for (TermDto unit : editorValue.getFeatureDto().getRecommendedMeasurementUnits()) {
                 unitMap.put(unit, i);
-                i++;
+                i--;
             }
         }
 
@@ -62,86 +71,169 @@ public class QuantitativeDataDialogComposite extends Composite {
 
         setLayout(new GridLayout(1, false));
 
+        
+        createNoDataCombo(this);
+       
+        
+//        Label lblNoDataLabel = new Label(this, SWT.NONE);
+//        lblNoDataLabel.setText("No Data available");
+//        lblNoDataLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+//
+//        noDataCombo = new Combo(this, SWT.NONE | SWT.READ_ONLY);
+//        noDataCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+//        int index = 1;
+//        noDataCombo.add("", 0);
+//        for (NoDescriptiveDataStatus status : NoDescriptiveDataStatus.values()) {
+//            noDataCombo.add(status.getLabel(), index);
+//            noDataCombo.setData(status.getLabel(), status);
+//            index++;
+//
+//        }
+        
+//        noDataCombo.addSelectionListener(new SelectionAdapter() {
+//
+//            @Override
+//            public void widgetSelected(SelectionEvent e) {
+//                String name = noDataCombo.getText();
+//                editorValue.setNoDataStatus((NoDescriptiveDataStatus)noDataCombo.getData(name));
+//                if (StringUtils.isNotBlank(name)) {
+//                    valuesComposite.setEnabled(false);                    
+//                }else {
+//                    valuesComposite.setEnabled(true);
+//                }
+//            }
+//
+//        });
+        
         ScrolledComposite scrolledComposite_1 = new ScrolledComposite(this, SWT.BORDER | SWT.V_SCROLL);
         scrolledComposite_1.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
         scrolledComposite_1.setExpandHorizontal(true);
         scrolledComposite_1.setExpandVertical(true);
-
-        Composite valuesComposite = new Composite(scrolledComposite_1, SWT.NONE);
+        valuesComposite = new Composite(scrolledComposite_1, SWT.NONE);
         GridLayout gl_valuesComposite = new GridLayout();
         gl_valuesComposite.marginWidth = 0;
         gl_valuesComposite.marginHeight = 0;
         valuesComposite.setLayout(gl_valuesComposite);
 
-        Composite composite_2 = new Composite(valuesComposite, SWT.NONE);
-        composite_2.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
-        GridLayout gl_composite_2 = new GridLayout(2, false);
-        gl_composite_2.marginHeight = 0;
-        gl_composite_2.marginWidth = 0;
-        gl_composite_2.verticalSpacing = 0;
-        gl_composite_2.horizontalSpacing = 2;
-        composite_2.setLayout(gl_composite_2);
-
-        Label lblNewLabel = new Label(composite_2, SWT.NONE);
+        Label lblNewLabel = new Label(valuesComposite, SWT.NONE);
         lblNewLabel.setText("Measurement Unit");
         lblNewLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
-        if (editorValue.getFeature().getRecommendedMeasurementUnits() != null && editorValue.getFeature().getRecommendedMeasurementUnits().size() == 1){
-            Label lblUnit = new Label(composite_2, SWT.BORDER);
-            lblUnit.setText(editorValue.getFeature().getRecommendedMeasurementUnits().iterator().next().getLabel());
+        if (editorValue.getFeatureDto().getRecommendedMeasurementUnits() != null
+                && editorValue.getFeatureDto().getRecommendedMeasurementUnits().size() == 1) {
+            Label lblUnit = new Label(valuesComposite, SWT.BORDER);
+            lblUnit.setText(
+                    editorValue.getFeatureDto().getRecommendedMeasurementUnits().iterator().next().getIdInVocabulary());
             lblUnit.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
-            editorValue.setUnit(editorValue.getFeature().getRecommendedMeasurementUnits().iterator().next());
-        }else if (editorValue.getFeature().getRecommendedMeasurementUnits() != null && editorValue.getFeature().getRecommendedMeasurementUnits().size() > 1){
-            unitCombo = new Combo(composite_2, SWT.NONE | SWT.READ_ONLY);
+            ((QuantitativeDataDto)editorValue)
+                    .setMeasurementUnit(editorValue.getFeatureDto().getRecommendedMeasurementUnits().iterator().next());
+        } else if (editorValue.getFeatureDto().getRecommendedMeasurementUnits() != null
+                && editorValue.getFeatureDto().getRecommendedMeasurementUnits().size() > 1) {
+            unitCombo = new Combo(valuesComposite, SWT.NONE | SWT.READ_ONLY);
             unitCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
-            for (Entry<MeasurementUnit, Integer> unit: unitMap.entrySet()){
-                unitCombo.add(unit.getKey().getTitleCache(), unit.getValue());
-                unitCombo.setData(unit.getKey().getTitleCache(), unit.getKey());
+
+            Set<Entry<TermDto, Integer>> entries = unitMap.entrySet();
+            TermDto[] terms = new TermDto[entries.size()];
+
+            for (Entry<TermDto, Integer> unit : unitMap.entrySet()) {
+                if (unit.getValue() != null) {
+                    terms[unit.getValue()] = unit.getKey();
+                }
             }
-            if (editorValue.getUnit()!= null){
-                unitCombo.select(unitMap.get(editorValue.getUnit()));
+            int index = 0;
+            for (TermDto term : terms) {
+                unitCombo.add(term.getTitleCache(), index);
+                unitCombo.setData(term.getTitleCache(), term);
+                index++;
+            }
+            if (((QuantitativeDataDto)editorValue).getMeasurementUnit() != null) {
+                unitCombo.select(unitMap.get(((QuantitativeDataDto)editorValue).getMeasurementUnit()));
+            } else {
+                unitCombo.select(0);
+                String name = unitCombo.getText();
+                ((QuantitativeDataDto)editorValue).setMeasurementUnit((TermDto) unitCombo.getData(name));
             }
 
-            unitCombo.addSelectionListener(new SelectionAdapter(){
+            unitCombo.addSelectionListener(new SelectionAdapter() {
 
                 @Override
                 public void widgetSelected(SelectionEvent e) {
                     String name = unitCombo.getText();
-                    editorValue.setUnit((MeasurementUnit)unitCombo.getData(name));
+                    ((QuantitativeDataDto)editorValue).setMeasurementUnit((TermDto) unitCombo.getData(name));
                 }
 
             });
         }
 
-        //add empty text field for exact value
-        Text emptyTextField = addText(valuesComposite, StatisticalMeasure.EXACT_VALUE(), initialInput==null?null:initialInput.toString());
+        // add empty text field for exact value
+        Text emptyTextField = addText(valuesComposite, exactValueDto,
+                initialInput == null ? null : initialInput.toString());
         emptyTextField.setFocus();
         emptyTextField.setSelection(emptyTextField.getText().length());
 
-        //add existing exact values
-        editorValue.getStatisticalValues().stream()
-        .filter(measure->measure.getType().equals(StatisticalMeasure.EXACT_VALUE()))
-        .forEach(exact->addText(valuesComposite, exact.getType(), exact.getValue().toString()));
+        // add existing exact values
+        ((QuantitativeDataDto)editorValue).getValues().stream()
+                .filter(measure -> measure.getType().getUuid().equals(StatisticalMeasure.EXACT_VALUE().getUuid()))
+                .forEach(exact -> addText(valuesComposite, exact.getType(), exact.getValue().toString()));
 
+        //
 
+        // add aggregation values
+        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);
+                }
+            });
 
-        //add aggregation values
-        editorValue.getFeature().getRecommendedStatisticalMeasures()
-        .stream()
-        .filter(sm->!sm.equals(StatisticalMeasure.EXACT_VALUE()))
-        .forEach(measure->{
-            BigDecimal specificStatisticalValue = editorValue.getSpecificStatisticalValue(measure);
-            addText(valuesComposite, measure, specificStatisticalValue!=null?specificStatisticalValue.toString():null);
-        });
+            orderedStatisticalMeasures.stream().filter(sm -> !sm.equals(exactValueDto)).forEach(measure -> {
+                BigDecimal specificStatisticalValue = ((QuantitativeDataDto)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, StatisticalMeasure type, String value){
+    private Text addText(Composite valuesComposite, TermDto type, String value) {
         Composite composite_2 = new Composite(valuesComposite, SWT.NONE);
         composite_2.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
         GridLayout gl_composite_2 = new GridLayout(4, false);
@@ -152,60 +244,78 @@ public class QuantitativeDataDialogComposite extends Composite {
         composite_2.setLayout(gl_composite_2);
 
         Label lblNewLabel = new Label(composite_2, SWT.NONE);
-        lblNewLabel.setText(type.getLabel());
+        lblNewLabel.setText(type.getTitleCache());
 
         Text text = new Text(composite_2, SWT.BORDER);
 
         GridData gd_text = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
         gd_text.widthHint = 15;
         text.setLayoutData(gd_text);
-        if(value!=null){
+        if (value != null) {
             text.setText(value);
         }
 
         List<Text> list = textFieldMap.get(type);
-        if(list==null){
+        if (list == null) {
             list = new ArrayList<>();
         }
         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->{
+        text.addModifyListener(e -> {
             boolean hasExactValues = textFieldMap.entrySet().stream()
-                    .filter(entry->entry.getKey().equals(StatisticalMeasure.EXACT_VALUE()))
-            .anyMatch(exactEntry->exactEntry.getValue().stream().anyMatch(exactText->CdmUtils.isNotBlank(exactText.getText()))
-            );
-            if(hasExactValues){
-                enableAggregationFields(false);
-            }
-            else{
-                enableAggregationFields(true);
-            }
+                    .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);
+            // if(hasExactValues){
+            // enableAggregationFields(false);
+            // }
+            // else{
+            // enableAggregationFields(true);
+            // }
         });
         return text;
     }
 
-    private void enableAggregationFields(boolean enabled){
-        textFieldMap.entrySet().stream()
-        .filter(entry->!entry.getKey().equals(StatisticalMeasure.EXACT_VALUE()))
-        .forEach(aggEntry->aggEntry.getValue().forEach(aggText->aggText.setEnabled(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(enableAggregatedValues)));
+        boolean enableExactValues = hasExactValues == (hasAggregatedValues != hasExactValues);
+        textFieldMap.entrySet().stream().filter(entry -> entry.getKey().equals(exactValueDto))
+                .forEach(aggEntry -> aggEntry.getValue().forEach(aggText -> aggText.setEnabled(enableExactValues)));
     }
 
-    public Map<StatisticalMeasure, List<Text>> getTextFields() {
+    public Map<TermDto, List<Text>> getTextFields() {
         return textFieldMap;
     }
 
-    public QuantitativeData getEditorValue() {
-        return editorValue;
+    public QuantitativeDataDto getEditorValue() {
+        return ((QuantitativeDataDto)editorValue);
     }
-
+    
+  
 }
index c109621d286b0d97c914bb87ef344b9a3368d246..e8360878f5fc41ea816c3f6850b4e79bd844b093 100644 (file)
@@ -8,7 +8,9 @@
 */
 package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.quantitative;
 
+import java.util.Iterator;
 import java.util.Map;
+import java.util.Set;
 
 import org.eclipse.jface.window.Window;
 import org.eclipse.nebula.widgets.nattable.config.IConfigRegistry;
@@ -20,9 +22,9 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.QuantitativeData;
+import eu.etaxonomy.cdm.persistence.dto.DescriptionElementDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.QuantitativeDataDto;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrix;
 
 /**
@@ -32,7 +34,7 @@ import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrix;
  */
 public class QuantitativeDataDialogEditor extends AbstractDialogCellEditor {
 
-    private QuantitativeData editorValue;
+    private QuantitativeDataDto editorValue;
     private RowWrapperDTO<?> rowWrapperDTO;
     private boolean closed;
     private CharacterMatrix matrix;
@@ -70,9 +72,9 @@ public class QuantitativeDataDialogEditor extends AbstractDialogCellEditor {
 
     @Override
     public void setEditorValue(Object value) {
-        ((QuantitativeDataDialog)this.dialog).setEditorValue((QuantitativeData) value);
+        ((QuantitativeDataDialog)this.dialog).setEditorValue((QuantitativeDataDto) value);
         ((QuantitativeDataDialog)this.dialog).setRowWrapper(rowWrapperDTO);
-        this.editorValue = (QuantitativeData) value;
+        this.editorValue = (QuantitativeDataDto) value;
     }
 
     @Override
@@ -92,14 +94,27 @@ public class QuantitativeDataDialogEditor extends AbstractDialogCellEditor {
             ICellEditHandler editHandler, ILayerCell cell, IConfigRegistry configRegistry) {
         this.initialInput = null;
         Object rowObject = matrix.getBodyDataProvider().getRowObject(cell.getRowIndex());
-        Feature feature = matrix.getIndexToFeatureMap().get(cell.getColumnIndex());
-        QuantitativeData quantitativeData = null;
+        FeatureDto feature = matrix.getIndexToFeatureMap().get(cell.getColumnIndex());
+        
+        QuantitativeDataDto quantitativeData = null;
         if(rowObject instanceof RowWrapperDTO){
             rowWrapperDTO = (RowWrapperDTO<?>) rowObject;
-            DescriptionElementBase dataValueForFeature = rowWrapperDTO.getDataValueForFeature(feature);
-            if(dataValueForFeature instanceof QuantitativeData){
-                quantitativeData = (QuantitativeData) dataValueForFeature;
+            Set<DescriptionElementDto> dataValueForFeature = rowWrapperDTO.getDataValueForFeature(feature.getUuid());
+            if (dataValueForFeature != null && dataValueForFeature.size() > 1){
+               return null;
             }
+            
+            DescriptionElementDto dto = null;
+            if (dataValueForFeature != null){
+               Iterator<DescriptionElementDto> it = dataValueForFeature.iterator();
+                   if(it.hasNext() ){
+                       dto = it.next();                        
+                   }
+            }
+            if(dto instanceof QuantitativeDataDto){
+                       quantitativeData = (QuantitativeDataDto) dto;
+                       quantitativeData.setFeatureDto(feature);
+               }
             //create new Quantitative Data
             if (quantitativeData == null) {
                 quantitativeData = ((RowWrapperDTO) rowObject).addQuantitativeData(feature);
index efb23dbb09b317bc7dfb336e35fc88fd2d427638..d2b489a48e5a85a83f941224b12258acd9d5a508 100644 (file)
@@ -10,7 +10,8 @@ package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.quantitative;
 
 import org.eclipse.nebula.widgets.nattable.data.convert.DisplayConverter;
 
-import eu.etaxonomy.cdm.model.description.QuantitativeData;
+import eu.etaxonomy.cdm.persistence.dto.QuantitativeDataDto;
+
 
 /**
  * Converts QuantitativeData of one cell of the character matrix to a String.
@@ -23,7 +24,7 @@ public class QuantitativeDataEditModeDisplayConverter extends DisplayConverter {
 
     @Override
     public Object canonicalToDisplayValue(Object canonicalValue) {
-        if(canonicalValue instanceof QuantitativeData){
+        if(canonicalValue instanceof QuantitativeDataDto){
             return canonicalValue;
         }
         if(canonicalValue!=null){
index 303201ea03b5b3068fd8a5af87bf447e351048a3..b3cf5e265d794e995f0d46240a814501a4191dd4 100644 (file)
@@ -10,13 +10,13 @@ package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.supplementalInfo
 
 import org.eclipse.nebula.widgets.nattable.data.convert.DisplayConverter;
 
-import eu.etaxonomy.cdm.api.service.dto.DescriptionBaseDto;
 import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
+import eu.etaxonomy.cdm.persistence.dto.DescriptionBaseDto;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 
 /**
@@ -55,9 +55,9 @@ public class SupplementalInfoDisplayConverter extends DisplayConverter{
         else if(HibernateProxyHelper.isInstanceOf(canonicalValue, NamedArea.class)){
             displayValue = HibernateProxyHelper.deproxy(canonicalValue, NamedArea.class).getLabel();
         }else if (canonicalValue instanceof RowWrapperDTO){
-            displayValue = ((RowWrapperDTO)canonicalValue).getDescription().getDescription().getTitleCache();
+            displayValue = ((RowWrapperDTO)canonicalValue).getDescription().getTitleCache();
         }else if (canonicalValue instanceof DescriptionBaseDto){
-            displayValue = ((DescriptionBaseDto)canonicalValue).getDescription().getTitleCache();
+            displayValue = ((DescriptionBaseDto)canonicalValue).getTitleCache();
         }
 
         if(displayValue.isEmpty() && canonicalValue!=null){
similarity index 69%
rename from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/e4/TaxonEditorInputE4.java
rename to eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/e4/TaxonEditorInput.java
index 4fd4915ec033818ab4f1126e4c0c7d16aec06ed4..8711c666e5ee86254e286bdb0797033116a05972 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.editor.e4;
 
 import java.util.ArrayList;
@@ -29,8 +28,6 @@ import org.eclipse.core.runtime.Status;
 import org.eclipse.e4.ui.di.UISynchronize;
 import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.api.service.INameService;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
@@ -47,13 +44,11 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput;
 import eu.etaxonomy.taxeditor.editor.ChooseFromMultipleAcceptedTaxaDialog;
 import eu.etaxonomy.taxeditor.editor.ChooseFromMultipleTaxonNodesDialog;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.DataChangeBridge;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -61,28 +56,24 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
-
 /**
  * @author pplitzner
  * @date Aug 24, 2017
  */
-public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConversationEnabled {
+public class TaxonEditorInput  extends CdmEntitySessionInput<TaxonNode>{
 
     private static final String INCORRECT_STATE = Messages.TaxonEditorInput_INCORRECT_STATE;
 
-    private final ConversationHolder conversation;
-
     private TaxonNode taxonNode;
 
     private Map<TaxonBase, TaxonBaseDeletionConfigurator> toDeletes = new HashMap<>();
     private Set<Synonym> toSaveNewSynonyms = new HashSet<>();
-    private List<TaxonBase> toSaveNewConcepts = new ArrayList<>();
-    private List<TaxonName> toSaveNewNames = new ArrayList<>();
-
+    private Set<TaxonBase> toSaveConcepts = new HashSet<>();
+    private Set<TaxonName> toSaveNewNames = new HashSet<>();
 
     private Set<AbstractPostOperation> operations = new HashSet<>();
 
-    private TaxonEditorInputDataChangeBehaviourE4 dataChangeBehavior;
+//    private TaxonEditorInputDataChangeBehaviourE4 dataChangeBehavior;
 
     private TaxonBase<?> initiallySelectedTaxonBase;
 
@@ -99,10 +90,9 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
         PARENT_TAXON_NODE
     }
 
-    private TaxonEditorInputE4(UUID uuid, CdmType type) {
+    private TaxonEditorInput(UUID uuid, CdmType type) {
         super(true);
-        this.conversation = CdmStore.createConversation();
-        switch(type) {
+       switch(type) {
         case PARENT_TAXON_NODE:
             initForParentTaxonNode(uuid);
             break;
@@ -112,6 +102,8 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
         case TAXON_NODE:
             initForTaxonNode(uuid);
             break;
+        default:
+            throw new RuntimeException("Type not supported yet for TaxonEditorInput: " + type);
         }
     }
 
@@ -124,11 +116,10 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
         TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(taxonNodeUuid, getTaxonNodePropertyPaths());
 //     TaxonNode taxonNode = getCdmEntitySession().remoteLoad(CdmStore.getService(ITaxonNodeService.class), taxonNodeUuid, getTaxonNodePropertyPaths());
         if(taxonNode == null){
-            MessagingUtils.warningDialog(Messages.TaxonEditorInput_NOT_IMPLEMENTED, TaxonEditorInputE4.class, Messages.TaxonEditorInput_NOT_IMPLEMENTED_MESSAGE);
+            MessagingUtils.warningDialog(Messages.TaxonEditorInput_NOT_IMPLEMENTED, TaxonEditorInput.class, Messages.TaxonEditorInput_NOT_IMPLEMENTED_MESSAGE);
         }
         init(taxonNode);
         setInitiallySelectedTaxonBase(getTaxon());
-
     }
 
     private void initForTaxonBase(UUID taxonBaseUuid) {
@@ -154,10 +145,10 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
                     if (taxon.getTaxonNodes().size() > 0){
                         acceptedTaxa.add(taxon);
                     }
-                    setInputForRelatedTaxa(conversation, acceptedTaxa);
+                    setInputForRelatedTaxa(acceptedTaxa);
 
                 }else{
-                    setInputForMultipleNodes(conversation, taxon.getTaxonNodes());
+                    setInputForMultipleNodes(taxon.getTaxonNodes());
                 }
             }else if(taxonBase instanceof Synonym){
                 Synonym synonym = (Synonym) taxonBase;
@@ -167,13 +158,12 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
                 if (taxon != null){
                        taxa.add(taxon);
                 }
-                setInputForMultipleTaxa(conversation, taxa);
+                setInputForMultipleTaxa(taxa);
                 setInitiallySelectedTaxonBase(synonym);
             }
         }
     }
 
-
     private void initForParentTaxonNode(UUID parentNodeUuid){
        this.getCdmEntitySession().bind();
         TaxonName name = PreferencesUtil.getPreferredNomenclaturalCode().getNewTaxonNameInstance(null);
@@ -188,7 +178,7 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
         initForTaxonNode(newTaxonNodeUuid);
     }
 
-    private void setInputForMultipleNodes(ConversationHolder conversation, Set<TaxonNode> taxonNodes){
+    private void setInputForMultipleNodes(Set<TaxonNode> taxonNodes){
         if(taxonNodes.size() == 1){
             TaxonNode taxonNode = taxonNodes.iterator().next();
             taxonNode = getCdmEntitySession().remoteLoad(CdmStore.getService(ITaxonNodeService.class), taxonNode.getUuid(), getTaxonNodePropertyPaths());
@@ -204,28 +194,28 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
             }
         } else if (taxonNodes.size() == 0) {
             // this is an undesired state
-            MessagingUtils.warningDialog(INCORRECT_STATE,TaxonEditorInputE4.class,Messages.TaxonEditorInput_TAXON_NOT_IN_CLASSIFICATION);
+            MessagingUtils.warningDialog(INCORRECT_STATE,TaxonEditorInput.class,Messages.TaxonEditorInput_TAXON_NOT_IN_CLASSIFICATION);
         }
     }
 
-    private void setInputForMultipleTaxa(ConversationHolder conversation, Set<Taxon> taxa){
+    private void setInputForMultipleTaxa(Set<Taxon> taxa){
         if(taxa.size() == 1){
             Taxon taxon = taxa.iterator().next();
             Set<TaxonNode> nodes = taxon.getTaxonNodes();
-            setInputForMultipleNodes(conversation, nodes);
+            setInputForMultipleNodes(nodes);
         }else if(taxa.size() > 1){
             Set<TaxonNode> taxonNodes = new HashSet<TaxonNode>();
             for ( Taxon taxon : taxa ){
                 taxonNodes.addAll(taxon.getTaxonNodes());
             }
-            setInputForMultipleNodes(conversation, taxonNodes);
+            setInputForMultipleNodes(taxonNodes);
         }else if(taxa.size() == 0){
             // this is an undesired state
-            MessagingUtils.warningDialog(INCORRECT_STATE, TaxonEditorInputE4.class, Messages.TaxonEditorInput_NO_ACCEPTED_TAXON_PRESENT);
+            MessagingUtils.warningDialog(INCORRECT_STATE, TaxonEditorInput.class, Messages.TaxonEditorInput_NO_ACCEPTED_TAXON_PRESENT);
         }
     }
 
-    private void setInputForRelatedTaxa(ConversationHolder conversation, Set<Taxon> taxa){
+    private void setInputForRelatedTaxa(Set<Taxon> taxa){
         if(taxa.size() == 1){
             Taxon taxon = taxa.iterator().next();
             Set<TaxonNode> nodes = taxon.getTaxonNodes();
@@ -235,7 +225,7 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
             }else if (nodes.size()==1){
                 taxonNode = nodes.iterator().next();
             }else{
-                MessagingUtils.warningDialog(INCORRECT_STATE,TaxonEditorInputE4.class,Messages.TaxonEditorInput_TAXON_NOT_IN_CLASSIFICATION);
+                MessagingUtils.warningDialog(INCORRECT_STATE,TaxonEditorInput.class,Messages.TaxonEditorInput_TAXON_NOT_IN_CLASSIFICATION);
             }
             init(taxonNode);
         }else if(taxa.size() > 1){
@@ -254,22 +244,21 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
             }
         } else if (taxa.size() == 0) {
             // this is an undesired state
-            MessagingUtils.warningDialog(INCORRECT_STATE,TaxonEditorInputE4.class,Messages.TaxonEditorInput_TAXON_NOT_IN_CLASSIFICATION);
+            MessagingUtils.warningDialog(INCORRECT_STATE,TaxonEditorInput.class,Messages.TaxonEditorInput_TAXON_NOT_IN_CLASSIFICATION);
         }
     }
 
-    public static TaxonEditorInputE4 NewInstance(UUID taxonNodeUuid) {
-        return new TaxonEditorInputE4(taxonNodeUuid, CdmType.TAXON_NODE);
-
+    public static TaxonEditorInput NewInstance(UUID taxonNodeUuid) {
+        return new TaxonEditorInput(taxonNodeUuid, CdmType.TAXON_NODE);
     }
 
-    public static TaxonEditorInputE4 NewInstanceFromTaxonBase(UUID taxonBaseUuid){
-        return new TaxonEditorInputE4(taxonBaseUuid, CdmType.TAXON_BASE);
+    public static TaxonEditorInput NewInstanceFromTaxonBase(UUID taxonBaseUuid){
+        return new TaxonEditorInput(taxonBaseUuid, CdmType.TAXON_BASE);
     }
 
 
-    public static TaxonEditorInputE4 NewEmptyInstance(UUID parentNodeUuid){
-        return new TaxonEditorInputE4(parentNodeUuid, CdmType.PARENT_TAXON_NODE);
+    public static TaxonEditorInput NewEmptyInstance(UUID parentNodeUuid){
+        return new TaxonEditorInput(parentNodeUuid, CdmType.PARENT_TAXON_NODE);
     }
 
     public Object getAdapter(Class adapter) {
@@ -293,11 +282,11 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
      */
     @Override
     public boolean equals(Object obj) {
-        if (TaxonEditorInputE4.class.equals(obj.getClass())
+        if (TaxonEditorInput.class.equals(obj.getClass())
                 && getTaxon() != null
-                && getTaxon().equals(((TaxonEditorInputE4) obj).getTaxon())) {
-            if (((TaxonEditorInputE4) obj).getInitiallySelectedTaxonBase() != null){
-                setInitiallySelectedTaxonBase(((TaxonEditorInputE4) obj).getInitiallySelectedTaxonBase());
+                && getTaxon().equals(((TaxonEditorInput) obj).getTaxon())) {
+            if (((TaxonEditorInput) obj).getInitiallySelectedTaxonBase() != null){
+                setInitiallySelectedTaxonBase(((TaxonEditorInput) obj).getInitiallySelectedTaxonBase());
             }
             return true;
         }
@@ -306,7 +295,7 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
 
     public Taxon getTaxon(){
         if(taxonNode!=null){
-            Taxon taxon = CdmBase.deproxy(taxonNode.getTaxon(), Taxon.class);
+            Taxon taxon = CdmBase.deproxy(taxonNode.getTaxon());
             return taxon;
         }
         return null;
@@ -316,20 +305,6 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
         return taxonNode;
     }
 
-    @Override
-    public ConversationHolder getConversationHolder() {
-        return conversation;
-    }
-
-    @Override
-    public void update(CdmDataChangeMap events) {
-        if(dataChangeBehavior == null){
-            dataChangeBehavior = new TaxonEditorInputDataChangeBehaviourE4(this);
-        }
-
-        DataChangeBridge.handleDataChange(events, dataChangeBehavior);
-    }
-
     public void setInitiallySelectedTaxonBase(TaxonBase taxonBase) {
         this.initiallySelectedTaxonBase = taxonBase;
     }
@@ -345,9 +320,8 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
     public void addToSaveNewSynonym(Synonym toSaveNew) {
         this.toSaveNewSynonyms.add(toSaveNew);
     }
-    public void addToSaveNewConcept(Taxon toSaveNew) {
-       this.toSaveNewConcepts.add(toSaveNew);
-
+    public void addToSaveConcept(Taxon toSaveNew) {
+       this.toSaveConcepts.add(toSaveNew);
     }
 
     @Override
@@ -364,6 +338,50 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
             delete(entry.getKey(), entry.getValue());
         }
         toDeletes.clear();
+
+        // new concepts needs to be saved separately, the list contains all concepts, the
+        for (TaxonBase<?> concept: toSaveConcepts){
+            if (concept != null){
+                if (concept.getName() != null){
+                    for (HybridRelationship rel : concept.getName().getHybridChildRelations()){
+                        toSaveNewNames.add(rel.getParentName());
+                        toSaveNewNames.add(rel.getHybridName());
+                    }
+                }
+            }
+        }
+
+        //handle cascading for hybrid relationshis
+        //accepted taxa
+        if (taxonNode.getTaxon().getName() != null){
+            for (HybridRelationship rel : taxonNode.getTaxon().getName().getHybridChildRelations()){
+                toSaveNewNames.add(rel.getParentName());
+                toSaveNewNames.add(rel.getHybridName());
+            }
+        }
+        //synonyms
+        for (TaxonName synonymName : taxonNode.getTaxon().getSynonymNames()){
+            if (synonymName != null){
+                for (HybridRelationship rel : synonymName.getHybridChildRelations()){
+                    toSaveNewNames.add(rel.getParentName());
+                    toSaveNewNames.add(rel.getHybridName());
+                }
+            }
+        }
+
+
+        if (!toSaveNewNames.isEmpty()){
+               List<TaxonName> listNames = new ArrayList(toSaveNewNames);
+            CdmStore.getService(INameService.class).merge(listNames, true);
+        }
+        if (!toSaveConcepts.isEmpty()){
+               List<TaxonBase> listTaxa = new ArrayList(toSaveConcepts);
+            CdmStore.getService(ITaxonService.class).merge(listTaxa, true);
+        }
+
+        toSaveNewNames.clear();
+        toSaveConcepts.clear();
+
         for(AbstractPostOperation<?> entry:operations){
             IStatus status = Status.CANCEL_STATUS;
             final IAdaptable uiInfoAdapter = WorkspaceUndoUtil
@@ -373,57 +391,20 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
                 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);
-
             }
 
-            String statusString = status.equals(Status.OK_STATUS) ? "completed"
-                    : "cancelled";
-
             IPostOperationEnabled postOperationEnabled = entry
                     .getPostOperationEnabled();
             if (postOperationEnabled != null) {
                 postOperationEnabled.onComplete();
             }
 
-
             //AbstractUtility.executeOperation(entry,sync);
         }
 
         operations.clear();
-        for (Synonym syn: toSaveNewSynonyms){
-            for (HybridRelationship rel : syn.getName().getHybridChildRelations()){
-//                if (!rel.getParentName().isPersited()) {
-                    toSaveNewNames.add(rel.getParentName());
-//                }
-//                    if (!rel.getHybridName().isPersited()) {
-                   toSaveNewNames.add(rel.getHybridName());
-//                }
-
-            }
-        }
-
-        for (TaxonBase<?> concept: toSaveNewConcepts){
-            for (HybridRelationship rel : concept.getName().getHybridChildRelations()){
-//                if (!rel.getParentName().isPersited()) {
-                    toSaveNewNames.add(rel.getParentName());
-//                }
-//                if (!rel.getHybridName().isPersited()) {
-                    toSaveNewNames.add(rel.getHybridName());
-//                }
-
-            }
-        }
-        CdmStore.getService(INameService.class).merge(toSaveNewNames, true);
-        CdmStore.getService(ITaxonService.class).merge(toSaveNewConcepts, true);
-
-        toSaveNewNames.clear();
-        toSaveNewConcepts.clear();
-
         CdmStore.getService(ITaxonNodeService.class).merge(taxonNode, true);
-
-
     }
 
     private void delete(TaxonBase key, TaxonBaseDeletionConfigurator value) {
@@ -458,27 +439,66 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
                 "extensions", //$NON-NLS-1$
                 "rights", //$NON-NLS-1$
                 "sources", //$NON-NLS-1$
+                "sources.links", //$NON-NLS-1$
                 "identifiers",
                 "descriptions", //$NON-NLS-1$
                 "taxonNodes", //$NON-NLS-1$
                 "descriptions.descriptionElements.feature", //$NON-NLS-1$
                 "descriptions.descriptionElements.area", //$NON-NLS-1$
                 "descriptions.descriptionElements.status", //$NON-NLS-1$
+                "descriptions.descriptionElements.markers", //$NON-NLS-1$
+                "descriptions.descriptionElements.sources", //$NON-NLS-1$
+                "descriptions.descriptionElements.annotations", //$NON-NLS-1$
                 "descriptions.markers", //$NON-NLS-1$
+                "descriptions.descriptionSources", //$NON-NLS-1$
+                "descriptions.sources", //$NON-NLS-1$
+                "descriptions.annotations", //$NON-NLS-1$
+                "descriptions.links", //$NON-NLS-1$
                 "name.descriptions", //$NON-NLS-1$
                 "name.typeDesignations.typeSpecimen.derivedFrom.originals", //$NON-NLS-1$
+                "name.typeDesignations.source", //$NON-NLS-1$
+                "name.typeDesignations.source.nameUsedInSource", //$NON-NLS-1$
+                "name.typeDesignations.source.citation", //$NON-NLS-1$
+                "name.typeDesignations.source.links", //$NON-NLS-1$
+                "name.typeDesignations.text", //$NON-NLS-1$
+                "name.typeDesignations.sources", //$NON-NLS-1$
+                "name.typeDesignations.sources.links", //$NON-NLS-1$
                 "name.status", //$NON-NLS-1$
-                "name.nomenclaturalReference.inReference", //$NON-NLS-1$
+                "name.nomenclaturalSource", //$NON-NLS-1$
+                "name.nomenclaturalSource.nameUsedInSource", //$NON-NLS-1$
+                "name.nomenclaturalSource.links.description", //$NON-NLS-1$
+                "name.nomenclaturalSource.citation", //$NON-NLS-1$
+                "name.nomenclaturalSource.citation.inReference", //$NON-NLS-1$
+                "name.nomenclaturalSource.cdmSource", //$NON-NLS-1$
+                "name.nomenclaturalSource.cdmSource.description", //$NON-NLS-1$
+                "name.status.source", //$NON-NLS-1$
+                "name.status.source.links", //$NON-NLS-1$
                 "name.taxonBases.taxonNodes", //$NON-NLS-1$
                 "name.relationsFromThisName", //$NON-NLS-1$
+                "name.relationsFromThisName.source", //$NON-NLS-1$
+                "name.relationsFromThisName.source.links", //$NON-NLS-1$
                 "name.relationsToThisName", //$NON-NLS-1$
+                "name.relationsToThisName.source", //$NON-NLS-1$
+                "name.relationsToThisName.source.links", //$NON-NLS-1$
                 "name.homotypicalGroup.typifiedNames.taxonBases.synonyms.synonym.name.status", //$NON-NLS-1$
                 "name.homotypicalGroup.typifiedNames.relationsToThisName.fromName", //$NON-NLS-1$
+                "name.rank.vocabulary", //$NON-NLS-1$
                 "synonyms.name.status.type", //$NON-NLS-1$
-                "synonyms.name.relationsToThisName.fromName", //$NON-NLS-1$
-                "synonyms.name.nomenclaturalReference.inReference.authorship", //$NON-NLS-1$
-                "synonyms.name.nomenclaturalReference.authorship", //$NON-NLS-1$
-                "synonyms.name.homotypicalGroup.typifiedNames.taxonBases.synonyms" //$NON-NLS-1$
+                "synonyms.name.relationsToThisName.relatedFrom", //$NON-NLS-1$
+                "synonyms.name.relationsFromThisName.relatedTo", //$NON-NLS-1$
+                "synonyms.name.nomenclaturalSource", //$NON-NLS-1$
+                "synonyms.name.nomenclaturalSource.nameUsedInSource", //$NON-NLS-1$
+                "synonyms.name.nomenclaturalSource.links", //$NON-NLS-1$
+                "synonyms.name.nomenclaturalSource.citation", //$NON-NLS-1$
+                "synonyms.name.nomenclaturalSource.citation.inReference", //$NON-NLS-1$
+                "synonyms.name.nomenclaturalSource.cdmSource", //$NON-NLS-1$
+                "synonyms.name.nomenclaturalSource.cdmSource.description", //$NON-NLS-1$
+                "synonyms.name.nomenclaturalSource.citation.inReference.authorship", //$NON-NLS-1$
+                "synonyms.name.nomenclaturalSource.citation.authorship", //$NON-NLS-1$
+                "synonyms.name.homotypicalGroup.typifiedNames.taxonBases.synonyms", //$NON-NLS-1$
+                "relationsFromThisTaxon",//$NON-NLS-1$
+                "relationsToThisTaxon"//$NON-NLS-1$
+
         });
 
         return taxonBasePropertyPaths;
@@ -492,4 +512,4 @@ public class TaxonEditorInputE4  extends CdmEntitySessionInput implements IConve
     public void addToSaveNewName(TaxonName newName) {
         this.toSaveNewNames.add(newName);
     }
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/e4/TaxonEditorInputDataChangeBehaviourE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/e4/TaxonEditorInputDataChangeBehaviourE4.java
deleted file mode 100644 (file)
index 751f059..0000000
+++ /dev/null
@@ -1,33 +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.editor.e4;
-
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.model.AbstractDataChangeBehaviour;
-
-/**
- * @author pplitzner
- * @date Aug 24, 2017
- */
-public class TaxonEditorInputDataChangeBehaviourE4 extends
-               AbstractDataChangeBehaviour {
-
-       private TaxonEditorInputE4 source;
-
-       public TaxonEditorInputDataChangeBehaviourE4(TaxonEditorInputE4 taxonEditorInput) {
-               source = taxonEditorInput;
-       }
-
-       @Override
-       public void reactOnDataChange(CdmDataChangeMap events) {
-               source.update(events);
-
-       }
-}
index 4410ca481516ca1799481c8ee03423af050896ce..5694db462a73f4baca1f19cacc92c8d97b71f65a 100644 (file)
@@ -13,11 +13,8 @@ import java.util.Collection;
 import java.util.UUID;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IGroupService;
 import eu.etaxonomy.cdm.model.permission.Group;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -26,16 +23,14 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  *
  * @author cmathew
  * @created Mar 28, 2013
- *
  */
-
-public class CdmAuthorityEditorInput extends CdmEntitySessionInput implements IConversationEnabled {
-       private ConversationHolder conversation;
+public class CdmAuthorityEditorInput 
+               extends CdmEntitySessionInput<Group> {
+       
        private Group group;
 
-       protected CdmAuthorityEditorInput(ConversationHolder conversation, Group group) {
+       protected CdmAuthorityEditorInput(Group group) {
            super(true);
-               this.conversation = conversation;
                this.group = CdmApplicationState.getCurrentAppConfig().getGroupService().load(group.getUuid());
 
        }
@@ -48,9 +43,8 @@ public class CdmAuthorityEditorInput extends CdmEntitySessionInput implements IC
         * @throws Exception
         */
        public static CdmAuthorityEditorInput NewInstance(UUID groupUuid) throws Exception{
-               ConversationHolder conversation = CdmStore.createConversation();
                Group group = CdmStore.getService(IGroupService.class).load(groupUuid, null);
-               return new CdmAuthorityEditorInput(conversation, group);
+               return new CdmAuthorityEditorInput( group);
        }
 
        public Object getAdapter(Class adapter) {
@@ -60,28 +54,11 @@ public class CdmAuthorityEditorInput extends CdmEntitySessionInput implements IC
 
                return null;
        }
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
-        */
-       @Override
-       public void update(CdmDataChangeMap changeEvents) {
-               // TODO Auto-generated method stub
 
-       }
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
-        */
-       @Override
-       public ConversationHolder getConversationHolder() {
-               return this.conversation;
-       }
        public String getName() {
                return group.getName();
        }
 
-       /* (non-Javadoc)
-        * @see java.lang.Object#equals(java.lang.Object)
-        */
        @Override
        public boolean equals(Object object) {
                if (object instanceof CdmAuthorityEditorInput
@@ -93,29 +70,17 @@ public class CdmAuthorityEditorInput extends CdmEntitySessionInput implements IC
                return super.equals(object);
        }
 
-       /**
-        * Getter method for group member.
-        *
-        * @return
-        */
        public Group getGroup() {
                return this.group;
        }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
-     */
+       
     @Override
     public Collection<Group> getRootEntities() {
         return Arrays.asList(group);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
-     */
     @Override
     public void merge() {
         group = CdmStore.getService(IGroupService.class).merge(group, true).getMergedEntity();
-
     }
-}
+}
\ No newline at end of file
index 7d9783cc7b7c625397a80a8c3fc52fcb8aff7bc8..1d030ba53e5bd6fa985bd2778959ecc79f533ef8 100644 (file)
@@ -21,10 +21,7 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.permission.Group;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditorInput;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
@@ -35,15 +32,13 @@ import eu.etaxonomy.taxeditor.ui.group.grantedauthority.CdmAuthorityCompositeVie
  *
  * @author cmathew
  * @created Mar 28, 2013
- *
  */
-public class CdmAuthorityEditorE4 implements IConversationEnabled, IDirtyMarkable {
+public class CdmAuthorityEditorE4 implements IDirtyMarkable {
 
        public static final String ID = "eu.etaxonomy.taxeditor.editor.group.authority"; //$NON-NLS-1$
 
        @Inject
        private MDirtyable dirty;
-       private ConversationHolder conversation;
        private CdmAuthorityCompositeViewer viewer;
 
        private CdmAuthorityEditorInput input;
@@ -55,18 +50,15 @@ public class CdmAuthorityEditorE4 implements IConversationEnabled, IDirtyMarkabl
 
        @Inject
        public CdmAuthorityEditorE4() {
-
        }
 
        /**
         * Create contents of the editor part.
-        * @param parent
         */
        @PostConstruct
        public void createPartControl(Composite parent) {
                container = new Composite(parent, SWT.NONE);
                container.setLayout(new FillLayout(SWT.HORIZONTAL));
-
        }
 
        @Focus
@@ -80,7 +72,6 @@ public class CdmAuthorityEditorE4 implements IConversationEnabled, IDirtyMarkabl
        public void doSave(IProgressMonitor monitor) {
                try {
                        monitor.beginTask(Messages.CdmAuthorityEditor_SAVING_AUTHORITY_EDITOR, 1);
-                       getConversationHolder().commit(true);
                        input.merge();
                        dirty.setDirty(false);
                        monitor.worked(1);
@@ -92,9 +83,6 @@ public class CdmAuthorityEditorE4 implements IConversationEnabled, IDirtyMarkabl
 
        public void init(CdmAuthorityEditorInput input) {
            this.input = input;
-
-        conversation = input.getConversationHolder();
-
         this.viewer = new CdmAuthorityCompositeViewer(container, this,input.getGroup());
 
         thisPart.setLabel(input.getName());
@@ -109,10 +97,6 @@ public class CdmAuthorityEditorE4 implements IConversationEnabled, IDirtyMarkabl
         return input;
     }
 
-       @Override
-       public void update(CdmDataChangeMap changeEvents) {
-       }
-
        @Override
        public void changed(Object element) {
                //FIXME : should be optimised to split changes into adding / removing authorities
@@ -125,7 +109,6 @@ public class CdmAuthorityEditorE4 implements IConversationEnabled, IDirtyMarkabl
                    //FIXME E4 migrate/delete
 //                     getSite().getPage().activate(this);
                }
-
        }
 
        @Override
@@ -133,18 +116,8 @@ public class CdmAuthorityEditorE4 implements IConversationEnabled, IDirtyMarkabl
            changed(null);
        }
 
-       @Override
-       public ConversationHolder getConversationHolder() {
-               return conversation;
-       }
-
        @PreDestroy
        public void dispose() {
-           if(conversation!=null){
-               conversation.unregisterForDataStoreChanges(this);
-               conversation.close();
-               conversation = null;
-           }
                if(input!=null){
                    input.getCdmEntitySession().dispose();
                }
index 14fb6fc932b07462122ed8ca2679808576f90094..a0e23b9f838239d4373ec0f7fb3c84ff2e4a045a 100644 (file)
@@ -21,7 +21,7 @@ import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
 import eu.etaxonomy.cdm.model.permission.Group;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.group.authority.CdmAuthorityEditorInput;
 import eu.etaxonomy.taxeditor.editor.group.authority.e4.CdmAuthorityEditorE4;
@@ -40,7 +40,7 @@ public class EditCdmAuthoritiesHandlerE4 {
     @Execute
     public void execute(EPartService partService, EModelService modelService, MApplication application,
             @Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
-        BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
+        BulkEditor editor = (BulkEditor) activePart.getObject();
         Group group = (Group) editor.getSelection().getFirstElement();
         try {
             EditorUtil.openRightsEditor(CdmAuthorityEditorInput.NewInstance(group.getUuid()), modelService, partService, application);
@@ -53,7 +53,7 @@ public class EditCdmAuthoritiesHandlerE4 {
     public boolean execute(MHandledMenuItem menuItem,
             @Named(IServiceConstants.ACTIVE_PART)MPart activePart){
         boolean canExecute = false;
-        BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
+        BulkEditor editor = (BulkEditor) activePart.getObject();
         IStructuredSelection selection = editor.getSelection();
         canExecute =
                 selection.size()==1
index 60a45f7b906df5c4682808ced640dacfb30085b3..bab5e38bcf2c83b345c26a2350e904d41235e2fa 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.handler.create;
 
 import javax.inject.Named;
@@ -19,10 +18,8 @@ import org.eclipse.swt.widgets.Shell;
 import eu.etaxonomy.taxeditor.newWizard.NewNonViralNameWizard;
 
 /**
- *
  * @author pplitzner
  * @date 10.10.2017
- *
  */
 public class NewNameHandler {
 
@@ -32,6 +29,5 @@ public class NewNameHandler {
                wizard.init(null, null);
                WizardDialog dialog = new WizardDialog(shell, wizard);
                dialog.open();
-
        }
-}
+}
\ No newline at end of file
index 72dff1118bc9c882e4e83bf910fc4130f52109bf..f0c6bbaf813dce8863254f18e00e89eb4bf2b761 100644 (file)
@@ -28,7 +28,7 @@ public class NewReferenceHandler {
 
     @Execute
        public void execute(@Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
-               NewReferenceWizard wizard = new NewReferenceWizard();
+               NewReferenceWizard wizard = new NewReferenceWizard(null);
                wizard.init(null, null);
                WizardDialog dialog = new WizardDialog(shell, wizard);
                dialog.open();
index b18b57d2d4619b001721fe5a36e5885ae7f3b501..36b7fba41a47fe0d67c1acdfc851b9fd0bbf43f8 100644 (file)
@@ -1,28 +1,48 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.editor.handler.defaultHandler;
+
+import java.util.UUID;
+
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
 import org.eclipse.swt.widgets.Shell;
 
+import eu.etaxonomy.cdm.api.service.INameService;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.editor.AppModelId;
 import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
 import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
 import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
+import eu.etaxonomy.taxeditor.view.DtoWithEntity;
 
-
-public class DefaultOpenSpecimenEditorForTypeSpecimenHandler extends
-               DefaultOpenHandlerBaseE4<SpecimenTypeDesignation> {
-
-//     @Override
-//     protected SpecimenTypeDesignation getEntity(UUID uuid) {
-//             return CdmStore.getCommonService().find(SpecimenTypeDesignation.class, uuid);
-//     }
+/**
+ * Note AM: not yet found out what this is for
+ */
+public class DefaultOpenSpecimenEditorForTypeSpecimenHandler
+        extends DefaultOpenHandlerBaseE4<SpecimenTypeDesignation, UuidAndTitleCache<SpecimenTypeDesignation>> {
 
        @Override
-       protected void open(SpecimenTypeDesignation entity, Shell shell, EPartService partService) {
-           DerivateViewEditorInput input = new DerivateViewEditorInput(entity.getTypeSpecimen().getUuid());
+       protected void open(UuidAndTitleCache<SpecimenTypeDesignation> entity, Shell shell, EPartService partService) {
+           UUID uuidSpecimen;
+           if (entity instanceof DtoWithEntity){
+               uuidSpecimen = ((DtoWithEntity<SpecimenTypeDesignation>)entity).getEntity().getTypeSpecimen().getUuid();
+           }else{
+               SpecimenTypeDesignation std = (SpecimenTypeDesignation)CdmStore.getService(INameService.class).loadTypeDesignation(entity.getUuid(), null);
+               uuidSpecimen = std.getTypeSpecimen().getUuid();
+           }
+
+           DerivateViewEditorInput input = new DerivateViewEditorInput(uuidSpecimen);
            MPart part = TaxeditorStorePlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getService(EPartService.class).showPart(
                    AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW, PartState.ACTIVATE);
            DerivateView derivateView = (DerivateView) part.getObject();
@@ -30,13 +50,12 @@ public class DefaultOpenSpecimenEditorForTypeSpecimenHandler extends
        }
 
     @Override
-    protected boolean canExecute(Object entity) {
-        return true;
+    protected boolean canExecute(UuidAndTitleCache<SpecimenTypeDesignation> entity) {
+        return SpecimenTypeDesignation.class.isAssignableFrom(entity.getType());
     }
 
     @Override
     protected String getPartId() {
         return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW;
     }
-
-}
+}
\ No newline at end of file
index 9bdcee5b359df525dc9d900619713f743df8a41b..70934c67b903f508c9d3a2974820b1e4387b6fd3 100644 (file)
@@ -1,36 +1,43 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.editor.handler.defaultHandler;
+
+import java.util.UUID;
+
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.editor.AppModelId;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4;
 
-
-public class DefaultOpenTaxonEditorForTaxonBaseHandler extends DefaultOpenHandlerBaseE4<TaxonBase> {
-
-//    @Override
-//    protected TaxonBase getEntity(UUID uuid) {
-//        return CdmStore.getService(ITaxonService.class).load(uuid);
-//    }
+public class DefaultOpenTaxonEditorForTaxonBaseHandler
+        extends DefaultOpenHandlerBaseE4<TaxonBase, UuidAndTitleCache<TaxonBase>> {
 
     @Override
-    protected void open(TaxonBase entity, Shell shell, EPartService partService) {
-        EditorUtil.openTaxonBaseE4(entity.getUuid(), modelService, partService, application);
+    protected void open(UuidAndTitleCache<TaxonBase> entity, Shell shell, EPartService partService) throws Exception {
+        UUID uuid = entity.getUuid();
+        EditorUtil.openTaxonBaseE4(uuid, modelService, partService, application);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    protected boolean canExecute(Object entity) {
-        return true;
+    protected boolean canExecute(UuidAndTitleCache<TaxonBase> entity) {
+        if (TaxonBase.class.isAssignableFrom(entity.getType())) {
+            return true;
+        }
+        return false;
     }
 
     @Override
     protected String getPartId() {
-        return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_NAME_E4_TAXONNAMEEDITORE4;
+        return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_TAXONEDITOR;
     }
-
-}
+}
\ No newline at end of file
index 2f5b986f0ecbdd89dfb33a89a570d261963da76f..897e31071657b8395d87f2eb265b1901fc5416ab 100644 (file)
@@ -1,8 +1,17 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.editor.handler.defaultHandler;
+
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
-import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Shell;
 
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.taxeditor.editor.AppModelId;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
@@ -10,39 +19,27 @@ import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 
-
-public class DefaultOpenTaxonEditorForTaxonNodeHandler extends DefaultOpenHandlerBaseE4<TaxonNodeDto> {
-
-//    @Override
-//    protected TaxonNode getEntity(UUID uuid) {
-//        return CdmStore.getService(ITaxonNodeService.class).load(uuid);
-//    }
+public class DefaultOpenTaxonEditorForTaxonNodeHandler
+        extends DefaultOpenHandlerBaseE4<ITaxonTreeNode, TaxonNodeDto> {
 
     @Override
     protected void open(TaxonNodeDto entity, Shell shell, EPartService partService) {
         try {
             EditorUtil.openTaxonNodeE4(entity.getUuid(), modelService, partService, application);
         } catch (Exception e) {
-            MessagingUtils.error(DefaultOpenTaxonEditorForTaxonNodeHandler.class, Messages.DefaultOpenTaxonEditorForTaxonNodeHandler_COULD_NOT_OPEN+entity.getTaxonTitleCache(), e);
+            MessagingUtils.error(DefaultOpenTaxonEditorForTaxonNodeHandler.class, Messages.DefaultOpenTaxonEditorForTaxonNodeHandler_COULD_NOT_OPEN + entity.getTaxonTitleCache(), e);
         }
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    protected boolean canExecute(Object selection) {
-        if (((IStructuredSelection)selection).getFirstElement() instanceof TaxonNodeDto){
-            return ((TaxonNodeDto)((IStructuredSelection)selection).getFirstElement()).getTaxonUuid() != null;
-        }
-        return false ;
+    protected boolean canExecute(TaxonNodeDto selection) {
+        return selection.getTaxonUuid() != null;
 //        boolean hasPermission = CdmStore.currentAuthentiationHasPermission(entity, Operation.UPDATE);
 //        return hasPermission && entity.getTaxon()!=null ;
     }
 
     @Override
     protected String getPartId() {
-        return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_NAME_E4_TAXONNAMEEDITORE4;
+        return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_TAXONEDITOR;
     }
-
-}
+}
\ No newline at end of file
index 8fbcf133594e2bb6a7d71cb2224af8413e0cdeec..d02c5d393b4e25c6abd23f4710a1de65972267ae 100644 (file)
@@ -1,6 +1,6 @@
 package eu.etaxonomy.taxeditor.editor.internal;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
 
@@ -16,7 +16,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class TaxeditorEditorPlugin extends AbstractUIPlugin {
 
        /** Constant <code>logger</code> */
-       public static final Logger logger = Logger.getLogger(TaxeditorEditorPlugin.class);
+       public static final Logger logger = LogManager.getLogger(TaxeditorEditorPlugin.class);
 
        // The plug-in ID
        /** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.editor"</code> */
index fa36d382f493269d7e55d4c3cfb0356fc9db42c9..39f4b18d4ac044b8b756ba78aa5c4ed10ad00b06 100644 (file)
@@ -1,47 +1,33 @@
 /**
- *
- */
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.editor.key;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.description.IIdentificationKey;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput;
 
 /**
  * @author n.hoffmann
- *
  */
 public abstract class AbstractIdentificationEditorInput<T extends IIdentificationKey>
-               extends CdmEntitySessionInput implements IConversationEnabled {
-
-       private final ConversationHolder conversation;
+               extends CdmEntitySessionInput  {
 
-       protected AbstractIdentificationEditorInput(ConversationHolder conversation) {
+       protected AbstractIdentificationEditorInput() {
            super(true);
-               this.conversation = conversation;
-       }
-
-       @Override
-       public ConversationHolder getConversationHolder() {
-               return conversation;
        }
 
+       
        public abstract T getKey();
 
-       @Override
-       public void update(CdmDataChangeMap changeEvents) {
-       }
-
-       /* (non-Javadoc)
-        * @see java.lang.Object#equals(java.lang.Object)
-        */
        @Override
        public boolean equals(Object obj) {
                // TODO Auto-generated method stub
                boolean result = super.equals(obj);
                return result;
        }
-
-}
+}
\ No newline at end of file
similarity index 91%
rename from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/AbstractGraphKeyEditorE4.java
rename to eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/AbstractGraphKeyEditor.java
index be834f8839300052dc2026326e4ea8bdcee98ae4..e095e0d36aacf6932cb6ebc486dabc89eaeb4506 100644 (file)
@@ -1,6 +1,11 @@
 /**
- *
- */
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.editor.key.e4;
 
 import javax.inject.Inject;
@@ -25,10 +30,8 @@ import org.eclipse.zest.layouts.LayoutAlgorithm;
 import org.eclipse.zest.layouts.LayoutStyles;
 import org.eclipse.zest.layouts.algorithms.TreeLayoutAlgorithm;
 
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.description.IIdentificationKey;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -36,15 +39,13 @@ import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
 
 /**
- *
  * @author pplitzner
  * @since Sep 28, 2017
  *
  * @param <T>
  */
-public abstract class AbstractGraphKeyEditorE4<T extends IIdentificationKey>
-implements IConversationEnabled, IE4SavablePart,
-               IZoomableWorkbenchPart, IPostOperationEnabled,
+public abstract class AbstractGraphKeyEditor<T extends IIdentificationKey>
+implements IE4SavablePart, IZoomableWorkbenchPart, IPostOperationEnabled,
                IDirtyMarkable {
 
        protected CdmFormFactory formFactory;
@@ -69,9 +70,9 @@ implements IConversationEnabled, IE4SavablePart,
     @Inject
     private MPart thisPart;
 
-       @Persist
+       @Override
+    @Persist
        public void save(IProgressMonitor monitor) {
-               getConversationHolder().commit(true);
                setDirty(false);
                viewer.refresh();
        }
@@ -86,7 +87,8 @@ implements IConversationEnabled, IE4SavablePart,
         }
        }
 
-       public boolean isDirty() {
+       @Override
+    public boolean isDirty() {
                return dirty.isDirty();
        }
 
@@ -121,11 +123,6 @@ implements IConversationEnabled, IE4SavablePart,
                viewer.refresh();
        }
 
-       @Override
-       public void update(CdmDataChangeMap changeEvents) {
-
-       }
-
        @Override
        public AbstractZoomableViewer getZoomableViewer() {
                return viewer;
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/KeyEditorDataChangeBehaviourE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/e4/KeyEditorDataChangeBehaviourE4.java
deleted file mode 100644 (file)
index 8e34d4f..0000000
+++ /dev/null
@@ -1,58 +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.editor.key.e4;
-
-import java.util.Vector;
-
-import eu.etaxonomy.cdm.model.description.PolytomousKey;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
-import eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyListEditorE4;
-import eu.etaxonomy.taxeditor.model.AbstractDataChangeBehaviour;
-
-/**
- * @author n.hoffmann
- * @created May 5, 2011
- */
-public class KeyEditorDataChangeBehaviourE4 extends AbstractDataChangeBehaviour {
-
-       private final PolytomousKeyListEditorE4 source;
-       private PolytomousKeyEditorInput input;
-
-       public KeyEditorDataChangeBehaviourE4(PolytomousKeyListEditorE4 keyEditor) {
-               source = keyEditor;
-       }
-
-       @Override
-       public void reactOnDataChange(CdmDataChangeMap changeEvents) {
-               input = source.getEditorInput();
-
-               if(changeEvents.sizeByEventType(EventType.UPDATE) > 0){
-                       reactOnUpdate(changeEvents.getEvents(EventType.UPDATE));
-               }
-       }
-
-       @Override
-       public void reactOnUpdate(Vector<CdmDataChangeEvent> events){
-
-               for(CdmDataChangeEvent event : events){
-
-                       // update editor title
-                       if(event.getEntity() instanceof PolytomousKey){
-                               if(input.getKey().equals(event.getEntity())){
-                                       // set the name of the editor window
-                                       source.setPartName();
-                               }
-                       }
-               }
-       }
-}
index 2edbbe2da99fecb72d740a9e744ee9ab120b79f2..3464422f3418c6176c0e9e0f4519af4ee0b8ef5e 100644 (file)
@@ -9,7 +9,7 @@ import org.eclipse.e4.core.di.annotations.Execute;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.services.IServiceConstants;
 
-import eu.etaxonomy.taxeditor.editor.key.e4.AbstractGraphKeyEditorE4;
+import eu.etaxonomy.taxeditor.editor.key.e4.AbstractGraphKeyEditor;
 
 /**
  * @author n.hoffmann
@@ -19,7 +19,7 @@ public class ApplyLayoutHandlerE4 {
 
        @Execute
        public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
-           AbstractGraphKeyEditorE4 graphKeyEditorE4 = (AbstractGraphKeyEditorE4) activePart.getObject();
+           AbstractGraphKeyEditor graphKeyEditorE4 = (AbstractGraphKeyEditor) activePart.getObject();
                        graphKeyEditorE4.applyLayout();
        }
 
index 8444e3a866f21a5af77fc4839850d73f86cf3f2b..9f1a0b444404657f4a11a2f83bdcecdc9d443730 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.editor.key.polytomous;
 
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -14,8 +13,7 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 /**
  * @author n.hoffmann
  * @created Apr 20, 2011
- * @version 1.0
  */
 public interface IPolytomousKeyEditorPage extends IPostOperationEnabled {
 
-}
+}
\ No newline at end of file
index 8610264132be3f5e758686b67c72c2da6864428a..7036ab69a6b8a5026f4595971d7dd818a354b507 100644 (file)
@@ -1,6 +1,11 @@
 /**
- *
- */
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.editor.key.polytomous;
 
 import java.util.ArrayList;
@@ -10,7 +15,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.taxeditor.editor.key.AbstractIdentificationEditorInput;
@@ -18,49 +22,33 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author n.hoffmann
- *
  */
 public class PolytomousKeyEditorInput extends AbstractIdentificationEditorInput<PolytomousKey> {
 
-    private final String name;
     private PolytomousKey key;
 
 
-    protected PolytomousKeyEditorInput(ConversationHolder conversation,
-            UUID polytomousKeyUuid) {
-        super(conversation);
+    protected PolytomousKeyEditorInput(UUID polytomousKeyUuid) {
+        super();
         List<String> propertyPath = new ArrayList<>();
         propertyPath.add("root");
         propertyPath.add("root.*");
         this.key = CdmStore.getService(IPolytomousKeyService.class).load(polytomousKeyUuid, propertyPath);
-        this.name = key.getTitleCache();
     }
 
-//    public PolytomousKeyEditorInput(UUID polytomousKeyUuid, String name) {
-//        super(CdmStore.createConversation());
-//        this.keyUuid = polytomousKeyUuid;
-//        this.name = name;
-//    }
-
-
     public static PolytomousKeyEditorInput NewInstance(UUID polytomousKeyUuid) throws Exception{
         try{
-            ConversationHolder conversation = CdmStore.createConversation();
-            return new PolytomousKeyEditorInput(conversation, polytomousKeyUuid);
+               return new PolytomousKeyEditorInput( polytomousKeyUuid);
         }catch(Exception e){
             throw e;
         }
     }
 
-
     @Override
     public PolytomousKey getKey() {
         return key;
     }
 
-    /* (non-Javadoc)
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
     @Override
     public boolean equals(Object object) {
         if (object instanceof PolytomousKeyEditorInput
@@ -72,26 +60,19 @@ public class PolytomousKeyEditorInput extends AbstractIdentificationEditorInput<
         return super.equals(object);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
-     */
     @Override
     public  List<PolytomousKey> getRootEntities() {
         return Arrays.asList(key);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
-     */
     @Override
     public void merge() {
        key = CdmStore.getService(IPolytomousKeyService.class).merge(key,true).getMergedEntity();
-
     }
 
     @Override
     public Map<Object, List<String>> getPropertyPathsMap() {
-        Map<Object,List<String>> propertyPathsMap = new HashMap<Object,List<String>>();
+        Map<Object,List<String>> propertyPathsMap = new HashMap<>();
 
         List<String> polytomousKeyNodePropertyPaths = Arrays.asList(new String[] {
                 "statement" //$NON-NLS-1$
@@ -99,5 +80,4 @@ public class PolytomousKeyEditorInput extends AbstractIdentificationEditorInput<
          propertyPathsMap.put("children", polytomousKeyNodePropertyPaths); //$NON-NLS-1$
          return propertyPathsMap;
     }
-
-}
+}
\ No newline at end of file
index 8fdae73ce74d023c4fc1dd2a268e04b8e0fceb14..c9cfb228c9ca8ec91ea9c8a5b57c95e03e688d88 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.editor.key.polytomous;
 
 import java.util.ArrayList;
@@ -21,10 +20,8 @@ import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.PolytomousKeyRelationship;
 
 /**
- *
  * @author n.hoffmann
  * @created Mar 30, 2011
- * @version 1.0
  */
 public class PolytomousKeyGraphContentProvider implements IGraphContentProvider {
 
@@ -55,7 +52,7 @@ public class PolytomousKeyGraphContentProvider implements IGraphContentProvider
                List<PolytomousKeyNode> children;
 
                if (parent instanceof PolytomousKeyNode) {
-                       ((PolytomousKeyNode) parent).removeNullValueFromChildren();
+//                     ((PolytomousKeyNode) parent).removeNullValueFromChildren();
                        children = ((PolytomousKeyNode) parent).getChildren();
                } else if (parent instanceof PolytomousKey) {
                        children = new ArrayList<PolytomousKeyNode>();
@@ -81,5 +78,4 @@ public class PolytomousKeyGraphContentProvider implements IGraphContentProvider
        public Object getDestination(Object relationship) {
                return ((PolytomousKeyRelationship) relationship).getDestination();
        }
-
-}
+}
\ No newline at end of file
index a5310d55952b6a1edbb3384d357d9703e8e9fc2b..971d871469fc7aff72735d60372ae0f7c0678752 100644 (file)
@@ -6,12 +6,11 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.editor.key.polytomous;
 
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.swt.graphics.Color;
@@ -30,7 +29,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  *
  * @author n.hoffmann
  * @created Mar 30, 2011
- * @version 1.0
  */
 public class PolytomousKeyLabelProvider extends LabelProvider implements
                IEntityStyleProvider {
@@ -95,105 +93,49 @@ public class PolytomousKeyLabelProvider extends LabelProvider implements
                return EMPTY;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.zest.core.viewers.IEntityStyleProvider#fisheyeNode(java.lang
-        * .Object)
-        */
        @Override
        public boolean fisheyeNode(Object arg0) {
                // TODO Auto-generated method stub
                return false;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.zest.core.viewers.IEntityStyleProvider#getBackgroundColour
-        * (java.lang.Object)
-        */
        @Override
        public Color getBackgroundColour(Object arg0) {
                // TODO Auto-generated method stub
                return null;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.zest.core.viewers.IEntityStyleProvider#getBorderColor(java
-        * .lang.Object)
-        */
        @Override
        public Color getBorderColor(Object arg0) {
                // TODO Auto-generated method stub
                return null;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.zest.core.viewers.IEntityStyleProvider#getBorderHighlightColor
-        * (java.lang.Object)
-        */
        @Override
        public Color getBorderHighlightColor(Object arg0) {
                // TODO Auto-generated method stub
                return null;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.zest.core.viewers.IEntityStyleProvider#getBorderWidth(java
-        * .lang.Object)
-        */
        @Override
        public int getBorderWidth(Object arg0) {
                return 0;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.zest.core.viewers.IEntityStyleProvider#getForegroundColour
-        * (java.lang.Object)
-        */
        @Override
        public Color getForegroundColour(Object arg0) {
                // TODO Auto-generated method stub
                return null;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.zest.core.viewers.IEntityStyleProvider#getNodeHighlightColor
-        * (java.lang.Object)
-        */
        @Override
        public Color getNodeHighlightColor(Object arg0) {
                // TODO Auto-generated method stub
                return null;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.zest.core.viewers.IEntityStyleProvider#getTooltip(java.lang
-        * .Object)
-        */
        @Override
        public IFigure getTooltip(Object arg0) {
                return null;
        }
-}
+}
\ No newline at end of file
index 52e84529d8395576560e6aacc3f980cc71066469..98679d46ca62df1dd6fd4eb29f91e20ea8295504 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.editor.key.polytomous;
 
 import java.util.ArrayList;
@@ -15,44 +14,23 @@ import java.util.List;
 import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.Viewer;
 
-import eu.etaxonomy.cdm.hibernate.HHH_9751_Util;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 
 /**
  * @author n.hoffmann
  * @created Apr 4, 2011
- * @version 1.0
  */
 public class PolytomousKeyListContentProvider implements
                IStructuredContentProvider {
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-        */
        @Override
        public void dispose() {
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface
-        * .viewers.Viewer, java.lang.Object, java.lang.Object)
-        */
        @Override
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java
-        * .lang.Object)
-        */
        @Override
        public Object[] getElements(Object inputElement) {
                if (inputElement instanceof PolytomousKeyEditorInput) {
@@ -74,10 +52,10 @@ public class PolytomousKeyListContentProvider implements
            }
                if (!node.getChildren().isEmpty()) {
                        result.addAll(node.getChildren());
-                       HHH_9751_Util.removeAllNull(result);
+//                     HHH_9751_Util.removeAllNull(result);
                        for (PolytomousKeyNode internalNode : node.getChildren()) {
                                getChildrenBreadthFirst(result, internalNode);
                        }
                }
        }
-}
+}
\ No newline at end of file
index 5f83fbe2387a330bfd97db0e71a2e95517761c19..cff206b25b9b24b40840d4bda6267670260fd0b6 100644 (file)
@@ -6,12 +6,11 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.editor.key.polytomous;
 
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.viewers.StyledCellLabelProvider;
 import org.eclipse.jface.viewers.StyledString;
 import org.eclipse.jface.viewers.StyledString.Styler;
@@ -33,7 +32,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author n.hoffmann
  * @created Apr 18, 2011
- * @version 1.0
  */
 public class PolytomousKeyListLabelProvider extends StyledCellLabelProvider {
 
@@ -209,5 +207,4 @@ public class PolytomousKeyListLabelProvider extends StyledCellLabelProvider {
        private boolean isParentRoot(PolytomousKeyNode node) {
                return getParent(node) == null;
        }
-
-}
+}
\ No newline at end of file
index e87e33988b87249f5451d87783b2eb911449cba0..7ab18e9294c4ffa286c282b67d2c79af7bb89124 100644 (file)
@@ -1,5 +1,10 @@
 /**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
  *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
  */
 package eu.etaxonomy.taxeditor.editor.key.polytomous.e4;
 
@@ -20,9 +25,8 @@ import org.eclipse.swt.widgets.Shell;
 import org.eclipse.zest.core.viewers.GraphViewer;
 import org.eclipse.zest.core.widgets.ZestStyles;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
-import eu.etaxonomy.taxeditor.editor.key.e4.AbstractGraphKeyEditorE4;
+import eu.etaxonomy.taxeditor.editor.key.e4.AbstractGraphKeyEditor;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyGraphContentProvider;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyLabelProvider;
@@ -32,11 +36,10 @@ import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 
 /**
  * @author n.hoffmann
- *
  */
-public class PolytomousKeyGraphEditorE4 extends
-               AbstractGraphKeyEditorE4<PolytomousKey> implements
-               IPolytomousKeyEditorPage, IPartContentHasDetails {
+public class PolytomousKeyGraphEditorE4
+        extends AbstractGraphKeyEditor<PolytomousKey>
+        implements IPolytomousKeyEditorPage, IPartContentHasDetails {
 
        public static final String ID = "eu.etaxonomy.taxeditor.editor.key.polytomous.graph"; //$NON-NLS-1$
 
@@ -88,11 +91,6 @@ public class PolytomousKeyGraphEditorE4 extends
         });
     }
 
-       @Override
-       public ConversationHolder getConversationHolder() {
-               return getEditorInput()
-                               .getConversationHolder();
-       }
 
        @Override
        public PolytomousKey getKey() {
index fd191a7cf96799a298dc9300515549f74f5df4a8..fbfec4dae20e147ed34fbc96b700b5d7737a9f12 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.editor.key.polytomous.e4;
 
 import java.util.List;
@@ -39,34 +38,27 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableItem;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.key.e4.KeyEditorDataChangeBehaviourE4;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyListContentProvider;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyListLabelProvider;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.model.DataChangeBridge;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
 import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
 
 /**
- *
  * @author pplitzner
  * @since Sep 28, 2017
- *
  */
 public class PolytomousKeyListEditorE4 implements
-               IConversationEnabled, IDirtyMarkable, IPartContentHasDetails, IPartContentHasSupplementalData,
+               IDirtyMarkable, IPartContentHasDetails, IPartContentHasSupplementalData,
                IPolytomousKeyEditorPage, IE4SavablePart{
 
        private class LinkListener extends MouseAdapter {
@@ -81,7 +73,7 @@ public class PolytomousKeyListEditorE4 implements
 
                        int selectedColumn = getSelectedColumn(table, point);
 
-                       if (table == null || point == null ){
+                       if (table == null){
                            return;
                        }
 
@@ -140,9 +132,7 @@ public class PolytomousKeyListEditorE4 implements
 
        private TableViewer viewer;
 
-    private KeyEditorDataChangeBehaviourE4 dataChangeBehavior;
-
-    private PolytomousKeyEditorInput input;
+       private PolytomousKeyEditorInput input;
 
     @Inject
     private ESelectionService selService;
@@ -167,27 +157,12 @@ public class PolytomousKeyListEditorE4 implements
     @Inject
        public PolytomousKeyListEditorE4() {
        }
-
-       @Override
-       public void update(CdmDataChangeMap map) {
-           if(dataChangeBehavior == null){
-            dataChangeBehavior = new KeyEditorDataChangeBehaviourE4(this);
-        }
-        DataChangeBridge.handleDataChange(map, dataChangeBehavior);
-       }
-
-       @Override
-       public ConversationHolder getConversationHolder() {
-               return input.getConversationHolder();
-       }
-
+       
        @Override
     @Persist
        public void save(IProgressMonitor monitor) {
         try {
             monitor.beginTask(Messages.KeyEditor_SAVING, 1);
-            getConversationHolder().bind();
-            getConversationHolder().commit(true);
             input.merge();
             dirty.setDirty(false);
             monitor.worked(1);
@@ -200,8 +175,8 @@ public class PolytomousKeyListEditorE4 implements
                this.input = input;
 
         PolytomousKey key = input.getKey();
-        key = HibernateProxyHelper.deproxy(key, PolytomousKey.class);
-        key.setRoot(HibernateProxyHelper.deproxy(key.getRoot(), PolytomousKeyNode.class));
+        key = HibernateProxyHelper.deproxy(key);
+        key.setRoot(HibernateProxyHelper.deproxy(key.getRoot()));
         thisPart.setLabel(key.getTitleCache());
 
         viewer.setInput(input);
@@ -246,7 +221,6 @@ public class PolytomousKeyListEditorE4 implements
     public void dispose() {
         if(input!=null){
             input.dispose();
-            input.getConversationHolder().close();
         }
     }
 
@@ -293,7 +267,6 @@ public class PolytomousKeyListEditorE4 implements
        public void changed(Object element) {
         if(element != null) {
             viewer.update(element, null);
-
         }
 
         if (element instanceof PolytomousKeyNode) {
@@ -307,7 +280,6 @@ public class PolytomousKeyListEditorE4 implements
         }
         dirty.setDirty(true);
         viewer.refresh();
-
        }
 
     @Override
index cbdd8d21e43a2237bf7af3bd03affcc65750f122..01ca3bbee0390cd5ba4be355d853e13afcc87a8c 100644 (file)
@@ -1,5 +1,10 @@
 /**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
  *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
  */
 package eu.etaxonomy.taxeditor.editor.key.polytomous.e4.handler;
 
@@ -20,17 +25,14 @@ import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyListEditorE4;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.CreateNodeOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 
 /**
  *
  * @author pplitzner
  * @since Sep 28, 2017
- *
  */
 public class CreateChildNodeHandlerE4 {
 
-
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
@@ -45,7 +47,7 @@ public class CreateChildNodeHandlerE4 {
             IUndoContext undoContext = EditorUtil.getUndoContext();
             editor.changed(null);
 
-            AbstractPostOperation operation = new CreateNodeOperation(
+            CreateNodeOperation operation = new CreateNodeOperation(
                     label, undoContext, pk.getRoot(), editor);
             AbstractUtility.executeOperation(operation, sync);
         } else {
@@ -56,7 +58,7 @@ public class CreateChildNodeHandlerE4 {
             PolytomousKeyNode keyNode = (PolytomousKeyNode) selection
                     .getFirstElement();
             editor.changed(null);
-            AbstractPostOperation operation = new CreateNodeOperation(
+            CreateNodeOperation operation = new CreateNodeOperation(
                     label, undoContext, keyNode, editor);
             AbstractUtility.executeOperation(operation, sync);
         }
@@ -72,5 +74,4 @@ public class CreateChildNodeHandlerE4 {
         menuItem.setVisible(canExecute);
         return canExecute;
     }
-
-}
+}
\ No newline at end of file
index 9fcdb651975e3f7f44e9ff4d8f61410efa67bfce..78afa6aa535ad7e46a7b3f5584e7edf7339b3e3e 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.key.polytomous.e4.handler;
 
 import javax.inject.Named;
@@ -22,9 +30,7 @@ import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
  * Handler responsible for creating sibling nodes of Polytomous Key Nodes
  *
  * @author c.mathew
- *
  */
-
 public class CreateSiblingNodeHandlerE4 {
 
     @Execute
index 641d8b2b175bedafec831d79abdc922fdad9da49..ff9404832ccb05d4ce19191a66f05e479063cdab 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.editor.key.polytomous.e4.handler;
 
 import javax.inject.Named;
@@ -30,15 +29,13 @@ import eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyListEditorE4
 import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.DeleteNodeOperation;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
+import eu.etaxonomy.taxeditor.operation.e4.CdmHandlerE4;
 
 /**
  * @author n.hoffmann
  * @created Dec 6, 2010
- * @version 1.0
  */
-public class DeleteNodeHandlerE4 extends RemotingCdmHandlerE4 {
-
+public class DeleteNodeHandlerE4 extends CdmHandlerE4 {
 
     private static final String DO_YOU_REALLY_WANT_TO_DELETE_THE_NODE_THIS_OPERATION_IS_NOT_REVERSABLE = Messages.DeleteNodeHandler_REALLY_DELETE;
     private static final String CONFIRM_DELETION_OF_CHILDREN = Messages.DeleteNodeHandler_CONFIRM_DELETE;
@@ -136,9 +133,6 @@ public class DeleteNodeHandlerE4 extends RemotingCdmHandlerE4 {
     public void onComplete() {
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected Object getTrigger() {
         return this;
@@ -152,5 +146,4 @@ public class DeleteNodeHandlerE4 extends RemotingCdmHandlerE4 {
         menuItem.setVisible(canExecute);
         return canExecute;
     }
-
 }
\ No newline at end of file
index 30278e3cc823233c8519169341668225c1749677..cb45601092f59e7cf9a74cae0435a373a3a21466 100644 (file)
@@ -25,18 +25,16 @@ import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorLabels;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyListEditorE4;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.InsertPolytomousKeyNodeOperation;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
+import eu.etaxonomy.taxeditor.operation.e4.CdmHandlerE4;
 
 /**
  * @author k.luther
  * @date 17.11.2016
- *
  */
-public class InsertNewNodeHandlerE4 extends RemotingCdmHandlerE4{
+public class InsertNewNodeHandlerE4 extends CdmHandlerE4{
 
     private PolytomousKeyNode parentNode ;
 
-
     public InsertNewNodeHandlerE4() {
         super(PolytomousKeyEditorLabels.INSERT_NODE_POLYTOMOUS_KEY_NODE_LABEL);
     }
@@ -76,8 +74,7 @@ public class InsertNewNodeHandlerE4 extends RemotingCdmHandlerE4{
     }
 
     @Override
-    public void onComplete() {
-    }
+    public void onComplete() {}
 
     @CanExecute
     public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
@@ -85,12 +82,8 @@ public class InsertNewNodeHandlerE4 extends RemotingCdmHandlerE4{
         return true;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected Object getTrigger() {
         return this;
     }
-
-}
+}
\ No newline at end of file
index 10956758ec6ba194e220d22f28e1ec11c66f1532..28b6bed7db6f601194a341c74c2f9c8a881c2c4b 100644 (file)
@@ -1,4 +1,11 @@
-
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.key.polytomous.e4.handler;
 
 import javax.inject.Named;
index 928ff4bd320fd9835908985f02a2f1aee45d0f5c..83cf301e391780dd99f5798892f388a4ebc2a9e4 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.key.polytomous.e4.handler;
 
 import javax.inject.Named;
@@ -16,7 +24,6 @@ import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyListEditorE4;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.RefreshNodeNumberingOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 
 public class RefreshNodeNumberingHandlerE4 {
 
@@ -35,7 +42,7 @@ public class RefreshNodeNumberingHandlerE4 {
             PolytomousKeyNode keyNode = (PolytomousKeyNode) selection
                     .getFirstElement();
 
-            AbstractPostOperation operation = new RefreshNodeNumberingOperation(
+            RefreshNodeNumberingOperation operation = new RefreshNodeNumberingOperation(
                     label, undoContext, keyNode, editor);
             AbstractUtility.executeOperation(operation, sync);
             editor.forceDirty();
@@ -50,4 +57,4 @@ public class RefreshNodeNumberingHandlerE4 {
         menuItem.setVisible(canExecute);
         return canExecute;
     }
-}
+}
\ No newline at end of file
index aa1a363f964e4966947112a26db956c8903fbe07..9bec986402ec592b421668be93f05cf406511e51 100644 (file)
@@ -1,6 +1,11 @@
 /**
- *
- */
+* 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.editor.key.polytomous.operation;
 
 import org.eclipse.core.commands.ExecutionException;
@@ -15,11 +20,10 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
  * @author n.hoffmann
- *
  */
 public class CreateNodeOperation extends AbstractPostTaxonOperation {
 
-       PolytomousKeyNode parentNode;
+       private PolytomousKeyNode parentNode;
        private PolytomousKeyNode childNode;
 
        public CreateNodeOperation(String label,
@@ -28,9 +32,6 @@ public class CreateNodeOperation extends AbstractPostTaxonOperation {
                this.parentNode = parentNode;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -42,24 +43,15 @@ public class CreateNodeOperation extends AbstractPostTaxonOperation {
                return postExecute(childNode);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
-               // TODO Auto-generated method stub
                return null;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
-               // TODO Auto-generated method stub
                return null;
        }
-
-}
+}
\ No newline at end of file
@@ -15,30 +15,26 @@ import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
+import eu.etaxonomy.taxeditor.operation.CdmDefaultOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmDefaultOperation;
 
 /**
  * @author cmathew
  * @date 21 Jul 2015
- *
  */
-public class RemotingCreatePolytomousKeyNodeOperation extends RemotingCdmDefaultOperation {
+public class CreatePolytomousKeyNodeOperation extends CdmDefaultOperation {
+
+    private final static String LABEL = Messages.RemotingCreatePolytomousKeyNodeOperation_CREATE_KEY;
 
     private final PolytomousKeyNode parentNode;
     private PolytomousKeyNode childNode;
-    /**
-    *
-    */
-   protected IPostOperationEnabled postOperationEnabled;
+    private IPostOperationEnabled postOperationEnabled;
 
     public PolytomousKeyNode getChildNode() {
         return childNode;
     }
 
-    private final static String LABEL = Messages.RemotingCreatePolytomousKeyNodeOperation_CREATE_KEY;
-
-    public RemotingCreatePolytomousKeyNodeOperation(Object source,
+    public CreatePolytomousKeyNodeOperation(Object source,
             boolean async,
             PolytomousKeyNode parentNode, IPostOperationEnabled postOperationEnabled){
         super(LABEL, Action.Create, source, async);
@@ -46,23 +42,14 @@ public class RemotingCreatePolytomousKeyNodeOperation extends RemotingCdmDefault
         this.postOperationEnabled = postOperationEnabled;
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.operation.RemotingCdmSimpleOperation#doSimpleExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-     */
     @Override
     protected CdmBase doSimpleExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
-      childNode = PolytomousKeyNode.NewInstance();
-      parentNode.addChild(childNode);
-      if (postOperationEnabled.postOperation(childNode)){
-          return childNode;
-      }else {
-          return null;
-      }
+        childNode = PolytomousKeyNode.NewInstance();
+        parentNode.addChild(childNode);
+        if (postOperationEnabled.postOperation(childNode)){
+            return childNode;
+        } else {
+            return null;
+        }
     }
-
-
-
-
-
-
-}
+}
\ No newline at end of file
index 4c2fa5c874d7d8a1c0bcda2c87b73e47f1252ac4..4174c40db8ab050f68275946d1153ae9dff9711f 100644 (file)
@@ -1,6 +1,11 @@
 /**
- *
- */
+* Copyright (C) 2016 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.editor.key.polytomous.operation;
 
 import org.eclipse.core.commands.ExecutionException;
@@ -24,30 +29,20 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
  * @author n.hoffmann
- *
  */
 public class DeleteNodeOperation extends AbstractPostOperation<PolytomousKeyNode> {
 
-       private final PolytomousKeyNode parent;
        private final PolytomousKeyNode node;
        private final boolean deleteChildren;
 
        public DeleteNodeOperation(String label, IUndoContext undoContext,
                        PolytomousKeyNode node, IPostOperationEnabled postOperationEnabled, boolean deleteChildren) {
            super(label, undoContext, node, postOperationEnabled);
-           HibernateProxyHelper.deproxy(node, PolytomousKeyNode.class);
+           HibernateProxyHelper.deproxy(node);
                this.node = node;
-               this.parent = node.getParent();
                this.deleteChildren = deleteChildren;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse
-        * .core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -77,31 +72,15 @@ public class DeleteNodeOperation extends AbstractPostOperation<PolytomousKeyNode
                return postExecute(null);
        }
 
-    /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse
-        * .core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                return execute(monitor, info);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse
-        * .core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
-               // TODO Auto-generated method stub
                return null;
        }
-
-}
+}
\ No newline at end of file
index 092bf795b6bdb106dabfb02773af1e06c8d13080..1957642a9004a60d793ea93d8c769ceca8ec9d60 100644 (file)
@@ -18,31 +18,21 @@ import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
+import eu.etaxonomy.taxeditor.operation.CdmDefaultOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmDefaultOperation;
 
 /**
  * @author k.luther
  * @date 17.11.2016
- *
  */
-public class InsertPolytomousKeyNodeOperation extends RemotingCdmDefaultOperation  {
-
-    private final PolytomousKeyNode parentNode;
+public class InsertPolytomousKeyNodeOperation extends CdmDefaultOperation  {
 
     private final static String LABEL = Messages.InsertPolytomousKeyNodeOperation_INSERT_KEY;
 
-    /**
-    *
-    */
-   protected IPostOperationEnabled postOperationEnabled;
+    private final PolytomousKeyNode parentNode;
+
+    protected IPostOperationEnabled postOperationEnabled;
 
-    /**
-     * @param label
-     * @param action
-     * @param source
-     * @param async
-     */
     public InsertPolytomousKeyNodeOperation(Object source,
             boolean async,
             PolytomousKeyNode parentNode, IPostOperationEnabled postOperationEnabled) {
@@ -51,14 +41,11 @@ public class InsertPolytomousKeyNodeOperation extends RemotingCdmDefaultOperatio
         this.postOperationEnabled = postOperationEnabled;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected CdmBase doSimpleExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
         PolytomousKeyNode childNode = PolytomousKeyNode.NewInstance();
         List<PolytomousKeyNode> newChildren = parentNode.getChildren();
-        List<PolytomousKeyNode> copy = new ArrayList<PolytomousKeyNode>();
+        List<PolytomousKeyNode> copy = new ArrayList<>();
         for (PolytomousKeyNode node: newChildren) {
             copy.add(node);
         }
@@ -69,5 +56,4 @@ public class InsertPolytomousKeyNodeOperation extends RemotingCdmDefaultOperatio
         this.postOperationEnabled.postOperation(childNode);
         return childNode;
     }
-
-}
+}
\ No newline at end of file
index d3d84db585f6555bb164a613e571dbfa132bb5d0..31058f17fcd6da3571f38a0b35f6579bb012ca8f 100644 (file)
@@ -1,3 +1,11 @@
+/**
+* Copyright (C) 2016 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.editor.key.polytomous.operation;
 
 import org.eclipse.core.commands.ExecutionException;
@@ -13,52 +21,38 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 /**
  * Operation responsible for refreshing node numbers of the Polytomous Key Nodes.
  * The refresh is performed on the entire Key starting from the root.
- * 
- * @author c.mathew
  *
+ * @author c.mathew
  */
 public class RefreshNodeNumberingOperation extends AbstractPostTaxonOperation {
 
-       PolytomousKeyNode node;
-       private PolytomousKeyNode childNode;
-       
+       private PolytomousKeyNode node;
+
        public RefreshNodeNumberingOperation(String label,
-                       IUndoContext undoContext, 
-                       PolytomousKeyNode node, 
+                       IUndoContext undoContext,
+                       PolytomousKeyNode node,
                        IPostOperationEnabled postOperationEnabled) {
                super(label, undoContext, postOperationEnabled);
                this.node = node;
        }
-       
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
+
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
 
-               node.refreshNodeNumbering();            
+               node.refreshNodeNumbering();
                return postExecute(node);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
-               // TODO Auto-generated method stub
                return null;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
-               // TODO Auto-generated method stub
                return null;
        }
-
-}
+}
\ No newline at end of file
index b0c0de3e57791b5a4ed443b597c13a01e35c9246..b7ac34375f15996403dda107497fc1308c944ae0 100644 (file)
@@ -32,8 +32,14 @@ public class Messages extends NLS {
     public static String ChangeSynonymToAcceptedTaxonHandler_SELECT_PARENT;
     public static String ChangeSynonymToAcceptedTaxonOperation_INCONSISTENT_DATA;
     public static String ChangeSynonymToAcceptedTaxonOperation_NOT_IMPLEMENTED;
+    public static String ChangeSynonymToAcceptedTaxonOperation_DifferentSec;
+    public static String ChangeSynonymToAcceptedTaxonOperation_DifferentSec_Message;
+    public static String ChangeSynonymToAcceptedHandler_Different_Publish_Flag;
+    public static String SwapSynonymToAcceptedHandler_Different_Publish_Flag;
+    public static String SwapSynonymToAcceptedHandler_Delete_Secundum;
     public static String CharacterEditor_CANNOT_PERFORM_MESSAGE;
     public static String CharacterEditor_CANNOT_PERFORM_TITLE;
+    public static String CharacterEditor_CANNOT_PERFORM_RATIO_TO_MESSAGE;
     public static String CharacterEditor_CHARACTERS;
     public static String CharacterEditor_PROPERTIES;
     public static String CharacterEditor_STRUCTURES;
@@ -60,16 +66,8 @@ public class Messages extends NLS {
     public static String CharacterMatrix_NO_DESCRIPTION_TITLE;
     public static String CharacterMatrix_NO_NODE_FOUND_MESSAGE;
     public static String CharacterMatrix_NO_NODE_FOUND_TITLE;
-    public static String CharacterMatrixBottomToolbar_AGGREGATE;
-    public static String CharacterMatrixBottomToolbar_AGGREGATION_MESSAGE;
-    public static String CharacterMatrixBottomToolbar_AGGREGATION_TITLE;
-    public static String CharacterMatrixBottomToolbar_CANCEL;
-    public static String CharacterMatrixBottomToolbar_CHOOSE_TAXON;
-    public static String CharacterMatrixBottomToolbar_CONFIRM_DELETE_MESSAGE;
-    public static String CharacterMatrixBottomToolbar_CONFIRM_DELETE_TITLE;
-    public static String CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_MESSAGE;
     public static String CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_TITLE;
-    public static String CharacterMatrixBottomToolbar_YES;
+    public static String CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_MESSAGE;
     public static String CharacterMatrixPart_COULD_NOT_OPEN;
     public static String CharacterMatrixPart_COULD_NOT_OPEN_MESSAGE;
     public static String CharacterMatrixPart_LOADING_MATRIX;
@@ -118,7 +116,8 @@ public class Messages extends NLS {
     public static String DeleteHandler_INVALID_SELECTION;
     public static String DeleteHandler_SKIP;
     public static String DeleteMediaHandler_CONFIRM;
-    public static String DeleteMediaHandler_CONFIRM_MESSAGE;
+    public static String DeleteMediaHandler_CONFIRM_MESSAGE_DESCRIPTION;
+    public static String DeleteMediaHandler_CONFIRM_MESSAGE_MEDIA;
     public static String DeleteMediaHandler_DELETE;
     public static String DeleteMediaHandler_SKIP;
     public static String DeleteNodeHandler_CANCEL;
@@ -191,7 +190,6 @@ public class Messages extends NLS {
     public static String KeyEditor_LIST;
     public static String KeyEditor_SAVING;
     public static String MediaViewPart_MEDIA;
-    public static String MisapplicationContainer_SEC_REF_REQUIRED;
     public static String MoveDerivateOperation_MOVE_NOT_POSSIBLE;
     public static String MoveDerivateOperation_MOVE_TO_NOT_POSSIBLE;
     public static String MoveDescriptionElementsHandler_CHOOSE_ACC_TAXON;
@@ -207,6 +205,7 @@ public class Messages extends NLS {
     public static String MoveSynonymToAnotherAcceptedTaxonHandler_NO_SELECTION;
     public static String MoveSynonymToAnotherAcceptedTaxonHandler_NO_SELECTION_MESSAGE;
     public static String MoveSynonymToAnotherAcceptedTaxonHandler_SELECT_ACC_TAXON;
+    public static String MoveSynonymToAnotherAcceptedTaxonHandler_Different_Publish_Flag;
     public static String MultiPageTaxonEditor_INVALID_INPUT;
     public static String MultiPageTaxonEditor_NEW_TAXON;
     public static String MultiPageTaxonEditor_NO_NAME_SPECIFIED;
@@ -227,8 +226,6 @@ public class Messages extends NLS {
     public static String NameEditorDropTargetListener_CHANGE_SYNONYM_TO_MISAPP;
     public static String NameEditorDropTargetListener_UNSUCCESSFULL_DROP;
     public static String OpenChecklistEditorHandler_CHOOSE_AREA;
-    public static String OpenChecklistEditorHandler_COULD_NOT_OPEN_MESSAGE;
-    public static String OpenChecklistEditorHandler_COULD_NOT_OPEN_TITLE;
     public static String OpenChecklistEditorHandler_GOTO_PREFERENCES;
     public static String OpenChecklistEditorHandler_NO_AREAS;
     public static String OpenDerivateEditorForTaxonHandler_COULD_NOT_OPEN_EDITOR;
@@ -276,6 +273,7 @@ public class Messages extends NLS {
     public static String SwapSynonymAndAcceptedHandler_COULD_NOT_OPEN;
     public static String SwapSynonymAndAcceptedOperation_NOT_IMPLEMENTED;
     public static String SwapSynonymAndAcceptedOperation_SWAP_SYN_ACC_TAXON;
+    public static String SwapSynonymAndAcceptedOperation_DIFFERENT_PUBLISH;
     public static String SynonymContainer_SYNONYM_NULL_NAME;
     public static String TaxonEditorInput_INCORRECT_STATE;
     public static String TaxonEditorInput_NEW_TAXON;
@@ -293,8 +291,6 @@ public class Messages extends NLS {
     public static String TaxonNameEditor_THERE_SHOULD_ALWAYS_BE;
     public static String TaxonNodeDropAdapter_CLASSIFICATIONS_NO_MATCH;
     public static String TaxonNodeDropAdapter_CLASSIFICATIONS_NO_MATCH_MESSAGE;
-    public static String ToggleLinkWithTaxonSelectionHandler_LINK;
-    public static String ToggleLinkWithTaxonSelectionHandler_UNLINK;
     public static String ValidationDaemon_RUNNING_DAEMON;
     public static String ValidationDaemon_VALIDATION_EXCEPTION;
     public static String ValidationDaemon_VALIDATION_STOPPED;
@@ -317,11 +313,27 @@ public class Messages extends NLS {
     public static String ChecklistEditor_SEARCH_TOOLTIP;
     public static String DistributionEditor_defaultSource;
     public static String FactualDataView_Lable;
+    public static String TaxaFactsDataView_Lable;
+    public static String OccurrenceFactsDataView_Lable;
     public static String NameFactsDataView_Lable;
     public static String DeleteDescriptiveDatasetHandler_Warning_Message;
     public static String DeleteDescriptiveDatasetHandler_Exception_Message;
     public static String CharacterMatrix_ONLY_REMOVE;
     public static String CharacterMatrix_DELETE_DESCRIPTION;
+    public static String ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message;
+    public static String ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message_always_select;
+    public static String ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_title;
+    public static String ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Parent;
+    public static String ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Select;
+    public static String ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Keep;
+    public static String ChangeSynonymToAcceptedHandler_Different_Secundum_references;
+    public static String MoveSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message;
+    public static String SwapSynonymAndAcceptedHandler_Select_Sec_Reference_Delete;
+    public static String SwapSynonymAndAcceptedHandler_Select_Sec_Reference_Select;
+    public static String SwapSynonymAndAcceptedHandler_Select_Sec_Reference_Taxon;
+    public static String SwapSynonymAndAcceptedHandler_Select_Sec_Reference_Synonym;
+    public static String SecundumReference;
+
 
     static {
         // initialize resource bundle
index e5a06741fe73662efefbe70e36cb5e32ffc9a80e..f9c153257a8aa2da0d07b554b01cede3a5466f90 100644 (file)
@@ -1,6 +1,6 @@
 CategoricalChartTooltip_TOOLTIP_NOT_AVAILABLE=Tooltip not available. First aggregate the data.
 CreateFieldUnitContextMenu_CREATE_FIELD_UNIT_FOR=Create new field unit for %s
-CreateDescriptiveDataSetHandler_NEW_DESCRIPTIVE_DATA_SET=New descriptive data set
+CreateDescriptiveDataSetHandler_NEW_DESCRIPTIVE_DATA_SET=New descriptive dataset
 CreateDescriptiveDataSetHandler_NEW_DATA_SET_DIALOG_TITLE=Enter name
 SingleReadSequenceContextMenu_REMOVE_FROM_SEQUENCE=Remove from this Sequence
 SingleReadSequenceContextMenu_REUSE_FOR_SEQUENCE=Reuse for other Sequence
@@ -40,9 +40,9 @@ OpenDerivateEditorForTaxonHandler_NO_DERIVATIVES_FOUND=No Derivatives found
 DeleteTaxonBaseHandler_CONFIRM_DELETION=Confirm Deletion
 DeleteTaxonBaseHandler_ELEMENT_MUST_BE_SYNONYM_MISAPP_CONCEPT=Element has to be Synonym, Misapplication or Concept
 DeleteTaxonBaseHandler_REALLY_DELETE_TAXON=Are you sure you want to delete the selected taxon?
-DeleteTaxonBaseHandler_REALLY_DELETE_SYNONYM=Are you sure you want to delete the selected synoym?
-DeleteTaxonBaseHandler_DELETE_SYNONYM_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS=The Synonym could be deleted, but related object(s) could not be deleted
-DeleteTaxonBaseHandler_DELETE_MISAPPLIEDNAME_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS=The misapplied name could be deleted, but related object(s) could not be deleted
+DeleteTaxonBaseHandler_REALLY_DELETE_SYNONYM=Are you sure you want to delete the selected synonym?
+DeleteTaxonBaseHandler_DELETE_SYNONYM_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS=The synonym could be deleted but related object(s) could not be deleted
+DeleteTaxonBaseHandler_DELETE_MISAPPLIEDNAME_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS=The misapplied name could be deleted but related object(s) could not be deleted
 DeleteTaxonBaseHandler_REALLY_DELETE_MISAPPLICATION=Are you sure you want to delete the selected misapplication, this is irreversible?
 DescriptionElementDropAdapter_MOVE_DESC=Move Descriptions
 DescriptionElementDropAdapter_NOT_SUPPORTED=Operation not supported yet
@@ -64,9 +64,7 @@ SetSecundumHandler_confirm=Confirm the exchange of secundum reference
 DefaultOpenSpecimenEditorForTypeSpecimenHandler_COULD_NOT_OPEN=Specimen tree editor could not be opened
 DefaultOpenTaxonEditorForTaxonBaseHandler_COULD_NOT_OPEN=Could not open taxon editor for taxon/synonym 
 DefaultOpenTaxonEditorForTaxonNodeHandler_COULD_NOT_OPEN=Could not open taxon editor for taxon node
-OpenChecklistEditorHandler_CHOOSE_AREA=Please choose the areas you want to display. 
-OpenChecklistEditorHandler_COULD_NOT_OPEN_MESSAGE=Could not open Distribution Editor.
-OpenChecklistEditorHandler_COULD_NOT_OPEN_TITLE=Could not open Distribution Editor
+OpenChecklistEditorHandler_CHOOSE_AREA=Please choose the areas you want to display.
 OpenChecklistEditorHandler_GOTO_PREFERENCES=For this go to the preferences, choose the Checklist Editor and choose the areas in the Distribution Selection Wizard.
 OpenChecklistEditorHandler_NO_AREAS=No Areas to display
 OpenDerivateViewHandler_COULD_NOT_OPEN=Specimen tree editor could not be opened
@@ -104,7 +102,7 @@ TaxonNameEditor_SAVING_COMPOSITES=Saving composite:
 TaxonNameEditor_SAVING_NAMES=Saving names
 TaxonNameEditor_THERE_SHOULD_ALWAYS_BE=There should always be a selected object.
 TaxonNodeDropAdapter_CLASSIFICATIONS_NO_MATCH=Classifications do not match
-TaxonNodeDropAdapter_CLASSIFICATIONS_NO_MATCH_MESSAGE=The taxon node you are trying to add belongs to another classification than the node(s) belonging to the descriptive data set.
+TaxonNodeDropAdapter_CLASSIFICATIONS_NO_MATCH_MESSAGE=The taxon node you are trying to add belongs to another classification than the node(s) belonging to the descriptive dataset.
 ValidationDaemon_RUNNING_DAEMON=Running validation daemon
 ValidationDaemon_VALIDATION_EXCEPTION=Validation module terminated unexpectedly: 
 ValidationDaemon_VALIDATION_STOPPED=Validation module stopped
@@ -116,9 +114,9 @@ EditorStateManager_RESTORE_EDITORS=Restoring Editors
 EditorUtil_COMFIRM_SAVE=Confirm save
 EditorUtil_CONFIRM_SAVE_MESSAGE=Warning - this operation will save the editor. This will also save all other unsaved changes in your working editor to the database. Please 'Cancel' if you are not ready to do this.
 EditorUtil_ORPHAN_ACCEPTED_TAXON=Orphaned accepted taxon
-EditorUtil_ORPHAN_ACCEPTED_TAXON_MESSAGE=The accepted taxon of this synonym is not part of any classification. Editing with the name editor is currently not implemented. Try to edit the taxon with the bulk editor.
+EditorUtil_ORPHAN_ACCEPTED_TAXON_MESSAGE=The accepted taxon of this synonym is not part of any classification. Editing with the taxon editor is currently not implemented. Try to edit the taxon with the bulk editor.
 EditorUtil_ORPHAN_TAXON=Orphaned Taxon
-EditorUtil_ORPHAN_TAXON_MESSAGE=This is an orphaned taxon i.e. a taxon that is not connected to a classification and not having any taxonomic relationships. Editing of orphaned taxa in the name editor is currently not supported. Try editing with the bulk editor
+EditorUtil_ORPHAN_TAXON_MESSAGE=This is an orphaned taxon i.e. a taxon that is not connected to a classification and not having any taxonomic relationships. Editing of orphaned taxa in the taxon editor is currently not supported. Try editing with the bulk editor
 EditorUtil_MISSING_PERMISSION=Missing permission
 EditorUtil_MISSING_PERMISSION_MESSAGE=You do not have the permission to edit this taxon
 MultiPageTaxonEditor_INVALID_INPUT=Invalid Input: Must be TaxonEditorInput
@@ -140,15 +138,13 @@ SpecimenSelectionDialog_SELECT_SPECIMENS=Select specimens
 SpecimenSelectionDialog_REMOVE_FILTER=Remove filter
 TaxonEditorInput_INCORRECT_STATE=Incorrect state
 TaxonEditorInput_NEW_TAXON=New taxon
-TaxonEditorInput_NO_ACCEPTED_TAXON_PRESENT=Trying to open accepted taxon for a synonym or misapplication but misapplication but the accepted taxon is not present in any classification and can\u2019t be opened in name editor.
+TaxonEditorInput_NO_ACCEPTED_TAXON_PRESENT=Trying to open accepted taxon for a synonym or misapplication but the accepted taxon is not present in any classification and can\u2019t be opened in taxon editor.
 TaxonEditorInput_NOT_IMPLEMENTED=Not yet implemented
 TaxonEditorInput_NOT_IMPLEMENTED_MESSAGE=Selected Taxonnode does not exist, probably it is deleted or moved.
 TaxonEditorInput_OPEN_MISSAPPLIED_NAME=trying to open Mispplied Name 
-TaxonEditorInput_TAXON_NOT_IN_CLASSIFICATION=The accepted taxon is not part of any classification. Editing with the name editor is currently not implemented. Try to edit the taxon with the bulk editor.
+TaxonEditorInput_TAXON_NOT_IN_CLASSIFICATION=The accepted taxon is not part of any classification. Editing with the taxon editor is currently not implemented. Try to edit the taxon with the bulk editor.
 TaxonEditorInputFactory_COULD_NOT_CREATE=Could not create element
 TaxonEditorInputFactory_NOT_FOUND_TAXON=Couldn't find taxon node with UUID 
-ToggleLinkWithTaxonSelectionHandler_LINK=Link with taxon selection
-ToggleLinkWithTaxonSelectionHandler_UNLINK=Unlink from taxon selection
 UseObjectManager_RESET_DATA=Reset usage data
 CdmAuthorityEditor_SAVING_AUTHORITY_EDITOR=Saving CDM Authority Editor
 EditCdmAuthoritiesHandler_COULD_NOT_OPEN_AUTHORITIES=Could not open CDM Authority Editor
@@ -165,7 +161,6 @@ ConceptContainer_SEC_REQUIRED=This taxon requires a sec. reference.
 EditorAnnotation_ERROR=Error: 
 EditorAnnotation_WARNING=Warning: 
 IContainerConstants_CLICK_ADD_NAME=Click to add name
-MisapplicationContainer_SEC_REF_REQUIRED=This misapplication requires a sec. reference.
 SynonymContainer_SYNONYM_NULL_NAME=Synonym with a null name detected. This should never happen.
 NameEditorDropTargetListener_CHANGE=Change
 NameEditorDropTargetListener_CHANGE_ACC_TAXON=Change accepted Taxon
@@ -180,15 +175,25 @@ MoveSynonymToAnotherAcceptedTaxonHandler_CHANGE_ACC_TAXON=Change accepted Taxon
 MoveSynonymToAnotherAcceptedTaxonHandler_NO_SELECTION=No selection
 MoveSynonymToAnotherAcceptedTaxonHandler_NO_SELECTION_MESSAGE=No synonym selected
 MoveSynonymToAnotherAcceptedTaxonHandler_SELECT_ACC_TAXON=Select new accepted taxon
+MoveSynonymToAnotherAcceptedTaxonHandler_Different_Publish_Flag=The new accepted taxon and the synonym have different pubish flags. Maybe one of them should be adapted.
 SwapSynonymAndAcceptedHandler_COULD_NOT_OPEN=Could not open editor for taxon
+SwapSynonymAndAcceptedOperation_DIFFERENT_PUBLISH=The accepted taxon and the synonym have different pubish flags. Maybe one of them should be adapted.
+SwapSynonymToAcceptedHandler_Delete_Secundum=The secundum references will be removed from taxon and synonym.
+SwapSynonymAndAcceptedHandler_Select_Sec_Reference_Delete=Remove secundum references
+SwapSynonymAndAcceptedHandler_Select_Sec_Reference_Select=Select secundum references
+SwapSynonymAndAcceptedHandler_Select_Sec_Reference_Taxon=Select secundum reference for new accepted taxon
+SwapSynonymAndAcceptedHandler_Select_Sec_Reference_Synonym=Select secundum reference for new synonym
 ChangeConceptRelationshipTypeOperation_NOT_IMPLEMENTED=Not implemented yet. See developer documentation for details
 ChangeConceptToSynonymOperation_MULTI_REPS=Multiple relations between taxa
 ChangeConceptToSynonymOperation_MULTI_REPS_MESSAGE=There are multiple relations between the accepted and the related taxon. This case is not handled by the software yet.
 ChangeSynonymToAcceptedTaxonOperation_INCONSISTENT_DATA=Operation may lead to inconsistent data
 ChangeSynonymToAcceptedTaxonOperation_NOT_IMPLEMENTED=Not yet implemented
+ChangeSynonymToAcceptedTaxonOperation_DifferentSec=Different Secundum Reference
+ChangeSynonymToAcceptedTaxonOperation_DifferentSec_Message=The new taxon and the parent do not have the same secundum reference.
 CharacterEditor_CANNOT_PERFORM_MESSAGE=You have to select a structure, a property and a character tree to perform this action.
 CharacterEditor_CANNOT_PERFORM_TITLE=Cannot perform action
-CharacterEditor_CHARACTERS=Characters
+CharacterEditor_CANNOT_PERFORM_RATIO_TO_MESSAGE=You have to select a structure and a character to perform this action.
+CharacterEditor_CHARACTERS=Characters:
 CharacterEditor_PROPERTIES=Properties
 CharacterEditor_STRUCTURES=Structures
 CharacterMatrix_LOADING_FAILED_MESSAGE=Loading of the character matrix failed. Please retry.
@@ -216,18 +221,10 @@ CharacterMatrix_TAXON=Unit
 CharacterMatrix_VIEW_CONFIG=View configuration
 CharacterMatrix_ONLY_REMOVE=Only remove from descriptive dataset
 CharacterMatrix_DELETE_DESCRIPTION=Do you really want to delete the description
-CharacterMatrixBottomToolbar_AGGREGATE=Aggregate
-CharacterMatrixBottomToolbar_AGGREGATION_MESSAGE=The aggregated description will be stored at the common parent taxon of this data set:\n%s\n\nDo you want to use this taxon?
-CharacterMatrixBottomToolbar_AGGREGATION_TITLE=Choose location for the aggregated description
-CharacterMatrixBottomToolbar_CANCEL=Cancel
-CharacterMatrixBottomToolbar_CHOOSE_TAXON=Choose taxon
-CharacterMatrixBottomToolbar_CONFIRM_DELETE_MESSAGE=Do you really want to delete the selected element?
-CharacterMatrixBottomToolbar_CONFIRM_DELETE_TITLE=Confirm delete
 CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_MESSAGE=Could not create rows for the following description:\n\n%s
 CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_TITLE=Errors during row creation
-CharacterMatrixBottomToolbar_YES=Yes
 CharacterMatrixPart_COULD_NOT_OPEN=Editor could not be opened
-CharacterMatrixPart_COULD_NOT_OPEN_MESSAGE=The descriptive data set has no character tree selected or the tree contains elements that are not characters.
+CharacterMatrixPart_COULD_NOT_OPEN_MESSAGE=The descriptive dataset has no character tree selected or the tree contains elements that are not characters.
 CharacterMatrixPart_LOADING_MATRIX=Loading matrix...
 CharacterMatrixPart_LOADING_MATRIX_FAILED=Loading failed
 SwapSynonymAndAcceptedOperation_NOT_IMPLEMENTED=Not yet implemented
@@ -255,7 +252,7 @@ DeleteDerivateHandler_SUCCESSFULL_BUT_EXCEPTIONS=Delete was successful, but with
 DeleteDescriptionElementOperation_DESC_NOT_FOUND=Couldn't find element's description!
 DeleteDescriptiveDataSetHandler_DELETE_FAILED_MESSAGE=Deletion failed.
 DeleteDescriptiveDataSetHandler_DELETE_FAILED_TITLE=Deletion failed
-DeleteDescriptiveDataSetHandler_DELETE_MESSAGE=Do you really want to delete the descriptive data set?
+DeleteDescriptiveDataSetHandler_DELETE_MESSAGE=Do you really want to delete the descriptive dataset?
 DeleteDescriptiveDataSetHandler_DELETE_TITLE=Confirm delete
 DeleteHandler_CONFIRM_DELETION=Confirm Deletion
 DeleteHandler_CONFIRM_DELETION_MESSAGE=Do you really want to delete the media?
@@ -263,9 +260,10 @@ DeleteHandler_DELETE=Delete
 DeleteHandler_INVALID_SELECTION=Selection is not valid for this delete handler
 DeleteHandler_SKIP=Skip
 DeleteMediaHandler_CONFIRM=Confirm Deletion
-DeleteMediaHandler_CONFIRM_MESSAGE=Do you really want to delete the media?
+DeleteMediaHandler_CONFIRM_MESSAGE_DESCRIPTION=The media gallery contains media. Do you want to delete the media?
+DeleteMediaHandler_CONFIRM_MESSAGE_MEDIA=Do you really want to delete the media?
 DeleteMediaHandler_DELETE=Delete
-DeleteMediaHandler_SKIP=Skip
+DeleteMediaHandler_SKIP=Cancel
 OpenDerivativeEditorForDescriptionElement_NO_SPECIMENS=No specimens found
 OpenDerivativeEditorForDescriptionElement_NO_SPECIMENS_MESSAGE=No specimens found for the selected object. (Maybe there are unsaved changes)
 OpenDerivativeEditorForTaxonNode_COULD_NOT_OPEN=Specimen tree editor could not be opened
@@ -299,5 +297,18 @@ DistributionEditor_defaultSource=Default Source:
 ChecklistEditor_REMOVE_DEFAULT_SOURCE=Remove Source
 FactualDataView_Lable=Factual Data
 NameFactsDataView_Lable=Name Facts
+TaxaFactsDataView_Lable=Taxon Facts
+OccurrenceFactsDataView_Lable=Specimen Facts
 DeleteDescriptiveDatasetHandler_Exception_Message=Descriptive Dataset could not be deleted.
-DeleteDescriptiveDatasetHandler_Warning_Message=Deletion was successful but with warnings. 
\ No newline at end of file
+DeleteDescriptiveDatasetHandler_Warning_Message=Deletion was successful but with warnings. 
+ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_title=Select secundum reference
+ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message=The secundum reference of the selected parent taxon is different to the secundum of the synonym. Please select which secundum should be used for the accepted taxon.
+ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message_always_select=Please select which secundum should be used for the accepted taxon
+ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Parent=Parent secundum
+ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Select=Select new
+ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Keep=Keep secundum
+ChangeSynonymToAcceptedHandler_Different_Publish_Flag=The selected parent taxon and the new taxon have different publish flags. Maybe one of them should be adapted.
+ChangeSynonymToAcceptedHandler_Different_Secundum_references=The selected parent taxon and the new taxon have different secundum references. Maybe this should be adapted.
+SwapSynonymToAcceptedHandler_Different_Publish_Flag=The selected parent taxon, the new taxon and the new synonym have different publish flags. Maybe one of them should be adapted.
+MoveSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message= Secundum reference of synonym (or synonyms of the homotypic group) and new accepted taxon are different. Please select the reference used as secundum.
+SecundumReference=Secundum reference
\ No newline at end of file
index f0100366843dd6fd4b26142d782a5291d8429f34..e014d208288c67f664a38946998c8c67c5ee39c0 100644 (file)
@@ -61,11 +61,9 @@ UsesViewPart_VIEWER_NAME=Nutzung
 SetSecundumHandler_configureSettings=Konfigurieren Sie das Ersetzen der Secundum Referenz für den ausgewählten Teilbaum.
 SetSecundumHandler_confirm=Ersetzen der Secundum Referenz bestätigen
 DefaultOpenSpecimenEditorForTypeSpecimenHandler_COULD_NOT_OPEN=Specimen-Baum-Editor konnte nicht geöffnet werden
-DefaultOpenTaxonEditorForTaxonBaseHandler_COULD_NOT_OPEN=Taxon-Editor für Taxon/Synonym konnte nicht geöffnet werden
-DefaultOpenTaxonEditorForTaxonNodeHandler_COULD_NOT_OPEN=Taxon-Editor für Taxonknoten konnte nicht geöffnet werden 
+DefaultOpenTaxonEditorForTaxonBaseHandler_COULD_NOT_OPEN=Taxon Editor für Taxon/Synonym konnte nicht geöffnet werden
+DefaultOpenTaxonEditorForTaxonNodeHandler_COULD_NOT_OPEN=Taxon Editor für Taxonknoten konnte nicht geöffnet werden 
 OpenChecklistEditorHandler_CHOOSE_AREA=Bitte wählen Sie das Gebiet aus, das dargestellt werden soll
-OpenChecklistEditorHandler_COULD_NOT_OPEN_MESSAGE=Der Verbreitungs-Editor konnte nicht geöffnet werden
-OpenChecklistEditorHandler_COULD_NOT_OPEN_TITLE=Der Verbreitungs-Editor konnte nicht geöffnet werden
 OpenChecklistEditorHandler_GOTO_PREFERENCES=Hierfür gehen Sie zu den Preferences, wählen Sie Checklist Editor und dann die Gebiete in dem Verbreitungs-Wizard.
 OpenChecklistEditorHandler_NO_AREAS=Keine Gebiete, die angezeigt werden können
 OpenDerivateViewHandler_COULD_NOT_OPEN=Specimen-Baum-Editor konnte nicht geöffnet werden.
@@ -115,9 +113,9 @@ EditorStateManager_RESTORE_EDITORS=Editor wird wiederhergestellt
 EditorUtil_COMFIRM_SAVE=Speichern bestätigen
 EditorUtil_CONFIRM_SAVE_MESSAGE=Warnung - Diese Operation wird den Editor speichern. Ebenso werden alle weiteren ungespeicherten Änderungen gespeichert. Um das zu verhindern, drücken Sie 'Abbrechen'.
 EditorUtil_ORPHAN_ACCEPTED_TAXON=Verwaistes akzeptiertes Taxon
-EditorUtil_ORPHAN_ACCEPTED_TAXON_MESSAGE=Das akzeptierte Taxon dieses Synonyms ist in keiner Klassifikation vorhanden. Editieren mit dem Namens-Editor ist noch nicht implementiert. Benutzen Sie den Bulk-Editor.
+EditorUtil_ORPHAN_ACCEPTED_TAXON_MESSAGE=Das akzeptierte Taxon dieses Synonyms ist in keiner Klassifikation vorhanden. Editieren mit dem Taxon Editor ist noch nicht implementiert. Benutzen Sie den Bulk-Editor.
 EditorUtil_ORPHAN_TAXON=Verwaistes Taxon
-EditorUtil_ORPHAN_TAXON_MESSAGE=Dies ist ein verwaistes Taxon d.h. ein Taxon, welches in keiner Klassifikation vorhanden ist und keine Taxonverknüpfungen hat. Editieren von verwaisten Taxa im Namens-Editor ist noch nicht implementiert. Benutzen Sie den Bulk-Editor.
+EditorUtil_ORPHAN_TAXON_MESSAGE=Dies ist ein verwaistes Taxon d.h. ein Taxon, welches in keiner Klassifikation vorhanden ist und keine Taxonverknüpfungen hat. Editieren von verwaisten Taxa im Taxon Editor ist noch nicht implementiert. Benutzen Sie den Bulk-Editor.
 EditorUtil_MISSING_PERMISSION=Fehlende Berechtigung
 EditorUtil_MISSING_PERMISSION_MESSAGE=Sie haben nicht die Berechtigung dieses Taxon zu bearbeiten
 MultiPageTaxonEditor_INVALID_INPUT=Ungültiger Input: Muss TaxonEditorInput sein
@@ -139,15 +137,13 @@ SpecimenSelectionDialog_SELECT_SPECIMENS=Specimens ausw
 SpecimenSelectionDialog_REMOVE_FILTER=Filter entfernen
 TaxonEditorInput_INCORRECT_STATE=Ungültiger Zustand
 TaxonEditorInput_NEW_TAXON=Neues Taxon
-TaxonEditorInput_NO_ACCEPTED_TAXON_PRESENT=Öffnen eines akzeptierten Taxons für ein Synonym oder eine Misapplikation, das akzeptierte Taxon ist aber in keiner Klassifikation enthalten, daher kann es nicht im Namens-Editor geöffnet werden. Benutzen Sie den Bulk-Editor.
+TaxonEditorInput_NO_ACCEPTED_TAXON_PRESENT=Öffnen eines akzeptierten Taxons für ein Synonym oder eine Misapplikation, das akzeptierte Taxon ist aber in keiner Klassifikation enthalten, daher kann es nicht im Taxon Editor geöffnet werden. Benutzen Sie den Bulk-Editor.
 TaxonEditorInput_NOT_IMPLEMENTED=Noch nicht implementiert
 TaxonEditorInput_NOT_IMPLEMENTED_MESSAGE=Ausgewählter Taxonknoten existiert nicht, eventuell wurde er gelöscht oder verschoben.
 TaxonEditorInput_OPEN_MISSAPPLIED_NAME=Öffnen einer Misapplikation 
-TaxonEditorInput_TAXON_NOT_IN_CLASSIFICATION=Das akzeptierte Taxon ist in keiner Klassifikation vorhanden. Editieren mit dem Namens-Editor ist noch nicht implementiert. Benutzen Sie den Bulk-Editor.
+TaxonEditorInput_TAXON_NOT_IN_CLASSIFICATION=Das akzeptierte Taxon ist in keiner Klassifikation vorhanden. Editieren mit dem Taxon Editor ist noch nicht implementiert. Benutzen Sie den Bulk-Editor.
 TaxonEditorInputFactory_COULD_NOT_CREATE=Element konnte nicht erstellt werden
 TaxonEditorInputFactory_NOT_FOUND_TAXON=Konnte Taxonknoten nicht finden. UUID
-ToggleLinkWithTaxonSelectionHandler_LINK=Mit Taxonauswahl verknüpfen 
-ToggleLinkWithTaxonSelectionHandler_UNLINK=Verknüpfung mit Taxonauswahl aufheben 
 UseObjectManager_RESET_DATA=Wiederherstellen der Nutzugsdaten
 CdmAuthorityEditor_SAVING_AUTHORITY_EDITOR=Speichere CDM Authority Editor
 EditCdmAuthoritiesHandler_COULD_NOT_OPEN_AUTHORITIES=Konnte CDM-Authority-Editor nicht öffnen
@@ -164,7 +160,6 @@ ConceptContainer_SEC_REQUIRED=Dieses Taxon ben
 EditorAnnotation_ERROR=Error: 
 EditorAnnotation_WARNING=Warnung: 
 IContainerConstants_CLICK_ADD_NAME=Klicken, um Namen hinzuzufügen
-MisapplicationContainer_SEC_REF_REQUIRED=Diese Fehlanwendung benötigt eine sec. Referenz.
 SynonymContainer_SYNONYM_NULL_NAME=Synonym mit einem null-Namen entdeckt. Das sollte nicht passieren.
 NameEditorDropTargetListener_CHANGE=Ändern
 NameEditorDropTargetListener_CHANGE_ACC_TAXON=Ändere akzeptiertes Taxon
@@ -179,15 +174,25 @@ MoveSynonymToAnotherAcceptedTaxonHandler_CHANGE_ACC_TAXON=
 MoveSynonymToAnotherAcceptedTaxonHandler_NO_SELECTION=Keine Auswahl
 MoveSynonymToAnotherAcceptedTaxonHandler_NO_SELECTION_MESSAGE=Kein Synonym ausgewählt
 MoveSynonymToAnotherAcceptedTaxonHandler_SELECT_ACC_TAXON=Wähle neues akzeptiertes Taxon
+MoveSynonymToAnotherAcceptedTaxonHandler_Different_Publish_Flag=Das neue akzeptierte Taxon und das Synonym haben unterschiedliche Publikationsstatus. Eventuell sollten sie angepasst werden.
 SwapSynonymAndAcceptedHandler_COULD_NOT_OPEN=Konnte Editor für Taxon nicht öffnen
+SwapSynonymAndAcceptedOperation_DIFFERENT_PUBLISH=Das akzeptierte Taxon und das Synonym haben unterschiedliche Publikationsstatus. Eventuell sollten sie angepasst werden.
+SwapSynonymToAcceptedHandler_Delete_Secundum=Die Secundum Referenzen werden von Taxon und Synonym entfernt. 
+SwapSynonymAndAcceptedHandler_Select_Sec_Reference_Delete=Entferne die Secundum Referenzen
+SwapSynonymAndAcceptedHandler_Select_Sec_Reference_Select=Auswahl der Secundum Referenzen
+SwapSynonymAndAcceptedHandler_Select_Sec_Reference_Taxon=Auswahl der Secundum Referenz des neuen akzeptierten Taxons
+SwapSynonymAndAcceptedHandler_Select_Sec_Reference_Synonym=Auswahl der Secundum Referenz des neuen Synonyms
 ChangeConceptRelationshipTypeOperation_NOT_IMPLEMENTED=Noch nicht implementiert. Für Details bitte in die Entwickler-Dokumentation schauen
 ChangeConceptToSynonymOperation_MULTI_REPS=Mehrere Verknüpfungen zwischen Taxa
 ChangeConceptToSynonymOperation_MULTI_REPS_MESSAGE=Es gibt mehrere Verknüpfungen zwischen dem akzeptierten und dem verknüpften Taxon. Dieser Fall wird noch nicht von der Software unterstützt.
 ChangeSynonymToAcceptedTaxonOperation_INCONSISTENT_DATA=Vorgang kann zu inkonsistenten Daten führen
 ChangeSynonymToAcceptedTaxonOperation_NOT_IMPLEMENTED=Noch nicht implementiert
+ChangeSynonymToAcceptedTaxonOperation_DifferentSec=Unterschiedliche Secundum Referenz
+ChangeSynonymToAcceptedTaxonOperation_DifferentSec_Message=Das neue Taxon und sein Elterntaxon haben nicht die gleiche Secundum Referenz.
 CharacterEditor_CANNOT_PERFORM_MESSAGE=Es muss eine Struktur, eine Eigenschaft und ein Character-Merkmalsbaum ausgewählt sein.
 CharacterEditor_CANNOT_PERFORM_TITLE=Aktion kann nicht ausgeführt werden
-CharacterEditor_CHARACTERS=Characters
+CharacterEditor_CANNOT_PERFORM_RATIO_TO_MESSAGE=Es muss eine Struktur und ein Character ausgewählt sein.
+CharacterEditor_CHARACTERS=Characters:
 CharacterEditor_PROPERTIES=Eigenschaften
 CharacterEditor_STRUCTURES=Strukturen
 CharacterMatrix_LOADING_FAILED_MESSAGE=Laden der Character-Matrix fehlgeschlagen. Bitte erneut versuchen.
@@ -213,18 +218,10 @@ CharacterMatrix_SHOW_FLAT_LIST=Listenansicht
 CharacterMatrix_SHOW_HIERARCHY=Baumansicht
 CharacterMatrix_TAXON=Unit
 CharacterMatrix_VIEW_CONFIG=Ansicht konfigurieren
-CharacterMatrix_ONLY_REMOVE=Nur aus Descriptive Data Set entfernen
+CharacterMatrix_ONLY_REMOVE=Nur aus Descriptive Dataset entfernen
 CharacterMatrix_DELETE_DESCRIPTION=Wollen Sie die Beschreibung wirklich löschen?
-CharacterMatrixBottomToolbar_AGGREGATE=Aggregation
-CharacterMatrixBottomToolbar_AGGREGATION_MESSAGE=Die aggregierte Beschreibung wird an das gemeinsame, nächst-höhere Taxon dieses Datasets gehangen:\n%s\n\nSoll dieses Taxon verwenden werden?
-CharacterMatrixBottomToolbar_AGGREGATION_TITLE=Wählen Sie den Speicherort für die aggregierte Beschreibung
-CharacterMatrixBottomToolbar_CANCEL=Abbrechen
-CharacterMatrixBottomToolbar_CHOOSE_TAXON=Taxon wählen
-CharacterMatrixBottomToolbar_CONFIRM_DELETE_MESSAGE=Wollen Sie wirklich das ausgewählte Element löschen?
-CharacterMatrixBottomToolbar_CONFIRM_DELETE_TITLE=Löschen bestätigen
 CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_MESSAGE=Konnte keine Zeilen für die folgenden Beschreibungen erzeugen:\n\n%s
 CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_TITLE=Fehler bei der Erstellung der Zeilen
-CharacterMatrixBottomToolbar_YES=Ja
 CharacterMatrixPart_COULD_NOT_OPEN=Editor konnte nicht geöffnet werden
 CharacterMatrixPart_COULD_NOT_OPEN_MESSAGE=Das Dataset hat keinen Character-Baum ausgewählt oder enthält Elemente, die keine Character sind.
 CharacterMatrixPart_LOADING_MATRIX=Lade Matrix...
@@ -262,9 +259,10 @@ DeleteHandler_DELETE=L
 DeleteHandler_INVALID_SELECTION=Auswahl ungültig für den DeleteHandler
 DeleteHandler_SKIP=Überspringen
 DeleteMediaHandler_CONFIRM=Löschen bestätigen
-DeleteMediaHandler_CONFIRM_MESSAGE=Wollen sie wirklich den Mediendatensatz löschen?
+DeleteMediaHandler_CONFIRM_MESSAGE_DESCRIPTION=Die Medien Galerie enthält Mediendaten. Wollen sie diese löschen?
+DeleteMediaHandler_CONFIRM_MESSAGE_MEDIA=Wollen sie wirklich den Mediendatensatz löschen?
 DeleteMediaHandler_DELETE=Löschen
-DeleteMediaHandler_SKIP=Überspringen
+DeleteMediaHandler_SKIP=Abbrechen
 OpenDerivativeEditorForDescriptionElement_NO_SPECIMENS=Keine Specimens gefunden
 OpenDerivativeEditorForDescriptionElement_NO_SPECIMENS_MESSAGE=Keine Specimens für die Auswahl. (Gibt es vielleicht noch ungespeicherte Änderungen?)
 OpenDerivativeEditorForTaxonNode_COULD_NOT_OPEN=Specimen-Baum-Editor konnte nicht geöffnet werden
@@ -298,5 +296,18 @@ DistributionEditor_defaultSource= Standard Quelle:
 ChecklistEditor_REMOVE_DEFAULT_SOURCE=Quelle entfernen
 FactualDataView_Lable=Faktendaten
 NameFactsDataView_Lable=Namensfaktendaten
+TaxaFactsDataView_Lable=Taxonfaktendaten
+NameFactsDataView_Lable=Vorkommensfaktendaten
 DeleteDescriptiveDatasetHandler_Exception_Message=Das Descriptive Dataset konnte nicht gelöscht werden.
-DeleteDescriptiveDatasetHandler_Warning_Message=Das Löschen war erfolgreich, es gibt aber Warnungen.
\ No newline at end of file
+DeleteDescriptiveDatasetHandler_Warning_Message=Das Löschen war erfolgreich, es gibt aber Warnungen.
+ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message=Die Secundum Referenzen des gewählten Elterntaxons und des Synonyms unterscheiden sich. Bitte wählen Sie welche Secundum Referenz für das neue akzeptierte Taxon verwendet werden soll
+ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message_always_select=Bitte wählen Sie welche Secundum Referenz für das neue akzeptierte Taxon verwendet werden soll
+ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_title=Auswahl der Secundum Referenz
+ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Parent=Eltern Secundum
+ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Select=Neue auswählen
+ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Keep=Secundum beibehalten
+ChangeSynonymToAcceptedHandler_Different_Publish_Flag=Das gewählte Elterntaxon und das neue Taxon haben unterschiedliche Publikationsstatus. Eventuell sollten sie angepasst werden.
+ChangeSynonymToAcceptedHandler_Different_Secundum_references=Das gewählte Elterntaxon und das neue Taxon haben unterschiedliche Secundum Referenzen. Eventuell sollten sie angepasst werden.
+SwapSynonymToAcceptedHandler_Different_Publish_Flag=Das gewählte Elterntaxon, das neue Taxon und das Synonym haben unterschiedliche Publikationsstatus. Eventuell sollten sie angepasst werden.
+MoveSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message=Die Secundum Referenz des Synonyms oder der Synonyme der homotypischen Gruppe und des neuen akzeptierten Taxons unterscheiden sich, bitte wählen Sie, welche Referenz verwendet werden soll.
+SecundumReference=Secundum Referenzen
\ No newline at end of file
index fd51124e2b545d36f962d7391e6d13b4825e2302..032ff454e60fb64c9a7388528b1ec044b14a5c8c 100644 (file)
@@ -1,6 +1,6 @@
 package eu.etaxonomy.taxeditor.editor.name.container;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.resources.IMarker;
 import org.eclipse.jface.text.Position;
 import org.eclipse.jface.text.source.Annotation;
@@ -24,7 +24,7 @@ import eu.etaxonomy.taxeditor.model.ImageResources;
 public class EditorAnnotation extends Annotation implements IAnnotationPresentation {
 
     @SuppressWarnings("unused")
-    private static final Logger logger = Logger.getLogger(EditorAnnotation.class);
+    private static final Logger logger = LogManager.getLogger(EditorAnnotation.class);
     private final IMarker marker;
     private String text;
     private int line;
index 25e3fe66b6f8edfd49c01ccb2606d2770cd361d9..ae606c645ebc0911970f4d66011b93d88ef1cca3 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.name.container;
 
 import org.eclipse.swt.graphics.Image;
@@ -17,12 +16,9 @@ import eu.etaxonomy.taxeditor.model.ImageResources;
 /**
  * @author n.hoffmann
  * @created Jan 20, 2011
- * @version 1.0
  */
 public interface IContainerConstants {
-       /**
-        *
-        */
+
        public static final int SELECTED_FOCUS = 1;
        /** Constant <code>SELECTED_NO_FOCUS=2</code> */
        public static final int SELECTED_NO_FOCUS = 2;
@@ -75,7 +71,6 @@ public interface IContainerConstants {
                        ImageResources.HETEROTYPIC_SYN_ORIGINAL_ICON);
        /** Constant <code>MISAPPLIEDNAME_ICON</code> */
        public static final Image MISAPPLIEDNAME_ICON = ImageResources.getImage(ImageResources.MISAPPLIED_NAME_ICON);
-       public static final Image INVALID_TYPE_DESIGNATION_ICON = ImageResources.getImage(ImageResources.INVALID_TYPE_DESIGNATION_ICON);
        /** Constant <code>PROPARTE_ICON</code> */
     public static final Image PRO_PARTE_SYNONYM_ICON = ImageResources.getImage(ImageResources.PRO_PARTE_SYNONYM_ICON);
     /** Constant <code>PARTIAL_SYN_ICON</code> */
index 969e7ae7b9482ea54618ac22055555198a6a03e5..f47fbbeed4c6315e32d38e82ccd4e45dbc95d479 100644 (file)
@@ -6,15 +6,11 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.name.container;
 
-import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Scanner;
 
 import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.KeyListener;
 import org.eclipse.swt.events.VerifyEvent;
 import org.eclipse.swt.events.VerifyListener;
 
@@ -42,12 +38,9 @@ import org.eclipse.swt.events.VerifyListener;
  *
  * @author p.ciardelli
  * @created 19.05.2008
- * @version 1.0
  */
-
 public abstract class LineBreakListener implements VerifyListener{
 
-
        private static String LINE_BREAK = System.getProperty("line.separator"); //$NON-NLS-1$
        
        
@@ -108,4 +101,4 @@ public abstract class LineBreakListener implements VerifyListener{
         * @param text a {@link java.lang.String} object.
         */
        abstract public void handleSplitText(String text);
-}
+}
\ No newline at end of file
index ec83e5f59cc787ae378fac2f606f87cbc7957c51..f91e79fc864cdd1481dbb3a4e438762431f23800 100644 (file)
@@ -1,15 +1,14 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.name.container;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.jface.text.TextViewer;
 import org.eclipse.swt.custom.StyledText;
 import org.eclipse.swt.events.ModifyEvent;
@@ -27,12 +26,10 @@ import org.eclipse.ui.forms.widgets.ScrolledForm;
  *
  * @author p.ciardelli
  * @created 19.05.2008
- * @version 1.0
  */
 public class LineWrapSupport {
-       private static final Logger logger = Logger
-                       .getLogger(LineWrapSupport.class);
-       
+       private static final Logger logger = LogManager.getLogger(LineWrapSupport.class);
+
        ModifyListener listener = new LineWrapListener();
        int lineCount;
 
@@ -40,7 +37,7 @@ public class LineWrapSupport {
        private ScrolledForm scrolledForm;
 
 //     private TextViewer viewer;
-       
+
        /**
         * <p>Constructor for LineWrapSupport.</p>
         *
@@ -51,25 +48,25 @@ public class LineWrapSupport {
 //             return viewer;
 //     }
        public LineWrapSupport(TextViewer viewer, IManagedForm form) {
-               
+
                if (viewer == null) {
                        throw new IllegalArgumentException(
                                        "The provided TextViewer object is null."); //$NON-NLS-1$
                }
-               
+
 //             this.viewer = viewer;
-               
+
                textWidget = viewer.getTextWidget();
                textWidget.addModifyListener(listener);
-                               
+
                this.lineCount = textWidget.getLinePixel(textWidget.getLineCount());
                this.scrolledForm = form.getForm();
-               
+
                logger.trace(this.getClass().getSimpleName() + " created"); //$NON-NLS-1$
        }
-       
+
        /**
-        * Redraws the scrolledForm if a line wrap is detected. 
+        * Redraws the scrolledForm if a line wrap is detected.
         */
        private void checkLineCount() {
 
@@ -78,18 +75,18 @@ public class LineWrapSupport {
                        scrolledForm.getBody().layout();
                }
        }
-       
+
        /**
         * Calls <code>checkLineCount()</code> on a modify event.
-        * 
+        *
         * @author p.ciardelli
         * @created 21.05.2008
-        * @version 1.0
         */
        class LineWrapListener implements ModifyListener {
 
-               public void modifyText(ModifyEvent e) {
+               @Override
+        public void modifyText(ModifyEvent e) {
                        checkLineCount();
                }
        }
-}
+}
\ No newline at end of file
index 4fe9ddbeedf71393d3af3423fa3157f5a22c30a8..f6ef86034bb2b389fc311d2cc1026449a633217d 100644 (file)
@@ -11,7 +11,7 @@ package eu.etaxonomy.taxeditor.editor.name.container;
 
 import java.util.Iterator;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.IRegion;
@@ -61,7 +61,7 @@ import org.eclipse.ui.forms.widgets.TableWrapData;
  * @created 27.01.2009
  */
 public class RulerWithIcon implements IVerticalRuler, IVerticalRulerExtension {
-       private static final Logger logger = Logger.getLogger(RulerWithIcon.class);
+       private static final Logger logger = LogManager.getLogger(RulerWithIcon.class);
 
        /**
         * Internal listener class.
similarity index 79%
rename from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/IDropTargetableE4.java
rename to eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/IDropTargetable.java
index f0eb85f17c06db353099ba2b8d84da8b4ac199c3..1fec648dd5b215adbd7c793d928361aa8f418fec 100644 (file)
@@ -14,11 +14,11 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
  * @date Aug 24, 2017
  *
  */
-public interface IDropTargetableE4 extends IPostOperationEnabled {
+public interface IDropTargetable extends IPostOperationEnabled {
 
        public Composite getControl();
 
-       public TaxonNameEditorE4 getEditor();
+       public TaxonEditor getEditor();
 
        public void dragEntered();
 
similarity index 77%
rename from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/TaxonNameEditorE4.java
rename to eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/TaxonEditor.java
index ee89e08d43a1ff8e7e0edd6c168bf28c135010d9..1e878466b712cc05c246d1989398e26e20339488 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.editor.name.e4;
 
 import java.util.ArrayList;
@@ -19,7 +18,7 @@ import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.commands.operations.UndoContext;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -40,7 +39,6 @@ import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.swt.dnd.DND;
 import org.eclipse.swt.dnd.DropTarget;
@@ -55,8 +53,6 @@ import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.ScrolledForm;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.CdmBase;
@@ -68,23 +64,22 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.ISecuredEditor;
 import eu.etaxonomy.taxeditor.editor.ITaxonEditor;
-import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4;
+import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.container.AbstractGroupE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.container.AbstractGroupedContainerE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.container.AcceptedGroupE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.container.AbstractGroup;
+import eu.etaxonomy.taxeditor.editor.name.e4.container.AbstractGroupedContainer;
+import eu.etaxonomy.taxeditor.editor.name.e4.container.AcceptedGroup;
 import eu.etaxonomy.taxeditor.editor.name.e4.container.AcceptedNameContainerE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.container.ConceptContainerE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.container.ContainerFactoryE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.container.HomotypicalSynonymGroupE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.container.MisappliedGroupE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.dnd.NameEditorDropTargetListenerE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.container.ConceptContainer;
+import eu.etaxonomy.taxeditor.editor.name.e4.container.ContainerFactory;
+import eu.etaxonomy.taxeditor.editor.name.e4.container.HomotypicalSynonymGroup;
+import eu.etaxonomy.taxeditor.editor.name.e4.container.MisappliedGroup;
+import eu.etaxonomy.taxeditor.editor.name.e4.dnd.NameEditorDropTargetListener;
 import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -106,33 +101,31 @@ import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
  * @author pplitzner
  * @date Aug 24, 2017
  */
-public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable, IPartContentHasDetails,
-        IPartContentHasSupplementalData, IPartContentHasMedia, IPartContentHasFactualData, IPartChangeListener,
-        ISelectionListener, ISecuredEditor, IE4SavablePart, ITaxonEditor, IDropTargetableE4 {
+public class TaxonEditor
+        implements IDirtyMarkable, IPartContentHasDetails,
+            IPartContentHasSupplementalData, IPartContentHasMedia, IPartContentHasFactualData, IPartChangeListener,
+            ISelectionListener, ISecuredEditor, IE4SavablePart, ITaxonEditor, IDropTargetable {
 
     private Taxon taxon;
 
     private ManagedForm managedForm;
     private ScrolledForm scrolledForm;
     private Composite parent;
-    private ISelectionProvider simpleSelectionProvider;
     @Inject
     private EModelService modelService;
 
     @Inject
     private EPartService partService;
-    private TaxonBase selection;
-
-    private ConversationHolder conversation;
+    private TaxonBase<?> selection;
 
-    private AcceptedGroupE4 acceptedGroup;
-    private List<HomotypicalSynonymGroupE4> heterotypicSynonymGroups = new ArrayList<>();
-    private MisappliedGroupE4 misappliedGroup;
+    private AcceptedGroup acceptedGroup;
+    private List<HomotypicalSynonymGroup> heterotypicSynonymGroups = new ArrayList<>();
+    private MisappliedGroup misappliedGroup;
 
     private DropTarget target;
 
     @Inject
-    UISynchronize sync;
+    private UISynchronize sync;
 
     private TaxonBase<?> objectAffectedByLastOperation;
 
@@ -153,7 +146,7 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
 
     private MPart thisPart;
 
-    private TaxonEditorInputE4 input;
+    private TaxonEditorInput input;
 
     private UndoContext undoContext;
 
@@ -161,7 +154,7 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
     private IEventBroker eventBroker;
 
     @Inject
-    public TaxonNameEditorE4() {
+    public TaxonEditor() {
         undoContext = new UndoContext();
     }
 
@@ -172,7 +165,6 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
         createManagedForm(parent);
 
         TaxeditorPartService.getInstance().addListener(TaxeditorPartService.PART_ACTIVATED, this);
-
     }
 
     protected void createManagedForm(Composite composite) {
@@ -186,9 +178,9 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
 
             @Override
             public boolean setInput(Object input) {
-                if (input instanceof AbstractGroupedContainerE4) {
-                    TaxonBase<?> newSelection = ((AbstractGroupedContainerE4<?>) input).getData();
-                    if (selection != newSelection || TaxonNameEditorE4.this.isDirty()) {
+                if (input instanceof AbstractGroupedContainer) {
+                    TaxonBase<?> newSelection = ((AbstractGroupedContainer<?>) input).getData();
+                    if (selection != newSelection || TaxonEditor.this.isDirty()) {
                         selection = newSelection;
                         selService.setSelection(new StructuredSelection(selection));
 
@@ -223,21 +215,20 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
     public void createOrUpdateNameComposites(boolean accepted, boolean heterotypicGroups, boolean misappliedNames) {
 
         if (accepted) {
-            ContainerFactoryE4.createOrUpdateAcceptedTaxonsHomotypicGroup(this);
+            ContainerFactory.createOrUpdateAcceptedTaxonsHomotypicGroup(this);
         }
         if (heterotypicGroups) {
-            ContainerFactoryE4.createOrUpdateHeterotypicSynonymyGroups(this);
+            ContainerFactory.createOrUpdateHeterotypicSynonymyGroups(this);
         }
         if (misappliedNames) {
-            ContainerFactoryE4.createOrUpdateMisapplicationsGroup(this);
+            ContainerFactory.createOrUpdateMisapplicationsGroup(this);
         }
-        ContainerFactoryE4.setMenuToAllContainers(this);
+        ContainerFactory.setMenuToAllContainers(this);
 
         // Redraw composite
         parent.pack();
         managedForm.refresh();
         managedForm.reflow(true);
-
     }
 
     @Override
@@ -258,33 +249,31 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
     public void setFocus() {
         // make sure to bind again if maybe in another view the conversation was
         // unbound
-        if (conversation != null && !conversation.isBound()) {
-            conversation.bind();
-        }
+
+        eventBroker.post(WorkbenchEventConstants.CURRENT_ACTIVE_EDITOR, this);
+
         if (EditorUtil.isFactsVisible()){
             EditorUtil.showFacts(modelService, partService);
+            EditorUtil.setFactsVisible(false);
         }
         if (EditorUtil.isMediaVisible()){
             EditorUtil.showMedia(modelService, partService);
+            EditorUtil.setMediaVisible(false);
         }
         if (input != null) {
             if (getSelectedContainer() == null) {
                 throw new IllegalStateException(Messages.TaxonNameEditor_THERE_SHOULD_ALWAYS_BE);
             }
-            getSelectedContainer().setSelected();
 
-            if (!input.getCdmEntitySession().isActive()) {
+            if (input.getCdmEntitySession() != null && !input.getCdmEntitySession().isActive()) {
                 input.bind();
             }
+
         }
-//        if(selection!=null){
-//            selService.setSelection(new StructuredSelection(selection));
-//        }
+
         // check permissions
         boolean doEnable = permissionsSatisfied();
         managedForm.getForm().setEnabled(doEnable);
-
-        eventBroker.post(WorkbenchEventConstants.CURRENT_ACTIVE_EDITOR, this);
     }
 
     @Override
@@ -294,21 +283,10 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
             TaxonNode taxonNode = input.getTaxonNode();
             doEnable = CdmStore.currentAuthentiationHasPermission(taxonNode,
                     RequiredPermissions.TAXON_EDIT);
-
         }
         return doEnable;
     }
 
-    @Override
-    public ConversationHolder getConversationHolder() {
-        return conversation;
-    }
-
-    @Override
-    public void update(CdmDataChangeMap events) {
-        // redraw();
-    }
-
     /**
      * Redraws this editor return true on success
      *
@@ -358,7 +336,7 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
      * @return true if there are empty names
      */
     public boolean checkForEmptyNames() {
-        for (AbstractGroupedContainerE4<?> container : getGroupedContainers()) {
+        for (AbstractGroupedContainer<?> container : getGroupedContainers()) {
             if (container != null
                     && (container.getName() == null || StringUtils.isEmpty(container.getName().getTitleCache()))) {
                 return true;
@@ -367,10 +345,10 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
         return false;
     }
 
-    public Set<AbstractGroupedContainerE4> getEmptyContainers() {
-        Set<AbstractGroupedContainerE4> containersWithEmptyNames = new HashSet<>();
+    public Set<AbstractGroupedContainer> getEmptyContainers() {
+        Set<AbstractGroupedContainer> containersWithEmptyNames = new HashSet<>();
 
-        for (AbstractGroupedContainerE4<?> container : getGroupedContainers()) {
+        for (AbstractGroupedContainer<?> container : getGroupedContainers()) {
             if (container.getName() == null || StringUtils.isEmpty(container.getName().getTitleCache())) {
                 containersWithEmptyNames.add(container);
             }
@@ -384,27 +362,23 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
     public void save(IProgressMonitor monitor) {
 
         monitor.beginTask(Messages.TaxonNameEditor_SAVING_NAMES, getGroupedContainers().size());
-        if (!conversation.isBound()) {
-            conversation.bind();
-
-        }
-        conversation.commit(true);
         monitor.worked(1);
-
+        this.getEditorInput().getCdmEntitySession().load(this.taxon, true);
+        //this.getDirtyNames().forEach(container -> container.refresh());
         // check for empty names
         if (checkForEmptyNames()) {
             MessageDialog.openWarning(AbstractUtility.getShell(), Messages.MultiPageTaxonEditor_NO_NAME_SPECIFIED,
                     Messages.MultiPageTaxonEditor_NO_NAME_SPECIFIED_MESSAGE);
             return;
         }
-        for (AbstractGroupedContainerE4<?> container : getGroupedContainers()) {
+        for (AbstractGroupedContainer<?> container : getGroupedContainers()) {
 
             monitor.subTask(Messages.TaxonNameEditor_SAVING_COMPOSITES + container.getTaxonBase().getTitleCache());
             container.persistName();
             // because of missing cascading the concepts need to be saved
             // separately
-            if (container instanceof ConceptContainerE4) {
-                input.addToSaveNewConcept((Taxon) container.getData());
+            if (container instanceof ConceptContainer) {
+                input.addToSaveConcept((Taxon) container.getData());
             }
             // In case the progress monitor was canceled throw an exception.
             if (monitor.isCanceled()) {
@@ -413,27 +387,33 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
 
             // Otherwise declare this step as done.
             monitor.worked(1);
-
         }
+
         input.setSync(sync);
         input.merge();
-        // commit the conversation and start a new transaction immediately
-        conversation.commit(true);
 
         dirty.setDirty(false);
-        EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, new TaxonNodeDto(input.getTaxonNode()));
+
+        if (input.getTaxonNode().getParent() != null) {
+            EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, new TaxonNodeDto(input.getTaxonNode().getParent()));
+        }else {
+            EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, new TaxonNodeDto(input.getTaxonNode()));
+        }
         EventUtility.postEvent(WorkbenchEventConstants.SAVE_TAXON, true);
+        EventUtility.postAsyncEvent(WorkbenchEventConstants.REFRESH_DETAILS, true);
+//        EventUtility.postAsyncEvent(WorkbenchEventConstants.NEED_REFRESH_DETAILS, false);
         // Stop the progress monitor.
         monitor.done();
     }
 
-    public void init(TaxonEditorInputE4 input) {
+    public void init(TaxonEditorInput input) {
         if (this.input != null) {
             this.input.dispose();
             // this.acceptedGroup = null;
             // this.heterotypicSynonymGroups.clear();
             // this.misappliedGroup = null;
         }
+        eventBroker.post(WorkbenchEventConstants.CURRENT_ACTIVE_EDITOR, this);
         if (!(input != null)) {
             MessagingUtils.error(this.getClass(), new Exception(Messages.TaxonNameEditor_INVALID_INPUT));
             return;
@@ -447,19 +427,20 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
         }
 
         this.input = input;
-        conversation = input.getConversationHolder();
-
         createOrUpdateNameComposites(true, true, true);
 
         createDragSupport();
 
         setPartName();
-
         // set initial selection
         TaxonBase<?> initiallySelectedTaxonBase = input.getInitiallySelectedTaxonBase();
         if (initiallySelectedTaxonBase != null) {
             selService.setSelection(new StructuredSelection(initiallySelectedTaxonBase));
-            getContainer(initiallySelectedTaxonBase).setSelected();
+            sync.asyncExec(()->{
+                if (getContainer(initiallySelectedTaxonBase)!= null) {
+                    getContainer(initiallySelectedTaxonBase).setSelected();
+                }
+            });
         }
     }
 
@@ -471,7 +452,7 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
         if (target == null) {
             target = new DropTarget(parent, operations);
             target.setTransfer(types);
-            target.addDropListener(new NameEditorDropTargetListenerE4(this));
+            target.addDropListener(new NameEditorDropTargetListener(this));
         }
     }
 
@@ -479,8 +460,8 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
         return getAcceptedGroup().getAcceptedNameContainer();
     }
 
-    public HomotypicalSynonymGroupE4 getHomotypicalGroupContainer(HomotypicalGroup homotypicalGroup) {
-        for (HomotypicalSynonymGroupE4 group : getHeterotypicSynonymGroups()) {
+    public HomotypicalSynonymGroup getHomotypicalGroupContainer(HomotypicalGroup homotypicalGroup) {
+        for (HomotypicalSynonymGroup group : getHeterotypicSynonymGroups()) {
             if (group.getGroup().equals(homotypicalGroup)) {
                 return group;
             }
@@ -496,10 +477,10 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
      *
      * @return a Set containing all composites that have been edited
      */
-    public Set<AbstractGroupedContainerE4> getDirtyNames() {
-        Set<AbstractGroupedContainerE4> dirtyNames = new HashSet<>();
+    public Set<AbstractGroupedContainer> getDirtyNames() {
+        Set<AbstractGroupedContainer> dirtyNames = new HashSet<>();
 
-        for (AbstractGroupedContainerE4<?> composite : getGroupedContainers()) {
+        for (AbstractGroupedContainer<?> composite : getGroupedContainers()) {
             if (composite.isDirty()) {
                 dirtyNames.add(composite);
             }
@@ -508,10 +489,10 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
         return dirtyNames;
     }
 
-    public List<AbstractGroupedContainerE4> getGroupedContainers() {
-        List<AbstractGroupedContainerE4> groupedComposites = new ArrayList<>();
+    public List<AbstractGroupedContainer> getGroupedContainers() {
+        List<AbstractGroupedContainer> groupedComposites = new ArrayList<>();
 
-        for (AbstractGroupE4 group : getAllGroups()) {
+        for (AbstractGroup group : getAllGroups()) {
             if (group != null) {
                 groupedComposites.addAll(group.getGroupedContainers());
             }
@@ -520,8 +501,8 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
         return groupedComposites;
     }
 
-    public List<AbstractGroupE4> getAllGroups() {
-        List<AbstractGroupE4> allGroups = new ArrayList<>();
+    public List<AbstractGroup> getAllGroups() {
+        List<AbstractGroup> allGroups = new ArrayList<>();
 
         allGroups.add(getAcceptedGroup());
 
@@ -550,10 +531,6 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
 
     @PreDestroy
     public void dispose() {
-        if (conversation != null) {
-            conversation.unregisterForDataStoreChanges(this);
-            conversation.close();
-        }
         if (input != null) {
             input.dispose();
         }
@@ -563,10 +540,10 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
 
     @Override
     public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-        System.err.println("Bla");
+
     }
 
-    public AbstractGroupedContainerE4 getSelectedContainer() {
+    public AbstractGroupedContainer getSelectedContainer() {
         if (selection == null && input != null){
             selection = this.input.getTaxon();
         }
@@ -584,7 +561,7 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
         getControl().setBackground(AbstractUtility.getColor(Resources.COLOR_COMPOSITE_BACKGROUND));
     }
 
-    public void setMisapplicationsGroup(MisappliedGroupE4 misappliedGroup) {
+    public void setMisapplicationsGroup(MisappliedGroup misappliedGroup) {
         this.misappliedGroup = misappliedGroup;
     }
 
@@ -592,23 +569,23 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
         return managedForm.getToolkit();
     }
 
-    public List<HomotypicalSynonymGroupE4> getHeterotypicSynonymGroups() {
+    public List<HomotypicalSynonymGroup> getHeterotypicSynonymGroups() {
         return heterotypicSynonymGroups;
     }
 
-    public void addHeterotypicSynonymGroup(HomotypicalSynonymGroupE4 group) {
+    public void addHeterotypicSynonymGroup(HomotypicalSynonymGroup group) {
         heterotypicSynonymGroups.add(group);
     }
 
-    public AcceptedGroupE4 getAcceptedGroup() {
+    public AcceptedGroup getAcceptedGroup() {
         return acceptedGroup;
     }
 
-    public void setAcceptedGroup(AcceptedGroupE4 acceptedGroup) {
+    public void setAcceptedGroup(AcceptedGroup acceptedGroup) {
         this.acceptedGroup = acceptedGroup;
     }
 
-    public MisappliedGroupE4 getMisappliedGroup() {
+    public MisappliedGroup getMisappliedGroup() {
         return misappliedGroup;
     }
 
@@ -618,7 +595,9 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
 
     @Override
     public boolean onComplete() {
-        getContainer(objectAffectedByLastOperation).setSelected();
+        if (objectAffectedByLastOperation != null && getContainer(objectAffectedByLastOperation) != null) {
+            getContainer(objectAffectedByLastOperation).setSelected();
+        }
         return true;
     }
 
@@ -630,7 +609,7 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
         }
     }
 
-    public void removeGroup(AbstractGroupE4 group) {
+    public void removeGroup(AbstractGroup group) {
         if (group != null) {
             group.dispose();
 
@@ -640,10 +619,10 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
         }
     }
 
-    public AbstractGroupedContainerE4 getContainer(TaxonBase taxonBase) {
+    public AbstractGroupedContainer<?> getContainer(TaxonBase taxonBase) {
         @SuppressWarnings("rawtypes")
-        List<AbstractGroupedContainerE4> groupedContainers = getGroupedContainers();
-        for (AbstractGroupedContainerE4<?> container : groupedContainers) {
+        List<AbstractGroupedContainer> groupedContainers = getGroupedContainers();
+        for (AbstractGroupedContainer<?> container : groupedContainers) {
             if (container.getData().equals(taxonBase) && container.getNameViewer().getTextWidget() != null) {
                 return container;
             }
@@ -663,7 +642,7 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
 
     protected void setEnabled(boolean enabled, Color background) {
 
-        for (AbstractGroupedContainerE4<?> groupedContainer : getGroupedContainers()) {
+        for (AbstractGroupedContainer<?> groupedContainer : getGroupedContainers()) {
             groupedContainer.setEnabled(enabled);
         }
 
@@ -672,7 +651,7 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
         if (!enabled) {
             getManagedForm().setInput(null);
 
-            for (AbstractGroupedContainerE4<?> groupedContainer : getGroupedContainers()) {
+            for (AbstractGroupedContainer<?> groupedContainer : getGroupedContainers()) {
                 groupedContainer.setBackground(background);
             }
         }
@@ -693,16 +672,18 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
         }
 
         if (element instanceof TaxonBase) {
-            AbstractGroupedContainerE4<?> container = getContainer((TaxonBase<?>) element);
+            AbstractGroupedContainer<?> container = getContainer((TaxonBase<?>) element);
             if (container != null) {
                 container.refresh();
+                container.setDirty(false);
             }
         }
 
         if (element instanceof TaxonRelationship) {
-            AbstractGroupedContainerE4 container = getContainer(((TaxonRelationship) element).getFromTaxon());
+            AbstractGroupedContainer container = getContainer(((TaxonRelationship) element).getFromTaxon());
             if (container != null) {
                 container.refresh();
+                container.setDirty(false);
             }
         }
     }
@@ -740,12 +721,12 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
         return true;
     }
 
-    public TaxonEditorInputE4 getEditorInput() {
+    public TaxonEditorInput getEditorInput() {
         return input;
     }
 
     @Override
-    public TaxonNameEditorE4 getEditor() {
+    public TaxonEditor getEditor() {
         return this;
     }
 
@@ -753,15 +734,13 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
     @Optional
     private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_NAME_EDITOR) CdmBase cdmbase) {
 
-        if ((EventUtility.getTaxonEditor() != null && EventUtility.getTaxonEditor().equals(this))
-                || (this.taxon != null && (this.taxon.equals(cdmbase)
-                        || (this.taxon.getName() != null && this.taxon.getName().equals(cdmbase))))) {
+          if(this.taxon != null && (this.taxon.equals(cdmbase)
+                        || (this.taxon.getName() != null && this.taxon.getName().equals(cdmbase)))) {
             this.redraw(false, true, true, true);
             this.setDirty();
             if (cdmbase instanceof TaxonBase) {
-                this.selection = (TaxonBase) cdmbase;
+                this.selection = (TaxonBase<?>) cdmbase;
             }
-
         }
     }
 
@@ -769,15 +748,14 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
     @Optional
     private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_NAME_EDITOR) List<CdmBase> cdmBases) {
 
+       if (cdmBases == null){
+               return;
+       }
         for (CdmBase cdmBase: cdmBases){
             if (cdmBase instanceof Taxon || cdmBase instanceof TaxonName){
-                if ((EventUtility.getTaxonEditor() != null && EventUtility.getTaxonEditor().equals(this))
-                        || (this.taxon != null && (this.taxon.equals(cdmBase)
-                                || (this.taxon.getName() != null && this.taxon.getName().equals(cdmBase))))) {
-                    EPartService partService = TaxeditorEditorPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getService(EPartService.class);
-                    EModelService modelService = TaxeditorEditorPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getService(EModelService.class);
-                    EditorUtil.openTaxonBaseE4(this.getTaxon().getUuid(), modelService, partService, application);
-
+                if (this.taxon != null && (this.taxon.equals(cdmBase)
+                                || (this.taxon.getName() != null && this.taxon.getName().equals(cdmBase)))) {
+                    update();
                 }
             }
         }
@@ -786,9 +764,8 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
     @Inject
     @Optional
     private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_NAME_EDITOR) UUID cdmbaseUuid) {
-
         if (this.taxon.getUuid().equals(cdmbaseUuid)) {
-            TaxonEditorInputE4 input = TaxonEditorInputE4.NewInstanceFromTaxonBase(cdmbaseUuid);
+            TaxonEditorInput input = TaxonEditorInput.NewInstanceFromTaxonBase(cdmbaseUuid);
             init(input);
         }
     }
@@ -811,9 +788,7 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
                 // check for match in type designations
                 .anyMatch(unit -> typeDesignationSpecimens.contains(unit))) {
             EditorUtil.updateEditor(this.input.getTaxonNode(), this);
-
         }
-
     }
 
     @Override
@@ -827,4 +802,6 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
     public TaxonNode getTaxonNode() {
         return input.getTaxonNode();
     }
-}
+
+
+}
\ No newline at end of file
similarity index 77%
rename from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AbstractGroupE4.java
rename to eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AbstractGroup.java
index cf85b45c64da2d22f93c38b9006051d86fb687b4..ebb52cb6c1aa22c076c901a0f6b9e2b254befc60 100644 (file)
@@ -25,10 +25,10 @@ import org.eclipse.ui.forms.widgets.TableWrapData;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
 import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
-import eu.etaxonomy.taxeditor.editor.name.e4.IDropTargetableE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.IDropTargetable;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.name.e4.dnd.NameEditorDropTargetEffect;
-import eu.etaxonomy.taxeditor.editor.name.e4.dnd.NameEditorDropTargetListenerE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.dnd.NameEditorDropTargetListener;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.preference.Resources;
 
@@ -36,20 +36,20 @@ import eu.etaxonomy.taxeditor.preference.Resources;
  * @author pplitzner
  * @date Aug 24, 2017
  */
-public abstract class AbstractGroupE4 implements IDropTargetableE4{
+public abstract class AbstractGroup implements IDropTargetable{
 
        private Composite control;
 
        private IEclipseContext context;
 
-       private final List<AbstractGroupedContainerE4> groupedContainers = new ArrayList<>();
+       private final List<AbstractGroupedContainer> groupedContainers = new ArrayList<>();
 
-       protected TaxonNameEditorE4 editor;
+       protected TaxonEditor editor;
 
        private DropTarget target;
        private DropTargetListener dropListener;
 
-       public AbstractGroupE4(TaxonNameEditorE4 editor){
+       public AbstractGroup(TaxonEditor editor){
                this.editor = editor;
                this.context = editor.getContext();
        }
@@ -83,20 +83,20 @@ public abstract class AbstractGroupE4 implements IDropTargetableE4{
                control.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_GRAY));
        }
 
-       public void add(AbstractGroupedContainerE4 groupedContainer){
+       public void add(AbstractGroupedContainer groupedContainer){
                groupedContainers.add(groupedContainer);
        }
 
-       public void remove(AbstractGroupedContainerE4 groupedContainer){
+       public void remove(AbstractGroupedContainer groupedContainer){
                groupedContainer.dispose();
                groupedContainers.remove(groupedContainer);
 
-               if(!(this instanceof AcceptedGroupE4) && groupedContainers.isEmpty()){
+               if(!(this instanceof AcceptedGroup) && groupedContainers.isEmpty()){
                        getEditor().removeGroup(this);
                }
        }
 
-       public List<AbstractGroupedContainerE4> getGroupedContainers(){
+       public List<AbstractGroupedContainer> getGroupedContainers(){
                return groupedContainers;
        }
 
@@ -107,7 +107,7 @@ public abstract class AbstractGroupE4 implements IDropTargetableE4{
                        int operations = DND.DROP_MOVE;
                        target = new DropTarget(control, operations);
                        target.setTransfer(types);
-                       dropListener = new NameEditorDropTargetListenerE4(this);
+                       dropListener = new NameEditorDropTargetListener(this);
                        target.addDropListener(dropListener);
 
                        target.setDropTargetEffect(new NameEditorDropTargetEffect(control));
@@ -125,7 +125,7 @@ public abstract class AbstractGroupE4 implements IDropTargetableE4{
        }
 
        @Override
-    public TaxonNameEditorE4 getEditor() {
+    public TaxonEditor getEditor() {
                return editor;
        }
 
@@ -133,14 +133,14 @@ public abstract class AbstractGroupE4 implements IDropTargetableE4{
     public void dragEntered() {
                Color color = AbstractUtility.getColor(Resources.COLOR_DRAG_ENTER);
 
-               for(AbstractGroupedContainerE4<?> container : groupedContainers){
+               for(AbstractGroupedContainer<?> container : groupedContainers){
                        container.setBackground(color);
                }
        }
 
        @Override
     public void dragLeft() {
-               for(AbstractGroupedContainerE4<?> container : groupedContainers){
+               for(AbstractGroupedContainer<?> container : groupedContainers){
                        container.restoreColor();
                }
        }
@@ -173,7 +173,7 @@ public abstract class AbstractGroupE4 implements IDropTargetableE4{
        public void dispose(){
                if(getControl() != null){
                    getControl().setMenu(null);
-                       for(AbstractGroupedContainerE4<?> container : getGroupedContainers()){
+                       for(AbstractGroupedContainer<?> container : getGroupedContainers()){
                                container.dispose();
                        }
                        getControl().dispose();
@@ -181,7 +181,7 @@ public abstract class AbstractGroupE4 implements IDropTargetableE4{
        }
 
        protected void emptyGroup(){
-               for(AbstractGroupedContainerE4<?> container : groupedContainers){
+               for(AbstractGroupedContainer<?> container : groupedContainers){
                    container.getControl().setMenu(null);
                        container.dispose();
                }
@@ -189,7 +189,7 @@ public abstract class AbstractGroupE4 implements IDropTargetableE4{
        }
 
        protected void setMenuToGroup(){
-        for(AbstractGroupedContainerE4<?> container : groupedContainers){
+        for(AbstractGroupedContainer<?> container : groupedContainers){
             container.setMenu();
 
         }
@@ -6,14 +6,13 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.editor.name.e4.container;
 
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.e4.ui.di.UISynchronize;
 import org.eclipse.jface.dialogs.Dialog;
@@ -58,10 +57,12 @@ import eu.etaxonomy.taxeditor.editor.name.container.EditorAnnotation.EditorAnnot
 import eu.etaxonomy.taxeditor.editor.name.container.IContainerConstants;
 import eu.etaxonomy.taxeditor.editor.name.container.LineBreakListener;
 import eu.etaxonomy.taxeditor.editor.name.container.LineWrapSupport;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.name.e4.dnd.NameEditorDragListenerE4;
 import eu.etaxonomy.taxeditor.editor.name.e4.dnd.NameEditorDragSourceEffect;
 import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInNewGroupOperation;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.IElementHasDetails;
 import eu.etaxonomy.taxeditor.model.NameHelper;
@@ -84,7 +85,7 @@ import eu.etaxonomy.taxeditor.preference.Resources;
  * in its own <code>getData()</code>.
  * </p>
  * <p>
- * The <code>IManagedForm</code> can also used for drawing borders by calling
+ * The <code>IManagedForm</code> can also be used for drawing borders by calling
  * the method <code>createBorderSupport()</code>.
  * </p>
  * @author pplitzner
@@ -92,7 +93,7 @@ import eu.etaxonomy.taxeditor.preference.Resources;
  *
  * @param <T>
  */
-abstract public class AbstractGroupedContainerE4<T extends TaxonBase> implements
+abstract public class AbstractGroupedContainer<T extends TaxonBase> implements
                IFormPart, IContainerConstants, IElementHasDetails {
 
        protected ParseHandler parseHandler;
@@ -100,26 +101,28 @@ abstract public class AbstractGroupedContainerE4<T extends TaxonBase> implements
        private FocusListener nameCompositeFocusListener;
        private ModifyListener nameCompositeModifyListener;
 
-       protected NameViewerE4 nameViewer;
+       protected NameViewer nameViewer;
 
-       private AbstractGroupE4 group;
+       private AbstractGroup group;
 
        private Label nonEditableInfoLabel;
        private DefaultToolTip nonEditableInfoHover;
 
-       private static AbstractGroupedContainerE4<?> selection;
+       private static AbstractGroupedContainer<?> selection;
 
        private FocusListener focusListener;
        private LineBreakListener lineBreakListener;
 
        private int cursorPosition;
 
+       private long lastEventTime;
+
        protected Composite control;
 
        private Color backgroundColor;
        private boolean isDirty;
 
-       public AbstractGroupedContainerE4(AbstractGroupE4 group, T taxonBase) {
+       public AbstractGroupedContainer(AbstractGroup group, T taxonBase) {
                setData(taxonBase);
                this.group = group;
                parseHandler = ParseHandler.NewInstance(taxonBase.getName());
@@ -150,6 +153,7 @@ abstract public class AbstractGroupedContainerE4<T extends TaxonBase> implements
                nameCompositeModifyListener = (ModifyEvent e)->{
                                // mark the composite dirty
                                setDirty(true);
+                               lastEventTime = System.currentTimeMillis();
                                // parse the text
                                String text = nameViewer.getTextWidget().getText();
 
@@ -157,12 +161,15 @@ abstract public class AbstractGroupedContainerE4<T extends TaxonBase> implements
                                getTaxonBase().setName(name);
                                getTaxonBase().setTitleCache((getTaxonBase().generateTitle()));
 
+
                                // show errors resulting from parsing
                                calculateAnnotations();
                                // store the position of the cursor
                                storeCursor();
                                // notify selection listener
                                setDelayedSelection();
+                               EventUtility.postAsyncEvent(WorkbenchEventConstants.NEED_REFRESH_DETAILS, false);
+
                };
 
                nameCompositeFocusListener = new FocusAdapter() {
@@ -172,6 +179,7 @@ abstract public class AbstractGroupedContainerE4<T extends TaxonBase> implements
                                super.focusLost(e);
                                persistName();
                        }
+
                };
 
                addListener();
@@ -440,7 +448,7 @@ abstract public class AbstractGroupedContainerE4<T extends TaxonBase> implements
                }
        }
 
-       public AbstractGroupE4 getGroup() {
+       public AbstractGroup getGroup() {
                if (group == null) {
                        throw new IllegalStateException("Group shall not be null."); //$NON-NLS-1$
                }
@@ -469,7 +477,7 @@ abstract public class AbstractGroupedContainerE4<T extends TaxonBase> implements
 
        }
 
-       protected TaxonNameEditorE4 getEditor() {
+       protected TaxonEditor getEditor() {
                return getGroup().getEditor();
        }
 
@@ -477,12 +485,13 @@ abstract public class AbstractGroupedContainerE4<T extends TaxonBase> implements
                return control;
        }
 
-       protected void createLineWrapSupport() {
+       @SuppressWarnings("unused")
+    protected void createLineWrapSupport() {
                new LineWrapSupport(getNameViewer(), getEditor().getManagedForm());
        }
 
        protected void createTextViewer() {
-               nameViewer = new NameViewerE4(control);
+               nameViewer = new NameViewer(control);
 
                focusListener = new FocusAdapter() {
                        @Override
@@ -492,12 +501,12 @@ abstract public class AbstractGroupedContainerE4<T extends TaxonBase> implements
                                return;
                            }
 
-                               for (AbstractGroupedContainerE4<?> container : getEditor()
+                               for (AbstractGroupedContainer<?> container : getEditor()
                                                .getGroupedContainers()) {
                                        container.colorSelected(NOT_SELECTED);
                                }
                                getEditor().getManagedForm().setInput(
-                                               AbstractGroupedContainerE4.this);
+                                               AbstractGroupedContainer.this);
                                placeCursor();
                                colorSelected(SELECTED_FOCUS);
                        }
@@ -533,7 +542,9 @@ abstract public class AbstractGroupedContainerE4<T extends TaxonBase> implements
        }
 
        public void setSelected() {
-               getNameViewer().getTextWidget().setFocus();
+           if (getNameViewer() != null && getNameViewer().getTextWidget() != null) {
+               getNameViewer().getTextWidget().setFocus();
+           }
        }
 
        public boolean isSelected() {
@@ -558,8 +569,6 @@ abstract public class AbstractGroupedContainerE4<T extends TaxonBase> implements
                        backgroundColor = AbstractUtility.getColor(colorString);
 
                        setBackground(backgroundColor);
-               }else{
-                   System.err.println("disposed");
                }
        }
 
@@ -570,9 +579,10 @@ abstract public class AbstractGroupedContainerE4<T extends TaxonBase> implements
            private volatile boolean stop = false;
         private Display display;
 
-        public Delay(Display display) {
+        private Delay(Display display) {
             this.display = display;
         }
+
         @Override
         public void run() {
 
@@ -604,7 +614,6 @@ abstract public class AbstractGroupedContainerE4<T extends TaxonBase> implements
                delay.requestStop();
                delay = new Delay(display);
                delay.start();
-
        }
 
        public void setBackground(Color color) {
@@ -621,7 +630,7 @@ abstract public class AbstractGroupedContainerE4<T extends TaxonBase> implements
                getNameViewer().getTextWidget().setFont(font);
        }
 
-       public NameViewerE4 getNameViewer() {
+       public NameViewer getNameViewer() {
                if (nameViewer == null) {
                        throw new RuntimeException(
                                        "The Name Viewer is corrupt for Name Container: " //$NON-NLS-1$
@@ -784,7 +793,7 @@ abstract public class AbstractGroupedContainerE4<T extends TaxonBase> implements
                        // Set indent to viewer ruler's width
                        if (getNameViewer().getRulerControl() != null) {
                                // TODO right justify
-                               layoutData.indent = NameViewerE4.RULER_WIDTH;
+                               layoutData.indent = NameViewer.RULER_WIDTH;
                        }
                        nonEditableInfoLabel.setLayoutData(layoutData);
 
@@ -826,7 +835,7 @@ abstract public class AbstractGroupedContainerE4<T extends TaxonBase> implements
                lineBreakListener = new LineBreakListener() {
                        @Override
                        public void handleSplitText(String text) {
-                               AbstractGroupedContainerE4.this.handleSplitText(text);
+                               AbstractGroupedContainer.this.handleSplitText(text);
                        }
 
                };
@@ -16,7 +16,7 @@ import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 
 /**
  *
@@ -24,11 +24,11 @@ import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
  * @date Aug 24, 2017
  *
  */
-public abstract class AbstractHomotypicalGroupContainerE4 extends AbstractGroupE4 {
+public abstract class AbstractHomotypicalGroupContainer extends AbstractGroup {
 
        private HomotypicalGroup group;
 
-       public AbstractHomotypicalGroupContainerE4(TaxonNameEditorE4 editor, HomotypicalGroup group) {
+       public AbstractHomotypicalGroupContainer(TaxonEditor editor, HomotypicalGroup group) {
                super(editor);
                this.group = group;
 
@@ -61,11 +61,11 @@ public abstract class AbstractHomotypicalGroupContainerE4 extends AbstractGroupE
                List<Synonym> synonyms = taxon.getSynonymsInGroup(homotypicalGroup);
 
                List<Synonym> presentSynonyms = new ArrayList<Synonym>();
-               List<AbstractGroupedContainerE4> containers = getGroupedContainers();
+               List<AbstractGroupedContainer> containers = getGroupedContainers();
                if (containers == null || containers.isEmpty() || (containers.get(0) == null && containers.size() == 1)){
                    return true;
                }
-               for(AbstractGroupedContainerE4 container : getGroupedContainers()){
+               for(AbstractGroupedContainer container : getGroupedContainers()){
                        if(container.getData() instanceof Synonym){
                                presentSynonyms.add((Synonym) container.getData());
                        }
similarity index 86%
rename from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AcceptedGroupE4.java
rename to eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AcceptedGroup.java
index b62fdb12ed6b864df7776e0e555bc314f2bb6006..841ce4a687b702f90e474290e640d2d1b87d086b 100644 (file)
@@ -16,7 +16,7 @@ import org.eclipse.swt.graphics.Color;
 
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.preference.Resources;
 
@@ -26,11 +26,11 @@ import eu.etaxonomy.taxeditor.preference.Resources;
  * @date Aug 24, 2017
  *
  */
-public class AcceptedGroupE4 extends AbstractHomotypicalGroupContainerE4 {
+public class AcceptedGroup extends AbstractHomotypicalGroupContainer {
 
        private AcceptedNameContainerE4 acceptedContainer;
 
-       public AcceptedGroupE4(TaxonNameEditorE4 editor, HomotypicalGroup group) {
+       public AcceptedGroup(TaxonEditor editor, HomotypicalGroup group) {
                super(editor, group);
        }
 
@@ -48,8 +48,8 @@ public class AcceptedGroupE4 extends AbstractHomotypicalGroupContainerE4 {
        }
 
        @Override
-       public List<AbstractGroupedContainerE4> getGroupedContainers() {
-               List<AbstractGroupedContainerE4> containers = new ArrayList<>();
+       public List<AbstractGroupedContainer> getGroupedContainers() {
+               List<AbstractGroupedContainer> containers = new ArrayList<>();
                containers.add(getAcceptedNameContainer());
                containers.addAll(super.getGroupedContainers());
                return containers;
index dbf44bac644c0313e4861a276073abf1f80e4d37..b77ebbdf79fe355ef50d07b9f7e2bb34683f76f5 100644 (file)
@@ -18,9 +18,9 @@ import eu.etaxonomy.taxeditor.preference.Resources;
  * @author pplitzner
  * @date 24-08-2017
  */
-public class AcceptedNameContainerE4 extends AbstractGroupedContainerE4<Taxon> {
+public class AcceptedNameContainerE4 extends AbstractGroupedContainer<Taxon> {
 
-       public AcceptedNameContainerE4(AcceptedGroupE4 group, Taxon taxon) {
+       public AcceptedNameContainerE4(AcceptedGroup group, Taxon taxon) {
                super(group, taxon);
        }
 
similarity index 78%
rename from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/ConceptContainerE4.java
rename to eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/ConceptContainer.java
index 381a4858290066a6d59061f4a8f020c37c02e953..01c8e00abf066ccbf9a2205a1373a6f173fb2dc2 100755 (executable)
@@ -20,10 +20,8 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.strategy.cache.TaggedCacheHelper;
 import eu.etaxonomy.cdm.strategy.cache.TaggedText;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.container.EditorAnnotation;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.container.MisappliedGroupE4.ConceptType;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
+import eu.etaxonomy.taxeditor.editor.name.e4.container.MisappliedGroup.ConceptType;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.NameHelper;
 import eu.etaxonomy.taxeditor.preference.Resources;
@@ -33,22 +31,23 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @author pplitzner
  * @date Aug 24, 2017
  */
-public class ConceptContainerE4 extends AbstractGroupedContainerE4<Taxon> {
-       TaxonRelationship relationship;
-       TaxonRelationshipFormatter misappliedFormatter;
-       ConceptType conceptType;
+public class ConceptContainer extends AbstractGroupedContainer<Taxon> {
 
-       public ConceptContainerE4(AbstractGroupE4 group, Taxon misappliedName,  ConceptType conceptType) {
+    private TaxonRelationship relationship;
+    private TaxonRelationshipFormatter misappliedFormatter;
+    private ConceptType conceptType;
+
+       public ConceptContainer(AbstractGroup group, Taxon misappliedName,  ConceptType conceptType) {
                super(group, misappliedName);
                this.conceptType = conceptType;
-               misappliedFormatter = new TaxonRelationshipFormatter();
+               misappliedFormatter = TaxonRelationshipFormatter.INSTANCE();
        }
 
        @Override
        protected void initializeComposite() {
                setIsDraggable(true);
                setFont(getViewerFont());
-               TaxonNameEditorE4 editor = getEditor();
+               TaxonEditor editor = getEditor();
                Taxon taxon = editor.getTaxon();
                for (TaxonRelationship rel: taxon.getTaxonRelations(getMisappliedName())){
                        if (rel.getType().isAnyMisappliedName() && this.conceptType.equals(ConceptType.Misapplication)){
@@ -57,10 +56,7 @@ public class ConceptContainerE4 extends AbstractGroupedContainerE4<Taxon> {
                        }else if (rel.getType().isAnySynonym() && this.conceptType.equals(ConceptType.Synonym)){
                            relationship = rel;
                 break;
-                       } else if (rel.getType().isInvalidDesignation() && this.conceptType.equals(ConceptType.InvalidDesignation)){
-                relationship = rel;
-                break;
-            }
+                       }
                }
                showSec();
                initTextViewer();
@@ -70,8 +66,6 @@ public class ConceptContainerE4 extends AbstractGroupedContainerE4<Taxon> {
        protected void updateIcon() {
            if (relationship.getType().isAnyMisappliedName() ){
                setIcon(MISAPPLIEDNAME_ICON);
-           }else if (relationship.getType().isInvalidDesignation()){
-            setIcon(INVALID_TYPE_DESIGNATION_ICON);
         }else if (relationship.getType().isProParte()){
                setIcon(PRO_PARTE_SYNONYM_ICON);
            }else if (relationship.getType().isAnySynonym()){
@@ -106,10 +100,6 @@ public class ConceptContainerE4 extends AbstractGroupedContainerE4<Taxon> {
 
        @Override
        public void showAnnotations() {
-               if(getData().getSec() == null){
-                       getNameViewer().addAnnotation(
-                                       new EditorAnnotation(0, Messages.MisapplicationContainer_SEC_REF_REQUIRED));
-               }
                super.showAnnotations();
        }
 
@@ -139,7 +129,10 @@ public class ConceptContainerE4 extends AbstractGroupedContainerE4<Taxon> {
                        initEmptyText();
                } else {
                        getNameViewer().setText(text);
-                       placeCursor();
+            if (this.isSelected()){
+                placeCursor();
+            }
+
                }
                calculateAnnotations();
        }
@@ -149,10 +142,8 @@ public class ConceptContainerE4 extends AbstractGroupedContainerE4<Taxon> {
                // showNameRelations();
            if (relationship.getType().isAnyMisappliedName()){
             conceptType = ConceptType.Misapplication;
-        }else if (relationship.getType().isAnySynonym()){
+        }else /*if (relationship.getType().isAnySynonym())*/{
             conceptType = ConceptType.Synonym;
-        }else{
-            conceptType = ConceptType.InvalidDesignation;
         }
 
                String text;
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/ContainerFactory.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/ContainerFactory.java
new file mode 100644 (file)
index 0000000..525b74a
--- /dev/null
@@ -0,0 +1,117 @@
+/**
+ *
+ */
+package eu.etaxonomy.taxeditor.editor.name.e4.container;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
+
+/**
+ *
+ * @author pplitzner
+ * @date Aug 24, 2017
+ *
+ */
+public class ContainerFactory {
+
+       public static void createOrUpdateAcceptedTaxonsHomotypicGroup(
+               TaxonEditor taxonEditor) {
+
+               if(taxonEditor.getAcceptedGroup() == null){
+                       taxonEditor.setAcceptedGroup(new AcceptedGroup(taxonEditor, taxonEditor.getTaxon().getHomotypicGroup()));
+               }
+               else{
+                       taxonEditor.getAcceptedGroup().redraw(taxonEditor.getTaxon().getHomotypicGroup());
+               }
+
+       }
+
+       public static void createOrUpdateHeterotypicSynonymyGroups(
+                       TaxonEditor taxonEditor) {
+               List<HomotypicalSynonymGroup> retainedGroups = new ArrayList<>();
+
+               List<HomotypicalSynonymGroup> heterotypicSynonymGroups = taxonEditor.getHeterotypicSynonymGroups();
+
+               if (heterotypicSynonymGroups != null) {
+
+                       for(HomotypicalSynonymGroup group : heterotypicSynonymGroups){
+                               retainedGroups.add(group);
+                       }
+               }
+
+               for(HomotypicalGroup homotypicalGroup : taxonEditor.getTaxon().getHeterotypicSynonymyGroups()){
+                   homotypicalGroup = HibernateProxyHelper.deproxy(homotypicalGroup, HomotypicalGroup.class);
+                   HomotypicalSynonymGroup group = createOrUpdateHeterotypicSynonymyGroup(taxonEditor, homotypicalGroup);
+
+                       retainedGroups.remove(group);
+               }
+
+               for(HomotypicalSynonymGroup retainedGroup : retainedGroups){
+                       taxonEditor.removeGroup(retainedGroup);
+               }
+       }
+
+
+       public static HomotypicalSynonymGroup createOrUpdateHeterotypicSynonymyGroup(
+               TaxonEditor taxonEditor, HomotypicalGroup homotypicalGroup){
+           HomotypicalSynonymGroup group = null;
+               if(taxonEditor.getHomotypicalGroupContainer(homotypicalGroup) == null){
+                       group = new HomotypicalSynonymGroup(taxonEditor, homotypicalGroup);
+                       taxonEditor.addHeterotypicSynonymGroup(group);
+                       if(taxonEditor.getMisappliedGroup() != null){
+                               group.getControl().moveAbove(taxonEditor.getMisappliedGroup().getControl());
+                       }
+               }
+               else{
+                       group = taxonEditor.getHomotypicalGroupContainer(homotypicalGroup);
+                       group.redraw(homotypicalGroup);
+               }
+
+               return group;
+       }
+
+       public static void createOrUpdateMisapplicationsGroup(
+               TaxonEditor taxonEditor) {
+               MisappliedGroup group = taxonEditor.getMisappliedGroup();
+               Taxon taxon = HibernateProxyHelper.deproxy(taxonEditor.getTaxon(), Taxon.class);
+
+               if(taxon.getMisappliedNames(true).isEmpty() && taxon.getProParteAndPartialSynonyms().isEmpty()){
+                       taxonEditor.removeGroup(group);
+                       taxonEditor.setMisapplicationsGroup(null);
+               }else{
+                       if(group == null){
+                               taxonEditor.setMisapplicationsGroup(new MisappliedGroup(taxonEditor));
+                       }else{
+                               group.redraw();
+                       }
+               }
+
+       }
+
+       public static void setMenuToAllContainers(TaxonEditor taxonEditor){
+           if (taxonEditor == null) {
+            return;
+        }
+           if (taxonEditor.getAcceptedGroup() != null){
+               taxonEditor.getAcceptedGroup().setMenuToGroup();
+           }
+           if (taxonEditor.getTaxon() != null){
+           for(HomotypicalGroup homotypicalGroup : taxonEditor.getTaxon().getHeterotypicSynonymyGroups()){
+                homotypicalGroup = HibernateProxyHelper.deproxy(homotypicalGroup, HomotypicalGroup.class);
+                HomotypicalSynonymGroup group = taxonEditor.getHomotypicalGroupContainer(homotypicalGroup);
+                if (group != null){
+                    group.setMenuToGroup();
+                }
+            }
+           if (taxonEditor.getMisappliedGroup() != null){
+               taxonEditor.getMisappliedGroup().setMenuToGroup();
+           }
+           }
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/ContainerFactoryE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/ContainerFactoryE4.java
deleted file mode 100644 (file)
index c526ca9..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- *
- */
-package eu.etaxonomy.taxeditor.editor.name.e4.container;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
-
-/**
- *
- * @author pplitzner
- * @date Aug 24, 2017
- *
- */
-public class ContainerFactoryE4 {
-
-       public static void createOrUpdateAcceptedTaxonsHomotypicGroup(
-               TaxonNameEditorE4 taxonNameEditor) {
-
-               if(taxonNameEditor.getAcceptedGroup() == null){
-                       taxonNameEditor.setAcceptedGroup(new AcceptedGroupE4(taxonNameEditor, taxonNameEditor.getTaxon().getHomotypicGroup()));
-               }
-               else{
-                       taxonNameEditor.getAcceptedGroup().redraw(taxonNameEditor.getTaxon().getHomotypicGroup());
-               }
-
-       }
-
-       public static void createOrUpdateHeterotypicSynonymyGroups(
-                       TaxonNameEditorE4 taxonNameEditor) {
-               List<HomotypicalSynonymGroupE4> retainedGroups = new ArrayList<>();
-
-               List<HomotypicalSynonymGroupE4> heterotypicSynonymGroups = taxonNameEditor.getHeterotypicSynonymGroups();
-
-               if (heterotypicSynonymGroups != null) {
-
-                       for(HomotypicalSynonymGroupE4 group : heterotypicSynonymGroups){
-                               retainedGroups.add(group);
-                       }
-               }
-
-               for(HomotypicalGroup homotypicalGroup : taxonNameEditor.getTaxon().getHeterotypicSynonymyGroups()){
-                   homotypicalGroup = HibernateProxyHelper.deproxy(homotypicalGroup, HomotypicalGroup.class);
-                   HomotypicalSynonymGroupE4 group = createOrUpdateHeterotypicSynonymyGroup(taxonNameEditor, homotypicalGroup);
-
-                       retainedGroups.remove(group);
-               }
-
-               for(HomotypicalSynonymGroupE4 retainedGroup : retainedGroups){
-                       taxonNameEditor.removeGroup(retainedGroup);
-               }
-       }
-
-
-       public static HomotypicalSynonymGroupE4 createOrUpdateHeterotypicSynonymyGroup(
-               TaxonNameEditorE4 taxonNameEditor, HomotypicalGroup homotypicalGroup){
-           HomotypicalSynonymGroupE4 group = null;
-               if(taxonNameEditor.getHomotypicalGroupContainer(homotypicalGroup) == null){
-                       group = new HomotypicalSynonymGroupE4(taxonNameEditor, homotypicalGroup);
-                       taxonNameEditor.addHeterotypicSynonymGroup(group);
-                       if(taxonNameEditor.getMisappliedGroup() != null){
-                               group.getControl().moveAbove(taxonNameEditor.getMisappliedGroup().getControl());
-                       }
-               }
-               else{
-                       group = taxonNameEditor.getHomotypicalGroupContainer(homotypicalGroup);
-                       group.redraw(homotypicalGroup);
-               }
-
-               return group;
-       }
-
-       public static void createOrUpdateMisapplicationsGroup(
-               TaxonNameEditorE4 taxonNameEditor) {
-               MisappliedGroupE4 group = taxonNameEditor.getMisappliedGroup();
-               Taxon taxon = HibernateProxyHelper.deproxy(taxonNameEditor.getTaxon(), Taxon.class);
-               if(taxon.getMisappliedNames(true).isEmpty() && taxon.getProParteAndPartialSynonyms().isEmpty() && taxon.getInvalidDesignations().isEmpty()){
-                       taxonNameEditor.removeGroup(group);
-                       taxonNameEditor.setMisapplicationsGroup(null);
-               }else{
-                       if(group == null){
-                               taxonNameEditor.setMisapplicationsGroup(new MisappliedGroupE4(taxonNameEditor));
-                       }else{
-                               group.redraw();
-                       }
-               }
-
-       }
-
-       public static void setMenuToAllContainers(TaxonNameEditorE4 taxonNameEditor){
-           if (taxonNameEditor == null) {
-            return;
-        }
-           if (taxonNameEditor.getAcceptedGroup() != null){
-               taxonNameEditor.getAcceptedGroup().setMenuToGroup();
-           }
-           if (taxonNameEditor.getTaxon() != null){
-           for(HomotypicalGroup homotypicalGroup : taxonNameEditor.getTaxon().getHeterotypicSynonymyGroups()){
-                homotypicalGroup = HibernateProxyHelper.deproxy(homotypicalGroup, HomotypicalGroup.class);
-                HomotypicalSynonymGroupE4 group = taxonNameEditor.getHomotypicalGroupContainer(homotypicalGroup);
-                if (group != null){
-                    group.setMenuToGroup();
-                }
-            }
-           if (taxonNameEditor.getMisappliedGroup() != null){
-               taxonNameEditor.getMisappliedGroup().setMenuToGroup();
-           }
-           }
-       }
-
-}
@@ -14,7 +14,7 @@ import org.eclipse.swt.graphics.Image;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.taxeditor.editor.name.container.IContainerConstants;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 
 /**
  *
@@ -22,9 +22,9 @@ import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
  * @date Aug 24, 2017
  *
  */
-public class HomotypicalSynonymGroupE4 extends AbstractHomotypicalGroupContainerE4 {
+public class HomotypicalSynonymGroup extends AbstractHomotypicalGroupContainer {
 
-       public HomotypicalSynonymGroupE4(TaxonNameEditorE4 editor, HomotypicalGroup group) {
+       public HomotypicalSynonymGroup(TaxonEditor editor, HomotypicalGroup group) {
                super(editor, group);
        }
 
@@ -13,24 +13,21 @@ import java.util.HashSet;
 import java.util.Set;
 
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 
 /**
- *
  * @author pplitzner
  * @date Aug 24, 2017
- *
  */
-public class MisappliedGroupE4 extends AbstractGroupE4{
+public class MisappliedGroup extends AbstractGroup{
 
     protected enum ConceptType {
         Misapplication,
-        Synonym,
-        InvalidDesignation
+        Synonym
     }
 
 
-       public MisappliedGroupE4(TaxonNameEditorE4 editor) {
+       public MisappliedGroup(TaxonEditor editor) {
                super(editor);
 
                createContent();
@@ -40,20 +37,15 @@ public class MisappliedGroupE4 extends AbstractGroupE4{
        protected void createContainers() {
 
                for(Taxon proParteSynonym : getEditor().getTaxon().getAllProParteSynonyms()){
-            ConceptContainerE4 container = new ConceptContainerE4(this, proParteSynonym, ConceptType.Synonym);
+            ConceptContainer container = new ConceptContainer(this, proParteSynonym, ConceptType.Synonym);
             this.add(container);
             container.createContent();
         }
-               for(Taxon invalidDes : getEditor().getTaxon().getInvalidDesignations()){
 
-            ConceptContainerE4 container = new ConceptContainerE4(this, invalidDes, ConceptType.InvalidDesignation);
-            this.add(container);
-            container.createContent();
-        }
 
                for(Taxon misapplication : getEditor().getTaxon().getAllMisappliedNames()){
 
-            ConceptContainerE4 container = new ConceptContainerE4(this, misapplication, ConceptType.Misapplication);
+            ConceptContainer container = new ConceptContainer(this, misapplication, ConceptType.Misapplication);
             this.add(container);
             container.createContent();
         }
@@ -71,10 +63,10 @@ public class MisappliedGroupE4 extends AbstractGroupE4{
        private boolean redrawNeeded() {
                Set<Taxon> concepts = getEditor().getTaxon().getMisappliedNames(true);
                concepts.addAll(getEditor().getTaxon().getProParteAndPartialSynonyms());
-               concepts.addAll(getEditor().getTaxon().getInvalidDesignations());
+
                Set<Taxon> presentConcepts = new HashSet<>();
 
-               for (AbstractGroupedContainerE4<Taxon> container  : getGroupedContainers()){
+               for (AbstractGroupedContainer<Taxon> container  : getGroupedContainers()){
                    presentConcepts.add(container.getData());
                }
                return ! (presentConcepts.containsAll(concepts) && concepts.containsAll(presentConcepts));
similarity index 98%
rename from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/NameViewerE4.java
rename to eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/NameViewer.java
index 6e156188cd7b7fbd84dba80702cbca840e1c9647..6acb5d132bfc0f88f7da07f85f5c730f54b64f1a 100644 (file)
@@ -58,14 +58,14 @@ import eu.etaxonomy.taxeditor.preference.Resources;
  * @since Aug 25, 2017
  *
  */
-public class NameViewerE4 extends SourceViewer {
+public class NameViewer extends SourceViewer {
 
        public static final int RULER_WIDTH = 16;
 
        private final IVerticalRuler ruler;
        private final AnnotationModel annotationModel;
 
-       public NameViewerE4(Composite parent) {
+       public NameViewer(Composite parent) {
                super(parent, new RulerWithIcon(RULER_WIDTH), SWT.WRAP | SWT.MULTI | SWT.RESIZE);
 
                this.ruler = getVerticalRuler();
index 909e825f33abd911f5585b677c0d5569cb1477f6..d8008dccfc6a638863246476340134ba7288ff0c 100644 (file)
@@ -29,7 +29,7 @@ import eu.etaxonomy.taxeditor.preference.Resources;
  * @author p.ciardelli
  * @created 13.01.2009
  */
-public class SynonymContainerE4 extends AbstractGroupedContainerE4<Synonym> {
+public class SynonymContainerE4 extends AbstractGroupedContainer<Synonym> {
 
        private int indent = SYNONYM_INDENT;
        private Image icon = HETEROTYPIC_SYNONYM_ICON;
@@ -37,15 +37,15 @@ public class SynonymContainerE4 extends AbstractGroupedContainerE4<Synonym> {
        /**
         * <p>Constructor for SynonymContainer.</p>
         *
-        * @param editor a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor} object.
+        * @param editor a {@link eu.etaxonomy.taxeditor.editor.name.TaxonEditor} object.
         * @param group a {@link eu.etaxonomy.taxeditor.editor.name.container.AbstractGroup} object.
         * @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.
         */
-       public SynonymContainerE4(AbstractHomotypicalGroupContainerE4 group, Synonym synonym) {
+       public SynonymContainerE4(AbstractHomotypicalGroupContainer group, Synonym synonym) {
                super(group, synonym);
        }
 
-       public SynonymContainerE4(AbstractHomotypicalGroupContainerE4 group, Synonym synonym, int indent, Image icon){
+       public SynonymContainerE4(AbstractHomotypicalGroupContainer group, Synonym synonym, int indent, Image icon){
                super(group, synonym);
                this.indent = indent;
                this.icon = icon;
@@ -67,17 +67,9 @@ public class SynonymContainerE4 extends AbstractGroupedContainerE4<Synonym> {
     protected void updateIcon(){
                TaxonName name = getName();
 
-
-               if(! name.getStatus().isEmpty()){
-
-                       Set<NomenclaturalStatus> allStatus = name.getStatus();
-
-                       for (NomenclaturalStatus status : allStatus){
-                               if(status.getType() != null && (status.getType().isInvalidType())){
-                                       setIcon(INVALID_OR_NUDUM_NAME_ICON);
-                                       return;
-                               }
-                       }
+               if (name.isInvalid()){
+                       setIcon(INVALID_OR_NUDUM_NAME_ICON);
+                       return;
                }
 
                if (isHomotypic()) {
index 4c5195317b4cb27129ca57dc9fc48bef4641d19f..72c8a6ce72b2f1902121b59b13aee2d96f361a23 100644 (file)
@@ -10,8 +10,8 @@ import org.eclipse.ui.forms.ManagedForm;
 
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
-import eu.etaxonomy.taxeditor.editor.name.e4.container.AbstractGroupedContainerE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.container.ConceptContainerE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.container.AbstractGroupedContainer;
+import eu.etaxonomy.taxeditor.editor.name.e4.container.ConceptContainer;
 
 /**
  * @author pplitzner
@@ -19,9 +19,9 @@ import eu.etaxonomy.taxeditor.editor.name.e4.container.ConceptContainerE4;
  */
 public class NameEditorDragListenerE4 extends DragSourceAdapter {
 
-       private AbstractGroupedContainerE4<?> container;
+       private AbstractGroupedContainer<?> container;
 
-       public NameEditorDragListenerE4(AbstractGroupedContainerE4 container){
+       public NameEditorDragListenerE4(AbstractGroupedContainer container){
                this.container = container;
        }
 
@@ -48,6 +48,6 @@ public class NameEditorDragListenerE4 extends DragSourceAdapter {
 
        @Override
        public void dragStart(DragSourceEvent event) {
-               event.doit = (container.getData() != null) && !(container instanceof ConceptContainerE4);
+               event.doit = (container.getData() != null) && !(container instanceof ConceptContainer);
        }
 }
index 693cde5f90a0b742442c63663a018a6a2e23a5bb..e92012a6edb9f78a61833d207351c1f4c736ad6f 100644 (file)
@@ -8,7 +8,7 @@ import org.eclipse.swt.dnd.DropTargetEvent;
 import org.eclipse.swt.widgets.Control;
 
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.name.e4.IDropTargetableE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.IDropTargetable;
 import eu.etaxonomy.taxeditor.preference.Resources;
 
 /**
@@ -22,8 +22,8 @@ public class NameEditorDropTargetEffect extends DropTargetEffect {
 
        @Override
     public void dragEnter(DropTargetEvent dropTargetEvent) {
-               if(dropTargetEvent.widget instanceof IDropTargetableE4){
-                       ((IDropTargetableE4) dropTargetEvent.widget).dragEntered();
+               if(dropTargetEvent.widget instanceof IDropTargetable){
+                       ((IDropTargetable) dropTargetEvent.widget).dragEntered();
                }
        }
 
@@ -3,6 +3,8 @@
  */
 package eu.etaxonomy.taxeditor.editor.name.e4.dnd;
 
+import java.util.UUID;
+
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.e4.ui.di.UISynchronize;
 import org.eclipse.swt.dnd.DND;
@@ -10,16 +12,18 @@ import org.eclipse.swt.dnd.DropTargetAdapter;
 import org.eclipse.swt.dnd.DropTargetEvent;
 
 import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
+import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.IDropTargetableE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.container.AbstractHomotypicalGroupContainerE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.container.MisappliedGroupE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.IDropTargetable;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
+import eu.etaxonomy.taxeditor.editor.name.e4.container.AbstractHomotypicalGroupContainer;
+import eu.etaxonomy.taxeditor.editor.name.e4.container.MisappliedGroup;
 import eu.etaxonomy.taxeditor.editor.name.e4.operation.MoveSynonymToAnotherAcceptedTaxonOperationE4;
 import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptRelationshipTypeOperation;
 import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation;
@@ -29,16 +33,18 @@ import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.ReferenceSelectionDialog;
 
 /**
  * @author pplitzner
  * @date Aug 24, 2017
  */
-public class NameEditorDropTargetListenerE4 extends DropTargetAdapter {
+public class NameEditorDropTargetListener extends DropTargetAdapter {
 
-       private IDropTargetableE4 target;
+       private IDropTargetable target;
 
-       public NameEditorDropTargetListenerE4(IDropTargetableE4 target){
+       public NameEditorDropTargetListener(IDropTargetable target){
                this.target = target;
        }
 
@@ -65,7 +71,7 @@ public class NameEditorDropTargetListenerE4 extends DropTargetAdapter {
                        return;
                }
 
-               if (target instanceof MisappliedGroupE4){
+               if (target instanceof MisappliedGroup){
                   dropTargetEvent.detail = DND.DROP_NONE;
               return;
                }
@@ -80,15 +86,6 @@ public class NameEditorDropTargetListenerE4 extends DropTargetAdapter {
                } else {
                        AbstractUtility.executeOperation(operation, target.getContext().get(UISynchronize.class));
                }
-               target.getEditor().getConversationHolder().commit();
-               if (!target.equals(EventUtility.getTaxonEditor())){
-                   ((TaxonNameEditorE4)EventUtility.getTaxonEditor()).redraw();
-                       ((TaxonNameEditorE4)EventUtility.getTaxonEditor()).getConversationHolder().commit();
-
-               }
-//             target.getEditor().redraw();
-
-//             target.getEditor().getContainer(taxonBase).setFocus();
 
        }
 
@@ -97,25 +94,44 @@ public class NameEditorDropTargetListenerE4 extends DropTargetAdapter {
                if(taxonBase instanceof Synonym){
                        Synonym synonym = (Synonym) taxonBase;
 
-                       if(target instanceof AbstractHomotypicalGroupContainerE4){
-                               HomotypicalGroup homotypicalGroup = ((AbstractHomotypicalGroupContainerE4) target).getGroup();
+                       if(target instanceof AbstractHomotypicalGroupContainer){
+                               HomotypicalGroup homotypicalGroup = ((AbstractHomotypicalGroupContainer) target).getGroup();
+                               if (((AbstractHomotypicalGroupContainer) target).getEditor().getTaxon().equals(synonym.getAcceptedTaxon())){
+                                   //the actual accepted taxon is the same as the taxon of the target editor
+                                   try{
+                                       return new ChangeHomotypicGroupOperation(Messages.NameEditorDropTargetListener_CHANGE_HOMOTYPICAL_GROUP, getEditor().getUndoContext(),
+                                                                           ((AbstractHomotypicalGroupContainer) target).getEditor().getTaxon(), synonym, homotypicalGroup, target);
+                                   }catch (NullPointerException e){
+                                       return null;
+                                   }
+                                } else{
+                                        UUID newSecUuid = null;
+                                        try{
+                                                newSecUuid = getNewSecRef(synonym);
+                                        }catch (Exception e){
+                                                return null;
+                                        }
+                                        return new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.NameEditorDropTargetListener_CHANGE_ACC_TAXON, getEditor().getUndoContext(), synonym.getUuid(), ((TaxonEditor) target).getTaxon(), newSecUuid, (TaxonEditor) target);
+
+                }
 
-                               return new ChangeHomotypicGroupOperation(Messages.NameEditorDropTargetListener_CHANGE_HOMOTYPICAL_GROUP, getEditor().getUndoContext(),
-                                               getEditor().getTaxon(), synonym, homotypicalGroup, target);
                        }
-                       else if(target instanceof MisappliedGroupE4){
+                       else if(target instanceof MisappliedGroup){
                                return new ChangeSynonymToMisapplicationOperation(Messages.NameEditorDropTargetListener_CHANGE_SYNONYM_TO_MISAPP, getEditor().getUndoContext(),
                                                getEditor().getTaxon(), synonym, target);
                        }
-                       else if(target instanceof TaxonNameEditorE4){
-                               if (target.equals(getEditor())){
+                       else if(target instanceof TaxonEditor){
+                               if (((TaxonEditor) target).getTaxon().equals(synonym.getAcceptedTaxon())){
                                        return new ChangeHomotypicGroupOperation(Messages.NameEditorDropTargetListener_CHANGE_HOMOTYPICAL_GROUP, getEditor().getUndoContext(),
-                                               getEditor().getTaxon(), synonym, null, target);
+                                               ((TaxonEditor) target).getTaxon(), synonym, null, target);
                                } else{
-                                       getEditor().getConversationHolder().commit();
-                                       ((TaxonNameEditorE4) target).getConversationHolder().commit();
-
-                                       return new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.NameEditorDropTargetListener_CHANGE_ACC_TAXON, getEditor().getUndoContext(), synonym.getUuid(), ((TaxonNameEditorE4) target).getTaxon(), (TaxonNameEditorE4) target, (TaxonNameEditorE4) target);
+                                       UUID newSecUuid = null;
+                                       try{
+                                           newSecUuid = getNewSecRef(synonym);
+                                       }catch (Exception e){
+                                           return null;
+                                       }
+                                       return new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.NameEditorDropTargetListener_CHANGE_ACC_TAXON, getEditor().getUndoContext(), synonym.getUuid(), ((TaxonEditor) target).getTaxon(), newSecUuid, (TaxonEditor) target);
 
                                }
                        }
@@ -123,13 +139,13 @@ public class NameEditorDropTargetListenerE4 extends DropTargetAdapter {
                }else if(taxonBase instanceof Taxon){
                        Taxon concept = (Taxon) taxonBase;
 
-                       if(target instanceof AbstractHomotypicalGroupContainerE4){
-                               HomotypicalGroup homotypicalGroup = ((AbstractHomotypicalGroupContainerE4) target).getGroup();
+                       if(target instanceof AbstractHomotypicalGroupContainer){
+                               HomotypicalGroup homotypicalGroup = ((AbstractHomotypicalGroupContainer) target).getGroup();
 
                                return new ChangeConceptToSynonymOperation(Messages.NameEditorDropTargetListener_CHANGE_SYNONYM, getEditor().getUndoContext(),
                                                getEditor().getTaxon(), concept, homotypicalGroup, target);
                        }
-                       else if(target instanceof MisappliedGroupE4){
+                       else if(target instanceof MisappliedGroup){
                                return new ChangeConceptRelationshipTypeOperation(Messages.NameEditorDropTargetListener_CHANGE, getEditor().getUndoContext(),
                                                getEditor().getTaxon(), concept, TaxonRelationshipType.MISAPPLIED_NAME_FOR(), target);
                        }
@@ -139,14 +155,41 @@ public class NameEditorDropTargetListenerE4 extends DropTargetAdapter {
                return null;
        }
 
+    public UUID getNewSecRef(Synonym synonym) throws Exception{
+        Reference synSecRef = synonym.getSec();
+        UUID newSecUuid = null;
+        SecReferenceHandlingEnum secHandling = PreferencesUtil.getSecReferenceHandlingPreference();
+        Reference parentSecRef = ((AbstractHomotypicalGroupContainer) target).getEditor().getTaxon() != null? ((AbstractHomotypicalGroupContainer) target).getEditor().getTaxon().getSec():null;
+        if ((synSecRef != parentSecRef && secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn) )|| secHandling.equals(SecReferenceHandlingEnum.KeepOrSelect)){
+
+            if ((parentSecRef != synSecRef && secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn) )|| secHandling.equals(SecReferenceHandlingEnum.KeepOrSelect)){
+                int result = MessagingUtils.confirmDialog(Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_title, Messages.MoveSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message,
+                        new String[]{Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Keep, Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Parent, Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Select});
+                if (result == 2){
+                    Reference sec = ReferenceSelectionDialog.select(null, null);
+                    newSecUuid = sec != null? sec.getUuid(): null;
+                }else if (result == 1){
+                    newSecUuid = parentSecRef != null? parentSecRef.getUuid(): null;
+                }else if (result == 0){
+                    newSecUuid = synSecRef != null? synSecRef.getUuid(): null;
+                }else{
+                    return null;
+                }
+
+            }
+
+        }
+        return newSecUuid;
+    }
+
        @Override
        public void dropAccept(DropTargetEvent event) {
                // pass
        }
 
        private HomotypicalGroup getHomotypicalGroup() {
-               if(target instanceof AbstractHomotypicalGroupContainerE4){
-                       return ((AbstractHomotypicalGroupContainerE4) target).getGroup();
+               if(target instanceof AbstractHomotypicalGroupContainer){
+                       return ((AbstractHomotypicalGroupContainer) target).getGroup();
                }
                return null;
        }
@@ -163,7 +206,7 @@ public class NameEditorDropTargetListenerE4 extends DropTargetAdapter {
                return null;
        }
 
-       private TaxonNameEditorE4 getEditor() {
-               return (TaxonNameEditorE4) EventUtility.getTaxonEditor();
+       private TaxonEditor getEditor() {
+               return (TaxonEditor) EventUtility.getTaxonEditor();
        }
 }
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/ChangeSynonymToAcceptedTaxonHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/ChangeSynonymToAcceptedTaxonHandler.java
new file mode 100644 (file)
index 0000000..fde48c7
--- /dev/null
@@ -0,0 +1,203 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.editor.name.e4.handler;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.UUID;
+
+import javax.inject.Named;
+
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.model.application.MApplication;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;
+import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.taxon.Synonym;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInput;
+import eu.etaxonomy.taxeditor.editor.l10n.Messages;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
+import eu.etaxonomy.taxeditor.editor.name.handler.NameEditorMenuPropertyTester;
+import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToAcceptedTaxonOperation;
+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.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.ReferenceSelectionDialog;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
+
+/**
+ * @author pplitzner
+ * @since Aug 28, 2017
+ */
+public class ChangeSynonymToAcceptedTaxonHandler implements IPostOperationEnabled {
+
+    private static final Logger logger = LogManager.getLogger(ChangeSynonymToAcceptedTaxonHandler.class);
+
+       private TaxonEditor editor;
+    private EPartService partService;
+    private MApplication application;
+    private EModelService modelService;
+
+    @Execute
+    public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart,
+            @Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection, EPartService partService,
+            EModelService modelService, MApplication application, @Named(IServiceConstants.ACTIVE_SHELL) Shell shell,
+            UISynchronize sync) {
+
+        this.modelService = modelService;
+        this.application = application;
+        this.partService = partService;
+
+        editor = (TaxonEditor) activePart.getObject();
+
+        TaxonEditorInput input = editor.getEditorInput();
+
+               // Get synonym from selection
+               if (!(selection.getFirstElement() instanceof Synonym)) {
+                       logger.error("Selection does not contain a Synonym"); //$NON-NLS-1$
+                       return;
+               }
+
+               Synonym synonym = (Synonym) selection.getFirstElement();
+               Reference synSecRef = synonym.getSec();
+
+               // Force user to save taxon - not really necessary though, is it?
+               if (!EditorUtil.forceUserSaveE4Editor(editor, shell)) {
+                       return;
+               }
+
+               // Get taxon
+               Taxon taxon = input.getTaxon();
+
+               TaxonNode newParentNode = TaxonNodeSelectionDialog.select(shell, Messages.ChangeSynonymToAcceptedTaxonHandler_SELECT_PARENT, null, null, input.getTaxonNode().getClassification().getUuid(), true);
+
+               if(newParentNode != null){
+                   Reference parentSecRef = newParentNode.getTaxon() != null? newParentNode.getTaxon().getSec(): null;
+
+                       // TODO get synonyms from homotypical group and add them as homotypic synonyms to new accepted taxon
+                       // apply confirmation dialog
+                       HomotypicalGroup group = synonym.getHomotypicGroup();
+                       List<Synonym> homotypicSynonyms = taxon.getSynonymsInGroup(synonym.getHomotypicGroup());
+                       Set<Reference> secRefs = new HashSet<>();
+                       boolean nullExist = false;
+                       for (Synonym synInHomtypicGroup: homotypicSynonyms){
+                           if (synInHomtypicGroup.getSec() == null && synonym.getSec() != null){
+                               nullExist = true;
+                           }
+                           secRefs.add(synInHomtypicGroup.getSec());
+                       }
+
+                       // FIXME with this implementation we can not create a taxonNode that is a direct child of the classification node
+
+                       //compare parentSec and synSec and ask for handling.
+                       SecReferenceHandlingEnum secHandling = PreferencesUtil.getSecReferenceHandlingPreference();
+                       UUID newSecUuid = null;
+                       if (((synSecRef != parentSecRef || secRefs.size()>1)  && (secHandling.equals(SecReferenceHandlingEnum.KeepOrSelect) || secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn)))|| secHandling.equals(SecReferenceHandlingEnum.AlwaysSelect)){
+
+                   if (secHandling.equals(SecReferenceHandlingEnum.KeepOrSelect) || secHandling.equals(SecReferenceHandlingEnum.AlwaysSelect)){
+                       String message = null;
+                       String[] options = null;
+                       if (secHandling.equals(SecReferenceHandlingEnum.AlwaysSelect) && synSecRef == parentSecRef){
+                           message = Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message_always_select;
+                           options = new String[]{Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Keep, Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Select};
+                       }else {
+                           message = Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message;
+                           options = new String[]{Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Keep,  Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Select, Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Parent, };
+                       }
+                       int result = MessagingUtils.confirmDialog(Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_title, message, options);
+
+//                     int result = MessagingUtils.confirmDialog(Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_title, Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message,
+//                             new String[]{Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Keep, Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Parent, Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Select});
+                       if (result == 2){
+                           newSecUuid = parentSecRef != null? parentSecRef.getUuid(): null;
+                       }else if (result == 1){
+                           Reference sec = ReferenceSelectionDialog.select(shell, null);
+                        newSecUuid = sec != null? sec.getUuid(): null;
+                       }else if (result == 0){
+                           secHandling = SecReferenceHandlingEnum.KeepOrWarn;
+                       }else{
+                           return ;
+                       }
+
+                   }else if (parentSecRef != synSecRef && secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn)){
+                       MessagingUtils.warningDialog(Messages.SecundumReference,this, Messages.ChangeSynonymToAcceptedHandler_Different_Secundum_references);
+
+                   }
+                       }
+                       if (newParentNode.getTaxon() != null &&
+                                       synonym.isPublish() != newParentNode.getTaxon().isPublish()){
+                           MessagingUtils.warningDialog("Publish flag",this, Messages.ChangeSynonymToAcceptedHandler_Different_Publish_Flag);
+                       }
+
+                       ChangeSynonymToAcceptedTaxonOperation operation = new ChangeSynonymToAcceptedTaxonOperation(Messages.ChangeSynonymToAcceptedTaxonHandler_CHANGE_SYN_TO_ACC_TAXON, EditorUtil.getUndoContext(),
+                                       taxon, newParentNode, synonym,
+                                       newSecUuid, secHandling,
+                                       this, editor.getEditorInput()); //$NON-NLS-1$
+
+                       AbstractUtility.executeOperation(operation, sync);
+               }
+       }
+
+       @Override
+    public boolean postOperation(Object objectAffectedByOperation) {
+
+               // Redraw existing editor
+               ((IPostOperationEnabled) editor).postOperation(null);
+
+               editor.save(AbstractUtility.getMonitor());
+
+
+               if (objectAffectedByOperation instanceof TaxonNode) {
+                       TaxonNode newNode = (TaxonNode) objectAffectedByOperation;
+                       EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, new TaxonNodeDto(newNode.getParent()));
+               }
+               return true;
+       }
+
+       @Override
+    public boolean onComplete() {
+               return false;
+       }
+
+    @CanExecute
+    public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
+            MHandledMenuItem menuItem){
+        boolean canExecute = false;
+        if(selection.size()==1){
+            Object selectedElement = selection.getFirstElement();
+            canExecute =
+                    NameEditorMenuPropertyTester.isNotHomotypicSynonymOfAcceptedTaxon(selectedElement)
+                    && !NameEditorMenuPropertyTester.isAccepted(selectedElement)
+                    && NameEditorMenuPropertyTester.isNotMisapplication(selectedElement)
+                    && NameEditorMenuPropertyTester.isNotProparteSynonym(selectedElement);
+            menuItem.setVisible(canExecute);
+        }
+        return canExecute;
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/ChangeSynonymToAcceptedTaxonHandlerE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/ChangeSynonymToAcceptedTaxonHandlerE4.java
deleted file mode 100644 (file)
index 4cc9fac..0000000
+++ /dev/null
@@ -1,144 +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.editor.name.e4.handler;
-
-import java.util.Set;
-
-import javax.inject.Named;
-
-import org.apache.log4j.Logger;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.ui.di.UISynchronize;
-import org.eclipse.e4.ui.model.application.MApplication;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.e4.ui.workbench.modeling.EModelService;
-import org.eclipse.e4.ui.workbench.modeling.EPartService;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Shell;
-
-import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
-import eu.etaxonomy.taxeditor.editor.name.handler.NameEditorMenuPropertyTester;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToAcceptedTaxonOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
-
-/**
- * @author pplitzner
- * @since Aug 28, 2017
- */
-public class ChangeSynonymToAcceptedTaxonHandlerE4 implements IPostOperationEnabled {
-       private static final Logger logger = Logger
-                       .getLogger(ChangeSynonymToAcceptedTaxonHandlerE4.class);
-
-       private TaxonNameEditorE4 editor;
-    private EPartService partService;
-    private MApplication application;
-    private EModelService modelService;
-
-    @Execute
-    public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart,
-            @Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection, EPartService partService,
-            EModelService modelService, MApplication application, @Named(IServiceConstants.ACTIVE_SHELL) Shell shell,
-            UISynchronize sync) {
-
-        this.modelService = modelService;
-        this.application = application;
-        this.partService = partService;
-
-        editor = (TaxonNameEditorE4) activePart.getObject();
-
-        TaxonEditorInputE4 input = editor.getEditorInput();
-
-               // Get synonym from selection
-               if (!(selection.getFirstElement() instanceof Synonym)) {
-                       logger.error("Selection does not contain a Synonym"); //$NON-NLS-1$
-                       return;
-               }
-
-               Synonym synonym = (Synonym) selection.getFirstElement();
-
-               // Force user to save taxon - not really necessary though, is it?
-               if (!EditorUtil.forceUserSaveE4Editor(editor, shell)) {
-                       return;
-               }
-
-               // Get taxon
-               Taxon taxon = input.getTaxon();
-
-               TaxonNode newParentNode = TaxonNodeSelectionDialog.select(shell,// editor.getConversationHolder(),
-                       Messages.ChangeSynonymToAcceptedTaxonHandler_SELECT_PARENT, null, null, input.getTaxonNode().getClassification().getUuid(), true);
-
-
-               if(newParentNode != null){
-
-                       // TODO get synonyms from homotypical group and add them as homotypic synonyms to new accepted taxon
-                       // apply confirmation dialog
-                       HomotypicalGroup group = synonym.getHomotypicGroup();
-                       Set<TaxonName> namesInGroup = group.getTypifiedNames();
-                       // FIXME with this implementation we can not create a taxonNode that is a direct child of the classification node
-                       ChangeSynonymToAcceptedTaxonOperation operation = new ChangeSynonymToAcceptedTaxonOperation(Messages.ChangeSynonymToAcceptedTaxonHandler_CHANGE_SYN_TO_ACC_TAXON, EditorUtil.getUndoContext(),
-                                       taxon, newParentNode, synonym, namesInGroup, this, editor, editor.getEditorInput()); //$NON-NLS-1$
-
-                       AbstractUtility.executeOperation(operation, sync);
-               }
-       }
-
-       @Override
-    public boolean postOperation(Object objectAffectedByOperation) {
-
-               // Redraw existing editor
-               ((IPostOperationEnabled) editor).postOperation(null);
-
-               editor.save(AbstractUtility.getMonitor());
-
-               if (objectAffectedByOperation instanceof TaxonNode) {
-
-                       // Open new unsaved editor with existing taxon's parent as temporary parent
-                       TaxonNode newNode = (TaxonNode) objectAffectedByOperation;
-
-                       EditorUtil.openTaxonNodeE4(newNode.getUuid(), modelService, partService, application);
-               }
-               return true;
-       }
-
-       @Override
-    public boolean onComplete() {
-               return false;
-       }
-
-    @CanExecute
-    public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
-            MHandledMenuItem menuItem){
-        boolean canExecute = false;
-        if(selection.size()==1){
-            Object selectedElement = selection.getFirstElement();
-            canExecute =
-                    NameEditorMenuPropertyTester.isNotHomotypicSynonymOfAcceptedTaxon(selectedElement)
-                    && !NameEditorMenuPropertyTester.isAccepted(selectedElement)
-                    && NameEditorMenuPropertyTester.isNotMisapplication(selectedElement)
-                    && NameEditorMenuPropertyTester.isNotProparteSynonym(selectedElement)
-                    && NameEditorMenuPropertyTester.isNotInvalidDesignation(selectedElement);
-            menuItem.setVisible(canExecute);
-        }
-        return canExecute;
-    }
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/ChangeToInvalidDesignationHandlerE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/ChangeToInvalidDesignationHandlerE4.java
deleted file mode 100755 (executable)
index 3ae45d1..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
-
-* Copyright (C) 2018 EDIT
-
-* European Distributed Institute of Taxonomy
-
-* http://www.e-taxonomy.eu
-
-*
-
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-
-* See LICENSE.TXT at the top of this package for the full license terms.
-
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.e4.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.ui.di.UISynchronize;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Shell;
-
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
-import eu.etaxonomy.taxeditor.editor.name.handler.NameEditorMenuPropertyTester;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptRelationshipTypeOperation;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToConceptOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
-
-/**
- * @author k.luther
- * @since 14.09.2018
- *
- */
-
-public class ChangeToInvalidDesignationHandlerE4 {
-    private TaxonNameEditorE4 editor;
-
-    @Execute
-    public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
-            @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
-            @Named(IServiceConstants.ACTIVE_SHELL)Shell shell,
-            MHandledMenuItem menuItem,
-            UISynchronize sync) {
-
-        editor = (TaxonNameEditorE4) activePart.getObject();
-        Object selectedElement = selection.getFirstElement();
-        AbstractPostTaxonOperation operation = null;
-
-        if(selectedElement instanceof Taxon){
-            operation = new ChangeConceptRelationshipTypeOperation(menuItem.getLocalizedLabel(),
-                                    editor.getUndoContext(), editor.getTaxon(), (Taxon) selectedElement, TaxonRelationshipType.INVALID_DESIGNATION_FOR(), editor);
-        }
-
-        if(selectedElement instanceof Synonym){
-            operation = new ChangeSynonymToConceptOperation(menuItem.getLocalizedLabel(),
-                    editor.getUndoContext(), editor.getTaxon(), (Synonym) selectedElement, TaxonRelationshipType.INVALID_DESIGNATION_FOR(), editor);
-        }
-
-        if (!EditorUtil.forceUserSaveE4Editor(editor, shell)){
-            return ;
-        }
-
-        AbstractUtility.executeOperation(operation, sync);
-
-    }
-
-    @CanExecute
-    public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
-            MHandledMenuItem menuItem){
-
-        boolean canExecute = false;
-        if(selection.size()==1){
-            Object selectedElement = selection.getFirstElement();
-            canExecute = NameEditorMenuPropertyTester.isNotInvalidDesignation(selectedElement);
-        }
-        menuItem.setVisible(canExecute);
-        return canExecute;
-    }
-
-}
-
@@ -24,7 +24,7 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.name.handler.NameEditorMenuPropertyTester;
 import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptRelationshipTypeOperation;
 import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToMisapplicationOperation;
@@ -37,9 +37,9 @@ import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
  * @since Aug 28, 2017
  *
  */
-public class ChangeToMisapplicationHandlerE4 {
+public class ChangeToMisapplicationHandler {
 
-    private TaxonNameEditorE4 editor;
+    private TaxonEditor editor;
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
@@ -48,7 +48,7 @@ public class ChangeToMisapplicationHandlerE4 {
             MHandledMenuItem menuItem,
             UISynchronize sync) {
 
-        editor = (TaxonNameEditorE4) activePart.getObject();
+        editor = (TaxonEditor) activePart.getObject();
 
         if (!EditorUtil.forceUserSaveE4Editor(editor, shell)){
             return ;
@@ -61,15 +61,10 @@ public class ChangeToMisapplicationHandlerE4 {
                                                                editor.getUndoContext(), editor.getTaxon(), (Taxon) selectedElement, TaxonRelationshipType.MISAPPLIED_NAME_FOR(), editor);
         }
         if(selectedElement instanceof Synonym){
-
                 operation = new ChangeSynonymToMisapplicationOperation(menuItem.getLocalizedLabel(),
                         editor.getUndoContext(), editor.getTaxon(), (Synonym) selectedElement, editor);
-
-
         }
 
-
-
         AbstractUtility.executeOperation(operation, sync);
        }
 
@@ -24,7 +24,7 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.name.handler.NameEditorMenuPropertyTester;
 import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptRelationshipTypeOperation;
 import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToConceptOperation;
@@ -37,9 +37,9 @@ import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
  * @since Aug 28, 2017
  *
  */
-public class ChangeToProParteSynonymHandlerE5 {
+public class ChangeToProParteSynonymHandler {
 
-    private TaxonNameEditorE4 editor;
+    private TaxonEditor editor;
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
@@ -48,7 +48,7 @@ public class ChangeToProParteSynonymHandlerE5 {
             MHandledMenuItem menuItem,
             UISynchronize sync) {
 
-        editor = (TaxonNameEditorE4) activePart.getObject();
+        editor = (TaxonEditor) activePart.getObject();
 
                if (!EditorUtil.forceUserSaveE4Editor(editor, shell)){
             return ;
@@ -20,7 +20,7 @@ import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.name.handler.NameEditorMenuPropertyTester;
 import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -32,7 +32,7 @@ import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
  * @since Aug 28, 2017
  *
  */
-public class ChangeToSynonymHandlerE4 {
+public class ChangeToSynonymHandler {
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
@@ -40,7 +40,7 @@ public class ChangeToSynonymHandlerE4 {
             MHandledMenuItem menuItem,
             UISynchronize sync) {
 
-        TaxonNameEditorE4 editor = (TaxonNameEditorE4) activePart.getObject();
+        TaxonEditor editor = (TaxonEditor) activePart.getObject();
 
 
                Taxon concept  = (Taxon) selection.getFirstElement();
@@ -20,7 +20,7 @@ import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
 import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInNewGroupOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
@@ -32,7 +32,7 @@ import eu.etaxonomy.taxeditor.parser.ParseHandler;
  * @since Aug 28, 2017
  *
  */
-public class CreateHeterotypicSynonymHandlerE4 {
+public class CreateHeterotypicSynonymHandler {
 
 
     @Execute
@@ -40,7 +40,7 @@ public class CreateHeterotypicSynonymHandlerE4 {
             MHandledMenuItem menuItem,
             UISynchronize sync) {
 
-        TaxonNameEditorE4 editor = (TaxonNameEditorE4) activePart.getObject();
+        TaxonEditor editor = (TaxonEditor) activePart.getObject();
 
                TaxonName newSynonymName = ParseHandler.createEmptyName();
 
@@ -22,7 +22,7 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.name.handler.NameEditorMenuPropertyTester;
 import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -35,7 +35,7 @@ import eu.etaxonomy.taxeditor.parser.ParseHandler;
  * @since Aug 28, 2017
  *
  */
-public class CreateHomotypicSynonymHandlerE4 {
+public class CreateHomotypicSynonymHandler {
 
 
     @Execute
@@ -43,7 +43,7 @@ public class CreateHomotypicSynonymHandlerE4 {
             MHandledMenuItem menuItem,
             UISynchronize sync) {
 
-        TaxonNameEditorE4 editor = (TaxonNameEditorE4) activePart.getObject();
+        TaxonEditor editor = (TaxonEditor) activePart.getObject();
                Taxon taxon = editor.getTaxon();
                HomotypicalGroup group = taxon.getHomotypicGroup();
                TaxonName newSynonymName = ParseHandler.createEmptyName();
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/CreateInvalidDesignationHandlerE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/CreateInvalidDesignationHandlerE4.java
deleted file mode 100755 (executable)
index a0c8b9f..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
-* Copyright (C) 2018 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.e4.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.ui.di.UISynchronize;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
-import eu.etaxonomy.taxeditor.editor.view.concept.operation.CreateConceptRelationOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.parser.ParseHandler;
-
-/**
- * @author k.luther
- * @since 14.09.2018
- *
- */
-
-public class CreateInvalidDesignationHandlerE4 {
-
-    @Execute
-    public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
-            MHandledMenuItem menuItem,
-            UISynchronize sync) {
-
-        TaxonNameEditorE4 editor = (TaxonNameEditorE4) activePart.getObject();
-        TaxonName conceptName = ParseHandler.createEmptyName();
-        Taxon concept = Taxon.NewInstance(conceptName, null);
-        TaxonRelationshipType type = TaxonRelationshipType.INVALID_DESIGNATION_FOR();
-        AbstractPostOperation<?> operation;
-        operation = new CreateConceptRelationOperation(menuItem.getLocalizedLabel(),
-                editor.getUndoContext(), editor.getTaxon(), concept, type, editor);
-
-        AbstractUtility.executeOperation(operation, sync);
-    }
-
-    @CanExecute
-    public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
-            MHandledMenuItem menuItem){
-
-        boolean canExecute = false;
-        Object selectedElement = selection.getFirstElement();
-     //   canExecute =NameEditorMenuPropertyTester.isNotInvalidDesignation(selectedElement);
-        return true;
-    }
-
-}
@@ -22,7 +22,7 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.concept.operation.CreateConceptRelationOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
@@ -34,14 +34,14 @@ import eu.etaxonomy.taxeditor.parser.ParseHandler;
  * @since Aug 28, 2017
  *
  */
-public class CreateMisapplicationHandlerE4 {
+public class CreateMisapplicationHandler {
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             MHandledMenuItem menuItem,
             UISynchronize sync) {
 
-        TaxonNameEditorE4 editor = (TaxonNameEditorE4) activePart.getObject();
+        TaxonEditor editor = (TaxonEditor) activePart.getObject();
 
                TaxonName conceptName = ParseHandler.createEmptyName();
                Taxon concept = Taxon.NewInstance(conceptName, null);
@@ -20,7 +20,7 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.concept.operation.CreateConceptRelationOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
@@ -31,7 +31,7 @@ import eu.etaxonomy.taxeditor.parser.ParseHandler;
  * @since 15.05.2018
  *
  */
-public class CreateProParteSynonymHandlerE4 {
+public class CreateProParteSynonymHandler {
 
 
         @Execute
@@ -39,7 +39,7 @@ public class CreateProParteSynonymHandlerE4 {
                 MHandledMenuItem menuItem,
                 UISynchronize sync) {
 
-            TaxonNameEditorE4 editor = (TaxonNameEditorE4) activePart.getObject();
+            TaxonEditor editor = (TaxonEditor) activePart.getObject();
 
             TaxonName conceptName = ParseHandler.createEmptyName();
             Taxon concept = Taxon.NewInstance(conceptName, null);
@@ -22,7 +22,7 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.name.handler.NameEditorMenuPropertyTester;
 import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -33,7 +33,7 @@ import eu.etaxonomy.taxeditor.parser.ParseHandler;
  * @author pplitzner
  * @since Aug 28, 2017
  */
-public class CreateSynonymInHomotypicalGroupHandlerE4 {
+public class CreateSynonymInHomotypicalGroupHandler {
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
@@ -41,7 +41,7 @@ public class CreateSynonymInHomotypicalGroupHandlerE4 {
             MHandledMenuItem menuItem,
             UISynchronize sync) {
 
-        TaxonNameEditorE4 editor = (TaxonNameEditorE4) activePart.getObject();
+        TaxonEditor editor = (TaxonEditor) activePart.getObject();
 
                Object selectedObject = selection.getFirstElement();
 
@@ -20,8 +20,8 @@ import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.container.AbstractGroupedContainerE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
+import eu.etaxonomy.taxeditor.editor.name.e4.container.AbstractGroupedContainer;
 
 /**
  *
@@ -29,7 +29,7 @@ import eu.etaxonomy.taxeditor.editor.name.e4.container.AbstractGroupedContainerE
  * @since Aug 28, 2017
  *
  */
-public class DeleteAllEmptyNamesHandlerE4 extends DeleteTaxonBaseHandlerE4 {
+public class DeleteAllEmptyNamesHandler extends DeleteTaxonBaseHandler {
 
     @Override
     @Execute
@@ -39,9 +39,9 @@ public class DeleteAllEmptyNamesHandlerE4 extends DeleteTaxonBaseHandlerE4 {
             MHandledMenuItem menuItem,
             UISynchronize sync) {
 
-        editor = (TaxonNameEditorE4) activePart.getObject();
+        editor = (TaxonEditor) activePart.getObject();
 
-               for(AbstractGroupedContainerE4 containerWithEmptyName : editor.getEmptyContainers()){
+               for(AbstractGroupedContainer containerWithEmptyName : editor.getEmptyContainers()){
                    editor.removeGroup(containerWithEmptyName.getGroup());
                        doExecute(menuItem.getLocalizedLabel(), shell, editor, containerWithEmptyName.getData(), sync);
                }
@@ -55,7 +55,7 @@ public class DeleteAllEmptyNamesHandlerE4 extends DeleteTaxonBaseHandlerE4 {
             @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
             MHandledMenuItem menuItem){
 
-        editor = (TaxonNameEditorE4) activePart.getObject();
+        editor = (TaxonEditor) activePart.getObject();
 
         boolean canExecute = false;
         canExecute = editor.checkForEmptyNames();
@@ -31,7 +31,7 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.name.handler.NameEditorMenuPropertyTester;
 import eu.etaxonomy.taxeditor.model.DeleteResultMessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
@@ -45,9 +45,9 @@ import eu.etaxonomy.taxeditor.ui.dialog.configurator.deleteConfigurator.DeleteCo
  * @since Aug 28, 2017
  *
  */
-public class DeleteTaxonBaseHandlerE4 implements IPostOperationEnabled {
+public class DeleteTaxonBaseHandler implements IPostOperationEnabled {
 
-    protected TaxonNameEditorE4 editor;
+    protected TaxonEditor editor;
 
        @Execute
        public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
@@ -56,13 +56,13 @@ public class DeleteTaxonBaseHandlerE4 implements IPostOperationEnabled {
                MHandledMenuItem menuItem,
             UISynchronize sync) {
 
-           editor = (TaxonNameEditorE4) activePart.getObject();
+           editor = (TaxonEditor) activePart.getObject();
 
            doExecute(menuItem.getLocalizedLabel(), shell, editor, selection.getFirstElement(), sync);
 
        }
 
-       protected void doExecute(String commandName, Shell shell, TaxonNameEditorE4 editor, Object selectedElement,
+       protected void doExecute(String commandName, Shell shell, TaxonEditor editor, Object selectedElement,
             UISynchronize sync) {
                AbstractPostOperation operation = null;
 
@@ -7,7 +7,8 @@ import java.util.UUID;
 import javax.inject.Inject;
 import javax.inject.Named;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.e4.core.di.annotations.CanExecute;
 import org.eclipse.e4.core.di.annotations.Execute;
 import org.eclipse.e4.ui.di.UISynchronize;
@@ -20,24 +21,28 @@ import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Shell;
 
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;
+import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4;
+import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.name.e4.operation.MoveSynonymToAnotherAcceptedTaxonOperationE4;
 import eu.etaxonomy.taxeditor.editor.name.handler.NameEditorMenuPropertyTester;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.ReferenceSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
 
-public class MoveSynonymToAnotherAcceptedTaxonHandlerE4 implements IPostOperationEnabled{
-       private static final Logger logger = Logger
-       .getLogger(MoveSynonymToAnotherAcceptedTaxonHandlerE4.class);
+public class MoveSynonymToAnotherAcceptedTaxonHandler implements IPostOperationEnabled{
 
-       private TaxonNameEditorE4 editor;
+    private static final Logger logger = LogManager.getLogger(MoveSynonymToAnotherAcceptedTaxonHandler.class);
+
+       private TaxonEditor editor;
 
     private TaxonNode newParentNode;
 
@@ -61,9 +66,9 @@ public class MoveSynonymToAnotherAcceptedTaxonHandlerE4 implements IPostOperatio
            this.activePart = activePart;
            this.partService = partService;
 
-        editor = (TaxonNameEditorE4) activePart.getObject();
+        editor = (TaxonEditor) activePart.getObject();
 
-        TaxonEditorInputE4 input = editor.getEditorInput();
+        TaxonEditorInput input = editor.getEditorInput();
 
                if (!EditorUtil.forceUserSaveE4Editor(editor, shell)) {
                        return ;
@@ -81,12 +86,43 @@ public class MoveSynonymToAnotherAcceptedTaxonHandlerE4 implements IPostOperatio
                excludeTaxa.add(oldParent.getUuid());
 
 
-               newParentNode = TaxonNodeSelectionDialog.select(shell, //editor.getConversationHolder(),
-                       Messages.MoveSynonymToAnotherAcceptedTaxonHandler_SELECT_ACC_TAXON, excludeTaxa,  input.getTaxonNode(), input.getTaxonNode().getClassification().getUuid());
+               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)){
+
+            if ((parentSecRef != synSecRef && secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn) )|| secHandling.equals(SecReferenceHandlingEnum.KeepOrSelect)){
+                int result = MessagingUtils.confirmDialog(Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_title, Messages.MoveSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message,
+                        new String[]{Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Keep, Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Parent, Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Select});
+                if (result == 2){
+                    Reference sec = ReferenceSelectionDialog.select(shell, null);
+                    newSecUuid = sec != null? sec.getUuid(): null;
+                }else if (result == 1){
+                    newSecUuid = parentSecRef != null? parentSecRef.getUuid(): null;
+                }else if (result == 0){
+                    newSecUuid = synSecRef != null? synSecRef.getUuid(): null;
+                }else{
+                    return ;
+                }
+
+            }
 
+        }
+        boolean homotypicGroupPublish = true;
+//        for (synonym.getName().getHomotypicalGroup().getTypifiedNames())
+               if (synonym.isPublish() != newParentNode.getTaxon().isPublish()){
+            MessagingUtils.warningDialog("Publish flag", this,Messages.ChangeSynonymToAcceptedHandler_Different_Publish_Flag);
+        }
                if(newParentNode!=null){
                   MoveSynonymToAnotherAcceptedTaxonOperationE4 operation = new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.MoveSynonymToAnotherAcceptedTaxonHandler_CHANGE_ACC_TAXON, EditorUtil.getUndoContext(),
-                           synonym.getUuid(), newParentNode.getTaxon(), this, editor);
+                           synonym.getUuid(), newParentNode.getTaxon(),newSecUuid, this);
 
                    AbstractUtility.executeOperation(operation, sync);
                }
@@ -20,7 +20,7 @@ import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.name.handler.NameEditorMenuPropertyTester;
 import eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicalGroupBasionymOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -32,7 +32,7 @@ import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
  * @since Aug 28, 2017
  *
  */
-public class SetBasionymHandlerE4 {
+public class SetBasionymHandler {
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
@@ -40,7 +40,7 @@ public class SetBasionymHandlerE4 {
             MHandledMenuItem menuItem,
             UISynchronize sync) {
 
-        TaxonNameEditorE4 editor = (TaxonNameEditorE4) activePart.getObject();
+        TaxonEditor editor = (TaxonEditor) activePart.getObject();
 
                TaxonBase selectedTaxonBase = (TaxonBase) selection.getFirstElement();
 
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/SwapSynonymAndAcceptedHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/SwapSynonymAndAcceptedHandler.java
new file mode 100644 (file)
index 0000000..3d69074
--- /dev/null
@@ -0,0 +1,196 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.name.e4.handler;
+
+import java.util.HashSet;
+import java.util.Set;
+import java.util.UUID;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.model.application.MApplication;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingSwapEnum;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.taxon.Synonym;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.l10n.Messages;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
+import eu.etaxonomy.taxeditor.editor.name.handler.NameEditorMenuPropertyTester;
+import eu.etaxonomy.taxeditor.editor.name.operation.SwapSynonymAndAcceptedOperation;
+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.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.ReferenceSelectionDialog;
+
+/**
+ * @author pplitzner
+ * @since Aug 28, 2017
+ */
+public class SwapSynonymAndAcceptedHandler implements IPostOperationEnabled {
+
+    protected TaxonEditor editor;
+    protected Taxon taxon;
+    protected EPartService partService;
+    protected MPart activePart;
+    protected MApplication application;
+    protected EModelService modelService;
+    protected boolean isSetNameInSource = false;
+
+    @Execute
+    public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart,
+            @Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection,
+            @Named(IServiceConstants.ACTIVE_SHELL) Shell shell, MHandledMenuItem menuItem, EPartService partService,
+            EModelService modelService, MApplication application,
+            UISynchronize sync) {
+
+        this.activePart = activePart;
+        this.modelService = modelService;
+        this.application = application;
+        this.partService = partService;
+
+        editor = (TaxonEditor) activePart.getObject();
+
+        Synonym synonym = (Synonym) selection.getFirstElement();
+
+        // Force user to save taxon - not really necessary though, is it?
+        if (!EditorUtil.forceUserSaveE4Editor(editor, shell)) {
+            return;
+        }
+        TaxonNode parentNode = editor.getTaxonNode()!= null? editor.getTaxonNode().getParent(): null;
+        Boolean isParentPublish = null;
+        if (parentNode != null){
+            if (parentNode.getTaxon() != null){
+                isParentPublish = parentNode.getTaxon().isPublish();
+            }
+        }
+
+        if (synonym.isPublish() != editor.getTaxon().isPublish() || (isParentPublish != null && (isParentPublish.booleanValue() != synonym.isPublish() || isParentPublish.booleanValue() != synonym.isPublish()))){
+            MessagingUtils.warningDialog("Publish flag", this, Messages.SwapSynonymToAcceptedHandler_Different_Publish_Flag);
+        }
+
+        Reference secRefAccepted = editor.getTaxon().getSec();
+        Reference secRefSynonym = synonym.getSec();
+        SecReferenceHandlingSwapEnum secHandling = PreferencesUtil.getSecReferenceHandlingSwapPreference();
+        UUID newSecAcc = secRefAccepted != null? secRefAccepted.getUuid(): null;
+        UUID newSecSyn = secRefSynonym != null? secRefSynonym.getUuid(): null;
+        if (secHandling.equals(SecReferenceHandlingSwapEnum.AlwaysSelect) ||
+                ((secHandling.equals(SecReferenceHandlingSwapEnum.KeepOrSelect) || secHandling.equals(SecReferenceHandlingSwapEnum.KeepOrWarn))
+                        && (secRefAccepted != null && secRefSynonym != null &&!secRefAccepted.getUuid().equals(secRefSynonym.getUuid()))
+                        || secRefAccepted != secRefSynonym)){
+            if (secHandling.equals(SecReferenceHandlingSwapEnum.KeepOrWarn)){
+                boolean doContinue = MessagingUtils.confirmDialog("Secundum Reference differ", Messages.ChangeSynonymToAcceptedHandler_Different_Secundum_references);
+                if (!doContinue){
+                   return;
+                }
+            }else{
+
+                int result = MessagingUtils.confirmDialog(Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_title,
+                        Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message,
+                        new String[]{Messages.SwapSynonymAndAcceptedHandler_Select_Sec_Reference_Select, Messages.SwapSynonymAndAcceptedHandler_Select_Sec_Reference_Delete});
+                if (result == 0){
+                    Set<Reference> oldSecs = new HashSet<>();
+                    oldSecs.add(secRefAccepted);
+                    oldSecs.add(secRefSynonym);
+                    Reference sec = ReferenceSelectionDialog.select(shell, Messages.SwapSynonymAndAcceptedHandler_Select_Sec_Reference_Taxon,null, oldSecs);
+                    newSecAcc = sec != null? sec.getUuid(): null;
+                    sec = ReferenceSelectionDialog.select(shell, Messages.SwapSynonymAndAcceptedHandler_Select_Sec_Reference_Synonym,null, oldSecs);
+                    newSecSyn = sec != null? sec.getUuid(): null;
+                } else if (result == 1){
+                    newSecAcc = null;
+                    newSecSyn = null;
+                } else{
+                    return ;
+                }
+            }
+        }
+        if (secHandling.equals(SecReferenceHandlingSwapEnum.AlwaysDelete)){
+            boolean doContinue = MessagingUtils.confirmDialog("Secundum Reference Delete", Messages.SwapSynonymToAcceptedHandler_Delete_Secundum);
+            if (!doContinue){
+                return;
+            }
+
+            newSecAcc = null;
+            newSecSyn = null;
+
+        }
+
+        SwapSynonymAndAcceptedOperation operation = new SwapSynonymAndAcceptedOperation(menuItem.getLocalizedLabel(),
+                editor.getUndoContext(), editor.getTaxon(), synonym, this, editor.getEditorInput(), isSetNameInSource, secHandling, newSecAcc, newSecSyn);
+
+        AbstractUtility.executeOperation(operation, sync);
+    }
+
+    @CanExecute
+    public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
+            MHandledMenuItem menuItem){
+        boolean canExecute = false;
+        if(selection.size()==1){
+            Object selectedElement = selection.getFirstElement();
+            canExecute = NameEditorMenuPropertyTester.isSynonym(selectedElement);
+        }
+        menuItem.setVisible(canExecute);
+        return canExecute;
+    }
+
+    @Override
+    public boolean postOperation(Object objectAffectedByOperation) {
+        partService.hidePart(activePart);
+        if (objectAffectedByOperation instanceof Taxon) {
+            taxon = (Taxon) objectAffectedByOperation;
+        }
+        return true;
+    }
+
+    @Override
+    public boolean onComplete() {
+        Display display = Display.getCurrent();
+        display.asyncExec(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    TaxonNode node;
+
+                    if (!taxon.getTaxonNodes().isEmpty()) {
+                        node = taxon.getTaxonNodes().iterator().next();
+                    } else {
+                        node = null;
+                    }
+                    if (node != null){
+                        EditorUtil.openTaxonNodeE4((node).getUuid(), modelService, partService, application);
+                        for (TaxonNode nodetoUpdate: taxon.getTaxonNodes()){
+                            EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, new TaxonNodeDto(nodetoUpdate.getParent()));
+                        }
+                    }
+                } catch (Exception e) {
+                    MessagingUtils.warningDialog(Messages.SwapSynonymAndAcceptedHandler_COULD_NOT_OPEN, this,
+                            e.getMessage());
+                }
+            }
+        });
+        return true;
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/SwapSynonymAndAcceptedHandlerE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/handler/SwapSynonymAndAcceptedHandlerE4.java
deleted file mode 100644 (file)
index ec7fbb5..0000000
+++ /dev/null
@@ -1,135 +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.editor.name.e4.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.ui.di.UISynchronize;
-import org.eclipse.e4.ui.model.application.MApplication;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.e4.ui.workbench.modeling.EModelService;
-import org.eclipse.e4.ui.workbench.modeling.EPartService;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
-import eu.etaxonomy.taxeditor.editor.name.handler.NameEditorMenuPropertyTester;
-import eu.etaxonomy.taxeditor.editor.name.operation.SwapSynonymAndAcceptedOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-
-/**
- *
- * @author pplitzner
- * @since Aug 28, 2017
- *
- */
-public class SwapSynonymAndAcceptedHandlerE4 implements IPostOperationEnabled {
-
-    protected TaxonNameEditorE4 editor;
-    protected Taxon taxon;
-    protected EPartService partService;
-    protected MPart activePart;
-    protected MApplication application;
-    protected EModelService modelService;
-
-    @Execute
-    public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart,
-            @Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection,
-            @Named(IServiceConstants.ACTIVE_SHELL) Shell shell, MHandledMenuItem menuItem, EPartService partService,
-            EModelService modelService, MApplication application,
-            UISynchronize sync) {
-
-        this.activePart = activePart;
-        this.modelService = modelService;
-        this.application = application;
-        this.partService = partService;
-
-        editor = (TaxonNameEditorE4) activePart.getObject();
-
-        Synonym synonym = (Synonym) selection.getFirstElement();
-
-        // Force user to save taxon - not really necessary though, is it?
-        if (!EditorUtil.forceUserSaveE4Editor(editor, shell)) {
-            return;
-        }
-
-        SwapSynonymAndAcceptedOperation operation = new SwapSynonymAndAcceptedOperation(menuItem.getLocalizedLabel(),
-                editor.getUndoContext(), editor.getTaxon(), synonym, this, editor.getEditorInput(), false);
-
-        AbstractUtility.executeOperation(operation, sync);
-
-    }
-
-    @CanExecute
-    public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
-            MHandledMenuItem menuItem){
-        boolean canExecute = false;
-        if(selection.size()==1){
-            Object selectedElement = selection.getFirstElement();
-            canExecute = NameEditorMenuPropertyTester.isSynonym(selectedElement);
-        }
-        menuItem.setVisible(canExecute);
-        return canExecute;
-    }
-
-    @Override
-    public boolean postOperation(Object objectAffectedByOperation) {
-        // Redraw existing editor
-        // ((IPostOperationEnabled) editor).postOperation(null);
-
-       // editor.save(AbstractUtility.getMonitor());
-        partService.hidePart(activePart);
-
-        if (objectAffectedByOperation instanceof Taxon) {
-            taxon = (Taxon) objectAffectedByOperation;
-        }
-
-
-        return true;
-    }
-
-    @Override
-    public boolean onComplete() {
-        Display display = Display.getCurrent();
-        display.asyncExec(new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    TaxonNode node;
-                    if (!taxon.getTaxonNodes().isEmpty()) {
-                        node = taxon.getTaxonNodes().iterator().next();
-                    } else {
-                        node = null;
-                    }
-                    if (node != null){
-                        EditorUtil.openTaxonNodeE4((node).getUuid(), modelService, partService, application);
-                    }
-                } catch (Exception e) {
-                    MessagingUtils.warningDialog(Messages.SwapSynonymAndAcceptedHandler_COULD_NOT_OPEN, this,
-                            e.getMessage());
-                }
-
-            }
-        });
-        return true;
-    }
-}
index e94aa72f6198ba68ad76f1dd55307ba981c60381..25d27c7352f92c620ddab4eed9745f05abd7c873 100755 (executable)
@@ -22,11 +22,6 @@ import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
-import eu.etaxonomy.taxeditor.editor.name.operation.SwapSynonymAndAcceptedOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
 /**
@@ -35,7 +30,7 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
  * @since Aug 28, 2017
  *
  */
-public class SwapSynonymAndAcceptedSetNameInSourceHandlerE5 extends SwapSynonymAndAcceptedHandlerE4 implements IPostOperationEnabled {
+public class SwapSynonymAndAcceptedSetNameInSourceHandlerE5 extends SwapSynonymAndAcceptedHandler implements IPostOperationEnabled {
 
 
 
@@ -48,24 +43,28 @@ public class SwapSynonymAndAcceptedSetNameInSourceHandlerE5 extends SwapSynonymA
             EModelService modelService, MApplication application,
             UISynchronize sync) {
 
-        this.activePart = activePart;
-        this.modelService = modelService;
-        this.application = application;
-        this.partService = partService;
-
-        editor = (TaxonNameEditorE4) activePart.getObject();
-
-        Synonym synonym = (Synonym) selection.getFirstElement();
-
-        // Force user to save taxon - not really necessary though, is it?
-        if (!EditorUtil.forceUserSaveE4Editor(editor, shell)) {
-            return;
-        }
-
-        SwapSynonymAndAcceptedOperation operation = new SwapSynonymAndAcceptedOperation(menuItem.getLocalizedLabel(),
-                editor.getUndoContext(), editor.getTaxon(), synonym, this, editor.getEditorInput(), true);
-
-        AbstractUtility.executeOperation(operation, sync);
+        this.isSetNameInSource = true;
+
+        super.execute(activePart, selection, shell, menuItem, partService, modelService, application, sync);
+
+//        this.activePart = activePart;
+//        this.modelService = modelService;
+//        this.application = application;
+//        this.partService = partService;
+//
+//        editor = (TaxonEditor) activePart.getObject();
+//
+//        Synonym synonym = (Synonym) selection.getFirstElement();
+//
+//        // Force user to save taxon - not really necessary though, is it?
+//        if (!EditorUtil.forceUserSaveE4Editor(editor, shell)) {
+//            return;
+//        }
+//
+//        SwapSynonymAndAcceptedOperation operation = new SwapSynonymAndAcceptedOperation(menuItem.getLocalizedLabel(),
+//                editor.getUndoContext(), editor.getTaxon(), synonym, this, editor.getEditorInput(), true);
+//
+//        AbstractUtility.executeOperation(operation, sync);
 
     }
 
index d187a560545dcb7c18df2360d2ebbe57512290c8..e74b03664d609b38bc42509eac8e9419c5c0a0ec 100644 (file)
@@ -1,7 +1,9 @@
 package eu.etaxonomy.taxeditor.editor.name.e4.operation;
 
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 import java.util.UUID;
 
 import org.eclipse.core.commands.ExecutionException;
@@ -10,12 +12,12 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -27,17 +29,18 @@ public class MoveSynonymToAnotherAcceptedTaxonOperationE4 extends
         * The synonym to be moved.
         */
        private final Synonym synonym;
-       private IConversationEnabled conversationEnabled;
+       private UUID newSecUuid;
 
     public MoveSynonymToAnotherAcceptedTaxonOperationE4(String label, IUndoContext undoContext, UUID synonymUUID,
-            Taxon taxon, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
+            Taxon taxon, UUID newSecRefUuid, IPostOperationEnabled postOperationEnabled) {
 
                super(label, undoContext, taxon, postOperationEnabled);
                List<String> propertyPaths =  new ArrayList<String>();
                propertyPaths.add("synonymRelations"); //$NON-NLS-1$
-               this.conversationEnabled = conversationEnabled;
+               
                this.element = (Taxon) CdmStore.getService(ITaxonService.class).load(taxon.getUuid(),propertyPaths);
                this.synonym = (Synonym) CdmStore.getService(ITaxonService.class).load(synonymUUID);
+               this.newSecUuid = newSecRefUuid;
                if(synonym == null){
                        throw new IllegalArgumentException(
                                        "A null synonym was provided."); //$NON-NLS-1$
@@ -51,26 +54,30 @@ public class MoveSynonymToAnotherAcceptedTaxonOperationE4 extends
                monitor.worked(20);
 
                // Switch groups
-
-               monitor.worked(40);
-
-               conversationEnabled.getConversationHolder().commit();
-
+               monitor.beginTask("Move synonym to another taxon", 40);
+               Taxon oldAccepted = synonym.getAcceptedTaxon();
+//             Reference secRef = CdmStore.getService(IReferenceService.class).load(newSecUuid);
+               UpdateResult result = null;
                try {
-                       UpdateResult result = CdmStore.getService(ITaxonService.class).moveSynonymToAnotherTaxon(synonym,
+                       result = CdmStore.getService(ITaxonService.class).moveSynonymToAnotherTaxon(synonym,
                                this.element.getUuid(),
                                true,
                                synonym.getType(),
-                               null,
+                               newSecUuid,
                                null,
                                true);
                } catch (HomotypicalGroupChangeException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
-               conversationEnabled.getConversationHolder().commit();
-
+               monitor.worked(40);
                // Redraw editor if it exists
+               Set<Taxon> taxa = new HashSet<>();
+        taxa.add(synonym.getAcceptedTaxon());
+        taxa.add(oldAccepted);
+
+        EditorUtil.updateNameEditors(taxa);
+
                return postExecute(null);
        }
 
index a401a07fb0402793a39ce70186848fd1cc35a70b..cddc7c952b9fd99302612ae45612996894d761c3 100755 (executable)
@@ -12,12 +12,13 @@ package eu.etaxonomy.taxeditor.editor.name.handler;
 import org.eclipse.core.expressions.PropertyTester;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -44,7 +45,6 @@ public class NameEditorMenuPropertyTester extends PropertyTester {
        private static final String NOT_HOMOTYPIC_SYNONYM_OF_ACCEPTED = "isNotHomotypicSynonymOfAcceptedTaxon"; //$NON-NLS-1$
        private static final String SYNONYM_WITH_HOMOTYPIC_SYNONYMS = "isSynonymInHomotypicalGroupWithMoreSynonyms"; //$NON-NLS-1$
        private static final String IS_ORPHANED = "isOrphaned";
-       private static final String IS_NOT_INVALID_DESIGNATION = "isNotInvalidDesignation";//$NON-NLS-1$
 
        /**
         * <p>Constructor for NameEditorMenuPropertyTester.</p>
@@ -61,18 +61,23 @@ public class NameEditorMenuPropertyTester extends PropertyTester {
                        IStructuredSelection selection = (IStructuredSelection) receiver;
 
                        Object selectedElement = selection.getFirstElement();
+                       Class<?> type = selectedElement.getClass();
                        if(selectedElement instanceof UuidAndTitleCache){
                            UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache<?>)selectedElement;
-                           CdmBase cdmBase = CdmStore.getCommonService().find(uuidAndTitleCache.getType(), uuidAndTitleCache.getUuid());
-                           selectedElement = cdmBase;
+                           type = uuidAndTitleCache.getType();
                        }
             if(EMPTY_NAMES.equals(property)){
                 return hasEmptyNames(receiver);
             }
-            else if(!(selectedElement instanceof TaxonBase)){
+            else if(!(TaxonBase.class.isAssignableFrom(type))){
                 return false;
             }
-            else if(NOT_ACCEPTED.equals(property)){
+            if(selectedElement instanceof UuidAndTitleCache){
+                UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache<?>)selectedElement;
+                CdmBase cdmBase = CdmStore.getCommonService().find(uuidAndTitleCache.getType(), uuidAndTitleCache.getUuid());
+                selectedElement = cdmBase;
+            }
+            if(NOT_ACCEPTED.equals(property)){
                 return !isAccepted(selectedElement);
             }
                        else if(ACCEPTED.equals(property)){
@@ -114,9 +119,6 @@ public class NameEditorMenuPropertyTester extends PropertyTester {
                        else if (IS_ORPHANED.equals(property)){
                            return isOrphaned(selectedElement);
                        }
-                       else if (IS_NOT_INVALID_DESIGNATION.equals(property)){
-                return isNotInvalidDesignation(selectedElement);
-            }
                }
                return false;
 
@@ -141,7 +143,7 @@ public class NameEditorMenuPropertyTester extends PropertyTester {
 
        public static boolean isSynonymOrTaxonInHomotypicalGroupWithMoreSynonyms(Object selectedElement) {
                if (isSynonym(selectedElement) || isAccepted(selectedElement)){
-                       TaxonBase<?> synonym = (TaxonBase<?>) selectedElement;
+                       TaxonBase<?> synonym = HibernateProxyHelper.deproxy(selectedElement, TaxonBase.class);
                        return synonym.getHomotypicGroup().getTypifiedNames().size()>1;
                }
                return false;
@@ -166,12 +168,12 @@ public class NameEditorMenuPropertyTester extends PropertyTester {
         * @return
         */
        public static boolean hasEmptyNames(Object receiver) {
-               TaxonNameEditorE4 editor = (TaxonNameEditorE4) EventUtility.getTaxonEditor();
+               TaxonEditor editor = (TaxonEditor) EventUtility.getTaxonEditor();
                return editor == null ? false : editor.checkForEmptyNames();
        }
 
        public static boolean isRelatedConcept(Object selectedElement) {
-               if(selectedElement instanceof Taxon && ((Taxon) selectedElement).isRelatedConcept() && !((TaxonNameEditorE4) EventUtility.getTaxonEditor()).getTaxon().equals(selectedElement)){
+               if(selectedElement instanceof Taxon && ((Taxon) selectedElement).isRelatedConcept() && !((TaxonEditor) EventUtility.getTaxonEditor()).getTaxon().equals(selectedElement)){
                        return true;
                }
                return false;
@@ -182,14 +184,14 @@ public class NameEditorMenuPropertyTester extends PropertyTester {
        }
 
        public static boolean isMisapplication(Object selectedElement) {
-               if(selectedElement instanceof Taxon && ((Taxon) selectedElement).isMisapplication() && !((TaxonNameEditorE4) EventUtility.getTaxonEditor()).getTaxon().equals(selectedElement)){
+               if(selectedElement instanceof Taxon && ((Taxon) selectedElement).isMisapplication() && !((TaxonEditor) EventUtility.getTaxonEditor()).getTaxon().equals(selectedElement)){
                        return true;
                }
                return false;
        }
 
        public static boolean isProparteSynonym(Object selectedElement) {
-        if(selectedElement instanceof Taxon && ((Taxon) selectedElement).isProparteSynonym() && !((TaxonNameEditorE4) EventUtility.getTaxonEditor()).getTaxon().equals(selectedElement)){
+        if(selectedElement instanceof Taxon && ((Taxon) selectedElement).isProparteSynonym() && !((TaxonEditor) EventUtility.getTaxonEditor()).getTaxon().equals(selectedElement)){
             return true;
         }
         return false;
@@ -198,7 +200,7 @@ public class NameEditorMenuPropertyTester extends PropertyTester {
            if (selectedElement instanceof Synonym){
                return true;
            }
-        if(((Taxon) selectedElement).isProparteSynonym() && !((TaxonNameEditorE4) EventUtility.getTaxonEditor()).getTaxon().equals(selectedElement)){
+        if(((Taxon) selectedElement).isProparteSynonym() && !((TaxonEditor) EventUtility.getTaxonEditor()).getTaxon().equals(selectedElement)){
             return false;
         }
         return true;
@@ -212,7 +214,7 @@ public class NameEditorMenuPropertyTester extends PropertyTester {
     }
 
        public static boolean isAccepted(Object selectedElement) {
-           TaxonNameEditorE4 editor = (TaxonNameEditorE4) EventUtility.getTaxonEditor();
+           TaxonEditor editor = (TaxonEditor) EventUtility.getTaxonEditor();
            Taxon accepted = editor.getTaxon();
                return (selectedElement instanceof Taxon  && accepted.equals(selectedElement)) ? true : false;
        }
@@ -238,18 +240,4 @@ public class NameEditorMenuPropertyTester extends PropertyTester {
         return false;
     }
 
-    /**
-     * @param selectedElement
-     * @return
-     */
-    public static boolean isNotInvalidDesignation(Object selectedElement) {
-        if (selectedElement instanceof Synonym){
-            return true;
-        }
-        if(((Taxon) selectedElement).isInvalidDesignation() ){
-            return false;
-        }
-        return true;
-    }
-
 }
index 1b13bbab0f04517955b9baad6540f900cd6e5a2a..baa02c5fd7d1bfbbae3ad3b3248fd2244e0714bc 100644 (file)
@@ -76,29 +76,28 @@ public class ChangeHomotypicGroupOperation extends AbstractPostTaxonOperation {
        // Get synonym name
                TaxonName synonymName = synonym.getName();
                monitor.worked(20);
+               Taxon acc = synonym.getAcceptedTaxon();
 
+               if(acc != null){
+                       acc.removeSynonym(synonym);
+               }
                // TODO pass in homotypical group's taxon in case we are dragging from one editor to another
 
                // Switch groups
-               oldHomotypicalGroup.removeTypifiedName(synonymName, false);
+//             oldHomotypicalGroup.removeTypifiedName(synonymName, false);
                monitor.worked(40);
                newHomotypicalGroup = HibernateProxyHelper.deproxy(newHomotypicalGroup, HomotypicalGroup.class);
                newHomotypicalGroup.addTypifiedName(synonymName);
 
-               Taxon acc = synonym.getAcceptedTaxon();
-               if(acc == null || !acc.equals(element)){
-                       if(acc != null){
-                               acc.removeSynonym(synonym);
-                       }
 
-                       SynonymType type = SynonymType.HETEROTYPIC_SYNONYM_OF();
-                       if(newHomotypicalGroup.getTypifiedNames().contains(element.getName())){
-                               type = SynonymType.HOMOTYPIC_SYNONYM_OF();
-                       }
 
-                       element.addSynonym(synonym, type);
+               SynonymType type = SynonymType.HETEROTYPIC_SYNONYM_OF;
+               if(newHomotypicalGroup.getTypifiedNames().contains(element.getName())){
+                       type = SynonymType.HOMOTYPIC_SYNONYM_OF;
                }
 
+               element.addSynonym(synonym, type);
+
                // Redraw editor if it exists
                return postExecute(synonym);
        }
index 8da89ab9a5a1bffb76dfd4ff500ad45a49e32ecf..16e75794645ca96a06cdc3c8dd9452c301a5d1c2 100644 (file)
@@ -9,7 +9,7 @@
 
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import java.util.Set;
+import java.util.UUID;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -17,11 +17,10 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;
-import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;
 import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
@@ -45,8 +44,9 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
        private final ITaxonTreeNode parentNode;
 
        private TaxonNode newNode;
+       private UUID newSecRefUuid;
+       private SecReferenceHandlingEnum secHandling;
 
-       //private final Set<TaxonName> namesInHomotypicGroup;
 
        /**
         * <p>Constructor for ChangeSynonymToAcceptedTaxonOperation.</p>
@@ -58,35 +58,35 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
         * @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.
         * @param synonymsInHomotypicalGroup an array of {@link eu.etaxonomy.cdm.model.taxon.Synonym} objects.
         * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
-        * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        public ChangeSynonymToAcceptedTaxonOperation(String label,
                IUndoContext undoContext,
                        Taxon taxon,
                        ITaxonTreeNode parentNode,
                        Synonym synonym,
-                       Set<TaxonName> namesInHomotypicalGroup,
-                       IPostOperationEnabled postOperationEnabled,
-                       IConversationEnabled conversationEnabled,
+                       UUID newSecUuid,
+               SecReferenceHandlingEnum secHandling,
+                       IPostOperationEnabled postOperationEnabled,                     
                        ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
-               super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
+               super(label, undoContext, postOperationEnabled, cdmEntitySessionEnabled);
 
                this.element = taxon;
                this.parentNode = parentNode;
                this.synonym = synonym;
-               //this.namesInHomotypicGroup = namesInHomotypicalGroup;
+               this.newSecRefUuid = newSecUuid;
+               this.secHandling = secHandling;
        }
 
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
 
-
                UpdateResult result;
                try {
                        result = CdmStore.getService(ITaxonService.class).changeSynonymToAcceptedTaxon(synonym.getUuid(),
                                element.getUuid(),
                                parentNode.getUuid(),
+                               newSecRefUuid, null, secHandling,
                                true);
                        if (result.isAbort()){
 
@@ -101,21 +101,6 @@ public class ChangeSynonymToAcceptedTaxonOperation extends AbstractPersistentPos
 
 
                monitor.worked(20);
-               //newTaxon = (Taxon) CdmStore.getService(ITaxonService.class).merge(newTaxon);
-               //element.removeSynonym(synonym);
-
-
-               /*if(namesInHomotypicGroup != null){
-                       Taxon taxon = newNode.getTaxon();
-                       for (TaxonNameBase synonymName : namesInHomotypicGroup){
-                               taxon.addHomotypicSynonymName(synonymName, null, null);
-
-                       }
-               }*/
-               //newNode = CdmStore.getService(ITaxonNodeService.class).merge(newNode);
-
-               monitor.worked(40);
-
                return postExecute(newNode);
        }
 
index 3e23a498a54c4c392593d00c2f25d367be7d11e1..1809a2e1e0a5b1d6483564cb854ea3c7fa6af6ba 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
index c3841cd9b3499c20508ad72096ce7a8d432acdf1..bf5a8ab283dac287d36c5fe69dddb1892f42898e 100644 (file)
@@ -27,8 +27,6 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>ChangeSynonymToMisapplicationOperation class.</p>
- *
  * @author p.ciardelli
  * @author n.hoffmann
  * @created 14.01.2009
@@ -39,15 +37,6 @@ public class ChangeSynonymToMisapplicationOperation extends AbstractPostTaxonOpe
        private Taxon misapplication;
        private Set<SynonymType> synonymTypes;
 
-       /**
-        * <p>Constructor for ChangeSynonymToMisapplicationOperation.</p>
-        *
-        * @param label a {@link java.lang.String} object.
-        * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
-        * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
-        * @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.
-        * @param editor a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
-        */
        public ChangeSynonymToMisapplicationOperation(String label,
                        IUndoContext undoContext, Taxon taxon, Synonym synonym, IPostOperationEnabled editor) {
                super(label, undoContext, taxon, editor);
index 9e6038ce5b2bd322af37b2884e697def37b862c6..f8b9021c16b07218ab65f983890bdb046cd5eb7f 100755 (executable)
@@ -16,7 +16,7 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -38,14 +38,14 @@ public abstract class CreateNewTaxonBaseOperation extends AbstractPostTaxonOpera
     }
 
     protected void addToSaveList(CdmBase newCdmBase) {
-        TaxonNameEditorE4 editor = null;
+        TaxonEditor editor = null;
         Object activePart = AbstractUtility.getActivePart();
-        if (activePart instanceof TaxonNameEditorE4){
-           editor = (TaxonNameEditorE4) activePart;
+        if (activePart instanceof TaxonEditor){
+           editor = (TaxonEditor) activePart;
            if (newCdmBase instanceof Synonym){
                editor.getEditorInput().addToSaveNewSynonym((Synonym)newCdmBase);
            }else if (newCdmBase instanceof Taxon ){
-               editor.getEditorInput().addToSaveNewConcept((Taxon)newCdmBase);
+               editor.getEditorInput().addToSaveConcept((Taxon)newCdmBase);
            }else if (newCdmBase instanceof TaxonName){
                editor.getEditorInput().addToSaveNewName((TaxonName)newCdmBase);
            }
index 5c09f47972fd2cf333a835f1da688bb3bb43b69c..bbc5dd7c16b17d625199678e611904a5ae6ccfe0 100644 (file)
@@ -60,7 +60,7 @@ public class CreateSynonymInExistingHomotypicalGroupOperation extends
 
                // Add name to given homotypic group
 
-//         HomotypicalSynonymGroupE4 groupContainer = ((TaxonNameEditorE4)postOperationEnabled).getHomotypicalGroupContainer(group);
+//         HomotypicalSynonymGroupE4 groupContainer = ((TaxonEditor)postOperationEnabled).getHomotypicalGroupContainer(group);
                group.addTypifiedName(newSynonymName);
 //         groupContainer.add(groupedContainer);
                monitor.worked(20);
@@ -73,10 +73,10 @@ public class CreateSynonymInExistingHomotypicalGroupOperation extends
                        synonym = element.addHeterotypicSynonymName(newSynonymName);
                }
                for (HybridRelationship rel : newSynonymName.getHybridChildRelations()){
-            if (!rel.getHybridName().isPersited()) {
+            if (!rel.getHybridName().isPersisted()) {
                 addToSaveList(rel.getHybridName());
             }
-            if (!rel.getParentName().isPersited()) {
+            if (!rel.getParentName().isPersisted()) {
                 addToSaveList(rel.getParentName());
             }
         }
index 71049fa7d86da8bc96f1e474f5ac8801ce5d4538..22ba75a730e8a89c97d2537a76cdd30bdb8eb4e1 100644 (file)
@@ -65,10 +65,10 @@ public class CreateSynonymInNewGroupOperation extends CreateNewTaxonBaseOperatio
                HibernateProxyHelper.deproxy(element);
                newSynonym = element.addHeterotypicSynonymName(newSynonymName);
                for (HybridRelationship rel : newSynonymName.getHybridChildRelations()){
-            if (!rel.getHybridName().isPersited()) {
+            if (!rel.getHybridName().isPersisted()) {
                 addToSaveList(rel.getHybridName());
             }
-            if (!rel.getParentName().isPersited()) {
+            if (!rel.getParentName().isPersisted()) {
                 addToSaveList(rel.getParentName());
             }
         }
index 942abb4597397da40f5b142fa42468e638124b81..df39092fdf676375c57feb636c16f8080d82b1f6 100644 (file)
@@ -16,7 +16,6 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.config.TaxonBaseDeletionConfigurator;
 import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
@@ -51,9 +50,9 @@ public class DeleteMisapplicationOperation extends DeleteTaxonBaseOperation {
         * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public DeleteMisapplicationOperation(String label, IUndoContext undoContext, TaxonBaseDeletionConfigurator configurator,
-            Taxon taxon, Taxon misapplication, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled,ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
-               //super(label, undoContext, taxon, postOperationEnabled);
-           super(label, undoContext, configurator, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
+            Taxon taxon, Taxon misapplication, IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+
+           super(label, undoContext, configurator, postOperationEnabled, cdmEntitySessionEnabled);
                this.misapplication = misapplication;
                this.element = taxon;
        }
index 662820d042d8b05d5ea055ab874ed2c9b76c61ff..3e6be8751a910e79323aaa574d05d6362a8189af 100644 (file)
@@ -17,7 +17,6 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.config.TaxonBaseDeletionConfigurator;
@@ -50,8 +49,8 @@ public class DeleteSynonymOperation extends DeleteTaxonBaseOperation {
         * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public DeleteSynonymOperation(String label, IUndoContext undoContext, TaxonBaseDeletionConfigurator configurator,
-                       Taxon taxon, Synonym synonym, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled,ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
-               super(label, undoContext, configurator, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
+                       Taxon taxon, Synonym synonym, IPostOperationEnabled postOperationEnabled,  ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+               super(label, undoContext, configurator, postOperationEnabled, cdmEntitySessionEnabled);
                this.synonym = synonym;
                this.element = taxon;
        }
index 997a5b45f86a0f3489b112a43383ae0f143e9886..fa585c7787a585afd6c27870a1942e7ed52665ef 100644 (file)
@@ -6,7 +6,6 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;\r
 import org.eclipse.core.runtime.IStatus;\r
 \r
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;\r
 import eu.etaxonomy.cdm.api.service.DeleteResult;\r
 import eu.etaxonomy.cdm.api.service.config.TaxonBaseDeletionConfigurator;\r
 import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;\r
@@ -22,9 +21,8 @@ public class DeleteTaxonBaseOperation extends AbstractPersistentPostOperation {
                IUndoContext undoContext,\r
                TaxonBaseDeletionConfigurator configurator,\r
                IPostOperationEnabled postOperationEnabled,\r
-               IConversationEnabled conversationEnabled,\r
                ICdmEntitySessionEnabled cdmEntitySessionEnabled) {\r
-               super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);\r
+               super(label, undoContext, postOperationEnabled, cdmEntitySessionEnabled);\r
                this.configurator = configurator;\r
 \r
        }\r
index 46a08b033a855bbbe570b355516559f4ca23c859..f486d35d8865a8c08c4c45f7f39eee1cdc27ddb3 100644 (file)
@@ -6,11 +6,12 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import java.util.ArrayList;
-import java.util.List;
+//=======
+//import java.util.UUID;
+//>>>>>>> Stashed changes
+import java.util.UUID;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -20,10 +21,12 @@ import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingSwapEnum;
+//=======
+//import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;
+//>>>>>>> Stashed changes
 import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.SynonymType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
@@ -40,13 +43,13 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class SwapSynonymAndAcceptedOperation extends AbstractPostTaxonOperation {
 
        private final Synonym synonym;
-       // TODO store the old relationship for undo reasons
-       private SynonymType synonymType;
-
-       private List<TaxonNode> nodes;
 
+       private SecReferenceHandlingSwapEnum secHandling;
        private boolean setNameInSource;
 
+       private UUID newSecAcc = null;
+       private UUID newSecSyn = null;
+
        /**
         * <p>Constructor for SwapSynonymAndAcceptedOperation.</p>
         *
@@ -58,12 +61,13 @@ public class SwapSynonymAndAcceptedOperation extends AbstractPostTaxonOperation
         */
        public SwapSynonymAndAcceptedOperation(String label, IUndoContext undoContext,
                        Taxon taxon, Synonym synonym, IPostOperationEnabled postOperationEnabled,
-                       ICdmEntitySessionEnabled cdmEntitySessionEnabled, boolean setNameInSource) {
+                       ICdmEntitySessionEnabled cdmEntitySessionEnabled, boolean setNameInSource, SecReferenceHandlingSwapEnum secHandling, UUID newSecAcc, UUID newSecSyn) {
                super(Messages.SwapSynonymAndAcceptedOperation_SWAP_SYN_ACC_TAXON, undoContext, taxon, postOperationEnabled, cdmEntitySessionEnabled);
                this.setNameInSource = setNameInSource;
+               this.secHandling = secHandling;
                this.synonym = synonym;
-               this.nodes = new ArrayList<TaxonNode>(taxon.getTaxonNodes());
-
+               this.newSecAcc = newSecAcc;
+               this.newSecSyn = newSecSyn;
        }
 
        @Override
@@ -71,11 +75,61 @@ public class SwapSynonymAndAcceptedOperation extends AbstractPostTaxonOperation
                        throws ExecutionException {
 
                monitor.worked(20);
-
-               UpdateResult result = CdmStore.getService(ITaxonService.class).swapSynonymAndAcceptedTaxon(synonym.getUuid(), element.getUuid(), setNameInSource);//TODO
-               element = (Taxon)result.getCdmEntity();
-               List<String> propertyPath = new ArrayList<>();
-               propertyPath.add("synonyms");
+/*<<<<<<< Updated upstream
+//             UpdateResult result = CdmStore.getService(ITaxonService.class).swapSynonymAndAcceptedTaxon(synonym.getUuid(), element.getUuid(), setNameInSource, false);//TODO
+               UpdateResult result = CdmStore.getService(ITaxonService.class).swapSynonymAndAcceptedTaxon(synonym.getUuid(), element.getUuid(), setNameInSource, false, secHandling, newSecAcc, newSecSyn);//TODO
+               //note: without reload a multiple representations exceptions appears, not yet tested why
+               Taxon newTaxon = (Taxon)CdmStore.getService(ITaxonService.class).load(result.getCdmEntity().getUuid());
+               Synonym newSyn = null;
+               for (CdmBase cdmBase : result.getUpdatedObjects()){
+                   if (cdmBase instanceof Synonym){
+                       newSyn = (Synonym)cdmBase;
+                   }
+               }
+
+               //for some reason simple cloning of the secundum source does not work if external links exist (throws exception because an OriginalSourceBase_id in an AuditTable (probably OriginalSourceBase_ExternalLink) becomes null)
+
+               //remember oldAcc secSource info
+               Reference oldAccRef = newTaxon.getSec();
+               String oldAccMicroRef = newTaxon.getSecMicroReference();
+               Set<ExternalLink> oldAccLinks = new HashSet<>();
+               if (newTaxon.getSecSource()!= null){
+                   for (ExternalLink link: newTaxon.getSecSource().getLinks()){
+                       oldAccLinks.add(link.clone());
+                   }
+               }
+
+               if (newSyn != null ){
+                   //adapt new taxon secSource info
+                   newTaxon.setSec(newSyn.getSec());
+                   newTaxon.setSecMicroReference(newSyn.getSecMicroReference());
+               if (newTaxon.getSecSource() != null){
+                   newTaxon.getSecSource().getLinks().clear();
+                   if (newSyn.getSecSource() != null){
+                       for (ExternalLink link: newSyn.getSecSource().getLinks()){
+                           newTaxon.getSecSource().addLink(link.clone());
+                       }
+                   }
+               }
+
+               //adapt new synonym secSource info
+               newSyn.setSec(oldAccRef);
+               newSyn.setSecMicroReference(oldAccMicroRef);
+               if (newSyn.getSecSource()!= null){
+                   newSyn.getSecSource().getLinks().clear();
+                   for (ExternalLink link: oldAccLinks){
+                       newSyn.getSecSource().addLink(link);
+                   }
+               }
+               }
+
+               List<TaxonBase> mergeList = new ArrayList<>();
+               mergeList.add(newTaxon);
+               mergeList.add(newSyn);
+               */
+//=======
+               UpdateResult result = CdmStore.getService(ITaxonService.class).swapSynonymAndAcceptedTaxon(synonym.getUuid(), element.getUuid(), setNameInSource, false, secHandling, newSecAcc, newSecSyn);//TODO
+//>>>>>>> Stashed changes
 
                monitor.worked(40);
 
@@ -85,7 +139,6 @@ public class SwapSynonymAndAcceptedOperation extends AbstractPostTaxonOperation
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
-               // TODO Auto-generated method stub
                return execute(monitor, info);
        }
 
index 2c47e9275ce21b7f46aca7de4fcd3a84bb530926..25f62c3364d869599e42f6ae98667b1c5d3c0cc9 100644 (file)
@@ -1,6 +1,6 @@
 package eu.etaxonomy.taxeditor.editor.validation;\r
 \r
-import org.apache.log4j.Logger;\r
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;\r
 import org.eclipse.core.runtime.IProgressMonitor;\r
 import org.eclipse.ui.IMemento;\r
 \r
@@ -19,7 +19,7 @@ import eu.etaxonomy.taxeditor.model.IContextListener;
 public class ValidationContextListener implements IContextListener {\r
 \r
        @SuppressWarnings("unused")\r
-       private static final Logger logger = Logger.getLogger(ValidationContextListener.class);\r
+       private static final Logger logger = LogManager.getLogger(ValidationContextListener.class);\r
 \r
        private ValidationDaemon daemon;\r
 \r
index 2cf683edf3432aad3ca1243b2be4df9e7eeee6a2..dca32752e280398c343f0449c26984dc98919291 100644 (file)
@@ -2,7 +2,7 @@ package eu.etaxonomy.taxeditor.editor.validation;
 \r
 import java.util.List;\r
 \r
-import org.apache.log4j.Logger;\r
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;\r
 import org.eclipse.core.runtime.IProgressMonitor;\r
 import org.eclipse.core.runtime.IStatus;\r
 import org.eclipse.core.runtime.Status;\r
@@ -23,7 +23,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */\r
 public class ValidationDaemon extends Job {\r
        @SuppressWarnings("unused")\r
-       private static final Logger logger = Logger.getLogger(ValidationDaemon.class);\r
+       private static final Logger logger = LogManager.getLogger(ValidationDaemon.class);\r
 \r
        private final IEntityValidationService entityValidationService;\r
 \r
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditorComparator.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditorComparator.java
deleted file mode 100755 (executable)
index 0cb6034..0000000
+++ /dev/null
@@ -1,67 +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.editor.view.checklist;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-
-/**
- * @author a.oppermann
- * @created 30.04.2014
- * @version 1.0
- */
-public class ChecklistEditorComparator extends ViewerComparator {
-
-       private int propertyIndex;
-       private static final int ASCENDING = 0;
-       private static final int DESCENDING = 1;
-       private int direction = ASCENDING;
-
-       public ChecklistEditorComparator() {
-               this.propertyIndex = 1;
-               direction = ASCENDING;
-       }
-
-       public void setColumn(int column) {
-               if (column == this.propertyIndex) {
-                       // Same column as last sort; toggle the direction
-                       direction = 1 - direction;
-               } else {
-                       // New column; do an ascending sort
-                       this.propertyIndex = column;
-                       direction = DESCENDING;
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-        */
-       @Override
-       public int compare(Viewer viewer, Object e1, Object e2) {
-         Taxon d1 = (Taxon) e1;
-         Taxon d2 = (Taxon) e2;
-
-               int result = 0;
-
-               switch (propertyIndex) {
-
-                       default:
-                               result = d1.getTitleCache().compareTo(d2.getTitleCache());
-               }
-
-               // If descending order, flip the direction
-               if (direction == DESCENDING) {
-                       result = -result;
-               }
-               return result;
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditorInput.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/ChecklistEditorInput.java
deleted file mode 100644 (file)
index 795b45d..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-/**
-* Copyright (C) 2013 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.editor.view.checklist;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
-
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPersistable;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- *
- * @author a.oppermann
- * @date 25.04.2014
- *
- */
-public class ChecklistEditorInput extends CdmEntitySessionInput implements IPersistable {
-
-    /**
-     * The selected classification
-     */
-    private TaxonNode taxonNode = null;
-
-    private List<TaxonBase> taxa = new ArrayList();
-
-    private Classification classification = null;
-
-    private final ConversationHolder conversation;
-
-    private List<TaxonBase> taxaToSave = new ArrayList();
-
-
-    /**
-     * Creates an editor input for the {@link ChecklistView} with the currently selected TaxonNode
-     * and its childNodes.
-     * @param taxonNode
-     */
-    public ChecklistEditorInput(TaxonNode taxonNode){
-        super(false);
-        this.conversation = CdmStore.createConversation();
-        initSession();
-        this.taxonNode =CdmStore.getService(ITaxonNodeService.class).load(taxonNode.getUuid(), getTaxonNodePropertyPaths());
-        getChildTaxa(taxonNode);
-        classification = taxonNode.getClassification();
-
-    }
-
-
-    /**
-     * @param taxonNode2
-     */
-    private void getChildTaxa(TaxonNode taxonNode2) {
-       taxonNode2.removeNullValueFromChildren();
-       if (taxonNode2.hasChildNodes()){
-           for (TaxonNode node: taxonNode2.getChildNodes()){
-                  node = CdmStore.getService(ITaxonNodeService.class).load(node.getUuid(), getTaxonNodePropertyPaths());
-               taxa.add(HibernateProxyHelper.deproxy(node.getTaxon(), Taxon.class));
-               getChildTaxa(node);
-           }
-       }
-
-
-    }
-
-    /**
-     * Creates an editor input for the {@link ChecklistView} with the currently selected classification.
-     * @param classificationUuid
-     */
-    public ChecklistEditorInput(Classification classification) {
-        super(true);
-        this.conversation = CdmStore.createConversation();
-        initSession();
-        this.classification = CdmStore.getCurrentApplicationConfiguration().getClassificationService().load(classification.getUuid());
-        getChildTaxa(classification.getRootNode());
-
-    }
-
-
-
-    public List<TaxonBase> getTaxa() {
-               return taxa;
-       }
-
-    public String getName() {
-        if(taxonNode != null && taxonNode.getTaxon()!=null){
-            return taxonNode.getTaxon().getName().getTitleCache();
-        }else{
-            return classification.getTitleCache();
-        }
-    }
-
-
-    /**
-     * @return the taxonNode
-     */
-    public TaxonNode getTaxonNode() {
-        return taxonNode;
-    }
-
-    /**
-     * @return classification
-     */
-    public Classification getClassification(){
-       return classification;
-    }
-
-//    /**
-//     * @return the conversationHolder
-//     */
-//    public ConversationHolder getConversationHolder() {
-//        return conversationHolder;
-//    }
-
-
-
-//    /* (non-Javadoc)
-//     * @see java.lang.Object#hashCode()
-//     */
-//    @Override
-//    public int hashCode() {
-//        final int prime = 31;
-//        int result = 1;
-//        result = prime * result + ((classification == null) ? 0 : classification.hashCode());
-//        result = prime * result + ((taxonNode == null) ? 0 : taxonNode.hashCode());
-//        return result;
-//    }
-
-    /* (non-Javadoc)
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj == null) {
-            return false;
-        }
-        if (getClass() != obj.getClass()) {
-            return false;
-        }
-        ChecklistEditorInput other = (ChecklistEditorInput) obj;
-        if (classification == null) {
-            if (other.classification != null) {
-                return false;
-            }
-        } else if (!classification.equals(other.classification)) {
-            return false;
-        }
-        if (taxonNode == null) {
-            if (other.taxonNode != null) {
-                return false;
-            }
-        } else if (!taxonNode.equals(other.taxonNode)) {
-            return false;
-        }
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento)
-     */
-    @Override
-    public void saveState(IMemento memento) {
-        UUID uuid = classification.getUuid();
-    }
-
-    @Override
-    public void merge() {
-        if (!getCdmEntitySession().isActive()){
-            getCdmEntitySession().bind();
-        }
-        CdmStore.getService(ITaxonService.class).merge(taxaToSave, true);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
-     */
-    @Override
-    public List<TaxonNode> getRootEntities() {
-        return Arrays.asList(taxonNode);
-    }
-
-    /**
-     * @return the conversation
-     */
-    public ConversationHolder getConversation() {
-        return conversation;
-    }
-
-    private List<String> getTaxonNodePropertyPaths() {
-        List<String> taxonNodePropertyPaths = new ArrayList<String>();
-        for(String propertyPath : getTaxonBasePropertyPaths()) {
-            taxonNodePropertyPaths.add("taxon." + propertyPath); //$NON-NLS-1$
-        }
-        return taxonNodePropertyPaths;
-    }
-
-    private List<String> getTaxonBasePropertyPaths() {
-        List<String> taxonBasePropertyPaths = Arrays.asList(new String[] {
-                "sec", //$NON-NLS-1$
-                "rights", //$NON-NLS-1$
-                "sources", //$NON-NLS-1$
-                "descriptions", //$NON-NLS-1$
-                "descriptions.descriptionElements.feature", //$NON-NLS-1$
-                "descriptions.descriptionElements.area", //$NON-NLS-1$
-                "descriptions.descriptionElements.status", //$NON-NLS-1$
-                "descriptions.markers", //$NON-NLS-1$
-
-        });
-
-        return taxonBasePropertyPaths;
-    }
-
-
-       public void setTaxa(List<TaxonBase> taxonList) {
-               this.taxa = taxonList;
-
-       }
-
-
-    /**
-     * @param element
-     */
-    public void addTaxonToSave(Taxon element) {
-        this.taxaToSave.add(element);
-
-    }
-
-//    @Override
-//    public void dispose(){
-//     conversation.unbind();
-//     conversation.close();
-//     getCdmEntitySession().dispose();
-//     super.dispose();
-//    }
-
-}
index 7b7f949883d2e67571284e74d2f66f76971affad..e67d890b9c35a144a65fda337985bf097616a2d5 100755 (executable)
@@ -11,13 +11,11 @@ package eu.etaxonomy.taxeditor.editor.view.checklist.e4;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.inject.Inject;
-
-import org.eclipse.e4.core.services.events.IEventBroker;
 import org.eclipse.nebula.widgets.nattable.data.IColumnPropertyAccessor;
 
 import eu.etaxonomy.cdm.api.service.dto.TaxonDistributionDTO;
@@ -26,29 +24,25 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
 import eu.etaxonomy.cdm.model.description.Distribution;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.cdm.model.metadata.DistributionDescription;
 import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
-
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
  * @author k.luther
  * @since 28.11.2018
- *
  */
 public class DistributionColumnAccessor implements IColumnPropertyAccessor<TaxonDistributionDTO> {
-    private DistributionEditor editor;
+
     public static final String DEFAULT_ENTRY = "";
-    @Inject
-    private IEventBroker eventBroker;
+
+    private DistributionEditor editor;
 
     public DistributionColumnAccessor(DistributionEditor editor) {
         this.editor = editor;
     }
 
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Object getDataValue(TaxonDistributionDTO rowObject, int columnIndex) {
 //     editor.setActualNameCache(rowObject.getNameCache());
@@ -92,35 +86,21 @@ public class DistributionColumnAccessor implements IColumnPropertyAccessor<Taxon
 
     }
 
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public int getColumnCount() {
         return editor.getPropertyToLabelMap().size();
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public String getColumnProperty(int columnIndex) {
         return editor.getPropertyToLabelMap().get(columnIndex);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public int getColumnIndex(String propertyName){
         return editor.getPropertyToLabelMap().indexOf(propertyName);
     }
 
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void setDataValue(TaxonDistributionDTO taxonWrapper, int columnIndex, Object newValue) {
         if (newValue instanceof StatusHelper){
@@ -152,18 +132,37 @@ public class DistributionColumnAccessor implements IColumnPropertyAccessor<Taxon
                     }
                     dist = Distribution.NewInstance(area, ((StatusHelper)newValue).term);
                     Set<TaxonDescription> descs = taxonWrapper.getDescriptionsWrapper().getDescriptions();
-                    TaxonDescription desc;
+                    TaxonDescription desc = null;
                     if (descs.size() >= 1){
-                        desc = descs.iterator().next();
+                        Iterator<TaxonDescription> itDesc = descs.iterator();
+                        while(itDesc.hasNext()) {
+                            TaxonDescription next = itDesc.next();
+                            if (next.isDefault()) {
+                                desc = next;
+                                break;
+                            }
+                        }
+
+                        if (desc == null) {
+                            if (PreferencesUtil.getDescriptionForChecklistEditor().equals(DistributionDescription.AlwaysDefault)){
+                                desc = TaxonDescription.NewInstance();
+                                desc.setDefault(true);
+                                taxonWrapper.getDescriptionsWrapper().getDescriptions().add(desc);
+                            }else {
+                                desc = descs.iterator().next();
+                            }
+                        }
                     }else {
                         desc = TaxonDescription.NewInstance();
+                        desc.setDefault(true);
+
                         taxonWrapper.getDescriptionsWrapper().getDescriptions().add(desc);
                     }
                     if (editor.getDefaultSource() != null){
                       dist.addSource(DescriptionElementSource.NewPrimarySourceInstance(editor.getDefaultSource(), null));
                     }
                     desc.addElement(dist);
-                    if(desc.isPersited()){
+                    if(desc.isPersisted()){
                         editor.part.getCdmEntitySession().load(desc, true);
                     }
                     distributions.add(dist);
@@ -176,7 +175,5 @@ public class DistributionColumnAccessor implements IColumnPropertyAccessor<Taxon
             }
 
             EventUtility.postEvent(WorkbenchEventConstants.REFRESH_DETAILS, true);
-
     }
-
-}
+}
\ No newline at end of file
index 0754fe5f0b7a531e094ae15421a1c8d03a13f451..00118a0e66075b7b1d9356aee6d4603d36b697cc 100755 (executable)
@@ -19,12 +19,11 @@ import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
 import java.util.UUID;
-
-import javax.inject.Inject;
+import java.util.stream.Collectors;
 
 import org.apache.commons.collections4.map.LinkedMap;
-import org.apache.log4j.Logger;
-import org.eclipse.e4.ui.services.EMenuService;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.jface.wizard.WizardDialog;
@@ -73,9 +72,15 @@ import org.eclipse.swt.widgets.Text;
 
 import ca.odell.glazedlists.BasicEventList;
 import ca.odell.glazedlists.EventList;
-import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.api.service.ITermCollectionService;
+import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.dto.TaxonDescriptionDTO;
 import eu.etaxonomy.cdm.api.service.dto.TaxonDistributionDTO;
+import eu.etaxonomy.cdm.compare.term.OrderedTermComparator;
+import eu.etaxonomy.cdm.compare.term.TermIdInVocabularyComparator;
+import eu.etaxonomy.cdm.compare.term.TermLanguageComparator;
+import eu.etaxonomy.cdm.compare.term.TermSymbol1Comparator;
+import eu.etaxonomy.cdm.compare.term.TermSymbol2Comparator;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Distribution;
@@ -85,14 +90,11 @@ import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.TermOrder;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
-import eu.etaxonomy.cdm.model.term.OrderedTermBase;
-import eu.etaxonomy.cdm.model.term.OrderedTermComparator;
 import eu.etaxonomy.cdm.model.term.Representation;
-import eu.etaxonomy.cdm.model.term.TermIdInVocabularyComparator;
-import eu.etaxonomy.cdm.model.term.TermLanguageComparator;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.taxeditor.editor.IDistributionEditor;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -101,16 +103,16 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.preference.wizard.AvailableDistributionWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.ReferenceSelectionDialog;
 
 /**
  * @author k.luther
  * @since 27.11.2018
- *
  */
-public class DistributionEditor extends Composite implements IDistributionEditor{
+public class DistributionEditor extends Composite implements IDistributionEditor {
 
+    @SuppressWarnings("unused")
+    private static final Logger logger = LogManager.getLogger();
 
     private static final String DISTRIBUTION_EDITOR = "Distribution Editor"; //$NON-NLS-1$
     private static final String LOADING_TAXA = Messages.ChecklistEditor_LOAD_TAXA;
@@ -122,52 +124,38 @@ public class DistributionEditor extends Composite implements IDistributionEditor
     static final String RANK_COLUMN = "collector_column";//$NON-NLS-1$
     static final String SYNONYM_COLUMN = "synonym_column";//$NON-NLS-1$
 
-    private static final Logger logger = Logger.getLogger(DistributionEditor.class);
-    @Inject
-    private EMenuService menuService;
     private NatTable natTable;
     private Label statusLabel;
     private Label statusLabelSourceReference;
     private Reference defaultSource;
 
-    private Map<Integer, NamedArea> areaToColumnIndexMap= new HashMap();
+    private Map<Integer, NamedArea> areaToColumnIndexMap = new HashMap<>();
     private int firstDataColumnIndex;
 
     private ListDataProvider<TaxonDistributionDTO> bodyDataProvider;
     private LinkedMap<String, String> propertyToLabelMap = new LinkedMap<>();
 
     private boolean isShowRank = false;
-    private Integer countNodes;
     private Text searchText;
 
-    Button button3;
-    Button button2;
-
-    EventList<TaxonDistributionDTO> taxonList;
-    String actualNameCache = null;
-    Map<UUID,Map<NamedArea,Set<DescriptionElementBase>>> taxonDistributionMap = new HashMap<>();
+    private Button button3;
+    private Button button2;
 
-    List<TaxonDistributionDTO> descriptionsToSave = new ArrayList<>();
+    protected EventList<TaxonDistributionDTO> taxonList;
+    private String actualNameCache;
+    protected Map<UUID, Map<NamedArea, Set<DescriptionElementBase>>> taxonDistributionMap = new HashMap<>();
 
+    protected List<TaxonDistributionDTO> descriptionsToSave = new ArrayList<>();
 
-    SortedSet<DefinedTermBase> areas;
-    DistributionEditorPart part;
-    BodyLayerStack<TaxonDistributionDTO> bodyLayerStack;
+    protected SortedSet<NamedArea> areas;
+    protected DistributionEditorPart part;
+    private BodyLayerStack<TaxonDistributionDTO> bodyLayerStack;
     private FreezeLayer freezeLayer;
     private ConfigRegistry configRegistry;
     private AbstractLayer topMostLayer;
 
     private SelectionLayer selectionLayer;
 
-
-
- //  private FixedSummaryRowLayer summaryRowLayer;
-
-
-    /**
-     * @param parent
-     * @param style
-     */
     public DistributionEditor(Composite parent, DistributionEditorPart part) {
         super(parent, SWT.NULL);
         isShowRank = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowRankInDistributionEditor.getKey());
@@ -178,8 +166,6 @@ public class DistributionEditor extends Composite implements IDistributionEditor
         Composite topComposite = new Composite(parent, SWT.NONE);
         createTopComposite(topComposite);
 
-
-
         natTable = new NatTable(parent, false);
         parent.pack();
 
@@ -225,12 +211,10 @@ public class DistributionEditor extends Composite implements IDistributionEditor
         return areaToColumnIndexMap;
     }
 
-
     public void setAreaToColumnIndexMap(Map<Integer, NamedArea> areaToColumnIndexMap) {
         this.areaToColumnIndexMap = areaToColumnIndexMap;
     }
 
-
     public List<TaxonDistributionDTO> getDescriptionsToSave() {
         return descriptionsToSave;
     }
@@ -239,8 +223,6 @@ public class DistributionEditor extends Composite implements IDistributionEditor
         this.descriptionsToSave = descriptionsToSave;
     }
 
-
-
     private void createStatusBar(Composite composite) {
         GridData gridData = new GridData();
         gridData.horizontalSpan = 2;
@@ -251,7 +233,6 @@ public class DistributionEditor extends Composite implements IDistributionEditor
         composite.setLayoutData(gridData);
         composite.setLayout(gridLayout);
 
-
         gridData = new GridData();
         gridData.horizontalSpan = 1;
         gridData.grabExcessHorizontalSpace = true;
@@ -265,17 +246,18 @@ public class DistributionEditor extends Composite implements IDistributionEditor
 
         statusLabelSourceReference.setLayoutData(gridData);
 
-        if (defaultSource != null){
-            statusLabelSourceReference.setText(Messages.DistributionEditor_defaultSource + defaultSource.getAbbrevTitle() != null? defaultSource.getAbbrevTitle() : defaultSource.getAbbrevTitleCache());
-
+        if (defaultSource != null) {
+            statusLabelSourceReference.setText(Messages.DistributionEditor_defaultSource
+                    + (defaultSource.getAbbrevTitle() != null ? defaultSource.getAbbrevTitle()
+                            : defaultSource.getAbbrevTitleCache()));
         }
 
-        button3 = new Button(composite, SWT.PUSH );
+        button3 = new Button(composite, SWT.PUSH);
         button3.setEnabled(false);
         GridData gridData3 = new GridData();
         gridData3.horizontalAlignment = SWT.RIGHT;
         button3.setLayoutData(gridData3);
-        //button3.setText(Messages.ChecklistEditor_REMOVE_DEFAULT_SOURCE);
+        // button3.setText(Messages.ChecklistEditor_REMOVE_DEFAULT_SOURCE);
         button3.setImage(ImageResources.getImage(ImageResources.TRASH_ICON));
         button3.setToolTipText(Messages.ChecklistEditor_REMOVE_DEFAULT_SOURCE_TOOLTIP);
         button3.addSelectionListener(new SelectionAdapter() {
@@ -284,46 +266,42 @@ public class DistributionEditor extends Composite implements IDistributionEditor
             public void widgetSelected(SelectionEvent event) {
                 defaultSource = null;
 
-                String defaultSourceStr = (defaultSource == null) ? "" : Messages.DistributionEditor_defaultSource + defaultSource.getTitleCache(); //$NON-NLS-1$
-                if (defaultSourceStr.length()> 100){
+                String defaultSourceStr = (defaultSource == null) ? "" //$NON-NLS-1$
+                        : Messages.DistributionEditor_defaultSource + defaultSource.getTitleCache();
+                if (defaultSourceStr.length() > 100) {
                     defaultSourceStr = defaultSourceStr.substring(0, 98) + "..."; //$NON-NLS-1$
                 }
                 statusLabelSourceReference.setText(defaultSourceStr);
 
-                button3.setBackground(EditorUtil.getColor(Resources.COLOR_CONTROL_SELECTED));
+                button3.setBackground(AbstractUtility.getColor(Resources.COLOR_CONTROL_SELECTED));
                 button3.setEnabled(false);
                 button2.setText(Messages.ChecklistEditor_DEFAULT_SOURCE);
             }
 
         });
-
     }
 
-    private void applyStyles(){
+    private void applyStyles() {
         CdmModernNatTableThemeConfiguration configuration = new CdmModernNatTableThemeConfiguration();
 
-//        configuration.summaryRowHAlign = HorizontalAlignmentEnum.CENTER;
+        // configuration.summaryRowHAlign = HorizontalAlignmentEnum.CENTER;
         // NOTE: Getting the colors and fonts from the GUIHelper ensures that
         // they are disposed properly (required by SWT)
         configuration.cHeaderBgColor = GUIHelper.getColor(211, 211, 211);
         configuration.rHeaderBgColor = GUIHelper.getColor(211, 211, 211);
         natTable.addConfiguration(configuration);
-
     }
 
-    private void configureNatTable(ConfigRegistry configRegistry,
-            AbstractLayer topMostLayer) {
+    private void configureNatTable(ConfigRegistry configRegistry, AbstractLayer topMostLayer) {
         /**
          * CONFIGURATION
          */
         natTable.setConfigRegistry(configRegistry);
 
-
-
-        //add default configuration because autoconfigure is set to false in constructor
+        // add default configuration because autoconfigure is set to false in
+        // constructor
         natTable.addConfiguration(new DefaultNatTableStyleConfiguration());
 
-
         natTable.addConfiguration(new DefaultColumnHeaderStyleConfiguration() {
             {
                 TextPainter painter = new TextPainter();
@@ -334,7 +312,7 @@ public class DistributionEditor extends Composite implements IDistributionEditor
 
             }
         });
-//        applyStyles();
+        // applyStyles();
         // override the default sort configuration and change the mouse bindings
         // to sort on a single click
 
@@ -345,25 +323,24 @@ public class DistributionEditor extends Composite implements IDistributionEditor
         // with hide/show actions
         natTable.addConfiguration(new DistributionEditorHeaderMenuConfiguration(natTable));
 
-        // add custom configuration for data conversion and add column labels to viewport layer
+        // add custom configuration for data conversion and add column labels to
+        // viewport layer
         topMostLayer.addConfiguration(new DistributionCellEditorDataConversionConfiguration(this));
 
-
         applyStyles();
         natTable.configure();
     }
 
-    public void createTable(){
+    public void createTable() {
         /**
          * layers
          */
-
         createLayers();
 
         /**
          * configuration
          */
-        configureNatTable( configRegistry, topMostLayer);
+        configureNatTable(configRegistry, topMostLayer);
 
         /**
          * handlers and listeners
@@ -372,32 +349,31 @@ public class DistributionEditor extends Composite implements IDistributionEditor
         FreezeHelper.freeze(freezeLayer, bodyLayerStack.getViewPortLayer(),
                 new PositionCoordinate(bodyLayerStack.getViewPortLayer(), 0, 0),
                 new PositionCoordinate(bodyLayerStack.getViewPortLayer(), 0, -1));
-        //grab all space
+        // grab all space
         GridDataFactory.fillDefaults().grab(true, true).applyTo(natTable);
 
         this.layout();
         natTable.doCommand(new ClientAreaResizeCommand(natTable));
-      //  boolean ok = natTable.doCommand(new ClientAreaResizeCommand(natTable));
-
+        // boolean ok = natTable.doCommand(new
+        // ClientAreaResizeCommand(natTable));
     }
 
-
     private void createLayers() {
 
         DistributionColumnAccessor columnPropertyAccessor = new DistributionColumnAccessor(this);
-
         DistributionEditorConfigLabelAccumulator labelAccumulator = new DistributionEditorConfigLabelAccumulator(this);
-        bodyLayerStack = new BodyLayerStack<>(taxonList, columnPropertyAccessor, new TaxonDistributionDtoComparator(), labelAccumulator);
 
+        // bodyLayerStack = new BodyLayerStack<>(taxonList,
+        // columnPropertyAccessor, new TaxonDistributionDtoComparator(),
+        // labelAccumulator);
+        bodyLayerStack = new BodyLayerStack<>(taxonList, columnPropertyAccessor, null, labelAccumulator);
         bodyDataProvider = bodyLayerStack.getBodyDataProvider();
 
-
-
         propertyToLabelMap.put(TAXON_COLUMN, Messages.ChecklistEditor_TAXON);
-        if (isShowRank){
+        if (isShowRank) {
             propertyToLabelMap.put(RANK_COLUMN, Messages.ChecklistEditor_RANK);
             propertyToLabelMap.put(SYNONYM_COLUMN, Messages.ChecklistEditor_SYNONYMS);
-        }else{
+        } else {
             propertyToLabelMap.put(SYNONYM_COLUMN, Messages.ChecklistEditor_SYNONYMS);
         }
         configRegistry = new ConfigRegistry();
@@ -405,104 +381,68 @@ public class DistributionEditor extends Composite implements IDistributionEditor
         initLabels();
         this.selectionLayer = bodyLayerStack.getSelectionLayer();
 
-
-
         freezeLayer = new FreezeLayer(selectionLayer);
-        final CompositeFreezeLayer compositeFreezeLayer = new CompositeFreezeLayer(
-                freezeLayer,  bodyLayerStack.getViewPortLayer(), selectionLayer);
+        final CompositeFreezeLayer compositeFreezeLayer = new CompositeFreezeLayer(freezeLayer,
+                bodyLayerStack.getViewPortLayer(), selectionLayer);
 
         // as the selection mouse bindings are registered for the region label
         // GridRegion.BODY
-        // we need to set that region label to the viewport so the selection via mouse
+        // we need to set that region label to the viewport so the selection via
+        // mouse
         // is working correctly
         compositeFreezeLayer.setRegionName(GridRegion.BODY);
 
-
-        IDataProvider columnHeaderDataProvider =
-                new DefaultColumnHeaderDataProvider(propertyToLabelMap.values().toArray(new String[] {}), propertyToLabelMap);
+        IDataProvider columnHeaderDataProvider = new DefaultColumnHeaderDataProvider(
+                propertyToLabelMap.values().toArray(new String[] {}), propertyToLabelMap);
         DataLayer columnHeaderDataLayer = new DefaultColumnHeaderDataLayer(columnHeaderDataProvider);
-        ILayer columnHeaderLayer = new ColumnHeaderLayer(
-            columnHeaderDataLayer,
-            compositeFreezeLayer,
-            selectionLayer);
-
-        FilterRowHeaderComposite<TaxonDistributionDTO> filterRowHeaderLayer =
-                new FilterRowHeaderComposite<>(
-                        new DefaultGlazedListsFilterStrategy<>(
-                                bodyLayerStack.getFilterList(),
-                                columnPropertyAccessor,
-                                configRegistry),
-                        columnHeaderLayer,
-                        columnHeaderDataLayer.getDataProvider(),
-                        configRegistry);
+        ILayer columnHeaderLayer = new ColumnHeaderLayer(columnHeaderDataLayer, compositeFreezeLayer, selectionLayer);
 
+        FilterRowHeaderComposite<TaxonDistributionDTO> filterRowHeaderLayer = new FilterRowHeaderComposite<>(
+                new DefaultGlazedListsFilterStrategy<>(bodyLayerStack.getFilterList(), columnPropertyAccessor,
+                        configRegistry),
+                columnHeaderLayer, columnHeaderDataLayer.getDataProvider(), configRegistry);
 
-
-     // build the row header layer stack
+        // build the row header layer stack
         IDataProvider rowHeaderDataProvider = new DefaultRowHeaderDataProvider(bodyDataProvider);
         DataLayer rowHeaderDataLayer = new DefaultRowHeaderDataLayer(rowHeaderDataProvider);
-        ILayer rowHeaderLayer = new RowHeaderLayer(
-            rowHeaderDataLayer,
-            compositeFreezeLayer,
-            selectionLayer);
-
-
+        ILayer rowHeaderLayer = new RowHeaderLayer(rowHeaderDataLayer, compositeFreezeLayer, selectionLayer);
 
-        IDataProvider cornerDataProvider =
-                new DefaultCornerDataProvider(
-                    columnHeaderDataProvider,
-                    rowHeaderDataProvider);
+        IDataProvider cornerDataProvider = new DefaultCornerDataProvider(columnHeaderDataProvider,
+                rowHeaderDataProvider);
         DataLayer cornerDataLayer = new DataLayer(cornerDataProvider);
-        ILayer cornerLayer = new CornerLayer(
-            cornerDataLayer,
-            rowHeaderLayer,
-            filterRowHeaderLayer);
+        ILayer cornerLayer = new CornerLayer(cornerDataLayer, rowHeaderLayer, filterRowHeaderLayer);
 
-        GridLayer gridLayer = new GridLayer(
-                compositeFreezeLayer,
-                filterRowHeaderLayer,
-                rowHeaderLayer,
-                cornerLayer);
+        GridLayer gridLayer = new GridLayer(compositeFreezeLayer, filterRowHeaderLayer, rowHeaderLayer, cornerLayer);
 
         natTable.setLayer(gridLayer);
-
-
         topMostLayer = compositeFreezeLayer;
-
-
     }
 
-    /**
-     * @param parent
-     * @return
-     */
     private Text createSearchBar(Composite parent) {
 
-        Button button1 = new Button(parent, SWT.PUSH );
+        Button button1 = new Button(parent, SWT.PUSH);
         GridData gridData2 = new GridData();
         gridData2.horizontalSpan = 1;
         gridData2.horizontalAlignment = SWT.RIGHT;
 
         button1.setLayoutData(gridData2);
 
-
         button1.setText(Messages.ChecklistEditor_DIST_STATUS);
         button1.setToolTipText(Messages.ChecklistEditor_DIST_STATUS_TOOLTIP);
         button1.addSelectionListener(new SelectionAdapter() {
             @Override
             public void widgetSelected(SelectionEvent event) {
                 AvailableDistributionWizard availableDistributionWizard = new AvailableDistributionWizard();
-                WizardDialog dialog = new WizardDialog(StoreUtil.getShell(),
-                        availableDistributionWizard);
+                WizardDialog dialog = new WizardDialog(AbstractUtility.getShell(), availableDistributionWizard);
 
                 int open = dialog.open();
-                if(open == 0){
+                if (open == 0) {
                     reload();
                 }
             }
         });
 
-        button2 = new Button(parent, SWT.PUSH );
+        button2 = new Button(parent, SWT.PUSH);
         GridData gridData3 = new GridData();
         gridData3.horizontalAlignment = SWT.RIGHT;
 
@@ -516,46 +456,42 @@ public class DistributionEditor extends Composite implements IDistributionEditor
             public void widgetSelected(SelectionEvent event) {
                 defaultSource = ReferenceSelectionDialog.select(AbstractUtility.getShell(), null);
 
-                String defaultSourceStr = (defaultSource == null) ? "" : Messages.DistributionEditor_defaultSource + defaultSource.getTitleCache(); //$NON-NLS-1$
-                if (defaultSourceStr.length()> 100){
+                String defaultSourceStr = (defaultSource == null) ? "" //$NON-NLS-1$
+                        : Messages.DistributionEditor_defaultSource + defaultSource.getTitleCache();
+                if (defaultSourceStr.length() > 100) {
                     defaultSourceStr = defaultSourceStr.substring(0, 98) + "..."; //$NON-NLS-1$
                 }
                 statusLabelSourceReference.setText(defaultSourceStr);
 
-                button2.setBackground(EditorUtil.getColor(Resources.COLOR_CONTROL_SELECTED));
-//                EventUtility.postEvent(WorkbenchEventConstants.REFRESH_DETAILS, true);
+                button2.setBackground(AbstractUtility.getColor(Resources.COLOR_CONTROL_SELECTED));
+                // EventUtility.postEvent(WorkbenchEventConstants.REFRESH_DETAILS,
+                // true);
                 button3.setEnabled(true);
                 button2.setText(Messages.ChecklistEditor_SWITCH_DEFAULT_SOURCE);
             }
-
         });
 
-
-
-
-
         parent.pack();
         return searchText;
     }
-    /**
-    * This method should only be called for adding new Distribution columns and reloading the table.<br>
-    * It will hide the old distribution column and load the newly added columns.<br>
-    * <p>
-    * <b>Notice:</b> for data update please use <b>refresh()</b>
-    *
-    */
-   @SuppressWarnings({ "unchecked", "rawtypes" })
-   public void reload(){
-       this.areaToColumnIndexMap.clear();
-       this.areas.clear();
-       this.propertyToLabelMap.clear();
-       createTable();
-       natTable.redraw();
-    }
 
     /**
-     * @param parent
+     * This method should only be called for adding new Distribution columns and
+     * reloading the table.<br>
+     * It will hide the old distribution column and load the newly added
+     * columns.<br>
+     * <p>
+     * <b>Notice:</b> for data update please use <b>refresh()</b>
+     *
      */
+    public void reload() {
+        this.areaToColumnIndexMap.clear();
+        this.areas.clear();
+        this.propertyToLabelMap.clear();
+        createTable();
+        natTable.redraw();
+    }
+
     private void createTopComposite(Composite parent) {
         GridLayout gridLayout = new GridLayout(3, false);
         gridLayout.marginWidth = 0;
@@ -568,228 +504,238 @@ public class DistributionEditor extends Composite implements IDistributionEditor
         parent.setLayout(gridLayout);
         searchText = createSearchBar(parent);
 
-
     }
+
     public void loadDistributions(List<TaxonDistributionDTO> taxonList) {
-        if (this.taxonList == null){
+        if (this.taxonList == null) {
             this.taxonList = new BasicEventList<>();
         }
-       taxonList.stream().forEach(wrapper->DistributionEditor.this.taxonList.add(wrapper));
-       statusLabel.setText(ELEMENT_COUNT + (taxonList != null ? taxonList.size() : UNKNOWN));
-       createTaxonDistributionMap();
+        taxonList.stream().forEach(wrapper -> DistributionEditor.this.taxonList.add(wrapper));
+        statusLabel.setText(ELEMENT_COUNT + taxonList.size());
+        createTaxonDistributionMap();
     }
 
     protected void createTaxonDistributionMap() {
         Iterator<TaxonDistributionDTO> iterator = this.taxonList.iterator();
-           while (iterator.hasNext()){
-               TaxonDistributionDTO dto = iterator.next();
-               TaxonDescriptionDTO descriptionDto = dto.getDescriptionsWrapper();
-               for (TaxonDescription desc: descriptionDto.getDescriptions()){
-                   if(this.part.getCdmEntitySession()!=null){
-                       this.part.getCdmEntitySession().load(desc, true);
-                   }
-                   for (DescriptionElementBase descElement: desc.getElements()){
-                       if (descElement instanceof Distribution){
-                           Map<NamedArea, Set<DescriptionElementBase>> distributionsMap = taxonDistributionMap.get(dto.getTaxonUuid());
-
-                           if (distributionsMap == null){
-                               distributionsMap = new HashMap();
-                               taxonDistributionMap.put(dto.getTaxonUuid(), distributionsMap);
-                           }
-                           Set<DescriptionElementBase> distributions = distributionsMap.get(((Distribution) descElement).getArea());
-                           if (distributions == null){
-                               distributions = new HashSet();
-                               distributionsMap.put(((Distribution)descElement).getArea(), distributions);
-                           }
-                           distributions.add(descElement);
-
-                       }
-                   }
-               }
-           }
+        while (iterator.hasNext()) {
+            TaxonDistributionDTO dto = iterator.next();
+            TaxonDescriptionDTO descriptionDto = dto.getDescriptionsWrapper();
+            for (TaxonDescription desc : descriptionDto.getDescriptions()) {
+                if (this.part.getCdmEntitySession() != null) {
+                    this.part.getCdmEntitySession().load(desc, true);
+                }
+                for (DescriptionElementBase descElement : desc.getElements()) {
+                    if (descElement instanceof Distribution) {
+                        Map<NamedArea, Set<DescriptionElementBase>> distributionsMap = taxonDistributionMap
+                                .get(dto.getTaxonUuid());
+
+                        if (distributionsMap == null) {
+                            distributionsMap = new HashMap<>();
+                            taxonDistributionMap.put(dto.getTaxonUuid(), distributionsMap);
+                        }
+                        Set<DescriptionElementBase> distributions = distributionsMap
+                                .get(((Distribution) descElement).getArea());
+                        if (distributions == null) {
+                            distributions = new HashSet<>();
+                            distributionsMap.put(((Distribution) descElement).getArea(), distributions);
+                        }
+                        distributions.add(descElement);
+                    }
+                }
+            }
+        }
     }
 
-
-
-
-
     private void initLabels() {
 
         int index = 2;
-        if (isShowRank){
+        if (isShowRank) {
             index++;
         }
 
         loadNamedAreas();
-        if (areas == null){
+        if (areas == null) {
             areas = new TreeSet<>();
         }
-        for (DefinedTermBase area: areas) {
-            this.areaToColumnIndexMap.put(index++, (NamedArea)area);
+        for (DefinedTermBase<?> area : areas) {
+            this.areaToColumnIndexMap.put(index++, (NamedArea) area);
             String areaLabel;
-            //TODO: adapt to preference
+            // TODO: adapt to preference
             Representation rep = area.getPreferredRepresentation(CdmStore.getDefaultLanguage());
             String label = rep.getLabel();
-            if (label == null){
+            if (label == null) {
                 label = area.getTitleCache();
             }
-            if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
-                if (area.getIdInVocabulary() != null){
+            if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()) {
+                if (area.getIdInVocabulary() != null) {
                     areaLabel = area.getIdInVocabulary();
-                } else{
+                } else {
                     areaLabel = label;
                 }
-            }else if (PreferencesUtil.isShowSymbol1InChecklistEditor()){
-                if (area.getSymbol() != null){
+            } else if (PreferencesUtil.isShowSymbol1InChecklistEditor()) {
+                if (area.getSymbol() != null) {
                     areaLabel = area.getSymbol();
-                } else{
+                } else {
                     areaLabel = label;
                 }
-            }else if (PreferencesUtil.isShowSymbol2InChecklistEditor()){
-                if (area.getSymbol2() != null){
+            } else if (PreferencesUtil.isShowSymbol2InChecklistEditor()) {
+                if (area.getSymbol2() != null) {
                     areaLabel = area.getSymbol2();
-                } else{
+                } else {
                     areaLabel = label;
                 }
-            }else{
+            } else {
                 areaLabel = label;
             }
 
-
-            //String areaLabel = area.getLabel();
+            // String areaLabel = area.getLabel();
             String property = area.getUuid().toString();
             propertyToLabelMap.put(property, areaLabel);
         }
-
     }
 
-    private SortedSet<DefinedTermBase> loadNamedAreas() {
-        //IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
+    private SortedSet<NamedArea> loadNamedAreas() {
+        // IPreferenceStore preferenceStore =
+        // PreferencesUtil.getPreferenceStore();
 
-        String valuesAreas = PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionAreaTerms.getKey(), true);
-        String values = PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey());
-        Set<UUID> uuidList = new HashSet<UUID>();
+        String valuesAreas = PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionAreaTerms.getKey(),
+                true);
+        String values = PreferencesUtil
+                .getStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey());
+        List<UUID> uuidList = new ArrayList<UUID>();
         String[] split;
         List<String> listValue;
-        List<DefinedTermBase> termlist = new ArrayList<DefinedTermBase>();
+        List<NamedArea> termlist = new ArrayList<>();
         if (values != null && values != "") { //$NON-NLS-1$
             split = values.split(";"); //$NON-NLS-1$
             listValue = Arrays.asList(split);
 
-
             UUID uuid;
-            for(String s : listValue){
+            for (String s : listValue) {
                 uuid = UUID.fromString(s);
                 uuidList.add(uuid);
-
             }
         }
 
-        List<TermVocabulary> vocs = new ArrayList<>();
-        IVocabularyService service =  CdmStore.getService(IVocabularyService.class);
-        if (uuidList.isEmpty()){
-            List<TermVocabulary<DefinedTermBase>> vocList = CdmStore.getService(IVocabularyService.class).findByTermType(TermType.NamedArea, null);
+        List<TermCollectionDto> vocs = new ArrayList<>();
+        ITermCollectionService service = CdmStore.getService(ITermCollectionService.class);
+        if (uuidList.isEmpty()) {
+            List<TermCollectionDto> vocList = service.findCollectionDtoByTermType(TermType.NamedArea);
             vocs.addAll(vocList);
-        }else{
-            vocs= service.find(uuidList);
+        } else {
+            vocs = service.findTermCollectionDtoByUuids(uuidList);
         }
-        for (TermVocabulary voc: vocs){
-            termlist.addAll(service.getTerms(voc, null, null, null, null).getRecords());
+        Set<UUID> termUuids = new HashSet<UUID>();
+
+        ITermService termService = CdmStore.getService(ITermService.class);
+        for (TermCollectionDto voc : vocs) {
+            termUuids.addAll(voc.getTerms().stream().map(TermDto::getUuid).collect(Collectors.toList()));
         }
-        List<DefinedTermBase> filteredList = new ArrayList();
+        termlist.addAll((List) termService.find(termUuids));
+        List<NamedArea> filteredList = new ArrayList<>();
         if (valuesAreas != null && valuesAreas != "") {
             split = valuesAreas.split(";"); //$NON-NLS-1$
             listValue = Arrays.asList(split);
 
-            for (DefinedTermBase area: termlist){
+            for (NamedArea area : termlist) {
                 if (listValue.contains(area.getUuid().toString())) {
                     filteredList.add(area);
                 }
-
             }
-        }else{
+        } else {
             filteredList.addAll(termlist);
         }
 
-
         TermOrder sortOrder = PreferencesUtil.getSortNamedAreasInDistributionEditor();
-        if (sortOrder.equals(TermOrder.Natural)){
-            areas =  getTermsOrderedByVocabularyOrder(filteredList);
-        } else if (sortOrder.equals(TermOrder.IdInVoc)){
+        if (sortOrder.equals(TermOrder.Natural)) {
+            areas = getTermsOrderedByVocabularyOrder(filteredList);
+        } else if (sortOrder.equals(TermOrder.IdInVoc)) {
             areas = getTermsOrderedByIdInVocabulary(filteredList);
-        }else{
-            areas =  getTermsOrderedByLabels(filteredList, CdmStore.getDefaultLanguage());
+        } else {
+            areas = getTermsOrderedByLabels(filteredList, CdmStore.getDefaultLanguage());
         }
 
         return null;
     }
 
-    public SortedSet<DefinedTermBase> getTermsOrderedByLabels(List<DefinedTermBase> listTerm,Language language){
-        TermLanguageComparator<?> comp = new TermLanguageComparator<>();
-        comp.setCompareLanguage(language);
-        SortedSet<DefinedTermBase> result = new TreeSet(comp);
-        if(listTerm != null){
+    public <T extends DefinedTermBase<T>> SortedSet<T> getTermsOrderedByLabels(List<T> listTerm, Language language) {
+        TermLanguageComparator<T> comp = new TermLanguageComparator<>(Language.DEFAULT(), language);
+        SortedSet<T> result = new TreeSet<>(comp);
+        if (listTerm != null) {
             result.addAll(listTerm);
         }
 
         return result;
     }
 
-    public SortedSet<DefinedTermBase> getTermsOrderedByIdInVocabulary(List<DefinedTermBase> namedAreas) {
-        TermIdInVocabularyComparator<?> comp = new TermIdInVocabularyComparator<>();
+    public <T extends DefinedTermBase<T>> SortedSet<T> getTermsOrderedByIdInVocabulary(List<T> namedAreas) {
+        TermIdInVocabularyComparator<T> comp = new TermIdInVocabularyComparator<>();
+
+        SortedSet<T> result = new TreeSet<>(comp);
+        if (namedAreas != null) {
+            result.addAll(namedAreas);
+        }
+        return result;
+    }
+
+    public <T extends DefinedTermBase<T>> SortedSet<T> getTermsOrderedBySymbol(List<T> namedAreas) {
+        TermSymbol1Comparator<T> comp = new TermSymbol1Comparator<>();
+
+        SortedSet<T> result = new TreeSet<>(comp);
+        if (namedAreas != null) {
+            result.addAll(namedAreas);
+        }
+        return result;
+    }
+
+    public <T extends DefinedTermBase<T>> SortedSet<T> getTermsOrderedBySymbol2(List<T> namedAreas) {
+        TermSymbol2Comparator<T> comp = new TermSymbol2Comparator<>();
 
-        SortedSet<DefinedTermBase> result = new TreeSet(comp);
-        if(namedAreas != null){
+        SortedSet<T> result = new TreeSet<>(comp);
+        if (namedAreas != null) {
             result.addAll(namedAreas);
         }
         return result;
     }
 
-    public SortedSet<DefinedTermBase> getTermsOrderedByVocabularyOrder(List<DefinedTermBase> listAreas){
-        HashMap<TermVocabulary<DefinedTermBase>, List<DefinedTermBase>> vocs = new HashMap<>();
-        OrderedTermComparator<?> comp = new OrderedTermComparator<>();
+    public <T extends DefinedTermBase<T>> SortedSet<T> getTermsOrderedByVocabularyOrder(List<T> listAreas) {
+        OrderedTermComparator<T> comp = new OrderedTermComparator<>();
         boolean allOrderedTerms = true;
-        List<TermVocabulary> alreadyOrderIndexNull = new ArrayList<>();
-        for (DefinedTermBase term: listAreas){
-            if (!(term instanceof OrderedTermBase)){
+        List<TermVocabulary<T>> alreadyOrderIndexNull = new ArrayList<>();
+        for (T term : listAreas) {
+            if (!(term.isOrderRelevant())) {
                 allOrderedTerms = false;
                 break;
-            }else if (((OrderedTermBase)term).getOrderIndex() == 0){
-                if(alreadyOrderIndexNull.contains(term.getVocabulary())) {
+            } else if (term.getOrderIndex() == 0) {
+                // Note by AM: when does orderIndex == 0 happen?
+                if (alreadyOrderIndexNull.contains(term.getVocabulary())) {
                     allOrderedTerms = false;
                     break;
-                }else{
+                } else {
                     alreadyOrderIndexNull.add(term.getVocabulary());
                 }
-
-
             }
         }
-        if (allOrderedTerms){
-            SortedSet<DefinedTermBase> result = new TreeSet(comp.reversed());
+        if (allOrderedTerms) {
+            SortedSet<T> result = new TreeSet<>(comp);
             result.addAll(listAreas);
             return result;
-        }else{
+        } else {
             return getTermsOrderedByLabels(listAreas, PreferencesUtil.getGlobalLanguage());
         }
-
-
     }
 
     private void registerHandlersAndListeners(AbstractLayer topMostLayer) {
-        //selection listener
-        E4SelectionListener selectionListener = new DistributionCellSelectionListener(part.getSelectionService(),
+        // selection listener
+        E4SelectionListener<?> selectionListener = new DistributionCellSelectionListener(part.getSelectionService(),
                 selectionLayer, bodyDataProvider, part);
         selectionLayer.addLayerListener(selectionListener);
         selectionListener.setFullySelectedRowsOnly(false);
 
-        //register handler for view configuration menu
-      //  natTable.registerCommandHandler(toolbar.getDisplayPersistenceDialogCommandHandler());
+        // register handler for view configuration menu
+        // natTable.registerCommandHandler(toolbar.getDisplayPersistenceDialogCommandHandler());
     }
 
-    /**
-     * @return
-     */
     public IRowDataProvider<TaxonDistributionDTO> getBodyDataProvider() {
         return bodyDataProvider;
     }
@@ -799,18 +745,15 @@ public class DistributionEditor extends Composite implements IDistributionEditor
     }
 
     @Override
-    public Reference getDefaultSource(){
+    public Reference getDefaultSource() {
         return defaultSource;
     }
 
-//    /**
-//     * @param result
-//     */
-//    public void reloadDistributions() {
-//       loadDistributions(taxonList);
-//
-//    }
-
-
-
-}
+    // /**
+    // * @param result
+    // */
+    // public void reloadDistributions() {
+    // loadDistributions(taxonList);
+    //
+    // }
+}
\ No newline at end of file
index 62a3ce57eaf8c27b8f737b3d2313e22bd23e0ec4..fc075d02f79f94033c1aa433a448bb561f909d31 100755 (executable)
@@ -34,24 +34,25 @@ import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
 import org.eclipse.swt.custom.StackLayout;
 import org.eclipse.swt.widgets.Composite;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IDescriptionService;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.dto.TaxonDistributionDTO;
+import eu.etaxonomy.cdm.compare.taxon.TaxonNodeSortMode;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.persistence.dto.MergeResult;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.IDistributionEditorPart;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
+import eu.etaxonomy.taxeditor.preference.NavigatorOrderEnum;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -60,10 +61,11 @@ import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
 /**
  * @author k.luther
  * @since 28.11.2018
- *
  */
-public class DistributionEditorPart implements IE4SavablePart, IConversationEnabled, IDirtyMarkable,
-ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetails, IDistributionEditorPart{
+public class DistributionEditorPart
+        implements IE4SavablePart, IDirtyMarkable,
+                       ICdmEntitySessionEnabled<DescriptionBase>, IPartContentHasSupplementalData,
+                       IPartContentHasDetails, IDistributionEditorPart {
 
     private static final List<String> TAXONNODE_PROPERTY_PATH = Arrays.asList(new String[] {
             "taxon", //$NON-NLS-1$
@@ -81,8 +83,6 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
 
     private Collection<Taxon> rootEntities;
 
-    private ConversationHolder conversation;
-
     private ICdmEntitySession cdmEntitySession;
 
     @Inject
@@ -106,9 +106,6 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
 
     @PostConstruct
     public void create(Composite parent, IEclipseContext context) {
-        if(CdmStore.isActive() && conversation==null){
-            conversation = CdmStore.createConversation();
-        }
         if(cdmEntitySession == null){
             cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
         }
@@ -122,28 +119,28 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
         ContextInjectionFactory.inject(editor, context);
     }
 
-    public void init(UuidAndTitleCache nodeDto) {
-        List<UUID> uuidList = new ArrayList();
-        uuidList.add(nodeDto.getUuid());
-        this.taxonList = CdmStore.getService(ITaxonNodeService.class).getTaxonDistributionDTO(uuidList, TAXONNODE_PROPERTY_PATH, true);
-       // taxonList.stream().filter(taxonDistribution ->  CdmStore.currentAuthentiationHasPermission(taxonDistribution.getTaxonUuid(), RequiredPermissions.TAXONNODE_EDIT));
-
-
-        if(taxonList!=null){
-            editor.loadDistributions(taxonList);
-            editor.createTable();
-            editor.pack();
-            stackLayout.topControl = editor;
-            editor.getParent().layout();
-        }
-    }
+    public void init(List<UuidAndTitleCache<ITaxonTreeNode>> uuidAndTitleCaches) {
 
-    public void init(List<UuidAndTitleCache> uuidAndTitleCaches) {
         List<UUID> nodeUuids = new ArrayList<>();
         uuidAndTitleCaches.forEach(element -> nodeUuids.add(element.getUuid()));
-        this.taxonList = CdmStore.getService(ITaxonNodeService.class).getTaxonDistributionDTO(nodeUuids, TAXONNODE_PROPERTY_PATH, true);
-       // taxonList.stream().filter(taxonDistribution ->  CdmStore.currentAuthentiationHasPermission(taxonDistribution.getTaxonUuid(), RequiredPermissions.TAXONNODE_EDIT));
 
+        TaxonNodeSortMode sortMode = TaxonNodeSortMode.RankAndAlphabeticalOrder;
+        NavigatorOrderEnum orderValue = NavigatorOrderEnum.RankAndNameOrder;
+        try{
+            orderValue = PreferencesUtil.getSortNodes();
+        }catch(IllegalArgumentException e){
+
+        }
+
+        if (orderValue.equals(NavigatorOrderEnum.NaturalOrder)){
+            sortMode = TaxonNodeSortMode.NaturalOrder;
+        } else if (orderValue.equals(NavigatorOrderEnum.AlphabeticalOrder)){
+            sortMode = TaxonNodeSortMode.AlphabeticalOrder;
+        }else {
+            sortMode = TaxonNodeSortMode.RankAndAlphabeticalOrder;
+        }
+        this.taxonList = CdmStore.getService(ITaxonNodeService.class).getTaxonDistributionDTO(nodeUuids, TAXONNODE_PROPERTY_PATH,null, true, sortMode, PreferencesUtil.getDescriptionForChecklistEditor());
+        // taxonList.stream().filter(taxonDistribution ->  CdmStore.currentAuthentiationHasPermission(taxonDistribution.getTaxonUuid(), RequiredPermissions.TAXONNODE_EDIT));
 
         if(taxonList!=null){
             editor.loadDistributions(taxonList);
@@ -160,14 +157,10 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
 
     @Focus
     public void setFocus(){
-        if(conversation!=null){
-            conversation.bind();
-        }
         if(cdmEntitySession != null) {
             cdmEntitySession.bind();
         }
         EditorUtil.checkAndCloseFactsAndMediaParts(partService);
-
     }
 
     @Override
@@ -175,85 +168,47 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
         return editor;
     }
 
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void update(CdmDataChangeMap changeEvents) {
-        // TODO Auto-generated method stub
+   
 
-    }
     @PreDestroy
     public void dispose(){
-        if (conversation != null) {
-            conversation.close();
-            conversation = null;
-        }
         if(cdmEntitySession != null) {
             cdmEntitySession.dispose();
             cdmEntitySession = null;
         }
         dirty.setDirty(false);
-
     }
 
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public ICdmEntitySession getCdmEntitySession() {
-
         return cdmEntitySession;
     }
 
-
     @Override
     public List<DescriptionBase> getRootEntities() {
-        List<DescriptionBase> rootEntities = new ArrayList();
+        List<DescriptionBase> rootEntities = new ArrayList<>();
         editor.taxonList.forEach(dto -> rootEntities.addAll(dto.getDescriptionsWrapper().getDescriptions()));
         return rootEntities;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Map<Object, List<String>> getPropertyPathsMap() {
         // TODO Auto-generated method stub
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void changed(Object element) {
         if (element != null){
             dirty.setDirty(true);
         }
-
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void forceDirty() {
         // TODO Auto-generated method stub
-
     }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public ConversationHolder getConversationHolder() {
-
-        return conversation;
-    }
-
-
+    
     @Persist
     @Override
     public void save(IProgressMonitor monitor) {
@@ -262,9 +217,9 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
     }
 
     protected void saveDistributions() {
-        Set<TaxonDistributionDTO> coll = new HashSet();
+        Set<TaxonDistributionDTO> coll = new HashSet<>();
         editor.getDescriptionsToSave().forEach(dto->coll.add(dto));
-        Set<TaxonDistributionDTO> removeList = new HashSet();
+        Set<TaxonDistributionDTO> removeList = new HashSet<>();
         for (TaxonDistributionDTO dto: coll){
             Taxon taxon = null;
             for(TaxonDescription desc: dto.getDescriptionsWrapper().getDescriptions()){
@@ -273,6 +228,7 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
                         taxon = (Taxon)CdmStore.getService(ITaxonService.class).load(dto.getTaxonUuid());
                     }
                     taxon.addDescription(desc);
+                    removeList.add(dto);
                 }
                 if (taxon != null){
                     MergeResult result = CdmStore.getService(ITaxonService.class).merge(taxon, true);
@@ -286,14 +242,11 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
             cdmEntitySession.load(editor.getDefaultSource(), true);
         }
         editor.createTaxonDistributionMap();
-        conversation.commit();
+
         this.dirty.setDirty(false);
         editor.getDescriptionsToSave().clear();
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean isDirty() {
         return this.dirty.isDirty();
@@ -302,8 +255,4 @@ ICdmEntitySessionEnabled, IPartContentHasSupplementalData, IPartContentHasDetail
     public void setDirty() {
         this.dirty.setDirty(true);
     }
-
-
-
-
-}
+}
\ No newline at end of file
index 5be72755313d6c1223f4edcae1e0a639efa10271..a43b701d9619ad910d9a229bcb9c123b5e596a29 100755 (executable)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.editor.view.checklist.e4;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.nebula.widgets.nattable.data.convert.DisplayConverter;
 
 import eu.etaxonomy.cdm.model.description.Distribution;
index 1d26b6a7f6dd6cd3ce17c321414faecfe6b013ff..ae630e91a07440ad05d3b080ef0181be18920496 100755 (executable)
@@ -14,9 +14,15 @@ import java.util.Comparator;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.nebula.widgets.nattable.edit.editor.IComboBoxDataProvider;
 
+import eu.etaxonomy.cdm.compare.term.OrderedTermComparator;
+import eu.etaxonomy.cdm.compare.term.TermIdInVocabularyComparator;
+import eu.etaxonomy.cdm.compare.term.TermLanguageComparator;
+import eu.etaxonomy.cdm.compare.term.TermSymbol1Comparator;
+import eu.etaxonomy.cdm.compare.term.TermSymbol2Comparator;
+import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
@@ -25,10 +31,7 @@ import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
 import eu.etaxonomy.cdm.model.metadata.TermOrder;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
-import eu.etaxonomy.cdm.model.term.OrderedTermComparator;
 import eu.etaxonomy.cdm.model.term.Representation;
-import eu.etaxonomy.cdm.model.term.TermIdInVocabularyComparator;
-import eu.etaxonomy.cdm.model.term.TermLanguageComparator;
 import eu.etaxonomy.taxeditor.preference.CdmPreferenceCache;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -36,7 +39,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author k.luther
  * @since 05.12.2018
- *
  */
 public class StatusComboBoxDataProvider implements IComboBoxDataProvider {
 
@@ -67,10 +69,8 @@ public class StatusComboBoxDataProvider implements IComboBoxDataProvider {
 //            }
 //        }
         return getValues(pref);
-
     }
 
-
     public static List<?> getValues(CdmPreference pref){
         List<StatusHelper> inputAll = new ArrayList<>();
         PresenceAbsenceTerm noneTerm = PresenceAbsenceTerm.NewInstance();
@@ -83,7 +83,7 @@ public class StatusComboBoxDataProvider implements IComboBoxDataProvider {
         if (!StringUtils.isBlank(statusString)){
 
             String [] statusArray = statusString.split(";");
-            List<UUID> uuidList = new ArrayList();
+            List<UUID> uuidList = new ArrayList<>();
             for (String status: statusArray){
                 uuidList.add(UUID.fromString(status));
             }
@@ -97,12 +97,21 @@ public class StatusComboBoxDataProvider implements IComboBoxDataProvider {
 
         Comparator<DefinedTermBase> comp = new OrderedTermComparator<>();
         //check the status order preference
-        TermOrder order = TermOrder.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.StatusSortedInDistributionEditor.getKey()));
+        TermOrder order = null;
+        try{
+            order = TermOrder.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.StatusSortedInDistributionEditor.getKey()));
+        }catch (IllegalArgumentException e){
+            order = TermOrder.Label;
+        }
 
         if (order.equals(TermOrder.IdInVoc)){
-            comp = new TermIdInVocabularyComparator();
+            comp = new TermIdInVocabularyComparator<>();
         }else if(order.equals(TermOrder.Label)){
-            comp = new TermLanguageComparator();
+            comp = new TermLanguageComparator<>(Language.DEFAULT(), Language.DEFAULT());
+        }else if(order.equals(TermOrder.Symbol1)){
+            comp = new TermSymbol1Comparator<>();
+        }else if(order.equals(TermOrder.Symbol2)){
+            comp = new TermSymbol2Comparator<>();
         }
         Collections.sort(inputList, comp);
 //        Collections.sort(inputList, Collections.reverseOrder());
@@ -118,5 +127,4 @@ public class StatusComboBoxDataProvider implements IComboBoxDataProvider {
     public int getMaxVisibleItems(){
         return maxVisibleItems;
     }
-
-}
+}
\ No newline at end of file
index cac0feeab09f272815bfc5786b6b04afe1a7cfdc..d3e38f278498d316a60a1421259c7695861b2671 100755 (executable)
@@ -11,7 +11,7 @@ package eu.etaxonomy.taxeditor.editor.view.checklist.e4;
 import java.util.HashSet;
 import java.util.Iterator;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.nebula.widgets.nattable.data.convert.DisplayConverter;
 
 import eu.etaxonomy.cdm.model.description.Distribution;
index 1934149c18cd2ae0c4cd1a048a8707865c9dc6bc..ff8c9546c3156c2f4de95087bc03cf8e6c34e445 100755 (executable)
@@ -11,7 +11,7 @@ package eu.etaxonomy.taxeditor.editor.view.checklist.e4;
 import java.util.HashSet;
 import java.util.Iterator;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.nebula.widgets.nattable.data.convert.DisplayConverter;
 
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
index 0e0844dd1c5cb6793b4646531bf46fdaf9eb8a92..e43d681d9a8988f306e5e37617e9a9b697ec0571 100755 (executable)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.editor.view.checklist.e4;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
@@ -38,15 +38,18 @@ public class StatusHelper {
             result = ((TermComboEnum) PreferencePredicate.DisplayOfStatusInCombo.getDefaultValue()).getKey();
         }
         TermComboEnum comboDisplay = TermComboEnum.byKey(result);
+        label = term.getTitleCache();
         if(term.getTitleCache().trim().equals("-")){
             label = term.getTitleCache();
-        }else if (comboDisplay.equals(TermComboEnum.IdInVocabulary) && term.getIdInVocabulary() != null){
+        }else if (comboDisplay.equals(TermComboEnum.IdInVocabulary) && !StringUtils.isBlank(term.getIdInVocabulary())){
             label = term.getIdInVocabulary();
-        }else if (comboDisplay.equals(TermComboEnum.Symbol1) && term.getSymbol() != null){
-            label =  term.getSymbol();
-        } else if (comboDisplay.equals(TermComboEnum.Symbol2) && term.getSymbol2() != null){
+        }else if (comboDisplay.equals(TermComboEnum.Symbol1) && !StringUtils.isBlank(term.getSymbol())){
+            if (term.getSymbol() != null){
+                label =  term.getSymbol();
+            }
+        } else if (comboDisplay.equals(TermComboEnum.Symbol2) && !StringUtils.isBlank(term.getSymbol2())){
             label = term.getSymbol2();
-        } else if (comboDisplay.equals(TermComboEnum.Title) && term.getLabel() != null){
+        } else if (comboDisplay.equals(TermComboEnum.Title) && !StringUtils.isBlank(term.getLabel())){
             label = term.getLabel();
         } else if (comboDisplay.equals(TermComboEnum.TermDisplayPlusTitle)){
             if (display.equals(TermDisplayEnum.IdInVocabulary)){
index 68df3389bc2f4ee94e70b227736c94b46744be19..2f70427ca1f8095db1e38a650350ca9c129c3997 100755 (executable)
@@ -11,44 +11,48 @@ package eu.etaxonomy.taxeditor.editor.view.checklist.e4;
 import java.util.Comparator;
 
 import eu.etaxonomy.cdm.api.service.dto.TaxonDistributionDTO;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoByNameComparator;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoByRankAndNameComparator;
 
 /**
  * @author k.luther
  * @since 28.11.2018
- *
  */
 public class TaxonDistributionDtoComparator implements Comparator<TaxonDistributionDTO> {
 
-    /**
-     * {@inheritDoc}
-     */
+    Comparator<TaxonNodeDto> comparator1 = new TaxonNodeDtoByRankAndNameComparator();
+    Comparator<TaxonNodeDto> comparator2 = new TaxonNodeDtoByNameComparator();
+
+    public TaxonDistributionDtoComparator(){
+        super();
+    }
+
     @Override
-    public int compare(TaxonDistributionDTO arg0, TaxonDistributionDTO arg1) {
-        if (arg0 == arg1){
-            return 0;
+    public int compare(TaxonDistributionDTO taxonDistr0, TaxonDistributionDTO taxonDistr1) {
+        //if node is higher in tree then return 1;
+        if (taxonDistr0.getTaxonNodeDto().getTreeIndex().split("#").length < taxonDistr1.getTaxonNodeDto().getTreeIndex().split("#").length){
+            return -1;
+        }else if (taxonDistr0.getTaxonNodeDto().getTreeIndex().split("#").length > taxonDistr1.getTaxonNodeDto().getTreeIndex().split("#").length){
+            return 1;
         }
 
-        if (arg0.getTaxonUuid().equals(arg1.getTaxonUuid())){
-            return 0;
+        //if parent is not the same sort by name
+        if ((taxonDistr0.getTaxonNodeDto() != null && taxonDistr1.getTaxonNodeDto() != null) && !taxonDistr0.getTaxonNodeDto().getParentUUID().equals(taxonDistr1.getTaxonNodeDto().getParentUUID()) ){
+            return comparator2.compare(taxonDistr0.getTaxonNodeDto(), taxonDistr1.getTaxonNodeDto());
         }
-
-        String name1 = arg0.getNameCache();
-        String name2 = arg1.getNameCache();
-        Integer rankTax1 = arg0.getRankOrderIndex();
-        Integer rankTax2 = arg1.getRankOrderIndex();
-//        String parentName1 = arg0.get
-        if (rankTax1 == null && rankTax2 != null){
-            return 1;
-        }else if(rankTax2 == null && rankTax1 != null){
+        // if parent is the same sort by rank and name
+        if (taxonDistr0.getTaxonNodeDto() != null && taxonDistr1.getTaxonNodeDto() != null && taxonDistr0.getTaxonNodeDto().getParentUUID().equals( taxonDistr1.getTaxonNodeDto().getParentUUID())){
+           return this.comparator1.compare(taxonDistr0.getTaxonNodeDto(), taxonDistr1.getTaxonNodeDto());
+        }else if (taxonDistr0 == taxonDistr1 || (taxonDistr0.getTaxonNodeDto() == null) && (taxonDistr1.getTaxonNodeDto() == null)){
+            return 0;
+        } else if (taxonDistr0.getTaxonNodeDto() != null && taxonDistr1.getTaxonNodeDto() == null){
             return -1;
-        }else if (rankTax1 != null && rankTax1<rankTax2) {
-            //same rank, order by name
-            return name1.compareTo(name2);
-         }else if (rankTax1 == null && rankTax2 == null || rankTax1.equals(rankTax2)){
-             return -1;
-         }
-
-        return 0;
+        } else if (taxonDistr0.getTaxonNodeDto() == null && taxonDistr1.getTaxonNodeDto() != null){
+            return 1;
+        }else{
+            return taxonDistr0.getTaxonUuid().compareTo(taxonDistr1.getTaxonUuid());
+        }
     }
 
 }
index 8b6cc5d1cef68e983bbfcf68eaa3dfd4e0054f1a..1260208f0a05ec9958591f2f1eddf71748d9315e 100644 (file)
@@ -1,50 +1,61 @@
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.view.checklist.e4.handler;
 
 import java.util.List;
 
-import javax.inject.Inject;
 import javax.inject.Named;
 
 import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.services.log.Logger;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
 import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.swt.widgets.Shell;
 
+import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.model.description.Distribution;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.permission.Operation;
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.editor.AppModelId;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenSetBaseHandler;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.security.RequiredPermissions;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.view.DtoWithEntity;
 
-public class OpenChecklistEditorHandlerE4 extends DefaultOpenSetBaseHandler<List<UuidAndTitleCache>> {
-    @Inject
-    private Logger logger;
-    private static final String COULD_NOT_OPEN_DISTRIBUTION_EDITOR_THE_HIERARCHY_IS_CORRUPTED = Messages.OpenChecklistEditorHandler_COULD_NOT_OPEN_MESSAGE;
-    private static final String COULD_NOT_OPEN_DISTRIBUTION_EDITOR = Messages.OpenChecklistEditorHandler_COULD_NOT_OPEN_TITLE;
-
-
+/**
+ * Handler to open the distribution editor via context menu
+ */
+public class OpenChecklistEditorHandlerE4 extends DefaultOpenSetBaseHandler<ITaxonTreeNode, UuidAndTitleCache<ITaxonTreeNode>> {
 
        @Override
-       protected void open(List<UuidAndTitleCache> entities, Shell shell, EPartService partService) {
-
+    protected void open(List<UuidAndTitleCache<ITaxonTreeNode>> entities, Shell shell, EPartService partService) {
+           replaceClassificationsByRootNode(entities);
            EditorUtil.openDistributionEditor(entities, modelService, partService, application);
        }
 
+    public void replaceClassificationsByRootNode(List<UuidAndTitleCache<ITaxonTreeNode>> entities) {
+        for (UuidAndTitleCache<ITaxonTreeNode> entity : entities){
+               if (Classification.class.isAssignableFrom(entity.getType())){
+                   Classification c = CdmStore.getService(IClassificationService.class).find(entity.getUuid());
+                   DtoWithEntity<ITaxonTreeNode> dto = new DtoWithEntity<ITaxonTreeNode>(c.getRootNode());
+                   entities.set(entities.indexOf(entity),dto);
+               }
+           }
+    }
 
-
-    /**
-     * {@inheritDoc}
-     */
     @CanExecute
     @Override
     public boolean canExecute(MHandledMenuItem menuItem,
@@ -82,13 +93,9 @@ public class OpenChecklistEditorHandlerE4 extends DefaultOpenSetBaseHandler<List
         return result;
     }
 
-
-
     @Override
-    protected boolean canExecute(Object entity) {
-        // TODO Auto-generated method stub
+    protected boolean canExecute(UuidAndTitleCache<ITaxonTreeNode> entity) {
+        //FIXME DTO
         return true;
     }
-
-
-}
+}
\ No newline at end of file
index d8e4ffaddaa76c0a769f753e1b3ac004b5cb1799..3f34fa898651df0522d49c1663e62a52efe79acb 100755 (executable)
@@ -1,3 +1,11 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.editor.view.checklist.edit;
 
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
@@ -13,14 +21,11 @@ import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
  *
  * @author k.luther
  * @created 26.09.2017
- * @version 1.0
  */
 public class CdmComboBoxViewerCellEditor extends ComboBoxViewerCellEditor implements ISelectionListener, IPartContentHasDetails{
 
-       
        public CdmComboBoxViewerCellEditor(Composite parent, int style) {
                super(parent, style);
-               
        }
 
        @Override
@@ -28,5 +33,4 @@ public class CdmComboBoxViewerCellEditor extends ComboBoxViewerCellEditor implem
                System.out.println(selection.toString());
                
        }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/listener/ChecklistModifyListener.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/listener/ChecklistModifyListener.java
deleted file mode 100644 (file)
index 0380ffa..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
-* Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.editor.view.checklist.listener;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Text;
-
-import eu.etaxonomy.taxeditor.editor.view.checklist.filter.ChecklistEditorFilter;
-
-/**
- * @author alex
- * @date 27.06.2014
- *
- */
-public class ChecklistModifyListener implements ModifyListener {
-
-    private final Text searchText;
-    private final Viewer editor;
-    private final ChecklistEditorFilter filter;
-
-    /**
-     *
-     */
-    public ChecklistModifyListener(Viewer editor, ChecklistEditorFilter filter, Text searchText) {
-        this.editor = editor;
-        this.filter = filter;
-        this.searchText = searchText;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
-     */
-    @Override
-    public void modifyText(ModifyEvent e) {
-        filter.setSearchText(searchText.getText());
-
-    }
-
-}
index 1a7834a95ede66d53b392c8c8420ac7345567018..016a1cc3285cb659c50c05ce97b273102faea153 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.view.concept;
 
 import java.util.HashMap;
@@ -22,7 +21,6 @@ import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 /**
  * @author n.hoffmann
  * @created Jan 24, 2011
- * @version 1.0
  */
 public class ConceptContentProvider implements IStructuredContentProvider {
 
@@ -54,5 +52,4 @@ public class ConceptContentProvider implements IStructuredContentProvider {
                }
                return new Object[0];
        }
-
-}
+}
\ No newline at end of file
index 4bcecf9e3f25afe7467177f7e5e95f94cf92b217..daa5ab54c870248f997fcbe34df569eb275ec028 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.view.concept;
 
 import java.util.Map.Entry;
@@ -24,8 +23,6 @@ import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
 
 /**
  * @author n.hoffmann
- * @created Jan 24, 2011
- * @version 1.0
  */
 public class ConceptLabelProvider extends LabelProvider implements IStyledLabelProvider {
 
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/e4/ConceptRelationViewer.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/e4/ConceptRelationViewer.java
new file mode 100644 (file)
index 0000000..dc05be2
--- /dev/null
@@ -0,0 +1,49 @@
+/**
+* Copyright (C) 2022 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.view.concept.e4;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map.Entry;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
+
+class ConceptRelationViewer extends ListViewer {
+
+    public ConceptRelationViewer(Composite parent) {
+               super(parent);
+       }
+
+       @Override
+       public ISelection getSelection() {
+               ISelection selection = super.getSelection();
+               List<TaxonRelationship> relationships = new ArrayList<>();
+               if(selection instanceof IStructuredSelection && !selection.isEmpty()){
+                   for(Iterator<?> iter = ((IStructuredSelection) selection).iterator();iter.hasNext();){
+                       Object object = iter.next();
+                       relationships.add(((Entry<TaxonRelationship, Taxon>)object).getKey());
+                   }
+                   return new StructuredSelection(relationships);
+               }
+               return selection;
+       }
+
+       @Override
+       public void setSelection(ISelection selection) {
+               super.setSelection(selection);
+       }
+}
\ No newline at end of file
index f34e38b6b37b9585daba5b4548d0482773ab9e98..083b0814024c925df31ceebb69b640a7a74ca82a 100644 (file)
@@ -6,28 +6,17 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.view.concept.e4;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map.Entry;
-
 import javax.annotation.PostConstruct;
 
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.services.EMenuService;
-import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.jface.viewers.ViewerComparator;
 import org.eclipse.swt.widgets.Composite;
 
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
-import eu.etaxonomy.taxeditor.editor.key.e4.AbstractGraphKeyEditorE4;
+import eu.etaxonomy.taxeditor.editor.key.e4.AbstractGraphKeyEditor;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.editor.view.concept.ConceptContentProvider;
 import eu.etaxonomy.taxeditor.editor.view.concept.ConceptLabelProvider;
@@ -35,18 +24,16 @@ import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
 import eu.etaxonomy.taxeditor.editor.view.media.e4.MediaViewPartE4;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
-import eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPartE4;
+import eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPart;
 import eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4;
 import eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4;
 
 /**
- *
  * @author pplitzner
  * @date 21.08.2017
- *
  */
-public class ConceptViewPartE4 extends AbstractCdmEditorPartE4
-implements IPartContentHasDetails, IPartContentHasSupplementalData{
+public class ConceptViewPartE4 extends AbstractCdmEditorPart<ConceptRelationViewer>
+        implements IPartContentHasDetails, IPartContentHasSupplementalData{
 
     @Override
     public void selectionChanged_internal(Object selection, MPart activePart, MPart thisPart) {
@@ -56,7 +43,7 @@ implements IPartContentHasDetails, IPartContentHasSupplementalData{
         if (!viewer.getControl().isDisposed()){
             viewer.getControl().setEnabled(true);
         }
-        Object partObject = createPartObject(activePart);
+        Object partObject = getPartObject(activePart);
         IStructuredSelection structuredSelection = createSelection(selection);
 
         if (partObject instanceof DetailsPartE4 || partObject instanceof SupplementalDataPartE4
@@ -65,7 +52,7 @@ implements IPartContentHasDetails, IPartContentHasSupplementalData{
             // description selected in this view
             return;
         }
-               else if(partObject instanceof AbstractGraphKeyEditorE4){
+               else if(partObject instanceof AbstractGraphKeyEditor){
                        showEmptyPage();
                }
                else if(selection!=null){
@@ -88,7 +75,7 @@ implements IPartContentHasDetails, IPartContentHasSupplementalData{
            conceptViewer.setLabelProvider(new ConceptLabelProvider());
 
 
-           conceptViewer.setSorter(new ViewerSorter());
+           conceptViewer.setComparator(new ViewerComparator());
 
                viewer = conceptViewer;
 
@@ -98,7 +85,6 @@ implements IPartContentHasDetails, IPartContentHasSupplementalData{
 
         //create context menu
         menuService.registerContextMenu(viewer.getControl(), "eu.etaxonomy.taxeditor.editor.popupmenu.conceptview");
-
        }
 
        @Override
@@ -107,33 +93,6 @@ implements IPartContentHasDetails, IPartContentHasSupplementalData{
                super.changed(object);
        }
 
-       private class ConceptRelationViewer extends ListViewer {
-
-               public ConceptRelationViewer(Composite parent) {
-                       super(parent);
-               }
-
-               @Override
-               public ISelection getSelection() {
-                       ISelection selection = super.getSelection();
-                       List<TaxonRelationship> relationships = new ArrayList<>();
-                       if(selection instanceof IStructuredSelection && !selection.isEmpty()){
-                           for(Iterator iter = ((IStructuredSelection) selection).iterator();iter.hasNext();){
-                               Object object = iter.next();
-                               relationships.add(((Entry<TaxonRelationship, Taxon>)object).getKey());
-                           }
-                           return new StructuredSelection(relationships);
-                       }
-                       return selection;
-               }
-
-               @Override
-               public void setSelection(ISelection selection) {
-                       super.setSelection(selection);
-               }
-
-       }
-
        @Override
        protected String getViewName() {
                return Messages.ConceptViewPart_VIEWER_NAME;
index a552d4b0257af123984814d3cc23ebe6189203d6..1e66139a59ec13530a157098fa3d4fe8255ab8a2 100644 (file)
@@ -23,12 +23,11 @@ import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
 import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.concept.e4.ConceptViewPartE4;
 import eu.etaxonomy.taxeditor.editor.view.concept.operation.CreateConceptRelationOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -56,19 +55,19 @@ public class CreateConceptRelationHandlerE4 {
         UUID uuid = (UUID) menuItem.getTransientData().get(commandId+".taxonRelationshipType.uuid");
         TaxonRelationshipType taxonRelationshipType = HibernateProxyHelper.deproxy(CdmStore.getService(ITermService.class).load(uuid), TaxonRelationshipType.class);
 
-        TaxonNameEditorE4 editor = null;
+        TaxonEditor editor = null;
 
         ConceptViewPartE4 conceptView = (ConceptViewPartE4) activePart.getObject();
 
         Object e4WrappedPart = WorkbenchUtility.getE4WrappedPart(conceptView.getSelectionProvidingPart());
-        if(e4WrappedPart instanceof TaxonNameEditorE4){
-            editor = (TaxonNameEditorE4) e4WrappedPart;
+        if(e4WrappedPart instanceof TaxonEditor){
+            editor = (TaxonEditor) e4WrappedPart;
 
             IUndoContext undoContext = null;
-            ConversationHolder conversationHolder = null;
+
             Taxon taxon = null;
             taxon = editor.getTaxon();
-            conversationHolder = editor.getConversationHolder();
+
             undoContext = editor.getUndoContext();
 
             //FIXME should this also be enabled for bulk editor
@@ -76,22 +75,18 @@ public class CreateConceptRelationHandlerE4 {
             //             BulkEditor bulkEditor = (BulkEditor)activeEditor;
             //            ISelection selection = bulkEditor.getSelectionProvider().getSelection();
             //             taxon = (Taxon) ((IStructuredSelection)selection).getFirstElement();
-            //             conversationHolder = bulkEditor.getConversationHolder();
             //             undoContext = bulkEditor.getUndoContext();
             //         }
 
-            Taxon relatedConcept = TaxonSelectionDialog.selectTaxon(shell, //conversationHolder,
-                    taxon);
-
+            Taxon relatedConcept = TaxonSelectionDialog.selectTaxon(shell, taxon);
 
             if(relatedConcept == null){
                 return;
             }
             boolean isInverse = taxonRelationshipType.getInverseLabel().isEmpty()?false:true;
-            TaxonRelationshipTypeInverseContainer typeInverseContainer =new TaxonRelationshipTypeInverseContainer(taxonRelationshipType, isInverse) ;
-
+            TaxonRelationshipTypeInverseContainer typeInverseContainer = new TaxonRelationshipTypeInverseContainer(taxonRelationshipType, isInverse) ;
 
-            AbstractPostOperation operation = new CreateConceptRelationOperation(menuItem.getLocalizedLabel(),
+            AbstractPostOperation<?> operation = new CreateConceptRelationOperation(menuItem.getLocalizedLabel(),
                     undoContext, taxon, relatedConcept, typeInverseContainer, conceptView);
             AbstractUtility.executeOperation(operation, sync);
         }
@@ -104,7 +99,7 @@ public class CreateConceptRelationHandlerE4 {
         ConceptViewPartE4 conceptView = (ConceptViewPartE4) activePart.getObject();
 
         Object e4WrappedPart = WorkbenchUtility.getE4WrappedPart(conceptView.getSelectionProvidingPart());
-        canExecute = e4WrappedPart instanceof TaxonNameEditorE4;
+        canExecute = e4WrappedPart instanceof TaxonEditor;
         menuItem.setVisible(canExecute);
         return canExecute;
     }
index a2112c8e3982761a5d8faaf6d6fe413f1a423bbe..c48e33d6871bba0728bd3444374ae29804f0c798 100644 (file)
@@ -26,7 +26,7 @@ import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.concept.e4.ConceptViewPartE4;
 import eu.etaxonomy.taxeditor.editor.view.concept.operation.DeleteConceptRelationOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -47,13 +47,13 @@ public class DeleteConceptRelationHandlerE4 {
             MMenuItem menuItem,
             UISynchronize sync) {
 
-        TaxonNameEditorE4 editor = null;
+        TaxonEditor editor = null;
 
         ConceptViewPartE4 conceptView = (ConceptViewPartE4) activePart.getObject();
 
         Object e4WrappedPart = WorkbenchUtility.getE4WrappedPart(conceptView.getSelectionProvidingPart());
-        if(e4WrappedPart instanceof TaxonNameEditorE4){
-            editor = (TaxonNameEditorE4) e4WrappedPart;
+        if(e4WrappedPart instanceof TaxonEditor){
+            editor = (TaxonEditor) e4WrappedPart;
 
             Set<TaxonRelationship> relations = new HashSet<TaxonRelationship>();
 
index 48e10f182d36c82a6ad3c77494cf10a3aa145b79..6bf35170d4d2979cb62540c0cfd55febb1655f82 100644 (file)
@@ -25,10 +25,10 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.concept.e4.ConceptViewPartE4;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
@@ -46,18 +46,18 @@ public class OpenRelatedConceptHandlerE4  {
             @Optional@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection,
             EModelService modelService, EPartService partService, MApplication application) {
 
-        TaxonNameEditorE4 editor = null;
-        BulkEditorE4 bulkEditor = null;
+        TaxonEditor editor = null;
+        BulkEditor bulkEditor = null;
         TaxonRelationship taxonRelationship = (TaxonRelationship) selection.getFirstElement();
 
         ConceptViewPartE4 conceptView = (ConceptViewPartE4) activePart.getObject();
 
         Object e4WrappedPart = WorkbenchUtility.getE4WrappedPart(conceptView.getSelectionProvidingPart());
-        if(e4WrappedPart instanceof TaxonNameEditorE4){
-            editor = (TaxonNameEditorE4) e4WrappedPart;
+        if(e4WrappedPart instanceof TaxonEditor){
+            editor = (TaxonEditor) e4WrappedPart;
         }
-        else if(e4WrappedPart instanceof BulkEditorE4){
-            bulkEditor = (BulkEditorE4) e4WrappedPart;
+        else if(e4WrappedPart instanceof BulkEditor){
+            bulkEditor = (BulkEditor) e4WrappedPart;
         }
         TaxonBase<?> relatedTaxon = null;
         if(editor!=null){
index 76ef1b04264a2a5e4967bb4e88c267c2368ee1a2..dd1eb4b07b67c2c72f67d86b64a9dde09c3c5a6f 100644 (file)
@@ -9,12 +9,10 @@ import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 
 public class OpenRelatedConceptInBulkEditorHandlerE4 extends OpenRelatedConceptHandlerE4{
-    /**
-     * {@inheritDoc}
-     */
+
     @Override
     protected void openConcept(TaxonBase<?> relatedTaxon, EModelService modelService, EPartService partService, MApplication application) {
         AbstractBulkEditorInput<?> input = AbstractBulkEditorInput.NewInstance(relatedTaxon);
         BulkEditorUtil.openBulkEditor(input, modelService, partService, application);
     }
-}
+}
\ No newline at end of file
index 47c31242c38e510cb25b1056337930993835ded5..465237487da7d88f3b2f9b257f35fdad19c9a9f7 100644 (file)
@@ -12,7 +12,7 @@ import org.eclipse.zest.core.viewers.IGraphContentProvider;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4;
+import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInput;
 
 /**
  * @author andreas
@@ -59,8 +59,8 @@ public class ConceptGraphContentProvider implements IGraphContentProvider {
         */
        @Override
        public Object[] getElements(Object inputElement) {
-               if(inputElement instanceof TaxonEditorInputE4){
-                       Taxon taxon = ((TaxonEditorInputE4) inputElement).getTaxon();
+               if(inputElement instanceof TaxonEditorInput){
+                       Taxon taxon = ((TaxonEditorInput) inputElement).getTaxon();
 
                        Map<String, TaxonRelationship> filteredTaxonRelations = new HashMap<String, TaxonRelationship>();
                        getTaxonRelationshipsRecursive(filteredTaxonRelations, taxon);
@@ -77,7 +77,6 @@ public class ConceptGraphContentProvider implements IGraphContentProvider {
                for (TaxonRelationship relationship : taxon.getTaxonRelations()) {
 
                        if (!relationship.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())
-                                       && !relationship.getType().equals(TaxonRelationshipType.INVALID_DESIGNATION_FOR())
                                        && !relationship.getType().equals(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN())) {
 
                                if(!relationship.getToTaxon().equals(taxon)){
index eaf6206783611d7f926417b27277f690c92eb86f..8939e982d2557f564662eb5f0f9d99bb6d0b0c29 100644 (file)
@@ -8,7 +8,6 @@ import javax.annotation.PostConstruct;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.services.EMenuService;
 import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.zest.core.viewers.GraphViewer;
@@ -17,41 +16,36 @@ import org.eclipse.zest.layouts.LayoutAlgorithm;
 import org.eclipse.zest.layouts.LayoutStyles;
 import org.eclipse.zest.layouts.algorithms.TreeLayoutAlgorithm;
 
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
-import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
+import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.concept.graph.ConceptGraphContentProvider;
 import eu.etaxonomy.taxeditor.editor.view.concept.graph.ConceptGraphLabelProvider;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
 import eu.etaxonomy.taxeditor.editor.view.media.e4.MediaViewPartE4;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPartE4;
+import eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPart;
 import eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4;
 import eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4;
 
 /**
- *
  * @author pplitzner
  * @since Sep 27, 2017
- *
  */
-public class ConceptGraphViewE4 extends AbstractCdmEditorPartE4 {
+public class ConceptGraphViewE4 extends AbstractCdmEditorPart<GraphViewer> {
 
        public static final String ID = "eu.etaxonomy.taxeditor.editor.view.concept.graph"; //$NON-NLS-1$
 
        private LayoutAlgorithm layoutAlgoritm;
 
-    /**
-     * {@inheritDoc}
-     */
        @Override
        public void selectionChanged_internal(Object selection, MPart activePart, MPart thisPart) {
            if(activePart==thisPart){
                return;
            }
 
-           Object partObject = createPartObject(activePart);
+           Object partObject = getPartObject(activePart);
 
            if (partObject instanceof DetailsPartE4 || partObject instanceof SupplementalDataPartE4
                    || partObject instanceof FactualDataPartE4|| partObject instanceof MediaViewPartE4) {
@@ -64,20 +58,18 @@ public class ConceptGraphViewE4 extends AbstractCdmEditorPartE4 {
                        return;
                }
 
-               if(partObject instanceof BulkEditorE4){
+               if(partObject instanceof BulkEditor){
                        showEmptyPage();
                        return;
                }
 
-
-               if(partObject instanceof TaxonNameEditorE4){
+               if(partObject instanceof TaxonEditor){
                    if (viewer.getControl() != null && !viewer.getControl().isDisposed()) {
                 viewer.getControl().setEnabled(true);
             }
-                   TaxonEditorInputE4 input = ((TaxonNameEditorE4) partObject).getEditorInput();
+                   TaxonEditorInput input = ((TaxonEditor) partObject).getEditorInput();
                    showViewer(new StructuredSelection(input), activePart, viewer);
                }
-
        }
 
        @Override
@@ -86,7 +78,7 @@ public class ConceptGraphViewE4 extends AbstractCdmEditorPartE4 {
        }
 
        @Override
-       public Viewer getViewer() {
+       public GraphViewer getViewer() {
                return viewer;
        }
 
index 3293b3cdb5feb23b79da50564d9f8aa9189c2ddd..030e9b80f962cce9dc6446aeadfd0d9ddf35a70c 100644 (file)
@@ -25,7 +25,6 @@ import eu.etaxonomy.taxeditor.ui.EditViewerDropAdapter;
 /**
  * @author pplitzner
  * @date 18.03.2014
- *
  */
 public class DerivateDropListener extends EditViewerDropAdapter {
 
@@ -60,13 +59,9 @@ public class DerivateDropListener extends EditViewerDropAdapter {
         return LocalSelectionTransfer.getTransfer().isSupportedType(transferType) && target instanceof TreeNode;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void dragOver(DropTargetEvent event) {
         super.dragOver(event);
         event.feedback = DND.FEEDBACK_SELECT | DND.FEEDBACK_SCROLL;
     }
-
-}
+}
\ No newline at end of file
index ce054a3b5f24355516fee31850e3c7ade44d33da..b8205922851a1a6f5e2890fd7ed21a50eaa1fae8 100644 (file)
@@ -1,9 +1,18 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.editor.view.derivate;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -54,8 +63,7 @@ import org.eclipse.swt.widgets.Tree;
 import org.eclipse.ui.IMemento;
 import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.api.filter.TaxonOccurrenceRelationType;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
@@ -66,10 +74,9 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.derivate.searchFilter.DerivateSearchCompositeController;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -93,10 +100,9 @@ import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
 
 /**
  * Displays the derivate hierarchy of the specimen specified in the editor input.
- *
  */
-public class DerivateView implements IPartContentHasFactualData, IConversationEnabled,
-        ICdmEntitySessionEnabled, IDirtyMarkable, IPostOperationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, IPartContentHasMedia,
+public class DerivateView implements IPartContentHasFactualData,
+        ICdmEntitySessionEnabled<SpecimenOrObservationBase<?>>, IDirtyMarkable, IPostOperationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, IPartContentHasMedia,
         IContextListener, IE4SavablePart, ICollapsableExpandable {
 
     private static final String SPECIMEN_EDITOR = Messages.DerivateView_SPECIMEN_EDITOR;
@@ -125,9 +131,6 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
 
        private static final int WARN_THRESHOLD = 200;
 
-
-       private ConversationHolder conversation;
-
        private TreeViewer viewer;
 
     private final int dndOperations = DND.DROP_MOVE;
@@ -181,9 +184,6 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
     public DerivateView() {
     }
 
-    /**
-     * {@inheritDoc}
-     */
     public void init(DerivateViewEditorInput editorInput){
         this.derivateToRootEntityMap = new HashMap<>();
         this.rootElements = new HashSet<>();
@@ -203,9 +203,6 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
     public void createPartControl(Composite parent, EMenuService menuService,
             IEclipseContext context) {
         if (CdmStore.isActive()){
-            if(conversation == null){
-                conversation = CdmStore.createConversation();
-            }
             if(cdmEntitySession == null){
                 cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
             }
@@ -237,7 +234,7 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
         contentProvider = new DerivateContentProvider();
         viewer.setContentProvider(contentProvider);
         labelProvider = new DerivateLabelProvider();
-        labelProvider.setConversation(conversation);
+
         viewer.setLabelProvider(labelProvider);
         viewer.getTree().setEnabled(CdmStore.isActive());
 
@@ -261,44 +258,40 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
     }
 
     public void updateRootEntities(Collection<UUID> derivativeUuids) {
-        if(conversation!=null){
-            if (!conversation.isBound()) {
-                conversation.bind();
-            }
-            /*
-             * If the active session is not the session of the Derivative Editor
-             * then we will save the active session for later, bind temporarily
-             * to our session and rebind to the original session when we are
-             * done. This happens e.g. if a selection change happens in the
-             * taxon editor and "Link with editor" is enabled. The selection
-             * change event and thus the loading in updateRootEntities() happens
-             * in the session of the taxon editor.
-             */
-            ICdmEntitySession previousCdmEntitySession = CdmStore.getCurrentSessionManager().getActiveSession();
-            if(cdmEntitySession != null) {
-                cdmEntitySession.bind();
-            }
-            eventBroker.post(WorkbenchEventConstants.CURRENT_ACTIVE_EDITOR, null);
-            List<SpecimenOrObservationBase> derivates = null;
-            if(derivativeUuids!=null){
-                this.derivateToRootEntityMap = new HashMap<>();
-                this.rootElements = new HashSet<>();
-                derivates = CdmStore.getService(IOccurrenceService.class).load(new ArrayList(derivativeUuids), SPECIMEN_INIT_STRATEGY);
-            }
-            updateRootEntities(derivates);
-            if(previousCdmEntitySession!=null){
-                previousCdmEntitySession.bind();
-            }
+
+        /*
+         * If the active session is not the session of the Derivative Editor
+         * then we will save the active session for later, bind temporarily
+         * to our session and rebind to the original session when we are
+         * done. This happens e.g. if a selection change happens in the
+         * taxon editor and "Link with editor" is enabled. The selection
+         * change event and thus the loading in updateRootEntities() happens
+         * in the session of the taxon editor.
+         */
+        ICdmEntitySession previousCdmEntitySession = CdmStore.getCurrentSessionManager().getActiveSession();
+        if(cdmEntitySession != null) {
+            cdmEntitySession.bind();
+        }
+        eventBroker.post(WorkbenchEventConstants.CURRENT_ACTIVE_EDITOR, null);
+        List<SpecimenOrObservationBase> derivates = null;
+        if(derivativeUuids!=null){
+            this.derivateToRootEntityMap = new HashMap<>();
+            this.rootElements = new HashSet<>();
+            derivates = CdmStore.getService(IOccurrenceService.class).load(new ArrayList(derivativeUuids), SPECIMEN_INIT_STRATEGY);
+        }
+        updateRootEntities(derivates);
+        if(previousCdmEntitySession!=null){
+            previousCdmEntitySession.bind();
         }
-    }
 
+    }
 
     public void updateRootEntities(List<SpecimenOrObservationBase> derivates) {
         if(derivates!=null){
             eventBroker.post(WorkbenchEventConstants.CURRENT_ACTIVE_EDITOR, null);
             this.derivateToRootEntityMap = new HashMap<>();
             this.rootElements = new HashSet<>();
-            for (SpecimenOrObservationBase derivate : derivates) {
+            for (SpecimenOrObservationBase<?> derivate : derivates) {
 
                 if(derivate instanceof FieldUnit){
                     derivateToRootEntityMap.put(derivate, derivate);
@@ -320,15 +313,14 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
         labelProvider.updateLabelCache(rootElements);
         viewer.setInput(rootElements);
         viewer.setComparator(new ViewerComparator() {
-               @Override
-               @SuppressWarnings("unchecked")
-               public int compare(Viewer testViewer, Object e1, Object e2) {
-                       if (((TreeNode)e1).getValue() instanceof SpecimenOrObservationBase){
-                               return ((SpecimenOrObservationBase)((TreeNode)e1).getValue()).getTitleCache().compareTo(((SpecimenOrObservationBase)((TreeNode)e2).getValue()).getTitleCache());
-                       }else{
-                               return e1.toString().compareTo(e2.toString());
-                       }
-                       //return (((SpecimenOrObservationBase) e1).getTitleCache()).compareTo(((SpecimenOrObservationBase) e2).getTitleCache());
+               @Override
+            public int compare(Viewer testViewer, Object e1, Object e2) {
+                       if (((TreeNode)e1).getValue() instanceof SpecimenOrObservationBase){
+                               return ((SpecimenOrObservationBase)((TreeNode)e1).getValue()).getTitleCache().compareTo(((SpecimenOrObservationBase)((TreeNode)e2).getValue()).getTitleCache());
+                       }else{
+                               return e1.toString().compareTo(e2.toString());
+                       }
+                       //return (((SpecimenOrObservationBase) e1).getTitleCache()).compareTo(((SpecimenOrObservationBase) e2).getTitleCache());
                }
        });
 
@@ -339,7 +331,7 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
         //taxon assignment or derivative type are set
         if(derivates!=null && !derivateSearchCompositeController.isDefaultSearch()){
             List<TreeNode> nodesToSelect = new ArrayList<>();
-            for (SpecimenOrObservationBase specimenOrObservationBase : derivates) {
+            for (SpecimenOrObservationBase<?> specimenOrObservationBase : derivates) {
                 nodesToSelect.add(new TreeNode(specimenOrObservationBase));
             }
             setSelection(new StructuredSelection(nodesToSelect));
@@ -364,16 +356,12 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
     public void save(IProgressMonitor monitor) {
         String taskName = Messages.DerivateView_SAVING_HIERARCHY;
         monitor.beginTask(taskName, 3);
-        if (!conversation.isBound()) {
-            conversation.bind();
-            if (!cdmEntitySession.isActive()){
-                cdmEntitySession.bind();
-            }
+
+        if (!cdmEntitySession.isActive()){
+               cdmEntitySession.bind();
         }
-        monitor.worked(1);
 
-        // commit the conversation and start a new transaction immediately
-        conversation.commit(true);
+        monitor.worked(1);
 
         for(AbstractPostOperation entry:operations){
             IStatus status = Status.CANCEL_STATUS;
@@ -431,10 +419,8 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
 
     @Focus
     public void setFocus() {
-        //make sure to bind again if maybe in another view the conversation was unbound
-        if(conversation!=null && !conversation.isBound()){
-            conversation.bind();
-        }
+        //make sure to bind again if maybe in another view the session was unbound
+
         if(cdmEntitySession != null) {
             cdmEntitySession.bind();
         }
@@ -444,19 +430,9 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
         }
     }
 
-    @Override
-    public void update(CdmDataChangeMap changeEvents) {
-    }
-
-    @Override
-    public ConversationHolder getConversationHolder() {
-        return conversation;
-    }
-
     @Override
     public void changed(Object element) {
         setDirty(true);
-        //firePropertyChange(IEditorPart.PROP_DIRTY);
         viewer.update(new TreeNode(element), null);
         viewer.refresh();
     }
@@ -513,7 +489,7 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
             obj = ((TreeNode)obj).getValue();
         }
         rootElements.remove(obj);
-        Object o = this.derivateToRootEntityMap.remove(obj);
+        this.derivateToRootEntityMap.remove(obj);
         viewer.setInput(rootElements);
     }
 
@@ -564,11 +540,7 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
 
     @PreDestroy
     public void dispose() {
-        if(conversation!=null){
-            conversation.close();
-            conversation = null;
-        }
-        if(cdmEntitySession != null) {
+       if(cdmEntitySession != null) {
             cdmEntitySession.dispose();
             cdmEntitySession = null;
         }
@@ -588,13 +560,13 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
         }
         if(listenToSelectionChange){
             selectedTaxon = null;
-            if(activePart.getObject() instanceof TaxonNameEditorE4){
-                selectedTaxon = ((TaxonNameEditorE4) activePart.getObject()).getTaxon();
+            if(activePart.getObject() instanceof TaxonEditor){
+                selectedTaxon = ((TaxonEditor) activePart.getObject()).getTaxon();
             }
             else if(selection != null){
                 Object selectedElement = selection.getFirstElement();
                 if(selectedElement instanceof TaxonNodeDto){
-                    TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).load(((TaxonNodeDto)selectedElement).getTaxonUuid());
+                    TaxonBase<?> taxonBase = CdmStore.getService(ITaxonService.class).load(((TaxonNodeDto)selectedElement).getTaxonUuid());
                     if(HibernateProxyHelper.isInstanceOf(taxonBase, Taxon.class)){
                         selectedTaxon = HibernateProxyHelper.deproxy(taxonBase, Taxon.class);
                     }
@@ -607,9 +579,12 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
                 }
             }
             if(selectedTaxon!=null){
-                Collection<SpecimenOrObservationBase> fieldUnits = CdmStore.getService(IOccurrenceService.class).listFieldUnitsByAssociatedTaxon(selectedTaxon, null, null);
+               boolean includeUnpublished = true;
+               EnumSet<TaxonOccurrenceRelationType> associationFilter = TaxonOccurrenceRelationType.All();
+                Collection<FieldUnit> fieldUnits = CdmStore.getService(IOccurrenceService.class)
+                       .listRootUnitsByAssociatedTaxon(FieldUnit.class, selectedTaxon, includeUnpublished, associationFilter, null, null);       
                 Collection<UUID> uuids = new HashSet<>();
-                for (SpecimenOrObservationBase specimenOrObservationBase : fieldUnits) {
+                for (SpecimenOrObservationBase<?> specimenOrObservationBase : fieldUnits) {
                     uuids.add(specimenOrObservationBase.getUuid());
                 }
                 checkWarnThreshold(uuids);
@@ -634,9 +609,6 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
         return viewer;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public List<SpecimenOrObservationBase<?>> getRootEntities() {
         return new ArrayList<>(rootElements);
@@ -654,20 +626,18 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
         }
     }
 
+    public DerivateSearchCompositeController getSearchController() {
+       return derivateSearchCompositeController;
+    }
+
     public boolean isListenToSelectionChange(){
         return listenToSelectionChange;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void contextStop(IMemento memento, IProgressMonitor monitor) {
         //close view when workbench closes
@@ -679,28 +649,18 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
         }
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void contextStart(IMemento memento, IProgressMonitor monitor) {
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void contextRefresh(IProgressMonitor monitor) {
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
     }
 
-
     @Override
     public boolean isDirty() {
         return dirty.isDirty();
@@ -715,5 +675,4 @@ public class DerivateView implements IPartContentHasFactualData, IConversationEn
     public void expand() {
         viewer.expandAll();
     }
-
-}
+}
\ No newline at end of file
index 3a9369978e5f91b1cf170a948a85d2719d6be4ba..02012818865563cc53516cca6c2a27bae25932db 100644 (file)
@@ -1,4 +1,11 @@
-
+/**
+* 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.editor.view.derivate.handler;
 
 import javax.inject.Named;
@@ -11,8 +18,8 @@ import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.TreeNode;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeCacheStrategy;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacadeCacheStrategy;
 import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
 import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
@@ -49,8 +56,7 @@ public abstract class AbstractAddDerivativeHandler {
 
     private void refreshView(DerivateView derivateView, Object createdElement) {
         if(derivateView!=null){
-            derivateView.getConversationHolder().commit();
-            derivateView.refreshTree(createdElement);
+               derivateView.refreshTree(createdElement);
         }
     }
 
@@ -69,7 +75,7 @@ public abstract class AbstractAddDerivativeHandler {
            DerivedUnit derivedUnit = createDerivative();
            if(derivedUnit!=null){
                specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, derivedUnit, getDerivationeType()));
-               derivedUnit.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
+               derivedUnit.setCacheStrategy(DerivedUnitFacadeCacheStrategy.NewInstance());
                derivedUnit.getTitleCache(); //update title cache
                createdElement = derivedUnit;
                CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase<?>) selectedDerivative, true);
index bee79f6b265dd8247f610bb9d5162ee3784e7dfc..e47f01acbdb2e213caad886dee469c0dd2259f66 100644 (file)
@@ -19,9 +19,6 @@ public class AddConsensusSequenceHandler extends AbstractAddDerivativeHandler{
         return false;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected Object addElement(Object selectedDerivative) {
         Sequence newInstance = Sequence.NewInstance((DnaSample) selectedDerivative, "", 0); //$NON-NLS-1$
@@ -29,22 +26,15 @@ public class AddConsensusSequenceHandler extends AbstractAddDerivativeHandler{
         return newInstance;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected DerivedUnit createDerivative() {
         //not used here
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected DerivationEventType getDerivationeType() {
         //not used here
         return null;
     }
-
 }
\ No newline at end of file
index 48de826624102a34a9a60c76892cbffba41ae9cd..4248adc22d0929f47a46401d603c7b428cecb398 100644 (file)
@@ -1,4 +1,11 @@
-
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
 
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
@@ -11,17 +18,18 @@ public class AddDnaSampleHandler extends AbstractAddDerivativeHandler{
 
     @Override
     protected boolean isAllowed(Object derivative) {
-        if(derivative instanceof FieldUnit || (derivative instanceof DerivedUnit
-                && ((DerivedUnit) derivative).getRecordBasis().equals(SpecimenOrObservationType.PreservedSpecimen))
-                || (derivative instanceof DnaSample && ((DnaSample)derivative).getRecordBasis()==SpecimenOrObservationType.TissueSample)){
+        if(derivative instanceof FieldUnit
+                || (derivative instanceof DerivedUnit
+                        && allowsDnaSample(((DerivedUnit)derivative).getRecordBasis()) )){
             return true;
         }
         return false;
     }
 
-    /**
-     * {@inheritDoc}
-     */
+    private boolean allowsDnaSample(SpecimenOrObservationType recordBasis) {
+        return recordBasis.isPreservedSpecimen() && !recordBasis.equals(SpecimenOrObservationType.DnaSample);
+    }
+
     @Override
     protected DerivedUnit createDerivative() {
         DnaSample dnaSample = DnaSample.NewInstance();
@@ -29,12 +37,8 @@ public class AddDnaSampleHandler extends AbstractAddDerivativeHandler{
         return dnaSample;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected DerivationEventType getDerivationeType() {
         return DerivationEventType.DNA_EXTRACTION();
     }
-
 }
\ No newline at end of file
index deecef6056364185ba51cc74413c4b66cdf26cc2..550ba465f157427b3b8cc346bf6c662c5b3789ef 100644 (file)
@@ -1,38 +1,27 @@
-
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
 
 import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.molecular.DnaSample;
-import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
-import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.MediaSelectionDialog;
 
-public class AddExistingMediaHandler extends AbstractAddDerivativeHandler{
-
-    @Override
-    protected boolean isAllowed(Object derivative) {
-        if(derivative instanceof FieldUnit
-                || (derivative instanceof DerivedUnit && ((DerivedUnit) derivative).getRecordBasis().equals(SpecimenOrObservationType.PreservedSpecimen))
-                || (derivative instanceof DnaSample && ((DnaSample)derivative).getRecordBasis()==SpecimenOrObservationType.TissueSample)
-                || (derivative instanceof DnaSample && ((DnaSample)derivative).getRecordBasis()==SpecimenOrObservationType.DnaSample)){
-            return true;
-        }
-        return false;
-    }
+public class AddExistingMediaHandler extends AddMediaSpecimenHandler{
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected DerivedUnit createDerivative() {
         MediaSpecimen mediaSpecimen = null;
         //select media
-        Media media = MediaSelectionDialog.select(AbstractUtility.getShell(), //null,
-                null);
+        Media media = MediaSelectionDialog.select(AbstractUtility.getShell(), null);
         if(media!=null){
             //create MediaSpecimen
             mediaSpecimen = MediaSpecimen.NewInstance(SpecimenOrObservationType.StillImage);
@@ -40,13 +29,4 @@ public class AddExistingMediaHandler extends AbstractAddDerivativeHandler{
         }
         return mediaSpecimen;
     }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected DerivationEventType getDerivationeType() {
-        return DerivationEventType.ACCESSIONING();
-    }
-
 }
\ No newline at end of file
index 714b6edf4903ad9831ae85d7c2ced30ddc40bf4a..464fa1b378862ebedf3d12447bb61441428e10b4 100644 (file)
@@ -1,10 +1,13 @@
-
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
 
-import javax.inject.Inject;
-
-import org.eclipse.e4.ui.workbench.modeling.EModelService;
-
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
@@ -15,23 +18,26 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 
 public class AddMediaSpecimenHandler extends AbstractAddDerivativeHandler{
 
-//    @Inject
-//    private EModelService modelService;
-
     @Override
     protected boolean isAllowed(Object derivative) {
-        if(derivative instanceof FieldUnit
-                || (derivative instanceof DerivedUnit && ((DerivedUnit) derivative).getRecordBasis().equals(SpecimenOrObservationType.PreservedSpecimen))
-                || (derivative instanceof DnaSample && ((DnaSample)derivative).getRecordBasis()==SpecimenOrObservationType.TissueSample)
-                || (derivative instanceof DnaSample && ((DnaSample)derivative).getRecordBasis()==SpecimenOrObservationType.DnaSample)){
+        if(derivative instanceof FieldUnit || derivative instanceof DnaSample){
+            return true;
+        }else if (derivative instanceof DerivedUnit){
+            DerivedUnit derivedUnit = (DerivedUnit) derivative;
+            if (allowsImageDerivate(derivedUnit.getRecordBasis())){
+                return true;
+            }
             return true;
         }
+
         return false;
     }
 
-    /**
-     * {@inheritDoc}
-     */
+    private boolean allowsImageDerivate(SpecimenOrObservationType recordBasis) {
+        //only from media and human observations it does not make much sense to create a media derivative again (though theoretically possible)
+        return !(recordBasis.isMedia() && recordBasis.equals(SpecimenOrObservationType.HumanObservation));
+    }
+
     @Override
     protected DerivedUnit createDerivative() {
        MediaSpecimen mediaSpecimen =  MediaSpecimen.NewInstance(SpecimenOrObservationType.StillImage);
@@ -39,12 +45,8 @@ public class AddMediaSpecimenHandler extends AbstractAddDerivativeHandler{
         return mediaSpecimen;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected DerivationEventType getDerivationeType() {
         return DerivationEventType.ACCESSIONING();
     }
-
 }
\ No newline at end of file
index 4efac11be28db1087432405b2bad0123b6782725..bb9456f2549b3e2e625488ea7744871602354cd7 100644 (file)
@@ -1,4 +1,11 @@
-
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
@@ -17,10 +24,6 @@ public class AddSingleReadHandler extends AbstractAddDerivativeHandler{
         return false;
     }
 
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected Object addElement(Object selectedDerivative) {
         SingleRead newInstance = SingleRead.NewInstance();
@@ -29,22 +32,15 @@ public class AddSingleReadHandler extends AbstractAddDerivativeHandler{
         return newInstance;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected DerivedUnit createDerivative() {
         //not used here
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected DerivationEventType getDerivationeType() {
         //not used here
         return null;
     }
-
 }
\ No newline at end of file
index 574edec36bdea026c05b73b4ad092336fbf82f73..fdb35108f2941d906db9523cdca89fc185b9f70e 100644 (file)
@@ -1,4 +1,11 @@
-
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
 
 import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
@@ -16,20 +23,13 @@ public class AddSpecimenHandler extends AbstractAddDerivativeHandler{
         return false;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected DerivedUnit createDerivative() {
         return DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected DerivationEventType getDerivationeType() {
         return DerivationEventType.GATHERING_IN_SITU();
     }
-
 }
\ No newline at end of file
index 81f303fc4967b07aaee0fb1c7d2734080fc1502f..79960a28bb3ddc6f4d315ee813c432bdbe4ad5e2 100644 (file)
@@ -1,4 +1,11 @@
-
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
 
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
@@ -18,23 +25,14 @@ public class AddTissueSampleHandler extends AbstractAddDerivativeHandler{
         return false;
     }
 
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected DerivedUnit createDerivative() {
-        DnaSample dnaSample = DnaSample.NewInstance();
-        dnaSample.setRecordBasis(SpecimenOrObservationType.TissueSample);
-        return dnaSample;
+        DnaSample tissueSample = DnaSample.NewTissueSampleAsDnaSampleInstance();
+        return tissueSample;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected DerivationEventType getDerivationeType() {
         return DerivationEventType.PREPARATION();
     }
-
 }
\ No newline at end of file
index cb5b8f30443302a0ecb51af9589f18064085a06b..fadd15b4160c72c0190c2b41d4c4abd66e981cd3 100644 (file)
@@ -1,4 +1,11 @@
-
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
 
 import javax.inject.Named;
@@ -29,7 +36,7 @@ public class CreateFieldUnitHandler {
        public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part, MHandledMenuItem item) {
         DerivateView derivateView = (DerivateView) part.getObject();
         if(item.getElementId().equals(AppModelId.HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CREATE_FIELD_UNIT_FOR_TAXON)){
-            Object selectionInput = derivateView.getSelectionInput();
+            Object selectionInput = derivateView.getSearchController().getSelectedTaxon();
             if(selectionInput instanceof CdmBase && ((CdmBase) selectionInput).isInstanceOf(Taxon.class)){
                 final Taxon taxon = HibernateProxyHelper.deproxy(CdmStore.getService(ITaxonService.class).load(((CdmBase)selectionInput).getUuid()), Taxon.class);
                 if(derivateView.isDirty()){
@@ -52,7 +59,6 @@ public class CreateFieldUnitHandler {
                 CdmStore.getService(ITaxonService.class).merge(taxon);
 
 
-                derivateView.getConversationHolder().commit();
                 derivateView.addFieldUnit(fieldUnit);
                 derivateView.updateRootEntities();
                 derivateView.refreshTree(fieldUnit);
@@ -66,18 +72,17 @@ public class CreateFieldUnitHandler {
             FieldUnit fieldUnit = FieldUnit.NewInstance();
             fieldUnit = CdmBase.deproxy(CdmStore.getService(IOccurrenceService.class).save(fieldUnit), FieldUnit.class);
 
-            derivateView.getConversationHolder().commit();
             derivateView.addFieldUnit(fieldUnit);
             derivateView.updateRootEntities();
             derivateView.refreshTree(fieldUnit);
         }
        }
 
-
        @CanExecute
        public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART) MPart part, MHandledMenuItem item) {
            DerivateView derivateView = (DerivateView) part.getObject();
-           boolean listenToSelectionChange = derivateView.isListenToSelectionChange();
+           boolean listenToSelectionChange = derivateView.getSearchController().getSelectedTaxon()!= null;
+           //boolean listenToSelectionChange = true;
            setItemVisibility(item, listenToSelectionChange);
            if(listenToSelectionChange &&
                    item.getElementId().equals(AppModelId.HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CREATE_FIELD_UNIT_FOR_TAXON)){
@@ -90,7 +95,6 @@ public class CreateFieldUnitHandler {
            return true;
        }
 
-
     private void setItemVisibility(MHandledMenuItem item, boolean isListeningToSelectionChange) {
         if(item.getElementId().equals(AppModelId.HANDLEDMENUITEM_EU_ETAXONOMY_TAXEDITOR_EDITOR_HANDLEDMENUITEM_CREATEFIELDUNIT)){
             item.setVisible(!isListeningToSelectionChange);
@@ -99,5 +103,4 @@ public class CreateFieldUnitHandler {
             item.setVisible(isListeningToSelectionChange);
         }
     }
-
 }
\ No newline at end of file
index e53b66afd3d9f961509d5b578515a402634d23c7..0bcdcee3e5493f1954d38cb7fef90d8a14093e81 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
 
 import java.util.Iterator;
@@ -45,14 +44,11 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.dialog.configurator.deleteConfigurator.DeleteConfiguratorDialog;
 
 /**
- *
  * @author pplitzner
  * @date Oct 21, 2014
- *
  */
 public class DeleteDerivateHandler {
 
-
     private SpecimenDeleteConfigurator deleteConfigurator;
 
     @Execute
@@ -79,13 +75,12 @@ public class DeleteDerivateHandler {
             return;
         }
 
-        for(Iterator iter = selection.iterator();iter.hasNext();){
+        for(Iterator<?> iter = selection.iterator();iter.hasNext();){
             Object object = iter.next();
             if(object instanceof TreeNode){
                 delete((TreeNode)object, derivateView);
             }
         }
-
     }
 
     private void delete(TreeNode treeNode, DerivateView derivateView){
@@ -116,7 +111,6 @@ public class DeleteDerivateHandler {
 
             }
         }
-
     }
 
     public IStatus allowOperations(TreeNode treeNode) {
@@ -128,7 +122,8 @@ public class DeleteDerivateHandler {
             } else{
                 deleteResult = CdmStore.getService(IOccurrenceService.class).isDeletable(((CdmBase)value).getUuid(), deleteConfigurator);
             }
-            if (deleteResult.isOk() || deleteResult.getExceptions().isEmpty()){ return Status.OK_STATUS;}
+            if (deleteResult.isOk() || deleteResult.getExceptions().isEmpty()){
+                return Status.OK_STATUS;}
             else{
                 if (!deleteResult.isOk()){
                     DeleteResultMessagingUtils.messageDialogWithDetails(deleteResult, Messages.DeleteDerivateOperation_DELETE_FAILED, TaxeditorEditorPlugin.PLUGIN_ID);
@@ -137,7 +132,6 @@ public class DeleteDerivateHandler {
                         DeleteResultMessagingUtils.messageDialogWithDetails(deleteResult, Messages.DeleteDerivateHandler_SUCCESSFULL_BUT_EXCEPTIONS, TaxeditorEditorPlugin.PLUGIN_ID);
                     }
                 }
-
                 return Status.CANCEL_STATUS;
             }
         }
@@ -152,5 +146,4 @@ public class DeleteDerivateHandler {
         menuItem.setVisible(canExecute);
         return canExecute;
     }
-
-}
+}
\ No newline at end of file
index 79e8de45c0c11921c80d4b14abb9532e1138d25b..2ca6c19bfb83c73a67004ef436c011822072abf7 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
 
 import java.util.Collections;
@@ -14,43 +22,33 @@ import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
 import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.view.DtoWithEntity;
 
-public class OpenDerivativeEditorForDescriptionElement extends DefaultOpenHandlerBaseE4<IndividualsAssociation> {
-
-//    @Override
-//    protected IndividualsAssociation getEntity(UUID uuid) {
-//        DescriptionElementBase descriptionElement = CdmStore.getService(IDescriptionService.class).loadDescriptionElement(uuid, null);
-//        if(descriptionElement!=null && descriptionElement.isInstanceOf(IndividualsAssociation.class)){
-//            return (IndividualsAssociation) descriptionElement;
-//        }
-//        return null;
-//    }
+/**
+ * Handler to open specimen e.g. from factual data view
+ */
+public class OpenDerivativeEditorForDescriptionElement extends DefaultOpenHandlerBaseE4<IndividualsAssociation, DtoWithEntity<IndividualsAssociation>> {
 
     @Override
-    protected void open(IndividualsAssociation entity, Shell shell, EPartService partService) {
-       if(entity==null || entity.getAssociatedSpecimenOrObservation()==null){
+    protected void open(DtoWithEntity<IndividualsAssociation> entity, Shell shell, EPartService partService) {
+       if(entity==null || entity.getEntity().getAssociatedSpecimenOrObservation()==null){
                MessagingUtils.messageDialog(Messages.OpenDerivativeEditorForDescriptionElement_NO_SPECIMENS, this, Messages.OpenDerivativeEditorForDescriptionElement_NO_SPECIMENS_MESSAGE);
                return;
        }
-        SpecimenOrObservationBase associatedSpecimenOrObservation = entity.getAssociatedSpecimenOrObservation();
+        SpecimenOrObservationBase<?> associatedSpecimenOrObservation = entity.getEntity().getAssociatedSpecimenOrObservation();
         if(associatedSpecimenOrObservation!=null){
             UUID specimenUuid = associatedSpecimenOrObservation.getUuid();
             EditorUtil.openSpecimenEditor(new DerivateViewEditorInput(Collections.singletonList(specimenUuid)), modelService, partService, application);
         }
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    protected boolean canExecute(Object entity) {
-        return true;
+    protected boolean canExecute(DtoWithEntity<IndividualsAssociation> entity) {
+        return IndividualsAssociation.class.isAssignableFrom(entity.getType());
     }
 
     @Override
     protected String getPartId() {
         return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW;
     }
-
-
-}
+}
\ No newline at end of file
index 7772029f98a908bdbcce4da1f15822f6fb3e3dd9..fcea900c234c72aca61f7dad8e3c4f2a5501e976 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
 
 import java.util.ArrayList;
@@ -11,6 +19,7 @@ import org.eclipse.swt.widgets.Shell;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.editor.AppModelId;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
@@ -18,36 +27,26 @@ import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
 import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
-public class OpenDerivativeEditorForGatheringEvent extends DefaultOpenHandlerBaseE4<GatheringEvent> {
+public class OpenDerivativeEditorForGatheringEvent extends DefaultOpenHandlerBaseE4<GatheringEvent, UuidAndTitleCache<GatheringEvent>> {
 
     protected static final String OPEN_DERIVATIVE_EDITOR_FOR_TAXON_NODE_COULD_NOT_OPEN = Messages.OpenDerivativeEditorForTaxonNode_COULD_NOT_OPEN;
 
-//    @Override
-//    protected GatheringEvent getEntity(UUID uuid) {
-//        ICdmBase load = CdmStore.getService(IEventBaseService.class).load(uuid);
-//        return HibernateProxyHelper.deproxy(load, GatheringEvent.class );
-//    }
-
     @Override
-    protected void open(GatheringEvent entity, Shell shell, EPartService partService) {
-        Collection<UUID> specimenUuids = new ArrayList<UUID>();
+    protected void open(UuidAndTitleCache<GatheringEvent> entity, Shell shell, EPartService partService) {
+        Collection<UUID> specimenUuids = new ArrayList<>();
         List<FieldUnit> fieldUnits = CdmStore.getService(IOccurrenceService.class).findFieldUnitsForGatheringEvent(entity.getUuid());
         fieldUnits.forEach(fieldUnit->specimenUuids.add(fieldUnit.getUuid()));
         DerivateViewEditorInput input = new DerivateViewEditorInput(specimenUuids);
         EditorUtil.openSpecimenEditor(input, modelService, partService, application);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    protected boolean canExecute(Object entity) {
-        return true;
+    protected boolean canExecute(UuidAndTitleCache<GatheringEvent> entity) {
+        return GatheringEvent.class.isAssignableFrom(entity.getType());
     }
 
     @Override
     protected String getPartId() {
         return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW;
     }
-
-}
+}
\ No newline at end of file
index 71c9d69618e3aafdbdd43ef5505c1d400cb71b40..2bd2037b34b2c6db84087386d50a5be9d0ed349e 100644 (file)
@@ -1,46 +1,43 @@
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
 
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.editor.AppModelId;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
 import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4;
 
-public class OpenDerivativeEditorForSpecimenOrOBservationBase extends DefaultOpenHandlerBaseE4<SpecimenOrObservationBase<?>>{
+public class OpenDerivativeEditorForSpecimenOrOBservationBase extends DefaultOpenHandlerBaseE4<SpecimenOrObservationBase, UuidAndTitleCache<SpecimenOrObservationBase>>{
 
     protected static final String OPEN_DERIVATIVE_EDITOR_FOR_TAXON_NODE_COULD_NOT_OPEN = Messages.OpenDerivativeEditorForTaxonNode_COULD_NOT_OPEN;
 
-    /**
-     * {@inheritDoc}
-     */
-//    @Override
-//    protected SpecimenOrObservationBase<?> getEntity(UUID uuid) {
-//        return CdmStore.getService(IOccurrenceService.class).load(uuid);
-//    }
-
     @Override
-    protected void open(SpecimenOrObservationBase<?> entity, Shell shell, EPartService partService) {
+    protected void open(UuidAndTitleCache<SpecimenOrObservationBase> entity, Shell shell, EPartService partService) {
         DerivateViewEditorInput input = new DerivateViewEditorInput(entity.getUuid());
         EditorUtil.openSpecimenEditor(input, modelService, partService, application);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    protected boolean canExecute(Object entity) {
+    protected boolean canExecute(UuidAndTitleCache<SpecimenOrObservationBase> entity) {
         //FIXME E4 when bulk editor is migrated then move the handler scope to the bulk editor part descriptor
         //in the model fragment
-        return true;
+        return SpecimenOrObservationBase.class.isAssignableFrom(entity.getType());
     }
 
     @Override
     protected String getPartId() {
         return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW;
     }
-
-}
+}
\ No newline at end of file
index 3c30594929acfcaec9f01ba65fa23f762579d77b..b7a3f1bfa4407b7247af57d670affaab2b62995e 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
 
 import java.util.ArrayList;
@@ -6,13 +14,13 @@ import java.util.List;
 import java.util.UUID;
 
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
-import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.api.service.config.FindOccurrencesConfigurator;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.taxeditor.editor.AppModelId;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
@@ -22,45 +30,31 @@ import eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenHandlerBaseE4
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
-public class OpenDerivativeEditorForTaxonNode extends DefaultOpenHandlerBaseE4<TaxonNodeDto> {
+public class OpenDerivativeEditorForTaxonNode extends DefaultOpenHandlerBaseE4<ITaxonTreeNode, TaxonNodeDto> {
 
     protected static final String OPEN_DERIVATIVE_EDITOR_FOR_TAXON_NODE_COULD_NOT_OPEN = Messages.OpenDerivativeEditorForTaxonNode_COULD_NOT_OPEN;
 
-//    @Override
-//    protected TaxonNode getEntity(UUID uuid) {
-//        return CdmStore.getService(ITaxonNodeService.class).load(uuid);
-//    }
-
     @Override
     protected void open(TaxonNodeDto entity, Shell shell, EPartService partService) {
         FindOccurrencesConfigurator config = new FindOccurrencesConfigurator();
         UUID taxonUuid = entity.getTaxonUuid();
         config.setAssociatedTaxonUuid(taxonUuid);
         List<SpecimenOrObservationBase> specimens = CdmStore.getService(IOccurrenceService.class).findByTitle(config).getRecords();
-        Collection<UUID> specimenUuids = new ArrayList<UUID>();
-        for (SpecimenOrObservationBase specimenOrObservationBase : specimens) {
+        Collection<UUID> specimenUuids = new ArrayList<>();
+        for (SpecimenOrObservationBase<?> specimenOrObservationBase : specimens) {
             specimenUuids.add(specimenOrObservationBase.getUuid());
         }
         DerivateViewEditorInput input = new DerivateViewEditorInput(specimenUuids, taxonUuid);
         EditorUtil.openSpecimenEditor(input, modelService, partService, application);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    protected boolean canExecute(Object selection) {
-
-        if (selection instanceof IStructuredSelection && selection != null && ((IStructuredSelection)selection).getFirstElement() instanceof TaxonNodeDto && ((IStructuredSelection)selection).size() == 1){
-            return (((TaxonNodeDto)((IStructuredSelection)selection).getFirstElement()).getTaxonUuid()!=null && PreferencesUtil.getBooleanValue(PreferencePredicate.ShowSpecimen.getKey()));
-        }
-        return false;
+    protected boolean canExecute(TaxonNodeDto selection) {
+        return selection.getTaxonUuid()!=null && PreferencesUtil.getBooleanValue(PreferencePredicate.ShowSpecimen.getKey());
     }
 
     @Override
     protected String getPartId() {
         return AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_DERIVATEVIEW;
     }
-
-
-}
+}
\ No newline at end of file
index 98a23e14aff3d33f742affd90a58d5d1967c6ce4..618e5d803206fc0eeb4654a190bc1a611b860e71 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
 
 import org.eclipse.e4.core.di.annotations.Execute;
@@ -15,5 +23,4 @@ public class OpenSpecimenEditorFromMenu{
         DerivateViewEditorInput input = new DerivateViewEditorInput();
         EditorUtil.openSpecimenEditor(input, modelService, partService, application);
     }
-
-}
+}
\ No newline at end of file
index 4a0fdfab8aca99e5fdc298ec3e1474547e639588..fae379ef22dda6404edb7aec008b2aec54b101c1 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
 
 import javax.inject.Named;
@@ -36,4 +44,4 @@ public class SingleReadCopyToClipboardHandler {
         menuItem.setVisible(canExecute);
         return canExecute;
     }
-}
+}
\ No newline at end of file
index 13cc2b40910ec40b911286185f22e69ad450b540..2f7e6a4d213a218be2ffdf037673b9d7c58a2ba2 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * Copyright (C) 2014 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
 
 import javax.inject.Named;
@@ -39,7 +47,6 @@ public class SingleReadReuseHandler {
             sequence.addSingleRead(singleRead);
             CdmStore.getService(ISequenceService.class).merge(sequence);
 
-            derivateView.getConversationHolder().commit();
             derivateView.refreshTree();
             LocalSelectionTransfer.getTransfer().setSelection(null);
         }
@@ -63,5 +70,4 @@ public class SingleReadReuseHandler {
         menuItem.setVisible(canExecute);
         return canExecute;
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/ToggleLinkWithTaxonSelectionHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/ToggleLinkWithTaxonSelectionHandler.java
deleted file mode 100644 (file)
index 4b8cc88..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-package eu.etaxonomy.taxeditor.editor.view.derivate.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
-
-public class ToggleLinkWithTaxonSelectionHandler {
-
-    @Execute
-    public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part){
-        DerivateView derivateView = (DerivateView) part.getObject();
-        derivateView.toggleListenToSelectionChange(part);
-    }
-
-    @CanExecute
-    public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART) MPart part, MHandledMenuItem item){
-        DerivateView derivateView = (DerivateView) part.getObject();
-        if(derivateView.isListenToSelectionChange()){
-            item.setLabel(Messages.ToggleLinkWithTaxonSelectionHandler_UNLINK);
-        }
-        else{
-            item.setLabel(Messages.ToggleLinkWithTaxonSelectionHandler_LINK);
-        }
-        return true;
-    }
-}
index fe4de88ffb8cc9ed70b74bf26cc91c26cde7fbf8..541924edfbb908670644c6db3d57c974bdcc5f75 100644 (file)
@@ -77,7 +77,6 @@ public class MoveDerivateOperation extends AbstractPostOperation<CdmBase>  {
                 derivateView.remove(draggedNode.getValue());
             }
             //update DerivateView
-            derivateView.getConversationHolder().commit();
             LocalSelectionTransfer.getTransfer().setSelection(null);
             return postExecute(null);
         }
index 1216a1b097b80d1561175418ee96bade3d036905..dbdc5098495a71a4e27d18dadf95259cbf3c1e26 100644 (file)
@@ -19,7 +19,6 @@ import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Widget;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.config.FindOccurrencesConfigurator;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
@@ -34,7 +33,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.SearchManager;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
 import eu.etaxonomy.taxeditor.ui.mvc.combo.EnumTermComboController;
-import eu.etaxonomy.taxeditor.view.search.derivative.DerivateLabelProvider;
 
 /**
  * Controller class for the {@link DerivateSearchComposite}.<br>
@@ -46,7 +44,6 @@ public class DerivateSearchCompositeController implements Listener{
 
     private final DerivateSearchComposite derivateSearchComposite;
     private EnumTermComboController<SpecimenOrObservationType> comboSpecimenTypeController;
-       private DerivateLabelProvider labelProvider;
        private Taxon selectedTaxon;
     private DerivateView derivativeEditor;
 
@@ -68,7 +65,6 @@ public class DerivateSearchCompositeController implements Listener{
         derivateSearchComposite.getButtonSearch().addListener(SWT.Selection, this);
         derivateSearchComposite.getBtnBrowseTaxa().addListener(SWT.Selection, this);
         derivateSearchComposite.getBtnClearTaxon().addListener(SWT.Selection, this);
-
     }
 
     private void searchDerivates(){
@@ -123,8 +119,7 @@ public class DerivateSearchCompositeController implements Listener{
             searchDerivates();
         }
         else if(eventSource==derivateSearchComposite.getBtnBrowseTaxa()){
-            selectedTaxon = SelectionDialogFactory.getSelectionFromDialog(Taxon.class, this.derivateSearchComposite.getShell(), //derivativeEditor.getConversationHolder(),
-                    null);
+            selectedTaxon = SelectionDialogFactory.getSelectionFromDialog(Taxon.class, this.derivateSearchComposite.getShell(), null);
             if(selectedTaxon!=null){
                 derivateSearchComposite.getTextTaxonName().setText(selectedTaxon.getTitleCache());
             }
@@ -138,6 +133,7 @@ public class DerivateSearchCompositeController implements Listener{
             derivateSearchComposite.getComboTaxonAssignment().select(DerivateSearchComposite.ALL_SPECIMENS);
             derivateSearchComposite.getComboTaxonAssignment().setEnabled(true);
             derivateSearchComposite.getLbltaxonAssignment().setEnabled(true);
+
         }
     }
 
@@ -154,7 +150,11 @@ public class DerivateSearchCompositeController implements Listener{
         }
     }
 
-    public void setLayoutData(Object layoutData){
+    public Taxon getSelectedTaxon() {
+               return selectedTaxon;
+       }
+
+       public void setLayoutData(Object layoutData){
         derivateSearchComposite.setLayoutData(layoutData);
     }
 
@@ -182,9 +182,7 @@ public class DerivateSearchCompositeController implements Listener{
         selectedTaxon = null;
     }
 
-    public void setConversation(ConversationHolder conversationHolder) {
-        labelProvider.setConversation(conversationHolder);
-    }
+
 
     public void setTaxonFilter(UUID taxonUuid) {
         TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).load(taxonUuid);
index c11d0c582d6ba5a7218a11853815daaca3480fa5..b545754c64269d0eb0fbe61a64f2be4c9774bdde 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.view.descriptive;
 
 import java.util.ArrayList;
@@ -26,12 +25,11 @@ import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 /**
  * @author n.hoffmann
  * @created Feb 8, 2011
- * @version 1.0
  */
 public class DescriptionElementDragListener extends DragSourceAdapter {
 
        private FactualDataPartE4 part;
-       private DescriptionBase description;
+       private DescriptionBase<?> description;
 
        public DescriptionElementDragListener(FactualDataPartE4 part){
                this.part = part;
@@ -83,7 +81,6 @@ public class DescriptionElementDragListener extends DragSourceAdapter {
                        }
 
                }
-
        }
 
        /**
@@ -93,5 +90,4 @@ public class DescriptionElementDragListener extends DragSourceAdapter {
     public void dragStart(DragSourceEvent event) {
                event.doit = !part.getViewer().getSelection().isEmpty();
        }
-
-}
+}
\ No newline at end of file
index 88e3ca67b797c1a858895500e3102b7b65979302..90b156d7ac3da5f7d736e4fa5919b3aea6c03a25 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.view.descriptive;
 
 import java.util.ArrayList;
@@ -19,39 +18,29 @@ import org.eclipse.swt.dnd.TransferData;
 
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.SpecimenDescription;
-import eu.etaxonomy.cdm.model.description.TaxonDescription;
-import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
+import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.MoveDescriptionElementsOperation;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.EditViewerDropAdapter;
 
 /**
  * @author n.hoffmann
  * @created Feb 8, 2011
- * @version 1.0
  */
 public class DescriptionElementDropAdapter extends EditViewerDropAdapter {
 
     private static final String OPERATION_NOT_SUPPORTED_YET = Messages.DescriptionElementDropAdapter_NOT_SUPPORTED;
 
-
-
-    /**
-        * @param viewer
-        */
        public DescriptionElementDropAdapter(Viewer viewer) {
                super(viewer);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.ViewerDropAdapter#performDrop(java.lang.Object)
-        */
        @Override
        public boolean performDrop(Object data) {
                DescriptionBase target = (DescriptionBase) getCurrentTarget();
@@ -61,6 +50,7 @@ public class DescriptionElementDropAdapter extends EditViewerDropAdapter {
 
                boolean isCopy = getCurrentOperation() == DND.DROP_COPY ? true : false;
                DescriptionBase<?> description = null;
+               boolean containsSpecimen = false;
                // cannot drop a feature node onto itself
                if (droppedElements != null){
                        for (Object droppedElement : droppedElements) {
@@ -78,7 +68,7 @@ public class DescriptionElementDropAdapter extends EditViewerDropAdapter {
                                        }
                                        for (Object element : target.getElements()){
                                            if (element instanceof DescriptionElementBase){
-                                              if( !((DescriptionElementBase)element).isPersited()){
+                                              if( !((DescriptionElementBase)element).isPersisted()){
                                                   MessagingUtils.warningDialog(OPERATION_NOT_SUPPORTED_YET, this, Messages.DescriptionElementDropAdapter_NOT_SUPPORTED_NEW_ELEMENT_IN_DESCRIPTION);
                                            return false;
                                               }
@@ -87,7 +77,7 @@ public class DescriptionElementDropAdapter extends EditViewerDropAdapter {
                                        }
                                        for (Object element : descriptionElement.getInDescription().getElements()){
                         if (element instanceof DescriptionElementBase){
-                           if( !((DescriptionElementBase)element).isPersited()){
+                           if( !((DescriptionElementBase)element).isPersisted()){
                                MessagingUtils.warningDialog(OPERATION_NOT_SUPPORTED_YET, this, Messages.DescriptionElementDropAdapter_NOT_SUPPORTED_NEW_ELEMENT_IN_DESCRIPTION);
                                 return false;
                            }
@@ -97,29 +87,26 @@ public class DescriptionElementDropAdapter extends EditViewerDropAdapter {
                                        description = descriptionElement.getInDescription();
                                        description.removeElement(descriptionElement);
                                        target.addElement(descriptionElement);
-
-                                       if (description.getElements().isEmpty() ){
-                                           if (description instanceof TaxonDescription){
-                                               ((TaxonDescription)description).getTaxon().removeDescription((TaxonDescription)description, false);
-                                           }else if (description instanceof TaxonNameDescription){
-                                               ((TaxonNameDescription)description).getTaxonName().removeDescription((TaxonNameDescription)description);
-                                           } else if (description instanceof SpecimenDescription){
-                            ((SpecimenDescription)description).getDescribedSpecimenOrObservation().removeDescription(description);
+                                       if (descriptionElement instanceof IndividualsAssociation && PreferencesUtil.getBooleanValue("AskForNewCurrentDetermination")) {
+                                           if (((IndividualsAssociation)descriptionElement).getAssociatedSpecimenOrObservation() != null && !((IndividualsAssociation)descriptionElement).getAssociatedSpecimenOrObservation().getDeterminations().isEmpty()) {
+                            containsSpecimen = true;
                         }
                                        }
                                        descriptionElements.add(descriptionElement);
                                }
                        }
-                       TaxonNameEditorE4 editor = null;
+                       TaxonEditor editor = null;
                        Object activePart = EditorUtil.getActivePart();
                        if (activePart instanceof FactualDataPartE4){
                            MPart selectionProvidingPart =((FactualDataPartE4)activePart).getSelectionProvidingPart();
                            Object obj = selectionProvidingPart.getObject();
-                           if (obj instanceof TaxonNameEditorE4){
-                               editor = (TaxonNameEditorE4) obj;
+                           if (obj instanceof TaxonEditor){
+                               editor = (TaxonEditor) obj;
                            }
                        }
-                       AbstractPostTaxonOperation operation = new MoveDescriptionElementsOperation(Messages.DescriptionElementDropAdapter_MOVE_DESC, EditorUtil.getUndoContext(), target, description, descriptionElements, isCopy, null, sync, false);
+
+
+                       AbstractPostTaxonOperation operation = new MoveDescriptionElementsOperation(Messages.DescriptionElementDropAdapter_MOVE_DESC, EditorUtil.getUndoContext(), target, description, descriptionElements, isCopy, null, sync, false, containsSpecimen);
 
                        editor.getEditorInput().addOperation(operation);
                        editor.setDirty();
@@ -132,15 +119,17 @@ public class DescriptionElementDropAdapter extends EditViewerDropAdapter {
 
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.ViewerDropAdapter#validateDrop(java.lang.Object, int, org.eclipse.swt.dnd.TransferData)
-        */
        @Override
        public boolean validateDrop(Object target, int operation,
                        TransferData transferData) {
-               boolean transferDataIsSupported = DescriptionElementTransfer.getInstance().isSupportedType(
-                               transferData);
+               boolean transferDataIsSupported = true;
+               if (target instanceof DescriptionBase){
+                       if((((DescriptionBase)target).isComputed() || ((DescriptionBase)target).isCloneForSource())&& PreferencesUtil.isComputedDesciptionHandlingDisabled()){
+                               transferDataIsSupported = false;
+                       }
+               }
+               transferDataIsSupported = DescriptionElementTransfer.getInstance().isSupportedType(
+                               transferData) && transferDataIsSupported;
                return target instanceof DescriptionBase && transferDataIsSupported;
        }
-
-}
+}
\ No newline at end of file
index 005f1199ff6435fa53fdd8887a226273b45975d1..2789603f685ff0fc6a9966cd12754a240921c971 100644 (file)
@@ -1,17 +1,16 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.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;
@@ -19,41 +18,31 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author n.hoffmann
  * @created Feb 8, 2011
- * @version 1.0
  */
 public class DescriptionElementTransfer extends CdmObjectTransfer<DescriptionElementBase> {
 
        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(){}
-       
-       /* (non-Javadoc)
-        * @see org.eclipse.swt.dnd.Transfer#getTypeIds()
-        */
+
        @Override
        protected int[] getTypeIds() {
                return new int[] { TYPEID };
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.swt.dnd.Transfer#getTypeNames()
-        */
        @Override
        protected String[] getTypeNames() {
                return new String[] { TYPE_NAME };
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.model.CdmObjectTransfer#loadElement(java.util.UUID)
-        */
        @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 212042a661c02caf0271fd391004673306d08b3d..7a757b81444569b153dcfdb685c761eda24e0ef9 100644 (file)
@@ -17,9 +17,11 @@ import org.eclipse.jface.viewers.Viewer;
 import eu.etaxonomy.cdm.model.common.Marker;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.DescriptionType;
 import eu.etaxonomy.cdm.model.description.IDescribable;
 import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
 import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
+import eu.etaxonomy.cdm.model.metadata.EnabledComputedDescription;
 import eu.etaxonomy.cdm.model.term.TermTree;
 import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
@@ -148,10 +150,11 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
 
        private FeatureNodeContainerTree getContainerTreeForDesription(DescriptionBase<?> description){
                if(! featureNodeContainerCache.containsKey(description)){
-                       FeatureNodeContainerTree containerTree = new FeatureNodeContainerTree(description, getFeatureTree(description));
+                       FeatureNodeContainerTree containerTree = new FeatureNodeContainerTree(description, TermEditorInput.getCompleteFeatureTree());
                        featureNodeContainerCache.put(description, containerTree);
                }
                return featureNodeContainerCache.get(description);
+
        }
 
        @Override
@@ -175,10 +178,14 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
         * @param description
         * @return
         */
-       private TermTree getFeatureTree(DescriptionBase description){
+       public TermTree getFeatureTree(DescriptionBase description){
 
                TermTree<?> featureTree = null;
 
+               if (description instanceof TaxonNameDescription){
+
+                return PreferencesUtil.getPreferredFeatureTreeForNameDescription(false);
+            }
                // TODO change this to the feature tree associated with this taxon
                // description
                if (description.hasStructuredData()) {
@@ -191,16 +198,9 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
 
                if (featureTree == null) {
                    featureTree = TermEditorInput.getDefaultFeatureTree();
-                           }
-               if (description instanceof TaxonNameDescription){
-
-                   featureTree = TermEditorInput.getDefaultNameFeatureTree();
                }
 
                return featureTree;
-
-
-
        }
 
     /**
@@ -210,7 +210,7 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
      */
     protected List<DescriptionBase<?>> getDescriptions(IDescribable<?> parentElement) {
         Set<? extends DescriptionBase<?>> elementDescriptions = parentElement.getDescriptions();
-        List<DescriptionBase<?>> resultDescriptions = new ArrayList<DescriptionBase<?>>();
+        List<DescriptionBase<?>> resultDescriptions = new ArrayList<>();
         for(DescriptionBase<?> description : elementDescriptions){
                        if(! description.isImageGallery()){
                                Set<Marker> descriptionMarkers = description.getMarkers();
@@ -222,7 +222,11 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
                                        }
                                }
                                else {
-                                       resultDescriptions.add(description);
+                                   if (description.isComputed() && PreferencesUtil.getComputedDesciptionHandlingPreference().equals(EnabledComputedDescription.Invisible)){
+                                       continue;
+                                   }
+                                   resultDescriptions.add(description);
+
                                }
                        }
                }
index 2da6e7692553f6036e693c6048a28cd6b8e2637c..dfdbbd20e0f9acb86a63e1f65b5bd0239ef2e1ae 100644 (file)
@@ -9,21 +9,26 @@
 package eu.etaxonomy.taxeditor.editor.view.descriptive;
 
 import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
-import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
 import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
 
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.DescriptionType;
 import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.MatrixUtility;
 import eu.etaxonomy.taxeditor.model.DescriptionHelper;
+import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
  * @author p.ciardelli
  */
-public class DescriptiveLabelProvider extends ColumnLabelProvider implements IStyledLabelProvider  {
-
+public class DescriptiveLabelProvider extends ColumnLabelProvider   {
     private static final String TRUNCATE_SIGN = "..."; //$NON-NLS-1$
     private static final int MAX_LENGTH = 150;
 
@@ -38,15 +43,28 @@ public class DescriptiveLabelProvider extends ColumnLabelProvider implements ISt
        }
 
        @Override
-    public StyledString getStyledText(Object element) {
-               return new StyledString(getText(element), StyledString.QUALIFIER_STYLER);
+    public Font getFont(Object element) {
+
+           Font result = super.getFont(element);
+           if (element instanceof DescriptionBase && ((DescriptionBase)element).isDefault()) {
+              FontData fontData = new FontData("Bold", 9, SWT.BOLD);
+              Font font = new Font(null, fontData);
+              return font;
+           }
+           return result;
+
+
+
        }
 
        @Override
        public Image getImage(Object element) {
            if(element instanceof DescriptionBase){
                DescriptionBase<?> description = (DescriptionBase<?>)element;
-               if(description.getTypes().contains(DescriptionType.AGGREGATED_STRUC_DESC)){
+               if (!description.isPublish()) {
+                   return ImageResources.getImage(ImageResources.PROHIBITED);
+               }
+               if(description.isComputed()){
                    return MatrixUtility.getAggregatedDescriptionIcon();
                }
                else if(description.getTypes().contains(DescriptionType.SECONDARY_DATA)){
@@ -57,8 +75,27 @@ public class DescriptiveLabelProvider extends ColumnLabelProvider implements ISt
                }
                else if(description.getTypes().contains(DescriptionType.CLONE_FOR_SOURCE)){
                 return ImageResources.getImage(ImageResources.COPY_ICON);
+            }
+               else if(description.getTypes().contains(DescriptionType.INDIVIDUALS_ASSOCIATION)){
+                return ImageResources.getImage(ImageResources.SPECIMEN_DERIVATE);
             }
            }
            return null;
        }
+
+       @Override
+    public Color getForeground(Object element) {
+           DescriptionBase<?> desc = null;
+           if (element instanceof DescriptionBase){
+               desc = (DescriptionBase<?>)element;
+           }else if (element instanceof DescriptionElementBase){
+               desc = ((DescriptionElementBase)element).getInDescription();
+           }else if (element instanceof FeatureNodeContainer){
+               desc = ((FeatureNodeContainer)element).getDescription();
+           }
+           if (desc != null && desc.isComputed() && PreferencesUtil.isComputedDesciptionHandlingDisabled()){
+               return Display.getCurrent().getSystemColor(SWT.COLOR_GRAY);
+           }
+           return null;
+    }
 }
@@ -1,36 +1,38 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.view.descriptive;
 
 import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.jface.viewers.ViewerComparator;
 
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.taxeditor.model.DescriptionHelper;
 
 /**
  * @author n.hoffmann
  * @created Dec 2, 2010
- * @version 1.0
  */
-public class DescriptiveViewerSorter extends ViewerSorter {
+public class DescriptiveViewerComparator extends ViewerComparator {
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-        */
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
                if((e1 instanceof DescriptionElementBase) && (e2 instanceof DescriptionElementBase)){
-                       return DescriptionHelper.getLabel((DescriptionElementBase)e1).compareTo(DescriptionHelper.getLabel((DescriptionElementBase)e2));
+                       return DescriptionHelper.getLabel(e1).compareTo(DescriptionHelper.getLabel(e2));
+               }
+               if ((e1 instanceof DescriptionBase) && (e2 instanceof DescriptionBase) && (((DescriptionBase)e1).isDefault() || ((DescriptionBase)e2).isDefault())) {
+                   if (((DescriptionBase) e1).isDefault()){
+                       return -1;
+                   }else {
+                       return 1;
+                   }
                }
                return super.compare(viewer, e1, e2);
        }
-       
-}
+}
\ No newline at end of file
index 6b36b52363eeca7febcbc5e2f547851c2c70c8b9..bbd8f6b491be5c78c67feef054c13654baaff6f2 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2017 EDIT
 * European Distributed Institute of Taxonomy
@@ -42,17 +41,18 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.IDescribable;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 import eu.etaxonomy.taxeditor.editor.ITaxonEditor;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.concept.e4.ConceptViewPartE4;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementDragListener;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementDropAdapter;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementTransfer;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveContentProvider;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveLabelProvider;
-import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewerSorter;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewerComparator;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.NameDescriptionFilter;
 import eu.etaxonomy.taxeditor.editor.view.media.e4.MediaViewPartE4;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
@@ -63,7 +63,7 @@ import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
-import eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPartE4;
+import eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPart;
 import eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4;
 import eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4;
 import eu.etaxonomy.taxeditor.workbench.part.ICollapsableExpandable;
@@ -72,15 +72,15 @@ import eu.etaxonomy.taxeditor.workbench.part.ICollapsableExpandable;
  * @author pplitzner
  * @date 15.08.2017
  */
-public class FactualDataPartE4 extends AbstractCdmEditorPartE4
-        implements IPartContentHasDetails, IPartContentHasSupplementalData, ICdmEntitySessionEnabled,
-        ICollapsableExpandable {
+public class FactualDataPartE4 extends AbstractCdmEditorPart<TreeViewer>
+        implements IPartContentHasDetails, IPartContentHasSupplementalData,
+               ICdmEntitySessionEnabled<CdmBase>, ICollapsableExpandable {
 
     /**
      * Maps {@link FeatureNodeContainerTree} to their corresponding {@link TaxonDescritpion}.<br>
      * This serves as input for the {@link ITreeContentProvider} of the {@link TreeViewer}
      */
-    protected Map<DescriptionBase<?>, FeatureNodeContainerTree> featureNodeContainerCache = new HashMap<DescriptionBase<?>, FeatureNodeContainerTree>();
+    protected Map<DescriptionBase<?>, FeatureNodeContainerTree> featureNodeContainerCache = new HashMap<>();
 
     protected int dndOperations = DND.DROP_COPY | DND.DROP_MOVE;
 
@@ -97,14 +97,13 @@ public class FactualDataPartE4 extends AbstractCdmEditorPartE4
         provider = new DescriptiveContentProvider(featureNodeContainerCache);
         treeViewer.setContentProvider(provider);
         treeViewer.setLabelProvider(new DescriptiveLabelProvider());
-        treeViewer.setSorter(new DescriptiveViewerSorter());
+        treeViewer.setComparator(new DescriptiveViewerComparator());
         treeViewer.setFilters(new NameDescriptionFilter());
         treeViewer.setAutoExpandLevel(2);
         Transfer[] transfers = new Transfer[] { DescriptionElementTransfer.getInstance() };
         treeViewer.addDragSupport(dndOperations, transfers, new DescriptionElementDragListener(
                 this));
 
-
         viewer = treeViewer;
 
         // Propagate selection from viewer
@@ -122,27 +121,25 @@ public class FactualDataPartE4 extends AbstractCdmEditorPartE4
 
     @Override
     public void selectionChanged_internal(Object selection, MPart activePart, MPart thisPart) {
-        if(activePart==thisPart){
+        if(activePart == thisPart){
             return;
         }
 
-        Object partObject = createPartObject(activePart);
-
-
+        Object partObject = getPartObject(activePart);
 
-        if ((partObject instanceof DetailsPartE4 && !(selection instanceof TaxonName))|| partObject instanceof SupplementalDataPartE4
-                || partObject instanceof MediaViewPartE4 || partObject instanceof ConceptViewPartE4 || ((partObject instanceof AbstractCdmEditorPartE4) &&(((AbstractCdmEditorPartE4)partObject).getViewer().getInput() instanceof DescriptionElementBase))) {
+        if ((partObject instanceof DetailsPartE4 && !(selection instanceof TaxonName) )
+              || partObject instanceof SupplementalDataPartE4
+              || partObject instanceof MediaViewPartE4
+              || partObject instanceof ConceptViewPartE4
+              || ((partObject instanceof AbstractCdmEditorPart) &&(((AbstractCdmEditorPart<?>)partObject).getViewer().getInput() instanceof DescriptionElementBase))) {
             // do not show empty page as these views are also used to edit the
             // description selected in this view
             return;
         }
 
-
         if(partObject instanceof IPartContentHasFactualData ){
-
             if (!viewer.getControl().isDisposed()){
                 viewer.getControl().setEnabled(isEnabled());
-
             }
 
             IStructuredSelection structuredSelection = createSelection(selection);
@@ -152,8 +149,8 @@ public class FactualDataPartE4 extends AbstractCdmEditorPartE4
             }
 
             Object firstElement = structuredSelection.getFirstElement();
-            if (partObject instanceof TaxonNameEditorE4){
-                if (firstElement != ((TaxonNameEditorE4)partObject).getTaxon()){
+            if (partObject instanceof TaxonEditor){
+                if (firstElement != ((TaxonEditor)partObject).getTaxon()){
                     showEmptyPage();
                     return;
                 }
@@ -164,12 +161,16 @@ public class FactualDataPartE4 extends AbstractCdmEditorPartE4
             }
             if(firstElement instanceof IDescribable<?>
                 && partObject instanceof IPartContentHasFactualData
-                    && !(firstElement instanceof SpecimenOrObservationBase && partObject instanceof BulkEditorE4)){
-                   // && !(firstElement instanceof TaxonName && partObject instanceof BulkEditorE4)){
-                if (firstElement instanceof TaxonName ){
+                    && !(firstElement instanceof SpecimenOrObservationBase && partObject instanceof BulkEditor)){
+                   // && !(firstElement instanceof TaxonName && partObject instanceof BulkEditor)){
+                if (firstElement instanceof TaxonName){
                     thisPart.setLabel(Messages.NameFactsDataView_Lable);
-                }else{
-                    thisPart.setLabel(Messages.FactualDataView_Lable);
+                }else if (firstElement instanceof TaxonBase){
+                       thisPart.setLabel(Messages.TaxaFactsDataView_Lable);
+                }else if (firstElement instanceof SpecimenOrObservationBase) {
+                    thisPart.setLabel(Messages.OccurrenceFactsDataView_Lable);
+                }else {
+                        thisPart.setLabel(Messages.FactualDataView_Lable);
                 }
 //                featureNodeContainerCache.clear();
                 showViewer(structuredSelection, activePart, viewer);
@@ -193,7 +194,7 @@ public class FactualDataPartE4 extends AbstractCdmEditorPartE4
     public void changed(Object object) {
         Object[] expandedObjects = null;
         if (!viewer.getControl().isDisposed()){
-            expandedObjects = ((TreeViewer)viewer).getExpandedElements();
+            expandedObjects = viewer.getExpandedElements();
         }else{
             return;
         }
@@ -203,35 +204,38 @@ public class FactualDataPartE4 extends AbstractCdmEditorPartE4
 
         viewer.refresh();
         super.changed(object);
-        ((TreeViewer) viewer).setExpandedElements(expandedObjects);
+        viewer.setExpandedElements(expandedObjects);
         if(object instanceof DescriptionElementBase){
             DescriptionElementBase descriptionElement = (DescriptionElementBase) object;
-            DescriptionBase description = descriptionElement.getInDescription();
+            DescriptionBase<?> description = descriptionElement.getInDescription();
             FeatureNodeContainerTree containerTree = featureNodeContainerCache.get(description);
-            FeatureNodeContainer featureNodeContainer = containerTree.getFeatureNodeContainerForDescriptionElement(descriptionElement);
-            ((AbstractTreeViewer) viewer).expandToLevel(featureNodeContainer, 2);
-            StructuredSelection selection = new StructuredSelection(object);
-            viewer.setSelection(selection, true);
+            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);
+            }
+               StructuredSelection selection = new StructuredSelection(object);
+               viewer.setSelection(selection, true);
         }
-
-
-
     }
 
     @Inject
     @Optional
     private void updateView(@UIEventTopic(WorkbenchEventConstants.SAVE_TAXON)boolean refresh){
         if(refresh){
-            Object[] expandedObjects = ((TreeViewer)viewer).getExpandedElements();
+            Object[] expandedObjects = viewer.getExpandedElements();
             viewer.refresh();
-            ((TreeViewer)viewer).collapseAll();
+            viewer.collapseAll();
             if (expandedObjects.length>0){
-                ((TreeViewer)viewer).setExpandedElements(expandedObjects);
+                viewer.setExpandedElements(expandedObjects);
             }
         }
     }
 
-
     @Inject
     @Optional
     private void updateView(@UIEventTopic(WorkbenchEventConstants.CURRENT_ACTIVE_EDITOR)ITaxonEditor editor){
@@ -240,24 +244,14 @@ public class FactualDataPartE4 extends AbstractCdmEditorPartE4
         }
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void collapse() {
-        if(viewer instanceof TreeViewer) {
-            ((TreeViewer) viewer).collapseAll();
-        }
+        viewer.collapseAll();
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void expand() {
-        if(viewer instanceof TreeViewer) {
-            ((TreeViewer) viewer).expandAll();
-        }
+        viewer.expandAll();
     }
 
     public void toggleShowOnlyIndividualAssociations(){
@@ -268,15 +262,16 @@ public class FactualDataPartE4 extends AbstractCdmEditorPartE4
     @Override
     public ICdmEntitySession getCdmEntitySession() {
         if(selectionProvidingPart != null && selectionProvidingPart instanceof ICdmEntitySessionEnabled) {
-            return ((ICdmEntitySessionEnabled) selectionProvidingPart).getCdmEntitySession();
+            return ((ICdmEntitySessionEnabled<?>) selectionProvidingPart).getCdmEntitySession();
         }
         return null;
     }
 
     @Override
-    public  List<? extends CdmBase> getRootEntities() {
+    public  List<CdmBase> getRootEntities() {
         return Arrays.asList((CdmBase)getViewer().getInput());
     }
+
     @Override
     public Map<Object, List<String>> getPropertyPathsMap() {
         return null;
@@ -285,17 +280,14 @@ public class FactualDataPartE4 extends AbstractCdmEditorPartE4
     @Override
     protected void showViewer(IStructuredSelection selection, MPart activePart, Viewer viewer){
         Object[] expandedObjects = null;
-        if (!((TreeViewer)this.getViewer()).getControl().isDisposed()){
-            expandedObjects = ((TreeViewer)this.getViewer()).getExpandedElements();
+        if (!this.getViewer().getControl().isDisposed()){
+            expandedObjects = this.getViewer().getExpandedElements();
         }
         super.showViewer(selection, activePart, viewer);
         if (expandedObjects == null || expandedObjects.length == 0){
-            ((TreeViewer)this.viewer).expandToLevel(2);
+            this.viewer.expandToLevel(2);
         }else{
-            ((TreeViewer)this.viewer).setExpandedElements(expandedObjects);
+            this.viewer.setExpandedElements(expandedObjects);
         }
     }
-
-
-
 }
\ No newline at end of file
index 2f7084eaa1c21852ab649688748801ce7ab5d725..c254e5cd9b49942073cb56809c76a57e5cbf57b6 100644 (file)
@@ -27,14 +27,19 @@ 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.Feature;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateDescriptionElementOperation;
+import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -54,11 +59,19 @@ public class CreateDescriptionElementHandlerE4 {
         String commandId = menuItem.getCommand().getElementId();
         UUID uuid = (UUID) menuItem.getTransientData().get(commandId+".feature.uuid");
         Feature feature = HibernateProxyHelper.deproxy(CdmStore.getService(ITermService.class).load(uuid), Feature.class);
-
-        FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
-
-        DescriptionBase description = null;
         Object object = selection.getFirstElement();
+        if (activePart.getObject() instanceof TaxonEditor && object == null) {
+            object = ((TaxonEditor)activePart.getObject()).getTaxon();
+        }
+        FactualDataPartE4 factualDataPart = null;
+        if (activePart.getObject() instanceof FactualDataPartE4 ) {
+            factualDataPart = (FactualDataPartE4) activePart.getObject();
+            if(factualDataPart.getSelectionProvidingPart().getObject() instanceof TaxonEditor && object == null) {
+                object = ((TaxonEditor)factualDataPart.getSelectionProvidingPart().getObject()).getTaxon();
+            }
+        }
+        DescriptionBase description = null;
+
         if(object instanceof FeatureNodeContainer){
             description = ((FeatureNodeContainer) object).getDescription();
         }
@@ -68,7 +81,16 @@ public class CreateDescriptionElementHandlerE4 {
         }
         else if (object instanceof DescriptionBase) {
             description = HibernateProxyHelper.deproxy(object, DescriptionBase.class);
-        } else {
+        }
+        else if (object instanceof Taxon) {
+            Taxon taxon = (Taxon)object;
+            description = taxon.getDefaultDescription();
+            if (description == null) {
+                description = TaxonDescription.NewInstance(taxon);
+                description.setDefault(true);
+            }
+        } 
+        else {
             MessagingUtils.error(getClass(), new IllegalArgumentException("Could not determine the taxon description")); //$NON-NLS-1$
             return;
         }
@@ -82,11 +104,50 @@ public class CreateDescriptionElementHandlerE4 {
     public boolean canExecute(MHandledMenuItem menuItem,
             @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection){
         boolean canExecute = false;
-        canExecute = selection.size()==1
-                &&
-                (selection.getFirstElement() instanceof DescriptionBase
-                || selection.getFirstElement() instanceof DescriptionElementBase
-                || selection.getFirstElement() instanceof FeatureNodeContainer);
+        DescriptionBase description = null;
+        Object object = selection.getFirstElement();
+        if (object == null) {
+            MPart activePart = EventUtility.getActivePart();
+            Object o = activePart.getObject();
+            if (o instanceof FactualDataPartE4) {
+                FactualDataPartE4 part = (FactualDataPartE4)o;
+                MPart selectionProvidingPart = part.getSelectionProvidingPart();
+                if (selectionProvidingPart.getObject() instanceof TaxonEditor) {
+                    TaxonEditor editor = (TaxonEditor)selectionProvidingPart.getObject();
+                    object = editor.getTaxon();
+                }                
+            }else if (o instanceof TaxonEditor) {
+                TaxonEditor editor = (TaxonEditor)AbstractUtility.getActiveEditor();
+                object = editor.getTaxon();
+            }
+        }
+        if(object instanceof FeatureNodeContainer){
+            description = ((FeatureNodeContainer) object).getDescription();
+        }
+        else if(object instanceof DescriptionElementBase){
+            DescriptionElementBase elementBase = HibernateProxyHelper.deproxy(object, DescriptionElementBase.class);
+            description = elementBase.getInDescription();
+        }
+        else if (object instanceof DescriptionBase) {
+            description = HibernateProxyHelper.deproxy(object, DescriptionBase.class);
+        }else if (object instanceof Taxon){
+            Taxon taxon = (Taxon) object;
+            description =taxon.getDefaultDescription();
+            
+        } 
+
+        if (description != null &&((description.isComputed() || description.isCloneForSource())&& PreferencesUtil.isComputedDesciptionHandlingDisabled())){
+            canExecute = false;
+            menuItem.getParent().setVisible(false);
+        }else{
+            canExecute = (selection.size()==1
+                    &&
+                    (selection.getFirstElement() instanceof DescriptionBase
+                    || selection.getFirstElement() instanceof DescriptionElementBase
+                    || selection.getFirstElement() instanceof FeatureNodeContainer
+                    || object instanceof Taxon))
+                    || (selection.size() == 0 && object instanceof Taxon);
+        }
         menuItem.setVisible(canExecute);
         return canExecute;
 
index 5827b3a9081115b186b5e63adea223c473cf16dc..1bdfb0b3c5779db76babff40801a64936e6478d4 100644 (file)
@@ -32,15 +32,16 @@ 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;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteDescriptionElementOperation;
@@ -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){
@@ -133,19 +136,17 @@ public class DeleteHandlerE4 {
 
                     for(DescriptionElementBase descriptionElement : descriptions){
                         operation = new DeleteDescriptionElementOperation(label, undoContext, descriptionElement, factualDataPart, cdmEntitySessionEnabled);
-
                     }
-                }
-//                if (operation != null){
-//                    operation.getPostOperationEnabled().postOperation(object);
-//                }
+                    ((FeatureNodeContainer)object).getContainerTree().removeContainer((FeatureNodeContainer)object);
+
 
+                }
 
-                if (factualDataPart.getSelectionProvidingPart().getObject() instanceof TaxonNameEditorE4){
-                    ((TaxonNameEditorE4)factualDataPart.getSelectionProvidingPart().getObject()).getEditorInput().addOperation(operation);
-                    ((TaxonNameEditorE4)factualDataPart.getSelectionProvidingPart().getObject()).setDirty();
-                    ((TaxonNameEditorE4)factualDataPart.getSelectionProvidingPart().getObject()).redraw();
 
+                if (factualDataPart.getSelectionProvidingPart().getObject() instanceof TaxonEditor){
+                    ((TaxonEditor)factualDataPart.getSelectionProvidingPart().getObject()).getEditorInput().addOperation(operation);
+                    ((TaxonEditor)factualDataPart.getSelectionProvidingPart().getObject()).setDirty();
+                    ((TaxonEditor)factualDataPart.getSelectionProvidingPart().getObject()).redraw();
                 }
                 if (factualDataPart.getSelectionProvidingPart().getObject() instanceof DerivateView){
                     ((DerivateView)factualDataPart.getSelectionProvidingPart().getObject()).addOperation(operation);
@@ -160,19 +161,14 @@ public class DeleteHandlerE4 {
                         }
                     }
                 }
-                if (factualDataPart.getSelectionProvidingPart().getObject() instanceof BulkEditorE4){
-                    ((BulkEditorE4)factualDataPart.getSelectionProvidingPart().getObject()).addOperation(operation);
-                    ((BulkEditorE4)factualDataPart.getSelectionProvidingPart().getObject()).setDirty(true);
-                    if (object instanceof SpecimenDescription){
-                        ((BulkEditorE4)factualDataPart.getSelectionProvidingPart().getObject()).changed(((SpecimenDescription)object).getDescribedSpecimenOrObservation());
-                    }else if (object instanceof TaxonDescription){
-                        ((BulkEditorE4)factualDataPart.getSelectionProvidingPart().getObject()).changed(((TaxonDescription)object).getTaxon());
-                    }else if (object instanceof TaxonNameDescription){
-                        ((BulkEditorE4)factualDataPart.getSelectionProvidingPart().getObject()).changed(((TaxonNameDescription)object).getTaxonName());
+                if (factualDataPart.getSelectionProvidingPart().getObject() instanceof BulkEditor){
+                    ((BulkEditor)factualDataPart.getSelectionProvidingPart().getObject()).addOperation(operation);
+                    ((BulkEditor)factualDataPart.getSelectionProvidingPart().getObject()).setDirty(true);
+                    if (object instanceof DescriptionBase){
+                        ((BulkEditor)factualDataPart.getSelectionProvidingPart().getObject()).changed(updateObject);
                     }
                 }
-                viewer.refresh();
-//                viewer.collapseAll();
+
 
                 if (expandedElements.length>0){
                     for (Object o: expandedElements){
@@ -186,7 +182,9 @@ public class DeleteHandlerE4 {
                     }
 
                     viewer.setExpandedElements(expandedElements);
+
                 }
+                viewer.refresh();
             }
             else{
                 Exception e = result.getExceptions() != null && !result.getExceptions().isEmpty()? result.getExceptions().iterator().next() : null;
@@ -208,7 +206,16 @@ public class DeleteHandlerE4 {
             MHandledMenuItem menuItem){
         FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
         ISelection selection = factualDataPart.getViewer().getSelection();
-        boolean canExecute = selection instanceof IStructuredSelection && !selection.isEmpty();
+        boolean canExecute = true;
+        if (selection instanceof IStructuredSelection && !selection.isEmpty()){
+            IStructuredSelection sel = (IStructuredSelection) selection;
+            if (sel.getFirstElement() instanceof FeatureNodeContainer){
+                canExecute = false;
+            }
+
+        }
+        canExecute &= selection instanceof IStructuredSelection && !selection.isEmpty() && !(((IStructuredSelection)selection).getFirstElement() instanceof FeatureNodeContainer);
+
         menuItem.setVisible(canExecute);
         return canExecute;
     }
index de1e92bc7cdc15ece1a0d4e02acd545687f6de63..bf016d1e2058d5e9e1ea01019c10fae146009dc1 100644 (file)
@@ -10,8 +10,8 @@ import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
 import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
@@ -155,14 +155,14 @@ public class DescriptionsMenuPropertyTesterE4 extends PropertyTester {
        }
 
        private boolean isTaxonEditor() {
-           if(AbstractUtility.getActiveEditor() instanceof TaxonNameEditorE4){
+           if(AbstractUtility.getActiveEditor() instanceof TaxonEditor){
                return true;
            }
            return false;
        }
 
        private boolean isBulkEditor() {
-           if(AbstractUtility.getActiveEditor() instanceof BulkEditorE4){
+           if(AbstractUtility.getActiveEditor() instanceof BulkEditor){
                return true;
            }
            return false;
index fd09edeebc82fac11af6eed8166ae049c0e908de..716530c0a4d7e79e4dc416862b13186be1cda600 100644 (file)
@@ -9,13 +9,21 @@
 
 package eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
 
 import javax.inject.Named;
 
 import org.eclipse.e4.ui.di.AboutToShow;
 import org.eclipse.e4.ui.model.application.commands.MCommand;
 import org.eclipse.e4.ui.model.application.commands.MCommandsFactory;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
 import org.eclipse.e4.ui.model.application.ui.menu.MMenu;
 import org.eclipse.e4.ui.model.application.ui.menu.MMenuElement;
@@ -29,12 +37,17 @@ import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermNode;
 import eu.etaxonomy.cdm.model.term.TermTree;
 import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateDescriptionElementOperation;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
@@ -51,35 +64,119 @@ public class DynamicFeatureMenuE4 {
         MMenu menu = MMenuFactory.INSTANCE.createMenu();
         menu.setLabel(Messages.DynamicFeatureMenuE4_new);
         items.add(menu);
-
+        List<MMenuElement> menuItems = new ArrayList<>();
         Object selectedElement = selection.getFirstElement();
+        if (selectedElement == null) {
+            MPart activePart = EventUtility.getActivePart();
+            Object o = activePart.getObject();
+            if (o instanceof FactualDataPartE4) {
+                FactualDataPartE4 part = (FactualDataPartE4)o;
+                MPart selectionProvidingPart = part.getSelectionProvidingPart();
+                if (selectionProvidingPart.getObject() instanceof TaxonEditor) {
+                    TaxonEditor editor = (TaxonEditor)selectionProvidingPart.getObject();
+                    selectedElement = editor.getTaxon();
+                }
+            }else if (o instanceof TaxonEditor) {
+                TaxonEditor editor = (TaxonEditor)AbstractUtility.getActiveEditor();
+                selectedElement = editor.getTaxon();
+            }
+        }
 
+        DescriptionBase<?> description;
         if (selectedElement instanceof DescriptionBase<?>) {
-            TermTree<?> featureTree = getFeatureTree((DescriptionBase<?>) selectedElement);
+            description = (DescriptionBase<?>) selectedElement;
+        } else if (selectedElement instanceof FeatureNodeContainer){
+            description = ((FeatureNodeContainer) selectedElement).getDescription();
+        } else if (selectedElement instanceof DescriptionElementBase){
+            description = ((DescriptionElementBase) selectedElement).getInDescription();
+        } else if (selectedElement instanceof Taxon){
+            Taxon taxon = (Taxon) selectedElement;
+            description = taxon.getDefaultDescription();
+        } else {
+            //TODO or should we throw exception instead?
+            return;
+        }
+        //check computed or cloned
+        //TODO AM: in the originally code the isCloneForSource was only implemented for the DescriptionBase case
+        //         Was this on purpose or was it just forgotten in the other cases?
+        if ( description != null && (description.isComputed() || description.isCloneForSource())
+                && PreferencesUtil.isComputedDesciptionHandlingDisabled()){
+            items.remove(menu);
+            return;
+        }
 
-            for (TermNode<?> childNode : featureTree.getRootChildren()) {
-                createMenuItem(menu, childNode.getTerm(), globalLanguage);
+        //compute menu to show
+        List<Feature> featureList = new ArrayList<>();
+        if (selectedElement instanceof DescriptionBase<?> || selectedElement instanceof Taxon) {
+            TermTree<Feature> featureTree = (TermTree)getFeatureTree(description);
+            for (TermNode<Feature> childNode : featureTree.getRootChildren()) {
+                Feature feature = childNode.getTerm();
+                //TODO duplicate check needed? But a feature tree should not have duplicates
+                featureList.add(feature);
             }
-        } else if (selectedElement instanceof FeatureNodeContainer) {
-            TermNode<?> featureNode = ((FeatureNodeContainer) selectedElement)
-                    .getFeatureNode();
-
-            // add the feature to the menu
-            createMenuItem(menu, featureNode.getTerm(), globalLanguage);
+        } else if (selectedElement instanceof FeatureNodeContainer){
+            //add feature
+            TermNode<Feature> featureNode = ((FeatureNodeContainer) selectedElement).getFeatureNode();
+            featureList.add(featureNode.getTerm());
 
             // add possible children to the menu
-            for (TermNode<?> childNode : featureNode.getChildNodes()) {
-                createMenuItem(menu, childNode.getTerm(), globalLanguage);
+            //TODO AM: does this really work and what is it for?
+            for (TermNode<Feature> childNode : featureNode.getChildNodes()) {
+                Feature feature = childNode.getTerm();
+                TermTree<Feature> featureTree = (TermTree)getFeatureTree(description);
+
+                if (featureTree != null && featureTree.getRootChildren().contains(feature)){
+                    featureList.add(feature);
+                }
+            }
+        } else if (selectedElement instanceof DescriptionElementBase){
+            Feature feature = ((DescriptionElementBase) selectedElement).getFeature();
+            featureList.add(feature);
+        } else {
+            //TODO or should we throw exception instead?
+            return;
+        }
+
+        Map<UUID, Integer> feature_count_map = getElementCounts(description);
+
+        for (Feature feature : featureList){
+            Integer count = null;
+            if (feature_count_map != null) {
+                count = feature_count_map.get(feature.getUuid());
+            }
+            if(feature.getMaxPerDataset() == null || count == null || count < feature.getMaxPerDataset())  {
+                createMenuItem(menuItems, feature, globalLanguage);
+            }
+        }
+
+        Collections.sort(menuItems, new MenuItemComparator());
+        menu.getChildren().clear();
+        for (MMenuElement element: menuItems) {
+            menu.getChildren().add(element);
+        }
+
+    }
+
+    protected Map<UUID, Integer> getElementCounts(DescriptionBase<?> selectedElement) {
+        if (selectedElement == null) {
+            return null;
+        }
+        Set<DescriptionElementBase> elements = selectedElement.getElements();
+        Map<UUID, Integer> feature_count_map = new HashMap<>();
+        for (DescriptionElementBase el: elements) {
+            Integer count = feature_count_map.get(el.getFeature().getUuid());
+            if (count == null) {
+                count = 1;
+            }else {
+                count++;
             }
-        } else if (selectedElement instanceof DescriptionElementBase) {
-            Feature feature = ((DescriptionElementBase) selectedElement)
-                    .getFeature();
-            createMenuItem(menu, feature, globalLanguage);
+            feature_count_map.put(el.getFeature().getUuid(), count);
         }
+        return feature_count_map;
     }
 
-    private void createMenuItem(MMenu menu, final DefinedTermBase feature, Language globalLanguage) {
-        final DefinedTermBase<?> deproxiedFeature = HibernateProxyHelper.deproxy(feature, DefinedTermBase.class);
+    private void createMenuItem(List<MMenuElement> menuItems, final DefinedTermBase feature, Language globalLanguage) {
+        final DefinedTermBase<?> deproxiedFeature = HibernateProxyHelper.deproxy(feature);
 
         String label = deproxiedFeature.getLabel(globalLanguage);
         if (label == null){
@@ -93,19 +190,25 @@ public class DynamicFeatureMenuE4 {
         }
         MHandledMenuItem menuItem = MMenuFactory.INSTANCE.createHandledMenuItem();
         menuItem.setLabel(label);
+        if (deproxiedFeature.getDescription() != null) {
+            if (deproxiedFeature.getDescription(globalLanguage) != null) {
+                menuItem.setTooltip(deproxiedFeature.getDescription(globalLanguage));
+            }else {
+                menuItem.setTooltip(deproxiedFeature.getDescription());
+            }
+        }else {
+            menuItem.setTooltip(label);
+        }
         MCommand mCommand = MCommandsFactory.INSTANCE.createCommand();
         mCommand.setElementId(CreateDescriptionElementOperation.ID);
         mCommand.setCommandName(label);
-        //             try {
-        //                 mCommand.setCommandName(command.getName());
-        //             } catch (NotDefinedException e) {
-        //                 e.printStackTrace();
-        //             }
+
+
         //set params
         menuItem.getTransientData().put(CreateDescriptionElementOperation.ID+".feature.uuid", deproxiedFeature.getUuid());
 
         menuItem.setCommand(mCommand);
-        menu.getChildren().add(menuItem);
+        menuItems.add(menuItem);
     }
 
        /**
@@ -113,31 +216,56 @@ public class DynamicFeatureMenuE4 {
         *
         * TODO as of now this is always the same thing because feature trees may
         * not be associated to descriptions yet.
-        *
-        * @param description
-        * @return
         */
-       private TermTree<?> getFeatureTree(DescriptionBase description) {
-               TermTree<?> featureTree = null;
-
-               // TODO change this to the feature tree associated with this taxon
-               // description
-               if (description.hasStructuredData()) {
-                       featureTree = PreferencesUtil
-                                       .getDefaultFeatureTreeForStructuredDescription();
-               } else {
-                       featureTree = PreferencesUtil
-                                       .getDefaultFeatureTreeForTextualDescription();
-               }
-
-               if (featureTree == null) {
-                   featureTree = TermEditorInput.getPreferredTaxonFeatureTree(false);
-               }
-               if (description instanceof TaxonNameDescription){
-                   featureTree = TermEditorInput.getPreferredNameFeatureTree(false);
-
-               }
+       private TermTree<?> getFeatureTree(DescriptionBase<?> description) {
+
+           TermTree<?> featureTree = null;
+
+           if (description instanceof TaxonNameDescription){
+            featureTree = TermEditorInput.getPreferredNameFeatureTree(false);
+
+        }else if(description != null){
+            // TODO change this to the feature tree associated with this taxon
+            // description
+            if (description.hasStructuredData()) {
+                featureTree = PreferencesUtil
+                        .getDefaultFeatureTreeForStructuredDescription();
+            } else {
+                featureTree = PreferencesUtil
+                        .getDefaultFeatureTreeForTextualDescription();
+            }
+            if (featureTree == null) {
+                featureTree = TermEditorInput.getPreferredTaxonFeatureTree(false);
+            }
+        }else {
+            featureTree = TermEditorInput.getPreferredTaxonFeatureTree(false);
+        }
 
                return featureTree;
        }
+
+       private class MenuItemComparator implements Comparator<MMenuElement>{
+        @Override
+        public int compare(MMenuElement o1, MMenuElement o2) {
+            if (o1 == o2) {
+                return 0;
+            }
+            if (o1 == null) {
+                return -1;
+            }
+            if (o2 == null) {
+                return 1;
+            }
+            if (o1.getLabel() == null && o2.getLabel() != null) {
+                return -1;
+            }
+            if (o2.getLabel() == null) {
+                return 1;
+            }
+            if (o1.getLabel().equals(o2.getLabel())) {
+                return 0;
+            }
+            return o1.getLabel().compareTo(o2.getLabel());
+        }
+       }
 }
index 52728047695232770dc50ee67b4eda7a31ba04ae..ad8870e15a51c2ac7eac86f33012d8148e59d2d2 100644 (file)
@@ -37,24 +37,28 @@ 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.IndividualsAssociation;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.MoveDescriptionElementsOperation;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeAndBoolean;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
 import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
 import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
@@ -67,7 +71,7 @@ import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
 public class MoveDescriptionElementsHandlerE4 implements IPostOperationEnabled{
     private UUID newAcceptedTaxonNodeUuid;
     private UUID oldAcceptedTaxonNodeUuid;
-    private TaxonNameEditorE4 editor;
+    private TaxonEditor editor;
     private MApplication application;
     private EModelService modelService;
     private EPartService partService;
@@ -85,13 +89,14 @@ public class MoveDescriptionElementsHandlerE4 implements IPostOperationEnabled{
         IStructuredSelection viewselection = (IStructuredSelection) factualDataPart.getViewer().getSelection();
 
         Object e4WrappedPart = WorkbenchUtility.getE4WrappedPart(factualDataPart.getSelectionProvidingPart());
-        if(e4WrappedPart instanceof TaxonNameEditorE4){
-            editor = (TaxonNameEditorE4) e4WrappedPart;
+        if(e4WrappedPart instanceof TaxonEditor){
+            editor = (TaxonEditor) e4WrappedPart;
         }
         Taxon actualTaxon= null;
 
         List<DescriptionElementBase> elements = new ArrayList<DescriptionElementBase>();
         DescriptionBase<?> description = null;
+        boolean containsDeterminedSpecimen = false;
         for (Iterator<?> iter = viewselection.iterator(); iter.hasNext();) {
             Object object = iter.next();
             if (object instanceof DescriptionElementBase) {
@@ -99,20 +104,32 @@ 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);
                 }
-
+                if (element instanceof IndividualsAssociation) {
+                    IndividualsAssociation indAss = (IndividualsAssociation)element;
+                    SpecimenOrObservationBase specimen = HibernateProxyHelper.deproxy(indAss.getAssociatedSpecimenOrObservation());
+                    if (!specimen.getDeterminations().isEmpty()) {
+                        containsDeterminedSpecimen = true;
+                    }
+                }
                 elements.add(element);
             } else if (object instanceof FeatureNodeContainer) {
                 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);
                     }
+                    if (element instanceof IndividualsAssociation) {
+                        IndividualsAssociation indAss = (IndividualsAssociation)element;
+                        if (!indAss.getAssociatedSpecimenOrObservation().getDeterminations().isEmpty()) {
+                            containsDeterminedSpecimen = true;
+                        }
+                    }
                     description = de.getInDescription();
                     elements.add(element);
                 }
@@ -147,19 +164,26 @@ public class MoveDescriptionElementsHandlerE4 implements IPostOperationEnabled{
         if (classification != null){
             classificationUuid = classification.getUuid();
         }
-        TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(shell,
+        TaxonNodeAndBoolean newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(shell,
                 Messages.MoveDescriptionElementsHandler_CHOOSE_ACC_TAXON,
                 excludeTaxa,
-                null, classificationUuid
-                );
-        if (newAcceptedTaxonNode != null){
-            Taxon targetTaxon = newAcceptedTaxonNode.getTaxon();
+                null, classificationUuid,
+                true, true);
+        boolean createNewCurrentDeterminations = false;
+        if (containsDeterminedSpecimen) {
+            if(MessageDialog.openQuestion(null,"Create new current determinations?", "There are specimen with determination(s) involved, do you want to create new current determinations with the target taxon?")){
+                createNewCurrentDeterminations = true;
+            }
+        }
+
+        if (newAcceptedTaxonNode != null && newAcceptedTaxonNode.getNode() != null){
+            Taxon targetTaxon = newAcceptedTaxonNode.getNode().getTaxon();
 
             if(targetTaxon == null){
                 // canceled
                 return;
             }
-            newAcceptedTaxonNodeUuid = newAcceptedTaxonNode.getUuid();
+            newAcceptedTaxonNodeUuid = newAcceptedTaxonNode.getNode().getUuid();
 
             Collection<IE4SavablePart> targetEditors = EditorUtil.checkForTaxonChanges(targetTaxon.getUuid(), partService);
 
@@ -175,10 +199,10 @@ public class MoveDescriptionElementsHandlerE4 implements IPostOperationEnabled{
             }
 
             String moveMessage = String.format(Messages.MoveDescriptionElementsHandler_ELEMENTS_MOVED, editor.getTaxon());
-
+            boolean useDefaultDescription =  newAcceptedTaxonNode.getBool();
             AbstractPostTaxonOperation operation = new MoveDescriptionElementsOperation(
                     menuItem.getLocalizedLabel(), EditorUtil.getUndoContext(),
-                    targetTaxon.getUuid(), moveMessage, elements, false, this, null, false);
+                    targetTaxon.getUuid(), moveMessage, elements, false, this, null, false,!useDefaultDescription, createNewCurrentDeterminations);
             editor.getEditorInput().addOperation(operation);
             for (DescriptionElementBase element: elements)
             {
@@ -194,8 +218,6 @@ public class MoveDescriptionElementsHandlerE4 implements IPostOperationEnabled{
     @Override
     public boolean postOperation(Object objectAffectedByOperation) {
 
-        editor.getConversationHolder().bind();
-        editor.getConversationHolder().commit(true);
         Display.getDefault().asyncExec(new Runnable(){
 
             @Override
@@ -227,15 +249,18 @@ public class MoveDescriptionElementsHandlerE4 implements IPostOperationEnabled{
             MHandledMenuItem menuItem){
         boolean canExecute = false;
         FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
-
+        boolean isComputedDisabled = PreferencesUtil.isComputedDesciptionHandlingDisabled();
         Object e4WrappedPart = WorkbenchUtility.getE4WrappedPart(factualDataPart.getSelectionProvidingPart());
-        if(e4WrappedPart instanceof TaxonNameEditorE4){
+        if(e4WrappedPart instanceof TaxonEditor){
             ISelection selection = factualDataPart.getViewer().getSelection();
             if(selection instanceof IStructuredSelection){
-                boolean selectionProviding = factualDataPart.getSelectionProvidingPart().getObject() instanceof TaxonNameEditorE4;
+                boolean selectionProviding = factualDataPart.getSelectionProvidingPart().getObject() instanceof TaxonEditor;
                 Object firstElement = ((IStructuredSelection) selection).getFirstElement();
-                canExecute = (firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getContainerTree().getDescription() instanceof TaxonNameDescription))
-                        || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription() instanceof TaxonNameDescription)) ;
+
+                canExecute = ((firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getContainerTree().getDescription() instanceof TaxonNameDescription))
+                                    || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription() instanceof TaxonNameDescription)))
+                            && ((firstElement instanceof FeatureNodeContainer && !((((FeatureNodeContainer)firstElement).getDescription().isComputed() || ((FeatureNodeContainer)firstElement).getDescription().isCloneForSource())&& isComputedDisabled))
+                                    || (firstElement instanceof DescriptionElementBase && !((((DescriptionElementBase)firstElement).getInDescription().isComputed() || ((DescriptionElementBase)firstElement).getInDescription().isCloneForSource())&& isComputedDisabled))) ;
                 menuItem.setVisible(canExecute);
             }
         }
index fc62f3f600d62bbc6636816703174e51cba90c04..b56d1ba168f12578fed599a19f07098d597e6323 100755 (executable)
@@ -37,10 +37,11 @@ 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.IndividualsAssociation;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
 import eu.etaxonomy.cdm.model.taxon.Classification;
@@ -48,13 +49,15 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.MoveDescriptionElementsOperation;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeAndBoolean;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
 import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
 import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
@@ -67,7 +70,7 @@ import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
 public class MoveDescriptionElementsSetNameInSourceHandlerE5 implements IPostOperationEnabled{
     private UUID newAcceptedTaxonNodeUuid;
     private UUID oldAcceptedTaxonNodeUuid;
-    private TaxonNameEditorE4 editor;
+    private TaxonEditor editor;
     private MApplication application;
     private EModelService modelService;
     private EPartService partService;
@@ -85,13 +88,14 @@ public class MoveDescriptionElementsSetNameInSourceHandlerE5 implements IPostOpe
         IStructuredSelection viewselection = (IStructuredSelection) factualDataPart.getViewer().getSelection();
 
         Object e4WrappedPart = WorkbenchUtility.getE4WrappedPart(factualDataPart.getSelectionProvidingPart());
-        if(e4WrappedPart instanceof TaxonNameEditorE4){
-            editor = (TaxonNameEditorE4) e4WrappedPart;
+        if(e4WrappedPart instanceof TaxonEditor){
+            editor = (TaxonEditor) e4WrappedPart;
         }
         Taxon actualTaxon= null;
 
         List<DescriptionElementBase> elements = new ArrayList<DescriptionElementBase>();
         DescriptionBase<?> description = null;
+        boolean containsDeterminedSpecimen = false;
         for (Iterator<?> iter = viewselection.iterator(); iter.hasNext();) {
             Object object = iter.next();
             if (object instanceof DescriptionElementBase) {
@@ -99,21 +103,33 @@ 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);
                 }
+                if (element instanceof IndividualsAssociation) {
+                    IndividualsAssociation indAss = (IndividualsAssociation)element;
+                    if (!indAss.getAssociatedSpecimenOrObservation().getDeterminations().isEmpty()) {
+                        containsDeterminedSpecimen = true;
+                    }
+                }
 
                 elements.add(element);
             } else if (object instanceof FeatureNodeContainer) {
                 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);
                     }
                     description = de.getInDescription();
+                    if (element instanceof IndividualsAssociation) {
+                        IndividualsAssociation indAss = (IndividualsAssociation)element;
+                        if (!indAss.getAssociatedSpecimenOrObservation().getDeterminations().isEmpty()) {
+                            containsDeterminedSpecimen = true;
+                        }
+                    }
                     elements.add(element);
                 }
             }
@@ -147,19 +163,19 @@ public class MoveDescriptionElementsSetNameInSourceHandlerE5 implements IPostOpe
         if (classification != null){
             classificationUuid = classification.getUuid();
         }
-        TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(shell,
+        TaxonNodeAndBoolean newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(shell,
                 Messages.MoveDescriptionElementsHandler_CHOOSE_ACC_TAXON,
                 excludeTaxa,
-                null, classificationUuid
+                null, classificationUuid, true, true
                 );
         if (newAcceptedTaxonNode != null){
-            Taxon targetTaxon = newAcceptedTaxonNode.getTaxon();
+            Taxon targetTaxon = newAcceptedTaxonNode.getNode().getTaxon();
 
             if(targetTaxon == null){
                 // canceled
                 return;
             }
-            newAcceptedTaxonNodeUuid = newAcceptedTaxonNode.getUuid();
+            newAcceptedTaxonNodeUuid = newAcceptedTaxonNode.getNode().getUuid();
 
             Collection<IE4SavablePart> targetEditors = EditorUtil.checkForTaxonChanges(targetTaxon.getUuid(), partService);
 
@@ -173,12 +189,18 @@ public class MoveDescriptionElementsSetNameInSourceHandlerE5 implements IPostOpe
                     return;
                 }
             }
+            boolean createNewCurrentDeterminations = false;
+            if (containsDeterminedSpecimen) {
+                if(MessageDialog.openQuestion(null,"Create new current determinations?", "There are specimen with determination(s) involved, do you want to create new current determinations with the target taxon?")){
+                    createNewCurrentDeterminations = true;
+                }
+            }
 
             String moveMessage = String.format(Messages.MoveDescriptionElementsHandler_ELEMENTS_MOVED, editor.getTaxon());
-
+            boolean useDefaultDescription = newAcceptedTaxonNode.getBool();
             AbstractPostTaxonOperation operation = new MoveDescriptionElementsOperation(
                     menuItem.getLocalizedLabel(), EditorUtil.getUndoContext(),
-                    targetTaxon.getUuid(), moveMessage, elements, false, this, null, true);
+                    targetTaxon.getUuid(), moveMessage, elements, false, this, null, true, !useDefaultDescription, createNewCurrentDeterminations);
             editor.getEditorInput().addOperation(operation);
             for (DescriptionElementBase element: elements)
             {
@@ -194,8 +216,6 @@ public class MoveDescriptionElementsSetNameInSourceHandlerE5 implements IPostOpe
     @Override
     public boolean postOperation(Object objectAffectedByOperation) {
 
-        editor.getConversationHolder().bind();
-        editor.getConversationHolder().commit(true);
         Display.getDefault().asyncExec(new Runnable(){
 
             @Override
@@ -227,15 +247,17 @@ public class MoveDescriptionElementsSetNameInSourceHandlerE5 implements IPostOpe
             MHandledMenuItem menuItem){
         boolean canExecute = false;
         FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
-
+        boolean isComputedDisabled = PreferencesUtil.isComputedDesciptionHandlingDisabled();
         Object e4WrappedPart = WorkbenchUtility.getE4WrappedPart(factualDataPart.getSelectionProvidingPart());
-        if(e4WrappedPart instanceof TaxonNameEditorE4){
+        if(e4WrappedPart instanceof TaxonEditor){
             ISelection selection = factualDataPart.getViewer().getSelection();
             if(selection instanceof IStructuredSelection){
-                boolean selectionProviding = factualDataPart.getSelectionProvidingPart().getObject() instanceof TaxonNameEditorE4;
+                boolean selectionProviding = factualDataPart.getSelectionProvidingPart().getObject() instanceof TaxonEditor;
                 Object firstElement = ((IStructuredSelection) selection).getFirstElement();
-                canExecute = (firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getContainerTree().getDescription() instanceof TaxonNameDescription))
-                        || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription() instanceof TaxonNameDescription)) ;
+                canExecute = ((firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getContainerTree().getDescription() instanceof TaxonNameDescription))
+                                    || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription() instanceof TaxonNameDescription)))
+                            && ((firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getDescription().isComputed() && isComputedDisabled))
+                                    || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription().isComputed() && isComputedDisabled))) ;
                 menuItem.setVisible(canExecute);
             }
         }
index 37c5479e23c6e01cd8076d7d6b88564da26ed3cc..04c789fd6cd12f4b0ba4f128e50411a933154346 100644 (file)
@@ -37,7 +37,7 @@ import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.MoveDescriptionToOtherTaxonOperation;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
@@ -59,7 +59,7 @@ public class MoveDescriptionToOtherTaxonHandlerE4 implements IPostOperationEnabl
     private UUID oldAcceptedTaxonNodeUuid;
     private UUID newAcceptedTaxonUuid;
     private UUID oldAcceptedTaxonUuid;
-    private TaxonNameEditorE4 editor;
+    private TaxonEditor editor;
     private MApplication application;
     private EModelService modelService;
     private EPartService partService;
@@ -76,8 +76,8 @@ public class MoveDescriptionToOtherTaxonHandlerE4 implements IPostOperationEnabl
 
         FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
         Object e4WrappedPart = WorkbenchUtility.getE4WrappedPart(factualDataPart.getSelectionProvidingPart());
-        if(e4WrappedPart instanceof TaxonNameEditorE4){
-            editor = (TaxonNameEditorE4) e4WrappedPart;
+        if(e4WrappedPart instanceof TaxonEditor){
+            editor = (TaxonEditor) e4WrappedPart;
 
         }
 
@@ -108,7 +108,6 @@ public class MoveDescriptionToOtherTaxonHandlerE4 implements IPostOperationEnabl
         Set<UUID> excludeTaxa = new HashSet<>();
         excludeTaxa.add(oldAcceptedTaxonNodeUuid);
         TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(shell,
-//                editor.getConversationHolder(),
                 Messages.MoveDescriptionToOtherTaxonHandler_CHOOSE_ACC_TAXON,
                 excludeTaxa,
                 node,
@@ -139,7 +138,6 @@ public class MoveDescriptionToOtherTaxonHandlerE4 implements IPostOperationEnabl
                     taxonDescription,
                     newAcceptedTaxonNode,
                     this,
-                    editor,
                     editor.getEditorInput(),
                     false);
             editor.getEditorInput().addOperation(operation);
@@ -179,12 +177,12 @@ public class MoveDescriptionToOtherTaxonHandlerE4 implements IPostOperationEnabl
         FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
 
         Object e4WrappedPart = WorkbenchUtility.getE4WrappedPart(factualDataPart.getSelectionProvidingPart());
-        if(e4WrappedPart instanceof TaxonNameEditorE4){
+        if(e4WrappedPart instanceof TaxonEditor){
             ISelection selection = factualDataPart.getViewer().getSelection();
             if(selection instanceof IStructuredSelection){
                 Object firstElement = ((IStructuredSelection) selection).getFirstElement();
                 canExecute = ((IStructuredSelection) selection).size()==1
-                        && firstElement instanceof DescriptionBase && !(firstElement instanceof TaxonNameDescription);
+                        && firstElement instanceof DescriptionBase && !(firstElement instanceof TaxonNameDescription) && !((DescriptionBase)firstElement).isComputed();
                 menuItem.setVisible(canExecute);
             }
         }
index 15984dbb3054375bd1483b55e7bb55c427db0379..425646b1c6d37b97263e100068f3de25edb0e1a1 100755 (executable)
@@ -37,7 +37,7 @@ import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.MoveDescriptionToOtherTaxonOperation;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
@@ -59,7 +59,7 @@ public class MoveDescriptionToOtherTaxonSetNameInSourceHandlerE5 implements IPos
     private UUID oldAcceptedTaxonNodeUuid;
     private UUID newAcceptedTaxonUuid;
     private UUID oldAcceptedTaxonUuid;
-    private TaxonNameEditorE4 editor;
+    private TaxonEditor editor;
     private MApplication application;
     private EModelService modelService;
     private EPartService partService;
@@ -76,8 +76,8 @@ public class MoveDescriptionToOtherTaxonSetNameInSourceHandlerE5 implements IPos
 
         FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
         Object e4WrappedPart = WorkbenchUtility.getE4WrappedPart(factualDataPart.getSelectionProvidingPart());
-        if(e4WrappedPart instanceof TaxonNameEditorE4){
-            editor = (TaxonNameEditorE4) e4WrappedPart;
+        if(e4WrappedPart instanceof TaxonEditor){
+            editor = (TaxonEditor) e4WrappedPart;
 
         }
 
@@ -108,7 +108,6 @@ public class MoveDescriptionToOtherTaxonSetNameInSourceHandlerE5 implements IPos
         Set<UUID> excludeTaxa = new HashSet<>();
         excludeTaxa.add(oldAcceptedTaxonNodeUuid);
         TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(shell,
-//                editor.getConversationHolder(),
                 Messages.MoveDescriptionToOtherTaxonHandler_CHOOSE_ACC_TAXON,
                 excludeTaxa,
                 node,
@@ -139,7 +138,6 @@ public class MoveDescriptionToOtherTaxonSetNameInSourceHandlerE5 implements IPos
                     taxonDescription,
                     newAcceptedTaxonNode,
                     this,
-                    editor,
                     editor.getEditorInput(),
                     true);
             editor.getEditorInput().addOperation(operation);
@@ -181,12 +179,12 @@ public class MoveDescriptionToOtherTaxonSetNameInSourceHandlerE5 implements IPos
         FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
 
         Object e4WrappedPart = WorkbenchUtility.getE4WrappedPart(factualDataPart.getSelectionProvidingPart());
-        if(e4WrappedPart instanceof TaxonNameEditorE4){
+        if(e4WrappedPart instanceof TaxonEditor){
             ISelection selection = factualDataPart.getViewer().getSelection();
             if(selection instanceof IStructuredSelection){
                 Object firstElement = ((IStructuredSelection) selection).getFirstElement();
                 canExecute = ((IStructuredSelection) selection).size()==1
-                        && firstElement instanceof DescriptionBase && !(firstElement instanceof TaxonNameDescription);
+                        && firstElement instanceof DescriptionBase && !(firstElement instanceof TaxonNameDescription) && !((DescriptionBase)firstElement).isComputed();
                 menuItem.setVisible(canExecute);
             }
         }
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/SetDefaultDescriptionHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/SetDefaultDescriptionHandler.java
new file mode 100644 (file)
index 0000000..a469803
--- /dev/null
@@ -0,0 +1,103 @@
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+
+package eu.etaxonomy.taxeditor.editor.view.descriptive.e4.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.SetDefaultDescriptionOperation;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ *
+ * @author pplitzner
+ * @date 15.08.2017
+ *
+ */
+public class SetDefaultDescriptionHandler {
+
+    @Execute
+    public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart,
+            @Optional@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection,
+            MHandledMenuItem menuItem,
+            UISynchronize sync) {
+
+        String commandId = menuItem.getCommand().getElementId();
+        FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
+
+        DescriptionBase description = null;
+        Object object = selection.getFirstElement();
+      if (object instanceof DescriptionBase) {
+            description = HibernateProxyHelper.deproxy(object, DescriptionBase.class);
+        } else {
+            MessagingUtils.error(getClass(), new IllegalArgumentException("Could not determine the taxon description")); //$NON-NLS-1$
+            return;
+        }
+        AbstractPostOperation operation = operationCreationInstance(menuItem.getLocalizedLabel(),  description, true,
+                factualDataPart);
+        // TODO use undo context specific to editor
+        AbstractUtility.executeOperation(operation, sync);
+    }
+
+    @CanExecute
+    public boolean canExecute(MHandledMenuItem menuItem,
+            @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection){
+        boolean canExecute = false;
+        DescriptionBase description = null;
+        Object object = selection.getFirstElement();
+       
+        if (object instanceof DescriptionBase) {
+            description = HibernateProxyHelper.deproxy(object, DescriptionBase.class);
+        }
+
+        if ((description.isComputed() || description.isCloneForSource())&& PreferencesUtil.isComputedDesciptionHandlingDisabled()){
+            canExecute = false;
+            
+        }else{
+            canExecute = selection.size()==1
+                    &&
+                    (selection.getFirstElement() instanceof DescriptionBase)&& !((DescriptionBase)selection.getFirstElement()).isDefault();;
+                    
+        }
+        menuItem.setVisible(canExecute);
+        return canExecute;
+
+    }
+
+    /**
+        * Added to make the Class more generic and limit the amount of code changes required
+        * @param label
+        * @param event
+        * @param description
+        * @param postOperationEnabled
+        * @return
+        */
+    protected AbstractPostOperation operationCreationInstance(String label, 
+            DescriptionBase<?> description, boolean isDefault, IPostOperationEnabled postOperationEnabled) {
+        return new SetDefaultDescriptionOperation(label, EditorUtil.getUndoContext(), description, isDefault, postOperationEnabled);
+    }
+
+}
index 641a1feaadde5f8ffeac556718ed171d3a6da694..4a20ab29602e33fbeab5e94ecc067dd13d0b1661 100644 (file)
@@ -17,10 +17,8 @@ import org.eclipse.e4.ui.services.IServiceConstants;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
 
 /**
- *
  * @author pplitzner
  * @date 15.08.2017
- *
  */
 public class ToggleShowOnlyIndividualAssociationsHandlerE4  {
 
@@ -29,5 +27,4 @@ public class ToggleShowOnlyIndividualAssociationsHandlerE4  {
         FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
         factualDataPart.toggleShowOnlyIndividualAssociations();
     }
-
-}
+}
\ No newline at end of file
index ef29bffed076698158c4892c3fdb9b3e9121ecf3..4afe8f547c29aecb473013c974ecc4a5a2cf4b39 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.view.descriptive.operation;
 
 import org.eclipse.core.commands.ExecutionException;
@@ -16,8 +15,8 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
@@ -30,7 +29,6 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 /**
  * @author n.hoffmann
  * @created Feb 11, 2011
- * @version 1.0
  */
 public class AddDerivedUnitFacadeMediaOperation extends AbstractPostTaxonOperation {
 
@@ -50,12 +48,9 @@ public class AddDerivedUnitFacadeMediaOperation extends AbstractPostTaxonOperati
                this.specimen = specimen;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
-               DerivedUnitFacade facade;
+           DerivedUnitFacade facade;
                try {
                    if(specimen instanceof FieldUnit){
                        facade = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.FieldUnit, (FieldUnit) specimen);
@@ -84,10 +79,6 @@ public class AddDerivedUnitFacadeMediaOperation extends AbstractPostTaxonOperati
                return postExecute(specimen);
        }
 
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -95,14 +86,10 @@ public class AddDerivedUnitFacadeMediaOperation extends AbstractPostTaxonOperati
                return null;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                // TODO Auto-generated method stub
                return null;
        }
-
-}
+}
\ No newline at end of file
index a31b27a828ca58348d831418131f64ddb14c8e7f..fe6ba55a2b5dcbb685a60c1999826995b55a14cd 100644 (file)
@@ -108,7 +108,7 @@ public class CreateDescriptionElementOperation extends AbstractPostTaxonOperatio
                                element = QuantitativeData.NewInstance();
                        }
                        else if(feature.isSupportsTemporalData()){
-                element = TemporalData.NewInstance(null);
+                element = TemporalData.NewInstance();
             }
                        else {
                                element = TextData.NewInstance();
index b869d3470897e82072413d9c2b966f85fa50f3d8..582d75f979fab20b4722384493532122544dd2a5 100644 (file)
@@ -11,6 +11,7 @@ package eu.etaxonomy.taxeditor.editor.view.descriptive.operation;
 import org.eclipse.core.commands.operations.IUndoContext;
 
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.operation.AbstractDescriptionPostOperation;
@@ -19,7 +20,6 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 /**
  * @author pplitzner
  * @date 04.12.2013
- *
  */
 public class CreateTaxonDescriptionOperation extends AbstractDescriptionPostOperation<Taxon, TaxonDescription> {
 
@@ -35,6 +35,19 @@ public class CreateTaxonDescriptionOperation extends AbstractDescriptionPostOper
 
     @Override
     protected void initDescription(){
+        boolean isFirst = false;
+        boolean defaultExists = false;
+        if (element.getDescriptions() == null || element.getDescriptions().isEmpty()) {
+            isFirst = true;
+        }else {
+            for (DescriptionBase desc:element.getDescriptions()) {
+                if (desc.isDefault()) {
+                    defaultExists = true;
+                    break;
+                }
+            }
+        }
         description = TaxonDescription.NewInstance(element);
+        description.setDefault(isFirst || !defaultExists);
     }
 }
index 9ee81413a730cb0377e2c2ca154e4f4f9e1c3389..599710e6be78ebeca23cb66eaac5de6dfcb336b9 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.view.descriptive.operation;
 
 import org.eclipse.core.commands.ExecutionException;
@@ -15,25 +14,28 @@ 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;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 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>
  *
  * @author p.ciardelli
  * @created 05.02.2009
- * @version 1.0
  */
 public class DeleteDescriptionElementOperation extends AbstractPostTaxonOperation {
 
        private final DescriptionElementBase element;
-       private DescriptionBase description = null;
+       private DescriptionBase<?> description = null;
 
        /**
         * <p>Constructor for DeleteDescriptionElementOperation.</p>
@@ -45,21 +47,17 @@ public class DeleteDescriptionElementOperation extends AbstractPostTaxonOperatio
         */
        public DeleteDescriptionElementOperation(String label, IUndoContext undoContext,
                        DescriptionElementBase element, IPostOperationEnabled postOperationEnabled,
-                       ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+                       ICdmEntitySessionEnabled<Taxon> cdmEntitySessionEnabled) {
                super(label, undoContext, postOperationEnabled, cdmEntitySessionEnabled);
 
                this.element = element;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
 
-               description = element.getInDescription();
+               CdmStore.getService(IDescriptionElementService.class).delete(element.getUuid());
 
                monitor.worked(20);
 
@@ -72,23 +70,15 @@ public class DeleteDescriptionElementOperation extends AbstractPostTaxonOperatio
                monitor.worked(40);
 
         // Redraw editor if exists
-               return postExecute(description);
+               return postExecute(element);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                return execute(monitor, info);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -97,4 +87,4 @@ public class DeleteDescriptionElementOperation extends AbstractPostTaxonOperatio
 
                return postExecute(element);
        }
-}
+}
\ No newline at end of file
index b7cdab8299de056030b023f51bc375eff1cb83e1..d043668455530a35dfeed1ba95bacc162c28d7be 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.view.descriptive.operation;
 
 import org.eclipse.core.commands.ExecutionException;
@@ -24,12 +23,11 @@ import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- *
  * @author pplitzner
  * @date Jan 15, 2015
- *
  */
-public class DeleteSpecimenDescriptionOperation extends AbstractPostOperation<SpecimenOrObservationBase<?>> {
+public class DeleteSpecimenDescriptionOperation 
+               extends AbstractPostOperation<SpecimenOrObservationBase<?>> {
 
        private final SpecimenDescription description;
 
@@ -37,15 +35,11 @@ public class DeleteSpecimenDescriptionOperation extends AbstractPostOperation<Sp
                IUndoContext undoContext,
                SpecimenDescription description,
                IPostOperationEnabled postOperationEnabled,
-               ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+               ICdmEntitySessionEnabled<SpecimenOrObservationBase<?>> cdmEntitySessionEnabled) {
                super(label, undoContext, description.getDescribedSpecimenOrObservation(), postOperationEnabled, cdmEntitySessionEnabled);
                this.description = description;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -56,20 +50,12 @@ public class DeleteSpecimenDescriptionOperation extends AbstractPostOperation<Sp
                return postExecute(description);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                return execute(monitor, info);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -78,4 +64,4 @@ public class DeleteSpecimenDescriptionOperation extends AbstractPostOperation<Sp
 
                return postExecute(null);
        }
-}
+}
\ No newline at end of file
index 76e00cf0579189bf095c5bf7df075f34e4bff7b0..eff3e67b0ee4953b3e80bd8268416768a904c5b8 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.view.descriptive.operation;
 
 import org.eclipse.core.commands.ExecutionException;
@@ -29,7 +28,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @author p.ciardelli
  * @author n.hoffmann
  * @created 05.02.2009
- * @version 1.0
  */
 public class DeleteTaxonDescriptionOperation extends AbstractPostTaxonOperation {
 
@@ -54,21 +52,17 @@ public class DeleteTaxonDescriptionOperation extends AbstractPostTaxonOperation
                element = description.getTaxon();
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
            if (monitor != null){
                monitor.worked(20);
            }
-               if (description != null && description.isPersited()){
+               if (description != null && description.isPersisted()){
 //                 element.removeDescription(description);
                    CdmStore.getService(IDescriptionService.class).deleteDescription(description.getUuid());
                        return postExecute(element);
-               }else if (description != null && !description.isPersited()){
+               }else if (description != null && !description.isPersisted()){
                    element.removeDescription(description);
                    return Status.OK_STATUS;
                }
@@ -76,20 +70,12 @@ public class DeleteTaxonDescriptionOperation extends AbstractPostTaxonOperation
 
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                return execute(monitor, info);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -98,4 +84,4 @@ public class DeleteTaxonDescriptionOperation extends AbstractPostTaxonOperation
 
                return postExecute(null);
        }
-}
+}
\ No newline at end of file
index 035f741740b8dc5c37e003e30b9324ed2d627ba1..4b677e7e1acdf432cc43cd7d9d4fd6413b4e2f43 100755 (executable)
@@ -26,59 +26,42 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author k.luther
  * @since 4 Mar 2019
- *
  */
 public class DeleteTaxonNameDescriptionOperation extends AbstractPostOperation<TaxonName> {
-    private final TaxonNameDescription description;
-    /**
-     * @param label
-     * @param undoContext
-     * @param element
-     * @param postOperationEnabled
-     * @param cdmEntitySessionEnabled
-     */
+
+       private final TaxonNameDescription description;
+
     public DeleteTaxonNameDescriptionOperation(String label, IUndoContext undoContext, TaxonNameDescription description,
-            IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+            IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled<TaxonName> cdmEntitySessionEnabled) {
         super(label, undoContext, description.getTaxonName(), postOperationEnabled, cdmEntitySessionEnabled);
         this.description = description;
-
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
 
         monitor.worked(20);
-        if (description != null && description.isPersited()){
+        if (description != null && description.isPersisted()){
 //          element.removeDescription(description);
             CdmStore.getService(IDescriptionService.class).deleteDescription(description.getUuid());
             element.removeDescription(description);
             return postExecute(element);
-        }else if (description != null && !description.isPersited()){
+        }else if (description != null && !description.isPersisted()){
             element.removeDescription(description);
             return Status.OK_STATUS;
         }
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
         return execute(monitor, info);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
         element.addDescription(description);
 
         return postExecute(null);
     }
-
-}
+}
\ No newline at end of file
index e446a9858a2a66a438bb9b489ffd6d28ee84c683..76a4895cbb2307c56b92515ec81e170694bd8ba0 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.view.descriptive.operation;
 
 import java.util.Collection;
@@ -32,13 +31,12 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author n.hoffmann
  * @created Feb 8, 2011
- * @version 1.0
  */
 public class MoveDescriptionElementsOperation extends AbstractPostTaxonOperation{
 
        private Collection<DescriptionElementBase> descriptionElements;
-       private DescriptionBase targetDescription;
-       private DescriptionBase sourceDescription;
+       private DescriptionBase<?> targetDescription;
+       private DescriptionBase<?> sourceDescription;
        private IDescriptionService service;
        private UUID targetTaxonUuid;
 
@@ -46,34 +44,28 @@ public class MoveDescriptionElementsOperation extends AbstractPostTaxonOperation
        private boolean isCopy;
        private UISynchronize sync;
        private boolean setNameInSource;
-
-       /**
-        *
-        * @param label
-        * @param undoContext
-        * @param targetDescription
-        * @param descriptionElements
-        * @param isCopy
-        * @param postOperationEnabled
-        */
+       private boolean useDefaultDescription;
+       private boolean addNewCurrentDetermination;
        public MoveDescriptionElementsOperation(String label,
                        IUndoContext undoContext, DescriptionBase targetDescription, DescriptionBase sourceDescription,
                        Collection<DescriptionElementBase> descriptionElements, boolean isCopy,
-                       IPostOperationEnabled postOperationEnabled, UISynchronize sync, boolean setNameInSource) {
+                       IPostOperationEnabled postOperationEnabled, UISynchronize sync, boolean setNameInSource, boolean addNewCurrentDetermination) {
                super(label, undoContext, postOperationEnabled);
                this.targetDescription = targetDescription;
                this.sourceDescription = sourceDescription;
                this.descriptionElements = descriptionElements;
+//             this.useDefaultDescription = useDefaultDescription;
                this.isCopy = isCopy;
                this.sync = sync;
                this.setNameInSource = setNameInSource;
+               this.addNewCurrentDetermination = addNewCurrentDetermination;
                service = CdmStore.getService(IDescriptionService.class);
        }
 
        public MoveDescriptionElementsOperation(String label,
                IUndoContext undoContext, UUID targetTaxonUuid, String moveMessage,
                Collection<DescriptionElementBase> descriptionElements, boolean isCopy,
-               IPostOperationEnabled postOperationEnabled, UISynchronize sync, boolean setNameInSource) {
+               IPostOperationEnabled postOperationEnabled, UISynchronize sync, boolean setNameInSource, boolean useDefaultDescription, boolean addNewCurrentDetermination) {
            super(label, undoContext, postOperationEnabled);
            this.targetTaxonUuid = targetTaxonUuid;
            this.descriptionElements = descriptionElements;
@@ -81,12 +73,11 @@ public class MoveDescriptionElementsOperation extends AbstractPostTaxonOperation
            this.isCopy = isCopy;
            this.sync = sync;
            this.setNameInSource = setNameInSource;
+           this.useDefaultDescription = useDefaultDescription;
+           this.addNewCurrentDetermination = addNewCurrentDetermination;
            service = CdmStore.getService(IDescriptionService.class);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -97,12 +88,12 @@ public class MoveDescriptionElementsOperation extends AbstractPostTaxonOperation
                }
                UpdateResult result;
                if(targetDescription == null){
-                       result = service.moveDescriptionElementsToDescription(descriptionElementsUuid, targetTaxonUuid, moveMessage, isCopy, setNameInSource);
+                       result = service.moveDescriptionElementsToDescription(descriptionElementsUuid, targetTaxonUuid, moveMessage, isCopy, setNameInSource, useDefaultDescription, addNewCurrentDetermination);
 
                } else {
                    UUID targetDescriptionUuid = targetDescription.getUuid();
                    UUID sourceDescriptionUuid = sourceDescription.getUuid();
-                   if (!targetDescription.isPersited()){
+                   if (!targetDescription.isPersisted()){
                        result = service.moveDescriptionElementsToDescription(descriptionElementsUuid, targetDescription, isCopy, setNameInSource);
                    }else{
                        result = service.moveDescriptionElementsToDescription(descriptionElementsUuid, targetDescriptionUuid, isCopy, setNameInSource);
@@ -113,9 +104,6 @@ public class MoveDescriptionElementsOperation extends AbstractPostTaxonOperation
                return postExecute(null);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -123,16 +111,10 @@ public class MoveDescriptionElementsOperation extends AbstractPostTaxonOperation
                return null;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                // TODO Auto-generated method stub
                return null;
        }
-
-
-
-}
+}
\ No newline at end of file
index 864c2ff654de5846e894736c09d09819cd9eb91e..be45ffbba64d943c5c01436a2e6be76e46ce809d 100644 (file)
@@ -15,7 +15,6 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IDescriptionService;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
@@ -47,17 +46,15 @@ public class MoveDescriptionToOtherTaxonOperation extends
         * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param description a {@link TaxonDescription} object.
         * @param targetTaxonNode a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
-        * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        public MoveDescriptionToOtherTaxonOperation(String label,
                        IUndoContext undoContext,
                        TaxonDescription description,
                        TaxonNode targetTaxonNode,
                        IPostOperationEnabled postOperationEnabled,
-                       IConversationEnabled conversationEnabled,
-            ICdmEntitySessionEnabled cdmEntitySessionEnabled,
+                       ICdmEntitySessionEnabled cdmEntitySessionEnabled,
                boolean setNameInSource) {
-               super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled); // FIXME is this the right constructor ???
+               super(label, undoContext, postOperationEnabled, cdmEntitySessionEnabled); // FIXME is this the right constructor ???
                this.description = description;
                this.setNameInSource = setNameInSource;
                this.newAcceptedTaxonNode = targetTaxonNode;
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/SetDefaultDescriptionOperation.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/operation/SetDefaultDescriptionOperation.java
new file mode 100644 (file)
index 0000000..fb744e2
--- /dev/null
@@ -0,0 +1,96 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.editor.view.descriptive.operation;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+
+/**
+ * <p>SetDefaultDescriptionOperation class.</p>
+ *
+ * @author p.ciardelli
+ * @author k.luther
+ * @created 05.10.2023
+ */
+public class SetDefaultDescriptionOperation extends AbstractPostTaxonOperation {
+
+       /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.descripti"{trunked}</code> */
+       public static final String ID = "eu.etaxonomy.taxeditor.editor.view.descriptive.e4.command.SetDefaultDescription"; //$NON-NLS-1$
+
+       private final DescriptionBase<?> description;
+       private boolean isDefault;
+
+       /**
+        * <p>Constructor for CreateDescriptionElementOperation.</p>
+        *
+        * @param label a {@link java.lang.String} object.
+        * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+        * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
+        * @param description a {@link DescriptionBase} object.
+        * @param feature a {@link eu.etaxonomy.cdm.model.description.Feature} object.
+        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
+        */
+       public SetDefaultDescriptionOperation(String label, IUndoContext undoContext,
+               DescriptionBase<?> description, boolean isDefault, IPostOperationEnabled postOperationEnabled) {
+               super(label, undoContext, (Taxon)null, postOperationEnabled);
+
+               this.description = description;
+               this.isDefault = isDefault;
+       }
+
+       
+
+       @Override
+       public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+                       throws ExecutionException {
+
+               monitor.worked(20);     
+               if (description instanceof TaxonDescription) {
+                   TaxonDescription taxDescription = (TaxonDescription)description;
+                   Taxon taxon = taxDescription.getTaxon();
+                   for (TaxonDescription desc :taxon.getDescriptions()) {
+                       if (desc.isDefault() && !desc.getUuid().equals(taxDescription.getUuid()) && !taxDescription.isImageGallery()) {
+                           desc.setDefault(false);
+                       }
+                   }
+               }
+               description.setDefault(isDefault);
+               monitor.worked(40);
+
+               return postExecute(description);
+       }
+
+       @Override
+       public IStatus redo(IProgressMonitor monitor, IAdaptable info)
+                       throws ExecutionException {
+
+               description.setDefault(isDefault);
+
+               return postExecute(description);
+       }
+
+       @Override
+       public IStatus undo(IProgressMonitor monitor, IAdaptable info)
+                       throws ExecutionException {
+
+               description.setDefault(!isDefault);
+
+               return postExecute(null);
+       }
+}
index e183caeaa4a1b600a8c4a7dbdfa3a412e5da4f6c..f33427e2e8dad4639647ea4ea70bc1d102ca3343 100644 (file)
@@ -6,10 +6,8 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.view.media;
 
-import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -18,18 +16,13 @@ import org.eclipse.core.runtime.Assert;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.SpecimenDescription;
 import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
-import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4;
+import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 
 /**
@@ -45,11 +38,11 @@ public class MediaContentProvider implements ITreeContentProvider{
        @Override
     public Object[] getChildren(Object parentElement) {
 
-               if (parentElement instanceof TaxonEditorInputE4 || parentElement instanceof Taxon) {
+               if (parentElement instanceof TaxonEditorInput || parentElement instanceof Taxon) {
 
                        Taxon taxon = null;
-                       if (parentElement instanceof TaxonEditorInputE4){
-                               taxon = ((TaxonEditorInputE4) parentElement).getTaxon();
+                       if (parentElement instanceof TaxonEditorInput){
+                               taxon = ((TaxonEditorInput) parentElement).getTaxon();
                        } else{
                                taxon = HibernateProxyHelper.deproxy(parentElement, Taxon.class);
                        }
@@ -58,7 +51,7 @@ public class MediaContentProvider implements ITreeContentProvider{
                                MessagingUtils.error(getClass(), "Taxon is null", null); //$NON-NLS-1$
                                return NO_CHILDREN;
                        }
-                       HashSet<DescriptionBase<?>> imageGalleries = new HashSet<>();
+                       Set<DescriptionBase<?>> imageGalleries = new HashSet<>();
                        for(DescriptionBase<?> description : taxon.getDescriptions()){
                                if(description.isImageGallery()){
                                        imageGalleries.add(description);
@@ -76,28 +69,9 @@ public class MediaContentProvider implements ITreeContentProvider{
 
                        }
                }
-               else if (parentElement instanceof DerivedUnit){
-                       try {
-                               DerivedUnitFacade facade = DerivedUnitFacade.NewInstance((DerivedUnit) parentElement);
-
-                               SpecimenDescription derivedUnitImageGallery = facade.getDerivedUnitImageGallery(false);
-
-                               if(derivedUnitImageGallery != null){
-                                       return Collections.singleton(derivedUnitImageGallery).toArray();
-                               }
-
-                       } catch (DerivedUnitFacadeNotSupportedException e) {
-                               MessagingUtils.error(this.getClass(), "DerivedUnitFacadeNotSupportedException when trying to instantiate DerivedUnitFacade", e); //$NON-NLS-1$
-                       }
-               }
-               else if (parentElement instanceof FieldUnit){
-                       DerivedUnitFacade facade = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.FieldUnit, (FieldUnit) parentElement);
-
-                       SpecimenDescription fieldObjectImageGallery = facade.getFieldObjectImageGallery(false);
-
-                       if(fieldObjectImageGallery != null){
-                           return Collections.singleton(fieldObjectImageGallery).toArray();
-                       }
+               else if (parentElement instanceof SpecimenOrObservationBase){
+                   SpecimenOrObservationBase<?> sob = (SpecimenOrObservationBase<?>)parentElement;
+                       return sob.getSpecimenDescriptionImageGallery().toArray();
                }
                return NO_CHILDREN;
        }
@@ -127,7 +101,7 @@ public class MediaContentProvider implements ITreeContentProvider{
        @Override
     public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
 
-       private List<Media> getImages(DescriptionBase description){
+       private List<Media> getImages(DescriptionBase<?> description){
                Assert.isTrue(description.isImageGallery(), "Description should have the imageGallery flag set."); //$NON-NLS-1$
 
                Set<DescriptionElementBase> elements = description.getElements();
@@ -143,10 +117,4 @@ public class MediaContentProvider implements ITreeContentProvider{
                }
                return null;
        }
-
-       private SpecimenDescription createDerivedUnitFacadeImageGallery(DerivedUnitFacade facade){
-               SpecimenDescription description = SpecimenDescription.NewInstance();
-               description.setImageGallery(true);
-               return description;
-       }
 }
index d39be91a41c98dab57b0e8776ae4a2bffd676c27..29ec7b1224d8fa0d66aa4c1c44657e2b3508b0e6 100755 (executable)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2017 EDIT
 * European Distributed Institute of Taxonomy
@@ -10,7 +9,6 @@
 package eu.etaxonomy.taxeditor.editor.view.media;
 
 import java.io.InputStream;
-import java.net.URI;
 import java.util.List;
 import java.util.Set;
 
@@ -22,6 +20,7 @@ import org.eclipse.swt.graphics.GC;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.widgets.Display;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.common.UriUtils;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.media.Media;
@@ -33,7 +32,6 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 /**
  * @author k.luther
  * @date 11.10.2017
- *
  */
 public class MediaViewLabelProvider extends LabelProvider implements IStyledLabelProvider {
 
index 99d7131fb3b8bd14ba22c3acafcd1df5937e9869..4c15100b9e2f95d6da610ad6e4d78551278b0316 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.view.media.e4;
 
 import javax.annotation.PostConstruct;
@@ -24,8 +23,10 @@ import org.eclipse.swt.widgets.Tree;
 
 import eu.etaxonomy.cdm.model.description.IDescribable;
 import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditor;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.concept.e4.ConceptViewPartE4;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
 import eu.etaxonomy.taxeditor.editor.view.media.MediaContentProvider;
@@ -33,17 +34,15 @@ import eu.etaxonomy.taxeditor.editor.view.media.MediaViewLabelProvider;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasMedia;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
-import eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPartE4;
+import eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPart;
 import eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4;
 import eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4;
 
 /**
- *
  * @author pplitzner
  * @since Aug 14, 2017
- *
  */
-public class MediaViewPartE4 extends AbstractCdmEditorPartE4
+public class MediaViewPartE4 extends AbstractCdmEditorPart<TreeViewer>
         implements IPartContentHasDetails, IPartContentHasSupplementalData {
 
     @PostConstruct
@@ -69,16 +68,15 @@ public class MediaViewPartE4 extends AbstractCdmEditorPartE4
 
         //create context menu
         menuService.registerContextMenu(viewer.getControl(), "eu.etaxonomy.taxeditor.editor.popupmenu.mediaview");
-
        }
 
     @Override
     public void selectionChanged_internal(Object selection, MPart activePart, MPart thisPart) {
-           if(activePart==thisPart){
+           if(activePart == thisPart){
                return;
            }
 
-           Object partObject = createPartObject(activePart);
+           Object partObject = getPartObject(activePart);
 
            if (partObject instanceof DetailsPartE4 || partObject instanceof SupplementalDataPartE4
                    || partObject instanceof FactualDataPartE4 || partObject instanceof ConceptViewPartE4) {
@@ -98,8 +96,8 @@ public class MediaViewPartE4 extends AbstractCdmEditorPartE4
                }
 
                Object firstElement = structuredSelection.getFirstElement();
-               if (partObject instanceof TaxonNameEditorE4){
-                   if (firstElement != ((TaxonNameEditorE4)partObject).getTaxon()){
+               if (partObject instanceof TaxonEditor){
+                   if (firstElement != ((TaxonEditor)partObject).getTaxon()){
                        showEmptyPage();
                        return;
                    }
@@ -109,7 +107,7 @@ public class MediaViewPartE4 extends AbstractCdmEditorPartE4
                    return;
                }
                else if(firstElement!=null
-                       && firstElement instanceof IDescribable<?> && !(firstElement instanceof TaxonName)){
+                       && firstElement instanceof IDescribable<?> && !(firstElement instanceof TaxonName) && !(firstElement instanceof SpecimenOrObservationBase && partObject instanceof BulkEditor )){
                    showViewer(structuredSelection, activePart, viewer);
                    return;
                }
@@ -118,7 +116,6 @@ public class MediaViewPartE4 extends AbstractCdmEditorPartE4
            return;
        }
 
-       /** {@inheritDoc} */
        @Override
        public void changed(Object object) {
            ((AbstractTreeViewer) viewer).expandToLevel(2);
@@ -134,7 +131,4 @@ public class MediaViewPartE4 extends AbstractCdmEditorPartE4
        protected String getViewName() {
                return Messages.MediaViewPart_MEDIA;
        }
-
-
-
-}
+}
\ No newline at end of file
index bd3b377c556c5595e81c1acc9aaa240b82c79546..3f91e8406b6b9cbc0cf9c4401ab62a776f57e1e4 100644 (file)
@@ -25,8 +25,8 @@ import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInput;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.media.e4.MediaViewPartE4;
 import eu.etaxonomy.taxeditor.editor.view.media.operation.MoveMediaInListOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -36,9 +36,9 @@ import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
 /**
  * @author pplitzner
  * @since Jun 6, 2018
- *
  */
 public abstract class AbstractMoveImageHandler {
+
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart,
             MMenuItem menuItem,
@@ -46,24 +46,24 @@ public abstract class AbstractMoveImageHandler {
 
         MediaViewPartE4 mediaView = (MediaViewPartE4) activePart.getObject();
 
-        TaxonNameEditorE4 editor = null;
+        TaxonEditor editor = null;
         Object e4WrappedPart = WorkbenchUtility.getE4WrappedPart(mediaView.getSelectionProvidingPart());
-        if (e4WrappedPart instanceof TaxonNameEditorE4) {
-            editor = (TaxonNameEditorE4) e4WrappedPart;
-            TaxonEditorInputE4 input = editor.getEditorInput();
+        if (e4WrappedPart instanceof TaxonEditor) {
+            editor = (TaxonEditor) e4WrappedPart;
+            TaxonEditorInput input = editor.getEditorInput();
             Taxon taxon =input.getTaxon();
 
             TreeSelection selection = (TreeSelection) mediaView.getViewer().getSelection();
             TreePath[] paths = selection.getPaths();
             int count = paths[0].getSegmentCount();
-            DescriptionBase description = null;
+            DescriptionBase<?> description = null;
             for (int i = 0; i < count; i++ ) {
                 if (paths[0].getSegment(i) instanceof DescriptionBase) {
-                    description = (DescriptionBase) paths[0].getSegment(i);
+                    description = (DescriptionBase<?>) paths[0].getSegment(i);
                     break;
                 }
             }
-            AbstractPostOperation operation = null;
+            AbstractPostOperation<?> operation = null;
             // TODO use undo context specific to editor
             operation = new MoveMediaInListOperation(menuItem.getLocalizedLabel(),
                     EditorUtil.getUndoContext(),
index 10c774fb2d0a23e5ac22a86519807d1906609361..1d83d656f080116bbfd6451e2d98f74229976ee9 100644 (file)
@@ -1,3 +1,11 @@
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.editor.view.media.handler;
 
 import javax.inject.Named;
@@ -30,7 +38,7 @@ public class AddExistingMediaHandler  {
 
         MediaViewPartE4 mediaView = (MediaViewPartE4) activePart.getObject();
 
-        AbstractPostOperation operation = null;
+        AbstractPostOperation<?> operation = null;
         //select media
         Media media = MediaSelectionDialog.select(AbstractUtility.getShell(),// null,
                 null);
@@ -50,5 +58,4 @@ public class AddExistingMediaHandler  {
         menuItem.setVisible(canExecute);
         return canExecute;
     }
-
-}
+}
\ No newline at end of file
index c7e720062c909bec4de163d6c5c6c9c2c1165c30..8fff252e833a99896a19b075af5b195d7ada8b13 100644 (file)
@@ -1,6 +1,11 @@
 /**
- *
- */
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.editor.view.media.handler;
 
 import javax.inject.Named;
@@ -24,14 +29,11 @@ import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 
 /**
- *
  * @author pplitzner
  * @since Aug 14, 2017
- *
  */
 public class AddImageGalleryHandler {
 
-    /** {@inheritDoc} */
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart, MMenuItem menuItem,
             UISynchronize sync) {
@@ -58,5 +60,4 @@ public class AddImageGalleryHandler {
             }
         }
     }
-
-}
+}
\ No newline at end of file
index 497cb3c6fe7a425681ddb051bb093cf49e9e910d..f48d60a90bdaf5a04f90e206b4c00c2a3f6cb514 100644 (file)
@@ -1,6 +1,11 @@
 /**
- *
- */
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.editor.view.media.handler;
 
 import javax.inject.Named;
@@ -23,10 +28,8 @@ import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 
 /**
- *
  * @author pplitzner
  * @since Aug 14, 2017
- *
  */
 public class CreateMediaHandler {
 
@@ -37,7 +40,7 @@ public class CreateMediaHandler {
 
         MediaViewPartE4 mediaView = (MediaViewPartE4) activePart.getObject();
 
-        AbstractPostOperation operation = null;
+        AbstractPostOperation<?> operation = null;
         // TODO use undo context specific to editor
         operation = new AddMediaToImageGalleryOperation(menuItem.getLocalizedLabel(),
                 EditorUtil.getUndoContext(), (DescriptionBase<?>) selection.getFirstElement(), mediaView);
@@ -52,5 +55,4 @@ public class CreateMediaHandler {
         menuItem.setVisible(canExecute);
         return canExecute;
     }
-
-}
+}
\ No newline at end of file
index de120ac13d19b6214ab4b0fa67911e470331b0a9..8c1ee2e4a633bbf7637cc2352a0c7467f4500441 100644 (file)
@@ -1,9 +1,18 @@
 /**
- *
- */
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
 package eu.etaxonomy.taxeditor.editor.view.media.handler;
 
+import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Set;
 
 import javax.inject.Named;
@@ -31,7 +40,7 @@ import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteSpecimenDescriptionOperation;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteTaxonDescriptionOperation;
 import eu.etaxonomy.taxeditor.editor.view.media.e4.MediaViewPartE4;
@@ -41,10 +50,8 @@ import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.ui.dialog.configurator.deleteConfigurator.DeleteConfiguratorDialog;
 
 /**
- *
  * @author pplitzner
  * @since Aug 15, 2017
- *
  */
 public class DeleteMediaHandler  {
 
@@ -57,67 +64,80 @@ public class DeleteMediaHandler  {
         MediaViewPartE4 mediaView = (MediaViewPartE4) activePart.getObject();
         TreeSelection selection = (TreeSelection) mediaView.getViewer().getSelection();
 
-        for(Iterator iter = selection.iterator();iter.hasNext();){
+        for(Iterator<?> iter = selection.iterator();iter.hasNext();){
             Object object = iter.next();
             TreePath[] paths = selection.getPaths();
             int count = paths[0].getSegmentCount();
-            DescriptionBase description = null;
+            DescriptionBase<?> description = null;
             for (int i = 0; i < count; i++ ) {
                 if (paths[0].getSegment(i) instanceof DescriptionBase) {
-                    description = (DescriptionBase) paths[0].getSegment(i);
+                    description = (DescriptionBase<?>) paths[0].getSegment(i);
                     break;
                 }
             }
-            // TODO use undo context specific to editor
-            MediaDeletionConfigurator config = new MediaDeletionConfigurator();
-
-            config.setDeleteFromDescription(true);
-            config.setOnlyRemoveFromGallery(false);
-
-            if (description instanceof SpecimenDescription){
-                config.setDeleteFrom(((SpecimenDescription)description).getDescribedSpecimenOrObservation());
-            } else if (description instanceof TaxonDescription){
-                config.setDeleteFrom(((TaxonDescription)description).getTaxon());
-            }else if (description instanceof TaxonNameDescription){
-                config.setDeleteFrom(((TaxonNameDescription)description).getTaxonName());
-            }
-            DeleteConfiguratorDialog dialog;
-            dialog = new DeleteConfiguratorDialog(config, shell, Messages.DeleteMediaHandler_CONFIRM,  null,  Messages.DeleteMediaHandler_CONFIRM_MESSAGE, MessageDialog.WARNING, new String[] { Messages.DeleteMediaHandler_DELETE, Messages.DeleteMediaHandler_SKIP }, 0);
-            int result_dialog= dialog.open();
-            if (result_dialog != IStatus.OK){
-                return;
-            }
+
             if(object instanceof Media){
-                AbstractPostOperation<?> operation = new DeleteMediaOperation(menuItem.getLocalizedLabel(), EditorUtil.getUndoContext(), description, (Media) object, config, mediaView);
-                if (mediaView.getSelectionProvidingPart().getObject() instanceof TaxonNameEditorE4){
-                    if (!config.isOnlyRemoveFromGallery()){
-                        ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).getEditorInput().addOperation(operation);
+                // TODO use undo context specific to editor
+                if (!((Media)object).isPersisted()){
+                    Set<DescriptionElementBase> elements = description.getElements();
+                    if (elements.size() == 1){
+                          DescriptionElementBase element = elements.iterator().next();
+                          Set<Media> toDelete = new HashSet<>();
+                          element.removeMedia((Media)object);
+                          ((TaxonEditor)mediaView.getSelectionProvidingPart().getObject()).redraw();
+                          return;
+
+                    }
+                }
+                MediaDeletionConfigurator config = fillDeleteConfigurator(shell, description, Messages.DeleteMediaHandler_CONFIRM_MESSAGE_MEDIA);
+                if (config == null){
+                    return;
+                }
+                List<Media> mediaList = new ArrayList<>();
+                mediaList.add((Media)object);
+                createMediaDeleteOperation(menuItem.getLocalizedLabel(), sync, mediaView, mediaList, description, config);
+            }
+
+            if(object instanceof DescriptionBase && ((DescriptionBase<?>) object).isImageGallery()){
+                if (!((DescriptionBase<?>)object).getElements().isEmpty()){
+                    Set<DescriptionElementBase> elements = description.getElements();
+                    boolean containsPersistedMedia = false;
+                    DescriptionElementBase element = null;
+                    List<Media> mediaList = new ArrayList<>();
+
+                    if (elements.size() == 1){
+                        element = elements.iterator().next();
+//                        containsPersistedMedia = element.getMedia().isEmpty();
+                        if (element.getMedia() != null && !element.getMedia().isEmpty()){
+                            for (Media media: element.getMedia()){
+                                containsPersistedMedia |= media.isPersisted();
+                                if (media.isPersisted()){
+                                    mediaList.add(media);
+                                }
+                            }
+                        }
                     }
-                    Media media = (Media)object;
-                    if (description.isImageGallery()){
-                        Set<DescriptionElementBase> elements = description.getElements();
-                        if (elements.size() == 1){
-                              DescriptionElementBase element = elements.iterator().next();
-                              element.removeMedia(media);
-                              if (element.getMedia().isEmpty()){
-                                  description.removeElement(element);
-                              }
+                    if (containsPersistedMedia){
+                        MediaDeletionConfigurator config = fillDeleteConfigurator(shell, description, Messages.DeleteMediaHandler_CONFIRM_MESSAGE_DESCRIPTION);
+
+                        if (config == null){
+                            return;
+                        }
+                        if (element != null){
+                            createMediaDeleteOperation(menuItem.getLocalizedLabel(), sync, mediaView, mediaList, description, config);
                         }
                     }
 
-                  ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).setDirty();
-                  ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).redraw();
-                }else{
-                    AbstractUtility.executeOperation(operation, sync);
                 }
-            }
-            if(object instanceof DescriptionBase && ((DescriptionBase) object).isImageGallery()){
+
                 if(object instanceof TaxonDescription){
+
                     DeleteTaxonDescriptionOperation deleteTaxonDescriptionOperation = new DeleteTaxonDescriptionOperation(menuItem.getLocalizedLabel(), EditorUtil.getUndoContext(), (TaxonDescription)object, mediaView, null);
-                    if (mediaView.getSelectionProvidingPart().getObject() instanceof TaxonNameEditorE4){
-                        ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).getEditorInput().addOperation(deleteTaxonDescriptionOperation);
-                        ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).setDirty();
-                        ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).redraw();
+                    if (mediaView.getSelectionProvidingPart().getObject() instanceof TaxonEditor){
+                        ((TaxonEditor)mediaView.getSelectionProvidingPart().getObject()).getTaxon().removeDescription((TaxonDescription)description);
+                        ((TaxonEditor)mediaView.getSelectionProvidingPart().getObject()).getEditorInput().addOperation(deleteTaxonDescriptionOperation);
+                        ((TaxonEditor)mediaView.getSelectionProvidingPart().getObject()).setDirty();
+                        ((TaxonEditor)mediaView.getSelectionProvidingPart().getObject()).redraw();
 
                      }else{
                          AbstractUtility.executeOperation(deleteTaxonDescriptionOperation, sync);
@@ -125,10 +145,10 @@ public class DeleteMediaHandler  {
                 }
                 else if(object instanceof SpecimenDescription){
                     DeleteSpecimenDescriptionOperation deleteTaxonDescriptionOperation = new DeleteSpecimenDescriptionOperation(menuItem.getLocalizedLabel(), EditorUtil.getUndoContext(), (SpecimenDescription)object, mediaView, null);
-                    if (mediaView.getSelectionProvidingPart().getObject() instanceof TaxonNameEditorE4){
-                        ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).getEditorInput().addOperation(deleteTaxonDescriptionOperation);
-                        ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).setDirty();
-                        ((TaxonNameEditorE4)mediaView.getSelectionProvidingPart().getObject()).redraw();
+                    if (mediaView.getSelectionProvidingPart().getObject() instanceof TaxonEditor){
+                        ((TaxonEditor)mediaView.getSelectionProvidingPart().getObject()).getEditorInput().addOperation(deleteTaxonDescriptionOperation);
+                        ((TaxonEditor)mediaView.getSelectionProvidingPart().getObject()).setDirty();
+                        ((TaxonEditor)mediaView.getSelectionProvidingPart().getObject()).redraw();
                      }else{
                          AbstractUtility.executeOperation(deleteTaxonDescriptionOperation, sync);
                      }
@@ -137,6 +157,57 @@ public class DeleteMediaHandler  {
         }
     }
 
+    public void createMediaDeleteOperation(String menuLabel, UISynchronize sync, MediaViewPartE4 mediaView,
+            List<Media> media, DescriptionBase<?> description, MediaDeletionConfigurator config) {
+        AbstractPostOperation<?> operation = new DeleteMediaOperation(menuLabel, EditorUtil.getUndoContext(), description, media, config, mediaView);
+        if (mediaView.getSelectionProvidingPart().getObject() instanceof TaxonEditor){
+            if (!config.isOnlyRemoveFromGallery()){
+                ((TaxonEditor)mediaView.getSelectionProvidingPart().getObject()).getEditorInput().addOperation(operation);
+            }
+
+            if (description.isImageGallery()){
+                Set<DescriptionElementBase> elements = description.getElements();
+                if (elements.size() == 1){
+                      DescriptionElementBase element = elements.iterator().next();
+                      Set<Media> toDelete = new HashSet<>();
+                      for (Media mediaElement:media){
+                          toDelete.add(mediaElement);
+                      }
+                      for (Media mediaElement:toDelete){
+                          element.removeMedia(mediaElement);
+                      }
+                }
+            }
+
+          ((TaxonEditor)mediaView.getSelectionProvidingPart().getObject()).setDirty();
+          ((TaxonEditor)mediaView.getSelectionProvidingPart().getObject()).redraw();
+        }else{
+            AbstractUtility.executeOperation(operation, sync);
+        }
+    }
+
+    public MediaDeletionConfigurator fillDeleteConfigurator(Shell shell, DescriptionBase<?> description, String message) {
+        MediaDeletionConfigurator config = new MediaDeletionConfigurator();
+
+        config.setDeleteFromDescription(true);
+        config.setOnlyRemoveFromGallery(false);
+
+        if (description instanceof SpecimenDescription){
+            config.setDeleteFrom(((SpecimenDescription)description).getDescribedSpecimenOrObservation());
+        } else if (description instanceof TaxonDescription){
+            config.setDeleteFrom(((TaxonDescription)description).getTaxon());
+        }else if (description instanceof TaxonNameDescription){
+            config.setDeleteFrom(((TaxonNameDescription)description).getTaxonName());
+        }
+        DeleteConfiguratorDialog dialog;
+        dialog = new DeleteConfiguratorDialog(config, shell, Messages.DeleteMediaHandler_CONFIRM,  null,  message, MessageDialog.WARNING, new String[] { Messages.DeleteMediaHandler_DELETE, Messages.DeleteMediaHandler_SKIP }, 0);
+        int result_dialog= dialog.open();
+        if (result_dialog != IStatus.OK){
+            return null;
+        }
+        return config;
+    }
+
     @CanExecute
     public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart,
             MHandledMenuItem menuItem){
@@ -144,10 +215,10 @@ public class DeleteMediaHandler  {
         ISelection selection = mediaView.getViewer().getSelection();
 
         boolean canExecute = selection instanceof TreeSelection && !selection.isEmpty();
-        for(Iterator iter = ((TreeSelection) selection).iterator();iter.hasNext();){
+        for(Iterator<?> iter = ((TreeSelection) selection).iterator();iter.hasNext();){
             Object object = iter.next();
             canExecute &= object instanceof Media
-                    || (object instanceof DescriptionBase && ((DescriptionBase) object).isImageGallery());
+                    || (object instanceof DescriptionBase && ((DescriptionBase<?>) object).isImageGallery());
         }
         menuItem.setVisible(canExecute);
         return canExecute;
index 9ddbb58903693483d753eff0c10584bd1aa31dbc..bfe5c1767667b8e4f990e896c5f9bd1c8d78c3a2 100644 (file)
@@ -7,13 +7,12 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 package eu.etaxonomy.taxeditor.editor.view.media.handler;
+
 import eu.etaxonomy.taxeditor.editor.view.media.operation.MoveMediaInListOperation;
 
 /**
- *
  * @author p.ciardelli
  * @created 11.08.2009
- * @version 1.0
  */
 public class MoveImageDownInListHandler extends AbstractMoveImageHandler{
 
@@ -21,5 +20,4 @@ public class MoveImageDownInListHandler extends AbstractMoveImageHandler{
     public int moveImageOperation() {
         return MoveMediaInListOperation.DOWN;
     }
-
-}
+}
\ No newline at end of file
index 07f1a9d9b1dbe71e1e86feec0a8137828939c483..f217b0cf50af8289571ed28adf065426f4f7948a 100644 (file)
@@ -11,10 +11,8 @@ package eu.etaxonomy.taxeditor.editor.view.media.handler;
 import eu.etaxonomy.taxeditor.editor.view.media.operation.MoveMediaInListOperation;
 
 /**
- *
  * @author p.ciardelli
  * @created 11.08.2009
- * @version 1.0
  */
 public class MoveImageUpInListHandler extends AbstractMoveImageHandler{
 
@@ -22,5 +20,4 @@ public class MoveImageUpInListHandler extends AbstractMoveImageHandler{
     public int moveImageOperation() {
         return MoveMediaInListOperation.UP;
     }
-
-}
+}
\ No newline at end of file
index ed396f0a9de4b1ae1dc082fb8888e54b2e84a378..e298ccce6960afe1f5d9f68c6bb054a43c2e9035 100644 (file)
@@ -15,7 +15,7 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
-import eu.etaxonomy.cdm.api.utility.ImagesUtility;
+import eu.etaxonomy.cdm.api.util.ImagesUtility;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
@@ -26,7 +26,6 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
  * @author p.ciardelli
  * @author n.hoffmann
  * @created 05.02.2009
- * @version 1.0
  */
 public class AddMediaToImageGalleryOperation extends AbstractPostTaxonOperation {
 
@@ -56,10 +55,6 @@ public class AddMediaToImageGalleryOperation extends AbstractPostTaxonOperation
            this.media = media;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -73,20 +68,12 @@ public class AddMediaToImageGalleryOperation extends AbstractPostTaxonOperation
                return postExecute(media);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                return execute(monitor, info);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
index ddea851f8e271b3630a31aa73c5c69abc32d6584..29096bee773baca53853059c0639048db34872bf 100644 (file)
@@ -15,7 +15,7 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
-import eu.etaxonomy.cdm.api.utility.ImagesUtility;
+import eu.etaxonomy.cdm.api.util.ImagesUtility;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.media.ImageFile;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
index 741ddbe4587c74e0236e9fdd752d98829b932d88..1696dcc1ec89309cd2a1d6e4cf023025d7f786b7 100644 (file)
@@ -6,11 +6,13 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.view.media.operation;
 
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
+import java.util.UUID;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -21,7 +23,7 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.IMediaService;
 import eu.etaxonomy.cdm.api.service.config.MediaDeletionConfigurator;
-import eu.etaxonomy.cdm.api.utility.ImagesUtility;
+import eu.etaxonomy.cdm.api.util.ImagesUtility;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
@@ -35,11 +37,10 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  *
  * @author p.ciardelli
  * @created 31.03.2009
- * @version 1.0
  */
 public class DeleteMediaOperation extends AbstractPostTaxonOperation {
 
-       private final Media media;
+       private final List<Media> media;
 
        private final DescriptionBase<?> description;
 
@@ -55,76 +56,74 @@ public class DeleteMediaOperation extends AbstractPostTaxonOperation {
         * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         */
        public DeleteMediaOperation(String label, IUndoContext undoContext,
-               DescriptionBase<?> description, Media media, MediaDeletionConfigurator config, IPostOperationEnabled postOperationEnabled) {
+               DescriptionBase<?> description, List<Media> media, MediaDeletionConfigurator config, IPostOperationEnabled postOperationEnabled) {
                super(label, undoContext, postOperationEnabled);
                this.config = config;
                this.media = media;
                this.description = description;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
+       public DeleteMediaOperation(String label, IUndoContext undoContext,
+            DescriptionBase<?> description, Media media, MediaDeletionConfigurator config, IPostOperationEnabled postOperationEnabled) {
+        super(label, undoContext, postOperationEnabled);
+        this.config = config;
+        this.media = new ArrayList<>();
+        this.media.add(media);
+        this.description = description;
+    }
+
+
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
 
-          // ImagesUtility.removeMediaFromGallery(description, media);
+
            if (monitor != null) {
             monitor.worked(20);
         }
-               if (!config.isOnlyRemoveFromGallery() && media.getId() != 0){
-                       DeleteResult result = CdmStore.getService(IMediaService.class).delete(media.getUuid(), config);
+               if (!config.isOnlyRemoveFromGallery() ){
+                   Set<UUID> toDelete= new HashSet<>();
+                   for (Media mediaElement: media){
+                       if (mediaElement.getId() != 0){
+                           toDelete.add(mediaElement.getUuid());
+                       }
+                   }
+
+                       DeleteResult result = CdmStore.getService(IMediaService.class).delete(toDelete, config);
                        String errorMessage = "The media ";
 
                        if (!result.isOk()){
                                List<String> messages = new ArrayList<String>();
-                               int i = result.getExceptions().size();
+
                                for (Exception e:result.getExceptions()){
                                        messages.add(e.getMessage());
                                }
                                errorMessage += "could not be deleted from database. ";
                                //MessagingUtils.errorDialog("test", getClass(), "message", TaxeditorBulkeditorPlugin.PLUGIN_ID, result.getExceptions().iterator().next(),true);
                                DeleteResultMessagingUtils.messageDialogWithDetails(result,errorMessage, TaxeditorBulkeditorPlugin.PLUGIN_ID);
-//                             if (config.isDeleteFromDescription()){
-//                                     ImagesUtility.removeMediaFromGallery(description, media);
-//                             }
-                       }else{
-//                             ImagesUtility.removeMediaFromGallery(description, media);
+
                        }
-               } else{
-//                     ImagesUtility.removeMediaFromGallery(description, media);
                }
                if (monitor != null){
                    monitor.worked(40);
                }
 
-               return postExecute(media);
+               return postExecute(null);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                return execute(monitor, info);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
-
-               ImagesUtility.addMediaToGallery(description, media);
+           for (Media mediaElement: media){
+               ImagesUtility.addMediaToGallery(description, mediaElement);
+           }
 
                return postExecute(null);
        }
-
-
-}
+}
\ No newline at end of file
index 0123b0a8911aa8860615647e971145689e41f54b..3364c641ddcf1ea2ece8e9b5d0293c6eb181c352 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.view.media.operation;
 
 import java.util.Collections;
@@ -33,7 +32,6 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
  *
  * @author p.ciardelli
  * @created 05.02.2009
- * @version 1.0
  */
 public class MoveMediaInListOperation extends AbstractPostTaxonOperation {
 
@@ -42,7 +40,7 @@ public class MoveMediaInListOperation extends AbstractPostTaxonOperation {
        /** Constant <code>DOWN=-1</code> */
        public static final int DOWN = 1;
 
-       private DescriptionBase description;
+       private DescriptionBase<?> description;
        private Media media;
        private int direction;
 
@@ -67,10 +65,6 @@ public class MoveMediaInListOperation extends AbstractPostTaxonOperation {
                this.direction = direction;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -83,20 +77,12 @@ public class MoveMediaInListOperation extends AbstractPostTaxonOperation {
                return postExecute(media);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                return execute(monitor, info);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -104,7 +90,7 @@ public class MoveMediaInListOperation extends AbstractPostTaxonOperation {
                return postExecute(media);
        }
 
-       private void moveMedia(DescriptionBase description, Media media, int direction){
+       private void moveMedia(DescriptionBase<?> description, Media media, int direction){
                Set<DescriptionElementBase> elements = description.getElements();
 
                if(elements.size() != 1){
@@ -130,4 +116,4 @@ public class MoveMediaInListOperation extends AbstractPostTaxonOperation {
                        }
                }
        }
-}
+}
\ No newline at end of file
index afc550f0fbe9de907ee4629a7dbc31cd24dd1349..b8000d97fc6863fe367636f260f155ea4644c9e7 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.view.media.operation;
 
 import org.eclipse.core.commands.ExecutionException;
@@ -15,7 +14,7 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
-import eu.etaxonomy.cdm.api.utility.ImagesUtility;
+import eu.etaxonomy.cdm.api.util.ImagesUtility;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
@@ -44,14 +43,13 @@ public class RemoveImageFromDescriptionElementOperation extends AbstractPostTaxo
         */
        public RemoveImageFromDescriptionElementOperation(String label,
                        IUndoContext undoContext, Media media,
-                       DescriptionBase element, IPostOperationEnabled postOperationEnabled) {
+                       DescriptionBase<?> element, IPostOperationEnabled postOperationEnabled) {
                super(label, undoContext, postOperationEnabled);
 
                this.media = media;
                this.element = element;
        }
 
-       /** {@inheritDoc} */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -63,18 +61,16 @@ public class RemoveImageFromDescriptionElementOperation extends AbstractPostTaxo
                return postExecute(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                return execute(monitor, info);
        }
 
-       /** {@inheritDoc} */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                ImagesUtility.addMediaToGallery(element, media);
                return postExecute(media);
        }
-}
+}
\ No newline at end of file
index 17c3fadf4ada3ed4310e0d58e38f00efa9f72b16..ac47d9c717d2bc3f6f5793c142d852bbef9fec73 100644 (file)
@@ -28,11 +28,10 @@ import eu.etaxonomy.taxeditor.store.UsageTermCollection;
  * The class provides the required content to the Uses View\r
  * @author a.theys\r
  * @created mar 13, 2012\r
- * @version 1.0\r
  */\r
 public class UsesContentProvider extends DescriptiveContentProvider {\r
 \r
-       Set<MarkerType> markerTypes = new HashSet<MarkerType>();\r
+       Set<MarkerType> markerTypes = new HashSet<>();\r
 \r
        /**\r
         * <p>Constructor for DescriptiveContentProvider.</p>\r
@@ -52,7 +51,7 @@ public class UsesContentProvider extends DescriptiveContentProvider {
         */\r
        @Override\r
        protected List<DescriptionBase<?>> getDescriptions(IDescribable<?> parentElement) {\r
-           List<DescriptionBase<?>> descriptions = new ArrayList<DescriptionBase<?>>();\r
+           List<DescriptionBase<?>> descriptions = new ArrayList<>();\r
            if(parentElement instanceof Taxon){\r
                Taxon taxon = (Taxon) parentElement;\r
                this.markerTypes.addAll(CdmStore.getTermManager().getPreferredTerms(MarkerType.class));\r
@@ -71,5 +70,4 @@ public class UsesContentProvider extends DescriptiveContentProvider {
            }\r
                return descriptions;\r
        }\r
-\r
-}\r
+}
\ No newline at end of file
index dd85ee44cb44504c7151eec2598677495b84e30a..149599aaec99f75e037f1a7cb3803ce1c6297aa7 100644 (file)
@@ -28,12 +28,9 @@ import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
 import eu.etaxonomy.taxeditor.editor.view.uses.UsesContentProvider;
 import eu.etaxonomy.taxeditor.editor.view.uses.UsesLabelProvider;
 
-
 /**
- *
  * @author pplitzner
  * @since Sep 8, 2017
- *
  */
 public class UsesViewPartE4 extends FactualDataPartE4 {
 
@@ -60,8 +57,6 @@ public class UsesViewPartE4 extends FactualDataPartE4 {
         treeViewer.addDropSupport(dndOperations, transfers,
                 dropListener);
 
-
-
         // Propagate selection from viewer
         selectionChangedListener = (event -> selService.setSelection(event.getSelection()));
         treeViewer.addSelectionChangedListener(selectionChangedListener);
@@ -77,11 +72,9 @@ public class UsesViewPartE4 extends FactualDataPartE4 {
         return Messages.UsesViewPart_VIEWER_NAME;
     }
 
-    /** {@inheritDoc} */
     @Override
     public boolean postOperation(Object objectAffectedByOperation) {
         viewer.refresh();
         return super.postOperation(objectAffectedByOperation);
     }
-
-}
+}
\ No newline at end of file
index 97056743b8c5d93d51f7ff226e20dfca73538cc7..942b54b92e7da720e477af82ab954696a357fabd 100644 (file)
@@ -24,14 +24,12 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 
-
 /**
  * CreateUseRecordOperation Class
  * @author a.theys
  * @created mar 13, 2012
- * @version 1.0
  */
-public class CreateUseRecordOperation extends AbstractPostOperation {
+public class CreateUseRecordOperation extends AbstractPostOperation<Taxon> {
 
        /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.view.use."{trunked}</code> */
        public static final String ID = "eu.etaxonomy.taxeditor.editor.use.createUseRecord"; //$NON-NLS-1$
@@ -57,7 +55,6 @@ public class CreateUseRecordOperation extends AbstractPostOperation {
            this.feature = feature;
        }
 
-
        /**
         * <p>Constructor for CreateUseRecordOperation.</p>
         *
index ac2d6e9d98c3c2fc9c55db57cc540a36be9c5d3c..e360c2eda93f9c34e690c67982818034a52b08c8 100644 (file)
@@ -23,14 +23,12 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
 \r
-\r
 /**\r
  * CreateUseSummaryOperation Class\r
  * @author a.theys\r
  * @created mar 13, 2012\r
- * @version 1.0\r
  */\r
-public class CreateUseSummaryOperation extends AbstractPostOperation {\r
+public class CreateUseSummaryOperation extends AbstractPostOperation<Taxon> {\r
 \r
        public static final String ID = "eu.etaxonomy.taxeditor.editor.use.createUseRecord"; //$NON-NLS-1$\r
 \r
@@ -38,7 +36,6 @@ public class CreateUseSummaryOperation extends AbstractPostOperation {
        private final Feature feature;\r
        private DescriptionElementBase element;\r
 \r
-\r
        /**\r
         * <p>Constructor for CreateUseSummaryOperation.</p>\r
         *\r
@@ -58,35 +55,24 @@ public class CreateUseSummaryOperation extends AbstractPostOperation {
 \r
        /**\r
         * <p>Constructor for CreateUseSummaryOperation.</p>\r
-        *\r
-        * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.\r
-        * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.\r
-        * @param description a {@link eu.etaxonomy.cdm.model.description.TaxonDescription} object.\r
-        * @param feature a {@link eu.etaxonomy.cdm.model.description.Feature} object.\r
-        * @param element a {@link eu.etaxonomy.cdm.model.description.DescriptionElementBase} object.\r
-        * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.\r
-        * @param label a {@link java.lang.String} object.\r
         */\r
        public CreateUseSummaryOperation(String label,\r
                        IUndoContext undoContext, Taxon taxon,\r
                        TaxonDescription description, Feature feature,\r
                        DescriptionElementBase element, IPostOperationEnabled postOperationEnabled) {\r
-                       this(label, undoContext, description, feature, postOperationEnabled);\r
-\r
+                       \r
+               this(label, undoContext, description, feature, postOperationEnabled);\r
                this.element = element;\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
                        throws ExecutionException {\r
                monitor.worked(20);\r
                if (element == null) {\r
-\r
                                element = TextData.NewInstance();\r
                }\r
 \r
-\r
                element.setFeature(feature);\r
                description.addElement(element);\r
                monitor.worked(40);\r
index 1b1f33ec17255a568c72fece81a493271388c1a6..d6e8627ea3f7570efd19030f3887828c4a962403 100644 (file)
@@ -1,9 +1,8 @@
 
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import junit.framework.Assert;
-
 import org.eclipse.core.commands.ExecutionException;
+import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -19,7 +18,6 @@ import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBas
  * 
  * @author n.hoffmann
  * @created 07.04.2009
- * @version 1.0
  */
 public class ChangeConceptRelationshipTypeOperationTest extends AbstractTaxeditorOperationTestBase {
        
@@ -70,5 +68,4 @@ public class ChangeConceptRelationshipTypeOperationTest extends AbstractTaxedito
                Assert.assertEquals(relatedTaxon, taxon.getRelationsFromThisTaxon().toArray(a)[0].getFromTaxon());
                Assert.assertEquals(newRelationshipType, taxon.getRelationsFromThisTaxon().toArray(a)[0].getType());
        }
-
-}
+}
\ No newline at end of file
index dac789ae618663bed6a387fadcab3e13429d14f1..8754e2d7a00167ec35339604cf6ee02a17764215 100644 (file)
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import junit.framework.Assert;
-
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
+import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.name.INonViralName;
-import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.name.TaxonNameFactory;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBase;
 
 /**
  * @author n.hoffmann
  * @created 07.04.2009
- * @version 1.0
  */
 public class ChangeConceptToSynonymOperationTest extends AbstractTaxeditorOperationTestBase {
-       private static final Logger logger = Logger
-                       .getLogger(ChangeConceptToSynonymOperationTest.class);
-       
+
+    private static final Logger logger = LogManager.getLogger();
+
        private static Taxon taxon;
-       
+
        private static Taxon concept;
 
-       private static AbstractPostOperation operation;
+       private static AbstractPostOperation<?> operation;
 
        private static HomotypicalGroup homotypicalGroup;
-       
+
        private Synonym[] synonymType = new Synonym[0];
        private Taxon[] taxonType = new Taxon[0];
-       
-       /**
-        * @throws java.lang.Exception
-        */
+
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
                taxon = Taxon.NewInstance(null, null);
                concept = Taxon.NewInstance(TaxonNameFactory.NewNonViralInstance(null), null);
                homotypicalGroup = HomotypicalGroup.NewInstance();
-               
+
                concept.addTaxonRelation(taxon, TaxonRelationshipType.MISAPPLIED_NAME_FOR(), null, null);
-               
+
                operation = new ChangeConceptToSynonymOperation("Change misapplication to synonym", null, taxon, concept, homotypicalGroup, postOperation);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testExecuteIProgressMonitorIAdaptable() throws ExecutionException {
                operation.execute(null, null);
-               
+
                Assert.assertTrue(taxon.getSynonyms().size() == 1);
                Assert.assertTrue(concept.getRelationsFromThisTaxon().size() == 0);
                Assert.assertEquals(concept.getName(), taxon.getSynonyms().toArray(synonymType)[0].getName());
-               
+
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testUndoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.undo(null, null);
-               
+
                Assert.assertTrue("There shouldn't be synonyms after undo operations", taxon.getSynonyms().size() == 0);
                Assert.assertTrue(concept.getRelationsFromThisTaxon().size() > 0);
                Assert.assertEquals(taxon, concept.getRelationsFromThisTaxon().toArray(taxonType)[0]);
        }
-       
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
+
        @Test
        public void testRedoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.redo(null, null);
-               
+
                Assert.assertTrue(taxon.getSynonyms().size() == 1);
                Assert.assertTrue(concept.getRelationsFromThisTaxon().size() == 0);
                Assert.assertEquals(concept.getName(), taxon.getSynonyms().toArray(synonymType)[0].getName());
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation#postExecute(ICdmBase)}.
-        */
        @Test
        public void testPostExecute() {
                // TODO there is not post operation functionality for this class
index 27573e33137f9a99761a3e93f4b895f0fa235449..dacd6a0d6f644976a5e657b5a73ea8dd4b156233 100644 (file)
@@ -9,10 +9,9 @@
 
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import junit.framework.Assert;
-
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
+import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -30,30 +29,18 @@ import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBas
 /**
  * @author n.hoffmann
  * @created 02.04.2009
- * @version 1.0
  */
 public class ChangeHomotypicGroupOperationTest extends AbstractTaxeditorOperationTestBase {
-       private static final Logger logger = Logger
-                       .getLogger(ChangeHomotypicGroupOperationTest.class);
-
        
-       private static AbstractPostOperation operation;
-
+       private static final Logger logger = LogManager.getLogger(ChangeHomotypicGroupOperationTest.class);
 
+       private static AbstractPostOperation<Taxon> operation;
+       
        private static Taxon taxon;
-
-
        private static Synonym synonym;
-
-
        private static HomotypicalGroup newHomotypicalGroup;
-
-
        private static HomotypicalGroup oldHomotypicalGroup;
        
-       /**
-        * @throws java.lang.Exception
-        */
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
                
@@ -68,11 +55,6 @@ public class ChangeHomotypicGroupOperationTest extends AbstractTaxeditorOperatio
                operation = new ChangeHomotypicGroupOperation("Change Homotypical Group", null, taxon, synonym, newHomotypicalGroup, postOperation);
        }
 
-
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicGroupOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testExecute() throws ExecutionException {
                operation.execute(null, null);
index 5263f9a9f496b01dc68b871f13c7023babb2fa89..618740e6bc994c1992e43453f7c82fe7c25a3c54 100644 (file)
@@ -1,15 +1,15 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -18,67 +18,58 @@ import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicalGroupBasionymOperation;
 import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBase;
 
 /**
  * @author n.hoffmann
  * @created 08.04.2009
- * @version 1.0
  */
 public class ChangeHomotypicalGroupBasionymOperationTest extends AbstractTaxeditorOperationTestBase {
-       private static final Logger logger = Logger
-                       .getLogger(ChangeHomotypicalGroupBasionymOperationTest.class);
+
+    private static final Logger logger = LogManager.getLogger(ChangeHomotypicalGroupBasionymOperationTest.class);
 
        private static Synonym synonym;
 
        private static HomotypicalGroup homotypicalGroup;
-       
-       /**
-        * @throws java.lang.Exception
-        */
+
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
-               
+
                taxon = Taxon.NewInstance(null, null);
                synonym = Synonym.NewInstance(null, null);
                homotypicalGroup = HomotypicalGroup.NewInstance();
-               // FIXME homotypical group and basionym related maethods are not implemented in the library
+               // FIXME homotypical group and basionym related methods are not implemented in the library
                // wait till this gets done before implementing the test
-               
+
                operation = new ChangeHomotypicalGroupBasionymOperation("", undoContext, taxon, synonym, postOperation);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicalGroupBasionymOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testExecuteIProgressMonitorIAdaptable() throws ExecutionException {
                operation.execute(monitor, info);
-               
+
                logger.warn("Wating for functionality in library");
        }
 
        /**
         * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicalGroupBasionymOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
+        * @throws ExecutionException
         */
        @Test
        public void testUndoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.undo(monitor, info);
-               
+
                logger.warn("Wating for functionality in library");
        }
 
        /**
         * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicalGroupBasionymOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
+        * @throws ExecutionException
         */
        @Test
        public void testRedoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.redo(monitor, info);
-               
+
                logger.warn("Wating for functionality in library");
        }
 
index 5e58755ce01ba24536381ee0ba01fc24ea4c2a35..c587a369ec43fdd21f7d153e5401bde02838e43e 100644 (file)
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import eu.etaxonomy.cdm.model.common.ICdmBase;
-import eu.etaxonomy.cdm.model.name.INonViralName;
-import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.name.TaxonNameFactory;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.SynonymType;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToConceptOperation;
 import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBase;
 
 /**
  * @author n.hoffmann
  * @created 07.04.2009
- * @version 1.0
  */
 public class ChangeSynonymToConceptOperationTest extends AbstractTaxeditorOperationTestBase{
-       private static final Logger logger = Logger
-                       .getLogger(ChangeSynonymToConceptOperationTest.class);
 
-       private static TaxonRelationshipType taxonRelationshipType;
+       private static final Logger logger = LogManager.getLogger(ChangeSynonymToConceptOperationTest.class);
 
+       private static TaxonRelationshipType taxonRelationshipType;
        private static Synonym synonym;
 
-       
-       /**
-        * @throws java.lang.Exception
-        */
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
-               
+
                taxon = Taxon.NewInstance(null, null);
                synonym = Synonym.NewInstance(TaxonNameFactory.NewNonViralInstance(null), null);
                taxonRelationshipType = TaxonRelationshipType.CONTRADICTION();
-               
-               taxon.addSynonym(synonym, SynonymType.SYNONYM_OF());
-               
+
+               taxon.addSynonym(synonym, SynonymType.SYNONYM_OF);
+
                operation = new ChangeSynonymToConceptOperation("Change Synonym To Concept", null, taxon, synonym, taxonRelationshipType, postOperation);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToConceptOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testExecuteIProgressMonitorIAdaptable() throws ExecutionException {
                operation.execute(monitor, info);
-               
+
                Assert.assertTrue("Synonym should be deleted from taxon.", taxon.getSynonyms().size() == 0);
                Assert.assertTrue("Taxon should have taxon relationships now.", taxon.getRelationsToThisTaxon().size() > 0);
                Assert.assertEquals("Relationship is not the expected", taxonRelationshipType, taxon.getTaxonRelations().toArray(new TaxonRelationship[0])[0].getType());
                Assert.assertEquals("Name of synonym and newly created related taxon should be equal", synonym.getName(), taxon.getTaxonRelations().toArray(new TaxonRelationship[0])[0].getFromTaxon().getName());
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToConceptOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testUndoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.undo(monitor, info);
-               
+
                Assert.assertTrue("There should be synonyms now.", taxon.getSynonyms().size() > 0);
                Assert.assertEquals("Synonym is not the expected.", synonym, taxon.getSynonyms().toArray(new Synonym[0]));
                Assert.assertTrue("There should not be taxon relationships.", taxon.getRelationsToThisTaxon().size() == 0);
        }
-       
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToConceptOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
+
        @Test
        public void testRedoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.redo(monitor, info);
-                               
+
                Assert.assertTrue("Synonym should be deleted from taxon.", taxon.getSynonyms().size() == 0);
                Assert.assertTrue("Taxon should have taxon relationships now.", taxon.getRelationsToThisTaxon().size() > 0);
                Assert.assertEquals("Relationship is not the expected", taxonRelationshipType, taxon.getTaxonRelations().toArray(new TaxonRelationship[0])[0].getType());
                Assert.assertEquals("Name of synonym and newly created related taxon should be equal", synonym.getName(), taxon.getTaxonRelations().toArray(new TaxonRelationship[0])[0].getFromTaxon().getName());
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation#postExecute(ICdmBase)}.
-        */
        @Test
        public void testPostExecute() {
                // TODO there is not post operation functionality for this class
                // at the moment. Implement test when there is.
                logger.warn("No post operation functionality for this class");
        }
-}
+}
\ No newline at end of file
index 0bafd9c926e5cf2025265f22027873ad72523b19..08f5a1b7d3481eadf9d86444afbd04f318e56889 100644 (file)
@@ -1,7 +1,15 @@
-
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy 
+* http://www.e-taxonomy.eu
+* 
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -11,38 +19,37 @@ import org.junit.Test;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToHomotypicalGroupBasionymOperation;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 
 public class ChangeSynonymToHomotypicalGroupBasionymOperationTest {
-       private static final Logger logger = Logger
-                       .getLogger(ChangeSynonymToHomotypicalGroupBasionymOperationTest.class);
+
+    private static final Logger logger = LogManager.getLogger(ChangeSynonymToHomotypicalGroupBasionymOperationTest.class);
 
 
        // TODO move this to a superclass
        public static final IProgressMonitor monitor = null;
-       public static final IAdaptable info = null;     
-       
-       private static AbstractPostOperation operation;
+       public static final IAdaptable info = null;
+
+       private static AbstractPostOperation<?> operation;
 
        private static Taxon taxon;
 
        private static Synonym synonym;
-       
+
        private static Synonym basionym;
 
        private static HomotypicalGroup homotypicalGroup;
-       
+
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
                taxon = Taxon.NewInstance(null, null);
                synonym = Synonym.NewInstance(null, null);
                basionym = Synonym.NewInstance(null, null);
                homotypicalGroup = HomotypicalGroup.NewInstance();
-               
+
                // FIXME homotypical group and basionym related maethods are not implemented in the library
                // wait till this gets done before implementing the test
-               
+
                operation = new ChangeSynonymToHomotypicalGroupBasionymOperation("Change Synonym To Basionym of Homotypical Group",
                                                                        null, taxon, synonym);
        }
@@ -50,21 +57,21 @@ public class ChangeSynonymToHomotypicalGroupBasionymOperationTest {
        @Test
        public void testExecuteIProgressMonitorIAdaptable() throws ExecutionException {
                operation.execute(monitor, info);
-               
+
                logger.warn("Wating for functionality in library");
        }
 
        @Test
        public void testUndoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.undo(monitor, info);
-               
+
                logger.warn("Wating for functionality in library");
        }
-       
+
        @Test
        public void testRedoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.redo(monitor, info);
-               
+
                logger.warn("Wating for functionality in library");
        }
 
index 0a8f3708c97455e869e61654e9442e06e2467229..e24d6dc0f78dae870293e4a1643fdcca637b134a 100644 (file)
@@ -1,23 +1,20 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import eu.etaxonomy.cdm.model.common.ICdmBase;
-import eu.etaxonomy.cdm.model.name.INonViralName;
-import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.name.TaxonNameFactory;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.SynonymType;
@@ -28,64 +25,46 @@ import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBas
 /**
  * @author n.hoffmann
  * @created 07.04.2009
- * @version 1.0
  */
 public class ChangeSynonymToMisapplicationOperationTest extends AbstractTaxeditorOperationTestBase {
-       private static final Logger logger = Logger
-                       .getLogger(ChangeSynonymToMisapplicationOperationTest.class);
-
-       private static Synonym synonym;
 
-       private static Taxon taxon;
+       private static final Logger logger = LogManager.getLogger(ChangeSynonymToMisapplicationOperationTest.class);
 
-       private static AbstractPostOperation operation;
+       private static AbstractPostOperation<Taxon> operation;
 
+       private static Synonym synonym;
+       private static Taxon taxon;
        private static SynonymType synonymType;
-       
-       /**
-        * @throws java.lang.Exception
-        */
+
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
                taxon = Taxon.NewInstance(null, null);
                synonym = Synonym.NewInstance(TaxonNameFactory.NewNonViralInstance(null), null);
-               synonymType = SynonymType.SYNONYM_OF();
+               synonymType = SynonymType.SYNONYM_OF;
                taxon.addSynonym(synonym, synonymType);
-               
+
                operation = new ChangeSynonymToMisapplicationOperation("Change Synonym To Misapplication", null, taxon, synonym, postOperation);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToMisapplicationOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testExecuteIProgressMonitorIAdaptable() throws ExecutionException {
                operation.execute(null, null);
-               
+
                Assert.assertTrue("Synonym should be deleted from taxon", taxon.getSynonyms().size() == 0);
                Assert.assertTrue("Taxon should have misapplications", taxon.getMisappliedNames(false).size() > 0);
                Assert.assertEquals("The name of synonym and misapplication should be equal", synonym.getName(), taxon.getMisappliedNames(false).toArray(new Taxon[0])[0].getName());
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToMisapplicationOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testUndoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.undo(null, null);
-               
+
                Assert.assertTrue("Taxon should have synonyms.", taxon.getSynonyms().size() > 0);
                Assert.assertTrue("Taxon should not have taxon relationship.", taxon.getTaxonRelations().size() == 0);
                Assert.assertEquals("Not the expected synonym.", synonym, taxon.getSynonyms().toArray(new Synonym[0])[0]);
                Assert.assertEquals("SynonymType is not the expected.", synonymType, taxon.getSynonyms().iterator().next().getType());
        }
-       
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToMisapplicationOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
+
        @Test
        public void testRedoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.redo(null, null);
@@ -95,13 +74,10 @@ public class ChangeSynonymToMisapplicationOperationTest extends AbstractTaxedito
                Assert.assertEquals("The name of synonym and misapplication should be equal", synonym.getName(), taxon.getMisappliedNames(false).toArray(new Taxon[0])[0].getName());
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation#postExecute(ICdmBase)}.
-        */
        @Test
        public void testPostExecute() {
                // TODO there is not post operation functionality for this class
                // at the moment. Implement test when there is.
                logger.warn("No post operation functionality for this class");
        }
-}
+}
\ No newline at end of file
index bae4539dcc6ec7adec57687aadd432b21d017f14..ab6e958d5a4cbac20e3ebfff45d2c32ddebf97d8 100644 (file)
@@ -6,10 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
 import org.junit.Assert;
 import org.junit.BeforeClass;
@@ -25,19 +24,14 @@ import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBas
 /**
  * @author n.hoffmann
  * @created 07.04.2009
- * @version 1.0
  */
 public class CreateConceptRelationOperationTest extends AbstractTaxeditorOperationTestBase {
-       private static final Logger logger = Logger
-                       .getLogger(CreateConceptRelationOperationTest.class);
+       
+       private static final Logger logger = LogManager.getLogger(CreateConceptRelationOperationTest.class);
 
        private static TaxonRelationshipType taxonRelationshipType;
-
        private static Taxon concept;
 
-       /**
-        * @throws java.lang.Exception
-        */
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
                
@@ -48,10 +42,6 @@ public class CreateConceptRelationOperationTest extends AbstractTaxeditorOperati
                operation = new CreateConceptRelationOperation("Create Concept Relation", null, taxon, concept, taxonRelationshipType, postOperation);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.view.concept.operation.CreateConceptRelationOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testExecuteIProgressMonitorIAdaptable() throws ExecutionException {
                operation.execute(monitor, info);
@@ -60,10 +50,6 @@ public class CreateConceptRelationOperationTest extends AbstractTaxeditorOperati
                Assert.assertEquals("Relationship type is not the expected", taxonRelationshipType, taxon.getRelationsToThisTaxon().toArray(new TaxonRelationship[0])[0].getType());
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.view.concept.operation.CreateConceptRelationOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testUndoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.undo(monitor, info);
@@ -71,10 +57,6 @@ public class CreateConceptRelationOperationTest extends AbstractTaxeditorOperati
                Assert.assertTrue("There should not be taxon relationships", taxon.getTaxonRelations().size() == 0);
        }
        
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.view.concept.operation.CreateConceptRelationOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testRedoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.redo(monitor, info);
@@ -83,13 +65,10 @@ public class CreateConceptRelationOperationTest extends AbstractTaxeditorOperati
                Assert.assertEquals("Relationship type is not the expected", taxonRelationshipType, taxon.getRelationsToThisTaxon().toArray(new TaxonRelationship[0])[0].getType());
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation#postExecute(ICdmBase)}.
-        */
        @Test
        public void testPostExecute() {
                // TODO there is not post operation functionality for this class
                // at the moment. Implement test when there is.
                logger.warn("No post operation functionality for this class");
        }
-}
+}
\ No newline at end of file
index 3ee2d654370da56989ec003bb0f67b803b78c76c..7df10c2729f4091d78d56f88c5a5eec899fd97ee 100644 (file)
@@ -1,9 +1,16 @@
-
+/**
+ * Copyright (C) 2010 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import junit.framework.Assert;
-
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.junit.Assert;
 import org.eclipse.core.commands.ExecutionException;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -16,9 +23,9 @@ import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateDescriptio
 import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBase;
 
 public class CreateDescriptionElementOperationTest extends AbstractTaxeditorOperationTestBase {
-       private static final Logger logger = Logger
-                       .getLogger(CreateDescriptionElementOperationTest.class);
 
+    @SuppressWarnings("unused")
+       private static final Logger logger = LogManager.getLogger(CreateDescriptionElementOperationTest.class);
 
        private static TaxonDescription description;
 
index bccb64ed8168a5641ad3e893aed80ccc9cc8c9a8..a5c80dd864121f22b3a5e760a7d4fbc739e5e90f 100644 (file)
@@ -80,7 +80,7 @@ public class CreateSynonymInExisitingHomotypicalGroupOperationTest extends Abstr
 
                Assert.assertTrue("Taxon should have a synonym now.", taxon.getSynonyms().size() > 0);
                Assert.assertTrue("Taxon should have a homotypic group", taxon.getHomotypicSynonymyGroups().size() > 0);
-               Assert.assertEquals("Synonym relationship should be heterotypic", SynonymType.HETEROTYPIC_SYNONYM_OF(), taxon.getSynonyms().iterator().next().getType());
+               Assert.assertEquals("Synonym relationship should be heterotypic", SynonymType.HETEROTYPIC_SYNONYM_OF, taxon.getSynonyms().iterator().next().getType());
        }
 
 
@@ -138,7 +138,7 @@ public class CreateSynonymInExisitingHomotypicalGroupOperationTest extends Abstr
 
                Assert.assertTrue("Taxon should have a synonym now.", taxon.getSynonyms().size() > 0);
                Assert.assertTrue("Taxon should have a homotypic group", taxon.getHomotypicSynonymyGroups().size() > 0);
-               Assert.assertEquals("Synonym relationship should be heterotypic", SynonymType.HETEROTYPIC_SYNONYM_OF(), taxon.getSynonyms().iterator().next().getType());
+               Assert.assertEquals("Synonym relationship should be heterotypic", SynonymType.HETEROTYPIC_SYNONYM_OF, taxon.getSynonyms().iterator().next().getType());
 
        }
 }
index d22aff7d07db3c0f8029d4942c62ab12438fbc5d..7126019bb563a0025d258326f26ab6c06ba5b55f 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
@@ -23,15 +22,11 @@ import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBas
 /**
  * @author n.hoffmann
  * @created 07.04.2009
- * @version 1.0
  */
 public class CreateSynonymInNewGroupOperationTest extends AbstractTaxeditorOperationTestBase { 
        
        private static TaxonName newSynonymName;
        
-       /**
-        * @throws java.lang.Exception
-        */
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
                
@@ -41,10 +36,6 @@ public class CreateSynonymInNewGroupOperationTest extends AbstractTaxeditorOpera
                operation = new CreateSynonymInNewGroupOperation("Create Synonyma In New Group",  undoContext, taxon, newSynonymName, postOperation);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInNewGroupOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testExecuteIProgressMonitorIAdaptable() throws ExecutionException {
                operation.execute(monitor, info);
@@ -53,10 +44,6 @@ public class CreateSynonymInNewGroupOperationTest extends AbstractTaxeditorOpera
                Assert.assertTrue("Taxon should have a homotypical group now.", taxon.getHomotypicSynonymyGroups().size() > 0);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInNewGroupOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testUndoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.undo(monitor, info);
@@ -64,16 +51,11 @@ public class CreateSynonymInNewGroupOperationTest extends AbstractTaxeditorOpera
                Assert.assertTrue("Taxon should not have synonyms now.", taxon.getSynonyms().size() == 0);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInNewGroupOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testRedoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.redo(monitor, info);
                
                Assert.assertTrue("Taxon should have synonyms now.", taxon.getSynonyms().size() > 0);
                Assert.assertTrue("Taxon should have a homotypical group now.", taxon.getHomotypicSynonymyGroups().size() > 0);
-
        }
-}
+}
\ No newline at end of file
index b560f95f6975d427c806682615b962199821dff1..9cdef5925c38a8cd75b0c259cf5ad7b0e6dd2d0a 100644 (file)
@@ -6,10 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
 import org.junit.Assert;
 import org.junit.BeforeClass;
@@ -23,19 +22,14 @@ import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBas
 /**
  * @author n.hoffmann
  * @created 08.04.2009
- * @version 1.0
  */
 public class DeleteConceptRelationOperationTest extends AbstractTaxeditorOperationTestBase{
-       private static final Logger logger = Logger
-                       .getLogger(DeleteConceptRelationOperationTest.class);
+       
+       private static final Logger logger = LogManager.getLogger(DeleteConceptRelationOperationTest.class);
 
        private static TaxonRelationshipType relationshipType;
-
        private static Taxon relatedTaxon;
-       
-       /**
-        * @throws java.lang.Exception
-        */
+
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
                
@@ -50,10 +44,6 @@ public class DeleteConceptRelationOperationTest extends AbstractTaxeditorOperati
 //             operation = new DeleteConceptRelationOperation("", undoContext, taxon, relatedTaxon, postOperation);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.view.concept.operation.DeleteConceptRelationOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testExecuteIProgressMonitorIAdaptable() throws ExecutionException {
                operation.execute(monitor, info);
@@ -61,10 +51,6 @@ public class DeleteConceptRelationOperationTest extends AbstractTaxeditorOperati
                Assert.assertTrue(taxon.getTaxonRelations().size() == 0);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.view.concept.operation.DeleteConceptRelationOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testUndoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.undo(monitor, info);
@@ -72,10 +58,6 @@ public class DeleteConceptRelationOperationTest extends AbstractTaxeditorOperati
                Assert.assertTrue(taxon.getTaxonRelations().size() > 0);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.view.concept.operation.DeleteConceptRelationOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException 
-        */
        @Test
        public void testRedoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.redo(monitor, info);
@@ -83,13 +65,10 @@ public class DeleteConceptRelationOperationTest extends AbstractTaxeditorOperati
                Assert.assertTrue(taxon.getTaxonRelations().size() == 0);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation#postExecute(ICdmBase)}.
-        */
        @Test
        public void testPostExecute() {
                // TODO there is not post operation functionality for this class
                // at the moment. Implement test when there is.
                logger.warn("No post operation functionality for this class");
        }
-}
+}
\ No newline at end of file
index b9f991a57f706cfb65f257ff19b177b496915b91..dd0178269e8297f85d429b6b7b54b3ed47e60478 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import org.eclipse.core.commands.ExecutionException;
@@ -24,47 +23,29 @@ import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBas
 /**
  * @author n.hoffmann
  * @created 08.04.2009
- * @version 1.0
  */
 public class DeleteDescriptionElementOperationTest extends AbstractTaxeditorOperationTestBase {
 
        private static DescriptionElementBase descriptionElement;
-
        private static TaxonDescription description;
 
-       /**
-        * @throws java.lang.Exception
-        */
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
                taxon = Taxon.NewInstance(null, null);
                descriptionElement = TextData.NewInstance();
-
                description = TaxonDescription.NewInstance();
-
                description.addElement(descriptionElement);
-
                taxon.addDescription(description);
 
-
                operation = new DeleteDescriptionElementOperation("", undoContext, descriptionElement, postOperation, cdmEntitySessionEnabled);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteDescriptionElementOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException
-        */
        @Test
        public void testExecuteIProgressMonitorIAdaptable() throws ExecutionException {
                operation.execute(monitor, info);
-
                Assert.assertTrue(taxon.getDescriptions().toArray(new TaxonDescription[0])[0].getElements().size() == 0);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteDescriptionElementOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException
-        */
        @Test
        public void testUndoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.undo(monitor, info);
@@ -73,14 +54,9 @@ public class DeleteDescriptionElementOperationTest extends AbstractTaxeditorOper
                Assert.assertEquals(descriptionElement, taxon.getDescriptions().toArray(new TaxonDescription[0])[0].getElements().toArray(new DescriptionElementBase[0])[0]);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteDescriptionElementOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException
-        */
        @Test
        public void testRedoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.redo(monitor, info);
-
                Assert.assertTrue(taxon.getDescriptions().toArray(new TaxonDescription[0])[0].getElements().size() == 0);
        }
-}
+}
\ No newline at end of file
index b10d2ba38d3743cefd95817b1a39a30cba449f40..e6a8dcc21bea66a7662d4a89566b070f8db446b6 100644 (file)
@@ -6,10 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
 import org.junit.Assert;
 import org.junit.BeforeClass;
@@ -22,19 +21,14 @@ import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBas
 /**
  * @author n.hoffmann
  * @created 08.04.2009
- * @version 1.0
  */
 public class DeleteMisapplicationOperationTest extends AbstractTaxeditorOperationTestBase{
-       private static final Logger logger = Logger
-                       .getLogger(DeleteMisapplicationOperationTest.class);
+       
+       private static final Logger logger = LogManager.getLogger(DeleteMisapplicationOperationTest.class);
 
        private static Taxon taxon;
-
        private static Taxon misapplication;
 
-       /**
-        * @throws java.lang.Exception
-        */
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
 
@@ -43,14 +37,10 @@ public class DeleteMisapplicationOperationTest extends AbstractTaxeditorOperatio
 
                taxon.addMisappliedName(misapplication, null, null);
 
-               operation = new DeleteMisapplicationOperation("", undoContext, null, taxon, misapplication, postOperation,  null, null);
+               operation = new DeleteMisapplicationOperation("", undoContext, null, taxon, misapplication, postOperation,  null);
 
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.DeleteMisapplicationOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException
-        */
        @Test
        public void testExecuteIProgressMonitorIAdaptable() throws ExecutionException {
                operation.execute(monitor, info);
@@ -58,10 +48,6 @@ public class DeleteMisapplicationOperationTest extends AbstractTaxeditorOperatio
                Assert.assertTrue(taxon.getMisappliedNames(false).size() == 0);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.DeleteMisapplicationOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException
-        */
        @Test
        public void testUndoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.undo(monitor, info);
@@ -69,10 +55,6 @@ public class DeleteMisapplicationOperationTest extends AbstractTaxeditorOperatio
                Assert.assertEquals(misapplication, taxon.getMisappliedNames(false).toArray(new Taxon[0])[0]);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.editor.name.operation.DeleteMisapplicationOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException
-        */
        @Test
        public void testRedoIProgressMonitorIAdaptable() throws ExecutionException {
                operation.redo(monitor, info);
@@ -80,13 +62,10 @@ public class DeleteMisapplicationOperationTest extends AbstractTaxeditorOperatio
                Assert.assertTrue(taxon.getMisappliedNames(false).size() == 0);
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation#postExecute(ICdmBase)}.
-        */
        @Test
        public void testPostExecute() {
                // TODO there is not post operation functionality for this class
                // at the moment. Implement test when there is.
                logger.warn("No post operation functionality for this class");
        }
-}
+}
\ No newline at end of file
index a34cb943841c64830c73f6556fdc1ae04a23c1ae..0eb1b8248fe4c66aa4675c16af23247af9c84c07 100644 (file)
@@ -6,10 +6,8 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import org.apache.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
 import org.junit.Assert;
 import org.junit.BeforeClass;
@@ -26,26 +24,20 @@ import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBas
  * @created 08.04.2009
  */
 public class DeleteSynonymOperationTest extends AbstractTaxeditorOperationTestBase{
-       @SuppressWarnings("unused")
-       private static final Logger logger = Logger
-                       .getLogger(DeleteSynonymOperationTest.class);
 
-       private static Synonym synonym;
+    private static Synonym synonym;
 
        private static SynonymType synonymType;
 
-       /**
-        * @throws java.lang.Exception
-        */
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
                taxon = Taxon.NewInstance(null, null);
                synonym = Synonym.NewInstance(null, null);
-               synonymType = SynonymType.SYNONYM_OF();
+               synonymType = SynonymType.SYNONYM_OF;
 
                taxon.addSynonym(synonym, synonymType);
 
-               operation = new DeleteSynonymOperation("", undoContext, new SynonymDeletionConfigurator(), taxon,synonym, postOperation, null, null);
+               operation = new DeleteSynonymOperation("", undoContext, new SynonymDeletionConfigurator(), taxon,synonym, postOperation, null);
 
        }
 
index 8ecf13f40fa413d63dda5e5341fa3715ea42cd2e..6f4dfdbbd068076e907ae6e80000b12fb4bb24ca 100644 (file)
@@ -6,10 +6,11 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.editor.name.operation;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
 import org.eclipse.core.commands.ExecutionException;
 import org.junit.Assert;
 import org.junit.BeforeClass;
@@ -17,6 +18,7 @@ import org.junit.Test;
 
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingSwapEnum;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.name.INonViralName;
 import eu.etaxonomy.cdm.model.name.TaxonNameFactory;
@@ -32,8 +34,8 @@ import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBas
  * @created 02.04.2009
  */
 public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperationTestBase {
-       private static final Logger logger = Logger
-                       .getLogger(SwapSynonymAndAcceptedOperationTest.class);
+
+    private static final Logger logger = LogManager.getLogger();
 
        private static SwapSynonymAndAcceptedOperation operation;
 
@@ -95,7 +97,7 @@ public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperat
 //             oldTaxon.addS .addHeterotypicSynonym(oldHeterotypicSynonym, null, null);
                heteroypicalGroup = HomotypicalGroup.NewInstance();
                heteroypicalGroup.addTypifiedName(oldHeterotypicSynonym.getName());
-               taxon.addSynonym(oldHeterotypicSynonym, SynonymType.HETEROTYPIC_SYNONYM_OF());
+               taxon.addSynonym(oldHeterotypicSynonym, SynonymType.HETEROTYPIC_SYNONYM_OF);
 
                // Create a misapplication
                misapplication = Taxon.NewInstance(TaxonNameFactory.NewNonViralInstance(null), null);
@@ -111,7 +113,7 @@ public class SwapSynonymAndAcceptedOperationTest extends AbstractTaxeditorOperat
                taxon.addDescription(description);
 
                operation = new SwapSynonymAndAcceptedOperation
-                               (null, undoContext, taxon, oldHeterotypicSynonym, postOperation, cdmEntitySessionEnabled, true);
+                               (null, undoContext, taxon, oldHeterotypicSynonym, postOperation, cdmEntitySessionEnabled, true, SecReferenceHandlingSwapEnum.AlwaysDelete, null, null);
        }
 
 
index 250e4c25dce4e2910dc51eef01d2bba149d8fc0e..878760c7f3849eabd1792476ba622bbc8ad82ccf 100644 (file)
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="eu.etaxonomy.taxeditor.feature.platform"
-      label="Taxeditor Dependencies"
-      version="5.16.0"
-      os="linux,macosx,win32"
-      ws="cocoa,gtk,win32"
-      arch="x86,x86_64">
-
-   <url>
-      <update label="EDIT Taxonomic Editor" url="https://cybertaxonomy.eu/taxeditor/update"/>
-   </url>
-
-   <includes
-         id="org.eclipse.zest"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.emf.common"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.emf.ecore"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.rcp"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.equinox.p2.user.ui"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.help"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.apache.log4j"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.hamcrest.library"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.commons.codec"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.apache.commons.httpclient"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.hamcrest.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.filetransfer"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.provider.filetransfer"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ecf.identity"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.ide"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.editors"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.forms"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.navigator"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.navigator.resources"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jface.text"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.filebuffers"
-         download-size="119"
-         install-size="260"
-         version="3.6.0.v20160503-1849"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.filesystem"
-         download-size="65"
-         install-size="122"
-         version="1.6.1.v20161113-2349"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.text"
-         download-size="262"
-         install-size="528"
-         version="3.6.0.v20160503-1849"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.resources"
-         download-size="862"
-         install-size="1850"
-         version="3.11.1.v20161107-2032"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.workbench.texteditor"
-         download-size="651"
-         install-size="1377"
-         version="3.10.1.v20160818-1626"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ltk.core.refactoring"
-         download-size="336"
-         install-size="752"
-         version="3.7.0.v20160419-0705"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ltk.ui.refactoring"
-         download-size="491"
-         install-size="1013"
-         version="3.8.0.v20160518-1817"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.compare"
-         download-size="780"
-         install-size="1626"
-         version="3.7.0.v20161024-1724"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.team.core"
-         download-size="416"
-         install-size="874"
-         version="3.8.0.v20160418-1534"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.team.ui"
-         download-size="1500"
-         install-size="3218"
-         version="3.8.0.v20160518-1906"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.compare.core"
-         download-size="65"
-         install-size="122"
-         version="3.6.0.v20160418-1534"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.views"
-         download-size="107"
-         install-size="194"
-         version="3.8.101.v20160816-1954"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.ui.views.properties.tabbed"
-         download-size="107"
-         install-size="220"
-         version="3.7.0.v20160310-0903"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.jdt.annotation"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.nebula.widgets.nattable.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="ca.odell.glazedlists"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.nebula.widgets.nattable.extension.glazedlists"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.nebula.widgets.compositetable"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.nebula.widgets.nattable.extension.e4"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<feature\r
+      id="eu.etaxonomy.taxeditor.feature.platform"\r
+      label="Taxeditor Dependencies"\r
+      version="5.42.0"\r
+      os="linux,macosx,win32"\r
+      ws="cocoa,gtk,win32"\r
+      arch="x86,x86_64">\r
+\r
+   <url>\r
+      <update label="EDIT Taxonomic Editor" url="https://cybertaxonomy.org/taxeditor/update"/>\r
+   </url>\r
+\r
+   <includes\r
+         id="org.eclipse.zest"\r
+         version="0.0.0"/>\r
+\r
+   <includes\r
+         id="org.eclipse.emf.common"\r
+         version="0.0.0"/>\r
+\r
+   <includes\r
+         id="org.eclipse.emf.ecore"\r
+         version="0.0.0"/>\r
+\r
+   <includes\r
+         id="org.eclipse.rcp"\r
+         version="0.0.0"/>\r
+\r
+   <includes\r
+         id="org.eclipse.equinox.p2.user.ui"\r
+         version="0.0.0"/>\r
+\r
+   <includes\r
+         id="org.eclipse.help"\r
+         version="0.0.0"/>\r
+\r
+   <plugin\r
+         id="org.apache.log4j"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.hamcrest.library"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.apache.commons.codec"\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
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.ecf"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.ecf.filetransfer"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.ecf.provider.filetransfer"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.ecf.identity"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.ui.ide"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.ui.editors"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.ui.forms"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.ui.navigator"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.ui.navigator.resources"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.jface.text"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.core.filebuffers"\r
+         download-size="119"\r
+         install-size="260"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.core.filesystem"\r
+         download-size="65"\r
+         install-size="122"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.text"\r
+         download-size="262"\r
+         install-size="528"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.core.resources"\r
+         download-size="862"\r
+         install-size="1850"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.ui.workbench.texteditor"\r
+         download-size="651"\r
+         install-size="1377"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.ltk.core.refactoring"\r
+         download-size="336"\r
+         install-size="752"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.ltk.ui.refactoring"\r
+         download-size="491"\r
+         install-size="1013"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.compare"\r
+         download-size="780"\r
+         install-size="1626"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.team.core"\r
+         download-size="416"\r
+         install-size="874"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.team.ui"\r
+         download-size="1500"\r
+         install-size="3218"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.compare.core"\r
+         download-size="65"\r
+         install-size="122"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.ui.views"\r
+         download-size="107"\r
+         install-size="194"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.ui.views.properties.tabbed"\r
+         download-size="107"\r
+         install-size="220"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.jdt.annotation"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.nebula.widgets.nattable.core"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="ca.odell.glazedlists"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.nebula.widgets.nattable.extension.glazedlists"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.nebula.widgets.compositetable"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="org.eclipse.nebula.widgets.nattable.extension.e4"\r
+         download-size="0"\r
+         install-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 beb6b861724918544b225d1582e05f76c556c555..5909db0ec6ff4eb6668a1c1cb17255df87b1c507 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>5.16.0</version>
+               <version>5.42.0</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
        <artifactId>eu.etaxonomy.taxeditor.feature.platform</artifactId>
index 4454159a5cefdfe2563321b964d8a81ffe51f0d8..aeed40ddbcb9162f5f8858ab711cb776829cbaff 100644 (file)
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="eu.etaxonomy.taxeditor.feature"
-      label="Taxonomic Editor"
-      version="5.16.0"
-      provider-name="EDIT"
-      plugin="eu.etaxonomy.taxeditor.application"
-      os="linux,macosx,win32"
-      ws="cocoa,gtk,win32"
-      arch="x86,x86_64">
-
-   <description url="http://www.example.com/description">
-      [Enter Feature Description here.]
-   </description>
-
-   <copyright url="http://www.example.com/copyright">
-      [Enter Copyright Description here.]
-   </copyright>
-
-   <url>
-      <update label="EDIT Taxonomic Editor" url="http://cybertaxonomy.eu/download/taxeditor/update/"/>
-   </url>
-
-   <includes
-         id="eu.etaxonomy.taxeditor.feature.platform"
-         version="0.0.0"/>
-
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.eclipse.equinox.ds"/>
-      <import plugin="org.eclipse.equinox.util"/>
-      <import plugin="org.eclipse.equinox.p2.core"/>
-      <import plugin="org.eclipse.equinox.p2.ui"/>
-      <import plugin="org.eclipse.equinox.p2.ui.sdk"/>
-      <import plugin="org.eclipse.equinox.p2.updatechecker"/>
-      <import plugin="org.eclipse.equinox.p2.operations"/>
-      <import plugin="org.eclipse.equinox.app"/>
-      <import plugin="org.eclipse.osgi"/>
-      <import plugin="org.eclipse.ui.editors"/>
-      <import plugin="org.eclipse.core.expressions"/>
-      <import plugin="eu.etaxonomy.taxeditor.cdmlib" version="3.0.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.jface.text"/>
-      <import plugin="org.eclipse.ui.ide"/>
-      <import plugin="org.eclipse.ui.forms"/>
-      <import plugin="org.eclipse.core.databinding.beans"/>
-      <import plugin="org.eclipse.core.databinding.observable"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.jface.databinding"/>
-      <import plugin="org.eclipse.ui.navigator"/>
-      <import plugin="org.eclipse.ui.navigator.resources"/>
-      <import plugin="org.eclipse.core.jobs"/>
-      <import plugin="org.eclipse.pde.runtime"/>
-      <import plugin="org.eclipse.core.commands"/>
-      <import plugin="org.eclipse.jface"/>
-      <import plugin="org.eclipse.swt"/>
-      <import plugin="org.eclipse.equinox.common" version="3.6.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.update.configurator"/>
-      <import plugin="org.eclipse.equinox.p2.publisher.eclipse"/>
-   </requires>
-
-   <plugin
-         id="eu.etaxonomy.taxeditor.application"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="eu.etaxonomy.taxeditor.bulkeditor"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="eu.etaxonomy.taxeditor.editor"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="eu.etaxonomy.taxeditor.navigation"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="eu.etaxonomy.taxeditor.store"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="eu.etaxonomy.taxeditor.printpublisher"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="eu.etaxonomy.taxeditor.cdmlib"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="eu.etaxonomy.taxeditor.help"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="eu.etaxonomy.taxeditor.molecular"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="eu.etaxonomy.taxeditor.molecular.lib"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="eu.etaxonomy.taxeditor.webapp"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="eu.etaxonomy.taxeditor.workbench"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<feature\r
+      id="eu.etaxonomy.taxeditor.feature"\r
+      label="Taxonomic Editor"\r
+      version="5.42.0"\r
+      provider-name="EDIT"\r
+      plugin="eu.etaxonomy.taxeditor.application"\r
+      os="linux,macosx,win32"\r
+      ws="cocoa,gtk,win32"\r
+      arch="x86,x86_64">\r
+\r
+   <description url="http://www.example.com/description">\r
+      [Enter Feature Description here.]\r
+   </description>\r
+\r
+   <copyright url="http://www.example.com/copyright">\r
+      [Enter Copyright Description here.]\r
+   </copyright>\r
+\r
+   <url>\r
+      <update label="EDIT Taxonomic Editor" url="http://cybertaxonomy.org/download/taxeditor/update/"/>\r
+   </url>\r
+\r
+   <includes\r
+         id="eu.etaxonomy.taxeditor.feature.platform"\r
+         version="0.0.0"/>\r
+\r
+   <requires>\r
+      <import plugin="org.eclipse.ui"/>\r
+      <import plugin="org.eclipse.core.runtime"/>\r
+      <import plugin="org.eclipse.equinox.ds"/>\r
+      <import plugin="org.eclipse.equinox.util"/>\r
+      <import plugin="org.eclipse.equinox.p2.core"/>\r
+      <import plugin="org.eclipse.equinox.p2.ui"/>\r
+      <import plugin="org.eclipse.equinox.p2.ui.sdk"/>\r
+      <import plugin="org.eclipse.equinox.p2.updatechecker"/>\r
+      <import plugin="org.eclipse.equinox.p2.operations"/>\r
+      <import plugin="org.eclipse.equinox.app"/>\r
+      <import plugin="org.eclipse.osgi"/>\r
+      <import plugin="org.eclipse.ui.editors"/>\r
+      <import plugin="org.eclipse.core.expressions"/>\r
+      <import plugin="org.eclipse.jface.text"/>\r
+      <import plugin="org.eclipse.ui.ide"/>\r
+      <import plugin="org.eclipse.ui.forms"/>\r
+      <import plugin="org.eclipse.core.databinding.beans"/>\r
+      <import plugin="org.eclipse.core.databinding.observable"/>\r
+      <import plugin="org.eclipse.core.resources"/>\r
+      <import plugin="org.eclipse.jface.databinding"/>\r
+      <import plugin="org.eclipse.ui.navigator"/>\r
+      <import plugin="org.eclipse.ui.navigator.resources"/>\r
+      <import plugin="org.eclipse.core.jobs"/>\r
+      <import plugin="org.eclipse.core.commands"/>\r
+      <import plugin="org.eclipse.jface"/>\r
+      <import plugin="org.eclipse.swt"/>\r
+      <import plugin="org.eclipse.equinox.common" version="3.6.0" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.help.ui"/>\r
+      <import plugin="org.eclipse.equinox.p2.metadata"/>\r
+      <import plugin="org.eclipse.equinox.p2.engine"/>\r
+      <import plugin="org.eclipse.equinox.p2.metadata.repository"/>\r
+      <import plugin="org.eclipse.equinox.p2.repository"/>\r
+      <import plugin="org.eclipse.equinox.p2.transport.ecf"/>\r
+      <import plugin="org.eclipse.e4.ui.workbench" version="1.4.0" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.e4.ui.model.workbench"/>\r
+      <import plugin="org.eclipse.e4.ui.di"/>\r
+      <import plugin="org.eclipse.e4.core.di.annotations"/>\r
+      <import plugin="org.eclipse.emf.ecore"/>\r
+      <import plugin="org.eclipse.emf.ecore.xmi"/>\r
+      <import plugin="org.eclipse.e4.core.contexts"/>\r
+      <import plugin="org.eclipse.e4.core.di"/>\r
+      <import plugin="org.eclipse.e4.core.services"/>\r
+      <import plugin="org.eclipse.osgi.services"/>\r
+      <import plugin="org.eclipse.equinox.event"/>\r
+      <import plugin="javax.inject"/>\r
+      <import plugin="javax.annotation"/>\r
+      <import plugin="org.eclipse.e4.ui.model.workbench" version="1.2.0.v20160229-1459" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.e4.ui.services"/>\r
+      <import plugin="org.eclipse.nebula.widgets.nattable.core"/>\r
+      <import plugin="ca.odell.glazedlists"/>\r
+      <import plugin="org.eclipse.nebula.widgets.nattable.extension.glazedlists"/>\r
+      <import plugin="org.eclipse.nebula.widgets.nattable.extension.e4"/>\r
+      <import plugin="org.eclipse.zest.core"/>\r
+      <import plugin="org.eclipse.zest.layouts"/>\r
+      <import plugin="org.eclipse.e4.core.commands"/>\r
+      <import plugin="org.eclipse.nebula.widgets.nattable.extension.e4" version="1.1.0" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.e4.core.contexts" version="1.5.1" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.core.databinding"/>\r
+      <import plugin="org.eclipse.core.databinding.property"/>\r
+      <import plugin="org.eclipse.e4.core.di.annotations" version="1.5.0" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.e4.ui.di" version="1.1.100" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.e4.core.commands" version="0.11.100" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.e4.ui.services" version="1.2.100" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.e4.ui.model.workbench" version="1.2.0" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.nebula.widgets.compositetable" version="1.0.0" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.equinox.preferences"/>\r
+      <import plugin="org.eclipse.help.webapp"/>\r
+      <import plugin="org.eclipse.core.databinding.observable" version="1.4.0" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.core.databinding" version="1.4.0" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.jface.databinding" version="1.5.0" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.core.databinding.property" version="1.4.0" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.jetty.server" version="9.3.9" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.jetty.util" version="9.3.9" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.ui.workbench"/>\r
+      <import plugin="org.eclipse.equinox.p2.metadata" version="2.3.100" match="greaterOrEqual"/>\r
+      <import plugin="org.eclipse.equinox.p2.operations" version="2.4.200" match="greaterOrEqual"/>\r
+   </requires>\r
+\r
+   <plugin\r
+         id="eu.etaxonomy.taxeditor.application"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="eu.etaxonomy.taxeditor.bulkeditor"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="eu.etaxonomy.taxeditor.editor"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="eu.etaxonomy.taxeditor.navigation"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="eu.etaxonomy.taxeditor.store"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="eu.etaxonomy.taxeditor.printpublisher"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="eu.etaxonomy.taxeditor.cdmlib"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"/>\r
+\r
+   <plugin\r
+         id="eu.etaxonomy.taxeditor.help"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="eu.etaxonomy.taxeditor.molecular"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="eu.etaxonomy.taxeditor.molecular.lib"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+   <plugin\r
+         id="eu.etaxonomy.taxeditor.workbench"\r
+         download-size="0"\r
+         install-size="0"\r
+         version="0.0.0"\r
+         unpack="false"/>\r
+\r
+</feature>\r
index 4bfd26c42a53abcf2ee87ad6f87185f608f97c6b..ce99e556cd9c340bfce529c750cb8123c67803ba 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.16.0</version>
+    <version>5.42.0</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>eu.etaxonomy.taxeditor.feature</artifactId>
index 5d4f14b244bcfb519461218a7124f96ed5f76851..e3f1b7ec6e910ce7f5f52b3cb546e1c7587ee917 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.16.0
+Bundle-Version: 5.42.0
 Bundle-Activator: eu.etaxonomy.taxeditor.help.Activator
 Bundle-Vendor: EDIT
 Require-Bundle: org.eclipse.ui,
index 66628ef453a9d210bb1dbcb1cdde752aecbe6be0..66a4ccd10bd9b63e59d9b9941e96d73afd8d01d5 100644 (file)
@@ -9,7 +9,7 @@
                        <img src="../img/cybergate.jpg" alt="Platform Cybergate" />
                </p>
                <p>You will be taken to the Taxonomic Editor Download Site.</p>
-               <p>Alternatively, you can access the download site directly by entering <a href="https://cybertaxonomy.eu/downlaod/taxeditor">https://cybertaxonomy.eu/downlaod/taxeditor</a> into the address bar of your browser.</p>
+               <p>Alternatively, you can access the download site directly by entering <a href="https://cybertaxonomy.org/download/taxeditor">https://cybertaxonomy.org/download/taxeditor</a> into the address bar of your browser.</p>
        </li>
        <li>Click on the download link and then navigate to the latest version of the Taxonomic Editor 
        
index fd002707743f2429d9256782a2fc9819c9327813..adcfa6640fea1d1146195c40b5de65d147a4ee28 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>5.16.0</version>
+               <version>5.42.0</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index 6ed6f13a5ee2add10f31454ae3604c0567d29ebd..718525438d120f8b000ea37bba4e251092af0761 100644 (file)
@@ -1,3 +1,11 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.help;
 
 import org.eclipse.jface.resource.ImageDescriptor;
@@ -14,27 +22,22 @@ public class Activator extends AbstractUIPlugin {
 
        // The shared instance
        private static Activator plugin;
-       
+
        /**
         * The constructor
         */
        public Activator() {
        }
 
-       /*
-        * (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-        */
-       public void start(BundleContext context) throws Exception {
+
+       @Override
+    public void start(BundleContext context) throws Exception {
                super.start(context);
                plugin = this;
        }
 
-       /*
-        * (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-        */
-       public void stop(BundleContext context) throws Exception {
+       @Override
+    public void stop(BundleContext context) throws Exception {
                plugin = null;
                super.stop(context);
        }
diff --git a/eu.etaxonomy.taxeditor.local/META-INF/MANIFEST.MF b/eu.etaxonomy.taxeditor.local/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..2324c19
--- /dev/null
@@ -0,0 +1,63 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Local
+Bundle-SymbolicName: eu.etaxonomy.taxeditor.local;singleton:=true
+Bundle-Version: 5.42.0
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.jface,
+ org.eclipse.ui.ide,
+ eu.etaxonomy.taxeditor.store,
+ eu.etaxonomy.taxeditor.workbench,
+ org.eclipse.e4.core.di.annotations,
+ org.eclipse.e4.ui.services,
+ org.eclipse.e4.ui.model.workbench,
+ org.eclipse.e4.ui.di,
+ org.eclipse.e4.ui.workbench,
+ org.eclipse.core.expressions,
+ org.eclipse.ui.forms,
+ org.eclipse.ui.workbench,
+ javax.servlet
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-ActivationPolicy: lazy
+Export-Package: eu.etaxonomy.taxeditor.local
+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.5.1.jar,
+ lib/mssql-jdbc-9.4.1.jre8.jar,
+ lib/jtds-1.3.1.jar,
+ lib/mysql-connector-java-8.0.29.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,
+ lib/jetty-io-9.4.26.v20200117.jar,
+ lib/jetty-security-9.4.26.v20200117.jar,
+ lib/jetty-server-9.4.26.v20200117.jar,
+ lib/jetty-servlet-9.4.26.v20200117.jar,
+ lib/jetty-util-9.4.26.v20200117.jar
+Bundle-Vendor: EDIT
+Import-Package: javax.annotation;version="1.2.0",
+ eu.etaxonomy.cdm.api.application,
+ eu.etaxonomy.cdm.api.service,
+ eu.etaxonomy.cdm.api.service.geo,
+ eu.etaxonomy.cdm.cache,
+ eu.etaxonomy.cdm.common,
+ eu.etaxonomy.cdm.common.monitor,
+ eu.etaxonomy.cdm.config,
+ eu.etaxonomy.cdm.database,
+ eu.etaxonomy.cdm.model.common,
+ eu.etaxonomy.cdm.model.metadata,
+ eu.etaxonomy.cdm.model.name,
+ eu.etaxonomy.cdm.model.term.init,
+ eu.etaxonomy.cdm.persistence.permission,
+ eu.etaxonomy.taxeditor.remoting.server,
+ eu.etaxonomy.taxeditor.remoting.source,
+ eu.etaxonomy.taxeditor.session,
+ org.springframework.security.core,
+ org.apache.logging.log4j,
+ org.apache.commons.lang3,
+ org.eclipse.jface.resource,
+ org.eclipse.ui.plugin,
+ org.springframework.core.io,
+ org.springframework.security.authentication
diff --git a/eu.etaxonomy.taxeditor.local/OSGI-INF/l10n/bundle.properties b/eu.etaxonomy.taxeditor.local/OSGI-INF/l10n/bundle.properties
new file mode 100755 (executable)
index 0000000..a25b253
--- /dev/null
@@ -0,0 +1,6 @@
+#Properties file for eu.etaxonomy.taxeditor.local
+command.label.connect = Connect
+command.label.RE_CONNECT = Re-Connect
+command.name.connect = Connect
+command.name.RE_CONNECT = Re-Connect
+command.label.5 = Switch User
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.local/OSGI-INF/l10n/bundle_de.properties b/eu.etaxonomy.taxeditor.local/OSGI-INF/l10n/bundle_de.properties
new file mode 100755 (executable)
index 0000000..62d41f0
--- /dev/null
@@ -0,0 +1,6 @@
+#Properties file for eu.etaxonomy.taxeditor.local, German
+command.label.connect = Verbinden
+command.label.RE_CONNECT = Aktualisiere Verbindung
+command.name.connect = Verbinden
+command.name.RE_CONNECT = Aktualisiere Verbindung
+command.label.5 = Benutzer wechseln
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.local/build.properties b/eu.etaxonomy.taxeditor.local/build.properties
new file mode 100644 (file)
index 0000000..011efa7
--- /dev/null
@@ -0,0 +1,17 @@
+source.. = src/main/java/,\
+           src/main/resources/
+bin.includes = META-INF/,\
+               .,\
+               lib/,\
+               lib/h2-1.4.190.jar,\
+               lib/mchange-commons-java-0.2.11.jar,\
+               lib/postgresql-42.5.1.jar,\
+               lib/mssql-jdbc-9.4.1.jre8.jar,\
+               lib/jtds-1.3.1.jar,\
+               lib/mysql-connector-java-8.0.29.jar,\
+               OSGI-INF/,\
+               OSGI-INF/l10n/bundle.properties,\
+               OSGI-INF/l10n/bundle_de.properties,\
+               plugin.xml,\
+               src/main/java/eu/etaxonomy/taxeditor/l10n/,\
+               fragment.e4xmi
diff --git a/eu.etaxonomy.taxeditor.local/fragment.e4xmi b/eu.etaxonomy.taxeditor.local/fragment.e4xmi
new file mode 100644 (file)
index 0000000..5779763
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="ASCII"?>
+<fragment:ModelFragments xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/descriptor/basic" xmlns:commands="http://www.eclipse.org/ui/2010/UIModel/application/commands" xmlns:fragment="http://www.eclipse.org/ui/2010/UIModel/fragment" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmlns:ui="http://www.eclipse.org/ui/2010/UIModel/application/ui" xmi:id="_OhwnQCTfEeeiN5lBIuqN3g">
+  <imports xsi:type="commands:Command" xmi:id="_bnVKsCZxEeeQLpuomSmVoQ" elementId="eu.etaxonomy.taxeditor.command.openPart"/>
+  <imports xsi:type="commands:Command" xmi:id="_LlbAMEq2EeeN-dEYnw7m3g" elementId="org.eclipse.ui.file.save"/>
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_xVa1wCXXEeex9MwMOgUeWw" featurename="descriptors" parentElementId="xpath:/" positionInList="">
+    <elements xsi:type="basic:PartDescriptor" xmi:id="_eKzREIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource" label="Datasource" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/system-file-manager.png" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.local/eu.etaxonomy.taxeditor.local.view.datasource.e4.CdmDataSourceViewPartE4">
+      <handlers xmi:id="_IaZwgDPCEeu63sY9P50avA" elementId="eu.etaxonomy.taxeditor.local.handler.0" contributionURI="bundleclass://eu.etaxonomy.taxeditor.local/eu.etaxonomy.taxeditor.local.view.datasource.e4.handler.CreateDataSourceHandlerE4" command="_O0ZYcDPCEeu63sY9P50avA"/>
+      <handlers xmi:id="_hAnq0IctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.e4.handler.EditDataSourceHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.local/eu.etaxonomy.taxeditor.local.view.datasource.e4.handler.EditDataSourceHandlerE4" command="_cs5L0IctEee-HITNnU9cVw"/>
+      <handlers xmi:id="_rsmsYIctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.e4.handler.CloneDataSourceHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.local/eu.etaxonomy.taxeditor.local.view.datasource.e4.handler.CloneDataSourceHandlerE4" command="_o0HcUIctEee-HITNnU9cVw"/>
+      <handlers xmi:id="_ASDGYIcuEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.e4.handler.DeleteDataSourceHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.local/eu.etaxonomy.taxeditor.local.view.datasource.e4.handler.DeleteDataSourceHandlerE4" command="_-g_YcIctEee-HITNnU9cVw"/>
+      <menus xsi:type="menu:PopupMenu" xmi:id="_3aJ1cIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.popupmenu.datasourceview">
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_CbQ4kDPCEeu63sY9P50avA" elementId="eu.etaxonomy.taxeditor.local.handledmenuitem.new" label="New" command="_O0ZYcDPCEeu63sY9P50avA"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_-ALHMIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.handledmenuitem.edit" label="Edit" command="_cs5L0IctEee-HITNnU9cVw"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_8ciKMIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.handledmenuitem.clone" label="Clone" command="_o0HcUIctEee-HITNnU9cVw"/>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_-6EjoIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.menuseparator.1"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="__u4EsIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.handledmenuitem.delete" label="Delete" command="_-g_YcIctEee-HITNnU9cVw"/>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_AfzyYIcqEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.menuseparator.2"/>
+      </menus>
+    </elements>
+  </fragments>
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_mPdAcGceEee0qLTtA2ZpVQ" featurename="commands" parentElementId="xpath:/">
+    <elements xsi:type="commands:Command" xmi:id="_cs5L0IctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.edit" commandName="Edit"/>
+    <elements xsi:type="commands:Command" xmi:id="_o0HcUIctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.clone" commandName="Clone"/>
+    <elements xsi:type="commands:Command" xmi:id="_-g_YcIctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.delete" commandName="Delete"/>
+    <elements xsi:type="commands:Command" xmi:id="_ShWvcIcuEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.update" commandName="Update"/>
+    <elements xsi:type="commands:Command" xmi:id="_OlOO0O0HEeqksLQRVeqFGA" elementId="eu.etaxonomy.taxeditor.local.operations.showRemotingLoginWindow" commandName="%command.name.connect"/>
+    <elements xsi:type="commands:Command" xmi:id="_3uvF0P5KEeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.webapp.command.benutzerwechseln" commandName="%command.label.5"/>
+    <elements xsi:type="commands:Command" xmi:id="_us_lAP75EeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.local.command.reconnect" commandName="%command.name.RE_CONNECT"/>
+    <elements xsi:type="commands:Command" xmi:id="_O0ZYcDPCEeu63sY9P50avA" elementId="eu.etaxonomy.taxeditor.local.command.new" commandName="New"/>
+  </fragments>
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_pVVyEJFJEeeDJpjGQES7gw" featurename="addons" parentElementId="xpath:/">
+    <elements xsi:type="application:Addon" xmi:id="_q4JBkJFJEeeDJpjGQES7gw" elementId="eu.etaxonomy.taxeditor.event.EventUtility" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.event.EventUtility"/>
+  </fragments>
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_mNW70LMnEeeMU61m8yqdaA" featurename="children" parentElementId="eu.etaxonomy.taxeditor.menu.showView" positionInList="after:eu.etaxonomy.taxeditor.workbench.menuseparator.referencing">
+    <elements xsi:type="menu:HandledMenuItem" xmi:id="_mNW72bMnEeeMU61m8yqdaA" elementId="eu.etaxonomy.taxeditor.store.showViewMenu.datasource" visible="false" label="Datasource Test" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/system-file-manager.png" tooltip="%command.label.2" enabled="false" command="_bnVKsCZxEeeQLpuomSmVoQ">
+      <parameters xmi:id="_mNW72rMnEeeMU61m8yqdaA" elementId="eu.etaxonomy.taxeditor.webapp.showView.parameter.dataSourceView" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.view.datasource"/>
+    </elements>
+  </fragments>
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_hSGlEPv3EeqwiqpCwftRog" featurename="handlers" parentElementId="xpath:/">
+    <elements xsi:type="commands:Handler" xmi:id="_j7DkUPv3EeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.webapp.handler.connect" contributionURI="bundleclass://eu.etaxonomy.taxeditor.local/eu.etaxonomy.taxeditor.local.handler.ShowRemotingLoginWindowHandlerE4" command="_OlOO0O0HEeqksLQRVeqFGA"/>
+    <elements xsi:type="commands:Handler" xmi:id="_6GckEP5KEeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.webapp.handler.0" contributionURI="bundleclass://eu.etaxonomy.taxeditor.local/eu.etaxonomy.taxeditor.local.handler.SwitchUserHandlerE4" command="_3uvF0P5KEeqwiqpCwftRog"/>
+    <elements xsi:type="commands:Handler" xmi:id="_q26rUP75EeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.local.handler.reconnect" contributionURI="bundleclass://eu.etaxonomy.taxeditor.local/eu.etaxonomy.taxeditor.local.handler.ReconnectHandlerE4" command="_us_lAP75EeqwiqpCwftRog"/>
+  </fragments>
+  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_udC8YPv3EeqwiqpCwftRog" featurename="children" parentElementId="eu.etaxonomy.taxeditor.workbench.menu.file" positionInList="index:9">
+    <elements xsi:type="menu:HandledMenuItem" xmi:id="_z4gfgPv3EeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.commandlabelconnect" label="%command.name.connect" command="_OlOO0O0HEeqksLQRVeqFGA">
+      <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_5Sv6oPv3EeqwiqpCwftRog" coreExpressionId="isCdmStoreNotConnected"/>
+    </elements>
+    <elements xsi:type="menu:HandledMenuItem" xmi:id="_1OTwcP5KEeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.webapp.handledmenuitem.benutzerwechseln" label="%command.label.5" command="_3uvF0P5KEeqwiqpCwftRog">
+      <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_80AT8CKQEeuJ57DHLSlqzw" coreExpressionId="isCdmStoreConnected"/>
+    </elements>
+    <elements xsi:type="menu:HandledMenuItem" xmi:id="_9aCBMP75EeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.local.handledmenuitem.commandnamere_connect" label="%command.name.RE_CONNECT" command="_us_lAP75EeqwiqpCwftRog">
+      <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_4dSLUCKQEeuJ57DHLSlqzw" coreExpressionId="isCdmStoreConnected"/>
+    </elements>
+  </fragments>
+</fragment:ModelFragments>
diff --git a/eu.etaxonomy.taxeditor.local/lib/javax.servlet-api-4.0.1.jar b/eu.etaxonomy.taxeditor.local/lib/javax.servlet-api-4.0.1.jar
new file mode 100755 (executable)
index 0000000..844ec7f
Binary files /dev/null and b/eu.etaxonomy.taxeditor.local/lib/javax.servlet-api-4.0.1.jar differ
diff --git a/eu.etaxonomy.taxeditor.local/lib/jetty-http-9.4.26.v20200117.jar b/eu.etaxonomy.taxeditor.local/lib/jetty-http-9.4.26.v20200117.jar
new file mode 100755 (executable)
index 0000000..442eb85
Binary files /dev/null and b/eu.etaxonomy.taxeditor.local/lib/jetty-http-9.4.26.v20200117.jar differ
diff --git a/eu.etaxonomy.taxeditor.local/lib/jetty-io-9.4.26.v20200117.jar b/eu.etaxonomy.taxeditor.local/lib/jetty-io-9.4.26.v20200117.jar
new file mode 100755 (executable)
index 0000000..2e47706
Binary files /dev/null and b/eu.etaxonomy.taxeditor.local/lib/jetty-io-9.4.26.v20200117.jar differ
diff --git a/eu.etaxonomy.taxeditor.local/lib/jetty-security-9.4.26.v20200117.jar b/eu.etaxonomy.taxeditor.local/lib/jetty-security-9.4.26.v20200117.jar
new file mode 100755 (executable)
index 0000000..02d61ac
Binary files /dev/null and b/eu.etaxonomy.taxeditor.local/lib/jetty-security-9.4.26.v20200117.jar differ
diff --git a/eu.etaxonomy.taxeditor.local/lib/jetty-server-9.4.26.v20200117.jar b/eu.etaxonomy.taxeditor.local/lib/jetty-server-9.4.26.v20200117.jar
new file mode 100755 (executable)
index 0000000..d1e7682
Binary files /dev/null and b/eu.etaxonomy.taxeditor.local/lib/jetty-server-9.4.26.v20200117.jar differ
diff --git a/eu.etaxonomy.taxeditor.local/lib/jetty-servlet-9.4.26.v20200117.jar b/eu.etaxonomy.taxeditor.local/lib/jetty-servlet-9.4.26.v20200117.jar
new file mode 100755 (executable)
index 0000000..50d434d
Binary files /dev/null and b/eu.etaxonomy.taxeditor.local/lib/jetty-servlet-9.4.26.v20200117.jar differ
diff --git a/eu.etaxonomy.taxeditor.local/lib/jetty-util-9.4.26.v20200117.jar b/eu.etaxonomy.taxeditor.local/lib/jetty-util-9.4.26.v20200117.jar
new file mode 100755 (executable)
index 0000000..e112283
Binary files /dev/null and b/eu.etaxonomy.taxeditor.local/lib/jetty-util-9.4.26.v20200117.jar differ
diff --git a/eu.etaxonomy.taxeditor.local/lib/jetty-webapp-9.4.26.v20200117.jar b/eu.etaxonomy.taxeditor.local/lib/jetty-webapp-9.4.26.v20200117.jar
new file mode 100755 (executable)
index 0000000..472dd89
Binary files /dev/null and b/eu.etaxonomy.taxeditor.local/lib/jetty-webapp-9.4.26.v20200117.jar differ
diff --git a/eu.etaxonomy.taxeditor.local/lib/jetty-xml-9.4.26.v20200117.jar b/eu.etaxonomy.taxeditor.local/lib/jetty-xml-9.4.26.v20200117.jar
new file mode 100755 (executable)
index 0000000..8ca7d5d
Binary files /dev/null and b/eu.etaxonomy.taxeditor.local/lib/jetty-xml-9.4.26.v20200117.jar differ
diff --git a/eu.etaxonomy.taxeditor.local/plugin.xml b/eu.etaxonomy.taxeditor.local/plugin.xml
new file mode 100755 (executable)
index 0000000..d15cb35
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         id="eu.etaxonomy.taxeditor.editor.workbench.model"
+         name="Editor Workbench Model"
+         point="org.eclipse.e4.workbench.model">
+      <fragment
+            apply="always"
+            uri="fragment.e4xmi">
+      </fragment>
+   </extension>
+
+</plugin>
similarity index 75%
rename from eu.etaxonomy.taxeditor.webapp/pom.xml
rename to eu.etaxonomy.taxeditor.local/pom.xml
index 02b966945ba37d2d1d9f8c44f1462c421d84b804..c013d739cfb7e8b70dea1785fe260aa36a1bb6c3 100644 (file)
@@ -4,20 +4,19 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.16.0</version>
+    <version>5.42.0</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
-  <artifactId>eu.etaxonomy.taxeditor.webapp</artifactId>
+  <artifactId>eu.etaxonomy.taxeditor.local</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <name>CDM Library Webapp Plugin</name>
-  <description>CDM Library webapp as a plugin</description>
+  <name>Local Plugin</name>
   <build>
     <pluginManagement>
       <plugins>
         <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>
@@ -25,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>
@@ -53,7 +52,8 @@
             </goals>
             <configuration>
               <includeArtifactIds>
-                log4j,javax.servlet-api,jetty-server,jetty-util,jetty-webapp,jetty-xml,jetty-servlet,jetty-http,jetty-io,jetty-security
+                log4j-api,log4j-core,
+                jetty-server,jetty-util,jetty-webapp,jetty-xml,jetty-servlet,jetty-http,jetty-io,jetty-security
               </includeArtifactIds>
               <outputDirectory>
                 ${basedir}/lib
@@ -71,7 +71,8 @@
             </goals>
             <configuration>
               <includeArtifactIds>
-                c3p0,mchange-commons-java,h2,postgresql,mysql-connector-java,jdbc4
+                c3p0,mchange-commons-java,
+                h2,postgresql,mysql-connector-java,mssql-jdbc,jtds
               </includeArtifactIds>
               <outputDirectory>
                 ${basedir}/lib
@@ -86,7 +87,6 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-antrun-plugin</artifactId>
-        <version>1.7</version>
         <executions>
           <execution>
             <id>update-snapshot-jar-names</id>
       </plugin>
     </plugins>
   </build>
-  <repositories>
-    <repository>
-      <id>SpringSource Enterprise Bundle Repository - External Bundle
-        Milestones
-      </id>
-      <url>http://repository.springsource.com/maven/bundles/milestone
-      </url>
-    </repository>
-    <repository>
-      <id>SpringSource Enterprise Bundle Repository - SpringSource
-        Bundle
-        Releases
-      </id>
-      <url>http://repository.springsource.com/maven/bundles/release
-      </url>
-    </repository>
-    <repository>
-      <id>SpringSource Enterprise Bundle Repository - External Bundle
-        Releases
-      </id>
-      <url>http://repository.springsource.com/maven/bundles/external
-      </url>
-    </repository>
-  </repositories>
   <dependencies>
     <dependency>
       <groupId>eu.etaxonomy</groupId>
       <artifactId>cdmlib-db</artifactId>
       <version>${cdmlib.version}</version>
     </dependency>
-     <dependency>
-        <groupId>log4j</groupId>
-        <artifactId>log4j</artifactId>
-        <version>${log4j.version}</version>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-api</artifactId>
+      <version>${log4j.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-core</artifactId>
+      <version>${log4j.version}</version>
     </dependency>
     <dependency>
-        <groupId>javax.servlet</groupId>
-        <artifactId>javax.servlet-api</artifactId>
-        <version>3.1.0</version>
+        <groupId>org.hibernate.validator</groupId>
+        <artifactId>hibernate-validator</artifactId>
+        <version>6.2.3.Final</version>
     </dependency>
     <dependency>
         <groupId>org.eclipse.jetty</groupId>
         <version>${jetty-version}</version>
     </dependency>
   </dependencies>
+  <description>Enables acces to a local managed cdm server</description>
 </project>
 
diff --git a/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/l10n/Messages.java b/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/l10n/Messages.java
new file mode 100755 (executable)
index 0000000..f861987
--- /dev/null
@@ -0,0 +1,759 @@
+/**
+ * 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.l10n;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * @author pplitzner
+ * @date Apr 14, 2015
+ *
+ */
+public class Messages extends NLS {
+
+    private static final String BUNDLE_NAME = "src/main/java/eu.etaxonomy.taxeditor.l10n.messages"; //$NON-NLS-1$
+
+    public static String AuthenticatedUserBar_LOGGED_IN_AS;
+    public static String AuthenticatedUserBar_NOT_LOGGED_IN;
+    public static String LanguageEditorPreferencePage_ChooseDefaultLanguage;
+    public static String LanguageEditorPreferencePage_EditorHasToRestart;
+    public static String LanguageEditorPreferencePage_PleaseRestart;
+    public static String LanguageEditorPreferencePage_RestartRequired;
+
+    public static String LanguageMenuPreferences_configure;
+    public static String CommonNameLanguageMenuPreferences_configure;
+
+    public static String LanguageMenuPreferences_warning;
+
+
+    public static String LanguageRepresentationPreferencePage_global;
+    public static String LanguageRepresentationPreferencePage_enable;
+
+
+    public static String ListComponent_ADD_PROVIDER;
+
+
+    public static String ListComponent_NO_PROVIDER_AVAILABLE;
+
+
+    public static String ListComponent_REMOVE_PROVIDER;
+    public static String DatabaseRepairPage_chooseParameter;
+    public static String DatabaseRepairPage_updateTaxonNodes;
+    public static String DatabaseRepairPage_toolTip_taxonNode;
+    public static String DatabaseRepairPage_PolytomousKeyNode;
+    public static String DatabaseRepairPage_toolTip_polytomousKeyNode;
+    public static String DatabaseRepairPage_featureNodes;
+    public static String DatabaseRepairPage_toolTipFeatureNodes;
+    public static String DatabaseRepairPage_updateTaxonName;
+    public static String DatabaseRepairPage_toolTip_TaxonName;
+    public static String DatabaseRepairPage_TaxonBase;
+    public static String DatabaseRepairPage_toolTip_taxonBase;
+    public static String DatabaseRepairPage_Reference;
+    public static String DatabaseRepairPage_toolTip_reference;
+    public static String DatabaseRepairPage_Specimen;
+    public static String DatabaseRepairPage_toolTip_specimen;
+    public static String DatabaseRepairPage_TeamOrPerson;
+    public static String DatabaseRepairPage_toolTip_teamOrPerson;
+    public static String DatabaseRepairPage_description;
+    public static String DatabaseRepairPage_description_sortIndex;
+
+    public static String LoginDialog_CANCEL_MESSAGE;
+    public static String LoginDialog_LOGIN;
+    public static String LoginDialog_PASSWORD;
+    public static String LoginDialog_REALLY_CANCEL;
+    public static String LoginDialog_USER_LOGIN;
+    public static String LoginDialog_USER_NAME;
+    public static String OpenCommonNameAreaWizardAdminHandler_COMMON_NAMES;
+
+
+    public static String OpenDistributionEditorWizardHandlerAdminE4_DISTRIBUTION;
+
+
+    public static String OpenDistributionEditorWizardHandlerE4_DISTRIBUTION;
+
+
+    public static String OrderPreferences_Restore;
+    public static String OrderPreferences_Sorting;
+    public static String OrderPreferencePage_NewNavigatorWindowRequired;
+    public static String OrderPreferencePage_PleaseReopenNavigator;
+
+    public static String CdmDataSourceViewPart_1;
+    public static String CdmDataSourceViewPart_10;
+    public static String CdmDataSourceViewPart_11;
+    public static String CdmDataSourceViewPart_12;
+    public static String CdmDataSourceViewPart_2;
+    public static String CdmDataSourceViewPart_3;
+    public static String CdmDataSourceViewPart_4;
+    public static String CdmDataSourceViewPart_5;
+    public static String CdmDataSourceViewPart_7;
+    public static String CdmDataSourceViewPart_8;
+    public static String CdmDataSourceViewPart_9;
+    public static String CdmViewerContextMenu_OPEN;
+    public static String CdmViewerContextMenu_OPEN_IN;
+    public static String ChangeConnectionHandler_ALREADY_CONNECTING;
+    public static String ChangeConnectionHandler_CURRENTLY_CONNECTING_ALREADY;
+    public static String ChangeConnectionHandler_CREATE_DATAMODEL;
+    public static String ChangeConnectionHandler_REALLY_CREATE_DATAMODEL;
+    public static String ChangeConnectionHandler_DATASOURCE_NOT_AVAILABLE;
+    public static String ChangeConnectionHandler_NOT_AVAILABLE_REASONS;
+    public static String CheckBoxTreeComposite_SELECT_DIRECT_CHILDREN;
+    public static String UpdateHandler_CHECK_UPDATE_JOB;
+    public static String UpdateHandler_INSTALL_JOB;
+    public static String UpdateHandler_NO_UPDATE_MESSAGE;
+    public static String UpdateHandler_NO_UPDATE_TITLE;
+    public static String UpdateHandler_UPDATE_INSTALLED_TITLE;
+    public static String UpdateHandler_UPDATE_INSTALLED_TITLE_MESSAGE;
+    public static String UpdateHandler_UPDATES_FOUND_MESSAGE;
+    public static String UpdateHandler_UPDATES_FOUND_TITLE;
+
+
+    public static String UriWithLabelElement_COULD_NOT_OPEN_BROWSER;
+    public static String UriWithLabelElement_INVALID_URL;
+    public static String UriWithLabelElement_OPEN_EXTERNAL_BROWSER;
+    public static String UriWithLabelElement_URL_NOT_SAVED;
+    public static String DoiWithLabelElement_DOI_NOT_SAVED;
+    public static String OrcidWithLabelElement_ORCID_NOT_SAVED;
+
+       public static String CdmStoreConnector_AUTHENTICATING_USER;
+       public static String CdmStoreConnector_CHECK_IF_EDITOR_IS_COMPATIBLE;
+       public static String CdmStoreConnector_CHECK_IF_NON_EMPTY;
+       public static String CdmStoreConnector_CHECK_IF_REACHABLE;
+       public static String CdmStoreConnector_COMPATIBILITY_CHECK_FAILED;
+       public static String CdmStoreConnector_COULD_NOT_CONNECT_TO_CHOSEN_DATASOURCE;
+       public static String CdmStoreConnector_SUCCESS;
+       public static String CdmStoreConnector_DATA_MODEL_CREATION_SUCCESSFUL;
+       public static String CdmStoreConnector_COULD_NOT_CREATE_DATAMODEL;
+       public static String CdmStoreConnector_CREATING_DATAMODEL;
+       public static String CdmStoreConnector_ERROR_DURING_DATAMODEL_CREATION;
+       public static String CdmStoreConnector_REASON;
+       public static String CdmStoreConnector_SCHEME_NOT_COMPATIBLE;
+       public static String CdmStoreConnector_UPDATE_DATASOUREC_OR_CHOOSE_NEW_DATASOURCE;
+       public static String CdmStoreConnector_UPDATE_EDITOR_OR_CHOOSE_COMPATIBLE_DATASOURCE;
+
+
+    public static String ConfiguratorComposite_CONFIGURE;
+
+       public static String DefinedTermDropAdapterE4_MOVE_DESCRIPTIONS;
+    public static String DefinedTermDropAdapterE4_MOVE_FAILED;
+    public static String DefinedTermDropAdapterE4_MOVE_FAILED_MESSAGE;
+    public static String DefinedTermDropAdapterE4_MOVE_FAILED_SAVE_MESSAGE;
+
+    public static String DebugPreferences_0;
+    public static String DebugPreferences_1;
+
+    public static String DefaultFeatureTreePreferenecs_0;
+    public static String DefaultFeatureTreePreferenecs_1;
+
+
+    public static String DefinedTermDropAdapterE4_TERM_TYPE_ERROR_MESSAGE;
+
+
+    public static String DefinedTermDropAdapterE4_TERM_TYPE_ERROR_TITLE;
+
+
+    public static String DefinedTermEditorE4_SAVE_MESSAGE;
+    public static String DefinedTermEditorE4_SAVE_TITLE;
+    public static String DefinedTermMenu_FEATURE_TREE;
+    public static String DefinedTermMenu_MENU;
+    public static String DefinedTermMenu_OTHER_S;
+    public static String DefinedTermMenu_OTHERS;
+    public static String DefinedTermMenu_TERM_EDITOR;
+
+    public static String DetailsViewerE4_TAXON_HAS_NO_NAME;
+    public static String DetailsViewPart_VIEWER_NAME;
+
+    public static String EditPasswordElement_PLEASE_CREATE_OR_SAVE_USER;
+    public static String EditPasswordElement_USERNAME_DOES_NOT_EXIST;
+
+
+    public static String EmptySection_NO_VIEW_IMPLEMENTED;
+    public static String PasswordWizard_COULD_NOT_CHANGE_PWD;
+    public static String PasswordWizard_OLD_PWD_INCORRECT;
+    public static String PasswordWizard_PROBLEM_WITH_CHANGING_PWD;
+    public static String PasswordWizard_PWD_COULD_NOT_BE_CHANGED;
+    public static String PasswordWizardPage_CHANGE_PASSWORD;
+    public static String PasswordWizardPage_CHANGE_PASSWORD_AND_CONFIRM;
+    public static String PasswordWizardPage_NEW_PASSWORD;
+    public static String PasswordWizardPage_OLD_PASSWORD;
+    public static String PasswordWizardPage_PASSWORD_MIN_CHARACTER;
+    public static String PasswordWizardPage_PASSWORDS_DO_NOT_MATCH;
+    public static String PasswordWizardPage_REPEAT_PASSWORD;
+
+    public static String PresenceAbsenceMenuPreferences_choose;
+
+
+    public static String PresenceAbsenceTermDetailElement_CHOOSE_COLOR;
+    public static String PresenceAbsenceTermDetailElement_COLOR_NOT_SET;
+    public static String PresenceAbsenceTermDetailElement_LABEL_COLOR;
+
+
+    public static String PreservationMethodMenuPreferences_select;
+
+    public static String RankMenuPreferences_display;
+
+
+    public static String RankMenuPreferences_sort;
+
+
+    public static String RemotingLoginDialog_CHOOSE_COMPATIBLE_CDM_SERVER;
+    public static String RemotingLoginDialog_DEFAULT_LOGIN;
+       public static String RemotingLoginDialog_LABEL_ADVANCED;
+       public static String RemotingLoginDialog_LABEL_CDM_INSTANCE;
+       public static String RemotingLoginDialog_LABEL_CDM_SERVER;
+       public static String RemotingLoginDialog_LABEL_CONNECT;
+       public static String RemotingLoginDialog_LABEL_CREATE_SCHEMA;
+       public static String RemotingLoginDialog_LABEL_UPDATE_SCHEMA_VERSION;
+       public static String RemotingLoginDialog_MSG_UPDATE_SCHEMA_VERSION;
+    public static String RemotingLoginDialog_LABEL_EDITOR_CDM_VERSION;
+       public static String RemotingLoginDialog_LABEL_EDITOR_CDMLIB_VERSION;
+       public static String RemotingLoginDialog_LABEL_LOGIN;
+       public static String RemotingLoginDialog_LABEL_LOGIN_COLON;
+       public static String RemotingLoginDialog_LABEL_PASSWORD;
+       public static String RemotingLoginDialog_LABEL_PORT;
+       public static String RemotingLoginDialog_LABEL_REFRESH;
+       public static String RemotingLoginDialog_LABEL_REMEMBER_ME;
+       public static String RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES;
+       public static String RemotingLoginDialog_LABEL_SERVER_CDM_VERSION;
+       public static String RemotingLoginDialog_LABEL_SERVER_CDMLIB_VERSION;
+       public static String RemotingLoginDialog_LABEL_STOP_MANAGED_SERVER;
+       public static String RemotingLoginDialog_LOGIN_CANNOT_BE_EMPTY;
+       public static String RemotingLoginDialog_MESSAGE_PORT_SHOULD_BE_INTEGER;
+       public static String RemotingLoginDialog_PASSWORD_CANNOT_BE_EMPTY;
+       public static String RemotingLoginDialog_SERVER_LAUNCH_ERROR;
+       public static String RemotingLoginDialog_STATUS_AVAILABLE;
+       public static String RemotingLoginDialog_STATUS_CHECKING;
+       public static String RemotingLoginDialog_STATUS_ERROR;
+       public static String RemotingLoginDialog_STATUS_NO_INSTANCES_FOUND;
+       public static String RemotingLoginDialog_STATUS_NOT_AVAILABLE;
+       public static String RemotingLoginDialog_STATUS_NOT_COMPATIBLE;
+       public static String RemotingLoginDialog_STATUS_NOT_STARTED;
+       public static String RemotingLoginDialog_STATUS_REMOTING_NOT_ACTIVATED;
+       public static String RemotingLoginDialog_STATUS_RETRIEVING;
+       public static String RemotingLoginDialog_STATUS_STARTED;
+       public static String RemotingLoginDialog_UPDATE_EDITOR;
+       public static String RemotingLoginDialog_CONNECTION_FAILED_MESSAGE;
+    public static String RemotingLoginDialog_CONNECTION_TIMEOUT_MESSAGE;
+    public static String RemotingLoginDialog_CONNECTION_FAILED_TITLE;
+    public static String RemotingLoginDialog_COULD_NOT_STOP_SERVER;
+       public static String RemotingLoginDialog_ERROR_GENERATING_CONFIG_FILE;
+       public static String RemotingLoginDialog_ERROR_STARTING_SERVER;
+       public static String RemotingLoginDialog_ERROR_STOPPING_SERVER;
+       public static String RemotingLoginDialog_GENERATING_CONFIG_FILE;
+       public static String RemotingLoginDialog_JOB_SERVER_LAUNCH;
+       public static String RemotingLoginDialog_STARTING_MGD_SERVER;
+       public static String RemotingLoginDialog_TASK_LAUNCHING_SERVER;
+       public static String RemotingLoginDialog_MISSING_PERMISSION;
+       public static String RemotingLoginDialog_SCHEMA_MISSING;
+       public static String RemotingLoginDialog_NO_SCHEMA;
+
+    public static String SearchManager_LARGE_RESULT_EXPECTED;
+    public static String SearchManager_LONG_SEARCH_WARNING;
+
+    public static String SupplementalDataPreferences_0;
+
+
+    public static String SupplementalDataSourcePreferences_SHOW_ID;
+
+
+    public static String SupplementalDataSourcePreferences_SHOW_NAMESPACE;
+
+    public static String SupplementalDataViewPart_VIEWER_NAME;
+       public static String DeleteConfiguration_media_removeFromGallery;
+       public static String DeleteConfiguration_media_deleteIfUsedInTaxonDescription;
+       public static String DeleteConfiguration_media_deleteIfUsedSomeWhereElse;
+       public static String DeleteConfiguration_media_delete;
+
+
+    public static String DeleteResultMessagingUtils_ABORT;
+    public static String DeleteResultMessagingUtils_SUCCES;
+
+    public static String DeleteTermBaseOperation_CANNOT_DELETE_TERM;
+    public static String DeleteTermBaseOperation_CANNOT_DELETE_VOC;
+    public static String DeleteTermBaseOperation_DELETE_ALL_TERMS_BEFORE;
+    public static String DeleteTermBaseOperation_DELETE_FAILED;
+    public static String DeleteTermBaseOperation_SYSTEM_TERM;
+    public static String DeleteTermBaseOperation_SYSTEM_VOC;
+    public static String DeleteTermBaseOperation_TERM_INCLUDES_OTHERS;
+    public static String DeleteTermBaseOperation_TERM_INLCUDES;
+    public static String DeleteTermBaseOperation_VOC_NOT_EMPTY;
+
+    public static String DeleteConfiguration_descriptiveDataSet_deleteAllSpecimenDesc;
+    public static String DeleteConfiguration_descriptiveDataSet_deleteAllLiteratureDesc;
+    public static String DeleteConfiguration_descriptiveDataSet_deleteAllDefaultDesc;
+    public static String DeleteConfiguration_descriptiveDataSet_deleteAllAggregatedDesc;
+    public static String DeleteConfiguration_descriptiveDataSet_deleteSelection;
+
+
+
+    public static String DescriptionPreferences_1;
+
+    public static String NewGrantedAuthority_AlreadyInDb;
+
+    public static String SetSecundumConfiguration_IncludeAcceptedTaxa;
+    public static String SetSecundumConfiguration_IncludeSynonyms;
+    public static String SetSecundumConfiguration_OverwriteExistingAccepted;
+    public static String SetSecundumConfiguration_OverwriteExistingSynonyms;
+    public static String SetSecundumConfiguration_EmptySecundumDetail;
+    public static String SetSecundumConfiguration_IncludeSharedtaxa;
+    public static String SetSecundumConfiguration_NewSecundum_Label;
+    public static String SetSecundumConfiguration_Description;
+    public static String SetSecundumConfiguration_Description_Configurator;
+    public static String SetSecundumConfiguration_Title;
+
+    public static String DatabasePreferncesPage_Is_redList;
+    public static String DatabasePreferncesPage_Determination_only_for_field_unnits;
+    public static String DatabasePreferncesPage_Show_Collecting_Areas_in_general_section;
+    public static String DatabasePreferncesPage_Show_Specimen_List_Editor;
+    public static String DatabasePreferncesPage_Taxon_Associations;
+    public static String DatabasePreferncesPage_Life_Form;
+
+    public static String DatabasePreferencesPage_Biocase_Provider;
+    public static String DatabasePreferencesPage_details_view_configuration;
+    public static String DatabasePreferencesPage_show_only_simple_details_view;
+    public static String DatabasePreferencesPage_show_taxon;
+    public static String DatabasePreferencesPage_show_lsid;
+    public static String DatabasePreferencesPage_show_nomenclatural_code;
+    public static String DatabasePreferencesPage_show_namecache;
+    public static String DatabasePreferencesPage_show_appended_phrase;
+    public static String DatabasePreferencesPage_show_rank;
+    public static String DatabasePreferencesPage_show_atomised_epithets;
+    public static String DatabasePreferencesPage_show_authorship_cache;
+    public static String DatabasePreferencesPage_show_author_section;
+    public static String DatabasePreferencesPage_Show_nomenclatural_Ref;
+    public static String DatabasePreferencesPage_Show_nomenclaturalStatus;
+    public static String DatabasePreferencesPage_Show_Protologue;
+    public static String DatabasePreferencesPage_Show_Type_designation;
+    public static String DatabasePreferencesPage_Show_NameRelations;
+    public static String DatabasePreferencesPage_Define_Default_NomenclaturalCode;
+    public static String DatabasePreferencesPage_UseLocalPreferences;
+    public static String DatabasePreferencesPage_Specimen_Or_Observation;
+    public static String DatabasePreferencesPage_SetPublishFlag;
+
+    public static String DatabasePreferncesPage_Show_Id_In_SelectionDialog;
+    public static String DatabasePreferncesPage_Search_for_identifier_as_default;
+    public static String DatabasePreferncesPage_search_for_identifier_and_titleCache;
+    public static String DatabasePreferncesPage_Sort_Taxa_By_Name_And_Rank;
+    public static String DatabasePreferncesPage_CommonNameFilter;
+
+    public static String ImportFromFileAndChooseVocIdWizardPage_AreaVoc;
+    public static String ImportFromFileAndChooseVocIdWizardOage_AreaVoc_toolTip;
+
+
+    public static String ExcelDistributionUpdateWizard_ConfiguratorWizard_label;
+
+
+    public static String AbstractImportWizard_ConfigurationLabel;
+
+
+
+
+    public static String FeatureMenuPreferences_display;
+
+
+    public static String FeatureTreeDropAdapter_CHOOSE_VOC;
+    public static String FeatureTreeDropAdapter_IMPORT_NOT_POSSIBLE;
+    public static String FeatureTreeDropAdapter_MOVE_FAILED_SAVE_MESSAGE;
+    public static String FeatureTreeDropAdapter_ONLY_MOVE_FEATURES;
+    public static String FeatureTreeDropAdapter_ORDER_VOC_NOT_POSSIBLE;
+
+    public static String TermTreeEditorComposite_ADD_FEATURE;
+    public static String TermTreeEditorComposite_FEATURE_TREE;
+    public static String TermTreeEditorComposite_OPEN_TREE;
+    public static String TermTreeEditorComposite_REMOVE_FEATURE;
+
+    public static String FeatureTreeSelectionDialog_CHOOSE_TREE;
+    public static String FeatureTreeSelectionDialog_ENTER_LABEL;
+    public static String FeatureTreeSelectionDialog_NEW_TREE;
+    public static String FeatureTreeSelectionDialog_TREE_LABEL;
+
+
+       public static String NonViralNameDetails_confirmDeleteOfZoologicalNameParts;
+       public static String NonViralNameDetails_descriptionDeleteZoologicalNameParts;
+       public static String NonViralNameDetails_confirmDeleteOfBacterialNameParts;
+       public static String NonViralNameDetails_desciptionDeleteOfBacterialNameParts;
+       public static String NonViralNameDetails_confirmDeleteOfFungiNameParts;
+       public static String NonViralNameDetails_descriptionDeleteOfFungiNameParts;
+       public static String NonViralNameDetails_confirmDeleteOfCultivarNameParts;
+       public static String NonViralNameDetails_descriptionDeleteOfCultivarNameParts;
+
+       public static String NameDetailsViewComposite_Show_TypeDesignation;
+    public static String NameDetailsViewComposite_Show_Namerelationships;
+    public static String NameDetailsViewComposite_Show_Hybrid;
+    public static String NameDetailsViewComposite_Show_NameApprobiation;
+    public static String NameDetailsViewComposite_Show_Taxon;
+    public static String NameDetailsViewComposite_Show_SecDetail;
+    public static String NameDetailsViewComposite_SecEnabled;
+    public static String NameDetailsViewComposite_Show_LSID;
+    public static String NameDetailsViewComposite_Show_NomenclaturalCode;
+    public static String NameDetailsViewComposite_Show_NameCache;
+    public static String NameDetailsViewComposite_Show_AppendedPhrase;
+    public static String NameDetailsViewComposite_Show_Rank;
+    public static String NameDetailsViewComposite_Show_AtomisedEpithets;
+    public static String NameDetailsViewComposite_Show_AuthorCache;
+    public static String NameDetailsViewComposite_Show_Author;
+    public static String NameDetailsViewComposite_Show_NomenclaturalReference;
+    public static String NameDetailsViewComposite_Show_NomenclaturalStatus;
+    public static String NameDetailsViewComposite_Show_Protologue;
+
+    public static String NameDetailsViewConfiguration_activateSimpleDetailsView;
+    public static String NameDetailsViewConfiguration_description;
+    public static String NameDetailsViewConfiguration_useLocalSettings;
+    public static String NameDetailsViewConfiguration_description_not_available;
+    public static String NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsidered;
+    public static String NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsideredCodeEdition;
+    public static String NameDetailsViewComposite_Show_Namerelationships_RuleConsidered;
+    public static String NameDetailsViewComposite_Show_Namerelationships_RuleConsideredCodeEdition;
+
+
+    public static String NameRelationshipWizardPage_description;
+
+
+    public static String SetPublishConfiguration_Publish;
+    public static String SetPublishConfiguration_Publish_tooltip;
+    public static String SetPublishConfiguration_Description_Configurator;
+    public static String SetPublishConfiguration_IncludeAcceptedTaxa;
+    public static String SetPublishConfiguration_IncludeSharedtaxa;
+    public static String SetPublishConfiguration_IncludeSynonyms;
+    public static String SetPublishConfiguration_IncludeMisappliedNames;
+    public static String SetPublishConfiguration_IncludeProParteSynonyms;
+    public static String SetPublishConfiguration_IncludeHybrids;
+
+    public static String ExcelSpecimenUpdateWizard_ConfiguratorWizard_label;
+
+
+    public static String ExcelTaxonUpdateWizard_ConfiguratorWizard_label;
+
+
+    public static String ExperimentalFeaturesPreferences;
+
+
+    public static String ExtensionTypeMenuPreferences_choose;
+
+
+    public static String ExternalServicesPreferences_max_height;
+
+
+    public static String ExternalServicesPreferences_max_width;
+
+
+    public static String SetPublishConfiguration_Title;
+    public static String SetPublishConfiguration_publish;
+    public static String SetPublishConfiguration_dont_publish;
+
+    public static String TCSImportWizard_ConfiguratorWizard_label;
+
+
+    public static String SearchDialog_patternLabel;
+
+    public static String SelectionViewMenu_SET_FLAG;
+    public static String SelectionViewMenu_selectVocabulary;
+    public static String SelectionViewMenu_4_YES;
+    public static String SelectionViewMenu_NO;
+
+
+    public static String AbcdImportPreference_create_Individual_Association;
+    public static String AbcdImportPreference_create_Individual_Association_tooltip;
+    public static String AbcdImportPreference_create_new_classification_new_taxa;
+    public static String AbcdImportPreference_create_new_classification_new_taxa_tooltip;
+    public static String AbcdImportPreference_description;
+    public static String AbcdImportPreference_ignore_author;
+    public static String AbcdImportPreference_ignore_author_tooltip;
+    public static String AbcdImportPreference_import_all_children_for_cultures_or_tissues;
+    public static String AbcdImportPreference_import_all_children_for_cultures_or_tissues_tooltip;
+    public static String AbcdImportPreference_map_unit_nr_catalog_number;
+    public static String AbcdImportPreference_provider_for_associated_dna;
+
+    public static String AbcdImportPreference_map_unit_number_barcode;
+    public static String AbcdImportPreference_map_unit_number_barcode_tooltip;
+    public static String AbcdImportPreference_map_unit_number_catalog_number_tooltip;
+    public static String AbcdImportPreference_map_unit_number_to_accession_number;
+    public static String AbcdImportPreference_media_as_mediaSpecimen;
+    public static String AbcdImportPreference_media_as_subUnit;
+    public static String AbcdImportPreference_not_import_existing_specimen;
+    public static String AbcdImportPreference_not_import_existing_specimen_tooltip;
+    public static String AbcdImportPreference_remove_country_from_locality;
+    public static String AbcdImportPreference_remove_country_from_locality_tooltip;
+    public static String AbcdImportPreference_reuse_descriptive_group;
+    public static String AbcdImportPreference_reuse_descriptive_group_tooltip;
+    public static String AbcdImportPreference_reuse_existing_taxa;
+    public static String AbcdImportPreference_reuse_existing_taxa_tooltip;
+    public static String AbcdImportPreference_allow_override_tooltip;
+    public static String AbcdImportPreference_override;
+    public static String AbcdImportPreference_override_tooltip;
+    public static String AbcdImportProvider_description;
+
+    public static String AvailableAreaVocabulariesPage_PAGE_DESCRIPTION;
+    public static String AvailableAreaVocabulariesPage_PAGE_TITLE;
+
+    public static String AvailableDistributionPage_CHECK_MESSAGE;
+    public static String AvailableDistributionPage_PAGE_DESCRIPTION;
+    public static String AvailableDistributionPage_PAGE_TITLE;
+
+
+    public static String AvailableDistributionStatusPage_PAGE_DESCRIPTION;
+    public static String AvailableDistributionStatusPage_PAGE_TITLE;
+
+
+    public static String AvailableDistributionStatusWizard_PAGE_TITLE;
+    public static String AvailableDistributionStatusWizard_WINDOW_TITLE;
+    public static String AvailableDistributionStatusWizard_WIZARD_TITLE;
+
+    public static String AvailableDistributionWizard_CHECK_MESSAGE;
+    public static String AvailableDistributionWizard_PAGE_TITLE;
+    public static String AvailableDistributionWizard_WINDOW_TITLE;
+
+    public static String AvailableVocabularyWizard_PAGE_TITLE;
+    public static String AvailableVocabularyWizard_WINDOW_TITLE;
+    public static String AvailableVocabularyWizard_WIZARD_TITLE;
+
+    public static String ChecklistEditorGeneralPreference_enable;
+
+    public static String GeneralPreference_allowOverride;
+
+
+    public static String GeneralPreference_yes;
+    public static String GeneralPreference_no;
+
+
+    public static String ChecklistEditorGeneralPreference_open_distribution_selection;
+    public static String ChecklistEditorGeneralPreference_open_wizard;
+    public static String ChecklistEditorGeneralPreference_show_id_in_voc;
+    public static String ChecklistEditorGeneralPreference_show_rank;
+    public static String ChecklistEditorGeneralPreference_show_symbol;
+    public static String ChecklistEditorGeneralPreference_sort_areas;
+    public static String ChecklistEditorGeneralPreference_own_DescriptionToolTip;
+
+
+
+    public static String GfBioTerminologyImportPresenter_COMBO_DEFAULT;
+    public static String GfBioTerminologyImportPresenter_NO_CONNECTION_MESSAGE;
+    public static String GfBioTerminologyImportPresenter_NO_CONNECTION_TITLE;
+    public static String GfBioTerminologyImportPresenter_NO_RESULTS_MESSAGE;
+    public static String GfBioTerminologyImportPresenter_NO_RESULTS_TITLE;
+    public static String GfBioTerminologyImportPresenter_SEARCH_TOO_SHORT_MESSAGE;
+    public static String GfBioTerminologyImportPresenter_SEARCH_TOO_SHORT_TITLE;
+    public static String GfBioTerminologyImportPresenter_TEXT_SEARCH_DEFAULT;
+
+    public static String PublishFlagPreference_description;
+    public static String PublishFlagPreference_do_not_set;
+    public static String PublishFlagPreference_inherit;
+    public static String PublishFlagPreference_set;
+
+    public static String NomenclaturalCodePreferences_available_codes;
+    public static String NomenclaturalCodePreferences_choose;
+    public static String NomenclaturalCodePreferences_description;
+    public static String NomenclaturalCodePreferences_localChangesNotAllowed;
+    public static String NomenclaturalCodePreferences_useLocalCode;
+
+
+    public static String NomenclaturalStatusTypeMenuPreferences_1;
+    public static String PublishEnum_publish;
+
+    public static String DateDetail_parseText_tooltip;
+
+    public static String UIPreferences_expand;
+    public static String SearchDialogPreferences_0;
+    public static String SearchDialogPreferences_1;
+    public static String SearchDialogPreferences_2;
+    public static String SearchDialogPreferences_3;
+    public static String SearchDialogPreferences_4;
+    public static String TypeDesignationPreferences_typeDesignationsToAllNames;
+    public static String TypeDesignationSection_ADD_TYPE;
+    public static String TypeDesignationSection_CREATE_DUPLICATE;
+    public static String TypeDesignationSection_DUPLICATE_FAILED;
+    public static String TypeDesignationSection_NO_TYPES_YET;
+    public static String TypeDesignationSection_TYPE_DESIGNATIONS;
+
+    public static String TaxonNodeWizardPage_edit;
+    public static String TaxonNodeWizardPage_new;
+    public static String TaxonNodeWizardPage_no_classification;
+    public static String TaxonNodeWizardPage_no_taxon_name;
+    public static String TaxonNodeWizardPage_not_all_required_fields;
+    public static String TaxonNodeWizardPage_PLACEMENT_SOURCE;
+    public static String TaxonNodeWizardPage_PARENT;
+    public static String TaxonNodeWizardPage_PLACEMENT_SOURCE_DETAIL;
+    public static String TaxonNodeWizardPage_NEW_TAXON;
+    public static String TaxonNodeWizardPage_TAXON;
+    public static String TaxonNodeWizardPage_REUSE_EXISTING_TAXON;
+    public static String TaxonNodeWizardPage_REUSE_EXISTING_NAME;
+    public static String TaxonNodeWizardPage_SECUNDUM_REFERENCE;
+    public static String TaxonNodeWizardPage_PLACEMENT_NOTES;
+    public static String TaxonNodeWizardPage_CLASSIFICATION;
+    public static String TaxonNodeWizardPage_TAXON_NODE;
+    public static String TaxonNodeWizardPage_TAXON_INFORMATION;
+    public static String TaxonNodeWizardPage_TAXON_IS_PUBLISH;
+
+    public static String TaxonomicEditorGeneralPreferences_background;
+    public static String TaxonomicEditorGeneralPreferences_connect;
+
+    public static String TaxonRelationshipTypeMenuPreferences_configure;
+    public static String TaxonSearchPreferences_0;
+    public static String NameRelationshipTypeMenuPreferences_relationshipTypes;
+    public static String NamedAreaTypeMenuPreferences;
+
+
+    public static String NameTypeDesignationElement_4;
+    public static String NameTypeDesignationElement_5;
+
+    public static String NameTypeDesignationStatusMenuPreferences_configure;
+    public static String GeneralPreference_open_common_name_area_selection;
+
+    public static String DatabasePreferncesPage_Show_Specimen;
+    public static String DatabasePreferncesPage_Show_IOMenu;
+
+    public static String SpecimenConfiguration_description;
+
+    public static String Distribution_status_selection;
+    public static String DistributionAdminPreferences_SELECT_STATUS;
+    public static String DistributionAdminPreferences_PER_AREA_STATUS;
+    public static String DistributionAdminPreferences_DEFAULT_AREA_STATUS_NOT_ALLOWED;
+    public static String DistributionAdminPreferences_DEFAULT_AREA_STATUS;
+
+    public static String DatabasePreferncesPage_Show_MediaView;
+    public static String DatabasePreferncesPage_Show_ChecklistPerspective;
+    public static String DatabasePreferncesPage_Show_TaxonNodeWizard;
+
+    public static String ChecklistEditorGeneralPreference_show_symbol1;
+    public static String ChecklistEditorGeneralPreference_show_symbol2;
+    public static String ChecklistEditorGeneralPreference_show_title;
+    public static String ChecklistEditorGeneralPreference_Configure_display_of_Areas;
+    public static String ChecklistEditorGeneralPreference_Configure_display_of_Status;
+    public static String ChecklistEditorGeneralPreference_Configure_display_of_Status_in_Combo;
+    public static String ChecklistEditorGeneralPreference_Configure_status_order;
+    public static String ChecklistEditorGeneralPreference_STATUS_DISPLAY_TEXT;
+    public static String ChecklistEditorGeneralPreference_own_Description;
+    public static String GeneralPreference_override;
+
+    public static String MarkerTypeMenuPreferences_display;
+
+
+    public static String MeasurementUnitMenuPreferences_edit;
+
+    public static String MediaDetailElement_LOAD_IMAGE;
+    public static String MediaDetailElement_Media_URI;
+    public static String MediaDetailElement_NO_FILE_FOUND;
+    public static String MediaDetailElement_NO_PREVIEW;
+    public static String MediaDetailElement_TOGGLE_NOT_POSSIBLE_MESSAGE;
+    public static String MediaDetailElement_TOGGLE_NOT_POSSIBLE_TITLE;
+    public static String MediaDetailElement_SHOW_IMAGE;
+    public static String MediaDetailElement_RELOAD_IMAGE;
+
+
+    public static String MediaPreferences_advanced;
+    public static String MediaPreferences_preview;
+
+    public static String NavigatorOrderEnum_1;
+    public static String NavigatorOrderEnum_3;
+    public static String NavigatorOrderEnum_5;
+
+    public static String VokabularyAdminPreferences_SELECT_VOCABULARY_TEXT;
+
+    public static String ToggleableText_ToolTip_closed;
+    public static String ToggleableText_ToolTip_open;
+
+    public static String PublishFlagPreference_description_not_allowed;
+
+    public static String ChecklistEditorGeneralPreference_0;
+
+    public static String SpecimenOrObservationPreferences_0;
+    public static String SpecimenOrObservationPreferences_1;
+
+    public static String SpecimenTypeDesignationStatusMenuPreferences_configure;
+
+    public static String StageMenuPreferences_choose;
+
+    public static String TermOrder_idInVoc;
+    public static String TermOrder_Title;
+    public static String TermOrder_natural;
+
+    public static String ChecklistEditorGeneralPreference_Configure_area_order;
+    public static String ChecklistEditorGeneralPreference_numberFormatExceptionLabel;
+    public static String ChecklistEditorGeneralPreference_numberOfStatus;
+    public static String ChecklistEditorGeneralPreference_tooltip_numberOfStatus;
+    public static String Preference_Use_Default;
+
+    public static String AbcdImportProvider_description_not_available;
+
+    public static String OrderPreferencePage_NotAllowed;
+
+    public static String DatabasePreferncesPage_NamedAreaSearchField;
+
+    public static String Preference_allow_override;
+    public static String Preference_override_allowed;
+    public static String Delete;
+
+    public static String Preference_update;
+
+    public static String FactualData_showModifier;
+    public static String FactualData_showModifier_FreeText;
+    public static String FactualData_description;
+    public static String FactualData_showIdInVocabulary;
+    public static String FactualData_showIdInVocabulary_tooltip;
+
+    public static String DistributionAggregationWizardPage_AGGREGATION_MODE;
+    public static String DistributionAggregationWizardPage_AREA;
+    public static String DistributionAggregationWizardPage_AREA_LEVEL;
+    public static String DistributionAggregationWizardPage_CHILD_PARENT;
+    public static String DistributionAggregationWizardPage_CLASSIFICATION;
+    public static String DistributionAggregationWizardPage_DEFAULT;
+    public static String DistributionAggregationWizardPage_DESCRIPTION;
+    public static String DistributionAggregationWizardPage_EXPORT_UNPUBLISHED;
+    public static String DistributionAggregationWizardPage_HIGHEST_RANK;
+    public static String DistributionAggregationWizardPage_LOWEST_RANK;
+    public static String DistributionAggregationWizardPage_SELECT_AREA;
+    public static String DistributionAggregationWizardPage_SOURCE_MODE_AREA;
+    public static String DistributionAggregationWizardPage_SOURCE_TYPE;
+    public static String DistributionAggregationWizardPage_SOURCEMODE_CHILD_PARENT;
+    public static String DistributionAggregationWizardPage_SOURCEMODE_WITHIN_TAXON;
+    public static String DistributionAggregationWizardPage_STATUS_ORDER;
+    public static String DistributionAggregationWizardPage_TITLE;
+    public static String DistributionAggregationWizardPage_TOOLTIP_AGGR_MODE;
+    public static String DistributionAggregationWizardPage_TOOLTIP_AREA_LEVEL;
+    public static String DistributionAggregationWizardPage_TOOLTIP_AREA_SELECTION;
+    public static String DistributionAggregationWizardPage_TOOLTIP_SOURCE_TYPE;
+    public static String DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_AREA;
+    public static String DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_CHILD_PARENT;
+    public static String DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_WITHIN_TAXON;
+    public static String AggregationWizardPage_SUBTREE;
+    public static String AggregationWizardPage_SINGLE_TAXON;
+    public static String SetAggregationConfiguration_Title;
+    public static String StructuredDescriptionAggregationWizardPage_SELECT_SUBTREE;
+    public static String StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_SUBTREE;
+    public static String StructuredDescriptionAggregationWizardPage_SELECT_ALL_SUBTREES;
+//    public static String StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_ALL_SUBTREES;
+    public static String StructuredDescriptionAggregationWizardPage_SELECT_SELECTED_TAXA_ONLY;
+
+    public static String CommonNameLanguages_Title;
+
+    public static String CommonNameVocabularyPreferencePage_description;
+    public static String CommonNameLanguagePreferencePage_description;
+
+    public static String AggregationWizardPage_WITHOUT_CHILDREN;
+
+    public static String DeleteConfiguration_descriptionFromDescriptiveDataSet_onlyRemove;
+
+    public static String EnumCombo_Placement_status;
+
+    public static String OriginalSourceAdvancedSection_advanced;
+
+
+
+
+
+
+
+
+    static {
+        // initialize resource bundle
+        NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+    }
+
+    private Messages() {
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/l10n/messages.properties b/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/l10n/messages.properties
new file mode 100755 (executable)
index 0000000..97ebd2f
--- /dev/null
@@ -0,0 +1,607 @@
+CdmDataSourceViewPart_1=Loading datasources
+CdmDataSourceViewPart_10=Server
+CdmDataSourceViewPart_11=Name
+CdmDataSourceViewPart_12=Connected
+CdmDataSourceViewPart_2=Notes
+CdmDataSourceViewPart_3=Compatible
+CdmDataSourceViewPart_4=CDM Version
+CdmDataSourceViewPart_5=Created
+CdmDataSourceViewPart_7=Database
+CdmDataSourceViewPart_8=Type
+CdmDataSourceViewPart_9=Up
+LanguageEditorPreferencePage_ChooseDefaultLanguage=Please choose your default language for the editor: 
+LanguageEditorPreferencePage_EditorHasToRestart=The application has to be restarted, in order to complete the language switch.\nDo you want to restart now?
+LanguageEditorPreferencePage_PleaseRestart=Please Restart
+LanguageEditorPreferencePage_RestartRequired=After changing the default language, a restart is required,\nin order for the new settings to take effect.
+LanguageMenuPreferences_configure=Choose available languages
+LanguageMenuPreferences_warning=\ - Warning: no description - not shown in menus
+CommonNameLanguageMenuPreferences_configure=Choose available languages for common names
+LanguageRepresentationPreferencePage_global=Choose the global language that will be used throughout the editor to get representations in
+LanguageRepresentationPreferencePage_enable=Enable Multiple Language Editing Capability
+ListComponent_ADD_PROVIDER=Add Provider
+ListComponent_NO_PROVIDER_AVAILABLE=No Providers available
+ListComponent_REMOVE_PROVIDER=Remove Provider
+OpenCommonNameAreaWizardAdminHandler_COMMON_NAMES=Common Names
+OpenDistributionEditorWizardHandlerAdminE4_DISTRIBUTION=Distribution
+OpenDistributionEditorWizardHandlerE4_DISTRIBUTION=Distribution
+OrderPreferences_Restore=Restore the last Taxon Navigator state
+OrderPreferences_Sorting=Sorting
+OrderPreferencePage_NewNavigatorWindowRequired=A new taxon navigator window is required.
+OrderPreferencePage_PleaseReopenNavigator=Please reopen the taxon navigator.
+DatabaseRepairPage_chooseParameter=Please choose the trees where the sortIndex should be recalculated.
+DatabaseRepairPage_updateTaxonNodes=Taxonomic Tree
+DatabaseRepairPage_toolTip_taxonNode=The sort indexes of the taxonomic tree will be recalculated.
+DatabaseRepairPage_PolytomousKeyNode=Polytomous Key
+DatabaseRepairPage_toolTip_polytomousKeyNode=The sort indexes of all polytomous keys are recalculated.
+DatabaseRepairPage_featureNodes=Term Tree
+DatabaseRepairPage_toolTipFeatureNodes=The sort indexes of the term tree will be recalculated.
+DatabaseRepairPage_updateTaxonName=Scientific Names
+DatabaseRepairPage_toolTip_TaxonName=Caches of all scientific names are recalculated.
+DatabaseRepairPage_TaxonBase=Taxa and Synonyms
+DatabaseRepairPage_toolTip_taxonBase=Caches of all taxa and synonyms are recalculated.
+DatabaseRepairPage_Reference=References
+DatabaseRepairPage_toolTip_reference=Caches of all references are recalculated.
+DatabaseRepairPage_Specimen=Specimen
+DatabaseRepairPage_toolTip_specimen=Caches of all Derived Units und Field Units are recalculated.
+DatabaseRepairPage_TeamOrPerson=Persons and Teams
+DatabaseRepairPage_toolTip_teamOrPerson=Caches of all Persons and Teams are recalculated.
+DatabaseRepairPage_description=Update caches of selected types
+DatabaseRepairPage_description_sortIndex=Update sort indices of selected trees
+UIPreferences_expand=Expand sections when data are available in Details View. This might make the Editor slow.
+
+UpdateHandler_CHECK_UPDATE_JOB=Check Update Job
+UpdateHandler_INSTALL_JOB=Install Update Job
+UpdateHandler_NO_UPDATE_MESSAGE=No updates for the current installation have been found.
+UpdateHandler_NO_UPDATE_TITLE=No updates found
+UpdateHandler_UPDATE_INSTALLED_TITLE=Updates installed
+UpdateHandler_UPDATE_INSTALLED_TITLE_MESSAGE=Updates have been installed. Do you want to restart?
+UpdateHandler_UPDATES_FOUND_MESSAGE=Do you want to install the updates now?
+UpdateHandler_UPDATES_FOUND_TITLE=Updates found
+UriWithLabelElement_URL_NOT_SAVED=URI won't be saved\! 
+UriWithLabelElement_COULD_NOT_OPEN_BROWSER=Could not open external browser. URI is invalid.
+UriWithLabelElement_INVALID_URL=Invalid URI
+UriWithLabelElement_OPEN_EXTERNAL_BROWSER=Open in external browser
+
+DoiWithLabelElement_DOI_NOT_SAVED=DOI won't be saved\!
+OrcidWithLabelElement_ORCID_NOT_SAVED=ORCID won't be saved\!
+
+ChangeConnectionHandler_ALREADY_CONNECTING=Already creating data model
+ChangeConnectionHandler_CURRENTLY_CONNECTING_ALREADY=You are currently creating a data model for a datasource already.
+ChangeConnectionHandler_DATASOURCE_NOT_AVAILABLE=Chosen datasource is not available
+ChangeConnectionHandler_NOT_AVAILABLE_REASONS=This could mean that either the database server is not running or the machine is not reachable.\n\n Please also make sure that you are connected to the network when trying to connect to a remote datasource.
+ChangeConnectionHandler_CREATE_DATAMODEL=Create Data Model
+ChangeConnectionHandler_REALLY_CREATE_DATAMODEL=Do you want to create the data model for %s?\n\nCAUTION: Existing data will be deleted!\n\nNote: Creating the data model may take some time.
+
+LoginDialog_CANCEL_MESSAGE=Aborting the login procedure will close the database.
+LoginDialog_LOGIN=Login
+LoginDialog_PASSWORD=Password
+LoginDialog_REALLY_CANCEL=Do you really want to cancel?
+LoginDialog_USER_LOGIN=User Login
+LoginDialog_USER_NAME=Username
+
+CdmViewerContextMenu_OPEN=Open (%s)
+CdmViewerContextMenu_OPEN_IN=Open in...
+
+CdmStoreConnector_AUTHENTICATING_USER=Authenticating user
+CdmStoreConnector_CHECK_IF_EDITOR_IS_COMPATIBLE=Checking if datasource is compatible with this editor.
+CdmStoreConnector_CHECK_IF_NON_EMPTY=Checking if datasource is a non empty CDM database.
+CdmStoreConnector_CHECK_IF_REACHABLE=Checking if datasource is reachable.
+CdmStoreConnector_COMPATIBILITY_CHECK_FAILED=Datasource Compatibility Check failed
+CdmStoreConnector_COULD_NOT_CONNECT_TO_CHOSEN_DATASOURCE=Could not connect to chosen datasource
+CdmStoreConnector_COULD_NOT_CREATE_DATAMODEL=Could not create data model
+CdmStoreConnector_CREATING_DATAMODEL=Creating data model for %s
+CdmStoreConnector_ERROR_DURING_DATAMODEL_CREATION=An error occurred while trying to create data model for data source: %s\nPlease clear the data base and retry.
+CdmStoreConnector_SUCCESS=Success
+CdmStoreConnector_DATA_MODEL_CREATION_SUCCESSFUL=Data model created successfully
+CdmStoreConnector_REASON=Reason: 
+CdmStoreConnector_SCHEME_NOT_COMPATIBLE=The database schema for the chosen datasource '%s' \n is not compatible for this version of the taxonomic editor. \n\n%s
+CdmStoreConnector_UPDATE_DATASOUREC_OR_CHOOSE_NEW_DATASOURCE=Please update the chosen datasource or choose a new data source to connect to in the Datasource View.
+CdmStoreConnector_UPDATE_EDITOR_OR_CHOOSE_COMPATIBLE_DATASOURCE=Please update the Taxonomic Editor (Help->Check for Updates) or choose a compatible datasource
+ConfiguratorComposite_CONFIGURE=Configure
+
+RankMenuPreferences_display=Choose available ranks
+RankMenuPreferences_sort=Sort ranks hierarchically (default is alphabetically)
+RemotingLoginDialog_CONNECTION_FAILED_MESSAGE=Could not connect to CDM Server. Please check Internet connection and try again.\nIf the problem persists ask your system administrator or contact EditSupport@bgbm.org.
+RemotingLoginDialog_CONNECTION_TIMEOUT_MESSAGE=The connections to the CDM Server has timed out. Your Internet connection appears to have bad quality, please try again.\nIf this isn't a temporary problem ask your system administrator or contact EditSupport@bgbm.org.
+RemotingLoginDialog_CONNECTION_FAILED_TITLE=Connection to CDM server failed
+RemotingLoginDialog_DEFAULT_LOGIN=Default: %s (login), %s (password)
+RemotingLoginDialog_CHOOSE_COMPATIBLE_CDM_SERVER=Please choose a compatible cdm-server or update the chosen cdm-server
+RemotingLoginDialog_SCHEMA_MISSING=Database schema is missing. Please create database schema.\nNOTE: Any existing data in this database will be deleted if present!
+RemotingLoginDialog_NO_SCHEMA=No Schema
+RemotingLoginDialog_MSG_UPDATE_SCHEMA_VERSION=Database requires schema update. Please update to latest schema
+RemotingLoginDialog_LABEL_ADVANCED=advanced
+RemotingLoginDialog_LABEL_CDM_INSTANCE=Database : 
+RemotingLoginDialog_LABEL_CDM_SERVER=CDM Server : 
+RemotingLoginDialog_LABEL_CONNECT=Connect
+RemotingLoginDialog_LABEL_CREATE_SCHEMA=Create Schema
+RemotingLoginDialog_LABEL_UPDATE_SCHEMA_VERSION=Update Schema
+RemotingLoginDialog_LABEL_EDITOR_CDM_VERSION=Editor CDM Version :
+RemotingLoginDialog_LABEL_EDITOR_CDMLIB_VERSION=Editor Cdmlib Version :
+RemotingLoginDialog_LABEL_LOGIN=Login
+RemotingLoginDialog_LABEL_LOGIN_COLON=Login : 
+RemotingLoginDialog_LABEL_PASSWORD=Password : 
+RemotingLoginDialog_LABEL_PORT=Port : 
+RemotingLoginDialog_LABEL_REFRESH=Refresh
+RemotingLoginDialog_LABEL_REMEMBER_ME=Remember Me
+RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES=Retrieve Server Instances
+RemotingLoginDialog_LABEL_SERVER_CDM_VERSION=Server CDM Version :
+RemotingLoginDialog_LABEL_SERVER_CDMLIB_VERSION=Server Cdmlib Version :
+RemotingLoginDialog_LABEL_STOP_MANAGED_SERVER=Stop Managed Server
+RemotingLoginDialog_LOGIN_CANNOT_BE_EMPTY=User login cannot be empty
+RemotingLoginDialog_MESSAGE_PORT_SHOULD_BE_INTEGER=Port should be an integer
+RemotingLoginDialog_PASSWORD_CANNOT_BE_EMPTY=Password cannot be empty
+RemotingLoginDialog_SERVER_LAUNCH_ERROR=CDM Server launch error
+RemotingLoginDialog_STATUS_AVAILABLE=Available
+RemotingLoginDialog_STATUS_CHECKING=Checking ...
+RemotingLoginDialog_STATUS_ERROR=Error
+RemotingLoginDialog_STATUS_NO_INSTANCES_FOUND=No Instances Found
+RemotingLoginDialog_STATUS_NOT_AVAILABLE=Not Available
+RemotingLoginDialog_STATUS_NOT_COMPATIBLE=Not Compatible
+RemotingLoginDialog_STATUS_NOT_STARTED=Not Started
+RemotingLoginDialog_STATUS_REMOTING_NOT_ACTIVATED=Remoting not activated
+RemotingLoginDialog_STATUS_RETRIEVING=Retrieving ...
+RemotingLoginDialog_STATUS_STARTED=Started
+RemotingLoginDialog_UPDATE_EDITOR=Please update the Taxonomic Editor (Help->Check for Updates) or choose a compatible cdm-server
+RemotingLoginDialog_COULD_NOT_STOP_SERVER=Could not stop managed server running at port %s. Please stop it manually.
+RemotingLoginDialog_ERROR_GENERATING_CONFIG_FILE=Error generating server config file
+RemotingLoginDialog_ERROR_STARTING_SERVER=Error starting managed server
+RemotingLoginDialog_ERROR_STOPPING_SERVER=Error stopping managed server
+RemotingLoginDialog_GENERATING_CONFIG_FILE=Generating datasources config file for %s
+RemotingLoginDialog_JOB_SERVER_LAUNCH=Managed CDM Server Launch
+RemotingLoginDialog_STARTING_MGD_SERVER=Starting Managed CDM Server. This may take a while.
+RemotingLoginDialog_TASK_LAUNCHING_SERVER=Launching Managed CDM Server
+RemotingLoginDialog_MISSING_PERMISSION=Your credentials are valid but you are not permitted to use the TaxEditor with the selected data source
+
+EditPasswordElement_PLEASE_CREATE_OR_SAVE_USER=Please create or save user '%s' before changing password
+EditPasswordElement_USERNAME_DOES_NOT_EXIST=Username does not exist
+EmptySection_NO_VIEW_IMPLEMENTED=Unknown element. Details can not be shown.
+PasswordWizard_COULD_NOT_CHANGE_PWD=Could not change password
+PasswordWizard_OLD_PWD_INCORRECT=The old password is not correct.
+PasswordWizard_PROBLEM_WITH_CHANGING_PWD=Problem with changing password
+PasswordWizard_PWD_COULD_NOT_BE_CHANGED=The password could not be changed. 
+PasswordWizardPage_CHANGE_PASSWORD=Change password
+PasswordWizardPage_CHANGE_PASSWORD_AND_CONFIRM=Change password and confirm with current password
+PasswordWizardPage_NEW_PASSWORD=New Password
+PasswordWizardPage_OLD_PASSWORD=Old Password
+PasswordWizardPage_PASSWORD_MIN_CHARACTER=Password has to have at least %s characters
+PasswordWizardPage_PASSWORDS_DO_NOT_MATCH=The passwords do not match
+PasswordWizardPage_REPEAT_PASSWORD=Repeat Password
+
+SearchManager_LARGE_RESULT_EXPECTED=Large result expected
+SearchManager_LONG_SEARCH_WARNING=The current search will return %s objects. This will take a long time and/or might render the editor unusable. Please consider refining your search.\nSearch anyway?
+
+SupplementalDataPreferences_0=Show UUID and object ID in supplemental data view
+SupplementalDataViewPart_VIEWER_NAME=Supplemental Data
+
+DefinedTermDropAdapterE4_MOVE_DESCRIPTIONS=Move Terms
+DefinedTermDropAdapterE4_MOVE_FAILED=Move failed
+DefinedTermDropAdapterE4_MOVE_FAILED_MESSAGE=Cannot move term onto itself or its children
+DefinedTermDropAdapterE4_MOVE_FAILED_SAVE_MESSAGE=Moving the term failed. Try saving before.
+DefinedTermDropAdapterE4_TERM_TYPE_ERROR_MESSAGE=The term type of the dropped term does not match the target term type.
+DefinedTermDropAdapterE4_TERM_TYPE_ERROR_TITLE=Term types do not match
+
+DebugPreferences_0=Show up widget is disposed error messages
+DebugPreferences_1=Disable services api timestamp check
+DefaultFeatureTreePreferenecs_0=Default Feature Tree to be used for textual descriptions
+DefaultFeatureTreePreferenecs_1=Default Feature Tree to be used for structured descriptions
+
+DefinedTermEditorE4_SAVE_MESSAGE=You have made changes that must be saved before this query can be executed. Would you like to save?
+DefinedTermEditorE4_SAVE_TITLE=Save changes
+DefinedTermMenu_FEATURE_TREE=Term Tree
+DefinedTermMenu_MENU=Menu
+DefinedTermMenu_OTHER_S=Other %ss
+DefinedTermMenu_OTHERS=Others
+DefinedTermMenu_TERM_EDITOR=Term Editor
+DetailsViewerE4_TAXON_HAS_NO_NAME=Taxon has no name. Details can not be shown.
+DetailsViewPart_VIEWER_NAME=Details
+
+AuthenticatedUserBar_LOGGED_IN_AS=Logged in as: %s         
+AuthenticatedUserBar_NOT_LOGGED_IN=Not logged in   
+
+PresenceAbsenceMenuPreferences_choose=Choose available distribution states
+PresenceAbsenceTermDetailElement_CHOOSE_COLOR=Choose color
+PresenceAbsenceTermDetailElement_COLOR_NOT_SET=Color could not be set
+PresenceAbsenceTermDetailElement_LABEL_COLOR=Color  
+PreservationMethodMenuPreferences_select=Choose available preservation methods
+
+DeleteConfiguration_media_removeFromGallery=Remove the media from the image gallery but leave it in database
+DeleteConfiguration_media_deleteIfUsedInTaxonDescription=Delete also if media is used in taxon description
+DeleteConfiguration_media_deleteIfUsedSomeWhereElse=Delete the media also if it is used somewhere else        
+DeleteConfiguration_media_delete=Remove the media from the image gallery and delete the media completely, if possible
+DeleteResultMessagingUtils_ABORT=Delete was aborted
+DeleteResultMessagingUtils_SUCCES=Delete was successful
+DeleteTermBaseOperation_CANNOT_DELETE_TERM=Cannot delete defined term
+DeleteTermBaseOperation_CANNOT_DELETE_VOC=Cannot delete vocabulary
+DeleteTermBaseOperation_DELETE_ALL_TERMS_BEFORE=Delete all terms from this vocaulary before deleting the vocabulary.
+DeleteTermBaseOperation_DELETE_FAILED=Delete failed
+DeleteTermBaseOperation_SYSTEM_TERM=This is a CDM system defined term
+DeleteTermBaseOperation_SYSTEM_VOC=This is a CDM system vocabulary
+DeleteTermBaseOperation_TERM_INCLUDES_OTHERS=This term includes other terms. Please delete the included terms before deleting this term.
+DeleteTermBaseOperation_TERM_INLCUDES=Term has included terms
+DeleteTermBaseOperation_VOC_NOT_EMPTY=Vocabulary not empty
+
+DeleteConfiguration_descriptiveDataSet_deleteAllSpecimenDesc=Specimen descriptions
+DeleteConfiguration_descriptiveDataSet_deleteAllLiteratureDesc=Literature descriptions
+DeleteConfiguration_descriptiveDataSet_deleteAllDefaultDesc=Default descriptions
+DeleteConfiguration_descriptiveDataSet_deleteAllAggregatedDesc=Aggregated descriptions
+DeleteConfiguration_descriptiveDataSet_deleteSelection=Fully delete the following related descriptions\nUnchecked descriptions stay in the database attached to their taxa/specimens:
+
+DeleteConfiguration_descriptionFromDescriptiveDataSet_onlyRemove=Remove description only from descriptive dataset
+NewGrantedAuthority_AlreadyInDb=The granted authority already exists.
+
+SetSecundumConfiguration_IncludeAcceptedTaxa=Include accepted taxa
+SetSecundumConfiguration_IncludeSynonyms=Include synonyms
+SetSecundumConfiguration_OverwriteExistingAccepted=Overwrite existing references for accepted taxa
+SetSecundumConfiguration_OverwriteExistingSynonyms=Overwrite existing references for synonyms
+SetSecundumConfiguration_EmptySecundumDetail=Delete existing secundum reference details (recommended)
+SetSecundumConfiguration_IncludeSharedtaxa=Include shared taxa
+SetSecundumConfiguration_NewSecundum_Label=New secundum reference:
+SetSecundumConfiguration_Description=If no reference is chosen existing secundum references are deleted.
+SetSecundumConfiguration_Description_Configurator=Configure how to perform the set secundum reference operation.
+SetSecundumConfiguration_Title=Configuration
+
+DatabasePreferncesPage_Is_redList=Red List 2020
+DatabasePreferncesPage_Determination_only_for_field_unnits=Determinations only for field units
+DatabasePreferncesPage_Show_Collecting_Areas_in_general_section=Collecting areas in general section
+DatabasePreferncesPage_Show_Specimen_List_Editor=Show specimen list editor
+DatabasePreferncesPage_Taxon_Associations=Taxon associations in details view
+
+DatabasePreferencesPage_Biocase_Provider=Biocase provider
+DatabasePreferencesPage_details_view_configuration=Details view
+DatabasePreferencesPage_show_only_simple_details_view=Show only simple details view
+DatabasePreferencesPage_show_taxon=Show taxon
+DatabasePreferencesPage_show_lsid=Show LSID
+DatabasePreferencesPage_show_nomenclatural_code=Show nomenclatural code
+DatabasePreferencesPage_show_namecache=Show name cache
+DatabasePreferencesPage_show_appended_phrase=Show appended phrase
+DatabasePreferencesPage_show_rank=Show rank
+DatabasePreferencesPage_show_atomised_epithets=Show atomised epithets
+DatabasePreferencesPage_show_authorship_cache=Show authorship cache
+DatabasePreferencesPage_show_author_section=Show author section
+DatabasePreferencesPage_Show_nomenclatural_Ref=Show nomenclatural reference
+DatabasePreferencesPage_Show_nomenclaturalStatus=Show nomenclatural status
+DatabasePreferencesPage_Show_Protologue=Show protologue
+DatabasePreferencesPage_Show_Type_designation=Show type designation
+DatabasePreferencesPage_Show_NameRelations=Show name relations
+DatabasePreferencesPage_Define_Default_NomenclaturalCode=Default nomenclatural code
+DatabasePreferencesPage_UseLocalPreferences=Allow to use local preference
+DatabasePreferencesPage_Specimen_Or_Observation=Specimen or observation
+DatabasePreferncesPage_Life_Form=Show Life-Form in details view of field units
+DatabasePreferencesPage_SetPublishFlag=Configure the handling of publish flag for new taxa
+
+ImportFromFileAndChooseVocIdWizardPage_AreaVoc=Area Vocabulary
+ImportFromFileAndChooseVocIdWizardOage_AreaVoc_toolTip=Please choose a vocabulary for the used areas.
+ExcelDistributionUpdateWizard_ConfiguratorWizard_label=Configure Excel distribution update
+AbstractImportWizard_ConfigurationLabel=Configure the Import
+TaxonNodeWizardPage_edit=Edit Taxon Node
+TaxonNodeWizardPage_new=New Taxon
+TaxonNodeWizardPage_no_classification=No classification set.
+TaxonNodeWizardPage_no_taxon_name=No taxon name set.
+TaxonNodeWizardPage_not_all_required_fields=Not all required fields are filled.
+TaxonNodeWizardPage_PLACEMENT_SOURCE=Placement source
+TaxonNodeWizardPage_PARENT=Parent
+TaxonNodeWizardPage_PLACEMENT_SOURCE_DETAIL=Detail
+TaxonNodeWizardPage_NEW_TAXON=New Taxon
+TaxonNodeWizardPage_TAXON=Taxon
+TaxonNodeWizardPage_REUSE_EXISTING_TAXON=Reuse existing taxon
+TaxonNodeWizardPage_REUSE_EXISTING_NAME=Reuse existing name
+TaxonNodeWizardPage_SECUNDUM_REFERENCE=Secundum reference
+TaxonNodeWizardPage_PLACEMENT_NOTES=Placement notes
+TaxonNodeWizardPage_CLASSIFICATION=Classification
+TaxonNodeWizardPage_TAXON_NODE=Taxon node
+TaxonNodeWizardPage_TAXON_INFORMATION=Taxon information
+TaxonNodeWizardPage_TAXON_IS_PUBLISH=Taxon is publish
+TaxonomicEditorGeneralPreferences_background=Run long running operations in background
+TaxonomicEditorGeneralPreferences_connect=Connect to last used datasource when launching
+TaxonRelationshipTypeMenuPreferences_configure=Configure taxon relationship types
+TaxonSearchPreferences_0=Open search results in separate windows
+TCSImportWizard_ConfiguratorWizard_label=Configure the TCS import
+FeatureMenuPreferences_display=Choose available features
+TermTreeEditorComposite_ADD_FEATURE=Add a term to this term tree.
+TermTreeEditorComposite_FEATURE_TREE=Term Tree
+TermTreeEditorComposite_OPEN_TREE=Open Tree
+TermTreeEditorComposite_REMOVE_FEATURE=Remove a term from this term tree.
+FeatureTreeSelectionDialog_CHOOSE_TREE=Choose a term tree
+FeatureTreeSelectionDialog_ENTER_LABEL=Enter label for term tree
+FeatureTreeSelectionDialog_NEW_TREE=New Term tree
+FeatureTreeSelectionDialog_TREE_LABEL=Term tree label
+
+NonViralNameDetails_confirmDeleteOfZoologicalNameParts=The publication and original publication year needs to be removed
+NonViralNameDetails_descriptionDeleteZoologicalNameParts=If you click Yes, the original publication and publication year is removed and the nomenclatural code is changed.
+NonViralNameDetails_confirmDeleteOfBacterialNameParts=The name approbiation needs to be removed
+NonViralNameDetails_desciptionDeleteOfBacterialNameParts=If you click Ok, the name approbiation is removed and the nomenclatural code is changed.
+NonViralNameDetails_confirmDeleteOfFungiNameParts=The fungi information anamorph will be lost
+NonViralNameDetails_descriptionDeleteOfFungiNameParts=If you click Ok, the anamorph flag is removed and the nomenclatural code is changed.
+NonViralNameDetails_confirmDeleteOfCultivarNameParts=The cultivar name needs to be removed
+NonViralNameDetails_descriptionDeleteOfCultivarNameParts=If you click Ok, the cultivar name is removed and the nomenclatural code is changed
+
+NamedAreaTypeMenuPreferences=Choose available named area types
+NameDetailsViewComposite_Show_TypeDesignation=Name type designation section
+NameDetailsViewComposite_Show_Namerelationships=Name relationship section
+NameDetailsViewComposite_Show_Hybrid=Hybrid section
+NameDetailsViewComposite_Show_NameApprobiation=Name approbiation (for bacterial names)
+NameDetailsViewComposite_Show_Taxon=Taxon of the name
+NameDetailsViewComposite_Show_SecDetail=Secundum reference details
+NameDetailsViewComposite_SecEnabled=Secundum enabled (editing in details view possible)
+NameDetailsViewComposite_Show_LSID=Lsid of the name
+NameDetailsViewComposite_Show_NomenclaturalCode=Nomenclatural code
+NameDetailsViewComposite_Show_NameCache=Name cache of the name (only the scientific name without the author and year)
+NameDetailsViewComposite_Show_AppendedPhrase=Appended phrase
+NameDetailsViewComposite_Show_Rank=Rank of the name
+NameDetailsViewComposite_Show_AtomisedEpithets=Atomised epithets
+NameDetailsViewComposite_Show_AuthorCache=Authorship cache
+NameDetailsViewComposite_Show_Author=Whole authorship section
+NameDetailsViewComposite_Show_NomenclaturalReference=Nomenclatural reference section
+NameDetailsViewComposite_Show_NomenclaturalStatus=Nomenclatural status section
+NameDetailsViewComposite_Show_Protologue=Protologue section
+
+NameDetailsViewConfiguration_activateSimpleDetailsView=Show simplified name details view with the following elements:
+NameDetailsViewConfiguration_useLocalSettings=Use local settings for display of name details
+
+NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsidered=Rule Considered
+NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsideredCodeEdition=Code edition of rule considered
+NameDetailsViewComposite_Show_Namerelationships_RuleConsidered=Rule considered
+NameDetailsViewComposite_Show_Namerelationships_RuleConsideredCodeEdition=Code edition of rule considered
+
+SetPublishConfiguration_Publish=Set Publish Flag
+SetPublishConfiguration_Publish_tooltip=With set publish flag, the taxa are published in data portal and print publications
+SetPublishConfiguration_Description_Configurator=Configure where the publish flag should be set
+SetPublishConfiguration_IncludeAcceptedTaxa=Accepted taxa
+SetPublishConfiguration_IncludeSharedtaxa=Shared taxa (for accepted taxa, misapplications and pro parte synonyms)
+SetPublishConfiguration_IncludeSynonyms=Synonyms
+SetPublishConfiguration_IncludeProParteSynonyms=Pro Parte Synonyms
+SetPublishConfiguration_IncludeMisappliedNames=Misapplied Names
+SetPublishConfiguration_IncludeHybrids=Hybrids
+
+ExcelSpecimenUpdateWizard_ConfiguratorWizard_label=Configuration of excel specimen import
+ExcelTaxonUpdateWizard_ConfiguratorWizard_label=Configuration of excel taxon import
+ExperimentalFeaturesPreferences=Show experimental features
+ExtensionTypeMenuPreferences_choose=Choose available extension types
+ExternalServicesPreferences_max_height=Maximum Height
+ExternalServicesPreferences_max_width=Maximum Width
+
+SetPublishConfiguration_Title=Configuration for setting the publish flag
+SetPublishConfiguration_publish=publish
+SetPublishConfiguration_dont_publish=don't publish
+
+SearchDialog_patternLabel=Use * for wildcard
+SearchDialogPreferences_0=Show object id in entity selection dialogs
+SearchDialogPreferences_1=Set search for Identifier as default
+SearchDialogPreferences_2=Search for identifier and titleCache, if identifier search is enabled
+SearchDialogPreferences_3=In selection dialogs for taxa, sort by rank and name
+SearchDialogPreferences_4=Filter common name references
+
+SelectionViewMenu_selectVocabulary=choose vocabulary
+SelectionViewMenu_SET_FLAG='%s' set flag
+SelectionViewMenu_4_YES=Yes
+SelectionViewMenu_NO=No
+
+AbcdImportPreference_create_Individual_Association=Create an Individual Association for each specimen
+AbcdImportPreference_create_Individual_Association_tooltip=For each specimen associated to a taxon an individual association to this taxon is created
+AbcdImportPreference_create_new_classification_new_taxa=Create new classification for new taxa
+AbcdImportPreference_create_new_classification_new_taxa_tooltip=For taxa not existing in the database a new classification will be created
+AbcdImportPreference_description=Configure the default settings for the ABCD Import
+AbcdImportPreference_ignore_author=Ignore authorship for name matching
+AbcdImportPreference_ignore_author_tooltip=Name matching with existing names will be done without the authorship part of the name
+AbcdImportPreference_import_all_children_for_cultures_or_tissues=Import all children of cultures or tissue samples
+AbcdImportPreference_import_all_children_for_cultures_or_tissues_tooltip=For a tissue sample or culture all children will be searched and imported
+AbcdImportPreference_map_unit_nr_catalog_number=Unit ID mapping
+AbcdImportPreference_map_unit_number_catalog_number_tooltip=The Unit ID of every ABCD unit will be imported as accession number, barcode or catalogue number according to the selection
+AbcdImportPreference_map_unit_number_barcode=Map UnitID to barcode
+AbcdImportPreference_map_unit_number_barcode_tooltip=The UnitID of every ABCD unit will be mapped the barcode of the specimen
+AbcdImportPreference_map_unit_number_to_accession_number=Map UnitID to accession number
+AbcdImportPreference_media_as_mediaSpecimen=Import media as media specimen
+AbcdImportPreference_media_as_subUnit=Any media attached to a ABCD unit will be imported as a sub derivative of the specimen created from this unit
+AbcdImportPreference_not_import_existing_specimen=Do not import existing specimens
+AbcdImportPreference_not_import_existing_specimen_tooltip=Specimens that have previously been imported will be ignored in this import
+AbcdImportPreference_remove_country_from_locality=Remove country from locality text
+AbcdImportPreference_remove_country_from_locality_tooltip=If the locality text contains information about the country which is additionally stored in other ABCD elements then it is removed from the locality text
+AbcdImportPreference_reuse_descriptive_group=Reuse existing descriptive group
+AbcdImportPreference_reuse_descriptive_group_tooltip=Reuse one of the existing descriptive groups or create a new one for every import
+AbcdImportPreference_reuse_existing_taxa=Reuse existing taxa when possible
+AbcdImportPreference_reuse_existing_taxa_tooltip=Reuse existing taxa when the name matches the identified name of the specimen
+Preference_allow_override=Allow override
+Preference_override_allowed=Override allowed
+AbcdImportPreference_allow_override_tooltip=It is allowed to change this preference locally.
+AbcdImportPreference_override=Use local preference
+AbcdImportPreference_override_tooltip=Use local preference for ABCD import configurator.
+AbcdImportPreference_provider_for_associated_dna=Biocase Provider for associated DNA
+
+AbcdImportProvider_description=Configure the default list of biocase provider for the specimen search
+AbcdImportProvider_description_not_available=Local preferences are not allowed for biocase provider.\nIf you want to change the preference please contact an administrator.
+AvailableAreaVocabulariesPage_PAGE_DESCRIPTION=Select vocabularies to select the available areas from.
+AvailableAreaVocabulariesPage_PAGE_TITLE=Select Vocabularies for %s
+AvailableDistributionPage_CHECK_MESSAGE=Please check at least one item
+AvailableDistributionPage_PAGE_DESCRIPTION=In order to see and modify distribution status of taxa\nyou have to select the areas which you like to see/modify.
+AvailableDistributionPage_PAGE_TITLE=Select areas for Distribution Editor
+AvailableDistributionStatusPage_PAGE_DESCRIPTION=Choose available status in distribution editor.\nIf no status is selected all status are available.
+AvailableDistributionStatusPage_PAGE_TITLE=Select Distribution Status
+AvailableDistributionStatusWizard_PAGE_TITLE=Available Distribution Status
+AvailableDistributionStatusWizard_WINDOW_TITLE=Distribution Status Selection
+AvailableDistributionStatusWizard_WIZARD_TITLE=Distribution Status Selection
+AvailableDistributionWizard_CHECK_MESSAGE=Please check at least one item
+AvailableDistributionWizard_PAGE_TITLE=Available Distribution
+AvailableDistributionWizard_WINDOW_TITLE=Distribution Selection Wizard
+AvailableVocabularyWizard_PAGE_TITLE=AvailableDistributionPage
+AvailableVocabularyWizard_WINDOW_TITLE=Vocabulary Selection
+AvailableVocabularyWizard_WIZARD_TITLE=Vocabulary Selection
+
+CheckBoxTreeComposite_SELECT_DIRECT_CHILDREN=Toggle selection on direct children
+ChecklistEditorGeneralPreference_0=The CDM settings don't allow to set the preferences for using the distribution editor locally. If you need to make local settings, please ask an administrator.
+ChecklistEditorGeneralPreference_enable=Enable Distribution Editor
+ChecklistEditorGeneralPreference_open_distribution_selection=Select Area Vocabularies
+ChecklistEditorGeneralPreference_open_wizard=List of available area vocabularies
+ChecklistEditorGeneralPreference_show_rank=Show rank column
+ChecklistEditorGeneralPreference_sort_areas=Sort areas by order in vocabulary
+ChecklistEditorGeneralPreference_numberFormatExceptionLabel=The value needs to be a positive integer.
+ChecklistEditorGeneralPreference_numberOfStatus=Number of status shown in drop down
+ChecklistEditorGeneralPreference_tooltip_numberOfStatus=Number of status shown in drop down without scrollbar
+ChecklistEditorGeneralPreference_Configure_status_order=Status order in drop down
+
+GeneralPreference_allowOverride=Allow override
+GeneralPreference_yes=Yes
+GeneralPreference_no=No
+
+ChecklistEditorGeneralPreference_show_id_in_voc=ID in Vocabulary
+ChecklistEditorGeneralPreference_show_symbol1=Symbol
+ChecklistEditorGeneralPreference_show_symbol2=Symbol 2
+ChecklistEditorGeneralPreference_show_title=Lable
+ChecklistEditorGeneralPreference_show_symbol=Show symbol of the status, if existing
+ChecklistEditorGeneralPreference_STATUS_DISPLAY_TEXT=Configure how the status should be displayed
+ChecklistEditorGeneralPreference_own_Description=Create own fact dataset for distributions created by the Distribution Editor
+ChecklistEditorGeneralPreference_own_DescriptionToolTip=Entries created with the Distribution Editor, saved in an own Taxon Description
+GeneralPreference_override=Override
+ChecklistEditorGeneralPreference_Configure_display_of_Areas=Display of areas in the header
+ChecklistEditorGeneralPreference_Configure_display_of_Status=Display of distribution status in the table
+ChecklistEditorGeneralPreference_Configure_display_of_Status_in_Combo=Display of distribution status in drop-down
+
+GfBioTerminologyImportPresenter_NO_CONNECTION_MESSAGE=Could not retrieve data from web service
+GfBioTerminologyImportPresenter_NO_CONNECTION_TITLE=Web service unavailable
+GfBioTerminologyImportPresenter_NO_RESULTS_MESSAGE=No results found for the query.
+GfBioTerminologyImportPresenter_NO_RESULTS_TITLE=No results found
+GfBioTerminologyImportPresenter_COMBO_DEFAULT=All ontologies
+GfBioTerminologyImportPresenter_TEXT_SEARCH_DEFAULT=Use "*" for wildcard searching
+GfBioTerminologyImportPresenter_SEARCH_TOO_SHORT_MESSAGE=Search phrase with <4 letters are not possible for all ontologies. Please select a specific ontology
+GfBioTerminologyImportPresenter_SEARCH_TOO_SHORT_TITLE=Search phrase too short
+
+PublishEnum_publish=Publish
+PublishFlagPreference_description=Default value of the publish flag of a newly created taxon
+PublishFlagPreference_description_not_allowed=The configuration of the default settings for the publish flag in new created taxa is not possible in local preferences. \nIf you want to change the configuration, please contact an administrator.
+PublishFlagPreference_do_not_set=Don't set publish flag
+PublishFlagPreference_inherit=Inherit from parent
+PublishFlagPreference_set=Set publish flag
+
+NomenclaturalCodePreferences_available_codes=Available Codes
+NomenclaturalCodePreferences_choose=Choose which nomenclatural code you would like to use in your local application for scientific names unless otherwise specified.
+NomenclaturalCodePreferences_description=Nomenclatural default code for creation of new taxon names
+NomenclaturalCodePreferences_localChangesNotAllowed=The CDM settings don't allow to set the nomenclatural code locally. If you need to make local settings, please ask an administrator.
+NomenclaturalCodePreferences_useLocalCode=Use local nomenclatural code
+NomenclaturalStatusTypeMenuPreferences_1=Configure nomenclatural status types
+
+NameDetailsViewConfiguration_description=Configure the name details view. The selected parts are displayed, others are not visible.
+NameDetailsViewConfiguration_description_not_available=The configuration of the name details view is not possible in local preferences. \nIf you want to change the configuration, please contact an administrator.
+NameRelationshipTypeMenuPreferences_relationshipTypes=Configure name relationship types
+NameRelationshipWizardPage_description=Choose namerelationship type and related name
+NameTypeDesignationElement_4=Citation will be removed
+NameTypeDesignationElement_5=When changing the type from lectotype to a non lectotype the lectotype reference will be removed.\nDo you want to continue?
+NameTypeDesignationStatusMenuPreferences_configure=Configure name type designation status
+NavigatorOrderEnum_1=Alphabetical Order
+NavigatorOrderEnum_3=Natural Order
+NavigatorOrderEnum_5=Rank and Name Order
+
+DateDetail_parseText_tooltip=This field is for quick data entry. The content is parsed and the atomised fields will be filled, the content of this field will not be saved.
+
+GeneralPreference_open_common_name_area_selection=Select Areas
+
+VokabularyAdminPreferences_SELECT_VOCABULARY_TEXT=Choose available area vocabularies for common names
+SpecimenConfiguration_description=Select whether you want to edit specimen related data and how they should be displayed
+SpecimenOrObservationPreferences_0=The CDM settings don't allow to set the preferences for the display of specimen and observations locally. If you need to make local settings, please ask an administrator.
+SpecimenOrObservationPreferences_1=Set the preferences for the display of specimen and observations
+SpecimenTypeDesignationStatusMenuPreferences_configure=Configure specimen type designation status
+StageMenuPreferences_choose=Choose available stages
+DatabasePreferncesPage_Show_IOMenu=Show Import/Export menu entries
+DatabasePreferncesPage_Show_Specimen=Show specimen related views and menu entries
+DatabasePreferncesPage_Show_MediaView=Show Media View
+DatabasePreferncesPage_Show_ChecklistPerspective=Show Checklist Perspective as default Perspective
+DatabasePreferncesPage_Show_TaxonNodeWizard=Taxon Nodes can be edited in Wizard
+
+DatabasePreferncesPage_Show_Id_In_SelectionDialog=Show ID in selection dialogs
+DatabasePreferncesPage_Search_for_identifier_as_default=Use identifier search as default
+DatabasePreferncesPage_search_for_identifier_and_titleCache=Search also for title cache if identifier search is activated
+DatabasePreferncesPage_Sort_Taxa_By_Name_And_Rank=Sort taxa by rank and name
+DatabasePreferncesPage_CommonNameFilter=Filter common name references
+DatabasePreferncesPage_NamedAreaSearchField=Searchfield for named areas
+
+Distribution_status_selection=Status Selection
+DistributionAdminPreferences_SELECT_STATUS=List of available distribution status
+DistributionAdminPreferences_PER_AREA_STATUS=List of preferences defining available status per area.\nWith the mostright button you can edit the selected area specific status preference.\nFor defining new area specific status preference please use the button below the table
+DistributionAdminPreferences_DEFAULT_AREA_STATUS_NOT_ALLOWED=Actual status selection, the area specific selection is only available for serverside preferences.\nThe editing of the default status is not allowed in local preferences, if you need to edit them please contact an administrator.
+DistributionAdminPreferences_DEFAULT_AREA_STATUS=Actual status selection, the area specific selection is only available for serverside preferences.\nFor editing the default status selection use the button below
+
+MarkerTypeMenuPreferences_display=Choose available markers
+MeasurementUnitMenuPreferences_edit=Edit displayed measurement units
+MediaDetailElement_LOAD_IMAGE=Load image
+MediaDetailElement_Media_URI=Media URI
+MediaDetailElement_NO_FILE_FOUND=No file found
+MediaDetailElement_NO_PREVIEW=No preview available for this file type
+MediaDetailElement_TOGGLE_NOT_POSSIBLE_MESSAGE=Media consists of multiple representations or representatio parts
+MediaDetailElement_TOGGLE_NOT_POSSIBLE_TITLE=Toggling not possible
+MediaDetailElement_SHOW_IMAGE=Show Image
+MediaDetailElement_RELOAD_IMAGE=Reload Image
+
+
+MediaPreferences_advanced=Show Advanced Media View in Details View
+MediaPreferences_preview=Show Preview in Media View (Tree View)
+
+ToggleableText_ToolTip_closed=Cache is created automatically from atomized data, cache protected against manual entries
+ToggleableText_ToolTip_open=Cache can be edited manually, editing the atomized data has no effect on the cache (not recommended)
+TypeDesignationPreferences_typeDesignationsToAllNames=Add type designations to all names in a homotypical group
+TypeDesignationSection_ADD_TYPE=Add a type designation
+TypeDesignationSection_CREATE_DUPLICATE=Create type duplicate
+TypeDesignationSection_DUPLICATE_FAILED=Duplicating type failed
+TypeDesignationSection_NO_TYPES_YET=No type information yet.
+TypeDesignationSection_TYPE_DESIGNATIONS=Type Information
+
+FeatureTreeDropAdapter_CHOOSE_VOC=Choose vocabulary for import
+FeatureTreeDropAdapter_IMPORT_NOT_POSSIBLE=Import not possible
+FeatureTreeDropAdapter_MOVE_FAILED_SAVE_MESSAGE=Moving the feature node failed. Try saving before.
+FeatureTreeDropAdapter_ONLY_MOVE_FEATURES=Can only move features to feature trees
+FeatureTreeDropAdapter_ORDER_VOC_NOT_POSSIBLE=The chosen vocabulary is an ordered vocabulary.\nImporting into ordered vocabularies is currently not supported.
+
+DescriptionPreferences_1=Show vocabulary id for term labels
+SupplementalDataPreferences_0=Show UUID and object ID in supplemental data view
+
+TermOrder_idInVoc=ID in Vocabulary
+TermOrder_Title=Title
+TermOrder_natural=Natural
+
+ChecklistEditorGeneralPreference_Configure_area_order=Order of Areas
+Preference_Use_Default= Use Default
+SupplementalDataSourcePreferences_SHOW_ID=Show ID in Source
+SupplementalDataSourcePreferences_SHOW_NAMESPACE=Show ID Namespace
+
+OrderPreferencePage_NotAllowed=The DB preference does not allow to edit this preference locally
+Delete=Delete
+Preference_update=Update
+FactualData_showModifier=Show modifier
+FactualData_showModifier_FreeText=Show modifier freetext
+FactualData_description=If a preference is not selectable, there is a serverside preference not allowed to override.
+FactualData_showIdInVocabulary=Show id in vocabulary in area text field
+FactualData_showIdInVocabulary_tooltip=Show id in vocabulary in area text field of details view
+DistributionAggregationWizardPage_AGGREGATION_MODE=Aggregation mode
+DistributionAggregationWizardPage_AREA=From sub area to super area
+DistributionAggregationWizardPage_AREA_LEVEL=Area Level
+DistributionAggregationWizardPage_CHILD_PARENT=From child to parent taxon
+DistributionAggregationWizardPage_CLASSIFICATION=Aggregate selected classification
+DistributionAggregationWizardPage_DEFAULT=Default - by Presence Absence Term vocabulary
+DistributionAggregationWizardPage_DESCRIPTION=Configure the aggregation
+DistributionAggregationWizardPage_EXPORT_UNPUBLISHED=Export unpublished taxa
+DistributionAggregationWizardPage_HIGHEST_RANK=Highest rank
+DistributionAggregationWizardPage_LOWEST_RANK=Lowest rank
+DistributionAggregationWizardPage_SELECT_AREA=Select Super Areas
+DistributionAggregationWizardPage_SOURCE_MODE_AREA=Source mode sub area/super area
+DistributionAggregationWizardPage_SOURCE_TYPE=Source type
+DistributionAggregationWizardPage_SOURCEMODE_CHILD_PARENT=Source mode child/parent
+DistributionAggregationWizardPage_SOURCEMODE_WITHIN_TAXON=Source mode within taxon
+DistributionAggregationWizardPage_STATUS_ORDER=Status order
+DistributionAggregationWizardPage_TITLE=Distribution aggregation configuration
+DistributionAggregationWizardPage_TOOLTIP_AGGR_MODE=Selecting none deletes all existing aggregated distributions
+DistributionAggregationWizardPage_TOOLTIP_AREA_LEVEL=Selecting the area level to which the distribution should be aggregated
+DistributionAggregationWizardPage_TOOLTIP_AREA_SELECTION=If area aggregation is selected, the super areas can be selected. If none are selected the top level areas are used.
+DistributionAggregationWizardPage_TOOLTIP_SOURCE_TYPE=Type of sources that should be aggregated
+DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_AREA=Defines the source mode if aggregation from sub area to super area is selected.
+DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_CHILD_PARENT=Defines the source mode if aggregation from child to parent taxon is selected.
+DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_WITHIN_TAXON=Defines the source mode if aggragation within taxon is selected.
+AggregationWizardPage_SUBTREE=Aggregate selected subtree(s) 
+AggregationWizardPage_SINGLE_TAXON=Aggregate selected taxon/taxa only
+AggregationWizardPage_WITHOUT_CHILDREN= (without children)
+SetAggregationConfiguration_Title=Aggregation configuration;
+StructuredDescriptionAggregationWizardPage_SELECT_SUBTREE=Taxa/subtree(s)
+StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_SUBTREE=If not all subtrees included in the descriptive dataset should be aggregated, select the subtrees for the aggregation
+StructuredDescriptionAggregationWizardPage_SELECT_ALL_SUBTREES=Aggregate all taxa in descriptive dataset
+StructuredDescriptionAggregationWizardPage_SELECT_SELECTED_TAXA_ONLY=Aggregate selected taxon/taxa only
+CommonNameLanguages_Title=Common Name Languages
+CommonNameVocabularyPreferencePage_description=Select the vocabularies for common name area selection.
+CommonNameLanguagePreferencePage_description=Choose the languages available for common names.
+EnumCombo_Placement_status=Placement status
+OriginalSourceAdvancedSection_advanced=more
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/l10n/messages_de.properties b/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/l10n/messages_de.properties
new file mode 100755 (executable)
index 0000000..1eec7f8
--- /dev/null
@@ -0,0 +1,606 @@
+CdmDataSourceViewPart_1=Datenquelle wird geladen
+CdmDataSourceViewPart_10=Server
+CdmDataSourceViewPart_11=Name
+CdmDataSourceViewPart_12=Verbunden
+CdmDataSourceViewPart_2=Notizen
+CdmDataSourceViewPart_3=Kompatibel
+CdmDataSourceViewPart_4=CDM Version
+CdmDataSourceViewPart_5=Erstellt
+CdmDataSourceViewPart_7=Datenquelle
+CdmDataSourceViewPart_8=Typ
+CdmDataSourceViewPart_9=Verf\u00FCgbar
+LanguageEditorPreferencePage_ChooseDefaultLanguage=Bitte wählen Sie die Standardsprache für den Taxonomischen Editor aus.
+LanguageEditorPreferencePage_EditorHasToRestart=Der Anwendung muss neu gestartet werden, um die Sprache zu wechseln.\nWollen Sie jetzt neu starten?
+LanguageEditorPreferencePage_PleaseRestart=Bitte neu starten
+LanguageEditorPreferencePage_RestartRequired=Nach dem Wechsel der Standardsprache ist ein Neustart erforderlich.
+LanguageMenuPreferences_configure=Auswahl der zur Verf\u00FCgung stehenden Sprachen
+LanguageMenuPreferences_warning=\ - Warnung: keine Beschreibung - wird nicht in den Menüs angezeigt
+CommonNameLanguageMenuPreferences_configure=Auswahl der für Trivialnamen zur Verf\u00FCgung stehenden Sprachen
+LanguageRepresentationPreferencePage_global=Wählen Sie die Sprache, für die im gesamten Editor die Repräsentationen ausgewählt werden soll (sofern vorhanden).
+LanguageRepresentationPreferencePage_enable=Aktiviere mehrsprachige Editierbarkeit
+ListComponent_ADD_PROVIDER=Provider hinzufügen
+ListComponent_NO_PROVIDER_AVAILABLE=Keine Provider verfügbar
+ListComponent_REMOVE_PROVIDER=Provider entfernen
+OpenCommonNameAreaWizardAdminHandler_COMMON_NAMES=Trivialnamen
+OpenDistributionEditorWizardHandlerAdminE4_DISTRIBUTION=Verbreitung
+OpenDistributionEditorWizardHandlerE4_DISTRIBUTION=Verbreitung
+OrderPreferences_Restore=Stelle den letzten Navigator Status wieder her
+OrderPreferences_Sorting=Sortierung
+OrderPreferencePage_NewNavigatorWindowRequired=Änderungen werden erst nach dem erneuten Öffnen des Navigators sichtbar.
+OrderPreferencePage_PleaseReopenNavigator=Um die Änderungen zu sehen, müssen Sie den Navigator schließen und neu öffnen.
+DatabaseRepairPage_chooseParameter=Bitte wählen Sie, für welche Bäume der SortIndex neu berechnet werden soll.
+DatabaseRepairPage_updateTaxonNodes=Taxonomischer Baum
+DatabaseRepairPage_toolTip_taxonNode=Die Sortier Indizes des Taxonomischen Baums werden aktualisiert.
+DatabaseRepairPage_PolytomousKeyNode=Polytome Schlüssel
+DatabaseRepairPage_toolTip_polytomousKeyNode=Die Sortier Indizes aller Polytomen Schlüssel werden aktualisiert.
+DatabaseRepairPage_featureNodes=Merkmalsbaum
+DatabaseRepairPage_toolTipFeatureNodes=Die Sortier Indizes des Merkmalsbaumes werden aktualisiert. 
+DatabaseRepairPage_updateTaxonName=Wissenschaftliche Namen
+DatabaseRepairPage_toolTip_TaxonName=Die Caches aller wissenschaftlichen Namen werden aktualisiert.
+DatabaseRepairPage_TaxonBase=Taxa und Synonyme
+DatabaseRepairPage_toolTip_taxonBase=Die Caches aller Taxa und Synonyme werden aktualisiert.
+DatabaseRepairPage_Reference=Referenzen
+DatabaseRepairPage_toolTip_reference=Die Caches aller Referenzen werden aktualisiert.
+DatabaseRepairPage_Specimen=Specimen
+DatabaseRepairPage_toolTip_specimen=Die Caches aller Derived Units und Field Units werden aktualisiert.
+DatabaseRepairPage_TeamOrPerson=Personen und Teams
+DatabaseRepairPage_toolTip_teamOrPerson=Die Caches aller Personen und Teams werden aktualisiert.
+DatabaseRepairPage_description=Die Caches aller ausgewählten Datentypen werden aktualisiert
+DatabaseRepairPage_description_sortIndex=Die Sortier Indizes aller ausgewählten Bäume werden aktualisiert.
+UIPreferences_expand=Klappe Abschnitte im Details View auf, wenn Daten vorhanden sind
+
+UpdateHandler_CHECK_UPDATE_JOB=Check Update Job
+UpdateHandler_INSTALL_JOB=Install Update Job
+UpdateHandler_NO_UPDATE_MESSAGE=Es wurden keine Updates für diese Installation gefunden.
+UpdateHandler_NO_UPDATE_TITLE=Keine Updates vorhanden
+UpdateHandler_UPDATE_INSTALLED_TITLE=Updates installed
+UpdateHandler_UPDATE_INSTALLED_TITLE_MESSAGE=Updates wurden installiert. Wollen Sie neu starten?
+UpdateHandler_UPDATES_FOUND_MESSAGE=Wollen Sie die Updates jetzt installieren?
+UpdateHandler_UPDATES_FOUND_TITLE=Updates gefunden
+UriWithLabelElement_URL_NOT_SAVED=URI wird nicht gespeichert\! 
+UriWithLabelElement_COULD_NOT_OPEN_BROWSER=Externer Browser konnte nicht geöffnet werden. URI ist ung\u00FCtlig.
+UriWithLabelElement_INVALID_URL=Ung\u00FCltige URI
+UriWithLabelElement_OPEN_EXTERNAL_BROWSER=Im Browser öffnen 
+
+DoiWithLabelElement_DOI_NOT_SAVED=DOI wird nicht gespeichert\!
+OrcidWithLabelElement_ORCID_NOT_SAVED=ORCID wird nicht gespeichert\!
+
+ChangeConnectionHandler_ALREADY_CONNECTING=Datenmodell wird erstellt
+ChangeConnectionHandler_CURRENTLY_CONNECTING_ALREADY=Es wird schon das Datenmodell für eine Datenquelle erstellt
+ChangeConnectionHandler_DATASOURCE_NOT_AVAILABLE=Gewählte Datenquelle ist nicht verfügbar
+ChangeConnectionHandler_NOT_AVAILABLE_REASONS=Eventuell ist der Server nicht verfügbar oder erreichbar.\n\nStellen Sie bitte auch sicher, dass sie Netzzugang haben, wenn sie sich zu einer Remote-Datenquelle verbinden.
+ChangeConnectionHandler_CREATE_DATAMODEL=Datenmodell erstellen
+ChangeConnectionHandler_REALLY_CREATE_DATAMODEL=Wollen sie wirklich das Datenmodell für %s erstellen?\n\nACHTUNG: Existierende Daten werden gelöscht!\n\nHinweis: Die Erstellung kann einige Zeit dauern.
+
+LoginDialog_CANCEL_MESSAGE=Ein Abbruch wird die Verbindung zur Datenquelle schließen.
+LoginDialog_LOGIN=Login
+LoginDialog_PASSWORD=Passwort
+LoginDialog_REALLY_CANCEL=Wollen Sie wirklich abbrechen?
+LoginDialog_USER_LOGIN=Benutzer Login
+LoginDialog_USER_NAME=Benutzername
+
+CdmViewerContextMenu_OPEN=\u00d6ffnen (%s)
+CdmViewerContextMenu_OPEN_IN=\u00d6ffnen in...
+
+CdmStoreConnector_AUTHENTICATING_USER=Benutzer authentifizieren
+CdmStoreConnector_CHECK_IF_EDITOR_IS_COMPATIBLE=Überprüfe, ob der Datenquelle mit diesem Editor kompatibel ist
+CdmStoreConnector_CHECK_IF_NON_EMPTY=Überprüfe, ob die Datenquelle nicht leer ist
+CdmStoreConnector_CHECK_IF_REACHABLE=Überprüfe, ob die Datenquelle erreichbar ist
+CdmStoreConnector_COMPATIBILITY_CHECK_FAILED=Datenquellenkompatibilitätscheck fehlgeschlagen
+CdmStoreConnector_COULD_NOT_CONNECT_TO_CHOSEN_DATASOURCE=Verbindung zur ausgewählten Datenquelle fehlgeschlagen
+CdmStoreConnector_COULD_NOT_CREATE_DATAMODEL=Could not create data model
+CdmStoreConnector_CREATING_DATAMODEL=Erstelle Datenmodell für %s
+CdmStoreConnector_ERROR_DURING_DATAMODEL_CREATION=Ein Fehler ist aufgetreten bei der Erstellung des Datenmodells für: %s\nBitte leeren Sie die Datenbank und versuchen es erneut.
+CdmStoreConnector_SUCCESS=Erfolgreich
+CdmStoreConnector_DATA_MODEL_CREATION_SUCCESSFUL=Datenmodell wurde efolgreich erstellt
+CdmStoreConnector_REASON=Grund: 
+CdmStoreConnector_SCHEME_NOT_COMPATIBLE=Das Datenbankschema für die gewählte Datenquelle '%s' \n ist nicht kompatibel mit dieser Version des Editors. \n\n%s
+CdmStoreConnector_UPDATE_DATASOUREC_OR_CHOOSE_NEW_DATASOURCE=Bitte aktualisieren Sie die ausgewählte Datenquelle oder wählen Sie eine neue Datenquelle aus.
+CdmStoreConnector_UPDATE_EDITOR_OR_CHOOSE_COMPATIBLE_DATASOURCE=Bitte aktualisieren Sie den Taxonomic Editor (Hilfe->Suche nach Updates) oder wählen sie eine kompatible Datenquelle
+ConfiguratorComposite_CONFIGURE=Einstellungen
+
+RankMenuPreferences_display=Auswahl der zur Verf\u00FCgung stehenden Ränge
+RankMenuPreferences_sort=Sortiere Ränge hierarchisch (default ist alphabetisch)
+RemotingLoginDialog_CONNECTION_FAILED_MESSAGE=Eine Verbindung zum CDM-Server konnte nicht hergestellt werden. Bitte überprüfen Sie die Internetverbindung und versuchen es erneut.\nWenn das Problem weiterhin besteht, fragen Sie den Netzwerkadministrator oder kontaktieren Sie EditSupport@bgbm.org.
+RemotingLoginDialog_CONNECTION_FAILED_TITLE=Verbindung fehlgeschlagen
+RemotingLoginDialog_DEFAULT_LOGIN=Standard: %s (Login), %s (Kennwort)
+RemotingLoginDialog_CHOOSE_COMPATIBLE_CDM_SERVER=Bitte wählen Sie einen kompatiblen CDM-Server oder aktualisieren sie den CDM-Server
+RemotingLoginDialog_SCHEMA_MISSING=Das Datenbankschema existiert nicht. Bitte erzeugen Sie das Datenbankschema.\nANMERKUNG: Alle existierenden Daten in dieser Datenbank werden gelöscht, sofern vorhanden!
+RemotingLoginDialog_MSG_UPDATE_SCHEMA_VERSION=Das Datenbankschema ist veraltet. Bitte aktualisieren sie das Schema.
+RemotingLoginDialog_NO_SCHEMA=Kein Schema
+RemotingLoginDialog_LABEL_ADVANCED=Erweitert
+RemotingLoginDialog_LABEL_CDM_INSTANCE=Datenbank : 
+RemotingLoginDialog_LABEL_CDM_SERVER=CDM-Server : 
+RemotingLoginDialog_LABEL_CONNECT=Verbinden
+RemotingLoginDialog_LABEL_CREATE_SCHEMA=Schema generieren
+RemotingLoginDialog_LABEL_UPDATE_SCHEMA_VERSION=Schema aktualisieren
+RemotingLoginDialog_LABEL_EDITOR_CDM_VERSION=Editor CDM Version :
+RemotingLoginDialog_LABEL_EDITOR_CDMLIB_VERSION=Editor Cdmlib Version :
+RemotingLoginDialog_LABEL_LOGIN=Login
+RemotingLoginDialog_LABEL_LOGIN_COLON=Login : 
+RemotingLoginDialog_LABEL_PASSWORD=Kennwort : 
+RemotingLoginDialog_LABEL_PORT=Port : 
+RemotingLoginDialog_LABEL_REFRESH=Aktualisieren
+RemotingLoginDialog_LABEL_REMEMBER_ME=Login Daten merken
+RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES=Abrufen der Serverinstanzen
+RemotingLoginDialog_LABEL_SERVER_CDM_VERSION=Server CDM Version :
+RemotingLoginDialog_LABEL_SERVER_CDMLIB_VERSION=Server Cdmlib Version :
+RemotingLoginDialog_LABEL_STOP_MANAGED_SERVER=Beende internen CDM-Server
+RemotingLoginDialog_LOGIN_CANNOT_BE_EMPTY=Nutzer-Login darf nicht leer sein
+RemotingLoginDialog_MESSAGE_PORT_SHOULD_BE_INTEGER=Port muss eine Zahl sein
+RemotingLoginDialog_PASSWORD_CANNOT_BE_EMPTY=Kennwort darf nicht leer sein
+RemotingLoginDialog_SERVER_LAUNCH_ERROR=CDM-Server Startfehler
+RemotingLoginDialog_STATUS_AVAILABLE=Verfügbar
+RemotingLoginDialog_STATUS_CHECKING=Überprüfe ...
+RemotingLoginDialog_STATUS_ERROR=Error
+RemotingLoginDialog_STATUS_NO_INSTANCES_FOUND=Keine Instanzen gefunden
+RemotingLoginDialog_STATUS_NOT_AVAILABLE=Nicht verfügbar
+RemotingLoginDialog_STATUS_NOT_COMPATIBLE=Nicht kompatibel
+RemotingLoginDialog_STATUS_NOT_STARTED=Nicht gestartet
+RemotingLoginDialog_STATUS_REMOTING_NOT_ACTIVATED=Remoting nicht aktiviert
+RemotingLoginDialog_STATUS_RETRIEVING=Abrufen ...
+RemotingLoginDialog_STATUS_STARTED=Gestartet
+RemotingLoginDialog_UPDATE_EDITOR=Bitte aktualisieren Sie den Taxonomic Editor (Hifle->Suche nach Updates) oder wählen Sie einen kompatiblen CDM-Server
+RemotingLoginDialog_COULD_NOT_STOP_SERVER=Konte den internen CDM-Server auf Port %s nicht beenden. Bitte beenden sie ihn manuell.
+RemotingLoginDialog_ERROR_GENERATING_CONFIG_FILE=Fehler beim Generieren der Config-Datei für den Server
+RemotingLoginDialog_ERROR_STARTING_SERVER=Fehler beim Starten des internen CDM-Servers
+RemotingLoginDialog_ERROR_STOPPING_SERVER=Fehler beim Beenden des internen CDM-Servers
+RemotingLoginDialog_GENERATING_CONFIG_FILE=Generiere Config-Datei für Datenquellen für %s
+RemotingLoginDialog_JOB_SERVER_LAUNCH=Starte internen CDM-Server
+RemotingLoginDialog_STARTING_MGD_SERVER=Starte internen CDM-Server. Dies kann eine Weile dauern.
+RemotingLoginDialog_TASK_LAUNCHING_SERVER=Starte internen CDM-Server
+RemotingLoginDialog_MISSING_PERMISSION="Die Anmeldedaten sind korrekt, aber Sie haben nicht die Rechte auf der ausgewählten Instanz mit dem Editor zu arbeiten"
+
+EditPasswordElement_PLEASE_CREATE_OR_SAVE_USER=Bitte erstellen oder speichern sie den Nutzer '%s', bevor Sie das Kennwort ändern
+EditPasswordElement_USERNAME_DOES_NOT_EXIST=Nutzername existiert nicht
+EmptySection_NO_VIEW_IMPLEMENTED=Unbekanntes Objekt. Details können nicht angezeigt werden.
+PasswordWizard_COULD_NOT_CHANGE_PWD=Konnte das Kennwort nicht ändern
+PasswordWizard_OLD_PWD_INCORRECT=Das alte Kennwort ist inkorrekt
+PasswordWizard_PROBLEM_WITH_CHANGING_PWD=Fehler beim Ändern des Kennworts
+PasswordWizard_PWD_COULD_NOT_BE_CHANGED=Das Kennwort konnte nicht geändert werden 
+PasswordWizardPage_CHANGE_PASSWORD=Kennwort ändern
+PasswordWizardPage_CHANGE_PASSWORD_AND_CONFIRM=Kennwort ändern und mit altem Kennwort bestätigen
+PasswordWizardPage_NEW_PASSWORD=Neues Kennwort
+PasswordWizardPage_OLD_PASSWORD=Altes Kennwort
+PasswordWizardPage_PASSWORD_MIN_CHARACTER=Kennwort muss mindesten %s Zeichen enthalten
+PasswordWizardPage_PASSWORDS_DO_NOT_MATCH=Die Kennwörter stimmen nicht überein
+PasswordWizardPage_REPEAT_PASSWORD=Kennwort wiederholen
+
+SearchManager_LARGE_RESULT_EXPECTED=Große Anzahl an Suchergebnissen
+SearchManager_LONG_SEARCH_WARNING=Die aktuelle Suche wird %s Objekte laden. Dies kann einige Zeit dauern und den Editor währenddessen unbedienbar machen. Bitte erstellen sie eine detailliertere Suche.\nTrotzdem suchen?
+
+SupplementalDataPreferences_0=Zeige UUID und Objekt ID unter Zusatzdaten
+SupplementalDataViewPart_VIEWER_NAME=Zusatzdaten
+
+DefinedTermDropAdapterE4_MOVE_DESCRIPTIONS=Terme verschieben
+DefinedTermDropAdapterE4_MOVE_FAILED=Verschieben fehlgeschlagen
+DefinedTermDropAdapterE4_MOVE_FAILED_MESSAGE=Terme können nicht auf sich selbst oder ihre Kindterme verschoben werden
+DefinedTermDropAdapterE4_MOVE_FAILED_SAVE_MESSAGE=Das Verschieben des Terms ist fehlgeschlagen. Versuchen Sie vorher zu speichern.
+DefinedTermDropAdapterE4_TERM_TYPE_ERROR_MESSAGE=Der Termtyp des verschobenen Terms stimmt nicht mit dem des Ziels überein.
+DefinedTermDropAdapterE4_TERM_TYPE_ERROR_TITLE=Termtypen stimmen nicht überein
+
+DebugPreferences_0=\"Widget is disposed\" Fehler Meldungen anzeigen
+DebugPreferences_1=Deaktiviere die Überprüfung des API Timestamp
+DefaultFeatureTreePreferenecs_0=Default Merkmalsbaum für textuelle Faktendaten
+DefaultFeatureTreePreferenecs_1=Default Merkmalsbaum für strukturelle Faktendaten
+
+DefinedTermEditorE4_SAVE_MESSAGE=Sie haben Änderungen, die gespeichert werden müssen, bevor die Operation ausgeführt werden kann. Möchten Sie speichern?
+DefinedTermEditorE4_SAVE_TITLE=Änderungen speichern
+DefinedTermMenu_FEATURE_TREE=Termbaum
+DefinedTermMenu_MENU=Menü
+DefinedTermMenu_OTHER_S=Weitere %ss
+DefinedTermMenu_OTHERS=Weitere
+DefinedTermMenu_TERM_EDITOR=Term-Editor
+DetailsViewerE4_TAXON_HAS_NO_NAME=Taxon hat keinen Namen. Details können nicht angezeigt werden.
+DetailsViewPart_VIEWER_NAME=Details
+
+AuthenticatedUserBar_LOGGED_IN_AS=Angemeldet als: %s         
+AuthenticatedUserBar_NOT_LOGGED_IN=Nicht angemeldet     
+         
+PresenceAbsenceMenuPreferences_choose=Auswahl der zur Verf\u00FCgung stehenden Verbreitungsstatus
+PresenceAbsenceTermDetailElement_CHOOSE_COLOR=Farbe wählen
+PresenceAbsenceTermDetailElement_COLOR_NOT_SET=Farbe konnte nicht gespeichert werden
+PresenceAbsenceTermDetailElement_LABEL_COLOR=Farbe
+PreservationMethodMenuPreferences_select=Auswahl der zur Verf\u00FCgung stehenden Präservierungsmethoden
+
+DeleteConfiguration_media_removeFromGallery=Entferne Mediendaten aus der Gallerie, aber behalte Mediendatensatz in der Datenbank
+DeleteConfiguration_media_deleteIfUsedInTaxonDescription=Lösche die Mediendaten, auch wenn sie Teil einer Taxonbeschreibung ist
+DeleteConfiguration_media_deleteIfUsedSomeWhereElse=Lösche die Mediendaten vollständig, auch wenn sie an anderer Stelle verwendet werden
+DeleteConfiguration_media_delete=Entferne die Mediendaten aus der Gallerie und lösche sie aus der Datenbank, wenn sie nicht anderweitig verwendet werden.
+DeleteResultMessagingUtils_ABORT=Löschen wurde abgebrochen
+DeleteResultMessagingUtils_SUCCES=Löschen war erfolgreich
+DeleteTermBaseOperation_CANNOT_DELETE_TERM=Term konnte nicht gelöscht werden
+DeleteTermBaseOperation_CANNOT_DELETE_VOC=Vokabular konnte nicht gelöscht werden
+DeleteTermBaseOperation_DELETE_ALL_TERMS_BEFORE=Es müssen alle Terme dieses Vokabulars gelöscht werden, bevor das Vokabular gelöscht werden kann.
+DeleteTermBaseOperation_DELETE_FAILED=Löschen fehlgeschlagen
+DeleteTermBaseOperation_SYSTEM_TERM=Das ist ein CDM system-interner Term
+DeleteTermBaseOperation_SYSTEM_VOC=Das ist ein CDM system-internes Vokabular
+DeleteTermBaseOperation_TERM_INCLUDES_OTHERS=Der Term enthält weitere Terme. Es müssen zuerst alle enthaltenen Terme gelöscht werden.
+DeleteTermBaseOperation_TERM_INLCUDES=Der Term enthält weitere Terme
+DeleteTermBaseOperation_VOC_NOT_EMPTY=Vokabular ist nicht leer
+
+DeleteConfiguration_descriptiveDataSet_deleteAllSpecimenDesc=Specimen Beschreibungen
+DeleteConfiguration_descriptiveDataSet_deleteAllLiteratureDesc=Literatur Beschreibungen
+DeleteConfiguration_descriptiveDataSet_deleteAllDefaultDesc=Default Beschreibungen
+DeleteConfiguration_descriptiveDataSet_deleteAllAggregatedDesc=Aggregierte Beschreibungen 
+DeleteConfiguration_descriptiveDataSet_deleteSelection=Beschreibungstypen, die komplett gelöscht werden sollen.\nNicht ausgewählte Beschreibungen verbleiben in der Datenbank und verknüpft mit ihrem Beleg/Taxon:
+
+DeleteConfiguration_descriptionFromDescriptiveDataSet_onlyRemove=Entferne Beschreibungen nur aus dem Descriptive Dataset
+NewGrantedAuthority_AlreadyInDb=Die GrantedAuthority ist bereits in der DB enthalten.
+
+SetSecundumConfiguration_IncludeAcceptedTaxa=Anwenden auf akzeptierte Taxa
+SetSecundumConfiguration_IncludeSynonyms=Anwenden auf Synonyme
+SetSecundumConfiguration_OverwriteExistingAccepted=Existierende Secundum Referenzen bei akzeptierten Taxa überschreiben
+SetSecundumConfiguration_OverwriteExistingSynonyms=Existierende Secundum Referenzen bei Synonymen überschreiben
+SetSecundumConfiguration_EmptySecundumDetail=Existierende Secundum Referenz Details löschen (empfohlen)
+SetSecundumConfiguration_IncludeSharedtaxa=Auch mehrfach verwendete Taxa mit einbeziehen
+SetSecundumConfiguration_NewSecundum_Label=Neue Secundum Referenz:
+SetSecundumConfiguration_Description=Wenn keine Referenz ausgewählt wird, werden die bestehenden Secundum Referenzen gelöscht.
+SetSecundumConfiguration_Description_Configurator=Konfigurieren Sie, wie das Ersetzen der Secundum Referenz durchgeführt werden soll.
+SetSecundumConfiguration_Title=Konfiguration
+
+DatabasePreferncesPage_Is_redList=Rote Liste 2020
+DatabasePreferncesPage_Determination_only_for_field_unnits=Bestimmungen nur für Field Units anzeigen
+DatabasePreferncesPage_Show_Collecting_Areas_in_general_section=Sammelgebiete im allgemeinen Teil anzeigen
+DatabasePreferncesPage_Show_Specimen_List_Editor=Specimen List Editor anzeigen
+DatabasePreferncesPage_Taxon_Associations=Taxon Assoziationen im Details View anzeigen
+
+DatabasePreferencesPage_Biocase_Provider=Biocase Provider
+DatabasePreferencesPage_details_view_configuration=Details View
+DatabasePreferencesPage_show_only_simple_details_view=Nur einen einfachen (konfigurierbaren) Details View anzeigen
+DatabasePreferencesPage_show_taxon=Taxon
+DatabasePreferencesPage_show_lsid=LSID
+DatabasePreferencesPage_show_nomenclatural_code=Nomenklatorischen Code
+DatabasePreferencesPage_show_namecache=Name cache
+DatabasePreferencesPage_show_appended_phrase=Appended phrase
+DatabasePreferencesPage_show_rank=Rang
+DatabasePreferencesPage_show_atomised_epithets=Atomisierte Epithete
+DatabasePreferencesPage_show_authorship_cache=Autoren Cache
+DatabasePreferencesPage_show_author_section=Gesamter Autoren Bereich
+DatabasePreferencesPage_Show_nomenclatural_Ref=Nomenklatorische Referenz
+DatabasePreferencesPage_Show_nomenclaturalStatus=Nomenklatorischen Status
+DatabasePreferencesPage_Show_Protologue=Protologue
+DatabasePreferencesPage_Show_Type_designation=Type Designations
+DatabasePreferencesPage_Show_NameRelations=Namensrelationen
+DatabasePreferencesPage_Define_Default_NomenclaturalCode=Nomenklatorischer Standard Code
+DatabasePreferencesPage_UseLocalPreferences=Erlaube das lokale Überschreiben
+DatabasePreferencesPage_Specimen_Or_Observation=Belege und Observationen
+DatabasePreferncesPage_Life_Form=Life-Form im Details-View von Field Units anzeigen
+DatabasePreferencesPage_SetPublishFlag=Konfiguriere das Handling des Publish Flags bei neuen Taxa
+
+ImportFromFileAndChooseVocIdWizardPage_AreaVoc=Gebiets Vokabular
+ImportFromFileAndChooseVocIdWizardOage_AreaVoc_toolTip=Bitte wählen Sie ein Vokabular für die genutzten Areas aus.
+ExcelDistributionUpdateWizard_ConfiguratorWizard_label=Konfiguration des Excel Distribution Updates
+AbstractImportWizard_ConfigurationLabel=Konfiguration des Imports
+TaxonNodeWizardPage_edit=Bearbeite Taxon Knoten
+TaxonNodeWizardPage_new=Neues Taxon
+TaxonNodeWizardPage_no_classification=Keine Klassifikation ausgewählt
+TaxonNodeWizardPage_no_taxon_name=Kein Taxonnamen ausgewählt
+TaxonNodeWizardPage_not_all_required_fields=Nicht alle notwendigen Felder sind ausgefüllt
+TaxonNodeWizardPage_PLACEMENT_SOURCE=Platzierungsquelle
+TaxonNodeWizardPage_PARENT=Eltern
+TaxonNodeWizardPage_PLACEMENT_SOURCE_DETAIL=Detail
+TaxonNodeWizardPage_NEW_TAXON=Neues Taxon
+TaxonNodeWizardPage_TAXON=Taxon
+TaxonNodeWizardPage_REUSE_EXISTING_TAXON=Taxon wiederverwenden
+TaxonNodeWizardPage_REUSE_EXISTING_NAME=Namen wiederverwenden
+TaxonNodeWizardPage_SECUNDUM_REFERENCE=Secundum Referenz
+TaxonNodeWizardPage_PLACEMENT_NOTES=Plazierungs-Anmerkungen
+TaxonNodeWizardPage_CLASSIFICATION=Klassifikation
+TaxonNodeWizardPage_TAXON_NODE=Taxonknoten
+TaxonNodeWizardPage_TAXON_INFORMATION=Taxon Information
+TaxonNodeWizardPage_TAXON_IS_PUBLISH=Taxon ist öffentlich
+
+TaxonomicEditorGeneralPreferences_background=Long Running Operations laufen im Hintergrund
+TaxonomicEditorGeneralPreferences_connect=Beim Starten mit der zuletzt verwendeten Datenquelle verbinden
+TaxonRelationshipTypeMenuPreferences_configure=Auswahl der zur Verf\u00FCgung stehenden Taxonrelationstypen
+TaxonSearchPreferences_0=Öffne Suchergebnisse in eigenem Fenster
+TCSImportWizard_ConfiguratorWizard_label=Konfiguration des TCS Imports
+FeatureMenuPreferences_display=Auswahl der zur Verf\u00FCgung stehenden Features
+TermTreeEditorComposite_ADD_FEATURE=Term zum Termbaum hinzufügen
+TermTreeEditorComposite_FEATURE_TREE=Termbaum
+TermTreeEditorComposite_OPEN_TREE=Termbaum öffnen
+TermTreeEditorComposite_REMOVE_FEATURE=Term vom Termbaum entfernen
+FeatureTreeSelectionDialog_CHOOSE_TREE=Termbaum auswählen
+FeatureTreeSelectionDialog_ENTER_LABEL=Namen für Termbaum eingeben
+FeatureTreeSelectionDialog_NEW_TREE=Neuer Termbaum
+FeatureTreeSelectionDialog_TREE_LABEL=Termbaumname
+
+NonViralNameDetails_confirmDeleteOfZoologicalNameParts=Breed, Publication Date und Original Publication Date müssen entfernt werden.
+NonViralNameDetails_descriptionDeleteZoologicalNameParts=Bestätigen Sie, wenn Sie Breed, Publication Date und Original Publication Date löschen und den Nomenklatorischen Code des Namens ändern wollen.
+NonViralNameDetails_confirmDeleteOfBacterialNameParts=Name Approbiation muss entfernt werden.
+NonViralNameDetails_desciptionDeleteOfBacterialNameParts=Bestätigen Sie, wenn Sie Name Approbiation löschen wollen und den Nomenklatorischen Code ändern wollen.
+NonViralNameDetails_confirmDeleteOfFungiNameParts=Die Information, ob der Pilz anamorph ist, muss gelöscht werden
+NonViralNameDetails_descriptionDeleteOfFungiNameParts=Bestätigen Sie, wenn Sie die Information, ob der Pilz anamorph ist, löschen und den Nomenklatorischen Code ändern wollen.
+NonViralNameDetails_confirmDeleteOfCultivarNameParts=Der Cultivar Name muss gelöscht werden
+NonViralNameDetails_descriptionDeleteOfCultivarNameParts=Bestätigen Sie, wenn Sie den Cultivar Name löschen und den Nomenklatorischen Code ändern wollen.
+
+NamedAreaTypeMenuPreferences=Auswahl der zur Verf\u00FCgung stehenden Named Area Typen
+NameDetailsViewComposite_Show_TypeDesignation=Type Designations
+NameDetailsViewComposite_Show_Namerelationships=Namensrelationen
+NameDetailsViewComposite_Show_Hybrid=Hybride
+NameDetailsViewComposite_Show_NameApprobiation=Namens Approbation (für Bakterien)
+NameDetailsViewComposite_Show_Taxon=Taxon
+NameDetailsViewComposite_Show_SecDetail=Secundum Referenz Details
+NameDetailsViewComposite_SecEnabled=Secundum aktiviert (kann im Details View bearbeitet werden)
+NameDetailsViewComposite_Show_LSID=Lsid
+NameDetailsViewComposite_Show_NomenclaturalCode=Nomenclatorischer Code
+NameDetailsViewComposite_Show_NameCache=Cache des Namens (nur der wissenschaftliche Name ohne Autor und Jahr)
+NameDetailsViewComposite_Show_AppendedPhrase=Appended phrase
+NameDetailsViewComposite_Show_Rank=Rang
+NameDetailsViewComposite_Show_AtomisedEpithets=Atomisierte Epithete
+NameDetailsViewComposite_Show_AuthorCache=Autoren Cache
+NameDetailsViewComposite_Show_Author=Alle Autoreninformationen
+NameDetailsViewComposite_Show_NomenclaturalReference=Nomenklatorische Referenz
+NameDetailsViewComposite_Show_NomenclaturalStatus=Nomenklatorischer Status
+NameDetailsViewComposite_Show_Protologue=Protologue
+
+NameDetailsViewConfiguration_activateSimpleDetailsView=Vereinfachten Details View mit folgenden Elementen anzeigen:
+NameDetailsViewConfiguration_useLocalSettings=Verwende die lokalen Eigenschaften für die Darstellung der Details
+
+NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsidered=Angewandte/verwendete Regel
+NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsideredCodeEdition=Code Edition der Rule Considered
+NameDetailsViewComposite_Show_Namerelationships_RuleConsidered=Angewandte/verwendete Regel
+NameDetailsViewComposite_Show_Namerelationships_RuleConsideredCodeEdition=Code Edition der Rule Considered
+
+SetPublishConfiguration_Publish=Setze das Publish Flag
+SetPublishConfiguration_Publish_tooltip=Wenn das Publish Flag gesetzt ist, werden die Taxa veröffentlicht, sowohl im Datenportal als auch bei Print Publikationen
+SetPublishConfiguration_Description_Configurator=Konfigurieren Sie, wie das Setzen des Publish Flags durchgeführt werden soll
+SetPublishConfiguration_IncludeAcceptedTaxa=Akzeptierte Taxa
+SetPublishConfiguration_IncludeSharedtaxa=Mehrfach verwendete Taxa (für akzeptierte Taxa, Fehlanwendungen und Pro Parte Synonyme)
+SetPublishConfiguration_IncludeSynonyms=Synonyme
+SetPublishConfiguration_IncludeProParteSynonyms=Pro Parte Synonyme
+SetPublishConfiguration_IncludeMisappliedNames=Fehlanwendungen
+SetPublishConfiguration_IncludeHybrids=Hybride
+
+ExcelSpecimenUpdateWizard_ConfiguratorWizard_label=Konfiguration des Excel Specimen Imports
+ExcelTaxonUpdateWizard_ConfiguratorWizard_label=Konfiguration des Excel Taxon Imports
+ExperimentalFeaturesPreferences=Experimentelle Features anzeigen
+ExtensionTypeMenuPreferences_choose=Auswahl der zur Verf\u00FCgung stehenden Extension Types
+ExternalServicesPreferences_max_height=Maximale Höhe
+ExternalServicesPreferences_max_width=Maximale Breite
+
+SetPublishConfiguration_Title=Konfiguration zum Setzen des Publish Flags
+SetPublishConfiguration_publish=veröffentlichen
+SetPublishConfiguration_dont_publish=nicht veröffentlichen
+
+SearchDialog_patternLabel=Nutze * als Platzhalter für eine beliebige Zeichenkette
+SearchDialogPreferences_0=Objekt ID in Suchdialogen anzeigen
+SearchDialogPreferences_1=Indentifier standardmäßig in Suche verwenden
+SearchDialogPreferences_2=Suche nach Identifiern und Title Cache, wenn Identifier Suche aktiviert ist
+SearchDialogPreferences_3=In Taxon Suchdialogen nach Rang und Namen sortieren
+SearchDialogPreferences_4=Filter Referenzen für Trivialnamen
+
+SelectionViewMenu_selectVocabulary=Vokabular wählen
+SelectionViewMenu_SET_FLAG='%s' flag setzen
+SelectionViewMenu_4_YES=Ja
+SelectionViewMenu_NO=Nein
+
+AbcdImportPreference_create_Individual_Association=Erzeuge eine Individual Association für jedes Specimen
+AbcdImportPreference_create_Individual_Association_tooltip=Für jedes Specimen, dass mit einem Taxon verknüpft ist, wird eine Individual Association erzeugt.
+AbcdImportPreference_create_new_classification_new_taxa=Erzeuge eine neue Klassifikation für neue Taxa
+AbcdImportPreference_create_new_classification_new_taxa_tooltip=Für Taxa, die noch nicht in der Datenbank enthalten sind, wird eine neue Klassifikation erstellt.
+AbcdImportPreference_description=Konfiguration der Default Einstellungen für den ABCD Import
+AbcdImportPreference_ignore_author=Namensvergleich ohne Autor
+AbcdImportPreference_ignore_author_tooltip=Der Namensvergleich mit den bereits existierenden wissenschaftlichen Namen wird ohne den Autor durchgeführt.
+AbcdImportPreference_import_all_children_for_cultures_or_tissues=Kinder von Kulturen oder Gewebeproben importieren
+AbcdImportPreference_import_all_children_for_cultures_or_tissues_tooltip=Für Kulturen oder Gewebeproben werden auch die Kinder gesucht und importiert
+AbcdImportPreference_map_unit_nr_catalog_number=Unit ID Mapping 
+AbcdImportPreference_map_unit_number_catalog_number_tooltip=Die Unit IDs aller ABCD Units werden entsprechend der Auswahl als Accession Nummer, Barcode oder Katalog Nummer importiert.
+AbcdImportPreference_map_unit_number_barcode=UnitID als Barcode
+AbcdImportPreference_map_unit_number_barcode_tooltip=Die Unit IDs aller ABCD Units werden als Barcode importiert
+AbcdImportPreference_map_unit_number_to_accession_number=Unit ID als Accession Nummer
+AbcdImportPreference_media_as_mediaSpecimen=Importiere Media als Media Specimen
+AbcdImportPreference_media_as_subUnit=Alle Medien, die an einer ABCD Unit hängen, werden als ein Subderivat (Mediaspecimen) des neu erzeugten Specimen gespeichert
+AbcdImportPreference_not_import_existing_specimen=Ignoriere bereits existierende Specimen
+AbcdImportPreference_not_import_existing_specimen_tooltip=Bereits existierende Specimen werden beim Import ignoriert.
+AbcdImportPreference_remove_country_from_locality=Entferne das Land aus dem Locality Text
+AbcdImportPreference_remove_country_from_locality_tooltip=Wenn der Locality Text Informationen über das Land enthält und diese Informationen in anderen ABCD Elementen ebenfalls vorhanden sind, dann wird diese Information aus dem Locality Text entfernt.
+AbcdImportPreference_reuse_descriptive_group=Existierende Fakten verwenden
+AbcdImportPreference_reuse_descriptive_group_tooltip=Bei Taxa, die bereits Faktendaten besitzen, werden die Individual Associations in die bereits existierenden Faktengruppen integriert, sonst wird für jeden Import eine neue Faktengruppe erzeugt.
+AbcdImportPreference_reuse_existing_taxa=Existierende Taxa wieder verwenden
+AbcdImportPreference_reuse_existing_taxa_tooltip=Wenn Taxa schon existieren, dann werden die Individual Associations an diese angehängt.
+Preference_allow_override=Erlaube Überschreiben
+Preference_override_allowed=Überschreiben erlaubt
+AbcdImportPreference_allow_override_tooltip=Es dürfen lokale Änderungen an den Präferenzen vorgenommen werden.
+AbcdImportPreference_override=Nutze lokale Präferenzen
+AbcdImportPreference_override_tooltip=Die lokale Präferenzen für den ABCD Import Konfigurator sollen verwendet werden.
+AbcdImportPreference_provider_for_associated_dna=Biocase Provider für assoziierte DNA
+
+AbcdImportProvider_description=Konfiguration einer Liste von Biocase Providern für die Specimen Suche
+AbcdImportProvider_description_not_available=Es dürfen keine lokalen Änderungen an den Biocase Providern vorgenommen werden.\nWenn Sie die Präferenz dennoch ändern wollen, wenden Sie sich bitte an einen Administrator
+AvailableAreaVocabulariesPage_PAGE_DESCRIPTION=Auswahl der Vokabulare, aus denen die Gebiete für %s ausgewählt werden sollen.
+AvailableAreaVocabulariesPage_PAGE_TITLE=Vokabular für %s auswählen
+AvailableDistributionPage_CHECK_MESSAGE=Bitte wählen Sie mindestens einen Eintrag aus
+AvailableDistributionPage_PAGE_DESCRIPTION=Um den Verbreitungsstatus von Taxa anzuzeigen und zu bearbeiten,\n muss das Gebiet ausgewählt werden, dass angezeigt/bearbeitet werden soll.
+AvailableDistributionPage_PAGE_TITLE=Auswahl der zur Verf\u00FCgung stehenden Gebiete für den Verbreitungs-Editor
+AvailableDistributionStatusPage_PAGE_DESCRIPTION=Auswahl der im Verbreitungseditor zu Verf\u00FCgung stehenden Status.\nWenn kein Status ausgewählt ist, werden alle Status angezeigt.
+AvailableDistributionStatusPage_PAGE_TITLE=Verbreitungsstatus auswählen
+AvailableDistributionStatusWizard_PAGE_TITLE=Verfügbare Verbreitungsstatus
+AvailableDistributionStatusWizard_WINDOW_TITLE=Verbreitungsstatus auswählen
+AvailableDistributionStatusWizard_WIZARD_TITLE=Verbreitungsstatus auswählen
+AvailableDistributionWizard_CHECK_MESSAGE=Bitte wählen Sie mindestens einen Eintrag aus
+AvailableDistributionWizard_PAGE_TITLE=Verfügbare Verbreitungsgebiete
+AvailableDistributionWizard_WINDOW_TITLE=Verbreitung auswählen
+AvailableVocabularyWizard_PAGE_TITLE=Verbreitung auswählen
+AvailableVocabularyWizard_WINDOW_TITLE=Vokabular auswählen
+AvailableVocabularyWizard_WIZARD_TITLE=Vokabular auswählen
+
+CheckBoxTreeComposite_SELECT_DIRECT_CHILDREN=Alle direkten Kinder (de-)selektieren
+ChecklistEditorGeneralPreference_0=Die Datenbank Präferenzen erlauben kein lokales Bearbeiten der Verbreitungseditor Präferenzen. \nWenn Sie dennoch Änderungen an den Präferenzen vornehmen müssen, wenden Sie sich bitte an einen Administrator.
+ChecklistEditorGeneralPreference_enable=Verbreitungs-Editor aktivieren
+ChecklistEditorGeneralPreference_open_distribution_selection=Gebiets Vokabulare Auswählen
+ChecklistEditorGeneralPreference_open_wizard=Liste der verwendbaren Areal-Vokabulare, zum Editieren verwenden Sie bitte den unten stehenden Button
+ChecklistEditorGeneralPreference_show_rank=Rang Spalte anzeigen
+ChecklistEditorGeneralPreference_sort_areas=Areale gemäß Vokabular sortieren
+ChecklistEditorGeneralPreference_numberFormatExceptionLabel=Der Wert muss eine positive ganze Zahl sein.
+ChecklistEditorGeneralPreference_numberOfStatus=Anzahl der sichtbaren Status im Drop Down
+ChecklistEditorGeneralPreference_tooltip_numberOfStatus=Anzahl der sichtbaren Status im Drop Down ohne Scrollbar
+ChecklistEditorGeneralPreference_Configure_status_order=Sortierung des Status im Drop Down
+
+GeneralPreference_allowOverride=Erlaube Überschreiben
+GeneralPreference_yes=Ja
+GeneralPreference_no=Nein
+
+ChecklistEditorGeneralPreference_show_id_in_voc=ID im Vokabular
+ChecklistEditorGeneralPreference_show_symbol1=Symbol
+ChecklistEditorGeneralPreference_show_symbol2=Symbol 2
+ChecklistEditorGeneralPreference_show_title=Label
+ChecklistEditorGeneralPreference_show_symbol=Symbol des Status anzeigen, wenn es existiert
+ChecklistEditorGeneralPreference_STATUS_DISPLAY_TEXT=Einstellung für die Anzeige des Status
+ChecklistEditorGeneralPreference_own_Description=Erstelle eigenes Fakten-Datenset für Verbreitungs-Editor Daten
+ChecklistEditorGeneralPreference_own_DescriptionToolTip=Einträge, die mit dem Distribution Editor erstellt werden, \nwerden in einer eigenen TaxonDescription gespeichert
+GeneralPreference_override=Überschreiben
+ChecklistEditorGeneralPreference_Configure_display_of_Areas=Darstellung der Areale in der Kopfzeile
+ChecklistEditorGeneralPreference_Configure_display_of_Status=Darstellung der Verbreitung-Status in Tabelle
+ChecklistEditorGeneralPreference_Configure_display_of_Status_in_Combo=Darstellung der Verbreitung-Status in Drop-Down
+
+GfBioTerminologyImportPresenter_NO_CONNECTION_MESSAGE=Konnte keine Verbindung zum Webservice herstellen.
+GfBioTerminologyImportPresenter_NO_CONNECTION_TITLE=Webservice nicht erreichbar
+GfBioTerminologyImportPresenter_NO_RESULTS_MESSAGE=Keine Ergebnisse für die Anfrage gefunden
+GfBioTerminologyImportPresenter_NO_RESULTS_TITLE=Keine Ergebnisse
+GfBioTerminologyImportPresenter_COMBO_DEFAULT=Alle Ontologien
+GfBioTerminologyImportPresenter_TEXT_SEARCH_DEFAULT='*' f\u00FCr Platzhalter-Suche benutzen
+GfBioTerminologyImportPresenter_SEARCH_TOO_SHORT_MESSAGE=Suchbegriffe mit <4 Buchstaben sind nicht möglich für alle Ontologien. Bitte eine einzelne Ontologie auswählen.
+GfBioTerminologyImportPresenter_SEARCH_TOO_SHORT_TITLE=Suchbegriff zu kurz
+
+PublishEnum_publish=Publish
+PublishFlagPreference_description=Standardwert des Publish Flags eines neu erzeugten Taxon
+PublishFlagPreference_description_not_allowed=Die Konfiguration des Default Verhaltens beim Setzen des Publish Flags in einem neu erzeugten Taxon kann nur über die Admin Präferenzen geändert werden, da kein lokales Überschreiben erlaubt ist. \nWenn Sie dennoch Änderungen vornehmen möchten, wenden Sie sich an einen Administrator.
+PublishFlagPreference_do_not_set=Publish Flag NICHT setzen
+PublishFlagPreference_inherit=Erbe vom Elterntaxon
+PublishFlagPreference_set=Publish Flag setzen
+
+NomenclaturalCodePreferences_available_codes=Verfügbare Codes
+NomenclaturalCodePreferences_choose=Auswahl des Nomenklatorischen Codes, der lokal genutzt werden soll.
+NomenclaturalCodePreferences_description=Nomenklatorischer Standardcode beim Erstellen eines neuen Taxonnamens
+NomenclaturalCodePreferences_localChangesNotAllowed=The CDM settings don't allow to set the nomenclatural code locally. If you need to make local settings, please ask an administrator.
+NomenclaturalCodePreferences_useLocalCode=Nutze lokalen Nomenklatorischen Code
+NomenclaturalStatusTypeMenuPreferences_1=Auswahl der zur Verf\u00FCgung stehenden Nomenklatorischen Status Typen
+
+NameDetailsViewConfiguration_description=Konfiguration des Namensdetailsviews. \nDie ausgewählten Parts werden angezeigt, die anderen sind nicht sichtbar.
+NameDetailsViewConfiguration_description_not_available=Die Konfiguration des Details Views kann nur über die Admin Präferenzen geändert werden, da kein lokales Überschreiben erlaubt ist. \nWenn Sie dennoch Änderungen vornehmen möchten, wenden Sie sich an einen Administrator.
+NameRelationshipTypeMenuPreferences_relationshipTypes=Auswahl der zur Verf\u00FCgung stehenden Namensrelationstypen
+NameRelationshipWizardPage_description=Auswahl des Relationstyps und des in Beziehung stehenden Namens 
+NameTypeDesignationElement_4=Referenz wird entfernt
+NameTypeDesignationElement_5=Beim Ändern des Typs von Lectotype zu einem anderen Typ wird die Lectotyp-Referenze entfernt.\nWollen Sie fortfahren?
+NameTypeDesignationStatusMenuPreferences_configure=Auswahl der zur Verf\u00FCgung stehenden Nametypedesignation Status
+NavigatorOrderEnum_1=alphabetisch
+NavigatorOrderEnum_3=natürlich
+NavigatorOrderEnum_5=Rang und alphabetisch
+
+DateDetail_parseText_tooltip=Dieses Feld ist für die schnelle Dateneingabe. Der Inhalt des Feldes wird geparsed und in die atomisierten Felder geschrieben. Der Inhalt des Feldes selber wird nicht gespeichert.
+
+GeneralPreference_open_common_name_area_selection=Vokabulare auswählen
+
+VokabularyAdminPreferences_SELECT_VOCABULARY_TEXT=Auswahl der f\u00FCr Trivialnamen verf\u00FCgbaren Gebietsvokabulare
+SpecimenConfiguration_description=Wählen Sie aus, ob sie specimenbezogene Daten editieren wollen und wie diese angezeigt werden sollen.
+SpecimenOrObservationPreferences_0=Die serverseitigen Einstellungen erlauben kein lokales Editieren der Specimen Einstellungen. \nWenn Sie dennoch Änderungen vornehmen müssen, wenden Sie sich bitte an einen Administrator.
+SpecimenOrObservationPreferences_1=Editieren der Einstellungen zur Darstellung von Specimen und Beobachtungen.
+SpecimenTypeDesignationStatusMenuPreferences_configure=Auswahl der zur Verf\u00FCgung stehenden Specimentypedesignation Status
+StageMenuPreferences_choose=Auswahl der zur Verf\u00FCgung stehenden Stadien
+DatabasePreferncesPage_Show_IOMenu=Import/Export Men\u00FC Einträge anzeigen
+DatabasePreferncesPage_Show_Specimen=Specimenbezogene Views und Men\u00FCeinträge anzeigen
+DatabasePreferncesPage_Show_MediaView=Media View anzeigen
+DatabasePreferncesPage_Show_ChecklistPerspective=Checklist Perspektive als Default Perspektive anzeigen
+DatabasePreferncesPage_Show_TaxonNodeWizard=Wizard zum Editieren der Taxon Knoten anzeigen
+
+DatabasePreferncesPage_Show_Id_In_SelectionDialog=Zeige ID in Selection Dialogen
+DatabasePreferncesPage_Search_for_identifier_as_default=Nutze Identifier Suche als Default
+DatabasePreferncesPage_search_for_identifier_and_titleCache=Suche nach Identifier und Title Cache, wenn Identifier Suche aktiviert ist
+DatabasePreferncesPage_Sort_Taxa_By_Name_And_Rank=Sortiere Taxa nach Rang und Namen
+DatabasePreferncesPage_CommonNameFilter=Filtere Referenzen, die als Referenzen für Trivialnamen markiert sind
+DatabasePreferncesPage_NamedAreaSearchField=Suchfeld für Gebietssuche
+
+Distribution_status_selection=Status Auswahl
+DistributionAdminPreferences_SELECT_STATUS=Liste der verfügbaren Verbreitungs-Status
+DistributionAdminPreferences_PER_AREA_STATUS=Liste der pro Area definierten Status Präferenzen\nMit dem Button auf der rechten Seite können Sie die Präferenz für das Gebiet editieren.\nWenn Sie neue gebietsspezifische Statusangaben definieren wollen, müssen Sie den Button unter der Tabelle verwenden.
+DistributionAdminPreferences_DEFAULT_AREA_STATUS_NOT_ALLOWED=Liste der pro Area definierten Status Präferenzen. Die gebietsspezifische Statusauswahl ist aktuell nur serverseitig verfügbar.\nDie Bearbeitung die default Statusauswahl ist durch die serverseitige Präferenz nicht erlaubt. Wenn Sie dennoch die Status ändern wollen, kontaktieren Sie bitte eine Administrator.
+DistributionAdminPreferences_DEFAULT_AREA_STATUS=Liste der pro Area definierten Status Präferenzen. Die gebietsspezifische Statusauswahl ist aktuell nur serverseitig verfügbar.\nUm die default Statusauswahl zu bearbeiten, nutzen Sie bitte den Button unterhalb der Tabelle.
+
+MarkerTypeMenuPreferences_display=Auswahl der zur Verf\u00FCgung stehenden Marker
+MeasurementUnitMenuPreferences_edit=Angezeigte Maßeinheiten
+MediaDetailElement_LOAD_IMAGE=Lade Bild
+MediaDetailElement_Media_URI=Media URI
+MediaDetailElement_NO_FILE_FOUND=Keine Datei gefunden
+MediaDetailElement_NO_PREVIEW=Keine Vorschau für diesen Dateityp vorhanden
+MediaDetailElement_TOGGLE_NOT_POSSIBLE_MESSAGE=Media besteht aus mehreren "representations" oder "representation parts"
+MediaDetailElement_TOGGLE_NOT_POSSIBLE_TITLE=Umschalten nicht möglich
+MediaDetailElement_SHOW_IMAGE=Zeige Bild
+MediaDetailElement_RELOAD_IMAGE=Bild neu laden
+
+MediaPreferences_advanced=Erweiterten Media Details View anzeigen
+MediaPreferences_preview=Vorschau anzeigen
+
+ToggleableText_ToolTip_closed=Der Cache wird automatisch aus den atomisierten Daten erstellt und ist gegen manuelle Eingabe geschützt
+ToggleableText_ToolTip_open=Der Cache kann manuell bearbeitet werden, Änderungen an den atomisierten Daten haben keinen Einfluß auf den Cache (nicht empfohlen)
+TypeDesignationPreferences_typeDesignationsToAllNames=Füge allen Namen einer Homotypischen Gruppe, Type Designations zu
+TypeDesignationSection_ADD_TYPE=Typbestimmung hinzufügen
+TypeDesignationSection_CREATE_DUPLICATE=Typusdublette erzeugen
+TypeDesignationSection_DUPLICATE_FAILED=Dubletten-Erzeugung fehlgeschlagen
+TypeDesignationSection_NO_TYPES_YET=Noch keine Typusinformation vorhanden.
+TypeDesignationSection_TYPE_DESIGNATIONS=Typusinformation
+
+FeatureTreeDropAdapter_CHOOSE_VOC=Vokabular für den Import wählen
+FeatureTreeDropAdapter_IMPORT_NOT_POSSIBLE=Import nicht möglich
+FeatureTreeDropAdapter_MOVE_FAILED_SAVE_MESSAGE=Verschieben des Termknoten fehlgeschlagen. Versuchen Sie vorher zu speichern.
+FeatureTreeDropAdapter_ONLY_MOVE_FEATURES=Es ist nur möglich, Merkmale auf Merkmalsbäume zu verschieben.
+FeatureTreeDropAdapter_ORDER_VOC_NOT_POSSIBLE=Das gewählte Vokabular ist ein geordnetes Vokabular.\nImporte in geordnete Vokabulare sind aktuell nich unterstützt.
+
+DescriptionPreferences_1=Vokabular ID im Label von Termen anzeigen
+SupplementalDataPreferences_0=UUID und Objekt ID unter Zusatzdaten anzeigen
+
+TermOrder_idInVoc=ID im Vokabular
+TermOrder_Title=Titel
+TermOrder_natural=Natürlich
+
+ChecklistEditorGeneralPreference_Configure_area_order=Sortierung der Areas
+Preference_Use_Default= Standardwert benutzen
+SupplementalDataSourcePreferences_SHOW_ID=ID in Quelle anzeigen
+SupplementalDataSourcePreferences_SHOW_NAMESPACE=ID-Namensraum anzeigen
+
+OrderPreferencePage_NotAllowed=Die Datenbank Präferenz erlaub kein Editieren
+Delete=Löschen
+Preference_update=Aktualisieren
+FactualData_showModifier=Zeige Modifier
+FactualData_showModifier_FreeText=Zeige Freitext-Modifier
+FactualData_description=Wenn die Präferenz nicht ausgewählt werden kann, dann gibt es eine serverseitige Präferenz, die das Überschreiben nicht erlaubt.
+FactualData_showIdInVocabulary=Zeige Id im Vokabular im Areal-Textfeld
+FactualData_showIdInVocabulary_tooltip=Zeige die Id im Vokabular im Areal-Textfeld des Details View
+DistributionAggregationWizardPage_AGGREGATION_MODE=Aggregation mode
+DistributionAggregationWizardPage_AREA=From sub area to super area
+DistributionAggregationWizardPage_AREA_LEVEL=Area Level
+DistributionAggregationWizardPage_CHILD_PARENT=From child to parent taxon
+DistributionAggregationWizardPage_CLASSIFICATION=Aggregate selected classification
+DistributionAggregationWizardPage_DEFAULT=Default - by Presence Absence Term vocabulary
+DistributionAggregationWizardPage_DESCRIPTION=Configure the aggregation
+DistributionAggregationWizardPage_EXPORT_UNPUBLISHED=Export unpublished taxa
+DistributionAggregationWizardPage_HIGHEST_RANK=Highest rank
+DistributionAggregationWizardPage_LOWEST_RANK=Lowest rank
+DistributionAggregationWizardPage_SELECT_AREA=Select Super Areas
+DistributionAggregationWizardPage_SOURCE_MODE_AREA=Source mode sub area/super area
+DistributionAggregationWizardPage_SOURCE_TYPE=Source type
+DistributionAggregationWizardPage_SOURCEMODE_CHILD_PARENT=Source mode child/parent
+DistributionAggregationWizardPage_SOURCEMODE_WITHIN_TAXON=Source mode within taxon
+DistributionAggregationWizardPage_STATUS_ORDER=Status order
+DistributionAggregationWizardPage_TITLE=Distribution aggregation configuration
+DistributionAggregationWizardPage_TOOLTIP_AGGR_MODE=Selecting none deletes all existing aggregated distributions
+DistributionAggregationWizardPage_TOOLTIP_AREA_LEVEL=Selecting the area level to which the distribution should be aggregated
+DistributionAggregationWizardPage_TOOLTIP_AREA_SELECTION=Wenn Areal Aggregation ausgewählt ist, kann das Super Areal ausgewählt werden, wenn nichts ausgewählt wurde, werden die Top Level Areale verwendet.
+DistributionAggregationWizardPage_TOOLTIP_SOURCE_TYPE=Typus der zu aggregierenden Quellen
+DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_AREA=Definiert den Source Mode, wenn die Aggregation von Subareal zum Superareal ausgewählt wurde.
+DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_CHILD_PARENT=Definiert den Source Mode, wenn die Aggregation vom Kind zum Eltern ausgewählt wurde.
+DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_WITHIN_TAXON=Definiert den Source Mode, wenn die Aggregation innerhalb eines Taxons ausgewählt wurde.
+AggregationWizardPage_SUBTREE=Aggregiere ausgewählten Teilbaum/-bäume 
+AggregationWizardPage_SINGLE_TAXON=Aggregation nur für
+SetAggregationConfiguration_Title=Aggregationskonfiguration
+StructuredDescriptionAggregationWizardPage_SELECT_SUBTREE=Taxa/Teilbäume
+StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_SUBTREE=Wenn nicht alle Teilbäume des Descriptive Datasets in die Aggregation einfließen sollen, dann wählen Sie die zu verwendenden Teilbäume aus.
+StructuredDescriptionAggregationWizardPage_SELECT_ALL_SUBTREES=Aggregiere alle Taxa des Descriptive Datasets
+StructuredDescriptionAggregationWizardPage_SELECT_SELECTED_TAXA_ONLY=Aggregiere nur ausgewählte(s) Taxa/Taxon
+CommonNameLanguages_Title=Sprachen für Trivialnamen
+CommonNameVocabularyPreferencePage_description=Wählen Sie die Vokabulare, für die Area-Auswahl bei Trivialnamen.
+CommonNameLanguagePreferencePage_description=Wählen Sie die für Trivialnamen verfügbaren Sprachen.
+
+EnumCombo_Placement_status=Platzierungsstatus
+OriginalSourceAdvancedSection_advanced=mehr
\ No newline at end of file
similarity index 94%
rename from eu.etaxonomy.taxeditor.webapp/src/main/java/eu/etaxonomy/taxeditor/webapp/CdmEmbeddedServerException.java
rename to eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/CdmEmbeddedServerException.java
index 7d46b456bd70ebff6b983fbbbd8a182ef02d3453..fb9a01c6f57e98d5ae15073415e714cca864b70e 100644 (file)
@@ -6,7 +6,7 @@
 * 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.webapp;
+package eu.etaxonomy.taxeditor.local;
 
 /**
  * @author cmathew
similarity index 92%
rename from eu.etaxonomy.taxeditor.webapp/src/main/java/eu/etaxonomy/taxeditor/webapp/CdmServer.java
rename to eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/CdmServer.java
index e45ad37d9de2422bb119d81c057ea49f5859ade1..294714767008ce6fa183e033682d957315918465 100644 (file)
@@ -6,7 +6,7 @@
  * 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.webapp;
+package eu.etaxonomy.taxeditor.local;
 
 import java.io.File;
 import java.io.IOException;
@@ -25,15 +25,17 @@ import javax.management.remote.JMXConnector;
 import javax.management.remote.JMXConnectorFactory;
 import javax.management.remote.JMXServiceURL;
 
-import org.apache.log4j.Logger;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.util.StringUtil;
 import org.eclipse.jetty.util.preventers.AppContextLeakPreventer;
 import org.eclipse.jetty.webapp.WebAppContext;
 import org.osgi.framework.Bundle;
 
+import eu.etaxonomy.taxeditor.workbench.datasource.ICdmServerError;
+
 /**
  * (Singleton) Server instance which manages a compatible cdmlib-webapp-war.
  * This is done by launching a jetty instance (using jetty-runner) as an
@@ -47,7 +49,7 @@ import org.osgi.framework.Bundle;
  */
 public class CdmServer {
 
-    public static final Logger logger = Logger.getLogger(CdmServer.class);
+    public static final Logger logger = LogManager.getLogger(CdmServer.class);
 
     //TODO use the constants defined in eu.etaxonomy.cdm.opt.config.DataSourceConfigurer
     private static final String ATTRIBUTE_FORCE_SCHEMA_CREATE = "cdm.forceSchemaCreate";
@@ -71,7 +73,7 @@ public class CdmServer {
     private boolean forceSchemaUpdate = false;
 
     public CdmServer(String dataSourceName, File dataSourcesFile) throws CdmEmbeddedServerException {
-        if(StringUtil.isBlank(dataSourceName)) {
+        if(StringUtils.isBlank(dataSourceName)) {
             throw new CdmEmbeddedServerException("DataSource name is not valid");
         }
 
@@ -79,7 +81,7 @@ public class CdmServer {
             throw new CdmEmbeddedServerException("DataSource config file does not exist");
         }
         this.dataSourceName = dataSourceName;
-        Bundle bundle = Platform.getBundle("eu.etaxonomy.taxeditor.webapp");
+        Bundle bundle = Platform.getBundle("eu.etaxonomy.taxeditor.local");
         URL warURL = bundle.getEntry("lib/cdmlib-remote-webapp.war");
 
         try {
@@ -87,7 +89,7 @@ public class CdmServer {
             // We need to use the 3-arg constructor of URI in order to properly escape file system chars
             URI resolvedURI = new URI(resolvedWarURL.getProtocol(), resolvedWarURL.getPath(), null);
             warFile = new File(resolvedURI);
-            System.out.println("war url : " + warFile.getAbsolutePath());
+//            System.out.println("war url : " + warFile.getAbsolutePath());
 
             if(warFile == null || !warFile.exists()) {
                 throw new CdmEmbeddedServerException("Cdmlib War file does not exist");
@@ -111,6 +113,7 @@ public class CdmServer {
         server.addBean(new AppContextLeakPreventer());
 
         WebAppContext webapp = new WebAppContext();
+
         webapp.setContextPath(contextPath);
         webapp.setWar(warFile.getAbsolutePath());
         webapp.setThrowUnavailableOnStartupException(true);
@@ -157,11 +160,11 @@ public class CdmServer {
         throw new CdmEmbeddedServerException("Could not find a free TCP/IP port to start embedded Jetty HTTP Server on");
     }
 
-    public void start(ICDMServerError cdmServerError) throws CdmEmbeddedServerException {
+    public void start(ICdmServerError cdmServerError) throws CdmEmbeddedServerException {
         start(true, cdmServerError);
     }
 
-    public void start(boolean wait, final ICDMServerError cdmServerError) throws CdmEmbeddedServerException {
+    public void start(boolean wait, final ICdmServerError remotingLoginDialogLocal) throws CdmEmbeddedServerException {
 
         if(server == null) {
             throw new CdmEmbeddedServerException("Server is already disposed");
@@ -213,7 +216,7 @@ public class CdmServer {
                             cause = cause.getCause();
                         }
                     }
-                    cdmServerError.handleError(new RuntimeException("Error during CDM server startup", t));
+                    remotingLoginDialogLocal.handleError(new RuntimeException("Error during CDM server startup", t));
                 }
             }
         };
similarity index 84%
rename from eu.etaxonomy.taxeditor.webapp/src/main/java/eu/etaxonomy/taxeditor/webapp/TaxeditorWebappPlugin.java
rename to eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/TaxeditorLocalPlugin.java
index cc786145ed66b568316160a78e30fdc0fe5b61ef..5352580c2105e0d25a1b0702ac91439a43ddbfa1 100644 (file)
@@ -1,4 +1,4 @@
-package eu.etaxonomy.taxeditor.webapp;
+package eu.etaxonomy.taxeditor.local;
 
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.resource.ImageRegistry;
@@ -10,19 +10,19 @@ import org.osgi.framework.BundleContext;
  *
  * @author n.hoffmann
  */
-public class TaxeditorWebappPlugin extends AbstractUIPlugin {
+public class TaxeditorLocalPlugin extends AbstractUIPlugin {
 
        // The plug-in ID
        /** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.editor"</code> */
-       public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.editor";
+       public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.local";
 
        // The shared instance
-       private static TaxeditorWebappPlugin plugin;
+       private static TaxeditorLocalPlugin plugin;
 
        /**
         * The constructor
         */
-       public TaxeditorWebappPlugin() {
+       public TaxeditorLocalPlugin() {
        }
 
        @Override
@@ -42,7 +42,7 @@ public class TaxeditorWebappPlugin extends AbstractUIPlugin {
         *
         * @return the shared instance
         */
-       public static TaxeditorWebappPlugin getDefault() {
+       public static TaxeditorLocalPlugin getDefault() {
                return plugin;
        }
 
similarity index 92%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/CdmDataSourceRepository.java
rename to eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/datasource/common/CdmDataSourceRepository.java
index b795b4e992bce9bcf21cf21c7280606c13c2cbbe..ccb411db19c68d327505fafe6c83403e8da1b051 100644 (file)
@@ -8,7 +8,7 @@
  *
  * @author n.hoffmann
  */
-package eu.etaxonomy.taxeditor.datasource;
+package eu.etaxonomy.taxeditor.local.datasource.common;
 
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -37,7 +37,6 @@ import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
 public class CdmDataSourceRepository{
 
-       /** Constant <code>TAG_DATASOURCE="tagDataSource"</code> */
        public static final String TAG_DATASOURCE = "tagDataSource";
        private static final String CURRENT_DATASOURCE = "currentDataSource";
        private static final String CURRENT_DATASOURCE_POSTFIX = "currentDataSourcePostFix";
@@ -52,11 +51,6 @@ public class CdmDataSourceRepository{
        private static String lastUsedCdmSourceName;
        private static String lastUsedCdmSourcePostFix;
 
-       /**
-        * <p>Getter for the field <code>lastUsedDataSourceName</code>.</p>
-        *
-        * @return a {@link java.lang.String} object.
-        */
        public static void updateLastUsedDataSource(){
                if(lastUsedCdmSourceName == null){
                        memento = readMemento();
@@ -65,22 +59,11 @@ public class CdmDataSourceRepository{
                }
        }
 
-       /**
-        * <p>delete</p>
-        *
-        * @param dataSource a {@link eu.etaxonomy.cdm.database.CdmPersistentDataSource} object.
-        * @return a boolean.
-        */
        public static boolean delete(ICdmPersistentSource cdmPersistentSource) {
                CdmPersistentSourceUtils.delete(cdmPersistentSource);
                return true;
        }
 
-       /**
-        * <p>getAll</p>
-        *
-        * @return a {@link java.util.List} object.
-        */
        public static List<ICdmSource> getAll() {
                List<ICdmSource> remoteSources = new ArrayList<>();
 
@@ -111,12 +94,6 @@ public class CdmDataSourceRepository{
                return remoteSources;
        }
 
-       /**
-        * <p>getDataSource</p>
-        *
-        * @param name a {@link java.lang.String} object.
-        * @return a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
-        */
        public static ICdmDataSource getDataSource(String name){
 
                for(ICdmDataSource dataSource : CdmPersistentDataSource.getAllDataSources()){
@@ -132,12 +109,6 @@ public class CdmDataSourceRepository{
                return null;
        }
 
-       /**
-        * <p>Getter for the field <code>currentDataSource</code>.</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
-        * @throws CdmRemoteSourceException
-        */
        public static ICdmSource getCurrentCdmSource() throws CdmRemoteSourceException {
 
                if (currentCdmSource == null) {
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.datasource.wizard;
+package eu.etaxonomy.taxeditor.local.datasource.wizard;
 
 import java.sql.SQLException;
 
@@ -29,15 +29,13 @@ import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.database.CdmDataSource;
 import eu.etaxonomy.cdm.database.ICdmDataSource;
-import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
-
+import eu.etaxonomy.taxeditor.local.datasource.common.CdmDataSourceRepository;
 
 /**
  * <p>Abstract CdmDataSourceCredentialsWizardPage class.</p>
  *
  * @author n.hoffmann
  * @created 19.05.2009
- * @version 1.0
  */
 public abstract class CdmDataSourceCredentialsWizardPage extends WizardPage implements ModifyListener {
        private ICdmDataSource dataSource;
@@ -90,7 +88,6 @@ public abstract class CdmDataSourceCredentialsWizardPage extends WizardPage impl
                }
        }
 
-       /** {@inheritDoc} */
        @Override
     public void createControl(Composite parent) {
                this.parent = parent;
@@ -103,8 +100,6 @@ public abstract class CdmDataSourceCredentialsWizardPage extends WizardPage impl
                formLayout.numColumns = 2;
                composite.setLayout(formLayout);
 
-
-
                // Create composite for data source name
                Composite editDatasourceComposite = new Composite(composite, SWT.NONE);
                GridData datasourceGridData = new GridData(SWT.FILL, SWT.TOP, true, true,2,1);
@@ -150,9 +145,7 @@ public abstract class CdmDataSourceCredentialsWizardPage extends WizardPage impl
                });
 
                setControl(composite);
-
                init();
-
        }
 
        /**
@@ -190,7 +183,6 @@ public abstract class CdmDataSourceCredentialsWizardPage extends WizardPage impl
                // Create password input
                text_password = new Text(authenticationGroup, SWT.BORDER | SWT.PASSWORD);
                text_password.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
        }
 
        /**
@@ -216,7 +208,6 @@ public abstract class CdmDataSourceCredentialsWizardPage extends WizardPage impl
                } else {
                        name = text_dataSourceName.getText();
                }
-
        }
 
        private void addListeners() {
@@ -290,8 +281,6 @@ public abstract class CdmDataSourceCredentialsWizardPage extends WizardPage impl
                this.setPageComplete(complete);
        }
 
-
-
        /**
         * updates the current datasource with form values
         */
@@ -301,26 +290,15 @@ public abstract class CdmDataSourceCredentialsWizardPage extends WizardPage impl
                password = text_password.getText();
        }
 
-       /** {@inheritDoc} */
        @Override
        public IWizardPage getNextPage() {
                return null;
        }
 
-       /**
-        * <p>Setter for the field <code>dataSource</code>.</p>
-        *
-        * @param dataSource the dataSource to set
-        */
        public void setDataSource(ICdmDataSource dataSource) {
                this.dataSource = dataSource;
        }
 
-       /**
-        * <p>Getter for the field <code>dataSource</code>.</p>
-        *
-        * @return the dataSource
-        */
        public ICdmDataSource getUpdatedDataSource() {
                updateDataSource();
                return dataSource;
@@ -330,16 +308,10 @@ public abstract class CdmDataSourceCredentialsWizardPage extends WizardPage impl
                return dataSource;
        }
 
-       /**
-        * <p>getDataSourceName</p>
-        *
-        * @return a {@link java.lang.String} object.
-        */
        public String getDataSourceName() {
                return name;
        }
 
-       /** {@inheritDoc} */
        @Override
     public void modifyText(ModifyEvent e) {
 
@@ -386,7 +358,6 @@ public abstract class CdmDataSourceCredentialsWizardPage extends WizardPage impl
                }
        }
 
-
        private void updateAndCheck() {
                updateLocation();
                updateAuthentication();
@@ -404,4 +375,4 @@ public abstract class CdmDataSourceCredentialsWizardPage extends WizardPage impl
                text.setText(string);
                text.addModifyListener(listener);
        }
-}
+}
\ No newline at end of file
@@ -1,13 +1,13 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.datasource.wizard;
+package eu.etaxonomy.taxeditor.local.datasource.wizard;
 
 import eu.etaxonomy.cdm.database.CdmDataSource;
 import eu.etaxonomy.cdm.database.ICdmDataSource;
@@ -19,7 +19,7 @@ import eu.etaxonomy.cdm.database.ICdmDataSource;
  * @created 19.05.2009
  */
 public class CdmDataSourceH2WizardPage extends CdmDataSourceCredentialsWizardPage {
-       
+
        /**
         * <p>Constructor for CdmDataSourceH2WizardPage.</p>
         *
@@ -28,20 +28,20 @@ public class CdmDataSourceH2WizardPage extends CdmDataSourceCredentialsWizardPag
        @Deprecated
        protected CdmDataSourceH2WizardPage(ICdmDataSource dataSource) {
                super("H2", dataSource);
-               setTitle("Enter credentials for embedded H2 database");         
+               setTitle("Enter credentials for embedded H2 database");
        }
-       
+
        /**
         * <p>Constructor for CdmDataSourceH2WizardPage.</p>
         *
         * @param dataSource a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
-        * @param mode a {@link eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceWizard.Mode} enum type.
+        * @param mode a {@link eu.etaxonomy.taxeditor.webapp.datasource.common.wizard.CdmDataSourceWizard.Mode} enum type.
         */
        protected CdmDataSourceH2WizardPage(ICdmDataSource dataSource, CdmDataSourceWizard.Mode mode) {
                super("H2", dataSource, mode);
-               setTitle("Enter credentials for embedded H2 database");         
+               setTitle("Enter credentials for embedded H2 database");
        }
-       
+
        /** {@inheritDoc} */
        @Override
        public void createDatabaseForm() {
@@ -56,12 +56,12 @@ public class CdmDataSourceH2WizardPage extends CdmDataSourceCredentialsWizardPag
 
        /** {@inheritDoc} */
        @Override
-       public void updateDataSource() {                
+       public void updateDataSource() {
                ICdmDataSource dataSource = getDataSource();
 
                if(dataSource == null) {
-                       setDataSource(CdmDataSource.NewH2EmbeddedInstance(database, 
-                                        username, 
+                       setDataSource(CdmDataSource.NewH2EmbeddedInstance(database,
+                                        username,
                                         password));
                } else {
                        dataSource.setName(name);
@@ -1,13 +1,13 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.datasource.wizard;
+package eu.etaxonomy.taxeditor.local.datasource.wizard;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
@@ -27,7 +27,7 @@ import eu.etaxonomy.cdm.database.ICdmDataSource;
  * @created 19.05.2009
  */
 public class CdmDataSourceMySQLWizardPage extends CdmDataSourceCredentialsWizardPage {
-       
+
        private Text text_port;
        private Text text_server;
 
@@ -35,7 +35,7 @@ public class CdmDataSourceMySQLWizardPage extends CdmDataSourceCredentialsWizard
 
        private int port;
 
-       
+
 
        /**
         * <p>Constructor for CdmDataSourceMySQLWizardPage.</p>
@@ -49,12 +49,12 @@ public class CdmDataSourceMySQLWizardPage extends CdmDataSourceCredentialsWizard
                setDescription("Enter credentials for MySQL database");
 
        }
-       
+
        /**
         * <p>Constructor for CdmDataSourceMySQLWizardPage.</p>
         *
         * @param dataSource a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
-        * @param mode a {@link eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceWizard.Mode} enum type.
+        * @param mode a {@link eu.etaxonomy.taxeditor.webapp.datasource.common.wizard.CdmDataSourceWizard.Mode} enum type.
         */
        protected CdmDataSourceMySQLWizardPage(ICdmDataSource dataSource, CdmDataSourceWizard.Mode mode) {
                super("MySQL", dataSource, mode);
@@ -62,11 +62,11 @@ public class CdmDataSourceMySQLWizardPage extends CdmDataSourceCredentialsWizard
                setDescription("Enter credentials for MySQL database");
 
        }
-       
+
        /** {@inheritDoc} */
        @Override
        public void createDatabaseForm() {
-               // Create group composite for location data 
+               // Create group composite for location data
                locationGroup = new Group(composite, SWT.NONE);
                locationGroup.setText("Location");
                locationGroup.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 2));
@@ -81,7 +81,7 @@ public class CdmDataSourceMySQLWizardPage extends CdmDataSourceCredentialsWizard
                // Create host input
                text_server = new Text(locationGroup, SWT.BORDER);
                text_server.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-               
+
 
                // Create port label
                Label portLabel = new Label(locationGroup, SWT.NONE);
@@ -90,8 +90,8 @@ public class CdmDataSourceMySQLWizardPage extends CdmDataSourceCredentialsWizard
                // Create port input
                text_port = new Text(locationGroup, SWT.BORDER);
                text_port.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-               
-               
+
+
        }
 
        /** {@inheritDoc} */
@@ -110,7 +110,7 @@ public class CdmDataSourceMySQLWizardPage extends CdmDataSourceCredentialsWizard
 
        /** {@inheritDoc} */
        @Override
-       public void updateDataSource() {        
+       public void updateDataSource() {
                ICdmDataSource dataSource = getDataSource();
 
                if(dataSource == null) {
@@ -128,24 +128,24 @@ public class CdmDataSourceMySQLWizardPage extends CdmDataSourceCredentialsWizard
                        dataSource.setPassword(password);
                }
        }
-       
+
        /** {@inheritDoc} */
        @Override
        public void checkPageComplete() {
                // check if widgets of this component are complete
                boolean complete = server.trim().length() != 0;
-               
+
                // set default port
                if(port == 0){
                        port = DatabaseTypeEnum.MySQL.getDefaultPort();
                }
-               
+
                setPageComplete(complete);
-               
+
                // check if widgets of the extended class are complete
                super.checkPageComplete();
        }
-       
+
        /** {@inheritDoc} */
        @Override
        public void init() {
@@ -153,19 +153,19 @@ public class CdmDataSourceMySQLWizardPage extends CdmDataSourceCredentialsWizard
                if(getDataSource() != null){
                        removeListeners();
                        text_server.setText(getDataSource().getServer());
-                       text_port.setText(String.valueOf(getDataSource().getPort()));           
+                       text_port.setText(String.valueOf(getDataSource().getPort()));
                        // add listeners after setting text to avoid the modify event being called
                        // for the initial value
                        addListeners();
                }
 
        }
-       
+
        private void addListeners() {
                text_server.addModifyListener(this);
                text_port.addModifyListener(this);
        }
-       
+
        private void removeListeners() {
                text_server.removeModifyListener(this);
                text_port.removeModifyListener(this);
@@ -1,7 +1,7 @@
 /**
- * 
+ *
  */
-package eu.etaxonomy.taxeditor.datasource.wizard;
+package eu.etaxonomy.taxeditor.local.datasource.wizard;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
@@ -25,7 +25,7 @@ public class CdmDataSourcePostgreSQLServerWizardPage extends
        private String server;
 
        private int port;
-       
+
        @Deprecated
        protected CdmDataSourcePostgreSQLServerWizardPage(ICdmDataSource dataSource) {
                super("PostgreSQL Server", dataSource);
@@ -33,12 +33,12 @@ public class CdmDataSourcePostgreSQLServerWizardPage extends
                setDescription("Enter credentials for PostgreSQL Server database");
 
        }
-       
+
        /**
         * <p>Constructor for CdmDataSourcePostgreSQLServerWizardPage.</p>
         *
         * @param dataSource a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
-        * @param mode a {@link eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceWizard.Mode} enum type.
+        * @param mode a {@link eu.etaxonomy.taxeditor.webapp.datasource.common.wizard.CdmDataSourceWizard.Mode} enum type.
         */
        protected CdmDataSourcePostgreSQLServerWizardPage(ICdmDataSource dataSource, CdmDataSourceWizard.Mode mode) {
                super("PostgreSQL Server", dataSource, mode);
@@ -49,7 +49,7 @@ public class CdmDataSourcePostgreSQLServerWizardPage extends
 
        @Override
        public void createDatabaseForm() {
-               // Create group composite for location data 
+               // Create group composite for location data
                locationGroup = new Group(composite, SWT.NONE);
                locationGroup.setText("Location");
                locationGroup.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
@@ -64,7 +64,7 @@ public class CdmDataSourcePostgreSQLServerWizardPage extends
                // Create host input
                text_server = new Text(locationGroup, SWT.BORDER);
                text_server.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-               
+
 
                // Create port label
                Label portLabel = new Label(locationGroup, SWT.NONE);
@@ -73,8 +73,8 @@ public class CdmDataSourcePostgreSQLServerWizardPage extends
                // Create port input
                text_port = new Text(locationGroup, SWT.BORDER);
                text_port.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-               
-               
+
+
        }
 
        @Override
@@ -93,7 +93,7 @@ public class CdmDataSourcePostgreSQLServerWizardPage extends
        @Override
        public void updateDataSource() {
 
-               
+
                ICdmDataSource dataSource = getDataSource();
 
                if(dataSource == null) {
@@ -111,7 +111,7 @@ public class CdmDataSourcePostgreSQLServerWizardPage extends
                        dataSource.setPassword(password);
                }
        }
-       
+
        /** {@inheritDoc} */
        @Override
        public void init() {
@@ -119,19 +119,19 @@ public class CdmDataSourcePostgreSQLServerWizardPage extends
                if(getDataSource() != null){
                        removeListeners();
                        text_server.setText(getDataSource().getServer());
-                       text_port.setText(String.valueOf(getDataSource().getPort()));   
+                       text_port.setText(String.valueOf(getDataSource().getPort()));
                        // add listeners after setting text to avoid the modify event being called
                        // for the initial value
-                       addListeners();                 
+                       addListeners();
                }
 
        }
-       
+
        private void addListeners() {
                text_server.addModifyListener(this);
                text_port.addModifyListener(this);
        }
-       
+
        private void removeListeners() {
                text_server.removeModifyListener(this);
                text_port.removeModifyListener(this);
@@ -1,13 +1,12 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
-package eu.etaxonomy.taxeditor.datasource.wizard;
+package eu.etaxonomy.taxeditor.local.datasource.wizard;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
@@ -25,7 +24,6 @@ import eu.etaxonomy.cdm.database.ICdmDataSource;
  *
  * @author n.hoffmann
  * @created 19.05.2009
- * @version 1.0
  */
 public class CdmDataSourceSQLServerWizardPage extends CdmDataSourceCredentialsWizardPage {
 
@@ -48,12 +46,12 @@ public class CdmDataSourceSQLServerWizardPage extends CdmDataSourceCredentialsWi
                setDescription("Enter credentials for SQL Server database");
                this.setDataSource(dataSource);
        }
-       
+
        /**
         * <p>Constructor for CdmDataSourceSQLServerWizardPage.</p>
         *
         * @param dataSource a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
-        * param mode a {@link eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceWizard.Mode} enum type.
+        * param mode a {@link eu.etaxonomy.taxeditor.webapp.datasource.common.wizard.CdmDataSourceWizard.Mode} enum type.
         */
        public CdmDataSourceSQLServerWizardPage(ICdmDataSource dataSource, CdmDataSourceWizard.Mode mode) {
                super("SQL Server", dataSource, mode);
@@ -61,14 +59,10 @@ public class CdmDataSourceSQLServerWizardPage extends CdmDataSourceCredentialsWi
                setDescription("Enter credentials for SQL Server database");
                this.setDataSource(dataSource);
        }
-       
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.store.datasource.CdmDataSourceCredentialsWizardPage#createDatabaseForm()
-        */
-       /** {@inheritDoc} */
+
        @Override
-       public void createDatabaseForm() {              
-               // Create group composite for location data 
+       public void createDatabaseForm() {
+               // Create group composite for location data
                locationGroup = new Group(composite, SWT.NONE);
                locationGroup.setText("Location");
                locationGroup.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
@@ -92,14 +86,10 @@ public class CdmDataSourceSQLServerWizardPage extends CdmDataSourceCredentialsWi
                // Create port input
                text_port = new Text(locationGroup, SWT.BORDER);
                text_port.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-               
+
                text_port.addModifyListener(this);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.store.datasource.CdmDataSourceCredentialsWizardPage#updateLocation()
-        */
-       /** {@inheritDoc} */
        @Override
        public void updateLocation() {
                server = text_server.getText();
@@ -113,15 +103,11 @@ public class CdmDataSourceSQLServerWizardPage extends CdmDataSourceCredentialsWi
                }
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage#updateDataSource()
-        */
-       /** {@inheritDoc} */
        @Override
        public void updateDataSource() {
 
 
-               
+
                ICdmDataSource dataSource = getDataSource();
 
                if(dataSource == null) {
@@ -139,54 +125,43 @@ public class CdmDataSourceSQLServerWizardPage extends CdmDataSourceCredentialsWi
                        dataSource.setPassword(password);
                }
        }
-       
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage#checkPageComplete()
-        */
-       /** {@inheritDoc} */
+
        @Override
        public void checkPageComplete() {
                // check if widgets of this component are complete
                boolean complete = server.trim().length() != 0;
-               
+
                // set default port
                if(port == 0){
                        port = DatabaseTypeEnum.SqlServer2005.getDefaultPort();
                }
-               
+
                setPageComplete(complete);
-               
+
                // check if widgets of the extended class are complete
                super.checkPageComplete();
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceCredentialsWizardPage#init()
-        */
-       /** {@inheritDoc} */
        @Override
        public void init() {
                super.init();
                if(getDataSource() != null){
                        removeListeners();
                        text_server.setText(getDataSource().getServer());
-                       text_port.setText(String.valueOf(getDataSource().getPort()));                   
+                       text_port.setText(String.valueOf(getDataSource().getPort()));
                        // add listeners after setting text to avoid the modify event being called
                        // for the initial value
                        addListeners();
                }
-
        }
-       
+
        private void addListeners() {
                text_server.addModifyListener(this);
                text_port.addModifyListener(this);
        }
-       
+
        private void removeListeners() {
                text_server.removeModifyListener(this);
                text_port.removeModifyListener(this);
        }
-       
-       
-}
+}
\ No newline at end of file
@@ -6,8 +6,7 @@
 * 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.datasource.wizard;
+package eu.etaxonomy.taxeditor.local.datasource.wizard;
 
 import java.util.ArrayList;
 
@@ -29,14 +28,13 @@ import org.eclipse.swt.widgets.Text;
 import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
 import eu.etaxonomy.cdm.database.ICdmDataSource;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
-import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
+import eu.etaxonomy.taxeditor.local.datasource.common.CdmDataSourceRepository;
 
 /**
  * <p>CdmDataSourceTypeSelectionWizardPage class.</p>
  *
  * @author n.hoffmann
  * @created 18.05.2009
- * @version 1.0
  */
 public class CdmDataSourceTypeSelectionWizardPage extends WizardPage implements ModifyListener{
 
@@ -47,7 +45,6 @@ public class CdmDataSourceTypeSelectionWizardPage extends WizardPage implements
                /*DatabaseTypeEnum.SqlServer2005*/
        };
 
-
        private ArrayList<DatabaseTypeEnum> databaseTypes;
 
        private Text datasourceNameText;
@@ -83,10 +80,6 @@ public class CdmDataSourceTypeSelectionWizardPage extends WizardPage implements
                setTitle(pageName);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-        */
-       /** {@inheritDoc} */
        @Override
     public void createControl(Composite parent) {
 
@@ -153,9 +146,6 @@ public class CdmDataSourceTypeSelectionWizardPage extends WizardPage implements
                }
        }
 
-       /**
-        * @param type
-        */
        private void addDatabasePage(DatabaseTypeEnum type) {
                // add credentials wizard page according to selection
                Wizard wizard = (Wizard) getWizard();
@@ -186,20 +176,11 @@ public class CdmDataSourceTypeSelectionWizardPage extends WizardPage implements
                getContainer().updateButtons();
        }
 
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.WizardPage#getNextPage()
-        */
-       /** {@inheritDoc} */
        @Override
        public IWizardPage getNextPage() {
                return nextPage;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
-        */
-       /** {@inheritDoc} */
        @Override
     public void modifyText(ModifyEvent e) {
                String name = datasourceNameText.getText();
@@ -218,12 +199,6 @@ public class CdmDataSourceTypeSelectionWizardPage extends WizardPage implements
                checkPageComplete();
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.WizardPage#canFlipToNextPage()
-        */
-       /**
-        * <p>checkPageComplete</p>
-        */
        public void checkPageComplete() {
                boolean complete = isDataBaseTypeSelected();
                complete &= isDataSourceNameSet();
@@ -231,68 +206,31 @@ public class CdmDataSourceTypeSelectionWizardPage extends WizardPage implements
                setPageComplete(complete);
        }
 
-       /**
-        * <p>Getter for the field <code>dataSourceName</code>.</p>
-        *
-        * @return a {@link java.lang.String} object.
-        */
        public String getDataSourceName() {
                return dataSourceName;
        }
 
-       /**
-        * <p>Getter for the field <code>credentialsWizardPage</code>.</p>
-        *
-        * @return the credentialsWizardPage
-        */
        public CdmDataSourceCredentialsWizardPage getCredentialsWizardPage() {
                return credentialsWizardPage;
        }
 
-       /**
-        * <p>isDataBaseTypeSelected</p>
-        *
-        * @return the dataBaseTypeSelected
-        */
        public boolean isDataBaseTypeSelected() {
                return dataBaseTypeSelected;
        }
 
-       /**
-        * <p>Setter for the field <code>dataBaseTypeSelected</code>.</p>
-        *
-        * @param dataBaseTypeSelected the dataBaseTypeSelected to set
-        */
        public void setDataBaseTypeSelected(boolean dataBaseTypeSelected) {
                this.dataBaseTypeSelected = dataBaseTypeSelected;
        }
 
-       /**
-        * <p>isDataSourceNameSet</p>
-        *
-        * @return the dataSourceNameSet
-        */
        public boolean isDataSourceNameSet() {
                return dataSourceNameSet;
        }
 
-       /**
-        * <p>Setter for the field <code>dataSourceNameSet</code>.</p>
-        *
-        * @param dataSourceNameSet the dataSourceNameSet to set
-        */
        public void setDataSourceNameSet(boolean dataSourceNameSet) {
                this.dataSourceNameSet = dataSourceNameSet;
        }
 
-       /**
-        * <p>Getter for the field <code>nomenclaturalCode</code>.</p>
-        *
-        * @return the nomenclaturalCode
-        */
        public NomenclaturalCode getNomenclaturalCode() {
                return nomenclaturalCode;
        }
-
-
-}
+}
\ No newline at end of file
similarity index 56%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/datasource/wizard/CdmDataSourceWizard.java
rename to eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/datasource/wizard/CdmDataSourceWizard.java
index 0ad89ccb8689f71e1bf79eebd95ace2123a5e66e..0460b572c153f2854b505384d5a7aa14f1ce15a7 100644 (file)
@@ -1,65 +1,55 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
-package eu.etaxonomy.taxeditor.datasource.wizard;
+package eu.etaxonomy.taxeditor.local.datasource.wizard;
 
 import org.eclipse.jface.wizard.Wizard;
 
 import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
 import eu.etaxonomy.cdm.database.ICdmDataSource;
-import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
+import eu.etaxonomy.taxeditor.local.TaxeditorLocalPlugin;
+import eu.etaxonomy.taxeditor.local.datasource.common.CdmDataSourceRepository;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
 
 /**
  * <p>CdmDataSourceWizard class.</p>
  *
  * @author n.hoffmann
  * @created 18.05.2009
- * @version 1.0
  */
 public class CdmDataSourceWizard extends Wizard {
-       
+
        private CdmDataSourceCredentialsWizardPage dataSourcePage;
 
        private CdmDataSourceTypeSelectionWizardPage dataSourceSelectionPage;
-       
+
        private ICdmDataSource dataSource;
-       
+
        private String dataSourceName;
-       
+
        //private boolean editMode;
-       
+
        public enum Mode {
                CREATE,
                EDIT,
                CLONE
        }
-       
+
        // default mode is to create a new datasource
        Mode mode = Mode.CREATE;
-       
-       /**
-        * <p>Constructor for CdmDataSourceWizard.</p>
-        */
+
        public CdmDataSourceWizard() {
                super();
                this.mode = Mode.CREATE;
                setForcePreviousAndNextButtons(true);
                setWindowTitle("Datasource Dialog");
-               
        }
 
-       
-       /**
-        * <p>Constructor for CdmDataSourceWizard.</p>
-        *
-        * @param dataSource a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
-        */
        public CdmDataSourceWizard(ICdmDataSource dataSource, Mode mode) {
                super();
                if(dataSource != null){
@@ -71,15 +61,10 @@ public class CdmDataSourceWizard extends Wizard {
                setWindowTitle("Datasource Dialog");
        }
 
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#addPages()
-        */
-       /** {@inheritDoc} */
        @Override
        public void addPages() {
                switch(mode) {
-               case EDIT:      
+               case EDIT:
                case CLONE:
                        if(dataSource.getDatabaseType() == DatabaseTypeEnum.H2){
                                dataSourcePage = new CdmDataSourceH2WizardPage(dataSource, mode);
@@ -90,61 +75,62 @@ public class CdmDataSourceWizard extends Wizard {
                        }else if(dataSource.getDatabaseType() == DatabaseTypeEnum.PostgreSQL){
                                dataSourcePage = new CdmDataSourcePostgreSQLServerWizardPage(dataSource, mode);
                        }else{
-                               throw new RuntimeException("Editing a datasource of type '" + dataSource.getDatabaseType() + "' is not supported yet."); 
+                               throw new RuntimeException("Editing a datasource of type '" + dataSource.getDatabaseType() + "' is not supported yet.");
                        }
-                       
+
                        this.addPage(dataSourcePage);
                case CREATE:
-                       dataSourceSelectionPage = new CdmDataSourceTypeSelectionWizardPage(dataSource); 
+                       dataSourceSelectionPage = new CdmDataSourceTypeSelectionWizardPage(dataSource);
                        this.addPage(dataSourceSelectionPage);
+                       return;
                default:
-                       
+                   throw new RuntimeException("Unhandled handler mode: " + mode);
                }
-
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()
-        */
-       /** {@inheritDoc} */
        @Override
        public boolean performFinish() {
-               ICdmDataSource dataSource;
-               switch(mode) {
-               case EDIT:                      
-                       dataSource = dataSourcePage.getUpdatedDataSource();
-                       if(dataSourceName.equals(dataSource.getName())) {
-                               CdmDataSourceRepository.update(dataSourceName, dataSource);
-                       } else {
-                               CdmDataSourceRepository.replace(dataSourceName, dataSource);
-                       }
-                       return true;                    
-               case CLONE:
-                       dataSource = dataSourcePage.getUpdatedDataSource();
-                       CdmDataSourceRepository.save(dataSourcePage.getDataSourceName(), dataSource);
-                       return true;
-               case CREATE:
-                       if(dataSourceSelectionPage.getCredentialsWizardPage() != null){
-                               CdmDataSourceCredentialsWizardPage credentialsWizardPage = dataSourceSelectionPage.getCredentialsWizardPage();                          
-                               CdmDataSourceRepository.save(dataSourceSelectionPage.getDataSourceName(), credentialsWizardPage.getUpdatedDataSource());
-                               return true;
-                       } else {
-                               throw new IllegalStateException("Expected a datasource credentials page to exist");
-                       }
-               default:
-                       return false;
-               }
-
+               try {
+            ICdmDataSource dataSource;
+            switch(mode) {
+            case EDIT:
+               dataSource = dataSourcePage.getUpdatedDataSource();
+               if(dataSourceName.equals(dataSource.getName())) {
+                       CdmDataSourceRepository.update(dataSourceName, dataSource);
+               } else {
+                       CdmDataSourceRepository.replace(dataSourceName, dataSource);
+               }
+               return true;
+            case CLONE:
+               dataSource = dataSourcePage.getUpdatedDataSource();
+               CdmDataSourceRepository.save(dataSourcePage.getDataSourceName(), dataSource);
+               return true;
+            case CREATE:
+               if(dataSourceSelectionPage.getCredentialsWizardPage() != null){
+                       CdmDataSourceCredentialsWizardPage credentialsWizardPage = dataSourceSelectionPage.getCredentialsWizardPage();
+                       CdmDataSourceRepository.save(dataSourceSelectionPage.getDataSourceName(), credentialsWizardPage.getUpdatedDataSource());
+                       return true;
+               } else {
+                       throw new IllegalStateException("Expected a datasource credentials page to exist");
+               }
+            default:
+               return false;
+            }
+        } catch (Throwable e) {
+            MessagingUtils.errorDialog("Error when persisting change",
+                    this,
+                    e.getMessage(),
+                    TaxeditorLocalPlugin.PLUGIN_ID,
+                    e,
+                    true);
+            return false;
+        }
        }
-       
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#canFinish()
-        */
-       /** {@inheritDoc} */
+
        @Override
        public boolean canFinish() {
                switch(mode) {
-               case EDIT:      
+               case EDIT:
                case CLONE:
                        return dataSourcePage.isPageComplete();
                case CREATE:
@@ -153,10 +139,9 @@ public class CdmDataSourceWizard extends Wizard {
                        if(dataSourceSelectionPage.getCredentialsWizardPage() != null){
                                result &= dataSourceSelectionPage.getCredentialsWizardPage().isPageComplete();
                        }
-                       return result;          
+                       return result;
                default:
                        return false;
                }
-
        }
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/handler/ReconnectHandlerE4.java b/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/handler/ReconnectHandlerE4.java
new file mode 100755 (executable)
index 0000000..232b12c
--- /dev/null
@@ -0,0 +1,43 @@
+/**
+* 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.local.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+import eu.etaxonomy.taxeditor.local.server.RemotingLoginDialogLocal;
+import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author pplitzner
+ * @date 10.10.2017
+ */
+public class ReconnectHandlerE4 {
+
+    @Execute
+    public void execute(@Named(IServiceConstants.ACTIVE_SHELL)Shell shell, ESelectionService selService) {
+
+               RemotingLoginDialogLocal loginDialog = new RemotingLoginDialogLocal(shell,
+                       SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
+
+               loginDialog.open((ICdmRemoteSource) CdmStore.getActiveCdmSource(), true, true);
+               EventUtility.postEvent(WorkbenchEventConstants.RECONNECT, null);
+               selService.setSelection(new StructuredSelection());
+       }
+}
diff --git a/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/handler/ShowRemotingLoginWindowHandlerE4.java b/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/handler/ShowRemotingLoginWindowHandlerE4.java
new file mode 100755 (executable)
index 0000000..68dc09b
--- /dev/null
@@ -0,0 +1,39 @@
+/**
+* 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.local.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+import eu.etaxonomy.taxeditor.local.server.RemotingLoginDialogLocal;
+
+/**
+ * @author pplitzner
+ * @date 10.10.2017
+ */
+public class ShowRemotingLoginWindowHandlerE4 {
+
+    @Execute
+    public void execute(@Named(IServiceConstants.ACTIVE_SHELL)Shell shell, ESelectionService selService) {
+
+           RemotingLoginDialogLocal loginDialog = new RemotingLoginDialogLocal(shell,
+                   SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
+           loginDialog.open();
+        EventUtility.postEvent(WorkbenchEventConstants.RECONNECT, null);
+        selService.setSelection(new StructuredSelection());
+       }
+}
diff --git a/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/handler/SwitchUserHandlerE4.java b/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/handler/SwitchUserHandlerE4.java
new file mode 100755 (executable)
index 0000000..d77f333
--- /dev/null
@@ -0,0 +1,60 @@
+/**
+* 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.local.handler;
+
+import java.util.Collection;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.model.application.MApplication;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IPerspectiveRegistry;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+
+import eu.etaxonomy.taxeditor.local.server.RemotingLoginDialogLocal;
+import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author pplitzner
+ * @date 10.10.2017
+ */
+public class SwitchUserHandlerE4 {
+
+    @Execute
+    public void execute(@Named(IServiceConstants.ACTIVE_SHELL)Shell shell, EModelService modelService, EPartService partService, MApplication application) {
+        Collection<MPart> parts = partService.getParts();
+        String partId = "eu.etaxonomy.taxeditor.navigation.navigator";
+        for (MPart part : parts) {
+            partService.hidePart(part);
+        }
+
+               RemotingLoginDialogLocal loginDialog = new RemotingLoginDialogLocal(shell,
+                       SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
+
+               loginDialog.open((ICdmRemoteSource) CdmStore.getActiveCdmSource(), false, false);
+
+               IWorkbench workbench = PlatformUI.getWorkbench();
+        IWorkbenchWindow window = workbench
+                 .getActiveWorkbenchWindow();
+
+        IPerspectiveRegistry registry = workbench.getPerspectiveRegistry();
+        IWorkbenchPage page = window.getActivePage();
+        page.resetPerspective();
+       }
+}
diff --git a/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/server/CdmStoreConnectorLocal.java b/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/server/CdmStoreConnectorLocal.java
new file mode 100755 (executable)
index 0000000..2a5131a
--- /dev/null
@@ -0,0 +1,297 @@
+/**
+ * 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.local.server;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.concurrent.CancellationException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.swt.widgets.Display;
+import org.springframework.core.io.Resource;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
+import eu.etaxonomy.cdm.api.application.ICdmRepository;
+import eu.etaxonomy.cdm.config.CdmSourceException;
+import eu.etaxonomy.cdm.config.ICdmSource;
+import eu.etaxonomy.cdm.database.DbSchemaValidation;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
+import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
+import eu.etaxonomy.cdm.model.name.Rank;
+import eu.etaxonomy.cdm.model.term.init.TermLoader;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
+import eu.etaxonomy.taxeditor.store.CdmAuthenticationException;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.LoginManager;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 8, 2010
+ */
+public class CdmStoreConnectorLocal extends Job {
+    private final Display display;
+    private final ICdmSource cdmSource;
+    private DbSchemaValidation dbSchemaValidation;
+    private final Resource applicationContextBean;
+
+    public CdmStoreConnectorLocal(Display display,
+            ICdmSource cdmSource,
+            DbSchemaValidation dbSchemaValidation,
+            Resource applicationContextBean) {
+
+        super(String.format(Messages.CdmStoreConnector_CREATING_DATAMODEL, cdmSource));
+        this.display = display;
+        this.cdmSource = cdmSource;
+        this.dbSchemaValidation = dbSchemaValidation;
+        this.applicationContextBean = applicationContextBean;
+    }
+
+    @Override
+    public IStatus run(final IProgressMonitor monitor) {
+
+        monitor.beginTask(getConnectionMessage(), 10);
+
+        // check if database is up and running
+        checkDatabaseReachable(monitor);
+
+        if (!monitor.isCanceled()) {
+            // check if the datasource actually holds data
+            checkIsNonEmptyCdmDatabase(monitor);
+        }
+
+        if (dbSchemaValidation != DbSchemaValidation.CREATE
+                && !monitor.isCanceled()) {
+            // if we do not create the datasource, we want to check if the
+            // datasource is compatible with this editor
+            checkDbSchemaVersionCompatibility(monitor);
+        }
+
+        // we are done with our low level checking and will free resources now
+        cdmSource.closeOpenConnections();
+
+        if (!monitor.isCanceled()) {
+            CdmStore.close(monitor);
+        }
+
+        ICdmRepository applicationController = null;
+
+        if (!monitor.isCanceled()) {
+            CdmProgressMonitorAdapter subprogressMonitor = CdmProgressMonitorAdapter
+                    .CreateSubMonitor(monitor, 7);
+            // This is where we instantiate the application controller
+            int oldPriority = Thread.currentThread().getPriority();
+            try {
+                Thread.currentThread().setPriority(10);
+                applicationController = getApplicationController(cdmSource,subprogressMonitor);
+                MessagingUtils.informationDialog(Messages.CdmStoreConnector_SUCCESS, Messages.CdmStoreConnector_DATA_MODEL_CREATION_SUCCESSFUL);
+                //FIXME E4 migrate or delete because data source view is not used anymore
+//                CdmDataSourceViewPartE4 dataSourceView = (CdmDataSourceViewPartE4) WorkbenchUtility.getE4WrappedPart(AbstractUtility.getView("eu.etaxonomy.taxeditor.view.datasource", false));
+//                if(dataSourceView!=null){
+//                    dataSourceView.refresh();
+//                }
+                EventUtility.postEvent(WorkbenchEventConstants.REFRESH_DATASOURCE, true);
+                return Status.OK_STATUS;
+            } catch (Exception e) {
+                if(! causeIsCancelationExceptionRecursive(e)){
+                    MessagingUtils.errorDialog(Messages.CdmStoreConnector_COULD_NOT_CREATE_DATAMODEL, CdmStoreConnectorLocal.class,
+                               String.format(Messages.CdmStoreConnector_ERROR_DURING_DATAMODEL_CREATION, cdmSource.getName()), TaxeditorStorePlugin.PLUGIN_ID, e, true);
+                    return Status.CANCEL_STATUS;
+                }
+            } finally {
+                monitor.done();
+                Thread.currentThread().setPriority(oldPriority);
+            }
+        }
+        return Status.CANCEL_STATUS;
+    }
+
+    public void start(final RemotingLoginDialogLocal loginDialog) {
+        // hide login dialog and start connection dialog
+        loginDialog.setMessage(null);
+        loginDialog.hide(true);
+
+        ProgressMonitorDialog dialog = new ProgressMonitorDialog(AbstractUtility.getShell());
+
+        try {
+            dialog.run(true, true, new IRunnableWithProgress() {
+
+                @Override
+                public void run(final IProgressMonitor monitor) {
+                    try {
+                        monitor.beginTask(getConnectionMessage(), 7);
+
+                        // check if database is up and running
+                        checkDatabaseReachable(monitor);
+
+                        // check if the datasource actually holds data
+                        checkIsNonEmptyCdmDatabase(monitor);
+
+                        if (dbSchemaValidation != DbSchemaValidation.CREATE) {
+                            // if we do not create the datasource, we want to check if the
+                            // datasource is compatible with this editor
+                            checkDbSchemaVersionCompatibility(monitor);
+                        }
+
+                        // we are done with our low level checking and will free resources now
+                        cdmSource.closeOpenConnections();
+
+                        display.syncExec(new Runnable() {
+                            @Override
+                            public void run() {
+                                // close the current context
+                                CdmStore.close(monitor, false);
+                            }
+                        });
+
+                        CdmApplicationRemoteController applicationController = null;
+
+                        if (!monitor.isCanceled()) {
+                            CdmProgressMonitorAdapter subprogressMonitor = CdmProgressMonitorAdapter
+                                    .CreateSubMonitor(monitor, 3);
+                            // genrerate new application controller
+                            applicationController = getApplicationController(cdmSource, subprogressMonitor);
+                        }
+
+                        if (!monitor.isCanceled()) {
+                            CdmStore.setInstance(applicationController, cdmSource);
+                            CdmStore.getTermManager().reset();
+                            monitor.subTask(Messages.CdmStoreConnector_AUTHENTICATING_USER);
+                            display.syncExec(()-> {
+                                try {
+                                    // create new security context
+                                    CdmStore.getLoginManager().doAuthenticate(loginDialog.getUsername(), loginDialog.getPassword());
+                                    //loginDialog.onComplete();
+                                    CdmStore.getContextManager().notifyContextStart();
+                                    loginDialog.onComplete();
+                                    //TODO AM: is this necessary to be done on display thread?
+                                    new TermLoader().unloadAllTerms();
+                                    Rank.initDefaultTerms();
+                                    NomenclaturalStatusType.initDefaultTerms();
+                                    Language.getDefaultLanguage();
+                                } catch(CdmAuthenticationException cae) {
+                                    loginDialog.hide(false);
+                                    loginDialog.setMessage(LoginManager.INCORRECT_CREDENTIALS_MESSAGE);
+                                }
+                            });
+                        } else {
+                            throw new RuntimeException("Login cancelled");
+                        }
+                    } finally {
+                        monitor.done();
+                    }
+                }
+            });
+        } catch (InvocationTargetException e) {
+            loginDialog.hide(false);
+            loginDialog.setMessage(e.getMessage());
+        } catch (InterruptedException e) {
+            loginDialog.hide(false);
+            loginDialog.setMessage(e.getMessage());
+        }
+    }
+
+    private CdmApplicationRemoteController getApplicationController(ICdmSource cdmSource, CdmProgressMonitorAdapter subprogressMonitor) {
+        if(cdmSource instanceof ICdmRemoteSource) {
+            return CdmApplicationRemoteController.NewInstance((ICdmRemoteSource)cdmSource,
+                    subprogressMonitor,
+                    null);
+        } else {
+            throw new UnsupportedOperationException("Cannot create application controller for " + cdmSource.getName());
+        }
+    }
+
+    private String getConnectionMessage() {
+        return cdmSource.getConnectionMessage();
+    }
+
+    private void checkDbSchemaVersionCompatibility(IProgressMonitor monitor) {
+        monitor.subTask(Messages.CdmStoreConnector_CHECK_IF_EDITOR_IS_COMPATIBLE);
+        String dbSchemaVersion;
+
+        String message = null;
+        try {
+            dbSchemaVersion = cdmSource.getDbSchemaVersion();
+            // we assume that empty dbSchemaVersion means an empty database and
+            // skip version checking
+
+            if(dbSchemaVersion != null) {
+                int compareVersion = CdmMetaData.compareVersion(dbSchemaVersion, CdmMetaData.getDbSchemaVersion(), 3, null);
+                // if the datasource version is greater than the taxeditor compatible version then the taxeditor needs to
+                // be updated else the datasource needs to be updated
+                if(compareVersion > 0) {
+                    message = Messages.CdmStoreConnector_UPDATE_EDITOR_OR_CHOOSE_COMPATIBLE_DATASOURCE;
+                } else if (compareVersion < 0) {
+                    message = Messages.CdmStoreConnector_UPDATE_DATASOUREC_OR_CHOOSE_NEW_DATASOURCE;
+                }
+            }
+            monitor.worked(1);
+        } catch (CdmSourceException e) {
+            //
+        }
+
+        if (message != null) {
+            // Show an error message
+            MessagingUtils
+            .messageDialog(
+                    Messages.CdmStoreConnector_COMPATIBILITY_CHECK_FAILED,
+                    this,
+                    String.format(Messages.CdmStoreConnector_SCHEME_NOT_COMPATIBLE, cdmSource, message),
+                            null);
+
+            monitor.setCanceled(true);
+        }
+    }
+
+    private void checkIsNonEmptyCdmDatabase(IProgressMonitor monitor) {
+        monitor.subTask(Messages.CdmStoreConnector_CHECK_IF_NON_EMPTY);
+        boolean isDbEmpty = false;
+        try {
+            isDbEmpty = cdmSource.isDbEmpty();
+        } catch (CdmSourceException e) {
+            isDbEmpty = true;
+        }
+        if(isDbEmpty) {
+            dbSchemaValidation = DbSchemaValidation.CREATE;
+        }
+    }
+
+    private boolean causeIsCancelationExceptionRecursive(Throwable throwable){
+        if(throwable == null){
+            return false;
+        }else if(throwable instanceof CancellationException){
+            return true;
+        }else{
+            return causeIsCancelationExceptionRecursive(throwable.getCause());
+        }
+    }
+
+    private void checkDatabaseReachable(IProgressMonitor monitor) {
+        try {
+            monitor.subTask(Messages.CdmStoreConnector_CHECK_IF_REACHABLE);
+            cdmSource.checkConnection();
+            monitor.worked(1);
+        } catch (CdmSourceException e) {
+            MessagingUtils.messageDialog(Messages.CdmStoreConnector_COULD_NOT_CONNECT_TO_CHOSEN_DATASOURCE,
+                    this, Messages.CdmStoreConnector_REASON + e.getMessage(), e);
+            monitor.setCanceled(true);
+        }
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/server/CdmStoreLocal.java b/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/server/CdmStoreLocal.java
new file mode 100755 (executable)
index 0000000..79e6b07
--- /dev/null
@@ -0,0 +1,100 @@
+/**
+* Copyright (C) 2020 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.local.server;
+
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.swt.widgets.Display;
+import org.springframework.core.io.Resource;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
+import eu.etaxonomy.cdm.cache.CdmRemoteCacheManager;
+import eu.etaxonomy.cdm.config.ICdmSource;
+import eu.etaxonomy.cdm.database.DbSchemaValidation;
+import eu.etaxonomy.taxeditor.local.CdmServer;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since Sep 18, 2020
+ */
+public class CdmStoreLocal extends CdmStore {
+
+    protected static CdmStoreConnectorLocal job;
+    private static CdmServer managedServer;
+
+    protected CdmStoreLocal(CdmApplicationRemoteController repository, ICdmSource cdmSource) {
+        super(repository, cdmSource);
+    }
+
+    /**
+     * Initialize with a specific datasource
+     */
+    public static void connect(ICdmSource cdmSource) {
+        connect(cdmSource, DEFAULT_DB_SCHEMA_VALIDATION,
+                DEFAULT_APPLICATION_CONTEXT);
+    }
+
+    public static void connect(ICdmSource cdmSource, RemotingLoginDialogLocal loginDialog) {
+        connect(cdmSource,
+                DEFAULT_DB_SCHEMA_VALIDATION,
+                DEFAULT_APPLICATION_CONTEXT,
+                loginDialog);
+    }
+
+    /**
+     * Initialize and provide
+     */
+    private static void connect(final ICdmSource cdmSource,
+            final DbSchemaValidation dbSchemaValidation,
+            final Resource applicationContextBean) {
+
+        MessagingUtils.info("Connecting to datasource: " + cdmSource);
+
+        job = new CdmStoreConnectorLocal(Display.getDefault(), cdmSource,
+                dbSchemaValidation, applicationContextBean);
+        job.setUser(true);
+        job.setPriority(Job.BUILD);
+        job.schedule();
+    }
+
+    private static void connect(final ICdmSource cdmSource,
+            final DbSchemaValidation dbSchemaValidation,
+            final Resource applicationContextBean,
+            RemotingLoginDialogLocal remotingLoginDialog) {
+        RemotingLoginDialogLocal loginDialog = remotingLoginDialog;
+        if(isActive()) {
+            // before we connect we clear the entity caches and the sessions
+           CdmRemoteCacheManager.removeEntityCaches();
+            if(getCurrentSessionManager(true) != null) {
+                getCurrentSessionManager(true).disposeAll();
+            }
+        }
+        MessagingUtils.info("Connecting to datasource: " + cdmSource);
+
+        job = new CdmStoreConnectorLocal(Display.getDefault(),
+                cdmSource,
+                dbSchemaValidation,
+                applicationContextBean);
+        job.start(loginDialog);
+
+    }
+
+    public static boolean isConnecting() {
+        return job != null && job.getState() == Job.RUNNING;
+    }
+
+    public static void setManagedServer(CdmServer server) {
+        managedServer = server;
+    }
+
+    public static CdmServer getManagedServer() {
+        return managedServer;
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/server/RemotingLoginDialogLocal.java b/eu.etaxonomy.taxeditor.local/src/main/java/eu/etaxonomy/taxeditor/local/server/RemotingLoginDialogLocal.java
new file mode 100755 (executable)
index 0000000..a106c3a
--- /dev/null
@@ -0,0 +1,631 @@
+/**
+ * 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.local.server;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.events.IExpansionListener;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.progress.IProgressConstants;
+import org.eclipse.wb.swt.SWTResourceManager;
+
+import eu.etaxonomy.cdm.config.CdmSourceException;
+import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
+import eu.etaxonomy.cdm.persistence.permission.Role;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.local.CdmEmbeddedServerException;
+import eu.etaxonomy.taxeditor.local.CdmServer;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.remoting.server.CdmServerUtils;
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfo;
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfo.CdmInstanceInfo;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
+import eu.etaxonomy.taxeditor.ui.dialog.RemotingLoginDialog;
+
+/**
+ * @author cmathew
+ * @date 20 Jan 2015
+ */
+public class RemotingLoginDialogLocal extends RemotingLoginDialog {
+
+    private Logger logger = LogManager.getLogger(getClass());
+
+
+    /**
+     * Create the dialog.
+     * @param parent
+     * @param style
+     */
+    public RemotingLoginDialogLocal(Shell parent, int style) {
+        super(parent, style);
+        //setText(Messages.RemotingLoginDialog_LABEL_LOGIN);
+        this.isLocal = true;
+    }
+
+    /**
+     * Create contents of the dialog.
+     */
+    @Override
+    protected void createContents() {
+        shlConnect = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL | SWT.RESIZE | SWT.CENTER);
+        shlConnect.setText(LABEL_CONNECT);
+        shlConnect.setLayout(new FillLayout(SWT.HORIZONTAL));
+
+        remotingComposite = new Composite(shlConnect, SWT.NONE);
+        remotingComposite.setLayout(new GridLayout(1, false));
+
+        //server
+        Composite cdmServerComposite = new Composite(remotingComposite, SWT.NONE);
+        GridData gd_cdmServerComposite = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+        cdmServerComposite.setLayoutData(gd_cdmServerComposite);
+        cdmServerComposite.setLayout(new GridLayout(4, false));
+
+        Label lblCdmServer = new Label(cdmServerComposite, SWT.NONE);
+        lblCdmServer.setText(Messages.RemotingLoginDialog_LABEL_CDM_SERVER);
+        lblCdmServer.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+
+        comboCdmServer = new Combo(cdmServerComposite, SWT.READ_ONLY);
+        comboCdmServer.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                onRefreshCdmServer();
+            }
+        });
+
+        GridData gd_comboCdmServer = new GridData(SWT.FILL, SWT.CENTER, true, true, 1, 1);
+
+        comboCdmServer.setLayoutData(gd_comboCdmServer);
+        comboCdmServer.select(0);
+
+        txtCdmServerStatus = new Text(cdmServerComposite, SWT.BORDER);
+        txtCdmServerStatus.setBackground(SWTResourceManager.getColor(SWT.COLOR_INFO_BACKGROUND));
+        txtCdmServerStatus.setEditable(false);
+        GridData gd_txtCdmServerStatus = new GridData(SWT.FILL, SWT.CENTER, true, true, 1, 1);
+        gd_txtCdmServerStatus.minimumHeight = CONTROLS_MIN_HEIGHT;
+        txtCdmServerStatus.setLayoutData(gd_txtCdmServerStatus);
+
+        btnCdmServerRefresh = new Button(cdmServerComposite, SWT.NONE);
+        btnCdmServerRefresh.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                onRefreshCdmServer();
+            }
+        });
+        GridData gd_btnCdmServerRefresh = new GridData(SWT.FILL, SWT.CENTER, true, true, 1, 1);
+        gd_btnCdmServerRefresh.minimumHeight = CONTROLS_MIN_HEIGHT;
+        btnCdmServerRefresh.setLayoutData(gd_btnCdmServerRefresh);
+        btnCdmServerRefresh.setText(Messages.RemotingLoginDialog_LABEL_REFRESH);
+
+        //instance
+        Label lblCdmInstance = new Label(cdmServerComposite, SWT.NONE);
+        GridData gd_lblCdmInstance = new GridData(SWT.RIGHT, SWT.CENTER, false, true, 1, 1);
+        //gd_lblCdmInstance.heightHint = 30;
+        lblCdmInstance.setLayoutData(gd_lblCdmInstance);
+        lblCdmInstance.setText(Messages.RemotingLoginDialog_LABEL_CDM_INSTANCE);
+
+        comboCdmInstance = new Combo(cdmServerComposite, SWT.READ_ONLY);
+        comboCdmInstance.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                onRefreshCdmInstance();
+            }
+        });
+
+        GridData gd_comboCdmInstance = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
+        gd_comboCdmInstance.minimumWidth = COMBO_MIN_WIDTH;
+
+        comboCdmInstance.setLayoutData(gd_comboCdmInstance);
+        comboCdmInstance.select(0);
+
+        txtCdmInstanceStatus = new Text(cdmServerComposite, SWT.BORDER);
+        txtCdmInstanceStatus.setBackground(SWTResourceManager.getColor(SWT.COLOR_INFO_BACKGROUND));
+        txtCdmInstanceStatus.setEditable(false);
+        GridData gd_txtCdmInstanceStatus = new GridData(SWT.FILL, SWT.CENTER, true, true, 1, 1);
+        gd_txtCdmInstanceStatus.minimumHeight = CONTROLS_MIN_HEIGHT;
+        txtCdmInstanceStatus.setLayoutData(gd_txtCdmInstanceStatus);
+
+        btnCdmInstanceRefresh = new Button(cdmServerComposite, SWT.FLAT);
+        btnCdmInstanceRefresh.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                onRefreshCdmInstance();
+            }
+        });
+        GridData gd_btnCdmInstanceRefresh = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
+        gd_btnCdmInstanceRefresh.minimumHeight = CONTROLS_MIN_HEIGHT;
+        btnCdmInstanceRefresh.setLayoutData(gd_btnCdmInstanceRefresh);
+        btnCdmInstanceRefresh.setText(Messages.RemotingLoginDialog_LABEL_REFRESH);
+
+        //login + connect
+        loginComposite = new Composite(remotingComposite, SWT.NONE);
+        GridData gd_loginComposite = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+        loginComposite.setLayoutData(gd_loginComposite);
+        GridLayout gl_loginComposite = new GridLayout(6, false);
+        gl_loginComposite.marginTop = 5;
+        loginComposite.setLayout(gl_loginComposite);
+
+        lblLogin = new Label(loginComposite, SWT.CENTER);
+        GridData gd_lblLogin = new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1);
+        lblLogin.setLayoutData(gd_lblLogin);
+        lblLogin.setText(Messages.RemotingLoginDialog_LABEL_LOGIN_COLON);
+
+        txtLogin = new Text(loginComposite, SWT.BORDER);
+        GridData gd_txtLogin = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1);
+        gd_txtLogin.minimumWidth = 80;
+        txtLogin.setLayoutData(gd_txtLogin);
+
+        lblPassword = new Label(loginComposite, SWT.CENTER);
+        lblPassword.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+        lblPassword.setText(Messages.RemotingLoginDialog_LABEL_PASSWORD);
+
+        txtPassword = new Text(loginComposite, SWT.BORDER | SWT.PASSWORD);
+        GridData gd_txtPassword = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1);
+        gd_txtPassword.minimumWidth = 80;
+        txtPassword.setLayoutData(gd_txtPassword);
+        @SuppressWarnings("unused")
+        Label nope = new Label(loginComposite, SWT.NONE);
+        txtPassword.addKeyListener(new KeyAdapter() {
+               @Override
+               public void keyPressed(KeyEvent e) {
+                       if(e.character==SWT.CR){
+                           if(btnConnect.getText().equals(LABEL_CONNECT)){
+                        onConnectButtonPressed();
+                    }
+                       }
+               }
+        });
+
+        btnConnect = new Button(loginComposite, SWT.FLAT);
+        btnConnect.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
+        btnConnect.addSelectionListener(new SelectionAdapter() {
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               onConnectButtonPressed();
+                       }
+               });
+        btnConnect.setText(LABEL_CONNECT);
+
+        //rememberMe + default values
+        btnRememberMe = new Button(loginComposite, SWT.CHECK);
+        btnRememberMe.setSelection(true);
+        GridData gd_btnRememberMe = new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1);
+        btnRememberMe.setLayoutData(gd_btnRememberMe);
+        btnRememberMe.setText(Messages.RemotingLoginDialog_LABEL_REMEMBER_ME);
+
+        lblDefaultLogin = new Label(loginComposite, SWT.NONE);
+        GridDataFactory.fillDefaults().span(4, 1).align(SWT.TRAIL, SWT.CENTER).applyTo(lblDefaultLogin);
+        lblDefaultLogin.setText(String.format(Messages.RemotingLoginDialog_DEFAULT_LOGIN, DEFAULT_USER, DEFAULT_PASS));
+        lblDefaultLogin.setVisible(false);
+
+        styledTxtMessage = new StyledText(remotingComposite, SWT.NONE);
+        styledTxtMessage.setBackground(SWTResourceManager.getColor(SWT.COLOR_INFO_BACKGROUND));
+        styledTxtMessage.setForeground(SWTResourceManager.getColor(SWT.COLOR_DARK_RED));
+        styledTxtMessage.setSelectionBackground(SWTResourceManager.getColor(SWT.COLOR_LIST_SELECTION_TEXT));
+        styledTxtMessage.setSelectionForeground(SWTResourceManager.getColor(SWT.COLOR_DARK_RED));
+        styledTxtMessage.setDoubleClickEnabled(false);
+        styledTxtMessage.setEditable(false);
+        styledTxtMessage.setWordWrap(true);
+
+        GridData gd_styledTxtMessage = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1);
+        gd_styledTxtMessage.exclude = true;
+        gd_styledTxtMessage.minimumHeight = MESSAGE_HEIGHT;
+
+        styledTxtMessage.setLayoutData(gd_styledTxtMessage);
+
+        //Advanced
+        expandableCompositeAdvanced = new ExpandableComposite(remotingComposite, SWT.NONE, ExpandableComposite.TWISTIE);
+        GridData gd_xpndblcmpstAdvanced = new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1);
+        expandableCompositeAdvanced.setLayoutData(gd_xpndblcmpstAdvanced);
+        expandableCompositeAdvanced.addExpansionListener(new IExpansionListener() {
+            @Override
+            public void expansionStateChanged(ExpansionEvent e) {
+                shlConnect.pack(true);
+            }
+            @Override
+            public void expansionStateChanging(ExpansionEvent e) {
+            }
+        });
+        expandableCompositeAdvanced.setText(Messages.RemotingLoginDialog_LABEL_ADVANCED);
+        expandableCompositeAdvanced.setExpanded(true);
+
+        compAdvanced = new Composite(expandableCompositeAdvanced, SWT.NONE);
+        expandableCompositeAdvanced.setClient(compAdvanced);
+        compAdvanced.setLayout(new GridLayout(4, false));
+
+        lblPort = new Label(compAdvanced, SWT.CENTER);
+        lblPort.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+        lblPort.setText(Messages.RemotingLoginDialog_LABEL_PORT);
+
+        txtPort = new Text(compAdvanced, SWT.BORDER);
+        GridData gd_txtPort = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1);
+        gd_txtPort.minimumWidth = 50;
+        txtPort.setLayoutData(gd_txtPort);
+
+        lblServerCdmlibVersion = new Label(compAdvanced, SWT.CENTER);
+        lblServerCdmlibVersion.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+        lblServerCdmlibVersion.setText(Messages.RemotingLoginDialog_LABEL_SERVER_CDMLIB_VERSION);
+
+        txtServerCdmlibVersion = new Text(compAdvanced, SWT.BORDER);
+        txtServerCdmlibVersion.setEditable(false);
+        txtServerCdmlibVersion.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
+
+        btnStopServer = new Button(compAdvanced, SWT.FLAT);
+        btnStopServer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
+        btnStopServer.addMouseListener(new MouseAdapter() {
+            @Override
+            public void mouseUp(MouseEvent e) {
+                onStopManagedServer();
+            }
+        });
+        btnStopServer.setText(Messages.RemotingLoginDialog_LABEL_STOP_MANAGED_SERVER);
+
+        lblEditorCdmlibVersion = new Label(compAdvanced, SWT.CENTER);
+        lblEditorCdmlibVersion.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+        lblEditorCdmlibVersion.setText(Messages.RemotingLoginDialog_LABEL_EDITOR_CDMLIB_VERSION);
+
+        txtEditorCdmlibVersion = new Text(compAdvanced, SWT.BORDER);
+        txtEditorCdmlibVersion.setEditable(false);
+        txtEditorCdmlibVersion.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+        addEmptyCells(2);
+
+        lblServerSchemaVersion = new Label(compAdvanced, SWT.CENTER);
+        lblServerSchemaVersion.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+        lblServerSchemaVersion.setText(Messages.RemotingLoginDialog_LABEL_SERVER_CDM_VERSION);
+
+        txtServerSchemaVersion = new Text(compAdvanced, SWT.BORDER);
+        txtServerSchemaVersion.setEditable(false);
+        txtServerSchemaVersion.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+        addEmptyCells(2);
+
+        lblEditorCdmVersion = new Label(compAdvanced, SWT.CENTER);
+        lblEditorCdmVersion.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+        lblEditorCdmVersion.setText(Messages.RemotingLoginDialog_LABEL_EDITOR_CDM_VERSION);
+
+        txtEditorCdmVersion = new Text(compAdvanced, SWT.BORDER);
+        txtEditorCdmVersion.setEditable(false);
+        txtEditorCdmVersion.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+
+
+        this.comboCdmServer.setEnabled(this.allowServerChange);
+        this.comboCdmInstance.setEnabled(this.allowInstanceChange);
+    }
+
+
+
+
+
+       @Override
+    protected void onConnectButtonPressed() {
+               if(selectedServerInfo.isLocalhostMgd() && !isSelectedCdmInstanceRunningInManagedServer()) {
+                       startManagedServer();
+               } else {
+                       connect();
+                       if (CdmStore.isActive() && CdmStore.currentAuthentiationHasOneOfRoles(Role.ROLE_REMOTING)){
+                           PreferencesUtil.setNomenclaturalCodePreferences();
+                       }
+               }
+       }
+
+
+
+    private void updateManagedServerControls() {
+        if(selectedServerInfo.isLocalhostMgd()) {
+            if(isSelectedCdmInstanceRunningInManagedServer()) {
+                txtCdmInstanceStatus.setText(STATUS_STARTED);
+            } else {
+                txtCdmInstanceStatus.setText(STATUS_NOT_STARTED);
+            }
+            btnConnect.setEnabled(true);
+            selectedServerInfo.setPort(getManagedServerPort());
+            updatePort();
+        }
+
+        if(isManagedServerRunning()) {
+            btnStopServer.setEnabled(true);
+        } else {
+            btnStopServer.setEnabled(false);
+        }
+    }
+
+    private boolean isManagedServerRunning() {
+        return CdmStoreLocal.getManagedServer() != null && CdmStoreLocal.getManagedServer().isAlive();
+    }
+
+    private boolean isSelectedCdmInstanceRunningInManagedServer() {
+        return CdmStoreLocal.getManagedServer() != null &&
+                CdmStoreLocal.getManagedServer().isAlive() &&
+                selectedServerInfo.isLocalhostMgd() &&
+                CdmStoreLocal.getManagedServer().getDataSourceName().equals(selectedCdmInstance.getName());
+    }
+
+    private void startManagedServer() {
+        if(isManagedServerRunning()) {
+            if(CdmStoreLocal.getManagedServer().getDataSourceName().equals(selectedCdmInstance.getName())) {
+                return;
+            } else {
+                Display.getDefault().syncExec(new Runnable() {
+                    @Override
+                    public void run() {
+                        onStopManagedServer();
+                    }
+                });
+            }
+        }
+
+        boolean forceSchemaCreate = !schemaExists(selectedCdmInstance);
+        boolean forceSchemaUpdate = LABEL_UPDATE_SCHEMA_VERSION.equals(btnConnect.getText());
+
+        Job job = new Job(Messages.RemotingLoginDialog_JOB_SERVER_LAUNCH) {
+
+            @Override
+            public IStatus run(IProgressMonitor monitor) {
+                String mgdServerConfigFileName = "mgd.datasources.xml"; //$NON-NLS-1$
+                String config = CdmServerUtils.convertEditorToServerConfig();
+                int maxUnits = 50;
+                monitor.beginTask(Messages.RemotingLoginDialog_TASK_LAUNCHING_SERVER, maxUnits);
+                try {
+                    monitor.subTask(String.format(Messages.RemotingLoginDialog_GENERATING_CONFIG_FILE, selectedCdmInstance.getName()));
+                    File managedServerConfigFile = CdmServerUtils.writeManagedServerConfig(config, mgdServerConfigFileName);
+                    monitor.worked(1);
+
+
+                    CdmServer cdmServer = new CdmServer(selectedCdmInstance.getName(), managedServerConfigFile);
+
+//                    ICdmServer cdmServer = new CdmServer(selectedCdmInstance.getName(), managedServerConfigFile);
+                    cdmServer.setForceSchemaCreate(forceSchemaCreate);
+                    cdmServer.setForceSchemaUpdate(forceSchemaUpdate);
+                    CdmStoreLocal.setManagedServer(cdmServer);
+                    monitor.subTask(Messages.RemotingLoginDialog_STARTING_MGD_SERVER);
+                    cdmServer.start(false, RemotingLoginDialogLocal.this);
+                    int serverUnits = 0;
+
+                    // the following loop is a 'fake' progress monitoring where the progress
+                    // bar is advanced by one unit every second until maxUnits -2
+                    while(!CdmStoreLocal.getManagedServer().isStarted() && !CdmStoreLocal.getManagedServer().isFailed()) {
+                        if(serverUnits < maxUnits - 2) {
+                            try {
+                                Thread.sleep(1000);
+                            } catch (InterruptedException e) {
+                            }
+                            monitor.worked(1);
+                            serverUnits++;
+                        }
+                    }
+                    Display.getDefault().syncExec(()->{
+                                hide(false);
+                                updateManagedServerControls();
+                                connect();
+                    });
+                } catch (IOException ioe) {
+                    MessagingUtils.errorDialog(Messages.RemotingLoginDialog_ERROR_GENERATING_CONFIG_FILE,
+                            this,
+                            ioe.getMessage(),
+                            TaxeditorStorePlugin.PLUGIN_ID,
+                            ioe,
+                            true);
+                } catch (CdmEmbeddedServerException cese) {
+                    MessagingUtils.errorDialog(Messages.RemotingLoginDialog_ERROR_STARTING_SERVER,
+                            this,
+                            cese.getMessage(),
+                            TaxeditorStorePlugin.PLUGIN_ID,
+                            cese,
+                            true);
+                } finally {
+                    monitor.done();
+                }
+                // NOTE: Errors thrown during server startup are passed to the handleError() implementation
+                // TODO: is the above catch clause for CdmEmbeddedServerException still valuable?
+
+                return Status.OK_STATUS;
+            }
+       };
+
+        // configure the job
+        job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
+        job.setUser(true);
+        // schedule job
+        hide(true);
+        job.schedule();
+    }
+
+    private boolean schemaExists(CdmInstanceInfo instanceInfo) {
+        if (instanceInfo.getDataSource() != null){
+            try {
+                //TODO we need a new method in cdmlib to check for existing schema
+                String schemaVersion = instanceInfo.getDataSource().getDbSchemaVersion();
+                return schemaVersion != null;
+            } catch (CdmSourceException e) {
+                return false;
+            }
+        }else{
+            return true;
+        }
+    }
+
+    private String managedSchemaVersion(CdmInstanceInfo instanceInfo) throws CdmSourceException{
+        if (instanceInfo.getDataSource() != null){
+            return instanceInfo.getDataSource().getDbSchemaVersion();
+        }else{
+            throw new RuntimeException("ManagedSchemaVersion only available for managed server instances.");
+        }
+    }
+    private int compareSchemaVersion(CdmInstanceInfo instanceInfo) throws CdmSourceException {
+        return CdmMetaData.compareVersion(managedSchemaVersion(instanceInfo), CdmMetaData.getDbSchemaVersion(), 3, null);
+    }
+
+
+    private void onStopManagedServer() {
+        try {
+            CdmStoreLocal.getManagedServer().stop();
+        } catch (Exception e) {
+            MessagingUtils.errorDialog(Messages.RemotingLoginDialog_ERROR_STOPPING_SERVER,
+                    this,
+                    String.format(Messages.RemotingLoginDialog_COULD_NOT_STOP_SERVER, CdmStoreLocal.getManagedServer().getPort()),
+                    TaxeditorStorePlugin.PLUGIN_ID,
+                    e,
+                    true);
+        }
+        CdmStoreLocal.setManagedServer(null);
+        updateManagedServerControls();
+    }
+
+    private int getManagedServerPort() {
+        return CdmStoreLocal.getManagedServer() == null ? CdmServerInfo.NULL_PORT : CdmStoreLocal.getManagedServer().getPort();
+    }
+
+    @Override
+    protected void checkSelectedCdmInstance() {
+
+        if (selectedServerInfo.isLocalhostMgd()){
+            checkManagedSelectedInstance();
+        }else if (txtCdmServerStatus.getText().equals(STATUS_AVAILABLE)) {
+            compAdvanced.setEnabled(false);
+            boolean available = false;
+            String instanceStatus = STATUS_NOT_AVAILABLE;
+            String message = null;
+            try {
+                if(selectedServerInfo.pingInstance(selectedCdmInstance, getPort())) {
+                    instanceStatus = STATUS_AVAILABLE;
+                    available = true;
+                } else {
+                    instanceStatus = STATUS_NOT_AVAILABLE;
+                    available = false;
+                }
+
+                if(available) {
+                    txtServerSchemaVersion.setText(selectedServerInfo.getCdmRemoteSource(selectedCdmInstance, getPort()).getDbSchemaVersion());
+
+                    int compareDbSchemaVersion = selectedServerInfo.compareDbSchemaVersion(selectedCdmInstance, getPort());
+
+                    int compareCdmlibServicesVersion = 0;
+                    boolean disableServicesApiTimestampCheck =
+                            PreferencesUtil.getBooleanValue((IPreferenceKeys.DISABLE_SERVICES_API_TIMESTAMP_CHECK));
+                    if(!disableServicesApiTimestampCheck) {
+                        compareCdmlibServicesVersion = selectedServerInfo.compareCdmlibServicesVersion();
+                    }
+
+                    if(compareDbSchemaVersion > 0 || compareCdmlibServicesVersion > 0) {
+                        instanceStatus = STATUS_NOT_COMPATIBLE;
+                        available = false;
+                        message = MESG_COMPATIBLE_EDITOR_OLD;
+                    } else if(compareDbSchemaVersion < 0 || compareCdmlibServicesVersion < 0) {
+                        instanceStatus = STATUS_NOT_COMPATIBLE;
+                        available = false;
+                        message = MESG_COMPATIBLE_SERVER_OLD;
+                    } else {
+                        instanceStatus =  STATUS_AVAILABLE;
+                        available = true;
+                        message = ""; //$NON-NLS-1$
+                    }
+                }
+            } catch (Exception e) {
+                txtCdmInstanceStatus.setToolTipText(e.getMessage());
+            } finally {
+                lblDefaultLogin.setVisible(false);
+                btnConnect.setEnabled(available);
+                txtCdmInstanceStatus.setText(instanceStatus);
+                if(!StringUtils.isBlank(message)) {
+                    setMessage(message);
+                }
+            }
+        }
+    }
+
+    private void checkManagedSelectedInstance() {
+        boolean available = false;
+        String instanceStatus = STATUS_NOT_AVAILABLE;
+        String message = null;
+        String connect = LABEL_CONNECT;
+        Integer color = null;
+        String schemaVersion = CdmMetaData.getDbSchemaVersion();
+
+        if (!schemaExists(selectedCdmInstance)){
+            message = MESG_SCHEMA_MISSING;
+            connect = LABEL_CREATE_SCHEMA;
+            color = BTN_COLOR_ATTENTION;
+            schemaVersion = MESG_NO_SCHEMA;
+        } else {
+            int compare;
+            try {
+                schemaVersion = managedSchemaVersion(selectedCdmInstance);
+                compare = compareSchemaVersion(selectedCdmInstance);
+                if (compare > 0){
+                    instanceStatus = STATUS_NOT_COMPATIBLE;
+                    message = MESG_COMPATIBLE_EDITOR_OLD;
+                    available = false;
+                }else if (compare < 0){
+                    instanceStatus = STATUS_NOT_COMPATIBLE;
+                    message = MESG_UPDATE_SCHEMA_VERSION;
+                    available = true;
+                    connect = LABEL_UPDATE_SCHEMA_VERSION;
+                    color = BTN_COLOR_ATTENTION;
+                }else{
+                    available = true;
+                    instanceStatus = STATUS_AVAILABLE;
+                }
+            } catch (CdmSourceException e) {
+                available = false;
+            }
+        }
+
+        setManagedValues(available, instanceStatus, connect, color, schemaVersion);
+        setMessage(message);
+    }
+
+    private void setManagedValues(boolean available, String instanceStatus, String connect, Integer color,
+            String schemaVersion) {
+        Display.getDefault().syncExec(()->{
+            btnConnect.setEnabled(available);
+            btnConnect.setText(connect);
+            Color systemColor = null;
+            if(color != null) {
+                systemColor = Display.getCurrent().getSystemColor(color);
+            }
+            btnConnect.setBackground(systemColor);
+            btnConnect.requestLayout();
+            txtCdmInstanceStatus.setText(instanceStatus);
+            txtServerSchemaVersion.setText(schemaVersion);
+            lblDefaultLogin.setVisible(true);
+         });
+    }
+
+
+}
@@ -1,13 +1,12 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
-package eu.etaxonomy.taxeditor.view.datasource;
+package eu.etaxonomy.taxeditor.local.view.datasource;
 
 import java.util.List;
 
@@ -22,24 +21,19 @@ import org.eclipse.jface.viewers.Viewer;
  */
 public class CdmDataSourceContentProvider implements IStructuredContentProvider {
 
-       /**
-        * <p>dispose</p>
-        */
-       public void dispose() {
-               
+       @Override
+    public void dispose() {
        }
 
-       /** {@inheritDoc} */
-       public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-               
+       @Override
+    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }
 
-
-       /** {@inheritDoc} */
-       public Object[] getElements(Object inputElement) {
+       @Override
+    public Object[] getElements(Object inputElement) {
                if(inputElement instanceof List){
                        return ((List) inputElement).toArray();
                }
                return new Object[]{};
        }
-}
+}
\ No newline at end of file
@@ -7,8 +7,9 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.view.datasource;
+package eu.etaxonomy.taxeditor.local.view.datasource;
 
+import org.eclipse.jface.viewers.ILabelProviderListener;
 import org.eclipse.jface.viewers.ITableLabelProvider;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.swt.graphics.Image;
@@ -91,4 +92,28 @@ public class CdmDataSourceLabelProvider extends LabelProvider implements ITableL
                ICdmSource currentDataSource = CdmStore.getActiveCdmSource();
                return currentDataSource != null && currentDataSource.getName().equals(dataSource.getName());
        }
+
+    @Override
+    public void addListener(ILabelProviderListener listener) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void dispose() {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public boolean isLabelProperty(Object element, String property) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public void removeListener(ILabelProviderListener listener) {
+        // TODO Auto-generated method stub
+
+    }
 }
@@ -1,13 +1,13 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.view.datasource;
+package eu.etaxonomy.taxeditor.local.view.datasource;
 
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerComparator;
@@ -41,17 +41,17 @@ public class CdmDataSourceViewerComparator extends ViewerComparator {
                        direction = DESCENDING;
                }
        }
-       
+
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
                CdmMetaDataAwareDataSourceContainer d1 = (CdmMetaDataAwareDataSourceContainer) e1;
                CdmMetaDataAwareDataSourceContainer d2 = (CdmMetaDataAwareDataSourceContainer) e2;
-               
+
                ICdmSource cs1 = d1.getCdmSource();
                ICdmSource cs2 = d2.getCdmSource();
-               
+
                int result = 0;
-               
+
                switch (propertyIndex) {
                        case 9:
                                result = d1.getMetaData(CdmMetaDataPropertyName.DB_CREATE_NOTE).compareTo(d2.getMetaData(CdmMetaDataPropertyName.DB_CREATE_NOTE));
@@ -78,7 +78,7 @@ public class CdmDataSourceViewerComparator extends ViewerComparator {
                                if(cs1 instanceof ICdmDataSource && cs2 instanceof ICdmDataSource) {
                                        result = ((ICdmDataSource)cs1).getDatabase().compareTo(((ICdmDataSource)cs2).getDatabase());
                                }
-                               
+
                                break;
                        case 4:
                                if(cs1 instanceof ICdmDataSource && cs2 instanceof ICdmDataSource) {
@@ -108,7 +108,7 @@ public class CdmDataSourceViewerComparator extends ViewerComparator {
                        default:
                                result = d1.getCdmSource().getName().compareTo(d2.getCdmSource().getName());
                }
-                       
+
                // If descending order, flip the direction
                if (direction == DESCENDING) {
                        result = -result;
@@ -6,8 +6,7 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
-package eu.etaxonomy.taxeditor.view.datasource;
+package eu.etaxonomy.taxeditor.local.view.datasource;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -23,12 +22,9 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
  *
  * @author n.hoffmann
  * @created Sep 22, 2010
- * @version 1.0
  */
 public class CdmMetaDataAwareDataSourceContainer {
 
-
-
        /** Constant <code>DEFAULT_ENTRY="-"</code> */
        public static final String DEFAULT_ENTRY = "-";
 
@@ -42,27 +38,17 @@ public class CdmMetaDataAwareDataSourceContainer {
         * <p>Constructor for CdmMetaDataAwareDataSourceContainer.</p>
         *
         * @param dataSource a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
-        * @param view a {@link eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart} object.
+        * @param view a {@link eu.etaxonomy.taxeditor.webapp.view.datasource.CdmDataSourceViewPart} object.
         */
        public CdmMetaDataAwareDataSourceContainer(ICdmSource cdmSource){
                this.cdmSource = cdmSource;
 
                metaDataMap = getDefaultMetaDataMap();
-
        }
 
-//     /**
-//      * <p>Getter for the field <code>dataSource</code>.</p>
-//      *
-//      * @return the dataSource
-//      */
-//     public ICdmDataSource getDataSource() {
-//             return dataSource;
-//     }
-
        public ICdmSource getCdmSource() {
-       return cdmSource;
-}
+               return cdmSource;
+       }
 
        public void getMetaDataFromDataSource(){
                try {
@@ -104,48 +90,26 @@ public class CdmMetaDataAwareDataSourceContainer {
                return resultMap;
        }
 
-       /**
-        * <p>Getter for the field <code>metaDataMap</code>.</p>
-        *
-        * @return the metaDataMap
-        */
        public Map<CdmMetaDataPropertyName, String> getMetaDataMap() {
                return metaDataMap;
        }
 
-       /**
-        * <p>isDataSourceCompatible</p>
-        *
-        * @return a boolean.
-        */
        public boolean isDataSourceCompatible(){
                String version = metaDataMap.get(CdmMetaDataPropertyName.DB_SCHEMA_VERSION);
                return version == null || version.equals(DEFAULT_ENTRY) ? false : CdmMetaData.isDbSchemaVersionCompatible(version);
        }
 
-       /**
-        * <p>getMetaData</p>
-        *
-        * @param metaDataPropertyName a {@link eu.etaxonomy.cdm.model.common.CdmMetaData.MetaDataPropertyName} object.
-        * @return a {@link java.lang.String} object.
-        */
        public String getMetaData(CdmMetaDataPropertyName metaDataPropertyName){
                String property = metaDataMap.get(metaDataPropertyName);
                return property != null ? property : DEFAULT_ENTRY;
        }
 
-       /**
-        * <p>isRunning</p>
-        *
-        * @return the running
-        */
        public boolean isRunning() {
                return running;
        }
 
-       /** {@inheritDoc} */
        @Override
        public String toString() {
                return cdmSource.getName();
        }
-}
+}
\ No newline at end of file
@@ -6,8 +6,7 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
-package eu.etaxonomy.taxeditor.view.datasource.e4;
+package eu.etaxonomy.taxeditor.local.view.datasource.e4;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -16,7 +15,8 @@ import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
@@ -41,30 +41,28 @@ import org.eclipse.swt.widgets.TableColumn;
 import org.eclipse.ui.IMemento;
 
 import eu.etaxonomy.cdm.config.ICdmSource;
-import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.local.datasource.common.CdmDataSourceRepository;
+import eu.etaxonomy.taxeditor.local.view.datasource.CdmDataSourceContentProvider;
+import eu.etaxonomy.taxeditor.local.view.datasource.CdmDataSourceLabelProvider;
+import eu.etaxonomy.taxeditor.local.view.datasource.CdmDataSourceViewerComparator;
+import eu.etaxonomy.taxeditor.local.view.datasource.CdmMetaDataAwareDataSourceContainer;
 import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
 import eu.etaxonomy.taxeditor.model.IContextListener;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceContentProvider;
-import eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceLabelProvider;
-import eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewerComparator;
-import eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer;
 
 /**
- *
  * @author pplitzner
  * @date 22.08.2017
- *
  */
 public class CdmDataSourceViewPartE4 {
 
+    private static final Logger logger = LogManager.getLogger(CdmDataSourceViewPartE4.class);
+
     @Inject
     private UISynchronize sync;
 
-    private static final Logger logger = Logger.getLogger(CdmDataSourceViewPartE4.class);
-
        private class ContextListener extends ContextListenerAdapter{
                @Override
                public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
@@ -89,9 +87,6 @@ public class CdmDataSourceViewPartE4 {
 
                private final List<ICdmSource> cdmSources;
 
-               /**
-                * @param name
-                */
                public DataSourceJob(String title, List<ICdmSource> cdmSources) {
                        super(title);
                        this.cdmSources = cdmSources;
@@ -103,7 +98,7 @@ public class CdmDataSourceViewPartE4 {
                                logger.debug("Begin of eclipse core runtime Job to Retrieve datasources"); //$NON-NLS-1$
                                monitor.beginTask("Retrieving datasources", cdmSources.size() + 1);                      //$NON-NLS-1$
 
-                               final List<CdmMetaDataAwareDataSourceContainer> containers = new ArrayList<CdmMetaDataAwareDataSourceContainer>();
+                               final List<CdmMetaDataAwareDataSourceContainer> containers = new ArrayList<>();
 
                                for(ICdmSource cdmSource : cdmSources){
                                        containers.add(new CdmMetaDataAwareDataSourceContainer(cdmSource));
@@ -118,27 +113,20 @@ public class CdmDataSourceViewPartE4 {
                         logger.debug("  #" + container.hashCode() + " : next DataSourceContainer");                                             //$NON-NLS-1$ //$NON-NLS-2$
                     }
                                        container.getMetaDataFromDataSource();
-                                       if(logger.isDebugEnabled())
-                     {
+                                       if(logger.isDebugEnabled()) {
                         logger.debug("  #" + container.hashCode() + " : metadata retrieved, creating new runnable ...");        //$NON-NLS-1$ //$NON-NLS-2$
                     }
-                                       sync.asyncExec(new Runnable() {
-
-                                               @Override
-                                               public void run() {
-                                                       if(logger.isDebugEnabled())
-                             {
+                                       sync.asyncExec(()-> {
+                                                       if(logger.isDebugEnabled()){
                                 logger.debug("  #" + container.hashCode() + " starting sub thread to update ...");      //$NON-NLS-1$ //$NON-NLS-2$
                             }
                                                        viewer.update(container, null);
-                                                       if(logger.isDebugEnabled())
-                             {
+                                                       if(logger.isDebugEnabled()){
                                 logger.debug("  #" + container.hashCode() + " end of sub thread to update ...");        //$NON-NLS-1$ //$NON-NLS-2$
                             }
                                                }
-                                       });
-                                       if(logger.isDebugEnabled())
-                     {
+                                       );
+                                       if(logger.isDebugEnabled()) {
                         logger.debug("  #" + container.hashCode() + " done");   //$NON-NLS-1$ //$NON-NLS-2$
                     }
                                        monitor.worked(1);
@@ -163,7 +151,6 @@ public class CdmDataSourceViewPartE4 {
        public CdmDataSourceViewPartE4(){
        }
 
-
     private ISelectionChangedListener selectionChangedListener;
 
     @Inject
@@ -192,7 +179,6 @@ public class CdmDataSourceViewPartE4 {
                comparator = new CdmDataSourceViewerComparator();
                viewer.setComparator(comparator);
 
-
         // Propagate selection from viewer
         selectionChangedListener = (event -> selService.setSelection(event.getSelection()));
         viewer.addSelectionChangedListener(selectionChangedListener);
@@ -224,7 +210,6 @@ public class CdmDataSourceViewPartE4 {
                table.setHeaderVisible(true);
                table.setLinesVisible(true);
                table.setSortDirection(SWT.UP);
-
        }
 
     @Inject
@@ -240,13 +225,11 @@ public class CdmDataSourceViewPartE4 {
                dataSourceJob.schedule();
        }
 
-       /** {@inheritDoc} */
        @PreDestroy
        public void dispose() {
                CdmStore.getContextManager().removeContextListener(contextListener);
        }
 
-       /** {@inheritDoc} */
        @Focus
        public void setFocus() {
            if (viewer.getControl() != null && !viewer.getControl().isDisposed()) {
@@ -255,7 +238,6 @@ public class CdmDataSourceViewPartE4 {
        }
 
        //FIXME E4 migrate
-//     /** {@inheritDoc} */
 //     @Override
 //     public void showBusy(boolean busy) {
 //             super.showBusy(busy);
@@ -6,8 +6,7 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
-package eu.etaxonomy.taxeditor.view.datasource.e4.handler;
+package eu.etaxonomy.taxeditor.local.view.datasource.e4.handler;
 
 import javax.inject.Named;
 
@@ -21,16 +20,14 @@ import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer;
-import eu.etaxonomy.taxeditor.view.datasource.e4.CdmDataSourceViewPartE4;
+import eu.etaxonomy.taxeditor.local.view.datasource.CdmMetaDataAwareDataSourceContainer;
+import eu.etaxonomy.taxeditor.local.view.datasource.e4.CdmDataSourceViewPartE4;
 
 /**
- *
  * @author pplitzner
  * @date 22.08.2017
- *
  */
-public abstract class AbstractDataSourceHandlerE4 {
+public abstract class AbstractDataSourceHandler {
 
     protected UISynchronize sync;
 
@@ -6,8 +6,7 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
-package eu.etaxonomy.taxeditor.view.datasource.e4.handler;
+package eu.etaxonomy.taxeditor.local.view.datasource.e4.handler;
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jface.wizard.Wizard;
@@ -16,19 +15,16 @@ import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.config.ICdmSource;
 import eu.etaxonomy.cdm.database.ICdmDataSource;
-import eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceWizard;
-import eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer;
-import eu.etaxonomy.taxeditor.view.datasource.e4.CdmDataSourceViewPartE4;
+import eu.etaxonomy.taxeditor.local.datasource.wizard.CdmDataSourceWizard;
+import eu.etaxonomy.taxeditor.local.view.datasource.CdmMetaDataAwareDataSourceContainer;
+import eu.etaxonomy.taxeditor.local.view.datasource.e4.CdmDataSourceViewPartE4;
 
 /**
- *
  * @author pplitzner
  * @date 22.08.2017
- *
  */
-public class CloneDataSourceHandlerE4 extends AbstractDataSourceHandlerE4 {
+public class CloneDataSourceHandlerE4 extends AbstractDataSourceHandler {
 
-       /** {@inheritDoc} */
        @Override
        public boolean specificExecute(CdmDataSourceViewPartE4 dataSourceViewPart, CdmMetaDataAwareDataSourceContainer container, Shell shell) {
                ICdmSource cdmSource = container.getCdmSource();
@@ -48,5 +44,4 @@ public class CloneDataSourceHandlerE4 extends AbstractDataSourceHandlerE4 {
                }
                return true;
        }
-
-}
+}
\ No newline at end of file
@@ -6,8 +6,7 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
-package eu.etaxonomy.taxeditor.view.datasource.e4.handler;
+package eu.etaxonomy.taxeditor.local.view.datasource.e4.handler;
 
 import javax.inject.Named;
 
@@ -20,14 +19,12 @@ import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceWizard;
-import eu.etaxonomy.taxeditor.view.datasource.e4.CdmDataSourceViewPartE4;
+import eu.etaxonomy.taxeditor.local.datasource.wizard.CdmDataSourceWizard;
+import eu.etaxonomy.taxeditor.local.view.datasource.e4.CdmDataSourceViewPartE4;
 
 /**
- *
  * @author pplitzner
  * @date 22.08.2017
- *
  */
 public class CreateDataSourceHandlerE4 {
 
@@ -7,15 +7,15 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.view.datasource.e4.handler;
+package eu.etaxonomy.taxeditor.local.view.datasource.e4.handler;
 
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.database.CdmPersistentDataSource;
-import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
-import eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer;
-import eu.etaxonomy.taxeditor.view.datasource.e4.CdmDataSourceViewPartE4;
+import eu.etaxonomy.taxeditor.local.datasource.common.CdmDataSourceRepository;
+import eu.etaxonomy.taxeditor.local.view.datasource.CdmMetaDataAwareDataSourceContainer;
+import eu.etaxonomy.taxeditor.local.view.datasource.e4.CdmDataSourceViewPartE4;
 
 /**
  *
@@ -23,7 +23,9 @@ import eu.etaxonomy.taxeditor.view.datasource.e4.CdmDataSourceViewPartE4;
  * @date 22.08.2017
  *
  */
-public class DeleteDataSourceHandlerE4 extends AbstractDataSourceHandlerE4 {
+public class DeleteDataSourceHandlerE4 extends AbstractDataSourceHandler {
+
+
 
     /** {@inheritDoc} */
     @Override
@@ -6,8 +6,7 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
-package eu.etaxonomy.taxeditor.view.datasource.e4.handler;
+package eu.etaxonomy.taxeditor.local.view.datasource.e4.handler;
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jface.wizard.Wizard;
@@ -16,19 +15,16 @@ import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.config.ICdmSource;
 import eu.etaxonomy.cdm.database.ICdmDataSource;
-import eu.etaxonomy.taxeditor.datasource.wizard.CdmDataSourceWizard;
-import eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer;
-import eu.etaxonomy.taxeditor.view.datasource.e4.CdmDataSourceViewPartE4;
+import eu.etaxonomy.taxeditor.local.datasource.wizard.CdmDataSourceWizard;
+import eu.etaxonomy.taxeditor.local.view.datasource.CdmMetaDataAwareDataSourceContainer;
+import eu.etaxonomy.taxeditor.local.view.datasource.e4.CdmDataSourceViewPartE4;
 
 /**
- *
  * @author pplitzner
  * @date 22.08.2017
- *
  */
-public class EditDataSourceHandlerE4 extends AbstractDataSourceHandlerE4 {
+public class EditDataSourceHandlerE4 extends AbstractDataSourceHandler {
 
-    /** {@inheritDoc} */
     @Override
     public boolean specificExecute(CdmDataSourceViewPartE4 dataSourceViewPart, CdmMetaDataAwareDataSourceContainer container, Shell shell) {
                ICdmSource cdmSource = container.getCdmSource();
@@ -48,5 +44,4 @@ public class EditDataSourceHandlerE4 extends AbstractDataSourceHandlerE4 {
                }
                return false;
        }
-
-}
+}
\ No newline at end of file
@@ -6,19 +6,17 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
-package eu.etaxonomy.taxeditor.view.datasource.handler;
+package eu.etaxonomy.taxeditor.local.view.datasource.handler;
 
 import org.eclipse.core.expressions.PropertyTester;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
 import eu.etaxonomy.cdm.model.metadata.CdmMetaDataPropertyName;
-import eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer;
+import eu.etaxonomy.taxeditor.local.view.datasource.CdmMetaDataAwareDataSourceContainer;
 
 /**
  * @author n.hoffmann
  * @created Sep 23, 2010
- * @version 1.0
  */
 public class DataSourceMenuPropertyTester extends PropertyTester {
 
@@ -50,24 +48,22 @@ public class DataSourceMenuPropertyTester extends PropertyTester {
                return false;
        }
 
-          private boolean hasDataModel(Object[] selectedElements) {
-
-               if (selectedElements.length == 0 ) {
-                   // nothing selected so all tests should fail
-                   return false;
-               }
-               for (Object object : selectedElements) {
+    private boolean hasDataModel(Object[] selectedElements) {
 
-                   if (object instanceof CdmMetaDataAwareDataSourceContainer) {
-                       CdmMetaDataAwareDataSourceContainer container = (CdmMetaDataAwareDataSourceContainer) object;
-                       String schemaVersion = container.getMetaData(CdmMetaDataPropertyName.DB_SCHEMA_VERSION);
-                    return !schemaVersion.equals(CdmMetaDataAwareDataSourceContainer.DEFAULT_ENTRY);
-                   }
-               }
-               return false;
-
-           }
+        if (selectedElements.length == 0 ) {
+            // nothing selected so all tests should fail
+            return false;
+        }
+        for (Object object : selectedElements) {
 
+            if (object instanceof CdmMetaDataAwareDataSourceContainer) {
+                CdmMetaDataAwareDataSourceContainer container = (CdmMetaDataAwareDataSourceContainer) object;
+                String schemaVersion = container.getMetaData(CdmMetaDataPropertyName.DB_SCHEMA_VERSION);
+                return !schemaVersion.equals(CdmMetaDataAwareDataSourceContainer.DEFAULT_ENTRY);
+            }
+        }
+        return false;
+    }
 
        private boolean isCompatible(Object[] selectedElements) {
 
@@ -83,6 +79,5 @@ public class DataSourceMenuPropertyTester extends PropertyTester {
                        }
                }
                return false;
-
        }
-}
+}
\ No newline at end of file
index 143c684c68922de8b7e36d820297c5e2fd2deabe..c0e17c55b2704c07a345efa79c2ca019133b7391 100644 (file)
@@ -2,14 +2,14 @@ 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.16.0
+Bundle-Version: 5.42.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.5.jar,
- lib/commons-beanutils-1.9.2.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,
  lib/bioinfweb-commons-java-swing-2.2.0.jar,
index c6255243b6ca4b21333ebc462ea6f0a9246bb25b..2fd48b69cbcd6c0dae5d80a11a678979f2226473 100644 (file)
@@ -2,8 +2,8 @@ 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.5.jar,\
-               lib/commons-beanutils-1.9.2.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,\
                lib/bioinfweb-commons-java-swing-2.2.0.jar,\
index 42c24077dabef47dec1d3b3566d7a0d055f30a20..a652f6535454d4b5668f4c57999cefe495a08495 100644 (file)
@@ -13,8 +13,8 @@ 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.5.jar,\
+               lib/commons-lang3-3.12.0.jar,\
                lib/info.bioinfweb.jphyloio.core/bin/,\
-               lib/commons-beanutils-1.9.2.jar
+               lib/commons-beanutils-1.9.4.jar
                lib/jphyloio-core-0-SNAPSHOT.jar,\
                lib/owlapi-xmlutils-4.1.4.jar
index 6821a8f212eb403c5e012c2cb31ac550e8a81e06..444829f4cd6708c9504f38e63a636fe3bc3088cb 100644 (file)
@@ -7,7 +7,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.16.0</version>
+    <version>5.42.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.5</version>
+        <version>3.12.0</version>
     </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
     <dependency>
       <groupId>commons-beanutils</groupId>
       <artifactId>commons-beanutils</artifactId>
-      <version>1.9.2</version>
+      <version>1.9.4</version>
     </dependency>
     
     <!-- bioinfweb.commons -->
index e0fc6c524c79e3665526c1d389ff8780eefbb74c..243845f380a3988f4054735c672819ba948c1b06 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.16.0
+Bundle-Version: 5.42.0
 Bundle-Activator: eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
@@ -29,3 +29,5 @@ Export-Package: eu.etaxonomy.taxeditor.molecular,
  eu.etaxonomy.taxeditor.molecular.editor,
  eu.etaxonomy.taxeditor.molecular.handler,
  eu.etaxonomy.taxeditor.molecular.io
+Import-Package: javax.annotation;version="1.2.0";resolution:=optional
+
index 81d3f24edb438ac8d4e360c5851767ae7ee2ddec..b21133da376d6ed643195c7dc69c904a2fa08b28 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.16.0</version>
+    <version>5.42.0</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index b9835667e34be1ee62c55747810c6a942941fb70..bde5da9c940036f1c03790d2a2c2d24d15539e11 100644 (file)
@@ -8,7 +8,6 @@
 */
 package eu.etaxonomy.taxeditor.molecular.editor;
 
-
 import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
@@ -18,14 +17,12 @@ import eu.etaxonomy.cdm.model.molecular.Sequence;
 import eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
-
-
 /**
  * @author pplitzner
  * @author Ben Stöver
  * @date 04.08.2014
  */
-public class AlignmentEditorInput extends CdmEntitySessionInput {
+public class AlignmentEditorInput extends CdmEntitySessionInput<Sequence> {
 
     private final UUID sequenceNodeUuid;
     private Sequence sequenceNode;
@@ -36,7 +33,6 @@ public class AlignmentEditorInput extends CdmEntitySessionInput {
                initSession();
        }
 
-
        /**
         * Returns the {@link UUID} of the sequence CDM node that should be edited by the {@link AlignmentEditor} this object
         * is used with.
@@ -47,7 +43,6 @@ public class AlignmentEditorInput extends CdmEntitySessionInput {
                return sequenceNodeUuid;
        }
 
-
        @Override
        public int hashCode() {
                final int prime = 31;
@@ -57,7 +52,6 @@ public class AlignmentEditorInput extends CdmEntitySessionInput {
                return result;
        }
 
-
        @Override
        public boolean equals(Object obj) {
                if (this == obj) {
@@ -80,26 +74,17 @@ public class AlignmentEditorInput extends CdmEntitySessionInput {
                return true;
        }
 
-
        public void setSequenceNode(Sequence sequenceNode) {
            this.sequenceNode = sequenceNode;
        }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
-     */
-    @Override
+       @Override
     public List<Sequence> getRootEntities() {
         return Arrays.asList(sequenceNode);
     }
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
-     */
     @Override
     public void merge() {
         CdmStore.getService(ISequenceService.class).merge(sequenceNode, true);
-
     }
 }
index 97b32907916076144e09cf63ddb9be65f8d9f267..ca9d5b67189d0d1e77d5989796924cf265917f04 100644 (file)
@@ -8,11 +8,9 @@
 */
 package eu.etaxonomy.taxeditor.molecular.editor.e4;
 
-
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -39,8 +37,8 @@ import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.commands.ICommandService;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.model.media.MediaUtils;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
 import eu.etaxonomy.cdm.model.molecular.SequenceString;
@@ -85,8 +83,6 @@ import info.bioinfweb.libralign.pherogram.provider.PherogramProvider;
 import info.bioinfweb.libralign.pherogram.provider.ReverseComplementPherogramProvider;
 import info.bioinfweb.tic.SWTComponentFactory;
 
-
-
 /**
  * Editor component to edit a contig alignment used to combine different overlapping pherograms from Sanger sequencing to
  * a consensus sequence.
@@ -109,8 +105,7 @@ public class AlignmentEditorE4 {
        public static final String CONSENSUS_NAME = "Consensus"; //$NON-NLS-1$
 
 
-    private ConversationHolder conversationHolder;
-       private final AlignmentModelChangeListener DIRTY_LISTENER = new AlignmentModelChangeListener() {
+    private final AlignmentModelChangeListener DIRTY_LISTENER = new AlignmentModelChangeListener() {
                                @Override
                                public <T> void afterTokenChange(TokenChangeEvent<T> e) {
                                        setDirty();
@@ -138,8 +133,7 @@ public class AlignmentEditorE4 {
 
 
     private MultipleAlignmentsContainer alignmentsContainer = null;
-    private final Map<String, SingleReadAlignment> cdmMap = new TreeMap<String, SingleReadAlignment>();  //TODO Move this to ContigSequenceDataProvider
-
+    private final Map<String, SingleReadAlignment> cdmMap = new TreeMap<>();  //TODO Move this to ContigSequenceDataProvider
 
     @Inject
     private MDirtyable dirty;
@@ -150,7 +144,6 @@ public class AlignmentEditorE4 {
     public AlignmentEditorE4() {
     }
 
-
     private void refreshToolbarElement(String id) {
                ICommandService commandService =
                                PlatformUI.getWorkbench().getActiveWorkbenchWindow().getService(ICommandService.class);
@@ -159,7 +152,6 @@ public class AlignmentEditorE4 {
                }
     }
 
-
     private void registerEditSettingListener(MultipleAlignmentsContainer container) {
         container.getEditSettings().addListener(new EditSettingsListener() {
             @Override
@@ -179,7 +171,6 @@ public class AlignmentEditorE4 {
         });
     }
 
-
     private AlignmentArea createIndexArea(MultipleAlignmentsContainer container, AlignmentArea labeledArea) {
                AlignmentArea result = new AlignmentArea(container);
                result.setAllowVerticalScrolling(false);
@@ -187,7 +178,6 @@ public class AlignmentEditorE4 {
                return result;
     }
 
-
     private AlignmentArea createEditableAlignmentArea(MultipleAlignmentsContainer container, boolean allowVerticalScrolling) {
                AlignmentArea result = new AlignmentArea(container);
                result.setAllowVerticalScrolling(allowVerticalScrolling);
@@ -201,7 +191,6 @@ public class AlignmentEditorE4 {
                return result;
        }
 
-
     private AlignmentArea createConsensusHintArea(MultipleAlignmentsContainer container,
                AlignmentArea labeledArea) {
 
@@ -212,7 +201,6 @@ public class AlignmentEditorE4 {
                return result;
     }
 
-
     private MultipleAlignmentsContainer getAlignmentsContainer() {
        if (alignmentsContainer == null) {
                alignmentsContainer = new MultipleAlignmentsContainer();
@@ -266,7 +254,6 @@ public class AlignmentEditorE4 {
        }
     }
 
-
     /**
      * Checks whether the specified alignment area or one of its subcomponents currently has the
      * focus.
@@ -280,12 +267,10 @@ public class AlignmentEditorE4 {
        return SWTUtils.childHasFocus((Composite)area.getToolkitComponent());
     }
 
-
     public boolean hasPherogram(String sequenceID) {
         return getReadsArea().getDataAreas().getSequenceAreas(sequenceID).size() > PHEROGRAM_AREA_INDEX;
     }
 
-
     public PherogramArea getPherogramArea(String sequenceID) {
         if (hasPherogram(sequenceID)) {
             return (PherogramArea)getReadsArea().getDataAreas().getSequenceAreas(sequenceID).get(PHEROGRAM_AREA_INDEX);
@@ -295,21 +280,19 @@ public class AlignmentEditorE4 {
         }
     }
 
-
     private ConsensusSequenceArea getConsensusHintDataArea() {
         return (ConsensusSequenceArea)getAlignmentsContainer().getAlignmentAreas().
                 get(CONSENSUS_HINT_AREA_INDEX).getDataAreas().getBottomAreas().
                 get(CONSENSUS_DATA_AREA_INDEX);
     }
 
-
     @Deprecated  //TODO Remove as soon as testing period is over
     private void createTestContents() {
                // Just for testing:
                try {
-                       addRead(new File("D:/Users/BenStoever/ownCloud/Dokumente/Projekte/EDITor/Quelltexte/LibrAlign branch/Repository/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR430_JR-P01.ab1").toURI(), false); //$NON-NLS-1$
-            //addRead(new File("D:/Users/BenStoever/ownCloud/Dokumente/Projekte/EDITor/Quelltexte/LibrAlign branch/Repository/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR444_JR-P05.ab1").toURI(), false);
-            addRead(new File("D:/Users/BenStoever/ownCloud/Dokumente/Projekte/EDITor/Quelltexte/LibrAlign branch/Repository/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/Test_qualityScore.scf").toURI(), false); //$NON-NLS-1$
+                       addRead(URI.fromFile(new File("D:/Users/BenStoever/ownCloud/Dokumente/Projekte/EDITor/Quelltexte/LibrAlign branch/Repository/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR430_JR-P01.ab1")), false); //$NON-NLS-1$
+            //addRead(URI.fromFile(new File("D:/Users/BenStoever/ownCloud/Dokumente/Projekte/EDITor/Quelltexte/LibrAlign branch/Repository/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/JR444_JR-P05.ab1")), false);
+            addRead(URI.fromFile(new File("D:/Users/BenStoever/ownCloud/Dokumente/Projekte/EDITor/Quelltexte/LibrAlign branch/Repository/eu.etaxonomy.taxeditor.editor/src/main/resources/AlignmentTestData/Test_qualityScore.scf")), false); //$NON-NLS-1$
 
                        // Add test consensus sequence:
                        AlignmentModel consensusModel = getEditableConsensusArea().getAlignmentModel();
@@ -326,15 +309,14 @@ public class AlignmentEditorE4 {
                }
     }
 
-
-    private void readCDMData(Sequence sequenceNode) {
+    private void readCdmData(Sequence sequenceNode) {
        //TODO If called from somewhere else than createPartControl() the editorInput needs to be checked and previous contents need to be cleared (or updated).
 
                // Add reads:
                for (SingleReadAlignment singleReadAlignment : sequenceNode.getSingleReadAlignments()) {
                        try {
                                SingleRead pherogramInfo = singleReadAlignment.getSingleRead();
-                               String id = addRead(DerivateLabelProvider.getDerivateText(pherogramInfo, conversationHolder),
+                               String id = addRead(DerivateLabelProvider.getDerivateText(pherogramInfo),
                                                getPherogramURI(pherogramInfo),
                                                singleReadAlignment.isReverseComplement(),
                                                singleReadAlignment.getEditedSequence(),
@@ -358,18 +340,9 @@ public class AlignmentEditorE4 {
                //TODO Can the consensus sequence also be null? / Should it be created here, if nothing is in the DB?
     }
 
-
     @PostConstruct
     public void createPartControl(Composite parent) {
-        if (CdmStore.isActive()){
-            if(conversationHolder == null){
-                conversationHolder = CdmStore.createConversation();
-            }
-        }
-        else{
-            return;
-        }
-        SWTComponentFactory.getInstance().getSWTComponent(getAlignmentsContainer(), parent, SWT.NONE);
+       SWTComponentFactory.getInstance().getSWTComponent(getAlignmentsContainer(), parent, SWT.NONE);
         Display.getCurrent().addFilter(SWT.FocusIn, ACTION_UPDATER);
         Display.getCurrent().addFilter(SWT.FocusOut, ACTION_UPDATER);
        }
@@ -382,10 +355,6 @@ public class AlignmentEditorE4 {
         CLIPBOARD.dispose();
         input.dispose();
 
-        if(conversationHolder!=null){
-            conversationHolder.close();
-            conversationHolder = null;
-        }
         if(input!=null){
             input.dispose();
         }
@@ -461,14 +430,9 @@ public class AlignmentEditorE4 {
             }
         }
 
-        if (!conversationHolder.isBound()) {
-            conversationHolder.bind();
-        }
         monitor.worked(1);
 
         input.merge();
-        // Commit the conversation and start a new transaction immediately:
-        conversationHolder.commit(true);
         monitor.worked(1);
 
         dirty.setDirty(false);
@@ -488,7 +452,7 @@ public class AlignmentEditorE4 {
             if(sequenceNode!=null && sequenceNode.getId()!=0){
                 sequenceNode = CdmStore.getService(ISequenceService.class).load(sequenceNode.getUuid());
             }
-            readCDMData(sequenceNode);
+            readCdmData(sequenceNode);
         }
         else {
             createTestContents();  // This case will removed after the test phase and an exception should probably be thrown.
@@ -508,9 +472,6 @@ public class AlignmentEditorE4 {
 
     @Focus
     public void setFocus() {
-        if(conversationHolder != null){
-            conversationHolder.bind();
-        }
         if(input!=null){
             input.bind();
         }
@@ -776,4 +737,4 @@ public class AlignmentEditorE4 {
             return null;
         }
     }
-}
+}
\ No newline at end of file
index fd88c41b3732d3e5ea5a40009c05f8481c16ea8a..eb2e4f1c99922a946a06b6270db6d1b5abf0911c 100644 (file)
@@ -1,8 +1,9 @@
 package eu.etaxonomy.taxeditor.molecular.editor.e4.handler;
 
-
 import javax.inject.Named;
 
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
 import org.eclipse.e4.core.di.annotations.CanExecute;
 import org.eclipse.e4.core.di.annotations.Execute;
 import org.eclipse.e4.core.di.annotations.Optional;
@@ -23,8 +24,6 @@ import eu.etaxonomy.taxeditor.molecular.editor.AlignmentEditorInput;
 import eu.etaxonomy.taxeditor.molecular.editor.e4.AlignmentEditorE4;
 import eu.etaxonomy.taxeditor.molecular.l10n.Messages;
 
-
-
 /**
  * Opens the alignment editor from the CDM tree.
  *
@@ -32,8 +31,8 @@ import eu.etaxonomy.taxeditor.molecular.l10n.Messages;
  * @author pplitzner
  */
 public class EditSequenceHandlerE4 {
-    private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(EditSequenceHandlerE4.class);
-
+    
+       private Logger logger = LogManager.getLogger(EditSequenceHandlerE4.class);
 
     @Execute
     public void execute(@Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
index 204bd1f7c953171e8b408c67ba57fdd115ade542..2a987471015a8c59ad913a9739e459d18e59b738 100644 (file)
@@ -67,7 +67,7 @@ public class ExportSequenceToFileHandlerE4 {
             ReadWriteParameterMap parameters = new ReadWriteParameterMap();
             parameters.put(ReadWriteParameterNames.KEY_APPLICATION_NAME, ApplicationUtil.getTitle());
             //parameters.put(ReadWriteParameterNames.KEY_APPLICATION_VERSION, ApplicationUtil.getVersion());  // Setting the version unnecessary, since its already contained in the title.
-            parameters.put(ReadWriteParameterNames.KEY_APPLICATION_URL, "http://cybertaxonomy.eu/taxeditor/");  //TODO Specify URL obtained from a central class? //$NON-NLS-1$
+            parameters.put(ReadWriteParameterNames.KEY_APPLICATION_URL, "https://cybertaxonomy.org/taxeditor/");  //TODO Specify URL obtained from a central class? //$NON-NLS-1$
             parameters.put(ReadWriteParameterNames.KEY_SEQUENCE_EXTENSION_TOKEN, wizard.getModel().getElongationToken());
 
             // Create and register object translator for writing pherogram alignment shifts:
index 05d5cda5ec3514ccdaa63d1e17db5ce0f00504bc..a7ae885e7daf75787e0f6279e9e666ae53feb6d8 100644 (file)
@@ -21,6 +21,7 @@ import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.swt.widgets.FileDialog;
 import org.eclipse.swt.widgets.Shell;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin;
 import eu.etaxonomy.taxeditor.molecular.editor.e4.AlignmentEditorE4;
@@ -50,7 +51,7 @@ public class LoadPherogramHandlerE4 {
             String path = fileDialog.open();
             if (path != null) {
                try {
-                       alignmentEditor.addRead(new File(path).toURI(), false);
+                       alignmentEditor.addRead(URI.fromFile(new File(path)), false);
                }
                catch (UnsupportedChromatogramFormatException e) {
                     MessagingUtils.errorDialog(Messages.LoadPherogramHandler_UNSUPPORTED_FORMAT, this,
index ed3da122d882cd842e4397666408ee2d3660951e..6444d30c01f10bea195251fdc293dfea9d4dfc3c 100644 (file)
@@ -1,17 +1,6 @@
-// $Id$\r
-/**\r
-* Copyright (C) 2016 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.molecular.io;\r
 \r
-\r
 import java.io.IOException;\r
-import java.net.URI;\r
 import java.util.ArrayList;\r
 import java.util.Collections;\r
 import java.util.Iterator;\r
@@ -19,6 +8,7 @@ import java.util.List;
 \r
 import javax.xml.namespace.QName;\r
 \r
+import eu.etaxonomy.cdm.common.URI;\r
 import eu.etaxonomy.cdm.model.molecular.Sequence;\r
 import eu.etaxonomy.cdm.model.molecular.SingleReadAlignment;\r
 import eu.etaxonomy.taxeditor.molecular.editor.e4.AlignmentEditorE4;\r
@@ -40,8 +30,6 @@ import info.bioinfweb.jphyloio.events.TokenSetDefinitionEvent;
 import info.bioinfweb.jphyloio.events.type.EventContentType;\r
 import info.bioinfweb.jphyloio.utils.JPhyloIOWritingUtils;\r
 \r
-\r
-\r
 /**\r
  * In implementation of {@link MatrixDataAdapter} that delegates to a {@link Sequence} object.\r
  * <p>\r
@@ -241,7 +229,7 @@ public class CDMSequenceMatrixAdapter extends NoCharDefsNoSetsMatrixDataAdapter
                 URI pherogramURI = AlignmentEditorE4.getPherogramURI(singleRead.getSingleRead());\r
                 if (pherogramURI != null) {\r
                     JPhyloIOWritingUtils.writeTerminalResourceMetadata(receiver, createMetadataID(sequenceID, PREDICATE_HAS_PHEROGRAM),\r
-                            null, PREDICATE_HAS_PHEROGRAM, pherogramURI);\r
+                            null, PREDICATE_HAS_PHEROGRAM, pherogramURI.getJavaUri());\r
                 }\r
 \r
                 writeMetadataEvents(receiver, sequenceID, PREDICATE_HAS_PHEROGRAM_ALIGNMENT, DATA_TYPE_PHERORAGM_ALIGNMENT, singleRead.getShifts());\r
index 93d8b3fda288479b9c059b0e6186143b64fd5ed5..fb6cdc5b9c9eac861bc81983c1665e5e37b59868 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$\r
 /**\r
 * Copyright (C) 2016 EDIT\r
 * European Distributed Institute of Taxonomy\r
@@ -9,15 +8,12 @@
 */\r
 package eu.etaxonomy.taxeditor.molecular.io;\r
 \r
-\r
 import static org.junit.Assert.assertEquals;\r
 import static org.junit.Assert.assertFalse;\r
 import static org.junit.Assert.assertTrue;\r
 \r
 import org.junit.Test;\r
 \r
-\r
-\r
 /**\r
  * @author Ben Stöver\r
  * @date 29.04.2016\r
index a6c294c8669d9a60e5991d5474d4a496d9359ecd..3cfa86413462d851ee2121c632e78acf0ee691cf 100644 (file)
@@ -2,11 +2,10 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Navigation Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.navigation;singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.42.0
 Bundle-Activator: eu.etaxonomy.taxeditor.navigation.internal.TaxeditorNavigationPlugin
 Bundle-Vendor: EDIT
-Export-Package: eu.etaxonomy.cdm,
- eu.etaxonomy.taxeditor.navigation,
+Export-Package: eu.etaxonomy.taxeditor.navigation,
  eu.etaxonomy.taxeditor.navigation.internal,
  eu.etaxonomy.taxeditor.navigation.key.polytomous,
  eu.etaxonomy.taxeditor.navigation.key.polytomous.operation,
@@ -33,12 +32,16 @@ Require-Bundle: org.eclipse.ui,
  org.eclipse.e4.core.di,
  eu.etaxonomy.taxeditor.bulkeditor
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: javax.inject;version="1.0.0",
+Import-Package: javax.annotation;version="1.2.0",
+ javax.inject;version="1.0.0",
  org.eclipse.core.resources,
  org.eclipse.core.runtime,
  org.eclipse.core.runtime.jobs,
+ org.eclipse.e4.core.services.events,
  org.eclipse.equinox.app,
  org.eclipse.osgi.util;version="1.1.0",
  org.eclipse.ui.forms.widgets,
- org.osgi.framework
+ org.osgi.framework,
+ org.apache.logging.log4j,
+ org.apache.logging.log4j.core
 Bundle-ActivationPolicy: lazy
index a63073f9dc211b33ed5e6a54a7cfe048b72c08c5..0a4be8f42fe3203832c18e385c2af38ba562c59e 100644 (file)
@@ -71,7 +71,6 @@ wizard.name = TCS
 wizard.name.2 = Excel Normal Explicit\r
 wizard.name.3 = ABCD file\r
 wizard.name.4 = SDD\r
-wizard.name.5 = Specimen CDM Excel\r
 wizard.name.6 = JAXB\r
 wizard.name.8 = SDD\r
 wizard.name.9 = DwC-A\r
@@ -80,6 +79,8 @@ wizard.name.18 = CSV
 wizard.name.19 = CSV_NAME\r
 wizard.name.20 = CSV_PRINT\r
 wizard.name.22 = CDM light (csv)\r
+wizard.name.122 = Col DP\r
+wizard.name.123 = WFO Backbone\r
 wizard.name.14 = Specimen\r
 wizard.name.23 = Excel Distribution Data Update\r
 wizard.name.24 = RIS\r
index 9fc2e8d7bfa2549e3aaf5bfa1f70887654ab7dc3..c47ae5a24b144de589c6aa8f209498296f351c14 100644 (file)
@@ -71,7 +71,6 @@ wizard.name = TCS
 wizard.name.2 = Excel Normal Explicit\r
 wizard.name.3 = ABCD Datei\r
 wizard.name.4 = SDD\r
-wizard.name.5 = Beleg CDM Excel\r
 wizard.name.6 = JAXB\r
 wizard.name.8 = SDD\r
 wizard.name.9 = DwC-A\r
@@ -80,6 +79,8 @@ wizard.name.18 = CSV
 wizard.name.19 = CSV_NAME\r
 wizard.name.20 = CSV_PRINT\r
 wizard.name.22 = CDM light (csv)\r
+wizard.name.122 = Col DP\r
+wizard.name.123 = WFO Backbone\r
 wizard.name.14 = Beleg\r
 wizard.name.23 = Excel Verbreitungsdaten Update\r
 wizard.name.24 = RIS\r
index d1caf1ad9c8900b14fd61c930d7ae0a7289f62ba..6417c6c00058812016da0c563d8099b19193f333 100644 (file)
@@ -8,7 +8,6 @@
   <imports xsi:type="commands:Command" xmi:id="_AqZK8KnKEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.store.command.importExcelTaxa"/>
   <imports xsi:type="commands:Command" xmi:id="_AsTPcKnKEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.store.command.importRisReference"/>
   <imports xsi:type="commands:Command" xmi:id="_AuNT8KnKEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.store.command.importSdd"/>
-  <imports xsi:type="commands:Command" xmi:id="_Av4u8KnKEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.store.command.importExcelSpecimen"/>
   <imports xsi:type="commands:Command" xmi:id="_LCsbgKnKEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.store.command.importTcs"/>
   <imports xsi:type="commands:Command" xmi:id="_fQX7EKqhEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.command.exportJaxb"/>
   <imports xsi:type="commands:Command" xmi:id="_iaZnEKqhEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.command.exportSdd"/>
   <imports xsi:type="commands:Command" xmi:id="_mOC30KqhEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.command.exportCsvPrint"/>
   <imports xsi:type="commands:Command" xmi:id="_n1FHEKqhEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.command.exportCdmLight"/>
   <imports xsi:type="commands:Command" xmi:id="_aN3BsL2gEeeyWfw0n8-ICQ" elementId="eu.etaxonomy.taxeditor.workbench.command.collapse"/>
+  <imports xsi:type="commands:Command" xmi:id="_Ih5dAEjAEe6gZ65AByRHxQ" elementId="eu.etaxonomy.taxeditor.store.command.exportColDP"/>
+  <imports xsi:type="commands:Command" xmi:id="_lMkLQLnKEe6hy6A4KTNM1w" elementId="eu.etaxonomy.taxeditor.store.command.exportWfoBackbone"/>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_oDvMsCTfEeeiN5lBIuqN3g" featurename="children" parentElementId="eu.etaxonomy.taxeditor.workbench.trimcontribution.mainToolbar">
     <elements xsi:type="menu:ToolControl" xmi:id="_7kZI4CTfEeeiN5lBIuqN3g" elementId="eu.etaxonomy.taxeditor.navigation.toolcontrol.search_bar" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.search.SearchBar"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_Z-4rwJIVEeeJAdt8ZUxyaw" featurename="descriptors" parentElementId="xpath:/">
     <elements xsi:type="basic:PartDescriptor" xmi:id="_gH5RYJIVEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.navigator" label="%view.name.0" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.navigation/icons/edit_16x16.gif" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.TaxonNavigatorE4">
-      <handlers xmi:id="_Ic-1EJIyEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemotingMoveTaxonNodeHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemotingMoveTaxonNodeHandlerE4" command="_w4RNkJIxEeeJAdt8ZUxyaw"/>
+      <handlers xmi:id="_Ic-1EJIyEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.gMoveTaxonNodeHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.MoveTaxonNodeHandlerE4" command="_w4RNkJIxEeeJAdt8ZUxyaw"/>
       <handlers xmi:id="_xeEM0JIyEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RefreshTreeHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RefreshTreeHandlerE4" command="_ukhM0JIyEeeJAdt8ZUxyaw"/>
       <handlers xmi:id="_0d3l0JIyEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.CopyHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.CopyHandlerE4" command="_EJ-u0JIyEeeJAdt8ZUxyaw"/>
-      <handlers xmi:id="_3I_vUJIyEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemotingChangeAcceptedTaxonToSynonymHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemotingChangeAcceptedTaxonToSynonymHandlerE4" command="_p7Oi8JIxEeeJAdt8ZUxyaw"/>
+      <handlers xmi:id="_3I_vUJIyEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.ChangeAcceptedTaxonToSynonymHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.ChangeAcceptedTaxonToSynonymHandlerE4" command="_p7Oi8JIxEeeJAdt8ZUxyaw"/>
       <handlers xmi:id="_6l8-YJIyEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.SetSecReferenceForSubtreeHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.SetSecReferenceForSubtreeHandlerE4" command="_uFj1YJIxEeeJAdt8ZUxyaw"/>
       <handlers xmi:id="_eEul0K5bEeeDTZvTg-vKRg" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.SetPublishFlagForSubtreeHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.SetPublishFlagForSubtreeHandlerE4" command="_Jb45kK5bEeeDTZvTg-vKRg"/>
       <handlers xmi:id="_Bc8EUJIzEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.NewTaxonNodeHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.NewTaxonNodeHandlerE4" command="_Nx06MJIvEeeJAdt8ZUxyaw"/>
-      <handlers xmi:id="_GTyegJIzEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemotingMoveFactualDataHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemotingMoveFactualDataHandlerE4" command="_3PRy8JIxEeeJAdt8ZUxyaw"/>
+      <handlers xmi:id="_GTyegJIzEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.MoveFactualDataHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.MoveFactualDataHandlerE4" command="_3PRy8JIxEeeJAdt8ZUxyaw"/>
       <handlers xmi:id="_JPKqgJIzEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.CreateClassificationHierarchyHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.CreateClassificationHierarchyHandlerE4" command="_jXX0YJIxEeeJAdt8ZUxyaw"/>
-      <handlers xmi:id="_M64uUJIzEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemotingDeleteTaxonNodeHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemotingDeleteTaxonNodeHandlerE4" command="__n644JIxEeeJAdt8ZUxyaw"/>
+      <handlers xmi:id="_M64uUJIzEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.gDeleteTaxonNodeHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.DeleteTaxonNodeHandlerE4" command="__n644JIxEeeJAdt8ZUxyaw"/>
       <handlers xmi:id="_QQq-YJIzEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.CloneClassificationHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.CloneClassificationHandlerE4" command="_nOOxMJIxEeeJAdt8ZUxyaw"/>
       <handlers xmi:id="_rydzsJMpEeeR4YRjNqCKeA" elementId="eu.etaxonomy.taxeditor.editor.view.derivate.handler.taxonNavigator.OpenDerivativeEditorForTaxonNode" contributionURI="bundleclass://eu.etaxonomy.taxeditor.editor/eu.etaxonomy.taxeditor.editor.view.derivate.handler.OpenDerivativeEditorForTaxonNode">
         <command href="../eu.etaxonomy.taxeditor.editor/fragment.e4xmi#_j2cfsJMmEeeR4YRjNqCKeA"/>
       </handlers>
       <handlers xmi:id="_-GirMLVbEeeZf_R8QJbACw" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.LinkWithTaxonHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.LinkWithTaxonHandlerE4" command="_6iiY8LVbEeeZf_R8QJbACw"/>
-      <handlers xmi:id="_Jr9BQM0xEeiHbMP3rrIRKQ" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.SetUnplacedHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.SetUnplacedHandler" command="_oghMkM0vEeiHbMP3rrIRKQ"/>
-      <handlers xmi:id="_lct0oM1AEeiHbMP3rrIRKQ" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemoveUnplacedHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemoveUnplacedHandler" command="_gMQnoM1AEeiHbMP3rrIRKQ"/>
-      <handlers xmi:id="_x1T9cM1KEeiHbMP3rrIRKQ" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.SetExcludedHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.SetExcludedHandler" command="_3laT0M1KEeiHbMP3rrIRKQ"/>
-      <handlers xmi:id="_9is8MM1LEeiHbMP3rrIRKQ" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemoveExcludedHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemoveExcludedHandler" command="_mNPRoM1LEeiHbMP3rrIRKQ"/>
-      <handlers xmi:id="_fwEOsL9SEemCian_vXpNsA" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemotingChangeAcceptedTaxonToSynonymSetNameInSourceHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemotingChangeAcceptedTaxonToSynonymSetNameInSourceHandlerE5" command="_OrLKUL9SEemCian_vXpNsA"/>
-      <handlers xmi:id="_MAkIwL9TEemCian_vXpNsA" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemotingMoveFactualDataSetNameInSourceHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemotingMoveFactualDataSetNameInSourceHandlerE5" command="_7qhucL9SEemCian_vXpNsA"/>
-      <handlers xmi:id="_ifvyoMWVEemX2v5WBCy_yg" elementId="eu.etaxonomy.taxeditor.navigation.handler.SetDoubtfulHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.SetDoubtfulHandler" command="_l5_r8MWVEemX2v5WBCy_yg"/>
-      <handlers xmi:id="_QolHUMWWEemX2v5WBCy_yg" elementId="eu.etaxonomy.taxeditor.navigation.handler.removeDoubtfulFlagHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemoveDoubtfulHandler" command="_pr-IwMWVEemX2v5WBCy_yg"/>
+      <handlers xmi:id="_fwEOsL9SEemCian_vXpNsA" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.ChangeAcceptedTaxonToSynonymSetNameInSourceHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.ChangeAcceptedTaxonToSynonymSetNameInSourceHandlerE5" command="_OrLKUL9SEemCian_vXpNsA"/>
+      <handlers xmi:id="_MAkIwL9TEemCian_vXpNsA" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.MoveFactualDataSetNameInSourceHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.MoveFactualDataSetNameInSourceHandlerE5" command="_7qhucL9SEemCian_vXpNsA"/>
       <handlers xmi:id="_3L71YAeiEeqoDLA2i4XAcA" elementId="eu.etaxonomy.taxeditor.navigation.handler.aggregateDistributions" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.AggregateDistributionForSubTreeHandler" command="_mIVKcAeiEeqoDLA2i4XAcA"/>
       <menus xsi:type="menu:PopupMenu" xmi:id="_XNXnkJIvEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigator.popupmenu.taxonnavigator">
         <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_5ydggKkeEeejedk4mZQIGw" coreExpressionId="isCdmStoreConnected"/>
         <children xsi:type="menu:Menu" xmi:id="_yzFmYJIvEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.menu.new" label="%menu.label">
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_wzftMJIvEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.menu.new.taxon" label="%command.label.2" command="_Nx06MJIvEeeJAdt8ZUxyaw"/>
+          <children xsi:type="menu:HandledMenuItem" xmi:id="_wzftMJIvEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.menu.new.taxon" label="%command.label.2" command="_Nx06MJIvEeeJAdt8ZUxyaw">
+            <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_hDMkYPcrEeq2T8kN8JfvEQ" coreExpressionId="isCdmStoreConnected"/>
+          </children>
           <children xsi:type="menu:MenuSeparator" xmi:id="_33c4IJIvEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.menuseparator.0"/>
           <children xsi:type="menu:HandledMenuItem" xmi:id="_4dTXMJIvEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.menu.new.classification" label="%command.label.3" command="_Vco-4JIxEeeJAdt8ZUxyaw">
-            <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_wlrJYNMPEeiXranio7VdMQ" coreExpressionId="noClassificationExists"/>
+            <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_wlrJYNMPEeiXranio7VdMQ" coreExpressionId="isCdmStoreConnected"/>
           </children>
         </children>
         <children xsi:type="menu:MenuSeparator" xmi:id="_24NMMJIwEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.menuseparator.5"/>
@@ -77,7 +74,6 @@
           <children xsi:type="menu:Menu" xmi:id="_2sWBQAUvEeqpi5fkbwgEHQ" elementId="eu.etaxonomy.taxeditor.navigation.menu.specimen" label="Specimen">
             <children xsi:type="menu:HandledMenuItem" xmi:id="_YMugAKkeEeejedk4mZQIGw" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.importSpecimens" label="%handledmenuitem.label.2" command="_yBC78KnJEeeTAPHmaMLwQQ"/>
             <children xsi:type="menu:HandledMenuItem" xmi:id="_2NC0kKnEEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.importAbcd" label="%wizard.name.3" command="_AOq4QKnKEeeTAPHmaMLwQQ"/>
-            <children xsi:type="menu:HandledMenuItem" xmi:id="_6uLdcKnEEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.importExcelSpecimen" label="%wizard.name.5" command="_Av4u8KnKEeeTAPHmaMLwQQ"/>
           </children>
           <children xsi:type="menu:Menu" xmi:id="_6UTmcAUvEeqpi5fkbwgEHQ" elementId="eu.etaxonomy.taxeditor.navigation.menu.taxa" label="Taxa">
             <children xsi:type="menu:HandledMenuItem" xmi:id="_6YeTMKnEEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.importExcelTaxa" label="%wizard.name.2" command="_AqZK8KnKEeeTAPHmaMLwQQ"/>
         </children>
         <children xsi:type="menu:Menu" xmi:id="_rbInwKqhEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.navigation.menu.export" label="%menu.label.2">
           <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_3qJaEMuuEeiGO4eKaXkw0w" coreExpressionId="isShowIOMenuEnabled"/>
+          <children xsi:type="menu:HandledMenuItem" xmi:id="_zDuJwKqhEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.eu.etaxonomy.taxeditor.navigation.handledmenuitem.exportDwca" label="%wizard.name.9" command="_juMxQKqhEeeXcJGhyhlrKA"/>
+          <children xsi:type="menu:HandledMenuItem" xmi:id="_IfCk8LnMEe6hy6A4KTNM1w" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.wizardname123" label="%wizard.name.123" command="_lMkLQLnKEe6hy6A4KTNM1w"/>
+          <children xsi:type="menu:HandledMenuItem" xmi:id="_kVpisEi-Ee6gZ65AByRHxQ" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.eu.etaxonomy.taxeditor.navigation.handledmenuitem.exportColDP" label="%wizard.name.122" command="_Ih5dAEjAEe6gZ65AByRHxQ"/>
+          <children xsi:type="menu:HandledMenuItem" xmi:id="_44XB4KqhEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.eu.etaxonomy.taxeditor.navigation.handledmenuitem.exportCdmLight" label="%wizard.name.22" command="_n1FHEKqhEeeXcJGhyhlrKA"/>
+          <children xsi:type="menu:MenuSeparator" xmi:id="_8AZ3kEx-Ee6gZ65AByRHxQ" elementId="eu.etaxonomy.taxeditor.navigation.menuseparator.9"/>
           <children xsi:type="menu:HandledMenuItem" xmi:id="_tPAZIKqhEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.exportJaxb" label="%wizard.name.6" command="_fQX7EKqhEeeXcJGhyhlrKA"/>
           <children xsi:type="menu:HandledMenuItem" xmi:id="_xwZgsKqhEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.eu.etaxonomy.taxeditor.navigation.handledmenuitem.exportSdd" label="%wizard.name.8" command="_iaZnEKqhEeeXcJGhyhlrKA"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_zDuJwKqhEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.eu.etaxonomy.taxeditor.navigation.handledmenuitem.exportDwca" label="%wizard.name.9" command="_juMxQKqhEeeXcJGhyhlrKA"/>
           <children xsi:type="menu:HandledMenuItem" xmi:id="_0e68cKqhEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.eu.etaxonomy.taxeditor.navigation.handledmenuitem.exportCsv" label="%wizard.name.18" command="_kuP5AKqhEeeXcJGhyhlrKA"/>
           <children xsi:type="menu:HandledMenuItem" xmi:id="_2C_-UKqhEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.eu.etaxonomy.taxeditor.navigation.handledmenuitem.exportCsvName" label="%wizard.name.19" command="_lMwZ8KqhEeeXcJGhyhlrKA"/>
           <children xsi:type="menu:HandledMenuItem" xmi:id="_3p8G8KqhEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.eu.etaxonomy.taxeditor.navigation.handledmenuitem.exportCsvPrint" label="%wizard.name.20" command="_mOC30KqhEeeXcJGhyhlrKA"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_44XB4KqhEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.eu.etaxonomy.taxeditor.navigation.handledmenuitem.exportCdmLight" label="%wizard.name.22" command="_n1FHEKqhEeeXcJGhyhlrKA"/>
         </children>
         <children xsi:type="menu:MenuSeparator" xmi:id="_x0uEMJIwEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.menuseparator.3"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_yH9JQJIwEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.delete" label="%command.label.10" command="__n644JIxEeeJAdt8ZUxyaw"/>
           <children xsi:type="menu:HandledMenuItem" xmi:id="_mLjosJIwEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.setsecforsubtree" label="%command.label.setSecForSubtree" command="_uFj1YJIxEeeJAdt8ZUxyaw"/>
           <children xsi:type="menu:HandledMenuItem" xmi:id="_cwjGQAejEeqoDLA2i4XAcA" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.commandnameaggregatedistributionforsubtree" label="%command.name.aggregateDistributionForSubtree" command="_mIVKcAeiEeqoDLA2i4XAcA"/>
         </children>
-        <children xsi:type="menu:Menu" xmi:id="_Nz3dkM1MEeiHbMP3rrIRKQ" elementId="eu.etaxonomy.taxeditor.navigation.menu.set" label="%command.label.nodeUpdates">
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_KGONkMWWEemX2v5WBCy_yg" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.setDoubtful" label="%command.label.setDoubtful" command="_l5_r8MWVEemX2v5WBCy_yg"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_brursMWWEemX2v5WBCy_yg" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.removeDoubtful" label="%command.label.removeDoubtful" command="_pr-IwMWVEemX2v5WBCy_yg"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_YeWwgM0vEeiHbMP3rrIRKQ" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.setUnplaced" label="%command.label.setUnplaced" command="_oghMkM0vEeiHbMP3rrIRKQ"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_Yb8F8M1AEeiHbMP3rrIRKQ" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.removeUnplaced" label="%command.label.removeUnplaced" command="_gMQnoM1AEeiHbMP3rrIRKQ"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_poLj8M1KEeiHbMP3rrIRKQ" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.setExcluded" label="%command.label.setExcluded" command="_3laT0M1KEeiHbMP3rrIRKQ"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_c1QOkM1LEeiHbMP3rrIRKQ" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.removeExcluded" label="%command.label.removeExcluded" command="_mNPRoM1LEeiHbMP3rrIRKQ"/>
-        </children>
         <children xsi:type="menu:MenuSeparator" xmi:id="_z0Q6EJIwEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.menuseparator.4"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_0FX4MJIwEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.refresh" label="%command.label.11" command="_ukhM0JIyEeeJAdt8ZUxyaw"/>
       </menus>
     </elements>
     <elements xsi:type="basic:PartDescriptor" xmi:id="_FajhoKQUEeeTrq_CRrR-jg" elementId="eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.PolytomousKeyViewPartE4" label="%view.name.1" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.PolytomousKeyViewPartE4">
       <handlers xmi:id="_qXpqEKQVEeeTrq_CRrR-jg" elementId="eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.NewPolytomousKeyHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.NewPolytomousKeyHandlerE4" command="_lAZG8KQUEeeTrq_CRrR-jg"/>
-      <handlers xmi:id="_tvg9wKQVEeeTrq_CRrR-jg" elementId="eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.RemotingEditPolytomousKeyNodesHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.RemotingEditPolytomousKeyNodesHandlerE4" command="_BrgnkKQVEeeTrq_CRrR-jg"/>
-      <handlers xmi:id="_xhc-UKQVEeeTrq_CRrR-jg" elementId="eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.RemotingUpdatePolytomousKeyAllNodesHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.RemotingUpdatePolytomousKeyAllNodesHandlerE4" command="_6S6M4KQVEeeTrq_CRrR-jg"/>
+      <handlers xmi:id="_tvg9wKQVEeeTrq_CRrR-jg" elementId="eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.EditPolytomousKeyNodesHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.EditPolytomousKeyNodesHandlerE4" command="_BrgnkKQVEeeTrq_CRrR-jg"/>
+      <handlers xmi:id="_xhc-UKQVEeeTrq_CRrR-jg" elementId="eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.UpdatePolytomousKeyAllNodesHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.UpdatePolytomousKeyAllNodesHandlerE4" command="_6S6M4KQVEeeTrq_CRrR-jg"/>
       <handlers xmi:id="_CoKnoKQWEeeTrq_CRrR-jg" elementId="eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.RefreshPolytomousKeyListHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.RefreshPolytomousKeyListHandlerE4" command="_4BQ6YKQVEeeTrq_CRrR-jg"/>
-      <handlers xmi:id="_GjyIoKQWEeeTrq_CRrR-jg" elementId="eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.RemotingDeletePolytomousKeyHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.RemotingDeletePolytomousKeyHandlerE4" command="_8C8AEKQVEeeTrq_CRrR-jg"/>
+      <handlers xmi:id="_GjyIoKQWEeeTrq_CRrR-jg" elementId="eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.DeletePolytomousKeyHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.DeletePolytomousKeyHandlerE4" command="_8C8AEKQVEeeTrq_CRrR-jg"/>
       <menus xsi:type="menu:PopupMenu" xmi:id="_FajhpKQUEeeTrq_CRrR-jg" elementId="eu.etaxonomy.taxeditor.navigation.popupmenu.polytomouskeyview">
         <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_FajhpaQUEeeTrq_CRrR-jg" coreExpressionId="isCdmStoreConnected"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_FajhpqQUEeeTrq_CRrR-jg" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.polytomouskey.new" label="%command.label.15" command="_lAZG8KQUEeeTrq_CRrR-jg"/>
     <elements xsi:type="commands:Command" xmi:id="_mNPRoM1LEeiHbMP3rrIRKQ" elementId="eu.etaxonomy.taxeditor.navigator.command.update.removeExcluded" commandName="%command.name.removeExcluded"/>
     <elements xsi:type="commands:Command" xmi:id="_OrLKUL9SEemCian_vXpNsA" elementId="eu.etaxonomy.taxeditor.navigator.command.update.changeAcceptedToSynonymSetNameInSource" commandName="%command.name.51"/>
     <elements xsi:type="commands:Command" xmi:id="_7qhucL9SEemCian_vXpNsA" elementId="eu.etaxonomy.taxeditor.navigation.moveFactualDataSetNameInSource" commandName="%command.name.moveFactualDataSetNameInSource"/>
-    <elements xsi:type="commands:Command" xmi:id="_l5_r8MWVEemX2v5WBCy_yg" elementId="eu.etaxonomy.taxeditor.navigation.command.setdoubtfulflag" commandName="%command.name.setDoubtful"/>
-    <elements xsi:type="commands:Command" xmi:id="_pr-IwMWVEemX2v5WBCy_yg" elementId="eu.etaxonomy.taxeditor.navigation.command.removedoubtfulflag" commandName="%command.name.removeDoubtful"/>
     <elements xsi:type="commands:Command" xmi:id="_mIVKcAeiEeqoDLA2i4XAcA" elementId="eu.etaxonomy.taxeditor.navigation.command.commandnameaggregatedistributionforsubtree" commandName="%command.name.aggregateDistributionForSubtree"/>
   </fragments>
-  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_3CbhIK25EeeykrJkROy5EA" featurename="children" parentElementId="eu.etaxonomy.navigation.menu.new" positionInList="after:eu.etaxonomy.taxeditor.editor.menuseparator.22">
-    <elements xsi:type="menu:HandledMenuItem" xmi:id="_M9FakK26EeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.commandlabel13" label="%command.label.13" tooltip="%command.label.13" command="_Nx06MJIvEeeJAdt8ZUxyaw">
-      <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_Pucu8K26EeeykrJkROy5EA" coreExpressionId="isCdmStoreConnected"/>
-    </elements>
-    <elements xsi:type="menu:HandledMenuItem" xmi:id="_SCz-QK26EeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.navigation.handledmenuitem.commandlabel14" label="%command.label.14" tooltip="%command.label.14" command="_Vco-4JIxEeeJAdt8ZUxyaw">
-      <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_SecxYK26EeeykrJkROy5EA" coreExpressionId="isCdmStoreConnected"/>
-    </elements>
-  </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_Kllg8FK8EeirW97nhA6VMw" featurename="handlers" parentElementId="xpath:/">
     <elements xsi:type="commands:Handler" xmi:id="_-QYowJIyEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.NewClassificationHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.navigation/eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.NewClassificationHandlerE4" command="_Vco-4JIxEeeJAdt8ZUxyaw"/>
   </fragments>
index b1ffe6c9db15c489c44f0e9d1549c4e70d6b5ad9..ad84af6047e06c694053072d4d5a314c0a1562d7 100644 (file)
                   definitionId="isCdmStoreConnected">
             </reference>
          </and>
+      </definition>
+      <definition
+            id="isCdmStoreConnectedAndNotLocalActive">
+         <test
+               property="eu.etaxonomy.taxeditor.preference.CdmStorePropertyTester.isCdmStoreConnectedAndNotLocalActive">
+         </test>
+      </definition>
+       <definition
+            id="isCdmStoreConnectedAndLocalActive">
+         <test
+               property="eu.etaxonomy.taxeditor.preference.CdmStorePropertyTester.isCdmStoreConnectedAndLocalActive">
+         </test>
       </definition>
        <definition
             id="isClassification">
index 033c14b39bc6f62b13c616ac7e4eb5dc269a6262..efe21f23ab651404f16cd8a5805e22b1ff2061c0 100644 (file)
@@ -3,7 +3,7 @@
        <parent>
                <groupId>eu.etaxonomy</groupId>
                <artifactId>taxeditor-parent</artifactId>
-               <version>5.16.0</version>
+               <version>5.42.0</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
index 099343d2844f3ed8ac08c0a9fcee445a5df005e6..ac99f0c26054d99642b23398ee8b2eda96a1a4a4 100644 (file)
@@ -29,7 +29,6 @@ public class AppModelId {
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_STORE_COMMAND_EXPORTSDD = "eu.etaxonomy.taxeditor.store.command.exportSdd";
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_STORE_COMMAND_IMPORTABCD = "eu.etaxonomy.taxeditor.store.command.importAbcd";
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_STORE_COMMAND_IMPORTEXCELDISTRIBUTION = "eu.etaxonomy.taxeditor.store.command.importExcelDistribution";
-       public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_STORE_COMMAND_IMPORTEXCELSPECIMEN = "eu.etaxonomy.taxeditor.store.command.importExcelSpecimen";
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_STORE_COMMAND_IMPORTEXCELTAXA = "eu.etaxonomy.taxeditor.store.command.importExcelTaxa";
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_STORE_COMMAND_IMPORTRISREFERENCE = "eu.etaxonomy.taxeditor.store.command.importRisReference";
        public static final String COMMAND_EU_ETAXONOMY_TAXEDITOR_STORE_COMMAND_IMPORTSDD = "eu.etaxonomy.taxeditor.store.command.importSdd";
@@ -78,9 +77,9 @@ public class AppModelId {
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_VIEW_DERIVATE_HANDLER_OPENDERIVATIVEEDITORFORTAXONNODE = "eu.etaxonomy.taxeditor.editor.view.derivate.handler.OpenDerivativeEditorForTaxonNode";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_KEY_POLYTOMOUS_E4_HANDLER_NEWPOLYTOMOUSKEYHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.NewPolytomousKeyHandlerE4";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_KEY_POLYTOMOUS_E4_HANDLER_REFRESHPOLYTOMOUSKEYLISTHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.RefreshPolytomousKeyListHandlerE4";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_KEY_POLYTOMOUS_E4_HANDLER_REMOTINGDELETEPOLYTOMOUSKEYHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.RemotingDeletePolytomousKeyHandlerE4";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_KEY_POLYTOMOUS_E4_HANDLER_REMOTINGEDITPOLYTOMOUSKEYNODESHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.RemotingEditPolytomousKeyNodesHandlerE4";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_KEY_POLYTOMOUS_E4_HANDLER_REMOTINGUPDATEPOLYTOMOUSKEYALLNODESHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.RemotingUpdatePolytomousKeyAllNodesHandlerE4";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_KEY_POLYTOMOUS_E4_HANDLER_REMOTINGDELETEPOLYTOMOUSKEYHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.DeletePolytomousKeyHandlerE4";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_KEY_POLYTOMOUS_E4_HANDLER_REMOTINGEDITPOLYTOMOUSKEYNODESHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.EditPolytomousKeyNodesHandlerE4";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_KEY_POLYTOMOUS_E4_HANDLER_REMOTINGUPDATEPOLYTOMOUSKEYALLNODESHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.key.polytomous.e4.handler.UpdatePolytomousKeyAllNodesHandlerE4";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR_E4_HANDLER_CLONECLASSIFICATIONHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.CloneClassificationHandlerE4";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR_E4_HANDLER_COPYHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.CopyHandlerE4";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR_E4_HANDLER_CREATECLASSIFICATIONHIERARCHYHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.CreateClassificationHierarchyHandlerE4";
@@ -88,10 +87,10 @@ public class AppModelId {
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR_E4_HANDLER_NEWCLASSIFICATIONHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.NewClassificationHandlerE4";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR_E4_HANDLER_NEWTAXONNODEHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.NewTaxonNodeHandlerE4";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR_E4_HANDLER_REFRESHTREEHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RefreshTreeHandlerE4";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR_E4_HANDLER_REMOTINGCHANGEACCEPTEDTAXONTOSYNONYMHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemotingChangeAcceptedTaxonToSynonymHandlerE4";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR_E4_HANDLER_REMOTINGDELETETAXONNODEHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemotingDeleteTaxonNodeHandlerE4";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR_E4_HANDLER_REMOTINGMOVEFACTUALDATAHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemotingMoveFactualDataHandlerE4";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR_E4_HANDLER_REMOTINGMOVETAXONNODEHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.RemotingMoveTaxonNodeHandlerE4";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR_E4_HANDLER_REMOTINGCHANGEACCEPTEDTAXONTOSYNONYMHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.ChangeAcceptedTaxonToSynonymHandlerE4";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR_E4_HANDLER_REMOTINGDELETETAXONNODEHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.DeleteTaxonNodeHandlerE4";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR_E4_HANDLER_REMOTINGMOVEFACTUALDATAHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.MoveFactualDataHandlerE4";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR_E4_HANDLER_REMOTINGMOVETAXONNODEHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.MoveTaxonNodeHandlerE4";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR_E4_HANDLER_SETPUBLISHFLAGFORSUBTREEHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.SetPublishFlagForSubtreeHandlerE4";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_NAVIGATOR_E4_HANDLER_SETSECREFERENCEFORSUBTREEHANDLERE4 = "eu.etaxonomy.taxeditor.navigation.navigator.e4.handler.SetSecReferenceForSubtreeHandlerE4";
        public static final String MENUSEPARATOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_MENUSEPARATOR_18 = "eu.etaxonomy.taxeditor.editor.menuseparator.18";
index 2d33925c277fe7ca1736b9173fd89188cf521b97..4587fb99b1a569c1b65cf3c5928043880cd528bb 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;
@@ -37,8 +36,8 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInput;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.navigation.internal.TaxeditorNavigationPlugin;
@@ -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;
@@ -163,8 +149,8 @@ public class NavigationUtil extends AbstractUtility{
 
            Collection<MPart> dirtyParts = partService.getDirtyParts();
            for (MPart part : dirtyParts) {
-            if(part.getObject() instanceof TaxonNameEditorE4){
-                TaxonEditorInputE4 input = ((TaxonNameEditorE4) part.getObject()).getEditorInput();
+            if(part.getObject() instanceof TaxonEditor){
+                TaxonEditorInput input = ((TaxonEditor) part.getObject()).getEditorInput();
                 if(input.getTaxonNode().getUuid().equals(taxonNode.getUuid())){
                     return true;
                 }
@@ -183,8 +169,8 @@ public class NavigationUtil extends AbstractUtility{
 
         Collection<MPart> dirtyParts = partService.getDirtyParts();
         for (MPart part : dirtyParts) {
-            if(part.getObject() instanceof TaxonNameEditorE4){
-                TaxonEditorInputE4 input = ((TaxonNameEditorE4) part.getObject()).getEditorInput();
+            if(part.getObject() instanceof TaxonEditor){
+                TaxonEditorInput input = ((TaxonEditor) part.getObject()).getEditorInput();
                 if(input.getTaxonNode().equals(taxonNode)){
                     return true;
                 }
@@ -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 3f541c6ad2de945083b899a604ec8f6587675332..e6d5bc7d154d1d805ec0eab50d1488ce1593eee5 100644 (file)
@@ -6,10 +6,10 @@
 * 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 org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.jface.action.ContributionItem;
 import org.eclipse.jface.action.IContributionItem;
 import org.eclipse.jface.action.IContributionManager;
@@ -21,12 +21,12 @@ import org.eclipse.swt.widgets.Menu;
  *
  * @author p.ciardelli
  * @created 23.04.2009
- * @version 1.0
  */
 public class RecentNamesContributionItem extends ContributionItem {
+
     //FIXME E4 migrate recent menu items
-       private static final Logger logger = Logger
-                       .getLogger(RecentNamesContributionItem.class);
+       @SuppressWarnings("unused")
+       private static final Logger logger = LogManager.getLogger(RecentNamesContributionItem.class);
 
        private IContributionItem recentWindows;
        private IContributionManager parent;
index 380c9773c55fd6b7c68dd62ec86617a6f922ef23..6cf1768098adb719416384520929b2712a3438b2 100644 (file)
@@ -6,33 +6,27 @@
 * 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 org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.commands.operations.UndoContext;
 import org.eclipse.core.runtime.IAdapterFactory;
 
-
 /**
- * <p>WorkbenchUndoContextAdapterFactory class.</p>
- *
  * @author p.ciardelli
  * @created 04.06.2009
- * @version 1.0
  */
 public class WorkbenchUndoContextAdapterFactory implements IAdapterFactory {
-       private static final Logger logger = Logger
-                       .getLogger(WorkbenchUndoContextAdapterFactory.class);
+
+    @SuppressWarnings("unused")
+       private static final Logger logger = LogManager.getLogger(WorkbenchUndoContextAdapterFactory.class);
        private UndoContext defaultUndoContext;
 
        private static final Class[] ADAPTER_LIST = new Class[] { IUndoContext.class };
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
-        */
-       /** {@inheritDoc} */
        @Override
     public Object getAdapter(Object adaptableObject, Class adapterType) {
 //             if (IUndoContext.class.equals(adapterType)) {
@@ -41,9 +35,6 @@ public class WorkbenchUndoContextAdapterFactory implements IAdapterFactory {
                return null;
        }
 
-       /**
-        * @return
-        */
        private Object getDefaultUndoContext() {
                if (defaultUndoContext == null) {
                        defaultUndoContext = new UndoContext();
@@ -51,16 +42,8 @@ public class WorkbenchUndoContextAdapterFactory implements IAdapterFactory {
                return defaultUndoContext;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
-        */
-       /**
-        * <p>getAdapterList</p>
-        *
-        * @return an array of {@link java.lang.Class} objects.
-        */
        @Override
     public Class[] getAdapterList() {
                return ADAPTER_LIST;
        }
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/PolytomousKeyViewPartDataChangeBehaviorE4.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/e4/PolytomousKeyViewPartDataChangeBehaviorE4.java
deleted file mode 100644 (file)
index 53fe14d..0000000
+++ /dev/null
@@ -1,107 +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.navigation.key.polytomous.e4;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swt.widgets.Display;
-
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.description.PolytomousKey;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.model.AbstractDataChangeBehaviour;
-import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
-
-/**
- *
- * @author pplitzner
- * @since Sep 28, 2017
- *
- */
-public class PolytomousKeyViewPartDataChangeBehaviorE4 extends
-               AbstractDataChangeBehaviour {
-
-    private static final String UPDATING_POLYTOMOUS_KEY_VIEWER = Messages.PolytomousKeyViewPartDataChangeBehavior_UPDATE;
-    private final PolytomousKeyViewPartE4 source;
-
-       public PolytomousKeyViewPartDataChangeBehaviorE4(
-                       PolytomousKeyViewPartE4 polytomousKeyViewPart) {
-               source = polytomousKeyViewPart;
-       }
-
-       @Override
-       public void reactOnDataChange(CdmDataChangeMap changeEvents) {
-               if(isRelevant(changeEvents)){
-                       final Display display = Display.getCurrent();
-                       Job job = new Job(UPDATING_POLYTOMOUS_KEY_VIEWER) {
-
-                               @Override
-                               protected IStatus run(IProgressMonitor monitor) {
-                                       monitor.beginTask(UPDATING_POLYTOMOUS_KEY_VIEWER, 3);
-                                       monitor.worked(1);
-
-                                       // clear the session completely
-                                       monitor.subTask(Messages.PolytomousKeyViewPartDataChangeBehavior_CLEAR);
-                                       display.asyncExec(new Runnable() {
-                                                @Override
-                        public void run() {
-                                                        source.getConversationHolder().clear();
-                                                }
-                                       });
-                                       // FIXME completely clearing the session is a brute force approach.
-                                       // It would be much more elegant to clear only those elements that have been changed.
-                                       // I could not get that to work but we should consider workin on this because we might
-                                       // run into serious performance issues, especially when it comes to large trees
-                                       //
-                                       // at least, we moved this to a job so it can run in a background thred
-                                       // seems to improve the situation but not sure if final solution
-                                       monitor.worked(1);
-
-                                       monitor.subTask(Messages.PolytomousKeyViewPartDataChangeBehavior_REFRESH);
-
-                                       display.asyncExec(new Runnable() {
-                                           @Override
-                        public void run() {
-                                               source.refresh();
-                                           }
-                                       });
-
-
-
-                                       monitor.worked(1);
-                                       monitor.done();
-                                       return Status.OK_STATUS;
-                               }
-                       };
-
-                       job.setPriority(Job.SHORT);
-                       job.schedule();
-
-               }
-       }
-
-       private boolean isRelevant(CdmDataChangeMap changeEvents) {
-               for(CdmDataChangeEvent event : changeEvents.getAllEvents()){
-                       EventType eventType = event.getEventType();
-                       CdmBase eventEntity = event.getEntity();
-
-                       // all poyltomous key changes are relevant
-                       if((eventType == EventType.INSERT || eventType == EventType.DELETE || eventType == EventType.UPDATE)
-                                       && eventEntity instanceof PolytomousKey){
-                               return true;
-                       }
-               }
-               return false;
-       }
-}
index 1b37170eb317d78154830cd44afc7aa3de495720..b02a7f700dd432979a867b8de3d6cd0c9acbf11d 100644 (file)
@@ -1,6 +1,11 @@
 /**
- *
- */
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.navigation.key.polytomous.e4;
 
 import java.util.List;
@@ -44,13 +49,9 @@ import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
 import eu.etaxonomy.cdm.api.application.ICdmChangeListener;
 import eu.etaxonomy.cdm.api.application.ICdmDataChangeService;
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
-import eu.etaxonomy.taxeditor.model.DataChangeBridge;
 import eu.etaxonomy.taxeditor.model.IContextListener;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.navigation.key.polytomous.PolytomousKeyContentProvider;
@@ -62,14 +63,12 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 
 /**
- *
  * @author pplitzner
  * @since Sep 28, 2017
- *
  */
 public class PolytomousKeyViewPartE4 implements
-IConversationEnabled, ICdmEntitySessionEnabled, IPostOperationEnabled,
-ICdmChangeListener {
+               ICdmEntitySessionEnabled<PolytomousKey>, IPostOperationEnabled,
+               ICdmChangeListener {
 
     private class FilterModifyListener implements ModifyListener{
         @Override
@@ -96,7 +95,6 @@ ICdmChangeListener {
         }
     }
 
-
     public static final String ID = "eu.etaxonomy.taxeditor.navigation.key.polytomous.polytomousKeyViewPart"; //$NON-NLS-1$
 
     public static final String OPEN_COMMAND_ID = "eu.etaxonomy.taxeditor.navigation.key.polytomous.editNodes"; //$NON-NLS-1$
@@ -118,13 +116,12 @@ ICdmChangeListener {
     }
 
     private ListViewer viewer;
-    private ConversationHolder conversation;
     private IContextListener contextListener;
     private final CdmFormFactory formFactory;
     private Text text_filter;
     private ICdmEntitySession cdmEntitySession;
 
-    private PolytomousKeyViewPartDataChangeBehaviorE4 dataChangeBehavior;
+    //private PolytomousKeyViewPartDataChangeBehaviorE4 dataChangeBehavior;
 
 
     @Inject
@@ -175,8 +172,6 @@ ICdmChangeListener {
             }
         });
 
-
-
         //propagate selection
         selectionChangedListener = (event -> selService.setSelection(event.getSelection()));
         viewer.addSelectionChangedListener(selectionChangedListener);
@@ -207,8 +202,6 @@ ICdmChangeListener {
     }
 
     private void setInput() {
-        conversation = CdmStore.createConversation();
-        conversation.registerForDataStoreChanges(this);
         cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
         CdmApplicationState.getCurrentDataChangeService().register(this);
 
@@ -228,29 +221,11 @@ ICdmChangeListener {
         }
     }
 
-    @Override
-    public void update(CdmDataChangeMap changeEvents) {
-        if (dataChangeBehavior == null) {
-            dataChangeBehavior = new PolytomousKeyViewPartDataChangeBehaviorE4(this);
-        }
-
-        DataChangeBridge.handleDataChange(changeEvents, dataChangeBehavior);
-    }
-
-    @Override
-    public ConversationHolder getConversationHolder() {
-        return conversation;
-    }
-
     @PreDestroy
     public void dispose() {
-        if(conversation!=null){
-            conversation.unregisterForDataStoreChanges(this);
-            conversation.close();
-            CdmStore.getContextManager().removeContextListener(contextListener);
-            conversation = null;
-        }
+        
         if(cdmEntitySession != null) {
+               CdmStore.getContextManager().removeContextListener(contextListener);
             cdmEntitySession.dispose();
             cdmEntitySession = null;
         }
@@ -262,8 +237,6 @@ ICdmChangeListener {
 
     @Override
     public boolean postOperation(Object objectAffectedByOperation) {
-        getConversationHolder().bind();
-        getConversationHolder().commit(true);
         viewer.refresh();
         return true;
     }
@@ -274,9 +247,6 @@ ICdmChangeListener {
     }
 
     public void refresh() {
-        getConversationHolder().bind();
-        //FIXME : Need to make sure this is a stable fix (ticket 3822)
-        getConversationHolder().commit();
         List<PolytomousKey> input = CdmStore.getService(IPolytomousKeyService.class).list(PolytomousKey.class, null, null, null, null);
         if(!viewer.getControl().isDisposed()){
             viewer.setInput(input);
@@ -302,12 +272,10 @@ ICdmChangeListener {
         if(event.getAction() == Action.Delete && PolytomousKey.class.equals(event.getEntityType())) {
             refresh();
         }
-
     }
 
     @Override
     public Map<Object, List<String>> getPropertyPathsMap() {
         return null;
     }
-
-}
+}
\ No newline at end of file
@@ -24,9 +24,9 @@ import org.eclipse.swt.widgets.Shell;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.e4.PolytomousKeyListEditorE4;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.navigation.key.polytomous.PolytomousKeyViewLabels;
-import eu.etaxonomy.taxeditor.navigation.key.polytomous.operation.RemotingDeletePolytomousKeyOperation;
+import eu.etaxonomy.taxeditor.navigation.key.polytomous.operation.DeletePolytomousKeyOperation;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
+import eu.etaxonomy.taxeditor.operation.e4.CdmHandlerE4;
 import eu.etaxonomy.taxeditor.util.OperationsUtil;
 
 /**
@@ -34,13 +34,13 @@ import eu.etaxonomy.taxeditor.util.OperationsUtil;
  * @date 25 Jun 2015
  *
  */
-public class RemotingDeletePolytomousKeyHandlerE4 extends RemotingCdmHandlerE4 {
+public class DeletePolytomousKeyHandlerE4 extends CdmHandlerE4 {
 
     List<UUID> keysToDelete;
     public static final String CONFIRM = Messages.DeleteHandler_CONFIRM;
     public static final String CONFIRM_MESSAGE = Messages.DeleteHandler_CONFIRM_MESSAGE;
 
-    public RemotingDeletePolytomousKeyHandlerE4() {
+    public DeletePolytomousKeyHandlerE4() {
         super(PolytomousKeyViewLabels.DELETE_POLYTOMOUS_KEY_LABEL);
     }
 
@@ -66,7 +66,7 @@ public class RemotingDeletePolytomousKeyHandlerE4 extends RemotingCdmHandlerE4 {
     @Override
     public AbstractOperation prepareOperation(IStructuredSelection selection, Shell shell, MPart activePart,
             MHandledMenuItem menuItem) {
-        return new RemotingDeletePolytomousKeyOperation(getTrigger(),
+        return new DeletePolytomousKeyOperation(getTrigger(),
                 false,
                 keysToDelete);
     }
@@ -41,9 +41,8 @@ import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
 /**
  * @author cmathew
  * @date 29 Jun 2015
- *
  */
-public class RemotingEditPolytomousKeyNodesHandlerE4 {
+public class EditPolytomousKeyNodesHandlerE4 {
 
     public static final String OPENING_POLYTOMOUS_KEYS = Messages.EditPolytomousKeyNodesHandler_OPEN_KEYS;
 
@@ -92,7 +91,7 @@ public class RemotingEditPolytomousKeyNodesHandlerE4 {
                                     part = partService.showPart(part, PartState.ACTIVATE);
                                 } catch(Exception ex) {
                                     MessagingUtils.warningDialog(PolytomousKeyViewLabels.ERROR_OPENING_KEY_EDITOR_MESSAGE,
-                                            RemotingEditPolytomousKeyNodesHandlerE4.this,
+                                            EditPolytomousKeyNodesHandlerE4.this,
                                             ex.getLocalizedMessage());
                                     ex.printStackTrace();
                                 }
@@ -17,17 +17,17 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.taxeditor.navigation.key.polytomous.PolytomousKeyViewLabels;
-import eu.etaxonomy.taxeditor.navigation.key.polytomous.operation.RemotingUpdatePolytomousKeyAllNodesOperation;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
+import eu.etaxonomy.taxeditor.navigation.key.polytomous.operation.UpdatePolytomousKeyAllNodesOperation;
+import eu.etaxonomy.taxeditor.operation.e4.CdmHandlerE4;
 
 /**
  * @author cmathew
  * @date 29 Jun 2015
  *
  */
-public class RemotingUpdatePolytomousKeyAllNodesHandlerE4 extends RemotingCdmHandlerE4 {
+public class UpdatePolytomousKeyAllNodesHandlerE4 extends CdmHandlerE4 {
 
-    public RemotingUpdatePolytomousKeyAllNodesHandlerE4() {
+    public UpdatePolytomousKeyAllNodesHandlerE4() {
         super(PolytomousKeyViewLabels.UPDATE_ALL_POLYTOMOUS_KEY_NODES_LABEL);
     }
 
@@ -40,7 +40,7 @@ public class RemotingUpdatePolytomousKeyAllNodesHandlerE4 extends RemotingCdmHan
     @Override
     public AbstractOperation prepareOperation(IStructuredSelection selection, Shell shell, MPart activePart,
             MHandledMenuItem menuItem) {
-        return new RemotingUpdatePolytomousKeyAllNodesOperation(getTrigger(), false);
+        return new UpdatePolytomousKeyAllNodesOperation(getTrigger(), false);
     }
 
     @Override
index 7df83b76449801d93e8cb8613febc614707e0fe0..a465f8cc2484ced7d14c71260406871746374f0d 100644 (file)
@@ -16,7 +16,6 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jface.dialogs.MessageDialog;
 
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
@@ -45,9 +44,8 @@ public class DeleteOperation extends AbstractPersistentPostOperation {
        public DeleteOperation(String label, IUndoContext undoContext,
                        PolytomousKey key,
                        IPostOperationEnabled postOperationEnabled,
-                       IConversationEnabled conversationEnabled,
                        ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
-               super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
+               super(label, undoContext, postOperationEnabled, cdmEntitySessionEnabled);
                this.key = key;
                this.cdmEntitySessionEnabled = cdmEntitySessionEnabled;
        }
@@ -19,7 +19,7 @@ import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
+import eu.etaxonomy.taxeditor.operation.CdmUpdateOperation;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -27,7 +27,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @date 25 Jun 2015
  *
  */
-public class RemotingDeletePolytomousKeyOperation extends RemotingCdmUpdateOperation {
+public class DeletePolytomousKeyOperation extends CdmUpdateOperation {
 
     private final static String LABEL = Messages.RemotingDeletePolytomousKeyOperation_DELETE_OP;
 
@@ -38,7 +38,7 @@ public class RemotingDeletePolytomousKeyOperation extends RemotingCdmUpdateOpera
      * @param source
      * @param async
      */
-    public RemotingDeletePolytomousKeyOperation(Object source,
+    public DeletePolytomousKeyOperation(Object source,
             boolean async,
             List<UUID> keysToDelete) {
         super(LABEL, Action.Delete, source, async);
index 5bb8f28ebe4ac4f223c7bd3714d1f7515a0c03d0..bacc615e7e940d8384b31ebafb035fed97532045 100644 (file)
@@ -1,3 +1,11 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.navigation.key.polytomous.operation;
 
 import java.util.UUID;
@@ -8,10 +16,7 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
-import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
-import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
@@ -21,57 +26,41 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * Operation responsible for refreshing key nodes node numbers of the Polytomous Keys.
  * The refresh is performed on all keys/
- * 
+ *
  * @author c.mathew
  * @created Jan 17 2013
- * @version 1.0
- *
  */
 public class RefreshNodesOperation extends AbstractPostTaxonOperation {
 
-       PolytomousKey key;      
-       
+       private PolytomousKey key;
+
        public RefreshNodesOperation(String label,
-                       IUndoContext undoContext, 
-                       PolytomousKey key, 
+                       IUndoContext undoContext,
+                       PolytomousKey key,
                        IPostOperationEnabled postOperationEnabled) {
                super(label, undoContext, postOperationEnabled);
                this.key = key;
        }
-       
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
+
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                UUID polytomousKeyNodeUuid = key.getRoot().getUuid();
-               ConversationHolder conversation = CdmStore.createConversation();
                PolytomousKeyNode root = CdmStore.getService(IPolytomousKeyNodeService.class).load(polytomousKeyNodeUuid, null);
-               root.refreshNodeNumbering();    
+               root.refreshNodeNumbering();
                CdmStore.getService(IPolytomousKeyNodeService.class).saveOrUpdate(root);
-               conversation.commit(true);
                return postExecute(root);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
-               // TODO Auto-generated method stub
                return null;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
-               // TODO Auto-generated method stub
                return null;
        }
-
-}
+}
\ No newline at end of file
@@ -17,7 +17,7 @@ import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
 import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
+import eu.etaxonomy.taxeditor.operation.CdmUpdateOperation;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -25,7 +25,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @date 29 Jun 2015
  *
  */
-public class RemotingUpdatePolytomousKeyAllNodesOperation extends RemotingCdmUpdateOperation {
+public class UpdatePolytomousKeyAllNodesOperation extends CdmUpdateOperation {
 
     private final UUID polytomousKeyUuid;
     /**
@@ -34,7 +34,7 @@ public class RemotingUpdatePolytomousKeyAllNodesOperation extends RemotingCdmUpd
      * @param source
      * @param async
      */
-    public RemotingUpdatePolytomousKeyAllNodesOperation(Object source,
+    public UpdatePolytomousKeyAllNodesOperation(Object source,
             boolean async,
             UUID polytomousKeyUuid) {
         super(LABEL, Action.Update, source, async);
@@ -42,7 +42,7 @@ public class RemotingUpdatePolytomousKeyAllNodesOperation extends RemotingCdmUpd
 
     }
 
-    public RemotingUpdatePolytomousKeyAllNodesOperation(Object source,
+    public UpdatePolytomousKeyAllNodesOperation(Object source,
             boolean async) {
         super(LABEL, Action.Update, source, async);
         // this implies that we have to update all nodes of all keys
index eb5a083accadca3330d237497110a78c60fe6646..e2c7ed3aa6170e3e581dee3eda6dd0a8e51b15d9 100644 (file)
@@ -93,6 +93,15 @@ public class Messages extends NLS {
     public static String RefreshPolytomousKeyNodesHandler_REFRESHING;
     public static String RemotingChangeAcceptedTaxonToSynonymHandler_CHOOSE_TAXON;
     public static String RemotingChangeAcceptedTaxonToSynonymOperation_CHANGE_OP;
+    public static String RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_title;
+    public static String RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_message;
+    public static String RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_message_always_select;
+    public static String RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Keep;
+    public static String RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Parent;
+    public static String RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Select;
+    public static String SecundumReference;
+    public static String ChangeAcceptedTaxonToSynonymHandler_Different_Secundum_references;
+    public static String RemotingChangeAcceptedTaxonToSynonym_warning_publish;
     public static String RemotingDeletePolytomousKeyOperation_DELETE_OP;
     public static String RemotingDeleteTaxonNodeHandler_NODE_DELETED;
     public static String RemotingDeleteTaxonNodeHandler_NODE_DELETED_MESSAGE;
@@ -109,6 +118,8 @@ public class Messages extends NLS {
     public static String RemotingMoveTaxonNodeHandler_TARGET_NODE_MESSAGE;
     public static String RemotingMoveTaxonNodeHandler_UNSAVED_PARENT;
     public static String RemotingMoveTaxonNodeHandler_UNSAVED_PARENT_MESSAGE;
+    public static String RemotingMoveTaxonNodeHandler_DIFFERENT_PUBLISH_TITLE;
+    public static String RemotingMoveTaxonNodeHandler_DIFFERENT_PUBLISH_MESSAGE;
     public static String RemotingMoveTaxonOperation_MOVE_OP;
     public static String RemotingUpdatePolytomousKeyAllNodesOperation_UPDATE_OP;
     public static String Root_CREATE_CLASSIFICATION;
@@ -123,6 +134,7 @@ public class Messages extends NLS {
     public static String SearchBar_8;
     public static String SearchBar_9;
     public static String SearchBar_10;
+    public static String SearchBar_11;
     public static String SearchResultLabelProvider_NAME;
     public static String SearchResultLabelProvider_SYNONYM;
     public static String SearchResultLabelProvider_TAXON;
@@ -179,6 +191,12 @@ public class Messages extends NLS {
     public static String TreeNodeDropAdapter_TARGET_NODE;
     public static String TreeNodeDropAdapter_UNSAVED_PARENT;
     public static String TreeNodeDropAdapter_UNSAVED_PARENT_MESSAGE;
+    public static String TreeNodeDropAdapter_Select_Sec_Reference_Handling_message_always_select;
+    public static String TreeNodeDropAdapter_Select_Sec_Reference_Handling_message;
+    public static String TreeNodeDropAdapter_Select_Sec_Reference_Parent;
+
+    public static String MoveTaxon_Different_Secundum_References;
+
     public static String SetPublishForSubtreeOperation_CHANGE_PUBLISH_OP;
     public static String TaxonNavigatorLabels_SET_PUBLISH_FOR_CHILDREN;
        public static String TaxonNavigatorLabels_ACCEPTED_TAXA_NEED_TO_BE_FROM_SAME_CLASSIFICATION;
index 52024c52929511b6eddc223d9fcbbfccea9164a3..3efc287e982713ddea0a02f291318d78c7fcf1fd 100644 (file)
@@ -21,8 +21,8 @@ DeleteHandler_CONFIRM_DELETE=Confirm Deletion
 DeleteHandler_CONFIRM_MESSAGE=Do you want to delete the selected key(s)?
 DeleteHandler_DELETE_ALL=Delete all children
 DeleteHandler_DELETE_CLASSIFICATION=Do you really want to delete the classification?
-DeleteHandler_DELETE_NODE=Do you really want to delete the selected node?
-DeleteHandler_DELETE_NODES=Do you really want to delete the selected nodes?
+DeleteHandler_DELETE_NODE=Do you really want to delete the selected node? Taxa will be deleted including all factual data.
+DeleteHandler_DELETE_NODES=Do you really want to delete the selected nodes? Taxa will be deleted including all factual data.
 DeleteHandler_MOVE_TO_PARENT=Move children to parent node
 DeleteHandler_SKIP=Cancel
 DeleteHandler_DELETE=Delete
@@ -74,6 +74,13 @@ RefreshPolytomousKeyNodesHandler_REFRESH=Refresh Polytomous Key Nodes
 RefreshPolytomousKeyNodesHandler_REFRESHING=Refreshing Polytomous Key Nodes
 RemotingChangeAcceptedTaxonToSynonymHandler_CHOOSE_TAXON=Choose the accepted taxon
 RemotingChangeAcceptedTaxonToSynonymOperation_CHANGE_OP=Change Accepted Taxon to Synonym operation
+RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_title=Select secundum reference
+RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_message=The secundum reference of the new and the old accepted taxa or the synonyms of the homotypical group are not the same. Please select which reference should be used for the new synonym
+RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_message_always_select=Please select which reference should be used for the new synonym
+RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Keep=Keep
+RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Parent=From accepted taxon
+RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Select=Select new
+RemotingChangeAcceptedTaxonToSynonym_warning_publish=The accepted taxon and the new synonym have different publish flags. Maybe it should be adapted.
 RemotingDeletePolytomousKeyOperation_DELETE_OP=Delete Polytomous Key operation
 RemotingDeleteTaxonNodeHandler_NODE_DELETED=Node already deleted
 RemotingDeleteTaxonNodeHandler_NODE_DELETED_MESSAGE=The taxon node was already deleted. Please reopen the taxon navigator to refresh the view.
@@ -87,9 +94,11 @@ RemotingMoveTaxonNodeHandler_CHILD=Child
 RemotingMoveTaxonNodeHandler_CHOOSE_PARENT=Choose new parent
 RemotingMoveTaxonNodeHandler_CHOOSE_TAXON=Choose the taxon above the moved taxon.
 RemotingMoveTaxonNodeHandler_TARGET_NODE=Target node
-RemotingMoveTaxonNodeHandler_TARGET_NODE_MESSAGE=Do you want to move the Taxonnode as child or behind the target node.
+RemotingMoveTaxonNodeHandler_TARGET_NODE_MESSAGE=Do you want to move the Taxonnode as child or below (as sibbling) the target node.
 RemotingMoveTaxonNodeHandler_UNSAVED_PARENT=Unsaved Parent Taxon
 RemotingMoveTaxonNodeHandler_UNSAVED_PARENT_MESSAGE=There are unsaved changes in the parent taxon. Please save first.
+RemotingMoveTaxonNodeHandler_DIFFERENT_PUBLISH_TITLE=Different publish states
+RemotingMoveTaxonNodeHandler_DIFFERENT_PUBLISH_MESSAGE=The new parent taxon and the moved taxon/taxa do not have the same publish status.
 RemotingMoveTaxonOperation_MOVE_OP=Move Taxon operation
 RemotingUpdatePolytomousKeyAllNodesOperation_UPDATE_OP=Update All Polytomous Key Nodes operation
 Root_CREATE_CLASSIFICATION=Creating initial classification
@@ -104,6 +113,7 @@ SearchBar_7=Synonyms
 SearchBar_8=Names (without taxa)
 SearchBar_9=Common Names
 SearchBar_10=Unpublished taxa
+SearchBar_11=With authors
 SearchResultLabelProvider_NAME=Name: 
 SearchResultLabelProvider_SYNONYM=Synonym: 
 SearchResultLabelProvider_TAXON=Taxon: 
@@ -130,7 +140,7 @@ TaxonNavigatorDataChangeBehavior_CLEAR_SESSION=Clearing Taxon Navigators session
 TaxonNavigatorDataChangeBehavior_REFRESH_VIEWER=Refreshing viewer
 TaxonNavigatorDataChangeBehavior_UPDATE_NAVIGATOR=Updating Taxon Navigator
 TaxonNavigatorLabels_CHANGE_ACC_TAXON=Change Accepted Taxon to Synonym
-TaxonNavigatorLabels_CLOSE_IMPOSSIBLE=Could not close related taxon name editor. Please close it manually and try again.
+TaxonNavigatorLabels_CLOSE_IMPOSSIBLE=Could not close related taxon editor. Please close it manually and try again.
 TaxonNavigatorLabels_DELETE_TAXON=Delete Taxon Node
 TaxonNavigatorLabels_MOVE_FACTUAL_DATA=Move Factual Data
 TaxonNavigatorLabels_MOVE_TAXON=Move Taxon
@@ -156,6 +166,11 @@ TreeNodeDropAdapter_MOVING_MESSAGE=The operation move accepted taxon to other pa
 TreeNodeDropAdapter_TARGET_NODE=Target node
 TreeNodeDropAdapter_UNSAVED_PARENT=Unsaved Parent Taxon
 TreeNodeDropAdapter_UNSAVED_PARENT_MESSAGE=There are unsaved changes in the parent taxon. Please save first.
+TreeNodeDropAdapter_Select_Sec_Reference_Handling_message_always_select=Please select which reference should be used for the moved taxon/taxa
+TreeNodeDropAdapter_Select_Sec_Reference_Handling_message=The secundum reference of the new parent and/or the moved taxa are not the same. Please select which reference should be used for the moved taxa/taxon
+TreeNodeDropAdapter_Select_Sec_Reference_Parent=From new parent
+MoveTaxon_Different_Secundum_References=Different secundum references are used, maybe they should be adapted.
+
 SetPublishForSubtreeOperation_CHANGE_PUBLISH_OP=Change publish flag for all children
 TaxonNavigatorLabels_SET_PUBLISH_FOR_CHILDREN=Change publish flag for all children
 TaxonNavigatorLabels_SET_UNPLACED=Set unplaced flag for taxonnode(s)
@@ -163,3 +178,5 @@ NO=No
 YES=Yes
 SetPublishFlagForSubtreeHandlerE4_UnsavedChanges=There are unsaved changes
 SetPublishFlagForSubtreeHandlerE4_UnsavedChangesQuestion=There are changes, do you want to save them? \nIf you do not save, the changes may be overwritten.
+SecundumReference=Secundum reference
+ChangeAcceptedTaxonToSynonymHandler_Different_Secundum_references=The selected accepted taxon and the new synonym have different secundum references, maybe they should be adapted.
\ No newline at end of file
index 408accb5157e5ba9b78eff7180878558c1113b32..39441059b2fc92c1e777c426e2829e14c954caf1 100644 (file)
@@ -21,8 +21,8 @@ DeleteHandler_CONFIRM_DELETE=L
 DeleteHandler_CONFIRM_MESSAGE=Wollen wie Sie die ausgewählten Schlüssen löschen?
 DeleteHandler_DELETE_ALL=Alle Kinder löschen
 DeleteHandler_DELETE_CLASSIFICATION=Wollen Sie die Klassifikation wirklich löschen?
-DeleteHandler_DELETE_NODE=Wollen Sie den ausgewählten Knoten wirklich löschen?
-DeleteHandler_DELETE_NODES=Wollen Sie die ausgewählten Knoten wirklich löschen?
+DeleteHandler_DELETE_NODE=Wollen Sie den ausgewählten Knoten wirklich löschen? Taxa werden inklusive aller Faktendaten gelöscht.
+DeleteHandler_DELETE_NODES=Wollen Sie die ausgewählten Knoten wirklich löschen? Taxa werden inklusive aller Faktendaten gelöscht.
 DeleteHandler_MOVE_TO_PARENT=Verschiebe Kinder zu Elternknoten
 DeleteHandler_SKIP=Abbrechen
 DeleteHandler_DELETE=Löschen
@@ -74,6 +74,13 @@ RefreshPolytomousKeyNodesHandler_REFRESH=Polytome Schl
 RefreshPolytomousKeyNodesHandler_REFRESHING=Polytome Schlüssel aktualisieren
 RemotingChangeAcceptedTaxonToSynonymHandler_CHOOSE_TAXON=Wählen Sie das akzeptierte Taxon
 RemotingChangeAcceptedTaxonToSynonymOperation_CHANGE_OP=Akzeptiertes Taxon in Synonym umwandeln
+RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_title=Auswahl der Secundum Referenz
+RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_message=Die Secundum Referenzen des neuen und des alten akzeptierten Taxons oder der Synonyme der Homotypischen Gruppe unterscheiden sich, bitte wählen Sie welche Secundum Referenz für das neue Synonym verwendet werden soll
+RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_message_always_select=Bitte wählen Sie welche Secundum Referenz für das neue Synonym verwendet werden soll.
+RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Keep=Beibehalten
+RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Parent=Vom akzeptierten Taxon
+RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Select=Neue auswählen
+RemotingChangeAcceptedTaxonToSynonym_warning_publish=Das akzeptierte Taxon und das neue Synonym haben unterschiedliche Publikationsstatus. Eventuell sollten sie angepasst werden.
 RemotingDeletePolytomousKeyOperation_DELETE_OP=Polytomen Schlüssel löschen
 RemotingDeleteTaxonNodeHandler_NODE_DELETED=Taxonknoten schon gelöscht
 RemotingDeleteTaxonNodeHandler_NODE_DELETED_MESSAGE=Der Taxonknoten wurde schon gelöscht. Bitte Öffnen Sie den Taxonnavigator erneut um die Anzeige zu aktualisieren.
@@ -87,9 +94,11 @@ RemotingMoveTaxonNodeHandler_CHILD=Kind
 RemotingMoveTaxonNodeHandler_CHOOSE_PARENT=Neuen Elternknoten wählen
 RemotingMoveTaxonNodeHandler_CHOOSE_TAXON=Wählen sie das Taxon über dem zu verschiebenden Taxon.
 RemotingMoveTaxonNodeHandler_TARGET_NODE=Zielknoten.
-RemotingMoveTaxonNodeHandler_TARGET_NODE_MESSAGE=Wollen Sie den Taxonknoten als Kind oder hinter den Zielknoten verschieben.
+RemotingMoveTaxonNodeHandler_TARGET_NODE_MESSAGE=Wollen Sie den Taxonknoten als Kind oder unter (mit dem gleichen Elterntaxon) verschieben.
 RemotingMoveTaxonNodeHandler_UNSAVED_PARENT=Ungespeichertes Eltern-Taxon
 RemotingMoveTaxonNodeHandler_UNSAVED_PARENT_MESSAGE=Es gibt ungespeicherte Änderungen im Eltern-Taxon. Bitte speichen Sie erst.
+RemotingMoveTaxonNodeHandler_DIFFERENT_PUBLISH_TITLE=Unterschiedliche Publikationsstatus
+RemotingMoveTaxonNodeHandler_DIFFERENT_PUBLISH_MESSAGE=Das neue Elterntaxon und das verschobene Taxon bzw. die verschobenen Taxa haben unterschiedliche Publikationsstatus.
 RemotingMoveTaxonOperation_MOVE_OP=Taxon verschieben
 RemotingUpdatePolytomousKeyAllNodesOperation_UPDATE_OP=Alle polytomen Schlüssel updaten
 Root_CREATE_CLASSIFICATION=Initiale Klassifikation erstellen
@@ -104,6 +113,7 @@ SearchBar_7=Synonyme
 SearchBar_8=Namen (ohne Taxa)
 SearchBar_9=Umgangsprachliche Namen
 SearchBar_10=Unpublizierte Taxa
+SearchBar_11=Mit Autoren
 SearchResultLabelProvider_NAME=Name: 
 SearchResultLabelProvider_SYNONYM=Synonym: 
 SearchResultLabelProvider_TAXON=Taxon: 
@@ -130,7 +140,7 @@ TaxonNavigatorDataChangeBehavior_CLEAR_SESSION=L
 TaxonNavigatorDataChangeBehavior_REFRESH_VIEWER=Taxonnavigator aktualisieren
 TaxonNavigatorDataChangeBehavior_UPDATE_NAVIGATOR=Taxonnavigator updaten
 TaxonNavigatorLabels_CHANGE_ACC_TAXON=Akzeptiertes Taxon in Synonym umwandeln
-TaxonNavigatorLabels_CLOSE_IMPOSSIBLE=Konnte den Namenseditor nicht schließen. Bitte schließen Sie ihn manuell und versuchen es erneut.
+TaxonNavigatorLabels_CLOSE_IMPOSSIBLE=Konnte den Taxon Editor nicht schließen. Bitte schließen Sie ihn manuell und versuchen es erneut.
 TaxonNavigatorLabels_DELETE_TAXON=Taxonknoten löschen
 TaxonNavigatorLabels_MOVE_FACTUAL_DATA=Faktendaten verschieben
 TaxonNavigatorLabels_MOVE_TAXON=Taxon verschieben
@@ -156,6 +166,10 @@ TreeNodeDropAdapter_MOVING_MESSAGE=Dieser Vorgang ist nur f
 TreeNodeDropAdapter_TARGET_NODE=Zielknoten
 TreeNodeDropAdapter_UNSAVED_PARENT=Ungespeichertes Eltern-Taxon
 TreeNodeDropAdapter_UNSAVED_PARENT_MESSAGE=Es gibt Änderungen in dem Eltern-Taxon. Bitte speichern Sie erst.
+TreeNodeDropAdapter_Select_Sec_Reference_Handling_message_always_select=Bitte wählen Sie welche Secundum Referenz für das/die verschobene(n) Taxon/Taxa verwendet werden soll.
+TreeNodeDropAdapter_Select_Sec_Reference_Handling_message=Die beteiligten Secundum Referenzen unterscheiden sich, bitte wählen Sie welche Referenz für die/das verschobene(n) Taxa/Taxon verwendet werden soll.
+TreeNodeDropAdapter_Select_Sec_Reference_Parent=Vom neuen Parent
+MoveTaxon_Different_Secundum_References=Es werden unterschiedliche Secundum Referenzen verwendet, eventuell müssen sie angepasst werden.
 
 SetPublishForSubtreeOperation_CHANGE_PUBLISH_OP=Publish Flag für alle Kinder ändern
 TaxonNavigatorLabels_SET_PUBLISH_FOR_CHILDREN=Ändere Publish Flag für alle Kinder
@@ -166,3 +180,5 @@ YES=Ja
 
 SetPublishFlagForSubtreeHandlerE4_UnsavedChanges=Es gibt ungespeicherte Änderungen
 SetPublishFlagForSubtreeHandlerE4_UnsavedChangesQuestion=Es gibt Änderungen, wollen Sie diese speichern? \nWenn Sie nicht speichern, könnten diese Änderungen verloren gehen.
+SecundumReference=Secundum Referenz
+ChangeAcceptedTaxonToSynonymHandler_Different_Secundum_references=Das ausgewählte akzeptierte Taxon und das neue Synonym haben unterschiedliche Secundum Referenzen, diese müssten eventuell angepasst werden.
\ No newline at end of file
index daf9c589b35c72172e3827e9755f75a04395710e..681a055f651489a9a731fbba94b842f32578408e 100644 (file)
@@ -27,7 +27,7 @@ public class EmptyRoot extends Root {
         * <p>Constructor for EmptyRoot.</p>
         */
        public EmptyRoot() {
-               super(null);
+               super();
        }
 
        /**
index d2425e44ca54555c4977f6cf41af3d9390158628..51894bb8ff8fa0607715214d53daf9c534e65c61 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.navigator;
 
 import java.util.ArrayList;
@@ -19,44 +18,28 @@ import org.eclipse.ui.IElementFactory;
 import org.eclipse.ui.IMemento;
 import org.eclipse.ui.IPersistableElement;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>Root class.</p>
- *
  * @author p.ciardelli
  * @created 02.06.2009
- * @version 1.0
  */
-public class Root extends PlatformObject implements IAdaptable, IPersistableElement, IElementFactory, IConversationEnabled {
+public class Root extends PlatformObject
+        implements IPersistableElement, IElementFactory {
 
-       private final ConversationHolder conversation;
        private List<TaxonNodeDto> rootNodes = new ArrayList<>();
 
-       /**
-        * <p>Constructor for Root.</p>
-        *
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       public Root (ConversationHolder conversation){
-               this.conversation = conversation;
-       }
+       public Root () {}
 
-       /**
-        * <p>getParentBeans</p>
-        *
-        * @return a {@link java.util.List} object.
-        */
        public List<TaxonNodeDto> getParentBeans() {
                List<String> propertyPaths = Arrays.asList(new String[]{
                        "name", //$NON-NLS-1$
-                       "rootNode.childNodes"}); //$NON-NLS-1$
+                       "rootNode.statusNote",//$NON-NLS-1$
+                       "rootNode.childNodes",//$NON-NLS-1$
+                       "rootNode.childNodes.statusNote"}); //$NON-NLS-1$
                if (rootNodes.isEmpty()){
                List<Classification> classifications = CdmStore.getService(IClassificationService.class).list(null, null, null, null, propertyPaths);
 
@@ -76,50 +59,20 @@ public class Root extends PlatformObject implements IAdaptable, IPersistableElem
                return rootNodes;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IPersistableElement#getFactoryId()
-        */
-       /**
-        * <p>getFactoryId</p>
-        *
-        * @return a {@link java.lang.String} object.
-        */
        @Override
     public String getFactoryId() {
                return null;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento)
-        */
-       /** {@inheritDoc} */
        @Override
     public void saveState(IMemento memento) {
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IElementFactory#createElement(org.eclipse.ui.IMemento)
-        */
-       /** {@inheritDoc} */
        @Override
     public IAdaptable createElement(IMemento memento) {
                return null;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
-        */
-       @Override
-       public void update(CdmDataChangeMap changeEvents) {}
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
-        */
-       @Override
-       public ConversationHolder getConversationHolder() {
-               return conversation;
-       }
-
        public void addRootNode(Classification newClassification){
            newClassification = CdmStore.getService(IClassificationService.class).load(newClassification.getUuid());
            boolean exist = false;
@@ -132,12 +85,8 @@ public class Root extends PlatformObject implements IAdaptable, IPersistableElem
            if (!exist){
                rootNodes.add(new TaxonNodeDto(newClassification.getRootNode()));
            }
-
        }
 
-    /**
-     * @param cb
-     */
     public void removeRootNode(Classification cb) {
         int index = -1;
         for (TaxonNodeDto dto: rootNodes){
@@ -149,6 +98,5 @@ public class Root extends PlatformObject implements IAdaptable, IPersistableElem
         if (index > 0){
             rootNodes.remove(index);
         }
-
     }
-}
+}
\ No newline at end of file
index 2943a3921e45c6c57ba02521d19e99d1611efba3..9a37542f85a2c86666bc519ce2e5d5dbea4c9c50 100644 (file)
@@ -10,15 +10,12 @@ import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 
 public class TaxonNodeNavigatorComparator extends ViewerComparator{
 
-       Comparator<TaxonNodeDto> comparator;
+       private Comparator<TaxonNodeDto> comparator;
 
        public TaxonNodeNavigatorComparator(Comparator<TaxonNodeDto> comparator){
-               super();
                this.comparator = comparator;
        }
 
-
-
        @Override
        public int compare(Viewer viewer, Object e1, Object e2){
                if ((e1 instanceof Classification && e2 instanceof Classification) ){
@@ -31,7 +28,6 @@ public class TaxonNodeNavigatorComparator extends ViewerComparator{
                        }else{
                                return comparator.compare((TaxonNodeDto)e1, (TaxonNodeDto)e2);
                        }
-
                }
        }
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/TaxonNavigatorDataChangeBehaviorE4.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/TaxonNavigatorDataChangeBehaviorE4.java
deleted file mode 100644 (file)
index 1fc6993..0000000
+++ /dev/null
@@ -1,196 +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.navigation.navigator.e4;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swt.widgets.Display;
-
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.model.AbstractDataChangeBehaviour;
-import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
-import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
-
-/**
- * <p>TaxonNavigatorDataChangeBehavior class.</p>
- *
- * @author n.hoffmann
- * @created 01.04.2009
- * @version 1.0
- */
-public class TaxonNavigatorDataChangeBehaviorE4 extends AbstractDataChangeBehaviour implements
-               IDataChangeBehavior {
-
-    private static final String UPDATING_TAXON_NAVIGATOR = Messages.TaxonNavigatorDataChangeBehavior_UPDATE_NAVIGATOR;
-
-    private final TaxonNavigatorE4 source;
-
-       private Set<CdmBase> staleObjects;
-
-       /**
-        * <p>Constructor for TaxonNavigatorDataChangeBehavior.</p>
-        *
-        * @param taxonNavigator a {@link eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator} object.
-        */
-       public TaxonNavigatorDataChangeBehaviorE4(TaxonNavigatorE4 taxonNavigator) {
-               source = taxonNavigator;
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#isRelevant(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
-        */
-       /**
-        * <p>isRelevant</p>
-        *
-        * @param events a {@link eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap} object.
-        * @return a boolean.
-        */
-       public boolean isRelevant(CdmDataChangeMap events) {
-
-               // TODO react only on insert/update/delete of taxon and synonym objects
-               // and on update of name objects
-               boolean relevant = false;
-               staleObjects = new HashSet<CdmBase>();
-
-               for(CdmDataChangeEvent event : events.getAllEvents()){
-                       EventType eventType = event.getEventType();
-                       CdmBase eventEntity = event.getEntity();
-
-                       Set<CdmBase> affectedObjects = event.getAffectedObjects();
-                       if(affectedObjects != null) {
-                           for(CdmBase cb : affectedObjects) {
-                               staleObjects.add(HibernateProxyHelper.deproxy(cb));
-                           }
-                       }
-
-                       // all tree node changes are relevant
-                       if((eventType == EventType.INSERT || eventType == EventType.DELETE || eventType == EventType.UPDATE)
-                                       && event.getEntity() instanceof ITaxonTreeNode){
-                               return true;
-                       }
-
-                       if (eventType == EventType.DELETE){
-                               return true;
-                       }
-
-
-
-                       if(eventType == EventType.UPDATE && event.getEntity() instanceof Taxon){
-                               TaxonName name = null;
-                               if(eventEntity instanceof Taxon){
-                                       name = ((Taxon) eventEntity).getName();
-                               }else{
-                                       continue;
-                               }
-
-                               // Set<IEditorPart> openEditors = NavigationUtil.getOpenEditors();
-                               /*for(IEditorPart editor : openEditors){
-
-                                       if(name.equals(((TaxonEditorInput) editor.getEditorInput()).getTaxon().getName())){
-                                               return true;
-                                       }
-                               }*/
-                       }
-
-//                     if(eventType == EventType.UPDATE){
-//                             relevant = true;
-//                             CdmBase entity = event.getEntity();
-//                             if((entity instanceof TaxonNameBase)
-//                                             || (entity instanceof Taxon)
-//                                             || (entity instanceof Synonym)){
-//                                     staleObjects.add(entity);
-//                             }
-//                     }
-               }
-
-               return false;
-
-               // @deprecated
-               // react on everything except load
-//             if(events.sizeByEventType(EventType.INSERT) > 0){
-//                     return true;
-//             }else if(events.sizeByEventType(EventType.UPDATE) > 0){
-//                     return true;
-//             }else if(events.sizeByEventType(EventType.DELETE) > 0){
-//                     return true;
-//             }else{
-//                     return false;
-//             }
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void reactOnDataChange(CdmDataChangeMap events) {
-               if(isRelevant(events)){
-
-                       final Display display = Display.getCurrent();
-                       Job job = new Job(UPDATING_TAXON_NAVIGATOR) {
-
-                               @Override
-                               protected IStatus run(IProgressMonitor monitor) {
-                                       monitor.beginTask(UPDATING_TAXON_NAVIGATOR, 3);
-                                       monitor.worked(1);
-
-                                       // clear the session completely
-                                       monitor.subTask(Messages.TaxonNavigatorDataChangeBehavior_CLEAR_SESSION);
-                                       display.asyncExec(new Runnable() {
-                                                @Override
-                                                public void run() {
-                                                        source.getConversationHolder().clear();
-                                                }
-                                       });
-                                       // FIXME completely clearing the session is a brute force approach.
-                                       // It would be much more elegant to clear only those elements that have been changed.
-                                       // I could not get that to work but we should consider workin on this because we might
-                                       // run into serious performance issues, especially when it comes to large trees
-                                       //
-                                       // at least, we moved this to a job so it can run in a background thred
-                                       // seems to improve the situation but not sure if final solution
-                                       monitor.worked(1);
-
-                                       monitor.subTask(Messages.TaxonNavigatorDataChangeBehavior_REFRESH_VIEWER);
-
-                                       display.asyncExec(new Runnable() {
-                                           @Override
-                                           public void run() {
-                                               if(staleObjects != null && staleObjects.size() > 0) {
-                                                  source.refresh(staleObjects);
-                                               } else {
-                                                   source.refresh();
-                                               }
-                                           }
-                                       });
-
-
-
-                                       monitor.worked(1);
-                                       monitor.done();
-                                       return Status.OK_STATUS;
-                               }
-                       };
-
-                       job.setPriority(Job.SHORT);
-                       job.schedule();
-
-               }
-       }
-}
index 74284994ae746922325ceb6ef9c1281f539eac8d..f04cd56369d46d008cf9c0936b76f9fd29bea7cc 100644 (file)
@@ -6,16 +6,12 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.navigation.navigator.e4;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Comparator;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Map;
 import java.util.Observable;
 import java.util.Observer;
 import java.util.Set;
@@ -63,8 +59,6 @@ import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
 import eu.etaxonomy.cdm.api.application.ICdmChangeListener;
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
@@ -72,15 +66,11 @@ import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoByNameComparator;
-import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoByRankAndNameComparator;
-import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoNaturalComparator;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.ITaxonEditor;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;
+import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.DataChangeBridge;
 import eu.etaxonomy.taxeditor.model.IContextListener;
 import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
 import eu.etaxonomy.taxeditor.navigation.AppModelId;
@@ -90,24 +80,19 @@ import eu.etaxonomy.taxeditor.navigation.navigator.EmptyRoot;
 import eu.etaxonomy.taxeditor.navigation.navigator.Root;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodeNavigatorComparator;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.preference.NavigatorOrderEnum;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.LoginManager;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.workbench.part.ICollapsableExpandable;
 
 /**
- *
  * @author pplitzner
  * @since Sep 7, 2017
- *
  */
 public class TaxonNavigatorE4 implements
-               IPostOperationEnabled, IConversationEnabled, Observer,
-               ICdmEntitySessionEnabled, ICdmChangeListener, IContextListener,
+               IPostOperationEnabled, Observer,
+               ICdmChangeListener, IContextListener,
                ICollapsableExpandable {
 
     private static final String RESTORING_TAXON_NAVIGATOR = Messages.TaxonNavigator_RESTORE;
@@ -118,10 +103,6 @@ public class TaxonNavigatorE4 implements
 
        private final int dndOperations = DND.DROP_MOVE;
 
-       private ConversationHolder conversation;
-
-       private ICdmEntitySession cdmEntitySession;
-
        private IDataChangeBehavior dataChangeBehavior;
 
        private Root root;
@@ -197,8 +178,6 @@ public class TaxonNavigatorE4 implements
 
         updateSyncButton();
 
-
-
            init();
        }
 
@@ -216,54 +195,39 @@ public class TaxonNavigatorE4 implements
         }
     }
 
-       /** {@inheritDoc} */
        protected IAdaptable getInitialInput() {
-               Comparator<TaxonNodeDto> comparator;
-               NavigatorOrderEnum orderValue = NavigatorOrderEnum.RankAndNameOrder;
-               try{
-                   orderValue = PreferencesUtil.getSortNodes();
-               }catch(IllegalArgumentException e){
-
-               }
-
-               if (orderValue.equals(NavigatorOrderEnum.NaturalOrder)){
-                       comparator = new TaxonNodeDtoNaturalComparator();
-               } else if (orderValue.equals(NavigatorOrderEnum.AlphabeticalOrder)){
-                       comparator = new TaxonNodeDtoByNameComparator();
-               }else {
-                       comparator = new TaxonNodeDtoByRankAndNameComparator();
-               }
+               Comparator<TaxonNodeDto> comparator = PreferencesUtil.getNodeComparator();
 
                TaxonNodeNavigatorComparator viewerComparator = new TaxonNodeNavigatorComparator(comparator);
                viewer.setComparator(viewerComparator);
                viewer.setComparer(new IElementComparer() {
 
-               @Override
-            public int hashCode(Object element) {
-                   if (element instanceof TaxonNodeDto){
-                   TaxonNodeDto nodeDto = (TaxonNodeDto)element;
-
-                   String s = nodeDto.getUuid().toString();
-                   if (s != null) {
-                       return s.hashCode();
+               @Override
+                public int hashCode(Object element) {
+                   if (element instanceof TaxonNodeDto){
+                           TaxonNodeDto nodeDto = (TaxonNodeDto)element;
+
+                           String s = nodeDto.getUuid().toString();
+                           if (s != null) {
+                               return s.hashCode();
+                           }
+                           return element.hashCode();
+                   }else{
+                       return element.toString().hashCode();
                    }
-                   return element.hashCode();
-                   }else{
-                       return element.toString().hashCode();
-                   }
-               }
-
-            @Override
-            public boolean equals(Object element1, Object element2) {
-                if (element1 instanceof TaxonNodeDto && element2 instanceof TaxonNodeDto){
-                    TaxonNodeDto node1 = (TaxonNodeDto)element1;
-                    TaxonNodeDto node2 = (TaxonNodeDto)element2;
-                    return (node1.getUuid().equals(node2.getUuid()));
-                }else {
-                    return element1.equals(element2);
+               }
+
+                @Override
+                public boolean equals(Object element1, Object element2) {
+                    if (element1 instanceof TaxonNodeDto && element2 instanceof TaxonNodeDto){
+                        TaxonNodeDto node1 = (TaxonNodeDto)element1;
+                        TaxonNodeDto node2 = (TaxonNodeDto)element2;
+                        return (node1.getUuid().equals(node2.getUuid()));
+                    }else {
+                        return element1.equals(element2);
+                    }
                 }
-            }
-               }
+               }
                );
 
                if (CdmStore.isActive()) {
@@ -272,7 +236,7 @@ public class TaxonNavigatorE4 implements
                        // we do not preserve state. Closing the view, in contrary to
                        // closing the whole application
                        // should be handled by the state manager too
-                   root = new Root(conversation);
+                   root = new Root();
 
                        return root;
                }
@@ -280,12 +244,12 @@ public class TaxonNavigatorE4 implements
        }
 
        public void init() {
-               if (CdmStore.isActive() && conversation == null) {
-                       conversation = CdmStore.createConversation();
-                       conversation.registerForDataStoreChanges(TaxonNavigatorE4.this);
-               }
+//             if (CdmStore.isActive() && conversation == null) {
+//                     conversation = CdmStore.createConversation();
+//                     conversation.registerForDataStoreChanges(TaxonNavigatorE4.this);
+//             }
                if (CdmStore.isActive()) {
-                   cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+//                 cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
                    CdmApplicationState.getCurrentDataChangeService().register(this);
                    viewer.setInput(getInitialInput());
                }
@@ -301,8 +265,8 @@ public class TaxonNavigatorE4 implements
                viewer.refresh();
                TaxonNodeDto taxonNode = null;
                if(editor.getTaxon()!=null && editor.getTaxon().getTaxonNodes()!=null){
-                   if (editor instanceof TaxonNameEditorE4){
-                       taxonNode = new TaxonNodeDto( ((TaxonNameEditorE4)editor).getEditorInput().getTaxonNode());
+                   if (editor instanceof TaxonEditor){
+                       taxonNode = new TaxonNodeDto( ((TaxonEditor)editor).getEditorInput().getTaxonNode());
                    }else{
                        if (editor.getTaxon().getTaxonNodes() != null && !editor.getTaxon().getTaxonNodes().isEmpty()){
                            taxonNode = new TaxonNodeDto(editor.getTaxon().getTaxonNodes().iterator().next());
@@ -314,11 +278,20 @@ public class TaxonNavigatorE4 implements
                 }else{
                     //TODO: show message in status bar
                 }
-
                }
            }
        }
 
+       @Inject
+    @Optional
+    public void updateLinkWithTaxon(@UIEventTopic(WorkbenchEventConstants.UPDATE_LINK_WITH_TAXON) boolean isDummy){
+           this.linkWithTaxon = !linkWithTaxon;
+
+        if(this.isLinkWithTaxon()){
+            this.updateCurrentTaxon(EventUtility.getTaxonEditor());
+        }
+       }
+
     public void setLinkWithTaxon(boolean linkWithTaxon) {
         this.linkWithTaxon = linkWithTaxon;
     }
@@ -331,15 +304,10 @@ public class TaxonNavigatorE4 implements
         * Refresh this navigators viewer
         */
        public void refresh() {
-               if(getConversationHolder() != null){
-                       getConversationHolder().bind();
-                       //FIXME : Need to make sure this is a stable fix (ticket 3822)
-                       if(!getConversationHolder().isCompleted()){
-                           getConversationHolder().commit();
-                       }
-               }
+
                if(!viewer.getTree().isDisposed()){
                    if (CdmStore.isActive()){
+
                        viewer.setInput(getInitialInput());
                    }
                    viewer.refresh();
@@ -374,13 +342,13 @@ public class TaxonNavigatorE4 implements
        }
 
        private void restore(IMemento memento, IProgressMonitor monitor) {
-           root = new Root(conversation);
+           root = new Root();//conversation);
                if (memento == null) {
                    viewer.setInput(root);
                        return;
                }
                int mementoWork = 0;
-               Set<TreePath> treePaths = new HashSet<TreePath>();
+               Set<TreePath> treePaths = new HashSet<>();
                IMemento[] treePathMementos = null;
 
                IMemento treePathsMemento = memento.getChild(TREE_PATHS);
@@ -400,9 +368,9 @@ public class TaxonNavigatorE4 implements
                subProgressMonitor.subTask(RESTORING_TAXON_NAVIGATOR);
                subProgressMonitor.worked(1);
 
-               conversation = CdmStore.createConversation();
+               //conversation = CdmStore.createConversation();
                subProgressMonitor.worked(1);
-               conversation.registerForDataStoreChanges(TaxonNavigatorE4.this);
+               //conversation.registerForDataStoreChanges(TaxonNavigatorE4.this);
                subProgressMonitor.worked(1);
                viewer.setInput(root);
                subProgressMonitor.worked(1);
@@ -429,7 +397,7 @@ public class TaxonNavigatorE4 implements
 
        private TreePath createTreePathFromString(String string) {
 
-               List<CdmBase> pathList = new ArrayList<CdmBase>();
+               List<CdmBase> pathList = new ArrayList<>();
 
                if (string.length() == 0) {
             return null;
@@ -454,53 +422,28 @@ public class TaxonNavigatorE4 implements
                return new TreePath(pathList.toArray());
        }
 
-       /**
-        * {@inheritDoc}
-        */
        @Override
        public void collapse() {
            viewer.collapseAll();
        }
 
-       /**
-        * {@inheritDoc}
-        */
        @Override
        public void expand() {
            viewer.expandAll();
        }
 
-       @Override
-       public ConversationHolder getConversationHolder() {
-               return conversation;
-       }
 
-       /** {@inheritDoc} */
+
        @PreDestroy
        public void dispose() {
-               dataChangeBehavior = null;
-               if (conversation != null) {
-                       conversation.unregisterForDataStoreChanges(this);
-                       conversation.close();
-               }
-               if(cdmEntitySession != null) {
-                   cdmEntitySession.dispose();
-                   cdmEntitySession = null;
-               }
                if(CdmApplicationState.getCurrentDataChangeService() != null) {
                    CdmApplicationState.getCurrentDataChangeService().unregister(this);
                }
        }
 
-       /** {@inheritDoc} */
        @Focus
        public void setFocus() {
-               if (getConversationHolder() != null) {
-                       getConversationHolder().bind();
-               }
-               if(cdmEntitySession != null) {
-                   cdmEntitySession.bind();
-               }
+
        }
 
     public UISynchronize getSync() {
@@ -515,7 +458,6 @@ public class TaxonNavigatorE4 implements
         return undoContext;
     }
 
-       /** {@inheritDoc} */
        @Override
        public boolean postOperation(Object objectAffectedByOperation) {
            viewer.refresh();
@@ -532,26 +474,19 @@ public class TaxonNavigatorE4 implements
                if(o instanceof LoginManager){
                        refresh();
                }
-
        }
-          /** {@inheritDoc} */
-    @Override
-    public void update(CdmDataChangeMap changeEvents) {
-        if (dataChangeBehavior == null) {
-            dataChangeBehavior = new TaxonNavigatorDataChangeBehaviorE4(this);
-        }
 
-        DataChangeBridge.handleDataChange(changeEvents, dataChangeBehavior);
-        updateSyncButton();
-
-    }
+//    @Override
+//    public void update(CdmDataChangeMap changeEvents) {
+//        if (dataChangeBehavior == null) {
+//            dataChangeBehavior = new TaxonNavigatorDataChangeBehaviorE4(this);
+//        }
+//
+//        DataChangeBridge.handleDataChange(changeEvents, dataChangeBehavior);
+//        updateSyncButton();
+//
+//    }
 
-    @Override
-    public ICdmEntitySession getCdmEntitySession() {
-       return cdmEntitySession;
-    }
-
-    @Override
     public List<TaxonNodeDto> getRootEntities() {
         if(root != null) {
             return root.getParentBeans();
@@ -583,35 +518,15 @@ public class TaxonNavigatorE4 implements
         viewer.setExpandedElements(expandedElements);
     }
 
-    @Override
-    public Map<Object, List<String>> getPropertyPathsMap() {
-        Map<Object, List<String>> propertyPathsMap = new HashMap<Object, List<String>>();
-        List<String> taxonNodePropertyPaths = Arrays.asList(new String[] {
-                "taxon.name" //$NON-NLS-1$
-        });
-         propertyPathsMap.put("childNodes", taxonNodePropertyPaths); //$NON-NLS-1$
-        return propertyPathsMap;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
         // TODO Auto-generated method stub
-
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void contextStop(IMemento memento, IProgressMonitor monitor) {
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void contextStart(IMemento memento, IProgressMonitor monitor) {
         if(viewer!=null && viewer.getControl()!=null && !viewer.getControl().isDisposed()){
@@ -619,17 +534,11 @@ public class TaxonNavigatorE4 implements
         }
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void contextRefresh(IProgressMonitor monitor) {
 //        viewer.refresh();
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
     }
@@ -639,11 +548,13 @@ public class TaxonNavigatorE4 implements
     private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_NAVIGATOR)TaxonNodeDto dto){
         if(dto!= null){
             Object[] expandedElements = viewer.getExpandedElements();
-            refresh();
-            viewer.reveal(dto);
+            ISelection sel = viewer.getSelection();
+            refresh(dto);
             viewer.setExpandedElements(expandedElements);
-            viewer.setSelection(new StructuredSelection(dto));
-
+            if (sel != null && !sel.isEmpty()){
+                viewer.reveal(dto);
+                viewer.setSelection(sel);
+            }
         }
     }
 
@@ -651,7 +562,9 @@ public class TaxonNavigatorE4 implements
     @Optional
     private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_NAVIGATOR)boolean refresh){
         if(refresh){
+            Object[] expandedElements = viewer.getExpandedElements();
             refresh();
+            viewer.setExpandedElements(expandedElements);
         }
     }
-}
+}
\ No newline at end of file
index dbb1ba20f8bce0476a849b13044a851dd3d221b0..f035a3000c1a73d6e64301220606edfbc37b93dc 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
  * Copyright (C) 2017 EDIT
  * European Distributed Institute of Taxonomy
@@ -25,34 +24,26 @@ import eu.etaxonomy.taxeditor.util.TaxonTreeNodeLabelProvider;
 /**
  * @author pplitzner
  * @date 05.09.2017
- *
  */
-public class TaxonNavigatorLabelProviderE4 extends TaxonTreeNodeLabelProvider
-implements IDescriptionProvider {
+public class TaxonNavigatorLabelProviderE4
+        extends TaxonTreeNodeLabelProvider
+        implements IDescriptionProvider {
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public String getText(Object element) {
-
             return super.getText(element);
     }
+
 //    @Override
 //    public Font getFont(Object element) {
-//
 //        return new Font(null, "Arial Unicode MS", 10, SWT.NORMAL);
-//
 //    }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public String getDescription(Object anElement) {
         //classification
         if (anElement instanceof Classification) {
-            return "Taxonomic Tree: " +  ((Classification) anElement).getTitleCache(); //$NON-NLS-1$
+            return "Classification: " +  ((Classification) anElement).getTitleCache(); //$NON-NLS-1$
         }
         //FIXME E4 show synonym in navigator?
         //synonym
@@ -69,9 +60,6 @@ implements IDescriptionProvider {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public StyledString getStyledText(Object element) {
         return super.getStyledText(element);
@@ -95,6 +83,4 @@ implements IDescriptionProvider {
         }
         return notGrantedStyler;
     }
-
-
-}
+}
\ No newline at end of file
index 701c5ecdf5bdf09df22a797332aa1811454c1cf9..5091f1c083d7e1c0564d3ffb2ec197383232be25 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.navigator.e4;
 
 import java.util.ArrayList;
@@ -19,7 +18,7 @@ import java.util.UUID;
 
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.jface.dialogs.MessageDialog;
@@ -36,17 +35,20 @@ import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;
 import eu.etaxonomy.cdm.model.permission.CRUD;
+import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
 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.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.ReferenceSelectionDialog;
 
 /**
  * @author k.luther
@@ -63,11 +65,14 @@ public class TreeNodeDropAdapterE4 extends ViewerDropAdapter implements IPostMon
     protected static final String DO_YOU_WANT_TO_MOVE_THE_TAXONNODE_AS_CHILD_OR_BEHIND_THE_TARGET_NODE = Messages.TreeNodeDropAdapter_MOVE_BEHIND;
     protected static final String TARGET_NODE = Messages.TreeNodeDropAdapter_TARGET_NODE;
 
-    private static final Logger logger = Logger.getLogger(TreeNodeDropAdapterE4.class);
+    private static final Logger logger = LogManager.getLogger(TreeNodeDropAdapterE4.class);
 
     private TaxonNavigatorE4 taxonNavigator;
     UpdateResult result;
     TaxonNodeDto targetITaxonTreeNode;
+    HashSet<TaxonNodeDto> taxonNodes;
+    SecReferenceHandlingEnum secHandling;
+    UUID newSecUuid;
        public static final String ID = "eu.etaxonomy.taxeditor.navigation.navigator.dropassistant"; //$NON-NLS-1$
 
        private static final EnumSet<CRUD> UPDATE = EnumSet.of(CRUD.UPDATE);
@@ -84,7 +89,6 @@ public class TreeNodeDropAdapterE4 extends ViewerDropAdapter implements IPostMon
            this.taxonNavigator = navigator;
        }
 
-       /** {@inheritDoc} */
        @Override
        public boolean performDrop(Object data) {
         Object target = getCurrentTarget();
@@ -101,7 +105,7 @@ public class TreeNodeDropAdapterE4 extends ViewerDropAdapter implements IPostMon
        }
 
        private Set<TaxonNodeDto> getSelectedTaxa(){
-               HashSet<TaxonNodeDto> taxonNodes = new HashSet();
+               taxonNodes = new HashSet<>();
 
                ISelection selection = LocalSelectionTransfer.getTransfer().getSelection();
                if (selection instanceof TreeSelection) {
@@ -119,7 +123,6 @@ public class TreeNodeDropAdapterE4 extends ViewerDropAdapter implements IPostMon
                return taxonNodes;
        }
 
-       /** {@inheritDoc} */
        @Override
        public boolean validateDrop(Object target, int operation,
                        TransferData transferType) {
@@ -150,7 +153,7 @@ public class TreeNodeDropAdapterE4 extends ViewerDropAdapter implements IPostMon
                    boolean isNotSameParent = true;
                    for(TaxonNodeDto taxonNode : getSelectedTaxa()){
                            if (logger.isDebugEnabled()){
-                               logger.debug("selectedTaxa: " + taxonNode.getTaxonUuid() == null? "-" : taxonNode.getTitleCache()); //$NON-NLS-1$
+                               logger.debug("selectedTaxa: " + (taxonNode.getTaxonUuid() == null? "-" : taxonNode.getTitleCache())); //$NON-NLS-1$
                            }
                            boolean isClassification = taxonNode.getTaxonUuid()== null;
                            if (isClassification) {
@@ -169,8 +172,7 @@ public class TreeNodeDropAdapterE4 extends ViewerDropAdapter implements IPostMon
                            for (TaxonNode node: nodes){
                                hasPermission = hasPermission && CdmStore.currentAuthentiationHasPermission(node, UPDATE) && CdmStore.currentAuthentiationHasPermission(node.getTaxon(), UPDATE);
                            }
-//                             boolean hasTaxonPermission =
-//                                     CdmStore.currentAuthentiationHasPermission(node.getTaxon(), UPDATE);
+
                 if (
                                !isNotSameTaxonNode
                                || !isNotSameParent
@@ -185,21 +187,16 @@ public class TreeNodeDropAdapterE4 extends ViewerDropAdapter implements IPostMon
                        }
                        logger.debug("OK_STATUS"); //$NON-NLS-1$
                        return true;
-//             }
-//             logger.debug("CANCEL_STATUS"); //$NON-NLS-1$
-//             return false;
        }
 
-
        private boolean moveTaxon(Set<TaxonNodeDto> taxonNodes, TaxonNodeDto targetITaxonTreeNode) {
                Iterator<TaxonNodeDto> taxIterator = taxonNodes.iterator();
                this.targetITaxonTreeNode = targetITaxonTreeNode;
+               UUID parentSecUuid = targetITaxonTreeNode.getSecUuid();
         Set<UUID> uuids = new HashSet<UUID>();
         TaxonNodeDto node = null;
-        while(taxIterator.hasNext()){
-            node = taxIterator.next();
-            uuids.add(node.getUuid());
-        }
+       
+
         IUndoContext workspaceUndoContext = taxonNavigator.getUndoContext();
          int movingTypeInt = 0;
                if (PreferencesUtil.isNodesSortedNaturally()){
@@ -224,20 +221,69 @@ public class TreeNodeDropAdapterE4 extends ViewerDropAdapter implements IPostMon
                        } else {
                                return false;
                        }
-
-
                }
-               //close possible open name editors for the moved taxon nodes
-
-               taxonNodes.forEach(nodeDto->EditorUtil.closeObsoleteEditor(nodeDto, partService));
-
+               
+                boolean targetIsPublish = targetITaxonTreeNode.isPublish();
+               boolean isPublishEqual = true;
+               Set<UUID> secReferences = new HashSet<>();
+               while(taxIterator.hasNext()){
+                   node = taxIterator.next();
+                   uuids.add(node.getUuid());
+                   isPublishEqual &= targetIsPublish == node.isPublish();
+                   secReferences.add(node.getSecUuid());
+               }
+
+               if (!isPublishEqual){
+                   MessageDialog.openWarning(null, "Publish status differ", Messages.RemotingChangeAcceptedTaxonToSynonym_warning_publish);
+               }
+               secHandling = PreferencesUtil.getSecReferenceHandlingPreference();
+               newSecUuid = null;
+
+               boolean testForDifferentParent = (secReferences.size() == 1 && (secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn) ||secHandling.equals(SecReferenceHandlingEnum.KeepOrSelect)) && !secReferences.contains(parentSecUuid));
+               boolean testForAlwaysSelect = secHandling.equals(SecReferenceHandlingEnum.AlwaysSelect);
+
+               if ( testForAlwaysSelect || (secReferences.size() > 1 && (secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn) || secHandling.equals(SecReferenceHandlingEnum.KeepOrSelect))) || testForDifferentParent){
+                   //The moved nodes have different secundum references
+                   String message = null;
+                   String[] options = null;
+                   if (secHandling.equals(SecReferenceHandlingEnum.AlwaysSelect) && (parentSecUuid != null && secReferences.contains(parentSecUuid))){
+                       message = Messages.TreeNodeDropAdapter_Select_Sec_Reference_Handling_message_always_select;
+                       options = new String[]{Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Keep, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Select};
+                   }else {
+                       message = Messages.TreeNodeDropAdapter_Select_Sec_Reference_Handling_message;
+                       options = new String[]{Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Keep,  Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Select, Messages.TreeNodeDropAdapter_Select_Sec_Reference_Parent, };
+                   }
+                   int result = 0;
+                   if (secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn) ){
+                       MessageDialog.openWarning(null, "Secundum references differ", Messages.MoveTaxon_Different_Secundum_References);
+                   }else{
+                       result = MessagingUtils.confirmDialog(Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_title, message, options);
+                   }
+
+//                 int result = MessagingUtils.confirmDialog(Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_title, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_message,
+//                         new String[]{Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Keep, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Parent, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Select});
+                   if (result == 1){
+                       //select new reference
+                       Reference sec = ReferenceSelectionDialog.select(AbstractUtility.getShell(), null);
+                       newSecUuid = sec != null? sec.getUuid(): null;
+                   }else if (result == 2){
+                       //use parent sec
+                       secHandling = SecReferenceHandlingEnum.UseNewParentSec;
+                       newSecUuid = parentSecUuid;
+                   }else if (result == 0){
+                       //keep sec (also homotypic synonyms with different sec will keep the secundum)
+                       secHandling = SecReferenceHandlingEnum.KeepOrWarn;
+                   }else{
+                       return false;
+                   }
+               }
                moveNodes(uuids, targetITaxonTreeNode.getUuid(), movingTypeInt);
         return true;
        }
 
        private void moveNodes(Set<UUID> taxonNodesToMoveUuid, UUID newParentTreeNodeUuid, int movingTypeInt){
            UUID uuid = CdmApplicationState.getLongRunningTasksService().monitLongRunningTask(taxonNodesToMoveUuid,
-                newParentTreeNodeUuid, movingTypeInt);
+                newParentTreeNodeUuid, movingTypeInt, secHandling, newSecUuid);
 
         Display.getDefault().asyncExec(new Runnable() {
             @Override
@@ -248,25 +294,23 @@ public class TreeNodeDropAdapterE4 extends ViewerDropAdapter implements IPostMon
                         false,
                         TreeNodeDropAdapterE4.this,
                         null,
-                        false);
+                        false,
+                        true);
             }
         });
        }
 
-
        @Override
        public void dragOver(DropTargetEvent event) {
                super.dragOver(event);
                event.feedback = DND.FEEDBACK_SELECT | DND.FEEDBACK_INSERT_AFTER | DND.FEEDBACK_SCROLL;
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void postOperation(IRemotingProgressMonitor monitor) {
         EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, targetITaxonTreeNode);
+        taxonNodes.forEach(nodeDto->EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAME_EDITOR, nodeDto.getTaxonUuid()));
+        EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAME_EDITOR, targetITaxonTreeNode.getTaxonUuid());
 
     }
-
-}
+}
\ No newline at end of file
index 028e14576199da0a3e3ebc1dc234e3481c8982ea..88ea9031a7ed3555d763bd8b7b9bbda8efb4ac63 100755 (executable)
@@ -36,7 +36,7 @@ import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
+import eu.etaxonomy.taxeditor.operation.e4.CdmHandlerE4;
 import eu.etaxonomy.taxeditor.ui.dialog.configurator.DistributionAggregationConfiguratorWizard;
 import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
 
@@ -44,9 +44,7 @@ import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
  * @author k.luther
  * @since 15.11.2019
  */
-public class AggregateDistributionForSubTreeHandler extends RemotingCdmHandlerE4 {
-
-
+public class AggregateDistributionForSubTreeHandler extends CdmHandlerE4 {
 
     private TaxonNodeDto taxonNode;
     private DistributionAggregationConfiguration configurator;
@@ -54,15 +52,10 @@ public class AggregateDistributionForSubTreeHandler extends RemotingCdmHandlerE4
     private static final String CANCEL = Messages.RemotingMoveTaxonNodeHandler_CANCEL;
     private static final String YES = Messages.YES;
 
-    /**
-     * @param label
-     */
     public AggregateDistributionForSubTreeHandler() {
         super("");
-
     }
 
-
     @Override
     public IStatus allowOperations(IStructuredSelection selection, Shell shell, MPart activePart,
             MHandledMenuItem menuItem) {
@@ -112,8 +105,7 @@ public class AggregateDistributionForSubTreeHandler extends RemotingCdmHandlerE4
             }
         }
 
-
-        configurator = DistributionAggregationConfiguration.NewInstance(AggregationMode.byAreasAndRanks(), null, TaxonNodeFilter.NewSubtreeInstance(taxonNode.getUuid()), null);
+        configurator = DistributionAggregationConfiguration.NewInstance(AggregationMode.byWithinTaxonAndToParent(), null, TaxonNodeFilter.NewSubtreeInstance(taxonNode.getUuid()), null);
         DistributionAggregationConfiguratorWizard wizard = new DistributionAggregationConfiguratorWizard(configurator);
 
         WizardDialog dialog = new WizardDialog(shell, wizard);
@@ -135,7 +127,6 @@ public class AggregateDistributionForSubTreeHandler extends RemotingCdmHandlerE4
     @Override
     public void onComplete() {
         // TODO Auto-generated method stub
-
     }
 
     @Override
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/ChangeAcceptedTaxonToSynonymHandlerE4.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/ChangeAcceptedTaxonToSynonymHandlerE4.java
new file mode 100644 (file)
index 0000000..67ede99
--- /dev/null
@@ -0,0 +1,251 @@
+/**
+* Copyright (C) 2018 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.navigation.navigator.e4.handler;
+
+import java.util.EnumSet;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.UUID;
+
+import javax.inject.Named;
+
+import org.eclipse.core.commands.operations.AbstractOperation;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;
+import eu.etaxonomy.cdm.model.permission.CRUD;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
+import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.ChangeAcceptedTaxonToSynonymOperation;
+import eu.etaxonomy.taxeditor.operation.e4.CdmHandlerE4;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.ReferenceSelectionDialog;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
+
+/**
+ * @author pplitzner
+ * @since Sep 6, 2017
+ */
+public class ChangeAcceptedTaxonToSynonymHandlerE4 extends CdmHandlerE4 {
+
+    private Set<TaxonNodeDto> oldTaxonNodes = new HashSet<>();
+    private Classification classification;
+    protected boolean isSetSource = false;
+
+    private static final EnumSet<CRUD> UPDATE = EnumSet.of(CRUD.UPDATE);
+
+    public ChangeAcceptedTaxonToSynonymHandlerE4() {
+        super(TaxonNavigatorLabels.CHANGE_ACCEPTED_TAXON_TO_SYNONYM_LABEL);
+    }
+
+    @Override
+    public IStatus allowOperations(IStructuredSelection selection,
+            Shell shell,
+            MPart activePart,
+            MHandledMenuItem menuItem) {
+        // check that only a single taxon tree node has been selected
+//        if(selection.size() > 1) {
+//            return new Status(IStatus.ERROR,
+//                    "unknown", //$NON-NLS-1$
+//                    TaxonNavigatorLabels.SINGLE_TAXON_SELECTION_MESSAGE);
+//        }
+
+        // check for no taxon tree node selected
+        if(selection.size() == 0) {
+            return new Status(IStatus.ERROR,
+                    "unknown", //$NON-NLS-1$
+                    TaxonNavigatorLabels.NO_TAXON_SELECTION_MESSAGE);
+        }
+
+        // check that selected object is a taxon node
+        Iterator<?> it = selection.iterator();
+        Classification nextClassification;
+        oldTaxonNodes = new HashSet<>();
+        while(it.hasNext()){
+               Object obj = it.next();
+               if(obj instanceof TaxonNodeDto) {
+                   oldTaxonNodes.add((TaxonNodeDto)obj);
+                   nextClassification = CdmStore.getService(IClassificationService.class).find(((TaxonNodeDto)obj).getClassificationUUID());
+                   if (classification == null){
+                       classification = nextClassification;
+                   }else if (!classification.equals(nextClassification)){
+                       return new Status(IStatus.ERROR,
+                               "unknown", //$NON-NLS-1$
+                               TaxonNavigatorLabels.ACCEPTED_TAXA_NEED_TO_BE_FROM_SAME_CLASSIFICATION);
+                   }
+               } else {
+                       if (obj instanceof TaxonNode && !((TaxonNode)obj).hasTaxon()){
+                               return new Status(IStatus.ERROR,
+                               "Operation not available for Classifications", //$NON-NLS-1$
+                               TaxonNavigatorLabels.SELECTED_OBJECT_NOT_TREE_NODE_MESSAGE);
+                       }
+                   return new Status(IStatus.ERROR,
+                           "unknown", //$NON-NLS-1$
+                           TaxonNavigatorLabels.SELECTED_OBJECT_NOT_TREE_NODE_MESSAGE);
+               }
+               // check that the source taxon node does not have children
+               if(((TaxonNodeDto)obj).getTaxonomicChildrenCount() > 0) {
+                   return new Status(IStatus.ERROR,
+                           "unknown", //$NON-NLS-1$
+                           TaxonNavigatorLabels.SOURCE_TAXON_HAS_CHILDREN_MESSAGE);
+
+               }
+
+               // check if corresponding name editor is closed
+//             EditorUtil.closeObsoleteEditor((TaxonNodeDto)obj, partService);
+        }
+        return Status.OK_STATUS;
+    }
+
+    @Override
+    public AbstractOperation prepareOperation(IStructuredSelection selection,
+            Shell shell,
+            MPart activePart,
+            MHandledMenuItem menuItem) {
+        Set<UUID> excludeTaxa = new HashSet<>();
+        Set<UUID> secUuids = new HashSet<>();
+        Set<UUID> nodeUuids = new HashSet<>();
+
+        for (TaxonNodeDto oldNode:oldTaxonNodes){
+               excludeTaxa.add(oldNode.getTaxonUuid());
+               secUuids.add(oldNode.getSecUuid());
+               nodeUuids.add(oldNode.getUuid());
+        }
+
+        TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(shell,
+                Messages.RemotingChangeAcceptedTaxonToSynonymHandler_CHOOSE_TAXON,
+                excludeTaxa,
+                null,
+                classification.getUuid());
+
+        if (newAcceptedTaxonNode == null) {
+            return null;
+        }
+
+
+        SecReferenceHandlingEnum secHandling = PreferencesUtil.getSecReferenceHandlingPreference();
+        UUID newSecUuid = null;
+        UUID newTaxonSecUuid = newAcceptedTaxonNode.getTaxon() != null && newAcceptedTaxonNode.getTaxon().getSec() != null ? newAcceptedTaxonNode.getTaxon().getSec().getUuid(): null;
+        if (newTaxonSecUuid != null){
+            secUuids.add(newTaxonSecUuid);
+        }
+        //the moved taxa have different secundum references
+        if (secUuids.size() > 1 && secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn)){
+            MessagingUtils.warningDialog(Messages.SecundumReference,this, Messages.ChangeAcceptedTaxonToSynonymHandler_Different_Secundum_references);
+        }else if (secUuids.size() > 1 && !(secHandling.equals(SecReferenceHandlingEnum.AlwaysDelete) || secHandling.equals(SecReferenceHandlingEnum.UseNewParentSec))){
+            String message = null;
+            String[] options = null;
+            if (secHandling.equals(SecReferenceHandlingEnum.AlwaysSelect) && (newTaxonSecUuid != null && secUuids.contains(newTaxonSecUuid))){
+                message = Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_message_always_select;
+                options = new String[]{Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Keep, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Select};
+            }else {
+                message = Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_message;
+                options = new String[]{Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Keep,  Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Select, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Parent, };
+            }
+            int result = MessagingUtils.confirmDialog(Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_title, message, options);
+
+//            int result = MessagingUtils.confirmDialog(Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_title, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_message,
+//                    new String[]{Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Keep, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Parent, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Select});
+            if (result == 1){
+                //select new reference
+                Reference sec = ReferenceSelectionDialog.select(shell, null);
+                newSecUuid = sec != null? sec.getUuid(): null;
+            }else if (result == 2){
+                //use parent sec
+                newSecUuid = newTaxonSecUuid;
+            }else if (result == 0){
+                //keep sec (also homotypic synonyms with different sec will keep the secundum)
+                secHandling = SecReferenceHandlingEnum.KeepOrWarn;
+            }else{
+                return null;
+            }
+        }else{
+            UUID oldSecUuid = secUuids.iterator().next();
+            //the nodes moved have all the same sec, but the accepted taxon has a different one
+            if ((secUuids.size() > 0 &&
+                    ((newTaxonSecUuid != null && oldSecUuid != null && !newTaxonSecUuid.equals(oldSecUuid))
+                            || (newTaxonSecUuid != null && oldSecUuid == null) ||(newTaxonSecUuid == null && oldSecUuid != null))
+                    && secHandling.equals(SecReferenceHandlingEnum.KeepOrSelect) )|| secHandling.equals(SecReferenceHandlingEnum.AlwaysSelect)){
+                String message = null;
+                String[] options = null;
+                // always select but all secundum references are the same
+                if (secHandling.equals(SecReferenceHandlingEnum.AlwaysSelect) && (newTaxonSecUuid != null && secUuids.contains(newTaxonSecUuid))){
+                    message = Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_message_always_select;
+                    options = new String[]{Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Keep, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Select};
+                }else {
+                    message = Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_message;
+                    options = new String[]{Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Keep,  Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Select, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Parent, };
+                }
+                int result = MessagingUtils.confirmDialog(Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_title, message, options);
+                if (result == 2){
+                    newSecUuid = newTaxonSecUuid;
+                }else if (result == 1){
+                    Reference sec = ReferenceSelectionDialog.select(shell, null);
+                    newSecUuid = sec != null? sec.getUuid(): null;
+                }else if (result == 0){
+                    secHandling = SecReferenceHandlingEnum.KeepOrWarn;
+                }else{
+                    return null;
+                }
+            }
+        }
+        for (TaxonNodeDto tn: oldTaxonNodes){
+            EditorUtil.closeObsoleteEditor(tn, partService);
+        }
+        //Authentication aut = CdmStore.getCurrentAuthentiation();
+        ChangeAcceptedTaxonToSynonymOperation rcattso =
+                new ChangeAcceptedTaxonToSynonymOperation(getTrigger(),
+                        false,
+                        nodeUuids,
+                        newAcceptedTaxonNode.getUuid(), newSecUuid, secHandling,partService, activePart, application, isSetSource);
+
+        return rcattso;
+    }
+
+    @CanExecute
+    private boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection, MHandledMenuItem menuItem){
+        boolean canExecute = !selection.isEmpty();
+        Object[] array = selection.toArray();
+//        boolean hasPermission = CdmStore.currentAuthentiationHasPermission(TaxonNode.class, UPDATE);
+//        if (!hasPermission && !CdmStore.currentAuthentiationHasOneOfRoles(Role.ROLE_ADMIN)) {
+//            return hasPermission;
+//        }
+        for (Object object : array) {
+            canExecute &= (object instanceof TaxonNodeDto) && ((TaxonNodeDto)selection.getFirstElement()).getTaxonUuid() != null;
+        }
+        menuItem.setVisible(canExecute);
+        return canExecute;
+    }
+
+    @Override
+    public void onComplete() {
+    }
+
+    @Override
+    protected Object getTrigger() {
+        return this;
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/ChangeAcceptedTaxonToSynonymSetNameInSourceHandlerE5.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/ChangeAcceptedTaxonToSynonymSetNameInSourceHandlerE5.java
new file mode 100755 (executable)
index 0000000..2ba4187
--- /dev/null
@@ -0,0 +1,21 @@
+/**
+ *
+ */
+package eu.etaxonomy.taxeditor.navigation.navigator.e4.handler;
+
+/**
+ *
+ * @author pplitzner
+ * @since Sep 6, 2017
+ *
+ */
+public class ChangeAcceptedTaxonToSynonymSetNameInSourceHandlerE5 extends ChangeAcceptedTaxonToSynonymHandlerE4 {
+
+
+    public ChangeAcceptedTaxonToSynonymSetNameInSourceHandlerE5() {
+        super();
+        isSetSource = true;
+    }
+
+
+}
index 8bb116d1636222ad815d9842f39336e01c588ceb..5b5031bf787ac74e69b0463cc616fde10712583f 100644 (file)
@@ -61,7 +61,7 @@ public class CloneClassificationHandlerE4 {
 
             CloneClassificationOperation operation = new CloneClassificationOperation(Messages.CloneClassificationHandler_CLONE_CLASSIFICATION,
                     StoreUtil.getUndoContext(), classification, classificationName, reference, relationType,
-                    taxonNavigator, taxonNavigator);
+                    taxonNavigator);
 
             AbstractUtility.executeOperation(operation, sync);
             taxonNavigator.refresh();
index bf7cb4f27f4bc78027ff58cfc263381eb64fc957..6402676db3a4f1fab5173a722199f38dfc7e0b74 100644 (file)
@@ -55,6 +55,11 @@ public class CopyHandlerE4 {
     @CanExecute
     private boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection, MHandledMenuItem menuItem){
         boolean canExecute = false;
+
+//        boolean hasPermission = CdmStore.currentAuthentiationHasPermission(TaxonNode.class, EnumSet.of(CRUD.UPDATE));
+//        if (!hasPermission && !CdmStore.currentAuthentiationHasOneOfRoles(Role.ROLE_ADMIN)) {
+//            return hasPermission;
+//        }
         canExecute = selection.size()==1
                 && selection.getFirstElement() instanceof TaxonNodeDto;
         menuItem.setVisible(canExecute);
index af27b35e4a05de68e66910f2c33cd12f5f745993..a588c5bf246cb0f709de3cc8e54c22a1f76f0a67 100644 (file)
@@ -41,7 +41,7 @@ public class CreateClassificationHierarchyHandlerE4 {
         if (selectedElement instanceof TaxonNode && !((TaxonNode)selectedElement).hasTaxon()) {
             Classification classification = ((TaxonNode) selectedElement).getClassification();
             try {
-                CreateNewTaxonHierarchyOperation operation = new CreateNewTaxonHierarchyOperation(Messages.CreateClassificationHierarchyHandler_CREATE_HIERARCHY, StoreUtil.getUndoContext(),classification, taxonNavigator, taxonNavigator);
+                CreateNewTaxonHierarchyOperation operation = new CreateNewTaxonHierarchyOperation(Messages.CreateClassificationHierarchyHandler_CREATE_HIERARCHY, StoreUtil.getUndoContext(),classification, taxonNavigator);
                 AbstractUtility.executeOperation(operation, sync);
                 taxonNavigator.refresh();
             } catch (Exception e) {
index b199dd3b7a075c132faf436e52e69631155f9c9d..8501dd22c4ce1019861a362ceecf470e454fe4ab 100644 (file)
@@ -21,6 +21,7 @@ import org.eclipse.e4.ui.di.UISynchronize;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
 import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.swt.widgets.Shell;
@@ -29,6 +30,7 @@ import eu.etaxonomy.cdm.api.service.config.NodeDeletionConfigurator.ChildHandlin
 import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
@@ -58,13 +60,15 @@ public class DeleteHandlerE4 {
     protected static final String DO_YOU_REALLY_WANT_TO_DELETE_THE_CLASSIFICATION = Messages.DeleteHandler_DELETE_CLASSIFICATION;
     protected static final String CONFIRM_DELETION = Messages.DeleteHandler_CONFIRM_DELETE;
     protected static final String DELETE = Messages.DeleteHandler_DELETE;
+    EPartService partService;
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection,
             @Named(IServiceConstants.ACTIVE_SHELL)Shell shell,
             @Named(IServiceConstants.ACTIVE_PART)MPart activePart,
+            EPartService partService,
             MHandledMenuItem menuItem, UISynchronize sync) {
-
+        this.partService = partService;
         TaxonNavigatorE4 taxonNavigator = (TaxonNavigatorE4) activePart.getObject();
 
                Iterator selectionIterator = selection.iterator();
@@ -141,8 +145,7 @@ public class DeleteHandlerE4 {
                                                                taxonNode,
                                                                config,
                                                                taxonNavigator,
-                                                               taxonNavigator,
-                                                               taxonNavigator);
+                                                               null);
 
                                                AbstractUtility.executeOperation(operation, sync);
 
@@ -166,8 +169,7 @@ public class DeleteHandlerE4 {
                                                        treeNodes,
                                                        new TaxonDeletionConfigurator(),
                                                        taxonNavigator,
-                                                       taxonNavigator,
-                                                       taxonNavigator);
+                                                       null);
 
                                        AbstractUtility.executeOperation(operation, sync);
 
@@ -194,25 +196,8 @@ public class DeleteHandlerE4 {
        protected boolean closeObsoleteEditor(TaxonNodeDto taxonNode){
            //FIXME E4 migrate
                boolean result = true;
-//             for (IEditorReference ref : activePage.getEditorReferences()) {
-//                     try {
-//                             String treeIndex = ((ITreeNode)taxonNode).treeIndex();
-//
-//
-//                             IEditorInput input = ref.getEditorInput();
-//                             if (input instanceof TaxonEditorInput) {
-//                                     TaxonNode node = ((TaxonEditorInput) input).getTaxonNode();
-//                                     //if node is a child of taxonNode then close the editor
-//                                     if( ((ITreeNode) node).treeIndex().startsWith(treeIndex)){
-//                                     //if (taxonNode.equals(node)) {
-//                                             result &= activePage.closeEditor(ref.getEditor(false), true);
-//
-//                                     }
-//                             }
-//                     } catch (PartInitException e) {
-//                             continue;
-//                     }
-//             }
+               EditorUtil.closeObsoleteEditor(taxonNode, partService);
+
                return result;
        }
 }
@@ -35,8 +35,8 @@ import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingDeleteTaxonNodeOperation;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.DeleteTaxonNodeOperation;
+import eu.etaxonomy.taxeditor.operation.e4.CdmHandlerE4;
 import eu.etaxonomy.taxeditor.ui.dialog.configurator.deleteConfigurator.DeleteConfiguratorDialog;
 
 /**
@@ -44,7 +44,20 @@ import eu.etaxonomy.taxeditor.ui.dialog.configurator.deleteConfigurator.DeleteCo
  * @date 22 Jun 2015
  *
  */
-public class RemotingDeleteTaxonNodeHandlerE4 extends RemotingCdmHandlerE4 {
+public class DeleteTaxonNodeHandlerE4 extends CdmHandlerE4 {
+
+    protected static final String SKIP = Messages.DeleteHandler_SKIP;
+    protected static final String MOVE_CHILDREN_TO_PARENT_NODE = Messages.DeleteHandler_MOVE_TO_PARENT;
+    protected static final String DELETE_ALL_CHILDREN = Messages.DeleteHandler_DELETE_ALL;
+    protected static final String THERE_ARE_CHILDNODES_WHICH_WILL_BE_DELETED_TOO = Messages.DeleteHandler_THERE_ARE_CHILDNODES;
+    protected static final String THE_TREE_HAS_CHILDREN_THEY_WILL_BE_DELETED_TOO = Messages.DeleteHandler_THERE_ARE_CHILDREN;
+
+    protected static final String DO_YOU_REALLY_WANT_TO_DELETE_THE_SELECTED_NODE_S = Messages.DeleteHandler_DELETE_NODES;
+    protected static final String DO_YOU_REALLY_WANT_TO_DELETE_THE_SELECTED_NODE = Messages.DeleteHandler_DELETE_NODE;
+
+    protected static final String DO_YOU_REALLY_WANT_TO_DELETE_THE_CLASSIFICATION = Messages.DeleteHandler_DELETE_CLASSIFICATION;
+    protected static final String CONFIRM_DELETION = Messages.DeleteHandler_CONFIRM_DELETE;
+    protected static final String DELETE = Messages.DeleteHandler_DELETE;
 
     private TaxonDeletionConfigurator config;
     private Set<TaxonNodeDto> treeNodes;
@@ -53,7 +66,7 @@ public class RemotingDeleteTaxonNodeHandlerE4 extends RemotingCdmHandlerE4 {
     private Set<TaxonNode> taxonNodes;
     private Set<Classification> classificationList;
 
-    public RemotingDeleteTaxonNodeHandlerE4() {
+    public DeleteTaxonNodeHandlerE4() {
         super(TaxonNavigatorLabels.DELETE_TAXON_NODE_LABEL);
     }
 
@@ -118,66 +131,62 @@ public class RemotingDeleteTaxonNodeHandlerE4 extends RemotingCdmHandlerE4 {
 
         }
 
-                       if (containsClassification && !containsTaxonNodes) {
-                               String message;
-                               if (containsClassification && containsNodeWithChildren) {
-                                       message = DeleteHandlerE4.DO_YOU_REALLY_WANT_TO_DELETE_THE_CLASSIFICATION+DeleteHandlerE4.THE_TREE_HAS_CHILDREN_THEY_WILL_BE_DELETED_TOO;
-                               } else {
-                                       message = DeleteHandlerE4.DO_YOU_REALLY_WANT_TO_DELETE_THE_CLASSIFICATION;
-                               }
-                               if (!MessageDialog.openConfirm(
-                                               shell, DeleteHandlerE4.CONFIRM_DELETION,
-                                               message)) {
-                                       return Status.CANCEL_STATUS;
-                               }
+               if (containsClassification && !containsTaxonNodes) {
+                       String message;
+                       if (containsClassification && containsNodeWithChildren) {
+                               message = DO_YOU_REALLY_WANT_TO_DELETE_THE_CLASSIFICATION+THE_TREE_HAS_CHILDREN_THEY_WILL_BE_DELETED_TOO;
+                       } else {
+                               message = DO_YOU_REALLY_WANT_TO_DELETE_THE_CLASSIFICATION;
                        }
-            else {
-               String confirmMessage= treeNodes.size() == 1?DeleteHandlerE4.DO_YOU_REALLY_WANT_TO_DELETE_THE_SELECTED_NODE:DeleteHandlerE4.DO_YOU_REALLY_WANT_TO_DELETE_THE_SELECTED_NODE_S;
-                if (containsNodeWithChildren){
-
-                       DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(
-                            config,
-                            shell,
-                            DeleteHandlerE4.CONFIRM_DELETION,
-                            null,
-                            DeleteHandlerE4.DO_YOU_REALLY_WANT_TO_DELETE_THE_SELECTED_NODE+DeleteHandlerE4.THERE_ARE_CHILDNODES_WHICH_WILL_BE_DELETED_TOO,
-                            MessageDialog.WARNING, new String[] { DeleteHandlerE4.DELETE_ALL_CHILDREN,
-                                    DeleteHandlerE4.MOVE_CHILDREN_TO_PARENT_NODE, DeleteHandlerE4.SKIP }, 0);
-                    int result = dialog.open();
-
-                    if (result == 0){
-                        //delete all children
-                        config.getTaxonNodeConfig().setChildHandling(ChildHandling.DELETE);
-                    } else if (result == 1){
-                        //move children
-                        config.getTaxonNodeConfig().setChildHandling(ChildHandling.MOVE_TO_PARENT);
-                    } else {
-                        return Status.CANCEL_STATUS;
-                    }
-                } else{
-
-                    DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(
-                            config,
-                            shell,
-                            DeleteHandlerE4.CONFIRM_DELETION,
-                            null,
-                            confirmMessage,
-                            MessageDialog.WARNING,  new String[] { DeleteHandlerE4.DELETE, DeleteHandlerE4.SKIP }, 0);
-                    int result = dialog.open();
-                    if (result == 0){
-                        //delete all children
-
-                        config.getTaxonNodeConfig().setChildHandling(ChildHandling.DELETE);
-                    } else {
-                        return Status.CANCEL_STATUS;
-                    }
-//                    if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(configNodes, shell, DeleteHandlerE4.CONFIRM_DELETION, DeleteHandlerE4.DO_YOU_REALLY_WANT_TO_DELETE_THE_SELECTED_NODE_S)){
-//                        return Status.CANCEL_STATUS;
-//                    }
-//                    config.setTaxonNodeConfig(configNodes);
+                       if (!MessageDialog.openConfirm(
+                                       shell, CONFIRM_DELETION,
+                                       message)) {
+                               return Status.CANCEL_STATUS;
+                       }
+               }
+        else {
+               String confirmMessage= treeNodes.size() == 1?DO_YOU_REALLY_WANT_TO_DELETE_THE_SELECTED_NODE: DO_YOU_REALLY_WANT_TO_DELETE_THE_SELECTED_NODE_S;
+            if (containsNodeWithChildren){
+
+               DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(
+                        config,
+                        shell,
+                        CONFIRM_DELETION,
+                        null,
+                        DO_YOU_REALLY_WANT_TO_DELETE_THE_SELECTED_NODE+THERE_ARE_CHILDNODES_WHICH_WILL_BE_DELETED_TOO,
+                        MessageDialog.WARNING, new String[] { DELETE_ALL_CHILDREN,
+                                MOVE_CHILDREN_TO_PARENT_NODE, SKIP }, 0);
+                int result = dialog.open();
+
+                if (result == 0){
+                    //delete all children
+                    config.getTaxonNodeConfig().setChildHandling(ChildHandling.DELETE);
+                } else if (result == 1){
+                    //move children
+                    config.getTaxonNodeConfig().setChildHandling(ChildHandling.MOVE_TO_PARENT);
+                } else {
+                    return Status.CANCEL_STATUS;
+                }
+            } else{
+
+                DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(
+                        config,
+                        shell,
+                        CONFIRM_DELETION,
+                        null,
+                        confirmMessage,
+                        MessageDialog.WARNING,  new String[] { DELETE, SKIP }, 0);
+                int result = dialog.open();
+                if (result == 0){
+                    //delete all children
+
+                    config.getTaxonNodeConfig().setChildHandling(ChildHandling.DELETE);
+                } else {
+                    return Status.CANCEL_STATUS;
                 }
             }
-//        }
+        }
+
         return Status.OK_STATUS;
     }
 
@@ -186,7 +195,7 @@ public class RemotingDeleteTaxonNodeHandlerE4 extends RemotingCdmHandlerE4 {
             Shell shell,
             MPart activePart,
             MHandledMenuItem menuItem) {
-        return new RemotingDeleteTaxonNodeOperation(getTrigger(),
+        return new DeleteTaxonNodeOperation(getTrigger(),
                 false,
                 treeNodes,
                 classifications,
@@ -196,6 +205,10 @@ public class RemotingDeleteTaxonNodeHandlerE4 extends RemotingCdmHandlerE4 {
     @CanExecute
     private boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection, MHandledMenuItem menuItem){
         boolean canExecute = false;
+//        boolean hasPermission = CdmStore.currentAuthentiationHasPermission(TaxonNode.class, EnumSet.of(CRUD.DELETE));
+//        if (!hasPermission && !CdmStore.currentAuthentiationHasOneOfRoles(Role.ROLE_ADMIN)) {
+//            return hasPermission;
+//        }
         canExecute = selection.size()==1
                 && (selection.getFirstElement() instanceof TaxonNodeDto)
                 ||
@@ -23,17 +23,17 @@ import org.eclipse.swt.widgets.Shell;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
+import eu.etaxonomy.taxeditor.operation.e4.CdmHandlerE4;
 
 /**
  * @author k.luther
  * @since 11.10.2018
  *
  */
-public abstract class UnplacedExcludedDoubtfulHandler extends RemotingCdmHandlerE4{
+public abstract class DoubtfulHandler extends CdmHandlerE4{
     protected List<UUID> taxonNodes ;
 
-    public UnplacedExcludedDoubtfulHandler() {
+    public DoubtfulHandler() {
         super(TaxonNavigatorLabels.SET_UNPLACED);
     }
 
index 2cc5985189a4e2196d86fd74fbfef86adb6d2801..0cc66483f7bbb0d72ddb13995afa9cea78dc91bd 100644 (file)
@@ -8,15 +8,17 @@
 */
 package eu.etaxonomy.taxeditor.navigation.navigator.e4.handler;
 
+import javax.inject.Inject;
 import javax.inject.Named;
 
 import org.eclipse.e4.core.di.annotations.CanExecute;
 import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.services.events.IEventBroker;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
 import org.eclipse.e4.ui.services.IServiceConstants;
 
-import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.navigation.navigator.e4.TaxonNavigatorE4;
 
 /**
@@ -26,16 +28,12 @@ import eu.etaxonomy.taxeditor.navigation.navigator.e4.TaxonNavigatorE4;
  *
  */
 public class LinkWithTaxonHandlerE4 {
+    @Inject
+    private IEventBroker eventBroker;
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
-       if (activePart!=null && activePart.getObject() instanceof TaxonNavigatorE4) {
-               TaxonNavigatorE4 taxonNavigator = (TaxonNavigatorE4) activePart.getObject();
-               taxonNavigator.setLinkWithTaxon(!taxonNavigator.isLinkWithTaxon());
-               if(taxonNavigator.isLinkWithTaxon()){
-                   taxonNavigator.updateCurrentTaxon(EventUtility.getTaxonEditor());
-               }
-       }
+        eventBroker.post(WorkbenchEventConstants.UPDATE_LINK_WITH_TAXON, true);
        }
 
     @CanExecute
@@ -34,8 +34,8 @@ import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingMoveFactualDataOperation;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.MoveFactualDataOperation;
+import eu.etaxonomy.taxeditor.operation.e4.CdmHandlerE4;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
 
@@ -44,13 +44,13 @@ import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
  * @date 19 Jun 2015
  *
  */
-public class RemotingMoveFactualDataHandlerE4 extends RemotingCdmHandlerE4 {
+public class MoveFactualDataHandlerE4 extends CdmHandlerE4 {
 
     private TaxonNodeDto sourceTaxonNode;
     private TaxonNode targetTaxonNode;
     private boolean setNameInSource = false;
 
-    public RemotingMoveFactualDataHandlerE4() {
+    public MoveFactualDataHandlerE4() {
         super(TaxonNavigatorLabels.MOVE_FACTUAL_DATA_LABEL);
     }
 
@@ -93,7 +93,6 @@ public class RemotingMoveFactualDataHandlerE4 extends RemotingCdmHandlerE4 {
         excludeTaxa.add(sourceTaxonNode.getUuid());
 
         targetTaxonNode = TaxonNodeSelectionDialog.select(shell,
-//                new ConversationHolderMock(),
                 Messages.RemotingMoveFactualDataHandler_CHOOSE_TAXA,
                 excludeTaxa,
                 CdmStore.getService(ITaxonNodeService.class).find(sourceTaxonNode.getUuid()),
@@ -117,7 +116,7 @@ public class RemotingMoveFactualDataHandlerE4 extends RemotingCdmHandlerE4 {
             Shell shell,
             MPart activePart,
             MHandledMenuItem menuItem) {
-        return new RemotingMoveFactualDataOperation(getTrigger(),
+        return new MoveFactualDataOperation(getTrigger(),
                 false,
                 sourceTaxonNode.getTaxonUuid(),
                 targetTaxonNode.getTaxon().getUuid(), setNameInSource);
@@ -126,6 +125,10 @@ public class RemotingMoveFactualDataHandlerE4 extends RemotingCdmHandlerE4 {
     @CanExecute
     private boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection, MHandledMenuItem menuItem){
         boolean canExecute = false;
+//        boolean hasPermission = CdmStore.currentAuthentiationHasPermission(Taxon.class, EnumSet.of(CRUD.UPDATE));
+//        if (!hasPermission && !CdmStore.currentAuthentiationHasOneOfRoles(Role.ROLE_ADMIN)) {
+//            return hasPermission;
+//        }
         canExecute = selection.size()==1
                 && selection.getFirstElement() instanceof TaxonNodeDto
                 && ((TaxonNodeDto)selection.getFirstElement()).getTaxonUuid()  != null;
@@ -34,8 +34,8 @@ import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingMoveFactualDataOperation;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.MoveFactualDataOperation;
+import eu.etaxonomy.taxeditor.operation.e4.CdmHandlerE4;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
 
@@ -44,13 +44,13 @@ import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
  * @date 19 Jun 2015
  *
  */
-public class RemotingMoveFactualDataSetNameInSourceHandlerE5 extends RemotingCdmHandlerE4 {
+public class MoveFactualDataSetNameInSourceHandlerE5 extends CdmHandlerE4 {
 
     private TaxonNodeDto sourceTaxonNode;
     private TaxonNode targetTaxonNode;
     private boolean setNameInSource = false;
 
-    public RemotingMoveFactualDataSetNameInSourceHandlerE5() {
+    public MoveFactualDataSetNameInSourceHandlerE5() {
         super(TaxonNavigatorLabels.MOVE_FACTUAL_DATA_LABEL);
     }
 
@@ -93,7 +93,6 @@ public class RemotingMoveFactualDataSetNameInSourceHandlerE5 extends RemotingCdm
         excludeTaxa.add(sourceTaxonNode.getUuid());
 
         targetTaxonNode = TaxonNodeSelectionDialog.select(shell,
-//                new ConversationHolderMock(),
                 Messages.RemotingMoveFactualDataHandler_CHOOSE_TAXA,
                 excludeTaxa,
                 CdmStore.getService(ITaxonNodeService.class).find(sourceTaxonNode.getUuid()),
@@ -120,7 +119,7 @@ public class RemotingMoveFactualDataSetNameInSourceHandlerE5 extends RemotingCdm
         if (menuItem.getElementId().equals("eu.etaxonomy.taxeditor.navigation.handledmenuitem.movefactualdataSetNameInSource")){
             setNameInSource = true;
         }
-        return new RemotingMoveFactualDataOperation(getTrigger(),
+        return new MoveFactualDataOperation(getTrigger(),
                 false,
                 sourceTaxonNode.getTaxonUuid(),
                 targetTaxonNode.getTaxon().getUuid(), setNameInSource);
@@ -129,6 +128,10 @@ public class RemotingMoveFactualDataSetNameInSourceHandlerE5 extends RemotingCdm
     @CanExecute
     private boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection, MHandledMenuItem menuItem){
         boolean canExecute = false;
+//        boolean hasPermission = CdmStore.currentAuthentiationHasPermission(Taxon.class, EnumSet.of(CRUD.UPDATE));
+//        if (!hasPermission && !CdmStore.currentAuthentiationHasOneOfRoles(Role.ROLE_ADMIN)) {
+//            return hasPermission;
+//        }
         canExecute = selection.size()==1
                 && selection.getFirstElement() instanceof TaxonNodeDto
                 && ((TaxonNodeDto)selection.getFirstElement()).getTaxonUuid()  != null;
@@ -27,30 +27,36 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.swt.widgets.Shell;
 
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;
+import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
-import eu.etaxonomy.taxeditor.navigation.navigator.e4.TaxonNavigatorE4;
 import eu.etaxonomy.taxeditor.navigation.navigator.e4.TreeNodeDropAdapterE4.MovingType;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingMoveTaxonOperation;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.MoveTaxonOperation;
+import eu.etaxonomy.taxeditor.operation.e4.CdmHandlerE4;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.ReferenceSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
 
 /**
  * @author cmathew
  * @date 19 Jun 2015
- *
  */
-public class RemotingMoveTaxonNodeHandlerE4 extends RemotingCdmHandlerE4 {
+public class MoveTaxonNodeHandlerE4 extends CdmHandlerE4 {
 
     private Set<UUID> oldTaxonNodeUUIDs = new HashSet<>();
-    private TaxonNavigatorE4 navigator;
     private UUID classificationUuid = null;
+    boolean isPublish = true;
+    SecReferenceHandlingEnum secHandling;
+    UUID newSecUuid;
+    private Set<UUID> oldTaxonSecUUIDs = new HashSet<>();
 
-    public RemotingMoveTaxonNodeHandlerE4() {
+    public MoveTaxonNodeHandlerE4() {
         super(TaxonNavigatorLabels.MOVE_TAXON_LABEL);
     }
 
@@ -68,12 +74,15 @@ public class RemotingMoveTaxonNodeHandlerE4 extends RemotingCdmHandlerE4 {
         // check that selected object is a taxon node
 
         Object obj ;
-        Iterator iter = selection.iterator();
+        Iterator<?> iter = selection.iterator();
         oldTaxonNodeUUIDs = new HashSet<>();
+        isPublish = true;
         while (iter.hasNext()){
             obj = iter.next();
             if(obj instanceof TaxonNodeDto) {
                 oldTaxonNodeUUIDs.add(((TaxonNodeDto)obj).getUuid());
+                oldTaxonSecUUIDs.add(((TaxonNodeDto)obj).getSecUuid());
+                isPublish &= ((TaxonNodeDto)obj).isPublish();
                 if (classificationUuid == null){
                     classificationUuid = ((TaxonNodeDto)obj).getClassificationUUID();
                 }
@@ -116,7 +125,55 @@ public class RemotingMoveTaxonNodeHandlerE4 extends RemotingCdmHandlerE4 {
                     null,
                     classificationUuid, true);
         }
+        if (parentTaxonNode == null){
+            return null;
+        }
+
+        if (parentTaxonNode.getTaxon() != null && parentTaxonNode.getTaxon().isPublish() != isPublish){
+            MessageDialog.openWarning(shell,
+                    Messages.RemotingMoveTaxonNodeHandler_DIFFERENT_PUBLISH_TITLE,
+                    Messages.RemotingMoveTaxonNodeHandler_DIFFERENT_PUBLISH_MESSAGE);
+        }
 
+        secHandling = PreferencesUtil.getSecReferenceHandlingPreference();
+        newSecUuid = null;
+        UUID parentTaxonSecUuid= parentTaxonNode.getTaxon() != null && parentTaxonNode.getTaxon().getSec() != null ? parentTaxonNode.getTaxon().getSec().getUuid(): null;
+        if ( secHandling.equals(SecReferenceHandlingEnum.AlwaysSelect) || (oldTaxonSecUUIDs.size() > 1 && secHandling.equals(SecReferenceHandlingEnum.KeepOrSelect) || secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn) ) || (oldTaxonSecUUIDs.size() == 1 && (secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn) ||secHandling.equals(SecReferenceHandlingEnum.KeepOrSelect)) && !oldTaxonSecUUIDs.contains(parentTaxonSecUuid))){
+            //The moved nodes have different secundum references
+            String message = null;
+            String[] options = null;
+            if (secHandling.equals(SecReferenceHandlingEnum.AlwaysSelect) && (parentTaxonSecUuid != null && oldTaxonSecUUIDs.contains(parentTaxonSecUuid))){
+                message = Messages.TreeNodeDropAdapter_Select_Sec_Reference_Handling_message_always_select;
+                options = new String[]{Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Keep, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Select};
+            }else {
+                message = Messages.TreeNodeDropAdapter_Select_Sec_Reference_Handling_message;
+                options = new String[]{Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Keep,  Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Select, Messages.TreeNodeDropAdapter_Select_Sec_Reference_Parent, };
+            }
+            int result = 0;
+            if (secHandling.equals(SecReferenceHandlingEnum.KeepOrWarn) ){
+                MessageDialog.openWarning(null, "Secundum references differ", Messages.MoveTaxon_Different_Secundum_References);
+            }else{
+                result = MessagingUtils.confirmDialog(Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_title, message, options);
+            }
+
+
+//            int result = MessagingUtils.confirmDialog(Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_title, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Handling_message,
+//                    new String[]{Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Keep, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Parent, Messages.RemotingChangeAcceptedTaxonToSynonymHandler_Select_Sec_Reference_Select});
+            if (result == 1){
+                //select new reference
+                Reference sec = ReferenceSelectionDialog.select(AbstractUtility.getShell(), null);
+                newSecUuid = sec != null? sec.getUuid(): null;
+            }else if (result == 2){
+                //use parent sec
+                secHandling = SecReferenceHandlingEnum.UseNewParentSec;
+                newSecUuid = parentTaxonSecUuid;
+            }else if (result == 0){
+                //keep sec (also homotypic synonyms with different sec will keep the secundum)
+                secHandling = SecReferenceHandlingEnum.KeepOrWarn;
+            }else{
+                return null;
+            }
+        }
 
         if(parentTaxonNode != null){
             if(NavigationUtil.isDirty(parentTaxonNode, partService)){
@@ -126,11 +183,13 @@ public class RemotingMoveTaxonNodeHandlerE4 extends RemotingCdmHandlerE4 {
                 return null;
             }
 
-            return new RemotingMoveTaxonOperation(getTrigger(),
+            return new MoveTaxonOperation(getTrigger(),
                     false,
                     oldTaxonNodeUUIDs,
                     parentTaxonNode.getUuid(),
-                    moveToNewParent);
+                    moveToNewParent,
+                    secHandling,
+                    newSecUuid);
         }
 
         return null;
@@ -139,6 +198,10 @@ public class RemotingMoveTaxonNodeHandlerE4 extends RemotingCdmHandlerE4 {
     @CanExecute
     private boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection, MHandledMenuItem menuItem){
         boolean canExecute = false;
+//        boolean hasPermission = CdmStore.currentAuthentiationHasPermission(TaxonNode.class, EnumSet.of(CRUD.UPDATE));
+//        if (!hasPermission && !CdmStore.currentAuthentiationHasOneOfRoles(Role.ROLE_ADMIN)) {
+//            return hasPermission;
+//        }
         canExecute = selection.getFirstElement() instanceof TaxonNodeDto
                 && ((TaxonNodeDto)selection.getFirstElement()).getTaxonUuid() != null;
         menuItem.setVisible(canExecute);
@@ -149,9 +212,6 @@ public class RemotingMoveTaxonNodeHandlerE4 extends RemotingCdmHandlerE4 {
     public void onComplete() {
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected Object getTrigger() {
         return this;
index e9b170080c42b45489a367648e08fcf88efccc76..d0b168da0e464db734632d04b01243ef58114ab8 100755 (executable)
@@ -13,13 +13,13 @@ import java.util.Set;
 
 import eu.etaxonomy.cdm.model.permission.CRUD;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
+import eu.etaxonomy.taxeditor.operation.e4.CdmHandlerE4;
 
 /**
  * @author k.luther
  * @since 15.01.2020
  */
-public abstract class NavigatorCdmHandler extends RemotingCdmHandlerE4 {
+public abstract class NavigatorCdmHandler extends CdmHandlerE4 {
 
     /**
      * @param label
index 832003dbfa2c8936a9d0034df94c2c59915121d3..151bd6ebe306ede89a0fa8f89e768e3d3d9c3c28 100644 (file)
@@ -47,7 +47,24 @@ public class NewClassificationHandlerE4 {
     private boolean canExecute(MHandledMenuItem menuItem){
         boolean canExecute = false;
 
-        canExecute = TaxonNodePropertyTester.noClassifiactionExists() || !PreferencesUtil.getBooleanValue(PreferencePredicate.DisableMultiClassification.getKey());
+        //TODO Performance check for existing classification causes server call, this should be cached somehow
+        canExecute = !PreferencesUtil.getBooleanValue(PreferencePredicate.DisableMultiClassification.getKey()) || TaxonNodePropertyTester.noClassifiactionExists();
+        if (!canExecute) {
+            return canExecute;
+        }
+        //canExecute = canExecute && CdmStore.currentAuthentiationHasPermission(TaxonNode.class, CREATE);
+
+//        CdmStore.currentAuthentiationHasOneOfRoles(Role.ROLE_ADMIN, Role.ROLE_PROJECT_MANAGER);
+//        CdmStore.getCurrentAuthentiation().getAuthorities().contains(menuItem)
+//        if (selection != null && selection.getFirstElement() != null && selection.getFirstElement() instanceof TaxonNodeDto) {
+//            TaxonNodeDto targetNode = (TaxonNodeDto)selection.getFirstElement();
+//            TaxonNode node = CdmStore.getService(ITaxonNodeService.class).load(targetNode.getUuid());
+//            boolean hasTargetNodePermission = CdmStore.currentAuthentiationHasPermission(node, UPDATE);
+//
+//            canExecute = canExecute && hasTargetNodePermission;
+//            canExecute = canExecute && CdmStore.currentAuthentiationHasPermission(node, CREATE);
+//        }
+
         menuItem.setVisible(canExecute);
         return canExecute;
     }
index aff7db7516c5affe56e7fb21b3346ad2cc0e845e..072a4f907d39f98095320ffe1ce1391448271de3 100644 (file)
@@ -9,6 +9,8 @@
 
 package eu.etaxonomy.taxeditor.navigation.navigator.e4.handler;
 
+import java.util.EnumSet;
+
 import javax.inject.Named;
 
 import org.eclipse.core.runtime.IStatus;
@@ -24,13 +26,15 @@ import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Shell;
 
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.model.permission.CRUD;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.event.EventUtility;
-import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.newWizard.IWizardPageListener;
 import eu.etaxonomy.taxeditor.newWizard.NewTaxonNodeWizard;
 import eu.etaxonomy.taxeditor.newWizard.NewTaxonNodeWizardDialog;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  *
@@ -39,6 +43,8 @@ import eu.etaxonomy.taxeditor.newWizard.NewTaxonNodeWizardDialog;
  *
  */
 public class NewTaxonNodeHandlerE4 {
+    private static final EnumSet<CRUD> CREATE = EnumSet.of(CRUD.CREATE);
+    private static final EnumSet<CRUD> UPDATE = EnumSet.of(CRUD.UPDATE);
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell,
@@ -63,7 +69,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()));
                        }
                }
        }
@@ -73,6 +78,19 @@ public class NewTaxonNodeHandlerE4 {
             MHandledMenuItem menuItem){
         boolean canExecute = false;
         canExecute = selection!=null && selection.size()==1;
+        if (!canExecute) {
+            return canExecute;
+        }
+        //canExecute = canExecute && CdmStore.currentAuthentiationHasPermission(TaxonNode.class, CREATE);
+        if (selection != null && selection.getFirstElement() != null && selection.getFirstElement() instanceof TaxonNodeDto) {
+            TaxonNodeDto targetNode = (TaxonNodeDto)selection.getFirstElement();
+            TaxonNode node = CdmStore.getService(ITaxonNodeService.class).load(targetNode.getUuid());
+            boolean hasTargetNodePermission = CdmStore.currentAuthentiationHasPermission(node, UPDATE);
+
+            canExecute = canExecute && hasTargetNodePermission;
+            canExecute = canExecute && CdmStore.currentAuthentiationHasPermission(node, CREATE);
+        }
+
         menuItem.setVisible(canExecute);
         return canExecute;
     }
index 91665b7ed3d620627cb43201f48131ba283a0bab..8460804f967d75f9d6ecb19163f3a21f7ec5aa70 100644 (file)
@@ -30,10 +30,11 @@ public class RefreshTreeHandlerE4 {
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
+        if (activePart.getObject() instanceof TaxonNavigatorE4){
+            TaxonNavigatorE4 taxonNavigator = (TaxonNavigatorE4) activePart.getObject();
 
-        TaxonNavigatorE4 taxonNavigator = (TaxonNavigatorE4) activePart.getObject();
-
-        taxonNavigator.refresh();
+            taxonNavigator.refresh();
+        }
        }
 
     @CanExecute
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemotingChangeAcceptedTaxonToSynonymHandlerE4.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemotingChangeAcceptedTaxonToSynonymHandlerE4.java
deleted file mode 100644 (file)
index 73b2463..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-/**
- *
- */
-package eu.etaxonomy.taxeditor.navigation.navigator.e4.handler;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-import java.util.UUID;
-
-import javax.inject.Named;
-
-import org.eclipse.core.commands.operations.AbstractOperation;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.swt.widgets.Shell;
-
-import eu.etaxonomy.cdm.api.service.IClassificationService;
-import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
-import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingChangeAcceptedTaxonToSynonymOperation;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
-
-/**
- *
- * @author pplitzner
- * @since Sep 6, 2017
- *
- */
-public class RemotingChangeAcceptedTaxonToSynonymHandlerE4 extends RemotingCdmHandlerE4 {
-
-
-    private Set<TaxonNodeDto> oldTaxonNodes = new HashSet();
-    private Classification classification;
-
-    public RemotingChangeAcceptedTaxonToSynonymHandlerE4() {
-        super(TaxonNavigatorLabels.CHANGE_ACCEPTED_TAXON_TO_SYNONYM_LABEL);
-    }
-
-    @Override
-    public IStatus allowOperations(IStructuredSelection selection,
-            Shell shell,
-            MPart activePart,
-            MHandledMenuItem menuItem) {
-        // check that only a single taxon tree node has been selected
-//        if(selection.size() > 1) {
-//            return new Status(IStatus.ERROR,
-//                    "unknown", //$NON-NLS-1$
-//                    TaxonNavigatorLabels.SINGLE_TAXON_SELECTION_MESSAGE);
-//        }
-
-        // check for no taxon tree node selected
-        if(selection.size() == 0) {
-            return new Status(IStatus.ERROR,
-                    "unknown", //$NON-NLS-1$
-                    TaxonNavigatorLabels.NO_TAXON_SELECTION_MESSAGE);
-        }
-
-        // check that selected object is a taxon node
-        Iterator it = selection.iterator();
-        Classification nextClassification;
-        oldTaxonNodes = new HashSet<>();
-        while(it.hasNext()){
-               Object obj = it.next();
-               if(obj instanceof TaxonNodeDto) {
-                   oldTaxonNodes.add((TaxonNodeDto)obj);
-                   nextClassification = CdmStore.getService(IClassificationService.class).find(((TaxonNodeDto)obj).getClassificationUUID());
-                   if (classification == null){
-                       classification = nextClassification;
-                   }else if (!classification.equals(nextClassification)){
-                       return new Status(IStatus.ERROR,
-                               "unknown", //$NON-NLS-1$
-                               TaxonNavigatorLabels.ACCEPTED_TAXA_NEED_TO_BE_FROM_SAME_CLASSIFICATION);
-                   }
-               } else {
-                       if (obj instanceof TaxonNode && !((TaxonNode)obj).hasTaxon()){
-                               return new Status(IStatus.ERROR,
-                               "Operation not available for Classifications", //$NON-NLS-1$
-                               TaxonNavigatorLabels.SELECTED_OBJECT_NOT_TREE_NODE_MESSAGE);
-                       }
-                   return new Status(IStatus.ERROR,
-                           "unknown", //$NON-NLS-1$
-                           TaxonNavigatorLabels.SELECTED_OBJECT_NOT_TREE_NODE_MESSAGE);
-               }
-               // check that the source taxon node does not have children
-               if(((TaxonNodeDto)obj).getTaxonomicChildrenCount() > 0) {
-                   return new Status(IStatus.ERROR,
-                           "unknown", //$NON-NLS-1$
-                           TaxonNavigatorLabels.SOURCE_TAXON_HAS_CHILDREN_MESSAGE);
-
-               }
-
-               // check if corresponding name editor is closed
-               EditorUtil.closeObsoleteEditor((TaxonNodeDto)obj, partService);
-        }
-        return Status.OK_STATUS;
-    }
-
-    @Override
-    public AbstractOperation prepareOperation(IStructuredSelection selection,
-            Shell shell,
-            MPart activePart,
-            MHandledMenuItem menuItem) {
-        Set<UUID> excludeTaxa = new HashSet<>();
-        for (TaxonNodeDto oldNode:oldTaxonNodes){
-               excludeTaxa.add(oldNode.getTaxonUuid());
-        }
-        TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(shell,
-//                new ConversationHolderMock(),
-                Messages.RemotingChangeAcceptedTaxonToSynonymHandler_CHOOSE_TAXON,
-                excludeTaxa,
-                null,
-                classification.getUuid());
-
-        if (newAcceptedTaxonNode == null) {
-            return null;
-        }
-        Set<UUID> nodeUuids = new HashSet();
-        for (TaxonNodeDto node: oldTaxonNodes){
-               nodeUuids.add(node.getUuid());
-        }
-        RemotingChangeAcceptedTaxonToSynonymOperation rcattso =
-                new RemotingChangeAcceptedTaxonToSynonymOperation(getTrigger(),
-                        false,
-                        nodeUuids,
-                        newAcceptedTaxonNode.getUuid(), partService, activePart, application, false);
-
-        return rcattso;
-    }
-
-    @CanExecute
-    private boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection, MHandledMenuItem menuItem){
-        boolean canExecute = !selection.isEmpty();
-        Object[] array = selection.toArray();
-        for (Object object : array) {
-            canExecute &= (object instanceof TaxonNodeDto) && ((TaxonNodeDto)selection.getFirstElement()).getTaxonUuid() != null;
-        }
-        menuItem.setVisible(canExecute);
-        return canExecute;
-    }
-
-    @Override
-    public void onComplete() {
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected Object getTrigger() {
-        return this;
-    }
-}
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemotingChangeAcceptedTaxonToSynonymSetNameInSourceHandlerE5.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemotingChangeAcceptedTaxonToSynonymSetNameInSourceHandlerE5.java
deleted file mode 100755 (executable)
index ef69141..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-/**
- *
- */
-package eu.etaxonomy.taxeditor.navigation.navigator.e4.handler;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-import java.util.UUID;
-
-import javax.inject.Named;
-
-import org.eclipse.core.commands.operations.AbstractOperation;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.swt.widgets.Shell;
-
-import eu.etaxonomy.cdm.api.service.IClassificationService;
-import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
-import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingChangeAcceptedTaxonToSynonymOperation;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
-
-/**
- *
- * @author pplitzner
- * @since Sep 6, 2017
- *
- */
-public class RemotingChangeAcceptedTaxonToSynonymSetNameInSourceHandlerE5 extends RemotingCdmHandlerE4 {
-
-
-    private Set<TaxonNodeDto> oldTaxonNodes = new HashSet();
-    private Classification classification;
-
-    public RemotingChangeAcceptedTaxonToSynonymSetNameInSourceHandlerE5() {
-        super(TaxonNavigatorLabels.CHANGE_ACCEPTED_TAXON_TO_SYNONYM_LABEL);
-    }
-
-    @Override
-    public IStatus allowOperations(IStructuredSelection selection,
-            Shell shell,
-            MPart activePart,
-            MHandledMenuItem menuItem) {
-        // check that only a single taxon tree node has been selected
-//        if(selection.size() > 1) {
-//            return new Status(IStatus.ERROR,
-//                    "unknown", //$NON-NLS-1$
-//                    TaxonNavigatorLabels.SINGLE_TAXON_SELECTION_MESSAGE);
-//        }
-
-        // check for no taxon tree node selected
-        if(selection.size() == 0) {
-            return new Status(IStatus.ERROR,
-                    "unknown", //$NON-NLS-1$
-                    TaxonNavigatorLabels.NO_TAXON_SELECTION_MESSAGE);
-        }
-
-        // check that selected object is a taxon node
-        Iterator it = selection.iterator();
-        Classification nextClassification;
-        oldTaxonNodes = new HashSet<>();
-        while(it.hasNext()){
-               Object obj = it.next();
-               if(obj instanceof TaxonNodeDto) {
-                   oldTaxonNodes.add((TaxonNodeDto)obj);
-                   nextClassification = CdmStore.getService(IClassificationService.class).find(((TaxonNodeDto)obj).getClassificationUUID());
-                   if (classification == null){
-                       classification = nextClassification;
-                   }else if (!classification.equals(nextClassification)){
-                       return new Status(IStatus.ERROR,
-                               "unknown", //$NON-NLS-1$
-                               TaxonNavigatorLabels.ACCEPTED_TAXA_NEED_TO_BE_FROM_SAME_CLASSIFICATION);
-                   }
-               } else {
-                       if (obj instanceof TaxonNode && !((TaxonNode)obj).hasTaxon()){
-                               return new Status(IStatus.ERROR,
-                               "Operation not available for Classifications", //$NON-NLS-1$
-                               TaxonNavigatorLabels.SELECTED_OBJECT_NOT_TREE_NODE_MESSAGE);
-                       }
-                   return new Status(IStatus.ERROR,
-                           "unknown", //$NON-NLS-1$
-                           TaxonNavigatorLabels.SELECTED_OBJECT_NOT_TREE_NODE_MESSAGE);
-               }
-               // check that the source taxon node does not have children
-               if(((TaxonNodeDto)obj).getTaxonomicChildrenCount() > 0) {
-                   return new Status(IStatus.ERROR,
-                           "unknown", //$NON-NLS-1$
-                           TaxonNavigatorLabels.SOURCE_TAXON_HAS_CHILDREN_MESSAGE);
-
-               }
-
-               // check if corresponding name editor is closed
-               EditorUtil.closeObsoleteEditor((TaxonNodeDto)obj, partService);
-        }
-        return Status.OK_STATUS;
-    }
-
-    @Override
-    public AbstractOperation prepareOperation(IStructuredSelection selection,
-            Shell shell,
-            MPart activePart,
-            MHandledMenuItem menuItem) {
-        Set<UUID> excludeTaxa = new HashSet<>();
-        for (TaxonNodeDto oldNode:oldTaxonNodes){
-               excludeTaxa.add(oldNode.getTaxonUuid());
-        }
-        TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(shell,
-//                new ConversationHolderMock(),
-                Messages.RemotingChangeAcceptedTaxonToSynonymHandler_CHOOSE_TAXON,
-                excludeTaxa,
-                null,
-                classification.getUuid());
-
-        if (newAcceptedTaxonNode == null) {
-            return null;
-        }
-        Set<UUID> nodeUuids = new HashSet();
-        for (TaxonNodeDto node: oldTaxonNodes){
-               nodeUuids.add(node.getUuid());
-        }
-        RemotingChangeAcceptedTaxonToSynonymOperation rcattso =
-                new RemotingChangeAcceptedTaxonToSynonymOperation(getTrigger(),
-                        false,
-                        nodeUuids,
-                        newAcceptedTaxonNode.getUuid(), partService, activePart, application, true);
-
-        return rcattso;
-    }
-
-    @CanExecute
-    private boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection, MHandledMenuItem menuItem){
-        boolean canExecute = !selection.isEmpty();
-        Object[] array = selection.toArray();
-        for (Object object : array) {
-            canExecute &= (object instanceof TaxonNodeDto) && ((TaxonNodeDto)selection.getFirstElement()).getTaxonUuid() != null;
-        }
-        menuItem.setVisible(canExecute);
-        return canExecute;
-    }
-
-    @Override
-    public void onComplete() {
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected Object getTrigger() {
-        return this;
-    }
-}
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemoveDoubtfulHandler.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemoveDoubtfulHandler.java
deleted file mode 100755 (executable)
index 2a0c5c5..0000000
+++ /dev/null
@@ -1,55 +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.navigation.navigator.e4.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.core.commands.operations.AbstractOperation;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.swt.widgets.Shell;
-
-import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.SetUnplacedExcludedDoubtfulOperation;
-
-/**
- * @author k.luther
- * @since 23.08.2019
- */
-public class RemoveDoubtfulHandler extends UnplacedExcludedDoubtfulHandler {
-
-    @Override
-    public AbstractOperation prepareOperation(IStructuredSelection selection,
-            Shell shell,
-            MPart activePart,
-            MHandledMenuItem menuItem) {
-        SetUnplacedExcludedDoubtfulOperation operation =
-                new SetUnplacedExcludedDoubtfulOperation(getTrigger(),
-                        true,
-                        taxonNodes,
-                        null, null, false);
-
-        return operation;
-    }
-
-    @CanExecute
-    private boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection, MHandledMenuItem menuItem){
-        boolean canExecute = !selection.isEmpty();
-        Object[] array = selection.toArray();
-        for (Object object : array) {
-            canExecute &= (object instanceof TaxonNodeDto) && (((TaxonNodeDto)object).getUuid() != null) && ((TaxonNodeDto)object).isDoubtful() && ((TaxonNodeDto)object).getTaxonUuid() != null;
-        }
-        menuItem.setVisible(canExecute);
-        return canExecute;
-    }
-}
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemoveExcludedHandler.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemoveExcludedHandler.java
deleted file mode 100755 (executable)
index 0db4996..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
-* Copyright (C) 2018 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.navigation.navigator.e4.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.core.commands.operations.AbstractOperation;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.swt.widgets.Shell;
-
-import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.SetUnplacedExcludedDoubtfulOperation;
-
-/**
- * @author k.luther
- * @since 11.10.2018
- */
-public class RemoveExcludedHandler extends UnplacedExcludedDoubtfulHandler {
-
-    @Override
-    public AbstractOperation prepareOperation(IStructuredSelection selection,
-            Shell shell,
-            MPart activePart,
-            MHandledMenuItem menuItem) {
-        SetUnplacedExcludedDoubtfulOperation operation =
-                new SetUnplacedExcludedDoubtfulOperation(getTrigger(),
-                        true,
-                        taxonNodes,
-                        null, false, null);
-
-        return operation;
-    }
-
-    @CanExecute
-    private boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection, MHandledMenuItem menuItem){
-        boolean canExecute = !selection.isEmpty();
-        Object[] array = selection.toArray();
-        for (Object object : array) {
-            canExecute &= (object instanceof TaxonNodeDto) && (((TaxonNodeDto)object).getUuid() != null) && ((TaxonNodeDto)object).isExcluded() && ((TaxonNodeDto)object).getTaxonUuid() != null;
-        }
-        menuItem.setVisible(canExecute);
-        return canExecute;
-    }
-}
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemoveUnplacedHandler.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/RemoveUnplacedHandler.java
deleted file mode 100755 (executable)
index 805759c..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
-* Copyright (C) 2018 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.navigation.navigator.e4.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.core.commands.operations.AbstractOperation;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.swt.widgets.Shell;
-
-import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.SetUnplacedExcludedDoubtfulOperation;
-
-/**
- * @author k.luther
- * @since 11.10.2018
- *
- */
-public class RemoveUnplacedHandler extends UnplacedExcludedDoubtfulHandler {
-    @Override
-    public AbstractOperation prepareOperation(IStructuredSelection selection,
-            Shell shell,
-            MPart activePart,
-            MHandledMenuItem menuItem) {
-        SetUnplacedExcludedDoubtfulOperation operation =
-                new SetUnplacedExcludedDoubtfulOperation(getTrigger(),
-                        true,
-                        taxonNodes,
-                        false, null, null);
-
-        return operation;
-    }
-
-    @CanExecute
-    private boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection, MHandledMenuItem menuItem){
-        boolean canExecute = !selection.isEmpty();
-        Object[] array = selection.toArray();
-        for (Object object : array) {
-            canExecute &= (object instanceof TaxonNodeDto) && (((TaxonNodeDto)object).getUuid() != null) && ((TaxonNodeDto)object).isUnplaced() && ((TaxonNodeDto)object).getTaxonUuid() != null;
-        }
-        menuItem.setVisible(canExecute);
-        return canExecute;
-    }
-}
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/SetDoubtfulHandler.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/SetDoubtfulHandler.java
deleted file mode 100755 (executable)
index 95cfe2e..0000000
+++ /dev/null
@@ -1,60 +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.navigation.navigator.e4.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.core.commands.operations.AbstractOperation;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.swt.widgets.Shell;
-
-import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.SetUnplacedExcludedDoubtfulOperation;
-
-/**
- * @author k.luther
- * @since 23.08.2019
- */
-public class SetDoubtfulHandler extends UnplacedExcludedDoubtfulHandler {
-
-    @Override
-    public AbstractOperation prepareOperation(IStructuredSelection selection,
-            Shell shell,
-            MPart activePart,
-            MHandledMenuItem menuItem) {
-        SetUnplacedExcludedDoubtfulOperation operation =
-                new SetUnplacedExcludedDoubtfulOperation(getTrigger(),
-                        true,
-                        taxonNodes,
-                        null, null, true);
-
-        return operation;
-    }
-
-    @CanExecute
-    private boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection, MHandledMenuItem menuItem){
-        boolean canExecute = !selection.isEmpty();
-        Object[] array = selection.toArray();
-        boolean isClassification = false;
-        for (Object object : array) {
-            canExecute &= (object instanceof TaxonNodeDto) && (((TaxonNodeDto)object).getUuid() != null) && !((TaxonNodeDto)object).isDoubtful() && ((TaxonNodeDto)object).getTaxonUuid() != null;
-            isClassification = isClassification || ((TaxonNodeDto)object).getTaxonUuid() == null;
-        }
-
-        menuItem.setVisible(canExecute || isClassification);
-        return canExecute;
-    }
-
-
-}
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/SetExcludedHandler.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/SetExcludedHandler.java
deleted file mode 100755 (executable)
index e9c98c8..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
-* Copyright (C) 2018 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.navigation.navigator.e4.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.core.commands.operations.AbstractOperation;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.swt.widgets.Shell;
-
-import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.SetUnplacedExcludedDoubtfulOperation;
-
-/**
- * @author k.luther
- * @since 11.10.2018
- *
- */
-public class SetExcludedHandler extends UnplacedExcludedDoubtfulHandler {
-
-    @Override
-    public AbstractOperation prepareOperation(IStructuredSelection selection,
-            Shell shell,
-            MPart activePart,
-            MHandledMenuItem menuItem) {
-        SetUnplacedExcludedDoubtfulOperation operation =
-                new SetUnplacedExcludedDoubtfulOperation(getTrigger(),
-                        true,
-                        taxonNodes,
-                        null, true, null);
-
-        return operation;
-    }
-
-    @CanExecute
-    private boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection, MHandledMenuItem menuItem){
-        boolean canExecute = !selection.isEmpty();
-        Object[] array = selection.toArray();
-        boolean isClassification = false;
-        for (Object object : array) {
-            canExecute &= (object instanceof TaxonNodeDto) && (((TaxonNodeDto)object).getUuid() != null) && !((TaxonNodeDto)object).isExcluded() && ((TaxonNodeDto)object).getTaxonUuid() != null;
-            isClassification = isClassification || ((TaxonNodeDto)object).getTaxonUuid() == null;
-        }
-        menuItem.setVisible(canExecute || isClassification);
-        return canExecute;
-    }
-
-}
index 751b43f6a6668bd9b49f341371fcbea2f9137eb0..721385064839a1e41b722ee38fe502766bfb0526 100755 (executable)
@@ -32,11 +32,13 @@ import org.eclipse.swt.widgets.Shell;
 import eu.etaxonomy.cdm.api.service.config.PublishForSubtreeConfigurator;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.cdm.persistence.permission.Role;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
 import eu.etaxonomy.taxeditor.navigation.navigator.operation.SetPublishForSubtreeOperation;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
+import eu.etaxonomy.taxeditor.operation.e4.CdmHandlerE4;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.dialog.configurator.SetPublishForSubtreeWizard;
 import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
 
@@ -45,7 +47,7 @@ import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
  * @date 11.10.2017
  *
  */
-public class SetPublishFlagForSubtreeHandlerE4 extends RemotingCdmHandlerE4 {
+public class SetPublishFlagForSubtreeHandlerE4 extends CdmHandlerE4 {
 
     /**
      * @param label
@@ -128,6 +130,7 @@ public class SetPublishFlagForSubtreeHandlerE4 extends RemotingCdmHandlerE4 {
         boolean canExecute = false;
         canExecute = selection.size()==1
                 && selection.getFirstElement() instanceof TaxonNodeDto;
+        canExecute &= CdmStore.currentAuthentiationHasOneOfRoles(Role.ROLE_PUBLISH, Role.ROLE_ADMIN);
         menuItem.setEnabled(canExecute);
         return canExecute;
     }
index 2682b58c0d0555f242e8e75fcb5f8fefb72f7d99..e14c7604640cb9e30216a0d53338de36cc8384ac 100755 (executable)
@@ -26,6 +26,8 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.jface.window.Window;
 import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.service.config.SecundumForSubtreeConfigurator;
@@ -35,7 +37,7 @@ import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigatorLabels;
 import eu.etaxonomy.taxeditor.navigation.navigator.operation.SetSecundumForSubtreeOperation;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
+import eu.etaxonomy.taxeditor.operation.e4.CdmHandlerE4;
 import eu.etaxonomy.taxeditor.ui.dialog.configurator.SetSecundumForSubtreeConfigurationWizard;
 import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
 
@@ -45,7 +47,7 @@ import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
  * @date 10.02.2017
  *
  */
-public class SetSecReferenceForSubtreeHandlerE4 extends RemotingCdmHandlerE4 {
+public class SetSecReferenceForSubtreeHandlerE4 extends CdmHandlerE4 {
 
     private TaxonNodeDto taxonNode;
     private SecundumForSubtreeConfigurator configurator;
@@ -107,9 +109,12 @@ public class SetSecReferenceForSubtreeHandlerE4 extends RemotingCdmHandlerE4 {
             }
         }
 
-        configurator = new SecundumForSubtreeConfigurator(taxonNode.getUuid());
+        configurator = new SecundumForSubtreeConfigurator(taxonNode.getUuid(), null, null, false);
         SetSecundumForSubtreeConfigurationWizard wizard = new SetSecundumForSubtreeConfigurationWizard(configurator);
-
+        if (shell == null){
+            shell = new Shell(Display.getCurrent(), SWT.CLOSE | SWT.TITLE | SWT.MIN );
+        }
+        shell.setMinimumSize(300, 100);
         WizardDialog dialog = new WizardDialog(shell, wizard);
 
         if (dialog.open() == Window.OK) {
@@ -122,6 +127,10 @@ public class SetSecReferenceForSubtreeHandlerE4 extends RemotingCdmHandlerE4 {
     @CanExecute
     private boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection, MHandledMenuItem menuItem){
         boolean canExecute = false;
+//        boolean hasPermission = CdmStore.currentAuthentiationHasPermission(Taxon.class, EnumSet.of(CRUD.UPDATE));
+//        if (!hasPermission && !CdmStore.currentAuthentiationHasOneOfRoles(Role.ROLE_ADMIN)) {
+//            return hasPermission;
+//        }
         canExecute = selection.size()==1
                 && selection.getFirstElement() instanceof TaxonNodeDto;
         menuItem.setEnabled(canExecute);
@@ -147,12 +156,8 @@ public class SetSecReferenceForSubtreeHandlerE4 extends RemotingCdmHandlerE4 {
     public void onComplete() {
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected Object getTrigger() {
         return this;
     }
-
 }
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/SetUnplacedHandler.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/SetUnplacedHandler.java
deleted file mode 100755 (executable)
index dd48fbd..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
-* Copyright (C) 2018 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.navigation.navigator.e4.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.core.commands.operations.AbstractOperation;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.swt.widgets.Shell;
-
-import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.SetUnplacedExcludedDoubtfulOperation;
-
-/**
- * @author k.luther
- * @since 11.10.2018
- *
- */
-public class SetUnplacedHandler extends UnplacedExcludedDoubtfulHandler {
-    @Override
-    public AbstractOperation prepareOperation(IStructuredSelection selection,
-            Shell shell,
-            MPart activePart,
-            MHandledMenuItem menuItem) {
-        SetUnplacedExcludedDoubtfulOperation operation =
-                new SetUnplacedExcludedDoubtfulOperation(getTrigger(),
-                        true,
-                        taxonNodes,
-                        true, null, null);
-
-        return operation;
-    }
-
-    @CanExecute
-    private boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)TreeSelection selection, MHandledMenuItem menuItem){
-        boolean canExecute = !selection.isEmpty();
-        Object[] array = selection.toArray();
-        boolean isClassification = false;
-        for (Object object : array) {
-            canExecute &= (object instanceof TaxonNodeDto) && (((TaxonNodeDto)object).getUuid() != null) && !((TaxonNodeDto)object).isUnplaced() && ((TaxonNodeDto)object).getTaxonUuid() != null;
-            isClassification = isClassification || ((TaxonNodeDto)object).getTaxonUuid() == null;
-        }
-        menuItem.setVisible(canExecute || isClassification);
-        return canExecute;
-    }
-
-
-}
-/**
-* 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.navigation.navigator.operation;
-
-import java.util.HashSet;
-import java.util.Set;
-import java.util.UUID;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.e4.ui.model.application.MApplication;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.workbench.modeling.EPartService;
-import org.eclipse.swt.widgets.Display;
-
-import eu.etaxonomy.cdm.api.application.CdmApplicationState;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
-import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
-import eu.etaxonomy.cdm.api.service.UpdateResult;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
-import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
-
-
-/**
- * @author cmathew
- * @date 17 Jun 2015
- *
- */
-public class RemotingChangeAcceptedTaxonToSynonymOperation extends RemotingCdmUpdateOperation {
-
-    private Set<UUID> oldTaxonNodeUuids = new HashSet();
-    private final UUID newAcceptedTaxonNodeUuid;
-    private boolean setNameInSource ;
-
-
-    private final static String LABEL = Messages.RemotingChangeAcceptedTaxonToSynonymOperation_CHANGE_OP;
-
-    /**
-     * @param label
-     */
-    public RemotingChangeAcceptedTaxonToSynonymOperation(Object source,
-            boolean async,
-            Set<UUID> oldTaxonNodeUuids,
-            UUID newAcceptedTaxonNodeUuid,
-            EPartService partService,
-            MPart activePart,
-            MApplication application,
-            boolean setNameInSource) {
-        super(LABEL, Action.Update, source, async, partService, activePart, application);
-        this.oldTaxonNodeUuids.addAll(oldTaxonNodeUuids);
-        this.newAcceptedTaxonNodeUuid = newAcceptedTaxonNodeUuid;
-        this.setNameInSource = setNameInSource;
-
-    }
-
-    /**
-     * @param label
-     */
-    public RemotingChangeAcceptedTaxonToSynonymOperation(Object source,
-            boolean async,
-            UUID oldTaxonNodeUuid,
-            UUID newAcceptedTaxonNodeUuid,
-            EPartService partService,
-               MPart activePart,
-               MApplication application,
-               boolean setNameInSource) {
-        super(LABEL, Action.Update, source, async, partService, activePart, application);
-        this.oldTaxonNodeUuids.add(oldTaxonNodeUuid);
-        this.newAcceptedTaxonNodeUuid = newAcceptedTaxonNodeUuid;
-        this.setNameInSource = setNameInSource;
-    }
-
-    /**
-     * @param label
-     */
-    public RemotingChangeAcceptedTaxonToSynonymOperation(Object source,
-            boolean async,
-            UUID oldTaxonNodeUuid,
-            UUID newAcceptedTaxonNodeUuid,
-            boolean setNameInSource) {
-        super(LABEL, Action.Update, source, async);
-        this.oldTaxonNodeUuids.add(oldTaxonNodeUuid);
-        this.newAcceptedTaxonNodeUuid = newAcceptedTaxonNodeUuid;
-        this.setNameInSource = setNameInSource;
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation#doUpdateExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-     */
-    @Override
-    protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
-
-       if (this.oldTaxonNodeUuids.size() == 1){
-               updateResult = CdmApplicationState.getService(ITaxonNodeService.class).makeTaxonNodeASynonymOfAnotherTaxonNode(oldTaxonNodeUuids.iterator().next(),
-                    newAcceptedTaxonNodeUuid,
-                    null,
-                    null,
-                    null,
-                    setNameInSource);//TODO
-       }else{
-               updateResult = CdmApplicationState.getService(ITaxonNodeService.class).makeTaxonNodeSynonymsOfAnotherTaxonNode(oldTaxonNodeUuids,
-                    newAcceptedTaxonNodeUuid,
-                    null,
-                    null,
-                    null,
-                    setNameInSource);//TODO
-       }
-       updateNameEditor();
-       return updateResult;
-
-    }
-
-    private void updateNameEditor(){
-       if (partService != null){
-           Display.getDefault().asyncExec(new Runnable() {
-
-            @Override
-            public void run() {
-                       for (MPart part : partService.getParts()){
-                                       Object object = part.getObject();
-                                       boolean setFocus = false;
-                                       if (part == activePart){
-                                           setFocus = true;
-                                       }
-                                       if (object instanceof TaxonNameEditorE4){
-                                               Set<TaxonNode> nodes = ((TaxonNameEditorE4)object).getTaxon().getTaxonNodes();
-                                               for (TaxonNode node: nodes){
-                                                       if (node.getTaxon().getUuid().equals(newAcceptedTaxonNodeUuid)){
-                                                               EditorUtil.updateEditor(node, (TaxonNameEditorE4)object);
-                                                       }
-
-                                               }
-                                       }
-                               }
-                   }
-               });
-       }
-    }
-}
+/**\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.navigation.navigator.operation;\r
+\r
+import java.util.HashSet;\r
+import java.util.Set;\r
+import java.util.UUID;\r
+\r
+import org.eclipse.core.runtime.IAdaptable;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.e4.ui.model.application.MApplication;\r
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;\r
+import org.eclipse.e4.ui.workbench.modeling.EPartService;\r
+import org.eclipse.swt.widgets.Display;\r
+\r
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;\r
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;\r
+import eu.etaxonomy.cdm.api.service.DeleteResult;\r
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;\r
+import eu.etaxonomy.cdm.api.service.UpdateResult;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
+import eu.etaxonomy.taxeditor.editor.EditorUtil;\r
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonEditor;\r
+import eu.etaxonomy.taxeditor.model.MessagingUtils;\r
+import eu.etaxonomy.taxeditor.navigation.l10n.Messages;\r
+import eu.etaxonomy.taxeditor.operation.CdmUpdateOperation;\r
+\r
+/**\r
+ * @author cmathew\r
+ * @date 17 Jun 2015\r
+ */\r
+public class ChangeAcceptedTaxonToSynonymOperation extends CdmUpdateOperation {\r
+\r
+    private Set<UUID> oldTaxonNodeUuids = new HashSet<>();\r
+    private final UUID newAcceptedTaxonNodeUuid;\r
+    private UUID secundumUuid;\r
+    private boolean setNameInSource ;\r
+    private SecReferenceHandlingEnum secHandling;\r
+\r
+    private final static String LABEL = Messages.RemotingChangeAcceptedTaxonToSynonymOperation_CHANGE_OP;\r
+\r
+    public ChangeAcceptedTaxonToSynonymOperation(Object source,\r
+            boolean async,\r
+            Set<UUID> oldTaxonNodeUuids,\r
+            UUID newAcceptedTaxonNodeUuid,\r
+            UUID newSecUuid,\r
+            SecReferenceHandlingEnum secHandling,\r
+            EPartService partService,\r
+            MPart activePart,\r
+            MApplication application,\r
+            boolean setNameInSource) {\r
+        super(LABEL, Action.Update, source, async, partService, activePart, application);\r
+        this.oldTaxonNodeUuids.addAll(oldTaxonNodeUuids);\r
+        this.newAcceptedTaxonNodeUuid = newAcceptedTaxonNodeUuid;\r
+        this.setNameInSource = setNameInSource;\r
+        this.secundumUuid = newSecUuid;\r
+        this.secHandling = secHandling;\r
+\r
+    }\r
+\r
+    public ChangeAcceptedTaxonToSynonymOperation(Object source,\r
+            boolean async,\r
+            UUID oldTaxonNodeUuid,\r
+            UUID newAcceptedTaxonNodeUuid,\r
+            UUID newSecUuid,\r
+            SecReferenceHandlingEnum secHandling,\r
+            EPartService partService,\r
+               MPart activePart,\r
+               MApplication application,\r
+               boolean setNameInSource) {\r
+        super(LABEL, Action.Update, source, async, partService, activePart, application);\r
+        this.oldTaxonNodeUuids.add(oldTaxonNodeUuid);\r
+        this.newAcceptedTaxonNodeUuid = newAcceptedTaxonNodeUuid;\r
+        this.setNameInSource = setNameInSource;\r
+        this.secundumUuid = newSecUuid;\r
+        this.secHandling = secHandling;\r
+    }\r
+\r
+    public ChangeAcceptedTaxonToSynonymOperation(Object source,\r
+            boolean async,\r
+            UUID oldTaxonNodeUuid,\r
+            UUID newAcceptedTaxonNodeUuid,\r
+            UUID newSecUuid,\r
+            SecReferenceHandlingEnum secHandling,\r
+            boolean setNameInSource) {\r
+        super(LABEL, Action.Update, source, async);\r
+        this.oldTaxonNodeUuids.add(oldTaxonNodeUuid);\r
+        this.newAcceptedTaxonNodeUuid = newAcceptedTaxonNodeUuid;\r
+        this.setNameInSource = setNameInSource;\r
+        this.secundumUuid = newSecUuid;\r
+        this.secHandling = secHandling;\r
+    }\r
+\r
+    @Override\r
+    protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {\r
+\r
+       if (this.oldTaxonNodeUuids.size() == 1){\r
+               updateResult = CdmApplicationState.getService(ITaxonNodeService.class).makeTaxonNodeASynonymOfAnotherTaxonNode(oldTaxonNodeUuids.iterator().next(),\r
+                    newAcceptedTaxonNodeUuid,\r
+                    null,\r
+                    secundumUuid,\r
+                    null,\r
+                    secHandling,\r
+                    setNameInSource);//TODO\r
+       }else{\r
+               updateResult = CdmApplicationState.getService(ITaxonNodeService.class).makeTaxonNodeSynonymsOfAnotherTaxonNode(oldTaxonNodeUuids,\r
+                    newAcceptedTaxonNodeUuid,\r
+                    null,\r
+                    secundumUuid,\r
+                    null,\r
+                    secHandling,\r
+                    setNameInSource);//TODO\r
+       }\r
+       boolean oldTaxaPublished = true;\r
+       for (CdmBase delObject:((DeleteResult)updateResult).getDeletedObjects()){\r
+           if (delObject instanceof TaxonBase){\r
+               oldTaxaPublished &= ((TaxonBase)delObject).isPublish();\r
+           }\r
+       }\r
+       Taxon newTaxon = null;\r
+       for (CdmBase updatedObject: updateResult.getUpdatedObjects()){\r
+           if (updatedObject instanceof Taxon){\r
+               for (TaxonNode node: ((Taxon)updatedObject).getTaxonNodes()){\r
+                   if (node.getUuid().equals(newAcceptedTaxonNodeUuid)){\r
+                       newTaxon = (Taxon)updatedObject;\r
+                       break;\r
+                   }\r
+               }\r
+           }\r
+       }\r
+       if (newTaxon != null && oldTaxaPublished != newTaxon.isPublish()){\r
+            MessagingUtils.warningDialog("Publish flag", null, Messages.RemotingChangeAcceptedTaxonToSynonym_warning_publish);\r
+        }\r
+       updateTaxonEditor();\r
+       return updateResult;\r
+    }\r
+\r
+    private void updateTaxonEditor(){\r
+       if (partService != null){\r
+           Display.getDefault().asyncExec(new Runnable() {\r
+\r
+            @Override\r
+            public void run() {\r
+                       for (MPart part : partService.getParts()){\r
+                                       Object object = part.getObject();\r
+                                       boolean setFocus = false;\r
+                                       if (part == activePart){\r
+                                           setFocus = true;\r
+                                       }\r
+                                       if (part.getContributionURI().endsWith("TaxonNameEditorE4")){\r
+\r
+                                       }\r
+                                       if (object instanceof TaxonEditor ){\r
+                                               Set<TaxonNode> nodes = ((TaxonEditor)object).getTaxon().getTaxonNodes();\r
+                                               for (TaxonNode node: nodes){\r
+                                                       if (node.getUuid().equals(newAcceptedTaxonNodeUuid)){\r
+                                                               EditorUtil.updateEditor(node, (TaxonEditor)object);\r
+                                                       }\r
+\r
+                                               }\r
+                                       }\r
+                               }\r
+                   }\r
+               });\r
+       }\r
+    }\r
+}\r
index d5227c00cf2445af371c357b68977be02e833d7f..ed91db4e3369011bd5dc0380df9db76e4645c821 100644 (file)
@@ -20,7 +20,6 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
@@ -55,15 +54,13 @@ public class DeleteOperation extends AbstractPersistentPostOperation{
      * @param label a {@link java.lang.String} object.
      * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
      * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
-     * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
      * @param treeNodes a {@link java.util.Set} object.
      */
     public DeleteOperation(String label, IUndoContext undoContext,
             TaxonNodeDto taxonNode, TaxonDeletionConfigurator config,
             IPostOperationEnabled postOperationEnabled,
-            IConversationEnabled conversationEnabled,
             ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
-        super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
+        super(label, undoContext, postOperationEnabled, cdmEntitySessionEnabled);
         this.taxonNode = taxonNode;
         this.config = config;
         this.cdmEntitySessionEnabled = cdmEntitySessionEnabled;
@@ -75,15 +72,13 @@ public class DeleteOperation extends AbstractPersistentPostOperation{
      * @param label a {@link java.lang.String} object.
      * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
      * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
-     * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
      * @param treeNodes a {@link java.util.Set} object.
      */
     public DeleteOperation(String label, IUndoContext undoContext,
             Set<TaxonNodeDto> treeNodes, TaxonDeletionConfigurator config,
             IPostOperationEnabled postOperationEnabled,
-            IConversationEnabled conversationEnabled,
             ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
-        super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
+        super(label, undoContext, postOperationEnabled, cdmEntitySessionEnabled);
         this.treeNodes = treeNodes;
         this.config = config;
         this.cdmEntitySessionEnabled = cdmEntitySessionEnabled;
@@ -24,14 +24,14 @@ import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
+import eu.etaxonomy.taxeditor.operation.CdmUpdateOperation;
 
 /**
  * @author cmathew
  * @date 22 Jun 2015
  *
  */
-public class RemotingDeleteTaxonNodeOperation extends RemotingCdmUpdateOperation {
+public class DeleteTaxonNodeOperation extends CdmUpdateOperation {
 
     private final static String LABEL = Messages.RemotingDeleteTaxonNodeOperation_DELETE_OP;
 
@@ -45,7 +45,7 @@ public class RemotingDeleteTaxonNodeOperation extends RemotingCdmUpdateOperation
      * @param source
      * @param async
      */
-    public RemotingDeleteTaxonNodeOperation(Object source,
+    public DeleteTaxonNodeOperation(Object source,
             boolean async,
             Set<TaxonNodeDto> treeNodes,
             Set<TaxonNodeDto> classifications,
@@ -57,7 +57,7 @@ public class RemotingDeleteTaxonNodeOperation extends RemotingCdmUpdateOperation
     }
 
     /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation#doUpdateExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+     * @see eu.etaxonomy.taxeditor.operation.CdmUpdateOperation#doUpdateExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
      */
     @Override
     protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
@@ -18,14 +18,14 @@ import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
 import eu.etaxonomy.cdm.api.service.IDescriptionService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
+import eu.etaxonomy.taxeditor.operation.CdmUpdateOperation;
 
 /**
  * @author cmathew
  * @date 19 Jun 2015
  *
  */
-public class RemotingMoveFactualDataOperation extends RemotingCdmUpdateOperation {
+public class MoveFactualDataOperation extends CdmUpdateOperation {
 
     private final static String LABEL = Messages.RemotingMoveFactualDataOperation_MOVE_OP;
 
@@ -39,7 +39,7 @@ public class RemotingMoveFactualDataOperation extends RemotingCdmUpdateOperation
      * @param source
      * @param async
      */
-    public RemotingMoveFactualDataOperation(Object source,
+    public MoveFactualDataOperation(Object source,
             boolean async,
             UUID sourceTaxonUuid,
             UUID targetParentTaxonUuid, boolean setNameInSource) {
@@ -50,7 +50,7 @@ public class RemotingMoveFactualDataOperation extends RemotingCdmUpdateOperation
     }
 
     /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation#doUpdateExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+     * @see eu.etaxonomy.taxeditor.operation.CdmUpdateOperation#doUpdateExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
      */
     @Override
     protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
-/**
-* 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.navigation.navigator.operation;
-
-import java.util.Set;
-import java.util.UUID;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.widgets.Display;
-
-import eu.etaxonomy.cdm.api.application.CdmApplicationState;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
-import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
-import eu.etaxonomy.cdm.api.service.UpdateResult;
-import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
-import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.event.EventUtility;
-import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
-import eu.etaxonomy.taxeditor.navigation.navigator.e4.TaxonNavigatorE4;
-import eu.etaxonomy.taxeditor.navigation.navigator.e4.TreeNodeDropAdapterE4.MovingType;
-import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author cmathew
- * @date 19 Jun 2015
- *
- */
-public class RemotingMoveTaxonOperation extends RemotingCdmUpdateOperation implements IPostMoniteredOperationEnabled {
-
-    private final static String LABEL = Messages.RemotingMoveTaxonOperation_MOVE_OP;
-
-    private Set<UUID> taxonNodesToMoveUuid;
-    private final UUID newParentTreeNodeUuid;
-    private final MovingType moveToParentNode;
-    private TaxonNavigatorE4 taxonNavigator;
-
-    public RemotingMoveTaxonOperation(Object source,
-            boolean async,
-            Set<UUID> taxonNodeToMoveUuid,
-            UUID newParentTreeNodeUuid,
-            MovingType moveToParentNode) {
-        super(LABEL, Action.Update, source,async);
-        taxonNodesToMoveUuid = taxonNodeToMoveUuid;
-        this.newParentTreeNodeUuid = newParentTreeNodeUuid;
-        this.moveToParentNode = moveToParentNode;
-
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation#doUpdateExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-     */
-    @Override
-    protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
-        runMoniteredOperation();
-        return updateResult;
-    }
-
-    public void runMoniteredOperation() {
-        ITaxonNodeService nodeService;
-        final UUID uuid;
-        int movingTypeInt = -1;
-        switch (this.moveToParentNode) {
-        case CHILD:
-            movingTypeInt = 0;
-            break;
-        case BEHIND:
-            movingTypeInt = 2;
-            break;
-
-         default:
-                updateResult = new UpdateResult();
-                updateResult.setAbort();
-                updateResult.addException(new Exception("The moving type is invalid.")); //$NON-NLS-1$
-
-         }
-        if (movingTypeInt >-1){
-            uuid = CdmApplicationState.getLongRunningTasksService().monitLongRunningTask(taxonNodesToMoveUuid,
-                newParentTreeNodeUuid, movingTypeInt);
-
-                Display.getDefault().asyncExec(new Runnable() {
-                    @Override
-                    public void run() {
-                        AbstractUtility.executeMoniteredOperation("Move Taxon to new parent: ",
-                                uuid,
-                                500,
-                                false,
-                                RemotingMoveTaxonOperation.this,
-                                null,
-                                false);
-                    }
-                });
-        }
-
-
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void postOperation(IRemotingProgressMonitor monitor) {
-        monitor.done();
-        TaxonNodeDto parentDto = CdmStore.getService(ITaxonNodeService.class).dto(newParentTreeNodeUuid);
-        EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, parentDto);
-
-    }
-
-}
+/**\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.navigation.navigator.operation;\r
+\r
+import java.util.Set;\r
+import java.util.UUID;\r
+\r
+import org.eclipse.core.runtime.IAdaptable;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.swt.widgets.Display;\r
+\r
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;\r
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;\r
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;\r
+import eu.etaxonomy.cdm.api.service.UpdateResult;\r
+import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;\r
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;\r
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;\r
+import eu.etaxonomy.taxeditor.event.EventUtility;\r
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;\r
+import eu.etaxonomy.taxeditor.model.AbstractUtility;\r
+import eu.etaxonomy.taxeditor.navigation.l10n.Messages;\r
+import eu.etaxonomy.taxeditor.navigation.navigator.e4.TreeNodeDropAdapterE4.MovingType;\r
+import eu.etaxonomy.taxeditor.operation.CdmUpdateOperation;\r
+import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;\r
+import eu.etaxonomy.taxeditor.store.CdmStore;\r
+\r
+/**\r
+ * @author cmathew\r
+ * @date 19 Jun 2015\r
+ */\r
+public class MoveTaxonOperation extends CdmUpdateOperation implements IPostMoniteredOperationEnabled {\r
+\r
+    private final static String LABEL = Messages.RemotingMoveTaxonOperation_MOVE_OP;\r
+\r
+    private Set<UUID> taxonNodesToMoveUuid;\r
+    private final UUID newParentTreeNodeUuid;\r
+    private final MovingType moveToParentNode;\r
+    private SecReferenceHandlingEnum secHandling;\r
+    private UUID secUuid;\r
+\r
+    public MoveTaxonOperation(Object source,\r
+            boolean async,\r
+            Set<UUID> taxonNodeToMoveUuid,\r
+            UUID newParentTreeNodeUuid,\r
+            MovingType moveToParentNode,\r
+            SecReferenceHandlingEnum secHandling,\r
+            UUID secUuid) {\r
+        super(LABEL, Action.Update, source,async);\r
+        taxonNodesToMoveUuid = taxonNodeToMoveUuid;\r
+        this.newParentTreeNodeUuid = newParentTreeNodeUuid;\r
+        this.moveToParentNode = moveToParentNode;\r
+        this.secHandling = secHandling;\r
+        this.secUuid = secUuid;\r
+    }\r
+\r
+    @Override\r
+    protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {\r
+\r
+        final UUID uuid;\r
+        int movingTypeInt = -1;\r
+        switch (this.moveToParentNode) {\r
+        case CHILD:\r
+            movingTypeInt = 0;\r
+            break;\r
+        case BEHIND:\r
+            movingTypeInt = 2;\r
+            break;\r
+        default:\r
+            updateResult = new UpdateResult();\r
+            updateResult.setAbort();\r
+            updateResult.addException(new Exception("The moving type is invalid.")); //$NON-NLS-1$\r
+        }\r
+\r
+        if (movingTypeInt >-1){\r
+            uuid = CdmApplicationState.getLongRunningTasksService().monitLongRunningTask(taxonNodesToMoveUuid,\r
+                newParentTreeNodeUuid, movingTypeInt, secHandling, secUuid);\r
+\r
+                Display.getDefault().asyncExec(()->{\r
+                        AbstractUtility.executeMoniteredOperation("Move Taxon to new parent: ",\r
+                                uuid,\r
+                                500,\r
+                                false,\r
+                                MoveTaxonOperation.this,\r
+                                null,\r
+                                false, true);\r
+                });\r
+        }\r
+        return updateResult;\r
+    }\r
+\r
+    @Override\r
+    public void postOperation(IRemotingProgressMonitor monitor) {\r
+        monitor.done();\r
+        TaxonNodeDto parentDto = CdmStore.getService(ITaxonNodeService.class).dto(newParentTreeNodeUuid);\r
+        EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, parentDto);\r
+    }\r
+}
\ No newline at end of file
index 66e88271c13dd4019e5e6b41df50acf4b760f162..bf89cf24ab150fa4d4f364b495a96a685ecec3ba 100755 (executable)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2017 EDIT
 * European Distributed Institute of Taxonomy
@@ -11,7 +10,7 @@ package eu.etaxonomy.taxeditor.navigation.navigator.operation;
 
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.e4.ui.model.application.MApplication;
@@ -23,28 +22,23 @@ import org.eclipse.swt.widgets.Display;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.config.PublishForSubtreeConfigurator;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
 
 /**
  * @author k.luther
  * @date 11.10.2017
- *
  */
-public class SetPublishForSubtreeOperation extends UpdateSubtreeOperation implements IPostMoniteredOperationEnabled{
+public class SetPublishForSubtreeOperation
+            extends UpdateSubtreeOperation
+            implements IPostMoniteredOperationEnabled{
 
-    private final static String LABEL = Messages.SetPublishForSubtreeOperation_CHANGE_PUBLISH_OP;
-    private static final Logger logger = Logger
-            .getLogger(SetPublishForSubtreeOperation.class);
+    @SuppressWarnings("unused")
+    private static final Logger logger = LogManager.getLogger(SetPublishForSubtreeOperation.class);
 
+    private final static String LABEL = Messages.SetPublishForSubtreeOperation_CHANGE_PUBLISH_OP;
 
-    /**
-     * @param label
-     * @param action
-     * @param source
-     * @param async
-     */
     public SetPublishForSubtreeOperation(Object source,
             boolean async,
             UUID taxonNodeUuid,
@@ -54,77 +48,26 @@ public class SetPublishForSubtreeOperation extends UpdateSubtreeOperation implem
             EModelService modelService,
             PublishForSubtreeConfigurator config) {
         super(source, async, taxonNodeUuid, partService, activePart, application, modelService, config, LABEL);
-
-    }
-  @Override
-    protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
-      runMoniteredOperation();
-//      updateNameEditors();
-
-//        Job job = createJob(monitor);
-//        // configure the job
-//        job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
-//        job.setUser(true);
-//        // schedule job
-//        job.schedule();
-
-        return updateResult;
-
-
     }
 
-
-//    private Job createJob(IProgressMonitor monitor){
-//        Assert.isNotNull(config, "Configuration may not be null");
-//
-//        final Display display = Display.getDefault();
-//        taxonNodeService = CdmStore.getService(ITaxonNodeService.class);
-//        Job job = new Job(Messages.SetPublishFlagForSubtreeOperation_SET_SEC_TASK) {
-//
-//
-//            @Override
-//            protected IStatus run(IProgressMonitor monitor) {
-//                if (config instanceof PublishForSubtreeConfigurator){
-//                     updateResult =  taxonNodeService.setPublishForSubtree(config.getSubtreeUuid(), ((PublishForSubtreeConfigurator)config).isPublish(), config.isIncludeAcceptedTaxa(), config.isIncludeSynonyms(), config.isIncludeSharedTaxa(), null);
-//                }else {
-//                     return Status.CANCEL_STATUS;
-//                }
-//                updateNameEditors();
-//                return Status.OK_STATUS;
-//
-//            }
-//        };
-//        return job;
-//    }
-
-    public void runMoniteredOperation() {
+    @Override
+    protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
 
         final UUID uuid = longRunningTaskService.monitLongRunningTask(config);
-        Display.getDefault().asyncExec(new Runnable() {
-            @Override
-            public void run() {
-                EditorUtil.executeMoniteredOperation("Set Publish Flag for Subtree: ",
+        Display.getDefault().asyncExec(()->{
+                AbstractUtility.executeMoniteredOperation("Set Publish Flag for Subtree",
                         uuid,
                         1000,
-                        false,
+                        true,
                         SetPublishForSubtreeOperation.this,
                         null,
-                        true);
-            //updateNameEditors();
-            }
-
+                        true, false);
         });
-
-
+        return this.updateResult;
     }
-    /**
-     * {@inheritDoc}
-     */
+
     @Override
     public void postOperation(IRemotingProgressMonitor monitor) {
         // TODO Auto-generated method stub
-
     }
-
-
-}
+}
\ No newline at end of file
index 4055c2251b6b6a922035c7121efe06a261ab99d6..4df80451ef66b69a6292fbda061a7a975847beb6 100755 (executable)
@@ -10,120 +10,58 @@ package eu.etaxonomy.taxeditor.navigation.navigator.operation;
 
 import java.util.UUID;
 
-import javax.inject.Inject;
-
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.e4.ui.di.UISynchronize;
 import org.eclipse.e4.ui.model.application.MApplication;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.workbench.modeling.EModelService;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.swt.widgets.Display;
 
-import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.config.SecundumForSubtreeConfigurator;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
 
 /**
  * @author k.luther
  * @date 10.02.2017
- *
  */
-public class SetSecundumForSubtreeOperation extends UpdateSubtreeOperation implements IPostMoniteredOperationEnabled{
+public class SetSecundumForSubtreeOperation
+        extends UpdateSubtreeOperation
+        implements IPostMoniteredOperationEnabled{
 
        private final static String LABEL = Messages.SetSecundumForSubtreeOperation_CHANGE_SEC_OP;
     @SuppressWarnings("unused")
-       private static final Logger logger = Logger.getLogger(SetSecundumForSubtreeOperation.class);
-
-    @Inject
-    UISynchronize sync;
-
+       private static final Logger logger = LogManager.getLogger(SetSecundumForSubtreeOperation.class);
 
     public SetSecundumForSubtreeOperation(Object source, boolean async, UUID taxonNodeUuid, EPartService partService,
                        MPart activePart, MApplication application, EModelService modelService, SecundumForSubtreeConfigurator config) {
                super(source, async, taxonNodeUuid, partService, activePart, application, modelService, config, LABEL);
-
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
         EditorUtil.checkForChanges(null, partService);
-
-//        runMoniteredOperation();
-        runMoniteredOperation();
-//        updateNameEditors();
-//        Job job = createJob(monitor);
-//        // configure the job
-//        job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
-//        job.setUser(true);
-//        // schedule job
-//        job.schedule();
-
-        return updateResult;
-
-
-    }
-
-
-//    private Job createJob(IProgressMonitor monitor){
-//        Assert.isNotNull(config, "Configuration may not be null");
-//
-//        final Display display = Display.getDefault();
-//
-//        Job job = new Job(Messages.SetSecundumForSubtreeOperation_SET_SEC_TASK) {
-//            @Override
-//            protected IStatus run(IProgressMonitor monitor) {
-//             if (config instanceof SecundumForSubtreeConfigurator){
-//                                     updateResult = taxonNodeService.setSecundumForSubtree((SecundumForSubtreeConfigurator)config);
-//                             }else{
-//                                     return Status.CANCEL_STATUS;
-//                             }
-//
-//                             return Status.OK_STATUS;
-//
-//            }
-//        };
-//        return job;
-//    }
-
-
-    public void runMoniteredOperation() {
-        ITaxonNodeService nodeService;
         final UUID uuid = longRunningTaskService.monitLongRunningTask(config);
-        Display.getDefault().asyncExec(new Runnable() {
-            @Override
-            public void run() {
-                EditorUtil.executeMoniteredOperation("Set Secundum Reference for Subtree: ",
+        Display.getDefault().asyncExec(()->{
+                AbstractUtility.executeMoniteredOperation("Set Secundum Reference for Subtree",
                         uuid,
                         1000,
-                        false,
+                        true,
                         SetSecundumForSubtreeOperation.this,
                         null,
-                        true);
-
-            }
+                        true, false);
         });
-
-
+        return updateResult;
     }
 
-
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void postOperation(IRemotingProgressMonitor monitor) {
         // TODO Auto-generated method stub
-
     }
- }
+ }
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/SetUnplacedExcludedDoubtfulOperation.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/SetUnplacedExcludedDoubtfulOperation.java
deleted file mode 100755 (executable)
index a7dfde2..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/**
-* Copyright (C) 2018 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.navigation.navigator.operation;
-
-import java.util.List;
-import java.util.UUID;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-import eu.etaxonomy.cdm.api.application.CdmApplicationState;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
-import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
-import eu.etaxonomy.cdm.api.service.UpdateResult;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.cdm.model.taxon.TaxonNodeStatus;
-import eu.etaxonomy.cdm.persistence.dto.MergeResult;
-import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
-
-/**
- * @author k.luther
- * @since 11.10.2018
- *
- */
-public class SetUnplacedExcludedDoubtfulOperation extends RemotingCdmUpdateOperation {
-    private final static String LABEL = Messages.TaxonNavigatorLabels_SET_UNPLACED;
-    private List<UUID> sourceTaxonNodeUuids;
-    private Boolean unplaced = null;
-    private Boolean excluded = null;
-    private Boolean doubtful = null;
-    /**
-     * @param source
-     * @param async
-     */
-    public SetUnplacedExcludedDoubtfulOperation(Object source,
-            boolean async,
-            List<UUID> sourceTaxonNodeUuids,
-            Boolean unplaced, Boolean excluded, Boolean doubtful) {
-        super(LABEL, Action.Update, source, async);
-        this.sourceTaxonNodeUuids = sourceTaxonNodeUuids;
-        if (unplaced != null){
-            this.unplaced = unplaced;
-        }
-        if (excluded != null){
-            this.excluded = excluded;
-        }
-        if (doubtful != null){
-            this.doubtful = doubtful;
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
-
-        List<TaxonNode> nodes = CdmApplicationState.getService(ITaxonNodeService.class).load(sourceTaxonNodeUuids, null);
-
-        for (TaxonNode node: nodes){
-            if (unplaced != null){
-                node.setStatus(TaxonNodeStatus.UNPLACED);
-            }
-            if (excluded != null){
-                node.setStatus(TaxonNodeStatus.EXCLUDED);
-            }
-            if (doubtful != null){
-                node.setStatus(TaxonNodeStatus.DOUBTFUL);
-            }
-        }
-        List<MergeResult<TaxonNode>> results = CdmApplicationState.getService(ITaxonNodeService.class).merge(nodes, true);
-        UpdateResult updateResult = new UpdateResult();
-        for (MergeResult<TaxonNode>result: results){
-            updateResult.addUpdatedObject(result.getMergedEntity());
-        }
-        return updateResult;
-    }
-
-}
index d88dec850ca020756d9dbdf75fef4b57628b787a..8a9afcfe9f8f03f046beff084de9297be0e3b75f 100644 (file)
@@ -1,3 +1,11 @@
+/**
+* Copyright (C) 2018 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.navigation.navigator.operation;
 
 import java.util.UUID;
@@ -14,22 +22,22 @@ import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.config.ForSubtreeConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.longrunningService.ILongRunningTasksService;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
+import eu.etaxonomy.taxeditor.operation.CdmUpdateOperation;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
-public abstract class UpdateSubtreeOperation extends RemotingCdmUpdateOperation {
+public abstract class UpdateSubtreeOperation extends CdmUpdateOperation {
 
-       ForSubtreeConfiguratorBase config;
+       protected ForSubtreeConfiguratorBase config;
 
-       UUID parentUuid;
+       private UUID parentUuid;
 
-        TaxonNode subtreeNode;
-        ITaxonNodeService taxonNodeService;
-        ILongRunningTasksService longRunningTaskService;
+       private TaxonNode subtreeNode;
+       private ITaxonNodeService taxonNodeService;
+       protected ILongRunningTasksService longRunningTaskService;
 
-        protected EModelService modelService = null;
+       protected EModelService modelService = null;
 
-        public UpdateSubtreeOperation(Object source,
+       public UpdateSubtreeOperation(Object source,
                    boolean async,
                    UUID taxonNodeUuid,
                    EPartService partService,
@@ -46,5 +54,4 @@ public abstract class UpdateSubtreeOperation extends RemotingCdmUpdateOperation
                longRunningTaskService = CdmApplicationState.getLongRunningTasksService();
                subtreeNode = CdmStore.getService(ITaxonNodeService.class).load(config.getSubtreeUuid());
            }
-
-}
+}
\ No newline at end of file
index 8db28b36e3ffac8090189d8d4a43f5f0c2cf9e15..b5e20608f546c1c90e4292036f4ad526823be0e9 100644 (file)
@@ -14,8 +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.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.config.SubtreeCloneConfigurator;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Classification;
@@ -25,15 +25,13 @@ import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- *
  * @author pplitzner
- *
  */
 public class CloneClassificationOperation extends AbstractPersistentPostOperation {
 
     private final Classification classification;
 
-    private final IClassificationService service;
+    private final ITaxonNodeService service;
 
     private String classificationName;
 
@@ -43,22 +41,25 @@ public class CloneClassificationOperation extends AbstractPersistentPostOperatio
 
     public CloneClassificationOperation(String label, IUndoContext undoContext, Classification classification,
             String classificationName, Reference sec, TaxonRelationshipType relationType,
-            IPostOperationEnabled postOperationEnabled,
-            IConversationEnabled conversationEnabled) {
-        super(label, undoContext, postOperationEnabled, conversationEnabled);
+            IPostOperationEnabled postOperationEnabled) {
+        super(label, undoContext, postOperationEnabled);
 
         this.classification = classification;
         this.classificationName = classificationName;
         this.sec = sec;
         this.relationType = relationType;
-        this.service = CdmStore.getService(IClassificationService.class);
-
+        this.service = CdmStore.getService(ITaxonNodeService.class);
     }
 
     @Override
     public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
-
-        UpdateResult result = service.cloneClassification(classification.getUuid(), classificationName, sec, relationType);
+       
+       SubtreeCloneConfigurator cloneConfig = SubtreeCloneConfigurator.NewBaseInstance(
+                       classification.getRootNode().getUuid(), classificationName);
+        cloneConfig.setTaxonSecundum(sec);
+        cloneConfig.setRelationTypeToOldTaxon(relationType);
+        
+        UpdateResult result = service.cloneSubtree(cloneConfig);
         return postExecute(result.getCdmEntity());
     }
 
index 107b311faa6ae5545454baa70d75dff1429b1658..fa39d05fbaba6e937de7e9dbaa3167fa76067b89 100644 (file)
@@ -15,7 +15,6 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
@@ -44,13 +43,11 @@ public class CreateClassification extends AbstractPersistentPostOperation {
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param classification a {@link eu.etaxonomy.cdm.model.taxon.TaxonomicTree} object.
         * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
-        * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        public CreateClassification(String label, IUndoContext undoContext, Classification classification,
                        IPostOperationEnabled postOperationEnabled,
-                       IConversationEnabled conversationEnabled,
                        ICdmEntitySessionEnabled cdmEntitiySessionEnabled) {
-               super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitiySessionEnabled);
+               super(label, undoContext, postOperationEnabled, cdmEntitiySessionEnabled);
 
                this.classification = classification;
 
index 5d736690339ebaf98b82f16947f2bfc1498eea23..8d24a50aa5fada3b740bfeece7ef9923afaded6d 100644 (file)
@@ -16,7 +16,6 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.model.common.CdmBase;
@@ -43,9 +42,8 @@ public class CreateNewTaxonHierarchyOperation extends AbstractPersistentPostOper
      * @param undoContext
      */
     public CreateNewTaxonHierarchyOperation(String label, IUndoContext undoContext, Classification classification,
-            IPostOperationEnabled postOperationEnabled,
-            IConversationEnabled conversationEnabled) {
-        super(label, undoContext, postOperationEnabled, conversationEnabled);
+            IPostOperationEnabled postOperationEnabled) {
+        super(label, undoContext, postOperationEnabled);
 
         this.classification = classification;
         this.service = CdmStore.getService(IClassificationService.class);
index c64bc4da55f4451e887a46574395f278dafa7443..a30d278fe35531b3fbb452d548151647197e3062 100644 (file)
@@ -15,7 +15,6 @@ import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
@@ -43,9 +42,8 @@ public class CreatePolytomousKey extends AbstractPersistentPostOperation {
                        IUndoContext undoContext,
                        PolytomousKey key,
                        IPostOperationEnabled postOperationEnabled,
-                       IConversationEnabled conversationEnabled,
                        ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
-               super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
+               super(label, undoContext, postOperationEnabled, cdmEntitySessionEnabled);
                this.key = key;
        }
 
index 8c496fd2101e0dfaa9a5f86dabe12ad7197bea35..cf73f045f1d762f0b807e126ef2dd0bf42e55533 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.operation;
 
 import org.eclipse.core.commands.ExecutionException;
@@ -16,7 +15,6 @@ import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
@@ -34,7 +32,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  *
  * @author n.hoffmann
  * @created 08.05.2009
- * @version 1.0
  */
 @Deprecated // we do not undo creation of elements
 public class CreateTaxonNode extends AbstractPersistentPostOperation {
@@ -51,15 +48,13 @@ public class CreateTaxonNode extends AbstractPersistentPostOperation {
         * @param name a {@link eu.etaxonomy.cdm.model.name.TaxonNameBase} object.
         * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
-        * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        public CreateTaxonNode(String label,
                IUndoContext undoContext,
                TaxonNodeDto parentNode, TaxonName name,
                IPostOperationEnabled postOperationEnabled,
-                       IConversationEnabled conversationEnabled,
-            ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
-               super(label, undoContext, parentNode, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
+                       ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+               super(label, undoContext, parentNode, postOperationEnabled, cdmEntitySessionEnabled);
 
                newTaxon = Taxon.NewInstance(name, null);
        }
@@ -72,25 +67,18 @@ public class CreateTaxonNode extends AbstractPersistentPostOperation {
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
         * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
-        * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        public CreateTaxonNode(String label,
                IUndoContext undoContext,
                TaxonNodeDto parentNode,
                Taxon taxon,
                IPostOperationEnabled postOperationEnabled,
-                       IConversationEnabled conversationEnabled,
-            ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
-               super(label, undoContext, parentNode, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
+                       ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+               super(label, undoContext, parentNode, postOperationEnabled, cdmEntitySessionEnabled);
 
                this.newTaxon = taxon;
        }
 
-
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -113,20 +101,12 @@ public class CreateTaxonNode extends AbstractPersistentPostOperation {
                }
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus redo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                return execute(monitor, info);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-        */
-       /** {@inheritDoc} */
        @Override
        public IStatus undo(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
@@ -134,4 +114,4 @@ public class CreateTaxonNode extends AbstractPersistentPostOperation {
                MessagingUtils.warn(this.getClass(), "Not yet implemented."); //$NON-NLS-1$
                return null;
        }
-}
+}
\ No newline at end of file
index 363ce8a297be6dddd7f955e297e4c975efe1bd26..9b8dfd7798bd9fc6c0881eb36828cee90548044d 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.search;
 
 import java.util.List;
@@ -61,7 +60,6 @@ import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
  * @author n.hoffmann
  * @author e.-m.lee
  * @created 15.04.2009
- * @version 1.0
  */
 public class SearchBar implements IContextListener{
 
@@ -233,7 +231,7 @@ public class SearchBar implements IContextListener{
         * @param searchResult
         */
        private void openSearchResultsView(IFindTaxaAndNamesConfigurator configurator) {
-               boolean openResultInSeparateWindows = PreferencesUtil.getBooleanValue((IPreferenceKeys.SEARCH_OPEN_RESULTS_IN_SEPARATE_WINDOWS));
+               boolean openResultInSeparateWindows = PreferencesUtil.getBooleanValue((IPreferenceKeys.SEARCH_OPEN_RESULTS_IN_SEPARATE_WINDOWS), true);
                String partId = AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_NAVIGATION_SEARCH_E4_SEARCHRESULTVIEWE4;
 
                MPart part = null;
@@ -281,7 +279,6 @@ public class SearchBar implements IContextListener{
         *
         * @author n.hoffmann
         * @created Feb 2, 2010
-        * @version 1.0
         */
        class DropdownSelectionListener extends SelectionAdapter {
 
@@ -343,6 +340,9 @@ public class SearchBar implements IContextListener{
             case UNPUBLISHED:
                 configurator.setIncludeUnpublished(configurator.isIncludeUnpublished() ? false : true);
                 break;
+            case WITH_AUTHOR:
+                configurator.setDoIncludeAuthors(configurator.isDoIncludeAuthors() ? false : true);
+                break;
             default:
                 break;
                        }
index 3d0994c8d82854202dee979f2ddcff261da243b6..05fbc4d877aabef1fa77eaa4da3cb152d16dd369 100644 (file)
@@ -22,7 +22,8 @@ public enum SearchOption {
     SYNONYM(Messages.SearchBar_7),
     NAME(Messages.SearchBar_8),
     COMMON_NAME(Messages.SearchBar_9),
-    UNPUBLISHED(Messages.SearchBar_10);
+    UNPUBLISHED(Messages.SearchBar_10),
+    WITH_AUTHOR(Messages.SearchBar_11);
 
     private final String label;
 
@@ -58,6 +59,9 @@ public enum SearchOption {
         case UNPUBLISHED:
             return PreferencesUtil.getPreferenceStore().contains(IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED)? PreferencesUtil.getPreferenceStore().getBoolean(
                     IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED): true;
+        case WITH_AUTHOR:
+            return PreferencesUtil.getPreferenceStore().getBoolean(
+                    IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS);
 
         }
 
index 9810460aa59187b25d9e598a3f784c83c9f7257c..b76e67ef5aacda017ee0ddc803cdc1d3cedeebdf 100644 (file)
@@ -43,8 +43,6 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.IMemento;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
@@ -65,7 +63,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since Sep 27, 2017
  *
  */
-public class SearchResultViewE4 implements IConversationEnabled{
+public class SearchResultViewE4 {
 
        private static Object[] EMPTY = new Object[0];
 
@@ -91,8 +89,6 @@ public class SearchResultViewE4 implements IConversationEnabled{
 
        private TableViewer resultViewer;
 
-       private ConversationHolder conversation;
-
        private Text searchString;
 
        private Text configurationLabel;
@@ -120,15 +116,7 @@ public class SearchResultViewE4 implements IConversationEnabled{
        /** {@inheritDoc} */
        @PostConstruct
        public void createPartControl(Composite parent, EMenuService menuService) {
-        if (CdmStore.isActive()){
-            if(conversation == null){
-                conversation = getConversation_internal();
-            }
-        }
-        else{
-            return;
-        }
-               contextListener = new ContextListener();
+               contextListener = new ContextListener();
                CdmStore.getContextManager().addContextListener(contextListener);
 
                GridLayout layout = new GridLayout();
@@ -220,6 +208,9 @@ public class SearchResultViewE4 implements IConversationEnabled{
                if(configurator.isDoTaxaByCommonNames()){
                        includedEntities.add(SearchOption.COMMON_NAME.getLabel());
                }
+               if(configurator.isDoIncludeAuthors()){
+            includedEntities.add(SearchOption.WITH_AUTHOR.getLabel());
+        }
                configurator.setMatchMode(MatchMode.LIKE);
 
                String includedEntitiesString = ""; //$NON-NLS-1$
@@ -258,55 +249,23 @@ public class SearchResultViewE4 implements IConversationEnabled{
        @Focus
        public void setFocus() {
                //logger.warn("Setting focus to search result viewer");
-               ConversationHolder conversation_internal = getConversation_internal();
-               if(conversation_internal!=null){
-                   conversation_internal.bind();
-               }
+               
                // pass focus to resultViewer
                if(resultViewer!=null && resultViewer.getControl()!=null && !resultViewer.getControl().isDisposed()){
                    resultViewer.getControl().setFocus();
                }
        }
 
-       /**
-        * <p>getConversationHolder</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       @Override
-    public ConversationHolder getConversationHolder() {
-               return this.conversation;
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void update(CdmDataChangeMap changeEvents) {
-               // TODO Auto-generated method stub
-
-       }
+       
 
        /** {@inheritDoc} */
        @PreDestroy
        public void dispose() {
-               if(conversation!=null){
-                   conversation.close();
-                   conversation = null;
-               }
                if(searchJob != null) {
             searchJob.cancel();
         }
        }
 
-       private ConversationHolder getConversation_internal(){
-           if(conversation==null && CdmStore.isActive()){
-               try {
-                   conversation = CdmStore.createConversation();
-            } catch (Exception e) {
-                //nothing
-            }
-           }
-           return conversation;
-       }
 
        /**
         *
diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/log4j.properties b/eu.etaxonomy.taxeditor.navigation/src/main/java/log4j.properties
deleted file mode 100644 (file)
index ac97265..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-### ************ APPENDER ***********************************###\r
-\r
-### direct log messages to stdout ###\r
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender\r
-log4j.appender.stdout.Target=System.out\r
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout\r
-log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n\r
-\r
-### direct messages to file hibernate.log ###\r
-log4j.appender.file=org.apache.log4j.FileAppender\r
-log4j.appender.file.File=taxeditor.log\r
-log4j.appender.file.layout=org.apache.log4j.PatternLayout\r
-log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n\r
-\r
-### ************* LOG LEVELS *********************************###\r
-\r
-### set log levels - for more verbose logging change 'info' to 'debug' ###\r
-### levels: error, warn, debug, info\r
-log4j.rootLogger=INFO, stdout\r
-\r
-### set directory-specific levels below\r
-log4j.logger.eu.etaxonomy.taxeditor = DEBUG \r
-\r
-\r
index 3b3bc732e88013b40cd26dac1a18efb58529dbd0..77deae0331ecef77a40f932c0952e598bd2ba3a3 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.navigator.operation;
 
 import java.util.HashSet;
@@ -18,12 +17,12 @@ import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.navigation.navigator.e4.TreeNodeDropAdapterE4.MovingType;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
+import eu.etaxonomy.taxeditor.operation.CdmUpdateOperation;
 import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBase;
 
 /**
@@ -39,15 +38,11 @@ public class MoveTaxonOperationTest extends AbstractTaxeditorOperationTestBase {
        private static TaxonNode newParentTaxonNode;
        private static TaxonNode taxonNode;
 
-       static RemotingCdmUpdateOperation navigatorOperation;
+       static CdmUpdateOperation navigatorOperation;
 
-       /**
-        * @throws java.lang.Exception
-        */
        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
 
-
                taxon = Taxon.NewInstance(null, null);
 
                oldParentTaxon = Taxon.NewInstance(null, null);
@@ -59,11 +54,10 @@ public class MoveTaxonOperationTest extends AbstractTaxeditorOperationTestBase {
 
                taxonNode = oldParentTaxonNode.addChildTaxon(taxon, null, null);
 
-               Set<UUID> taxonNodeUuidSet = new HashSet<UUID>();
+               Set<UUID> taxonNodeUuidSet = new HashSet<>();
                //TODO ??
-               IConversationEnabled conversationEnabled = null;
                taxonNodeUuidSet.add(taxonNode.getUuid());
-               navigatorOperation = new RemotingMoveTaxonOperation(null, true, taxonNodeUuidSet, newParentTaxonNode.getUuid(),  MovingType.CHILD);
+               navigatorOperation = new MoveTaxonOperation(null, true, taxonNodeUuidSet, newParentTaxonNode.getUuid(),  MovingType.CHILD, SecReferenceHandlingEnum.KeepOrWarn, null);
        }
 
        /**
@@ -93,10 +87,6 @@ public class MoveTaxonOperationTest extends AbstractTaxeditorOperationTestBase {
                Assert.assertEquals(taxon, oldParentTaxon.getTaxonNodes().iterator().next().getChildNodes().iterator().next());
        }
 
-       /**
-        * Test method for {@link eu.etaxonomy.taxeditor.navigation.operation.MoveTaxonOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
-        * @throws ExecutionException
-        */
        @Test
        public void testRedoIProgressMonitorIAdaptable() throws ExecutionException {
            navigatorOperation.redo(monitor, info);
@@ -104,6 +94,5 @@ public class MoveTaxonOperationTest extends AbstractTaxeditorOperationTestBase {
                Assert.assertEquals(newParentTaxon ,taxon.getTaxonNodes().iterator().next().getParent().getTaxon());
                Assert.assertEquals(taxon, newParentTaxon.getTaxonNodes().iterator().next().getChildNodes().iterator().next());
                Assert.assertEquals(0, oldParentTaxon.getTaxonNodes().iterator().next().getChildNodes().size());
-
        }
 }
diff --git a/eu.etaxonomy.taxeditor.navigation/src/test/java/log4j.properties b/eu.etaxonomy.taxeditor.navigation/src/test/java/log4j.properties
deleted file mode 100644 (file)
index ac97265..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-### ************ APPENDER ***********************************###\r
-\r
-### direct log messages to stdout ###\r
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender\r
-log4j.appender.stdout.Target=System.out\r
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout\r
-log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n\r
-\r
-### direct messages to file hibernate.log ###\r
-log4j.appender.file=org.apache.log4j.FileAppender\r
-log4j.appender.file.File=taxeditor.log\r
-log4j.appender.file.layout=org.apache.log4j.PatternLayout\r
-log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n\r
-\r
-### ************* LOG LEVELS *********************************###\r
-\r
-### set log levels - for more verbose logging change 'info' to 'debug' ###\r
-### levels: error, warn, debug, info\r
-log4j.rootLogger=INFO, stdout\r
-\r
-### set directory-specific levels below\r
-log4j.logger.eu.etaxonomy.taxeditor = DEBUG \r
-\r
-\r
diff --git a/eu.etaxonomy.taxeditor.navigation/src/test/resources/eu/etaxonomy/cdm/applicationContext-test.xml b/eu.etaxonomy.taxeditor.navigation/src/test/resources/eu/etaxonomy/cdm/applicationContext-test.xml
deleted file mode 100644 (file)
index 9397c44..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<beans xmlns="http://www.springframework.org/schema/beans"\r
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
-       xmlns:context="http://www.springframework.org/schema/context"\r
-       xmlns:tx="http://www.springframework.org/schema/tx"\r
-    xsi:schemaLocation="http://www.springframework.org/schema/beans 
-    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd\r
-    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
-\r
-    <import resource="classpath:/eu/etaxonomy/cdm/services.xml"/> \r
-\r
-       <context:component-scan base-package="eu/etaxonomy/cdm/api"/>\r
-    \r
-    <!-- enable the configuration of transactional behavior based on annotations -->\r
-    <tx:annotation-driven transaction-manager="transactionManager"/>      \r
-  \r
-       <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">\r
-           <property name="namingStrategy">\r
-               <bean class="org.hibernate.cfg.DefaultComponentSafeNamingStrategy" />\r
-           </property>\r
-           \r
-<!--       <property name="entityInterceptor">\r
-               <bean class="eu.etaxonomy.cdm.persistence.hibernate.CdmHibernateInterceptor" />\r
-       </property>\r
-  -->      \r
-           <property name="configLocation" value="classpath:eu/etaxonomy/cdm/hibernate.cfg.xml"/>\r
-           <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"/>\r
-           <property name="dataSource" ref="dataSource"/>\r
-           <property name="hibernateProperties" ref="hibernateProperties"/>\r
-       </bean>\r
-  \r
-
-    <bean id="dataSource" class="org.unitils.database.UnitilsDataSourceFactoryBean"/>\r
-    \r
-    <bean id="hibernateProperties" \r
-        class="org.springframework.beans.factory.config.PropertiesFactoryBean">\r
-        <property name="properties">\r
-            <props>\r
-                <prop key="hibernate.dialect">org.hibernate.dialect.HSQLCorrectedDialect</prop>\r
-                <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>\r
-                <!-- TODO trying to use a managed session context -->\r
-                <prop key="hibernate.current_session_context_class">managed</prop>\r
-                <prop key="hibernate.show_sql">false</prop>\r
-                <prop key="hibernate.format_sql">false</prop>\r
-                <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.FSDirectoryProvider</prop>\r
-                <prop key="hibernate.search.default.indexBase">./target/test-classes</prop>\r
-            </props>\r
-        </property>\r
-    </bean> \r
-    \r
-    <bean id="authenticationManager" class="org.springframework.security.providers.ProviderManager">\r
-        <property name="providers">\r
-            <list>\r
-                <bean class="org.springframework.security.providers.TestingAuthenticationProvider"/>\r
-            </list>\r
-        </property>\r
-    </bean>\r
-    \r
-    <bean id="passwordEncoder" class="org.springframework.security.providers.encoding.Md5PasswordEncoder"/>\r
-    \r
-    <bean id="saltSource" class="org.springframework.security.providers.dao.salt.ReflectionSaltSource">\r
-        <property name="userPropertyToUse" value="getUsername"/>\r
-    </bean>
-    
-</beans>
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.navigation/src/test/resources/eu/etaxonomy/cdm/defaultApplicationContext.xml b/eu.etaxonomy.taxeditor.navigation/src/test/resources/eu/etaxonomy/cdm/defaultApplicationContext.xml
deleted file mode 100644 (file)
index d699d09..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<beans xmlns="http://www.springframework.org/schema/beans"\r
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
-       xmlns:context="http://www.springframework.org/schema/context"\r
-       xmlns:tx="http://www.springframework.org/schema/tx"\r
-    xsi:schemaLocation=\r
-      "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd\r
-    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd\r
-    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">\r
-\r
-    <import resource="classpath:/eu/etaxonomy/cdm/services.xml"/> \r
-<!-- <import resource="classpath:/eu/etaxonomy/cdm/defaultSecurityContext.xml"/> -->\r
- <!-- <import resource="classpath:/eu/etaxonomy/cdm/spelling.xml"/> -->\r
-\r
-\r
-       <!-- includes service beans e.g. in eu/etaxonomy/cdm/api -->\r
-       <context:component-scan base-package="eu/etaxonomy/cdm/api/service">\r
-               <context:exclude-filter type="regex" expression="eu\.etaxonomy\.cdm\.api\.service\.UserService"/>\r
-    </context:component-scan>\r
-       <context:component-scan base-package="eu/etaxonomy/cdm/api/application"/>\r
-       \r
-       <!-- TODO move to io -->\r
-       <context:component-scan base-package="eu/etaxonomy/cdm/io"/>\r
-\r
-    \r
-    <!-- enable the configuration of transactional behavior based on annotations -->\r
-    <tx:annotation-driven transaction-manager="transactionManager"/>\r
-    \r
-<!-- <bean id="validationManager" class="eu.etaxonomy.cdm.api.validation.ValidationManager" scope="prototype"/> -->\r
-        \r
-  \r
-\r
-    \r
-</beans>
\ No newline at end of file
index 84a1038a045a26617b64cdade0194eabf60e9ba6..c1a193c2d8fd8c170317903c30d233d52e50262f 100644 (file)
@@ -2,13 +2,55 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Printpublisher Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.printpublisher;singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.42.0
+Export-Package: eu.etaxonomy.cdm.print,
+ eu.etaxonomy.cdm.print.out,
+ eu.etaxonomy.cdm.print.out.odf,
+ eu.etaxonomy.cdm.print.out.pdf,
+ eu.etaxonomy.cdm.print.out.taxpub,
+ eu.etaxonomy.cdm.print.out.xml,
+ eu.etaxonomy.cdm.remote.config,
+ eu.etaxonomy.cdm.remote.controller,
+ eu.etaxonomy.cdm.remote.controller.dto,
+ eu.etaxonomy.cdm.remote.controller.ext,
+ eu.etaxonomy.cdm.remote.controller.interceptor,
+ eu.etaxonomy.cdm.remote.controller.oaipmh,
+ eu.etaxonomy.cdm.remote.controller.util,
+ eu.etaxonomy.cdm.remote.dto.assembler.converter,
+ eu.etaxonomy.cdm.remote.dto.common,
+ eu.etaxonomy.cdm.remote.dto.dc,
+ eu.etaxonomy.cdm.remote.dto.dwc,
+ eu.etaxonomy.cdm.remote.dto.namecatalogue,
+ eu.etaxonomy.cdm.remote.dto.oaipmh,
+ eu.etaxonomy.cdm.remote.dto.polytomouskey,
+ eu.etaxonomy.cdm.remote.dto.tdwg,
+ eu.etaxonomy.cdm.remote.dto.tdwg.voc,
+ eu.etaxonomy.cdm.remote.editor,
+ eu.etaxonomy.cdm.remote.exception,
+ eu.etaxonomy.cdm.remote.json,
+ eu.etaxonomy.cdm.remote.json.processor,
+ eu.etaxonomy.cdm.remote.json.processor.bean,
+ eu.etaxonomy.cdm.remote.json.processor.matcher,
+ eu.etaxonomy.cdm.remote.json.processor.value,
+ eu.etaxonomy.cdm.remote.json.util,
+ eu.etaxonomy.cdm.remote.oauth2,
+ eu.etaxonomy.cdm.remote.service,
+ eu.etaxonomy.cdm.remote.view,
+ eu.etaxonomy.cdm.remote.view.oaipmh,
+ eu.etaxonomy.cdm.remote.view.oaipmh.dc,
+ eu.etaxonomy.cdm.remote.view.oaipmh.dwc,
+ eu.etaxonomy.cdm.remote.view.oaipmh.rdf,
+ eu.etaxonomy.remote.dto.rdf
 Require-Bundle: org.eclipse.osgi,
  org.eclipse.ui,
  eu.etaxonomy.taxeditor.cdmlib,
  eu.etaxonomy.taxeditor.editor,
  eu.etaxonomy.taxeditor.store
-Import-Package: org.apache.log4j,
+Bundle-ClassPath: .,
+ lib/cdmlib-print-5.42.0.jar,
+ lib/cdmlib-remote-5.42.0.jar
+Import-Package: org.apache.logging.log4j,
+ org.apache.logging.log4j.core,
  org.eclipse.core.runtime,
  org.eclipse.core.runtime.jobs,
  org.osgi.framework
index f33f1fd6a6e13451eb5880b7dece595a73a02e84..90bb58e221d990104a454b769c4692f73cc5ebec 100644 (file)
@@ -2,5 +2,7 @@ source.. = src/main/java/
 bin.includes = META-INF/,\
                .,\
                plugin.xml,\
+               lib/cdmlib-print-5.42.0.jar,\
+               lib/cdmlib-remote-5.42.0.jar,\
                OSGI-INF/l10n/bundle.properties,\
                OSGI-INF/l10n/bundle_de.properties,\
diff --git a/eu.etaxonomy.taxeditor.printpublisher/lib/objenesis-3.1.jar b/eu.etaxonomy.taxeditor.printpublisher/lib/objenesis-3.1.jar
new file mode 100644 (file)
index 0000000..e6be642
Binary files /dev/null and b/eu.etaxonomy.taxeditor.printpublisher/lib/objenesis-3.1.jar differ
index 4cae57e641f75e54a06d8829fd0a40fcbf72c53a..2576a69868b65539a18a0b650e12377251b03857 100644 (file)
@@ -3,16 +3,80 @@
        <parent>
                <artifactId>taxeditor-parent</artifactId>
                <groupId>eu.etaxonomy</groupId>
-               <version>5.16.0</version>
+               <version>5.42.0</version>
        </parent>
 
        <modelVersion>4.0.0</modelVersion>
-       <groupId>eu.etaxonomy</groupId>
        <artifactId>eu.etaxonomy.taxeditor.printpublisher</artifactId>
        <packaging>eclipse-plugin</packaging>
        
        <name>Printpublisher Bundle</name>
        <description />
-       <url>http://cybertaxonomy.eu/printpublisher</url>
-
+       <url>http://cybertaxonomy.org/printpublisher</url>
+       <build>
+               <plugins>
+             <plugin>
+               <groupId>org.apache.maven.plugins</groupId>
+               <artifactId>maven-dependency-plugin</artifactId>
+               <version>3.2.0</version>
+               <executions>
+                 <execution>
+                   <id>copy-dependencies</id>
+                   <phase>validate</phase>
+                   <goals>
+                     <goal>copy-dependencies</goal>
+                   </goals>
+                   <configuration>
+                     <excludeArtifactIds>
+                       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
+                     </includeArtifactIds>
+                     <outputDirectory>${basedir}/lib</outputDirectory>
+                     <overWriteReleases>true</overWriteReleases>
+                     <overWriteSnapshots>true</overWriteSnapshots>
+                     <excludeTransitive>true</excludeTransitive>
+                   </configuration>
+                 </execution>
+                 <execution>
+                <id>copy-dependency-jars</id>
+                   <phase>validate</phase>
+                   <goals>
+                     <goal>copy-dependencies</goal>
+                   </goals>
+                   <configuration>
+                     <includeArtifactIds>
+                       fop
+                     </includeArtifactIds>
+                     <outputDirectory>
+                       ${basedir}/lib
+                     </outputDirectory>
+                     <overWriteReleases>true</overWriteReleases>
+                     <overWriteSnapshots>true</overWriteSnapshots>
+                     <excludeTransitive>true</excludeTransitive>
+                   </configuration>
+                 </execution>
+               </executions>
+             </plugin>
+           </plugins>  
+       </build>
+       <dependencies>
+           <dependency>
+             <groupId>eu.etaxonomy</groupId>
+             <artifactId>cdmlib-remote</artifactId>
+             <version>${cdmlib.version}</version>
+           </dependency>
+           <dependency>
+             <groupId>eu.etaxonomy</groupId>
+             <artifactId>cdmlib-print</artifactId>
+             <version>${cdmlib.version}</version>
+       </dependency>
+       <dependency> <!-- required by cdmlib-print -->
+            <!-- maybe also dependencies are needed -->
+            <groupId>org.apache.xmlgraphics</groupId>
+               <artifactId>fop</artifactId>
+               <version>2.7</version>
+        </dependency>
+    </dependencies>
 </project>
index 048aed78dc5d6ff87eddfc5e8819dfe9330f584b..f686c8e2d5d9291e0fb5903d91b7c11500f744d9 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.printpublisher;
 
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -16,8 +15,7 @@ import eu.etaxonomy.taxeditor.model.AbstractUtility;
  *
  * @author n.hoffmann
  * @created Oct 14, 2010
- * @version 1.0
  */
 public class PrintUtil extends AbstractUtility {
 
-}
+}
\ No newline at end of file
index db543b76b95941afced365efb18e892c94ffe9be..761dcd11ba38537d1281bccc76d2e40dc381100e 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.printpublisher.handler;
 
 import java.util.UUID;
@@ -24,14 +23,11 @@ import eu.etaxonomy.cdm.print.IXMLEntityFactory;
 import eu.etaxonomy.cdm.print.PublishConfigurator;
 import eu.etaxonomy.cdm.print.out.pdf.PdfOutputModule;
 import eu.etaxonomy.cdm.print.out.xml.XMLOutputModule;
-import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4;
+import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInput;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.printpublisher.wizard.DirectPublishingWizard;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>GeneratePdfHandler class.</p>
- *
  * @author n.hoffmann
  * @created Jul 20, 2010
  */
@@ -39,7 +35,6 @@ public class GeneratePdfHandler extends AbstractHandler {
 
        private PublishConfigurator configurator;
 
-       /** {@inheritDoc} */
        @Override
     public Object execute(ExecutionEvent event) throws ExecutionException {
                // make the editors taxon the selected taxon to export
@@ -47,15 +42,16 @@ public class GeneratePdfHandler extends AbstractHandler {
 
                IEditorInput input = editor.getEditorInput();
 
-               if(!(input instanceof TaxonEditorInputE4)){
+               if(!(input instanceof TaxonEditorInput)){
                        MessagingUtils.warningDialog("PDF generation not supported for selected input", this, "Generating PDF output is not supported for the current active editor");
 
                        return null;
                }
 
-               configurator = PublishConfigurator.NewLocalInstance(CdmStore.getCurrentApplicationConfiguration());
+               //Note: was NewLocalInstance before
+               configurator = PublishConfigurator.NewRemoteInstance();
 
-               Element taxonNodeElement = getTaxonNodeElement((TaxonEditorInputE4) input);
+               Element taxonNodeElement = getTaxonNodeElement((TaxonEditorInput) input);
                configurator.addSelectedTaxonNodeElements(taxonNodeElement);
 
                configurator.setDoPublishEntireBranches(false);
@@ -71,7 +67,7 @@ public class GeneratePdfHandler extends AbstractHandler {
                return null;
        }
 
-       private Element getTaxonNodeElement(TaxonEditorInputE4 input){
+       private Element getTaxonNodeElement(TaxonEditorInput input){
 
                UUID taxonNodeUuid = input.getTaxonNode().getUuid();
 
index 67c38c512385eafcf896690eaca2edaf1ac9c6e4..4c56cc684f3dc7e36e0c6586316e4824521c1ee7 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.printpublisher.internal;
 
 import org.eclipse.ui.plugin.AbstractUIPlugin;
@@ -17,7 +16,6 @@ import org.osgi.framework.BundleContext;
  *
  * @author n.hoffmann
  * @created Jul 15, 2010
- * @version 1.0
  */
 public class PrintpublisherPlugin extends AbstractUIPlugin {
        
@@ -34,21 +32,11 @@ public class PrintpublisherPlugin extends AbstractUIPlugin {
        public PrintpublisherPlugin() {
        }
 
-       /*
-        * (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-        */
-       /** {@inheritDoc} */
        public void start(BundleContext context) throws Exception {
                super.start(context);
                plugin = this;
        }
 
-       /*
-        * (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-        */
-       /** {@inheritDoc} */
        public void stop(BundleContext context) throws Exception {
                plugin = null;
                super.stop(context);
@@ -62,4 +50,4 @@ public class PrintpublisherPlugin extends AbstractUIPlugin {
        public static PrintpublisherPlugin getDefault() {
                return plugin;
        }
-}
+}
\ No newline at end of file
index c9d3281c7f23af6d2432f8c8d57b9e6304388bfa..a598e92e7bd2397310366c18ca4994744c42ff94 100644 (file)
@@ -15,14 +15,12 @@ import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IExportWizard;
 import org.eclipse.ui.IWorkbench;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.print.PublishConfigurator;
 import eu.etaxonomy.cdm.print.Publisher;
 import eu.etaxonomy.cdm.print.out.IPublishOutputModule;
 import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.printpublisher.internal.PrintpublisherPlugin;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * <p>AbstractPublishWizard class.</p>
@@ -71,24 +69,25 @@ public abstract class AbstractPublishWizard extends Wizard implements IExportWiz
                        @Override
                        protected IStatus run(IProgressMonitor monitor) {
                                monitor.beginTask("Print Publisher", getConfigurator().calculateNumberOfNodes() + 1);
-                               ConversationHolder conversation = null;
+
                                try{
                                        getConfigurator().setProgressMonitor(CdmProgressMonitorAdapter.CreateMonitor(monitor));
 
                                        if(getConfigurator().isLocal()){
-                                               conversation = CdmStore.createConversation();
-                                               // we want to enforce that the session is closed and nothing is
-                                               // instantiated beneath the regular cdmlib-remote object boundaries
-                                               conversation.commit(false);
+                                           //TODO conversation not supported anymore as we use only remote
+//                                             conversation = CdmStore.createConversation();
+//                                             // we want to enforce that the session is closed and nothing is
+//                                             // instantiated beneath the regular cdmlib-remote object boundaries
+//                                             conversation.commit(false);
                                        }
 
                                        Publisher.publish(getConfigurator());
 
                                }finally{
                                        monitor.done();
-                                       if(conversation != null) {
-                        conversation.close();
-                    }
+//                                     if(conversation != null) {
+//                        conversation.close();
+//                    }
                                        Display.getDefault().asyncExec(new Runnable() {
                                                @Override
                                                public void run() {
index ab0cdc8866ee99c105dbc8d9a438c0b1c57ff7a8..716bd2c4e93ec9631c32880de2253134d865f5b7 100644 (file)
@@ -6,11 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.printpublisher.wizard;
 
 import java.net.URL;
-import java.nio.channels.IllegalSelectorException;
 
 import org.eclipse.jface.dialogs.IDialogSettings;
 import org.eclipse.jface.wizard.WizardPage;
@@ -24,42 +22,21 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  *
  * @author n.hoffmann
  * @created Apr 27, 2010
- * @version 1.0
  */
 public abstract class AbstractPublishWizardPage extends WizardPage {
 
-       /**
-        * <p>Constructor for AbstractPublishWizardPage.</p>
-        *
-        * @param pageName a {@link java.lang.String} object.
-        */
        protected AbstractPublishWizardPage(String pageName) {
                super(pageName);
        }
        
-       /**
-        * <p>getConfigurator</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.print.PublishConfigurator} object.
-        */
        public PublishConfigurator getConfigurator(){
                return ((AbstractPublishWizard) getWizard()).getConfigurator();
        }
-       
-       /**
-        * <p>setConfigurator</p>
-        *
-        * @param configurator a {@link eu.etaxonomy.cdm.print.PublishConfigurator} object.
-        */
+
        public void setConfigurator(PublishConfigurator configurator){
                ((AbstractPublishWizard) getWizard()).setConfigurator(configurator);
        }
-       
-       /**
-        * <p>getOutputModule</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.print.out.IPublishOutputModule} object.
-        */
+
        public IPublishOutputModule getOutputModule(){
                IPublishOutputModule outputModule = ((AbstractPublishWizard) getWizard()).getOutputModule();
                if(outputModule == null)
index 1b5aa0bb6ebdeceb4e2afbf8bf4451e7b625969d..7c520577835ff157d35c6e0b876696350f1a20f4 100644 (file)
@@ -1,17 +1,13 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.printpublisher.wizard;
 
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-
 import eu.etaxonomy.cdm.print.PublishConfigurator;
 import eu.etaxonomy.cdm.print.out.IPublishOutputModule;
 
@@ -20,51 +16,38 @@ import eu.etaxonomy.cdm.print.out.IPublishOutputModule;
  *
  * @author n.hoffmann
  * @created Aug 6, 2010
- * @version 1.0
  */
 public class DirectPublishingWizard extends AbstractPublishWizard {
-       
-       /**
-        * <p>Constructor for DirectPublishingWizard.</p>
-        *
-        * @param configurator a {@link eu.etaxonomy.cdm.print.PublishConfigurator} object.
-        */
+
        public DirectPublishingWizard(PublishConfigurator configurator) {
                setConfigurator(configurator);
                IPublishOutputModule module = configurator.getOutputModules().iterator().next();
                setOutputModule(module);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addPages() {
                pageOptions = new SelectOptionsWizardPage(PAGE_OPTIONS);
                addPage(pageOptions);
-               
+
                pageFeatureTree = new SelectFeatureTreeWizardPage(PAGE_FEATURETREE);
                addPage(pageFeatureTree);
-               
+
                pageStylesheet = new SelectStylesheetWizardPage(PAGE_STYLESHEET);
                addPage(pageStylesheet);
-               
+
                pageFolder = new SelectDirectoryWizardPage(PAGE_FOLDER);
                addPage(pageFolder);
-               
        }
-               
-       /** {@inheritDoc} */
+
        @Override
        public boolean performFinish() {
                return super.performFinish();
        }
-       
-       /**
-        * <p>canFinish</p>
-        *
-        * @return a boolean.
-        */
-       public boolean canFinish() {
+
+       @Override
+    public boolean canFinish() {
                return pageFeatureTree.isPageComplete()
                        && pageFolder.isPageComplete();
        }
-}
+}
\ No newline at end of file
index 868d72f34e4d00807d6d5748182238d902a00ab7..dde57025b1d9e3c1df33481692e9e6889308b201 100644 (file)
@@ -1,17 +1,20 @@
 /**
- * 
- */
+* 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.printpublisher.wizard;
 
 import eu.etaxonomy.cdm.print.out.odf.OdfOutputModule;
 
-
 /**
  * <p>PublishWizardODF class.</p>
  *
  * @author n.hoffmann
  * @created Apr 1, 2010
- * @version 1.0
  */
 public class PublishWizardODF extends AbstractPublishWizard  {
 
index 1835026709c0c786e43d7e6214d9936d2b554e3f..ade92f0be5cf1f76a5c991860e2c467dcb7ff443 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.printpublisher.wizard;
 
 import org.eclipse.ui.IExportWizard;
@@ -18,11 +17,10 @@ import eu.etaxonomy.cdm.print.out.pdf.PdfOutputModule;
  *
  * @author n.hoffmann
  * @created Aug 4, 2010
- * @version 1.0
  */
 public class PublishWizardPDF extends AbstractPublishWizard implements
                IExportWizard {
-       
+
        /**
         * <p>Constructor for PublishWizardPDF.</p>
         */
@@ -30,4 +28,4 @@ public class PublishWizardPDF extends AbstractPublishWizard implements
                setOutputModule(new PdfOutputModule());
                setWindowTitle("Publish PDF");
        }
-}
+}
\ No newline at end of file
index 9ce936f76311a17474750cb54fe71de7c81b3ebf..34d154fad4f70e5b903e40406a19a9f69394bb7f 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.printpublisher.wizard;
 
 import org.eclipse.ui.IExportWizard;
@@ -18,16 +17,12 @@ import eu.etaxonomy.cdm.print.out.taxpub.TaxPubOutputModule;
  *
  * @author n.hoffmann
  * @created Aug 4, 2010
- * @version 1.0
  */
 public class PublishWizardTaxPub extends AbstractPublishWizard implements
                IExportWizard {
-       
-       /**
-        * <p>Constructor for PublishWizardTaxPub.</p>
-        */
+
        public PublishWizardTaxPub(){
                setOutputModule(new TaxPubOutputModule());
                setWindowTitle("Publish TaxPub");
        }
-}
+}
\ No newline at end of file
index 7e9c4c011b9199a546358a29c2d84b37d5929984..bae7c2b1ed10b4084c608c123d2e59274e4d8ed6 100644 (file)
@@ -1,22 +1,25 @@
 /**
- * 
- */
+* 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.printpublisher.wizard;
 
 import org.eclipse.ui.IExportWizard;
 
 import eu.etaxonomy.cdm.print.out.xml.XMLOutputModule;
 
-
-
 /**
  * <p>PublishWizardXML class.</p>
  *
  * @author n.hoffmann
  * @created Apr 1, 2010
- * @version 1.0
  */
 public class PublishWizardXML extends AbstractPublishWizard implements IExportWizard{
+
        /**
         * <p>Constructor for PublishWizardXML.</p>
         */
@@ -24,4 +27,4 @@ public class PublishWizardXML extends AbstractPublishWizard implements IExportWi
                setOutputModule(new XMLOutputModule());
                setWindowTitle("Publish XML");
        }
-}
+}
\ No newline at end of file
index bd25732e2cadfc80436f3b2343fcded0ad6188e3..da2f701e985518b2d29d2ff93357fdc2ae7bb24f 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.printpublisher.wizard;
 
 import java.io.File;
@@ -27,7 +26,6 @@ import org.eclipse.swt.widgets.Text;
  *
  * @author n.hoffmann
  * @created Apr 7, 2010
- * @version 1.0
  */
 public class SelectDirectoryWizardPage extends AbstractPublishWizardPage implements IHasPersistableSettings {
        private static final String DIALOG_SETTING_OUTPUT_DIRECTORY = "dialogSettingOutputDirectory";
@@ -35,20 +33,11 @@ public class SelectDirectoryWizardPage extends AbstractPublishWizardPage impleme
        private DirectoryDialog folderDialog;
        private Text text_folder;
 
-       /**
-        * <p>Constructor for SelectFolderWizardPage.</p>
-        *
-        * @param pageName a {@link java.lang.String} object.
-        */
        public SelectDirectoryWizardPage(String pageName) {
                super(pageName);
                setTitle("Select a folder");
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-        */
-       /** {@inheritDoc} */
        public void createControl(Composite parent) {
 //             configurator = ((IPublishConfigurer) getWizard()).getConfigurator();
                
@@ -63,14 +52,12 @@ public class SelectDirectoryWizardPage extends AbstractPublishWizardPage impleme
                text_folder = new Text(composite, SWT.BORDER);
                text_folder.setEditable(false);
                text_folder.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
+               
                Button button = new Button(composite, SWT.PUSH);
                button.setText("Browse...");
 
                button.addSelectionListener(new SelectionAdapter(){
-                       /* (non-Javadoc)
-                       * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-                       */
+                       
                        @Override
                        public void widgetSelected(SelectionEvent e) {
                                super.widgetSelected(e);
@@ -80,12 +67,12 @@ public class SelectDirectoryWizardPage extends AbstractPublishWizardPage impleme
                                }
                        }
                });
-               
+
                loadSettings();
-               
+
                setControl(composite);
        }
-       
+
        @Override
        public void loadSettings() {
                String directory = getDialogSettingValue(DIALOG_SETTING_OUTPUT_DIRECTORY);
@@ -94,7 +81,7 @@ public class SelectDirectoryWizardPage extends AbstractPublishWizardPage impleme
                        setDirectory(directory);
                }
        }
-       
+
        private void setDirectory(String directory){
                text_folder.setText(directory);
                getConfigurator().setExportFolder(new File(directory));
@@ -103,10 +90,9 @@ public class SelectDirectoryWizardPage extends AbstractPublishWizardPage impleme
                
                setPageComplete(true);
        }
-       
-       /** {@inheritDoc} */
+
        @Override
        public boolean isPageComplete() {
                return getConfigurator().getExportFolder() != null;
        }
-}
+}
\ No newline at end of file
index abe8d2ccf1460521553c9012848c029bffaebf4a..e9c66ccbacd4b6eb2b434e4f762b79fa2078e06f 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.printpublisher.wizard;
 
 import java.util.ArrayList;
@@ -38,7 +37,6 @@ import eu.etaxonomy.cdm.print.XMLHelper;
  *
  * @author n.hoffmann
  * @created Aug 6, 2010
- * @version 1.0
  */
 public class SelectFeatureTreeWizardPage extends AbstractPublishWizardPage
        implements ISelectionChangedListener, IHasPersistableSettings{
@@ -46,20 +44,11 @@ public class SelectFeatureTreeWizardPage extends AbstractPublishWizardPage
        private static final String DIALOG_SETTING_FEATURE_TREE_UUID = "dialogSettingFeatureTreeUuid";
        private ListViewer viewer;
 
-       /**
-        * <p>Constructor for SelectFeatureTreeWizardPage.</p>
-        *
-        * @param pageName a {@link java.lang.String} object.
-        */
        protected SelectFeatureTreeWizardPage(String pageName) {
                super(pageName);
                setTitle("Select Feature Tree");
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-        */
-       /** {@inheritDoc} */
        @Override
        public void createControl(Composite parent) {
                setPageComplete(false);
@@ -69,8 +58,8 @@ public class SelectFeatureTreeWizardPage extends AbstractPublishWizardPage
 
                viewer = new ListViewer(composite);
                viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-               viewer.setContentProvider(new FeatureTreeContentProvider());
-               viewer.setLabelProvider(new FeatureTreeLabelProvider());
+               viewer.setContentProvider(new TermTreeContentProvider());
+               viewer.setLabelProvider(new TermTreeLabelProvider());
 
                viewer.addSelectionChangedListener(this);
 
@@ -115,7 +104,6 @@ public class SelectFeatureTreeWizardPage extends AbstractPublishWizardPage
                }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
                IStructuredSelection selection = (IStructuredSelection) event.getSelection();
@@ -126,7 +114,6 @@ public class SelectFeatureTreeWizardPage extends AbstractPublishWizardPage
 
                setPageComplete(true);
 
-
                Element featureTreeElement = (Element) selection.getFirstElement();
 
                UUID featureTreeUuid = XMLHelper.getUuid(featureTreeElement);
@@ -153,7 +140,6 @@ public class SelectFeatureTreeWizardPage extends AbstractPublishWizardPage
                setPageComplete(featureTreeUuid != null);
        }
 
-       /** {@inheritDoc} */
        @Override
        public boolean canFlipToNextPage() {
                return isPageComplete();
@@ -175,7 +161,7 @@ public class SelectFeatureTreeWizardPage extends AbstractPublishWizardPage
                viewer.setInput(realFeatureTrees);
        }
 
-       private class FeatureTreeContentProvider implements IStructuredContentProvider {
+       private class TermTreeContentProvider implements IStructuredContentProvider {
 
                @Override
                public void dispose() {}
@@ -190,15 +176,10 @@ public class SelectFeatureTreeWizardPage extends AbstractPublishWizardPage
                        }
                        return new Object[0];
                }
-
        }
 
-       private class FeatureTreeLabelProvider extends LabelProvider {
+       private class TermTreeLabelProvider extends LabelProvider {
 
-               /*
-                * (non-Javadoc)
-                * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-                */
                @Override
                public String getText(Object element) {
                        if(element instanceof Element){
@@ -207,6 +188,5 @@ public class SelectFeatureTreeWizardPage extends AbstractPublishWizardPage
                        }
                        return "no title cache";
                }
-
        }
-}
+}
\ No newline at end of file
index 3528e831b7fb5ba7f819a1559b92d6dbcac1cd89..7a1fffb8ee7feac5208a4fd3f56a95449efe0551 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.printpublisher.wizard;
 
 import org.eclipse.swt.SWT;
@@ -21,7 +20,6 @@ import org.eclipse.swt.widgets.Composite;
  *
  * @author n.hoffmann
  * @created Jul 26, 2010
- * @version 1.0
  */
 public class SelectOptionsWizardPage extends AbstractPublishWizardPage 
        implements SelectionListener, IHasPersistableSettings{
@@ -41,17 +39,11 @@ public class SelectOptionsWizardPage extends AbstractPublishWizardPage
        private Boolean doSynonymy;
        private Boolean entireBranches;
 
-       /**
-        * <p>Constructor for OptionsWizardPage.</p>
-        *
-        * @param pageName a {@link java.lang.String} object.
-        */
        protected SelectOptionsWizardPage(String pageName) {
                super(pageName);
                setTitle("Select options");
        }
        
-       /** {@inheritDoc} */
        @Override
        public void createControl(Composite parent) {
                
@@ -109,7 +101,6 @@ public class SelectOptionsWizardPage extends AbstractPublishWizardPage
                widgetSelected(null);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void widgetSelected(SelectionEvent e) {
                entireBranches = button_doPublishEntireBranches.getSelection();
@@ -129,7 +120,6 @@ public class SelectOptionsWizardPage extends AbstractPublishWizardPage
                putDialogSettingValue(DIALOG_SETTING_DO_IMAGES, doImages.toString());
        }
 
-       /** {@inheritDoc} */
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {}
 }
index 043f7eb2c59e071bab02e715e54b724c54b6d721..98174fae499fc0aab40cefb668dcfffa8cb44708 100644 (file)
@@ -1,12 +1,11 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.printpublisher.wizard;
 
 import java.lang.reflect.InvocationTargetException;
@@ -38,22 +37,15 @@ import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Text;
 import org.jdom.Element;
 
-import eu.etaxonomy.cdm.api.application.ICdmRepository;
 import eu.etaxonomy.cdm.print.IXMLEntityFactory;
 import eu.etaxonomy.cdm.print.PublishConfigurator;
 import eu.etaxonomy.cdm.print.XMLHelper;
 import eu.etaxonomy.cdm.print.XMLHelper.EntityType;
-import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.printpublisher.PrintUtil;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>SelectServiceWizardPage class.</p>
- *
  * @author n.hoffmann
  * @created Apr 6, 2010
- * @version 1.0
  */
 public class SelectServiceWizardPage extends AbstractPublishWizardPage {
 
@@ -61,60 +53,51 @@ public class SelectServiceWizardPage extends AbstractPublishWizardPage {
        private Button button_local;
        private Button button_remote;
        private Text text_serviceUrl;
-       
+
        private TreeViewer treeViewer;
 
-       /**
-        * <p>Constructor for SelectServiceWizardPage.</p>
-        *
-        * @param pageName a {@link java.lang.String} object.
-        */
        protected SelectServiceWizardPage(String pageName) {
                super(pageName);
                setTitle("Select a Service");
        }
-       
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-        */
-       /** {@inheritDoc} */
-       public void createControl(Composite parent) {
-               
+
+       @Override
+    public void createControl(Composite parent) {
+
                composite = new Composite(parent, SWT.NULL);
                composite.setLayout(new GridLayout());
-               
+
                RadioSelectionListener listener = new RadioSelectionListener();
-               
+
                Group radioGroup = new Group(composite, SWT.SHADOW_ETCHED_IN);
                radioGroup.setLayout(new GridLayout());
-               
+
                button_local = new Button(radioGroup, SWT.RADIO);
-                               
+
                button_local.setText("Local (By selecting this option the database you are currently " +
                                "connected to will be used to gather data.)");
-               
+
                button_local.addSelectionListener(listener);
-               
-               
-                                               
+
                button_remote = new Button(radioGroup, SWT.RADIO);
                button_remote.setText("Remote");
                button_remote.addSelectionListener(listener);
-               
+
                text_serviceUrl = new Text(radioGroup, SWT.BORDER);
                text_serviceUrl.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
-               text_serviceUrl.setText("http://");     
+               text_serviceUrl.setText("http://");
                text_serviceUrl.addModifyListener(new ModifyListener() {
-                       
-                       public void modifyText(ModifyEvent e) {
+
+                       @Override
+            public void modifyText(ModifyEvent e) {
                                String text = text_serviceUrl.getText();
-                               
+
                                if(!text.endsWith("/")){
                                        SelectServiceWizardPage.this.setErrorMessage("Webservice URL has to end with \"/\"");
                                        setPageComplete(false);
                                        return;
                                }
-                               
+
                                URL url = null;
                                try {
                                        url = new URL(text);
@@ -123,35 +106,33 @@ public class SelectServiceWizardPage extends AbstractPublishWizardPage {
                                        setPageComplete(false);
                                        return;
                                }
-                               
+
                                getConfigurator().setWebserviceUrl(url);
-                               
+
                                SelectServiceWizardPage.this.setErrorMessage(null);
-                                       
+
                        }
                });
-               
+
                treeViewer = new TreeViewer(composite);
-               
+
                treeViewer.setContentProvider(new ContentProvider());
                treeViewer.setLabelProvider(new LabelProvider());
-               
+
                treeViewer.addSelectionChangedListener(new SelectionChangedListener());
-               
+
                treeViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-               
-               
-               if(CdmStore.isActive()){
-                       enableLocal();
-               }else{
+
+//             if(CdmStore.isActive()){
+//                     enableLocal();
+//             }else{
                        enableRemote();
                        button_local.setEnabled(false);
-               }
-               
+//             }
+
                setControl(composite);
-               
        }
-       
+
        private class RadioSelectionListener extends SelectionAdapter{
                @Override
                public void widgetSelected(SelectionEvent e) {
@@ -162,45 +143,42 @@ public class SelectServiceWizardPage extends AbstractPublishWizardPage {
                        }
                }
        }
-       
+
        private void enableRemote() {
                button_local.setSelection(false);
                button_remote.setSelection(true);
-               
+
                text_serviceUrl.setEnabled(true);
-               
+
                setConfigurator(PublishConfigurator.NewRemoteInstance());
                getConfigurator().addOutputModule(getOutputModule());
        }
 
+       /**
+        * @deprecated real local is not supported anymore, also the currently active
+        *             database is a "remoting" database
+        */
+       @Deprecated
        private void enableLocal() {
                button_remote.setSelection(false);
                button_local.setSelection(true);
-               
+
                text_serviceUrl.setEnabled(false);
-               
-               setConfigurator(PublishConfigurator.NewLocalInstance((ICdmRepository) CdmStore.getCurrentApplicationConfiguration()));
+
+               setConfigurator(PublishConfigurator.NewRemoteInstance());
                getConfigurator().addOutputModule(getOutputModule());
                refresh();
        }
-       
-       /*
-        * (non-Javadoc)
-        * @see org.eclipse.jface.wizard.WizardPage#canFlipToNextPage()
-        */
-       /** {@inheritDoc} */
+
        @Override
-       public boolean canFlipToNextPage() {    
+       public boolean canFlipToNextPage() {
                return isPageComplete();
        }
-       
-       /**
-        * <p>refresh</p>
-        */
+
        public void refresh(){
-               
+
                if(getConfigurator() != null){
-               
+
                        IRunnableWithProgress runnable = new IRunnableWithProgress(){
 
                                @Override
@@ -208,18 +186,18 @@ public class SelectServiceWizardPage extends AbstractPublishWizardPage {
                                        monitor.beginTask("Loading classifications", IProgressMonitor.UNKNOWN);
                                        IXMLEntityFactory factory = getConfigurator().getFactory();
                                        final List<Element> classifications = factory.getClassifications();
-                                       
+
                                        Display.getDefault().asyncExec(new Runnable(){
 
                                                @Override
                                                public void run() {
                                                        treeViewer.setInput(classifications);
                                                }
-                                               
+
                                        });
                                        monitor.done();
                                }
-                               
+
                        };
                        try {
                                getContainer().run(true, false, runnable);
@@ -230,89 +208,90 @@ public class SelectServiceWizardPage extends AbstractPublishWizardPage {
                        }
                }
        }
-               
-       /*
-        * (non-Javadoc)
-        * @see org.eclipse.jface.wizard.WizardPage#isPageComplete()
-        */
-       /** {@inheritDoc} */
+
        @Override
        public boolean isPageComplete() {
                boolean complete = true;
                if(getConfigurator().isLocal()){
                        complete &= true;
-               }else if(getConfigurator().isRemote() 
-                               && getConfigurator().getWebserviceUrl() != null 
+               }else if(getConfigurator().isRemote()
+                               && getConfigurator().getWebserviceUrl() != null
                                && getConfigurator().getWebserviceUrl().toString().endsWith("/")){
                        complete &= true;
                }else{
                        return false;
                }
-               
+
                List<Element> selectedTaxonNodes = getConfigurator().getSelectedTaxonNodeElements();
-               
+
                complete &= !selectedTaxonNodes.isEmpty();
-               
+
                return complete;
        }
-       
+
        private class SelectionChangedListener implements ISelectionChangedListener {
 
-               public void selectionChanged(SelectionChangedEvent event) {
+               @Override
+        public void selectionChanged(SelectionChangedEvent event) {
                        StructuredSelection selection = (StructuredSelection) treeViewer.getSelection();
-                       
+
                        List<Element> selectedElements = selection.toList();
                        if(selectedElements.size() > 0){
                                getConfigurator().setSelectedTaxonNodeElements(selectedElements);
                                setPageComplete(true);
                        }
                }
-               
+
        }
-       
+
        private class ContentProvider implements ITreeContentProvider{
 
-               public Object[] getChildren(Object parentElement) {
+               @Override
+        public Object[] getChildren(Object parentElement) {
                        if(parentElement instanceof List){
                                return ((List)parentElement).toArray();
                        }
                        else if(parentElement instanceof Element){
                                Element element = (Element) parentElement;
-                               
+
                                IXMLEntityFactory factory = getConfigurator().getFactory();
-                               
+
                                return factory != null ? factory.getChildNodes(element).toArray() : new Object[]{};
-                               
+
                        }
-                       
+
                        return new Object[]{};
                }
 
-               public Object getParent(Object element) {
+               @Override
+        public Object getParent(Object element) {
                        return null;
                }
 
-               public boolean hasChildren(Object element) {
+               @Override
+        public boolean hasChildren(Object element) {
                        return getChildren(element).length > 0;
                }
 
-               public Object[] getElements(Object inputElement) {
+               @Override
+        public Object[] getElements(Object inputElement) {
                        return getChildren(inputElement);
                }
 
-               public void dispose() {
-                       
+               @Override
+        public void dispose() {
+
                }
 
-               public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-                       
+               @Override
+        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+
                }
-               
        }
-       
+
        private class LabelProvider  extends ColumnLabelProvider
                implements ILabelProvider{
-               
+
                @Override
                public String getText(Object element) {
                        if(element instanceof Element){
@@ -320,12 +299,10 @@ public class SelectServiceWizardPage extends AbstractPublishWizardPage {
                                EntityType entityType = XMLHelper.getEntityType(xmlElement);
                                if(EntityType.TAXON_NODE.equals(entityType)){
                                        xmlElement = getConfigurator().getFactory().getTaxonForTaxonNode(xmlElement);
-                               }                               
+                               }
                                return XMLHelper.getTitleCache(xmlElement);
                        }
                        return "no title cache";
                }
-               
        }
-       
-}
+}
\ No newline at end of file
index 30d7d51c88227abc91b542a349a7b6c913a97dd5..f34ec33c4a993d53fb93f91a1466791556495ca9 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.printpublisher.wizard;
 
 import java.lang.reflect.InvocationTargetException;
@@ -25,7 +24,6 @@ import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Display;
 import org.jdom.Element;
@@ -40,32 +38,18 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
  *
  * @author n.hoffmann
  * @created Apr 6, 2010
- * @version 1.0
  */
 public class SelectTaxaWizardPage extends AbstractPublishWizardPage {
 
        private Composite composite;
 
        private TreeViewer treeViewer;
-       
-       private Button button_refresh;
 
-       /**
-        * <p>Constructor for SelectTaxaWizardPage.</p>
-        *
-        * @param pageName a {@link java.lang.String} object.
-        */
        public SelectTaxaWizardPage(String pageName) {
                super(pageName);
                setTitle("Select Taxa to export.");
-               
-               
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-        */
-       /** {@inheritDoc} */
        public void createControl(Composite parent) {           
                composite = new Composite(parent, SWT.NULL);
                composite.setLayout(new GridLayout());
@@ -78,17 +62,14 @@ public class SelectTaxaWizardPage extends AbstractPublishWizardPage {
                treeViewer.addSelectionChangedListener(new SelectionChangedListener());
                
                treeViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-                               
+               
                setControl(composite);
        }
-               
-       /**
-        * <p>refresh</p>
-        */
+
        public void refresh(){
                
                if(getConfigurator() != null){
-               
+
                        IRunnableWithProgress runnable = new IRunnableWithProgress(){
 
                                @Override
@@ -97,15 +78,12 @@ public class SelectTaxaWizardPage extends AbstractPublishWizardPage {
                                        final List<Element> classifications = factory.getClassifications();
                                        
                                        Display.getDefault().asyncExec(new Runnable(){
-
                                                @Override
                                                public void run() {
                                                        treeViewer.setInput(classifications);
                                                }
-                                               
                                        });
                                }
-                               
                        };
                        try {
                                getContainer().run(true, false, runnable);
@@ -128,7 +106,6 @@ public class SelectTaxaWizardPage extends AbstractPublishWizardPage {
                                setPageComplete(true);
                        }
                }
-               
        }
        
        private class ContentProvider implements ITreeContentProvider{
@@ -143,7 +120,6 @@ public class SelectTaxaWizardPage extends AbstractPublishWizardPage {
                                IXMLEntityFactory factory = getConfigurator().getFactory();
                                
                                return factory != null ? factory.getChildNodes(element).toArray() : new Object[]{};
-                               
                        }
                        
                        return new Object[]{};
@@ -168,7 +144,6 @@ public class SelectTaxaWizardPage extends AbstractPublishWizardPage {
                public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
                        
                }
-               
        }
        
        private class LabelProvider  extends ColumnLabelProvider
@@ -189,15 +164,13 @@ public class SelectTaxaWizardPage extends AbstractPublishWizardPage {
                
        }
        
-       /** {@inheritDoc} */
        @Override
        public boolean canFlipToNextPage() {
                return isPageComplete();
        }
        
-       /** {@inheritDoc} */
        @Override
        public boolean isPageComplete() {
                return getConfigurator().getSelectedTaxonNodeElements() != null && getConfigurator().getSelectedTaxonNodeElements().size() > 0;
        }
-}
+}
\ No newline at end of file
index 2691fbe339ce58564d67b0f8d26d03e79d211f39..852f33e9d59c7261b3bd97d16abce82078a3bfef 100644 (file)
@@ -2,22 +2,14 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: DataStore Bundle
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.store;singleton:=true
-Bundle-Version: 5.16.0
+Bundle-Version: 5.42.0
 Bundle-Activator: eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin
 Bundle-Vendor: EDIT
 Bundle-Localization: OSGI-INF/l10n/bundle
-Export-Package: eu.etaxonomy.cdm,
- eu.etaxonomy.cdm.database,
- eu.etaxonomy.taxeditor.datasource,
- eu.etaxonomy.taxeditor.datasource.wizard,
- eu.etaxonomy.taxeditor.dnd.transfer,
- eu.etaxonomy.taxeditor.editor,
+Export-Package: eu.etaxonomy.taxeditor.editor,
  eu.etaxonomy.taxeditor.editor.definedterm,
  eu.etaxonomy.taxeditor.editor.definedterm.input,
  eu.etaxonomy.taxeditor.event,
- eu.etaxonomy.taxeditor.featuretree,
- eu.etaxonomy.taxeditor.featuretree.e4,
- eu.etaxonomy.taxeditor.featuretree.e4.handler,
  eu.etaxonomy.taxeditor.handler,
  eu.etaxonomy.taxeditor.handler.defaultHandler,
  eu.etaxonomy.taxeditor.handler.defaultHandler.e4,
@@ -25,7 +17,7 @@ Export-Package: eu.etaxonomy.cdm,
  eu.etaxonomy.taxeditor.io,
  eu.etaxonomy.taxeditor.io.wizard,
  eu.etaxonomy.taxeditor.labels,
- eu.etaxonomy.taxeditor.model;uses:="eu.etaxonomy.cdm.model.common,eu.etaxonomy.cdm.model.name,eu.etaxonomy.cdm.model.taxon",
+ eu.etaxonomy.taxeditor.model,
  eu.etaxonomy.taxeditor.newWizard,
  eu.etaxonomy.taxeditor.operation,
  eu.etaxonomy.taxeditor.operation.e4,
@@ -38,6 +30,9 @@ Export-Package: eu.etaxonomy.cdm,
  eu.etaxonomy.taxeditor.store,
  eu.etaxonomy.taxeditor.store.internal,
  eu.etaxonomy.taxeditor.store.operations,
+ eu.etaxonomy.taxeditor.termtree,
+ eu.etaxonomy.taxeditor.termtree.e4,
+ eu.etaxonomy.taxeditor.termtree.e4.handler,
  eu.etaxonomy.taxeditor.ui,
  eu.etaxonomy.taxeditor.ui.bar,
  eu.etaxonomy.taxeditor.ui.combo,
@@ -63,14 +58,11 @@ Export-Package: eu.etaxonomy.cdm,
  eu.etaxonomy.taxeditor.ui.selection,
  eu.etaxonomy.taxeditor.util,
  eu.etaxonomy.taxeditor.view,
- eu.etaxonomy.taxeditor.view.datasource,
- eu.etaxonomy.taxeditor.view.datasource.handler,
  eu.etaxonomy.taxeditor.view.detail,
  eu.etaxonomy.taxeditor.view.e4,
  eu.etaxonomy.taxeditor.view.e4.details,
  eu.etaxonomy.taxeditor.view.e4.supplementaldata,
  eu.etaxonomy.taxeditor.view.search.derivative,
- eu.etaxonomy.taxeditor.view.search.specimen,
  org.eclipse.wb.swt
 Require-Bundle: org.eclipse.osgi,
  org.eclipse.ui,
@@ -100,11 +92,10 @@ Require-Bundle: org.eclipse.osgi,
  org.eclipse.equinox.p2.metadata,
  org.eclipse.equinox.p2.core,
  org.eclipse.equinox.p2.engine,
- eu.etaxonomy.taxeditor.store
+ org.eclipse.core.net
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
-Import-Package: eu.etaxonomy.taxeditor.webapp,
- javax.annotation;version="1.0.0";resolution:=optional,
+Import-Package: javax.annotation;version="1.2.0",
  javax.inject;version="1.0.0",
  org.eclipse.core.commands,
  org.eclipse.core.commands.operations,
@@ -126,4 +117,7 @@ Import-Package: eu.etaxonomy.taxeditor.webapp,
  org.eclipse.ui.forms.widgets,
  org.eclipse.ui.ide.undo,
  org.osgi.framework,
- org.osgi.service.prefs;version="1.1.1"
+ org.osgi.service.prefs;version="1.1.1",
+ org.apache.logging.log4j,
+ org.apache.logging.log4j.core,
+  org.apache.commons.collections4
index cca76b2fea78b373c9a46b5c91325199b54d6d51..e235fb2099ad25bb33b1543d0584ade02d0013df 100644 (file)
@@ -22,7 +22,7 @@ page.name.18 = Team or Person Matching Strategy
 page.name.19 = Stage\r
 page.name.20 = Preservation Method\r
 page.name.22 = Default Feature Trees\r
-page.name.23 = Application\r
+page.name.23 = Terms\r
 page.name.24 = Mobot Open Url\r
 page.name.25 = Type Designations\r
 page.name.36 = Details View\r
@@ -31,6 +31,7 @@ page.name.38 = General
 page.name.39 = Nomenclatural Code\r
 page.name.100 = Distribution\r
 page.name.101 = Term Editor\r
+page.name.201 = Term Tree Editor\r
 page.name.102 = Name Details View\r
 page.name.103 = Name Features\r
 view.name = Datasource\r
@@ -52,7 +53,6 @@ command.label.2 = Datasource
 command.label.3 = Error Log\r
 command.label.4 = Reporting\r
 command.label.5 = Switch User\r
-command.label.6 = Create Data Model\r
 command.label.7 = New\r
 command.label.8 = Edit\r
 command.label.9 = Delete\r
@@ -74,11 +74,9 @@ command.name.7 = New Term Vocabulary
 category.name = CDM\r
 wizard.name = TCS\r
 wizard.name.0 = Berlin Model\r
-wizard.name.1 = Endnote\r
 wizard.name.2 = Excel Normal Explicit\r
 wizard.name.3 = ABCD file\r
 wizard.name.4 = SDD\r
-wizard.name.5 = Specimen CDM Excel\r
 category.name.0 = CDM\r
 wizard.name.6 = JAXB\r
 wizard.name.7 = Berlin Model\r
@@ -94,6 +92,7 @@ wizard.name.15 = Polytomous Key
 category.name.2 = CDM\r
 wizard.name.16 = Taxon\r
 wizard.name.17 = Classification\r
+wizard.name.123 = WFO Backbone\r
 themeElementCategory.label = Taxonomic Editor\r
 themeElementCategory.description = Color and font definitions for the EDIT Taxonomic Editor\r
 colorDefinition.label = List Background\r
@@ -106,8 +105,8 @@ themeElementCategory.label.0 = Details View
 themeElementCategory.description.0 = Colors and fonts for the details view\r
 colorDefinition.label.5 = Entity Element List Background Odd\r
 colorDefinition.label.6 = Entity Element List Background Even\r
-themeElementCategory.label.1 = Name Editor\r
-themeElementCategory.description.1 = Colors and fonts for the name editor\r
+themeElementCategory.label.1 = Taxon Editor\r
+themeElementCategory.description.1 = Colors and fonts for the taxon editor\r
 colorDefinition.label.7 = Container Background\r
 colorDefinition.label.8 = Container Selected Focus\r
 colorDefinition.label.9 = Container Selected\r
@@ -127,14 +126,12 @@ fontDefinition.label.5 = Synonym font
 fontDefinition.description.0 = The font that is used for synonyms in the search result list.\r
 fontDefinition.label.6 = Other font\r
 fontDefinition.description.1 = The font used by default in the search result list.\r
-colorDefinition.label.13 = Parse Error\r
-colorDefinition.label.14 = Disabled Name Editor Field\r
-colorDefinition.label.15 = Editor On Error\r
 page.name.26 = Specimens\r
 page.name.27 = Media\r
 page.name.28 = Distribution Editor\r
 page.name.29 = Editor Profile\r
-page.name.30 = Language\r
+page.name.30 = Application\r
+page.name.301 = Language\r
 page.name.32 = Taxon Navigator\r
 page.name.33 = Sort of Taxonnodes\r
 page.name.34 = Debugging\r
@@ -169,10 +166,6 @@ command.name.15 = Open
 command.name.16 = Serverside Preferences\r
 view.name.SESSIONS = Sessions\r
 command.label.SESSION = Sessions\r
-command.label.CONNECT = Connect\r
-command.label.RE_CONNECT = Re-Connect\r
-command.name.CONNECT = Connect\r
-command.name.RE_CONNECT = Re-Connect\r
 command.name.OPEN_CLASSIFICATION_WIZARD = Open Classification Wizard\r
 command.name.OPEN_TAXONNODE_WIZARD = Open Taxon Node Wizard\r
 \r
@@ -180,7 +173,10 @@ command.name.INSPECT_ACTIVE_SESSIONS = Inspect Active Session
 viewCommandMapping.viewerName.CLASSIFICATION_WIZARD = Classification Wizard\r
 viewCommandMapping.viewerName.TAXON_NODE_WIZARD = Taxon Node Dialogue\r
 command.label.CHANGE_PASSWORD = Change password\r
+command.label.CONNECT = Connect\r
+command.label.RE_CONNECT = Re-connect\r
 wizard.name.22 = CDM light (csv)\r
+wizard.name.122 = Col DP\r
 wizard.name.23 = Excel Distribution Data Update\r
 wizard.name.24 = RIS\r
 command.label.25 = Import Preferences
@@ -205,15 +201,17 @@ page.name.48 = Search Dialogs
 command.name.111 = Open Admin Distributionstatus-Wizard\r
 command.name.112 = Open Admin CommonNameArea-Wizard\r
 command.name.120 = Open CommonNameArea-Wizard
-handledmenuitem.label.1 = New Tree
+handledmenuitem.label.1 = New Tree\r
+handledmenuitem.label.flat = New List (Flat Tree)\r
+handledmenuitem.label.ordered = New Ordered Tree
 handledmenuitem.label.2 = Add Child Term
 handledmenuitem.label.3 = Add Term
 handledmenuitem.label.4 = Export as Word file
 handledmenuitem.label.5 = Remove Term
 handledmenuitem.label.6 = Delete
 handledmenuitem.label.7 = Kind Of Term
-partdescriptor.label.1 = GFBio Term Import
-partdescriptor.tooltip.1 = GFBio Term Import
+partdescriptor.label.1 = GFBio Term Search
+partdescriptor.tooltip.1 = GFBio Term Search
 command.commandname.1 = Add Feature
 command.description.1 = Add a term to the term tree
 command.commandname.2 = Remove term
@@ -224,13 +222,15 @@ command.commandname.5 = Inspect Session
 command.commandname.6 = Check for updates
 command.commandname.7 = Add child feature
 command.commandname.8 = Delete term tree
-command.commandname.9 = Create term tree
+command.commandname.9 = Create term tree\r
+command.commandname.flat_tree = Create term list\r
+command.commandname.ordered_tree = Create ordered term tree 
 command.commandname.10 = Restart
 menu.label.1 = Terms
-handledmenuitem.label.8 = Term Tree Editor
+handledmenuitem.label.8 = Term Tree
 handledmenuitem.tooltip.1 = Term Tree Editor
-handledmenuitem.label.9 = GFBio Term Import
-handledmenuitem.tooltip.2 = GFBio Term Import
+handledmenuitem.label.9 = GFBio Term Search
+handledmenuitem.tooltip.2 = GFBio Term Search
 menu.label.2 = Export
 menu.label.3 = Import
 handledmenuitem.label.10 = Restart
@@ -302,4 +302,31 @@ menu.label.5 = Specimen
 menu.label.6 = Taxa
 menu.label.7 = References
 menu.label.8 = Descriptive Data
-menu.label.9 = Factual Data
+menu.label.9 = Factual Data\r
+\r
+handledmenuitem.label.30 = State\r
+handledmenuitem.label.31 = Structure Modifier
+handledmenuitem.label.32 = Named Area Level\r
+handledmenuitem.label.33 = Named Area Type\r
+handledmenuitem.label.34 = Annotation Type\r
+handledmenuitem.label.35 = Identifier Type\r
+handledmenuitem.label.36 = Marker Type\r
+handledmenuitem.label.37 = Extension Type\r
+handledmenuitem.label.38 = Modifier\r
+handledmenuitem.label.39 = Kind of Unit\r
+handledmenuitem.label.40 = Determination Modifier\r
+handledmenuitem.label.41 = Scope\r
+handledmenuitem.label.42 = Sex\r
+handledmenuitem.label.43 = Stage\r
+handledmenuitem.label.44 = DNA Marker\r
+handledmenuitem.label.45 = Namerelationship Type\r
+handledmenuitem.label.46 = Taxonrelationship Type\r
+handledmenuitem.label.47 = Nametypedesignation Status\r
+handledmenuitem.label.48 = Nomenclatural Status Type\r
+handledmenuitem.label.49 = Specimentypedesignation Status\r
+handledmenuitem.label.50 = Taxonnode Agent Relation Type\r
+handledmenuitem.label.51 = Language\r
+page.name.secundum = Secundum Reference\r
+page.name.misappliedNames = Misapplied Names\r
+handledmenuitem.label.52 = Open in ...\r
+page.name.computedDescriptions = Computed factual data\r
index 76b1372aa2619fe31a2a8bfbb74c7ac5c4700609..f3ebc2ede29dbabf3a16e49c7a29174997048589 100644 (file)
@@ -22,7 +22,7 @@ page.name.18 = Team oder Personen Matching-Strategie
 page.name.19 = Stadium
 page.name.20 = Konservierungsmethoden
 page.name.22 = Standard Merkmalsbaum
-page.name.23 = Anwendung
+page.name.23 = Terme
 page.name.24 = Mobot Open Url
 page.name.25 = Typus
 page.name.36 = Details View
@@ -31,6 +31,7 @@ page.name.38 = Allgemein
 page.name.39 = Nomenklatur-Code
 page.name.100 = Verbreitungs-Daten
 page.name.101 = Term Editor
+page.name.201 = Term Tree Editor
 page.name.102 = Name Details View
 page.name.103 = Namensmerkmale
 view.name = Datenquelle
@@ -52,7 +53,6 @@ command.label.2 = Datenquelle
 command.label.3 = Fehlermeldungen
 command.label.4 = Berichte
 command.label.5 = Benutzer wechseln
-command.label.6 = Datenmodell erstellen
 command.label.7 = Neu
 command.label.8 = Bearbeiten
 command.label.9 = L\u00f6schen
@@ -74,11 +74,9 @@ command.name.7 = Neues Begriffsvokabular
 category.name = CDM
 wizard.name = TCS
 wizard.name.0 = Berlin Modell
-wizard.name.1 = Endnote
 wizard.name.2 = Excel Normal Explicit
 wizard.name.3 = ABCD Datei
 wizard.name.4 = SDD
-wizard.name.5 = Beleg CDM Excel
 category.name.0 = CDM
 wizard.name.6 = JAXB
 wizard.name.7 = Berlin Model
@@ -94,6 +92,7 @@ wizard.name.15 = Polytome Schl\u00fcssel
 category.name.2 = CDM
 wizard.name.16 = Taxon
 wizard.name.17 = Klassifikation
+wizard.name.123 = WFO Backbone
 themeElementCategory.label = Taxonomischer Editor
 themeElementCategory.description = Farb- und Schriftdefinitionen f\u00fcr den EDIT Taxonomischen Editor
 colorDefinition.label = Liste Hintergrund
@@ -106,8 +105,8 @@ themeElementCategory.label.0 = Ansicht Details
 themeElementCategory.description.0 = Farben und Schriften f\u00fcr die Detailansicht
 colorDefinition.label.5 = Entity Element List Background Odd
 colorDefinition.label.6 = Entity Element List Background Even
-themeElementCategory.label.1 = Namenseditor
-themeElementCategory.description.1 = Farben und Schriften f\u00fcr den Namenseditor
+themeElementCategory.label.1 = Taxon Editor
+themeElementCategory.description.1 = Farben und Schriften f\u00fcr den Taxon Editor
 colorDefinition.label.7 = Container Hintergrund
 colorDefinition.label.8 = Container ausgew\u00e4hlter Fokus
 colorDefinition.label.9 = Container ausgew\u00e4hlt
@@ -127,14 +126,12 @@ fontDefinition.label.5 = Synonymschrift
 fontDefinition.description.0 = Die Schrift f\u00fcr Synonyme in den Suchergebnissen.
 fontDefinition.label.6 = Andere Schrift
 fontDefinition.description.1 = Die Schrift, die normalerweise in den Suchergebnissen benutzt wird.
-colorDefinition.label.13 = Fehler beim Parsing
-colorDefinition.label.14 = Gesperrtes Namenseditierfeld
-colorDefinition.label.15 = Editor fehlerhaft
 page.name.26 = Specimens
 page.name.27 = Media
 page.name.28 = Verbreitungs-Editor
 page.name.29 = Editor Profil
-page.name.30 = Sprache
+page.name.30 = Anwendung
+page.name.301 = Sprache
 page.name.32 = Taxon Navigator
 page.name.33 = Sortierung im TaxonNavigator
 page.name.34 = Debugging
@@ -169,10 +166,6 @@ command.name.15 = \u00d6ffnen
 command.name.16 = Serverseitige Präferenzen
 view.name.SESSIONS = Sessions
 command.label.SESSION = Sessions
-command.label.CONNECT = Verbinden
-command.label.RE_CONNECT = Aktualisiere Verbindung
-command.name.CONNECT = Verbinden
-command.name.RE_CONNECT = Aktualisiere Verbindung
 command.name.OPEN_CLASSIFICATION_WIZARD = \u00d6ffne Klassifikations-Wizard
 command.name.OPEN_TAXONNODE_WIZARD = \u00d6ffne Taxonknoten-Wizard
 
@@ -180,7 +173,10 @@ command.name.INSPECT_ACTIVE_SESSIONS = Aktive Session untersuchen
 viewCommandMapping.viewerName.CLASSIFICATION_WIZARD = Klassifikations-Wizard
 viewCommandMapping.viewerName.TAXON_NODE_WIZARD = Taxonknoten-Dialog
 command.label.CHANGE_PASSWORD = Kennwort ändern
+command.label.CONNECT = Verbinden
+command.label.RE_CONNECT = Aktualisiere Verbindung
 wizard.name.22 = CDM light (csv)
+wizard.name.122 = Col DP
 wizard.name.23 = Excel Verbreitungsdaten Update
 wizard.name.24 = RIS
 command.label.25 = Import Präferenzen
@@ -190,6 +186,7 @@ extension.name.1 = Store Workbench Model
 page.name.21 = Verbreitungs-Editor
 page.name.140 = Import/Export
 page.name.40 = ABCD Import
+page.name.142 = CdmLight Export
 page.name.41 = Biocase Provider
 page.name.42 = Serverseitige Präferenzen
 page.name.50 = Allgemein
@@ -206,14 +203,16 @@ command.name.111 = \u00d6ffne Admin Verbreitungsstatus-Wizard
 command.name.112 = \u00d6ffne Admin Common Name Area-Wizard
 command.name.120 = \u00d6ffne Common Name Area-Wizard
 handledmenuitem.label.1 = Neuer Baum
+handledmenuitem.label.flat = Neue Liste (flacher Baum)
+handledmenuitem.label.ordered = Neuer sortierter Baum
 handledmenuitem.label.2 = Term als Kind hinzufügen
 handledmenuitem.label.3 = Term hinzufügen
 handledmenuitem.label.4 = Als Word-Datei exportieren
 handledmenuitem.label.5 = Term entfernen
 handledmenuitem.label.6 = Löschen
 handledmenuitem.label.7 = Kind-Of Term
-partdescriptor.label.1 = GFBio Term Import
-partdescriptor.tooltip.1 = GFBio Term Import
+partdescriptor.label.1 = GFBio Term Suche
+partdescriptor.tooltip.1 = GFBio Term Suche
 command.commandname.1 = Term hinzufügen
 command.description.1 = Term dem Termbaum hinzufügen
 command.commandname.2 = Term entfernen
@@ -225,12 +224,14 @@ command.commandname.6 = Nach Updates suchen
 command.commandname.7 = Term als Kind hinzufügen
 command.commandname.8 = Termbaum löschen
 command.commandname.9 = Termbaum erstellen
+command.commandname.flat_tree = Termliste erstellen
+command.commandname.ordered_tree = Sortierten Termbaum erstellen 
 command.commandname.10 = Neustarten
 menu.label.1 = Terme
-handledmenuitem.label.8 = Term-Baumeditor
-handledmenuitem.tooltip.1 = Term-Baumeditor
-handledmenuitem.label.9 = GFBio Term Import
-handledmenuitem.tooltip.2 = GFBio Term Import
+handledmenuitem.label.8 = Termbaum
+handledmenuitem.tooltip.1 = Termbaum-Editor
+handledmenuitem.label.9 = GFBio Term Suche
+handledmenuitem.tooltip.2 = GFBio Term Suche
 menu.label.2 = Export
 menu.label.3 = Import
 handledmenuitem.label.10 = Neustarten
@@ -276,7 +277,7 @@ page.name.61 = Details View
 command.commandname.20 = Struktur-Baum (OWL)
 command.commandname.21 = OWL-Term-Export
 handledmenuitem.label.22 = OWL Term Export
-handledmenuitem.label.23 = Term Baum OWL Import
+handledmenuitem.label.23 = Termbaum OWL Import
 
 page.name.104 = Verbreitungsdaten
 page.name.105 = Status
@@ -302,4 +303,32 @@ menu.label.5 = Beleg
 menu.label.6 = Taxa
 menu.label.7 = Referenzen
 menu.label.8 = Beschreibende Daten
-menu.label.9 = Faktendaten
\ No newline at end of file
+menu.label.9 = Faktendaten
+
+handledmenuitem.label.30 = Zustand
+handledmenuitem.label.31 = Struktur Modifikator
+handledmenuitem.label.32 = Gebietsebene
+handledmenuitem.label.33 = Gebietstyp
+handledmenuitem.label.34 = Annotationstyp
+handledmenuitem.label.35 = Identifier-Typ
+handledmenuitem.label.36 = Marker-Typ
+handledmenuitem.label.37 = Erweiterungs-Typ
+handledmenuitem.label.38 = Modifikator
+handledmenuitem.label.39 = Art des Datensatzes
+handledmenuitem.label.40 = Bestimmungs-Modifikator
+handledmenuitem.label.41 = Gültigkeitsbereich
+handledmenuitem.label.42 = Geschlecht
+handledmenuitem.label.43 = Stadium
+handledmenuitem.label.44 = DNA-Marker
+handledmenuitem.label.45 = Namensbeziehungstyp
+handledmenuitem.label.46 = Taxonbeziehungstyp
+handledmenuitem.label.47 = Kategorie der Namenstypisierung
+handledmenuitem.label.48 = Nomenklatorischer Status Typ
+handledmenuitem.label.49 = Kategorie der Belegtypisierung
+handledmenuitem.label.50 = Relationstyp: Taxon-Knoten/Agierende
+handledmenuitem.label.51 = Sprache
+page.name.secundum = Secundum Referenz
+page.name.misappliedNames = Fehlanwendungen
+
+handledmenuitem.label.52 = Öffnen in ...
+page.name.computedDescriptions = Berechnete Faktendaten
index 121933998d95f18c1154365616347b063475becf..0ed91f000969d784e4d80e015e7452b8a9555f79 100644 (file)
@@ -9,30 +9,12 @@
     </elements>
     <elements xsi:type="basic:PartDescriptor" xmi:id="_zTXhUGvBEeeNmdqhxF1CnA" elementId="eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4" label="%view.name.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/accessories-text-editor.png" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4"/>
     <elements xsi:type="basic:PartDescriptor" xmi:id="_coTYkH3eEeeVL5aZ55YsWA" elementId="eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4" label="%view.name.3" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4"/>
-    <elements xsi:type="basic:PartDescriptor" xmi:id="_eKzREIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource" label="%view.name" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/system-file-manager.png" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.datasource.e4.CdmDataSourceViewPartE4">
-      <handlers xmi:id="_DINQoIctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.e4.handler.ChangeConnectionHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.datasource.e4.handler.ChangeConnectionHandlerE4" command="_efb88IcsEee-HITNnU9cVw"/>
-      <handlers xmi:id="_hAnq0IctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.e4.handler.EditDataSourceHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.datasource.e4.handler.EditDataSourceHandlerE4" command="_cs5L0IctEee-HITNnU9cVw"/>
-      <handlers xmi:id="_rsmsYIctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.e4.handler.CloneDataSourceHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.datasource.e4.handler.CloneDataSourceHandlerE4" command="_o0HcUIctEee-HITNnU9cVw"/>
-      <handlers xmi:id="_6VVQUIctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.e4.handler.CreateDataSourceHandlerE4.dataSourceView" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.datasource.e4.handler.CreateDataSourceHandlerE4" command="_yJiTkIctEee-HITNnU9cVw"/>
-      <handlers xmi:id="_ASDGYIcuEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.e4.handler.DeleteDataSourceHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.datasource.e4.handler.DeleteDataSourceHandlerE4" command="_-g_YcIctEee-HITNnU9cVw"/>
-      <handlers xmi:id="_T-pz4IcuEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.e4.handler.UpdateDataSourceHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.datasource.e4.handler.UpdateDataSourceHandlerE4" command="_ShWvcIcuEee-HITNnU9cVw"/>
-      <menus xsi:type="menu:PopupMenu" xmi:id="_3aJ1cIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.popupmenu.datasourceview">
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_8D3ykIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.handledmenuitem.newDataSource" label="%command.label.7" command="_yJiTkIctEee-HITNnU9cVw"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_-ALHMIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.handledmenuitem.edit" label="%command.label.8" command="_cs5L0IctEee-HITNnU9cVw"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_8ciKMIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.handledmenuitem.clone" label="%command.label.clone" command="_o0HcUIctEee-HITNnU9cVw"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_-6EjoIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.menuseparator.1"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="__u4EsIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.handledmenuitem.delete" label="%command.label.9" command="_-g_YcIctEee-HITNnU9cVw"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_AfzyYIcqEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.menuseparator.2"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_7lX4sIcpEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.handledmenuitem.createModel" label="%command.label.6" command="_efb88IcsEee-HITNnU9cVw"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_BE4OUIcqEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.handledmenuitem.refresh" label="%command.label.11" command="_ShWvcIcuEee-HITNnU9cVw"/>
-      </menus>
-    </elements>
     <elements xsi:type="basic:PartDescriptor" xmi:id="_YZ2J0IdPEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.editor.definedTerm" label="%editor.name" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.editor.definedterm.e4.DefinedTermEditorE4">
       <tags>nonRestore</tags>
       <handlers xmi:id="_87dsoIdPEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.CreateTermVocabularyHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.CreateTermVocabularyHandlerE4" command="_5mFFMIdPEeecZ4F2Y9Z0Og"/>
       <handlers xmi:id="_b8sJAIdQEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.DeleteTermBaseHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.DeleteTermBaseHandlerE4" command="_Z_XgsIdQEeecZ4F2Y9Z0Og"/>
       <handlers xmi:id="_B7cTkIfSEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.CreateDefinedTermHandlerE4.newDefinedTerm" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.CreateDefinedTermHandlerE4" command="_GTbAcIfSEeecZ4F2Y9Z0Og"/>
-      <handlers xmi:id="_NqtXEIfSEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.CreateDefinedTermHandlerE4.newKindOfTerm" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.CreateDefinedTermHandlerE4" command="_LMwG4IfSEeecZ4F2Y9Z0Og"/>
+      <handlers xmi:id="_NqttermtreemHandlerXEIfSEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.CreateDefinedTermHandlerE4.newKindOfTerm" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.CreateDefinedTermHandlerE4" command="_LMwG4IfSEeecZ4F2Y9Z0Og"/>
       <handlers xmi:id="_yPjL8EAVEembfJNLZI9wiA" elementId="eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.MoveDefinedTermHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.MoveDefinedTermHandler" command="_d6YpoEAVEembfJNLZI9wiA"/>
       <menus xsi:type="menu:PopupMenu" xmi:id="_CoJioIdQEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.popupmenu.termeditor">
         <children xsi:type="menu:Menu" xmi:id="_DR1Y0IdQEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.menu.menulabel0" label="%menu.label.0">
             <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_2G0O8IfREeecZ4F2Y9Z0Og" coreExpressionId="isShowExperimentalFeatures"/>
           </children>
         </children>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_W94ssIdQEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.commandlabel14" label="%command.label.14" command="_Z_XgsIdQEeecZ4F2Y9Z0Og"/>
+        <children xsi:type="menu:DynamicMenuContribution" xmi:id="_rzOGUEBGEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.editor.descriptiveDataSetNavigator.dynamicmenucontribution.cdmViewer" label="%handledmenuitem.label.52" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.CdmViewerContextMenuE4"/>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_YBargFvsEeuH0dRH_QHgrQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.19"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_aHm7kEAVEembfJNLZI9wiA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.moveto" label="%handledmenuitem.label.15" command="_d6YpoEAVEembfJNLZI9wiA"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_W94ssIdQEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.commandlabel14" label="%command.label.14" command="_Z_XgsIdQEeecZ4F2Y9Z0Og"/>
       </menus>
     </elements>
-    <elements xsi:type="basic:PartDescriptor" xmi:id="_HBpj0KkNEeejedk4mZQIGw" elementId="eu.etaxonomy.taxeditor.view.dataimport.e4.SpecimenImportViewE4" label="%view.name.7" allowMultiple="true" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.dataimport.e4.SpecimenImportViewE4">
+    <elements xsi:type="basic:PartDescriptor" xmi:id="_HBpj0KkNEeejedk4mZQIGw" elementId="eu.etaxonomy.taxeditor.view.dataimport.e4.SpecimenImportView" label="%view.name.7" allowMultiple="true" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.dataimport.e4.SpecimenImportView">
       <tags>nonRestore</tags>
     </elements>
-    <elements xsi:type="basic:PartDescriptor" xmi:id="_N9AMYKkNEeejedk4mZQIGw" elementId="eu.etaxonomy.taxeditor.view.dataimport.e4.GbifResponseImportViewE4" label="%view.name.8" allowMultiple="true" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.dataimport.e4.GbifResponseImportViewE4">
+    <elements xsi:type="basic:PartDescriptor" xmi:id="_N9AMYKkNEeejedk4mZQIGw" elementId="eu.etaxonomy.taxeditor.view.dataimport.e4.GbifResponseImportView" label="%view.name.8" allowMultiple="true" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.dataimport.e4.GbifResponseImportView">
       <tags>nonRestore</tags>
     </elements>
     <elements xsi:type="basic:PartDescriptor" xmi:id="_aT37QM3UEeeznb_sS6rfAQ" elementId="eu.etaxonomy.taxeditor.store.partdescriptor.SearchDialog" label="%view.name.9" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.ui.dialog.selection.SearchDialog"/>
     <elements xsi:type="basic:PartDescriptor" xmi:id="_XV6gkEbOEeiER_VRS0L7wA" elementId="eu.etaxonomy.taxeditor.view.webimport.termimport.GfBioTerminologyImportPart" label="%partdescriptor.label.1" tooltip="%partdescriptor.tooltip.1" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.webimport.termimport.GfBioTerminologyImportPart"/>
     <elements xsi:type="basic:PartDescriptor" xmi:id="_namYwB7xEemDKJyLc5CJfQ" elementId="eu.etaxonomy.taxeditor.store.partdescriptor.termsearch" label="%partdescriptor.label.2" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.search.facet.term.TermSearch"/>
     <elements xsi:type="basic:PartDescriptor" xmi:id="_mbegMDNMEemOn_75IU-Tvg" elementId="eu.etaxonomy.taxeditor.store.partdescriptor.occurencesearch" label="%partdescriptor.label.3" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.search.facet.occurrence.OccurrenceSearch"/>
-    <elements xsi:type="basic:PartDescriptor" xmi:id="_-y1CcMKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditor" label="%partdescriptor.label.featureTreeEditor" tooltip="%partdescriptor.label.featureTreeEditor" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditor">
+    <elements xsi:type="basic:PartDescriptor" xmi:id="_-y1CcMKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.termtree.e4.termTreeEditor" label="%partdescriptor.label.featureTreeEditor" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/hierarchical.gif" tooltip="" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.termtree.e4.TermTreeEditor">
       <tags>nonRestore</tags>
-      <handlers xmi:id="_-y1CccKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
-      <handlers xmi:id="_-y1CcsKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandlers" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandler" command="_3mqzkCFdEeiVXriJfxPIuA"/>
-      <handlers xmi:id="_-y1Cc8KPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" command="_I_yx4GcqEee0qLTtA2ZpVQ"/>
-      <handlers xmi:id="_-y1CdMKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" command="_oftL0GceEee0qLTtA2ZpVQ"/>
-      <handlers xmi:id="_-y1CdcKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" command="_xyZ4oPhmEei8uPv-H2wqnw"/>
-      <menus xsi:type="menu:PopupMenu" xmi:id="_-y1CeMKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor">
+      <handlers xmi:id="_-y1CccKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.termtree.e4.handler.CreateTermTreeHandler" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
+      <handlers xmi:id="_-y1CcsKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandlers" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.termtree.e4.handler.RemoveTermTreeHandler" command="_3mqzkCFdEeiVXriJfxPIuA"/>
+      <handlers xmi:id="_-y1Cc8KPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.termtree.e4.handler.TermTreeExportWordHandler" command="_I_yx4GcqEee0qLTtA2ZpVQ"/>
+      <handlers xmi:id="_-y1CdMKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.termtree.e4.handler.AddTermHandler" command="_oftL0GceEee0qLTtA2ZpVQ"/>
+      <handlers xmi:id="_-y1CdcKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.termtree.e4.handler.TermTreeExportOntologyHandler" command="_xyZ4oPhmEei8uPv-H2wqnw"/>
+      <menus xsi:type="menu:PopupMenu" xmi:id="_-y1CeMKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.popupmenu.termTreeEditor">
         <children xsi:type="menu:HandledMenuItem" xmi:id="_-y1CecKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.newfeaturetree" label="%handledmenuitem.label.1" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
         <children xsi:type="menu:MenuSeparator" xmi:id="_-y1CgMKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.5"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_-y1CgcKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.addchildfeature" label="%handledmenuitem.label.2" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_aPYxsBezEeiXusClKZjycQ"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_-y1CgsKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.addFeature" label="%handledmenuitem.label.3" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_oftL0GceEee0qLTtA2ZpVQ"/>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_f9QgsFvsEeuH0dRH_QHgrQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.20"/>
+        <children xsi:type="menu:DynamicMenuContribution" xmi:id="_NOtlsEBHEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.editor.descriptiveDataSetNavigator.dynamicmenucontribution.cdmViewer" label="%handledmenuitem.label.52" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.CdmViewerContextMenuE4"/>
         <children xsi:type="menu:MenuSeparator" xmi:id="_-y1Cg8KPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.8"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_-y1ChMKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.paste" label="%handledmenuitem.label.12" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/paste_edit.png" command="_xDk5kNjyEeidDMMI9xTsbQ"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_-y1ChcKPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.copy" label="%handledmenuitem.label.13" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/copy_edit.png" command="_cMyQ4NjyEeidDMMI9xTsbQ"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_-y1Cj8KPEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.deletefeaturetree" label="%handledmenuitem.label.6" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_3mqzkCFdEeiVXriJfxPIuA"/>
       </menus>
     </elements>
-    <elements xsi:type="basic:PartDescriptor" xmi:id="_J-3UEEqgEeeN-dEYnw7m3g" elementId="eu.etaxonomy.taxeditor.featuretree.e4.CharacterTreeEditor" label="%partdescriptor.label.4" tooltip="%partdescriptor.label.4" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.CharacterTreeEditor">
-      <tags>nonRestore</tags>
-      <handlers xmi:id="_DYhGACHXEeiP8eNo0PEm1g" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.character.CreateFeatureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
-      <handlers xmi:id="_Bb0TwCFeEeiVXriJfxPIuA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.character.RemoveFeatureTreeHandlers" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandler" command="_3mqzkCFdEeiVXriJfxPIuA"/>
-      <handlers xmi:id="_VSc2UGcqEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.character.FeatureTreeExportWordHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" command="_I_yx4GcqEee0qLTtA2ZpVQ"/>
-      <handlers xmi:id="_3wq0cGceEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.character.AddFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" command="_oftL0GceEee0qLTtA2ZpVQ"/>
-      <handlers xmi:id="_DcmpgPhnEei8uPv-H2wqnw" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.character.FeatureTreeExportOntologyHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" command="_xyZ4oPhmEei8uPv-H2wqnw"/>
-      <menus xsi:type="menu:PopupMenu" xmi:id="__Jwh4GceEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor">
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_GuuM0CHXEeiP8eNo0PEm1g" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.character.newfeaturetree" label="%handledmenuitem.label.1" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_eIB1kCHXEeiP8eNo0PEm1g" elementId="eu.etaxonomy.taxeditor.store.menuseparator.character.5"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_jr4E0Be0EeiXusClKZjycQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.character.addchildfeature" label="%handledmenuitem.label.2" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_aPYxsBezEeiXusClKZjycQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_eWBz0GcjEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.character.addFeature" label="%handledmenuitem.label.3" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_oftL0GceEee0qLTtA2ZpVQ"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_XtPjcNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.8"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_G_IOENj3EeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.character.paste" label="%handledmenuitem.label.12" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/paste_edit.png" command="_xDk5kNjyEeidDMMI9xTsbQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_QXkWYNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.character.copy" label="%handledmenuitem.label.13" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/copy_edit.png" command="_cMyQ4NjyEeidDMMI9xTsbQ"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_So5f0NjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.character.7"/>
-        <children xsi:type="menu:Menu" xmi:id="_jPawUPhmEei8uPv-H2wqnw" elementId="eu.etaxonomy.taxeditor.store.menu.character.export" label="%menu.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif">
-          <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_QGF5kCRZEemBIp_HwXtqoA" coreExpressionId="isFeatureTree"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_7vaEcGcqEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.character.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_qcmvwPhmEei8uPv-H2wqnw" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.character.exportFeatureTree" label="%handledmenuitem.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_I_yx4GcqEee0qLTtA2ZpVQ">
-            <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_qcmvwfhmEei8uPv-H2wqnw" coreExpressionId="isShowExperimentalFeatures"/>
-          </children>
-        </children>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_TFRL0CFgEeiVXriJfxPIuA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.character.0"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_Beb6QGcfEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.character.removeFeature" label="%handledmenuitem.label.5" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_fNBtQGcjEee0qLTtA2ZpVQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_pw1FICFdEeiVXriJfxPIuA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.character.deletefeaturetree" label="%handledmenuitem.label.6" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_3mqzkCFdEeiVXriJfxPIuA"/>
-      </menus>
-    </elements>
-    <elements xsi:type="basic:PartDescriptor" xmi:id="_D2OD0MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.StructureTreeEditor" label="%partdescriptor.label.5" tooltip="%partdescriptor.label.5" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.StructureTreeEditor">
-      <tags>nonRestore</tags>
-      <handlers xmi:id="_D2OD0cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.structure.CreateFeatureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
-      <handlers xmi:id="_D2OD0sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.structure.RemoveFeatureTreeHandlers" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandler" command="_3mqzkCFdEeiVXriJfxPIuA"/>
-      <handlers xmi:id="_D2OD08KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.structure.FeatureTreeExportWordHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" command="_I_yx4GcqEee0qLTtA2ZpVQ"/>
-      <handlers xmi:id="_D2OD1MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.structure.AddFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" command="_oftL0GceEee0qLTtA2ZpVQ"/>
-      <handlers xmi:id="_D2OD1cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.structure.FeatureTreeExportOntologyHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" command="_xyZ4oPhmEei8uPv-H2wqnw"/>
-      <menus xsi:type="menu:PopupMenu" xmi:id="_D2OD2MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor">
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD2cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.structure.newfeaturetree" label="%handledmenuitem.label.1" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_D2OD4MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.structure.5"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD4cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.structure.addchildfeature" label="%handledmenuitem.label.2" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_aPYxsBezEeiXusClKZjycQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD4sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.structure.addFeature" label="%handledmenuitem.label.3" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_oftL0GceEee0qLTtA2ZpVQ"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_D2OD48KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.structure.8"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD5MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.structure.paste" label="%handledmenuitem.label.12" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/paste_edit.png" command="_xDk5kNjyEeidDMMI9xTsbQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD5cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.structure.copy" label="%handledmenuitem.label.13" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/copy_edit.png" command="_cMyQ4NjyEeidDMMI9xTsbQ"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_D2OD5sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.structure.7"/>
-        <children xsi:type="menu:Menu" xmi:id="_D2OD58KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menu.structure.export" label="%menu.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif">
-          <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_D2OD6MKQEem1vZq1LletZg" coreExpressionId="isFeatureTree"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD6cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.structure.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD68KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.structure.exportFeatureTree" label="%handledmenuitem.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_I_yx4GcqEee0qLTtA2ZpVQ">
-            <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_D2OD7MKQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
-          </children>
-        </children>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_D2OD7cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.structure.0"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD7sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.structure.removeFeature" label="%handledmenuitem.label.5" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_fNBtQGcjEee0qLTtA2ZpVQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_D2OD78KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.structure.deletefeaturetree" label="%handledmenuitem.label.6" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_3mqzkCFdEeiVXriJfxPIuA"/>
-      </menus>
-    </elements>
-    <elements xsi:type="basic:PartDescriptor" xmi:id="_HJt04MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.PropertyTreeEditor" label="%partdescriptor.label.6" tooltip="%partdescriptor.label.6" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.PropertyTreeEditor">
-      <tags>nonRestore</tags>
-      <handlers xmi:id="_HJt04cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.property.CreateFeatureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
-      <handlers xmi:id="_HJt04sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.property.RemoveFeatureTreeHandlers" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandler" command="_3mqzkCFdEeiVXriJfxPIuA"/>
-      <handlers xmi:id="_HJt048KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.property.FeatureTreeExportWordHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" command="_I_yx4GcqEee0qLTtA2ZpVQ"/>
-      <handlers xmi:id="_HJt05MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.property.AddFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" command="_oftL0GceEee0qLTtA2ZpVQ"/>
-      <handlers xmi:id="_HJt05cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.property.FeatureTreeExportOntologyHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" command="_xyZ4oPhmEei8uPv-H2wqnw"/>
-      <menus xsi:type="menu:PopupMenu" xmi:id="_HJt06MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor">
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_HJt06cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.property.newfeaturetree" label="%handledmenuitem.label.1" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_HJt08MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.property.5"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_HJt08cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.property.addchildfeature" label="%handledmenuitem.label.2" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_aPYxsBezEeiXusClKZjycQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_HJt08sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.property.addFeature" label="%handledmenuitem.label.3" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_oftL0GceEee0qLTtA2ZpVQ"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_HJt088KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.property.8"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_HJt09MKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.property.paste" label="%handledmenuitem.label.12" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/paste_edit.png" command="_xDk5kNjyEeidDMMI9xTsbQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_HJt09cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.property.copy" label="%handledmenuitem.label.13" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/copy_edit.png" command="_cMyQ4NjyEeidDMMI9xTsbQ"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_HJt09sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.property.7"/>
-        <children xsi:type="menu:Menu" xmi:id="_HJt098KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menu.property.export" label="%menu.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif">
-          <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_HJt0-MKQEem1vZq1LletZg" coreExpressionId="isFeatureTree"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_HJt0-cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.property.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_HJt0-8KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.property.exportFeatureTree" label="%handledmenuitem.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_I_yx4GcqEee0qLTtA2ZpVQ">
-            <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_HJt0_MKQEem1vZq1LletZg" coreExpressionId="isShowExperimentalFeatures"/>
-          </children>
-        </children>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_HJt0_cKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.property.0"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_HJt0_sKQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.property.removeFeature" label="%handledmenuitem.label.5" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_fNBtQGcjEee0qLTtA2ZpVQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_HJt0_8KQEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.property.deletefeaturetree" label="%handledmenuitem.label.6" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_3mqzkCFdEeiVXriJfxPIuA"/>
-      </menus>
-    </elements>
-    <elements xsi:type="basic:PartDescriptor" xmi:id="_whoc4PynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.PresenceAbsenceTreeEditor" label="%partdescriptor.label.7" tooltip="%partdescriptor.label.7" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.PresenceAbsenceTreeEditor">
-      <tags>nonRestore</tags>
-      <handlers xmi:id="_whoc4fynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.presenceAbsence.CreateFeatureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
-      <handlers xmi:id="_whoc4vynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.presenceAbsence.RemoveFeatureTreeHandlers" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandler" command="_3mqzkCFdEeiVXriJfxPIuA"/>
-      <handlers xmi:id="_whoc4_ynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.presenceAbsence.FeatureTreeExportWordHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" command="_I_yx4GcqEee0qLTtA2ZpVQ"/>
-      <handlers xmi:id="_whoc5PynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.presenceAbsence.AddFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" command="_oftL0GceEee0qLTtA2ZpVQ"/>
-      <handlers xmi:id="_whoc5fynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.presenceAbsence.FeatureTreeExportOntologyHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" command="_xyZ4oPhmEei8uPv-H2wqnw"/>
-      <menus xsi:type="menu:PopupMenu" xmi:id="_whoc5vynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor">
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_whoc5_ynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.presenceAbsence.newfeaturetree" label="%handledmenuitem.label.1" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_whoc6PynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.presenceAbsence.5"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_whoc6fynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.presenceAbsence.addchildfeature" label="%handledmenuitem.label.2" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_aPYxsBezEeiXusClKZjycQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_whoc6vynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.presenceAbsence.addFeature" label="%handledmenuitem.label.3" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_oftL0GceEee0qLTtA2ZpVQ"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_whoc6_ynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.presenceAbsence.8"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_whoc7PynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.presenceAbsence.paste" label="%handledmenuitem.label.12" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/paste_edit.png" command="_xDk5kNjyEeidDMMI9xTsbQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_whoc7fynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.presenceAbsence.copy" label="%handledmenuitem.label.13" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/copy_edit.png" command="_cMyQ4NjyEeidDMMI9xTsbQ"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_whoc7vynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.presenceAbsence.7"/>
-        <children xsi:type="menu:Menu" xmi:id="_whoc7_ynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menu.presenceAbsence.export" label="%menu.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif">
-          <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_whoc8PynEemPDYtIH5gauA" coreExpressionId="isFeatureTree"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_whoc8fynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.presenceAbsence.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw">
-          </children>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_whoc8_ynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.presenceAbsence.exportFeatureTree" label="%handledmenuitem.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_I_yx4GcqEee0qLTtA2ZpVQ">
-            <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_whoc9PynEemPDYtIH5gauA" coreExpressionId="isShowExperimentalFeatures"/>
-          </children>
-        </children>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_whoc9fynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.presenceAbsence.0"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_whoc9vynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.presenceAbsence.removeFeature" label="%handledmenuitem.label.5" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_fNBtQGcjEee0qLTtA2ZpVQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_whoc9_ynEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.presenceAbsence.deletefeaturetree" label="%handledmenuitem.label.6" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_3mqzkCFdEeiVXriJfxPIuA"/>
-      </menus>
-    </elements>
-    <elements xsi:type="basic:PartDescriptor" xmi:id="_jGX_YPysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.NamedAreaTreeEditor" label="%partdescriptor.label.8" tooltip="%partdescriptor.label.8" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.NamedAreaTreeEditor">
-      <tags>nonRestore</tags>
-      <handlers xmi:id="_jGX_YfysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.namedArea.CreateFeatureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
-      <handlers xmi:id="_jGX_YvysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.namedArea.RemoveFeatureTreeHandlers" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandler" command="_3mqzkCFdEeiVXriJfxPIuA"/>
-      <handlers xmi:id="_jGX_Y_ysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.namedArea.FeatureTreeExportWordHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" command="_I_yx4GcqEee0qLTtA2ZpVQ"/>
-      <handlers xmi:id="_jGX_ZPysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.namedArea.AddFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" command="_oftL0GceEee0qLTtA2ZpVQ"/>
-      <handlers xmi:id="_jGX_ZfysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.namedArea.FeatureTreeExportOntologyHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" command="_xyZ4oPhmEei8uPv-H2wqnw"/>
-      <menus xsi:type="menu:PopupMenu" xmi:id="_jGX_ZvysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor">
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_jGX_Z_ysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.namedArea.newfeaturetree" label="%handledmenuitem.label.1" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_jGX_aPysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.namedArea.5"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_jGX_afysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.namedArea.addchildfeature" label="%handledmenuitem.label.2" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_aPYxsBezEeiXusClKZjycQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_jGX_avysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.namedArea.addFeature" label="%handledmenuitem.label.3" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_oftL0GceEee0qLTtA2ZpVQ"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_jGX_a_ysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.namedArea.8"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_jGX_bPysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.namedArea.paste" label="%handledmenuitem.label.12" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/paste_edit.png" command="_xDk5kNjyEeidDMMI9xTsbQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_jGX_bfysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.namedArea.copy" label="%handledmenuitem.label.13" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/copy_edit.png" command="_cMyQ4NjyEeidDMMI9xTsbQ"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_jGX_bvysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.namedArea.7"/>
-        <children xsi:type="menu:Menu" xmi:id="_jGX_b_ysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menu.namedArea.export" label="%menu.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif">
-          <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_jGX_cPysEemPDYtIH5gauA" coreExpressionId="isFeatureTree"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_jGX_cfysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.namedArea.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw">
-          </children>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_jGX_c_ysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.namedArea.exportFeatureTree" label="%handledmenuitem.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_I_yx4GcqEee0qLTtA2ZpVQ">
-            <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_jGX_dPysEemPDYtIH5gauA" coreExpressionId="isShowExperimentalFeatures"/>
-          </children>
-        </children>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_jGX_dfysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.namedArea.0"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_jGX_dvysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.namedArea.removeFeature" label="%handledmenuitem.label.5" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_fNBtQGcjEee0qLTtA2ZpVQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_jGX_d_ysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.namedArea.deletefeaturetree" label="%handledmenuitem.label.6" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_3mqzkCFdEeiVXriJfxPIuA"/>
-      </menus>
-    </elements>
-    <elements xsi:type="basic:PartDescriptor" xmi:id="_jK89YPysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.RankTreeEditor" label="%partdescriptor.label.9" tooltip="%partdescriptor.label.9" allowMultiple="true" closeable="true" dirtyable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.RankTreeEditor">
-      <tags>nonRestore</tags>
-      <handlers xmi:id="_jK89YfysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.rank.CreateFeatureTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
-      <handlers xmi:id="_jK89YvysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.rank.RemoveFeatureTreeHandlers" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandler" command="_3mqzkCFdEeiVXriJfxPIuA"/>
-      <handlers xmi:id="_jK89Y_ysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.rank.FeatureTreeExportWordHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler" command="_I_yx4GcqEee0qLTtA2ZpVQ"/>
-      <handlers xmi:id="_jK89ZPysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.rank.AddFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler" command="_oftL0GceEee0qLTtA2ZpVQ"/>
-      <handlers xmi:id="_jK89ZfysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.rank.FeatureTreeExportOntologyHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler" command="_xyZ4oPhmEei8uPv-H2wqnw"/>
-      <menus xsi:type="menu:PopupMenu" xmi:id="_jK89ZvysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor">
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_jK89Z_ysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.rank.newfeaturetree" label="%handledmenuitem.label.1" iconURI="platform:/plugin/org.eclipse.ui/icons/full/etool16/new_wiz.png" command="_AJtnsCHXEeiP8eNo0PEm1g"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_jK89aPysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.rank.5"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_jK89afysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.rank.addchildfeature" label="%handledmenuitem.label.2" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_aPYxsBezEeiXusClKZjycQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_jK89avysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.rank.addFeature" label="%handledmenuitem.label.3" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_oftL0GceEee0qLTtA2ZpVQ"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_jK89a_ysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.rank.8"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_jK89bPysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.rank.paste" label="%handledmenuitem.label.12" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/paste_edit.png" command="_xDk5kNjyEeidDMMI9xTsbQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_jK89bfysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.rank.copy" label="%handledmenuitem.label.13" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/copy_edit.png" command="_cMyQ4NjyEeidDMMI9xTsbQ"/>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_jK89bvysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.rank.7"/>
-        <children xsi:type="menu:Menu" xmi:id="_jK89b_ysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menu.rank.export" label="%menu.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif">
-          <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_jK89cPysEemPDYtIH5gauA" coreExpressionId="isFeatureTree"/>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_jK89cfysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.rank.exportFeatureTreeOwl" label="%handledmenuitem.label.14" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_xyZ4oPhmEei8uPv-H2wqnw">
-          </children>
-          <children xsi:type="menu:HandledMenuItem" xmi:id="_jK89c_ysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.rank.exportFeatureTree" label="%handledmenuitem.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_I_yx4GcqEee0qLTtA2ZpVQ">
-            <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_jK89dPysEemPDYtIH5gauA" coreExpressionId="isShowExperimentalFeatures"/>
-          </children>
-        </children>
-        <children xsi:type="menu:MenuSeparator" xmi:id="_jK89dfysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.rank.0"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_jK89dvysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.rank.removeFeature" label="%handledmenuitem.label.5" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_fNBtQGcjEee0qLTtA2ZpVQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_jK89d_ysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.rank.deletefeaturetree" label="%handledmenuitem.label.6" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/delete.gif" command="_3mqzkCFdEeiVXriJfxPIuA"/>
+    <elements xsi:type="basic:PartDescriptor" xmi:id="_WsXuMJ1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.view.remoteservers" label="Remote Servers" iconURI="" closeable="true" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.remoteserver.CdmRemoteServerViewPart">
+      <handlers xmi:id="_WsXuMZ1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.handler.CreateRemoteServerHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.remoteserver.handler.CreateRemoteServerHandler" command="_nYPOkJ1XEe2Oid79gMgNzw"/>
+      <handlers xmi:id="_WsXuMp1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.handler.EditRemoteServerHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.remoteserver.handler.EditRemoteServerHandler" command="_m1wMkJ1XEe2Oid79gMgNzw"/>
+      <handlers xmi:id="_WsXuNJ1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.handler.DeleteRemoteServerHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.remoteserver.handler.DeleteRemoteServerHandler" command="_lvyqEJ1XEe2Oid79gMgNzw"/>
+      <handlers xmi:id="_l8zFcNkaEe231IdeAjpAvg" elementId="eu.etaxonomy.taxeditor.local.handler.MoveUpRemoteServerHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.remoteserver.handler.MoveUpRemoteServerHandler" command="_tEWW8NkaEe231IdeAjpAvg"/>
+      <handlers xmi:id="_8KIN0NkbEe231IdeAjpAvg" elementId="eu.etaxonomy.taxeditor.local.handler.MoveDownRemoteServerHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.remoteserver.handler.MoveDownRemoteServerHandler" command="_-iLDQNkbEe231IdeAjpAvg"/>
+      <menus xsi:type="menu:PopupMenu" xmi:id="_WsXuNZ1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.popupmenu.remoteServerViewPart">
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_WsXuNp1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.handledmenuitem.new" label="New" command="_nYPOkJ1XEe2Oid79gMgNzw"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_WsXuN51XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.handledmenuitem.edit" label="Edit" command="_m1wMkJ1XEe2Oid79gMgNzw"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_WsXuOZ1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.handledmenuitem.delete" label="Delete" command="_lvyqEJ1XEe2Oid79gMgNzw"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_lMYVINkaEe231IdeAjpAvg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.moveup" label="Move up" command="_tEWW8NkaEe231IdeAjpAvg"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_6bF5INkbEe231IdeAjpAvg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.movedown" label="Move down" command="_-iLDQNkbEe231IdeAjpAvg"/>
       </menus>
     </elements>
   </fragments>
     <elements xsi:type="commands:Command" xmi:id="_oftL0GceEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.addFeature" commandName="%command.commandname.1" description="%command.description.1"/>
     <elements xsi:type="commands:Command" xmi:id="_fNBtQGcjEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.removeFeature" commandName="%command.commandname.2" description="%command.description.2"/>
     <elements xsi:type="commands:Command" xmi:id="_I_yx4GcqEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.exportTreeWord" commandName="%command.commandname.3"/>
-    <elements xsi:type="commands:Command" xmi:id="_efb88IcsEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.change" commandName="%command.name"/>
-    <elements xsi:type="commands:Command" xmi:id="_cs5L0IctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.edit" commandName="%command.name.0"/>
-    <elements xsi:type="commands:Command" xmi:id="_o0HcUIctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.clone" commandName="%command.name.8"/>
-    <elements xsi:type="commands:Command" xmi:id="_yJiTkIctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.create" commandName="%command.name.1"/>
-    <elements xsi:type="commands:Command" xmi:id="_-g_YcIctEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.view.datasource.delete" commandName="%command.name.13"/>
-    <elements xsi:type="commands:Command" xmi:id="_ShWvcIcuEee-HITNnU9cVw" elementId="eu.etaxonomy.taxeditor.store.datasource.update" commandName="%command.name.3"/>
     <elements xsi:type="commands:Command" xmi:id="_qEMrsIdPEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.openDefinedTermEditor" commandName="%command.name.5"/>
     <elements xsi:type="commands:Command" xmi:id="_5mFFMIdPEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.editor.definedTerms.newTermVocabulary" commandName="%command.name.7"/>
     <elements xsi:type="commands:Command" xmi:id="_Z_XgsIdQEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.editor.definedTerms.delete" commandName="%command.name.14"/>
     <elements xsi:type="commands:Command" xmi:id="_qAEkYKmjEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.store.command.importExcelTaxa" commandName="%wizard.name.2"/>
     <elements xsi:type="commands:Command" xmi:id="_tBCr8KmsEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.store.command.importRisReference" commandName="%wizard.name.24"/>
     <elements xsi:type="commands:Command" xmi:id="_bLGTMKmuEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.store.command.importSdd" commandName="%wizard.name.4"/>
-    <elements xsi:type="commands:Command" xmi:id="_2JV9IKnAEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.store.command.importExcelSpecimen" commandName="%wizard.name.5"/>
     <elements xsi:type="commands:Command" xmi:id="_OQ9n8KnCEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.store.command.importTcs" commandName="%wizard.name"/>
     <elements xsi:type="commands:Command" xmi:id="_L0xNEKqYEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.command.exportJaxb" commandName="%wizard.name.6"/>
     <elements xsi:type="commands:Command" xmi:id="_ybovsKqZEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.command.exportSdd" commandName="%wizard.name.8"/>
     <elements xsi:type="commands:Command" xmi:id="_zDy74KqZEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.command.exportCsvName" commandName="%wizard.name.19"/>
     <elements xsi:type="commands:Command" xmi:id="_zIKegKqZEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.command.exportCsvPrint" commandName="%wizard.name.20"/>
     <elements xsi:type="commands:Command" xmi:id="_zLKvMKqZEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.command.exportCdmLight" commandName="%wizard.name.22"/>
-    <elements xsi:type="commands:Command" xmi:id="_R00rwK2dEeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.store.operations.showRemotingLoginWindow" commandName="%command.name.CONNECT"/>
+    <elements xsi:type="commands:Command" xmi:id="_R00rwK2dEeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.store.operations.showRemotingLoginWindow" commandName="%command.label.CONNECT"/>
     <elements xsi:type="commands:Command" xmi:id="_S868QK2dEeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.store.operations.showLoginWindow" commandName="%command.name.4"/>
     <elements xsi:type="commands:Command" xmi:id="_bfjZwK2fEeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler" commandName="%command.name.11"/>
-    <elements xsi:type="commands:Command" xmi:id="_KQP_sK2gEeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.store.operations.reconnect" commandName="%command.name.RE_CONNECT"/>
+    <elements xsi:type="commands:Command" xmi:id="_KQP_sK2gEeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.store.operations.reconnect" commandName="%command.label.RE_CONNECT"/>
     <elements xsi:type="commands:Command" xmi:id="_SXZF8K2gEeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.store.openPasswordWizzard" commandName="%command.name.10"/>
     <elements xsi:type="commands:Command" xmi:id="_dQ0swL-rEeegz7IDD8MJaw" elementId="eu.etaxonomy.taxeditor.store.open.InspectSessionsDialog" commandName="%command.commandname.5"/>
     <elements xsi:type="commands:Command" xmi:id="_jSJrsBWPEeiazYUJirF0Pw" elementId="eu.etaxonomy.taxeditor.store.command.update" commandName="%command.commandname.6"/>
     <elements xsi:type="commands:Command" xmi:id="_QnWnMGZ-Eemew5ARzf3JfA" elementId="eu.etaxonomy.taxeditor.store.open.OpenDistributionAreaWizardHandler" commandName="%command.commandname.19"/>
     <elements xsi:type="commands:Command" xmi:id="_WISF0H1LEem6uMX-L-maww" elementId="eu.etaxonomy.taxeditor.store.command.export.term.owl" commandName="%command.commandname.21"/>
     <elements xsi:type="commands:Command" xmi:id="_sKIVINL6Eem35L6JVBxwwA" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenCommonNameAreaWizardAdminHandler" commandName="%command.name.120"/>
+    <elements xsi:type="commands:Command" xmi:id="_qENOgP5VEeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.store.command.nacherweiterungensuchen" commandName="Nach Erweiterungen suchen"/>
+    <elements xsi:type="commands:Command" xmi:id="_n5NykDoqEeud_N8qGaxX2Q" elementId="eu.etaxonomy.taxeditor.store.command.OpenDefinedTermEditor" commandName="Open Defined Term Editor">
+      <parameters xmi:id="_v55EcDoqEeud_N8qGaxX2Q" elementId="eu.etaxonomy.taxeditor.store.commandparameter.termType" name="TermType" optional="false"/>
+    </elements>
+    <elements xsi:type="commands:Command" xmi:id="_8aaicD4fEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.command.OpenTermTreeEditor" commandName="Open Term Tree Editor">
+      <parameters xmi:id="_8aaicT4fEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.commandparameter.termType" name="TermType" optional="false"/>
+    </elements>
+    <elements xsi:type="commands:Command" xmi:id="_MkieEMKuEeufc9n3VJNAaA" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.createFeatureTree_flat" commandName="%command.commandname.flat_tree"/>
+    <elements xsi:type="commands:Command" xmi:id="_ukIJAMKuEeufc9n3VJNAaA" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.createFeatureTree_ordered" commandName="%command.commandname.ordered_tree"/>
+    <elements xsi:type="commands:Command" xmi:id="_lB0JwJ1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.command.cloneRemoteServer" commandName="Clone"/>
+    <elements xsi:type="commands:Command" xmi:id="_lvyqEJ1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.command.deleteRemoteServer" commandName="Delete"/>
+    <elements xsi:type="commands:Command" xmi:id="_m1wMkJ1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.command.editRemoteServer" commandName="Edit"/>
+    <elements xsi:type="commands:Command" xmi:id="_nYPOkJ1XEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.command.newRemoteServer" commandName="New"/>
+    <elements xsi:type="commands:Command" xmi:id="_tEWW8NkaEe231IdeAjpAvg" elementId="eu.etaxonomy.taxeditor.local.command.moveUpRemoteServer" commandName="Move up"/>
+    <elements xsi:type="commands:Command" xmi:id="_-iLDQNkbEe231IdeAjpAvg" elementId="eu.etaxonomy.taxeditor.local.command.moveDownRemoteServer" commandName="Move down"/>
+    <elements xsi:type="commands:Command" xmi:id="_lbmBoEi_Ee6gZ65AByRHxQ" elementId="eu.etaxonomy.taxeditor.store.command.exportColDP" commandName="%wizard.name.122"/>
+    <elements xsi:type="commands:Command" xmi:id="_1BzvkLU-Ee6JFM-mIdEBFA" elementId="eu.etaxonomy.taxeditor.store.command.exportWfoBackbone" commandName="%wizard.name.123"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_swGH0GhvEee3K4uKJljEYg" featurename="handlers" parentElementId="xpath:/">
-    <elements xsi:type="commands:Handler" xmi:id="_rVEdIGcjEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureHandler" command="_fNBtQGcjEee0qLTtA2ZpVQ"/>
-    <elements xsi:type="commands:Handler" xmi:id="_tyCPYIdPEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.OpenDefinedTermEditorHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.OpenDefinedTermEditorHandlerE4" command="_qEMrsIdPEeecZ4F2Y9Z0Og"/>
+    <elements xsi:type="commands:Handler" xmi:id="_rVEdIGcjEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.termtree.e4.handler.RemoveTermHandler" command="_fNBtQGcjEee0qLTtA2ZpVQ"/>
+    <elements xsi:type="commands:Handler" xmi:id="_tyCPYIdPEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.OpenDefinedTermEditorHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.OpenDefinedTermEditorHandlerE4" command="_n5NykDoqEeud_N8qGaxX2Q"/>
     <elements xsi:type="commands:Handler" xmi:id="_XF8ogJMBEeeR4YRjNqCKeA" elementId="eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenTaxonNodeWizardHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenTaxonNodeWizardHandlerE4" command="_cE510JMBEeeR4YRjNqCKeA"/>
     <elements xsi:type="commands:Handler" xmi:id="_8HUM8JMCEeeR4YRjNqCKeA" elementId="eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenClassificationWizardHandlerE4" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenClassificationWizardHandlerE4" command="_zJ4-8JMCEeeR4YRjNqCKeA"/>
     <elements xsi:type="commands:Handler" xmi:id="_fKcuoKjzEeejedk4mZQIGw" elementId="eu.etaxonomy.taxeditor.handler.defaultHandler.OpenReferencingObjectsViewHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.defaultHandler.OpenReferencingObjectsViewHandler" command="_l-AGEKjzEeejedk4mZQIGw"/>
     <elements xsi:type="commands:Handler" xmi:id="_wvx9oKmjEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.io.e4.excel.taxa.OpenExcelTaxaImportWizard" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.io.e4.in.excel.taxa.OpenExcelTaxaImportWizard" command="_qAEkYKmjEeeTAPHmaMLwQQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_96ANIKmsEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.io.e4.ris.OpenRisImportWizard" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.io.e4.in.ris.OpenRisImportWizard" command="_tBCr8KmsEeeTAPHmaMLwQQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_do2IAKmuEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.io.e4.sdd.OpenSddImportWizard" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.io.e4.in.sdd.OpenSddImportWizard" command="_bLGTMKmuEeeTAPHmaMLwQQ"/>
-    <elements xsi:type="commands:Handler" xmi:id="_6BmBEKnAEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.io.e4.excel.specimen.OpenExcelSpecimenImportWizard" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.io.e4.in.excel.specimen.OpenExcelSpecimenImportWizard" command="_2JV9IKnAEeeTAPHmaMLwQQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_Q8Z6gKnCEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.io.e4.in.tcs.OpenTcsImportWizard" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.io.e4.in.tcs.OpenTcsImportWizard" command="_OQ9n8KnCEeeTAPHmaMLwQQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_SciLQKqYEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.io.e4.out.csv.OpenCsvExportWizard" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.io.e4.out.csv.OpenCsvExportWizard" command="_y_uUMKqZEeeXcJGhyhlrKA"/>
     <elements xsi:type="commands:Handler" xmi:id="_SOrDgKqaEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.io.e4.out.jaxb.OpenJaxbExportWizard" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.io.e4.out.jaxb.OpenJaxbExportWizard" command="_L0xNEKqYEeeXcJGhyhlrKA"/>
     <elements xsi:type="commands:Handler" xmi:id="_VBYX4MiQEeiKErB3UVzQug" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenDistributionStausWizardAdminHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenDistributionStatusWizardAdminHandler" command="_tPtdwMiIEeiKErB3UVzQug"/>
     <elements xsi:type="commands:Handler" xmi:id="_jnQb8MrcEeiKErB3UVzQug" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenCommonNameAreaWizardHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenCommonNameAreaWizardAdminHandler" command="_tRsg8MrcEeiKErB3UVzQug"/>
     <elements xsi:type="commands:Handler" xmi:id="_H_c_EEq2EeeN-dEYnw7m3g" elementId="eu.etaxonomy.taxeditor.featuretree.handler.SaveHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/eu.etaxonomy.taxeditor.workbench.SaveHandler" command="_LlbAMEq2EeeN-dEYnw7m3g"/>
-    <elements xsi:type="commands:Handler" xmi:id="_hPTxMBezEeiXusClKZjycQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.AddChildFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddChildFeatureHandler" command="_aPYxsBezEeiXusClKZjycQ"/>
-    <elements xsi:type="commands:Handler" xmi:id="_i-FlkNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CopyFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CopyFeatureHandler" command="_cMyQ4NjyEeidDMMI9xTsbQ"/>
-    <elements xsi:type="commands:Handler" xmi:id="_tzQ_YNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.PasteFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.PasteFeatureHandler" command="_xDk5kNjyEeidDMMI9xTsbQ"/>
+    <elements xsi:type="commands:Handler" xmi:id="_hPTxMBezEeiXusClKZjycQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.AddChildFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.termtree.e4.handler.AddChildTermHandler" command="_aPYxsBezEeiXusClKZjycQ"/>
+    <elements xsi:type="commands:Handler" xmi:id="_i-FlkNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CopyFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.termtree.e4.handler.CopyTermHandler" command="_cMyQ4NjyEeidDMMI9xTsbQ"/>
+    <elements xsi:type="commands:Handler" xmi:id="_tzQ_YNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.PasteFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.termtree.e4.handler.PasteTermHandler" command="_xDk5kNjyEeidDMMI9xTsbQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_xWlngO5vEeizn7bmbAeBkw" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenDistributionStausWizardHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenDistributionStatusWizardHandler" command="_Za5DYO5vEeizn7bmbAeBkw"/>
     <elements xsi:type="commands:Handler" xmi:id="_i4yZAD8zEemTy7SLZkowuQ" elementId="eu.etaxonomy.taxeditor.store.handler.0" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.OpenDatabaseRepairWizardHandler" command="_qYxw8D85EemTy7SLZkowuQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_PugRQD86EemTy7SLZkowuQ" elementId="eu.etaxonomy.taxeditor.store.handler.1" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.OpenUpdateSortIndicesHandler" command="_VUQY0D86EemTy7SLZkowuQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_iKdcQGdoEemm7Ie9EDdklA" elementId="eu.etaxonomy.taxeditor.io.e4.in.owl.OpenOwlImportWizard" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.io.e4.in.owl.OpenOwlImportWizard" command="_Z7vHUGdoEemm7Ie9EDdklA"/>
-    <elements xsi:type="commands:Handler" xmi:id="_e-sBgGZwEemew5ARzf3JfA" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenDistributionStatusPerAreaWizardHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenDistributionPerAreaStatusWizardHandler" command="_lJi2sGZvEemew5ARzf3JfA"/>
+    <elements xsi:type="commands:Handler" xmi:id="_e-sBgGZwEemew5ARzf3JfA" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenDistributionStatusPerAreaWizardHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenDistributionPerAreaStatusAdminWizardHandler" command="_lJi2sGZvEemew5ARzf3JfA"/>
     <elements xsi:type="commands:Handler" xmi:id="_XxpDoGZ-Eemew5ARzf3JfA" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenDistributionAreaWizardHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenDistributionAreaWizardHandler" command="_QnWnMGZ-Eemew5ARzf3JfA"/>
     <elements xsi:type="commands:Handler" xmi:id="_nhGLwH1LEem6uMX-L-maww" elementId="eu.etaxonomy.taxeditor.io.e4.out.owl.OpenOwlTermExportWizard" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.io.e4.out.owl.OpenOwlTermExportWizard" command="_WISF0H1LEem6uMX-L-maww"/>
     <elements xsi:type="commands:Handler" xmi:id="_3AxAINL9Eem35L6JVBxwwA" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenCommonNameAreaWizardAdminHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenCommonNameAreaWizardAdminHandler" command="_sKIVINL6Eem35L6JVBxwwA"/>
+    <elements xsi:type="commands:Handler" xmi:id="_wSjnIP5VEeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.store.handler.searchForPlugin" command="_qENOgP5VEeqwiqpCwftRog"/>
+    <elements xsi:type="commands:Handler" xmi:id="_4kk8oDoqEeud_N8qGaxX2Q" elementId="eu.etaxonomy.taxeditor.store.OpenDefinedTermHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.OpenDefinedTermEditorHandlerE4" command="_qEMrsIdPEeecZ4F2Y9Z0Og"/>
+    <elements xsi:type="commands:Handler" xmi:id="_4GeBAD4fEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.OpenTermTreeHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.termtree.e4.handler.OpenTermTreeEditorHandler" command="_8aaicD4fEeuM4JU-Ch98ZA"/>
+    <elements xsi:type="commands:Handler" xmi:id="_oEReoEjAEe6gZ65AByRHxQ" elementId="eu.etaxonomy.taxeditor.io.e4.out.cdmlight.OpenColDPExportWizard" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.io.e4.out.col.OpenColExportWizard" command="_lbmBoEi_Ee6gZ65AByRHxQ"/>
+    <elements xsi:type="commands:Handler" xmi:id="_rng_YLU-Ee6JFM-mIdEBFA" elementId="eu.etaxonomy.taxeditor.io.e4.out.dwca.OpenWfoBackboneExportWizard" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.io.e4.out.wfo.OpenWfoBackboneExportWizard" command="_1BzvkLU-Ee6JFM-mIdEBFA"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_qT4hgIfTEeecZ4F2Y9Z0Og" featurename="children" parentElementId="eu.etaxonomy.taxeditor.workbench.menu.window" positionInList="before:eu.etaxonomy.taxeditor.application.windowMenu.last">
     <elements xsi:type="menu:Menu" xmi:id="_LT3P8IfcEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.menu.termeditor" label="%menu.label.1">
       <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_1xVggMTDEemAeKumL6iTpg" coreExpressionId="isCdmStoreConnected"/>
-      <children xsi:type="menu:DynamicMenuContribution" xmi:id="_HIptYIfUEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.dynamicmenucontribution.0" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.editor.definedterm.e4.DefinedTermMenuE4"/>
-      <children xsi:type="menu:MenuSeparator" xmi:id="_yRINcIfqEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.menuseparator.3"/>
+      <children xsi:type="menu:Menu" xmi:id="_umxYEDocEeuzzbCHEqs6jg" elementId="eu.etaxonomy.taxeditor.store.menu." label="%command.label.12">
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_46o0kDocEeuzzbCHEqs6jg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.features" label="%handledmenuitem.label.24" tooltip="%handledmenuitem.label.24" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_UQRgQDouEeud_N8qGaxX2Q" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="FE"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_Sa3ZoDo1Eeud_N8qGaxX2Q" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.characters" label="%handledmenuitem.label.25" tooltip="%handledmenuitem.label.25" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_mglxwDo1Eeud_N8qGaxX2Q" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.characterEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="CHA"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_nsbb4Dq7EeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.properties" label="%handledmenuitem.label.27" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_HIuqsDq8EeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.propertyEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="PROP"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_S97XEDq8EeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel30" label="%handledmenuitem.label.30" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_eu1ZUDq8EeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.stateEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="STA"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_7VAvkDq8EeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel26" label="%handledmenuitem.label.26" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="__0nHYDq8EeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.structureEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="STRU"/>
+        </children>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_6DMs8Dq9EeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.1"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_3HtMMDq9EeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel20" label="%handledmenuitem.label.20" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_BhV5gDq-EeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="NA"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_KUIk0Dq-EeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel32" label="%handledmenuitem.label.32" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_NoLvgDq-EeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaLevelEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="NAL"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_vEUIEDq-EeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel33" label="%handledmenuitem.label.33" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_IoK80Dq_EeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTypeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="NAT"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_xpQ0QDrCEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel3" label="%handledmenuitem.label.21" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_9aEv4DrCEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTypeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="PAT"/>
+        </children>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_lYNUcDuVEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.13"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_zlcYQFycEeuH0dRH_QHgrQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel50" label="%handledmenuitem.label.50" tooltip="%handledmenuitem.label.50" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_7knOQFycEeuH0dRH_QHgrQ" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.TaxonNodeAgentRelationTypeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="TART"/>
+        </children>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_udLdUDrDEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.2"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_SdyUcBRzEeyXBtmKIs_ZEQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitem51" label="%handledmenuitem.label.51" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_vX7vkBRzEeyXBtmKIs_ZEQ" elementId="eu.etaxonomy.taxeditor.store.parameter.languageEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="LA"/>
+        </children>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_XMZnQBX1EeyiffPRqvqPYg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.16"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_2CLf0DrDEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel3" label="%handledmenuitem.label.34" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_2CLf0TrDEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTypeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="ANT"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="__R2UYDrDEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel3" label="%handledmenuitem.label.35" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="__R2UYTrDEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTypeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="IDE"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_3DFGsDrEEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel3" label="%handledmenuitem.label.36" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_3DFGsTrEEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTypeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="MKT"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_9uU2sDrEEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel3" label="%handledmenuitem.label.37" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_9uU2sTrEEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTypeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="EXT"/>
+        </children>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_EVzhADrFEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.11"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_FRV8MDrFEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel3" label="%handledmenuitem.label.38" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_FRV8MTrFEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTypeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="MO"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_zFB7sDuTEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel3" label="%handledmenuitem.label.41" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_zFB7sTuTEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTypeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="SCO"/>
+        </children>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_ifvSgDuVEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.12"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_BVf04DrJEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel3" label="%handledmenuitem.label.39" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_BVf04TrJEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTypeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="KOU"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_noT2MDuSEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel3" label="%handledmenuitem.label.40" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_noT2MTuSEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTypeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="DMO"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_f4xFsDuUEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel3" label="%handledmenuitem.label.42" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_f4xFsTuUEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTypeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="SEX"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_0Btw8DuUEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel3" label="%handledmenuitem.label.43" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_0Btw8TuUEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTypeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="STG"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_3rgiIDuUEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel3" label="%handledmenuitem.label.44" command="_n5NykDoqEeud_N8qGaxX2Q">
+          <parameters xmi:id="_3rgiITuUEeuAuPxcOe1-XA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTypeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="DMA"/>
+        </children>
+      </children>
       <children xsi:type="menu:Menu" xmi:id="_5wQLUMKNEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.menu.term_tree_editor" label="%handledmenuitem.label.8" tooltip="%handledmenuitem.tooltip.1">
         <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_4ic9QMTDEemAeKumL6iTpg" coreExpressionId="isCdmStoreConnected"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_rwfDkIftEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.24" tooltip="%handledmenuitem.label.24" command="_bnVKsCZxEeeQLpuomSmVoQ">
-          <parameters xmi:id="_3acJQIftEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditor"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_rwfDkIftEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.24" tooltip="%handledmenuitem.label.24" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_3acJQIftEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="FE"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_CLrfgMKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.characterTreeEditor" label="%handledmenuitem.label.25" tooltip="%handledmenuitem.label.25" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_CLrfgcKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.characterTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="CHA"/>
         </children>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_ZdYr4PysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.propertyTreeEditor" label="%handledmenuitem.label.20" tooltip="%handledmenuitem.label.20" command="_bnVKsCZxEeeQLpuomSmVoQ">
-          <parameters xmi:id="_ZdYr4fysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTreeEditor" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.featuretree.e4.NamedAreaTreeEditor"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_DosQEMKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.propertyTreeEditor" label="%handledmenuitem.label.27" tooltip="%handledmenuitem.label.27" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_DosQEcKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.propertyTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="PROP"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_AljE8D4GEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.30" tooltip="%handledmenuitem.label.30" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_AljE8T4GEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="STA"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_CUh5gMKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.structureTreeEditor" label="%handledmenuitem.label.26" tooltip="%handledmenuitem.label.26" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_CUh5gcKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.structureTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="STRU"/>
         </children>
         <children xsi:type="menu:MenuSeparator" xmi:id="_AVOnkP8QEem7jP7thrJFNA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.10"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_MfMpEPyqEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.propertyTreeEditor" label="%handledmenuitem.label.21" tooltip="%handledmenuitem.label.21" command="_bnVKsCZxEeeQLpuomSmVoQ">
-          <parameters xmi:id="_MfMpEfyqEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.presenceAbsenceTreeEditor" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.featuretree.e4.PresenceAbsenceTreeEditor"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_ZdYr4PysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.propertyTreeEditor" label="%handledmenuitem.label.20" tooltip="%handledmenuitem.label.20" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_ZdYr4fysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="NA"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_bHiV4D4GEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.propertyTreeEditor" label="%handledmenuitem.label.32" tooltip="%handledmenuitem.label.32" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_bHiV4T4GEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="NAL"/>
         </children>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_Zmin4PysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.propertyTreeEditor" label="%handledmenuitem.label.28" tooltip="%handledmenuitem.label.28" command="_bnVKsCZxEeeQLpuomSmVoQ">
-          <parameters xmi:id="_Zmin4fysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.rankTreeEditor" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.featuretree.e4.RankTreeEditor"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_a5RQYD4GEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.propertyTreeEditor" label="%handledmenuitem.label.33" tooltip="%handledmenuitem.label.33" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_a5RQYT4GEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="NAT"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_MfMpEPyqEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.propertyTreeEditor" label="%handledmenuitem.label.21" tooltip="%handledmenuitem.label.21" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_MfMpEfyqEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.presenceAbsenceTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="PAT"/>
         </children>
         <children xsi:type="menu:MenuSeparator" xmi:id="___koAP8MEem7jP7thrJFNA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.9"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_CLrfgMKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.characterTreeEditor" label="%handledmenuitem.label.25" tooltip="%handledmenuitem.label.25" command="_bnVKsCZxEeeQLpuomSmVoQ">
-          <parameters xmi:id="_CLrfgcKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.characterTreeEditor" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.featuretree.e4.CharacterTreeEditor"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_Zmin4PysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.propertyTreeEditor" label="%handledmenuitem.label.28" tooltip="%handledmenuitem.label.28" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_Zmin4fysEemPDYtIH5gauA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.rankTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="RK"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_qaWRQD4JEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.propertyTreeEditor" label="%handledmenuitem.label.45" tooltip="%handledmenuitem.label.45" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_qaWRQT4JEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.taxonRelationshipTypeTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="NRT"/>
         </children>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_CUh5gMKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.structureTreeEditor" label="%handledmenuitem.label.26" tooltip="%handledmenuitem.label.26" command="_bnVKsCZxEeeQLpuomSmVoQ">
-          <parameters xmi:id="_CUh5gcKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.structureTreeEditor" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.featuretree.e4.StructureTreeEditor"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_qcpXUD4JEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.propertyTreeEditor" label="%handledmenuitem.label.46" tooltip="%handledmenuitem.label.46" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_qcpXUT4JEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.nameTypeDesignationStatusTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="TRT"/>
         </children>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_DosQEMKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.propertyTreeEditor" label="%handledmenuitem.label.27" tooltip="%handledmenuitem.label.27" command="_bnVKsCZxEeeQLpuomSmVoQ">
-          <parameters xmi:id="_DosQEcKOEem1vZq1LletZg" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.propertyTreeEditor" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.featuretree.e4.PropertyTreeEditor"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_qei0wD4JEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.propertyTreeEditor" label="%handledmenuitem.label.48" tooltip="%handledmenuitem.label.48" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_qei0wT4JEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.nomenclaturalStatusTypeTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="NST"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_1vdxQFzHEeuH0dRH_QHgrQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel47" label="%handledmenuitem.label.47" tooltip="%handledmenuitem.label.47" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_H8CPYFzIEeuH0dRH_QHgrQ" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.nameTypeDesignationStatusTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="NTD"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_qgc5QD4JEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.propertyTreeEditor" label="%handledmenuitem.label.49" tooltip="%handledmenuitem.label.549" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_qgc5QT4JEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.specimenTypeDesignationStatusTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="STD"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_qiDbwD4JEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.propertyTreeEditor" label="%handledmenuitem.label.50" tooltip="%handledmenuitem.label.50" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_qiDbwT4JEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.TaxonNodeAgentRelationTYpeTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="TART"/>
+        </children>
+        <children xsi:type="menu:MenuSeparator" xmi:id="__TX5ID4KEeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.14"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_Lm2iED69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.51" tooltip="%handledmenuitem.label.51" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_Lm2iET69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="LA"/>
+        </children>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_Lcr6MFydEeuH0dRH_QHgrQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.21"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_UqE2ED69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.34" tooltip="%handledmenuitem.label.34" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_UqE2ET69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="ANT"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_fLp-cD69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.35" tooltip="%handledmenuitem.label.35" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_fLqlgD69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="IDE"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_k7i5cD69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.36" tooltip="%handledmenuitem.label.36" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_k7i5cT69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="MKT"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_q0IdcD69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.37" tooltip="%handledmenuitem.label.37" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_q0IdcT69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="EXT"/>
+        </children>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_wXDTcD69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.menuseparator.15"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_zPTS8D69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.38" tooltip="%handledmenuitem.label.38" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_zPTS8T69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="MO"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_Ead-cD6-EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.41" tooltip="%handledmenuitem.label.41" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_Ead-cT6-EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="SCO"/>
+        </children>
+        <children xsi:type="menu:MenuSeparator" xmi:id="_PmPwkFydEeuH0dRH_QHgrQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.22"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_6T4I8D69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.39" tooltip="%handledmenuitem.label.39" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_6T4I8T69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="KOU"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_-wEAYD69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.40" tooltip="%handledmenuitem.label.40" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_-wEAYT69EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="DMO"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_NquB0D6-EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.42" tooltip="%handledmenuitem.label.42" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_NquB0T6-EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="SEX"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_Xsu5UD6-EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.43" tooltip="%handledmenuitem.label.43" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_Xsu5UT6-EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="STG"/>
+        </children>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_dts9QD6-EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.termEditorMenu.featureTreeEditor" label="%handledmenuitem.label.44" tooltip="%handledmenuitem.label.44" command="_8aaicD4fEeuM4JU-Ch98ZA">
+          <parameters xmi:id="_dts9QT6-EeuM4JU-Ch98ZA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.featureTreeEditor" name="eu.etaxonomy.taxeditor.store.commandparameter.termType" value="DMA"/>
         </children>
       </children>
       <children xsi:type="menu:MenuSeparator" xmi:id="_XKnM8E3IEeiplYSgvvNXRQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.6"/>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_ITE10KkVEeejedk4mZQIGw" featurename="children" parentElementId="eu.etaxonomy.taxeditor.workbench.menu.file" positionInList="before:eu.etaxonomy.taxeditor.application.filemenu.io">
     <elements xsi:type="menu:Menu" xmi:id="_z6EugKqXEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.menu.export" label="%menu.label.2">
       <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_3eyLYKqXEeeXcJGhyhlrKA" coreExpressionId="isCdmStoreConnectedAndShowIOMenuEnabled"/>
+      <children xsi:type="menu:HandledMenuItem" xmi:id="_nf4z0KqZEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportDwca" label="%wizard.name.9" command="_y69I8KqZEeeXcJGhyhlrKA"/>
+      <children xsi:type="menu:HandledMenuItem" xmi:id="_WVBa4Ex_Ee6gZ65AByRHxQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportColDP" label="%wizard.name.122" command="_lbmBoEi_Ee6gZ65AByRHxQ"/>
+      <children xsi:type="menu:HandledMenuItem" xmi:id="_eE6dALnTEe6hy6A4KTNM1w" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.wizardname123" label="%wizard.name.123" command="_1BzvkLU-Ee6JFM-mIdEBFA"/>
+      <children xsi:type="menu:HandledMenuItem" xmi:id="_uruvcKqZEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportCdmLight" label="%wizard.name.22" command="_zLKvMKqZEeeXcJGhyhlrKA"/>
+      <children xsi:type="menu:MenuSeparator" xmi:id="_l9Oe0Ex_Ee6gZ65AByRHxQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.17"/>
+      <children xsi:type="menu:HandledMenuItem" xmi:id="_OL6sMH1LEem6uMX-L-maww" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportOwlTerm" label="%handledmenuitem.label.22" command="_WISF0H1LEem6uMX-L-maww"/>
       <children xsi:type="menu:HandledMenuItem" xmi:id="_b9E38KqZEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportJaxb" label="%wizard.name.6" command="_L0xNEKqYEeeXcJGhyhlrKA"/>
       <children xsi:type="menu:HandledMenuItem" xmi:id="_lXe84KqZEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportSdd" label="%wizard.name.8" command="_ybovsKqZEeeXcJGhyhlrKA"/>
-      <children xsi:type="menu:HandledMenuItem" xmi:id="_nf4z0KqZEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportDwca" label="%wizard.name.9" command="_y69I8KqZEeeXcJGhyhlrKA"/>
       <children xsi:type="menu:HandledMenuItem" xmi:id="_V3eBEKqYEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportCsv" label="%wizard.name.18" command="_y_uUMKqZEeeXcJGhyhlrKA"/>
       <children xsi:type="menu:HandledMenuItem" xmi:id="_qR5ocKqZEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportCsvName" label="%wizard.name.19" command="_zDy74KqZEeeXcJGhyhlrKA"/>
       <children xsi:type="menu:HandledMenuItem" xmi:id="_tBUcEKqZEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportCsvPrint" label="%wizard.name.20" command="_zIKegKqZEeeXcJGhyhlrKA"/>
-      <children xsi:type="menu:HandledMenuItem" xmi:id="_uruvcKqZEeeXcJGhyhlrKA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportCdmLight" label="%wizard.name.22" command="_zLKvMKqZEeeXcJGhyhlrKA"/>
-      <children xsi:type="menu:HandledMenuItem" xmi:id="_OL6sMH1LEem6uMX-L-maww" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportOwlTerm" label="%handledmenuitem.label.22" command="_WISF0H1LEem6uMX-L-maww"/>
     </elements>
     <elements xsi:type="menu:Menu" xmi:id="_QC5O8KkaEeejedk4mZQIGw" elementId="eu.etaxonomy.taxeditor.store.menu.import" label="%menu.label.3">
       <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_UL4dkKkaEeejedk4mZQIGw" coreExpressionId="isCdmStoreConnectedAndShowIOMenuEnabled"/>
       <children xsi:type="menu:Menu" xmi:id="_A8bvEAIREeqn7oFuQSAIvQ" elementId="eu.etaxonomy.taxeditor.store.menu.specimen" label="%menu.label.5">
         <children xsi:type="menu:HandledMenuItem" xmi:id="_RUOtQKkVEeejedk4mZQIGw" elementId="eu.etaxonomy.taxeditor.workbench.handledmenuitem.importspecimens" label="%wizard.name.14" command="_TwGSwKkVEeejedk4mZQIGw"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_NO718KmQEeeDJPU_cUTI2g" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.importAbcd" label="%wizard.name.3" command="_QbHeEKmQEeeDJPU_cUTI2g"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_0z1o8KmjEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.importExcelSpecimen" label="%wizard.name.5" command="_2JV9IKnAEeeTAPHmaMLwQQ"/>
       </children>
       <children xsi:type="menu:Menu" xmi:id="_lspukAIREeqn7oFuQSAIvQ" elementId="eu.etaxonomy.taxeditor.store.menu.taxa" label="%menu.label.6">
         <children xsi:type="menu:HandledMenuItem" xmi:id="_BLzlAKnBEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.importExcelTaxa" label="%wizard.name.2" command="_qAEkYKmjEeeTAPHmaMLwQQ"/>
       <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_u12J4NhGEeijwMElCRdOhg" coreExpressionId="isCdmStoreNotConnected"/>
     </elements>
     <elements xsi:type="menu:HandledMenuItem" xmi:id="_qRrzgK2uEeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.commandlabel5" label="%command.label.5" command="_S868QK2dEeeykrJkROy5EA">
-      <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_zRHMoK2uEeeykrJkROy5EA" coreExpressionId="isCdmStoreConnected"/>
+      <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_zRHMoK2uEeeykrJkROy5EA" coreExpressionId="isCdmStoreConnectedAndNotLocalActive"/>
     </elements>
     <elements xsi:type="menu:HandledMenuItem" xmi:id="_rZtLgK2uEeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.commandlabelre_connect" label="%command.label.RE_CONNECT" command="_KQP_sK2gEeeykrJkROy5EA">
-      <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_0b9PIK2uEeeykrJkROy5EA" coreExpressionId="isCdmStoreConnected"/>
+      <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_0b9PIK2uEeeykrJkROy5EA" coreExpressionId="isCdmStoreConnectedAndNotLocalActive"/>
     </elements>
     <elements xsi:type="menu:HandledMenuItem" xmi:id="_tKrZ4K2uEeeykrJkROy5EA" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.commandlabelchange_password" label="%command.label.CHANGE_PASSWORD" command="_SXZF8K2gEeeykrJkROy5EA">
       <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_1cb0sK2uEeeykrJkROy5EA" coreExpressionId="isCdmStoreConnected"/>
       <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_mNW73LMnEeeMU61m8yqdaA" coreExpressionId="isCdmStoreConnected"/>
       <parameters xmi:id="_mNW73bMnEeeMU61m8yqdaA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.sessionView" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.view.sessions.SessionsViewPart"/>
     </elements>
-    <elements xsi:type="menu:HandledMenuItem" xmi:id="_mNW72bMnEeeMU61m8yqdaA" elementId="eu.etaxonomy.taxeditor.store.showViewMenu.datasource" label="%command.label.2" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/system-file-manager.png" tooltip="%command.label.2" command="_bnVKsCZxEeeQLpuomSmVoQ">
-      <parameters xmi:id="_mNW72rMnEeeMU61m8yqdaA" elementId="eu.etaxonomy.taxeditor.store.showView.parameter.dataSourceView" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.view.datasource"/>
+    <elements xsi:type="menu:MenuSeparator" xmi:id="_KbVZUM76Ee2JEuR6aPJuLg" elementId="eu.etaxonomy.taxeditor.store.menuseparator.3"/>
+    <elements xsi:type="menu:HandledMenuItem" xmi:id="_Aq3JYJ1YEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.local.handledmenuitem.remoteservers" label="Remote Servers" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/web.gif" tooltip="Edit the available remote servers" command="_bnVKsCZxEeeQLpuomSmVoQ">
+      <parameters xmi:id="_H7ooUJ1YEe2Oid79gMgNzw" elementId="eu.etaxonomy.taxeditor.webapp.showView.parameter.remoteServerView" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.view.remoteservers"/>
+    </elements>
+    <elements xsi:type="menu:HandledMenuItem" xmi:id="_Ub4tsM75Ee2JEuR6aPJuLg" elementId="eu.etaxonomy.taxeditor.store.showViewMenu.datasource2" label="Datasource" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/system-file-manager.png" tooltip="%command.label.2" command="_bnVKsCZxEeeQLpuomSmVoQ">
+      <parameters xmi:id="_fD4nIM75Ee2JEuR6aPJuLg" elementId="eu.etaxonomy.taxeditor.webapp.showView.parameter.dataSourceView" name="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" value="eu.etaxonomy.taxeditor.view.datasource"/>
     </elements>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_lnmLABWNEeiazYUJirF0Pw" featurename="children" parentElementId="eu.etaxonomy.taxeditor.workbench.menu.help" positionInList="after:eu.etaxonomy.taxeditor.workbench.menuseparator.beforeHelp">
     <elements xsi:type="menu:HandledMenuItem" xmi:id="_uHiLwBWNEeiazYUJirF0Pw" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.handledmenuitemlabel6" label="%handledmenuitem.label.11" command="_jSJrsBWPEeiazYUJirF0Pw"/>
+    <elements xsi:type="menu:HandledMenuItem" xmi:id="_g-dAYP5UEeqwiqpCwftRog" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.erweiterungensuchen" label="Erweiterungen suchen" command="_qENOgP5VEeqwiqpCwftRog"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_S2CIED8oEempU5gGjh-zOg" featurename="children" parentElementId="eu.etaxonomy.taxeditor.workbench.menu.databaseRepair">
     <elements xsi:type="menu:HandledMenuItem" xmi:id="_67xR4D8oEempU5gGjh-zOg" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.UpdateCaches" label="%handledmenuitem.label.18" command="_qYxw8D85EemTy7SLZkowuQ">
diff --git a/eu.etaxonomy.taxeditor.store/icons/ban_new.gif b/eu.etaxonomy.taxeditor.store/icons/ban_new.gif
new file mode 100644 (file)
index 0000000..9abada2
Binary files /dev/null and b/eu.etaxonomy.taxeditor.store/icons/ban_new.gif differ
diff --git a/eu.etaxonomy.taxeditor.store/icons/no_entry.png b/eu.etaxonomy.taxeditor.store/icons/no_entry.png
new file mode 100644 (file)
index 0000000..1d701f4
Binary files /dev/null and b/eu.etaxonomy.taxeditor.store/icons/no_entry.png differ
diff --git a/eu.etaxonomy.taxeditor.store/icons/no_entry_2.png b/eu.etaxonomy.taxeditor.store/icons/no_entry_2.png
new file mode 100644 (file)
index 0000000..7657b6b
Binary files /dev/null and b/eu.etaxonomy.taxeditor.store/icons/no_entry_2.png differ
diff --git a/eu.etaxonomy.taxeditor.store/icons/no_entry_3.png b/eu.etaxonomy.taxeditor.store/icons/no_entry_3.png
new file mode 100644 (file)
index 0000000..7657b6b
Binary files /dev/null and b/eu.etaxonomy.taxeditor.store/icons/no_entry_3.png differ
index 024fb2a9d71af8fe6d093c737e45dceffee2aae1..99b79dd952774185b317b543be7e0ba8ea239d96 100755 (executable)
         type="org.eclipse.jface.viewers.IStructuredSelection">
    </propertyTester>
    <propertyTester
-         class="eu.etaxonomy.taxeditor.featuretree.FeatureTreePropertyTester"
-         id="eu.etaxonomy.taxeditor.featuretree.FeatureTreePropertyTester"
-         namespace="eu.etaxonomy.taxeditor.featuretree.FeatureTreePropertyTester"
-         properties="isFeatureTree"
+         class="eu.etaxonomy.taxeditor.termtree.TermTreePropertyTester"
+         id="eu.etaxonomy.taxeditor.termtree.TermTreePropertyTester"
+         namespace="eu.etaxonomy.taxeditor.termtree.TermTreePropertyTester"
+         properties="isTermTree"
          type="org.eclipse.jface.viewers.IStructuredSelection">
    </propertyTester>
 </extension>
                </or>
             </iterate>
          </with>
+      </definition>
+       <definition
+            id="isCdmStoreConnectedAndLocalActive">
+         <test
+               property="eu.etaxonomy.taxeditor.preference.CdmStorePropertyTester.isCdmStoreConnectedAndLocalActive">
+         </test>
       </definition>
       <definition
             id="hasROLE_PROJECT_MANAGER">
          selection="eu.etaxonomy.cdm.model.taxon.TaxonNode"
          viewerName="%viewCommandMapping.viewerName.TAXON_NODE_WIZARD">
    </viewCommandMapping>
+    <viewCommandMapping
+         commandId="eu.etaxonomy.taxeditor.store.command.OpenDefinedTermEditor"
+         selection="eu.etaxonomy.cdm.model.term.DefinedTermBase"
+         viewerName="Vocabulary">
+   </viewCommandMapping>
 </extension>
 <extension
       id="eu.etaxonomy.taxeditor.store.workbench.model"
          id="eu.etaxonomy.taxeditor.store.abcdImportPreference"
          name="%page.name.40">
     </page>
+  <!--   <page
+         category="eu.etaxonomy.taxeditor.store.IOPreferencesGeneral"
+         class="eu.etaxonomy.taxeditor.preference.CdmLightExportPreference"
+         id="eu.etaxonomy.taxeditor.store.cdmLightExportPreference"
+         name="%page.name.142">
+    </page>-->
     <page
          category="eu.etaxonomy.taxeditor.store.abcdImportPreference"
          class="eu.etaxonomy.taxeditor.preference.AbcdImportProvider"
          id="eu.etaxonomy.taxeditor.preferences.termEditor"
          name="%page.name.101">
    </page>
+   <page
+         category="eu.etaxonomy.taxeditor.preference.UIPreferences"
+         class="eu.etaxonomy.taxeditor.preference.TermTreePreference"
+         id="eu.etaxonomy.taxeditor.preferences.termTreeEditor"
+         name="%page.name.201">
+   </page>
    <page
          category="eu.etaxonomy.taxeditor.preference.UIPreferences"
          class="eu.etaxonomy.taxeditor.preference.SupplementalDataPreferences"
          name="%page.name.13">
    </page>
    <page
-         category="eu.etaxonomy.taxeditor.preference.defaultlanguagepditorpreferencePage"
+         category="eu.etaxonomy.taxeditor.preference.languageEditorPreferencePage"
          class="eu.etaxonomy.taxeditor.preference.menu.LanguageMenuPreferences"
          id="eu.etaxonomy.taxeditor.preferences.languages"
          name="%page.name.10">
          name="%page.name.47">
    </page>
    <page
-         category="eu.etaxonomy.taxeditor.preference.defaultlanguagepditorpreferencePage"
+         category="eu.etaxonomy.taxeditor.preference.languageEditorPreferencePage"
          class="eu.etaxonomy.taxeditor.preference.LanguageRepresentationPreferencePage"
          id="eu.etaxonomy.taxeditor.preferences.language"
          name="%page.name.23">
          id="eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference"
          name="%page.name.104">
    </page>
+   <page
+         category="eu.etaxonomy.taxeditor.preferences.description"
+         class="eu.etaxonomy.taxeditor.preference.EnableComputedDescriptions"
+         id="eu.etaxonomy.taxeditor.preference.EnableComputedDescriptions"
+         name="%page.name.computedDescriptions">
+   </page>
    <page
          category="eu.etaxonomy.taxeditor.preference.UIPreferences"
          class="eu.etaxonomy.taxeditor.preference.ChecklistEditorGeneralPreference"
    </page>
    <page
          category="eu.etaxonomy.taxeditor.preferences.general"
+         class="eu.etaxonomy.taxeditor.preference.LanguagePreferences"
+         id="eu.etaxonomy.taxeditor.preference.languageEditorPreferencePage"
+         name="%page.name.301">
+   </page>
+   <page
+         category="eu.etaxonomy.taxeditor.preference.languageEditorPreferencePage"
          class="eu.etaxonomy.taxeditor.preference.LanguageEditorPreferencePage"
-         id="eu.etaxonomy.taxeditor.preference.defaultlanguagepditorpreferencePage"
+         id="eu.etaxonomy.taxeditor.preference.defaultLanguageEditorPreferencePage"
          name="%page.name.30">
    </page>
    <page
          id="eu.etaxonomy.taxeditor.preferences.taxonPreferences"
          name="%page.name.52">
    </page>
-       <page
+   <page
         category="eu.etaxonomy.taxeditor.preferences.taxonPreferences"
          class="eu.etaxonomy.taxeditor.preference.PublishFlagLocalPreference"
          id="eu.etaxonomy.taxeditor.preferences.publishFlagPreference"
          name="%page.name.46">
    </page>
+   <page
+        category="eu.etaxonomy.taxeditor.preferences.taxonPreferences"
+         class="eu.etaxonomy.taxeditor.preference.SecundumReferenceHandling"
+         id="eu.etaxonomy.taxeditor.preferences.secundumPreference"
+         name="%page.name.secundum">
+   </page>
+    <page
+        category="eu.etaxonomy.taxeditor.preferences.taxonPreferences"
+         class="eu.etaxonomy.taxeditor.preference.TaxonPreferencesMisappliedNames"
+         id="eu.etaxonomy.taxeditor.preferences.misappliedNames"
+         name="%page.name.misappliedNames">
+   </page>
    <page
          category="eu.etaxonomy.taxeditor.preferences.general"
          class="eu.etaxonomy.taxeditor.preference.UIPreferences"
          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
-          category="eu.etaxonomy.taxeditor.preference.defaultlanguagepditorpreferencePage"
+   <page
+          category="eu.etaxonomy.taxeditor.preference.languageEditorPreferencePage"
           class="eu.etaxonomy.taxeditor.preference.menu.CommonNameLanguagePreferences"
           id="eu.etaxonomy.taxeditor.preferences.commonnamelanguages"
           name="%page.name.58">
             category="eu.etaxonomy.taxeditor.preferences.general"
             class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.EmptyAdminPreferencePage"
             id="eu.etaxonomy.taxeditor.preference.EmptyLanguagePage"
-            name="%page.name.30">
+            name="%page.name.301">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preference.EmptyLanguagePage"
             id="eu.etaxonomy.taxeditor.preferences.languages"
             name="%page.name.10">
       </page>
+      <page
+          category="eu.etaxonomy.taxeditor.preference.EmptyLanguagePage"
+          class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.CommonNameLanguageAdminPreferences"
+          id="eu.etaxonomy.taxeditor.preferences.commonnameAdminlanguages"
+          name="%page.name.58">
+      </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.description"
             class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.NameFeatureAdminMenuPreference"
             id="eu.etaxonomy.taxeditor.preferences.nameAdminFeature"
             name="%page.name.59">
       </page>
+      <page
+            category="eu.etaxonomy.taxeditor.preferences.description"
+            class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.EnabledComputedDescriptionsAdmin"
+            id="eu.etaxonomy.taxeditor.preferences.EnabledComputedDescriptionsAdmin"
+            name="%page.name.computedDescriptions">
+      </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.description"
             class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.FeatureAdminMenuPreference"
             id="eu.etaxonomy.taxeditor.preferences.adminFeature"
             name="%page.name.1">
       </page>
-      <page
+    <!-- <page
             category="eu.etaxonomy.taxeditor.preferences.description"
             class="eu.etaxonomy.taxeditor.preference.menu.NamedAreaTypeMenuAdminPreferences"
             id="eu.etaxonomy.taxeditor.preferences.namedAreaType"
             name="%page.name.14">
-      </page>
-      <page
+      </page>-->
+      <!--<page
             category="eu.etaxonomy.taxeditor.preferences.description"
             class="eu.etaxonomy.taxeditor.preference.DefaultFeatureTreeAdminPreferenecs"
             id="eu.etaxonomy.taxeditor.preferences.defaultFeatureTreePreferenecs"
             name="%page.name.22">
-      </page>
+      </page>-->
       <page 
             category="eu.etaxonomy.taxeditor.preferences.description"
-            class="eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference"
+            class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.DistributionAdminPreferences"
             id="eu.etaxonomy.taxeditor.store.Distribution"
             name="%page.name.104">
       </page>
             class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.NamedAreaVocabularyAdminPreferencePage"
             id="eu.etaxonomy.taxeditor.store.distributionNamedAreaVocabularies"
             name="%page.name.106">
+      </page>
+       <page 
+            category="eu.etaxonomy.taxeditor.preferences.general"
+            class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.MediaMetaDataPreference"
+            id="eu.etaxonomy.taxeditor.store.metaDataPreference"
+            name="Media Meta Data">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.store.abcdImportPreference"
       <page
             category="eu.etaxonomy.taxeditor.preferences.description"
             class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.CommonNameVocabularyAdminPreferencePage"
-            id="eu.etaxonomy.taxeditor.store.vocabularyAdminPreference"
+            id="eu.etaxonomy.taxeditor.store.commonNameAdminPreference"
             name="%page.name.47">
       </page>
-       <page
+      <page
             category="eu.etaxonomy.taxeditor.preferences.general"
             class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.SpecimenAdminPreferences"
             id="eu.etaxonomy.taxeditor.store.specimenAdminPreferences"
             name="%page.name.42">
       </page>
       <page
-            category="eu.etaxonomy.taxeditor.preferences.general"
+         category="eu.etaxonomy.taxeditor.preferences.general"
+         class="eu.etaxonomy.taxeditor.preference.TaxonPreferences"
+         id="eu.etaxonomy.taxeditor.preferences.taxonPreferences"
+         name="%page.name.52">
+      </page>
+      <page
+            category="eu.etaxonomy.taxeditor.preferences.taxonPreferences"
             class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.PublishFlagPreference"
             id="eu.etaxonomy.taxeditor.preferences.publishFlagPreference"
             name="%page.name.46">
+      </page>
+       <page
+            category="eu.etaxonomy.taxeditor.preferences.taxonPreferences"
+            class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.SecundumReferenceHandlingAdmin"
+            id="eu.etaxonomy.taxeditor.preferences.secRefHandling"
+            name="%page.name.secundum">
+      </page>
+      <page
+            category="eu.etaxonomy.taxeditor.preferences.taxonPreferences"
+            class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.TaxonPreferencesMisappliedNamesAdmin"
+            id="eu.etaxonomy.taxeditor.preferences.misappliedNames"
+            name="%page.name.misappliedNames">
       </page>
       <page
            category="eu.etaxonomy.taxeditor.preferences.namePreferences"
             class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.NomenclaturalStatusTypeAdminPreference"
             id="eu.etaxonomy.taxeditor.preferences.adminNomenclaturalStatusTypePreference"
             name="%page.name.6">
+      </page>
+       <page
+            category="eu.etaxonomy.taxeditor.preferences.namePreferences"
+            class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.NameRelationshipTypeAdminPreferences"
+            id="eu.etaxonomy.taxeditor.preferences.adminNameRelationshipTypePreference"
+            name="%page.name.7">
       </page>
       <page
             category="eu.etaxonomy.taxeditor.preferences.namePreferences"
             id="eu.etaxonomy.taxeditor.store.abcdImportPreference"
             name="%page.name.40">
       </page>
+     <!-- <page
+            category="eu.etaxonomy.taxeditor.store.IOPreference"
+            class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.CdmLightExportAdminPreference"
+            id="eu.etaxonomy.taxeditor.store.cdmLightExportPreference"
+            name="%page.name.142">
+      </page>-->
       <page
             category="eu.etaxonomy.taxeditor.preferences.namePreferences"
             class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.NameDetailsViewAdminConfiguration"
             id="eu.etaxonomy.taxeditor.store.TaxonNavigator"
             name="%page.name.32">
       </page>
+       <page
+                        category="eu.etaxonomy.taxeditor.preference.EmptyLanguagePage"
+             class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.LanguageRepresentationAdminPreferencePage"
+             id="eu.etaxonomy.taxeditor.preferences.termLanguages"
+             name="%page.name.23">
+       </page>
 </extension>
 </plugin>
index c15af6de300b79230fe9c61618e08c0fcfec316f..91e780f7523760ec88b11576ef91199e35dc1f56 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
        <groupId>eu.etaxonomy</groupId>
        <artifactId>taxeditor-parent</artifactId>
-       <version>5.16.0</version>
+       <version>5.42.0</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
index 03ef5ae7e20192037c37ac7e4c20646d67fb3fd1..b5a88b2c16b498b848a65ddd92d018fc0e2722a6 100755 (executable)
@@ -28,240 +28,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class AbcdImportAdminPreference extends AbcdImportPreference implements IE4AdminPreferencePage, SelectionListener {
 
-//    @Override
-//    protected Control createContents(Composite parent) {
-//        final Composite composite = new Composite(parent, SWT.NULL);
-//
-//        GridLayout gridLayout = new GridLayout();
-//        composite.setLayout(gridLayout);
-//        configurator = Abcd206ImportConfigurator.NewInstance(null,null);
-//        ICdmRepository controller;
-//        controller = CdmStore.getCurrentApplicationConfiguration();
-//        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AbcdImportConfig);
-//
-//        if (controller == null){
-//            return null;
-//        }
-//        preference = controller.getPreferenceService().find(key);
-//
-//        if (preference != null ){
-//            allowOverride = preference.isAllowOverride();
-//        }else{
-//            preference = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AbcdImportConfig, configurator.toString());
-//        }
-//
-//
-//        //configurator = PreferencesUtil.getAbcdImportConfigurationPreference();
-//        final CLabel description = new CLabel(composite, SWT.NULL);
-//        description.setText(Messages.AbcdImportPreference_description);
-//        checkBoxMediaSpecimen = new Button(composite, SWT.CHECK);
-//        checkBoxMediaSpecimen.setSelection(configurator.isAddMediaAsMediaSpecimen());
-//        checkBoxMediaSpecimen.setText(Messages.AbcdImportPreference_media_as_mediaSpecimen);
-//        checkBoxMediaSpecimen
-//                .setToolTipText(Messages.AbcdImportPreference_media_as_subUnit);
-//        checkBoxMediaSpecimen.addSelectionListener(new SelectionAdapter() {
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                configurator.setAddMediaAsMediaSpecimen(!configurator.isAddMediaAsMediaSpecimen());
-//                setApply(true);
-//            }
-//        });
-//
-//        checkBoxIgnoreExisting = new Button(composite, SWT.CHECK);
-//        checkBoxIgnoreExisting.setSelection(configurator.isIgnoreImportOfExistingSpecimen());
-//        checkBoxIgnoreExisting.setText(Messages.AbcdImportPreference_not_import_existing_specimen);
-//        checkBoxIgnoreExisting
-//        .setToolTipText(Messages.AbcdImportPreference_not_import_existing_specimen_tooltip);
-//        checkBoxIgnoreExisting.addSelectionListener(new SelectionAdapter() {
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                configurator.setIgnoreImportOfExistingSpecimen(!configurator.isIgnoreImportOfExistingSpecimen());
-//                setApply(true);
-//            }
-//        });
-//
-//        checkBoxIgnoreAuthorship = new Button(composite, SWT.CHECK);
-//        checkBoxIgnoreAuthorship.setSelection(configurator.isIgnoreAuthorship());
-//        checkBoxIgnoreAuthorship.setText(Messages.AbcdImportPreference_ignore_author);
-//        checkBoxIgnoreAuthorship
-//        .setToolTipText(Messages.AbcdImportPreference_ignore_author_tooltip);
-//        checkBoxIgnoreAuthorship.addSelectionListener(new SelectionAdapter() {
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                configurator.setIgnoreAuthorship(!configurator.isIgnoreAuthorship());
-//                setApply(true);
-//            }
-//        });
-//
-//        checkBoxMapUnitIdToCatalogNumber = new Button(composite, SWT.RADIO);
-//        checkBoxMapUnitIdToCatalogNumber.setSelection(configurator.isMapUnitIdToCatalogNumber());
-//        checkBoxMapUnitIdToCatalogNumber.setText(Messages.AbcdImportPreference_map_unit_nr_catalog_number);
-//        checkBoxMapUnitIdToCatalogNumber
-//        .setToolTipText(Messages.AbcdImportPreference_map_unit_number_catalog_number_tooltip);
-//        checkBoxMapUnitIdToCatalogNumber.addSelectionListener(new SelectionAdapter() {
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                configurator.setMapUnitIdToCatalogNumber(!configurator.isMapUnitIdToCatalogNumber());
-//                setApply(true);
-//            }
-//        });
-////TODO: only one of the mappings can be checked!
-//        checkBoxMapUnitIdToAccessionNumber = new Button(composite, SWT.RADIO);
-//        checkBoxMapUnitIdToAccessionNumber.setSelection(configurator.isMapUnitIdToAccessionNumber());
-//        checkBoxMapUnitIdToAccessionNumber.setText(Messages.AbcdImportPreference_map_unit_number_to_accession_number);
-//        checkBoxMapUnitIdToAccessionNumber
-//        .setToolTipText(Messages.AbcdImportPreference_map_unit_number_accession_number_tooltip);
-//        checkBoxMapUnitIdToAccessionNumber.addSelectionListener(new SelectionAdapter() {
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                configurator.setMapUnitIdToAccessionNumber(!configurator.isMapUnitIdToAccessionNumber());
-//                setApply(true);
-//            }
-//        });
-//
-//        checkBoxMapUnitIdToBarcode = new Button(composite, SWT.RADIO);
-//        checkBoxMapUnitIdToBarcode.setSelection(configurator.isMapUnitIdToBarcode());
-//        checkBoxMapUnitIdToBarcode.setText(Messages.AbcdImportPreference_map_unit_number_barcode);
-//        checkBoxMapUnitIdToBarcode
-//        .setToolTipText(Messages.AbcdImportPreference_map_unit_number_barcode_tooltip);
-//        checkBoxMapUnitIdToBarcode.addSelectionListener(new SelectionAdapter() {
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                configurator.setMapUnitIdToBarcode(!configurator.isMapUnitIdToBarcode());
-//                setApply(true);
-//            }
-//        });
-//
-//        checkBoxRemoveCountry = new Button(composite, SWT.CHECK);
-//        checkBoxRemoveCountry.setSelection(configurator.isRemoveCountryFromLocalityText());
-//        checkBoxRemoveCountry.setText(Messages.AbcdImportPreference_remove_country_from_locality);
-//        checkBoxRemoveCountry
-//        .setToolTipText(Messages.AbcdImportPreference_remove_country_from_locality_tooltip);
-//        checkBoxRemoveCountry.addSelectionListener(new SelectionAdapter() {
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                configurator.setRemoveCountryFromLocalityText(!configurator.isRemoveCountryFromLocalityText());
-//                setApply(true);
-//            }
-//        });
-//
-//        checkBoxMoveToDefaultClassification = new Button(composite, SWT.CHECK);
-//        checkBoxMoveToDefaultClassification.setSelection(configurator.isMoveNewTaxaToDefaultClassification());
-//        checkBoxMoveToDefaultClassification.setText(Messages.AbcdImportPreference_create_new_classification_new_taxa);
-//        checkBoxMoveToDefaultClassification
-//        .setToolTipText(Messages.AbcdImportPreference_create_new_classification_new_taxa_tooltip);
-//        checkBoxMoveToDefaultClassification.addSelectionListener(new SelectionAdapter() {
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                configurator.setMoveNewTaxaToDefaultClassification(!configurator.isMoveNewTaxaToDefaultClassification());
-//                setApply(true);
-//            }
-//        });
-//
-//        checkBoxImportSiblings = new Button(composite, SWT.CHECK);
-//        checkBoxImportSiblings.setSelection(configurator.isGetSiblings());
-//        checkBoxImportSiblings.setText(Messages.AbcdImportPreference_import_all_children_for_cultures_or_tissues);
-//        checkBoxImportSiblings
-//            .setToolTipText(Messages.AbcdImportPreference_import_all_children_for_cultures_or_tissues_tooltip);
-//        checkBoxImportSiblings.addSelectionListener(new SelectionAdapter() {
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                configurator.setGetSiblings(!configurator.isGetSiblings());
-//                setApply(true);
-//            }
-//        });
-//
-//        checkBoxAddIndividualsAssociations = new Button(composite, SWT.CHECK);
-//        checkBoxAddIndividualsAssociations.setSelection(configurator.isAddIndividualsAssociationsSuchAsSpecimenAndObservations());
-//        checkBoxAddIndividualsAssociations.setText(Messages.AbcdImportPreference_create_Individual_Association);
-//        checkBoxAddIndividualsAssociations
-//            .setToolTipText(Messages.AbcdImportPreference_create_Individual_Association_tooltip);
-//        checkBoxAddIndividualsAssociations.addSelectionListener(new SelectionAdapter() {
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                configurator.setAddIndividualsAssociationsSuchAsSpecimenAndObservations(!configurator.isAddIndividualsAssociationsSuchAsSpecimenAndObservations());
-//                setApply(true);
-//            }
-//        });
-//
-//        checkBoxReuseDescriptiveGroups = new Button(composite, SWT.CHECK);
-//        checkBoxReuseDescriptiveGroups.setSelection(configurator.isReuseExistingDescriptiveGroups());
-//        checkBoxReuseDescriptiveGroups.setText(Messages.AbcdImportPreference_reuse_descriptive_group);
-//        checkBoxReuseDescriptiveGroups
-//            .setToolTipText(Messages.AbcdImportPreference_reuse_descriptive_group_tooltip);
-//        checkBoxReuseDescriptiveGroups.addSelectionListener(new SelectionAdapter() {
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                configurator.setReuseExistingDescriptiveGroups(!configurator.isReuseExistingDescriptiveGroups());
-//                setApply(true);
-//            }
-//        });
-//
-//        checkBoxReuseExistingTaxa = new Button(composite, SWT.CHECK);
-//        checkBoxReuseExistingTaxa.setSelection(configurator.isReuseExistingTaxaWhenPossible());
-//        checkBoxReuseExistingTaxa.setText(Messages.AbcdImportPreference_reuse_existing_taxa);
-//        checkBoxReuseExistingTaxa
-//            .setToolTipText(Messages.AbcdImportPreference_reuse_existing_taxa_tooltip);
-//        checkBoxReuseExistingTaxa.addSelectionListener(new SelectionAdapter() {
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                configurator.setReuseExistingTaxaWhenPossible(!configurator.isReuseExistingTaxaWhenPossible());
-//                setApply(true);
-//            }
-//        });
-//
-//        Label labelRef = new Label(composite, SWT.NONE);
-//        labelRef.setText("Biocase provider for associated DNA");
-//       // new Label(composite, SWT.NONE);
-//        textDNAProviderString = new Text(composite, SWT.NONE);
-//        textDNAProviderString.setEnabled(true);
-//        textDNAProviderString.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true, 1, 1));
-//        textDNAProviderString.setText(configurator.getDnaSoure().toString());
-//        GridData gridData = new GridData();
-//        gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
-//        gridData.horizontalIndent = 5;
-////      classificationSelection.setLayoutData(gridData);
-//        Label nomenclaturalCodeLabel = new Label(composite, SWT.NONE);
-//        nomenclaturalCodeLabel.setText("Nomenclatural Code");
-//        nomenclaturalCodeSelectionCombo = new Combo(composite, SWT.BORDER| SWT.READ_ONLY);
-//        nomenclaturalCodeSelectionCombo.setLayoutData(gridData);
-//
-//        for(NomenclaturalCode code: NomenclaturalCode.values()){
-//            nomenclaturalCodeSelectionCombo.add(code.getKey());
-//        }
-//        int index = 0;
-//        if (configurator.getNomenclaturalCode() != null){
-//            for (String label : nomenclaturalCodeSelectionCombo.getItems()){
-//                if (label.equals(configurator.getNomenclaturalCode().getKey())){
-//                    nomenclaturalCodeSelectionCombo.select(index);
-//                }
-//                index++;
-//            }
-//        }
-//
-//        // TODO remember last selection
-//        nomenclaturalCodeSelectionCombo.addSelectionListener(this);
-//        if (preference != null){
-//            allowOverride = preference.isAllowOverride();
-//        }
-//        checkAllowOverride = new Button(composite, SWT.CHECK);
-//        checkAllowOverride.setSelection(allowOverride);
-//        checkAllowOverride.setText(Messages.AbcdImportPreference_allow_override);
-//        checkAllowOverride
-//            .setToolTipText(Messages.AbcdImportPreference_allow_override_tooltip);
-//        checkAllowOverride.addSelectionListener(new SelectionAdapter() {
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                allowOverride = !allowOverride;
-//                setApply(true);
-//            }
-//        });
-//
-//        return composite;
-//    }
-
-
-
     @Override
     public boolean performOk() {
         if (!isApply()){
index 8af7232feeb51d333a231039a4045aff9cdf3a7b..cfc6c38dbe9dd1804f9baa3d19949d931c39eb8a 100755 (executable)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
@@ -29,7 +29,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author k.luther
  * @since 23.03.2018
- *
  */
 public class AbcdImportProviderAdminPreferencePage extends AbcdImportProvider implements IE4AdminPreferencePage{
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/CdmLightExportAdminPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/CdmLightExportAdminPreference.java
new file mode 100755 (executable)
index 0000000..e6b6ed4
--- /dev/null
@@ -0,0 +1,70 @@
+/**
+* Copyright (C) 2020 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.databaseAdmin.preferencePage;
+
+import eu.etaxonomy.cdm.api.application.ICdmRepository;
+import eu.etaxonomy.cdm.api.service.IPreferenceService;
+import eu.etaxonomy.cdm.format.description.distribution.CondensedDistributionRecipe;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
+import eu.etaxonomy.taxeditor.preference.CdmLightExportPreference;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since Nov 12, 2020
+ */
+public class CdmLightExportAdminPreference extends CdmLightExportPreference {
+
+    @Override
+    public void getValues() {
+        super.getValues();
+        isAdminPreference = true;
+        if (preferenceIsExportCondensedDistribution.getValue() != null){
+            isExportCondensedDistribution = Boolean.valueOf(preferenceIsExportCondensedDistribution.getValue());
+        }else{
+            isExportCondensedDistribution = null;
+        }
+        if (preferenceCondensedDistribtionRecipe.getValue() != null){
+            recipe = CondensedDistributionRecipe.valueOf(preferenceCondensedDistribtionRecipe.getValue().toString());
+        }else{
+            recipe = null;
+        }
+    }
+
+    @Override
+    public boolean performOk() {
+        if (!isApply()){
+            return true;
+        }
+        ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
+        if (controller == null){
+            return false;
+        }
+        IPreferenceService service = controller.getPreferenceService();
+        CdmPreference pref;
+        if (isExportCondensedDistribution == null && isAllowOverrideIsExportCondensedDistribution){
+            service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.CdmLightExportCondensedDistributionString));
+        }else{
+            pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.CdmLightExportCondensedDistributionString, isExportCondensedDistribution != null? Boolean.toString(isExportCondensedDistribution): null);
+            pref.setAllowOverride(isAllowOverrideIsExportCondensedDistribution);
+            service.set(pref);
+        }
+
+        if (recipe == null && preferenceCondensedDistribtionRecipe.isAllowOverride()){
+            service.remove(CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.CondensedDistributionRecipe));
+        }else{
+            pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.CondensedDistributionRecipe, recipe != null? recipe.getKey(): null);
+            pref.setAllowOverride(isAllowOverrideCondensedDistributionRecipe);
+            service.set(pref);
+        }
+        return true;
+    }
+}
\ No newline at end of file
index 9592753260e1bc86557a792f33e057a44aed54a7..46e8d6a9e24cdbbc13f546aeb9838352a0ded6b9 100755 (executable)
@@ -14,6 +14,7 @@ import org.eclipse.swt.widgets.Control;
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
 import eu.etaxonomy.cdm.api.service.IPreferenceService;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.DistributionDescription;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
 import eu.etaxonomy.cdm.model.metadata.TermComboEnum;
@@ -119,6 +120,17 @@ public class ChecklistEditorGeneralAdminPreference extends ChecklistEditorGenera
             pref.setAllowOverride(prefNumberStatus.isAllowOverride());
             service.set(pref);
         }
+        
+        if (descriptionForDistributionEditor == null && allowOverrideDescriptionSelectionButton.getSelection()){
+            service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.DescriptionForDistributionEditor));
+        }else{
+            pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.DescriptionForDistributionEditor, descriptionForDistributionEditor != null? descriptionForDistributionEditor.getKey(): null);
+            if (prefDescription == null){
+                prefDescription = pref;
+            }
+            pref.setAllowOverride(prefDescription.isAllowOverride());
+            service.set(pref);
+        }
 
         PreferencesUtil.updateDBPreferences();
 
@@ -197,10 +209,10 @@ public class ChecklistEditorGeneralAdminPreference extends ChecklistEditorGenera
             this.numberOfStatus = null;
         }
 
-        if (prefOwnDescription != null){
-            this.ownDescriptionForDistributionEditor = prefOwnDescription.getValue() != null? Boolean.valueOf(prefOwnDescription.getValue().toString()): null;
+        if (prefDescription != null){
+            this.descriptionForDistributionEditor = prefDescription.getValue() != null? DistributionDescription.byKey(prefDescription.getValue().toString()): null;
         }else{
-            this.ownDescriptionForDistributionEditor = null;
+            this.descriptionForDistributionEditor = null;
         }
 
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/CommonNameLanguageAdminPreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/CommonNameLanguageAdminPreferences.java
new file mode 100755 (executable)
index 0000000..61d8332
--- /dev/null
@@ -0,0 +1,70 @@
+/**
+* Copyright (C) 2021 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.commons.lang3.StringUtils;
+
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.taxeditor.preference.LocalOrDefaultEnum;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.menu.CommonNameLanguagePreferences;
+
+/**
+ * @author k.luther
+ * @since Aug 27, 2021
+ */
+public class CommonNameLanguageAdminPreferences extends CommonNameLanguagePreferences {
+
+    public CommonNameLanguageAdminPreferences(){
+        super();
+        isAdminPreference = true;
+    }
+
+    @Override
+    public boolean performOk() {
+        if (!isApply()){
+            return true;
+        }
+
+        Object[] checkedElements = treeComposite.getViewer().getCheckedElements();
+
+        List<UUID> listUIIDChecked = new ArrayList<>();
+
+        for (Object o : checkedElements) {
+            if(o instanceof TermDto){
+                TermDto termDto = (TermDto) o;
+                listUIIDChecked.add(termDto.getUuid());
+
+            }
+        }
+        String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
+        if (pref == null){
+            saveCheckedElements = null;
+        }
+        CdmPreference savePref = CdmPreference.NewTaxEditorInstance(predicate, saveCheckedElements);
+        String text = this.useLocalOrAdmin.getText();
+        if (text.equals(LocalOrDefaultEnum.Database.getLabel()) ){
+            savePref.setAllowOverride(false);
+        }else if (text.equals(LocalOrDefaultEnum.AllowOverride.getLabel())){
+            savePref.setAllowOverride(true);
+        }
+
+        PreferencesUtil.setPreferenceToDB(savePref);
+        PreferencesUtil.updateDBPreferences();
+        PreferencesUtil.firePreferencesChanged(this.getClass());
+        return true;
+
+    }
+
+}
index d1d7d1f3fe59716b01a625ef3676397536654b56..9222d03bda9ea577b64d891beecf74937fdc0dcd 100755 (executable)
@@ -8,93 +8,51 @@
 */
 package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
 
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
+import eu.etaxonomy.cdm.api.application.ICdmRepository;
+import eu.etaxonomy.cdm.api.service.IPreferenceService;
+import eu.etaxonomy.cdm.format.description.distribution.CondensedDistributionRecipe;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
-import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
-import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
+import eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author k.luther
  * @since 08.10.2018
- *
  */
-public class DistributionAdminPreferences extends CdmPreferencePage implements IE4AdminPreferencePage {
+public class DistributionAdminPreferences extends DistributionGeneralPreference {
 
-    private boolean allowOverrideAreas;
-    private boolean allowOverrideStatus;
-    private CdmPreference prefAreas = null;
-    private CdmPreference prefStatus = null;
+    @Override
+    public boolean performOk() {
+        if (!isApply()){
+            return true;
+        }
+        ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
+        if (controller == null){
+            return false;
+        }
+        IPreferenceService service = controller.getPreferenceService();
+        CdmPreference pref;
+        if (recipe == null && preferenceCondensedDistribtionRecipe.isAllowOverride()){
+            service.remove(CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.CondensedDistributionRecipe));
+        }else{
+            pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.CondensedDistributionRecipe, recipe != null? recipe.getKey(): null);
+            pref.setAllowOverride(isAllowOverrideCondensedDistributionRecipe);
+            service.set(pref);
+        }
+        return true;
+    }
 
     @Override
-    protected Control createContents(Composite parent) {
+    public void getValues(){
+        super.getValues();
         isAdminPreference = true;
-        Composite composite = createComposite(parent);
-        GridData labelGridData = new GridData();
-        labelGridData.horizontalSpan = 2;
-        labelGridData.verticalSpan = 4;
-
-        prefAreas = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies);
-        allowOverrideAreas = prefAreas != null?prefAreas.isAllowOverride():true;
-
-        final CLabel label = new CLabel(composite, SWT.NULL);
-        label.setText(Messages.ChecklistEditorGeneralPreference_open_wizard);
-        label.setLayoutData(labelGridData);
-        final CommandHandlerButton button_openWizard = new CommandHandlerButton(composite, SWT.PUSH,
-                "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardAdminHandler"); //$NON-NLS-1$
-
-        button_openWizard.setText(Messages.ChecklistEditorGeneralPreference_open_distribution_selection);
-        final Button allowOverrideAreasCheckButton = new Button(composite, SWT.CHECK);
-        allowOverrideAreasCheckButton.setText(Messages.GeneralPreference_allowOverride);
-        allowOverrideAreasCheckButton.setSelection(allowOverrideAreas);
-        allowOverrideAreasCheckButton.addSelectionListener(new SelectionAdapter(){
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                setApply(true);
-                allowOverrideAreas = allowOverrideAreasCheckButton.getSelection();
-
-            }
-        });
-
 
-        prefStatus = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionStatus);
-
-        allowOverrideStatus = prefStatus != null?prefStatus.isAllowOverride():true;
-
-        final CLabel labelStatus = new CLabel(composite, SWT.NULL);
-        labelStatus.setText(Messages.DistributionAdminPreferences_SELECT_STATUS);
-        GridData labelStatusGridData = new GridData();
-        labelStatusGridData.horizontalSpan = 2;
-        labelStatusGridData.verticalSpan = 2;
-        labelStatus.setLayoutData(labelStatusGridData);
-        final CommandHandlerButton button_openStatusWizard = new CommandHandlerButton(composite, SWT.PUSH,
-                "eu.etaxonomy.taxeditor.store.open.OpenDistributionStatusWizardAdminHandler"); //$NON-NLS-1$
-
-        button_openStatusWizard.setText(Messages.Distribution_status_selection);
-        final Button allowOverrideStatusCheckButton = new Button(composite, SWT.CHECK);
-        allowOverrideStatusCheckButton.setText(Messages.GeneralPreference_allowOverride);
-        allowOverrideStatusCheckButton.setSelection(allowOverrideStatus);
-        allowOverrideStatusCheckButton.addSelectionListener(new SelectionAdapter(){
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                setApply(true);
-                allowOverrideStatus = allowOverrideStatusCheckButton.getSelection();
-
-            }
-        });
-
-        return composite;
+        if (preferenceCondensedDistribtionRecipe.getValue() != null){
+            recipe = CondensedDistributionRecipe.valueOf(preferenceCondensedDistribtionRecipe.getValue().toString());
+        }else{
+            recipe = null;
+        }
     }
-
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/EnabledComputedDescriptionsAdmin.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/EnabledComputedDescriptionsAdmin.java
new file mode 100755 (executable)
index 0000000..faa8571
--- /dev/null
@@ -0,0 +1,59 @@
+/**
+* Copyright (C) 2021 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
+
+import eu.etaxonomy.cdm.api.application.ICdmRepository;
+import eu.etaxonomy.cdm.api.service.IPreferenceService;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.EnabledComputedDescription;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
+import eu.etaxonomy.taxeditor.preference.EnableComputedDescriptions;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since May 26, 2021
+ */
+public class EnabledComputedDescriptionsAdmin extends EnableComputedDescriptions {
+
+
+    @Override
+    public void getValues(){
+        super.getValues();
+        isAdminPreference = true;
+
+        if (this.computedDescriptionsHandling.getValue() != null){
+            selectedHandling = EnabledComputedDescription.byKey(computedDescriptionsHandling.getValue());
+        }else{
+            selectedHandling = null;
+        }
+    }
+
+    @Override
+    public boolean performOk() {
+        if (!isApply()){
+            return true;
+        }
+        ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
+        if (controller == null){
+            return false;
+        }
+        IPreferenceService service = controller.getPreferenceService();
+        CdmPreference pref;
+        if (selectedHandling == null && computedDescriptionsHandling.isAllowOverride()){
+            service.remove(CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.EnableComputedDescription));
+        }else{
+            pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.EnableComputedDescription, selectedHandling != null? selectedHandling.getKey(): null);
+            pref.setAllowOverride(allowOverride);
+            service.set(pref);
+        }
+        return true;
+    }
+}
index eddbf96043f645afd88ac49b7f830d8e5065d1ed..1f88aad1c99f66ca390c738978a655dead190dcf 100755 (executable)
@@ -34,6 +34,12 @@ public class FactualDataAdminPreferencePage extends FactualDataPreference {
 
         allowOverrideFreeText = getPrefAllowOverride(prefFreeText);
         isShowModifierFreeText = getBooleanPrefValue(prefFreeText);
+        
+        prefShowSpecimenAsSource = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowSpecimenInFactSource);
+
+        allowOverrideSpecimen = getPrefAllowOverride(prefShowSpecimenAsSource);
+
+        isShowSpecimenAsSource = getBooleanPrefValue(prefShowSpecimenAsSource);
     }
 
 
@@ -48,6 +54,10 @@ public class FactualDataAdminPreferencePage extends FactualDataPreference {
             prefFreeText = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowModifierFreeText, isShowModifierFreeText != null? Boolean.toString(this.isShowModifierFreeText): null);
             prefFreeText.setAllowOverride(allowOverrideFreeText);
             PreferencesUtil.setPreferenceToDB(prefFreeText);
+            
+            prefShowSpecimenAsSource = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowSpecimenInFactSource, isShowSpecimenAsSource != null? Boolean.toString(this.isShowSpecimenAsSource): null);
+            prefShowSpecimenAsSource.setAllowOverride(allowOverrideSpecimen);
+            PreferencesUtil.setPreferenceToDB(prefShowSpecimenAsSource);
             setApply(false);
         }
         return true;
index 91720610eb676b93af0889162def681583b7164c..6662055d8feb0f0cf9d3b9cb3a0cda220b648b56 100755 (executable)
@@ -35,7 +35,7 @@ public class LanguageAdminMenuPreference extends LanguageMenuPreferences {
         }
 
         boolean result = performOkAdmin();
-        if (isMultilanguageTextEditingCapability == null && multiLangugeActivatedPref.isAllowOverride()){
+        if (isMultilanguageTextEditingCapability == null &&  multiLangugeActivatedPref.isAllowOverride()){
             CdmPreference savePref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.MultiLanguageTextEditing, null);
             PreferencesUtil.removeFromDB(savePref);
         }else{
@@ -51,6 +51,7 @@ public class LanguageAdminMenuPreference extends LanguageMenuPreferences {
         }
         PreferencesUtil.updateDBPreferences();
         PreferencesUtil.firePreferencesChanged(this.getClass());
+//        CdmStore.getTermManager().clearTermMapForTermType(TermType.Language);
         return result;
     }
 
@@ -59,9 +60,9 @@ public class LanguageAdminMenuPreference extends LanguageMenuPreferences {
            isAdminPreference = true;
            setPreferenceStore(PreferencesUtil.getPreferenceStore());
            multiLangugeActivatedPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.MultiLanguageTextEditing);
+           if (multiLangugeActivatedPref == null){
+                  multiLangugeActivatedPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.MultiLanguageTextEditing, null);
+           }
            isMultilanguageTextEditingCapability = multiLangugeActivatedPref == null? null: multiLangugeActivatedPref.getValue()!= null?Boolean.parseBoolean(multiLangugeActivatedPref.getValue()): null;
-
-
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/LanguageRepresentationAdminPreferencePage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/LanguageRepresentationAdminPreferencePage.java
new file mode 100644 (file)
index 0000000..c86dcbb
--- /dev/null
@@ -0,0 +1,86 @@
+// $Id$
+/**
+* Copyright (C) 2023 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.databaseAdmin.preferencePage;
+
+import java.util.UUID;
+
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.taxeditor.preference.LanguageRepresentationPreferencePage;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author k.luther
+ * @date 25.04.2023
+ *
+ */
+public class LanguageRepresentationAdminPreferencePage extends LanguageRepresentationPreferencePage {
+    
+    public LanguageRepresentationAdminPreferencePage() {
+        super();
+        isAdminPreference = true;
+       
+    }
+
+
+    @Override
+    public boolean performOk() {
+       if (!isApply()){
+            return true;
+        }
+
+        //boolean result = performOkAdmin();
+        if (this.globalLanguage == null &&  termLanguagePref.isAllowOverride()){
+            CdmPreference savePref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.TermLanguage, null);
+            PreferencesUtil.removeFromDB(savePref);
+        }else{
+            CdmPreference savePref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.TermLanguage, globalLanguage != null? globalLanguage.getUuid().toString(): null);
+            Boolean allowOverride = this.allowOverrideOrderButton.getSelection();
+            savePref.setAllowOverride(allowOverride);
+
+            PreferencesUtil.setPreferenceToDB(savePref);
+        }
+        PreferencesUtil.updateDBPreferences();
+        PreferencesUtil.firePreferencesChanged(this.getClass());
+//        CdmStore.getTermManager().clearTermMapForTermType(TermType.Language);
+        return true;
+    }
+
+    @Override
+    public void getValues() {
+       isAdminPreference = true;
+
+       setPreferenceStore(PreferencesUtil.getPreferenceStore());
+       termLanguagePref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.TermLanguage);
+       if (termLanguagePref == null){
+           termLanguagePref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.TermLanguage, null);
+       }
+
+
+       globalLanguage = termLanguagePref.getValue() != null? Language.getLanguageFromUuid(UUID.fromString(termLanguagePref.getValue())): null;
+   }
+    
+    @Override
+    protected void performDefaults() {
+
+        globalLanguage =  null;
+        //termLanguagePref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.TermLanguage, globalLanguage.getUuid().toString());
+        overrideActivated = true;
+        this.allowOverrideOrderButton.setSelection(overrideActivated);
+        
+        combo_globalLanguage.select(0);
+
+        
+        setApply(true);
+
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/MediaMetaDataPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/MediaMetaDataPreference.java
new file mode 100644 (file)
index 0000000..53b5846
--- /dev/null
@@ -0,0 +1,398 @@
+/**
+* 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.databaseAdmin.preferencePage;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.custom.TableEditor;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.preference.CdmPreferenceCache;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+
+/**
+ * @author k.luther
+ * @since 19.12.2023
+ *
+ */
+public class MediaMetaDataPreference extends CdmPreferencePage {
+
+    protected String commandHandlerStringStatus;
+
+
+    private Button button_addAdditional;
+    private Button button_removeLine;
+
+    private Composite composite;
+    private Composite tableComposite;
+    private Table table;
+
+    CdmPreferenceCache cache;
+    CdmPreference pref;
+
+    List<String> metaData;
+    Map<String,String> metaDataMapping= new HashMap<>();
+
+
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+   public Control createContents(Composite parent) {
+        getValues();
+        composite = new Composite(parent, SWT.NULL);
+        composite.setLayout(new GridLayout());
+
+        GridData textGrid = createTextGridData();
+        textGrid.verticalSpan = 2;
+
+        final CLabel labelPerAreaStatus = new CLabel(composite, SWT.NULL);
+        labelPerAreaStatus.setText(Messages.MediaMetadataPreferenceDescription);
+        labelPerAreaStatus.setLayoutData(textGrid);
+
+
+        createStatusTable();
+        Composite compositeButtons = new Composite(composite, SWT.NULL);
+        GridLayout grid = new GridLayout();
+        grid.numColumns = 2;
+        compositeButtons.setLayout(grid);
+        button_addAdditional = new Button(compositeButtons, SWT.PUSH);
+
+        button_addAdditional.setImage(ImageResources.getImage(ImageResources.ADD_EDIT));
+        button_addAdditional.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent se) {
+                InputDialog dialog = null;
+
+                dialog = new InputDialog(null,
+                    String.format("Create %s", "metadata entry"), String.format("Enter new %s", "metadata entry"), "",
+                    null);
+                dialog.open();
+                if (dialog.getValue() != null) {
+                   metaDataMapping.put(dialog.getValue(), dialog.getValue());
+                   refresh();
+                   table.setSelection(table.getItemCount()-1);
+                }
+
+            }
+
+        });
+        button_addAdditional.setToolTipText("Add new meta data entry");
+
+
+
+        button_removeLine = new Button(compositeButtons, SWT.PUSH);
+        button_removeLine.setImage(ImageResources.getImage(ImageResources.ACTIVE_DELETE_ICON));
+        button_removeLine.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent se) {
+                // you can execute a command directly ... but to get the proper environment it's better to execute it through the IHandlerService:
+                TableItem[] selection = table.getSelection();
+                if (selection != null && selection.length > 0) {
+                    int n = 0;
+                   for (TableItem item: selection) {
+                      metaDataMapping.remove(selection[n].getText(1));
+                      n++;
+                   }
+
+                   refresh();
+                }
+
+            }
+
+        });
+        button_removeLine.setToolTipText("Remove selected meta data entry");
+        composite.pack ();
+        return composite;
+    }
+
+
+
+
+
+
+
+    public void createStatusTable() {
+        tableComposite = new Composite(composite, SWT.NULL);
+
+        GridLayout gridLayout = new GridLayout();
+        GridData gridData = new GridData();
+        gridData.grabExcessVerticalSpace = false;
+        gridData.heightHint = 400;
+        tableComposite.setLayoutData(gridData);
+
+
+        tableComposite.setLayout(gridLayout);
+
+        table = new Table(
+                tableComposite, SWT.BORDER | SWT.CHECK | SWT.FULL_SELECTION | SWT.SINGLE | SWT.V_SCROLL | SWT.H_SCROLL
+        );
+
+        table.setLinesVisible(true);
+        table.setHeaderVisible(true);
+
+
+
+        GridData tableGrid = createTextGridData();
+        tableGrid.grabExcessVerticalSpace = true;
+
+        table.setLayoutData(tableGrid);
+        TableColumn column = new TableColumn(table, SWT.CHECK);
+        column.setText(Messages.Show);
+        column.setToolTipText("Show this attribute if available in media viewer of dataportal.");
+        column.setWidth(100);
+
+        column = new TableColumn(table, SWT.NONE);
+        column.setText(Messages.OriginalLabel);
+        column.setWidth(300);
+
+        column = new TableColumn(table, SWT.NONE);
+        column.setText(Messages.DisplayedLabel);
+        column.setWidth(300);
+
+        final TableEditor editor = new TableEditor(table);
+        //The editor must have the same size as the cell and must
+        //not be any smaller than 50 pixels.
+        editor.horizontalAlignment = SWT.LEFT;
+        editor.grabHorizontal = true;
+        editor.minimumWidth = 50;
+        // editing the second column
+        final int EDITABLECOLUMN = 2;
+
+        table.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                // Clean up any previous editor control
+                Control oldEditor = editor.getEditor();
+                if (oldEditor != null) {
+                    oldEditor.dispose();
+                }
+
+                // Identify the selected row
+                TableItem item = (TableItem) e.item;
+                if (item == null) {
+                    return;
+                }
+
+                // The control that will be the editor must be a child of the Table
+                Text newEditor = new Text(table, SWT.NONE);
+                newEditor.setText(item.getText(EDITABLECOLUMN));
+                newEditor.addModifyListener(me -> {
+                    Text text = (Text) editor.getEditor();
+                    editor.getItem().setText(EDITABLECOLUMN, text.getText());
+                });
+                newEditor.selectAll();
+                newEditor.setFocus();
+                editor.setEditor(newEditor, item, EDITABLECOLUMN);
+                setApply(true);
+            }
+        });
+
+        for (String metaDataString: this.metaDataMapping.keySet()) {
+            createTableRow(metaDataString);
+        }
+
+       // tableComposite.pack();
+        composite.pack();
+    }
+
+
+    public void createTableRow(String metaDataItem) {
+        TableItem item = new TableItem(table, SWT.NONE);
+
+        item.setText(1, metaDataItem);
+        if (metaDataMapping.get(metaDataItem) != null) {
+            item.setText(2, metaDataMapping.get(metaDataItem));
+            item.setChecked(true);
+
+        }
+    }
+
+    @Override
+    public void getValues() {
+        isAdminPreference = true;
+
+        cache = CdmPreferenceCache.instance();
+
+
+        this.pref = cache.get(PreferencePredicate.MediaMetadataKeynameIncludes.getKey());
+        if (this.pref == null) {
+            pref = new CdmPreference("/", PreferencePredicate.MediaMetadataKeynameIncludes.getKey(), PreferencePredicate.MediaMetadataKeynameIncludes.getDefaultValue().toString());
+            pref.setAllowOverride(false);
+        }
+
+        String prefString = pref.getValue();
+        metaDataMapping = readJson(prefString);
+        if (metaDataMapping.isEmpty()) {
+            metaDataMapping = readJson(PreferencePredicate.MediaMetadataKeynameIncludes.getDefaultValue().toString());
+        }
+        TreeMap<String, String> treeMap = new TreeMap<>(metaDataMapping);
+        metaDataMapping = treeMap;
+
+        setApply(true);
+    }
+
+    /**
+     * @return the metaData
+     */
+    public List<String> getMetaData() {
+        return metaData;
+    }
+
+
+
+    /**
+     * @param metaData the metaData to set
+     */
+    public void setMetaData(List<String> metaData) {
+        this.metaData = metaData;
+    }
+
+
+
+    protected void refresh() {
+
+       if (table != null){
+           table.removeAll();
+
+           disposeTableEditors();
+
+           pref = cache.get(PreferencePredicate.MediaMetadataKeynameIncludes.getKey());
+           if (this.pref == null) {
+               pref = new CdmPreference("/", PreferencePredicate.MediaMetadataKeynameIncludes.getKey(), PreferencePredicate.MediaMetadataKeynameIncludes.getDefaultValue().toString());
+           }
+           for (String metaDataString: this.metaDataMapping.keySet()) {
+               createTableRow(metaDataString);
+           }
+
+
+//           table.redraw();
+//           table.pack();
+
+        }
+       composite.layout(true);
+       composite.redraw();
+
+
+    }
+
+    private void disposeTableEditors() {
+        Control [] controls = table.getChildren();
+
+        for (int i = 0; i < controls.length; i++) {
+                if(!controls[i].isDisposed()){
+                        controls[i].setVisible(false);
+                        controls[i].dispose();
+
+                }
+        }
+    }
+
+
+
+
+    @Override
+    protected void performDefaults() {
+        metaDataMapping = readJson(PreferencePredicate.MediaMetadataKeynameIncludes.getDefaultValue().toString());
+        refresh();
+        setApply(true);
+    }
+
+    @Override
+    public boolean performOk(){
+        if (!isApply()){
+            return true;
+        }
+        CdmPreferenceCache cache = CdmPreferenceCache.instance();
+        TableItem[] itemsArray = table.getItems();
+        Map<String, String> prefmap= new HashMap<>();
+        for (TableItem item: itemsArray) {
+            if (item.getChecked()) {
+                if (StringUtils.isNotBlank(item.getText(2))) {
+                    prefmap.put(item.getText(1), item.getText(2));
+                }else {
+                    prefmap.put(item.getText(1), item.getText(1));
+                }
+            }
+        }
+        if (!prefmap.isEmpty()) {
+            String prefString = createJsonString(prefmap);
+            pref = CdmPreference.NewInstance(pref.getKey(), prefString);
+            pref.setAllowOverride(false);
+            PreferencesUtil.setPreferenceToDB(pref);
+        }else {
+
+            PreferencesUtil.removeFromDB(pref);
+        }
+
+
+        return true;
+    }
+
+    protected Map<String, String> readJson(String json) {
+        JsonNode tree = null;
+        ObjectMapper mapper = new ObjectMapper();
+        try {
+            Map<String, String> map
+            = mapper.readValue(json, new TypeReference<Map<String,String>>(){});
+            return map;
+        } catch (JsonProcessingException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        return null;
+
+    }
+
+    protected String createJsonString(Map<String,String> map) {
+        String result = null;
+        ObjectMapper objectMapper = new ObjectMapper();
+        try {
+            result = objectMapper.writeValueAsString(map);
+        } catch (JsonProcessingException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+
+        return result;
+    }
+
+
+
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NameRelationshipTypeAdminPreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NameRelationshipTypeAdminPreferences.java
new file mode 100755 (executable)
index 0000000..99a4944
--- /dev/null
@@ -0,0 +1,71 @@
+/**
+* Copyright (C) 2021 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.commons.lang3.StringUtils;
+
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.taxeditor.preference.LocalOrDefaultEnum;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.menu.NameRelationshipTypeMenuPreferences;
+
+/**
+ * @author k.luther
+ * @since Jul 7, 2021
+ */
+public class NameRelationshipTypeAdminPreferences extends NameRelationshipTypeMenuPreferences {
+
+    public NameRelationshipTypeAdminPreferences(){
+        super();
+        isAdminPreference = true;
+     }
+
+
+
+    @Override
+    public boolean performOk() {
+        if (!isApply()){
+            return true;
+        }
+
+        Object[] checkedElements = treeComposite.getViewer().getCheckedElements();
+
+        List<UUID> listUIIDChecked = new ArrayList<>();
+
+        for (Object o : checkedElements) {
+            if(o instanceof TermDto){
+                TermDto termDto = (TermDto) o;
+                listUIIDChecked.add(termDto.getUuid());
+
+            }
+        }
+        String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
+        if (pref == null){
+            saveCheckedElements = null;
+        }
+        CdmPreference savePref = CdmPreference.NewTaxEditorInstance(predicate, saveCheckedElements);
+        String text = this.useLocalOrAdmin.getText();
+        if (text.equals(LocalOrDefaultEnum.Database.getLabel()) ){
+            savePref.setAllowOverride(false);
+        }else if (text.equals(LocalOrDefaultEnum.AllowOverride.getLabel())){
+            savePref.setAllowOverride(true);
+        }
+
+        PreferencesUtil.setPreferenceToDB(savePref);
+        PreferencesUtil.updateDBPreferences();
+        PreferencesUtil.firePreferencesChanged(this.getClass());
+        return true;
+
+    }
+}
index 6c847051ffad2a170b544c3b335ee517f16a6976..5ae359437e01aa13f58fe6a888c41b9027811c3d 100755 (executable)
@@ -12,7 +12,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
index 7ce08d482047443f2c0319683548074c6a0a4091..dce7a418cd69ee48280e101892fe94eac7358d4c 100755 (executable)
@@ -12,7 +12,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
index afa775ad4240aef4d8098953d447b606b805f0a9..eeed296eeabbf1d8fae078c78b2c4ccf7590f52d 100755 (executable)
@@ -11,8 +11,8 @@ package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
 import eu.etaxonomy.cdm.api.service.IPreferenceService;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
-import eu.etaxonomy.cdm.model.metadata.NamedAreaSearchField;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.TermSearchField;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.preference.SearchDialogPreferences;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -60,11 +60,11 @@ public class SearchDialogAdminPreferences extends SearchDialogPreferences implem
             filterCommonNameReferences = null;
             filterCommonNameReferencesPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CommonNameReferencesWithMarker, null);
         }
-        if (this.searchNamedAreasByAbbrevPref != null){
-            searchNamedAreasByAbbrev = searchNamedAreasByAbbrevPref.getValue() != null? NamedAreaSearchField.byKey(searchNamedAreasByAbbrevPref.getValue()): null;
+        if (this.searchTermsByAbbrevPref != null){
+            searchTermsByAbbrev = searchTermsByAbbrevPref.getValue() != null? TermSearchField.byKey(searchTermsByAbbrevPref.getValue()): null;
         }else{
-            searchNamedAreasByAbbrev = null;
-            searchNamedAreasByAbbrevPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, null);
+            searchTermsByAbbrev = null;
+            searchTermsByAbbrevPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, null);
         }
 
     }
@@ -121,12 +121,12 @@ public class SearchDialogAdminPreferences extends SearchDialogPreferences implem
                 service.remove(filterCommonNameReferencesPref.getKey());
             }
 
-            if(searchNamedAreasByAbbrev != null || !searchNamedAreasByAbbrevPref.isAllowOverride()){
-                pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, searchNamedAreasByAbbrev!= null? searchNamedAreasByAbbrev.getKey():null);
-                pref.setAllowOverride(searchNamedAreasByAbbrevPref.isAllowOverride());
+            if(searchTermsByAbbrev != null || !searchTermsByAbbrevPref.isAllowOverride()){
+                pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, searchTermsByAbbrev!= null? searchTermsByAbbrev.getKey():null);
+                pref.setAllowOverride(searchTermsByAbbrevPref.isAllowOverride());
                 service.set(pref);
             }else{
-                service.remove(searchNamedAreasByAbbrevPref.getKey());
+                service.remove(searchTermsByAbbrevPref.getKey());
             }
         }
         PreferencesUtil.updateDBPreferences();
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/SecundumReferenceHandlingAdmin.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/SecundumReferenceHandlingAdmin.java
new file mode 100755 (executable)
index 0000000..989d3eb
--- /dev/null
@@ -0,0 +1,92 @@
+/**
+* Copyright (C) 2020 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.databaseAdmin.preferencePage;
+
+import eu.etaxonomy.cdm.api.application.ICdmRepository;
+import eu.etaxonomy.cdm.api.service.IPreferenceService;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.SecundumReferenceHandling;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since Dec 1, 2020
+ */
+public class SecundumReferenceHandlingAdmin extends SecundumReferenceHandling {
+
+    @Override
+    public void init() {
+        super.init();
+        isAdminPreference = true;
+
+    }
+
+
+
+     @Override
+     public boolean performOk() {
+         if (!isApply()){
+             return true;
+         }
+         ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
+         if (controller == null){
+             return false;
+         }
+         IPreferenceService service = controller.getPreferenceService();
+//         String textCombo = synonymSecundumBehaviour.getText();
+         String text = secundumBehaviour != null? secundumBehaviour.getKey(): null;
+         // default -> delete preference
+         if(text == null && allowOverride){
+             service.remove(pref.getKey());
+             PreferencesUtil.updateDBPreferences();
+             return true;
+         }
+//         }else if (textCombo.startsWith(Messages.Preference_Use_Default)){
+//             text = null;
+//         }else{
+//             for (SecReferenceHandlingEnum display: SecReferenceHandlingEnum.values()){
+//                 if (display.getLabel().equals(textCombo)){
+//                     text = display.getKey();
+//                     break;
+//                 }
+//             }
+//         }
+         CdmPreference preference = CdmPreference.NewInstance(pref.getKey(), text);
+         preference.setAllowOverride(allowOverride);
+
+         service.set(preference);
+
+         text = secundumSwapBehaviour != null? secundumSwapBehaviour.getKey(): null;
+         // default -> delete preference
+         if(text == null && allowOverrideSwap){
+             service.remove(prefSwap.getKey());
+             PreferencesUtil.updateDBPreferences();
+             return true;
+         }
+
+         CdmPreference preferenceSwap = CdmPreference.NewInstance(prefSwap.getKey(), text);
+         preferenceSwap.setAllowOverride(allowOverrideSwap);
+
+         service.set(preferenceSwap);
+         PreferencesUtil.updateDBPreferences();
+
+         return true;
+     }
+
+
+
+     @Override
+     public void getValues() {
+         super.getValues();
+         isAdminPreference = true;
+
+
+     }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/TaxonPreferencesMisappliedNamesAdmin.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/TaxonPreferencesMisappliedNamesAdmin.java
new file mode 100755 (executable)
index 0000000..074cb9a
--- /dev/null
@@ -0,0 +1,72 @@
+/**
+* Copyright (C) 2020 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.databaseAdmin.preferencePage;
+
+import eu.etaxonomy.cdm.api.application.ICdmRepository;
+import eu.etaxonomy.cdm.api.service.IPreferenceService;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.SecundumReferenceHandling;
+import eu.etaxonomy.taxeditor.preference.TaxonPreferencesMisappliedNames;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since Dec 1, 2020
+ */
+public class TaxonPreferencesMisappliedNamesAdmin extends TaxonPreferencesMisappliedNames {
+
+    @Override
+    public void init() {
+        super.init();
+        isAdminPreference = true;
+
+    }
+
+
+
+     @Override
+     public boolean performOk() {
+         if (!isApply()){
+             return true;
+         }
+         ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
+         if (controller == null){
+             return false;
+         }
+         IPreferenceService service = controller.getPreferenceService();
+//         String textCombo = synonymSecundumBehaviour.getText();
+         
+         // default -> delete preference
+         if(isShowPartialMisapplied == null && allowOverrideShowPartialMisapplied){
+             service.remove(showPartialMisapplicationPref.getKey());
+            
+         }else {
+                showPartialMisapplicationPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AllowPartialMisapplied, this.isShowPartialMisapplied != null? Boolean.toString(this.isShowPartialMisapplied): PreferencePredicate.AllowPartialMisapplied.getDefaultValue().toString());
+                showPartialMisapplicationPref.setAllowOverride(allowOverrideShowPartialMisapplied);
+                service.set(showPartialMisapplicationPref);
+         }
+
+      
+         PreferencesUtil.updateDBPreferences();
+         PreferencesUtil.firePreferencesChanged(this.getClass());
+         return true;
+     }
+
+
+
+     @Override
+     public void getValues() {
+         super.getValues();
+         isAdminPreference = true;
+
+
+     }
+}
index 72b74806b11ee025ccdd6d531ac6544883fabfdb..036b1cf9d9d7ca8e1e17d6b726a920e036436075 100755 (executable)
@@ -28,7 +28,6 @@ import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
 /**
  * @author k.luther
  * @since 05.03.2019
- *
  */
 public class DatabaseRepairUpdateCachesWizard extends Wizard implements IPostMoniteredOperationEnabled {
 
@@ -44,13 +43,9 @@ public class DatabaseRepairUpdateCachesWizard extends Wizard implements IPostMon
         page = new CacheUpdaterWizardPage("Update Caches", cacheUpdaterConfig);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void postOperation(IRemotingProgressMonitor monitor) {
         // TODO Auto-generated method stub
-
     }
 
     @Override
@@ -58,9 +53,6 @@ public class DatabaseRepairUpdateCachesWizard extends Wizard implements IPostMon
         addPage(page);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean performFinish() {
         if (page.updateAgentBase){
@@ -80,27 +72,17 @@ public class DatabaseRepairUpdateCachesWizard extends Wizard implements IPostMon
         }
         if (!cacheUpdaterConfig.getClassList().isEmpty()){
 
-
              final UUID uuid = longRunningTaskService.monitLongRunningTask(cacheUpdaterConfig);
-             Display.getDefault().asyncExec(new Runnable() {
-                 @Override
-                 public void run() {
+             Display.getDefault().asyncExec(()->{
                      AbstractUtility.executeMoniteredOperation("Update Caches",
                              uuid,
                              1000,
                              false,
                              DatabaseRepairUpdateCachesWizard.this,
                              null,
-                             true);
-
-                 }
-
+                             true, true);
              });
         }
-
-
-
-    return true;
+        return true;
     }
-
-}
+}
\ No newline at end of file
index 0d8078357f07f77878df31a4c5527f9118d85694..e433c9ca9f82275128019097e1f1b601aad61637 100644 (file)
@@ -17,10 +17,8 @@ import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.service.config.SortIndexUpdaterConfigurator;
 import eu.etaxonomy.cdm.api.service.longrunningService.ILongRunningTasksService;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
-import eu.etaxonomy.cdm.config.ICdmSource;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author k.luther
@@ -33,7 +31,6 @@ public class DatabaseRepairUpdateSortIndicesWizard extends Wizard implements IPo
 
     ILongRunningTasksService longRunningTaskService;
 
-
     public DatabaseRepairUpdateSortIndicesWizard() {
         setWindowTitle("Update Sort Indices");
         config = SortIndexUpdaterConfigurator.NewInstance();
@@ -41,34 +38,30 @@ public class DatabaseRepairUpdateSortIndicesWizard extends Wizard implements IPo
         longRunningTaskService = CdmApplicationState.getLongRunningTasksService();
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean performFinish() {
 
-            if (config == null){
-                ICdmSource source= CdmStore.getActiveCdmSource();
-                config = SortIndexUpdaterConfigurator.NewInstance();
-                config.setDoTermNode(false);
-                config.setDoPolytomousKeyNode(false);
-             }
-            if (config.isDoTermNode() || config.isDoPolytomousKeyNode() || config.isDoTaxonNode()){
+        if (config == null){
+            config = SortIndexUpdaterConfigurator.NewInstance();
+            config.setDoTermNode(false);
+            config.setDoPolytomousKeyNode(false);
+        }
+        if (config.isDoTermNode() || config.isDoPolytomousKeyNode() || config.isDoTaxonNode()){
 
-                final UUID uuid = longRunningTaskService.monitLongRunningTask(config);
-                Display.getDefault().asyncExec(new Runnable() {
-                    @Override
-                    public void run() {
-                        AbstractUtility.executeMoniteredOperation("Update SortIndices: ",
-                                uuid,
-                                1000,
-                                false,
-                                DatabaseRepairUpdateSortIndicesWizard.this,
-                                null,
-                                true);
-                    }
-                });
-            }
+            final UUID uuid = longRunningTaskService.monitLongRunningTask(config);
+            Display.getDefault().asyncExec(new Runnable() {
+                @Override
+                public void run() {
+                    AbstractUtility.executeMoniteredOperation("Update SortIndices: ",
+                            uuid,
+                            1000,
+                            false,
+                            DatabaseRepairUpdateSortIndicesWizard.this,
+                            null,
+                            true, true);
+                }
+            });
+        }
 
         return true;
     }
@@ -78,11 +71,8 @@ public class DatabaseRepairUpdateSortIndicesWizard extends Wizard implements IPo
         addPage(page);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void postOperation(IRemotingProgressMonitor monitor) {
         // TODO Auto-generated method stub
     }
-}
+}
\ No newline at end of file
index b44d3e626c6781c5d3cc942fbc1422eca684031e..7b0c89b15f8308ebc42a05c8b740246bec33e273 100755 (executable)
@@ -10,7 +10,7 @@ package eu.etaxonomy.taxeditor.databaseAdmin.wizard;
 
 import org.eclipse.jface.wizard.Wizard;
 
-import eu.etaxonomy.taxeditor.io.wizard.AbcdImportConfiguratorWizardPage;
+import eu.etaxonomy.taxeditor.io.e4.in.abcd.AbcdImportConfiguratorWizardPage;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
index d70f6b764b2f2b50e968707bb3c56422c14c3463..e6e8892f12bd9a1cc3b7dbe226339d622e435dad 100755 (executable)
@@ -39,6 +39,7 @@ public class NameDetailsViewComposite extends Composite {
     boolean isShowEpithets;
     boolean isShowAuthorshipCache;
     boolean isShowAuthorship;
+    boolean isShowInAuthors;
     boolean isShowNomenclaturalRef;
     boolean isShowNomenclaturalStatus;
     boolean isShowProtologue;
@@ -47,6 +48,7 @@ public class NameDetailsViewComposite extends Composite {
     boolean isShowHybrid;
     Composite child;
        private boolean isShowNameApprobiation;
+       Button showInAuthors;
 
     public NameDetailsViewComposite(Composite parent, int style, NameDetailsConfigurator config){
 
@@ -203,9 +205,21 @@ public class NameDetailsViewComposite extends Composite {
             @Override
             public void widgetSelected(SelectionEvent e) {
                 isShowAuthorship = showAuthorship.getSelection();
+                showInAuthors.setEnabled(isShowAuthorship);
              }
         });
 
+       showInAuthors = new Button(child, SWT.CHECK);
+       isShowInAuthors =config.isInAuthorshipActivated();
+       showInAuthors.setText(Messages.NameDetailsViewComposite_Show_In_Author);
+       showInAuthors.setSelection(isShowInAuthors);
+       showInAuthors.addSelectionListener(new SelectionAdapter(){
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                isShowInAuthors = showInAuthors.getSelection();
+             }
+        });
+       showInAuthors.setEnabled(isShowAuthorship);
        final Button showNomenclaturalRef = new Button(child, SWT.CHECK);
        isShowNomenclaturalRef = config.isNomenclaturalReferenceSectionActivated();
        showNomenclaturalRef.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalReference);
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/dnd/transfer/TaxonNodeTransfer.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/dnd/transfer/TaxonNodeTransfer.java
deleted file mode 100644 (file)
index 20024f8..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-
-//$Id$
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.dnd.transfer;
-
-import java.util.UUID;
-
-import eu.etaxonomy.cdm.api.service.IClassificationService;
-import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
-import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.model.CdmObjectTransfer;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * Drag / Drop Transfer object for Taxon Node 
- * 
- * @author c.mathew
- * @created Mar 25, 2013
- */
-public class TaxonNodeTransfer extends CdmObjectTransfer<TaxonNode> {
-
-       private static TaxonNodeTransfer instance = new TaxonNodeTransfer();
-       private static final String TYPE_NAME = "taxonNode-transfer-format";
-       private static final int TYPEID = registerType(TYPE_NAME);
-       
-       public static synchronized TaxonNodeTransfer getInstance(){
-               return instance;
-       }
-       
-       private TaxonNodeTransfer(){}
-       
-       /* (non-Javadoc)
-        * @see org.eclipse.swt.dnd.Transfer#getTypeIds()
-        */
-       @Override
-       protected int[] getTypeIds() {
-               return new int[] { TYPEID };
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.swt.dnd.Transfer#getTypeNames()
-        */
-       @Override
-       protected String[] getTypeNames() {
-               return new String[] { TYPE_NAME };
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.model.CdmObjectTransfer#loadElement(java.util.UUID)
-        */
-       @Override
-       public TaxonNode loadElement(UUID uuid) {
-               TaxonNode result = CdmStore.getService(ITaxonNodeService.class).load(uuid, null);
-               if ( result != null){
-                       return result;
-               }
-               return null;
-       }
-}
index 45b3c7c713a10e7c7ef6070c959b0e5df03ab631..8cc7e4b3df6b7d0f8aefb6f786dc70300eb818e9 100644 (file)
@@ -11,6 +11,7 @@ package eu.etaxonomy.taxeditor.editor;
 import java.util.List;
 import java.util.Map;
 
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -19,7 +20,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @author cmathew
  * @date 5 Feb 2015
  */
-public abstract class CdmEntitySessionInput implements ICdmEntitySessionEnabled {
+public abstract class CdmEntitySessionInput<T extends CdmBase> implements ICdmEntitySessionEnabled<T> {
 
     private ICdmEntitySession cdmEntitySession;
 
@@ -39,10 +40,11 @@ public abstract class CdmEntitySessionInput implements ICdmEntitySessionEnabled
     }
 
     public void bind() {
-        if(cdmEntitySession!=null){
+        if(cdmEntitySession != null){
             cdmEntitySession.bind();
         }
         else {
+            //TODO AM: what if session initializing is not successful
             initSession();
         }
     }
@@ -52,7 +54,6 @@ public abstract class CdmEntitySessionInput implements ICdmEntitySessionEnabled
             cdmEntitySession.dispose();
         }
         cdmEntitySession = null;
-
     }
 
     public abstract void merge();
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/IBulkEditor.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/IBulkEditor.java
new file mode 100755 (executable)
index 0000000..ddc9f11
--- /dev/null
@@ -0,0 +1,22 @@
+/**
+* Copyright (C) 2021 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor;
+
+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);
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/ICharacterMatrix.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/ICharacterMatrix.java
new file mode 100644 (file)
index 0000000..9e75de5
--- /dev/null
@@ -0,0 +1,29 @@
+/**
+* Copyright (C) 2023 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+
+/**
+ * @author KatjaLuther
+ * @since 05.07.2023
+ */
+public interface ICharacterMatrix {
+
+    public IStructuredSelection getActualSelection();
+
+    /**
+     * @param columnPosition
+     * @return
+     */
+    FeatureDto getActualFeature(int columnPosition);
+
+}
index 0d83a6581b413a87f56ede400e922fa016481b4b..8273040b191af6e42a8bfc405dcff4c988efee33 100755 (executable)
@@ -8,14 +8,12 @@
 */
 package eu.etaxonomy.taxeditor.editor;
 
-import java.util.UUID;
-
 /**
  * @author k.luther
  * @since Mar 12, 2020
  */
 public interface IReferencingObjectsView {
 
-    public void updateReferencingObjects(final UUID entityUUID, final Class objectClass);
+    public void handleNewSelection(Object firstElement);
 
 }
index 9ef94e69c2fe617c562a4041df2dc4641a674993..e7ebe175cb910c129abc4e54fb3e1134e7419e03 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2018 EDIT
 * European Distributed Institute of Taxonomy
@@ -9,18 +8,23 @@
 */
 package eu.etaxonomy.taxeditor.editor.definedterm;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerComparator;
 
-import eu.etaxonomy.cdm.model.term.OrderedTermBase;
+import eu.etaxonomy.cdm.api.service.l10n.TermRepresentation_L10n;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
-import eu.etaxonomy.cdm.remote.l10n.TermRepresentation_L10n;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
  * @author pplitzner
  * @date 13.02.2018
- *
  */
 public class DefinedTermSorter extends ViewerComparator {
 
@@ -30,9 +34,12 @@ public class DefinedTermSorter extends ViewerComparator {
         // location <-> add term method used in the MoveDefinedTermOperation
         // execute call
         //FIXME: remove this when all viewer are changed to use DTOs
-        if(e1 instanceof OrderedTermBase && e2 instanceof OrderedTermBase) {
-            OrderedTermBase otbe1 = (OrderedTermBase)e1;
-            OrderedTermBase otbe2 = (OrderedTermBase)e2;
+        List<Language> languages = new ArrayList<>();
+        languages.add(PreferencesUtil.getGlobalLanguage());
+        if(e1 instanceof DefinedTermBase && CdmBase.deproxy(e1, DefinedTermBase.class).isOrderRelevant()
+                && e2 instanceof DefinedTermBase && CdmBase.deproxy(e2, DefinedTermBase.class).isOrderRelevant()) {
+            DefinedTermBase<?> otbe1 = (DefinedTermBase<?>)e1;
+            DefinedTermBase<?> otbe2 = (DefinedTermBase<?>)e2;
             if(otbe1.getOrderIndex() == otbe2.getOrderIndex()) {
                 return 0;
             } else if (otbe1.getOrderIndex() < otbe2.getOrderIndex()){
@@ -61,8 +68,9 @@ public class DefinedTermSorter extends ViewerComparator {
             }
             else {
                 // order indexes are equal or null -> compare by label
-                termDto1.localize(new TermRepresentation_L10n());
-                termDto2.localize(new TermRepresentation_L10n());
+
+                termDto1.localize(new TermRepresentation_L10n(), languages);
+                termDto2.localize(new TermRepresentation_L10n(), languages);
                 if(termDto1.getRepresentation_L10n()!=null){
                     if(termDto2.getRepresentation_L10n()!=null) {
                         return termDto1.getRepresentation_L10n().toLowerCase().compareTo(termDto2.getRepresentation_L10n().toLowerCase());
@@ -79,8 +87,8 @@ public class DefinedTermSorter extends ViewerComparator {
         else if(e1 instanceof TermVocabularyDto && e2 instanceof TermVocabularyDto) {
             TermVocabularyDto termVoc1 = (TermVocabularyDto)e1;
             TermVocabularyDto termVoc2 = (TermVocabularyDto)e2;
-            termVoc1.localize(new TermRepresentation_L10n());
-            termVoc2.localize(new TermRepresentation_L10n());
+            termVoc1.localize(new TermRepresentation_L10n(), languages);
+            termVoc2.localize(new TermRepresentation_L10n(), languages);
             if(termVoc1.getRepresentation_L10n()!=null){
                 if(termVoc2.getRepresentation_L10n()!=null) {
                     return termVoc1.getRepresentation_L10n().toLowerCase().compareTo(termVoc2.getRepresentation_L10n().toLowerCase());
index ff9a6637270a2d86911b2a9cf7e514d0715d29c5..8ce276428566de667989ff70dae7b3affd57c31c 100755 (executable)
@@ -28,7 +28,8 @@ public class FeatureDtoContentProvider extends TermDtoContentProvider {
     boolean isAvailableForTaxonName = true;
     boolean isAvailableForOccurrence = true;
 
-    public FeatureDtoContentProvider(boolean isAvailableForTaxon, boolean isAvailableForTaxonName, boolean isAvailableForOccurrence){
+    public FeatureDtoContentProvider(boolean isAvailableForTaxon, boolean isAvailableForTaxonName,
+            boolean isAvailableForOccurrence) {
         super();
         this.isAvailableForOccurrence = isAvailableForOccurrence;
         this.isAvailableForTaxon = isAvailableForTaxon;
@@ -38,76 +39,69 @@ public class FeatureDtoContentProvider extends TermDtoContentProvider {
     @Override
     public Object[] getChildren(Object parentElement) {
         Collection<TermDto> children = new HashSet<>();
-        if(parentElement instanceof TermVocabularyDto){
-            children.addAll(getChildTerms((TermVocabularyDto)parentElement));
-        } else if(parentElement instanceof FeatureDto){
-                if(((FeatureDto) parentElement).getIncludes()!=null){
-                    for (TermDto child: ((FeatureDto) parentElement).getIncludes()){
-                        if (child instanceof FeatureDto){
-                            FeatureDto featureChild= (FeatureDto)child;
-                            if (featureChild.isAvailableForOccurrence() && isAvailableForOccurrence) {
-                                children.add(featureChild);
-                            }
-                            else if (featureChild.isAvailableForTaxon() && isAvailableForTaxon) {
-                                children.add(featureChild);
-                            }else if (featureChild.isAvailableForTaxonName() && isAvailableForTaxonName) {
-                                children.add(featureChild);
-                            }
+        if (parentElement instanceof TermVocabularyDto) {
+            children.addAll(getChildTerms((TermVocabularyDto) parentElement));
+        } else if (parentElement instanceof FeatureDto) {
+            if (((FeatureDto) parentElement).getIncludes() != null) {
+                for (TermDto child : ((FeatureDto) parentElement).getIncludes()) {
+                    if (child instanceof FeatureDto) {
+                        FeatureDto featureChild = (FeatureDto) child;
+                        if (featureChild.isAvailableForOccurrence() && isAvailableForOccurrence) {
+                            children.add(featureChild);
+                        } else if (featureChild.isAvailableForTaxon() && isAvailableForTaxon) {
+                            children.add(featureChild);
+                        } else if (featureChild.isAvailableForTaxonName() && isAvailableForTaxonName) {
+                            children.add(featureChild);
                         }
                     }
-
                 }
-                if(((FeatureDto) parentElement).getGeneralizationOf()!=null){
-                    for (TermDto child: ((FeatureDto) parentElement).getGeneralizationOf()){
-                        if (child instanceof FeatureDto){
-                            FeatureDto featureChild= (FeatureDto)child;
-                            if (featureChild.isAvailableForOccurrence() && isAvailableForOccurrence) {
-                                children.add(featureChild);
-                            }
-                            else if (featureChild.isAvailableForTaxon() && isAvailableForTaxon) {
-                                children.add(featureChild);
-                            }else if (featureChild.isAvailableForTaxonName() && isAvailableForTaxonName) {
-                                children.add(featureChild);
-                            }
+
+            }
+            if (((FeatureDto) parentElement).getGeneralizationOf() != null) {
+                for (TermDto child : ((FeatureDto) parentElement).getGeneralizationOf()) {
+                    if (child instanceof FeatureDto) {
+                        FeatureDto featureChild = (FeatureDto) child;
+                        if (featureChild.isAvailableForOccurrence() && isAvailableForOccurrence) {
+                            children.add(featureChild);
+                        } else if (featureChild.isAvailableForTaxon() && isAvailableForTaxon) {
+                            children.add(featureChild);
+                        } else if (featureChild.isAvailableForTaxonName() && isAvailableForTaxonName) {
+                            children.add(featureChild);
                         }
                     }
-
                 }
+
+            }
         }
         return children.toArray();
     }
 
-
-
-    @Override
     public Collection<TermDto> getChildTerms(TermVocabularyDto voc) {
         Collection<TermDto> children = getVocabularyToChildTermMap().get(voc);
         Collection<TermDto> filteredChildren = new HashSet<>();
-        if(children==null || children.isEmpty()){
+        if (children == null || children.isEmpty()) {
             children = new ArrayList<>(CdmStore.getService(IVocabularyService.class).getCompleteTermHierarchy(voc));
-            for (TermDto child: children){
-                if (child instanceof FeatureDto){
-                    FeatureDto featureChild= (FeatureDto)child;
+            for (TermDto child : children) {
+                if (child instanceof FeatureDto) {
+                    FeatureDto featureChild = (FeatureDto) child;
                     if (featureChild.isAvailableForOccurrence() && isAvailableForOccurrence) {
                         filteredChildren.add(featureChild);
-                    }
-                    else if (featureChild.isAvailableForTaxon() && isAvailableForTaxon) {
+                    } else if (featureChild.isAvailableForTaxon() && isAvailableForTaxon) {
                         filteredChildren.add(featureChild);
-                    }else if (featureChild.isAvailableForTaxonName() && isAvailableForTaxonName) {
+                    } else if (featureChild.isAvailableForTaxonName() && isAvailableForTaxonName) {
                         filteredChildren.add(featureChild);
                     }
                 }
             }
-            if (filteredChildren.isEmpty()){
+            if (filteredChildren.isEmpty()) {
                 getVocabularyToChildTermMap().remove(voc);
-            }else{
+            } else {
                 getVocabularyToChildTermMap().put(voc, filteredChildren);
             }
-        }else{
+        } else {
             filteredChildren = children;
         }
         return filteredChildren;
     }
 
-
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/FeatureTreeViewerComparator.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/FeatureTreeViewerComparator.java
deleted file mode 100644 (file)
index dc89721..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2018 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.editor.definedterm;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-
-import eu.etaxonomy.cdm.model.term.TermTree;
-
-/**
- *
- * @author pplitzner
- * @since May 24, 2019
- */
-public class FeatureTreeViewerComparator extends ViewerComparator {
-
-    @Override
-    public int compare(Viewer viewer, Object e1, Object e2) {
-        if(e1 instanceof TermTree && e2 instanceof TermTree) {
-            return ((TermTree<?>)e1).getTitleCache().toLowerCase().compareTo(((TermTree<?>) e2).getTitleCache().toLowerCase());
-        }
-        return 0;
-    }
-}
index 4db8bbb866474bbc7d5cfc5b869c3833db2f76db..50b8215b0f2625a33d4a65fad0d286546e6657e0 100644 (file)
@@ -13,79 +13,89 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 \r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
 import eu.etaxonomy.cdm.model.common.Marker;\r
 import eu.etaxonomy.cdm.model.common.MarkerType;\r
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
 import eu.etaxonomy.cdm.model.term.TermBase;\r
 import eu.etaxonomy.cdm.model.term.TermVocabulary;\r
+import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;\r
 import eu.etaxonomy.cdm.persistence.dto.TermDto;\r
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;\r
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 \r
 /**\r
  * @author l.morris\r
  * @date 9 Jan 2012\r
- *\r
  */\r
 public class TermBasePropertyTester extends PropertyTester {\r
 \r
-       private static final String IS_MODIFIABLE = "isModifiable";\r
-\r
-\r
-       /* (non-Javadoc)\r
-        * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)\r
-        */\r
-       @Override\r
-       public boolean test(Object receiver, String property, Object[] args,\r
-                       Object expectedValue) {\r
+    private static final String IS_MODIFIABLE = "isModifiable";\r
 \r
-               IStructuredSelection selection = (IStructuredSelection) receiver;\r
-               Object selectedElement = selection.getFirstElement();\r
-               if (selectedElement != null && HibernateProxyHelper.isInstanceOf(selectedElement, TermBase.class)){\r
-                       TermBase term = HibernateProxyHelper.deproxy(selectedElement, TermBase.class);\r
+    @Override\r
+    public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {\r
 \r
-                       if(IS_MODIFIABLE.equals(property)){\r
-                               return isModifiable(term);\r
-                       }\r
-               }\r
-\r
-               return false;\r
-       }\r
+        IStructuredSelection selection = (IStructuredSelection) receiver;\r
+        Object selectedElement = selection.getFirstElement();\r
+        if (selectedElement != null && HibernateProxyHelper.isInstanceOf(selectedElement, TermBase.class)) {\r
+            TermBase term = HibernateProxyHelper.deproxy(selectedElement, TermBase.class);\r
 \r
+            if (IS_MODIFIABLE.equals(property)) {\r
+                return isModifiable(term);\r
+            }\r
+        }\r
 \r
-       /**\r
-        * Checks whether there is a {@link Marker} with the type {@link MarkerType#MODIFIABLE()} and if there is then return its value.\r
-        *\r
-        * @return The markers value if it exists\r
-        */\r
-       public static boolean isModifiable(Object object) {\r
-               if (object == null){\r
-                       return true;\r
-               }\r
+        return false;\r
+    }\r
+\r
+    /**\r
+     * Checks whether there is a {@link Marker} with the type\r
+     * {@link MarkerType#MODIFIABLE()} and if there is then return its value.\r
+     *\r
+     * @return The markers value if it exists\r
+     */\r
+    public static boolean isModifiable(Object object) {\r
+        if (object == null) {\r
+            return true;\r
+        }\r
 \r
-               TermVocabulary vocabulary = null;\r
+        TermVocabulary<?> vocabulary = null;\r
+        if (object instanceof TermBase) {\r
+            if (((TermBase) object).isManaged()) {\r
+                return false;\r
+            }\r
+        }\r
+        if (object instanceof AbstractTermDto) {\r
+            if (((AbstractTermDto) object).isManaged()) {\r
+                return false;\r
+            }\r
+        }\r
+        if (object instanceof TermNodeDto) {\r
+            if (((TermNodeDto) object).isExternallyManaged()) {\r
+                return false;\r
+            }\r
+        }\r
 \r
-               if(object instanceof DefinedTermBase){\r
-                       vocabulary = ((DefinedTermBase) object).getVocabulary();\r
-               }else if(object instanceof TermVocabulary){\r
-                       vocabulary = (TermVocabulary) object;\r
-               }else if(object instanceof TermDto){\r
+        if (object instanceof DefinedTermBase) {\r
+            vocabulary = ((DefinedTermBase<?>) object).getVocabulary();\r
+        } else if (object instanceof TermVocabulary) {\r
+            vocabulary = (TermVocabulary<?>) object;\r
+        } else if (object instanceof TermDto) {\r
             vocabulary = CdmStore.getService(IVocabularyService.class).load(((TermDto) object).getVocabularyUuid());\r
-        }else if(object instanceof TermVocabularyDto){\r
+        } else if (object instanceof TermVocabularyDto) {\r
             vocabulary = CdmStore.getService(IVocabularyService.class).load(((TermVocabularyDto) object).getUuid());\r
         }\r
 \r
-               if(vocabulary == null){\r
-                       return true;\r
-               }\r
-\r
-               for(Marker vocabularyMarker : vocabulary.getMarkers()){\r
-                       if(vocabularyMarker.getMarkerType().equals(MarkerType.MODIFIABLE())){\r
-                               return vocabularyMarker.getValue();\r
-                       }\r
-               }\r
+        if (vocabulary == null) {\r
+            return true;\r
+        }\r
 \r
-               return true;\r
-       }\r
+        for (Marker vocabularyMarker : vocabulary.getMarkers()) {\r
+            if (vocabularyMarker.getMarkerType().equals(MarkerType.MODIFIABLE())) {\r
+                return vocabularyMarker.getValue();\r
+            }\r
+        }\r
 \r
+        return true;\r
+    }\r
 }\r
index 53c2f15cf981faf4652063396281eef9f4b3bc14..87aa0790e8842171aa8323c677131c8f4b958df3 100644 (file)
@@ -8,7 +8,6 @@
 */
 package eu.etaxonomy.taxeditor.editor.definedterm;
 
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -17,7 +16,10 @@ import java.util.Map;
 import org.eclipse.jface.viewers.TreeNodeContentProvider;
 
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -29,82 +31,88 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class TermDtoContentProvider extends TreeNodeContentProvider {
 
-    private Map<TermVocabularyDto, Collection<TermDto>> vocabularyToChildTermMap = new HashMap<>();
+    private Map<TermCollectionDto, Collection<TermDto>> vocabularyToChildTermMap = new HashMap<>();
 
     @Override
-       public Object[] getElements(Object inputElement) {
-               Collection<TermVocabularyDto> inputElements = (Collection<TermVocabularyDto>) inputElement;
-               return inputElements.toArray();
-       }
-
-       @Override
-       public Object[] getChildren(Object parentElement) {
-           Collection<TermDto> children = new HashSet<>();
-           if(parentElement instanceof TermVocabularyDto){
-               children.addAll(getChildTerms((TermVocabularyDto)parentElement));
-           } else if(parentElement instanceof TermDto){
-                   if(((TermDto) parentElement).getIncludes()!=null){
-                       children.addAll(((TermDto) parentElement).getIncludes());
-                   }
-                if(((TermDto) parentElement).getGeneralizationOf()!=null){
-                    children.addAll(((TermDto) parentElement).getGeneralizationOf());
-                }
-           }
-           return children.toArray();
-       }
-
-       @Override
-       public Object getParent(Object element) {
-               if(element instanceof TermDto){
-                   TermDto termDto = (TermDto) element;
-                   TermDto partOfDto = termDto.getPartOfDto();
-                   if(partOfDto!=null){
-                       return partOfDto;
-                   }
-                   TermDto kindOfDto = termDto.getKindOfDto();
-                   if(kindOfDto!=null){
-                       return kindOfDto;
-                   }
-                   TermVocabularyDto vocabularyDto = termDto.getVocabularyDto();
-                   if(vocabularyDto!=null){
-                       return vocabularyDto;
-                   }
-                   //parent is the vocabulary
-                   return new TermVocabularyDto(termDto.getVocabularyUuid(), null, termDto.getTermType());
-               }
-               return null;
-
-       }
-
-       @Override
-       public boolean hasChildren(Object element) {
-           if(element instanceof TermVocabularyDto){
-               return getChildren(element).length > 0;
-           }
-               if (getChildren(element) != null){
-                       return getChildren(element).length > 0;
-               }
-               return false;
-       }
-
-    public Collection<? extends TermDto> getChildTerms(TermVocabularyDto voc) {
+    public Object[] getElements(Object inputElement) {
+        Collection<TermCollectionDto> inputElements = (Collection<TermCollectionDto>) inputElement;
+        return inputElements.toArray();
+    }
+
+    @Override
+    public Object[] getChildren(Object parentElement) {
+        Collection<Object> children = new HashSet<>();
+        if (parentElement instanceof TermVocabularyDto) {
+            children.addAll(getChildTerms((TermVocabularyDto) parentElement));
+        } else if (parentElement instanceof TermDto) {
+            if (((TermDto) parentElement).getIncludes() != null) {
+                children.addAll(((TermDto) parentElement).getIncludes());
+            }
+            if (((TermDto) parentElement).getGeneralizationOf() != null) {
+                children.addAll(((TermDto) parentElement).getGeneralizationOf());
+            }
+        } else if (parentElement instanceof TermTreeDto) {
+            TermNodeDto root = ((TermTreeDto) parentElement).getRoot();
+            children.addAll(root.getChildren());
+
+        } else if (parentElement instanceof TermNodeDto) {
+            children.addAll(((TermNodeDto) parentElement).getChildren());
+        }
+        return children.toArray();
+    }
+
+    @Override
+    public Object getParent(Object element) {
+        if (element instanceof TermDto) {
+            TermDto termDto = (TermDto) element;
+            TermDto partOfDto = termDto.getPartOfDto();
+            if (partOfDto != null) {
+                return partOfDto;
+            }
+            TermDto kindOfDto = termDto.getKindOfDto();
+            if (kindOfDto != null) {
+                return kindOfDto;
+            }
+            TermCollectionDto vocabularyDto = termDto.getVocabularyDto();
+            if (vocabularyDto != null) {
+                return vocabularyDto;
+            }
+            // parent is the vocabulary
+            return termDto.getVocabularyDto();
+        }
+        return null;
+
+    }
+
+    @Override
+    public boolean hasChildren(Object element) {
+        if (element instanceof TermVocabularyDto) {
+            return getChildren(element).length > 0;
+        }
+        if (getChildren(element) != null) {
+            return getChildren(element).length > 0;
+        }
+        return false;
+    }
+
+    public Collection<? extends TermDto> getChildTerms(TermCollectionDto voc) {
         Collection<TermDto> children = getVocabularyToChildTermMap().get(voc);
-        if(children==null){
-            children = new ArrayList<>(CdmStore.getService(IVocabularyService.class).getCompleteTermHierarchy(voc));
-            getVocabularyToChildTermMap().put(voc, children);
+        if (children == null) {
+           children = CdmStore.getService(IVocabularyService.class).getCompleteTermHierarchy(voc);
+           getVocabularyToChildTermMap().put(voc, children);
         }
         return children;
     }
 
-    public void removeVocabularyFromCache(TermVocabularyDto voc){
+    public void removeVocabularyFromCache(TermCollectionDto voc) {
         getVocabularyToChildTermMap().remove(voc);
     }
 
-    public Map<TermVocabularyDto, Collection<TermDto>> getVocabularyToChildTermMap() {
+    public Map<TermCollectionDto, Collection<TermDto>> getVocabularyToChildTermMap() {
         return vocabularyToChildTermMap;
     }
 
-    public void setVocabularyToChildTermMap(Map<TermVocabularyDto, Collection<TermDto>> vocabularyToChildTermMap) {
+    public void setVocabularyToChildTermMap(Map<TermCollectionDto, Collection<TermDto>> vocabularyToChildTermMap) {
         this.vocabularyToChildTermMap = vocabularyToChildTermMap;
     }
 
index 68f78b747f57b2c67336cec457b06075ff0def58..16bfa830495139f4f9d5daf1da069a791d733afe 100644 (file)
@@ -8,21 +8,24 @@
  */
 package eu.etaxonomy.taxeditor.editor.definedterm;
 
-import org.eclipse.jface.viewers.StyledCellLabelProvider;
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
 import org.eclipse.jface.viewers.StyledString;
 import org.eclipse.jface.viewers.StyledString.Styler;
 import org.eclipse.jface.viewers.ViewerCell;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StyleRange;
 import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.TextStyle;
 import org.eclipse.swt.widgets.Display;
 
 import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.model.term.Representation;
 import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
-import eu.etaxonomy.cdm.remote.l10n.TermRepresentation_L10n;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
@@ -32,24 +35,28 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
  * @since Oct 29, 2018
  *
  */
-public class TermDtoLabelProvider extends StyledCellLabelProvider {
+public class TermDtoLabelProvider //extends StyledCellLabelProvider implements ILabelProvider{
+    extends ColumnLabelProvider implements IStyledLabelProvider{
 
     private static Color vocColor = Display.getCurrent().getSystemColor(SWT.COLOR_BLUE);
     private static Color kindOfColor = Display.getCurrent().getSystemColor(SWT.COLOR_DARK_GRAY);
     private Styler vocStyler;
     private Styler kindOfStyler;
+    protected boolean showIdInVoc = false;
 
     public TermDtoLabelProvider() {
+        showIdInVoc = PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS, true);
     }
 
     public TermDtoLabelProvider(Styler vocStyler){
         this.vocStyler = vocStyler;
+        showIdInVoc = PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS, true);
     }
 
     @Override
     public void update(ViewerCell cell) {
         Object element = cell.getElement();
-
+//        boolean showIdInVoc = PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS, true);
         String text = getText(element);
         cell.setText(text);
 
@@ -69,21 +76,36 @@ public class TermDtoLabelProvider extends StyledCellLabelProvider {
         super.update(cell);
     }
 
+    @Override
     public String getText(Object element) {
         String label = null;
         if(element instanceof AbstractTermDto){
-            AbstractTermDto termDto = (AbstractTermDto)element;
-            termDto.localize(new TermRepresentation_L10n());
-            label = termDto.getRepresentation_L10n();
+            AbstractTermDto termDto = (AbstractTermDto)element;            
+                       Representation rep = termDto.getRepresentation(PreferencesUtil.getGlobalLanguage());                    
+                       label = rep != null? rep.getLabel() :termDto.getTitleCache()  ;
 
-            if(PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS, true)
-                    && element instanceof TermDto && ((TermDto) termDto).getIdInVocabulary()!=null){
+            if(showIdInVoc && element instanceof TermDto && ((TermDto) termDto).getIdInVocabulary()!=null){
                 label = CdmUtils.concat(" : ", ((TermDto) termDto).getIdInVocabulary(), label);
             }
+            if (label == null){
+               label = termDto.getTitleCache();
+            }
+        }
+        if(element instanceof TermNodeDto){
+            TermNodeDto termNodeDto = (TermNodeDto)element;            
+            Representation rep = termNodeDto.getTerm().getRepresentation(PreferencesUtil.getGlobalLanguage());            
+            label = rep != null? rep.getLabel() :termNodeDto.getTerm().getTitleCache()  ;
+
+            if(showIdInVoc && element instanceof TermNodeDto && termNodeDto.getTerm().getIdInVocabulary()!=null){
+                label = CdmUtils.concat(" : ", ( termNodeDto).getTerm().getIdInVocabulary(), label);
+            }
+            if (label == null){
+                label = termNodeDto.getTerm().getTitleCache();
+            }
         }
         // TODO add fallback for label
         if(label==null){
-            label = element.toString();
+               label = element.toString();
         }
         return label;
     }
@@ -112,4 +134,17 @@ public class TermDtoLabelProvider extends StyledCellLabelProvider {
         return kindOfStyler;
     }
 
+    @Override
+    public Image getImage(Object element) {
+
+        return null;
+    }
+
+    @Override
+    public StyledString getStyledText(Object element) {
+        return new StyledString(getText(element), StyledString.QUALIFIER_STYLER);
+    }
+
+
+
 }
index 1b08411f6d1fe883423b61c0c100924901ef9cdd..bfc054de4f1f5dd9a0bc6513b50cee484ecbcb94 100644 (file)
@@ -12,6 +12,7 @@ import java.util.UUID;
 \r
 import eu.etaxonomy.cdm.api.service.ITermService;\r
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
+import eu.etaxonomy.cdm.persistence.dto.TermDto;\r
 import eu.etaxonomy.taxeditor.model.CdmObjectTransfer;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 \r
@@ -25,6 +26,7 @@ public class TermTransfer extends CdmObjectTransfer<DefinedTermBase> {
        private static TermTransfer instance = new TermTransfer();\r
        private static final String TYPE_NAME = "termElement-transfer-format";\r
        private static final int TYPEID = registerType(TYPE_NAME);\r
+       private TermDto selection;\r
 \r
        public static synchronized TermTransfer getInstance(){\r
                return instance;\r
@@ -47,4 +49,12 @@ public class TermTransfer extends CdmObjectTransfer<DefinedTermBase> {
                return new String[] { TYPE_NAME };\r
        }\r
 \r
+    public TermDto getSelection() {\r
+        return selection;\r
+    }\r
+\r
+    public void setSelection(TermDto selection) {\r
+        this.selection = selection;\r
+    }\r
+\r
 }\r
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermTreeViewerComparator.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermTreeViewerComparator.java
new file mode 100644 (file)
index 0000000..a1a7086
--- /dev/null
@@ -0,0 +1,54 @@
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.definedterm;
+
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerComparator;
+
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.model.term.TermNode;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.taxeditor.termtree.TermTreeLabelProvider;
+
+/**
+ * @author pplitzner
+ * @since May 24, 2019
+ */
+public class TermTreeViewerComparator extends ViewerComparator {
+
+    private TermTreeLabelProvider labelProvider = new TermTreeLabelProvider();
+
+    @Override
+    public int compare(Viewer viewer, Object e1, Object e2) {
+
+        String label1 = "";
+        String label2 = "";
+
+        if (e1 instanceof TermNodeDto ){
+            if (((TermNodeDto)e1).isOrderRelevant()){
+                return 0;
+            }
+        }else if (e1 instanceof TermNode){
+            if (((TermNode)e1).getGraph().isOrderRelevant()){
+                return 0;
+            }
+        }
+
+        if (StringUtils.isBlank(label1)){
+            label1 = labelProvider.getText(e1);
+        }
+        if (StringUtils.isBlank(label2)){
+            label2 = labelProvider.getText(e2);
+        }
+
+        //compare
+        return CdmUtils.Nz(label1).toLowerCase().compareTo(CdmUtils.Nz(label2).toLowerCase());
+    }
+}
index 3581665a74841fd331847f07b1a99c0e0495e77b..4b71ecc78aed3c9693208787acdfa84373156cd7 100644 (file)
@@ -12,11 +12,14 @@ import java.util.List;
 
 import org.eclipse.jface.util.LocalSelectionTransfer;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.dnd.DragSourceAdapter;
 import org.eclipse.swt.dnd.DragSourceEvent;
 
+import eu.etaxonomy.cdm.model.term.VocabularyEnum;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer;
 
 /**
  *
@@ -40,7 +43,18 @@ public class DefinedTermDragListenerE4 extends DragSourceAdapter {
             if(!(object instanceof TermDto)){
                 event.doit = false;
                 return;
+            }else {
+               if (VocabularyEnum.getVocabularyEnumByUuid(((TermDto) object).getVocabularyUuid()) != null) {
+                       event.doit = false;
+                    return;
+               }
+               if(((TermDto)object).isManaged() || ((TermDto)object).getVocabularyDto().isManaged()) {
+                   event.doit = false;
+                   return;
+               }
+               
             }
+            
         }
                event.doit = true;
        }
@@ -56,6 +70,17 @@ public class DefinedTermDragListenerE4 extends DragSourceAdapter {
            IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
         if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType)) {
             LocalSelectionTransfer.getTransfer().setSelection(selection);
+            if (selection.getFirstElement() instanceof TermDto){
+                TermTransfer.getInstance().setSelection((TermDto)selection.getFirstElement());
+            }
+        }
+
+        if(selection!=null && !selection.isEmpty()){
+            if (selection instanceof TreeSelection && ((TreeSelection)selection).getFirstElement() instanceof TermDto){
+                TermDto[] featureNodes = (TermDto[]) selection.toList().toArray(new TermDto[selection.size()]);
+
+                    event.data = featureNodes;
+            }
         }
 
        }
index 5cfe2df8de1e9da782b36e862cf53ee5eb643ef6..e2ca0443f6f83fe5075fdcd452b831062480a7cc 100644 (file)
@@ -19,6 +19,7 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ViewerDropAdapter;
 import org.eclipse.swt.dnd.TransferData;
 
+import eu.etaxonomy.cdm.model.term.VocabularyEnum;
 import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
@@ -46,7 +47,15 @@ public class DefinedTermDropAdapterE4 extends EditViewerDropAdapter {
 
     private static final String MOVE_FAILED_MESSAGE = Messages.DefinedTermDropAdapterE4_MOVE_FAILED_MESSAGE;
 
+    public static final String MOVE_FAILED_STANDARD_TERM = Messages.DefinedTermDropAdapterE4_MOVE_FAILED_STANDARD_TERM;
+    public static final String  MOVE_FAILED_TO_STANDARD_VOC = Messages.DefinedTermDropAdapterE4_MOVE_FAILED_TO_STANDARD_VOC;
+    public static final String  MOVE_FAILED_TO_MANAGED_VOC = Messages.DefinedTermDropAdapterE4_MOVE_FAILED_TO_MANAGED_VOC;
+    public static final String  MOVE_FAILED_TO_MANAGED_TERM = Messages.DefinedTermDropAdapterE4_MOVE_FAILED_MANAGED_TERM;
+   
+
        private final DefinedTermEditorE4 editor;
+       
+       private int test = 0;
 
        @Inject
     private UISynchronize sync;
@@ -83,14 +92,30 @@ public class DefinedTermDropAdapterE4 extends EditViewerDropAdapter {
                         MOVE_FAILED_MESSAGE);
                 return false;
             }
+           
+            if(droppedObject instanceof TermDto ) {
+               if (VocabularyEnum.getVocabularyEnumByUuid(((TermDto) droppedObject).getVocabularyUuid()) != null) {
+                       MessagingUtils.warningDialog(MOVE_FAILED, this, MOVE_FAILED_STANDARD_TERM);
+                       return false;
+               }
+            }
+
             if(target instanceof TermDto){
                 TermDto parentTerm = (TermDto)target;
                 //check term type compatibility
+                if (VocabularyEnum.getVocabularyEnumByUuid(((TermDto) target).getVocabularyUuid()) != null) {
+                       MessagingUtils.warningDialog(MOVE_FAILED, this, MOVE_FAILED_TO_STANDARD_VOC);
+                       return false;
+               }
+                if (((TermDto) target).isManaged()) {
+                    MessagingUtils.warningDialog(MOVE_FAILED, this, MOVE_FAILED_TO_MANAGED_VOC);
+                    return false;
+                }
                 if(droppedObject instanceof TermDto && !((TermDto) droppedObject).getTermType().equals(parentTerm.getTermType())){
                     MessagingUtils.warningDialog(TERM_TYPE_ERROR_TITLE, this, TERM_TYPE_ERROR_MESSAGE);
                     return false;
                 }
-
+                
                 TermDto partOfDto = parentTerm.getPartOfDto();
                 if(partOfDto!=null && partOfDto.equals(droppedObject)){
                     MessagingUtils.warningDialog(MOVE_FAILED, this.getClass(),
@@ -107,6 +132,14 @@ public class DefinedTermDropAdapterE4 extends EditViewerDropAdapter {
             else if(target instanceof TermVocabularyDto){
                 TermVocabularyDto vocDto = (TermVocabularyDto)target;
                 //check term type compatibility
+                if (VocabularyEnum.getVocabularyEnumByUuid(((TermVocabularyDto) target).getUuid()) != null) {
+                       MessagingUtils.warningDialog(MOVE_FAILED, this, MOVE_FAILED_TO_STANDARD_VOC);
+                       return false;
+               }
+                if (((TermVocabularyDto) target).isManaged()) {
+                    MessagingUtils.warningDialog(MOVE_FAILED, this, MOVE_FAILED_TO_MANAGED_VOC);
+                    return false;
+                }
                 if(droppedObject instanceof TermDto && !((TermDto) droppedObject).getTermType().equals(vocDto.getTermType())){
                     MessagingUtils.warningDialog(TERM_TYPE_ERROR_TITLE, this, TERM_TYPE_ERROR_MESSAGE);
                     return false;
@@ -129,9 +162,14 @@ public class DefinedTermDropAdapterE4 extends EditViewerDropAdapter {
                        TransferData transferType) {
            boolean valid = LocalSelectionTransfer.getTransfer().isSupportedType(transferType)
                 && target instanceof AbstractTermDto;
-           if(target instanceof TermVocabularyDto && getCurrentLocation()!=ViewerDropAdapter.LOCATION_ON){
+          
+           if(target instanceof TermVocabularyDto && (getCurrentLocation()!=ViewerDropAdapter.LOCATION_ON || ((TermVocabularyDto)target).isManaged())){
                valid = false;
            }
+           if (target instanceof TermDto && ((((TermDto)target).getOrderIndex() == null && getCurrentLocation() == ViewerDropAdapter.LOCATION_AFTER)||(((TermDto)target).isManaged()) || (((TermDto)target).getVocabularyDto().isManaged()))){
+               valid = false;
+           }
+
         return valid;
        }
 
index d9225ab5a93a151f7d917a81304fb3925cf4ed6c..20c0db0b52de7332f97f1d6508784f44584b8cd6 100644 (file)
@@ -8,8 +8,10 @@
  */
 package eu.etaxonomy.taxeditor.editor.definedterm.e4;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 
 import javax.annotation.PostConstruct;
@@ -36,19 +38,18 @@ import org.eclipse.swt.dnd.Transfer;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
 import org.eclipse.ui.IMemento;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermBase;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter;
 import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoContentProvider;
 import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoLabelProvider;
@@ -71,14 +72,13 @@ import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
  * @since Aug 22, 2017
  *
  */
-public class DefinedTermEditorE4 implements IConversationEnabled, IDirtyMarkable, IPostOperationEnabled,
-IPartContentHasDetails, IPartContentHasSupplementalData, IE4SavablePart, IContextListener {
+public class DefinedTermEditorE4 implements IDirtyMarkable, IPostOperationEnabled, IPartContentHasDetails,
+        IPartContentHasSupplementalData, IE4SavablePart, IContextListener {
 
-       public static final String OPEN_COMMAND_ID = "eu.etaxonomy.taxeditor.store.openDefinedTermEditor"; //$NON-NLS-1$
+    public static final String OPEN_COMMAND_ID = "eu.etaxonomy.taxeditor.store.openDefinedTermEditor"; //$NON-NLS-1$
+    private final int dndOperations = DND.DROP_COPY | DND.DROP_MOVE;
 
-       protected TreeViewer viewer;
-
-       protected ConversationHolder conversation;
+    protected TreeViewer viewer;
 
     @Inject
     private ESelectionService selService;
@@ -87,9 +87,8 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IE4SavablePart, IContex
     private MDirtyable dirty;
 
     private ISelectionChangedListener selectionChangedListener;
-       private final int dndOperations = DND.DROP_COPY | DND.DROP_MOVE;
 
-    private TermEditorInput input =null;
+    private TermEditorInput input = null;
 
     @Inject
     private MPart thisPart;
@@ -98,192 +97,184 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IE4SavablePart, IContex
 
     private TermDtoContentProvider contentProvider;
 
-       @Inject
-       public DefinedTermEditorE4() {
-           CdmStore.getContextManager().addContextListener(this);
-       }
-
-       @PostConstruct
-       public void createPartControl(Composite parent, EMenuService menuService,
-               IEclipseContext context) {
-           if (CdmStore.isActive()){
-            if(conversation == null){
-                conversation = CdmStore.createConversation();
-            }
-        }
-        else{
-            return;
-        }
-           FillLayout layout = new FillLayout();
-           layout.marginHeight = 0;
-           layout.marginWidth = 0;
-           layout.type = SWT.VERTICAL;
-
-           parent.setLayout(layout);
-           viewer = new TreeViewer(new Tree(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.MULTI));
-           viewer.getControl().setLayoutData(LayoutConstants.FILL());
-           contentProvider = new TermDtoContentProvider();
+    @Inject
+    public DefinedTermEditorE4() {
+        CdmStore.getContextManager().addContextListener(this);
+    }
+
+    @PostConstruct
+    public void createPartControl(Composite parent, EMenuService menuService, IEclipseContext context) {
+
+        FillLayout layout = new FillLayout();
+        layout.marginHeight = 0;
+        layout.marginWidth = 0;
+        layout.type = SWT.VERTICAL;
+
+        parent.setLayout(layout);
+        viewer = new TreeViewer(new Tree(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.MULTI));
+        viewer.getControl().setLayoutData(LayoutConstants.FILL());
+        contentProvider = new TermDtoContentProvider();
         viewer.setContentProvider(contentProvider);
-           viewer.setLabelProvider(new TermDtoLabelProvider());
-           viewer.setComparator(new DefinedTermSorter());
+        viewer.setLabelProvider(new TermDtoLabelProvider());
+        viewer.setComparator(new DefinedTermSorter());
 
-           Transfer[] transfers = new Transfer[] { LocalSelectionTransfer.getTransfer() };
-           viewer.addDragSupport(dndOperations, transfers, new DefinedTermDragListenerE4(viewer));
-           DefinedTermDropAdapterE4 dropListener = new DefinedTermDropAdapterE4(this);
-           ContextInjectionFactory.inject(dropListener, context);
+        Transfer[] transfers = new Transfer[] { LocalSelectionTransfer.getTransfer() };
+        viewer.addDragSupport(dndOperations, transfers, new DefinedTermDragListenerE4(viewer));
+        DefinedTermDropAdapterE4 dropListener = new DefinedTermDropAdapterE4(this);
+        ContextInjectionFactory.inject(dropListener, context);
         viewer.addDropSupport(dndOperations, transfers, dropListener);
 
-           //propagate selection
-           selectionChangedListener = (event -> selService.setSelection(event.getSelection()));
-           viewer.addSelectionChangedListener(selectionChangedListener);
+        // propagate selection
+        selectionChangedListener = (event -> selService.setSelection(event.getSelection()));
+        viewer.addSelectionChangedListener(selectionChangedListener);
 
-           //create context menu
-           menuService.registerContextMenu(viewer.getControl(), AppModelId.POPUPMENU_EU_ETAXONOMY_TAXEDITOR_STORE_POPUPMENU_TERMEDITOR);
+        // create context menu
+        menuService.registerContextMenu(viewer.getControl(),
+                AppModelId.POPUPMENU_EU_ETAXONOMY_TAXEDITOR_STORE_POPUPMENU_TERMEDITOR);
 
-       }
+    }
 
-       @Override
-       public boolean postOperation(Object objectAffectedByOperation) {
+    @Override
+    public boolean postOperation(Object objectAffectedByOperation) {
         input.initialiseVocabularies();
 
-           Collection<AbstractTermDto> itemsToSelect = new HashSet<>();
+        Collection<AbstractTermDto> itemsToSelect = new HashSet<>();
 
-           if(objectAffectedByOperation instanceof Collection){
-               for (Object o : (Collection<?>)objectAffectedByOperation) {
-                if(o instanceof TermVocabularyDto){
-                    contentProvider.removeVocabularyFromCache((TermVocabularyDto) o);
-                }
-                else if(o instanceof TermDto){
+        if (objectAffectedByOperation instanceof Collection) {
+            for (Object o : (Collection<?>) objectAffectedByOperation) {
+                if (o instanceof TermVocabularyDto) {
+                    contentProvider.removeVocabularyFromCache((TermCollectionDto) o);
+                } else if (o instanceof TermDto) {
                     contentProvider.removeVocabularyFromCache(((TermDto) o).getVocabularyDto());
                     itemsToSelect.add((TermDto) o);
                 }
             }
-           }
-           if(objectAffectedByOperation instanceof TermVocabularyDto){
-               contentProvider.removeVocabularyFromCache((TermVocabularyDto) objectAffectedByOperation);
-               itemsToSelect.add((AbstractTermDto) objectAffectedByOperation);
-           }
-           else if(objectAffectedByOperation instanceof TermDto){
-               TermDto termDto = (TermDto) objectAffectedByOperation;
+        }
+        if (objectAffectedByOperation instanceof TermVocabularyDto) {
+            contentProvider.removeVocabularyFromCache((TermVocabularyDto) objectAffectedByOperation);
+            itemsToSelect.add((AbstractTermDto) objectAffectedByOperation);
+        } else if (objectAffectedByOperation instanceof TermDto) {
+            TermDto termDto = (TermDto) objectAffectedByOperation;
             itemsToSelect.add(termDto);
             contentProvider.removeVocabularyFromCache(termDto.getVocabularyDto());
-           }
-               if(!itemsToSelect.isEmpty()){
-                       StructuredSelection selection = new StructuredSelection(itemsToSelect);
+        }
+        if (!itemsToSelect.isEmpty()) {
+            StructuredSelection selection = new StructuredSelection(itemsToSelect);
             viewer.setSelection(selection);
             for (AbstractTermDto termDto : itemsToSelect) {
                 viewer.expandToLevel(termDto, 1);
             }
-               }
-               viewer.refresh();
-               return true;
-       }
+        }
+        viewer.refresh();
+        return true;
+    }
 
-       public void init(TermEditorInput input){
-           this.input = input;
+    public void init(TermEditorInput input, String label) {
+        this.input = input;
 
         viewer.setInput(input.getVocabularies());
-        thisPart.setLabel(input.getName());
-       }
+        for (TermCollectionDto voc : input.getVocabularies()) {
+            for (TermDto dto : this.contentProvider.getChildTerms(voc)) {
+                voc.addTerm(dto);
+                
+            }
+        }
+        thisPart.setLabel(label);
+    }
 
-       @Override
+    @Override
     @Persist
-       public void save(IProgressMonitor monitor) {
-               getConversationHolder().commit();
-               for(TermBase term:changedTerms){
-            if(term.isInstanceOf(DefinedTermBase.class)){
-                DefinedTermBase definedTermBase = (DefinedTermBase) term;
-                CdmStore.getService(ITermService.class).merge(definedTermBase);
+    public void save(IProgressMonitor monitor) {
+        List<DefinedTermBase> terms = new ArrayList<>();
+        List<TermVocabulary> vocs = new ArrayList<>();
+        for (TermBase term : changedTerms) {
+            if (term.isInstanceOf(DefinedTermBase.class)) {
+                DefinedTermBase<?> definedTermBase = (DefinedTermBase<?>) term;
+                terms.add(definedTermBase);
+
+            } else if (term.isInstanceOf(TermVocabulary.class)) {
+                TermVocabulary<?> voc = (TermVocabulary<?>) term;
+                vocs.add(voc);
             }
-            else if(term.isInstanceOf(TermVocabulary.class)){
-                TermVocabulary voc = (TermVocabulary) term;
-                CdmStore.getService(IVocabularyService.class).merge(voc);
-            }
-               }
-               setDirty(false);
-               input.initialiseVocabularies();
+        }
+        if (!terms.isEmpty()) {
+            CdmStore.getService(ITermService.class).merge(terms, true);
+        }
+        if (!vocs.isEmpty()) {
+            CdmStore.getService(IVocabularyService.class).merge(vocs, true);
+        }
+        setDirty(false);
+        input.initialiseVocabularies();
         changedTerms.clear();
         viewer.refresh();
-               EventUtility.postEvent(WorkbenchEventConstants.REFRESH_SUPPLEMENTAL, true);
-       }
+        EventUtility.postEvent(WorkbenchEventConstants.REFRESH_SUPPLEMENTAL, true);
+    }
 
-       @Override
+    @Override
     public boolean isDirty() {
-               return dirty.isDirty();
-       }
-
-       @Focus
-       public void setFocus() {
-           if(viewer!=null && viewer.getControl() != null && !viewer.getControl().isDisposed()){
-               viewer.getControl().setFocus();
-           }
-           if(conversation!=null){
-               conversation.bind();
-           }
-               if(input!=null){
-                   input.bind();
-               }
-       }
-
-       @Override
-       public void update(CdmDataChangeMap changeEvents) {
-       }
-
-       @Override
-       public ConversationHolder getConversationHolder() {
-               return conversation;
-       }
-
-       @Override
-       public void changed(Object element) {
-           if(element instanceof DefinedTermBase){
-               DefinedTermBase definedTermBase = (DefinedTermBase) element;
+        return dirty.isDirty();
+    }
+
+    @Focus
+    public void setFocus() {
+        if (viewer != null && viewer.getControl() != null && !viewer.getControl().isDisposed()) {
+            viewer.getControl().setFocus();
+        }
+        if (input != null) {
+            input.bind();
+        }
+
+        if (viewer.getSelection().isEmpty()) {
+            viewer.setSelection(null);
+        }
+    }
+
+    @Override
+    public void changed(Object element) {
+        if (element instanceof DefinedTermBase) {
+            DefinedTermBase<?> definedTermBase = (DefinedTermBase<?>) element;
             TermDto termDto = TermDto.fromTerm(definedTermBase);
-               viewer.update(termDto, null);
-               changedTerms.add(definedTermBase);
+            viewer.update(termDto, null);
+            changedTerms.add(definedTermBase);
             contentProvider.removeVocabularyFromCache(termDto.getVocabularyDto());
-           }
-           else if(element instanceof TermVocabulary){
-               TermVocabulary vocabulary = (TermVocabulary)element;
-               TermVocabularyDto vocabularyDto = new TermVocabularyDto(vocabulary.getUuid(), vocabulary.getRepresentations(), vocabulary.getTermType());
-               viewer.update(vocabularyDto, null);
-               changedTerms.add(vocabulary);
+        } else if (element instanceof TermVocabulary) {
+            TermVocabulary<?> vocabulary = (TermVocabulary<?>) element;
+            TermVocabularyDto vocabularyDto = new TermVocabularyDto(vocabulary.getUuid(),
+                    vocabulary.getRepresentations(), vocabulary.getTermType(), vocabulary.getTitleCache(),
+                    vocabulary.isAllowDuplicates(), vocabulary.isOrderRelevant(), vocabulary.isFlat());
+            viewer.update(vocabularyDto, null);
+            changedTerms.add(vocabulary);
             contentProvider.removeVocabularyFromCache(vocabularyDto);
-           }
-               setDirty(true);
-               viewer.update(element, null);
-       }
-
-       @Override
-       public void forceDirty() {
-           changed(null);
-       }
-
-       public void setDirty(boolean dirty) {
-               this.dirty.setDirty(dirty);
-       }
-
-       @Override
-       public boolean onComplete() {
-               return false;
-       }
-
-       public TreeViewer getViewer() {
-               return viewer;
-       }
-
-       @PreDestroy
-       public void dispose() {
-           if(conversation!=null){
-               conversation.unregisterForDataStoreChanges(this);
-               conversation.close();
-               conversation = null;
-           }
-           if(input!=null){
-               input.dispose();
-           }
-           this.dirty.setDirty(false);
-       }
+        }
+        setDirty(true);
+        viewer.update(element, null);
+    }
+
+    @Override
+    public void forceDirty() {
+        changed(null);
+    }
+
+    public void setDirty(boolean dirty) {
+        this.dirty.setDirty(dirty);
+    }
+
+    @Override
+    public boolean onComplete() {
+        return false;
+    }
+
+    public TreeViewer getViewer() {
+        return viewer;
+    }
+
+    @PreDestroy
+    public void dispose() {
+        if (input != null) {
+            input.dispose();
+        }
+        this.dirty.setDirty(false);
+    }
 
     public TermEditorInput getDefinedTermEditorInput() {
         return input;
@@ -295,12 +286,11 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IE4SavablePart, IContex
 
     @Override
     public void contextStop(IMemento memento, IProgressMonitor monitor) {
-        //close view when workbench closes
-        try{
+        // close view when workbench closes
+        try {
             thisPart.getContext().get(EPartService.class).hidePart(thisPart);
-        }
-        catch(Exception e){
-            //nothing
+        } catch (Exception e) {
+            // nothing
         }
     }
 
@@ -316,4 +306,29 @@ IPartContentHasDetails, IPartContentHasSupplementalData, IE4SavablePart, IContex
     public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
     }
 
-}
+    public void setSelection(TermDto toBeSelected) {
+        TreeItem[] children = viewer.getTree().getItems();
+        for (TreeItem con : children) {
+            if (con.getData() == toBeSelected) {
+                this.viewer.setSelection(new StructuredSelection(toBeSelected));
+                return;
+            } else {
+                if (con != null) {
+                    Object data = con.getData();
+                    if (data != null && data instanceof TermVocabularyDto) {
+                        for (TermDto term : ((TermVocabularyDto) data).getTerms()) {
+                            if (term.getUuid().equals(toBeSelected.getUuid())) {
+                                StructuredSelection selection = new StructuredSelection(term);
+                                viewer.expandToLevel(data, 1);
+                                viewer.setSelection(selection, true);
+                                return;
+                            }
+                        }
+                    }
+                }
+
+            }
+        }
+
+    }
+}
\ No newline at end of file
index 115f16b3f0a2dfd22a306596061f67d06c7686a4..7b29d6690ffa0b1b820705271a2d0c08a27d76c2 100644 (file)
@@ -49,11 +49,11 @@ public class DefinedTermMenuE4 {
         if(CdmStore.isActive()){
 
             //add Feature and NamedArea to top level
-            addChildTermsToMenuManager(items, TermType.Feature, true);
-            addChildTermsToMenuManager(items, TermType.NamedArea);
+//            addChildTermsToMenuManager(items, TermType.Feature, true);
+//            addChildTermsToMenuManager(items, TermType.NamedArea);
 
             MMenu otherMenu = MMenuFactory.INSTANCE.createMenu();
-            otherMenu.setLabel(Messages.DefinedTermMenu_OTHERS);
+            otherMenu.setLabel(Messages.DefinedTermMenu_Vocabularies);
             items.add(otherMenu);
 
             items.add(MMenuFactory.INSTANCE.createMenuSeparator());
@@ -63,9 +63,9 @@ public class DefinedTermMenuE4 {
             for (TermType tt : ttList)
             {
                 //skip Feature and NamedArea as they have already been added to top level
-                if(tt.equals(TermType.Feature) || tt.equals(TermType.NamedArea)){
-                    continue;
-                }
+//                if(tt.equals(TermType.Feature) || tt.equals(TermType.NamedArea)){
+//                    continue;
+//                }
                 // if term type has a parent, do not add it
                 // it will be added in the recursive call
                 if(tt.getKindOf() == null
@@ -83,7 +83,7 @@ public class DefinedTermMenuE4 {
     private void addChildTermsToMenuManager(List<MMenuElement> items, TermType termType, boolean skipChildren) {
 
         //FIXME : need a better way to find out if a term type can be editable (ticket 3853)
-        if(termType.getEmptyDefinedTermBase() != null) {
+        if(termType.getEmptyDefinedTermBase(PreferencesUtil.getGlobalLanguage()) != null) {
             Set<TermType> children = termType.getGeneralizationOf();
             // term type has no children, so create menu item
             if(skipChildren || children.isEmpty()) {
@@ -91,7 +91,7 @@ public class DefinedTermMenuE4 {
             }
             else{
                 MMenu subMenu = MMenuFactory.INSTANCE.createMenu();
-                subMenu.setLabel(termType.getMessage(PreferencesUtil.getGlobalLanguage()));
+                subMenu.setLabel(termType.getLabel(PreferencesUtil.getGlobalLanguage()));
                 items.add(subMenu);
                 // term type has children, so create sub menu
                 subMenu.getChildren().add(createDefaultMenuItem(termType));
@@ -110,7 +110,7 @@ public class DefinedTermMenuE4 {
        private MHandledMenuItem createMenuItem(TermType termType) {
 
            MHandledMenuItem menuItem = MMenuFactory.INSTANCE.createHandledMenuItem();
-        menuItem.setLabel(termType.getMessage());
+        menuItem.setLabel(termType.getLabel());
         MCommand mCommand = MCommandsFactory.INSTANCE.createCommand();
         mCommand.setElementId(COMMAND_ID);
 
@@ -124,7 +124,7 @@ public class DefinedTermMenuE4 {
        private MHandledMenuItem createDefaultMenuItem(TermType termType) {
 
         MHandledMenuItem menuItem = MMenuFactory.INSTANCE.createHandledMenuItem();
-        menuItem.setLabel(String.format(Messages.DefinedTermMenu_OTHER_S, termType.getMessage()));
+        menuItem.setLabel(String.format(Messages.DefinedTermMenu_OTHER_S, termType.getLabel()));
         MCommand mCommand = MCommandsFactory.INSTANCE.createCommand();
         mCommand.setElementId(COMMAND_ID);
 
@@ -142,7 +142,7 @@ public class DefinedTermMenuE4 {
                if (t1.equals(t2)){
                    return 0;
                }
-               int result = t1.getMessage().compareTo(t2.getMessage());
+               int result = t1.getLabel().compareTo(t2.getLabel());
                if (result == 0){
                    return t1.compareTo(t2);
                }
index 692249cb102c33d4b7b3948c58459004fdb54e21..27b645e3c6b863f240a47c4916bcc378cef2ded5 100644 (file)
@@ -49,11 +49,11 @@ public class DefinedTermTreeMenu {
         if(CdmStore.isActive()){
 
             //add Feature and NamedArea to top level
-            addChildTermsToMenuManager(items, TermType.Feature, true);
-            addChildTermsToMenuManager(items, TermType.NamedArea);
+//            addChildTermsToMenuManager(items, TermType.Feature, true);
+//            addChildTermsToMenuManager(items, TermType.NamedArea);
 
             MMenu otherMenu = MMenuFactory.INSTANCE.createMenu();
-            otherMenu.setLabel(Messages.DefinedTermMenu_OTHERS);
+            otherMenu.setLabel(Messages.DefinedTermMenu_Vocabularies);
             items.add(otherMenu);
 
             items.add(MMenuFactory.INSTANCE.createMenuSeparator());
@@ -63,9 +63,9 @@ public class DefinedTermTreeMenu {
             for (TermType tt : ttList)
             {
                 //skip Feature and NamedArea as they have already been added to top level
-                if(tt.equals(TermType.Feature) || tt.equals(TermType.NamedArea)){
-                    continue;
-                }
+//                if(tt.equals(TermType.Feature) || tt.equals(TermType.NamedArea)){
+//                    continue;
+//                }
                 // if term type has a parent, do not add it
                 // it will be added in the recursive call
                 if(tt.getKindOf() == null) {
@@ -82,7 +82,7 @@ public class DefinedTermTreeMenu {
     private void addChildTermsToMenuManager(List<MMenuElement> items, TermType termType, boolean skipChildren) {
 
         //FIXME : need a better way to find out if a term type can be editable (ticket 3853)
-        if(termType.getEmptyDefinedTermBase() != null) {
+        if(termType.getEmptyDefinedTermBase(PreferencesUtil.getGlobalLanguage()) != null) {
             Set<TermType> children = termType.getGeneralizationOf();
             // term type has no children, so create menu item
             if(skipChildren || children.isEmpty()) {
@@ -90,7 +90,7 @@ public class DefinedTermTreeMenu {
             }
             else{
                 MMenu subMenu = MMenuFactory.INSTANCE.createMenu();
-                subMenu.setLabel(termType.getMessage(PreferencesUtil.getGlobalLanguage()));
+                subMenu.setLabel(termType.getLabel(PreferencesUtil.getGlobalLanguage()));
                 items.add(subMenu);
                 // term type has children, so create sub menu
                 subMenu.getChildren().add(createDefaultMenuItem(termType));
@@ -109,7 +109,7 @@ public class DefinedTermTreeMenu {
        private MHandledMenuItem createMenuItem(TermType termType) {
 
            MHandledMenuItem menuItem = MMenuFactory.INSTANCE.createHandledMenuItem();
-        menuItem.setLabel(termType.getMessage());
+        menuItem.setLabel(termType.getLabel());
         MCommand mCommand = MCommandsFactory.INSTANCE.createCommand();
         mCommand.setElementId(COMMAND_ID);
 
@@ -123,7 +123,7 @@ public class DefinedTermTreeMenu {
        private MHandledMenuItem createDefaultMenuItem(TermType termType) {
 
         MHandledMenuItem menuItem = MMenuFactory.INSTANCE.createHandledMenuItem();
-        menuItem.setLabel(String.format(Messages.DefinedTermMenu_OTHER_S, termType.getMessage()));
+        menuItem.setLabel(String.format(Messages.DefinedTermMenu_OTHER_S, termType.getLabel()));
         MCommand mCommand = MCommandsFactory.INSTANCE.createCommand();
         mCommand.setElementId(COMMAND_ID);
 
@@ -141,13 +141,11 @@ public class DefinedTermTreeMenu {
                if (t1.equals(t2)){
                    return 0;
                }
-               int result = t1.getMessage().compareTo(t2.getMessage());
+               int result = t1.getLabel().compareTo(t2.getLabel());
                if (result == 0){
                    return t1.compareTo(t2);
                }
                return result;
            }
        }
-
-
 }
index e030ff5ca77527e25c8359a1c3e400ffc62f53dc..78f27cebf64afee4f206c7a9a147f2dab709c464 100644 (file)
@@ -21,7 +21,7 @@ import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
 import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
-import eu.etaxonomy.cdm.model.location.Country;
+import eu.etaxonomy.cdm.model.term.VocabularyEnum;
 import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
@@ -54,8 +54,10 @@ public class CreateDefinedTermHandlerE4 {
 
         String label = menuItem.getLocalizedLabel();
         IUndoContext undoContext = StoreUtil.getUndoContext();
-
-        AbstractTermDto parent = (AbstractTermDto) selection.getFirstElement();
+        AbstractTermDto parent = null;
+        if (selection.getFirstElement() instanceof AbstractTermDto){
+            parent = (AbstractTermDto) selection.getFirstElement();
+        }
         AbstractPostOperation operation =
                 new CreateDefinedTermOperation(label,
                         undoContext,
@@ -78,15 +80,23 @@ public class CreateDefinedTermHandlerE4 {
         UUID vocabularyUuid = null;
 
         if(firstElement instanceof TermDto){
+            if (((TermDto)firstElement).isManaged() || ((TermDto)firstElement).getVocabularyDto().isManaged()) {
+                return false;
+            }
             vocabularyUuid = ((TermDto) firstElement).getVocabularyUuid();
-        }else if(firstElement instanceof TermVocabularyDto
-                && !menuItem.getCommand().getElementId()
-                .equals(AppModelId.COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_DEFINEDTERMS_NEWKINDOFTERM)){
-            vocabularyUuid = ((TermVocabularyDto) firstElement).getUuid();
+        }else if(firstElement instanceof TermVocabularyDto) {
+            if (((TermVocabularyDto)firstElement).isManaged()) {
+                return false;
+            }
+            if (!menuItem.getCommand().getElementId()
+                    .equals(AppModelId.COMMAND_EU_ETAXONOMY_TAXEDITOR_EDITOR_DEFINEDTERMS_NEWKINDOFTERM)){
+                vocabularyUuid = ((TermVocabularyDto) firstElement).getUuid();
+            }
         }
+             
         canExecute &= vocabularyUuid!=null
                 // TODO temporary fix for #7933
-                && !vocabularyUuid.equals(Country.uuidCountryVocabulary);
+                && VocabularyEnum.getVocabularyEnumByUuid(vocabularyUuid) == null;
         menuItem.setVisible(canExecute);
         return canExecute;
     }
index f99d02199543861152fa6fa9192662faa36beacf..8e8bcba33cfd9d98ef5050c89ce3b08d61feaaff 100644 (file)
@@ -8,6 +8,8 @@
  */
 package eu.etaxonomy.taxeditor.editor.definedterm.e4.handler;
 
+import java.util.HashSet;
+import java.util.Set;
 import java.util.UUID;
 
 import javax.inject.Named;
@@ -22,6 +24,7 @@ import org.eclipse.e4.ui.model.application.ui.menu.MMenuItem;
 import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
+import eu.etaxonomy.cdm.model.term.VocabularyEnum;
 import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
@@ -50,13 +53,13 @@ public class DeleteTermBaseHandlerE4 {
         if(!StoreUtil.confirmDelete()){
             return;
         }
-
+        Set<AbstractTermDto> deleteTerms = new HashSet(selection.toList());
         String label = menuItem.getLocalizedLabel();
         IUndoContext undoContext = StoreUtil.getUndoContext();
         AbstractPostOperation operation =
                 new DeleteTermBaseOperation(label,
                         undoContext,
-                        (AbstractTermDto) selection.getFirstElement(),
+                        deleteTerms,
                         termEditor.getDefinedTermEditorInput(),
                         termEditor);
         AbstractUtility.executeOperation(operation, sync);
@@ -67,15 +70,23 @@ public class DeleteTermBaseHandlerE4 {
             MHandledMenuItem menuItem){
         boolean canExecute = false;
         Object firstElement = selection.getFirstElement();
-        canExecute = selection.size()==1
-                && (firstElement instanceof AbstractTermDto);
+        canExecute = //selection.size()==1 &&
+                 (firstElement instanceof AbstractTermDto);
         UUID vocabularyUuid = null;
         if(firstElement instanceof TermDto){
+            if (((TermDto)firstElement).isManaged() || ((TermDto)firstElement).getVocabularyDto().isManaged()) {
+                return false;
+            }
             vocabularyUuid = ((TermDto) firstElement).getVocabularyUuid();
         }else if(firstElement instanceof TermVocabularyDto){
+            if (((TermVocabularyDto)firstElement).isManaged()) {
+                return false;
+            }
             vocabularyUuid = ((TermVocabularyDto) firstElement).getUuid();
         }
-        canExecute &= vocabularyUuid!=null;
+        
+        
+        canExecute &= vocabularyUuid!=null && VocabularyEnum.getVocabularyEnumByUuid(vocabularyUuid)== null;//!Language.cdmVocabularyUuids().contains(vocabularyUuid);
         menuItem.setVisible(canExecute);
         return canExecute;
     }
index 30bb7310c07255a2f66169d8fc5706bd4027d036..411014444e6f346079969bee965945634f8136b2 100644 (file)
@@ -9,7 +9,7 @@
 package eu.etaxonomy.taxeditor.editor.definedterm.e4.handler;
 
 import java.util.ArrayList;
-import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
@@ -27,16 +27,17 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.cdm.model.location.Country;
+import eu.etaxonomy.cdm.model.term.VocabularyEnum;
 import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.editor.definedterm.e4.DefinedTermEditorE4;
 import eu.etaxonomy.taxeditor.editor.definedterm.operation.MoveDefinedTermOperation;
-import eu.etaxonomy.taxeditor.featuretree.TermChooseWizard;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.termtree.TermChooseWizard;
 
 /**
  *
@@ -59,7 +60,7 @@ public class MoveDefinedTermHandler {
 
         TermDto selectedTerm = (TermDto) selection.getFirstElement();
 
-        TermChooseWizard wizard = new TermChooseWizard(selectedTerm);
+        TermChooseWizard wizard = new TermChooseWizard(selectedTerm, true, true);
         WizardDialog dialog = new WizardDialog(shell, wizard);
 
         List<AbstractTermDto> selectedTerms = new ArrayList<>();
@@ -74,10 +75,26 @@ public class MoveDefinedTermHandler {
             return;
         }
 
+        if(selectedTerms.size()==1){
+               if (selectedTerms.get(0) instanceof TermVocabularyDto) {
+                       if (VocabularyEnum.getVocabularyEnumByUuid(((TermVocabularyDto)selectedTerms.get(0)).getUuid()) != null) {
+                               MessagingUtils.warningDialog("Move not possible", this, "Standard Vocabularies should not be changed");
+                               return;
+                       }
+                   
+               }
+               if (selectedTerms.get(0) instanceof TermDto) {
+                       if (VocabularyEnum.getVocabularyEnumByUuid(((TermDto)selectedTerms.get(0)).getVocabularyUuid()) != null) {
+                               MessagingUtils.warningDialog("Move not possible", this, "Standard Vocabularies should not be changed");
+                               return;
+                       }
+                   
+               }
+        }      
         AbstractTermDto target = selectedTerms.get(0);
         String label = menuItem.getLocalizedLabel();
         IUndoContext undoContext = StoreUtil.getUndoContext();
-        Set<TermDto> movedTerms = Collections.singleton(selectedTerm);
+        Set<TermDto> movedTerms = new HashSet(selection.toList());
         AbstractPostOperation operation =
                 new MoveDefinedTermOperation(label,
                         undoContext,
@@ -93,10 +110,15 @@ public class MoveDefinedTermHandler {
             MHandledMenuItem menuItem){
         boolean canExecute = false;
         Object firstElement = selection.getFirstElement();
-        canExecute = selection.size()==1
-                && firstElement instanceof TermDto
-                // TODO temporary fix for #7933
-                && !((TermDto) firstElement).getVocabularyUuid().equals(Country.uuidCountryVocabulary);
+        canExecute = //selection.size()==1 &&
+                firstElement instanceof TermDto
+                // default vocabularies should not be changed
+                && VocabularyEnum.getVocabularyEnumByUuid(((TermDto) firstElement).getVocabularyUuid()) == null
+                && !((TermDto) firstElement).isManaged()
+                && !((TermDto) firstElement).getVocabularyDto().isManaged();
+//                && !((TermDto) firstElement).getVocabularyUuid().equals(VocabularyEnum.Feature.getUuid())
+//                && !((TermDto) firstElement).getVocabularyUuid().equals(VocabularyEnum.NameFeature.getUuid())
+//                && !Language.cdmVocabularyUuids().contains(((TermDto) firstElement).getVocabularyUuid());
         menuItem.setVisible(canExecute);
         return canExecute;
     }
index b2f698bde2a8c1da926b83989deb044da1131f16..e48024c370e14f47c84c8e3fcc5c2604896efe3a 100644 (file)
@@ -6,32 +6,42 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.editor.definedterm.e4.handler;
+import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 import java.util.UUID;
 import java.util.stream.Collectors;
 
 import org.eclipse.e4.core.di.annotations.Execute;
 import org.eclipse.e4.ui.model.application.MApplication;
+import org.eclipse.e4.ui.model.application.commands.MParameter;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.model.application.ui.basic.MPartStack;
 import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
 import org.eclipse.e4.ui.workbench.modeling.EModelService;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
+import org.eclipse.jface.viewers.IStructuredSelection;
 
+import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.editor.definedterm.e4.DefinedTermEditorE4;
 import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
 
 
 /**
- *
  * @author pplitzner
  * @since Aug 22, 2017
- *
  */
 public class OpenDefinedTermEditorHandlerE4 {
 
@@ -39,29 +49,96 @@ public class OpenDefinedTermEditorHandlerE4 {
        public void execute(EPartService partService, MHandledMenuItem menuItem, MApplication application, EModelService modelService) {
 
            String commandId = menuItem.getCommand().getElementId();
-        UUID termTypeUuid = (UUID) menuItem.getTransientData().get(commandId+".termTypeUuid");
-
-               TermType termType = TermType.getByUuid(termTypeUuid);
-        TermEditorInput termEditorInput = new TermEditorInput(termType);
-               List<MPart> alreadyOpenedEditors = partService.getParts().stream()
-               .filter(part->part.getObject()!=null && part.getObject() instanceof DefinedTermEditorE4)
-               .filter(part->((DefinedTermEditorE4)part.getObject()).getDefinedTermEditorInput().getTermType().equals(termType))
-               .collect(Collectors.toList());
-               if(!alreadyOpenedEditors.isEmpty()){
-                   //there should never be more than one already opened editor
-                   //so we just open the first
-                   partService.activate(alreadyOpenedEditors.iterator().next());
-               }
-               else{
-                   MPart part = partService.createPart(eu.etaxonomy.taxeditor.store.AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_DEFINEDTERM);
-                   MPartStack editorAreaPartStack = WorkbenchUtility.getEditorAreaPartStack(application, modelService);
-                   if(editorAreaPartStack!=null){
-                       editorAreaPartStack.getChildren().add(part);
-                   }
-                   part = partService.showPart(part, PartState.ACTIVATE);
-                   DefinedTermEditorE4 termEditor = (DefinedTermEditorE4) part.getObject();
-                   termEditor.init(termEditorInput);
-               }
-       }
+           List<MParameter> parameters = menuItem.getParameters();
+           TermType termType = null;
+           for (MParameter param: parameters){
+               try{
+                   termType = TermType.getByKey(param.getValue());
+               }catch(Exception e){
+
+               }
+           }
+
+
+//
+//             TermType termType = TermType.getByUuid(termTypeUuid);
+           if(termType != null){
+           TermType type = termType;
+            TermEditorInput termEditorInput = new TermEditorInput(termType);
+               List<MPart> alreadyOpenedEditors = partService.getParts().stream()
+                       .filter(part->part.getObject()!=null && part.getObject() instanceof DefinedTermEditorE4)
+                       .filter(part->((DefinedTermEditorE4)part.getObject()).getDefinedTermEditorInput().getTermType().equals(type))
+                       .collect(Collectors.toList());
+               if(!alreadyOpenedEditors.isEmpty()){
+                   //there should never be more than one already opened editor
+                   //so we just open the first
+                   partService.activate(alreadyOpenedEditors.iterator().next());
+               }
+               else{
+                   MPart part = partService.createPart(eu.etaxonomy.taxeditor.store.AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_DEFINEDTERM);
+                   MPartStack editorAreaPartStack = WorkbenchUtility.getEditorAreaPartStack(application, modelService);
+                   if(editorAreaPartStack!=null){
+                       editorAreaPartStack.getChildren().add(part);
+                   }
+                   part = partService.showPart(part, PartState.ACTIVATE);
+                   DefinedTermEditorE4 termEditor = (DefinedTermEditorE4) part.getObject();
+                   termEditor.init(termEditorInput, menuItem.getLocalizedLabel());
+               }
+           }else{
+               List<UuidAndTitleCache<? extends ICdmBase>>  termUuidAndTitleCaches = (List<UuidAndTitleCache<? extends ICdmBase>> ) menuItem.getTransientData().get(commandId+".uuid");
+               Set<TermType> termTypes = new HashSet<>();
+               Set<UUID> termUuids = new HashSet<>();
+               for (UuidAndTitleCache<?> uuidAndTitleCache: termUuidAndTitleCaches){
+                   termUuids.add(uuidAndTitleCache.getUuid());
+               }
+               List<DefinedTermBase> terms = CdmStore.getService(ITermService.class).load(new ArrayList<>(termUuids), null);
+
+               for (DefinedTermBase term: terms){
+//                 TermType type = termType;
+                   TermEditorInput termEditorInput = new TermEditorInput(term.getTermType());
+                   List<MPart> alreadyOpenedEditors = partService.getParts().stream()
+                           .filter(part->part.getObject()!=null && part.getObject() instanceof DefinedTermEditorE4)
+                           .filter(part->((DefinedTermEditorE4)part.getObject()).getDefinedTermEditorInput().getTermType().equals(term.getTermType()))
+                           .collect(Collectors.toList());
+                   if(!alreadyOpenedEditors.isEmpty()){
+                       //there should never be more than one already opened editor
+                       //so we just open the first
+                       MPart openPart = alreadyOpenedEditors.iterator().next();
+                       partService.activate(openPart);
 
-}
+
+                   }
+                   else{
+                       MPart part = partService.createPart(eu.etaxonomy.taxeditor.store.AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_DEFINEDTERM);
+                       MPartStack editorAreaPartStack = WorkbenchUtility.getEditorAreaPartStack(application, modelService);
+                       if(editorAreaPartStack!=null){
+                           editorAreaPartStack.getChildren().add(part);
+                       }
+                       part = partService.showPart(part, PartState.ACTIVATE);
+                       DefinedTermEditorE4 termEditor = (DefinedTermEditorE4) part.getObject();
+                       termEditor.init(termEditorInput, menuItem.getLocalizedLabel());
+                       TermDto dto = null;
+                       FeatureDto featureDto = null;
+                       if (term instanceof Feature){
+                           Feature feature = (Feature)term;
+                           featureDto = FeatureDto.fromFeature(feature);
+                       }else{
+                           dto = TermDto.fromTerm(term);
+                       }
+
+
+                       IStructuredSelection sel = null;
+                       if (featureDto != null){
+                           termEditor.setSelection(featureDto);
+                       }else{
+                           termEditor.setSelection(dto);
+                       }
+
+
+
+                   }
+               }
+
+           }
+       }
+}
\ No newline at end of file
index 5719511193797bef00baaf62b24e23a56d703268..31bcef73587fc30a3d7d251cdb82b6b052f47380 100644 (file)
@@ -16,21 +16,12 @@ import eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput;
 /**\r
  * @author l.morris\r
  * @date 3 Jan 2012\r
- *\r
  */\r
 public abstract class AbstractDefinedTermEditorInput<T extends DefinedTermBase> extends CdmEntitySessionInput {\r
 \r
-       /**\r
-        *\r
-        */\r
        public AbstractDefinedTermEditorInput() {\r
                super(true);\r
        }\r
 \r
-       /**\r
-        * @return\r
-        */\r
        public abstract List<String> getTermClasses();\r
-\r
-\r
-}
+}
\ No newline at end of file
index df9416700f165a081600eda69a30d3233cbcc0a8..6afdb81bfca62a99f33b9bccfc300ea14fff4695 100644 (file)
@@ -21,126 +21,139 @@ import eu.etaxonomy.cdm.model.term.DefinedTerm;
 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.model.term.VocabularyEnum;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.TermStore;
 
-
-
 /**
  * @author n.hoffmann
  * @date Jan 24, 2012
- *
  */
 public class TermEditorInput extends AbstractDefinedTermEditorInput<DefinedTerm> {
 
-       private TermType termType;
-       private Set<TermVocabularyDto> vocabularies;
-
-       // FIXME: the default feature should be move to CdmApplicationState
-       //        where it is a singleton instance variable
-       private static TermTree defaultFeatureTree = null;
-       private static TermTree defaultNameFeatureTree = null;
-
-       private List<String> termClasses = Arrays.asList(new String[]{
-                       DefinedTerm.class.getName()
-       });
-
-       public TermEditorInput(TermType termType) {
-               this.termType = termType;
-               vocabularies = new HashSet<TermVocabularyDto>();
-               initialiseVocabularies();
-       }
-       public String getName() {
-               return termType.getMessage();
-       }
-
-       @Override
-       public List<String> getTermClasses() {
-               return termClasses;
-       }
-
-       public TermType getTermType() {
-               return termType;
-       }
-
-       public void initialiseVocabularies() {
-               if(vocabularies != null) {
-                       vocabularies.clear();
-               }
-               List<TermVocabularyDto> vocs = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(termType, false);
-               vocabularies.addAll(vocs);
-       }
-
-       public Set<TermVocabularyDto> getVocabularies() {
-               return vocabularies;
-       }
-
-       public void updateDefaultFeatureTree() {
-           for(TermVocabularyDto vocab : getVocabularies()) {
-               if(vocab != null && TermType.Feature.equals(vocab.getTermType())) {
-                   defaultFeatureTree = null;
-                   return;
-               }
-           }
-       }
-
-       @Override
-    public Set<TermVocabularyDto>  getRootEntities() {
+    private TermType termType;
+    private Set<TermCollectionDto> vocabularies;
+
+    // FIXME: the default feature should be move to CdmApplicationState
+    // where it is a singleton instance variable
+    private static TermTree<Feature> defaultFeatureTree = null;
+    private static TermTree<Feature> completeFeatureTree = null;
+    private static TermTree<Feature> defaultNameFeatureTree = null;
+
+    private List<String> termClasses = Arrays.asList(new String[] { DefinedTerm.class.getName() });
+
+    public TermEditorInput(TermType termType) {
+        this.termType = termType;
+        vocabularies = new HashSet<>();
+        initialiseVocabularies();
+    }
+
+    public String getName() {
+        return termType.getLabel();
+    }
+
+    @Override
+    public List<String> getTermClasses() {
+        return termClasses;
+    }
+
+    public TermType getTermType() {
+        return termType;
+    }
+
+    public void initialiseVocabularies() {
+        if (vocabularies != null) {
+            vocabularies.clear();
+        }
+        List<TermVocabularyDto> vocs = CdmStore.getService(IVocabularyService.class)
+                .findVocabularyDtoByTermType(termType, false);
+        vocabularies.addAll(vocs);
+
+    }
+
+    public Set<TermCollectionDto> getVocabularies() {
+        return vocabularies;
+    }
+
+    public void updateDefaultFeatureTree() {
+        for (TermCollectionDto vocab : getVocabularies()) {
+            if (vocab != null && TermType.Feature.equals(vocab.getTermType())) {
+                defaultFeatureTree = null;
+                return;
+            }
+        }
+    }
+
+    @Override
+    public Set<TermCollectionDto> getRootEntities() {
         return getVocabularies();
     }
 
-       @Override
+    @Override
     public void merge() {
-           List<TermVocabulary> vocabularies = new ArrayList<>();
-           getRootEntities().forEach(vocDto->vocabularies.add(CdmStore.getService(IVocabularyService.class).load(vocDto.getUuid())));
+        List<TermVocabulary> vocabularies = new ArrayList<>();
+        getRootEntities().forEach(
+                vocDto -> vocabularies.add(CdmStore.getService(IVocabularyService.class).load(vocDto.getUuid())));
         CdmStore.getService(IVocabularyService.class).merge(vocabularies, true);
         updateDefaultFeatureTree();
     }
 
     public static TermTree getDefaultFeatureTree() {
-        if(defaultFeatureTree == null) {
+        if (defaultFeatureTree == null) {
             List<Feature> features = TermStore.getTerms(Feature.class);
-//            TermVocabulary voc = CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid());
-//            List<Feature> nameFeatures = new ArrayList(voc.getTerms());
+
             List<Feature> taxonFeatures = features.stream().filter(f -> f.isAvailableForTaxon())
                     .collect(Collectors.toList());
-//            for (Feature feature: copy){
-//                if (nameFeatures.contains(feature)){
-//                    features.remove(feature);
-//                }
-//            }
-            defaultFeatureTree = TermTree.NewInstance(taxonFeatures);
+
+            defaultFeatureTree = TermTree.NewFeatureInstance(taxonFeatures);
         }
         return defaultFeatureTree;
     }
 
+    public static TermTree getCompleteFeatureTree() {
+        if (completeFeatureTree == null) {
+            List<Feature> features = TermStore.getTerms(Feature.class);
+            completeFeatureTree = TermTree.NewFeatureInstance(features);
+        }
+        return completeFeatureTree;
+    }
+
+    public static void resetDefaultFeatureTree() {
+        defaultFeatureTree = null;
+    }
+
     public static TermTree getDefaultNameFeatureTree() {
-        if(defaultNameFeatureTree == null) {
-            TermVocabulary voc = CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid());
-            List<Feature> nameFeatures = new ArrayList(voc.getTerms());
-            nameFeatures.remove(Feature.PROTOLOGUE());
-          //List<Feature> nameFeatures = CdmStore.getTermManager().getPreferredTerms(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()), null);
-            defaultNameFeatureTree = TermTree.NewInstance(nameFeatures);
+        if (defaultNameFeatureTree == null) {
+            // List<TermVocabularyDto> vocs = new ArrayList<>();
+            // Set<CdmClass> availableFor = new HashSet<>();
+            // availableFor.add(CdmClass.TAXON_NAME);
+            // vocs =
+            // CdmStore.getService(IVocabularyService.class).findFeatureVocabularyDtoByTermTypes(availableFor);
+            // TermVocabulary voc =
+            // CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid());
+            // List<Feature> nameFeatures = new ArrayList(voc.getTerms());
+            // nameFeatures.remove(Feature.PROTOLOGUE());
+            // PreferencesUtil.createPreferredFeatureTreeForNameDescription();
+            defaultNameFeatureTree = PreferencesUtil.getPreferredFeatureTreeForNameDescription(true);
+            // List<Feature> nameFeatures =
+            // CdmStore.getTermManager().getPreferredTerms(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()),
+            // null);
+            // defaultNameFeatureTree = TermTree.NewInstance(nameFeatures);
         }
         return defaultNameFeatureTree;
+    }
 
+    public static void resetDefaultNameFeatureTree() {
+        defaultNameFeatureTree = null;
     }
 
-    /**
-     * @return
-     */
     public static TermTree<?> getPreferredNameFeatureTree(boolean createNew) {
-
         return PreferencesUtil.getPreferredFeatureTreeForNameDescription(createNew);
-
     }
 
     public static TermTree<?> getPreferredTaxonFeatureTree(boolean createNew) {
-
         return PreferencesUtil.getPreferredFeatureTreeForTaxonDescription(createNew);
-
     }
 }
index 622dfdec8691521f51694881b1ed2ff2f574ddec..d2df0c47781994f7dd5e3496a2bf1505f97db23a 100644 (file)
@@ -16,20 +16,21 @@ import org.eclipse.core.runtime.IStatus;
 \r
 import eu.etaxonomy.cdm.api.service.ITermService;\r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
 import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;\r
 import eu.etaxonomy.cdm.persistence.dto.TermDto;\r
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;\r
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 \r
 /**\r
  * @author l.morris\r
  * @date 21 Dec 2011\r
- *\r
  */\r
-public class CreateDefinedTermOperation extends AbstractPostOperation {\r
+public class CreateDefinedTermOperation extends AbstractPostOperation<DefinedTermBase> {\r
 \r
        private final AbstractTermDto parent;\r
        private final TermEditorInput definedTermInput;\r
@@ -52,11 +53,12 @@ public class CreateDefinedTermOperation extends AbstractPostOperation {
                        throws ExecutionException {\r
            TermDto newTerm = null;\r
            if(parent instanceof TermDto){\r
-               newTerm = CdmStore.getService(ITermService.class).addNewTerm(definedTermInput.getTermType(), parent.getUuid(), addTermAsKindOf);\r
+               newTerm = CdmStore.getService(ITermService.class).addNewTerm(definedTermInput.getTermType(), parent.getUuid(), addTermAsKindOf, PreferencesUtil.getGlobalLanguage());\r
            }\r
            else if(parent instanceof TermVocabularyDto){\r
-               newTerm = CdmStore.getService(IVocabularyService.class).addNewTerm(definedTermInput.getTermType(), parent.getUuid());\r
+               newTerm = CdmStore.getService(IVocabularyService.class).addNewTerm(definedTermInput.getTermType(), parent.getUuid(), PreferencesUtil.getGlobalLanguage());\r
            }\r
+//         newTerm.setTitleCache("_" + newTerm.getTitleCache());\r
                return postExecute(newTerm);\r
        }\r
 \r
index 5d41a115c7265f0908dd753d73f6462a96bae76a..4af9f60c2c3b7aa2e8713f431c88fe2dbc8eb035 100644 (file)
@@ -16,7 +16,6 @@ import org.eclipse.core.runtime.IStatus;
 \r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
-import eu.etaxonomy.cdm.model.term.OrderedTermBase;\r
 import eu.etaxonomy.cdm.model.term.OrderedTermVocabulary;\r
 import eu.etaxonomy.cdm.model.term.TermType;\r
 import eu.etaxonomy.cdm.model.term.TermVocabulary;\r
@@ -24,12 +23,12 @@ import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;\r
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;\r
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 \r
 /**\r
  * @author l.morris\r
  * @date 21 Dec 2011\r
- *\r
  */\r
 public class CreateTermVocabularyOperation extends AbstractPostTaxonOperation {\r
 \r
@@ -47,31 +46,28 @@ public class CreateTermVocabularyOperation extends AbstractPostTaxonOperation {
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
                        throws ExecutionException {\r
 \r
-          TermType type= definedEditorInput.getTermType();\r
-          DefinedTermBase test = type.getEmptyDefinedTermBase();\r
-          TermVocabulary termVocabulary = null;\r
-          if (test instanceof OrderedTermBase){\r
-             termVocabulary = OrderedTermVocabulary.NewInstance(definedEditorInput.getTermType(),\r
-                       null,\r
-                       "Untitled",\r
-                       null,\r
-                       null);\r
+          TermType type = definedEditorInput.getTermType();\r
+          DefinedTermBase<?> test = type.getEmptyDefinedTermBase(PreferencesUtil.getGlobalLanguage());\r
+          TermVocabulary<?> termVocabulary = null;\r
+          if (test.isOrderRelevant()){\r
+             termVocabulary = OrderedTermVocabulary.NewInstance(definedEditorInput.getTermType());\r
+             termVocabulary.setLabel("Untitled", PreferencesUtil.getGlobalLanguage());\r
           }\r
 \r
           if (termVocabulary == null){\r
            termVocabulary =\r
                 TermVocabulary.NewInstance(definedEditorInput.getTermType(),\r
-                    null,\r
+                    null,null,\r
                     "Untitled",\r
                     null,\r
-                    null);\r
+                    null, PreferencesUtil.getGlobalLanguage());\r
           }\r
 \r
                termVocabulary = CdmStore.getService(IVocabularyService.class).save(termVocabulary);\r
                //FIXME: implement creation of term vocabularies\r
 //             definedEditorInput.getVocabularies().add(termVocabulary);\r
 \r
-               return postExecute(new TermVocabularyDto(termVocabulary.getUuid(), termVocabulary.getRepresentations(), termVocabulary.getTermType()));\r
+               return postExecute(new TermVocabularyDto(termVocabulary.getUuid(), termVocabulary.getRepresentations(), termVocabulary.getTermType(), termVocabulary.getTitleCache(), termVocabulary.isAllowDuplicates(), termVocabulary.isOrderRelevant(), termVocabulary.isFlat()));\r
        }\r
 \r
        @Override\r
@@ -85,5 +81,4 @@ public class CreateTermVocabularyOperation extends AbstractPostTaxonOperation {
                        throws ExecutionException {\r
                return null;\r
        }\r
-\r
-}\r
+}
\ No newline at end of file
index 4cbfc5ba6c89fb9b43622da3e8206feb90e49832..23d1c8e43d7b548e9126b619152cf74ba8db83aa 100644 (file)
@@ -8,7 +8,12 @@
 */\r
 package eu.etaxonomy.taxeditor.editor.definedterm.operation;\r
 \r
+import java.util.ArrayList;\r
 import java.util.Collection;\r
+import java.util.HashSet;\r
+import java.util.List;\r
+import java.util.Set;\r
+import java.util.UUID;\r
 \r
 import org.eclipse.core.commands.ExecutionException;\r
 import org.eclipse.core.commands.operations.IUndoContext;\r
@@ -41,44 +46,60 @@ import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 public class DeleteTermBaseOperation extends AbstractPostTaxonOperation {\r
 \r
        private final TermEditorInput definedEditorInput;\r
-       private final AbstractTermDto termBase;\r
+       private final Set<AbstractTermDto> termBases;\r
 \r
        public DeleteTermBaseOperation(String label,\r
                        IUndoContext undoContext,\r
-                       AbstractTermDto termBase,\r
+                       Set<AbstractTermDto> termBases,\r
                        TermEditorInput definedEditorInput,\r
                        IPostOperationEnabled postOperationEnabled) {\r
                super(label, undoContext, postOperationEnabled);\r
-               this.termBase = termBase;\r
+               this.termBases = termBases;\r
                this.definedEditorInput = definedEditorInput;\r
        }\r
 \r
        @Override\r
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
                        throws ExecutionException {\r
-               if (termBase instanceof TermVocabularyDto) {\r
-                       definedEditorInput.getVocabularies().remove(termBase);\r
+               Set<TermVocabularyDto> vocs = new HashSet<>();\r
+               Set<TermDto> terms = new HashSet<>();\r
+               for (AbstractTermDto dto: termBases) {\r
+                       if (dto instanceof TermVocabularyDto) {\r
+                               vocs.add((TermVocabularyDto)dto);\r
+                       }else if (dto instanceof TermDto){\r
+                               terms.add((TermDto)dto);\r
+                       }\r
+               }\r
+               \r
+               if (!terms.isEmpty()) {\r
+                       List<UUID> uuids = new ArrayList<>();\r
+                       terms.forEach(term -> uuids.add(term.getUuid()));\r
+                       DeleteResult result = CdmStore.getService(ITermService.class).delete(uuids,\r
+                               new TermDeletionConfigurator());\r
+                       if (!result.isOk()){\r
+                           return showErrorMessage(result);\r
+            }\r
+               }\r
+               \r
+               if (!vocs.isEmpty()) {\r
+                       for (TermVocabularyDto voc: vocs) {\r
+                       definedEditorInput.getVocabularies().remove(voc);\r
 \r
                        // FIXME this is just a temporary fix for #6952\r
-                       Collection<TermDto> topLevelTerms = CdmStore.getService(IVocabularyService.class).getTopLevelTerms(termBase.getUuid());\r
+                       Collection<TermDto> topLevelTerms = CdmStore.getService(IVocabularyService.class).getTopLevelTerms(voc.getUuid());\r
                        if(!topLevelTerms.isEmpty()){\r
-                           MessagingUtils.warningDialog("Deletion not possible", this, "Deletion not possible. Vocabulary is not empty.\nPlease delete or move the child terms first");\r
+                           MessagingUtils.warningDialog("Deletion not possible", this, "Deletion not possible. Vocabulary "+ voc.getTitleCache()+" is not empty.\nPlease delete or move the child terms first");\r
                            return Status.CANCEL_STATUS;\r
                        }\r
 \r
-                       DeleteResult result =   CdmStore.getService(IVocabularyService.class).delete(termBase.getUuid());\r
+                       DeleteResult result =   CdmStore.getService(IVocabularyService.class).delete(voc.getUuid());\r
                        if (!result.isOk()){\r
                            return showErrorMessage(result);\r
                        }\r
+                       }\r
 \r
-               } else if (termBase instanceof TermDto) {\r
-                       DeleteResult result =   CdmStore.getService(ITermService.class).delete(termBase.getUuid(),\r
-                               new TermDeletionConfigurator());\r
-                       if (!result.isOk()){\r
-                           return showErrorMessage(result);\r
-            }\r
-               }\r
-               return postExecute(termBase);\r
+               } \r
+               return postExecute(termBases);\r
        }\r
 \r
        private IStatus showErrorMessage(DeleteResult result) {\r
index 59518e36f3515349494d5acf9b848636aa76c456..7c18d21f3132319e6529566be98d0338e66c9896 100644 (file)
@@ -26,6 +26,7 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
 import eu.etaxonomy.cdm.model.term.TermVocabulary;\r
 import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;\r
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;\r
 import eu.etaxonomy.cdm.persistence.dto.TermDto;\r
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;\r
 import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;\r
@@ -39,75 +40,72 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */\r
 public class MoveDefinedTermOperation extends AbstractPostTaxonOperation {\r
 \r
-       private final Collection<TermDto> sourceTerms;// the actual DefinedTermBase(s) we are moving\r
-       private final Collection<TermVocabularyDto> sourceVocabularies;\r
-       private final AbstractTermDto targetTermOrVocabulary;// the target VOCABULARY or DefinedTerm we are moving these to\r
-       private final int currentLocation;\r
+    private final Collection<TermDto> sourceTerms;// the actual\r
+                                                  // DefinedTermBase(s) we are\r
+                                                  // moving\r
+    private final Collection<TermCollectionDto> sourceVocabularies;\r
+    private final AbstractTermDto targetTermOrVocabulary;// the target\r
+                                                         // VOCABULARY or\r
+                                                         // DefinedTerm we are\r
+                                                         // moving these to\r
+    private final int currentLocation;\r
 \r
-       public MoveDefinedTermOperation(String label,\r
-               IUndoContext undoContext,\r
-               AbstractTermDto target,\r
-               Collection<TermDto> sourceTerms,\r
-               IPostOperationEnabled postOperationEnabled) {\r
-           this(label, undoContext, target, sourceTerms, postOperationEnabled, ViewerDropAdapter.LOCATION_ON);\r
-       }\r
-       public MoveDefinedTermOperation(String label,\r
-               IUndoContext undoContext,\r
-               AbstractTermDto target,\r
-               Collection<TermDto> sourceTerms,\r
-                       IPostOperationEnabled postOperationEnabled,\r
-                       int currentLocation) {\r
-               super(label, undoContext, postOperationEnabled);\r
+    public MoveDefinedTermOperation(String label, IUndoContext undoContext, AbstractTermDto target,\r
+            Collection<TermDto> sourceTerms, IPostOperationEnabled postOperationEnabled) {\r
+        this(label, undoContext, target, sourceTerms, postOperationEnabled, ViewerDropAdapter.LOCATION_ON);\r
+    }\r
 \r
-               this.targetTermOrVocabulary = target;\r
-               this.sourceTerms = sourceTerms;\r
-               this.currentLocation = currentLocation;\r
-               sourceVocabularies = new HashSet<>();\r
-       }\r
+    public MoveDefinedTermOperation(String label, IUndoContext undoContext, AbstractTermDto target,\r
+            Collection<TermDto> sourceTerms, IPostOperationEnabled postOperationEnabled, int currentLocation) {\r
+        super(label, undoContext, postOperationEnabled);\r
 \r
-       @Override\r
-       public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
-                       throws ExecutionException {\r
-           UpdateResult result = new UpdateResult();\r
-           for(TermDto term:sourceTerms){\r
-               sourceVocabularies.add(term.getVocabularyDto());\r
+        this.targetTermOrVocabulary = target;\r
+        this.sourceTerms = sourceTerms;\r
+        this.currentLocation = currentLocation;\r
+        sourceVocabularies = new HashSet<>();\r
+    }\r
+\r
+    @Override\r
+    public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {\r
+        UpdateResult result = new UpdateResult();\r
+        for (TermDto term : sourceTerms) {\r
+            sourceVocabularies.add(term.getVocabularyDto());\r
             UUID parentUuid = targetTermOrVocabulary.getUuid();\r
             TermMovePosition termMovePosition = TermMovePosition.ON;\r
-            if(currentLocation == ViewerDropAdapter.LOCATION_BEFORE) {\r
+            if (currentLocation == ViewerDropAdapter.LOCATION_BEFORE) {\r
                 termMovePosition = TermMovePosition.BEFORE;\r
-            }\r
-            else if(currentLocation == ViewerDropAdapter.LOCATION_AFTER) {\r
+            } else if (currentLocation == ViewerDropAdapter.LOCATION_AFTER) {\r
                 termMovePosition = TermMovePosition.AFTER;\r
             }\r
             result.includeResult(CdmStore.getService(ITermService.class).moveTerm(term, parentUuid, termMovePosition));\r
         }\r
-           Collection<CdmBase> affectedObjects = result.getUpdatedObjects();\r
-           Collection<AbstractTermDto> affectedDtos = new HashSet();\r
-           for (CdmBase base: affectedObjects){\r
-               if (base instanceof TermVocabulary){\r
-                   TermVocabularyDto dto = new TermVocabularyDto(base.getUuid(), ((TermVocabulary)base).getRepresentations(), ((TermVocabulary)base).getTermType());\r
-                   affectedDtos.add(dto);\r
-               }\r
-               if (base instanceof DefinedTermBase){\r
-                   TermDto dto = TermDto.fromTerm((DefinedTermBase)base);\r
+        Collection<CdmBase> affectedObjects = result.getUpdatedObjects();\r
+        Collection<AbstractTermDto> affectedDtos = new HashSet<>();\r
+        for (CdmBase base : affectedObjects) {\r
+            if (base instanceof TermVocabulary) {\r
+                TermVocabularyDto dto = new TermVocabularyDto(base.getUuid(),\r
+                        ((TermVocabulary<?>) base).getRepresentations(), ((TermVocabulary) base).getTermType(),\r
+                        ((TermVocabulary) base).getTitleCache(), ((TermVocabulary) base).isAllowDuplicates(),\r
+                        ((TermVocabulary) base).isOrderRelevant(), ((TermVocabulary) base).isFlat());\r
                 affectedDtos.add(dto);\r
-               }\r
-           }\r
-\r
+            }\r
+            if (base instanceof DefinedTermBase) {\r
+                TermDto dto = TermDto.fromTerm((DefinedTermBase) base);\r
+                affectedDtos.add(dto);\r
+            }\r
+        }\r
 \r
-               return postExecute(affectedDtos);\r
-       }\r
+        return postExecute(affectedDtos);\r
+    }\r
 \r
-       @Override\r
-       public IStatus redo(IProgressMonitor monitor, IAdaptable info)\r
-                       throws ExecutionException {\r
-               return null;\r
-       }\r
+    @Override\r
+    public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {\r
+        return null;\r
+    }\r
 \r
-       @Override\r
-       public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
-                       throws ExecutionException {\r
-               return null;\r
-       }\r
+    @Override\r
+    public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {\r
+        return null;\r
+    }\r
 \r
 }\r
index 8588c149f457208526cc2922cc0b3b67c7e9edc4..23d35764ac948f5f4353541d6ed0f43e7f986343 100644 (file)
@@ -27,7 +27,6 @@ import eu.etaxonomy.taxeditor.editor.ITaxonEditor;
 /**
  * @author pplitzner
  * @since Sep 4, 2017
- *
  */
 public class EventUtility {
 
index da838db2d9b36b9ebcf717e5b06850b0a618cebb..20a5a5bcd21c5c6921764b59916d12f78e092b3e 100644 (file)
@@ -49,5 +49,18 @@ public interface WorkbenchEventConstants {
 
     public static final String REFRESH_DESCRIPTIVE_DATASET = "REFRESH/DESCRIPTIVE_DATASET";
 
+    public static final String ADD_SAVE_CANDIDATE = "ADD/SAVE/CANDIDATE";
+
+    public static final String REMOVE_ELEMENT = "REMOVE/ELEMENT";
+
+    public static final String ADD_SAVE_CHARACTER = "ADD/SAVE/CHARACTER";
+
+    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";
+
+    public static final String NEED_REFRESH_DETAILS = "BLOCK/DETAILS/TAXON";
 
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/AvailableFeaturesWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/AvailableFeaturesWizard.java
deleted file mode 100644 (file)
index 7508c9c..0000000
+++ /dev/null
@@ -1,79 +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.featuretree;
-
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.jface.wizard.Wizard;
-
-import eu.etaxonomy.cdm.api.service.IVocabularyService;
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;
-import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * <p>AvailableFeaturesWizard class.</p>
- *
- * @author n.hoffmann
- * @created Aug 5, 2010
- * @version 1.0
- */
-public class AvailableFeaturesWizard extends Wizard {
-
-       private AvailableFeaturesWizardPage page;
-
-       private Set<DefinedTermBase> additionalFeatures;
-
-    private List<TermVocabularyDto> vocabularyDtos;
-
-    private boolean singleSelection = false;
-
-       public AvailableFeaturesWizard(TermType termType){
-        vocabularyDtos = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(termType);
-       }
-
-       public AvailableFeaturesWizard(List<TermVocabularyDto> vocabularyDtos){
-           this.vocabularyDtos = vocabularyDtos;
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void addPages() {
-               page = new AvailableFeaturesWizardPage(vocabularyDtos,singleSelection);
-               addPage(page);
-       }
-
-       @Override
-       public boolean canFinish() {
-        int size = page.getSelectedFeatures().size();
-        return singleSelection?size==1:size>0;
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public boolean performFinish() {
-               additionalFeatures = page.getSelectedFeatures();
-               if(singleSelection && additionalFeatures.size()>1){
-                   MessagingUtils.warningDialog("Too many terms selected", this, "You can only select 1 term");
-               }
-               return additionalFeatures.size() > 0;
-       }
-
-       public Set<DefinedTermBase> getAdditionalFeatures() {
-               return additionalFeatures;
-       }
-
-    public void setSingleSelection(boolean singleSelection) {
-        this.singleSelection = singleSelection;
-    }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureNodeTransfer.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureNodeTransfer.java
deleted file mode 100644 (file)
index 4a144aa..0000000
+++ /dev/null
@@ -1,59 +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.featuretree;
-
-import java.util.UUID;
-
-import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
-import eu.etaxonomy.cdm.model.term.TermNode;
-import eu.etaxonomy.taxeditor.model.CdmObjectTransfer;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * <p>FeatureNodeTransfer class.</p>
- *
- * @author n.hoffmann
- * @created Aug 5, 2010
- */
-public class FeatureNodeTransfer extends CdmObjectTransfer<TermNode> {
-
-       private static FeatureNodeTransfer instance = new FeatureNodeTransfer();
-       private static final String TYPE_NAME = "featureNode-transfer-format";
-       private static final int TYPEID = registerType(TYPE_NAME);
-
-       /**
-        * <p>Getter for the field <code>instance</code>.</p>
-        *
-        * @return a {@link eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer} object.
-        */
-       public static synchronized FeatureNodeTransfer getInstance() {
-               return instance;
-       }
-
-       private FeatureNodeTransfer() {
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       protected int[] getTypeIds() {
-               return new int[] { TYPEID };
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       protected String[] getTypeNames() {
-               return new String[] { TYPE_NAME };
-       }
-
-       @Override
-       public TermNode loadElement(UUID uuid) {
-               return  CdmStore.getService(IFeatureNodeService.class).load(uuid);
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreeContentProvider.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreeContentProvider.java
deleted file mode 100644 (file)
index 91b5b26..0000000
+++ /dev/null
@@ -1,83 +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.featuretree;
-
-import java.util.List;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-import eu.etaxonomy.cdm.model.term.TermNode;
-import eu.etaxonomy.cdm.model.term.TermTree;
-
-/**
- * <p>FeatureTreeContentProvider class.</p>
- *
- * @author n.hoffmann
- * @created Aug 5, 2010
- * @version 1.0
- */
-public class FeatureTreeContentProvider implements ITreeContentProvider {
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void dispose() {
-
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public Object[] getElements(Object inputElement) {
-               return this.getChildren(inputElement);
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public Object[] getChildren(Object parentElement) {
-               if(parentElement instanceof TermTree){
-                       List<TermNode> children = ((TermTree) parentElement).getRootChildren();
-                       return children.toArray();
-               }else if(parentElement instanceof TermNode){
-                       List<TermNode> children = ((TermNode) parentElement).getChildNodes();
-                       return children.toArray();
-               }else if(parentElement instanceof List){
-                       return ((List<TermNode>) parentElement).toArray();
-               }else{
-                       return new Object[]{};
-               }
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public Object getParent(Object element) {
-           if(element instanceof TermNode){
-               return ((TermNode) element).getParent();
-           }
-               return null;
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public boolean hasChildren(Object element) {
-               return getChildren(element).length != 0;
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreeLabelProvider.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreeLabelProvider.java
deleted file mode 100644 (file)
index 7139a97..0000000
+++ /dev/null
@@ -1,50 +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.featuretree;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.LabelProvider;
-
-import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;
-import eu.etaxonomy.cdm.model.term.Representation;
-import eu.etaxonomy.cdm.model.term.TermNode;
-import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-
-/**
- *
- * @author n.hoffmann
- * @created Aug 5, 2010
- * @version 1.0
- */
-public class FeatureTreeLabelProvider extends LabelProvider {
-
-       /** {@inheritDoc} */
-       @Override
-       public String getText(Object element) {
-               if(element instanceof TermTree){
-                       return ((TermTree) element).getTitleCache();
-               }else if(element instanceof TermNode){
-                   DefinedTermBase term = ((TermNode) element).getTerm();
-                   if(term!=null){
-                       Representation rep = term.getRepresentation(PreferencesUtil.getGlobalLanguage());
-                       if (rep == null){
-                           rep = term.getPreferredRepresentation(new ArrayList<Language>());
-                       }
-                       return rep != null? rep.getLabel() : term.getTitleCache();
-                   }
-
-               }
-               return "No label provided";
-       }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/AbstractTermTreeEditor.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/AbstractTermTreeEditor.java
deleted file mode 100644 (file)
index 07a9827..0000000
+++ /dev/null
@@ -1,379 +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.featuretree.e4;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import javax.inject.Inject;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.e4.ui.di.Focus;
-import org.eclipse.e4.ui.di.Persist;
-import org.eclipse.e4.ui.di.UISynchronize;
-import org.eclipse.e4.ui.model.application.ui.MDirtyable;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.services.EMenuService;
-import org.eclipse.e4.ui.workbench.modeling.EPartService;
-import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IMemento;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.api.service.ITermService;
-import eu.etaxonomy.cdm.api.service.ITermTreeService;
-import eu.etaxonomy.cdm.model.description.Character;
-import eu.etaxonomy.cdm.model.term.TermNode;
-import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.editor.definedterm.FeatureTreeViewerComparator;
-import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer;
-import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
-import eu.etaxonomy.taxeditor.featuretree.FeatureTreeContentProvider;
-import eu.etaxonomy.taxeditor.featuretree.FeatureTreeLabelProvider;
-import eu.etaxonomy.taxeditor.featuretree.e4.operation.AddFeatureOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.IContextListener;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
-import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
-import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.store.AppModelId;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.workbench.part.IE4ViewerPart;
-
-/**
- *
- * @author pplitzner
- * @date 06.06.2017
- *
- */
-public abstract class AbstractTermTreeEditor implements IFeatureTreeEditor, ISelectionChangedListener,
-        IE4ViewerPart, IPartContentHasDetails, IPartContentHasSupplementalData,
-        IContextListener, IConversationEnabled, IDirtyMarkable {
-
-    public static final List<String> TREE_PROPERTY_PATH = Arrays.asList(new String[] {
-            "root", //$NON-NLS-1$
-            "root.children", //$NON-NLS-1$
-            "root.children.inapplicableIf", //$NON-NLS-1$
-            "root.children.inapplicableIf.feature", //$NON-NLS-1$
-            "root.children.inapplicableIf.state", //$NON-NLS-1$
-            "root.children.onlyApplicableIf", //$NON-NLS-1$
-            "root.children.onlyApplicableIf.feature", //$NON-NLS-1$
-            "root.children.onlyApplicableIf.state", //$NON-NLS-1$
-    });
-
-    private ConversationHolder conversation;
-
-    private ICdmEntitySession cdmEntitySession;
-
-    @Inject
-    private ESelectionService selService;
-
-    @Inject
-    private MDirtyable dirty;
-
-    @Inject
-    private UISynchronize sync;
-
-    @Inject
-    private MPart thisPart;
-
-    private TreeViewer viewer;
-
-    @Inject
-    public AbstractTermTreeEditor() {
-        CdmStore.getContextManager().addContextListener(this);
-    }
-
-    @PostConstruct
-    public void createControl(Composite parent, EMenuService menuService){
-        if (CdmStore.isActive()){
-            initSession();
-        }
-        else{
-            return;
-        }
-        parent.setLayout(new FillLayout());
-        viewer = new TreeViewer(parent);
-        viewer.setContentProvider(new FeatureTreeContentProvider());
-        viewer.setLabelProvider(new FeatureTreeLabelProvider());
-
-        int ops = DND.DROP_COPY | DND.DROP_MOVE;
-        Transfer[] transfers = new Transfer[] {
-                FeatureNodeTransfer.getInstance(),
-                TermTransfer.getInstance(),
-                LocalSelectionTransfer.getTransfer()};
-        viewer.addDragSupport(ops, transfers, new FeatureNodeDragListener(viewer));
-        viewer.addDropSupport(ops, transfers, new FeatureTreeDropAdapter(this, viewer, sync));
-        viewer.addSelectionChangedListener(this);
-        viewer.getTree().addKeyListener(new KeyAdapter() {
-            @Override
-            public void keyPressed(KeyEvent e) {
-                if(e.stateMask == SWT.MOD1 && e.keyCode == 'c'){
-                    copy(viewer.getStructuredSelection());
-                }
-                else if(e.stateMask == SWT.MOD1 && e.keyCode == 'v'){
-                    paste(viewer.getStructuredSelection());
-                }
-            }
-        });
-
-        List<TermTree> trees = getTrees();
-        viewer.setComparator(new FeatureTreeViewerComparator());
-        viewer.setInput(trees);
-
-        //create context menu
-        menuService.registerContextMenu(viewer.getControl(), AppModelId.POPUPMENU_EU_ETAXONOMY_TAXEDITOR_STORE_POPUPMENU_FEATURETREEEDITOR);
-    }
-
-    protected abstract List<TermTree> getTrees();
-
-    public void paste(IStructuredSelection selection) {
-        if (StoreUtil.promptCheckIsDirty(this)) {
-            return;
-        }
-
-        ISelection clipBoardSelection = LocalSelectionTransfer.getTransfer().getSelection();
-        Object firstElement = selection.getFirstElement();
-        TermNode parentNode = null;
-        if(firstElement instanceof TermNode){
-            parentNode = (TermNode) firstElement;
-        }
-        else if(firstElement instanceof TermTree){
-            parentNode = ((TermTree)firstElement).getRoot();
-        }
-        if(parentNode!=null){
-               TermNode copiedNode = (TermNode) ((IStructuredSelection)clipBoardSelection).getFirstElement();
-
-            AddFeatureOperation operation = new AddFeatureOperation(copiedNode.getTerm().getUuid(), parentNode, this, this);
-            AbstractUtility.executeOperation(operation, sync);
-        }
-
-    }
-
-    public void copy(IStructuredSelection selection) {
-        LocalSelectionTransfer.getTransfer().setSelection(selection);
-    }
-
-    private void initSession(){
-        if(conversation == null){
-            conversation = CdmStore.createConversation();
-        }
-        if(cdmEntitySession==null){
-            cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
-        }
-    }
-
-    private void clearSession() {
-        if(conversation!=null){
-            conversation.close();
-            conversation = null;
-        }
-        if(cdmEntitySession != null) {
-            cdmEntitySession.dispose();
-            cdmEntitySession = null;
-        }
-        dirty.setDirty(false);
-    }
-
-       public void setDirty(boolean isDirty){
-           this.dirty.setDirty(isDirty);
-       }
-
-       @Override
-    public boolean isDirty(){
-           return dirty.isDirty();
-       }
-
-       @Override
-       public void selectionChanged(SelectionChangedEvent event) {
-               //propagate selection
-               selService.setSelection(event.getSelection());
-       }
-
-       @Focus
-       public void focus(){
-           if(viewer!=null){
-               viewer.getControl().setFocus();
-           }
-        if(conversation!=null && !conversation.isBound()){
-            conversation.bind();
-        }
-        if(cdmEntitySession != null) {
-            cdmEntitySession.bind();
-        }
-       }
-
-       @Override
-    public void refresh(){
-           viewer.refresh();
-       }
-
-       public TreeViewer getViewer(){
-           return viewer;
-       }
-
-       @Override
-       public IStructuredSelection getSelection() {
-           return (IStructuredSelection) viewer.getSelection();
-       }
-
-       @Override
-       public ConversationHolder getConversationHolder() {
-           return conversation;
-       }
-
-       @Override
-    @Persist
-       public void save(IProgressMonitor monitor){
-        if (!conversation.isBound()) {
-            conversation.bind();
-        }
-
-        // commit the conversation and start a new transaction immediately
-        conversation.commit(true);
-
-        CdmStore.getService(ITermTreeService.class).saveOrUpdate(getRootEntities());
-
-        List<TermTree> rootEntities = getRootEntities();
-        for (TermTree<Character> featureTree : rootEntities) {
-            if(featureTree.getTermType().equals(TermType.Character)){
-                TermTree<Character> characterTree = featureTree;
-                //save characters because they can be modified in this editor
-                characterTree.getDistinctTerms().forEach(character->CdmStore.getService(ITermService.class).merge(character,true));
-            }
-        }
-
-        initializeTrees();
-
-        this.setDirty(false);
-       }
-
-    private void initializeTrees() {
-        Object[] expandedElements = viewer.getExpandedElements();
-        viewer.getTree().removeAll();
-        List<TermTree> trees = getTrees();
-        viewer.setInput(trees);
-        viewer.setExpandedElements(expandedElements);
-    }
-
-       @PreDestroy
-       public void dispose(){
-           selService.setSelection(null);
-           clearSession();
-       }
-
-    @Override
-    public ICdmEntitySession getCdmEntitySession() {
-        return cdmEntitySession;
-    }
-
-    @Override
-    public Map<Object, List<String>> getPropertyPathsMap() {
-        List<String> propertyPaths = Arrays.asList(new String[] {
-                "children", //$NON-NLS-1$
-                "feature", //$NON-NLS-1$
-                "featureTree", //$NON-NLS-1$
-        });
-        Map<Object, List<String>> propertyPathMap =
-                new HashMap<Object, List<String>>();
-        propertyPathMap.put(TermNode.class,propertyPaths);
-        return propertyPathMap;
-    }
-
-    @Override
-    public List<TermTree> getRootEntities() {
-        return (List<TermTree>) viewer.getInput();
-    }
-
-    @Override
-    public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
-    }
-
-    @Override
-    public void contextStop(IMemento memento, IProgressMonitor monitor) {
-        //close view when workbench closes
-        try{
-            thisPart.getContext().get(EPartService.class).hidePart(thisPart);
-        }
-        catch(Exception e){
-            //nothing
-        }
-    }
-
-    @Override
-    public void contextStart(IMemento memento, IProgressMonitor monitor) {
-    }
-
-    @Override
-    public void contextRefresh(IProgressMonitor monitor) {
-    }
-
-    @Override
-    public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
-    }
-
-    @Override
-    public void update(CdmDataChangeMap arg0) {
-    }
-
-    @Override
-    public void changed(Object element) {
-        dirty.setDirty(true);
-        viewer.refresh();
-    }
-
-    @Override
-    public void forceDirty() {
-        dirty.setDirty(true);
-    }
-
-    @Override
-    public boolean postOperation(Object objectAffectedByOperation) {
-        initializeTrees();
-        viewer.refresh();
-        if(objectAffectedByOperation instanceof TermNode){
-               TermNode node = (TermNode)objectAffectedByOperation;
-            viewer.expandToLevel(node.getGraph(), 1);
-        }
-        if(objectAffectedByOperation!=null){
-            StructuredSelection selection = new StructuredSelection(objectAffectedByOperation);
-            viewer.setSelection(selection);
-        }
-        return true;
-    }
-
-    @Override
-    public boolean onComplete() {
-        return false;
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/CharacterTreeEditor.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/CharacterTreeEditor.java
deleted file mode 100644 (file)
index cbdef00..0000000
+++ /dev/null
@@ -1,35 +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.featuretree.e4;
-
-import java.util.List;
-
-import eu.etaxonomy.cdm.api.service.ITermTreeService;
-import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author pplitzner
- * @since Aug 19, 2019
- *
- */
-public class CharacterTreeEditor extends AbstractTermTreeEditor {
-
-    @Override
-    protected List<TermTree> getTrees(){
-        return CdmStore.getService(ITermTreeService.class).list(TermType.Character, null, null, null, TREE_PROPERTY_PATH);
-    }
-
-    @Override
-    public TermType getTermType() {
-        return TermType.Character;
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/FeatureNodeDragListener.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/FeatureNodeDragListener.java
deleted file mode 100644 (file)
index edcdba0..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
-* Copyright (C) 2017 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.featuretree.e4;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.dnd.DragSourceAdapter;
-import org.eclipse.swt.dnd.DragSourceEvent;
-
-import eu.etaxonomy.cdm.model.term.TermNode;
-import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
-
-public class FeatureNodeDragListener extends DragSourceAdapter {
-
-       private final TreeViewer viewer;
-
-       public FeatureNodeDragListener(TreeViewer viewer) {
-               this.viewer = viewer;
-       }
-
-    /**
-     * Method declared on DragSourceListener
-     */
-    @Override
-    public void dragSetData(DragSourceEvent event) {
-        IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
-        if(selection!=null && !selection.isEmpty()){
-            TermNode[] featureNodes = (TermNode[]) selection.toList().toArray(new TermNode[selection.size()]);
-            if (FeatureNodeTransfer.getInstance().isSupportedType(event.dataType)) {
-                event.data = featureNodes;
-            }
-        }
-    }
-
-       /**
-        * Method declared on DragSourceListener
-        */
-       @Override
-       public void dragStart(DragSourceEvent event) {
-        event.doit = !viewer.getSelection().isEmpty()
-                && ((IStructuredSelection) viewer.getSelection()).toList()
-                .stream().allMatch(element -> element instanceof TermNode);
-       }
-
-}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/FeatureTreeEditor.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/FeatureTreeEditor.java
deleted file mode 100644 (file)
index 19471a2..0000000
+++ /dev/null
@@ -1,37 +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.featuretree.e4;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-import eu.etaxonomy.cdm.api.service.ITermTreeService;
-import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author pplitzner
- * @since Aug 19, 2019
- *
- */
-public class FeatureTreeEditor extends AbstractTermTreeEditor {
-
-    @Override
-    protected List<TermTree> getTrees(){
-        List<TermTree> list = CdmStore.getService(ITermTreeService.class).list(TermType.Feature, null, null, null, TREE_PROPERTY_PATH);
-        return list.stream().filter(tree->tree.getTermType().equals(TermType.Feature)).collect(Collectors.toList());
-    }
-
-    @Override
-    public TermType getTermType() {
-        return TermType.Feature;
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/IFeatureTreeEditor.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/IFeatureTreeEditor.java
deleted file mode 100644 (file)
index e98ba94..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
-* Copyright (C) 2018 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.featuretree.e4;
-
-import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
-import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
-
-/**
- * @author pplitzner
- * @since Nov 22, 2018
- *
- */
-public interface IFeatureTreeEditor extends IPostOperationEnabled, IE4SavablePart, ICdmEntitySessionEnabled {
-
-    public TermType getTermType();
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/NamedAreaTreeEditor.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/NamedAreaTreeEditor.java
deleted file mode 100644 (file)
index 51798dc..0000000
+++ /dev/null
@@ -1,35 +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.featuretree.e4;
-
-import java.util.List;
-
-import eu.etaxonomy.cdm.api.service.ITermTreeService;
-import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author pplitzner
- * @since Aug 19, 2019
- *
- */
-public class NamedAreaTreeEditor extends AbstractTermTreeEditor {
-
-    @Override
-    protected List<TermTree> getTrees(){
-        return CdmStore.getService(ITermTreeService.class).list(TermType.NamedArea, null, null, null, TREE_PROPERTY_PATH);
-    }
-
-    @Override
-    public TermType getTermType() {
-        return TermType.NamedArea;
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/PresenceAbsenceTreeEditor.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/PresenceAbsenceTreeEditor.java
deleted file mode 100644 (file)
index 4dfff2a..0000000
+++ /dev/null
@@ -1,35 +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.featuretree.e4;
-
-import java.util.List;
-
-import eu.etaxonomy.cdm.api.service.ITermTreeService;
-import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author pplitzner
- * @since Aug 19, 2019
- *
- */
-public class PresenceAbsenceTreeEditor extends AbstractTermTreeEditor {
-
-    @Override
-    protected List<TermTree> getTrees(){
-        return CdmStore.getService(ITermTreeService.class).list(TermType.PresenceAbsenceTerm, null, null, null, TREE_PROPERTY_PATH);
-    }
-
-    @Override
-    public TermType getTermType() {
-        return TermType.PresenceAbsenceTerm;
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/PropertyTreeEditor.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/PropertyTreeEditor.java
deleted file mode 100644 (file)
index e409b5f..0000000
+++ /dev/null
@@ -1,35 +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.featuretree.e4;
-
-import java.util.List;
-
-import eu.etaxonomy.cdm.api.service.ITermTreeService;
-import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author pplitzner
- * @since Aug 19, 2019
- *
- */
-public class PropertyTreeEditor extends AbstractTermTreeEditor {
-
-    @Override
-    protected List<TermTree> getTrees(){
-        return CdmStore.getService(ITermTreeService.class).list(TermType.Property, null, null, null, TREE_PROPERTY_PATH);
-    }
-
-    @Override
-    public TermType getTermType() {
-        return TermType.Property;
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/RankTreeEditor.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/RankTreeEditor.java
deleted file mode 100644 (file)
index 2708179..0000000
+++ /dev/null
@@ -1,35 +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.featuretree.e4;
-
-import java.util.List;
-
-import eu.etaxonomy.cdm.api.service.ITermTreeService;
-import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author pplitzner
- * @since Aug 19, 2019
- *
- */
-public class RankTreeEditor extends AbstractTermTreeEditor {
-
-    @Override
-    protected List<TermTree> getTrees(){
-        return CdmStore.getService(ITermTreeService.class).list(TermType.Rank, null, null, null, TREE_PROPERTY_PATH);
-    }
-
-    @Override
-    public TermType getTermType() {
-        return TermType.Rank;
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/StructureTreeEditor.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/StructureTreeEditor.java
deleted file mode 100644 (file)
index e92eaa0..0000000
+++ /dev/null
@@ -1,35 +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.featuretree.e4;
-
-import java.util.List;
-
-import eu.etaxonomy.cdm.api.service.ITermTreeService;
-import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author pplitzner
- * @since Aug 19, 2019
- *
- */
-public class StructureTreeEditor extends AbstractTermTreeEditor {
-
-    @Override
-    protected List<TermTree> getTrees(){
-        return CdmStore.getService(ITermTreeService.class).list(TermType.Structure, null, null, null, TREE_PROPERTY_PATH);
-    }
-
-    @Override
-    public TermType getTermType() {
-        return TermType.Structure;
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/AddChildFeatureHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/AddChildFeatureHandler.java
deleted file mode 100644 (file)
index 03458e9..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
-* Copyright (C) 2017 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.featuretree.e4.handler;
-
-import java.util.Collection;
-
-import javax.inject.Named;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.core.di.annotations.Optional;
-import org.eclipse.e4.ui.di.UISynchronize;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;
-import eu.etaxonomy.cdm.model.term.TermNode;
-import eu.etaxonomy.taxeditor.featuretree.AvailableFeaturesWizard;
-import eu.etaxonomy.taxeditor.featuretree.e4.IFeatureTreeEditor;
-import eu.etaxonomy.taxeditor.featuretree.e4.operation.AddFeatureOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
-
-/**
- * @author pplitzner
- * @since Jul 12, 2017
- */
-public class AddChildFeatureHandler {
-
-    @Execute
-    public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell,
-            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
-            @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
-            UISynchronize sync) {
-        IFeatureTreeEditor editor = ((IFeatureTreeEditor) thisPart.getObject());
-        if (StoreUtil.promptCheckIsDirty(editor)) {
-            return;
-        }
-        TermNode parent = (TermNode)selection.getFirstElement();
-
-//        TermChooseWizard wizard = new TermChooseWizard(parent.getTermType());
-//        WizardDialog dialog = new WizardDialog(shell, wizard);
-//
-//        if (dialog.open() == IStatus.OK) {
-//            List<TermDto> selectedTerms = wizard.getSelectedTerms();
-//            for (TermDto termDto: selectedTerms) {
-//                AddFeatureOperation operation = new AddFeatureOperation(termDto.getUuid(), parent, editor, editor);
-//                AbstractUtility.executeOperation(operation, sync);
-//            }
-//        }
-
-        AvailableFeaturesWizard wizard = new AvailableFeaturesWizard(parent.getTermType());
-        WizardDialog dialog = new WizardDialog(shell, wizard);
-
-        if (dialog.open() == IStatus.OK) {
-            Collection<DefinedTermBase> additionalTerms = wizard.getAdditionalFeatures();
-            for (DefinedTermBase term : additionalTerms) {
-                AddFeatureOperation operation = new AddFeatureOperation(term.getUuid(), parent, editor, editor);
-                AbstractUtility.executeOperation(operation, sync);
-            }
-        }
-    }
-
-    @CanExecute
-    public boolean canExecute(
-            @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
-            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
-            MHandledMenuItem menuItem) {
-        boolean canExecute = false;
-        canExecute = thisPart.getObject() instanceof IFeatureTreeEditor
-                && selection!=null
-                && selection.size()==1
-                && selection.getFirstElement() instanceof TermNode;
-        menuItem.setVisible(canExecute);
-        return canExecute;
-    }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/AddFeatureHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/AddFeatureHandler.java
deleted file mode 100644 (file)
index 4b60083..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
-* Copyright (C) 2017 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.featuretree.e4.handler;
-
-import java.util.Collection;
-
-import javax.inject.Named;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.core.di.annotations.Optional;
-import org.eclipse.e4.ui.di.UISynchronize;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;
-import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.taxeditor.featuretree.AvailableFeaturesWizard;
-import eu.etaxonomy.taxeditor.featuretree.e4.IFeatureTreeEditor;
-import eu.etaxonomy.taxeditor.featuretree.e4.operation.AddFeatureOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
-
-/**
- * @author pplitzner
- * @since Jul 12, 2017
- *
- */
-public class AddFeatureHandler {
-
-    @Execute
-    public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell,
-            @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
-            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart, UISynchronize sync) {
-        IFeatureTreeEditor editor = ((IFeatureTreeEditor) thisPart.getObject());
-        if (StoreUtil.promptCheckIsDirty(editor)) {
-            return;
-        }
-        TermTree tree = (TermTree) selection.getFirstElement();
-//
-//        TermChooseWizard wizard = new TermChooseWizard(tree.getTermType());
-//        WizardDialog dialog = new WizardDialog(shell, wizard);
-//
-//        if (dialog.open() == IStatus.OK) {
-//            List<TermDto> selectedTerms = wizard.getSelectedTerms();
-//            for (TermDto termDto: selectedTerms) {
-//                AddFeatureOperation operation = new AddFeatureOperation(termDto.getUuid(), tree.getRoot(), editor, editor);
-//                AbstractUtility.executeOperation(operation, sync);
-//            }
-//        }
-
-        AvailableFeaturesWizard wizard = new AvailableFeaturesWizard(tree.getTermType());
-        WizardDialog dialog = new WizardDialog(shell, wizard);
-
-        if (dialog.open() == IStatus.OK) {
-            Collection<DefinedTermBase> additionalTerms = wizard.getAdditionalFeatures();
-            for (DefinedTermBase term : additionalTerms) {
-                AddFeatureOperation operation = new AddFeatureOperation(term.getUuid(), tree.getRoot(), editor, editor);
-                AbstractUtility.executeOperation(operation, sync);
-            }
-        }
-    }
-
-    @CanExecute
-    public boolean canExecute(
-            @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
-            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
-            MHandledMenuItem menuItem) {
-        boolean canExecute = false;
-        canExecute = thisPart.getObject() instanceof IFeatureTreeEditor
-                && selection!=null
-                && selection.size()==1
-                && selection.getFirstElement() instanceof TermTree;
-        menuItem.setVisible(canExecute);
-        return canExecute;
-    }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/CreateFeatureTreeHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/CreateFeatureTreeHandler.java
deleted file mode 100644 (file)
index 61f39d9..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
-* Copyright (C) 2017 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.featuretree.e4.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.ui.di.UISynchronize;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-
-import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.taxeditor.featuretree.e4.IFeatureTreeEditor;
-import eu.etaxonomy.taxeditor.featuretree.e4.operation.CreateFeatureTreeOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
-
-/**
- * @author pplitzner
- * @since Jul 12, 2017
- *
- */
-public class CreateFeatureTreeHandler {
-
-    @Execute
-    public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart thisPart, UISynchronize sync){
-        IFeatureTreeEditor editor = (IFeatureTreeEditor) thisPart.getObject();
-
-        if (StoreUtil.promptCheckIsDirty(editor)) {
-            return;
-        }
-
-        TermTree tree = TermTree.NewInstance(editor.getTermType());
-        tree.setAllowDuplicates(false);
-        tree.setFlat(false);
-        tree.setOrderRelevant(true);
-        tree.setTitleCache(String.format("New %s tree", editor.getTermType().getMessage()), true);
-        CreateFeatureTreeOperation operation = new CreateFeatureTreeOperation(tree, editor, editor);
-        AbstractUtility.executeOperation(operation, sync);
-    }
-
-    @CanExecute
-    public boolean canExecute(
-            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
-            MHandledMenuItem menuItem) {
-        boolean canExecute = false;
-        canExecute = thisPart.getObject() instanceof IFeatureTreeEditor;
-        menuItem.setVisible(canExecute);
-        return canExecute;
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/PasteFeatureHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/PasteFeatureHandler.java
deleted file mode 100644 (file)
index 17a3618..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-
-package eu.etaxonomy.taxeditor.featuretree.e4.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.core.di.annotations.Optional;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-import eu.etaxonomy.cdm.model.term.TermNode;
-import eu.etaxonomy.taxeditor.featuretree.e4.AbstractTermTreeEditor;
-
-public class PasteFeatureHandler {
-
-    @Execute
-    public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part,
-            @Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection){
-        AbstractTermTreeEditor editor = (AbstractTermTreeEditor)part.getObject();
-        editor.paste(selection);
-    }
-
-    @CanExecute
-    public boolean canExecute(@Optional @Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection,
-            @Named(IServiceConstants.ACTIVE_PART) MPart part,
-            MHandledMenuItem menuItem){
-        boolean canExecute = false;
-        ISelection transferSelection = LocalSelectionTransfer.getTransfer().getSelection();
-        canExecute = part.getObject() instanceof AbstractTermTreeEditor
-                && selection!=null
-                && selection.size()==1
-                && transferSelection instanceof IStructuredSelection
-                && ((IStructuredSelection)transferSelection).size()==1
-                && ((IStructuredSelection)transferSelection).getFirstElement() instanceof TermNode;
-        menuItem.setVisible(canExecute);
-        return canExecute;
-    }
-
-}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/RemoveFeatureHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/RemoveFeatureHandler.java
deleted file mode 100644 (file)
index c79235a..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
-* Copyright (C) 2017 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.featuretree.e4.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.core.di.annotations.Optional;
-import org.eclipse.e4.ui.di.UISynchronize;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-import eu.etaxonomy.cdm.model.term.TermNode;
-import eu.etaxonomy.taxeditor.featuretree.e4.IFeatureTreeEditor;
-import eu.etaxonomy.taxeditor.featuretree.e4.operation.RemoveFeatureOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
-
-/**
- * @author pplitzner
- * @since Jul 12, 2017
- *
- */
-public class RemoveFeatureHandler {
-
-    @Execute
-    public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
-            @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection, UISynchronize sync){
-        IFeatureTreeEditor editor = (IFeatureTreeEditor) thisPart.getObject();
-
-        if (StoreUtil.promptCheckIsDirty(editor)) {
-            return;
-        }
-        if(!StoreUtil.confirmDelete()){
-            return;
-        }
-
-        for (Object selectedObject : selection.toArray()) {
-               TermNode featureNode = (TermNode) selectedObject;
-            RemoveFeatureOperation operation = new RemoveFeatureOperation(featureNode, editor, editor);
-            AbstractUtility.executeOperation(operation, sync);
-        }
-    }
-
-    @CanExecute
-    public boolean canExecute(
-            @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
-            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
-            MHandledMenuItem menuItem) {
-        boolean canExecute = selection!=null && !selection.isEmpty();
-        if(selection!=null){
-            for(Object object:selection.toArray()){
-                canExecute &= object instanceof TermNode;
-            }
-        }
-        canExecute &= thisPart.getObject() instanceof IFeatureTreeEditor;
-        menuItem.setVisible(canExecute);
-        return canExecute;
-    }
-
-}
index 0371f411d48f99545f1926ea04e4917399306e71..16406c92ec66e7135f98db93b22b425183844cca 100644 (file)
@@ -1,6 +1,6 @@
 package eu.etaxonomy.taxeditor.handler.defaultHandler;
 
-import java.util.UUID;
+import java.util.List;
 
 import javax.inject.Named;
 
@@ -11,60 +11,49 @@ import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
 import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
-import org.eclipse.jface.viewers.IStructuredSelection;
 
-import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.bulkeditor.AppModelId;
 import eu.etaxonomy.taxeditor.editor.IReferencingObjectsView;
+import eu.etaxonomy.taxeditor.view.CdmViewerUtil;
 
 public class OpenReferencingObjectsViewHandler {
 
-    Object selectedObject;
+    private List<UuidAndTitleCache<? extends ICdmBase>> selectedObjectList;
+
     @Execute
     public void execute(EPartService partService) {
+
         MPart part = partService.createPart(AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_BULKEDITOR_REFERENCINGOBJECTS_E4_REFERENCINGOBJECTSVIEWE4);
         part = partService.showPart(part, PartState.ACTIVATE);
         IReferencingObjectsView view = (IReferencingObjectsView)part.getObject();
-        UUID uuid = null;
-        Class clazz = null;
 
-        if (selectedObject instanceof IStructuredSelection){
-            selectedObject = ((IStructuredSelection)selectedObject).getFirstElement();
-        }
-        if (selectedObject instanceof CdmBase){
-            uuid = ((CdmBase)selectedObject).getUuid();
-            clazz = selectedObject.getClass();
-        } else if (selectedObject instanceof UuidAndTitleCache){
-            uuid = ((UuidAndTitleCache)selectedObject).getUuid();
-            clazz = ((UuidAndTitleCache)selectedObject).getType();
+        if (selectedObjectList != null && !selectedObjectList.isEmpty()) {
+            UuidAndTitleCache<? extends ICdmBase> dto = selectedObjectList.get(0);
+            view.handleNewSelection(dto);
         }
-        if (uuid != null && clazz != null){
-            view.updateReferencingObjects(uuid, clazz);
-        }
-
-
-
     }
 
     @CanExecute
     public boolean canExecute(EPartService partService,
             @Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             MHandledMenuItem menuItem) {
+
         boolean canExecute = false;
         MPart part = partService.findPart(AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_BULKEDITOR_REFERENCINGOBJECTS_E4_REFERENCINGOBJECTSVIEWE4);
-        canExecute = !part.equals(activePart);
-
+        canExecute = part.equals(activePart)  //we explicitly want to allow calling the view recursively
+                || part.getObject() == null ;  //we show the menu item only if the view is not yet open (otherwise by setting the focus data will be shown anyway
+                                               //but this may change in future for some data where explicitly calling the view is required
 
+        selectedObjectList = null;
         if (canExecute){
             String commandId = menuItem.getCommand().getElementId();
-            selectedObject = menuItem.getTransientData().get(commandId+".uuid");
-            if (selectedObject instanceof IStructuredSelection){
-                canExecute = ((IStructuredSelection)selectedObject).size() == 1;
-            }
+            Object selectedObject = menuItem.getTransientData().get(commandId+".uuid");
+            selectedObjectList = CdmViewerUtil.transformSelectionToUuidAndTitleCacheList(selectedObject);
+            canExecute = selectedObjectList.size() == 1;
         }
         menuItem.setVisible(canExecute);
         return canExecute;
     }
-
-}
+}
\ No newline at end of file
index c409fdc2cd19c936bafca56a832e06dd14fd6bf8..a2ffb9c38dda811050cbd04f098c7e83edeb29ca 100644 (file)
@@ -1,21 +1,27 @@
+/**
+* Copyright (C) 2020 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.handler.defaultHandler.e4;
 
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
-import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.taxeditor.newWizard.NewClassificationWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
-public class DefaultOpenClassificationWizardHandlerE4 extends DefaultOpenHandlerBaseE4<TaxonNodeDto> {
-
-//    @Override
-//    protected TaxonNode getEntity(UUID uuid) {
-//        return CdmStore.getService(ITaxonNodeService.class).load(uuid);
-//    }
+/**
+ * Handler to open Classification Wizard from taxon navigator
+ */
+public class DefaultOpenClassificationWizardHandlerE4 extends DefaultOpenHandlerBaseE4<ITaxonTreeNode, TaxonNodeDto> {
 
     @Override
     protected void open(TaxonNodeDto entity, Shell shell, EPartService partService) {
@@ -26,18 +32,8 @@ public class DefaultOpenClassificationWizardHandlerE4 extends DefaultOpenHandler
         dialog.open();
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    protected boolean canExecute(Object selection) {
-//        return true;
-        if (((IStructuredSelection)selection).getFirstElement() instanceof TaxonNodeDto){
-            return ((TaxonNodeDto)((IStructuredSelection)selection).getFirstElement()).getTaxonUuid() == null;
-        }
-        return false;
-//      return entity.getClassification().getRootNode().equals(entity);
+    protected boolean canExecute(TaxonNodeDto selection) {
+        return selection.getTaxonUuid() == null;  //only root notes have no taxon
     }
-
-
-}
+}
\ No newline at end of file
index 9f565fec858ced4e676aa8620d00da447664f408..db76806ab9e66917e2b0386fb968ffaeabe7ad27 100644 (file)
@@ -1,5 +1,15 @@
+/**
+* Copyright (C) 2020 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.handler.defaultHandler.e4;
 
+import java.util.List;
+
 import javax.inject.Named;
 
 import org.eclipse.e4.core.contexts.IEclipseContext;
@@ -11,69 +21,84 @@ import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
 import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.e4.ui.workbench.modeling.EModelService;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
-import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+import eu.etaxonomy.taxeditor.view.CdmViewerUtil;
 
-public abstract class DefaultOpenHandlerBaseE4 <T> {
+public abstract class DefaultOpenHandlerBaseE4<S extends ICdmBase, T extends UuidAndTitleCache<S>> {
 
     protected IEclipseContext context;
-
     protected MApplication application;
-
     protected EModelService modelService;
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_SHELL)Shell shell, MHandledMenuItem menuItem,
             EModelService modelService, EPartService partService, MApplication application,
-            IEclipseContext context) {
+            IEclipseContext context) throws Exception {
+
         this.context = context;
         this.modelService = modelService;
         this.application = application;
 
-
         String commandId = menuItem.getCommand().getElementId();
         Object transientData = menuItem.getTransientData().get(commandId+".uuid");
 
-        if (transientData instanceof IStructuredSelection){
+        //FIXME DTO
+        List<T> uuidList = (List<T>)CdmViewerUtil.transformSelectionToUuidAndTitleCacheList(transientData);
 
-            for (Object element: ((IStructuredSelection)transientData).toArray()) {
-               open((T)element, shell, partService);
+        handleUuidList(shell, partService, uuidList);
+    }
+
+    protected void handleUuidList(Shell shell, EPartService partService, List<T> uuidList) throws Exception {
+        if (this.allowsMultiple()){
+            for (T uuid : uuidList){
+                open(uuid, shell, partService);
             }
-        }else if (transientData instanceof UuidAndTitleCache || transientData instanceof CdmBase){
-//            T entity = getEntity(((UuidAndTitleCache)transientData).getUuid());
-            open((T)transientData, shell, partService);
+        }else if (!uuidList.isEmpty()){
+            open(uuidList.get(0), shell, partService);
         }
-
-
     }
 
     @CanExecute
     public boolean canExecute(MHandledMenuItem menuItem,
             @Named(IServiceConstants.ACTIVE_PART) MPart activePart) {
-        boolean canExecute = false;
 
         //check if same part
         String partId = getPartId();
         //check for correct entity
         String commandId = menuItem.getCommand().getElementId();
         Object transientData = menuItem.getTransientData().get(commandId+".uuid");
-        if(transientData instanceof IStructuredSelection || transientData instanceof UuidAndTitleCache || transientData instanceof CdmBase){
-            canExecute = canExecute(transientData)
-                    && (partId!=null?!partId.equals(activePart.getElementId()):true);
-        }
+
+        //FIXME DTO casting
+        List<T> uuidList = (List<T>)CdmViewerUtil.transformSelectionToUuidAndTitleCacheList(transientData);
+        boolean canExecute = partId!=null? !partId.equals(activePart.getElementId()):true;
+        canExecute &= canExecuteHandleList(uuidList);
 
         menuItem.setVisible(canExecute);
         return canExecute;
     }
 
-//    protected abstract T getEntity(UUID uuid);
+    public boolean canExecuteHandleList(List<T> uuidList) {
+        boolean canExecute = false;
+        for (T uuid : uuidList){
+            canExecute |= canExecute(uuid);
+        }
+        return canExecute;
+    }
+
 
-    protected abstract void open(T entity, Shell shell, EPartService partService);
+    protected abstract void open(T entity, Shell shell, EPartService partService) throws Exception;
 
-    protected abstract boolean canExecute(Object entity);
+    protected abstract boolean canExecute(T entity);
+
+    /**
+     * subclasses should override this if it is allowed to open multiple editors in parallel
+     */
+    protected boolean allowsMultiple(){
+        return false;
+    }
 
     /**
      * Returns the part id for the part this handler opens.<br>
@@ -81,5 +106,4 @@ public abstract class DefaultOpenHandlerBaseE4 <T> {
     protected String getPartId(){
         return null;
     }
-
 }
index de184dfcd1f2bce2bb01ec2f8bb9e9254982b92d..e122bd2d45744593867dd5d610fa6ae848f3213a 100755 (executable)
@@ -8,59 +8,39 @@
 */
 package eu.etaxonomy.taxeditor.handler.defaultHandler.e4;
 
-import java.util.ArrayList;
 import java.util.List;
 
-import javax.inject.Named;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.ui.model.application.MApplication;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.e4.ui.workbench.modeling.EModelService;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
-import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.swt.widgets.Shell;
 
+import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 
 /**
  * @author k.luther
- * @param <S>
- * @param <S>
- * @param <S>
  * @since Feb 20, 2020
  */
-public abstract class DefaultOpenSetBaseHandler<S> extends DefaultOpenHandlerBaseE4<S> {
-
-
-
+public abstract class DefaultOpenSetBaseHandler<S extends ICdmBase, T extends UuidAndTitleCache<S>>
+            extends DefaultOpenHandlerBaseE4<S, T> {
 
     @Override
-    @Execute
-    public void execute(@Named(IServiceConstants.ACTIVE_SHELL)Shell shell, MHandledMenuItem menuItem,
-            EModelService modelService, EPartService partService, MApplication application,
-            IEclipseContext context) {
-        this.context = context;
-        this.modelService = modelService;
-        this.application = application;
+    protected void handleUuidList(Shell shell, EPartService partService, List<T> uuidList) throws Exception {
+        open(uuidList, shell, partService);
+    }
 
+    protected abstract void open(List<T> uuidList, Shell shell, EPartService partService);
 
-        String commandId = menuItem.getCommand().getElementId();
-        Object transientData = menuItem.getTransientData().get(commandId+".uuid");
-        S list = null;
-        if(transientData instanceof TreeSelection){
-            list = (S) ((TreeSelection)transientData).toList();
+    @Override
+    protected void open(T entity, Shell shell, EPartService partService) throws Exception {
+        //nothing to do
+    }
 
-        }else if (transientData instanceof UuidAndTitleCache){
-            List<UuidAndTitleCache> uuidList = new ArrayList<>();
-            uuidList.add((UuidAndTitleCache)transientData);
-            list = (S)uuidList;
-        }
-        if (list != null){
-            open(list, shell, partService);
+    @Override
+    public boolean canExecuteHandleList(List<T> uuidList) {
+        boolean canExecute = false;
+        for (T uuid : uuidList){
+            canExecute &= canExecute(uuid);
         }
-
+        return canExecute;
     }
-}
+}
\ No newline at end of file
index 39a7d5d59573d0c410654a5f72dc5e3a151dc143..919c5dba3ca9f4ed382d61fdf02e57ed049a592b 100644 (file)
@@ -8,15 +8,21 @@
 */
 package eu.etaxonomy.taxeditor.handler.defaultHandler.e4;
 
+import java.util.Collection;
+
 import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
-import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.window.Window;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.taxeditor.editor.ITaxonEditor;
 import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -24,34 +30,44 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.section.classification.EditTaxonNodeWizard;
 
 /**
+ * Open the taxon node wizard via e.g. navigator context menu.
+ *
  * @author k.luther
  * @date 22.03.2016
- *
  */
-public class DefaultOpenTaxonNodeWizardHandlerE4 extends DefaultOpenHandlerBaseE4<TaxonNodeDto> {
-
-//    @Override
-//    protected TaxonNode getEntity(UUID uuid) {
-//        return CdmStore.getService(ITaxonNodeService.class).load(uuid);
-//    }
+public class DefaultOpenTaxonNodeWizardHandlerE4 extends DefaultOpenHandlerBaseE4<ITaxonTreeNode, TaxonNodeDto> {
 
     @Override
     protected void open(TaxonNodeDto entity, Shell shell, EPartService partService) {
+        Collection<MPart> dirtyParts = partService.getDirtyParts();
+        if (!dirtyParts.isEmpty()){
+            for (MPart dirtyPart: dirtyParts){
+                if (dirtyPart.getElementId().equals("eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4")  && ((ITaxonEditor)dirtyPart.getObject()).getTaxonNode().getUuid().equals(entity.getUuid())){
+                    boolean doSave = MessageDialog
+                            .openConfirm(shell, "The taxonnode is in an unsaved mode",
+                                    "Do you want to save?");
+                    if (!doSave) {
+                        return ;
+                    }
+
+                    partService.savePart(dirtyPart, false);
+                }
+            }
+        }
         EditTaxonNodeWizard taxonNodeWizard = ContextInjectionFactory.make(EditTaxonNodeWizard.class, context);
         taxonNodeWizard.init(null, null);
         taxonNodeWizard.setEntity(CdmStore.getService(ITaxonNodeService.class).load(entity.getUuid()));
         WizardDialog dialog = new WizardDialog(shell, taxonNodeWizard);
-        dialog.open();
-        EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, entity);
-
+        int result = dialog.open();
+        if (result == Window.OK){
+            entity = new TaxonNodeDto(taxonNodeWizard.getEntity());
+            EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, taxonNodeWizard.getEntity().getParent());
+            EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAME_EDITOR, entity.getTaxonUuid());
+        }
     }
 
     @Override
-    public boolean canExecute(Object selection) {
-        if (((IStructuredSelection)selection).getFirstElement() instanceof TaxonNodeDto && ((IStructuredSelection)selection).size() == 1){
-            return ((TaxonNodeDto)((IStructuredSelection)selection).getFirstElement()).getTaxonUuid()!=null && PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonNodeWizard.getKey());
-        }
-        return false;
+    public boolean canExecute(TaxonNodeDto selection) {
+        return selection.getTaxonUuid()!=null && PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonNodeWizard.getKey());
     }
-
 }
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/e4/OpenDistributionPerAreaStatusAdminWizardHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/e4/OpenDistributionPerAreaStatusAdminWizardHandler.java
new file mode 100755 (executable)
index 0000000..0e8f4a0
--- /dev/null
@@ -0,0 +1,38 @@
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.handler.e4;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.taxeditor.preference.wizard.AvailableDistributionPerAreaStatusWizard;
+
+/**
+ * @author k.luther
+ * @since 19.11.2018
+ *
+ */
+public class OpenDistributionPerAreaStatusAdminWizardHandler {
+    String commandID = "eu.etaxonomy.taxeditor.handler.e4.OpenDistributionPerAreaStatusAdminWizardHandler";
+
+    @Execute
+    public void execute(@Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
+
+        AvailableDistributionPerAreaStatusWizard wizard = new AvailableDistributionPerAreaStatusWizard(true);
+
+        WizardDialog dialog = new WizardDialog(shell,
+                wizard);
+
+        dialog.open();
+    }
+}
index f3962e90e2dc0d7e1e3e4fa94b6759d6c2d532c1..42026240a41e757a9a722876993aead398689fef 100755 (executable)
@@ -20,19 +20,15 @@ import eu.etaxonomy.taxeditor.preference.wizard.AvailableDistributionPerAreaStat
 /**
  * @author k.luther
  * @since 19.11.2018
- *
  */
 public class OpenDistributionPerAreaStatusWizardHandler {
+
     String commandID = "eu.etaxonomy.taxeditor.handler.e4.OpenDistributionPerAreaStatusWizardHandler";
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
-
-        AvailableDistributionPerAreaStatusWizard wizard = new AvailableDistributionPerAreaStatusWizard();
-
-        WizardDialog dialog = new WizardDialog(shell,
-                wizard);
-
+        AvailableDistributionPerAreaStatusWizard wizard = new AvailableDistributionPerAreaStatusWizard(false);
+        WizardDialog dialog = new WizardDialog(shell, wizard);
         dialog.open();
     }
-}
+}
\ No newline at end of file
index 1c2799873e288b398501ef9c40e8551551f4bf6a..235c2e9ddde3a5ec578e76bff1e559b2c14ff2a7 100644 (file)
@@ -34,7 +34,7 @@ public class OpenPasswordWizzardHandlerE4 {
 
            if(principal instanceof User){
 
-               PasswordWizard wizard = new PasswordWizard((User)principal, null);
+               PasswordWizard wizard = new PasswordWizard((User)principal);
                WizardDialog dialog = new WizardDialog(shell, wizard);
 
                dialog.open();
index a55c97d4066c1bc23f55feac654b2b6293bed171..84b2cbce23c65e5e983cf4da9287abb31894d321 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.handler.e4;
 
 import javax.inject.Named;
index 4b760abcf4cb34f0314f460fc54df70cdbe973e5..1cd9530e4a252721a082afcde439c0841391dee2 100644 (file)
@@ -21,23 +21,21 @@ import eu.etaxonomy.taxeditor.util.ApplicationUtil;
  * This class is a utility class for updating the editor from a p2 update site,
  * greatly inspired by the links given below.
  *
- *
  * To Do :
  * - Allow configurable update sites
  *
  * Notes :
  *
- *
  * @see http://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Application
  * @see http://bugs.eclipse.org/281226
  * @see http://www.vogella.com/tutorials/EclipseP2Update/article.html
  */
 public class P2Util {
 
-    private static String EDIT_NIGHTLY_UPDATE_SITE = "http://cybertaxonomy.eu/download/taxeditor/update/nightly/";
+    private static String EDIT_NIGHTLY_UPDATE_SITE = "https://cybertaxonomy.eu/download/taxeditor/update/nightly/";
     private static String EDIT_NIGHTLY_UPDATE_SITE_NAME = "Taxonomic Editor Nightly";
 
-    private static String EDIT_STABLE_UPDATE_SITE = "http://cybertaxonomy.eu/download/taxeditor/update/stable/";
+    private static String EDIT_STABLE_UPDATE_SITE = "https://cybertaxonomy.eu/download/taxeditor/update/stable/";
     private static String EDIT_STABLE_UPDATE_SITE_NAME = "Taxonomic Editor Stable";
 
     /**
@@ -60,12 +58,12 @@ public class P2Util {
     }
 
     public static String getP2UpdateRepositoryName(){
-        return ApplicationUtil.isStable()?EDIT_STABLE_UPDATE_SITE_NAME:EDIT_NIGHTLY_UPDATE_SITE_NAME;
+        return ApplicationUtil.isStable()? EDIT_STABLE_UPDATE_SITE_NAME : EDIT_NIGHTLY_UPDATE_SITE_NAME;
     }
 
     public static URI getP2UpdateRepository(){
         try {
-            return ApplicationUtil.isStable()?new URI(EDIT_STABLE_UPDATE_SITE):new URI(EDIT_NIGHTLY_UPDATE_SITE);
+            return ApplicationUtil.isStable()? new URI(EDIT_STABLE_UPDATE_SITE) : new URI(EDIT_NIGHTLY_UPDATE_SITE);
         } catch (URISyntaxException e) {
             MessagingUtils.error(P2Util.class, e);
         }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/update/SearchPluginHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/update/SearchPluginHandler.java
new file mode 100755 (executable)
index 0000000..072e658
--- /dev/null
@@ -0,0 +1,159 @@
+/**
+* Copyright (C) 2020 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.handler.update;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.IJobChangeEvent;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.core.runtime.jobs.JobChangeAdapter;
+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.internal.p2.metadata.InstallableUnit;
+import org.eclipse.equinox.p2.core.IProvisioningAgent;
+import org.eclipse.equinox.p2.metadata.IInstallableUnit;
+import org.eclipse.equinox.p2.operations.ProvisioningJob;
+import org.eclipse.equinox.p2.operations.ProvisioningSession;
+import org.eclipse.equinox.p2.operations.UpdateOperation;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.taxeditor.l10n.Messages;
+
+/**
+ * @author k.luther
+ * @since Sep 24, 2020
+ */
+public class SearchPluginHandler {
+    private Logger logger = LogManager.getLogger(getClass());
+
+    private UpdateOperation operation;
+
+    @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 checkForPlugins(agent, shell, sync, monitor);
+            }
+        };
+        checkUpdateJob.schedule();
+
+
+        checkUpdateJob.addJobChangeListener(new JobChangeAdapter() {
+            @Override
+            public void done(IJobChangeEvent event) {
+                if (event.getResult().isOK()) {
+                    sync.syncExec(new Runnable() {
+
+                        @Override
+                        public void run() {
+                            if(MessageDialog.openConfirm(shell, Messages.UpdateHandler_UPDATES_FOUND_TITLE, Messages.UpdateHandler_UPDATES_FOUND_MESSAGE)){
+                                Job installUpdateJob = new Job(Messages.UpdateHandler_INSTALL_JOB) {
+                                    @Override
+                                    protected IStatus run(final IProgressMonitor monitor) {
+                                        // run installation
+                                        ProvisioningJob provisioningJob = operation.getProvisioningJob(monitor);
+
+                                        // updates cannot run from within Eclipse IDE!!!
+                                        if (provisioningJob == null) {
+                                            logger.error("Trying to update from the Eclipse IDE? This won't work!"); //$NON-NLS-1$
+                                            return Status.CANCEL_STATUS;
+                                        }
+                                        configureProvisioningJob(provisioningJob, shell, sync, workbench);
+                                        provisioningJob.schedule();
+                                        return Status.OK_STATUS;
+                                    }
+                                };
+                                installUpdateJob.schedule();
+                            }
+                        }
+                    });
+                }
+            }
+        });
+    }
+
+    private IStatus checkForPlugins(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;
+        }
+        return Status.OK_STATUS;
+    }
+
+    private void configureProvisioningJob(ProvisioningJob provisioningJob, final Shell shell, final UISynchronize sync,
+            final IWorkbench workbench) {
+
+        // register a job change listener to track
+        // installation progress and notify user upon success
+        provisioningJob.addJobChangeListener(new JobChangeAdapter() {
+            @Override
+            public void done(IJobChangeEvent event) {
+                if (event.getResult().isOK()) {
+                    sync.syncExec(new Runnable() {
+
+                        @Override
+                        public void run() {
+                            boolean restart = MessageDialog.openQuestion(shell, Messages.UpdateHandler_UPDATE_INSTALLED_TITLE,
+                                    Messages.UpdateHandler_UPDATE_INSTALLED_TITLE_MESSAGE);
+                            if (restart) {
+                                workbench.restart();
+                            }
+                        }
+                    });
+                }
+                super.done(event);
+            }
+        });
+    }
+
+    private void showMessage(final Shell parent, final UISynchronize sync) {
+        sync.syncExec(()->
+        MessageDialog.openWarning(parent, Messages.UpdateHandler_NO_UPDATE_TITLE,
+                        Messages.UpdateHandler_NO_UPDATE_MESSAGE)
+        );
+    }
+
+    private UpdateOperation configureUpdate(final UpdateOperation operation) {
+        // create uri and check for validity
+        URI uri = null;
+        uri = P2Util.getP2UpdateRepository();
+
+        // set location of artifact and metadata repo
+        operation.getProvisioningContext().setArtifactRepositories(new URI[] { uri });
+        operation.getProvisioningContext().setMetadataRepositories(new URI[] { uri });
+        InstallableUnit ctxIU = new InstallableUnit();
+        ctxIU.setId("eu.etaxonomy.taxeditor.local");
+        List<IInstallableUnit> extraIUs = new ArrayList<>();
+        extraIUs.add(ctxIU);
+        operation.getProvisioningContext().setExtraInstallableUnits(extraIUs);
+
+        return operation;
+    }
+}
index 7d1ee7e0aa7b0d0130b41aaaeb6da7165a120119..facc52cb4c971e372587ca18c49d9b464229d9c1 100644 (file)
@@ -12,7 +12,7 @@ package eu.etaxonomy.taxeditor.handler.update;
 
 import java.net.URI;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
@@ -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
@@ -38,21 +42,23 @@ import eu.etaxonomy.taxeditor.l10n.Messages;
  */
 public class UpdateHandler {
 
-    private Logger logger = Logger.getLogger(getClass());
+    private Logger logger = LogManager.getLogger(getClass());
 
     private UpdateOperation operation;
 
     @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,7 +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;
     }
-
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/identificationkey/AbstractIdentificaitonKeyWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/identificationkey/AbstractIdentificaitonKeyWizard.java
deleted file mode 100644 (file)
index 1efddce..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * 
- */
-package eu.etaxonomy.taxeditor.identificationkey;
-
-import org.eclipse.jface.wizard.Wizard;
-
-/**
- * @author n.hoffmann
- *
- */
-public class AbstractIdentificaitonKeyWizard extends Wizard {
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()
-        */
-       @Override
-       public boolean performFinish() {
-               return false;
-       }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/identificationkey/AbstractIdentificationKeyWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/identificationkey/AbstractIdentificationKeyWizard.java
new file mode 100644 (file)
index 0000000..4efbfaa
--- /dev/null
@@ -0,0 +1,22 @@
+/**
+* Copyright (C) 2020 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.identificationkey;
+
+import org.eclipse.jface.wizard.Wizard;
+
+/**
+ * @author n.hoffmann
+ */
+public class AbstractIdentificationKeyWizard extends Wizard {
+
+       @Override
+       public boolean performFinish() {
+           return false;
+       }
+}
\ No newline at end of file
index 15ddbacb353c9faf10a5b3510515cb8ef7f0da5e..d212e76eace830f17301ebbc5cd78222ee8cea26 100644 (file)
@@ -6,12 +6,11 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.io;
 
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.PlatformUI;
@@ -26,50 +25,33 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.dialog.ReportTextDialog;
 
 /**
- * <p>
- * Abstract AbstractIOHandler class.
- * </p>
- *
  * @author n.hoffmann
  * @created Sep 11, 2009
- * @version 1.0
  */
 public abstract class AbstractIOManager<CONFIGURATOR extends IIoConfigurator> {
 
        protected ICdmRepository applicationConfiguration;
 
        public static enum TYPE {
-               Jaxb, Tcs, Excel_Taxa, Endnote, Sdd, Abcd, SpecimenCdmExcel, Excel_Name, SpecimenSearch, Gbif, Excel_Distribution, Ris, OWL
+               Jaxb, Tcs, Excel_Taxa, Sdd, Abcd, Excel_Name, SpecimenSearch, Gbif, Excel_Distribution, Ris, OWL
        }
 
-       /**
-        * <p>
-        * Constructor for AbstractIOHandler.
-        * </p>
-        *
-        * @param applicationController
-        *            a
-        *            {@link eu.etaxonomy.cdm.api.application.CdmApplicationController}
-        *            object.
-        * @param <CONFIGURATOR>
-        *            a CONFIGURATOR object.
-        */
        protected AbstractIOManager(
                        ICdmRepository applicationConfiguration) {
                this.applicationConfiguration = applicationConfiguration;
        }
-
-       /**
-        * Starts the IO process
-        *
-        * @param configurator
-        *            a CONFIGURATOR object.
-        */
-       public void run(final CONFIGURATOR configurator) {
-           // create job
-           Job job = createIOJob(configurator);
-           run(job);
-       }
+//
+//     /**
+//      * Starts the IO process
+//      *
+//      * @param configurator
+//      *            a CONFIGURATOR object.
+//      */
+//     public void run(final CONFIGURATOR configurator) {
+//         // create job
+//         Job job = createIOJob(configurator);
+//         run(job);
+//     }
 
        public void run(Job job) {
            // configure the job
@@ -79,16 +61,16 @@ public abstract class AbstractIOManager<CONFIGURATOR extends IIoConfigurator> {
            job.schedule();
        }
 
-       /**
-        * <p>
-        * createIOJob
-        * </p>
-        *
-        * @param configurator
-        *            a CONFIGURATOR object.
-        * @return a {@link org.eclipse.core.runtime.jobs.Job} object.
-        */
-       protected abstract Job createIOJob(CONFIGURATOR configurator);
+//     /**
+//      * <p>
+//      * createIOJob
+//      * </p>
+//      *
+//      * @param configurator
+//      *            a CONFIGURATOR object.
+//      * @return a {@link org.eclipse.core.runtime.jobs.Job} object.
+//      */
+//     protected abstract Job createIOJob(CONFIGURATOR configurator);
 
         /**
      * @param configurator
index 895469b95984c592db6f9792cbdc553d05d0e23d..00308aff988ecb11fdc93d64f2afd7d63c344c0d 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.io;
 
 import java.io.BufferedWriter;
@@ -24,7 +23,8 @@ import java.util.UUID;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
@@ -35,10 +35,9 @@ import org.eclipse.swt.widgets.Display;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
 import eu.etaxonomy.cdm.io.cdmLight.CdmLightExportConfigurator;
-import eu.etaxonomy.cdm.io.common.CdmDefaultExport;
+import eu.etaxonomy.cdm.io.coldp.ColDpExportConfigurator;
 import eu.etaxonomy.cdm.io.common.ExportDataWrapper;
 import eu.etaxonomy.cdm.io.common.ExportResult;
 import eu.etaxonomy.cdm.io.common.ExportResultType;
@@ -48,7 +47,7 @@ import eu.etaxonomy.cdm.io.dwca.out.DwcaTaxExportConfigurator;
 import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;
 import eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator;
 import eu.etaxonomy.cdm.io.service.IIOService;
-import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.cdm.io.wfo.out.WfoBackboneExportConfigurator;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -58,139 +57,29 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
 /**
- * <p>
- * ExportHandler class.
- * </p>
- *
  * @author n.hoffmann
  * @created Sep 11, 2009
- * @version 1.0
  */
-public class ExportManager extends AbstractIOManager<IExportConfigurator> implements IPostMoniteredOperationEnabled {
+public class ExportManager
+        extends AbstractIOManager<IExportConfigurator>
+        implements IPostMoniteredOperationEnabled {
 
-       private final String successMessage = "The export was successful";
+    private static final Logger logger = LogManager.getLogger();
 
-    private static final Logger logger = Logger.getLogger(ExportManager.class);
     /** Constant <code>DATE_FORMAT_NOW="yyyyMMddHHmm"</code> */
        public static final String DATE_FORMAT_NOW = "yyyyMMddHHmm";
-       /**
-        *
-        * @param applicationConfiguration
-        */
+
+       private final String successMessage = "The export was successful";
+
        private ExportManager(ICdmRepository applicationConfiguration) {
                super(applicationConfiguration);
        }
 
-       /**
-        * <p>
-        * NewInstance
-        * </p>
-        *
-        * @param applicationConfiguration
-        *            a
-        *            {@link eu.etaxonomy.cdm.api.application.CdmApplicationController}
-        *            object.
-        * @return a {@link eu.etaxonomy.taxeditor.io.ExportManager} object.
-        */
        public static ExportManager NewInstance(
                        ICdmRepository applicationConfiguration) {
                return new ExportManager(applicationConfiguration);
        }
 
-       /**
-        * <p>
-        * createIOJob
-        * </p>
-        *
-        * @param configurator
-        *            a {@link eu.etaxonomy.cdm.io.common.IExportConfigurator}
-        *            object.
-        * @return a {@link org.eclipse.core.runtime.jobs.Job} object.
-        */
-       @Override
-       protected Job createIOJob(final IExportConfigurator configurator) {
-
-               Assert.isNotNull(configurator, "Configuration may not be null");
-
-               final Display display = Display.getCurrent();
-
-               Job job = new Job("Export: " + configurator.getClass().getSimpleName()) {
-                       @Override
-                       protected IStatus run(IProgressMonitor monitor) {
-                               monitor.beginTask(
-                                               "Exporting database. This will take some time.", 100);
-                               monitor.worked(10);
-
-                           /** see ticket # 4456 and */
-//                             display.asyncExec(new Runnable() {
-//
-//                                     @Override
-//                                     public void run() {
-//
-//                                         // terminate any open transactions
-//                                             IConversationEnabled activePart = (IConversationEnabled) StoreUtil
-//                                                             .getActivePage().getActivePart();
-//                                             activePart.getConversationHolder().commit(false);
-//                                     }
-//                             });
-
-//                             monitor.worked(10);
-
-                               CdmDefaultExport<IExportConfigurator> exporter = new CdmDefaultExport<IExportConfigurator>();
-                               configurator.setProgressMonitor(CdmProgressMonitorAdapter
-                                               .CreateSubMonitor(monitor, 80));
-                               exporter.setCdmAppController(applicationConfiguration);
-                               monitor.worked(10);
-
-                               try {
-                                       exporter.invoke(configurator);
-                                       monitor.worked(60);
-                               } catch (RuntimeException e) {
-                                       MessagingUtils.messageDialog("Error exporting data", this,
-                                                       "An error occurred while"
-                                                                       + "exporting to destination '"
-                                                                       + configurator.getDestinationNameString()
-                                                                       + "'.\n"
-                                                                       + "Please check error log for details.", e);
-                               }
-
-                               display.asyncExec(new Runnable() {
-
-                                       @Override
-                                       public void run() {
-                                               Object activePart = EventUtility.getActivePart();
-                                               if (activePart instanceof IConversationEnabled) {
-                                                       // terminate any open transactions
-                                                       IConversationEnabled conversationEnabled = (IConversationEnabled) activePart;
-                                                       // restarting transaction and committing it to
-                                                       // trigger
-                                                       // change listener
-                                                       // TODO verify correct behaviour
-
-                                                       try{
-                                                               conversationEnabled.getConversationHolder()
-                                                                       .startTransaction();
-
-                                                               conversationEnabled.getConversationHolder()
-                                                                       .commit();
-                                                       }catch(RuntimeException e){
-                                                               MessagingUtils.messageDialog("Error starting conversation handling", this, "" +
-                                                                               "Conversation Error: "+ e);
-                                                       }
-                                               }
-                                       }
-                               });
-                               monitor.worked(10);
-
-                               return Status.OK_STATUS;
-                       }
-
-
-               };
-
-               return job;
-       }
-
        public Job createIOServiceJob(final IExportConfigurator configurator, final File exportFile) {
            Assert.isNotNull(configurator, "Configuration may not be null");
 
@@ -205,7 +94,7 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                        IIOService ioService = CdmApplicationState.getIOService();
                        UUID uuid = ioService.monitExportData(configurator);
                        IRemotingProgressMonitor remotingMonitor;
-                       List<IFeedbackGenerator> feedBackGeneratorList = new ArrayList<IFeedbackGenerator>();
+                       List<IFeedbackGenerator> feedBackGeneratorList = new ArrayList<>();
                     try {
                         remotingMonitor = CdmStore.getProgressMonitorClientManager().pollMonitor("Export Data",
                                 uuid,
@@ -215,11 +104,11 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                                 subMonitor);
 
                     } catch (Exception ex) {
-                        return new Status(Status.ERROR, TaxeditorStorePlugin.PLUGIN_ID, "Operation Interrupted", ex);
+                        return new Status(IStatus.ERROR, TaxeditorStorePlugin.PLUGIN_ID, "Operation Interrupted", ex);
                     }
 
                        ExportResult result = (ExportResult)remotingMonitor.getResult();
-                       ExportDataWrapper data = result.getExportData();
+                       ExportDataWrapper<?> data = result.getExportData();
                        try{
                        if (result.getExportData().getType().equals(ExportResultType.BYTE_ARRAY) || result.getExportData().getType().equals(ExportResultType.LIST_BYTE_ARRAY)){
                            if (data.getExportData() instanceof byte[]){
@@ -235,7 +124,8 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                                 }
                            }else if (data.getExportData() instanceof List<?>){
                                 //TODO:This needs to be improved
-                               List<byte[]> exportData = (List<byte[]>)data.getExportData();
+                               @SuppressWarnings("unchecked")
+                                List<byte[]> exportData = (List<byte[]>)data.getExportData();
                                     if(exportData != null){
                                         FileOutputStream stream = new FileOutputStream(exportFile);
                                         Writer out = new BufferedWriter(new OutputStreamWriter(
@@ -248,10 +138,9 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                            }
 
                        } else if (result.getExportData().getType().equals(ExportResultType.MAP_BYTE_ARRAY)){
+                            @SuppressWarnings("unchecked")
                             Map<String, byte[]> resultMap = (Map<String, byte[]>)data.getExportData();
                             Set<String> keySet = resultMap.keySet();
-                            SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
-                            Calendar cal = Calendar.getInstance();
                             String fileEnding = ".zip";
                             if (configurator instanceof DwcaTaxExportConfigurator){
                                DwcaTaxExportConfigurator dwcaConfig = (DwcaTaxExportConfigurator)configurator;
@@ -292,10 +181,7 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
            };
            return job;
        }
-       /**
-        * @param jaxb
-        * @return
-        */
+
        private IIoConfigurator getConfigurator(TYPE type) {
                Assert.isNotNull(type, "Type should not be null");
 
@@ -310,34 +196,14 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                }
        }
 
-       /**
-        * <p>
-        * JaxbConfigurator
-        * </p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator} object.
-        */
        public final JaxbExportConfigurator JaxbConfigurator() {
                return (JaxbExportConfigurator) getConfigurator(TYPE.Jaxb);
        }
 
-       /**
-        * <p>
-        * SddConfigurator
-        * </p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator}
-        *         object.
-        */
        public final SDDExportConfigurator SddConfigurator() {
                return (SDDExportConfigurator) getConfigurator(TYPE.Sdd);
        }
 
-    /**
-     * @param configurator
-     * @param urlString
-     * @return
-     */
     public Job createIOServiceJob(CdmLightExportConfigurator configurator, String urlString) {
         Assert.isNotNull(configurator, "Configuration may not be null");
         final Display display = Display.getDefault();
@@ -354,7 +220,7 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                      configurator.setProgressMonitor(CdmProgressMonitorAdapter
                              .CreateSubMonitor(monitor, 80));
                      ExportResult result = ioService.export(configurator);
-                     ExportDataWrapper data = result.getExportData();
+                     ExportDataWrapper<?> data = result.getExportData();
                      try{
                          if (result.getExportData().getType().equals(ExportResultType.BYTE_ARRAY) || result.getExportData().getType().equals(ExportResultType.LIST_BYTE_ARRAY)){
                              byte[] exportData = (byte[])data.getExportData();
@@ -369,7 +235,8 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                                 stream.close();
                              }
                          } else if (result.getExportData().getType().equals(ExportResultType.MAP_BYTE_ARRAY)){
-                             Map<String, byte[]> resultMap = (Map<String, byte[]>)data.getExportData();
+                             @SuppressWarnings("unchecked")
+                            Map<String, byte[]> resultMap = (Map<String, byte[]>)data.getExportData();
                              Set<String> keySet = resultMap.keySet();
                              SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
                              Calendar cal = Calendar.getInstance();
@@ -395,7 +262,9 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
                                      Writer out = new BufferedWriter(new OutputStreamWriter(
                                                        stream, "UTF8"));
                                      stream.write(fileData);
+                                     out.flush();
                                      stream.close();
+
                                  }
                                 }
                         }else{
@@ -430,33 +299,41 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> implem
             @Override
             public void run() {
                boolean isZip = false;
-               if (configurator instanceof CdmLightExportConfigurator){
-                       isZip = ((CdmLightExportConfigurator)configurator).isCreateZipFile();
+               String urlAddition = "";
+               if (configurator instanceof CdmLightExportConfigurator 
+                               || configurator instanceof ColDpExportConfigurator 
+                               || configurator instanceof WfoBackboneExportConfigurator){
+                       
+                       if (configurator instanceof CdmLightExportConfigurator) {
+                           isZip = ((CdmLightExportConfigurator)configurator).isCreateZipFile();
+                       }else if (configurator instanceof ColDpExportConfigurator){
+                           isZip = ((ColDpExportConfigurator)configurator).isCreateZipFile();
+                       }else if (configurator instanceof WfoBackboneExportConfigurator){
+                           isZip = ((WfoBackboneExportConfigurator)configurator).isCreateZipFile();
+                           if (isZip) {
+                               SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
+                            Calendar cal = Calendar.getInstance();
+                               urlAddition = File.separator + ((WfoBackboneExportConfigurator)configurator).getFamilyStr() + "_WFO_" + sdf.format(cal.getTime());
+                           }
+                       }
                 }
-                AbstractUtility.executeMoniteredExport(configurator.getUserFriendlyIOName() != null? configurator.getUserFriendlyIOName(): "Export",
+                AbstractUtility.executeMoniteredExport(
+                               configurator.getUserFriendlyIOName() != null? configurator.getUserFriendlyIOName(): "Export",
                         uuid,
                         1000,
                         true,
                         ExportManager.this,
                         null,
-                        urlString,
+                        urlString+urlAddition,
                         isZip);
-
             }
         });
-
     }
 
        @Override
        public void postOperation(IRemotingProgressMonitor monitor) {
-                Display.getDefault().asyncExec(new Runnable() {
-
-                   @Override
-                   public void run() {
-                       CdmStore.getContextManager().notifyContextRefresh();
-                   }
-               });
-
+                Display.getDefault().asyncExec(()-> {
+                CdmStore.getContextManager().notifyContextRefresh();
+        });
        }
-
-}
+}
\ No newline at end of file
index b4249cc301e8e5851a41d9d2cd1611841a030177..f4643f2e7556ae387ddac1471a612aeef3b22f17 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.io;
 
 import java.io.File;
@@ -24,12 +23,10 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
-import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
 import eu.etaxonomy.cdm.io.common.ImportConfiguratorBase;
@@ -39,133 +36,114 @@ import eu.etaxonomy.cdm.io.distribution.excelupdate.ExcelDistributionUpdateConfi
 import eu.etaxonomy.cdm.io.dwca.in.DwcaImportConfigurator;
 import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator;
 import eu.etaxonomy.cdm.io.jaxb.JaxbImportConfigurator;
-import eu.etaxonomy.cdm.io.reference.endnote.in.EndnoteImportConfigurator;
 import eu.etaxonomy.cdm.io.sdd.in.SDDImportConfigurator;
 import eu.etaxonomy.cdm.io.service.IIOService;
 import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
-import eu.etaxonomy.cdm.io.specimen.excel.in.SpecimenCdmExcelImportConfigurator;
 import eu.etaxonomy.cdm.io.specimen.gbif.in.GbifImportConfigurator;
 import eu.etaxonomy.cdm.io.specimen.gbif.in.GbifImportState;
 import eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-import eu.etaxonomy.taxeditor.ui.dialog.ReportTextDialog;
 
 /**
- * <p>
- * ImportHandler class.
- * </p>
- *
  * @author n.hoffmann
  * @created Sep 11, 2009
- * @version 1.0
  */
 public class ImportManager extends AbstractIOManager<IImportConfigurator> implements IPostMoniteredOperationEnabled {
 
        String importSuccessMessage = "The import was successful.";
        String updateSuccessMessage = "The update was successful.";
 
-       /**
-        * @param applicationConfiguration
-        */
        private ImportManager(ICdmRepository applicationConfiguration) {
                super(applicationConfiguration);
        }
 
-       /**
-        * <p>
-        * NewInstance
-        * </p>
-        *
-        * @param applicationConfiguration
-        *            a
-        *            {@link eu.etaxonomy.cdm.api.application.CdmApplicationController}
-        *            object.
-        * @return a {@link eu.etaxonomy.taxeditor.io.ImportManager} object.
-        */
        public static ImportManager NewInstance(
                        ICdmRepository applicationConfiguration) {
                return new ImportManager(applicationConfiguration);
        }
 
-       /**
-        * Use when importing data into the current application context
-        *
-        * @param configurator
-        *            a {@link eu.etaxonomy.cdm.io.common.IImportConfigurator}
-        *            object.
-        * @return a {@link org.eclipse.core.runtime.jobs.Job} object.
-        */
-       @Override
-       protected Job createIOJob(final IImportConfigurator configurator) {
-               Assert.isNotNull(configurator, "Configuration may not be null");
-
-               final Display display = Display.getDefault();
-
-               Job job = new Job("Import: " + configurator.getClass().getSimpleName()) {
-
-                       @Override
-                       protected IStatus run(IProgressMonitor monitor) {
-                               monitor.beginTask("Importing data", 100);
-                               configurator.setProgressMonitor(CdmProgressMonitorAdapter
-                                               .CreateSubMonitor(monitor, 70));
-
-                               monitor.worked(5);
-
-                               CdmDefaultImport<IImportConfigurator> importer = new CdmDefaultImport<IImportConfigurator>();
-                               importer.setCdmAppController(applicationConfiguration);
-                               monitor.worked(5);
-                               ImportResult importResult = null;
-                               try {
-                                       importResult = importer.invoke(configurator);
-
-                                       monitor.worked(80);
-                               } catch (RuntimeException e) {
-                                       MessagingUtils.messageDialog(
-                                                       "Error importing data",
-                                                       this,
-                                                       "An error occurred while"
-                                                                       + "importing from source '"
-                                                                       + configurator.getSourceNameString()
-                                                                       + "'.\n"
-                                                                       + "Please check error log for details.", e);
-                               }
-
-                               monitor.worked(5);
-                               monitor.done();
-
-
-                               final StringBuilder reportText = new StringBuilder();
-                               if(importResult!=null){
-                                   List<byte[]> reports = importResult.getReports();
-                                   for (byte[] bs : reports) {
-                        reportText.append(new String(bs));
-                    }
-                               }
-                               display.asyncExec(new Runnable() {
-
-                                       @Override
-                                       public void run() {
-                        // display reports with possibility to save
-                        ReportTextDialog dialog = new ReportTextDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
-                        dialog.setTitle(configurator.getClass().getSimpleName()+" Report");
-                        dialog.setReportText(reportText.toString());
-                        dialog.open();
-                                               CdmStore.getContextManager().notifyContextRefresh();
-                                       }
-                               });
-
-                               return Status.OK_STATUS;
-                       }
-               };
-
-               return job;
-
-       }
+//     /**
+//      * Use when importing data into the current application context
+//      *
+//      * @param configurator
+//      *            a {@link eu.etaxonomy.cdm.io.common.IImportConfigurator}
+//      *            object.
+//      * @return a {@link org.eclipse.core.runtime.jobs.Job} object.
+//      */
+//     @Override
+//     protected Job createIOJob(final IImportConfigurator configurator) {
+//             Assert.isNotNull(configurator, "Configuration may not be null");
+//
+//             final Display display = Display.getDefault();
+//
+//             Job job = new Job("Import: " + configurator.getClass().getSimpleName()) {
+//
+//                     @Override
+//                     protected IStatus run(IProgressMonitor monitor) {
+//                             monitor.beginTask("Importing data", 100);
+//                             configurator.setProgressMonitor(CdmProgressMonitorAdapter
+//                                             .CreateSubMonitor(monitor, 70));
+//
+//                             monitor.worked(5);
+//
+//                             CdmDefaultImport<IImportConfigurator> importer = new CdmDefaultImport<>();
+//                             importer.setCdmAppController(applicationConfiguration);
+//                             monitor.worked(5);
+//                             ImportResult importResult = null;
+//                             try {
+//                                     importResult = importer.invoke(configurator);
+//
+//                                     monitor.worked(80);
+//                             } catch (RuntimeException e) {
+//                                     MessagingUtils.messageDialog(
+//                                                     "Error importing data",
+//                                                     this,
+//                                                     "An error occurred while"
+//                                                                     + "importing from source '"
+//                                                                     + configurator.getSourceNameString()
+//                                                                     + "'.\n"
+//                                                                     + "Please check error log for details.", e);
+//                             }
+//
+//                             monitor.worked(5);
+//                             monitor.done();
+//
+//
+//                             final StringBuilder reportText = new StringBuilder();
+//                             if(importResult!=null){
+//                                 List<byte[]> reports = importResult.getReports();
+//                                 for (byte[] bs : reports) {
+//                        reportText.append(new String(bs));
+//                    }
+//                             }
+//                             display.asyncExec(new Runnable() {
+//
+//                                     @Override
+//                                     public void run() {
+//                        // display reports with possibility to save
+//                        ReportTextDialog dialog = new ReportTextDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
+//                        dialog.setTitle(configurator.getClass().getSimpleName()+" Report");
+//                        dialog.setReportText(reportText.toString());
+//                        dialog.open();
+//
+//                                             CdmStore.getContextManager().notifyContextRefresh();
+//
+//                                     }
+//                             });
+//
+//                             return Status.OK_STATUS;
+//                     }
+//             };
+//
+//             return job;
+//
+//     }
 
        public Job createIOServiceJob(IImportConfigurator configurator, InputStream is, SOURCE_TYPE type) {
 
@@ -284,7 +262,7 @@ public class ImportManager extends AbstractIOManager<IImportConfigurator> implem
                         1000,
                         false,
                         ImportManager.this,
-                        null, true);
+                        null, true, true);
             }
         });
 
@@ -298,8 +276,6 @@ public class ImportManager extends AbstractIOManager<IImportConfigurator> implem
                        return JaxbImportConfigurator.NewInstance(null, null);
                case Tcs:
                        return TcsXmlImportConfigurator.NewInstance(null, null);
-               case Endnote:
-                       return EndnoteImportConfigurator.NewInstance(null, null);
                case Excel_Taxa:
                        return NormalExplicitImportConfigurator.NewInstance(null, null,
                                        null, null);
@@ -307,8 +283,6 @@ public class ImportManager extends AbstractIOManager<IImportConfigurator> implem
                        return Abcd206ImportConfigurator.NewInstance(null, null);
                case Sdd:
                        return SDDImportConfigurator.NewInstance(null, null);
-               case SpecimenCdmExcel:
-                       return SpecimenCdmExcelImportConfigurator.NewInstance(null, null);
                case SpecimenSearch:
                    return Abcd206ImportConfigurator.NewInstance(null, null);
                case Gbif:
@@ -348,18 +322,7 @@ public class ImportManager extends AbstractIOManager<IImportConfigurator> implem
                return (TcsXmlImportConfigurator) getConfigurator(TYPE.Tcs);
        }
 
-       /**
-        * <p>
-        * EndnoteConfigurator
-        * </p>
-        *
-        * @return a
-        *         {@link eu.etaxonomy.cdm.io.reference.endnote.in.EndnoteImportConfigurator}
-        *         object.
-        */
-       public final EndnoteImportConfigurator EndnoteConfigurator() {
-               return (EndnoteImportConfigurator) getConfigurator(TYPE.Endnote);
-       }
+       
 
        /**
         * <p>
@@ -399,10 +362,6 @@ public class ImportManager extends AbstractIOManager<IImportConfigurator> implem
                return (Abcd206ImportConfigurator) getConfigurator(TYPE.Abcd);
        }
 
-       public SpecimenCdmExcelImportConfigurator SpecimenCdmExcelImportConfigurator() {
-               return (SpecimenCdmExcelImportConfigurator) getConfigurator(TYPE.SpecimenCdmExcel);
-       }
-
        public DwcaImportConfigurator DwcaImportConfigurator() {
                return (DwcaImportConfigurator) getConfigurator(TYPE.Gbif);
        }
@@ -507,7 +466,7 @@ public class ImportManager extends AbstractIOManager<IImportConfigurator> implem
                            }
                        });
                        showResult("Abcd Import", display, result, importSuccessMessage);
-
+                       EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, true);
 
 
                        return Status.OK_STATUS;
similarity index 89%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/AbstractImportWizardE4.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/AbstractImportWizard.java
index d171aba3d38773698adb6732fd89262686763586..15ab33a845a8dcbd3e84a2df039461d57a4067f7 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.io.e4.in;
 
 import org.eclipse.e4.core.contexts.ContextInjectionFactory;
@@ -23,13 +22,12 @@ import eu.etaxonomy.cdm.io.common.IIoConfigurator;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 
 /**
- *
  * @author pplitzner
  * @since Oct 5, 2017
  *
  * @param <CONFIG>
  */
-public abstract class AbstractImportWizardE4<CONFIG extends IIoConfigurator> extends Wizard {
+public abstract class AbstractImportWizard<CONFIG extends IIoConfigurator> extends Wizard {
 
        protected GenericConfiguratorWizardPageE4 pageConfiguration;
        private NomenclaturalCodeWizardPageE4 pageNomenclaturalCode;
@@ -40,17 +38,16 @@ public abstract class AbstractImportWizardE4<CONFIG extends IIoConfigurator> ext
 
     private EPartService partService;
 
-    public AbstractImportWizardE4(IEclipseContext context, EPartService partService) {
+    public AbstractImportWizard(IEclipseContext context, EPartService partService) {
         this(context, partService, null);
     }
 
-    public AbstractImportWizardE4(IEclipseContext context, EPartService partService, IStructuredSelection selection) {
+    public AbstractImportWizard(IEclipseContext context, EPartService partService, IStructuredSelection selection) {
            this.context = context;
            this.partService = partService;
            this.selection = selection;
     }
 
-       /** {@inheritDoc} */
        @Override
        public void addPages() {
                super.addPages();
@@ -99,5 +96,4 @@ public abstract class AbstractImportWizardE4<CONFIG extends IIoConfigurator> ext
        public IStructuredSelection getSelection() {
                return selection;
        }
-
-}
+}
\ No newline at end of file
index 400740bfe70422ca9802cbb03a4dbcc054e33687..11f1cedbd0e9f8c3d5c64aba68172df2519ee514 100644 (file)
@@ -17,18 +17,16 @@ import org.eclipse.swt.widgets.Shell;
 /**
  * @author pplitzner
  * @since Oct 5, 2017
- *
  */
 public abstract class AbstractOpenImportWizard {
     @Execute
-    public void execute(IEclipseContext ctx, Shell s)
-    {
-        AbstractImportWizardE4 wizard = ContextInjectionFactory.make(getImportWizardClass(), ctx);
+    public void execute(IEclipseContext ctx, Shell s){
+        AbstractImportWizard<?> wizard = ContextInjectionFactory.make(getImportWizardClass(), ctx);
         wizard.init();
         WizardDialog dialog = new WizardDialog(s, wizard);
         dialog.open();
     }
 
-    protected abstract Class<? extends AbstractImportWizardE4> getImportWizardClass();
+    protected abstract Class<? extends AbstractImportWizard> getImportWizardClass();
 
 }
\ No newline at end of file
index a99fdc952c7bd6f7b025a16550cbb4f662a4fe08..636600fe4f6009337727927a187f9d3fdd258a75 100644 (file)
@@ -6,20 +6,17 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.io.e4.in;
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.List;
 import java.util.MissingResourceException;
 import java.util.ResourceBundle;
 
 import javax.inject.Inject;
 
-import org.apache.commons.lang.StringUtils;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -33,10 +30,8 @@ import eu.etaxonomy.cdm.io.common.IIoConfigurator;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 
 /**
- *
  * @author pplitzner
  * @since Oct 5, 2017
- *
  */
 public class GenericConfiguratorWizardPageE4 extends WizardPage {
 
@@ -77,7 +72,6 @@ public class GenericConfiguratorWizardPageE4 extends WizardPage {
         init("Export Configuration", "Configure the export mechanism.", configurator, ignoreMethods);
     }
 
-    /** {@inheritDoc} */
     @Override
     public void createControl(Composite parent) {
 
@@ -89,9 +83,7 @@ public class GenericConfiguratorWizardPageE4 extends WizardPage {
         composite.setLayout(gridLayout);
 
         List<Method> methods = getConfiguratorsBooleanSetMethods(configurator);
-        Collections.sort(methods, new Comparator<Method>() {
-            @Override
-            public int compare(Method o1, Method o2) {
+        Collections.sort(methods, (o1,o2)-> {
                 if (o1.equals(o2)){
                     return 0;
                 }
@@ -109,19 +101,17 @@ public class GenericConfiguratorWizardPageE4 extends WizardPage {
                     return o1.toString().compareTo(o1.toString());
                 }
                 return result;
-            }
         });
 
-               for (Method method : methods) {
-                       if (ignoreMethods != null){
-                           if (!ignoreMethods.contains( method.getName())) {
-                               createCheckbox(composite, method, configurator);
-                           }
-                       }else{
-                               createCheckbox(composite, method, configurator);
-                       }
-
-               }
+        for (Method method : methods) {
+               if (ignoreMethods != null){
+                   if (!ignoreMethods.contains( method.getName())) {
+                       createCheckbox(composite, method, configurator);
+                   }
+               }else{
+                       createCheckbox(composite, method, configurator);
+               }
+        }
 
         setControl(composite);
     }
@@ -133,26 +123,18 @@ public class GenericConfiguratorWizardPageE4 extends WizardPage {
         final Button checkBox = new Button(parent, SWT.CHECK);
 
        // if(configurator.getClass().equals(Abcd206ImportConfigurator.class)){
-            String[] r = methodName.split("set")[1].split("(?=\\p{Upper})");
-            checkBox.setText(getLabel(StringUtils.join(r," ")));
-//        }
-//        else{
-//            checkBox.setText(getLabel(methodName));
-//        }
+        checkBox.setText(getLabel(splitMethodName(methodName)));
         // retrieve the default values and set the checkbox accordingly
         boolean defaultSelection = executeBooleanGetMethod(configurator, "is"
                 + methodName.substring(3));
         checkBox.setSelection(defaultSelection);
         checkBox.addSelectionListener(new SelectionAdapter() {
-
             @Override
             public void widgetSelected(SelectionEvent e) {
                 executeBooleanSetMethod(configurator, methodName,
                         checkBox.getSelection());
             }
-
         });
-
     }
 
     private String getLabel(String methodName){
@@ -171,8 +153,7 @@ public class GenericConfiguratorWizardPageE4 extends WizardPage {
     private boolean executeBooleanGetMethod(IIoConfigurator configurator,
             String methodName) {
 
-        Class<? extends IIoConfigurator> configuratorClass = configurator
-                .getClass();
+        Class<? extends IIoConfigurator> configuratorClass = configurator.getClass();
 
         boolean result = false;
 
@@ -248,4 +229,16 @@ public class GenericConfiguratorWizardPageE4 extends WizardPage {
 
         return booleanMethods;
     }
+
+    private String splitMethodName(String s) {
+        s = s.replace("set", "");
+        return s.replaceAll(
+           String.format("%s|%s|%s",
+              "(?<=[A-Z])(?=[A-Z][a-z])",
+              "(?<=[^A-Z])(?=[A-Z])",
+              "(?<=[A-Za-z])(?=[^A-Za-z])"
+           ),
+           " "
+        );
+     }
 }
index a04379620e759069e596b5b09f17f13edac40da4..f7b53f1ada58f2608cfc02cb40632de468d3f13a 100644 (file)
@@ -18,10 +18,8 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
 /**
- *
  * @author pplitzner
  * @since Oct 5, 2017
- *
  */
 public class ImportFromFileDataSourceWithReferenceWizardPage extends ImportFromFileDataSourceWizardPage {
 
@@ -32,7 +30,6 @@ public class ImportFromFileDataSourceWithReferenceWizardPage extends ImportFromF
         super();
        }
 
-       /** {@inheritDoc} */
        @Override
     public void createControl(Composite parent) {
                super.createControl(parent);
@@ -53,5 +50,4 @@ public class ImportFromFileDataSourceWithReferenceWizardPage extends ImportFromF
        public void setTextReferenceString(Text textReferenceString) {
                this.textReferenceString = textReferenceString;
        }
-
-}
+}
\ No newline at end of file
index a28fb75f20b1c674ab9c1c69b9b6f52c2a9fb0b9..16694798e54378aa22a91c7338368c4e9fddb1fc 100644 (file)
@@ -6,11 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.io.e4.in;
 
 import java.io.File;
-import java.net.URI;
 
 import javax.inject.Inject;
 
@@ -26,13 +24,12 @@ import org.eclipse.swt.widgets.FileDialog;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.common.CdmUtils;
 
 /**
- *
  * @author pplitzner
  * @since Oct 5, 2017
- *
  */
 public class ImportFromFileDataSourceWizardPage extends WizardPage {
 
@@ -61,7 +58,6 @@ public class ImportFromFileDataSourceWizardPage extends WizardPage {
         this.extensions = extensions;
     }
 
-       /** {@inheritDoc} */
        @Override
     public void createControl(Composite parent) {
                composite = new Composite(parent, SWT.NULL);
@@ -98,10 +94,8 @@ public class ImportFromFileDataSourceWizardPage extends WizardPage {
                            setPageComplete(isPageComplete());
                        }
                    }
-
                });
 
-
         setControl(composite);
        }
 
@@ -110,12 +104,11 @@ public class ImportFromFileDataSourceWizardPage extends WizardPage {
        }
 
     public URI getUri() {
-               return getFile().toURI();
+               return URI.fromFile(getFile());
        }
 
        @Override
        public boolean isPageComplete() {
                return CdmUtils.isNotBlank(text_source.getText());
        }
-
-}
+}
\ No newline at end of file
@@ -6,38 +6,46 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
+package eu.etaxonomy.taxeditor.io.e4.in.abcd;
 
-package eu.etaxonomy.taxeditor.io.wizard;
-
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wb.swt.ResourceManager;
 
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.IReferenceService;
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.taxeditor.databaseAdmin.wizard.AbstractPreferenceWizard;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
 
 /**
- *
  * @author pplitzner
- *
  */
 public class AbcdImportConfiguratorWizardPage extends AbstractPreferenceWizard implements SelectionListener {
 
@@ -48,6 +56,14 @@ public class AbcdImportConfiguratorWizardPage extends AbstractPreferenceWizard i
     private static final String BARCODE = "Barcode";
 
     private static final String CATALOGUE_NUMBER = "Catalogue number";
+    private Text textClassification;
+    private Button btnBrowseClassification;
+    private Button btnClear;
+    private Combo comboAddIndividualsAssociations;
+
+    private Text textSource;
+    private Button btnBrowseSource;
+    private Button btnClearSource;
 
        private Abcd206ImportConfigurator abcdImportConfigurator;
 
@@ -59,6 +75,7 @@ public class AbcdImportConfiguratorWizardPage extends AbstractPreferenceWizard i
     private Combo nomenclaturalCodeSelectionCombo;
     private Combo checkBoxMapUnitId;
     private Combo textDNAProviderString;
+    Button checkBoxReuseDescriptiveGroups;
 
        protected AbcdImportConfiguratorWizardPage(String title, String description, Abcd206ImportConfigurator configurator) {
            this(title, description, configurator, false, false);
@@ -87,39 +104,205 @@ public class AbcdImportConfiguratorWizardPage extends AbstractPreferenceWizard i
                 "Tooltips will explain parameters in more detail", configurator, true, false);
     }
 
-
-
-       /** {@inheritDoc} */
        @Override
     public void createControl(Composite parent) {
-               final Composite composite = new Composite(parent, SWT.NULL);
+           Composite composite = new Composite(parent, SWT.NULL);
+        GridLayout gridLayout = new GridLayout();
+        gridLayout.numColumns=2;
+        Label labelnewlyCreatedTaxa = new Label(composite, SWT.NONE);
+        labelnewlyCreatedTaxa.setText("Newly Created Taxa");
+        Display display = Display.getDefault();
+        FontData data = display .getSystemFont().getFontData()[0];
+        Font font = new Font(display, data.getName(), data.getHeight(), SWT.BOLD);
+        labelnewlyCreatedTaxa.setFont(font);
+        GridData gridData = new GridData();
+        gridData.horizontalAlignment = GridData.FILL;
+        gridData.grabExcessHorizontalSpace=true;
+        gridData.horizontalSpan = 2;
+        labelnewlyCreatedTaxa.setLayoutData(gridData);
+
+        //gridLayout.makeColumnsEqualWidth=true;
+        composite.setLayout(gridLayout);
+
+               Composite classificationAndSourceComp = new Composite(composite, SWT.NULL);
+               classificationAndSourceComp.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 2, 1));
+               classificationAndSourceComp.setLayout(new GridLayout(4, false));
+
+               Label labelClassification = new Label(classificationAndSourceComp, SWT.TOP);
+               labelClassification.setText("Classification");
+//             labelClassification.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1));
+        textClassification = new Text(classificationAndSourceComp, SWT.BORDER);
+        textClassification.setEnabled(false);
+        textClassification.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, true));
+        if (abcdImportConfigurator.getClassificationUuid() != null){
+            Classification classification = CdmStore.getService(IClassificationService.class).load(abcdImportConfigurator.getClassificationUuid());
+            if (classification != null){
+                textClassification.setText(classification.getTitleCache());
+            }
+        }
+        btnBrowseClassification = new Button(classificationAndSourceComp, SWT.NONE);
+        btnBrowseClassification.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/open.gif"));
+        btnBrowseClassification.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                Classification classification = SelectionDialogFactory.getSelectionFromDialog(Classification.class,parent.getShell(), null, null);
+                if(classification!=null){
+                    textClassification.setText(classification.getTitleCache());
+                    abcdImportConfigurator.setClassificationUuid(classification.getUuid());
+                    abcdImportConfigurator.setClassificationName(classification.getTitleCache());
+                }
+            }
+        });
+        btnClear = new Button(classificationAndSourceComp, SWT.NONE);
+        btnClear.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/trash.gif"));
+        btnClear.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                abcdImportConfigurator.setClassificationUuid(null);
+                textClassification.setText("");
+            }
+        });
 
-               GridLayout gridLayout = new GridLayout();
-               gridLayout.numColumns=2;
-               //gridLayout.makeColumnsEqualWidth=true;
-               composite.setLayout(gridLayout);
+        Button checkBoxMoveToDefaultClassification = new Button(composite, SWT.CHECK);
+        gridData = new GridData();
+        gridData.horizontalAlignment = GridData.FILL_HORIZONTAL;
+        gridData.horizontalSpan = 2;
+        checkBoxMoveToDefaultClassification.setLayoutData(gridData);
+        GridDataFactory.fillDefaults();
+        checkBoxMoveToDefaultClassification.setSelection(abcdImportConfigurator.isMoveNewTaxaToDefaultClassification());
+        checkBoxMoveToDefaultClassification.setText("Create new classification for new taxa");
+        checkBoxMoveToDefaultClassification
+        .setToolTipText("For taxa that do not exist in the data base "
+                + "a new classification will be created");
+        checkBoxMoveToDefaultClassification.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                abcdImportConfigurator.setMoveNewTaxaToDefaultClassification(!abcdImportConfigurator.isMoveNewTaxaToDefaultClassification());
+            }
+        });
 
+        Button checkBoxReuseExistingTaxa = new Button(composite, SWT.CHECK);
+        gridData = new GridData();
+        gridData.horizontalAlignment = GridData.FILL_HORIZONTAL;
+        gridData.horizontalSpan = 2;
+        checkBoxReuseExistingTaxa.setLayoutData(gridData);
+        GridDataFactory.fillDefaults();
+        checkBoxReuseExistingTaxa.setSelection(abcdImportConfigurator.isReuseExistingTaxaWhenPossible());
+        checkBoxReuseExistingTaxa.setText("Reuse existing taxa when possible");
+        checkBoxReuseExistingTaxa
+            .setToolTipText("Reuse existing taxa when the name matches the identified name of the specimen");
+        checkBoxReuseExistingTaxa.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                abcdImportConfigurator.setReuseExistingDescriptiveGroups(!abcdImportConfigurator.isReuseExistingDescriptiveGroups());
+            }
+        });
 
-               GridData gridData = new GridData();
-               gridData.horizontalAlignment = GridData.FILL;
-               gridData.grabExcessHorizontalSpace=true;
-               gridData.horizontalSpan = 2;
+        Button checkBoxIgnoreAuthorship = new Button(composite, SWT.CHECK);
+        gridData = new GridData();
+        gridData.horizontalAlignment = GridData.FILL_HORIZONTAL;
+        gridData.horizontalSpan = 2;
+        checkBoxIgnoreAuthorship.setLayoutData(gridData);
+        GridDataFactory.fillDefaults();
+        checkBoxIgnoreAuthorship.setSelection(abcdImportConfigurator.isIgnoreAuthorship());
+        checkBoxIgnoreAuthorship.setText("Ignore Authorship for name matching");
+        checkBoxIgnoreAuthorship
+        .setToolTipText("Name matching with existing names will be done without "
+                + "the authorship part of the name");
+        checkBoxIgnoreAuthorship.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                abcdImportConfigurator.setIgnoreAuthorship(!abcdImportConfigurator.isIgnoreAuthorship());
+            }
+        });
 
-               Button checkBoxMediaSpecimen = new Button(composite, SWT.CHECK);
+        Label labelCode = new Label(composite, SWT.NONE);
+        labelCode.setText("Nomenclatural Code");
+        gridData = new GridData();
+        gridData.horizontalAlignment=SWT.BEGINNING;
 
-               checkBoxMediaSpecimen.setSelection(abcdImportConfigurator.isAddMediaAsMediaSpecimen());
-               checkBoxMediaSpecimen.setText("Import media as media specimen");
-               checkBoxMediaSpecimen
-                               .setToolTipText("Any media attached to a ABCD unit will be imported as a sub derivative of the specimen created from this unit");
-               checkBoxMediaSpecimen.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               abcdImportConfigurator.setAddMediaAsMediaSpecimen(!abcdImportConfigurator.isAddMediaAsMediaSpecimen());
-                       }
-               });
-               checkBoxMediaSpecimen.setLayoutData(gridData);
+        labelCode.setLayoutData(gridData);
+        GridDataFactory.fillDefaults();
+        nomenclaturalCodeSelectionCombo = new Combo(composite, SWT.BORDER| SWT.READ_ONLY);
+        gridData = new GridData();
+        gridData.horizontalAlignment=SWT.BEGINNING;
+        nomenclaturalCodeSelectionCombo.setLayoutData(gridData);
         GridDataFactory.fillDefaults();
+        for(NomenclaturalCode code: NomenclaturalCode.values()){
+            nomenclaturalCodeSelectionCombo.add(code.getKey());
+        }
+
+        nomenclaturalCodeSelectionCombo.addSelectionListener(this);
+        int index = 0;
+        if (abcdImportConfigurator.getNomenclaturalCode() != null){
+            for (String label : nomenclaturalCodeSelectionCombo.getItems()){
+                if (label.equals(abcdImportConfigurator.getNomenclaturalCode().getKey())){
+                    nomenclaturalCodeSelectionCombo.select(index);
+                }
+                index++;
+            }
+        }
+
+        Label labelLinkToTaxon = new Label(composite, SWT.NONE);
+        labelLinkToTaxon.setText("Link to Taxon");
+        labelLinkToTaxon.setFont(font);
 
+        comboAddIndividualsAssociations = new Combo(composite, SWT.NULL);
+        gridData = new GridData();
+        gridData.horizontalAlignment=SWT.BEGINNING;
+        gridData.horizontalSpan = 2;
+        comboAddIndividualsAssociations.setLayoutData(gridData);
+        GridDataFactory.fillDefaults();
+        
+        comboAddIndividualsAssociations.add("Add Taxon Facts");
+        comboAddIndividualsAssociations.add("Add Specimen Determination");
+        comboAddIndividualsAssociations.add("Add Both");
+        
+
+        comboAddIndividualsAssociations.addSelectionListener(this);
+        
+        if (abcdImportConfigurator.isAddIndividualsAssociations() ){
+            if (abcdImportConfigurator.isAddDeterminations()) {
+                comboAddIndividualsAssociations.select(2);                
+            }else {
+                comboAddIndividualsAssociations.select(0);
+            }            
+        }else {
+            comboAddIndividualsAssociations.select(1);
+        }
+
+
+        checkBoxReuseDescriptiveGroups = new Button(composite, SWT.CHECK);
+        gridData = new GridData();
+        gridData.horizontalAlignment = GridData.FILL_HORIZONTAL;
+        gridData.horizontalSpan = 2;
+        checkBoxReuseDescriptiveGroups.setLayoutData(gridData);
+        GridDataFactory.fillDefaults();
+        checkBoxReuseDescriptiveGroups.setSelection(abcdImportConfigurator.isReuseExistingDescriptiveGroups());
+        checkBoxReuseDescriptiveGroups.setText("Reuse existing descriptive group (only for taxon facts)");
+        checkBoxReuseDescriptiveGroups
+            .setToolTipText("Reuse one of the existing descriptive groups or create a new one for every import");
+        checkBoxReuseDescriptiveGroups.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                abcdImportConfigurator.setReuseExistingDescriptiveGroups(!abcdImportConfigurator.isReuseExistingDescriptiveGroups());
+            }
+        });
+        
+        if (!abcdImportConfigurator.isAddIndividualsAssociations()) {
+            checkBoxReuseDescriptiveGroups.setEnabled(false);
+        }
+
+
+        Label labelSpecimen = new Label(composite, SWT.NONE);
+        labelSpecimen.setText("Specimen");
+        labelSpecimen.setFont(font);
+        gridData = new GridData();
+        gridData.horizontalAlignment = GridData.FILL;
+        gridData.grabExcessHorizontalSpace=true;
+        gridData.horizontalSpan = 2;
+        labelSpecimen.setLayoutData(gridData);
+        GridDataFactory.fillDefaults();
                Button checkBoxIgnoreExisting = new Button(composite, SWT.CHECK);
                gridData = new GridData();
         gridData.horizontalAlignment = GridData.FILL;
@@ -140,25 +323,6 @@ public class AbcdImportConfiguratorWizardPage extends AbstractPreferenceWizard i
                checkBoxIgnoreExisting.setLayoutData(gridData);
         GridDataFactory.fillDefaults();
 
-               Button checkBoxIgnoreAuthorship = new Button(composite, SWT.CHECK);
-               gridData = new GridData();
-        gridData.horizontalAlignment = GridData.FILL_HORIZONTAL;
-        gridData.horizontalSpan = 2;
-               checkBoxIgnoreAuthorship.setLayoutData(gridData);
-               GridDataFactory.fillDefaults();
-               checkBoxIgnoreAuthorship.setSelection(abcdImportConfigurator.isIgnoreAuthorship());
-               checkBoxIgnoreAuthorship.setText("Ignore Authorship for name matching");
-               checkBoxIgnoreAuthorship
-               .setToolTipText("Name matching with existing names will be done without "
-                               + "the authorship part of the name");
-               checkBoxIgnoreAuthorship.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               abcdImportConfigurator.setIgnoreAuthorship(!abcdImportConfigurator.isIgnoreAuthorship());
-                       }
-               });
-
-
                Label unitIdLabel = new Label(composite, SWT.NONE);
         unitIdLabel.setText(Messages.AbcdImportPreference_map_unit_nr_catalog_number);
 
@@ -208,23 +372,7 @@ public class AbcdImportConfiguratorWizardPage extends AbstractPreferenceWizard i
                        }
                });
 
-               Button checkBoxMoveToDefaultClassification = new Button(composite, SWT.CHECK);
-               gridData = new GridData();
-        gridData.horizontalAlignment = GridData.FILL_HORIZONTAL;
-        gridData.horizontalSpan = 2;
-               checkBoxMoveToDefaultClassification.setLayoutData(gridData);
-        GridDataFactory.fillDefaults();
-               checkBoxMoveToDefaultClassification.setSelection(abcdImportConfigurator.isMoveNewTaxaToDefaultClassification());
-               checkBoxMoveToDefaultClassification.setText("Create new classification for new taxa");
-               checkBoxMoveToDefaultClassification
-               .setToolTipText("For taxa that do not exist in the data base "
-                               + "a new classification will be created");
-               checkBoxMoveToDefaultClassification.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               abcdImportConfigurator.setMoveNewTaxaToDefaultClassification(!abcdImportConfigurator.isMoveNewTaxaToDefaultClassification());
-                       }
-               });
+
 
                Button checkBoxImportSiblings = new Button(composite, SWT.CHECK);
                gridData = new GridData();
@@ -243,56 +391,8 @@ public class AbcdImportConfiguratorWizardPage extends AbstractPreferenceWizard i
             }
         });
 
-        Button checkBoxAddIndividualsAssociations = new Button(composite, SWT.CHECK);
-        gridData = new GridData();
-        gridData.horizontalAlignment = GridData.FILL_HORIZONTAL;
-        gridData.horizontalSpan = 2;
-        checkBoxAddIndividualsAssociations.setLayoutData(gridData);
-        GridDataFactory.fillDefaults();
-        checkBoxAddIndividualsAssociations.setSelection(abcdImportConfigurator.isAddIndividualsAssociationsSuchAsSpecimenAndObservations());
-        checkBoxAddIndividualsAssociations.setText("Create an Individual Association for each Specimen");
-        checkBoxAddIndividualsAssociations
-               .setToolTipText("For each specimen associated to a taxon an indiviadual association to this taxon is created");
-        checkBoxAddIndividualsAssociations.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                abcdImportConfigurator.setAddIndividualsAssociationsSuchAsSpecimenAndObservations(!abcdImportConfigurator.isAddIndividualsAssociationsSuchAsSpecimenAndObservations());
-            }
-        });
 
-        Button checkBoxReuseDescriptiveGroups = new Button(composite, SWT.CHECK);
-        gridData = new GridData();
-        gridData.horizontalAlignment = GridData.FILL_HORIZONTAL;
-        gridData.horizontalSpan = 2;
-        checkBoxReuseDescriptiveGroups.setLayoutData(gridData);
-        GridDataFactory.fillDefaults();
-        checkBoxReuseDescriptiveGroups.setSelection(abcdImportConfigurator.isReuseExistingDescriptiveGroups());
-        checkBoxReuseDescriptiveGroups.setText("Reuse existing descriptive group");
-        checkBoxReuseDescriptiveGroups
-               .setToolTipText("Reuse one of the existing descriptive groups or create a new one for every import");
-        checkBoxReuseDescriptiveGroups.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                abcdImportConfigurator.setReuseExistingDescriptiveGroups(!abcdImportConfigurator.isReuseExistingDescriptiveGroups());
-            }
-        });
 
-        Button checkBoxReuseExistingTaxa = new Button(composite, SWT.CHECK);
-        gridData = new GridData();
-        gridData.horizontalAlignment = GridData.FILL_HORIZONTAL;
-        gridData.horizontalSpan = 2;
-        checkBoxReuseExistingTaxa.setLayoutData(gridData);
-        GridDataFactory.fillDefaults();
-        checkBoxReuseExistingTaxa.setSelection(abcdImportConfigurator.isReuseExistingTaxaWhenPossible());
-        checkBoxReuseExistingTaxa.setText("Reuse existing taxa when possible");
-        checkBoxReuseExistingTaxa
-               .setToolTipText("Reuse existing taxa when the name matches the identified name of the specimen");
-        checkBoxReuseExistingTaxa.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                abcdImportConfigurator.setReuseExistingDescriptiveGroups(!abcdImportConfigurator.isReuseExistingDescriptiveGroups());
-            }
-        });
 
 
         if (!isFileImport){
@@ -332,33 +432,82 @@ public class AbcdImportConfiguratorWizardPage extends AbstractPreferenceWizard i
             abcdImportConfigurator.setDnaSoure(null);
         }
 
-
-        Label labelCode = new Label(composite, SWT.NONE);
-        labelCode.setText("Nomenclatural Code");
+        Label labelMedia = new Label(composite, SWT.NONE);
+        labelMedia.setText("Media");
+        labelMedia.setFont(font);
         gridData = new GridData();
-        gridData.horizontalAlignment=SWT.BEGINNING;
+        gridData.horizontalAlignment = GridData.FILL;
+        gridData.grabExcessHorizontalSpace=true;
+        gridData.horizontalSpan = 2;
+        labelMedia.setLayoutData(gridData);
 
-        labelCode.setLayoutData(gridData);
-        GridDataFactory.fillDefaults();
-        nomenclaturalCodeSelectionCombo = new Combo(composite, SWT.BORDER| SWT.READ_ONLY);
+
+        Button checkBoxMediaSpecimen = new Button(composite, SWT.CHECK);
+
+        checkBoxMediaSpecimen.setSelection(abcdImportConfigurator.isAddMediaAsMediaSpecimen());
+        checkBoxMediaSpecimen.setText("Import media as media specimen");
+        checkBoxMediaSpecimen
+                .setToolTipText("Any media attached to a ABCD unit will be imported as a sub derivative of the specimen created from this unit");
+        checkBoxMediaSpecimen.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                abcdImportConfigurator.setAddMediaAsMediaSpecimen(!abcdImportConfigurator.isAddMediaAsMediaSpecimen());
+            }
+        });
         gridData = new GridData();
-        gridData.horizontalAlignment=SWT.BEGINNING;
-        nomenclaturalCodeSelectionCombo.setLayoutData(gridData);
+        gridData.horizontalAlignment = GridData.FILL_HORIZONTAL;
+        gridData.horizontalSpan = 2;
+        checkBoxMediaSpecimen.setLayoutData(gridData);
         GridDataFactory.fillDefaults();
-        for(NomenclaturalCode code: NomenclaturalCode.values()){
-            nomenclaturalCodeSelectionCombo.add(code.getKey());
-        }
 
-        nomenclaturalCodeSelectionCombo.addSelectionListener(this);
-        int index = 0;
-        if (abcdImportConfigurator.getNomenclaturalCode() != null){
-            for (String label : nomenclaturalCodeSelectionCombo.getItems()){
-                if (label.equals(abcdImportConfigurator.getNomenclaturalCode().getKey())){
-                    nomenclaturalCodeSelectionCombo.select(index);
-                }
-                index++;
+        Label labelSource = new Label(composite, SWT.NONE);
+        labelSource.setText("Source");
+        labelSource.setFont(font);
+        gridData = new GridData();
+        gridData.horizontalAlignment = GridData.FILL;
+        gridData.grabExcessHorizontalSpace=true;
+        gridData.horizontalSpan = 2;
+        labelSource.setLayoutData(gridData);
+
+        Composite sourceComp = new Composite(composite, SWT.NULL);
+        sourceComp.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 2, 1));
+        sourceComp.setLayout(new GridLayout(4, false));
+        Label labelSourceRef = new Label(sourceComp, SWT.TOP);
+        labelSourceRef.setText("Source");
+//      labelClassification.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1));
+        textSource = new Text(sourceComp, SWT.BORDER);
+        textSource.setEnabled(false);
+        textSource.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, true));
+        if (abcdImportConfigurator.getSourceRefUuid() != null){
+            if (abcdImportConfigurator.getSourceReferenceTitle() != null){
+                textSource.setText(abcdImportConfigurator.getSourceReferenceTitle());
+            }else{
+                Reference sourceRef = CdmStore.getService(IReferenceService.class).load(abcdImportConfigurator.getSourceRefUuid());
+                textClassification.setText(sourceRef.getTitleCache());
             }
         }
+        btnBrowseSource = new Button(sourceComp, SWT.NONE);
+        btnBrowseSource.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/open.gif"));
+        btnBrowseSource.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                Reference sourceRef = SelectionDialogFactory.getSelectionFromDialog(Reference.class,parent.getShell(), null, null);
+                if(sourceRef!=null){
+                    textSource.setText(sourceRef.getTitleCache());
+                    abcdImportConfigurator.setSourceRefUuid(sourceRef.getUuid());
+                    abcdImportConfigurator.setSourceReferenceTitle(sourceRef.getTitleCache());
+                }
+            }
+        });
+        btnClear = new Button(sourceComp, SWT.NONE);
+        btnClear.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/trash.gif"));
+        btnClear.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                abcdImportConfigurator.setClassificationUuid(null);
+                textClassification.setText("");
+            }
+        });
 
                setControl(composite);
        }
@@ -368,6 +517,25 @@ public class AbcdImportConfiguratorWizardPage extends AbstractPreferenceWizard i
         if (e.getSource().equals(nomenclaturalCodeSelectionCombo)){
             this.abcdImportConfigurator.setNomenclaturalCode(NomenclaturalCode.getByKey(nomenclaturalCodeSelectionCombo.getText()));
         }
+        if (e.getSource().equals(comboAddIndividualsAssociations)){
+            int index = comboAddIndividualsAssociations.getSelectionIndex();
+            if (index == 0) {
+                this.abcdImportConfigurator.setAddIndividualsAssociations(true);
+                this.abcdImportConfigurator.setAddDeterminations(false);
+                this.checkBoxReuseDescriptiveGroups.setEnabled(true);
+            }
+            if (index == 1) {
+                this.abcdImportConfigurator.setAddIndividualsAssociations(false);
+                this.abcdImportConfigurator.setAddDeterminations(true);
+                this.checkBoxReuseDescriptiveGroups.setEnabled(false);
+            }
+            if (index == 2) {
+                this.abcdImportConfigurator.setAddIndividualsAssociations(true);
+                this.abcdImportConfigurator.setAddDeterminations(true);
+                this.checkBoxReuseDescriptiveGroups.setEnabled(true);
+            }
+            
+        }
         if (e.getSource().equals(checkBoxMapUnitId)){
             String text = checkBoxMapUnitId.getText();
             if (text.equals(ACCESSION_NUMBER)){
@@ -392,20 +560,15 @@ public class AbcdImportConfiguratorWizardPage extends AbstractPreferenceWizard i
                 abcdImportConfigurator.setDnaSoure(null);
             }
         }
-
-
     }
 
-        public void saveConfigToPrefernceStore() {
+       public void saveConfigToPrefernceStore() {
             try{
                 abcdImportConfigurator.setDnaSoure(URI.create(textDNAProviderString.getText()));
             }catch(IllegalArgumentException e){
-//TODO: check prior or message
                 abcdImportConfigurator.setDnaSoure(null);
             }
             PreferencesUtil.setStringValue(IPreferenceKeys.LAST_USED_ABCD_CONFIG, abcdImportConfigurator.toString());
-
-
            }
 
         public String createConfigString(){
@@ -413,19 +576,12 @@ public class AbcdImportConfiguratorWizardPage extends AbstractPreferenceWizard i
 
         }
 
-
-
-    /* (non-Javadoc)
-     * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
-     */
     @Override
     public void widgetDefaultSelected(SelectionEvent e) {
         // TODO Auto-generated method stub
-
     }
 
     public void createAbcdImportConfig() {
         this.abcdImportConfigurator = PreferencesUtil.getLocalAbcdImportConfigurator(false);
-
     }
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/abcd/AbcdImportConfiguratorWizardPageE4.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/abcd/AbcdImportConfiguratorWizardPageE4.java
deleted file mode 100644 (file)
index ad7b9ca..0000000
+++ /dev/null
@@ -1,237 +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.io.e4.in.abcd;
-
-import javax.inject.Inject;
-
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
-import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-
-/**
- *
- * @author pplitzner
- *
- */
-public class AbcdImportConfiguratorWizardPageE4 extends WizardPage {
-
-       public static final String PAGE_NAME = "AbcdImportConfiguratorWizardPage";
-
-       private Abcd206ImportConfigurator configurator;
-       Text textDNAProviderString;
-
-       @Inject
-       public AbcdImportConfiguratorWizardPageE4() {
-        super(PAGE_NAME);
-        setTitle("Configure import parameters");
-        setDescription("Tooltips will explain parameters in more detail");
-    }
-
-       /** {@inheritDoc} */
-       @Override
-    public void createControl(Composite parent) {
-               final Composite composite = new Composite(parent, SWT.NULL);
-               //composite = addTab(Messages.DatabasePreferencesPage_Define_Default_NomenclaturalCode);
-               GridLayout gridLayout = new GridLayout();
-               composite.setLayout(gridLayout);
-//        if (isPreferencePage){
-//            ListComponent list = new ListComponent(composite, composite.getStyle());
-//        }
-
-               Button checkBoxMediaSpecimen = new Button(composite, SWT.CHECK);
-               checkBoxMediaSpecimen.setSelection(configurator.isAddMediaAsMediaSpecimen());
-               checkBoxMediaSpecimen.setText("Import media as media specimen");
-               checkBoxMediaSpecimen
-                               .setToolTipText("Any media attached to a ABCD unit will be imported as a sub derivative of the specimen created from this unit");
-               checkBoxMediaSpecimen.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               configurator.setAddMediaAsMediaSpecimen(!configurator.isAddMediaAsMediaSpecimen());
-                       }
-               });
-
-               Button checkBoxIgnoreExisting = new Button(composite, SWT.CHECK);
-               checkBoxIgnoreExisting.setSelection(configurator.isIgnoreImportOfExistingSpecimen());
-               checkBoxIgnoreExisting.setText("Do not import existing specimens");
-               checkBoxIgnoreExisting
-               .setToolTipText("Specimens that have previously been imported will be ignored in this import");
-               checkBoxIgnoreExisting.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               configurator.setIgnoreImportOfExistingSpecimen(!configurator.isIgnoreImportOfExistingSpecimen());
-                       }
-               });
-
-               Button checkBoxIgnoreAuthorship = new Button(composite, SWT.CHECK);
-               checkBoxIgnoreAuthorship.setSelection(configurator.isIgnoreAuthorship());
-               checkBoxIgnoreAuthorship.setText("Ignore Authorship for name matching");
-               checkBoxIgnoreAuthorship
-               .setToolTipText("Name matching with existing names will be done without "
-                               + "the authorship part of the name");
-               checkBoxIgnoreAuthorship.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               configurator.setIgnoreAuthorship(!configurator.isIgnoreAuthorship());
-                       }
-               });
-
-               Button checkBoxMapUnitIdToCatalogNumber = new Button(composite, SWT.CHECK);
-               checkBoxMapUnitIdToCatalogNumber.setSelection(configurator.isMapUnitIdToCatalogNumber());
-               checkBoxMapUnitIdToCatalogNumber.setText("Map UnitID to catalog number");
-               checkBoxMapUnitIdToCatalogNumber
-               .setToolTipText("The UnitID of every ABCD unit will be mapped the catalog number "
-                               + "of the specimen");
-               checkBoxMapUnitIdToCatalogNumber.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               configurator.setMapUnitIdToCatalogNumber(!configurator.isMapUnitIdToCatalogNumber());
-                       }
-               });
-//TODO: only one of the mappings can be checked!
-               Button checkBoxMapUnitIdToAccessionNumber = new Button(composite, SWT.CHECK);
-               checkBoxMapUnitIdToAccessionNumber.setSelection(configurator.isMapUnitIdToAccessionNumber());
-               checkBoxMapUnitIdToAccessionNumber.setText("Map UnitID to accession number");
-               checkBoxMapUnitIdToAccessionNumber
-               .setToolTipText("The UnitID of every ABCD unit will be mapped the accession number "
-                               + "of the specimen");
-               checkBoxMapUnitIdToAccessionNumber.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               configurator.setMapUnitIdToAccessionNumber(!configurator.isMapUnitIdToAccessionNumber());
-                       }
-               });
-
-               Button checkBoxMapUnitIdToBarcode = new Button(composite, SWT.CHECK);
-               checkBoxMapUnitIdToBarcode.setSelection(configurator.isMapUnitIdToBarcode());
-               checkBoxMapUnitIdToBarcode.setText("Map UnitID to barcode");
-               checkBoxMapUnitIdToBarcode
-               .setToolTipText("The UnitID of every ABCD unit will be mapped the barcode "
-                               + "of the specimen");
-               checkBoxMapUnitIdToBarcode.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               configurator.setMapUnitIdToBarcode(!configurator.isMapUnitIdToBarcode());
-                       }
-               });
-
-               Button checkBoxRemoveCountry = new Button(composite, SWT.CHECK);
-               checkBoxRemoveCountry.setSelection(configurator.isRemoveCountryFromLocalityText());
-               checkBoxRemoveCountry.setText("Remove country from locality text");
-               checkBoxRemoveCountry
-               .setToolTipText("If the locality text contains information about the "
-                               + "country which is additionally stored in other ABCD "
-                               + "elements then it is removed from the locality text");
-               checkBoxRemoveCountry.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               configurator.setRemoveCountryFromLocalityText(!configurator.isRemoveCountryFromLocalityText());
-                       }
-               });
-
-               Button checkBoxMoveToDefaultClassification = new Button(composite, SWT.CHECK);
-               checkBoxMoveToDefaultClassification.setSelection(configurator.isMoveNewTaxaToDefaultClassification());
-               checkBoxMoveToDefaultClassification.setText("Create new classification for new taxa");
-               checkBoxMoveToDefaultClassification
-               .setToolTipText("For taxa that do not exist in the data base "
-                               + "a new classification will be created");
-               checkBoxMoveToDefaultClassification.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               configurator.setMoveNewTaxaToDefaultClassification(!configurator.isMoveNewTaxaToDefaultClassification());
-                       }
-               });
-
-               Button checkBoxImportSiblings = new Button(composite, SWT.CHECK);
-               checkBoxImportSiblings.setSelection(configurator.isGetSiblings());
-               checkBoxImportSiblings.setText("Import all children of cultures or tissue samples");
-               checkBoxImportSiblings
-               .setToolTipText("For a tissue sample or culture all children will be searched and imported");
-               checkBoxImportSiblings.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                configurator.setGetSiblings(checkBoxImportSiblings.getSelection());
-            }
-        });
-
-        Button checkBoxAddIndividualsAssociations = new Button(composite, SWT.CHECK);
-        checkBoxAddIndividualsAssociations.setSelection(configurator.isAddIndividualsAssociationsSuchAsSpecimenAndObservations());
-        checkBoxAddIndividualsAssociations.setText("Create an Individual Association for each Specimen");
-        checkBoxAddIndividualsAssociations
-               .setToolTipText("For each specimen associated to a taxon an indiviadual association to this taxon is created");
-        checkBoxAddIndividualsAssociations.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                configurator.setAddIndividualsAssociationsSuchAsSpecimenAndObservations(!configurator.isAddIndividualsAssociationsSuchAsSpecimenAndObservations());
-            }
-        });
-
-        Button checkBoxReuseDescriptiveGroups = new Button(composite, SWT.CHECK);
-        checkBoxReuseDescriptiveGroups.setSelection(configurator.isReuseExistingDescriptiveGroups());
-        checkBoxReuseDescriptiveGroups.setText("Reuse existing descriptive group");
-        checkBoxReuseDescriptiveGroups
-               .setToolTipText("Reuse one of the existing descriptive groups or create a new one for every import");
-        checkBoxReuseDescriptiveGroups.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                configurator.setReuseExistingDescriptiveGroups(!configurator.isReuseExistingDescriptiveGroups());
-            }
-        });
-
-        Button checkBoxReuseExistingTaxa = new Button(composite, SWT.CHECK);
-        checkBoxReuseExistingTaxa.setSelection(configurator.isReuseExistingTaxaWhenPossible());
-        checkBoxReuseExistingTaxa.setText("Reuse existing taxa when possible");
-        checkBoxReuseExistingTaxa
-               .setToolTipText("Reuse existing taxa when the name matches the identified name of the specimen");
-        checkBoxReuseExistingTaxa.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                configurator.setReuseExistingTaxaWhenPossible(!configurator.isReuseExistingTaxaWhenPossible());
-            }
-        });
-
-        Label labelRef = new Label(composite, SWT.NONE);
-        labelRef.setText("Biocase provider for associated DNA");
-        new Label(composite, SWT.NONE);
-        textDNAProviderString = new Text(composite, SWT.NONE);
-        textDNAProviderString.setEnabled(true);
-        textDNAProviderString.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true, 1, 1));
-
-
-
-               setControl(composite);
-       }
-
-        public void saveConfigToPrefernceStore() {
-               PreferencesUtil.setStringValue(PreferencePredicate.AbcdImportConfig.getKey(), configurator.toString());
-
-           }
-
-        public String createConfigString(){
-           return configurator.toString();
-
-        }
-
-    public void setConfigurator(Abcd206ImportConfigurator configurator) {
-        this.configurator = configurator;
-    }
-
-
-}
index c3c59bc0a464d7c1f4dfe084ac663b12e4ae1906..574364808c5106732a10de9aa294b9ab1f41a79a 100644 (file)
@@ -6,34 +6,28 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.io.e4.in.abcd;
 
-import java.io.File;
-import java.net.URI;
-
 import javax.inject.Inject;
 
 import org.eclipse.e4.core.contexts.ContextInjectionFactory;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.database.DbSchemaValidation;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
 import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizard;
 import eu.etaxonomy.taxeditor.io.e4.in.ImportFromFileDataSourceWithReferenceWizardPage;
-import eu.etaxonomy.taxeditor.io.wizard.AbcdImportConfiguratorWizardPage;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- *
  * @author pplitzner
  * @since Oct 5, 2017
- *
  */
-public class AbcdImportWizardE4 extends AbstractImportWizardE4<Abcd206ImportConfigurator> {
+public class AbcdImportWizardE4 extends AbstractImportWizard<Abcd206ImportConfigurator> {
 
        private Abcd206ImportConfigurator configurator;
        private ImportFromFileDataSourceWithReferenceWizardPage dataSourcePage;
@@ -44,13 +38,11 @@ public class AbcdImportWizardE4 extends AbstractImportWizardE4<Abcd206ImportConf
            super(context, partService);
        }
 
-       /** {@inheritDoc} */
        @Override
        public Abcd206ImportConfigurator getConfigurator() {
                return configurator;
        }
 
-       /** {@inheritDoc} */
        @Override
        public boolean performFinish() {
            URI source = dataSourcePage.getUri();
@@ -60,13 +52,11 @@ public class AbcdImportWizardE4 extends AbstractImportWizardE4<Abcd206ImportConf
                configurator.setClassificationUuid(classificationChooserWizardPage.getClassification().getUuid());
            }
 
-           CdmStore.getImportManager().runMoniteredOperation(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
+           CdmStore.getImportManager().runMoniteredOperation(configurator, source.toFile(), SOURCE_TYPE.INPUTSTREAM);
 
            return true;
-
        }
 
-       /** {@inheritDoc} */
        @Override
     public void init() {
                configurator =  PreferencesUtil.getLocalAbcdImportConfigurator(false);
@@ -79,7 +69,6 @@ public class AbcdImportWizardE4 extends AbstractImportWizardE4<Abcd206ImportConf
                addPage(configuratorWizardPage);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addPages() {
 
@@ -91,6 +80,5 @@ public class AbcdImportWizardE4 extends AbstractImportWizardE4<Abcd206ImportConf
                addPage(dataSourcePage);
                addConfiguratorPage();
                //super.addPages();
-
        }
-}
+}
\ No newline at end of file
index 3697e167e7c8293f1236a4e2541d18fd117329c7..3d47ca5700642e8629eaa4cd1167fd747d6337f3 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.io.e4.in.abcd;
 
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizard;
 import eu.etaxonomy.taxeditor.io.e4.in.AbstractOpenImportWizard;
 
 /**
@@ -22,7 +22,7 @@ public class OpenAbcdImportWizard extends AbstractOpenImportWizard {
      * {@inheritDoc}
      */
     @Override
-    protected Class<? extends AbstractImportWizardE4> getImportWizardClass() {
+    protected Class<? extends AbstractImportWizard> getImportWizardClass() {
         return AbcdImportWizardE4.class;
     }
 
index 7f61deccf49ac7939e47591b88edbb1e2fac33cb..a0f95e20785344c63d4ac58eeb8a1522ccc80d1a 100644 (file)
@@ -12,7 +12,6 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
@@ -20,15 +19,16 @@ import java.util.UUID;
 import javax.inject.Inject;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.e4.core.contexts.ContextInjectionFactory;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.database.DbSchemaValidation;
 import eu.etaxonomy.cdm.io.distribution.excelupdate.ExcelDistributionUpdateConfigurator;
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizard;
 import eu.etaxonomy.taxeditor.io.e4.in.GenericConfiguratorWizardPageE4;
 import eu.etaxonomy.taxeditor.io.e4.in.ImportFromFileAndChooseVocIdWizardPageE4;
 import eu.etaxonomy.taxeditor.l10n.Messages;
@@ -37,35 +37,32 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author k.luther
  * @date 03.05.2017
- *
  */
-public class ExcelDistributionUpdateWizardE4 extends AbstractImportWizardE4<ExcelDistributionUpdateConfigurator> {
+public class ExcelDistributionUpdateWizardE4 extends AbstractImportWizard<ExcelDistributionUpdateConfigurator> {
 
 
     private ExcelDistributionUpdateConfigurator configurator;
 
     private ImportFromFileAndChooseVocIdWizardPageE4 dataSourcePage;
 
-    private static final Logger logger = Logger.getLogger(ExcelDistributionUpdateWizardE4.class);
+    private static final Logger logger = LogManager.getLogger(ExcelDistributionUpdateWizardE4.class);
 
     @Inject
     public ExcelDistributionUpdateWizardE4(IEclipseContext context, EPartService partService) {
         super(context, partService);
     }
 
-    /** {@inheritDoc} */
     @Override
     public ExcelDistributionUpdateConfigurator getConfigurator() {
               return configurator;
     }
 
-    /** {@inheritDoc} */
     @Override
     public boolean performFinish() {
         URI source = dataSourcePage.getUri();
        // configurator.setSource(source);
         configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-        File file = new File(source);
+        File file = new File(source.getJavaUri());
         FileInputStream fis = null;
 
         try {
@@ -89,14 +86,12 @@ public class ExcelDistributionUpdateWizardE4 extends AbstractImportWizardE4<Exce
         return true;
     }
 
-    /** {@inheritDoc} */
     @Override
     public void init() {
         configurator =  CdmStore.getImportManager().ExcelDistributionUpdateConfigurator();
 
     }
 
-    /** {@inheritDoc} */
     @Override
     public void addPages() {
         addDataSourcePage();
@@ -121,6 +116,4 @@ public class ExcelDistributionUpdateWizardE4 extends AbstractImportWizardE4<Exce
         dataSourcePage = ContextInjectionFactory.make(ImportFromFileAndChooseVocIdWizardPageE4.class, context);
         addPage(dataSourcePage);
     }
-
-
-}
+}
\ No newline at end of file
index ed74576ab3d39f88a115daaad5be2cba8c725b8b..4b5cd9745d415ba1e4a69e2bfbd6c1bcd70e237f 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.io.e4.in.excel.distribution;
 
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizard;
 import eu.etaxonomy.taxeditor.io.e4.in.AbstractOpenImportWizard;
 
 /**
@@ -22,7 +22,7 @@ public class OpenExcelDistributionImportWizard extends AbstractOpenImportWizard
      * {@inheritDoc}
      */
     @Override
-    protected Class<? extends AbstractImportWizardE4> getImportWizardClass() {
+    protected Class<? extends AbstractImportWizard> getImportWizardClass() {
         return ExcelDistributionUpdateWizardE4.class;
     }
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/excel/specimen/OpenExcelSpecimenImportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/excel/specimen/OpenExcelSpecimenImportWizard.java
deleted file mode 100644 (file)
index 8b6b6e4..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
-* Copyright (C) 2017 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.io.e4.in.excel.specimen;
-
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractOpenImportWizard;
-
-/**
- * @author pplitzner
- * @since Oct 5, 2017
- *
- */
-public class OpenExcelSpecimenImportWizard extends AbstractOpenImportWizard {
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected Class<? extends AbstractImportWizardE4> getImportWizardClass() {
-        return SpecimenCdmExcelImportWizardE4.class;
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/excel/specimen/SpecimenCdmExcelImportWizardE4.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/in/excel/specimen/SpecimenCdmExcelImportWizardE4.java
deleted file mode 100644 (file)
index eed2c80..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- *
- */
-package eu.etaxonomy.taxeditor.io.e4.in.excel.specimen;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.inject.Inject;
-
-import org.eclipse.e4.core.contexts.ContextInjectionFactory;
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.ui.workbench.modeling.EPartService;
-
-import eu.etaxonomy.cdm.database.DbSchemaValidation;
-import eu.etaxonomy.cdm.io.specimen.excel.in.SpecimenCdmExcelImportConfigurator;
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
-import eu.etaxonomy.taxeditor.io.e4.in.GenericConfiguratorWizardPageE4;
-import eu.etaxonomy.taxeditor.io.e4.in.ImportFromFileDataSourceWithReferenceWizardPage;
-import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- *
- * @author pplitzner
- * @since Oct 5, 2017
- *
- */
-public class SpecimenCdmExcelImportWizardE4 extends AbstractImportWizardE4<SpecimenCdmExcelImportConfigurator> {
-
-
-    private SpecimenCdmExcelImportConfigurator configurator;
-
-       private ImportFromFileDataSourceWithReferenceWizardPage dataSourcePage;
-
-       @Inject
-       public SpecimenCdmExcelImportWizardE4(IEclipseContext context, EPartService partService) {
-           super(context, partService);
-       }
-
-       @Override
-       public SpecimenCdmExcelImportConfigurator getConfigurator() {
-               return configurator;
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void init() {
-               configurator =  CdmStore.getImportManager().SpecimenCdmExcelImportConfigurator();
-       }
-
-       @Override
-       public boolean performFinish() {
-               URI source = dataSourcePage.getUri();
-               configurator.setSource(source);
-               configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-
-               CdmStore.getImportManager().run(configurator);
-
-               return true;
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void addPages() {
-               dataSourcePage = ContextInjectionFactory.make(ImportFromFileDataSourceWithReferenceWizardPage.class, context);
-        dataSourcePage.setTitle("Choose Specimen CDM Excel");
-        dataSourcePage.setDescription("Please choose an xls file in the SpecimenCdmExcel format.");
-        dataSourcePage.setExtensions(new String[]{"*.xlsx", "*.xls", "*.*"});
-
-               addPage(dataSourcePage);
-               super.addPages();
-       }
-
-        @Override
-        protected void addConfiguratorPage(){
-            List<String> ignoreMethods = new ArrayList<>();
-         ignoreMethods.add("setIgnoreNull");
-         ignoreMethods.add("setInteractWithUser");
-         ignoreMethods.add("setUseClassification");
-         ignoreMethods.add("setRegisterAuditing");
-         ignoreMethods.add("setDeduplicateAuthors");
-         ignoreMethods.add("setDeduplicateReferences");
-         pageConfiguration = ContextInjectionFactory.make(GenericConfiguratorWizardPageE4.class, context);
-         pageConfiguration.initImport(getConfigurator(), ignoreMethods, Messages.ExcelSpecimenUpdateWizard_ConfiguratorWizard_label);
-         addPage(pageConfiguration);
-    }
-
-}
index 028f07b0b0fa06f85efe18c8acc4548c87185b59..12eea4399d3b7f2d9f640c4c1302f2af68bb7662 100644 (file)
@@ -6,14 +6,13 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.io.e4.in.excel.taxa;
 
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
-import java.net.URI;
+import eu.etaxonomy.cdm.common.URI;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -21,7 +20,7 @@ import javax.inject.Inject;
 import javax.inject.Named;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.e4.core.contexts.ContextInjectionFactory;
 import org.eclipse.e4.core.contexts.IEclipseContext;
@@ -35,7 +34,7 @@ import eu.etaxonomy.cdm.database.DbSchemaValidation;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
 import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizard;
 import eu.etaxonomy.taxeditor.io.e4.in.GenericConfiguratorWizardPageE4;
 import eu.etaxonomy.taxeditor.io.e4.in.ImportFromFileDataSourceWithReferenceWizardPage;
 import eu.etaxonomy.taxeditor.l10n.Messages;
@@ -43,17 +42,15 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 
 
 /**
- *
  * @author pplitzner
  * @since Oct 5, 2017
- *
  */
-public class ExcelNormalExplicitTaxaImportWizardE4 extends AbstractImportWizardE4<NormalExplicitImportConfigurator>{
+public class ExcelNormalExplicitTaxaImportWizardE4 extends AbstractImportWizard<NormalExplicitImportConfigurator>{
 
     private NormalExplicitImportConfigurator configurator;
 
        private ImportFromFileDataSourceWithReferenceWizardPage dataSourcePage;
-       private static final Logger logger = Logger.getLogger(ExcelNormalExplicitTaxaImportWizardE4.class);
+       private static final Logger logger = LogManager.getLogger(ExcelNormalExplicitTaxaImportWizardE4.class);
 
        @Inject
        public ExcelNormalExplicitTaxaImportWizardE4(IEclipseContext context, EPartService partService,
@@ -61,20 +58,18 @@ public class ExcelNormalExplicitTaxaImportWizardE4 extends AbstractImportWizardE
            super(context, partService, selection);
        }
 
-       /** {@inheritDoc} */
        @Override
        public NormalExplicitImportConfigurator getConfigurator() {
                return configurator;
        }
 
-       /** {@inheritDoc} */
        @Override
        public boolean performFinish() {
                URI source = dataSourcePage.getUri();
                configurator.setSource(source);
                configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
                configurator.setSourceReferenceTitle(dataSourcePage.getTextReferenceString().getText());
-               File file = new File(source);
+               File file = new File(source.getJavaUri());
                FileInputStream fis = null;
 
                try {
@@ -94,7 +89,6 @@ public class ExcelNormalExplicitTaxaImportWizardE4 extends AbstractImportWizardE
                return true;
        }
 
-       /** {@inheritDoc} */
        @Override
     public void init() {
                configurator =  CdmStore.getImportManager().NormalExplicitConfigurator();
@@ -105,7 +99,6 @@ public class ExcelNormalExplicitTaxaImportWizardE4 extends AbstractImportWizardE
                }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addPages() {
            dataSourcePage = ContextInjectionFactory.make(ImportFromFileDataSourceWithReferenceWizardPage.class, context);
@@ -113,11 +106,11 @@ public class ExcelNormalExplicitTaxaImportWizardE4 extends AbstractImportWizardE
                dataSourcePage.setDescription("Please choose an xls file in the NormalExplicit format.");
                dataSourcePage.setExtensions(new String[]{"*.xlsx", "*.xls", "*.*"});
                addPage(dataSourcePage);
-                 super.addPages();
-
+               super.addPages();
        }
-        @Override
-     protected void addConfiguratorPage(){
+       
+       @Override
+    protected void addConfiguratorPage(){
          List<String> ignoreMethods = new ArrayList<>();
          ignoreMethods.add("setIgnoreNull");
          ignoreMethods.add("setInteractWithUser");
@@ -129,4 +122,4 @@ public class ExcelNormalExplicitTaxaImportWizardE4 extends AbstractImportWizardE
          pageConfiguration.initImport(getConfigurator(), ignoreMethods, Messages.ExcelTaxonUpdateWizard_ConfiguratorWizard_label);
          addPage(pageConfiguration);
     }
-}
+}
\ No newline at end of file
index cfbb0e5b715c73b477bd79ce6bfc10153842428f..551b4024ceb0b42b8c1c4d0bcdbad9c41c7ae32d 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.io.e4.in.excel.taxa;
 
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizard;
 import eu.etaxonomy.taxeditor.io.e4.in.AbstractOpenImportWizard;
 
 /**
@@ -22,7 +22,7 @@ public class OpenExcelTaxaImportWizard extends AbstractOpenImportWizard {
      * {@inheritDoc}
      */
     @Override
-    protected Class<? extends AbstractImportWizardE4> getImportWizardClass() {
+    protected Class<? extends AbstractImportWizard> getImportWizardClass() {
         return ExcelNormalExplicitTaxaImportWizardE4.class;
     }
 
index 5d85927150ff7e43450f333a7f9bb890fc34f438..33c5f99520bace9ccda87047aed3ded2b3de6c2f 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.io.e4.in.owl;
 
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizard;
 import eu.etaxonomy.taxeditor.io.e4.in.AbstractOpenImportWizard;
 
 /**
@@ -20,7 +20,7 @@ import eu.etaxonomy.taxeditor.io.e4.in.AbstractOpenImportWizard;
 public class OpenOwlImportWizard extends AbstractOpenImportWizard {
 
     @Override
-    protected Class<? extends AbstractImportWizardE4> getImportWizardClass() {
+    protected Class<? extends AbstractImportWizard> getImportWizardClass() {
         return OwlImportWizard.class;
     }
 
index 876c4e2ba2250a360ed3689ff8a5b0ae307843a2..b7c9371c3864be18d2ddd3df81a7d69d0d7b8770 100644 (file)
@@ -6,11 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.io.e4.in.owl;
 
 import java.io.File;
-import java.net.URI;
 
 import javax.inject.Inject;
 
@@ -19,22 +17,21 @@ import org.eclipse.e4.core.contexts.ContextInjectionFactory;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.database.DbSchemaValidation;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
 import eu.etaxonomy.cdm.io.descriptive.owl.in.StructureTreeOwlImportConfigurator;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizard;
 import eu.etaxonomy.taxeditor.io.e4.in.ImportFromFileDataSourceWizardPage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- *
  * @author pplitzner
  * @since Apr 25, 2019
- *
  */
-public class OwlImportWizard extends AbstractImportWizardE4<StructureTreeOwlImportConfigurator> {
+public class OwlImportWizard extends AbstractImportWizard<StructureTreeOwlImportConfigurator> {
 
        private StructureTreeOwlImportConfigurator configurator;
        private ImportFromFileDataSourceWizardPage dataSourcePage;
@@ -57,7 +54,7 @@ public class OwlImportWizard extends AbstractImportWizardE4<StructureTreeOwlImpo
         reference.setTitle("StructureTree import from "+source);
         configurator.setSourceReference(reference);
            configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-           Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
+           Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source.getJavaUri()), SOURCE_TYPE.URI);
            CdmStore.getImportManager().run(job);
 
            return true;
index bf48670390aede9d08a9496448f123c6fc40090b..66df58b9553a951c3e037fbbce50c7cafd251029 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.io.e4.in.ris;
 
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizard;
 import eu.etaxonomy.taxeditor.io.e4.in.AbstractOpenImportWizard;
 
 /**
@@ -22,7 +22,7 @@ public class OpenRisImportWizard extends AbstractOpenImportWizard {
      * {@inheritDoc}
      */
     @Override
-    protected Class<? extends AbstractImportWizardE4> getImportWizardClass() {
+    protected Class<? extends AbstractImportWizard> getImportWizardClass() {
         return RISImportWizardE4.class;
     }
 
index 661c2c3b2d5cf452b0f779beab07e9b0a8fea313..d721a21355078c1255d6559e12768ef3591b0236 100644 (file)
@@ -12,58 +12,55 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
 
 import javax.inject.Inject;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.e4.core.contexts.ContextInjectionFactory;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.database.DbSchemaValidation;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
 import eu.etaxonomy.cdm.io.reference.ris.in.RisReferenceImportConfigurator;
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizard;
 import eu.etaxonomy.taxeditor.io.e4.in.GenericConfiguratorWizardPageE4;
 import eu.etaxonomy.taxeditor.io.e4.in.ImportFromFileDataSourceWithReferenceWizardPage;
-import eu.etaxonomy.taxeditor.io.wizard.ExcelDistributionUpdateWizard;
+import eu.etaxonomy.taxeditor.io.e4.in.excel.distribution.ExcelDistributionUpdateWizardE4;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author k.luther
  * @date 12.05.2017
- *
  */
-public class RISImportWizardE4 extends AbstractImportWizardE4<RisReferenceImportConfigurator>{
+public class RISImportWizardE4 extends AbstractImportWizard<RisReferenceImportConfigurator>{
 
     private RisReferenceImportConfigurator configurator;
 
     private ImportFromFileDataSourceWithReferenceWizardPage dataSourcePage;
 
-    private static final Logger logger = Logger.getLogger(ExcelDistributionUpdateWizard.class);
+    private static final Logger logger = LogManager.getLogger(ExcelDistributionUpdateWizardE4.class);
 
     @Inject
     public RISImportWizardE4(IEclipseContext context, EPartService partService) {
         super(context, partService);
     }
 
-    /** {@inheritDoc} */
     @Override
     public RisReferenceImportConfigurator getConfigurator() {
         return configurator;
     }
 
-    /** {@inheritDoc} */
     @Override
     public boolean performFinish() {
         URI source = dataSourcePage.getUri();
         configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-        File file = new File(source);
+        File file = new File(source.getJavaUri());
        FileInputStream fis;
 
         try {
@@ -83,14 +80,12 @@ public class RISImportWizardE4 extends AbstractImportWizardE4<RisReferenceImport
         return true;
     }
 
-    /** {@inheritDoc} */
     @Override
     public void init() {
         configurator = RisReferenceImportConfigurator.NewInstance();
 
     }
 
-    /** {@inheritDoc} */
     @Override
     public void addPages() {
         addDataSourcePage();
@@ -110,7 +105,7 @@ public class RISImportWizardE4 extends AbstractImportWizardE4<RisReferenceImport
         dataSourcePage = ContextInjectionFactory.make(ImportFromFileDataSourceWithReferenceWizardPage.class, context);
         dataSourcePage.setTitle("Choose Ris File");
         dataSourcePage.setDescription("Please choose a file in RIS format.");
-        dataSourcePage.setExtensions(new String[]{"*.txt"});
+        dataSourcePage.setExtensions(new String[]{"*.ris", "*"});
         addPage(dataSourcePage);
     }
 
index 7715e6d3d5c2774206bb63b73c4b4687962bf786..0aa197b1cf1c1650e67c1b90ad00c0aea62ee8c5 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.io.e4.in.sdd;
 
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizard;
 import eu.etaxonomy.taxeditor.io.e4.in.AbstractOpenImportWizard;
 
 /**
@@ -22,7 +22,7 @@ public class OpenSddImportWizard extends AbstractOpenImportWizard {
      * {@inheritDoc}
      */
     @Override
-    protected Class<? extends AbstractImportWizardE4> getImportWizardClass() {
+    protected Class<? extends AbstractImportWizard> getImportWizardClass() {
         return SddImportWizardE4.class;
     }
 
index e91dc001e9895cd0a83318445f0f9e69edf39e4c..41c7d55c27132f9f3a8f71d33a3f5b80c742f751 100644 (file)
@@ -10,7 +10,6 @@
 package eu.etaxonomy.taxeditor.io.e4.in.sdd;
 
 import java.io.File;
-import java.net.URI;
 
 import javax.inject.Inject;
 
@@ -19,21 +18,19 @@ import org.eclipse.e4.core.contexts.ContextInjectionFactory;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.database.DbSchemaValidation;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
 import eu.etaxonomy.cdm.io.sdd.in.SDDImportConfigurator;
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizard;
 import eu.etaxonomy.taxeditor.io.e4.in.ImportFromFileDataSourceWithReferenceWizardPage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- *
  * @author pplitzner
  * @since Oct 5, 2017
- *
  */
-public class SddImportWizardE4 extends AbstractImportWizardE4<SDDImportConfigurator> {
-
+public class SddImportWizardE4 extends AbstractImportWizard<SDDImportConfigurator> {
 
     private SDDImportConfigurator configurator;
 
@@ -44,7 +41,6 @@ public class SddImportWizardE4 extends AbstractImportWizardE4<SDDImportConfigura
            super(context, partService);
        }
 
-       /** {@inheritDoc} */
        @Override
        public SDDImportConfigurator getConfigurator() {
                return configurator;
@@ -62,21 +58,19 @@ public class SddImportWizardE4 extends AbstractImportWizardE4<SDDImportConfigura
                super.addPages();
        }
 
-       /** {@inheritDoc} */
        @Override
        public boolean performFinish() {
                URI source = dataSourcePage.getUri();
                configurator.setSource(source);
                configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-               Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
+               Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source.getJavaUri()), SOURCE_TYPE.URI);
                CdmStore.getImportManager().run(job);
 
                return true;
        }
 
-       /** {@inheritDoc} */
        @Override
     public void init() {
                configurator =  CdmStore.getImportManager().SddConfigurator();
        }
-}
+}
\ No newline at end of file
index 034cddf671fea4b884dd033fdfa99f75e6d6c9a7..678fc23a97b74b407746c791219790f4a920d515 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.io.e4.in.tcs;
 
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizard;
 import eu.etaxonomy.taxeditor.io.e4.in.AbstractOpenImportWizard;
 
 /**
@@ -22,7 +22,7 @@ public class OpenTcsImportWizard extends AbstractOpenImportWizard {
      * {@inheritDoc}
      */
     @Override
-    protected Class<? extends AbstractImportWizardE4> getImportWizardClass() {
+    protected Class<? extends AbstractImportWizard> getImportWizardClass() {
         return TcsImportWizardE4.class;
     }
 
index 789ac3af950018231e1d2ee79ed889f5a834aff3..500e1a2330e95c473e3116939053dae95517ae32 100644 (file)
@@ -6,11 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.io.e4.in.tcs;
 
 import java.io.File;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -21,23 +19,21 @@ import org.eclipse.e4.core.contexts.ContextInjectionFactory;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.database.DbSchemaValidation;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
 import eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator;
-import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.AbstractImportWizard;
 import eu.etaxonomy.taxeditor.io.e4.in.GenericConfiguratorWizardPageE4;
 import eu.etaxonomy.taxeditor.io.e4.in.ImportFromFileDataSourceWithReferenceWizardPage;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- *
  * @author pplitzner
  * @since Oct 5, 2017
- *
  */
-public class TcsImportWizardE4 extends AbstractImportWizardE4<TcsXmlImportConfigurator> {
-
+public class TcsImportWizardE4 extends AbstractImportWizard<TcsXmlImportConfigurator> {
 
     private TcsXmlImportConfigurator configurator;
 
@@ -48,26 +44,23 @@ public class TcsImportWizardE4 extends AbstractImportWizardE4<TcsXmlImportConfig
            super(context, partService);
        }
 
-       /** {@inheritDoc} */
        @Override
        public boolean performFinish() {
            URI source = dataSourcePage.getUri();
            configurator.setSource(source);
            configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
 
-           Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
+           Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source.getJavaUri()), SOURCE_TYPE.URI);
            CdmStore.getImportManager().run(job);
 
            return true;
        }
 
-       /** {@inheritDoc} */
        @Override
     public void init() {
                configurator = CdmStore.getImportManager().TcsConfigurator();
        }
 
-       /** {@inheritDoc} */
        @Override
        public TcsXmlImportConfigurator getConfigurator() {
                return configurator;
@@ -82,13 +75,10 @@ public class TcsImportWizardE4 extends AbstractImportWizardE4<TcsXmlImportConfig
          addPage(pageConfiguration);
     }
 
-
-
-       /** {@inheritDoc} */
        @Override
        public void addPages() {
                dataSourcePage = ContextInjectionFactory.make(ImportFromFileDataSourceWithReferenceWizardPage.class, context);
                addPage(dataSourcePage);
                super.addPages();
        }
-}
+}
\ No newline at end of file
similarity index 75%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/AbstractExportWizardE4.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/AbstractExportWizard.java
index b92b39cbd9ea96e51f48b8847866fc34810c404a..5fd225d370c2da0054f3825aa67d7baf69a0b029 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.io.e4.out;
 
 import org.eclipse.e4.core.contexts.ContextInjectionFactory;
@@ -18,32 +17,28 @@ import eu.etaxonomy.cdm.io.common.IIoConfigurator;
 import eu.etaxonomy.taxeditor.io.e4.in.GenericConfiguratorWizardPageE4;
 
 /**
- *
  * @author pplitzner
  * @since Oct 6, 2017
- *
- * @param <CONFIG>
  */
-public abstract class AbstractExportWizardE4<CONFIG extends IIoConfigurator> extends Wizard {
+public abstract class AbstractExportWizard<CONFIG extends IIoConfigurator> extends Wizard {
 
        protected final String CONFIGURATION_PAGE = "CONFIGURATION_PAGE";
 
-       private GenericConfiguratorWizardPageE4 pageConfiguration;
+       protected GenericConfiguratorWizardPageE4 pageConfiguration;
 
     protected IStructuredSelection selection;
 
-    private IEclipseContext context;
+    protected IEclipseContext context;
 
-    public AbstractExportWizardE4(IEclipseContext context) {
+    public AbstractExportWizard(IEclipseContext context) {
         this(context, null);
     }
 
-    public AbstractExportWizardE4(IEclipseContext context, IStructuredSelection selection) {
+    public AbstractExportWizard(IEclipseContext context, IStructuredSelection selection) {
         this.context = context;
         this.selection = selection;
     }
 
-       /** {@inheritDoc} */
        @Override
        public void addPages() {
                super.addPages();
@@ -56,4 +51,4 @@ public abstract class AbstractExportWizardE4<CONFIG extends IIoConfigurator> ext
        public abstract void init();
 
        public abstract CONFIG getConfigurator();
-}
+}
\ No newline at end of file
index 2fb2c19d9f2facf0a5446c280941ed46d3bdf0b2..6952944dfeaf2e382e118b8b93b3c92ebe2cda7c 100644 (file)
@@ -24,12 +24,12 @@ public abstract class AbstractOpenExportWizard {
     @Execute
     public void execute(IEclipseContext ctx, Shell s)
     {
-        AbstractExportWizardE4 wizard = ContextInjectionFactory.make(getExportWizardClass(), ctx);
+        AbstractExportWizard wizard = ContextInjectionFactory.make(getExportWizardClass(), ctx);
         wizard.init();
         WizardDialog dialog = new WizardDialog(s, wizard);
         dialog.open();
     }
 
-    protected abstract Class<? extends AbstractExportWizardE4> getExportWizardClass();
+    protected abstract Class<? extends AbstractExportWizard> getExportWizardClass();
 
 }
\ No newline at end of file
index 90672ebea4070d4bc350e31098277e59b9f975e5..9d47b4ac120492f0c7f8a4690526c1e601ed43e6 100644 (file)
@@ -9,6 +9,9 @@
 package eu.etaxonomy.taxeditor.io.e4.out.cdmlight;
 
 import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.HashSet;
 import java.util.List;
 import java.util.UUID;
@@ -16,6 +19,8 @@ import java.util.UUID;
 import javax.inject.Inject;
 import javax.inject.Named;
 
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.e4.core.contexts.ContextInjectionFactory;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.core.di.annotations.Optional;
 import org.eclipse.e4.ui.services.IServiceConstants;
@@ -24,10 +29,13 @@ import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.swt.widgets.Combo;
 
 import eu.etaxonomy.cdm.filter.TaxonNodeFilter;
+import eu.etaxonomy.cdm.format.description.distribution.CondensedDistributionRecipe;
 import eu.etaxonomy.cdm.io.cdmLight.CdmLightExportConfigurator;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.in.GenericConfiguratorWizardPageE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
 import eu.etaxonomy.taxeditor.io.wizard.ExportToFileDestinationWizardPage;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -35,14 +43,16 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author k.luther
  * @date 21.03.2017
- *
  */
 public class CdmLightExportWizardE4 extends
-AbstractExportWizardE4<CdmLightExportConfigurator> {
+AbstractExportWizard<CdmLightExportConfigurator> {
 
 
     private CdmLightExportConfigurator configurator;
     private ExportToFileDestinationWizardPage page;
+    private MetaDataConfigurationWizardPage metaDataPage;
+    public static final String DATE_FORMAT_NOW = "yyyyMMddHHmm";
+    TaxonNodeDto selectedNode;
 
     @Inject
     public CdmLightExportWizardE4(IEclipseContext context,
@@ -52,15 +62,19 @@ AbstractExportWizardE4<CdmLightExportConfigurator> {
 
     @Override
     public void init() {
-        configurator = new CdmLightExportConfigurator(null);
+        configurator = CdmLightExportConfigurator.NewInstance();
+        String recipeString = PreferencesUtil.getStringValue(PreferencePredicate.CondensedDistributionRecipe.getKey());
+        if (StringUtils.isNotBlank(recipeString)){
+            configurator.setCondensedDistributionConfiguration(CondensedDistributionRecipe.valueOf(recipeString).toConfiguration());
+        }
         if (selection instanceof TreeSelection && !selection.isEmpty() &&  selection.getFirstElement() instanceof TaxonNodeDto){
-            TaxonNodeDto node = (TaxonNodeDto)selection.getFirstElement();
-            if (node.getParentUUID() == null){
-                configurator.setTaxonNodeFilter(TaxonNodeFilter.NewClassificationInstance(node.getClassificationUUID()));
+            selectedNode = (TaxonNodeDto)selection.getFirstElement();
+
+            if (selectedNode.getParentUUID() == null){
+                configurator.setTaxonNodeFilter(TaxonNodeFilter.NewClassificationInstance(selectedNode.getClassificationUUID()));
             }else{
-                configurator.setTaxonNodeFilter(TaxonNodeFilter.NewSubtreeInstance(node.getUuid()));
+                configurator.setTaxonNodeFilter(TaxonNodeFilter.NewSubtreeInstance(selectedNode.getUuid()));
             }
-
         }
     }
 
@@ -70,13 +84,30 @@ AbstractExportWizardE4<CdmLightExportConfigurator> {
         return configurator;
     }
 
-
     @Override
     public boolean performFinish() {
-        String urlString = page.getFolderText() + File.separator;
+        String urlString = page.getFolderText() + File.separator ;
+        if (configurator.isCreateZipFile()){
+            SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
+            Calendar cal = Calendar.getInstance();
+
+            if (!configurator.getTaxonNodeFilter().getSubtreeFilter().isEmpty()){
+                urlString +=  selectedNode.getNameCache().replace(" ", "_")+"_cdmLight_"+sdf.format(cal.getTime());
+            }else if (!configurator.getTaxonNodeFilter().getClassificationFilter().isEmpty()){
+                urlString += page.getSelectedClassification().getTitleCache().replace(" ", "_")+"_cdmLight_"+sdf.format(cal.getTime());
+                page.getSelectedClassification();
+            }
+
+        }
+
         //+ page.getExportFileName();
 
         final Combo combo = page.getCombo();
+        if (metaDataPage != null){
+            metaDataPage.fillConfig();
+            configurator = metaDataPage.configurator;
+        }
+
         final List<Classification> listClassifications = CdmStore.getCurrentApplicationConfiguration().getClassificationService().listClassifications(null, null, null, null);
         if(combo != null){
             int selectionIndex = combo.getSelectionIndex();
@@ -100,6 +131,8 @@ AbstractExportWizardE4<CdmLightExportConfigurator> {
             }
         }
         configurator.getTaxonNodeFilter().setIncludeUnpublished(page.isExportUnpublishedData());
+        configurator.setDoFactualData(page.isExportFactualData());
+        configurator.setIncludeUnpublishedFacts(page.isExportUnpublishedFactualData());
         CdmStore.getExportManager().runMoniteredOperation(configurator, urlString);
         // create job
 //        Job job = CdmStore.getExportManager().createIOServiceJob(configurator, urlString);
@@ -115,10 +148,21 @@ AbstractExportWizardE4<CdmLightExportConfigurator> {
     @Override
     public void addPages() {
         //standard page
-        page =  ExportToFileDestinationWizardPage.OutputModel(configurator);
+        page =  ExportToFileDestinationWizardPage.CdmLight(configurator);
 
         addPage(page);
-        super.addPages();
+        pageConfiguration = ContextInjectionFactory.make(GenericConfiguratorWizardPageE4.class, context);
+        List<String> ignoreMethods = new ArrayList<>();
+        ignoreMethods.add("setDoFactualData");
+        ignoreMethods.add("setIncludeUnpublishedFacts");
+        pageConfiguration.initExport(getConfigurator(), ignoreMethods);
+        this.addPage(pageConfiguration);
+
+        if (PreferencesUtil.showGfbioMetaData()){
+            metaDataPage = new MetaDataConfigurationWizardPage("Add Meta Data", configurator);
+            addPage(metaDataPage);
+        }
+
     }
 
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/cdmlight/MetaDataConfigurationWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/cdmlight/MetaDataConfigurationWizardPage.java
new file mode 100755 (executable)
index 0000000..47ca804
--- /dev/null
@@ -0,0 +1,192 @@
+/**
+* Copyright (C) 2020 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.io.e4.out.cdmlight;
+
+import java.util.List;
+
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+import eu.etaxonomy.cdm.io.cdmLight.CdmLightExportConfigurator;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since Aug 5, 2020
+ */
+public class MetaDataConfigurationWizardPage extends WizardPage {
+
+    CdmLightExportConfigurator configurator;
+
+    private Text text_title;
+    private Text text_description;
+    private Text text_creator;
+    private Text text_contributor;
+    private Combo combo_language;
+    private Text text_dataset_landingPage;
+    private Text uri_datasetDownloadLink;
+    private Text base_url;
+    private Text text_recommendedCitation;
+    private Text text_location;
+    private Text text_keyWords;
+    private Text text_licence;
+
+    /**
+     * @param pageName
+     */
+    protected MetaDataConfigurationWizardPage(String pageName, CdmLightExportConfigurator config) {
+        super(pageName);
+        configurator = config;
+
+    }
+
+    public CdmLightExportConfigurator getConfigurator() {
+        return configurator;
+    }
+
+    public void setConfigurator(CdmLightExportConfigurator configurator) {
+        this.configurator = configurator;
+    }
+
+    @Override
+    public void createControl(Composite parent) {
+        Composite composite = new Composite(parent, SWT.NULL);
+        composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+        GridLayout gridLayout = new GridLayout();
+        gridLayout.numColumns = 2;
+        composite.setLayout(gridLayout);
+        Label label_title = new Label(composite, SWT.NULL);
+        label_title.setText("Title");
+        text_title = new Text(composite, SWT.BORDER);
+        text_title.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+                false));
+
+        Label label_description = new Label(composite, SWT.NULL);
+        label_description.setText("Description");
+        text_description = new Text(composite, SWT.BORDER);
+        text_description.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+                false));
+
+        Label label_creator = new Label(composite, SWT.NULL);
+        label_creator.setText("Creator");
+        text_creator = new Text(composite, SWT.BORDER);
+        text_creator.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+                false));
+
+        Label label_contributor = new Label(composite, SWT.NULL);
+        label_contributor.setText("Contributor");
+        text_contributor = new Text(composite, SWT.BORDER);
+        text_contributor.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+                false));
+
+        Label label_language = new Label(composite, SWT.NULL);
+        label_language.setText("Language");
+        combo_language = new Combo(composite, SWT.BORDER);
+
+        List<Language> preferredLanguages = CdmStore.getTermManager().getPreferredTerms(Language.class);
+        int currentSelectionIndex = 0;
+        Language defaultLang = CdmStore.getDefaultLanguage();
+        for(int i = 0; i < preferredLanguages.size(); i++){
+            Language language = preferredLanguages.get(i);
+            combo_language.add(language.getLabel(), i);
+            combo_language.setData(language.getLabel(), language);
+           if (language.equals(defaultLang)){
+               currentSelectionIndex = i;
+           }
+        }
+
+        combo_language.select(currentSelectionIndex);
+
+
+
+        Label label_landingPage = new Label(composite, SWT.NULL);
+        label_landingPage.setText("Dataset landing page");
+        text_dataset_landingPage= new Text(composite, SWT.BORDER);
+        text_dataset_landingPage.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+                false));
+
+        Label label_datasetDownloadLink = new Label(composite, SWT.NULL);
+        label_datasetDownloadLink.setText("Dataset download link");
+        uri_datasetDownloadLink= new Text(composite, SWT.BORDER);
+        uri_datasetDownloadLink.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+                false));
+
+        Label label_base_url = new Label(composite, SWT.NULL);
+        label_base_url.setText("Base URL");
+        base_url= new Text(composite, SWT.BORDER);
+        base_url.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+                false));
+
+        Label label_recommendedCitation = new Label(composite, SWT.NULL);
+        label_recommendedCitation.setText("Recommended citation");
+        text_recommendedCitation= new Text(composite, SWT.BORDER);
+        text_recommendedCitation.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+                false));
+
+        Label label_location = new Label(composite, SWT.NULL);
+        label_location.setText("Location");
+        text_location= new Text(composite, SWT.BORDER);
+        text_location.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+                false));
+
+        Label label_keyWords = new Label(composite, SWT.NULL);
+        label_keyWords.setText("Keywords");
+        text_keyWords= new Text(composite, SWT.BORDER);
+        text_keyWords.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+                false));
+
+        Label label_licence = new Label(composite, SWT.NULL);
+        label_licence.setText("Licence");
+        text_licence= new Text(composite, SWT.BORDER);
+        text_licence.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
+                false));
+
+
+        setControl(composite);
+    }
+
+
+    public void fillConfig() {
+
+        configurator.setTitle(text_title.getText());
+
+        configurator.setDescription(text_description.getText());
+
+        configurator.setCreator(text_creator.getText());
+
+        configurator.setContributor(text_contributor.getText());
+
+        configurator.setLanguage((Language)combo_language.getData(combo_language.getText()));
+
+        configurator.setDataSet_landing_page(text_dataset_landingPage.getText());
+
+        configurator.setDataset_download_link(uri_datasetDownloadLink.getText());
+
+        configurator.setBase_url(base_url.getText());
+
+        configurator.setRecommended_citation(text_recommendedCitation.getText());
+
+        configurator.setLocation(text_location.getText());
+
+        configurator.setKeywords(text_keyWords.getText());
+
+        configurator.setLicence(text_licence.getText());
+    }
+
+
+
+}
index 7f02e537117a16528f3c0f8485422f72e8c9e632..e61d7780be159179e2ceda6ea03595603517b1b0 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.io.e4.out.cdmlight;
 
-import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
 import eu.etaxonomy.taxeditor.io.e4.out.AbstractOpenExportWizard;
 
 /**
@@ -22,7 +22,7 @@ public class OpenCdmLightExportWizard extends AbstractOpenExportWizard {
      * {@inheritDoc}
      */
     @Override
-    protected Class<? extends AbstractExportWizardE4> getExportWizardClass() {
+    protected Class<? extends AbstractExportWizard> getExportWizardClass() {
         return CdmLightExportWizardE4.class;
     }
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/col/ColExportWizardE4.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/col/ColExportWizardE4.java
new file mode 100644 (file)
index 0000000..de59213
--- /dev/null
@@ -0,0 +1,155 @@
+/**
+ * Copyright (C) 2023 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.io.e4.out.col;
+
+import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.HashSet;
+import java.util.List;
+import java.util.UUID;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.swt.widgets.Combo;
+
+import eu.etaxonomy.cdm.filter.TaxonNodeFilter;
+import eu.etaxonomy.cdm.io.coldp.ColDpExportConfigurator;
+import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.taxeditor.io.e4.in.GenericConfiguratorWizardPageE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
+import eu.etaxonomy.taxeditor.io.wizard.ExportToFileDestinationWizardPage;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author katjaluther
+ * @date 01.09.2023
+ */
+public class ColExportWizardE4 extends
+AbstractExportWizard<ColDpExportConfigurator> {
+
+
+    private ColDpExportConfigurator configurator;
+    private ExportToFileDestinationWizardPage page;
+
+    public static final String DATE_FORMAT_NOW = "yyyyMMddHHmm";
+    TaxonNodeDto selectedNode;
+
+    @Inject
+    public ColExportWizardE4(IEclipseContext context,
+            @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection) {
+        super(context, selection);
+    }
+
+    @Override
+    public void init() {
+        configurator = ColDpExportConfigurator.NewInstance();
+
+        if (selection instanceof TreeSelection && !selection.isEmpty() &&  selection.getFirstElement() instanceof TaxonNodeDto){
+            selectedNode = (TaxonNodeDto)selection.getFirstElement();
+
+            if (selectedNode.getParentUUID() == null){
+                configurator.setTaxonNodeFilter(TaxonNodeFilter.NewClassificationInstance(selectedNode.getClassificationUUID()));
+            }else{
+                configurator.setTaxonNodeFilter(TaxonNodeFilter.NewSubtreeInstance(selectedNode.getUuid()));
+            }
+        }
+    }
+
+
+    @Override
+    public ColDpExportConfigurator getConfigurator() {
+        return configurator;
+    }
+
+    @Override
+    public boolean performFinish() {
+        String urlString = page.getFolderText() + File.separator ;
+        if (configurator.isCreateZipFile()){
+            SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
+            Calendar cal = Calendar.getInstance();
+
+            if (!configurator.getTaxonNodeFilter().getSubtreeFilter().isEmpty()){
+                urlString +=  selectedNode.getNameCache().replace(" ", "_")+"_colDP_"+sdf.format(cal.getTime());
+            }else if (!configurator.getTaxonNodeFilter().getClassificationFilter().isEmpty()){
+                urlString += page.getSelectedClassification().getTitleCache().replace(" ", "_")+"_colDP_"+sdf.format(cal.getTime());
+                page.getSelectedClassification();
+            }
+
+        }
+
+        //+ page.getExportFileName();
+
+        final Combo combo = page.getCombo();
+
+
+        final List<Classification> listClassifications = CdmStore.getCurrentApplicationConfiguration().getClassificationService().listClassifications(null, null, null, null);
+        if(combo != null){
+            int selectionIndex = combo.getSelectionIndex();
+            HashSet<UUID> set = new HashSet<UUID>();
+            if(selectionIndex == -1){
+                for(Classification c:listClassifications){
+                    set.add(c.getUuid());
+                }
+            }else{
+                for(Classification c:listClassifications){
+                    if(c.getTitleCache().equalsIgnoreCase(combo.getItem(selectionIndex))){
+                        set.add(c.getUuid());
+
+                        if (!page.getCheckUseSelectedTaxonNode()){
+                            configurator.setTaxonNodeFilter(TaxonNodeFilter.NewClassificationInstance(c.getUuid()));
+                        }
+                    }
+                }
+
+
+            }
+        }
+        configurator.getTaxonNodeFilter().setIncludeUnpublished(page.isExportUnpublishedData());
+        configurator.setDoFactualData(page.isExportFactualData());
+        configurator.setIncludeUnpublishedFacts(page.isExportUnpublishedFactualData());
+        CdmStore.getExportManager().runMoniteredOperation(configurator, urlString);
+        // create job
+//        Job job = CdmStore.getExportManager().createIOServiceJob(configurator, urlString);
+//        // configure the job
+//        job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
+//        job.setUser(true);
+//        // schedule job
+//        job.schedule();
+        PreferencesUtil.setStringValue("exportFolder", page.getFolderText());
+        return true;
+    }
+
+    @Override
+    public void addPages() {
+        //standard page
+        page =  ExportToFileDestinationWizardPage.ColDp(configurator);
+
+        addPage(page);
+        pageConfiguration = ContextInjectionFactory.make(GenericConfiguratorWizardPageE4.class, context);
+        List<String> ignoreMethods = new ArrayList<>();
+        ignoreMethods.add("setDoFactualData");
+        ignoreMethods.add("setIncludeUnpublishedFacts");
+        pageConfiguration.initExport(getConfigurator(), ignoreMethods);
+        this.addPage(pageConfiguration);
+
+
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/col/OpenColExportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/col/OpenColExportWizard.java
new file mode 100644 (file)
index 0000000..29b79f9
--- /dev/null
@@ -0,0 +1,29 @@
+/**
+* Copyright (C) 2017 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.io.e4.out.col;
+
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractOpenExportWizard;
+
+/**
+ * @author pplitzner
+ * @since Oct 5, 2017
+ *
+ */
+public class OpenColExportWizard extends AbstractOpenExportWizard {
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected Class<? extends AbstractExportWizard> getExportWizardClass() {
+        return ColExportWizardE4.class;
+    }
+
+}
index d49d9b2209b8b2a04900b988904b90d7d538d772..592a19cc88385a080dd1498bc50e26517ba436c8 100644 (file)
@@ -23,7 +23,7 @@ import org.eclipse.ui.progress.IProgressConstants;
 
 import eu.etaxonomy.cdm.io.csv.redlist.demo.CsvDemoExportConfigurator;
 import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
 import eu.etaxonomy.taxeditor.io.wizard.ExportToFileDestinationWizardPage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -32,7 +32,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created Nov. 11, 2014
  * @version 1.0
  */
-public class CsvExportWizardE4 extends AbstractExportWizardE4<CsvDemoExportConfigurator> {
+public class CsvExportWizardE4 extends AbstractExportWizard<CsvDemoExportConfigurator> {
 
        private CsvDemoExportConfigurator configurator;
        private ExportToFileDestinationWizardPage page;
index 8287f2bc49b6928a3172130492471bd630de90aa..9c6eb1d92a78d87748453399739c4413ab1985c6 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.io.e4.out.csv;
 
-import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
 import eu.etaxonomy.taxeditor.io.e4.out.AbstractOpenExportWizard;
 
 /**
@@ -22,7 +22,7 @@ public class OpenCsvExportWizard extends AbstractOpenExportWizard {
      * {@inheritDoc}
      */
     @Override
-    protected Class<? extends AbstractExportWizardE4> getExportWizardClass() {
+    protected Class<? extends AbstractExportWizard> getExportWizardClass() {
         return CsvExportWizardE4.class;
     }
 
index 49e3c124300f3e864f2d95c5416258618276e473..f98b337b2806f4d4930aa845e70164b47a45a8e4 100644 (file)
@@ -25,7 +25,7 @@ import org.eclipse.ui.progress.IProgressConstants;
 
 import eu.etaxonomy.cdm.io.csv.caryophyllales.out.CsvNameExportConfigurator;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
 import eu.etaxonomy.taxeditor.io.wizard.ExportToFileDestinationWizardPage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -34,7 +34,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created Apr. 12, 2015
  * @version 1.0
  */
-public class CsvNameExportWizardE4 extends AbstractExportWizardE4<CsvNameExportConfigurator> {
+public class CsvNameExportWizardE4 extends AbstractExportWizard<CsvNameExportConfigurator> {
 
 
     protected CsvNameExportConfigurator configurator;
index b5cac94b760df8de02c1ecf035bf3068240e648b..025c5d0fa2dfee4a2cd5662f83fb23ccbd255909 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.io.e4.out.csv.name;
 
-import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
 import eu.etaxonomy.taxeditor.io.e4.out.AbstractOpenExportWizard;
 
 /**
@@ -22,7 +22,7 @@ public class OpenCsvNameExportWizard extends AbstractOpenExportWizard {
      * {@inheritDoc}
      */
     @Override
-    protected Class<? extends AbstractExportWizardE4> getExportWizardClass() {
+    protected Class<? extends AbstractExportWizard> getExportWizardClass() {
         return CsvNameExportWizardE4.class;
     }
 
index d70df8033557ffd7b57194c9040ac0cd2dd3c86b..59d8644804ea2651a7c1ab8c57db1c776b216ae6 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.io.e4.out.csv.print;
 
-import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
 import eu.etaxonomy.taxeditor.io.e4.out.AbstractOpenExportWizard;
 
 /**
@@ -22,7 +22,7 @@ public class OpenCsvPrintExportWizard extends AbstractOpenExportWizard {
      * {@inheritDoc}
      */
     @Override
-    protected Class<? extends AbstractExportWizardE4> getExportWizardClass() {
+    protected Class<? extends AbstractExportWizard> getExportWizardClass() {
         return CsvPrintExportWizardE4.class;
     }
 
index 5726adf50ebc71ed1c0b8a1a97e790d1950a199f..9b1c201ea3e2b8e5b06e549388d08ddb37ccadda 100644 (file)
@@ -25,7 +25,7 @@ import org.eclipse.jface.viewers.TreeSelection;
 import eu.etaxonomy.cdm.filter.TaxonNodeFilter;
 import eu.etaxonomy.cdm.io.dwca.out.DwcaTaxExportConfigurator;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
-import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
 import eu.etaxonomy.taxeditor.io.wizard.ExportToFileDestinationWizardPage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -36,7 +36,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  *
  */
 public class DarwinCoreArchiveExportWizardE4 extends
-               AbstractExportWizardE4<DwcaTaxExportConfigurator> {
+               AbstractExportWizard<DwcaTaxExportConfigurator> {
 
     private DwcaTaxExportConfigurator configurator;
        private ExportToFileDestinationWizardPage page;
index a94cb9dfdda0eac51bedfa603c72a6801b102c7a..d45673f76229e04c48a3ff73a8135aef09ad4389 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.io.e4.out.dwca;
 
-import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
 import eu.etaxonomy.taxeditor.io.e4.out.AbstractOpenExportWizard;
 
 /**
@@ -22,7 +22,7 @@ public class OpenDwcaExportWizard extends AbstractOpenExportWizard {
      * {@inheritDoc}
      */
     @Override
-    protected Class<? extends AbstractExportWizardE4> getExportWizardClass() {
+    protected Class<? extends AbstractExportWizard> getExportWizardClass() {
         return DarwinCoreArchiveExportWizardE4.class;
     }
 
index 8c15f0ac78f065f775a0dd4021e17334dea4553c..795bfd42032429c5448ab7931d890c8e45b19909 100644 (file)
@@ -18,7 +18,7 @@ import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.ui.progress.IProgressConstants;
 
 import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;
-import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
 import eu.etaxonomy.taxeditor.io.wizard.ExportToFileDestinationWizardPage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -28,7 +28,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since Oct 6, 2017
  *
  */
-public class JaxbExportWizardE4 extends AbstractExportWizardE4<JaxbExportConfigurator> {
+public class JaxbExportWizardE4 extends AbstractExportWizard<JaxbExportConfigurator> {
 
        private ExportToFileDestinationWizardPage page;
 
index 0201f4b4d719133f95143ca22909a17d92a30086..beec4bbd23164f54d77424c322b8a6ab6aa84198 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.io.e4.out.jaxb;
 
-import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
 import eu.etaxonomy.taxeditor.io.e4.out.AbstractOpenExportWizard;
 
 /**
@@ -22,7 +22,7 @@ public class OpenJaxbExportWizard extends AbstractOpenExportWizard {
      * {@inheritDoc}
      */
     @Override
-    protected Class<? extends AbstractExportWizardE4> getExportWizardClass() {
+    protected Class<? extends AbstractExportWizard> getExportWizardClass() {
         return JaxbExportWizardE4.class;
     }
 
index 93b313af2e25275bd6055b867c9db8e0539306e3..a19501f93631b505d6df80078633b59b0b7cf2dd 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.io.e4.out.owl;
 
-import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
 import eu.etaxonomy.taxeditor.io.e4.out.AbstractOpenExportWizard;
 
 /**
@@ -20,7 +20,7 @@ import eu.etaxonomy.taxeditor.io.e4.out.AbstractOpenExportWizard;
 public class OpenOwlTermExportWizard extends AbstractOpenExportWizard {
 
     @Override
-    protected Class<? extends AbstractExportWizardE4> getExportWizardClass() {
+    protected Class<? extends AbstractExportWizard> getExportWizardClass() {
         return OwlTermExportWizard.class;
     }
 
index 3b6f1008ae57d8f0b0c5eb2ad0b1f9445fc11598..e747514d430eb1e37e086d80c0343bfe7c1bc78e 100644 (file)
@@ -16,12 +16,12 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter;
-import eu.etaxonomy.taxeditor.editor.definedterm.FeatureTreeViewerComparator;
 import eu.etaxonomy.taxeditor.editor.definedterm.RootElementsOnlyTreeContentProvider;
 import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoLabelProvider;
-import eu.etaxonomy.taxeditor.featuretree.FeatureTreeLabelProvider;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermTreeViewerComparator;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.preference.wizard.CheckBoxTreeComposite;
+import eu.etaxonomy.taxeditor.termtree.TermTreeLabelProvider;
 
 /**
  * @author pplitzner
@@ -46,12 +46,12 @@ public class OwlTermExportComposite extends Composite {
         selectVocabularyComposite.getViewer().setComparator(new DefinedTermSorter());
         selectVocabularyComposite.setLayoutData(layoutData);
 
-        selectFeatureTreeComposite = new CheckBoxTreeComposite(this, new RootElementsOnlyTreeContentProvider(), new FeatureTreeLabelProvider(), SWT.NONE);
+        selectFeatureTreeComposite = new CheckBoxTreeComposite(this, new RootElementsOnlyTreeContentProvider(), new TermTreeLabelProvider(), SWT.NONE);
         selectFeatureTreeComposite.setAllowTopLevelSelection(true);
-        selectFeatureTreeComposite.getViewer().setComparator(new FeatureTreeViewerComparator());
+        selectFeatureTreeComposite.getViewer().setComparator(new TermTreeViewerComparator());
         selectFeatureTreeComposite.setLayoutData(layoutData);
 
-        txtExportDirectory = new Text(this, style);
+        txtExportDirectory = new Text(this, SWT.BORDER);
         txtExportDirectory.setEditable(false);
         txtExportDirectory.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
 
index a1b584453c84cf8edf7b766c725ea4ada958982f..d2e908c4df9b8eac98210bc294df774fccd4bec7 100644 (file)
@@ -21,7 +21,7 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.progress.IProgressConstants;
 
 import eu.etaxonomy.cdm.io.descriptive.owl.out.StructureTreeOwlExportConfigurator;
-import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -31,7 +31,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  *
  */
 public class OwlTermExportWizard extends
-AbstractExportWizardE4<StructureTreeOwlExportConfigurator> {
+AbstractExportWizard<StructureTreeOwlExportConfigurator> {
 
     private StructureTreeOwlExportConfigurator configurator;
     private OwlTermExportWizardPage exportPage;
@@ -56,10 +56,11 @@ AbstractExportWizardE4<StructureTreeOwlExportConfigurator> {
     public boolean performFinish() {
         configurator.setFeatureTreeUuids(exportPage.getSelectedTrees());
         configurator.setVocabularyUuids(exportPage.getSelectedVocabularies());
+        configurator.setDestination(new File(exportPage.getExportDirectory() + File.separator+ "export.owl"));
 
         if(exportPage.getExportDirectory()!=null){
             // create job
-            Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(exportPage.getExportDirectory()));
+            Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(exportPage.getExportDirectory()+ File.separator+ "export.owl"));
             // configure the job
             job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
             job.setUser(true);
index 3317a6c01880ad73f27bb49ad5adac43a522e893..e02457a653f577d8342077d3310e9a613496b471 100644 (file)
@@ -19,7 +19,7 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.DirectoryDialog;
 
 import eu.etaxonomy.cdm.api.service.ITermTreeService;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
@@ -27,6 +27,7 @@ import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.term.TermTree;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -36,6 +37,8 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class OwlTermExportWizardPage extends WizardPage {
 
     private OwlTermExportComposite composite;
+    private DirectoryDialog folderDialog;
+    private static final String EXPORT_FOLDER = "EXPORT_FOLDER";
 
     protected OwlTermExportWizardPage(String pageName) {
         super(pageName);
@@ -53,63 +56,75 @@ public class OwlTermExportWizardPage extends WizardPage {
         termTypes.add(TermType.Property);
         termTypes.add(TermType.State);
         termTypes.add(TermType.Character);
-        List<TermVocabularyDto> areaVocabularies = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermTypes(termTypes);
+        List<TermVocabularyDto> areaVocabularies = CdmStore.getService(IVocabularyService.class)
+                .findVocabularyDtoByTermTypes(termTypes);
         composite.getSelectVocabularyComposite().getViewer().setInput(areaVocabularies);
-        composite.getSelectVocabularyComposite().getViewer().addCheckStateListener(e->updateButtons());
+        composite.getSelectVocabularyComposite().getViewer().addCheckStateListener(e -> updateButtons());
 
         List<TermTree> trees = CdmStore.getService(ITermTreeService.class).list(TermTree.class, null, null, null, null);
         composite.getSelectFeatureTreeComposite().getViewer().setInput(trees);
-        composite.getSelectFeatureTreeComposite().getViewer().addCheckStateListener(e->updateButtons());
-
+        composite.getSelectFeatureTreeComposite().getViewer().addCheckStateListener(e -> updateButtons());
 
+        folderDialog = new DirectoryDialog(parent.getShell());
+        String exportFolder = PreferencesUtil.getStringValue(EXPORT_FOLDER, true);
+        folderDialog.setFilterPath(exportFolder);
         composite.getBtnSelectDirectory().addSelectionListener(new SelectionAdapter() {
             @Override
             public void widgetSelected(SelectionEvent e) {
-                FileDialog dialog = new FileDialog(parent.getShell());
-                String[] filterNames = {
-                        "Web Ontology Language (*.owl)",
-                        "Extensible Markup Language (*.xml)",
-                        "All files (*.*)"
-                        };
-                String[] filterExtensions = { "*.owl", "*.xml", "*.*"};
-
-                dialog.setOverwrite(true);
-                dialog.setFilterNames(filterNames);
-                dialog.setFilterExtensions(filterExtensions);
-                String fileString = dialog.open();
-                if(fileString!=null){
-                    composite.getTxtExportDirectory().setText(fileString);
+                super.widgetSelected(e);
+
+                String path = folderDialog.open();
+                if (path != null) { // a folder was selected
+                    composite.getTxtExportDirectory().setText(path);
+                    PreferencesUtil.setStringValue(EXPORT_FOLDER, path);
                     updateButtons();
                 }
+
+                // FileDialog dialog = new FileDialog(parent.getShell());
+                // String[] filterNames = {
+                // "Web Ontology Language (*.owl)",
+                // "Extensible Markup Language (*.xml)",
+                // "All files (*.*)"
+                // };
+                // String[] filterExtensions = { "*.owl", "*.xml", "*.*"};
+                //
+                // dialog.setOverwrite(true);
+                // dialog.setFilterNames(filterNames);
+                // dialog.setFilterExtensions(filterExtensions);
+                // String fileString = dialog.open();
+                // if(fileString!=null){
+                // composite.getTxtExportDirectory().setText(fileString);
+                //
+                // }
             }
         });
         setControl(composite);
     }
 
-    private void updateButtons(){
+    private void updateButtons() {
         this.getWizard().getContainer().updateButtons();
     }
 
-    String getExportDirectory(){
+    String getExportDirectory() {
         return composite.getExportDirectory();
     }
 
-    List<UUID> getSelectedTrees(){
+    List<UUID> getSelectedTrees() {
         List<UUID> selectedTrees = new ArrayList<>();
         Object[] checkedElements = composite.getSelectFeatureTreeComposite().getViewer().getCheckedElements();
         for (Object object : checkedElements) {
-            if(object instanceof TermTree) {
+            if (object instanceof TermTree) {
                 selectedTrees.add(((TermTree) object).getUuid());
             }
         }
         return selectedTrees;
     }
 
-    List<UUID> getSelectedVocabularies(){
+    List<UUID> getSelectedVocabularies() {
         List<UUID> vocs = new ArrayList<>();
         Object[] checkedElements = composite.getSelectVocabularyComposite().getViewer().getCheckedElements();
         for (Object object : checkedElements) {
-            if(object instanceof TermVocabularyDto){
+            if (object instanceof TermVocabularyDto) {
                 vocs.add(((TermVocabularyDto) object).getUuid());
             }
         }
@@ -118,8 +133,7 @@ public class OwlTermExportWizardPage extends WizardPage {
 
     @Override
     public boolean isPageComplete() {
-        return !getSelectedVocabularies().isEmpty()
-                || !getSelectedTrees().isEmpty()
+        return !getSelectedVocabularies().isEmpty() || !getSelectedTrees().isEmpty()
                 || CdmUtils.isNotBlank(getExportDirectory());
     }
 
index f14f755c556d29a6c6dccb6b6e75c5b94fbec0d6..91a8036b0d2a2a9d5ed776b0d54f93eb46bf65af 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.io.e4.out.sdd;
 
-import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
 import eu.etaxonomy.taxeditor.io.e4.out.AbstractOpenExportWizard;
 
 /**
@@ -22,7 +22,7 @@ public class OpenSddExportWizard extends AbstractOpenExportWizard {
      * {@inheritDoc}
      */
     @Override
-    protected Class<? extends AbstractExportWizardE4> getExportWizardClass() {
+    protected Class<? extends AbstractExportWizard> getExportWizardClass() {
         return SddExportWizardE4.class;
     }
 
index 6882726cd5a86ec00d3f72d6c23685e93c566fc2..ee80cf1f4b7ec141394591d031538d9cca4f6ec4 100644 (file)
@@ -18,7 +18,7 @@ import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.ui.progress.IProgressConstants;
 
 import eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator;
-import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizardE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
 import eu.etaxonomy.taxeditor.io.wizard.ExportToFileDestinationWizardPage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -28,7 +28,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since Oct 6, 2017
  *
  */
-public class SddExportWizardE4 extends AbstractExportWizardE4<SDDExportConfigurator> {
+public class SddExportWizardE4 extends AbstractExportWizard<SDDExportConfigurator> {
 
        private ExportToFileDestinationWizardPage page;
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/wfo/OpenWfoBackboneExportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/wfo/OpenWfoBackboneExportWizard.java
new file mode 100644 (file)
index 0000000..768be34
--- /dev/null
@@ -0,0 +1,40 @@
+/**
+* Copyright (C) 2017 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.io.e4.out.wfo;
+
+import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractOpenExportWizard;
+
+/**
+ * @author k.luther
+ * @since Jan 2024
+ */
+public class OpenWfoBackboneExportWizard extends AbstractOpenExportWizard {
+
+    @Override
+    protected Class<? extends AbstractExportWizard> getExportWizardClass() {
+        return WfoBackboneExportWizard.class;
+    }
+
+    @Override
+    @Execute
+    public void execute(IEclipseContext ctx, Shell s){
+
+        AbstractExportWizard<?> wizard = ContextInjectionFactory.make(getExportWizardClass(), ctx);
+        wizard.init();
+        WizardDialog dialog = new WizardDialog(s, wizard);
+        dialog.open();
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/wfo/WfoBackboneExportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/wfo/WfoBackboneExportWizard.java
new file mode 100644 (file)
index 0000000..9d92c72
--- /dev/null
@@ -0,0 +1,120 @@
+/**
+ * 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.io.e4.out.wfo;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
+
+import eu.etaxonomy.cdm.filter.TaxonNodeFilter;
+import eu.etaxonomy.cdm.io.wfo.out.WfoBackboneExportConfigurator;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.taxeditor.io.e4.in.GenericConfiguratorWizardPageE4;
+import eu.etaxonomy.taxeditor.io.e4.out.AbstractExportWizard;
+import eu.etaxonomy.taxeditor.io.wizard.ExportToFileDestinationWizardPage;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since Jan 23, 2024
+ */
+public class WfoBackboneExportWizard extends
+               AbstractExportWizard<WfoBackboneExportConfigurator> {
+
+    private WfoBackboneExportConfigurator configurator;
+       private ExportToFileDestinationWizardPage page;
+
+    @Inject
+       public WfoBackboneExportWizard(IEclipseContext context,
+               @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection) {
+           super(context, selection);
+       }
+
+       @Override
+       public void init() {
+               configurator = WfoBackboneExportConfigurator.NewInstance();
+               if (selection instanceof TreeSelection && !selection.isEmpty()){
+                       Iterator<?> it = selection.iterator();
+
+                       while(it.hasNext()){
+                               Object obj = it.next();
+                               if (obj instanceof TaxonNodeDto){
+                                       TaxonNodeDto node = (TaxonNodeDto) obj;
+                                       if (node.getParentUUID() == null){
+                                               //configurator = null;
+                                       }else{
+                                               if (configurator.getTaxonNodeFilter() == null){
+                                                       configurator.setTaxonNodeFilter(TaxonNodeFilter.NewSubtreeInstance(node.getUuid()));
+                                               }else{
+                                                       configurator.getTaxonNodeFilter().orSubtree(node.getUuid());
+                                               }
+
+                                       }
+                               }
+                       }
+               }
+       }
+
+       @Override
+       public WfoBackboneExportConfigurator getConfigurator() {
+               return configurator;
+       }
+
+       @Override
+       public boolean performFinish() {
+               String urlString = page.getFolderText();// + File.separator
+                               //+ page.getExportFileName();
+
+
+               if (StringUtils.isNotBlank(page.getFamilyString())) {
+                   configurator.setFamilyStr(page.getFamilyString());
+               }
+               if (StringUtils.isNotBlank(page.get_baseUrl())) {
+            configurator.setSourceLinkBaseUrl(page.get_baseUrl());
+        }
+        CdmStore.getExportManager().runMoniteredOperation(configurator, urlString);
+
+               return true;
+       }
+
+       @Override
+       public void addPages() {
+           if (configurator == null) {
+               //don't call the export on classifications
+               this.setWindowTitle("Please select a subtree for WFO Backbone export, not a classification");
+           }
+               page = ExportToFileDestinationWizardPage.WFO(configurator);
+               addPage(page);
+               pageConfiguration = ContextInjectionFactory.make(GenericConfiguratorWizardPageE4.class, context);
+               List<String> ignoreMethods = new ArrayList<>();
+        ignoreMethods.add("setDoFactualData");
+        pageConfiguration.initExport(getConfigurator(), ignoreMethods);
+        this.addPage(pageConfiguration);
+       }
+        @Override
+           public boolean canFinish() {
+               boolean canFinish = super.canFinish();
+               if (configurator.getTaxonNodeFilter().getSubtreeFilter().isEmpty()) {
+                   return false;
+               }
+               return canFinish;
+           }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbcdImportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbcdImportWizard.java
deleted file mode 100644 (file)
index c41745b..0000000
+++ /dev/null
@@ -1,94 +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.io.wizard;
-
-import java.io.File;
-import java.net.URI;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-
-import eu.etaxonomy.cdm.database.DbSchemaValidation;
-import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
-import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
-import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- *
- * @author n.hoffmann
- * @created Jun 16, 2010
- * @version 1.0
- */
-public class AbcdImportWizard extends AbstractImportWizard<Abcd206ImportConfigurator> {
-
-    private static final Logger logger = Logger.getLogger(AbcdImportWizard.class);
-
-       private Abcd206ImportConfigurator configurator;
-       private AbcdSourceSelectionPage dataSourcePage;
-       private ClassificationChooserWizardPage classificationChooserWizardPage;
-
-       /** {@inheritDoc} */
-       @Override
-       public Abcd206ImportConfigurator getConfigurator() {
-               return configurator;
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public boolean performFinish() {
-           URI source = dataSourcePage.getUri();
-           configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-
-           if(classificationChooserWizardPage.getClassification()!=null){
-               configurator.setClassificationUuid(classificationChooserWizardPage.getClassification().getUuid());
-           }
-
-           CdmStore.getImportManager().runMoniteredOperation(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
-
-           return true;
-
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void init(IWorkbench workbench, IStructuredSelection selection) {
-               super.init(workbench, selection);
-                String configString = PreferencesUtil.getStringValue(IPreferenceKeys.LAST_USED_ABCD_CONFIG);
-        if (StringUtils.isBlank(configString)){
-            configurator = PreferencesUtil.getLocalAbcdImportConfigurator(false);
-        }else{
-            configurator = Abcd206ImportConfigurator.NewInstance(null, null);
-            PreferencesUtil.extractAbcdConfiguratorFromPreferenceString(configurator, configString);
-        }
-       }
-
-       @Override
-       protected void addConfiguratorPage() {
-               AbcdImportConfiguratorWizardPage configuratorWizardPage = AbcdImportConfiguratorWizardPage.createPage(configurator);
-               addPage(configuratorWizardPage);
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void addPages() {
-               super.addPages();
-
-               classificationChooserWizardPage = ClassificationChooserWizardPage.createPage();
-
-               dataSourcePage = ImportFromFileDataSourceWizardPage.XML();
-
-               addPage(classificationChooserWizardPage);
-               addPage(dataSourcePage);
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbcdSourceSelectionPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbcdSourceSelectionPage.java
deleted file mode 100644 (file)
index 2daed90..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
-* Copyright (C) 2016 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.io.wizard;
-
-import java.net.URI;
-
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author k.luther
- * @date 29.03.2016
- *
- */
-public abstract class AbcdSourceSelectionPage extends WizardPage {
-
-    protected Text text_source;
-
-    /**
-     * @param pageName
-     */
-    protected AbcdSourceSelectionPage(String pageName) {
-        super(pageName);
-
-    }
-
-    public abstract URI getUri();
-
-
-
-
-
-
-
-}
index c2d764b6906ad178ad76e077cf08160db1dd63b7..704ccfbe9cf2f1d3592bcedfb52490c9f9bddc2f 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.
 */
@@ -36,7 +36,8 @@ public class AbstractExcelExportWizard extends Wizard implements IExportWizard {
         * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
         */
        /** {@inheritDoc} */
-       public void init(IWorkbench workbench, IStructuredSelection selection) {
-               
+       @Override
+    public void init(IWorkbench workbench, IStructuredSelection selection) {
+
        }
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbstractExportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbstractExportWizard.java
deleted file mode 100644 (file)
index 1936b2e..0000000
+++ /dev/null
@@ -1,48 +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.io.wizard;
-
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.IExportWizard;
-
-import eu.etaxonomy.cdm.io.common.IIoConfigurator;
-
-/**
- * <p>Abstract AbstractExportWizard class.</p>
- *
- * @author n.hoffmann
- * @created 24.06.2009
- * @version 1.0
- */
-public abstract class AbstractExportWizard<CONFIG extends IIoConfigurator> extends Wizard implements IExportWizard{
-
-       protected final String CONFIGURATION_PAGE = "CONFIGURATION_PAGE";
-
-       private GenericConfiguratorWizardPage pageConfiguration;
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#addPages()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void addPages() {
-               super.addPages();
-
-               pageConfiguration = GenericConfiguratorWizardPage.Export(CONFIGURATION_PAGE, getConfigurator(), null);
-               this.addPage(pageConfiguration);
-       }
-
-       /**
-        * <p>getConfigurator</p>
-        *
-        * @return a CONFIG object.
-        */
-       public abstract CONFIG getConfigurator();
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbstractImportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/AbstractImportWizard.java
deleted file mode 100644 (file)
index b77dbb8..0000000
+++ /dev/null
@@ -1,113 +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.io.wizard;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.IWizardContainer;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IImportWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-
-import eu.etaxonomy.cdm.io.common.IImportConfigurator;
-import eu.etaxonomy.cdm.io.common.IIoConfigurator;
-import eu.etaxonomy.taxeditor.l10n.Messages;
-
-/**
- * @author n.hoffmann
- * @created 24.06.2009
- * @version 1.0
- */
-public abstract class AbstractImportWizard<CONFIG extends IIoConfigurator> extends Wizard implements IImportWizard {
-
-       protected final String CONFIGURATION_PAGE = "CONFIGURATION_PAGE";
-
-       protected GenericConfiguratorWizardPage pageConfiguration;
-       private NomenclaturalCodeWizardPage pageNomenclaturalCode;
-
-       private IWorkbench workbench;
-
-       private IStructuredSelection selection;
-
-       /** {@inheritDoc} */
-       @Override
-       public void addPages() {
-               super.addPages();
-
-               addConfiguratorPage();
-
-               pageNomenclaturalCode = new NomenclaturalCodeWizardPage((IImportConfigurator)getConfigurator());
-               this.addPage(pageNomenclaturalCode);
-       }
-
-       protected void addConfiguratorPage(){
-               pageConfiguration = GenericConfiguratorWizardPage.Import(CONFIGURATION_PAGE, getConfigurator(), null, Messages.AbstractImportWizard_ConfigurationLabel);
-               this.addPage(pageConfiguration);
-       }
-
-       @Override
-       public void setContainer(IWizardContainer wizardContainer) {
-               if(existUnsavedEditors()){
-                   MessageDialog.open(MessageDialog.WARNING, getShell(), "Unsaved editors", "Please save all open editors before executing " +
-                           "an import operation. The import operation will be cancelled", SWT.NONE);
-               }
-               else{
-                   super.setContainer(wizardContainer);
-               }
-       }
-
-       @Override
-       public void init(IWorkbench workbench, IStructuredSelection selection) {
-               this.setWorkbench(workbench);
-               this.setSelection(selection);
-       }
-
-       protected boolean existUnsavedEditors(){
-               IWorkbenchPage activePage = getWorkbench().getActiveWorkbenchWindow().getActivePage();
-               if(activePage != null){
-                       for (IEditorReference reference : activePage.getEditorReferences()) {
-                               IEditorPart editor = reference.getEditor(false);
-                               if (editor!= null){
-                                       if(editor.isDirty()){
-                                               return true;
-                                       }
-                               }
-                       }
-               }
-               return false;
-       }
-
-       @Override
-       public boolean canFinish() {
-               return !existUnsavedEditors() && super.canFinish();
-       }
-
-       public abstract CONFIG getConfigurator();
-
-       public void setSelection(IStructuredSelection selection) {
-               this.selection = selection;
-       }
-
-       public IStructuredSelection getSelection() {
-               return selection;
-       }
-
-       public void setWorkbench(IWorkbench workbench) {
-               this.workbench = workbench;
-       }
-
-       public IWorkbench getWorkbench() {
-               return workbench;
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CdmLightExportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CdmLightExportWizard.java
deleted file mode 100644 (file)
index 711bafe..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
-* Copyright (C) 2017 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.io.wizard;
-
-import java.io.File;
-import java.util.HashSet;
-import java.util.List;
-import java.util.UUID;
-
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.progress.IProgressConstants;
-
-import eu.etaxonomy.cdm.filter.TaxonNodeFilter;
-import eu.etaxonomy.cdm.io.cdmLight.CdmLightExportConfigurator;
-import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author k.luther
- * @date 21.03.2017
- *
- */
-public class CdmLightExportWizard extends
-     AbstractExportWizard<CdmLightExportConfigurator> {
-
-        private CdmLightExportConfigurator configurator;
-        private ExportToFileDestinationWizardPage page;
-
-
-
-        private final String description = "Export the contents of the currently selected database into Comma Separated Value format.";
-
-        @Override
-        public void init(IWorkbench workbench, IStructuredSelection selection) {
-               configurator = new CdmLightExportConfigurator(null);
-               if (selection instanceof TreeSelection && !selection.isEmpty()){
-                       TaxonNode node = (TaxonNode)selection.getFirstElement();
-                       if (node.getParent() == null){
-                               configurator.setTaxonNodeFilter(TaxonNodeFilter.NewClassificationInstance(node.getClassification().getUuid()));
-                       }else{
-                               configurator.setTaxonNodeFilter(TaxonNodeFilter.NewSubtreeInstance(node.getUuid()));
-                       }
-
-               }
-
-
-        }
-
-
-        @Override
-        public CdmLightExportConfigurator getConfigurator() {
-            return configurator;
-        }
-
-
-        @Override
-        public boolean performFinish() {
-            String urlString = page.getFolderText() + File.separator;
-                    //+ page.getExportFileName();
-
-            final Combo combo = page.getCombo();
-            final List<Classification> listClassifications = CdmStore.getCurrentApplicationConfiguration().getClassificationService().listClassifications(null, null, null, null);
-            if(combo != null){
-                int selectionIndex = combo.getSelectionIndex();
-                HashSet<UUID> set = new HashSet<UUID>();
-                if(selectionIndex == -1){
-                    for(Classification c:listClassifications){
-                        set.add(c.getUuid());
-                    }
-                }else{
-                    for(Classification c:listClassifications){
-                        if(c.getTitleCache().equalsIgnoreCase(combo.getItem(selectionIndex))){
-                            set.add(c.getUuid());
-
-                            if (!page.getCheckUseSelectedTaxonNode()){
-                               configurator.setTaxonNodeFilter(TaxonNodeFilter.NewClassificationInstance(c.getUuid()));
-                            }
-                        }
-                    }
-
-
-                }
-            }
-
-            // create job
-            Job job = CdmStore.getExportManager().createIOServiceJob(configurator, urlString);
-            // configure the job
-            job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
-            job.setUser(true);
-            // schedule job
-            job.schedule();
-            PreferencesUtil.setStringValue("exportFolder", page.getFolderText());
-            return true;
-        }
-
-        @Override
-        public void addPages() {
-            //standard page
-            page =  ExportToFileDestinationWizardPage.OutputModel(configurator);
-
-            addPage(page);
-            super.addPages();
-        }
-
-
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ClassificationChooserWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ClassificationChooserWizardPage.java
deleted file mode 100644 (file)
index 6c4518c..0000000
+++ /dev/null
@@ -1,106 +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.io.wizard;
-
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wb.swt.ResourceManager;
-
-import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
-
-/**
- * <p>ImportFromFileDataSourceWizardPage class.</p>
- *
- * @author n.hoffmann
- * @created 04.08.2009
- * @version 1.0
- */
-public class ClassificationChooserWizardPage extends WizardPage implements Listener{
-
-       public static final String PAGE_NAME = "ClassificationChooserWizardPage";
-
-       //classification
-    private Text textClassification;
-    private Classification classification;
-    private Button btnBrowseClassification;
-
-    private Button btnClear;
-
-       protected ClassificationChooserWizardPage(String title, String description) {
-               super(PAGE_NAME);
-
-               setTitle(title);
-
-               setDescription(description);
-
-       }
-
-       public static ClassificationChooserWizardPage createPage(){
-               return new ClassificationChooserWizardPage("Configure import destinations", "Note: Selecting no classification will create a default one.");
-       }
-
-
-
-       /** {@inheritDoc} */
-       @Override
-    public void createControl(Composite parent) {
-               final Composite composite = new Composite(parent, SWT.NULL);
-
-               GridLayout gridLayout = new GridLayout();
-               gridLayout.numColumns = 4;
-               composite.setLayout(gridLayout);
-
-               //classification
-               Label label = new Label(composite, SWT.NONE);
-               label.setText("Classification");
-               textClassification = new Text(composite, SWT.NONE);
-               textClassification.setEnabled(false);
-               textClassification.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-               btnBrowseClassification = new Button(composite, SWT.NONE);
-               btnBrowseClassification.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/open.gif"));
-               btnBrowseClassification.addListener(SWT.Selection, this);
-               btnClear = new Button(composite, SWT.NONE);
-               btnClear.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/trash.gif"));
-               btnClear.addListener(SWT.Selection, this);
-
-               setControl(composite);
-       }
-
-       @Override
-       public void handleEvent(Event event) {
-           if(event.widget==btnBrowseClassification){
-               classification = SelectionDialogFactory.getSelectionFromDialog(Classification.class, getShell(), null, null);
-               if(classification!=null){
-                   textClassification.setText(classification.getTitleCache());
-               }
-           }
-           else if(event.widget==btnClear){
-               classification = null;
-               textClassification.setText("");
-           }
-       }
-
-    /**
-     * @return the classification
-     */
-    public Classification getClassification() {
-        return classification;
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CsvExportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CsvExportWizard.java
deleted file mode 100644 (file)
index acdd907..0000000
+++ /dev/null
@@ -1,123 +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.io.wizard;
-
-import java.io.File;
-import java.util.HashSet;
-import java.util.List;
-import java.util.UUID;
-
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.progress.IProgressConstants;
-
-import eu.etaxonomy.cdm.io.csv.redlist.demo.CsvDemoExportConfigurator;
-import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author a.oppermann
- * @created Nov. 11, 2014
- * @version 1.0
- */
-public class CsvExportWizard extends AbstractExportWizard<CsvDemoExportConfigurator> {
-
-       private CsvDemoExportConfigurator configurator;
-       private ExportToFileDestinationWizardPage page;
-
-       private final String description = "Export the contents of the currently selected database into Comma Separated Value format.";
-       /*
-        * (non-Javadoc)
-        *
-        * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench,
-        * org.eclipse.jface.viewers.IStructuredSelection)
-        */
-       @Override
-       public void init(IWorkbench workbench, IStructuredSelection selection) {
-               configurator = CsvDemoExportConfigurator.NewInstance(null, null);
-       }
-
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.io.wizard.AbstractExportWizard#getConfigurator()
-        */
-       @Override
-       public CsvDemoExportConfigurator getConfigurator() {
-               return configurator;
-       }
-
-       /*
-        * (non-Javadoc)
-        *
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()
-        */
-       @Override
-       public boolean performFinish() {
-               String urlString = page.getFolderText() + File.separator
-                               + page.getExportFileName();
-
-               final Combo combo = page.getCombo();
-               final List<Classification> listClassifications = CdmStore.getCurrentApplicationConfiguration().getClassificationService().listClassifications(null, null, null, null);
-               if(combo != null){
-                   int selectionIndex = combo.getSelectionIndex();
-                   HashSet<UUID> set = new HashSet<UUID>();
-                   if(selectionIndex == -1){
-                       for(Classification c:listClassifications){
-                           set.add(c.getUuid());
-                       }
-                   }else{
-                       for(Classification c:listClassifications){
-                           if(c.getTitleCache().equalsIgnoreCase(combo.getItem(selectionIndex))){
-                               set.add(c.getUuid());
-                           }
-                       }
-                       configurator.setClassificationUuids(set);
-                       configurator.setDoTaxa(true);
-                       configurator.setHasHeaderLines(true);
-                       configurator.setClassification(true);
-                       configurator.setTaxonName(true);
-                       configurator.setAuthor(true);
-                       configurator.setRank(true);
-                       configurator.setLastChange(true);
-                   }
-               }
-               
-           // create job
-           Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));
-           // configure the job
-           job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
-           job.setUser(true);
-           // schedule job
-           job.schedule();
-               
-               return true;
-       }
-
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.io.wizard.AbstractExportWizard#addPages()
-        */
-       @Override
-       public void addPages() {
-           //TODO create page with drop down menu for export for single classification.
-//             super.addPages();
-
-
-               //standard page
-               page =  ExportToFileDestinationWizardPage.Csv(configurator);
-
-               addPage(page);
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CsvNameExportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CsvNameExportWizard.java
deleted file mode 100644 (file)
index f56e49c..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/**\r
- * Copyright (C) 2007 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
-\r
-package eu.etaxonomy.taxeditor.io.wizard;\r
-\r
-import java.io.File;\r
-\r
-import org.eclipse.core.runtime.jobs.Job;\r
-import org.eclipse.jface.viewers.IStructuredSelection;\r
-import org.eclipse.swt.widgets.Combo;\r
-import org.eclipse.ui.IWorkbench;\r
-import org.eclipse.ui.progress.IProgressConstants;\r
-\r
-import eu.etaxonomy.cdm.io.csv.caryophyllales.out.CsvNameExportConfigurator;\r
-import eu.etaxonomy.taxeditor.store.CdmStore;\r
-\r
-/**\r
- * @author k.luther\r
- * @created Apr. 12, 2015\r
- * @version 1.0\r
- */\r
-public class CsvNameExportWizard extends AbstractExportWizard<CsvNameExportConfigurator> {\r
-\r
-       protected CsvNameExportConfigurator configurator;\r
-       protected ExportToFileDestinationWizardPage page;\r
-\r
-       private final String description = "Export the names of the currently selected database into Semicolon Separated Value format.";\r
-       /*\r
-        * (non-Javadoc)\r
-        *\r
-        * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench,\r
-        * org.eclipse.jface.viewers.IStructuredSelection)\r
-        */\r
-       @Override\r
-       public void init(IWorkbench workbench, IStructuredSelection selection) {\r
-               configurator = CsvNameExportConfigurator.NewInstance(null,null);\r
-               configurator.setNamesOnly(true);\r
-       }\r
-\r
-       /*\r
-        * (non-Javadoc)\r
-        *\r
-        * @see\r
-        * eu.etaxonomy.taxeditor.io.wizard.AbstractExportWizard#getConfigurator()\r
-        */\r
-       @Override\r
-       public CsvNameExportConfigurator getConfigurator() {\r
-               return configurator;\r
-       }\r
-\r
-       /*\r
-        * (non-Javadoc)\r
-        *\r
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()\r
-        */\r
-       @Override\r
-       public boolean performFinish() {\r
-           String urlString = page.getFolderText() + File.separator\r
-                   + page.getExportFileName();\r
-\r
-           final Combo combo = page.getCombo();\r
-           configurator.setClassificationUUID(page.getSelectedClassificationUUID());\r
-           \r
-        // create job\r
-        Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));\r
-        // configure the job\r
-        job.setProperty(IProgressConstants.KEEP_PROPERTY, true);\r
-        job.setUser(true);\r
-        // schedule job\r
-        job.schedule();\r
-          \r
-               return true;\r
-       }\r
-\r
-       /*\r
-        * (non-Javadoc)\r
-        *\r
-        * @see eu.etaxonomy.taxeditor.io.wizard.AbstractExportWizard#addPages()\r
-        */\r
-       @Override\r
-       public void addPages() {\r
-           //TODO create page with drop down menu for export for single classification.\r
-//             super.addPages();\r
-\r
-\r
-               //standard page\r
-               page =  ExportToFileDestinationWizardPage.CsvNames(configurator);\r
-\r
-               addPage(page);\r
-       }\r
-}\r
-\r
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CsvPrintExportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/CsvPrintExportWizard.java
deleted file mode 100644 (file)
index 205c31e..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-package eu.etaxonomy.taxeditor.io.wizard;\r
-\r
-import java.io.File;\r
-import java.util.HashSet;\r
-import java.util.List;\r
-import java.util.UUID;\r
-\r
-import org.eclipse.core.runtime.jobs.Job;\r
-import org.eclipse.jface.viewers.IStructuredSelection;\r
-import org.eclipse.swt.widgets.Combo;\r
-import org.eclipse.ui.IWorkbench;\r
-import org.eclipse.ui.progress.IProgressConstants;\r
-\r
-import eu.etaxonomy.cdm.io.csv.caryophyllales.out.CsvNameExportConfigurator;\r
-import eu.etaxonomy.cdm.model.taxon.Classification;\r
-import eu.etaxonomy.taxeditor.store.CdmStore;\r
-\r
-public class CsvPrintExportWizard extends CsvNameExportWizard{\r
-\r
-\r
-       private final String description = "Export the contents of the currently selected database into Semicolon Separated Value format.";\r
-       @Override\r
-       public void init(IWorkbench workbench, IStructuredSelection selection) {\r
-               configurator = CsvNameExportConfigurator.NewInstance(null,null);\r
-               configurator.setNamesOnly(false);\r
-       }\r
-\r
-       @Override\r
-       public CsvNameExportConfigurator getConfigurator() {\r
-\r
-               return configurator;\r
-       }\r
-\r
-\r
-\r
-       /*\r
-        * (non-Javadoc)\r
-        *\r
-        * @see eu.etaxonomy.taxeditor.io.wizard.AbstractExportWizard#addPages()\r
-        */\r
-       @Override\r
-       public void addPages() {\r
-           //TODO create page with drop down menu for export for single classification.\r
-//             super.addPages();\r
-\r
-\r
-               //standard page\r
-               page =  ExportToFileDestinationWizardPage.CsvPrint(configurator);\r
-\r
-               addPage(page);\r
-       }\r
-       /*\r
-        * (non-Javadoc)\r
-        *\r
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()\r
-        */\r
-       @Override\r
-       public boolean performFinish() {\r
-               String urlString = page.getFolderText() + File.separator\r
-                               + page.getExportFileName();\r
-\r
-               final Combo combo = page.getCombo();\r
-\r
-          \r
-           configurator.setClassificationUUID(page.getSelectedClassificationUUID());\r
-               // create job\r
-           Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));\r
-           // configure the job\r
-           job.setProperty(IProgressConstants.KEEP_PROPERTY, true);\r
-           job.setUser(true);\r
-           // schedule job\r
-           job.schedule();\r
-               \r
-               return true;\r
-       }\r
-\r
-}\r
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/DarwinCoreArchiveExportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/DarwinCoreArchiveExportWizard.java
deleted file mode 100644 (file)
index a3a5a40..0000000
+++ /dev/null
@@ -1,101 +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.io.wizard;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.progress.IProgressConstants;
-
-import eu.etaxonomy.cdm.filter.TaxonNodeFilter;
-import eu.etaxonomy.cdm.io.dwca.out.DwcaTaxExportConfigurator;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author n.hoffmann
- * @created May 2, 2011
- * @version 1.0
- */
-public class DarwinCoreArchiveExportWizard extends
-               AbstractExportWizard<DwcaTaxExportConfigurator> {
-
-       private DwcaTaxExportConfigurator configurator;
-       private ExportToFileDestinationWizardPage page;
-
-       /*
-        * (non-Javadoc)
-        *
-        * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench,
-        * org.eclipse.jface.viewers.IStructuredSelection)
-        */
-       @Override
-       public void init(IWorkbench workbench, IStructuredSelection selection) {
-               configurator = DwcaTaxExportConfigurator.NewInstance(null, null, null);
-               if (selection instanceof TreeSelection && !selection.isEmpty()){
-                       TaxonNode node = (TaxonNode)selection.getFirstElement();
-                       if (node.getParent() == null){
-                               configurator.setTaxonNodeFilter(TaxonNodeFilter.NewClassificationInstance(node.getClassification().getUuid()));
-                       }else{
-                               configurator.setTaxonNodeFilter(TaxonNodeFilter.NewSubtreeInstance(node.getUuid()));
-                       }
-                       
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.io.wizard.AbstractExportWizard#getConfigurator()
-        */
-       @Override
-       public DwcaTaxExportConfigurator getConfigurator() {
-               return configurator;
-       }
-
-       /*
-        * (non-Javadoc)
-        *
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()
-        */
-       @Override
-       public boolean performFinish() {
-               String urlString = page.getFolderText() + File.separator
-                               + page.getExportFileName();
-
-       
-               CdmStore.getExportManager().runMoniteredOperation(configurator, urlString);
-//             Job exportJob = CdmStore.getExportManager().createIOServiceJob(configurator, destination);
-//             exportJob.setProperty(IProgressConstants.KEEP_PROPERTY, true);
-//             exportJob.setUser(true);
-        // schedule job
-//             exportJob.schedule();
-
-               return true;
-       }
-
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.io.wizard.AbstractExportWizard#addPages()
-        */
-       @Override
-       public void addPages() {
-               
-
-               page = ExportToFileDestinationWizardPage.Dwca(configurator);
-               addPage(page);
-               super.addPages();
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/EndnoteImportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/EndnoteImportWizard.java
deleted file mode 100644 (file)
index 510ab41..0000000
+++ /dev/null
@@ -1,78 +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.io.wizard;
-
-import java.io.File;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IImportWizard;
-import org.eclipse.ui.IWorkbench;
-
-import eu.etaxonomy.cdm.io.reference.endnote.in.EndnoteImportConfigurator;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * <p>EndnoteImportWizard class.</p>
- *
- * @author n.hoffmann
- * @created Sep 18, 2009
- * @version 1.0
- */
-public class EndnoteImportWizard extends AbstractImportWizard<EndnoteImportConfigurator> implements IImportWizard {
-
-       private EndnoteImportConfigurator configurator;
-
-       private ImportFromFileDataSourceWizardPage dataSourcePage;
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public boolean performFinish() {
-               
-               File file = dataSourcePage.getFile();
-               configurator.setSource(file.toURI());
-               
-               CdmStore.getImportManager().run(configurator);
-               
-               return true;
-       }
-       
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.io.AbstractImportWizard#addPages()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void addPages() {
-               super.addPages();
-               
-               dataSourcePage = ImportFromFileDataSourceWizardPage.XML();
-               addPage(dataSourcePage);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
-        */
-       /** {@inheritDoc} */
-       public void init(IWorkbench workbench, IStructuredSelection selection) {
-               super.init(workbench, selection);
-               configurator =  CdmStore.getImportManager().EndnoteConfigurator();
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.io.AbstractImportWizard#getConfigurator()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public EndnoteImportConfigurator getConfigurator() {
-               return configurator;
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ExcelDistributionUpdateWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ExcelDistributionUpdateWizard.java
deleted file mode 100644 (file)
index 877c0f8..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/**
-* Copyright (C) 2017 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.io.wizard;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-
-import eu.etaxonomy.cdm.database.DbSchemaValidation;
-import eu.etaxonomy.cdm.io.distribution.excelupdate.ExcelDistributionUpdateConfigurator;
-import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author k.luther
- * @date 03.05.2017
- *
- */
-public class ExcelDistributionUpdateWizard extends AbstractImportWizard<ExcelDistributionUpdateConfigurator> {
-    private ExcelDistributionUpdateConfigurator configurator;
-
-    private ImportFromFileAndChooseVocIdWizardPage dataSourcePage;
-
-    private static final Logger logger = Logger.getLogger(ExcelDistributionUpdateWizard.class);
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#getConfigurator()
-     */
-    /** {@inheritDoc} */
-    @Override
-    public ExcelDistributionUpdateConfigurator getConfigurator() {
-        return configurator;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.wizard.Wizard#performFinish()
-     */
-    /** {@inheritDoc} */
-    @Override
-    public boolean performFinish() {
-        URI source = dataSourcePage.getUri();
-       // configurator.setSource(source);
-        configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-        File file = new File(source);
-        FileInputStream fis = null;
-
-        try {
-            fis = new FileInputStream(file);
-        } catch (FileNotFoundException e) {
-            logger.error("Error while reading file" + source.toString());
-        }
-        try {
-            configurator.setStream(IOUtils.toByteArray(fis));
-        } catch (IOException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-        UUID vocUuid = dataSourcePage.getVocUuid();
-
-        configurator.setAreaVocabularyUuid(vocUuid);
-        //CdmStore.getImportManager().runMoniteredOperation(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
-        Job job = CdmStore.getImportManager().createIOServiceJob(configurator);
-        CdmStore.getImportManager().run(job);
-
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
-     */
-    /** {@inheritDoc} */
-    @Override
-    public void init(IWorkbench workbench, IStructuredSelection selection) {
-        super.init(workbench, selection);
-        configurator =  CdmStore.getImportManager().ExcelDistributionUpdateConfigurator();
-
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#addPages()
-     */
-    /** {@inheritDoc} */
-    @Override
-    public void addPages() {
-        addConfiguratorPage();
-        addDataSourcePage();
-
-
-    }
-    @Override
-    protected void addConfiguratorPage(){
-        List<String> ignoreMethods = new ArrayList<>();
-        ignoreMethods.add("setIgnoreNull");
-        ignoreMethods.add("setInteractWithUser");
-        ignoreMethods.add("setUseClassification");
-        pageConfiguration = GenericConfiguratorWizardPage.Import(CONFIGURATION_PAGE, getConfigurator(), ignoreMethods, Messages.ExcelDistributionUpdateWizard_ConfiguratorWizard_label);
-        addPage(pageConfiguration);
-    }
-
-    private void addDataSourcePage(){
-        dataSourcePage = new ImportFromFileAndChooseVocIdWizardPage("Choose Excel File",
-                "Please choose an xls file in the Distribution Update format.", new String[]{"*.xlsx", "*.xls", "*.*"});
-        addPage(dataSourcePage);
-    }
-
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ExcelNormalExplicitTaxaImportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ExcelNormalExplicitTaxaImportWizard.java
deleted file mode 100644 (file)
index 46ab6ef..0000000
+++ /dev/null
@@ -1,112 +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.io.wizard;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.net.URI;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.ui.IWorkbench;
-
-import eu.etaxonomy.cdm.database.DbSchemaValidation;
-import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
-import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-
-/**
- * <p>ExcelNormalExplicitTaxaImportWizard class.</p>
- *
- * @author n.hoffmann
- * @created Sep 22, 2009
- * @version 1.0
- */
-public class ExcelNormalExplicitTaxaImportWizard extends AbstractImportWizard<NormalExplicitImportConfigurator>{
-
-       private NormalExplicitImportConfigurator configurator;
-
-       private ImportFromFileDataSourceWizardPage dataSourcePage;
-       private static final Logger logger = Logger.getLogger(ExcelNormalExplicitTaxaImportWizard.class);
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#getConfigurator()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public NormalExplicitImportConfigurator getConfigurator() {
-               return configurator;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public boolean performFinish() {
-               URI source = dataSourcePage.getUri();
-               configurator.setSource(source);
-               configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-               configurator.setSourceReferenceTitle(dataSourcePage.getTextReferenceString().getText());
-               File file = new File(source);
-               FileInputStream fis = null;
-
-               try {
-                       fis = new FileInputStream(file);
-               } catch (FileNotFoundException e) {
-                       logger.error("Error while reading file" + source.toString());
-               }
-               try {
-            configurator.setStream(IOUtils.toByteArray(fis));
-        } catch (IOException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-           Job job = CdmStore.getImportManager().createIOServiceJob(configurator,file , SOURCE_TYPE.INPUTSTREAM);
-           CdmStore.getImportManager().run(job);
-
-               return true;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
-        */
-       /** {@inheritDoc} */
-       @Override
-    public void init(IWorkbench workbench, IStructuredSelection selection) {
-               super.init(workbench, selection);
-               configurator =  CdmStore.getImportManager().NormalExplicitConfigurator();
-               if (selection instanceof TreeSelection && !selection.isEmpty()){
-                       TaxonNode node = (TaxonNode)selection.getFirstElement();
-                       configurator.setParentUUID(node.getTaxon().getUuid());
-                       configurator.setClassificationUuid(node.getClassification().getUuid());
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#addPages()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void addPages() {
-               super.addPages();
-
-               dataSourcePage = new ImportFromFileDataSourceWizardPage("Choose NormalExplicit",
-                               "Please choose an xls file in the NormalExplicit format.", new String[]{"*.xlsx", "*.xls", "*.*"});
-               addPage(dataSourcePage);
-       }
-}
index cc505ec59334ecc16dd59236d162f7543f417779..38f53deea8421ee31cf7a4b97242277ef1e4a78a 100644 (file)
@@ -6,13 +6,12 @@
  * The content of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.io.wizard;
 
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -30,6 +29,7 @@ import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Listener;
@@ -39,6 +39,7 @@ import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.filter.LogicFilter;
 import eu.etaxonomy.cdm.io.cdmLight.CdmLightExportConfigurator;
+import eu.etaxonomy.cdm.io.coldp.ColDpExportConfigurator;
 import eu.etaxonomy.cdm.io.common.ExportConfiguratorBase;
 import eu.etaxonomy.cdm.io.csv.caryophyllales.out.CsvNameExportConfigurator;
 import eu.etaxonomy.cdm.io.csv.redlist.demo.CsvDemoExportConfigurator;
@@ -46,7 +47,9 @@ import eu.etaxonomy.cdm.io.dwca.out.DwcaTaxExportConfigurator;
 import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;
 import eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator;
 import eu.etaxonomy.cdm.io.tcsxml.out.TcsXmlExportConfigurator;
+import eu.etaxonomy.cdm.io.wfo.out.WfoBackboneExportConfigurator;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoByNameComparator;
@@ -65,47 +68,52 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class ExportToFileDestinationWizardPage extends WizardPage implements SelectionListener {
 
-       /** Constant <code>DATE_FORMAT_NOW="yyyyMMddHHmm"</code> */
-       public static final String DATE_FORMAT_NOW = "yyyyMMddHHmm";
+    /** Constant <code>DATE_FORMAT_NOW="yyyyMMddHHmm"</code> */
+    public static final String DATE_FORMAT_NOW = "yyyyMMddHHmm";
 
-       /** Constant <code>JAXB_EXPORT="JAXB_EXPORT"</code> */
-       public static final String JAXB_EXPORT = "JAXB_EXPORT";
+    /** Constant <code>JAXB_EXPORT="JAXB_EXPORT"</code> */
+    public static final String JAXB_EXPORT = "JAXB_EXPORT";
 
-       /** Constant <code>TCS_EXPORT="TCS_EXPORT"</code> */
-       public static final String TCS_EXPORT = "TCS_EXPORT";
+    /** Constant <code>TCS_EXPORT="TCS_EXPORT"</code> */
+    public static final String TCS_EXPORT = "TCS_EXPORT";
 
-       /** Constant <code>SDD_EXPORT="SDD_EXPORT"</code> */
-       public static final String SDD_EXPORT = "SDD_EXPORT";
+    /** Constant <code>SDD_EXPORT="SDD_EXPORT"</code> */
+    public static final String SDD_EXPORT = "SDD_EXPORT";
 
-       public static final String DWCA_EXPORT = "DWCA_EXPORT";
-       public static final String OUTPUT_MODEL_EXPORT = "CDM_LIGHT(CSV)";
-       public static final String CSV_EXPORT = "CSV_EXPORT";
-       public static final String CSV_NAME_EXPORT = "CSV_NAME_EXPORT";
-       private static final String CSV_PRINT_EXPORT ="CSV_PRINT_EXPORT";
-       private static final String EXPORT_FOLDER ="EXPORT_FOLDER";
-       public static final String XML = "xml";
+    public static final String DWCA_EXPORT = "DWCA_EXPORT";
+    public static final String WFO_BACKBONE_EXPORT = "WFO_BACKBONE_EXPORT";
+    public static final String CDM_LIGHT_EXPORT = "CDM_LIGHT(CSV)";
+    public static final String COL_DP_EXPORT = "COL DP";
+    public static final String CSV_EXPORT = "CSV_EXPORT";
+    public static final String CSV_NAME_EXPORT = "CSV_NAME_EXPORT";
+    private static final String CSV_PRINT_EXPORT = "CSV_PRINT_EXPORT";
+    private static final String EXPORT_FOLDER = "EXPORT_FOLDER";
+    public static final String XML = "xml";
 
-       public static final String CSV = "csv";
+    public static final String CSV = "csv";
 
-       public static final String ZIP = "zip";
+    public static final String ZIP = "zip";
 
     private boolean csvExport = false;
 
     private boolean csvNameExport = false;
 
-       private boolean csvPrintExport = false;
+    private boolean csvPrintExport = false;
+
+    private boolean cdmLightExport = false;
 
-       private boolean outputModelExport = false;
-       private boolean dwcaExport = false;
+    private boolean colDPExport = false;
+    private boolean dwcaExport = false;
+    private boolean wfoBackboneExport = false;
 
-       private DirectoryDialog folderDialog;
-       private Text text_exportFileName;
+    private DirectoryDialog folderDialog;
+    private Text text_exportFileName;
 
-       private Text text_folder;
+    private Text text_folder;
 
-       private final String type;
+    private final String type;
 
-       private final String extension;
+    private final String extension;
 
     private Combo classificationSelectionCombo;
 
@@ -113,278 +121,339 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
 
     private Classification selectedClassification;
 
-    private Label classificationLabel;
-
-    private ExportConfiguratorBase configurator;
-    private Button checkUseSelectedtaxonNode;
+    private ExportConfiguratorBase<?, ?, ?> configurator;
+    private Button checkUseSelectedTaxonNode;
 
     private Button checkUseSelectedClassification;
     private Button checkUseAllClassification;
 
     private Button checkExportUnpublished;
-    Combo orderSelectionCombo;
-
-
-       protected ExportToFileDestinationWizardPage(String pageName, String type,
-                       String title, String description, String extension, ExportConfiguratorBase configurator) {
-               super(pageName);
-               this.configurator = configurator;
-               this.type = type;
-               switch(type) {
-                  case CSV_EXPORT :
-                          csvExport = true;
-                          break;
-                  case CSV_NAME_EXPORT:
-                          csvNameExport = true;
-                          break;
-                  case OUTPUT_MODEL_EXPORT:
-                          outputModelExport = true;
-                          break;
-                  case CSV_PRINT_EXPORT:
-                          csvPrintExport = true;
-                          break;
-                  case DWCA_EXPORT:
-                          dwcaExport = true;
-                          break;
-               }
-               this.extension = extension;
-               this.setTitle(title);
-               this.setDescription(description);
-       }
-
-       public static ExportToFileDestinationWizardPage Jaxb(JaxbExportConfigurator configurator) {
-               return new ExportToFileDestinationWizardPage(
-                               JAXB_EXPORT,
-                               "jaxb",
-                               "JAXB Export",
-                               "Exports the content of the currently selected database into the cdm jaxb format.",
-                               XML, configurator);
-       }
-
-       public static ExportToFileDestinationWizardPage Tcs(TcsXmlExportConfigurator config) {
-               return new ExportToFileDestinationWizardPage(
-                               TCS_EXPORT,
-                               "tcs",
-                               "Tcs Export",
-                               "Export the content of the currently selected database into TCS format.",
-                               XML, config);
-       }
-
-       public static ExportToFileDestinationWizardPage Sdd(SDDExportConfigurator config) {
-               return new ExportToFileDestinationWizardPage(
-                               SDD_EXPORT,
-                               "sdd",
-                               "Sdd Export",
-                               "Export the content of the currently selected database into SDD format.",
-                               XML, config);
-       }
-
-       public static ExportToFileDestinationWizardPage Dwca(DwcaTaxExportConfigurator config) {
-               return new ExportToFileDestinationWizardPage(
-                               DWCA_EXPORT,
-                               DWCA_EXPORT,
-                               "DwC-Archive Export",
-                               "Export the content of the currently selected database into Darwin Core Archive format.",
-                               ZIP, config);
-       }
-
-    public static ExportToFileDestinationWizardPage OutputModel(CdmLightExportConfigurator config) {
-
-        return new ExportToFileDestinationWizardPage(
-                OUTPUT_MODEL_EXPORT,
-                OUTPUT_MODEL_EXPORT,
-                "CDM Light Export (csv)",
-                "Export the content of the currently selected database into the CDM light (csv) format.",
-                CSV,config);
+    private Button checkExportFactualData;
+    private Button checkExportUnpublishedFactualData;
+
+    private Combo orderSelectionCombo;
+
+    private Text text_familyString;
+
+    private Text text_baseUrl;
+
+    protected ExportToFileDestinationWizardPage(String pageName, String type, String title, String description,
+            String extension, ExportConfiguratorBase<?, ?, ?> configurator) {
+        super(pageName);
+        this.configurator = configurator;
+        this.type = type;
+        switch (type) {
+        case CSV_EXPORT:
+            csvExport = true;
+            break;
+        case CSV_NAME_EXPORT:
+            csvNameExport = true;
+            break;
+        case CDM_LIGHT_EXPORT:
+            cdmLightExport = true;
+            break;
+        case COL_DP_EXPORT:
+            colDPExport = true;
+            break;
+        case CSV_PRINT_EXPORT:
+            csvPrintExport = true;
+            break;
+        case DWCA_EXPORT:
+            dwcaExport = true;
+            break;
+        case WFO_BACKBONE_EXPORT:
+            wfoBackboneExport = true;
+            break;
+        default:
+            throw new RuntimeException("Export type not yet handeled: " + type);
+        }
+        this.extension = extension;
+        this.setTitle(title);
+        this.setDescription(description);
     }
 
-    public static ExportToFileDestinationWizardPage Csv(CsvDemoExportConfigurator config) {
+    public static ExportToFileDestinationWizardPage Jaxb(JaxbExportConfigurator configurator) {
+        return new ExportToFileDestinationWizardPage(JAXB_EXPORT, "jaxb", "JAXB Export",
+                "Exports the content of the currently selected database into the cdm jaxb format.", XML, configurator);
+    }
+
+    public static ExportToFileDestinationWizardPage Tcs(TcsXmlExportConfigurator config) {
+        return new ExportToFileDestinationWizardPage(TCS_EXPORT, "tcs", "Tcs Export",
+                "Export the content of the currently selected database into TCS format.", XML, config);
+    }
 
-        return new ExportToFileDestinationWizardPage(
-                CSV_EXPORT,
-                CSV_EXPORT,
-                "CSV Export",
-                "Export the content of the currently selected database into Comma Separated Value format.",
+    public static ExportToFileDestinationWizardPage Sdd(SDDExportConfigurator config) {
+        return new ExportToFileDestinationWizardPage(SDD_EXPORT, "sdd", "Sdd Export",
+                "Export the content of the currently selected database into SDD format.", XML, config);
+    }
+
+    public static ExportToFileDestinationWizardPage Dwca(DwcaTaxExportConfigurator config) {
+        return new ExportToFileDestinationWizardPage(DWCA_EXPORT, DWCA_EXPORT, "DwC-Archive Export",
+                "Export the content of the currently selected database into Darwin Core Archive format.", ZIP, config);
+    }
+    
+    public static ExportToFileDestinationWizardPage WFO(WfoBackboneExportConfigurator config) {
+        return new ExportToFileDestinationWizardPage(WFO_BACKBONE_EXPORT, WFO_BACKBONE_EXPORT, "WFO Backbone Export",
+                "Export the content of the currently selected database into WFO Backbone format."
+                , CSV, config);
+    }
+
+    public static ExportToFileDestinationWizardPage CdmLight(CdmLightExportConfigurator config) {
+        return new ExportToFileDestinationWizardPage(CDM_LIGHT_EXPORT, CDM_LIGHT_EXPORT, "CDM Light Export (csv)",
+                "Export the content of the currently selected database into the CDM light (csv) format.", 
                 CSV, config);
     }
 
-    public static ExportToFileDestinationWizardPage CsvNames(CsvNameExportConfigurator config) {
+    public static ExportToFileDestinationWizardPage ColDp(ColDpExportConfigurator config) {
+        return new ExportToFileDestinationWizardPage(COL_DP_EXPORT, COL_DP_EXPORT, "Col DP Export (zip)",
+                "Export the content of the currently selected database into the Catalogue of Life Data Package (Col DP) format.", 
+                ZIP, config);
+    }
 
-        return new ExportToFileDestinationWizardPage(
-                CSV_NAME_EXPORT,
-                CSV_NAME_EXPORT,
-                "CSV Name Export",
-                "Export the names of the currently selected database into Semicolon Separated Value format.",
+    public static ExportToFileDestinationWizardPage Csv(CsvDemoExportConfigurator config) {
+        return new ExportToFileDestinationWizardPage(CSV_EXPORT, CSV_EXPORT, "CSV Export",
+                "Export the content of the currently selected database into Comma Separated Value format.", 
                 CSV, config);
     }
 
-    public static ExportToFileDestinationWizardPage CsvPrint(CsvNameExportConfigurator config) {
+    public static ExportToFileDestinationWizardPage CsvNames(CsvNameExportConfigurator config) {
+        return new ExportToFileDestinationWizardPage(CSV_NAME_EXPORT, CSV_NAME_EXPORT, "CSV Name Export",
+                "Export the names of the currently selected database into Semicolon Separated Value format.", 
+                CSV, config);
+    }
 
-        return new ExportToFileDestinationWizardPage(
-                CSV_PRINT_EXPORT,
-                CSV_NAME_EXPORT,
-                "CSV Print Export",
-                "Export the content of the currently selected database into Semicolon Separated Value format.",
+    public static ExportToFileDestinationWizardPage CsvPrint(CsvNameExportConfigurator config) {
+        return new ExportToFileDestinationWizardPage(CSV_PRINT_EXPORT, CSV_NAME_EXPORT, "CSV Print Export",
+                "Export the content of the currently selected database into Semicolon Separated Value format.", 
                 CSV, config);
     }
 
-       /** {@inheritDoc} */
-       @Override
+    @Override
     public void createControl(Composite parent) {
 
-               setPageComplete(false);
+        setPageComplete(false);
 
-               Composite composite = new Composite(parent, SWT.NONE);
-               GridLayout gridLayout = new GridLayout();
+        Composite composite = new Composite(parent, SWT.NONE);
+        GridLayout gridLayout = new GridLayout();
 
-               gridLayout.numColumns = 2;
-               TaxonNode node = null;
+        gridLayout.numColumns = 2;
+        TaxonNode node = null;
 
-               composite.setLayout(gridLayout);
-               if (outputModelExport || dwcaExport){
-            checkExportUnpublished = new Button(composite,  SWT.CHECK);
+        composite.setLayout(gridLayout);
+        if (cdmLightExport || dwcaExport || colDPExport) {
+            checkExportUnpublished = new Button(composite, SWT.CHECK);
             checkExportUnpublished.setText("Export unpublished taxa");
+            Label emptyLabel = new Label(composite, SWT.NONE);
+            checkExportFactualData = new Button(composite, SWT.CHECK);
+            checkExportFactualData.setText("Export factual data");
+            checkExportFactualData.setSelection(true);
+            checkExportFactualData.addListener(SWT.Selection, e -> {
+                Button b = (Button) e.widget;
+                GridData data = (GridData) checkExportUnpublishedFactualData.getLayoutData();
+                data.exclude = b.getSelection();
+                checkExportUnpublishedFactualData.setEnabled(data.exclude);
+            });
+            if (cdmLightExport || colDPExport) {
+                emptyLabel = new Label(composite, SWT.NONE);
+
+                checkExportUnpublishedFactualData = new Button(composite, SWT.CHECK);
+                checkExportUnpublishedFactualData.setText("Export unpublished factual data");
+                checkExportUnpublishedFactualData.setSelection(false);
+                GridData gridData = new GridData();
+                gridData.horizontalIndent = 20;
+                checkExportUnpublishedFactualData.setLayoutData(gridData);
+            }
+
             @SuppressWarnings("unused")
             Label nope = new Label(composite, SWT.NONE);
 
             Label separator = new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
-            GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-            gridData.horizontalSpan = 2;
-            separator.setLayoutData(gridData);
+            GridData gridDataSep = new GridData(GridData.FILL_HORIZONTAL);
+            gridDataSep.horizontalSpan = 2;
+            separator.setLayoutData(gridDataSep);
         }
-               if(classifications == null){
-                       classifications = CdmStore.getService(IClassificationService.class).list(null, null, null, null, null);
-                       Collections.sort(classifications, new Comparator<Classification>() {
-
-                @Override
-                public int compare(Classification o1, Classification o2) {
-                    if (o1.equals(o2)){
-                        return 0;
-                    }
-                    int result = o1.getTitleCache().compareTo(o2.getTitleCache());
-                    if (result == 0){
-                        return o1.getUuid().compareTo(o2.getUuid());
-                    }
-                    return result;
+        if (classifications == null && !wfoBackboneExport) {
+            classifications = CdmStore.getService(IClassificationService.class).list(null, null, null, null, null);
+            Collections.sort(classifications, (o1, o2) -> {
+                if (o1.equals(o2)) {
+                    return 0;
                 }
+                int result = o1.getTitleCache().compareTo(o2.getTitleCache());
+                if (result == 0) {
+                    return o1.getUuid().compareTo(o2.getUuid());
+                }
+                return result;
             });
-                       if (!configurator.getTaxonNodeFilter().getClassificationFilter().isEmpty()){
-                               selectedClassification = CdmStore.getService(IClassificationService.class).load(configurator.getTaxonNodeFilter().getClassificationFilter().get(0).getUuid());
-                       }else{
-
-                               selectedClassification = classifications.iterator().next();
-                       }
-               }
+            if (!configurator.getTaxonNodeFilter().getClassificationFilter().isEmpty()) {
+                selectedClassification = CdmStore.getService(IClassificationService.class)
+                        .load(configurator.getTaxonNodeFilter().getClassificationFilter().get(0).getUuid());
+            } else {
 
+                selectedClassification = classifications.iterator().next();
+            }
+        }
 
-               if(csvExport || csvPrintExport || outputModelExport|| csvNameExport || dwcaExport){
+        if (csvExport || csvPrintExport || cdmLightExport || csvNameExport || dwcaExport || colDPExport || wfoBackboneExport) {
 
-//                 Label comboBoxLabel = new Label(composite, SWT.NONE);
-//                 comboBoxLabel.setText("Classification");
-                       Composite selectNodeOrClassification = new Composite(composite, SWT.NONE);
-                       GridLayout grid = new GridLayout();
+            // Label comboBoxLabel = new Label(composite, SWT.NONE);
+            // comboBoxLabel.setText("Classification");
+            Composite selectNodeOrClassification = new Composite(composite, SWT.NONE);
+            GridLayout grid = new GridLayout();
             grid.numColumns = 1;
+            GridData gridDataNode = new  GridData(SWT.FILL, SWT.FILL, true, false);
+            gridDataNode.horizontalSpan = 2;
+
             selectNodeOrClassification.setLayout(grid);
-                       if ((outputModelExport || dwcaExport)&& !configurator.getTaxonNodeFilter().getSubtreeFilter().isEmpty()){
-                               checkUseSelectedtaxonNode= new Button(selectNodeOrClassification,  SWT.RADIO);
-                               String taxonStr = "";
-                               int count = configurator.getTaxonNodeFilter().getSubtreeFilter().size();
-                               for (LogicFilter<TaxonNode> filter: configurator.getTaxonNodeFilter().getSubtreeFilter()){
-                                       node = CdmApplicationState.getCurrentAppConfig().getTaxonNodeService().load(filter.getUuid());
-                                       count--;
-                                       if (node.hasTaxon()){
-                                               taxonStr += node.getTaxon().getName().getTitleCache();
-                                               if (count>0){
-                                                       taxonStr += ", ";
-                                               }
-                                       }
-                               }
-
-                               checkUseSelectedtaxonNode.setText("Export selected subtree(s) ("+  taxonStr+")");
-                               checkUseSelectedtaxonNode.addListener(SWT.Selection, new Listener() {
-                                       @Override
-                                       public void handleEvent(Event e) {
-                                               Button b = (Button) e.widget;
-                               GridData data = (GridData)  classificationSelectionCombo.getLayoutData();
-                               data.exclude = b.getSelection();
-                               classificationSelectionCombo.setEnabled(!data.exclude);
-
-                               }
-                               });
-                                 checkUseSelectedtaxonNode.setSelection(true);
-                       }
-                       if(outputModelExport || dwcaExport){
-                                 if (dwcaExport){
-                                         checkUseAllClassification= new Button(selectNodeOrClassification,  SWT.RADIO);
-                                         checkUseAllClassification.setText("Export all classifications");
-                                         checkUseAllClassification.addListener(SWT.Selection, new Listener() {
-                                      @Override
-                                      public void handleEvent(Event e) {
-                                          Button b = (Button) e.widget;
-                                              GridData data = (GridData)  classificationSelectionCombo.getLayoutData();
-                                              data.exclude = b.getSelection();
-                                              classificationSelectionCombo.setEnabled(!data.exclude);
-
-                                      }
-                                               });
-                                 }
-                                 checkUseSelectedClassification= new Button(selectNodeOrClassification,  SWT.RADIO);
-                                 checkUseSelectedClassification.setText("Export selected classification");
-                                 checkUseSelectedClassification.addListener(SWT.Selection, new Listener() {
-                              @Override
-                              public void handleEvent(Event e) {
-                                  Button b = (Button) e.widget;
-                                  GridData data = (GridData)  classificationSelectionCombo.getLayoutData();
-                                  data.exclude = b.getSelection();
-                                  classificationSelectionCombo.setEnabled(data.exclude);
-
-                                 }
-                                       });
-                       }
-
-                       if (node!= null){
-                               selectedClassification = node.getClassification();
-                       }
-                       createClassificationSelectionCombo(selectNodeOrClassification);
-                       if (outputModelExport){
-                           Label separator = new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
-                           GridData gridDataSep = new GridData();
-                           gridDataSep = new GridData(GridData.BEGINNING, GridData.CENTER, true, true);
-                           gridDataSep.horizontalSpan = 2;
+            selectNodeOrClassification.setLayoutData(gridDataNode);
+            if ((cdmLightExport || dwcaExport || colDPExport || wfoBackboneExport) && !configurator.getTaxonNodeFilter().getSubtreeFilter().isEmpty()) {
+                if (!wfoBackboneExport) {
+                    checkUseSelectedTaxonNode = new Button(selectNodeOrClassification, SWT.RADIO);
+                }
+                String taxonStr = "";
+                int count = configurator.getTaxonNodeFilter().getSubtreeFilter().size();
+                List<TaxonNode> selectedNodes = new ArrayList<>();
+                for (LogicFilter<TaxonNode> filter : configurator.getTaxonNodeFilter().getSubtreeFilter()) {
+                    node = CdmApplicationState.getCurrentAppConfig().getTaxonNodeService().load(filter.getUuid());
+                    selectedNodes.add(node);
+                    count--;
+                    if (node.hasTaxon()) {
+                        taxonStr += node.getTaxon().getName().getTitleCache();
+                        if (count > 0) {
+                            taxonStr += ", ";
+                        }
+                    }
+                }
+                if (!wfoBackboneExport) {
+                    checkUseSelectedTaxonNode.setText("Export all selected subtree(s) (" + taxonStr + ")");
+                    checkUseSelectedTaxonNode.addListener(SWT.Selection, e -> {
+                        Button b = (Button) e.widget;
+                        GridData data = (GridData) classificationSelectionCombo.getLayoutData();
+                        data.exclude = b.getSelection();
+                        if (classificationSelectionCombo != null) {
+                            classificationSelectionCombo.setEnabled(!data.exclude);
+                        }
+                    });
+                    checkUseSelectedTaxonNode.setSelection(true);
+                }else {
+                    Composite wfoComp = new Composite(selectNodeOrClassification, SWT.NONE);
+                    grid = new GridLayout();
+                    grid.numColumns = 2;
+                    GridData gridDataWfo = new GridData(SWT.FILL, SWT.FILL, true, false);
+                    gridDataWfo.grabExcessHorizontalSpace=true;
+                   // gridDataWfo.horizontalSpan=2;
+                    wfoComp.setLayout(grid);
+                    wfoComp.setLayoutData(gridDataWfo);
+
+                    Label label = new Label(wfoComp, SWT.NONE);
+                    label.setText("Export all selected subtree(s) (" + taxonStr + ")");
+                    GridData gridData = new GridData();
+                    gridData.horizontalSpan = 3;
+                    gridData.grabExcessHorizontalSpace = true;
+                    label.setLayoutData(gridData);
+
+                    Label familyString = new Label(wfoComp, SWT.NONE);
+                    familyString.setText("Family");
+                    text_familyString = new Text(wfoComp, SWT.BORDER);
+                    text_familyString.setText(generateFamilyName(selectedNodes));
+                    GridData gridFamily = new GridData(SWT.FILL, SWT.FILL, true, false);
+
+                    text_familyString.setLayoutData(gridFamily);
+
+
+                    Label baseUrlString = new Label(wfoComp, SWT.NONE);
+                    baseUrlString.setText("Base url");
+                    text_baseUrl = new Text(wfoComp, SWT.BORDER);
+
+                    GridData gridDataBaseUrl = new GridData(SWT.FILL, SWT.FILL, true, false);
+
+                    text_baseUrl.setLayoutData(gridDataBaseUrl);
+                    text_baseUrl.setToolTipText("The base url without /cdm_dataportal/taxon/{uuid}  e.g. https://portal.cybertaxonomy.org/salvador");
+
+
+
+                }
+            }else if (wfoBackboneExport) {
+
+                Label label = new Label(composite, SWT.NONE);
+                label.setText("WFO Backbone export is only available for subtrees, not for classifications");
+                GridData gridData = new GridData();
+                gridData.horizontalSpan = 2;
+                gridData.grabExcessHorizontalSpace = true;
+                label.setLayoutData(gridData);
+                label.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
+            }
+
+            if (cdmLightExport || dwcaExport || colDPExport ) {
+                if (dwcaExport) {
+                    checkUseAllClassification = new Button(selectNodeOrClassification, SWT.RADIO);
+                    checkUseAllClassification.setText("Export all classifications");
+                    checkUseAllClassification.addListener(SWT.Selection, new Listener() {
+                        @Override
+                        public void handleEvent(Event e) {
+                            Button b = (Button) e.widget;
+                            GridData data = (GridData) classificationSelectionCombo.getLayoutData();
+                            data.exclude = b.getSelection();
+                            classificationSelectionCombo.setEnabled(!data.exclude);
+
+                        }
+                    });
+                }
+                checkUseSelectedClassification = new Button(selectNodeOrClassification, SWT.RADIO);
+                checkUseSelectedClassification.setText("Export selected classification");
+                checkUseSelectedClassification.addListener(SWT.Selection, e -> {
+                    Button b = (Button) e.widget;
+                    GridData data = (GridData) classificationSelectionCombo.getLayoutData();
+                    data.exclude = b.getSelection();
+                    classificationSelectionCombo.setEnabled(data.exclude);
+                });
+            }
+
+            if (node != null && !wfoBackboneExport) {
+                selectedClassification = node.getClassification();
+            }
+            if (!wfoBackboneExport) {
+                createClassificationSelectionCombo(selectNodeOrClassification);
+            }
+            if (cdmLightExport) {
+                Label separator = new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
+                GridData gridDataSep = new GridData();
+                gridDataSep = new GridData(GridData.BEGINNING, GridData.CENTER, true, true);
+                gridDataSep.horizontalSpan = 2;
                 separator.setLayoutData(gridDataSep);
 
                 Composite comp = new Composite(composite, SWT.NONE);
 
                 GridData gridData = new GridData();
-                   gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
-                   gridData.horizontalSpan = 2;
-                   comp.setLayoutData(gridData);
+                gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
+                gridData.horizontalSpan = 2;
+                comp.setLayoutData(gridData);
 
-                   Label label = new Label(comp, SWT.NONE);
+                Label label = new Label(comp, SWT.NONE);
                 label.setText("Sorting of taxa");
 
-                           orderSelectionCombo = new Combo(comp, SWT.BORDER| SWT.READ_ONLY);
+                orderSelectionCombo = new Combo(comp, SWT.BORDER | SWT.READ_ONLY);
 
-                           GridLayoutFactory.fillDefaults().applyTo(comp);
-                   for(NavigatorOrderEnum display: NavigatorOrderEnum.values()){
-                       orderSelectionCombo.add(display.getLabel());
-                   }
-
-                   int index = 0;
-                   if (PreferencesUtil.getStringValue(PreferencePredicate.TaxonNodeOrder.getKey()) != null){
-                       NavigatorOrderEnum orderInNavigator = NavigatorOrderEnum.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.TaxonNodeOrder.getKey()));
+                GridLayoutFactory.fillDefaults().applyTo(comp);
+                for (NavigatorOrderEnum display : NavigatorOrderEnum.values()) {
+                    orderSelectionCombo.add(display.getLabel());
+                }
 
-                       for (String itemLabel : orderSelectionCombo.getItems()){
-                           if (itemLabel.equalsIgnoreCase(orderInNavigator.getLabel())){
-                               orderSelectionCombo.select(index);
-                               setComparatorToConfig();
-                               break;
-                           }
-                           index++;
-                       }
-                   }
+                int index = 0;
+                if (PreferencesUtil.getStringValue(PreferencePredicate.TaxonNodeOrder.getKey()) != null) {
+                    NavigatorOrderEnum orderInNavigator = NavigatorOrderEnum
+                            .valueOf(PreferencesUtil.getStringValue(PreferencePredicate.TaxonNodeOrder.getKey()));
+
+                    for (String itemLabel : orderSelectionCombo.getItems()) {
+                        if (itemLabel.equalsIgnoreCase(orderInNavigator.getLabel())) {
+                            orderSelectionCombo.select(index);
+                            setComparatorToConfig();
+                            break;
+                        }
+                        index++;
+                    }
+                }
 
-                   orderSelectionCombo.addSelectionListener(new SelectionListener() {
+                orderSelectionCombo.addSelectionListener(new SelectionListener() {
 
                     @Override
                     public void widgetSelected(SelectionEvent e) {
@@ -396,184 +465,217 @@ public class ExportToFileDestinationWizardPage extends WizardPage implements Sel
                         // TODO Auto-generated method stub
                     }
                 });
-                       }
-
-                       if (checkUseSelectedtaxonNode != null){
-                               if (checkUseSelectedtaxonNode.getSelection()){
-                                        classificationSelectionCombo.setEnabled(false);
-                               }
-                       }else{
-                           classificationSelectionCombo.setEnabled(true);
-                           classificationSelectionCombo.setLayoutData(new GridData(SWT.FILL, SWT.FILL,
-                      true, false, 2, 1));
-                       }
-                        Label separator = new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
+            }
+
+            if (classificationSelectionCombo != null) {
+                if (checkUseSelectedTaxonNode != null) {
+                    if (checkUseSelectedTaxonNode.getSelection()) {
+                        classificationSelectionCombo.setEnabled(false);
+                    }
+                } else {
+                    classificationSelectionCombo.setEnabled(true);
+                    classificationSelectionCombo.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
+                }
+            }
+            Label separator = new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
             GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
             gridData.horizontalSpan = 2;
             separator.setLayoutData(gridData);
 
-               }
-
-               Label folderLabel = new Label(composite, SWT.NONE);
-               folderLabel.setText("Select Folder for exported files");
-               folderLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL,
-        true, false, 2, 1));
-               folderDialog = new DirectoryDialog(parent.getShell());
-               String exportFolder = PreferencesUtil.getStringValue(EXPORT_FOLDER, true);
-               folderDialog.setFilterPath(exportFolder);
-
-               text_folder = new Text(composite, SWT.BORDER);
-               text_folder.setEditable(false);
-               text_folder.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
-                               false));
-               if (exportFolder != null){
-                       text_folder.setText(exportFolder);
-                       setPageComplete(true);
-               }
-
-               Button button = new Button(composite, SWT.PUSH);
-               button.setText("Browse...");
-
-               button.addSelectionListener(new SelectionAdapter() {
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               super.widgetSelected(e);
-
-                               String path = folderDialog.open();
-                               if (path != null) { // a folder was selected
-                                       text_folder.setText(path);
-                                       PreferencesUtil.setStringValue(EXPORT_FOLDER, path);
-                                       setPageComplete(true);
-                               }
-                       }
-               });
-               if (!outputModelExport){
-
-                        Label fileLabel = new Label(composite, SWT.NONE);
-                       fileLabel.setText("File");
-                       text_exportFileName = new Text(composite, SWT.BORDER);
-                       text_exportFileName.setText(generateFilename());
-                       text_exportFileName.setLayoutData(new GridData(SWT.FILL, SWT.FILL,
-                                       true, false));
-               }
-
-               // make the composite the wizard pages control
-               setControl(composite);
-       }
+        }
+
+        Label folderLabel = new Label(composite, SWT.NONE);
+        folderLabel.setText("Select Folder for exported files");
+        folderLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
+        folderDialog = new DirectoryDialog(parent.getShell());
+        String exportFolder = PreferencesUtil.getStringValue(EXPORT_FOLDER, true);
+        folderDialog.setFilterPath(exportFolder);
+
+        text_folder = new Text(composite, SWT.BORDER);
+        text_folder.setEditable(false);
+        text_folder.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+        if (exportFolder != null) {
+            text_folder.setText(exportFolder);
+            setPageComplete(true);
+        }
+
+        Button button = new Button(composite, SWT.PUSH);
+        button.setText("Browse...");
+
+        button.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                super.widgetSelected(e);
+
+                String path = folderDialog.open();
+                if (path != null) { // a folder was selected
+                    text_folder.setText(path);
+                    PreferencesUtil.setStringValue(EXPORT_FOLDER, path);
+                    setPageComplete(true);
+                }
+            }
+        });
+        if (!cdmLightExport && !wfoBackboneExport) {
+
+            Label fileLabel = new Label(composite, SWT.NONE);
+            fileLabel.setText("Filename");
+            text_exportFileName = new Text(composite, SWT.BORDER);
+            text_exportFileName.setText(generateFilename());
+            text_exportFileName.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
+        }
+
+        // make the composite the wizard pages control
+        setControl(composite);
+    }
+
+    /**
+     * @return
+     */
+    private String generateFamilyName(List<TaxonNode> nodes) {
+        if (nodes.size() == 1){
+            TaxonNode node = nodes.get(0);
+            if (node.getTaxon() != null) {
+                if(node.getTaxon().getName().getRank().getOrderIndex() >= Rank.FAMILY().getOrderIndex()) {
+                    TaxonNode familyNode = node.getAncestorOfRank(Rank.FAMILY());
+                    if (familyNode != null && familyNode.getTaxon() != null) {
+                        return familyNode.getTaxon().getName().getNameCache();
+                    }
+
+                }
+            }
+
+        }
+        return "";
+    }
 
     protected void setComparatorToConfig() {
-        if (orderSelectionCombo.getText().equals(NavigatorOrderEnum.NaturalOrder.getLabel())){
-            ((CdmLightExportConfigurator)configurator).setComparator(new TaxonNodeDtoNaturalComparator());
-        } else if (orderSelectionCombo.getText().equals(NavigatorOrderEnum.AlphabeticalOrder.getLabel())){
-            ((CdmLightExportConfigurator)configurator).setComparator(new TaxonNodeDtoByNameComparator());
-        }else {
-            ((CdmLightExportConfigurator)configurator).setComparator(new TaxonNodeDtoByRankAndNameComparator());
+        if (orderSelectionCombo.getText().equals(NavigatorOrderEnum.NaturalOrder.getLabel())) {
+            ((CdmLightExportConfigurator) configurator).setTaxonNodeComparator(new TaxonNodeDtoNaturalComparator());
+        } else if (orderSelectionCombo.getText().equals(NavigatorOrderEnum.AlphabeticalOrder.getLabel())) {
+            ((CdmLightExportConfigurator) configurator).setTaxonNodeComparator(new TaxonNodeDtoByNameComparator());
+        } else {
+            ((CdmLightExportConfigurator) configurator)
+                    .setTaxonNodeComparator(new TaxonNodeDtoByRankAndNameComparator());
+        }
+    }
+
+    protected String generateFilename() {
+        StringBuffer buffer = new StringBuffer();
+
+        Calendar cal = Calendar.getInstance();
+        SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
+        buffer.append(sdf.format(cal.getTime()));
+
+        buffer.append("-");
+        buffer.append(type + "_");
+
+        String source = ((ICdmRemoteSource) CdmStore.getActiveCdmSource()).toString();
+        source = source.substring(source.indexOf("/") + 1);
+        buffer.append(source);
+
+        buffer.append(".");
+        buffer.append(extension);
+
+        return buffer.toString();
+    }
+
+    public String getExportFileName() {
+        return text_exportFileName.getText();
+    }
+
+    public String getFamilyString() {
+        return text_familyString.getText();
+    }
+
+    public String getFolderText() {
+        return text_folder.getText();
+    }
+
+    public String get_baseUrl() {
+        return text_baseUrl.getText();
+    }
+
+    public Text getFolderComposite() {
+        return text_folder;
+    }
+
+    public boolean isExportUnpublishedData() {
+        return checkExportUnpublished.getSelection();
+    }
+
+    public boolean isExportFactualData() {
+        return checkExportFactualData.getSelection();
+    }
+
+    public boolean isExportUnpublishedFactualData() {
+        return checkExportUnpublishedFactualData.getSelection();
+    }
+
+    private void createClassificationSelectionCombo(Composite parent) {
+
+        GridData gridData = new GridData();
+        gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
+        gridData.horizontalIndent = 5;
+
+        classificationSelectionCombo = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
+        classificationSelectionCombo.setLayoutData(gridData);
+        for (Classification tree : classifications) {
+            classificationSelectionCombo.add(tree.getTitleCache(), classifications.indexOf(tree));
+        }
+
+        classificationSelectionCombo.select(classifications.indexOf(selectedClassification));
+
+        // TODO remember last selection
+        classificationSelectionCombo.addSelectionListener(this);
+
+    }
+
+    public Combo getCombo() {
+        return classificationSelectionCombo;
+    }
+
+    @Override
+    public void widgetSelected(SelectionEvent e) {
+        selectedClassification = classifications.get(classificationSelectionCombo.getSelectionIndex());
+    }
+
+    public Classification getSelectedClassification() {
+        return selectedClassification;
+    }
+
+    @Override
+    public void widgetDefaultSelected(SelectionEvent e) {
+        // not needed here
+    }
+
+    public UUID getSelectedClassificationUUID() {
+        return selectedClassification.getUuid();
+    }
+
+    public boolean getCheckUseSelectedTaxonNode() {
+        if (checkUseSelectedTaxonNode == null) {
+            return false;
+        }
+        return checkUseSelectedTaxonNode.getSelection();
+    }
+
+    public boolean getCheckUseAllClassifications() {
+        if (checkUseAllClassification == null) {
+            return false;
+        }
+        return checkUseAllClassification.getSelection();
+    }
+
+    public Set<UUID> getAllClassificationUuids() {
+        Set<UUID> allClassificationUuids = new HashSet<>();
+        for (Classification classification : this.classifications) {
+            allClassificationUuids.add(classification.getUuid());
         }
+        return allClassificationUuids;
     }
 
-       protected String generateFilename() {
-               StringBuffer buffer = new StringBuffer();
-
-               Calendar cal = Calendar.getInstance();
-               SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
-               buffer.append(sdf.format(cal.getTime()));
-
-               buffer.append("-");
-               buffer.append(type +"_");
-
-               String source = ((ICdmRemoteSource)CdmStore.getActiveCdmSource()).toString();
-               source = source.substring(source.indexOf("/")+1);
-               buffer.append(source);
-
-               buffer.append(".");
-               buffer.append(extension);
-
-               return buffer.toString();
-       }
-
-       public String getExportFileName() {
-               return text_exportFileName.getText();
-       }
-
-       public String getFolderText() {
-               return text_folder.getText();
-       }
-
-       public Text getFolderComposite() {
-               return text_folder;
-       }
-
-       public boolean isExportUnpublishedData(){
-           return checkExportUnpublished.getSelection();
-       }
-
-       private void createClassificationSelectionCombo(Composite parent){
-
-//             Composite classificationSelection = new Composite(parent, SWT.NULL);
-//             classificationSelection.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));
-
-//             GridLayout layout = new GridLayout();
-//             classificationSelection.setLayout(layout);
-               GridData gridData = new GridData();
-               gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
-               gridData.horizontalIndent = 5;
-//             classificationSelection.setLayoutData(gridData);
-
-               classificationSelectionCombo = new Combo(parent, SWT.BORDER| SWT.READ_ONLY);
-               classificationSelectionCombo.setLayoutData(gridData);
-               for(Classification tree : classifications){
-                       classificationSelectionCombo.add(tree.getName().getText(), classifications.indexOf(tree));
-               }
-
-               classificationSelectionCombo.select(classifications.indexOf(selectedClassification));
-
-               // TODO remember last selection
-               classificationSelectionCombo.addSelectionListener(this);
-
-               //return classificationSelection;
-       }
-
-       public Combo getCombo(){
-           return classificationSelectionCombo;
-       }
-
-       @Override
-       public void widgetSelected(SelectionEvent e) {
-               selectedClassification = classifications.get(classificationSelectionCombo.getSelectionIndex());
-       }
-
-       @Override
-       public void widgetDefaultSelected(SelectionEvent e) {
-               //not needed here
-       }
-
-       public UUID getSelectedClassificationUUID() {
-               return selectedClassification.getUuid();
-       }
-
-       public boolean getCheckUseSelectedTaxonNode() {
-               if (checkUseSelectedtaxonNode== null){
-                       return false;
-               }
-               return checkUseSelectedtaxonNode.getSelection();
-       }
-       public boolean getCheckUseAllClassifications() {
-               if (checkUseAllClassification== null){
-                       return false;
-               }
-               return checkUseAllClassification.getSelection();
-       }
-
-       public Set<UUID> getAllClassificationUuids(){
-               Set<UUID> allClassificationUuids = new HashSet<>();
-               for (Classification classification: this.classifications){
-                       allClassificationUuids.add(classification.getUuid());
-               }
-               return allClassificationUuids;
-       }
-
-       @Override
-       public boolean canFlipToNextPage() {
-        return getFolderText() != null;
+    @Override
+    public boolean canFlipToNextPage() {
+        return getFolderText() != null && !(wfoBackboneExport && configurator.getTaxonNodeFilter().getSubtreeFilter().isEmpty());
     }
 }
index f08e478159c0549921a2857de30833d5fdce1945..230e32fdd932bfc774786d5e5195938c4d067cb3 100644 (file)
@@ -17,7 +17,7 @@ import java.util.List;
 import java.util.MissingResourceException;
 import java.util.ResourceBundle;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ImportFromFileAndChooseVocIdWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ImportFromFileAndChooseVocIdWizardPage.java
deleted file mode 100644 (file)
index f0c2ce4..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
-* Copyright (C) 2017 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.io.wizard;
-
-import java.util.List;
-import java.util.UUID;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-
-import eu.etaxonomy.cdm.api.service.IVocabularyService;
-import eu.etaxonomy.cdm.common.CdmUtils;
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;
-import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
-import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author k.luther
- * @date 04.05.2017
- *
- */
-public class ImportFromFileAndChooseVocIdWizardPage extends ImportFromFileDataSourceWizardPage {
-
-    private Combo vocabularyCombo;
-    UUID vocUuid;
-    String[][] labelAndValues;
-    /**
-     * @param title
-     * @param description
-     * @param extensions
-     */
-    protected ImportFromFileAndChooseVocIdWizardPage(String title, String description, String[] extensions) {
-        super(title, description, extensions);
-
-    }
-
-    @Override
-    public void createControl(Composite parent) {
-        super.createControl(parent);
-        Composite composite = (Composite)getControl();
-      //  final Composite composite = new Composite(parent, SWT.NULL);
-        GridData gridData = new GridData(SWT.FILL, SWT.TOP, true, false);
-        composite.setLayoutData(gridData);
-        Label label = new Label(composite, SWT.NONE);
-        label.setText(Messages.ImportFromFileAndChooseVocIdWizardPage_AreaVoc);
-        label.setToolTipText(Messages.ImportFromFileAndChooseVocIdWizardOage_AreaVoc_toolTip);
-        vocabularyCombo = new Combo(composite, SWT.DROP_DOWN);
-        List<TermVocabulary<DefinedTermBase>> vocs = CdmStore.getService(IVocabularyService.class).findByTermType(TermType.NamedArea, null);
-        for(TermVocabulary voc: vocs){
-            vocabularyCombo.add(voc.getLabel());
-        }
-        getLabelAndValues(vocs);
-        vocabularyCombo.select(0);
-        vocabularyCombo.addSelectionListener(new SelectionAdapter(){
-
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                String name = vocabularyCombo.getText();
-
-                for (String[] labelAndValue: labelAndValues){
-                    if (labelAndValue[0].equals(name)){
-                        String uuidString = labelAndValue[1];
-                        vocUuid = UUID.fromString(uuidString);
-                        setPageComplete(isPageComplete());
-                    }
-                }
-
-            }
-
-        });
-        //setControl(composite);
-    }
-
-    public UUID getVocUuid() {
-        return vocUuid;
-    }
-
-    public void setVocUuid(UUID vocUuid) {
-        this.vocUuid = vocUuid;
-    }
-
-    /**
-     * @return
-     */
-    private String[][] getLabelAndValues(List<TermVocabulary<DefinedTermBase>> vocs) {
-
-        labelAndValues = new String[vocs.size()][2];
-        for (int i = 0; i < vocs.size(); i++) {
-            labelAndValues[i][0] = vocs.get(i).getLabel();
-            labelAndValues[i][1] = vocs.get(i).getUuid().toString();
-        }
-        return labelAndValues;
-    }
-
-    @Override
-    public boolean isPageComplete() {
-        boolean result = CdmUtils.isNotBlank(text_source.getText()) && vocUuid != null;
-
-        return result;
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ImportFromFileDataSourceWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ImportFromFileDataSourceWizardPage.java
deleted file mode 100644 (file)
index 8f26e25..0000000
+++ /dev/null
@@ -1,131 +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.io.wizard;
-
-import java.io.File;
-import java.net.URI;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-import eu.etaxonomy.cdm.common.CdmUtils;
-
-/**
- *
- * @author n.hoffmann
- * @created 04.08.2009
- * @version 1.0
- */
-public class ImportFromFileDataSourceWizardPage extends AbcdSourceSelectionPage {
-
-       /** Constant <code>PAGE_NAME="CdmXmlDataSourceWizardPage"</code> */
-       public static final String PAGE_NAME = "CdmXmlDataSourceWizardPage";
-
-       private String[] extensions = {"*.xml"};
-
-       private FileDialog fileDialog;
-       private Text textReferenceString;
-
-       protected ImportFromFileDataSourceWizardPage(String title, String description, String[] extensions) {
-               super(PAGE_NAME);
-
-               setTitle(title);
-
-               setDescription(description);
-
-               this.extensions = extensions;
-       }
-
-       protected static ImportFromFileDataSourceWizardPage XML(){
-               return new ImportFromFileDataSourceWizardPage("Xml File", "Select XML file.", new String[]{"*.xml","*.*"});
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void createControl(Composite parent) {
-               final Composite composite = new Composite(parent, SWT.NULL);
-
-               setPageComplete(false);
-
-               GridLayout gridLayout = new GridLayout();
-               gridLayout.numColumns = 3;
-               composite.setLayout(gridLayout);
-
-               Label folderLabel = new Label(composite, SWT.NONE);
-               folderLabel.setText("File");
-
-               fileDialog = new FileDialog(parent.getShell());
-
-               fileDialog.setFilterExtensions(extensions);
-
-               text_source = new Text(composite, SWT.BORDER);
-               text_source.setEditable(false);
-               text_source.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
-
-               Button button = new Button(composite, SWT.PUSH);
-               button.setText("Browse...");
-
-               button.addSelectionListener(new SelectionAdapter(){
-
-                       @Override
-                       public void widgetSelected(SelectionEvent e) {
-                               String path = fileDialog.open();
-                               if(path!=null){
-                                   text_source.setText(path);
-                                   setPageComplete(isPageComplete());
-                               }
-                       }
-
-               });
-
-               Label labelRef = new Label(composite, SWT.NONE);
-        labelRef.setText("Default import souce reference");
-        labelRef.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1));
-        textReferenceString = new Text(composite, SWT.NONE);
-        textReferenceString.setEnabled(true);
-        GridData gd_textReferenceString = new GridData(SWT.LEFT, SWT.TOP, true, true, 1, 1);
-        gd_textReferenceString.widthHint = 229;
-        textReferenceString.setLayoutData(gd_textReferenceString);
-               setControl(composite);
-       }
-
-       public File getFile() {
-               return new File(text_source.getText());
-       }
-       
-       public Text getTextReferenceString() {
-               return textReferenceString;
-       }
-
-       public void setTextReferenceString(Text textReferenceString) {
-               this.textReferenceString = textReferenceString;
-       }
-
-
-       @Override
-    public URI getUri() {
-               return getFile().toURI();
-       }
-
-       @Override
-       public boolean isPageComplete() {
-               return CdmUtils.isNotBlank(text_source.getText());
-       }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/JaxbExportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/JaxbExportWizard.java
deleted file mode 100644 (file)
index 14a89a3..0000000
+++ /dev/null
@@ -1,92 +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.io.wizard;
-
-import java.io.File;
-import java.net.URI;
-
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.progress.IProgressConstants;
-
-import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * <p>JaxbExportWizard class.</p>
- *
- * @author n.hoffmann
- * @created 15.06.2009
- * @version 1.0
- */
-public class JaxbExportWizard extends AbstractExportWizard<JaxbExportConfigurator> {
-
-       private ExportToFileDestinationWizardPage page;
-
-       private JaxbExportConfigurator configurator;
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
-        */
-       /** {@inheritDoc} */
-       @Override
-    public void init(IWorkbench workbench, IStructuredSelection selection) {
-               this.setWindowTitle("JAXB Export");
-               this.configurator = CdmStore.getExportManager().JaxbConfigurator();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public boolean performFinish() {
-               boolean performFinish = false;
-
-               File exportFile = new File(page.getFolderText() + File.separator + page.getExportFileName());
-               
-               configurator.setDestination(exportFile);
-               
-           // create job
-           Job job = CdmStore.getExportManager().createIOServiceJob(configurator, exportFile);
-           // configure the job
-           job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
-           job.setUser(true);
-           // schedule job
-           job.schedule();
-               
-               performFinish = true;
-               return performFinish;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#addPages()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void addPages() {
-               super.addPages();
-
-               page = ExportToFileDestinationWizardPage.Jaxb(configurator);
-               addPage(page);
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.io.AbstractExportWizard#getConfigurator()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public JaxbExportConfigurator getConfigurator() {
-               return configurator;
-       }
-
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/JaxbImportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/JaxbImportWizard.java
deleted file mode 100644 (file)
index e1fa87d..0000000
+++ /dev/null
@@ -1,79 +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.io.wizard;
-
-import java.net.URI;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-
-import eu.etaxonomy.cdm.database.DbSchemaValidation;
-import eu.etaxonomy.cdm.io.jaxb.JaxbImportConfigurator;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * <p>JaxbImportWizard class.</p>
- *
- * @author n.hoffmann
- * @created 15.06.2009
- * @version 1.0
- */
-public class JaxbImportWizard extends AbstractImportWizard<JaxbImportConfigurator> {
-
-       private JaxbImportConfigurator configurator;
-       
-       private ImportFromFileDataSourceWizardPage dataSourcePage;
-       
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#getConfigurator()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public JaxbImportConfigurator getConfigurator() {
-               return configurator;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public boolean performFinish() {
-               URI source = dataSourcePage.getUri();
-               configurator.setSource(source);
-               configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-               
-               CdmStore.getImportManager().run(configurator);
-               
-               return true;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
-        */
-       /** {@inheritDoc} */
-       public void init(IWorkbench workbench, IStructuredSelection selection) {
-               super.init(workbench, selection);
-               configurator =  CdmStore.getImportManager().JaxbConfigurator();
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#addPages()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void addPages() {
-               super.addPages();
-               
-               dataSourcePage = new ImportFromFileDataSourceWizardPage("Choose File", 
-                               "Please choose an XML file in the cdm JAXB format.", new String[]{"*.xml"});
-               addPage(dataSourcePage);
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/NomenclaturalCodeWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/NomenclaturalCodeWizardPage.java
deleted file mode 100644 (file)
index 7c584ab..0000000
+++ /dev/null
@@ -1,98 +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.io.wizard;
-
-import org.apache.log4j.Logger;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-
-import eu.etaxonomy.cdm.io.common.IImportConfigurator;
-import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
-import eu.etaxonomy.taxeditor.model.NomenclaturalCodeHelper;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-
-/**
- * <p>NomenclaturalCodeWizardPage class.</p>
- *
- * @author p.ciardelli
- * @created 11.09.2009
- * @version 1.0
- */
-public class NomenclaturalCodeWizardPage extends WizardPage {
-
-    private static final Logger logger = Logger.getLogger(NomenclaturalCodeWizardPage.class);
-
-    private IImportConfigurator configurator;
-
-       /**
-        * <p>Constructor for NomenclaturalCodeWizardPage.</p>
-        */
-       public NomenclaturalCodeWizardPage() {
-               super("Choose nomenclatural code");
-
-               this.setTitle("Choose nomenclatural code");
-
-               this.setDescription("Choose which code to use for imported names.");
-       }
-
-       /**
-        * <p>Constructor for NomenclaturalCodeWizardPage.</p>
-        *
-        * @param configurator a {@link eu.etaxonomy.cdm.io.common.IImportConfigurator} object.
-        */
-       public NomenclaturalCodeWizardPage(IImportConfigurator configurator) {
-               this();
-               this.configurator = configurator;
-       }
-
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-        */
-       /** {@inheritDoc} */
-       @Override
-    public void createControl(Composite parent) {
-               Composite container = new Composite(parent, SWT.NULL);
-               container.setLayout(new FillLayout());
-
-               final Group group = new Group(container, SWT.NONE);
-               group.setLayout(new GridLayout());
-
-               NomenclaturalCode preferredCode = PreferencesUtil.getPreferredNomenclaturalCode();
-
-               // set preferred code as default
-               configurator.setNomenclaturalCode(preferredCode);
-
-               for (final NomenclaturalCode code : NomenclaturalCodeHelper.getSupportedCodes()) {
-                       Button button = new Button(group, SWT.RADIO);
-                       button.setText(NomenclaturalCodeHelper.getDescription(code));
-                       button.setData(code);
-                       button.setSelection(preferredCode.equals(code));
-                       button.addSelectionListener(new SelectionAdapter() {
-                               @Override
-                public void widgetSelected(SelectionEvent e) {
-                                       configurator.setNomenclaturalCode((NomenclaturalCode) e.widget.getData());
-                               }
-                       });
-               }
-
-
-               setControl(container);
-       }
-
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/RISImportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/RISImportWizard.java
deleted file mode 100644 (file)
index c7f667d..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-/**
-* Copyright (C) 2017 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.io.wizard;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-
-import eu.etaxonomy.cdm.database.DbSchemaValidation;
-import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
-import eu.etaxonomy.cdm.io.reference.ris.in.RisReferenceImportConfigurator;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author k.luther
- * @date 12.05.2017
- *
- */
-public class RISImportWizard extends AbstractImportWizard<RisReferenceImportConfigurator>{
-    private RisReferenceImportConfigurator configurator;
-
-    private ImportFromFileDataSourceWizardPage dataSourcePage;
-
-    private static final Logger logger = Logger.getLogger(ExcelDistributionUpdateWizard.class);
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#getConfigurator()
-     */
-    /** {@inheritDoc} */
-    @Override
-    public RisReferenceImportConfigurator getConfigurator() {
-        return configurator;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.wizard.Wizard#performFinish()
-     */
-    /** {@inheritDoc} */
-    @Override
-    public boolean performFinish() {
-        URI source = dataSourcePage.getUri();
-       // configurator.setSource(source);
-//        try {
-//            configurator = RisReferenceImportConfigurator.NewInstance(source, null);
-//        } catch (MalformedURLException e1) {
-//            // TODO Auto-generated catch block
-//            e1.printStackTrace();
-//        } catch (IOException e1) {
-//            // TODO Auto-generated catch block
-//            e1.printStackTrace();
-//        }
-        configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-        File file = new File(source);
-       FileInputStream fis;
-
-        try {
-            fis = new FileInputStream(file);
-            byte[] data;
-            data = IOUtils.toByteArray(fis);
-            configurator.setStream(data);
-//TODO: workaround, needs to be changed to source as byte array
-            Job job = CdmStore.getImportManager().createIOServiceJob(configurator, data, SOURCE_TYPE.INPUTSTREAM);
-            CdmStore.getImportManager().run(job);
-        } catch (FileNotFoundException e) {
-            logger.error("Error while reading file" + source.toString());
-        } catch (IOException e){
-
-        }
-
-        //CdmStore.getImportManager().runMoniteredOperation(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
-
-
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
-     */
-    /** {@inheritDoc} */
-    @Override
-    public void init(IWorkbench workbench, IStructuredSelection selection) {
-        super.init(workbench, selection);
-        configurator = RisReferenceImportConfigurator.NewInstance();
-
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#addPages()
-     */
-    /** {@inheritDoc} */
-    @Override
-    public void addPages() {
-        //addConfiguratorPage();
-        addDataSourcePage();
-
-
-    }
-    @Override
-    protected void addConfiguratorPage(){
-        List<String> ignoreMethods = new ArrayList<>();
-        ignoreMethods.add("setIgnoreNull");
-        ignoreMethods.add("setInteractWithUser");
-        ignoreMethods.add("setUseClassification");
-        pageConfiguration = GenericConfiguratorWizardPage.Import(CONFIGURATION_PAGE, getConfigurator(), ignoreMethods, "Ris Import");
-        addPage(pageConfiguration);
-    }
-
-    private void addDataSourcePage(){
-        dataSourcePage = new ImportFromFileDataSourceWizardPage("Choose Ris File",
-                "Please choose an xls file in the Distribution Update format.", new String[]{"*.txt"});
-        addPage(dataSourcePage);
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/SddExportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/SddExportWizard.java
deleted file mode 100644 (file)
index 1edc3d8..0000000
+++ /dev/null
@@ -1,84 +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.io.wizard;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.progress.IProgressConstants;
-
-import eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * <p>SddExportWizard class.</p>
- *
- * @author n.hoffmann
- * @created Jun 16, 2010
- * @version 1.0
- */
-public class SddExportWizard extends AbstractExportWizard<SDDExportConfigurator> {
-
-       private ExportToFileDestinationWizardPage page;
-
-       private SDDExportConfigurator configurator;
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.io.wizard.AbstractExportWizard#getConfigurator()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public SDDExportConfigurator getConfigurator() {
-               return configurator;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public boolean performFinish() {
-           File file = new File(page.getFolderText() + File.separator + page.getExportFileName());
-        // create job
-        Job job = CdmStore.getExportManager().createIOServiceJob(configurator, file);
-        // configure the job
-        job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
-        job.setUser(true);
-        // schedule job
-        job.schedule();
-           
-           return true;
-       }
-
-       /*
-        * (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.io.wizard.AbstractExportWizard#addPages()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void addPages() {
-               super.addPages();
-
-               page = ExportToFileDestinationWizardPage.Sdd(configurator);
-               addPage(page);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
-        */
-       /** {@inheritDoc} */
-       @Override
-    public void init(IWorkbench workbench, IStructuredSelection selection) {
-               this.setWindowTitle("SDD Export");
-               this.configurator = CdmStore.getExportManager().SddConfigurator();
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/SddImportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/SddImportWizard.java
deleted file mode 100644 (file)
index 5159c20..0000000
+++ /dev/null
@@ -1,84 +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.io.wizard;
-
-import java.io.File;
-import java.net.URI;
-
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-
-import eu.etaxonomy.cdm.database.DbSchemaValidation;
-import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
-import eu.etaxonomy.cdm.io.sdd.in.SDDImportConfigurator;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * <p>SddImportWizard class.</p>
- *
- * @author n.hoffmann
- * @created Jun 16, 2010
- * @version 1.0
- */
-public class SddImportWizard extends AbstractImportWizard<SDDImportConfigurator> {
-
-       private SDDImportConfigurator configurator;
-
-       private ImportFromFileDataSourceWizardPage dataSourcePage;
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#getConfigurator()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public SDDImportConfigurator getConfigurator() {
-               return configurator;
-       }
-
-       /*
-        * (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#addPage(org.eclipse.jface.wizard.IWizardPage)
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void addPages() {
-               super.addPages();
-
-               dataSourcePage = new ImportFromFileDataSourceWizardPage("Choose File",
-                               "Please choose an XML file in the SDD format.", new String[]{"*.xml", "*.sdd"});
-               addPage(dataSourcePage);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public boolean performFinish() {
-               URI source = dataSourcePage.getUri();
-               configurator.setSource(source);
-               configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-               Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
-               CdmStore.getImportManager().run(job);
-               
-               return true;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
-        */
-       /** {@inheritDoc} */
-       @Override
-    public void init(IWorkbench workbench, IStructuredSelection selection) {
-               super.init(workbench, selection);
-               configurator =  CdmStore.getImportManager().SddConfigurator();
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/SpecimenCdmExcelImportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/SpecimenCdmExcelImportWizard.java
deleted file mode 100644 (file)
index 3b8a6e7..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- *
- */
-package eu.etaxonomy.taxeditor.io.wizard;
-
-import java.net.URI;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-
-import eu.etaxonomy.cdm.database.DbSchemaValidation;
-import eu.etaxonomy.cdm.io.specimen.excel.in.SpecimenCdmExcelImportConfigurator;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author n.hoffmann
- *
- */
-public class SpecimenCdmExcelImportWizard extends AbstractImportWizard<SpecimenCdmExcelImportConfigurator> {
-
-       private SpecimenCdmExcelImportConfigurator configurator;
-
-       private ImportFromFileDataSourceWizardPage dataSourcePage;
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#getConfigurator()
-        */
-       @Override
-       public SpecimenCdmExcelImportConfigurator getConfigurator() {
-               return configurator;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
-        */
-       /** {@inheritDoc} */
-       @Override
-    public void init(IWorkbench workbench, IStructuredSelection selection) {
-               super.init(workbench, selection);
-               configurator =  CdmStore.getImportManager().SpecimenCdmExcelImportConfigurator();
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()
-        */
-       @Override
-       public boolean performFinish() {
-               URI source = dataSourcePage.getUri();
-               configurator.setSource(source);
-               configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-
-               CdmStore.getImportManager().run(configurator);
-
-               return true;
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.io.wizard.AbstractImportWizard#addPages()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void addPages() {
-               super.addPages();
-
-               dataSourcePage = new ImportFromFileDataSourceWizardPage("Choose Specimen CDM Excel",
-                               "Please choose an xls file in the SpecimenCdmExcel format.", new String[]{"*.xlsx", "*.xls", "*.*"});
-               addPage(dataSourcePage);
-       }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/TcsExportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/TcsExportWizard.java
deleted file mode 100644 (file)
index ee9aba9..0000000
+++ /dev/null
@@ -1,88 +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.io.wizard;
-
-import java.io.File;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-
-import eu.etaxonomy.cdm.io.tcsxml.out.TcsXmlExportConfigurator;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * <p>
- * TcsExportWizard class.
- * </p>
- * 
- * @author n.hoffmann
- * @created 15.06.2009
- * @version 1.0
- */
-public class TcsExportWizard extends
-               AbstractExportWizard<TcsXmlExportConfigurator> {
-       private TcsXmlExportConfigurator configurator;
-       private ExportToFileDestinationWizardPage page;
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public boolean performFinish() {
-               String urlString = page.getFolderText() + File.separator
-                               + page.getExportFileName();
-
-               configurator.setDestination(new File(urlString));
-
-               CdmStore.getExportManager().run(configurator);
-
-               return true;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench,
-        * org.eclipse.jface.viewers.IStructuredSelection)
-        */
-       /** {@inheritDoc} */
-       public void init(IWorkbench workbench, IStructuredSelection selection) {
-               configurator = TcsXmlExportConfigurator.NewInstance(null, null);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see eu.etaxonomy.taxeditor.io.AbstractExportWizard#getConfigurator()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public TcsXmlExportConfigurator getConfigurator() {
-               return configurator;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see eu.etaxonomy.taxeditor.io.AbstractExportWizard#addPages()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void addPages() {
-               super.addPages();
-
-               page = ExportToFileDestinationWizardPage.Tcs(configurator);
-               addPage(page);
-       }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/TcsImportWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/TcsImportWizard.java
deleted file mode 100644 (file)
index 5e38e04..0000000
+++ /dev/null
@@ -1,83 +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.io.wizard;
-
-import java.io.File;
-import java.net.URI;
-
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-
-import eu.etaxonomy.cdm.database.DbSchemaValidation;
-import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
-import eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * <p>TcsImportWizard class.</p>
- *
- * @author n.hoffmann
- * @created 15.06.2009
- * @version 1.0
- */
-public class TcsImportWizard extends AbstractImportWizard<TcsXmlImportConfigurator> {
-
-       private TcsXmlImportConfigurator configurator;
-
-       private ImportFromFileDataSourceWizardPage dataSourcePage;
-
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public boolean performFinish() {
-           URI source = dataSourcePage.getUri();
-           configurator.setSource(source);
-           configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-
-           Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
-           CdmStore.getImportManager().run(job);
-          
-           return true;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
-        */
-       /** {@inheritDoc} */
-       @Override
-    public void init(IWorkbench workbench, IStructuredSelection selection) {
-               super.init(workbench, selection);
-               configurator = CdmStore.getImportManager().TcsConfigurator();
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.io.AbstractImportWizard#getConfigurator()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public TcsXmlImportConfigurator getConfigurator() {
-               return configurator;
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.io.AbstractImportWizard#addPages()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void addPages() {
-               super.addPages();
-
-               dataSourcePage = ImportFromFileDataSourceWizardPage.XML();
-               addPage(dataSourcePage);
-       }
-}
index 1c42bb89b4a5419aa371387e412ea90d9310543d..54a1a2dd64db55493ce8e5c712a6b21e9c5bf2e8 100644 (file)
@@ -13,7 +13,6 @@ import org.eclipse.osgi.util.NLS;
 /**
  * @author pplitzner
  * @date Apr 14, 2015
- *
  */
 public class Messages extends NLS {
 
@@ -31,18 +30,13 @@ public class Messages extends NLS {
 
     public static String LanguageMenuPreferences_warning;
 
-
     public static String LanguageRepresentationPreferencePage_global;
     public static String LanguageRepresentationPreferencePage_enable;
-
-
+    public static String LanguageRepresentationPreferencePage_not_available;
     public static String ListComponent_ADD_PROVIDER;
-
-
     public static String ListComponent_NO_PROVIDER_AVAILABLE;
-
-
     public static String ListComponent_REMOVE_PROVIDER;
+
     public static String DatabaseRepairPage_chooseParameter;
     public static String DatabaseRepairPage_updateTaxonNodes;
     public static String DatabaseRepairPage_toolTip_taxonNode;
@@ -71,13 +65,10 @@ public class Messages extends NLS {
     public static String LoginDialog_USER_NAME;
     public static String OpenCommonNameAreaWizardAdminHandler_COMMON_NAMES;
 
-
     public static String OpenDistributionEditorWizardHandlerAdminE4_DISTRIBUTION;
 
-
     public static String OpenDistributionEditorWizardHandlerE4_DISTRIBUTION;
 
-
     public static String OrderPreferences_Restore;
     public static String OrderPreferences_Sorting;
     public static String OrderPreferencePage_NewNavigatorWindowRequired;
@@ -96,13 +87,16 @@ public class Messages extends NLS {
     public static String CdmDataSourceViewPart_9;
     public static String CdmViewerContextMenu_OPEN;
     public static String CdmViewerContextMenu_OPEN_IN;
+
     public static String ChangeConnectionHandler_ALREADY_CONNECTING;
     public static String ChangeConnectionHandler_CURRENTLY_CONNECTING_ALREADY;
     public static String ChangeConnectionHandler_CREATE_DATAMODEL;
     public static String ChangeConnectionHandler_REALLY_CREATE_DATAMODEL;
     public static String ChangeConnectionHandler_DATASOURCE_NOT_AVAILABLE;
     public static String ChangeConnectionHandler_NOT_AVAILABLE_REASONS;
+
     public static String CheckBoxTreeComposite_SELECT_DIRECT_CHILDREN;
+
     public static String UpdateHandler_CHECK_UPDATE_JOB;
     public static String UpdateHandler_INSTALL_JOB;
     public static String UpdateHandler_NO_UPDATE_MESSAGE;
@@ -112,13 +106,13 @@ public class Messages extends NLS {
     public static String UpdateHandler_UPDATES_FOUND_MESSAGE;
     public static String UpdateHandler_UPDATES_FOUND_TITLE;
 
-
     public static String UriWithLabelElement_COULD_NOT_OPEN_BROWSER;
     public static String UriWithLabelElement_INVALID_URL;
     public static String UriWithLabelElement_OPEN_EXTERNAL_BROWSER;
     public static String UriWithLabelElement_URL_NOT_SAVED;
     public static String DoiWithLabelElement_DOI_NOT_SAVED;
     public static String OrcidWithLabelElement_ORCID_NOT_SAVED;
+    public static String LsidWithLabelElement_URL_NOT_SAVED;
 
        public static String CdmStoreConnector_AUTHENTICATING_USER;
        public static String CdmStoreConnector_CHECK_IF_EDITOR_IS_COMPATIBLE;
@@ -136,13 +130,16 @@ public class Messages extends NLS {
        public static String CdmStoreConnector_UPDATE_DATASOUREC_OR_CHOOSE_NEW_DATASOURCE;
        public static String CdmStoreConnector_UPDATE_EDITOR_OR_CHOOSE_COMPATIBLE_DATASOURCE;
 
-
     public static String ConfiguratorComposite_CONFIGURE;
 
        public static String DefinedTermDropAdapterE4_MOVE_DESCRIPTIONS;
     public static String DefinedTermDropAdapterE4_MOVE_FAILED;
     public static String DefinedTermDropAdapterE4_MOVE_FAILED_MESSAGE;
     public static String DefinedTermDropAdapterE4_MOVE_FAILED_SAVE_MESSAGE;
+    public static String DefinedTermDropAdapterE4_MOVE_FAILED_STANDARD_TERM;
+    public static String DefinedTermDropAdapterE4_MOVE_FAILED_TO_STANDARD_VOC;
+    public static String DefinedTermDropAdapterE4_MOVE_FAILED_TO_MANAGED_VOC;
+    public static String DefinedTermDropAdapterE4_MOVE_FAILED_MANAGED_TERM;
 
     public static String DebugPreferences_0;
     public static String DebugPreferences_1;
@@ -150,19 +147,15 @@ public class Messages extends NLS {
     public static String DefaultFeatureTreePreferenecs_0;
     public static String DefaultFeatureTreePreferenecs_1;
 
-
     public static String DefinedTermDropAdapterE4_TERM_TYPE_ERROR_MESSAGE;
-
-
     public static String DefinedTermDropAdapterE4_TERM_TYPE_ERROR_TITLE;
 
-
     public static String DefinedTermEditorE4_SAVE_MESSAGE;
     public static String DefinedTermEditorE4_SAVE_TITLE;
     public static String DefinedTermMenu_FEATURE_TREE;
     public static String DefinedTermMenu_MENU;
     public static String DefinedTermMenu_OTHER_S;
-    public static String DefinedTermMenu_OTHERS;
+    public static String DefinedTermMenu_Vocabularies;
     public static String DefinedTermMenu_TERM_EDITOR;
 
     public static String DetailsViewerE4_TAXON_HAS_NO_NAME;
@@ -171,8 +164,9 @@ public class Messages extends NLS {
     public static String EditPasswordElement_PLEASE_CREATE_OR_SAVE_USER;
     public static String EditPasswordElement_USERNAME_DOES_NOT_EXIST;
 
-
     public static String EmptySection_NO_VIEW_IMPLEMENTED;
+    public static String More_than_one_distribution;
+
     public static String PasswordWizard_COULD_NOT_CHANGE_PWD;
     public static String PasswordWizard_OLD_PWD_INCORRECT;
     public static String PasswordWizard_PROBLEM_WITH_CHANGING_PWD;
@@ -187,20 +181,16 @@ public class Messages extends NLS {
 
     public static String PresenceAbsenceMenuPreferences_choose;
 
-
     public static String PresenceAbsenceTermDetailElement_CHOOSE_COLOR;
     public static String PresenceAbsenceTermDetailElement_COLOR_NOT_SET;
     public static String PresenceAbsenceTermDetailElement_LABEL_COLOR;
-
+    public static String PresenceAbsenceTermDetailElement_LABEL_IS_ABSENT;
 
     public static String PreservationMethodMenuPreferences_select;
 
     public static String RankMenuPreferences_display;
-
-
     public static String RankMenuPreferences_sort;
 
-
     public static String RemotingLoginDialog_CHOOSE_COMPATIBLE_CDM_SERVER;
     public static String RemotingLoginDialog_DEFAULT_LOGIN;
        public static String RemotingLoginDialog_LABEL_ADVANCED;
@@ -257,19 +247,15 @@ public class Messages extends NLS {
 
     public static String SupplementalDataPreferences_0;
 
-
     public static String SupplementalDataSourcePreferences_SHOW_ID;
-
-
     public static String SupplementalDataSourcePreferences_SHOW_NAMESPACE;
-
     public static String SupplementalDataViewPart_VIEWER_NAME;
-       public static String DeleteConfiguration_media_removeFromGallery;
+
+    public static String DeleteConfiguration_media_removeFromGallery;
        public static String DeleteConfiguration_media_deleteIfUsedInTaxonDescription;
        public static String DeleteConfiguration_media_deleteIfUsedSomeWhereElse;
        public static String DeleteConfiguration_media_delete;
 
-
     public static String DeleteResultMessagingUtils_ABORT;
     public static String DeleteResultMessagingUtils_SUCCES;
 
@@ -289,18 +275,17 @@ public class Messages extends NLS {
     public static String DeleteConfiguration_descriptiveDataSet_deleteAllAggregatedDesc;
     public static String DeleteConfiguration_descriptiveDataSet_deleteSelection;
 
-
-
     public static String DescriptionPreferences_1;
 
     public static String NewGrantedAuthority_AlreadyInDb;
 
     public static String SetSecundumConfiguration_IncludeAcceptedTaxa;
     public static String SetSecundumConfiguration_IncludeSynonyms;
-    public static String SetSecundumConfiguration_OverwriteExistingAccepted;
-    public static String SetSecundumConfiguration_OverwriteExistingSynonyms;
+    public static String SetSecundumConfiguration_IncludeMisapplications;
+    public static String SetSecundumConfiguration_IncludeProParteSynonyms;
     public static String SetSecundumConfiguration_EmptySecundumDetail;
     public static String SetSecundumConfiguration_IncludeSharedtaxa;
+    public static String SetSecundumConfiguration_OverwriteExisting;
     public static String SetSecundumConfiguration_NewSecundum_Label;
     public static String SetSecundumConfiguration_Description;
     public static String SetSecundumConfiguration_Description_Configurator;
@@ -362,16 +347,19 @@ public class Messages extends NLS {
     public static String FeatureTreeDropAdapter_ONLY_MOVE_FEATURES;
     public static String FeatureTreeDropAdapter_ORDER_VOC_NOT_POSSIBLE;
 
-    public static String FeatureTreeEditorComposite_ADD_FEATURE;
-    public static String FeatureTreeEditorComposite_FEATURE_TREE;
-    public static String FeatureTreeEditorComposite_OPEN_TREE;
-    public static String FeatureTreeEditorComposite_REMOVE_FEATURE;
+    public static String TermTreeEditorComposite_ADD_FEATURE;
+    public static String TermTreeEditorComposite_FEATURE_TREE;
+    public static String TermTreeEditorComposite_OPEN_TREE;
+    public static String TermTreeEditorComposite_REMOVE_FEATURE;
 
     public static String FeatureTreeSelectionDialog_CHOOSE_TREE;
     public static String FeatureTreeSelectionDialog_ENTER_LABEL;
     public static String FeatureTreeSelectionDialog_NEW_TREE;
     public static String FeatureTreeSelectionDialog_TREE_LABEL;
 
+    public static String AddFeatureHandler_Duplicates_not_allowed;
+    public static String AddFeatureHandler_Duplicates_not_allowed_message;
+
 
        public static String NonViralNameDetails_confirmDeleteOfZoologicalNameParts;
        public static String NonViralNameDetails_descriptionDeleteZoologicalNameParts;
@@ -397,6 +385,7 @@ public class Messages extends NLS {
     public static String NameDetailsViewComposite_Show_AtomisedEpithets;
     public static String NameDetailsViewComposite_Show_AuthorCache;
     public static String NameDetailsViewComposite_Show_Author;
+    public static String NameDetailsViewComposite_Show_In_Author;
     public static String NameDetailsViewComposite_Show_NomenclaturalReference;
     public static String NameDetailsViewComposite_Show_NomenclaturalStatus;
     public static String NameDetailsViewComposite_Show_Protologue;
@@ -570,6 +559,10 @@ public class Messages extends NLS {
     public static String TypeDesignationSection_NO_TYPES_YET;
     public static String TypeDesignationSection_TYPE_DESIGNATIONS;
 
+    public static String TaxonNodeSelectionDialog_0;
+
+    public static String TaxonNodeSelectionDialog_1;
+
     public static String TaxonNodeWizardPage_edit;
     public static String TaxonNodeWizardPage_new;
     public static String TaxonNodeWizardPage_no_classification;
@@ -583,11 +576,15 @@ public class Messages extends NLS {
     public static String TaxonNodeWizardPage_REUSE_EXISTING_TAXON;
     public static String TaxonNodeWizardPage_REUSE_EXISTING_NAME;
     public static String TaxonNodeWizardPage_SECUNDUM_REFERENCE;
-    public static String TaxonNodeWizardPage_STATUS_NOTES;
+    public static String TaxonNodeWizardPage_PLACEMENT_NOTES;
     public static String TaxonNodeWizardPage_CLASSIFICATION;
+    public static String TaxonNodeWizardPage_TAXON_NODE;
+    public static String TaxonNodeWizardPage_TAXON_INFORMATION;
+    public static String TaxonNodeWizardPage_TAXON_IS_PUBLISH;
 
     public static String TaxonomicEditorGeneralPreferences_background;
     public static String TaxonomicEditorGeneralPreferences_connect;
+    public static String TaxonomicEditorGeneralPreferences_search_window;
 
     public static String TaxonRelationshipTypeMenuPreferences_configure;
     public static String TaxonSearchPreferences_0;
@@ -603,7 +600,6 @@ public class Messages extends NLS {
 
     public static String DatabasePreferncesPage_Show_Specimen;
     public static String DatabasePreferncesPage_Show_IOMenu;
-
     public static String SpecimenConfiguration_description;
 
     public static String Distribution_status_selection;
@@ -638,6 +634,9 @@ public class Messages extends NLS {
     public static String MediaDetailElement_NO_PREVIEW;
     public static String MediaDetailElement_TOGGLE_NOT_POSSIBLE_MESSAGE;
     public static String MediaDetailElement_TOGGLE_NOT_POSSIBLE_TITLE;
+    public static String MediaDetailElement_SHOW_IMAGE;
+    public static String MediaDetailElement_RELOAD_IMAGE;
+
 
     public static String MediaPreferences_advanced;
     public static String MediaPreferences_preview;
@@ -651,6 +650,9 @@ public class Messages extends NLS {
     public static String ToggleableText_ToolTip_closed;
     public static String ToggleableText_ToolTip_open;
 
+    public static String TextWithAddNull_ToolTip_null;
+    public static String TextWithAddNull_ToolTip_NotNull;
+
     public static String PublishFlagPreference_description_not_allowed;
 
     public static String ChecklistEditorGeneralPreference_0;
@@ -662,6 +664,9 @@ public class Messages extends NLS {
 
     public static String StageMenuPreferences_choose;
 
+    public static String TaxonPreference_local_not_allowed;
+    public static String TaxonPreference_description;
+
     public static String TermOrder_idInVoc;
     public static String TermOrder_Title;
     public static String TermOrder_natural;
@@ -686,6 +691,8 @@ public class Messages extends NLS {
 
     public static String FactualData_showModifier;
     public static String FactualData_showModifier_FreeText;
+    public static String FactualData_showSpecimenAsSource;
+
     public static String FactualData_description;
     public static String FactualData_showIdInVocabulary;
     public static String FactualData_showIdInVocabulary_tooltip;
@@ -722,6 +729,8 @@ public class Messages extends NLS {
     public static String StructuredDescriptionAggregationWizardPage_SELECT_ALL_SUBTREES;
 //    public static String StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_ALL_SUBTREES;
     public static String StructuredDescriptionAggregationWizardPage_SELECT_SELECTED_TAXA_ONLY;
+    public static String StructuredDescriptionAggregationWizardPage_SOURCEMODE_CHILD_PARENT;
+    public static String StructuredDescriptionAggregationWizardPage_SOURCEMODE_WITHIN_TAXON;
 
     public static String CommonNameLanguages_Title;
 
@@ -732,6 +741,33 @@ public class Messages extends NLS {
 
     public static String DeleteConfiguration_descriptionFromDescriptiveDataSet_onlyRemove;
 
+    public static String EnumCombo_Placement_status;
+
+    public static String OriginalSourceAdvancedSection_advanced;
+
+    public static String CdmLightPreference_description;
+    public static String CdmLightPreference_distributionString;
+    public static String CdmLightPreference_distributionString_tooltip;
+
+    public static String SecundumPreference_description;
+    public static String SecundumPreferenceSwap_description;
+
+    public static String MediaMetadataPreferenceDescription;
+    public static String Show;
+    public static String OriginalLabel;
+    public static String DisplayedLabel;
+
+    public static String Tree;
+
+    public static String Computed_factualData_handling_description;
+
+    public static String FactualData_EnableComputedFactualData;
+    public static String StructuredDescriptionAggregationWizardPage_SELECT_DEFINE_SCOPE;
+       public static String StructuredDescriptionAggregationWizardPage_SELECT_UNPUBLISHED_TAXA;
+       public static String StructuredDescriptionAggregationWizardPage_SELECT_DEFAULT_DESCRIPTION;
+       public static String StructuredDescriptionAggregationWizardPage_SELECT_LITERATURE_DESCRIPTION;
+
+
     static {
         // initialize resource bundle
         NLS.initializeMessages(BUNDLE_NAME, Messages.class);
index 4e0ee3b04e48752e4c734d4f8c7ec39b039996dc..e10b086837a651e8175d061cb94578ab68086ed2 100644 (file)
@@ -18,6 +18,7 @@ LanguageMenuPreferences_warning=\ - Warning: no description - not shown in menus
 CommonNameLanguageMenuPreferences_configure=Choose available languages for common names
 LanguageRepresentationPreferencePage_global=Choose the global language that will be used throughout the editor to get representations in
 LanguageRepresentationPreferencePage_enable=Enable Multiple Language Editing Capability
+LanguageRepresentationPreferencePage_not_available=Changing the term language is not possible in local preferences. \nIf you want to change the preference, please contact an administrator.
 ListComponent_ADD_PROVIDER=Add Provider
 ListComponent_NO_PROVIDER_AVAILABLE=No Providers available
 ListComponent_REMOVE_PROVIDER=Remove Provider
@@ -29,11 +30,11 @@ OrderPreferences_Sorting=Sorting
 OrderPreferencePage_NewNavigatorWindowRequired=A new taxon navigator window is required.
 OrderPreferencePage_PleaseReopenNavigator=Please reopen the taxon navigator.
 DatabaseRepairPage_chooseParameter=Please choose the trees where the sortIndex should be recalculated.
-DatabaseRepairPage_updateTaxonNodes=Taxonomic Tree
+DatabaseRepairPage_updateTaxonNodes=Taxonomic Trees
 DatabaseRepairPage_toolTip_taxonNode=The sort indexes of the taxonomic tree will be recalculated.
 DatabaseRepairPage_PolytomousKeyNode=Polytomous Key
 DatabaseRepairPage_toolTip_polytomousKeyNode=The sort indexes of all polytomous keys are recalculated.
-DatabaseRepairPage_featureNodes=Term Tree
+DatabaseRepairPage_featureNodes=Term Trees
 DatabaseRepairPage_toolTipFeatureNodes=The sort indexes of the term tree will be recalculated.
 DatabaseRepairPage_updateTaxonName=Scientific Names
 DatabaseRepairPage_toolTip_TaxonName=Caches of all scientific names are recalculated.
@@ -64,7 +65,7 @@ UriWithLabelElement_OPEN_EXTERNAL_BROWSER=Open in external browser
 
 DoiWithLabelElement_DOI_NOT_SAVED=DOI won't be saved\!
 OrcidWithLabelElement_ORCID_NOT_SAVED=ORCID won't be saved\!
-
+LsidWithLabelElement_URL_NOT_SAVED=LSID won't be saved\! 
 ChangeConnectionHandler_ALREADY_CONNECTING=Already creating data model
 ChangeConnectionHandler_CURRENTLY_CONNECTING_ALREADY=You are currently creating a data model for a datasource already.
 ChangeConnectionHandler_DATASOURCE_NOT_AVAILABLE=Chosen datasource is not available
@@ -155,6 +156,7 @@ RemotingLoginDialog_MISSING_PERMISSION=Your credentials are valid but you are no
 EditPasswordElement_PLEASE_CREATE_OR_SAVE_USER=Please create or save user '%s' before changing password
 EditPasswordElement_USERNAME_DOES_NOT_EXIST=Username does not exist
 EmptySection_NO_VIEW_IMPLEMENTED=Unknown element. Details can not be shown.
+More_than_one_distribution=More than one distributions exist for this area. Please edit it in the taxon editor.
 PasswordWizard_COULD_NOT_CHANGE_PWD=Could not change password
 PasswordWizard_OLD_PWD_INCORRECT=The old password is not correct.
 PasswordWizard_PROBLEM_WITH_CHANGING_PWD=Problem with changing password
@@ -179,10 +181,15 @@ DefinedTermDropAdapterE4_MOVE_FAILED_MESSAGE=Cannot move term onto itself or its
 DefinedTermDropAdapterE4_MOVE_FAILED_SAVE_MESSAGE=Moving the term failed. Try saving before.
 DefinedTermDropAdapterE4_TERM_TYPE_ERROR_MESSAGE=The term type of the dropped term does not match the target term type.
 DefinedTermDropAdapterE4_TERM_TYPE_ERROR_TITLE=Term types do not match
+DefinedTermDropAdapterE4_MOVE_FAILED_STANDARD_TERM=Standard terms are not allowed to be moved
+DefinedTermDropAdapterE4_MOVE_FAILED_TO_STANDARD_VOC=Terms are not allowed to be moved to standard vocabularies
+DefinedTermDropAdapterE4_MOVE_FAILED_MANAGED_TERM=Managed terms are not allowed to move
+DefinedTermDropAdapterE4_MOVE_FAILED_TO_MANAGED_VOC=Terms are not allowed to be moved to managed vocabularies
+
 
 DebugPreferences_0=Show up widget is disposed error messages
 DebugPreferences_1=Disable services api timestamp check
-DefaultFeatureTreePreferenecs_0=Default Feature Tree to be used for textual descriptions
+DefaultFeatureTreePreferenecs_0=Default Feature Tree to be used for natural language descriptions
 DefaultFeatureTreePreferenecs_1=Default Feature Tree to be used for structured descriptions
 
 DefinedTermEditorE4_SAVE_MESSAGE=You have made changes that must be saved before this query can be executed. Would you like to save?
@@ -190,7 +197,7 @@ DefinedTermEditorE4_SAVE_TITLE=Save changes
 DefinedTermMenu_FEATURE_TREE=Term Tree
 DefinedTermMenu_MENU=Menu
 DefinedTermMenu_OTHER_S=Other %ss
-DefinedTermMenu_OTHERS=Others
+DefinedTermMenu_Vocabularies=Vocabularies
 DefinedTermMenu_TERM_EDITOR=Term Editor
 DetailsViewerE4_TAXON_HAS_NO_NAME=Taxon has no name. Details can not be shown.
 DetailsViewPart_VIEWER_NAME=Details
@@ -201,12 +208,13 @@ AuthenticatedUserBar_NOT_LOGGED_IN=Not logged in
 PresenceAbsenceMenuPreferences_choose=Choose available distribution states
 PresenceAbsenceTermDetailElement_CHOOSE_COLOR=Choose color
 PresenceAbsenceTermDetailElement_COLOR_NOT_SET=Color could not be set
-PresenceAbsenceTermDetailElement_LABEL_COLOR=Color  
+PresenceAbsenceTermDetailElement_LABEL_COLOR=Color
+PresenceAbsenceTermDetailElement_LABEL_IS_ABSENT=Absent  
 PreservationMethodMenuPreferences_select=Choose available preservation methods
 
 DeleteConfiguration_media_removeFromGallery=Remove the media from the image gallery but leave it in database
 DeleteConfiguration_media_deleteIfUsedInTaxonDescription=Delete also if media is used in taxon description
-DeleteConfiguration_media_deleteIfUsedSomeWhereElse=Delete the media also if it is used somewhere else        
+DeleteConfiguration_media_deleteIfUsedSomeWhereElse=Delete from taxon and specimen descriptions or if used as protologue for taxon names        
 DeleteConfiguration_media_delete=Remove the media from the image gallery and delete the media completely, if possible
 DeleteResultMessagingUtils_ABORT=Delete was aborted
 DeleteResultMessagingUtils_SUCCES=Delete was successful
@@ -231,8 +239,9 @@ NewGrantedAuthority_AlreadyInDb=The granted authority already exists.
 
 SetSecundumConfiguration_IncludeAcceptedTaxa=Include accepted taxa
 SetSecundumConfiguration_IncludeSynonyms=Include synonyms
-SetSecundumConfiguration_OverwriteExistingAccepted=Overwrite existing references for accepted taxa
-SetSecundumConfiguration_OverwriteExistingSynonyms=Overwrite existing references for synonyms
+SetSecundumConfiguration_IncludeMisapplications=Include misapplications (err. sec)
+SetSecundumConfiguration_IncludeProParteSynonyms=Include pro parte synonyms (syn. sec.)
+SetSecundumConfiguration_OverwriteExisting=Overwrite existing references
 SetSecundumConfiguration_EmptySecundumDetail=Delete existing secundum reference details (recommended)
 SetSecundumConfiguration_IncludeSharedtaxa=Include shared taxa
 SetSecundumConfiguration_NewSecundum_Label=New secundum reference:
@@ -273,6 +282,8 @@ ImportFromFileAndChooseVocIdWizardPage_AreaVoc=Area Vocabulary
 ImportFromFileAndChooseVocIdWizardOage_AreaVoc_toolTip=Please choose a vocabulary for the used areas.
 ExcelDistributionUpdateWizard_ConfiguratorWizard_label=Configure Excel distribution update
 AbstractImportWizard_ConfigurationLabel=Configure the Import
+TaxonNodeSelectionDialog_0=Create new factual data set (otherwise add to default description, if exists)
+TaxonNodeSelectionDialog_1=Select Classification
 TaxonNodeWizardPage_edit=Edit Taxon Node
 TaxonNodeWizardPage_new=New Taxon
 TaxonNodeWizardPage_no_classification=No classification set.
@@ -285,32 +296,39 @@ TaxonNodeWizardPage_NEW_TAXON=New Taxon
 TaxonNodeWizardPage_TAXON=Taxon
 TaxonNodeWizardPage_REUSE_EXISTING_TAXON=Reuse existing taxon
 TaxonNodeWizardPage_REUSE_EXISTING_NAME=Reuse existing name
-TaxonNodeWizardPage_SECUNDUM_REFERENCE=Secundum Reference
-TaxonNodeWizardPage_STATUS_NOTES=Status notes
+TaxonNodeWizardPage_SECUNDUM_REFERENCE=Secundum reference
+TaxonNodeWizardPage_PLACEMENT_NOTES=Placement notes
 TaxonNodeWizardPage_CLASSIFICATION=Classification
+TaxonNodeWizardPage_TAXON_NODE=Taxon node
+TaxonNodeWizardPage_TAXON_INFORMATION=Taxon information
+TaxonNodeWizardPage_TAXON_IS_PUBLISH=Taxon is publish
 TaxonomicEditorGeneralPreferences_background=Run long running operations in background
 TaxonomicEditorGeneralPreferences_connect=Connect to last used datasource when launching
+TaxonomicEditorGeneralPreferences_search_window=Open search results in separate windows
 TaxonRelationshipTypeMenuPreferences_configure=Configure taxon relationship types
 TaxonSearchPreferences_0=Open search results in separate windows
 TCSImportWizard_ConfiguratorWizard_label=Configure the TCS import
 FeatureMenuPreferences_display=Choose available features
-FeatureTreeEditorComposite_ADD_FEATURE=Add a term to this term tree.
-FeatureTreeEditorComposite_FEATURE_TREE=Term Tree
-FeatureTreeEditorComposite_OPEN_TREE=Open Tree
-FeatureTreeEditorComposite_REMOVE_FEATURE=Remove a term from this term tree.
+TermTreeEditorComposite_ADD_FEATURE=Add a term to this term tree.
+TermTreeEditorComposite_FEATURE_TREE=Term Tree
+TermTreeEditorComposite_OPEN_TREE=Open Tree
+TermTreeEditorComposite_REMOVE_FEATURE=Remove a term from this term tree.
 FeatureTreeSelectionDialog_CHOOSE_TREE=Choose a term tree
 FeatureTreeSelectionDialog_ENTER_LABEL=Enter label for term tree
 FeatureTreeSelectionDialog_NEW_TREE=New Term tree
 FeatureTreeSelectionDialog_TREE_LABEL=Term tree label
 
+AddFeatureHandler_Duplicates_not_allowed=No duplicates allowed
+AddFeatureHandler_Duplicates_not_allowed_message=This term tree does not allow duplicates and therefore the following terms were not added:
+
 NonViralNameDetails_confirmDeleteOfZoologicalNameParts=The publication and original publication year needs to be removed
 NonViralNameDetails_descriptionDeleteZoologicalNameParts=If you click Yes, the original publication and publication year is removed and the nomenclatural code is changed.
 NonViralNameDetails_confirmDeleteOfBacterialNameParts=The name approbiation needs to be removed
 NonViralNameDetails_desciptionDeleteOfBacterialNameParts=If you click Ok, the name approbiation is removed and the nomenclatural code is changed.
 NonViralNameDetails_confirmDeleteOfFungiNameParts=The fungi information anamorph will be lost
 NonViralNameDetails_descriptionDeleteOfFungiNameParts=If you click Ok, the anamorph flag is removed and the nomenclatural code is changed.
-NonViralNameDetails_confirmDeleteOfCultivarNameParts=The cultivar name needs to be removed
-NonViralNameDetails_descriptionDeleteOfCultivarNameParts=If you click Ok, the cultivar name is removed and the nomenclatural code is changed
+NonViralNameDetails_confirmDeleteOfCultivarNameParts=The cultivar epithet and/or cultivar group epithet need(s) to be removed
+NonViralNameDetails_descriptionDeleteOfCultivarNameParts=If you click Ok, the cultivar epithet and/or cultivar group epithet is removed and the nomenclatural code is changed
 
 NamedAreaTypeMenuPreferences=Choose available named area types
 NameDetailsViewComposite_Show_TypeDesignation=Name type designation section
@@ -328,6 +346,7 @@ NameDetailsViewComposite_Show_Rank=Rank of the name
 NameDetailsViewComposite_Show_AtomisedEpithets=Atomised epithets
 NameDetailsViewComposite_Show_AuthorCache=Authorship cache
 NameDetailsViewComposite_Show_Author=Whole authorship section
+NameDetailsViewComposite_Show_In_Author=In-authors
 NameDetailsViewComposite_Show_NomenclaturalReference=Nomenclatural reference section
 NameDetailsViewComposite_Show_NomenclaturalStatus=Nomenclatural status section
 NameDetailsViewComposite_Show_Protologue=Protologue section
@@ -445,8 +464,8 @@ ChecklistEditorGeneralPreference_show_symbol2=Symbol 2
 ChecklistEditorGeneralPreference_show_title=Lable
 ChecklistEditorGeneralPreference_show_symbol=Show symbol of the status, if existing
 ChecklistEditorGeneralPreference_STATUS_DISPLAY_TEXT=Configure how the status should be displayed
-ChecklistEditorGeneralPreference_own_Description=Create own fact dataset for distributions created by the Distribution Editor
-ChecklistEditorGeneralPreference_own_DescriptionToolTip=Entries created with the Distribution Editor, saved in an own Taxon Description
+ChecklistEditorGeneralPreference_own_Description=Add to default factual data set
+ChecklistEditorGeneralPreference_own_DescriptionToolTip=Entries created with the Distribution Editor, always added to the default factual data set. If no default set exists, a new one is created.
 GeneralPreference_override=Override
 ChecklistEditorGeneralPreference_Configure_display_of_Areas=Display of areas in the header
 ChecklistEditorGeneralPreference_Configure_display_of_Status=Display of distribution status in the table
@@ -501,6 +520,10 @@ DatabasePreferncesPage_Show_Specimen=Show specimen related views and menu entrie
 DatabasePreferncesPage_Show_MediaView=Show Media View
 DatabasePreferncesPage_Show_ChecklistPerspective=Show Checklist Perspective as default Perspective
 DatabasePreferncesPage_Show_TaxonNodeWizard=Taxon Nodes can be edited in Wizard
+TaxonPreference_local_not_allowed=The CDM settings don't allow to set the preferences for the display of partial misapplied names locally. If you need to make local settings, please ask an administrator.
+TaxonPreference_description=Configure whether partial misapplied names should be allowed or not.
+
+
 
 DatabasePreferncesPage_Show_Id_In_SelectionDialog=Show ID in selection dialogs
 DatabasePreferncesPage_Search_for_identifier_as_default=Use identifier search as default
@@ -523,6 +546,10 @@ MediaDetailElement_NO_FILE_FOUND=No file found
 MediaDetailElement_NO_PREVIEW=No preview available for this file type
 MediaDetailElement_TOGGLE_NOT_POSSIBLE_MESSAGE=Media consists of multiple representations or representatio parts
 MediaDetailElement_TOGGLE_NOT_POSSIBLE_TITLE=Toggling not possible
+MediaDetailElement_SHOW_IMAGE=Show Image
+MediaDetailElement_RELOAD_IMAGE=Reload Image
+
+
 MediaPreferences_advanced=Show Advanced Media View in Details View
 MediaPreferences_preview=Show Preview in Media View (Tree View)
 
@@ -558,6 +585,7 @@ Delete=Delete
 Preference_update=Update
 FactualData_showModifier=Show modifier
 FactualData_showModifier_FreeText=Show modifier freetext
+FactualData_showSpecimenAsSource=Show specimen as source
 FactualData_description=If a preference is not selectable, there is a serverside preference not allowed to override.
 FactualData_showIdInVocabulary=Show id in vocabulary in area text field
 FactualData_showIdInVocabulary_tooltip=Show id in vocabulary in area text field of details view
@@ -568,7 +596,7 @@ DistributionAggregationWizardPage_CHILD_PARENT=From child to parent taxon
 DistributionAggregationWizardPage_CLASSIFICATION=Aggregate selected classification
 DistributionAggregationWizardPage_DEFAULT=Default - by Presence Absence Term vocabulary
 DistributionAggregationWizardPage_DESCRIPTION=Configure the aggregation
-DistributionAggregationWizardPage_EXPORT_UNPUBLISHED=Export unpublished taxa
+DistributionAggregationWizardPage_EXPORT_UNPUBLISHED=Include unpublished taxa
 DistributionAggregationWizardPage_HIGHEST_RANK=Highest rank
 DistributionAggregationWizardPage_LOWEST_RANK=Lowest rank
 DistributionAggregationWizardPage_SELECT_AREA=Select Super Areas
@@ -586,13 +614,37 @@ DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_AREA=Defines the source mod
 DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_CHILD_PARENT=Defines the source mode if aggregation from child to parent taxon is selected.
 DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_WITHIN_TAXON=Defines the source mode if aggragation within taxon is selected.
 AggregationWizardPage_SUBTREE=Aggregation for selected subtree(s) 
-AggregationWizardPage_SINGLE_TAXON=Aggregation only for
+AggregationWizardPage_SINGLE_TAXON=Aggregate selected taxon/taxa only
 AggregationWizardPage_WITHOUT_CHILDREN= (without children)
 SetAggregationConfiguration_Title=Aggregation configuration;
-StructuredDescriptionAggregationWizardPage_SELECT_SUBTREE=Aggregate selected subtree(s)
-StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_SUBTREE=If not all subtrees included in the descriptive data set should be aggregated, select the subtrees for the aggregation
-StructuredDescriptionAggregationWizardPage_SELECT_ALL_SUBTREES=Aggregate all taxa in descriptive data set
+StructuredDescriptionAggregationWizardPage_SELECT_SUBTREE=Taxa/subtree(s)
+StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_SUBTREE=If not all subtrees included in the descriptive dataset should be aggregated, select the subtrees for the aggregation
+StructuredDescriptionAggregationWizardPage_SELECT_ALL_SUBTREES=Aggregate all taxa in descriptive dataset
 StructuredDescriptionAggregationWizardPage_SELECT_SELECTED_TAXA_ONLY=Aggregate selected taxon/taxa only
+StructuredDescriptionAggregationWizardPage_SELECT_DEFINE_SCOPE=Aggregation includes:
+StructuredDescriptionAggregationWizardPage_SELECT_DEFAULT_DESCRIPTION=Default descriptions
+StructuredDescriptionAggregationWizardPage_SELECT_LITERATURE_DESCRIPTION=Literature descriptions
+StructuredDescriptionAggregationWizardPage_SELECT_UNPUBLISHED_TAXA=Unpublished taxa
+StructuredDescriptionAggregationWizardPage_SOURCEMODE_WITHIN_TAXON=Specimen and literature to taxon
+StructuredDescriptionAggregationWizardPage_SOURCEMODE_CHILD_PARENT=From child to parent taxon
 CommonNameLanguages_Title=Common Name Languages
 CommonNameVocabularyPreferencePage_description=Select the vocabularies for common name area selection.
-CommonNameLanguagePreferencePage_description=Choose the languages available for common names.
\ No newline at end of file
+CommonNameLanguagePreferencePage_description=Choose the languages available for common names.
+EnumCombo_Placement_status=Placement status
+OriginalSourceAdvancedSection_advanced=more
+CdmLightPreference_description=Default settings for CdmLight export
+CdmLightPreference_distributionString=Export of condensed distribution string
+CdmLightPreference_distributionString_tooltip=Distributions of a taxon are exported as condensed string, created by the selected algorithm. 
+
+SecundumPreference_description=Default settings of secundum reference handling for moving synonym or taxon\n(also moving a taxon into the synonymy of another accepted taxon and the other way round)
+SecundumPreferenceSwap_description=Default settings of secundum reference handling for swap synonym and taxon.
+Tree= Tree
+Computed_factualData_handling_description=This preference defines whether computed factual data should be editable, disabled or not shown
+FactualData_EnableComputedFactualData=Handling of computed factual data
+
+TextWithAddNull_ToolTip_null=Remove the value
+TextWithAddNull_ToolTip_NotNull=No value, to add a new value, uncheck the checkbox
+MediaMetadataPreferenceDescription=Define metadata shown in the universal viewer in the dataportal.\nAlternative attribute labels can be added in the right column.
+Show=Show
+OriginalLabel=Original label in metadata
+DisplayedLabel=Displayed label
\ No newline at end of file
index 6e0be48d68393198958f7f8df323364e888603db..678bad28a69cf6342a60d192a21467fdfeec26b8 100644 (file)
@@ -18,6 +18,7 @@ LanguageMenuPreferences_warning=\ - Warnung: keine Beschreibung - wird nicht in
 CommonNameLanguageMenuPreferences_configure=Auswahl der für Trivialnamen zur Verf\u00FCgung stehenden Sprachen
 LanguageRepresentationPreferencePage_global=Wählen Sie die Sprache, für die im gesamten Editor die Repräsentationen ausgewählt werden soll (sofern vorhanden).
 LanguageRepresentationPreferencePage_enable=Aktiviere mehrsprachige Editierbarkeit
+LanguageRepresentationPreferencePage_not_available=Es dürfen keine lokalen Änderungen an der Term Sprache vorgenommen werden.\nWenn Sie die Präferenz dennoch ändern wollen, wenden Sie sich bitte an einen Administrator.
 ListComponent_ADD_PROVIDER=Provider hinzufügen
 ListComponent_NO_PROVIDER_AVAILABLE=Keine Provider verfügbar
 ListComponent_REMOVE_PROVIDER=Provider entfernen
@@ -29,11 +30,11 @@ OrderPreferences_Sorting=Sortierung
 OrderPreferencePage_NewNavigatorWindowRequired=Änderungen werden erst nach dem erneuten Öffnen des Navigators sichtbar.
 OrderPreferencePage_PleaseReopenNavigator=Um die Änderungen zu sehen, müssen Sie den Navigator schließen und neu öffnen.
 DatabaseRepairPage_chooseParameter=Bitte wählen Sie, für welche Bäume der SortIndex neu berechnet werden soll.
-DatabaseRepairPage_updateTaxonNodes=Taxonomischer Baum
+DatabaseRepairPage_updateTaxonNodes=Taxonomische Bäume
 DatabaseRepairPage_toolTip_taxonNode=Die Sortier Indizes des Taxonomischen Baums werden aktualisiert.
 DatabaseRepairPage_PolytomousKeyNode=Polytome Schlüssel
 DatabaseRepairPage_toolTip_polytomousKeyNode=Die Sortier Indizes aller Polytomen Schlüssel werden aktualisiert.
-DatabaseRepairPage_featureNodes=Merkmalsbaum
+DatabaseRepairPage_featureNodes=Termbäume
 DatabaseRepairPage_toolTipFeatureNodes=Die Sortier Indizes des Merkmalsbaumes werden aktualisiert. 
 DatabaseRepairPage_updateTaxonName=Wissenschaftliche Namen
 DatabaseRepairPage_toolTip_TaxonName=Die Caches aller wissenschaftlichen Namen werden aktualisiert.
@@ -41,8 +42,8 @@ DatabaseRepairPage_TaxonBase=Taxa und Synonyme
 DatabaseRepairPage_toolTip_taxonBase=Die Caches aller Taxa und Synonyme werden aktualisiert.
 DatabaseRepairPage_Reference=Referenzen
 DatabaseRepairPage_toolTip_reference=Die Caches aller Referenzen werden aktualisiert.
-DatabaseRepairPage_Specimen=Specimen
-DatabaseRepairPage_toolTip_specimen=Die Caches aller Derived Units und Field Units werden aktualisiert.
+DatabaseRepairPage_Specimen=Belege
+DatabaseRepairPage_toolTip_specimen=Die Caches aller Belege werden aktualisiert.
 DatabaseRepairPage_TeamOrPerson=Personen und Teams
 DatabaseRepairPage_toolTip_teamOrPerson=Die Caches aller Personen und Teams werden aktualisiert.
 DatabaseRepairPage_description=Die Caches aller ausgewählten Datentypen werden aktualisiert
@@ -64,7 +65,7 @@ UriWithLabelElement_OPEN_EXTERNAL_BROWSER=Im Browser 
 
 DoiWithLabelElement_DOI_NOT_SAVED=DOI wird nicht gespeichert\!
 OrcidWithLabelElement_ORCID_NOT_SAVED=ORCID wird nicht gespeichert\!
-
+LsidWithLabelElement_URL_NOT_SAVED=LSID wird nicht gespeichert\! 
 ChangeConnectionHandler_ALREADY_CONNECTING=Datenmodell wird erstellt
 ChangeConnectionHandler_CURRENTLY_CONNECTING_ALREADY=Es wird schon das Datenmodell für eine Datenquelle erstellt
 ChangeConnectionHandler_DATASOURCE_NOT_AVAILABLE=Gewählte Datenquelle ist nicht verfügbar
@@ -154,6 +155,7 @@ RemotingLoginDialog_MISSING_PERMISSION="Die Anmeldedaten sind korrekt, aber Sie
 EditPasswordElement_PLEASE_CREATE_OR_SAVE_USER=Bitte erstellen oder speichern sie den Nutzer '%s', bevor Sie das Kennwort ändern
 EditPasswordElement_USERNAME_DOES_NOT_EXIST=Nutzername existiert nicht
 EmptySection_NO_VIEW_IMPLEMENTED=Unbekanntes Objekt. Details können nicht angezeigt werden.
+More_than_one_distribution=Es existieren mehr als eine Verbreitung für dieses Areal. Bitte bearbeiten Sie die Verbreitung im Taxon Editor.
 PasswordWizard_COULD_NOT_CHANGE_PWD=Konnte das Kennwort nicht ändern
 PasswordWizard_OLD_PWD_INCORRECT=Das alte Kennwort ist inkorrekt
 PasswordWizard_PROBLEM_WITH_CHANGING_PWD=Fehler beim Ändern des Kennworts
@@ -178,18 +180,23 @@ DefinedTermDropAdapterE4_MOVE_FAILED_MESSAGE=Terme k
 DefinedTermDropAdapterE4_MOVE_FAILED_SAVE_MESSAGE=Das Verschieben des Terms ist fehlgeschlagen. Versuchen Sie vorher zu speichern.
 DefinedTermDropAdapterE4_TERM_TYPE_ERROR_MESSAGE=Der Termtyp des verschobenen Terms stimmt nicht mit dem des Ziels überein.
 DefinedTermDropAdapterE4_TERM_TYPE_ERROR_TITLE=Termtypen stimmen nicht überein
+DefinedTermDropAdapterE4_MOVE_FAILED_STANDARD_TERM=Standard Terme können nicht verschoben werden
+DefinedTermDropAdapterE4_MOVE_FAILED_TO_STANDARD_VOC=Terme dürfen nich in Standard Vokabulare verschoben werden
+DefinedTermDropAdapterE4_MOVE_FAILED_MANAGED_TERM=Externe Terme können nicht verschoben werden
+DefinedTermDropAdapterE4_MOVE_FAILED_TO_MANAGED_VOC=Terme dürfen nich in Externe Vokabulare verschoben werden
+
 
 DebugPreferences_0=\"Widget is disposed\" Fehler Meldungen anzeigen
 DebugPreferences_1=Deaktiviere die Überprüfung des API Timestamp
-DefaultFeatureTreePreferenecs_0=Default Merkmalsbaum für textuelle Faktendaten
-DefaultFeatureTreePreferenecs_1=Default Merkmalsbaum für strukturelle Faktendaten
+DefaultFeatureTreePreferenecs_0=Standard Merkmalsbaum für für natürlichsprachige Beschreibungen
+DefaultFeatureTreePreferenecs_1=Standard Merkmalsbaum für strukturelle Faktendaten
 
 DefinedTermEditorE4_SAVE_MESSAGE=Sie haben Änderungen, die gespeichert werden müssen, bevor die Operation ausgeführt werden kann. Möchten Sie speichern?
 DefinedTermEditorE4_SAVE_TITLE=Änderungen speichern
 DefinedTermMenu_FEATURE_TREE=Termbaum
 DefinedTermMenu_MENU=Menü
 DefinedTermMenu_OTHER_S=Weitere %ss
-DefinedTermMenu_OTHERS=Weitere
+DefinedTermMenu_Vocabularies=Vokabulare
 DefinedTermMenu_TERM_EDITOR=Term-Editor
 DetailsViewerE4_TAXON_HAS_NO_NAME=Taxon hat keinen Namen. Details können nicht angezeigt werden.
 DetailsViewPart_VIEWER_NAME=Details
@@ -201,11 +208,12 @@ PresenceAbsenceMenuPreferences_choose=Auswahl der zur Verf\u00FCgung stehenden V
 PresenceAbsenceTermDetailElement_CHOOSE_COLOR=Farbe wählen
 PresenceAbsenceTermDetailElement_COLOR_NOT_SET=Farbe konnte nicht gespeichert werden
 PresenceAbsenceTermDetailElement_LABEL_COLOR=Farbe
+PresenceAbsenceTermDetailElement_LABEL_IS_ABSENT=Abwesend
 PreservationMethodMenuPreferences_select=Auswahl der zur Verf\u00FCgung stehenden Präservierungsmethoden
 
-DeleteConfiguration_media_removeFromGallery=Entferne Mediendaten aus der Gallerie, aber behalte es in der Datenbank
+DeleteConfiguration_media_removeFromGallery=Entferne Mediendaten aus der Gallerie, aber behalte sie in der Datenbank
 DeleteConfiguration_media_deleteIfUsedInTaxonDescription=Lösche die Mediendaten, auch wenn sie Teil einer Taxonbeschreibung ist
-DeleteConfiguration_media_deleteIfUsedSomeWhereElse=Lösche die Mediendaten vollständig, auch wenn sie an anderer Stelle verwendet werden
+DeleteConfiguration_media_deleteIfUsedSomeWhereElse=Lösche die Mediendaten vollständig, auch wenn sie in einer Beschreibung oder als Protolog verwendet werden.
 DeleteConfiguration_media_delete=Entferne die Mediendaten aus der Gallerie und lösche sie aus der Datenbank, wenn sie nicht anderweitig verwendet werden.
 DeleteResultMessagingUtils_ABORT=Löschen wurde abgebrochen
 DeleteResultMessagingUtils_SUCCES=Löschen war erfolgreich
@@ -225,13 +233,14 @@ DeleteConfiguration_descriptiveDataSet_deleteAllDefaultDesc=Default Beschreibung
 DeleteConfiguration_descriptiveDataSet_deleteAllAggregatedDesc=Aggregierte Beschreibungen 
 DeleteConfiguration_descriptiveDataSet_deleteSelection=Beschreibungstypen, die komplett gelöscht werden sollen.\nNicht ausgewählte Beschreibungen verbleiben in der Datenbank und verknüpft mit ihrem Beleg/Taxon:
 
-DeleteConfiguration_descriptionFromDescriptiveDataSet_onlyRemove=Entferne Beschriebungen nur aus dem Descriptive Dataset
+DeleteConfiguration_descriptionFromDescriptiveDataSet_onlyRemove=Entferne Beschreibungen nur aus dem Descriptive Dataset
 NewGrantedAuthority_AlreadyInDb=Die GrantedAuthority ist bereits in der DB enthalten.
 
 SetSecundumConfiguration_IncludeAcceptedTaxa=Anwenden auf akzeptierte Taxa
 SetSecundumConfiguration_IncludeSynonyms=Anwenden auf Synonyme
-SetSecundumConfiguration_OverwriteExistingAccepted=Existierende Secundum Referenzen bei akzeptierten Taxa überschreiben
-SetSecundumConfiguration_OverwriteExistingSynonyms=Existierende Secundum Referenzen bei Synonymen überschreiben
+SetSecundumConfiguration_IncludeMisapplications=Anwenden auf Fehlanwendungen (err. sec)
+SetSecundumConfiguration_IncludeProParteSynonyms=Anwenden auf Pro Parte Synonyme (syn. sec.)
+SetSecundumConfiguration_OverwriteExisting=Existierende Secundum Referenzen überschreiben
 SetSecundumConfiguration_EmptySecundumDetail=Existierende Secundum Referenz Details löschen (empfohlen)
 SetSecundumConfiguration_IncludeSharedtaxa=Auch mehrfach verwendete Taxa mit einbeziehen
 SetSecundumConfiguration_NewSecundum_Label=Neue Secundum Referenz:
@@ -272,6 +281,8 @@ ImportFromFileAndChooseVocIdWizardPage_AreaVoc=Gebiets Vokabular
 ImportFromFileAndChooseVocIdWizardOage_AreaVoc_toolTip=Bitte wählen Sie ein Vokabular für die genutzten Areas aus.
 ExcelDistributionUpdateWizard_ConfiguratorWizard_label=Konfiguration des Excel Distribution Updates
 AbstractImportWizard_ConfigurationLabel=Konfiguration des Imports
+TaxonNodeSelectionDialog_0=Erzeuge neues Faktendaten Set (sonst füge es dem default Set hinzu)
+TaxonNodeSelectionDialog_1=Wähle Klassifikation
 TaxonNodeWizardPage_edit=Bearbeite Taxon Knoten
 TaxonNodeWizardPage_new=Neues Taxon
 TaxonNodeWizardPage_no_classification=Keine Klassifikation ausgewählt
@@ -285,31 +296,39 @@ TaxonNodeWizardPage_TAXON=Taxon
 TaxonNodeWizardPage_REUSE_EXISTING_TAXON=Taxon wiederverwenden
 TaxonNodeWizardPage_REUSE_EXISTING_NAME=Namen wiederverwenden
 TaxonNodeWizardPage_SECUNDUM_REFERENCE=Secundum Referenz
-TaxonNodeWizardPage_STATUS_NOTES=Status Annmerkungen
+TaxonNodeWizardPage_PLACEMENT_NOTES=Plazierungs-Anmerkungen
 TaxonNodeWizardPage_CLASSIFICATION=Klassifikation
+TaxonNodeWizardPage_TAXON_NODE=Taxonknoten
+TaxonNodeWizardPage_TAXON_INFORMATION=Taxon Information
+TaxonNodeWizardPage_TAXON_IS_PUBLISH=Taxon ist öffentlich
+
 TaxonomicEditorGeneralPreferences_background=Long Running Operations laufen im Hintergrund
 TaxonomicEditorGeneralPreferences_connect=Beim Starten mit der zuletzt verwendeten Datenquelle verbinden
+TaxonomicEditorGeneralPreferences_search_window=Bei jeder Suche ein neues Fenster öffnen
 TaxonRelationshipTypeMenuPreferences_configure=Auswahl der zur Verf\u00FCgung stehenden Taxonrelationstypen
 TaxonSearchPreferences_0=Öffne Suchergebnisse in eigenem Fenster
 TCSImportWizard_ConfiguratorWizard_label=Konfiguration des TCS Imports
 FeatureMenuPreferences_display=Auswahl der zur Verf\u00FCgung stehenden Features
-FeatureTreeEditorComposite_ADD_FEATURE=Term zum Termbaum hinzufügen
-FeatureTreeEditorComposite_FEATURE_TREE=Termbaum
-FeatureTreeEditorComposite_OPEN_TREE=Termbaum öffnen
-FeatureTreeEditorComposite_REMOVE_FEATURE=Term vom Termbaum entfernen
+TermTreeEditorComposite_ADD_FEATURE=Term zum Termbaum hinzufügen
+TermTreeEditorComposite_FEATURE_TREE=Termbaum
+TermTreeEditorComposite_OPEN_TREE=Termbaum öffnen
+TermTreeEditorComposite_REMOVE_FEATURE=Term vom Termbaum entfernen
 FeatureTreeSelectionDialog_CHOOSE_TREE=Termbaum auswählen
 FeatureTreeSelectionDialog_ENTER_LABEL=Namen für Termbaum eingeben
 FeatureTreeSelectionDialog_NEW_TREE=Neuer Termbaum
 FeatureTreeSelectionDialog_TREE_LABEL=Termbaumname
 
+AddFeatureHandler_Duplicates_not_allowed=Keine Duplikate erlaubt
+AddFeatureHandler_Duplicates_not_allowed_message=Der Term Baum erlaubt keine Duplikate, daher wurden folgende Terme nicht zugefügt:
+
 NonViralNameDetails_confirmDeleteOfZoologicalNameParts=Breed, Publication Date und Original Publication Date müssen entfernt werden.
 NonViralNameDetails_descriptionDeleteZoologicalNameParts=Bestätigen Sie, wenn Sie Breed, Publication Date und Original Publication Date löschen und den Nomenklatorischen Code des Namens ändern wollen.
 NonViralNameDetails_confirmDeleteOfBacterialNameParts=Name Approbiation muss entfernt werden.
 NonViralNameDetails_desciptionDeleteOfBacterialNameParts=Bestätigen Sie, wenn Sie Name Approbiation löschen wollen und den Nomenklatorischen Code ändern wollen.
 NonViralNameDetails_confirmDeleteOfFungiNameParts=Die Information, ob der Pilz anamorph ist, muss gelöscht werden
 NonViralNameDetails_descriptionDeleteOfFungiNameParts=Bestätigen Sie, wenn Sie die Information, ob der Pilz anamorph ist, löschen und den Nomenklatorischen Code ändern wollen.
-NonViralNameDetails_confirmDeleteOfCultivarNameParts=Der Cultivar Name muss gelöscht werden
-NonViralNameDetails_descriptionDeleteOfCultivarNameParts=Bestätigen Sie, wenn Sie den Cultivar Name löschen und den Nomenklatorischen Code ändern wollen.
+NonViralNameDetails_confirmDeleteOfCultivarNameParts=Das Cultivar Epithet und/oder Cultivar Group Epithet muss/müssen gelöscht werden
+NonViralNameDetails_descriptionDeleteOfCultivarNameParts=Bestätigen Sie, wenn Sie das Cultivar Epithet und/oder Cultivar Group Epithet löschen und den Nomenklatorischen Code ändern wollen.
 
 NamedAreaTypeMenuPreferences=Auswahl der zur Verf\u00FCgung stehenden Named Area Typen
 NameDetailsViewComposite_Show_TypeDesignation=Type Designations
@@ -327,6 +346,7 @@ NameDetailsViewComposite_Show_Rank=Rang
 NameDetailsViewComposite_Show_AtomisedEpithets=Atomisierte Epithete
 NameDetailsViewComposite_Show_AuthorCache=Autoren Cache
 NameDetailsViewComposite_Show_Author=Alle Autoreninformationen
+NameDetailsViewComposite_Show_In_Author=In-Autoren
 NameDetailsViewComposite_Show_NomenclaturalReference=Nomenklatorische Referenz
 NameDetailsViewComposite_Show_NomenclaturalStatus=Nomenklatorischer Status
 NameDetailsViewComposite_Show_Protologue=Protologue
@@ -444,8 +464,8 @@ ChecklistEditorGeneralPreference_show_symbol2=Symbol 2
 ChecklistEditorGeneralPreference_show_title=Label
 ChecklistEditorGeneralPreference_show_symbol=Symbol des Status anzeigen, wenn es existiert
 ChecklistEditorGeneralPreference_STATUS_DISPLAY_TEXT=Einstellung für die Anzeige des Status
-ChecklistEditorGeneralPreference_own_Description=Erstelle eigenes Fakten-Datenset für Verbreitungs-Editor Daten
-ChecklistEditorGeneralPreference_own_DescriptionToolTip=Einträge, die mit dem Distribution Editor erstellt werden, \nwerden in einer eigenen TaxonDescription gespeichert
+ChecklistEditorGeneralPreference_own_Description=Nutze die default Beschreibung
+ChecklistEditorGeneralPreference_own_DescriptionToolTip=Einträge, die mit dem Distribution Editor erstellt werden, \nwerden immer im default Taxon Fakten Set gespeichert, wenn noch kein default Set besteht, wird ein neues erstellt.
 GeneralPreference_override=Überschreiben
 ChecklistEditorGeneralPreference_Configure_display_of_Areas=Darstellung der Areale in der Kopfzeile
 ChecklistEditorGeneralPreference_Configure_display_of_Status=Darstellung der Verbreitung-Status in Tabelle
@@ -500,6 +520,8 @@ DatabasePreferncesPage_Show_Specimen=Specimenbezogene Views und Men\u00FCeintr
 DatabasePreferncesPage_Show_MediaView=Media View anzeigen
 DatabasePreferncesPage_Show_ChecklistPerspective=Checklist Perspektive als Default Perspektive anzeigen
 DatabasePreferncesPage_Show_TaxonNodeWizard=Wizard zum Editieren der Taxon Knoten anzeigen
+TaxonPreference_local_not_allowed=Die serverseitigen Einstellungen erlauben kein lokales Editieren der Einstellungen zum Anzeigen von Fehlanwendungen. \nWenn Sie dennoch Änderungen vornehmen müssen, wenden Sie sich bitte an einen Administrator.
+TaxonPreference_description=Das Verwenden von partiellen Fehlanwendungen zulassen.
 
 DatabasePreferncesPage_Show_Id_In_SelectionDialog=Zeige ID in Selection Dialogen
 DatabasePreferncesPage_Search_for_identifier_as_default=Nutze Identifier Suche als Default
@@ -510,9 +532,9 @@ DatabasePreferncesPage_NamedAreaSearchField=Suchfeld f
 
 Distribution_status_selection=Status Auswahl
 DistributionAdminPreferences_SELECT_STATUS=Liste der verfügbaren Verbreitungs-Status
-DistributionAdminPreferences_PER_AREA_STATUS=Liste der pro Area definierten Status Preferenzen\nMit dem Button auf der rechten Seite können Sie die Präferenz für das Gebiet editieren.\nWenn Sie neue gebietsspezifische Statusangaben definieren wollen, müssen Sie den Button unter der Tabelle verwenden.
-DistributionAdminPreferences_DEFAULT_AREA_STATUS_NOT_ALLOWED=Liste der pro Area definierten Status Preferenzen. Die gebietsspezifische Statusauswahl ist aktuell nur serverseitig verfügbar.\nDie Bearbeitung die default Statusauswahl ist durch die serverseitige Präferenz nicht erlaubt. Wenn Sie dennoch die Status ändern wollen, kontaktieren Sie bitte eine Administrator.
-DistributionAdminPreferences_DEFAULT_AREA_STATUS=Liste der pro Area definierten Status Preferenzen. Die gebietsspezifische Statusauswahl ist aktuell nur serverseitig verfügbar.\nUm die default Statusauswahl zu bearbeiten, nutzen Sie bitte den Button unterhalb der Tabelle.
+DistributionAdminPreferences_PER_AREA_STATUS=Liste der pro Area definierten Status Präferenzen\nMit dem Button auf der rechten Seite können Sie die Präferenz für das Gebiet editieren.\nWenn Sie neue gebietsspezifische Statusangaben definieren wollen, müssen Sie den Button unter der Tabelle verwenden.
+DistributionAdminPreferences_DEFAULT_AREA_STATUS_NOT_ALLOWED=Liste der pro Area definierten Status Präferenzen. Die gebietsspezifische Statusauswahl ist aktuell nur serverseitig verfügbar.\nDie Bearbeitung die default Statusauswahl ist durch die serverseitige Präferenz nicht erlaubt. Wenn Sie dennoch die Status ändern wollen, kontaktieren Sie bitte eine Administrator.
+DistributionAdminPreferences_DEFAULT_AREA_STATUS=Liste der pro Area definierten Status Präferenzen. Die gebietsspezifische Statusauswahl ist aktuell nur serverseitig verfügbar.\nUm die default Statusauswahl zu bearbeiten, nutzen Sie bitte den Button unterhalb der Tabelle.
 
 MarkerTypeMenuPreferences_display=Auswahl der zur Verf\u00FCgung stehenden Marker
 MeasurementUnitMenuPreferences_edit=Angezeigte Maßeinheiten
@@ -522,6 +544,9 @@ MediaDetailElement_NO_FILE_FOUND=Keine Datei gefunden
 MediaDetailElement_NO_PREVIEW=Keine Vorschau für diesen Dateityp vorhanden
 MediaDetailElement_TOGGLE_NOT_POSSIBLE_MESSAGE=Media besteht aus mehreren "representations" oder "representation parts"
 MediaDetailElement_TOGGLE_NOT_POSSIBLE_TITLE=Umschalten nicht möglich
+MediaDetailElement_SHOW_IMAGE=Zeige Bild
+MediaDetailElement_RELOAD_IMAGE=Bild neu laden
+
 MediaPreferences_advanced=Erweiterten Media Details View anzeigen
 MediaPreferences_preview=Vorschau anzeigen
 
@@ -557,6 +582,7 @@ Delete=L
 Preference_update=Aktualisieren
 FactualData_showModifier=Zeige Modifier
 FactualData_showModifier_FreeText=Zeige Freitext-Modifier
+FactualData_showSpecimenAsSource=Zeige Specimen als Quelle
 FactualData_description=Wenn die Präferenz nicht ausgewählt werden kann, dann gibt es eine serverseitige Präferenz, die das Überschreiben nicht erlaubt.
 FactualData_showIdInVocabulary=Zeige Id im Vokabular im Areal-Textfeld
 FactualData_showIdInVocabulary_tooltip=Zeige die Id im Vokabular im Areal-Textfeld des Details View
@@ -567,7 +593,7 @@ DistributionAggregationWizardPage_CHILD_PARENT=From child to parent taxon
 DistributionAggregationWizardPage_CLASSIFICATION=Aggregate selected classification
 DistributionAggregationWizardPage_DEFAULT=Default - by Presence Absence Term vocabulary
 DistributionAggregationWizardPage_DESCRIPTION=Configure the aggregation
-DistributionAggregationWizardPage_EXPORT_UNPUBLISHED=Export unpublished taxa
+DistributionAggregationWizardPage_EXPORT_UNPUBLISHED=Include unpublished taxa
 DistributionAggregationWizardPage_HIGHEST_RANK=Highest rank
 DistributionAggregationWizardPage_LOWEST_RANK=Lowest rank
 DistributionAggregationWizardPage_SELECT_AREA=Select Super Areas
@@ -584,13 +610,39 @@ DistributionAggregationWizardPage_TOOLTIP_SOURCE_TYPE=Typus der zu aggregierende
 DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_AREA=Definiert den Source Mode, wenn die Aggregation von Subareal zum Superareal ausgewählt wurde.
 DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_CHILD_PARENT=Definiert den Source Mode, wenn die Aggregation vom Kind zum Eltern ausgewählt wurde.
 DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_WITHIN_TAXON=Definiert den Source Mode, wenn die Aggregation innerhalb eines Taxons ausgewählt wurde.
-AggregationWizardPage_SUBTREE=Aggregation nur für ausgewählten Teilbaum/bäume 
+AggregationWizardPage_SUBTREE=Aggregiere ausgewählten Teilbaum/-bäume
 AggregationWizardPage_SINGLE_TAXON=Aggregation nur für
 SetAggregationConfiguration_Title=Aggregationskonfiguration
-StructuredDescriptionAggregationWizardPage_SELECT_SUBTREE=Aggregiere über den ausgewählten Teilbaum
-StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_SUBTREE=Wenn nicht alle Teilbäume des Descriptive Data Sets in die Aggregation einfließen sollen, dann wählen Sie die zu verwendenden Teilbäume aus.
-StructuredDescriptionAggregationWizardPage_SELECT_ALL_SUBTREES=Aggregiere alle Taxa des Descriptive Data Sets
+StructuredDescriptionAggregationWizardPage_SELECT_SUBTREE=Taxa/Teilbäume
+StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_SUBTREE=Wenn nicht alle Teilbäume des Descriptive Datasets in die Aggregation einfließen sollen, dann wählen Sie die zu verwendenden Teilbäume aus.
+StructuredDescriptionAggregationWizardPage_SELECT_ALL_SUBTREES=Aggregiere alle Taxa des Descriptive Datasets
 StructuredDescriptionAggregationWizardPage_SELECT_SELECTED_TAXA_ONLY=Aggregiere nur ausgewählte(s) Taxa/Taxon
+StructuredDescriptionAggregationWizardPage_SELECT_UNPUBLISHED_TAXA=Unpublizierten Taxa
+StructuredDescriptionAggregationWizardPage_SELECT_DEFINE_SCOPE=Bei Aggregation einschließen:
+StructuredDescriptionAggregationWizardPage_SELECT_DEFAULT_DESCRIPTION=Default Beschreibungen
+StructuredDescriptionAggregationWizardPage_SELECT_LITERATURE_DESCRIPTION=Literatur Beschreibungen
+StructuredDescriptionAggregationWizardPage_SOURCEMODE_WITHIN_TAXON=Specimen and Literatur zum Taxon
+StructuredDescriptionAggregationWizardPage_SOURCEMODE_CHILD_PARENT=Vom Kind- zum Eltern-Taxon
 CommonNameLanguages_Title=Sprachen für Trivialnamen
 CommonNameVocabularyPreferencePage_description=Wählen Sie die Vokabulare, für die Area-Auswahl bei Trivialnamen.
-CommonNameLanguagePreferencePage_description=Wählen Sie die für Trivialnamen verfügbaren Sprachen.
\ No newline at end of file
+CommonNameLanguagePreferencePage_description=Wählen Sie die für Trivialnamen verfügbaren Sprachen.
+
+EnumCombo_Placement_status=Platzierungsstatus
+OriginalSourceAdvancedSection_advanced=mehr
+
+CdmLightPreference_description=Default Einstellungen für den CdmLight Export
+CdmLightPreference_distributionString=Export eines Condensed Distribution Strings
+CdmLightPreference_distributionString_tooltip=Für jedes Taxon wird aus den Verbreitungsdaten ein kompakter String exportiert, der entsprechend dem ausgewählten Algorithmus erzeugt wird.
+
+SecundumPreference_description=Default Einstellungen für das Setzen der Secundum Referenz beim Verschieben eines Taxons oder Synonyms\n(auch beim Verschieben eines Taxons in die Synonymie eines anderen Taxons und umgekehrt).
+SecundumPreferenceSwap_description=Default Einstellungen für das Setzen der Secundum Referenz beim Tauschen eines Synonyms mit dem akzeptierten Taxon.
+Tree=-Baum
+Computed_factualData_handling_description=Diese Einstellung gibt an, ob berechnete Faktendaten bearbeitbar, ausgeblendet oder nur angezeigt werden sollen.
+FactualData_EnableComputedFactualData=Umgang mit berechneten Faktendaten
+
+TextWithAddNull_ToolTip_null=Entferne den Wert aus dem Feld
+TextWithAddNull_ToolTip_NotNull=Kein Wert, um einen Wert einzufügen, bitte das Häkchen entfernen
+MediaMetadataPreferenceDescription=Definiere Metadaten, die im Universalviewer im Datenportal angezeigt werden sollen. \nIn der rechten Spalte können alternative Attributname eingetragen werden. \nMit den Buttons können weitere Attribute zugefügt oder entfernt werden.
+Show=Anzeigen
+OriginalLabel=Ursprüngliches Label in den Metadaten
+DisplayedLabel=Angezeigtes Label
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractDataChangeBehaviour.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/AbstractDataChangeBehaviour.java
deleted file mode 100644 (file)
index 0e28349..0000000
+++ /dev/null
@@ -1,55 +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.model;
-
-import java.util.Vector;
-
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-
-/**
- * Reactions on specific EventyTypes are overridden here for convenience.
- *
- * @author n.hoffmann
- * @created 09.04.2009
- * @version 1.0
- */
-public abstract class AbstractDataChangeBehaviour implements IDataChangeBehavior {
-       
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#reactOnDataChange(java.lang.Object, java.util.List)
-        */
-       /** {@inheritDoc} */
-       public abstract void reactOnDataChange(CdmDataChangeMap events);
-
-       /**
-        * {@inheritDoc}
-        *
-        * Implementors should overwrite this method if needed
-        * @see eu.etaxonomy.taxeditor.model.IDataChangeBehavior#reactOnDelete(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent)
-        */
-       public void reactOnDelete(Vector<CdmDataChangeEvent> event) {}
-
-       /**
-        * {@inheritDoc}
-        *
-        * Implementors should overwrite this method if needed
-        * @see eu.etaxonomy.taxeditor.model.IDataChangeBehavior#reactOnInsert(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent)
-        */
-       public void reactOnInsert(Vector<CdmDataChangeEvent> event) {}
-
-       /**
-        * {@inheritDoc}
-        *
-        * Implementors should overwrite this method if needed
-        * @see eu.etaxonomy.taxeditor.model.IDataChangeBehavior#reactOnUpdate(java.lang.Object, eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent)
-        */
-       public void reactOnUpdate(Vector<CdmDataChangeEvent> event) {}
-}
index e397a911b0029e10a9237a578cf0575139300c7f..56acc988fc19cb225e441b7da54324160a1f58e7 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.model;
 
 import java.io.BufferedWriter;
@@ -28,8 +27,9 @@ import java.util.UUID;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
-import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.AbstractOperation;
 import org.eclipse.core.commands.operations.IOperationHistory;
@@ -61,16 +61,19 @@ import org.eclipse.ui.progress.IProgressConstants;
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.service.IProgressMonitorService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.cdm.api.service.dto.CdmEntityIdentifier;
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.common.SetMap;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.io.common.ExportDataWrapper;
 import eu.etaxonomy.cdm.io.common.ExportResult;
 import eu.etaxonomy.cdm.io.common.ExportResultType;
 import eu.etaxonomy.cdm.io.common.ExportType;
-import eu.etaxonomy.cdm.io.common.ImportResult;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.term.IEnumTerm;
 import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
@@ -78,23 +81,21 @@ import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.operation.IFeedbackGenerator;
 import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.operation.e4.RemotingCdmHandlerE4;
+import eu.etaxonomy.taxeditor.operation.e4.CdmHandlerE4;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 import eu.etaxonomy.taxeditor.ui.dialog.ReportTextDialog;
-import eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewerE4;
+import eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewer;
 import eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4;
 import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
 
 /**
- *
  * @author n.hoffmann
  * @created 11.05.2009
- * @version 1.0
  */
 public abstract class AbstractUtility {
 
-    protected static final Logger logger = Logger.getLogger(AbstractUtility.class);
+    protected static final Logger logger = LogManager.getLogger(AbstractUtility.class);
 
     /** Constant <code>statusLineManager</code> */
     protected static IStatusLineManager statusLineManager;
@@ -117,6 +118,7 @@ public abstract class AbstractUtility {
         return TaxeditorStorePlugin.getDefault().getWorkbench();
     }
 
+    @SuppressWarnings("unchecked")
     public static Object getService(Class api) {
         return TaxeditorStorePlugin.getDefault().getWorkbench().getService(api);
     }
@@ -135,8 +137,7 @@ public abstract class AbstractUtility {
                     "There is no operation history for this context");
         }
 
-        final IAdaptable uiInfoAdapter = WorkspaceUndoUtil
-                .getUIInfoAdapter(getShell());
+        final IAdaptable uiInfoAdapter = WorkspaceUndoUtil.getUIInfoAdapter(getShell());
 
         Job job = Job.create(operation.getLabel(), (ICoreRunnable) monitor -> {
             sync.syncExec(() -> {
@@ -175,11 +176,11 @@ public abstract class AbstractUtility {
         return Status.OK_STATUS;
     }
 
-    public static IStatus executeOperation(final AbstractOperation operation, final RemotingCdmHandlerE4 handler, UISynchronize sync) {
+    public static IStatus executeOperation(final AbstractOperation operation, final CdmHandlerE4 handler, UISynchronize sync) {
         return executeOperation_internal(operation, handler, sync);
     }
 
-    private static IStatus executeOperation_internal(final AbstractOperation operation, final RemotingCdmHandlerE4 handler,
+    private static IStatus executeOperation_internal(final AbstractOperation operation, final CdmHandlerE4 handler,
             UISynchronize sync) {
         if (getOperationHistory() == null) {
             throw new IllegalArgumentException(
@@ -270,7 +271,7 @@ public abstract class AbstractUtility {
                                 feedbackGenerator,
                                 subMonitor);
                     } catch (Exception ex) {
-                        return new Status(Status.ERROR, TaxeditorStorePlugin.PLUGIN_ID, "Operation Interrupted", ex);
+                        return new Status(IStatus.ERROR, TaxeditorStorePlugin.PLUGIN_ID, "Operation Interrupted", ex);
                     }
 
                     createExportResult(label, urlString, createZip, remotingMonitor);
@@ -416,13 +417,13 @@ public abstract class AbstractUtility {
 
     public static void refreshDetailsViewer(EPartService partService) {
         if (getDetailsView(partService) != null) {
-            ((AbstractCdmDataViewerE4) getDetailsView(partService).getViewer()).refresh();
+            ((AbstractCdmDataViewer) getDetailsView(partService).getViewer()).refresh();
         }
     }
 
     public static void reflowDetailsViewer(EPartService partService) {
         if (getDetailsView(partService) != null) {
-            ((AbstractCdmDataViewerE4) getDetailsView(partService).getViewer()).reflow();
+            ((AbstractCdmDataViewer) getDetailsView(partService).getViewer()).reflow();
         }
     }
 
@@ -459,7 +460,7 @@ public abstract class AbstractUtility {
             if(depth>0){
                 indentString += "- ";
             }
-            result.put(node.term, indentString + node.term.getMessage());
+            result.put(node.term, indentString + node.term.getLabel());
             parseTermTree(node.children, result, depth);
         }
     }
@@ -558,7 +559,7 @@ public abstract class AbstractUtility {
             if (getClass() != obj.getClass()) {
                 return false;
             }
-            TermNode other = (TermNode) obj;
+            TermNode<?> other = (TermNode<?>) obj;
             if (term == null) {
                 if (other.term != null) {
                     return false;
@@ -571,7 +572,7 @@ public abstract class AbstractUtility {
 
         @Override
         public int compareTo(TermNode<T> that) {
-            return this.term.getMessage().compareTo(that.term.getMessage());
+            return this.term.getLabel().compareTo(that.term.getLabel());
         }
     }
 
@@ -603,7 +604,8 @@ public abstract class AbstractUtility {
             final boolean cancelable,
             final IPostMoniteredOperationEnabled postOp,
             final IFeedbackGenerator feedbackGenerator,
-            final boolean showResult) {
+            final boolean showResult,
+            final boolean updateNavigator) {
 
        try{
                // get the remoting monitor the first time to make sure that the
@@ -615,12 +617,12 @@ public abstract class AbstractUtility {
             }
             if (firstRemotingMonitor.isDone()){
                 createResult(label, showResult, firstRemotingMonitor);
+                Set<Taxon> taxaToUpdate = getTaxaToUpdate(firstRemotingMonitor);
+                updateNameEditors(taxaToUpdate);
                 return Status.OK_STATUS;
             }
 
             Job job = new Job(label) {
-
-
                 @Override
                 public IStatus run(IProgressMonitor monitor) {
                     // run the monitor until the operation is finished
@@ -636,66 +638,25 @@ public abstract class AbstractUtility {
                                 feedbackGenerator,
                                 subMonitor);
                     } catch (Exception ex) {
-                        return new Status(Status.ERROR, TaxeditorStorePlugin.PLUGIN_ID, "Operation Interrupted", ex);
+                        return new Status(IStatus.ERROR, TaxeditorStorePlugin.PLUGIN_ID, "Operation Interrupted", ex);
                     }
 
-
                     // collect reports
 //                         for(String report : remotingMonitor.getResult()) {
                     createResult(label, showResult, remotingMonitor);
                     Set<Taxon> taxaToUpdate = getTaxaToUpdate(remotingMonitor);
                     updateNameEditors(taxaToUpdate);
-                    if (!taxaToUpdate.isEmpty()){
+                    if (!taxaToUpdate.isEmpty() && updateNavigator){
                         refreshNavigator();
                     }
+                    subMonitor.subTask("");
                     return Status.OK_STATUS;
                 }
 
-
-
-                private Set<Taxon> getTaxaToUpdate(IRemotingProgressMonitor remotingMonitor) {
-                    Set<Taxon> taxaToUpdate = new HashSet<>();
-                    if (remotingMonitor.getResult() instanceof UpdateResult){
-                        for (CdmBase object: ((UpdateResult)remotingMonitor.getResult()).getUpdatedObjects()){
-                            Taxon taxon = null;
-
-                            if (object instanceof Taxon){
-                                taxon = HibernateProxyHelper.deproxy(object, Taxon.class);
-
-
-                            }else if (object instanceof Synonym){
-                                Synonym syn = HibernateProxyHelper.deproxy(object, Synonym.class);
-                                taxon = syn.getAcceptedTaxon();
-                            }
-
-                            taxaToUpdate.add(taxon);
-                        }
-                    }else if (remotingMonitor.getResult() instanceof ImportResult){
-                        Map<String, Integer> result = ((ImportResult)remotingMonitor.getResult()).getUpdatedRecords();
-                        for (Map.Entry<String, Integer> object: result.entrySet()){
-                            Taxon taxon = null;
-                            if (object instanceof Taxon){
-                                taxon = HibernateProxyHelper.deproxy(object, Taxon.class);
-                            }else if (object instanceof Synonym){
-                                Synonym syn = HibernateProxyHelper.deproxy(object, Synonym.class);
-                                taxon = syn.getAcceptedTaxon();
-                            }
-                            taxaToUpdate.add(taxon);
-                       }
-
-                    }
-                    return taxaToUpdate;
-                }
-
-
-
                 private void refreshNavigator() {
                     EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, true);
-
                 }
 
-
-
                 @Override
                 protected void canceling() {
                     CdmStore.getCurrentApplicationConfiguration().getProgressMonitorService().cancel(uuid);
@@ -719,46 +680,87 @@ public abstract class AbstractUtility {
         }
 
         return Status.OK_STATUS;
-        }
+    }
 
+    private static Set<Taxon> getTaxaToUpdate(IRemotingProgressMonitor remotingMonitor) {
+        Set<Taxon> taxaToUpdate = new HashSet<>();
+        if (remotingMonitor != null && remotingMonitor.getResult() instanceof UpdateResult){
+            for (CdmBase object: ((UpdateResult)remotingMonitor.getResult()).getUpdatedObjects()){
+                Taxon taxon = null;
+
+                if (object instanceof Taxon){
+                    taxon = HibernateProxyHelper.deproxy(object, Taxon.class);
+                }else if (object instanceof Synonym){
+                    Synonym syn = HibernateProxyHelper.deproxy(object, Synonym.class);
+                    taxon = syn.getAcceptedTaxon();
+                }else if (object instanceof TaxonNode){
+                    taxon = ((TaxonNode)object).getTaxon() != null? ((TaxonNode)object).getTaxon():null;
+                }
+                if (taxon != null){
+                    taxaToUpdate.add(taxon);
+                }
+            }
+        }
+        return taxaToUpdate;
+    }
 
     public static void createResult(String label, boolean showResult,
             IRemotingProgressMonitor remotingMonitor) {
         final StringBuilder reportSb = new StringBuilder();
-        if (remotingMonitor.getResult() instanceof ExportResult) {
+        if (remotingMonitor == null){
+            reportSb.append("Something went wrong. No result returned from server.");
+        }else if (remotingMonitor.getResult() instanceof ExportResult) {
             reportSb.append(((ExportResult)remotingMonitor.getResult()).createReport());
         }else if (remotingMonitor.getResult() instanceof UpdateResult){
-            if (((UpdateResult)remotingMonitor.getResult()).isOk()){
-                int count = ((UpdateResult)remotingMonitor.getResult()).getUpdatedObjects().size();
-                if (count == 0){
-                    count = ((UpdateResult)remotingMonitor.getResult()).getUpdatedCdmIds().size();
-                }
-
-                reportSb.append("Update successful. \n"+"Updated Objects: " +count);
-            }
-            if (!((UpdateResult)remotingMonitor.getResult()).getExceptions().isEmpty()){
-                reportSb.append(((UpdateResult)remotingMonitor.getResult()).getExceptions().toString());
-            }
+            UpdateResult result = (UpdateResult)remotingMonitor.getResult();
+            createUpdateResultReport(reportSb, result);
         }else if (remotingMonitor.getReports()!= null){
             for (String o:remotingMonitor.getReports()){
                 reportSb.append(o);
             }
         }
-//          }
-        if(showResult && !StringUtils.isBlank(reportSb.toString()) && reportSb.length() != 0) {
+        String report = reportSb.toString();
+        if(showResult && !StringUtils.isBlank(report)) {
             Display.getDefault().asyncExec(new Runnable() {
                 @Override
                 public void run() {
                     // display reports with possibility to save
                     ReportTextDialog dialog = new ReportTextDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
                     dialog.setTitle(label + " Report");
-                    dialog.setReportText(reportSb.toString());
+                    dialog.setReportText(report);
                     dialog.open();
                 }
             });
         }
     }
 
+    public static void createUpdateResultReport(final StringBuilder reportSb, UpdateResult result) {
+        if (result.isOk() || result.isAbort()){
+            SetMap<Class<? extends CdmBase>, Integer> map = getUpdateResultStatistics(result);
+            reportSb.append("Update successful. \n"
+              + "Updated Objects: " + map.sizeAll() + "\n================\n");
+            for (Class<? extends CdmBase> clazz : map.keySet()){
+                reportSb.append( CdmUtils.userFriendlyClassName(clazz)+": " + map.get(clazz).size() + "\n");
+            }
+        }
+        if (!result.getExceptions().isEmpty()){
+            reportSb.append(result.getExceptions().toString());
+        }
+    }
+
+    //TODO move to cdmlib
+    public static SetMap<Class<? extends CdmBase>, Integer> getUpdateResultStatistics(UpdateResult result) {
+        SetMap<Class<? extends CdmBase>, Integer> map = new SetMap<>();
+        for (CdmBase cdmBase : result.getUpdatedObjects()){
+            map.putItem(cdmBase.getClass(), cdmBase.getId());
+        }
+        for (CdmEntityIdentifier entity : result.getUpdatedCdmIds()){
+            map.putItem(entity.getCdmClass(), entity.getId());
+        }
+
+        return map;
+    }
+
     private static void createExportResult(final String label, String urlString, boolean createZip,
             IRemotingProgressMonitor remotingMonitor) {
 
@@ -782,7 +784,7 @@ public abstract class AbstractUtility {
             }
 
             if (urlString != null){
-                 ExportDataWrapper data = result.getExportData();
+                 ExportDataWrapper<?> data = result.getExportData();
                  try{
                      if (result.getExportData().getType().equals(ExportResultType.BYTE_ARRAY)){
                          byte[] exportData = (byte[])data.getExportData();
@@ -803,13 +805,20 @@ public abstract class AbstractUtility {
                          Calendar cal = Calendar.getInstance();
                          String fileEnding = ".csv";
 
-                         if (createZip){
-                             File file = new File(urlString+File.separator +  sdf.format(cal.getTime())+ ".zip");
+                         if (createZip || urlString.endsWith("zip")){
+//                             File file = new File(urlString+File.separator +  sdf.format(cal.getTime())+ ".zip");
+                             if (!urlString.endsWith("zip")) {
+                                 urlString += ".zip";
+                             }
+                             File file = new File(urlString);
                              FileOutputStream stream = new FileOutputStream(file);
                              ZipOutputStream zos = new ZipOutputStream(stream);
                              for (String key: keySet){
                                 byte[] fileData = resultMap.get(key);
-                                ZipEntry entry = new ZipEntry( key + fileEnding);
+                                if (!(key.endsWith("txt") || key.endsWith("xml"))) {
+                                    key += fileEnding;
+                                }
+                                ZipEntry entry = new ZipEntry(key);
                                 zos.putNextEntry(entry);
                                 zos.write(fileData);
                                 zos.closeEntry();
@@ -846,13 +855,17 @@ public abstract class AbstractUtility {
                      }
                  } catch(Exception e){
                      logger.error(e.getStackTrace());
+                     e.printStackTrace();
                  }
             }
         }
     }
+
     public static void updateNameEditors(Set<Taxon> taxaToUpdate){
-        EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAME_EDITOR, taxaToUpdate);
+        for (Taxon tax: taxaToUpdate){
+            if (tax != null){
+                EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAME_EDITOR, tax.getUuid());
+            }
+        }
     }
-
-
-}
+}
\ No newline at end of file
index 5613a4e9bd8400599bfc0d91ff537b962c63c927..fc4be0c84cf0a12d6247cc8e42d6d113bacc97ad 100755 (executable)
@@ -15,11 +15,11 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  *
  * @author n.hoffmann
  * @created Sep 17, 2010
- * @version 1.0
  */
 public class CdmProgressMonitorAdapter implements eu.etaxonomy.cdm.common.monitor.IProgressMonitor, Serializable {
 
-       private IProgressMonitor progressMonitor;
+    private static final long serialVersionUID = 2890278753937078663L;
+    private IProgressMonitor progressMonitor;
 
        private CdmProgressMonitorAdapter (IProgressMonitor monitor){
                if(monitor == null){
index 1452f238707183e6b199550db3074e9ac5ddb55d..7a02c03b9596ddd10d938102a16b4483e0268f47 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.model;
 
 import org.eclipse.jface.resource.ColorRegistry;
@@ -16,10 +15,8 @@ import org.eclipse.swt.graphics.RGB;
 import eu.etaxonomy.taxeditor.preference.Resources;
 
 /**
- *
  * @author pplitzner
  * @since Nov 1, 2017
- *
  */
 public class ColorResources {
 
@@ -55,8 +52,18 @@ public class ColorResources {
            registerColor(registry, Resources.COLOR_CONTROL_BACKGROUND, 220, 220, 220);
            registerColor(registry, Resources.COLOR_CONTROL_SELECTED, 210, 210, 210);
            registerColor(registry, Resources.COLOR_CONTROL_SELECTED_FOCUS, 232,242,254);
-               registerColor(registry, Resources.COLOR_COMPOSITE_IRRELEVANT, 241,139,18);
-               registerColor(registry, Resources.SEARCH_VIEW_FOREGROUND, 192, 192, 192);
+
+           //colors1 and 2 are computed as next neutral color from the combined color
+           //light colors are computed as second last color tints
+           //see https://htmlcolorcodes.com/color-picker/
+               registerColor(registry, Resources.COLOR_COMPOSITE_IRRELEVANT1, 241,156,18);
+               registerColor(registry, Resources.COLOR_COMPOSITE_IRRELEVANT1_LIGHT, 251, 230, 196);
+        registerColor(registry, Resources.COLOR_COMPOSITE_IRRELEVANT2, 241, 190, 18);
+        registerColor(registry, Resources.COLOR_COMPOSITE_IRRELEVANT2_LIGHT, 251, 239, 196);
+        registerColor(registry, Resources.COLOR_COMPOSITE_IRRELEVANT1_2, 241, 140, 18);
+        registerColor(registry, Resources.COLOR_COMPOSITE_IRRELEVANT1_2_LIGHT, 251, 226, 196);
+
+        registerColor(registry, Resources.SEARCH_VIEW_FOREGROUND, 192, 192, 192);
                registerColor(registry, Resources.SEARCH_VIEW_FOCUS, 0, 0, 0);
                registerColor(registry, Resources.BLACK, 0, 0, 0);
                registerColor(registry, Resources.COLOR_LIST_BACKGROUND, 150,150,150);
index a9817cb3239ca374b1fb42324ea0e18de689982e..8336475651e9f40291a334ba4d78d35d164c80c4 100644 (file)
@@ -20,10 +20,10 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  *
  * @author n.hoffmann
  * @date Jan 18, 2012
- *
  */
 public class DefaultTermComparator<T extends DefinedTermBase> implements Comparator<T> {
-       @Override
+
+    @Override
        public int compare(T o1, T o2) {
                if (o1 == o2){
                        return 0;
@@ -42,4 +42,4 @@ public class DefaultTermComparator<T extends DefinedTermBase> implements Compara
                }
                return result;
        }
-};
+}
\ No newline at end of file
index 5f9319f6dfebfa46a8fc9963f468e8471a87ef25..51471d425ecb13016ff1bdb35f08b10fa49e0ed2 100644 (file)
@@ -76,7 +76,7 @@ public class DeleteResultMessagingUtils extends MessagingUtils {
         }
         message = message + "\n" ; //$NON-NLS-1$
         String stackTraceWithContext = getContextInfo(details);
-        CdmDeleteErrorDialog ced = new CdmDeleteErrorDialog(AbstractUtility.getShell(), title, message,new Status(IStatus.INFO, pluginId, relatedObjectsString.toString(), result.getExceptions().iterator().next()), stackTraceWithContext, result.getUpdatedObjects().toArray());
+        CdmDeleteErrorDialog ced = new CdmDeleteErrorDialog(AbstractUtility.getShell(), title, message,new Status(IStatus.INFO, pluginId, relatedObjectsString.toString(), result.getExceptions() != null? result.getExceptions().iterator().next(): null), stackTraceWithContext, result.getUpdatedObjects().toArray());
 
         ced.open();
     }
index 6520ec1ec64da76868a4c0cebc24331a5212fd53..a6a07de2ef32106a02b8caff9338b014b5cdc5a5 100644 (file)
@@ -6,35 +6,20 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.model;
 
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Set;
 
-import org.apache.commons.lang.StringUtils;
-import org.hibernate.LazyInitializationException;
+import org.apache.commons.lang3.StringUtils;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.format.common.ExtendedTimePeriodFormatter;
 import eu.etaxonomy.cdm.format.description.CategoricalDataFormatter;
+import eu.etaxonomy.cdm.format.description.DescriptionElementFormatter;
 import eu.etaxonomy.cdm.format.description.QuantitativeDataFormatter;
-import eu.etaxonomy.cdm.model.agent.AgentBase;
-import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.ExtendedTimePeriod;
-import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
-import eu.etaxonomy.cdm.model.common.LanguageStringBase;
-import eu.etaxonomy.cdm.model.common.Marker;
-import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.common.RelationshipBase;
-import eu.etaxonomy.cdm.model.common.RelationshipTermBase;
-import eu.etaxonomy.cdm.model.common.TimePeriod;
 import eu.etaxonomy.cdm.model.description.CategoricalData;
 import eu.etaxonomy.cdm.model.description.CommonTaxonName;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
@@ -43,42 +28,20 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
 import eu.etaxonomy.cdm.model.description.Distribution;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
-import eu.etaxonomy.cdm.model.description.KeyStatement;
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.description.QuantitativeData;
-import eu.etaxonomy.cdm.model.description.SpecimenDescription;
-import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.description.TaxonInteraction;
-import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
 import eu.etaxonomy.cdm.model.description.TemporalData;
 import eu.etaxonomy.cdm.model.description.TextData;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.name.HybridRelationship;
-import eu.etaxonomy.cdm.model.name.NameRelationship;
-import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
-import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.name.TextualTypeDesignation;
-import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
-import eu.etaxonomy.cdm.model.name.TypeDesignationStatusBase;
-import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
-import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.cdm.model.permission.Group;
-import eu.etaxonomy.cdm.model.permission.User;
-import eu.etaxonomy.cdm.model.reference.OriginalSourceBase;
-import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
-import eu.etaxonomy.cdm.model.term.Representation;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>DescriptionHelper class.</p>
+ * DescriptionHelper class.
  *
  * @author p.ciardelli
  * @author n.hoffmann
@@ -95,68 +58,8 @@ public class DescriptionHelper {
         * @param language a {@link eu.etaxonomy.cdm.model.common.Language} object.
         * @return a {@link java.lang.String} object.
         */
-       public static String getCache(DescriptionElementBase element,
-                       Language language) {
-
-               String mainElementLabel= null;
-               DescriptionBase<?> descr = element.getInDescription();
-               descr = CdmBase.deproxy(descr, DescriptionBase.class);
-
-               if (descr != null){
-                       if (descr.isInstanceOf(TaxonDescription.class)){
-                               Taxon taxon = CdmBase.deproxy(descr, TaxonDescription.class).getTaxon();
-                               if (taxon != null){
-                                       mainElementLabel = taxon.getTitleCache();
-                               }
-                       }else if (descr.isInstanceOf(SpecimenDescription.class)){
-                               SpecimenOrObservationBase<?> specimen = CdmBase.deproxy(descr, SpecimenDescription.class).getDescribedSpecimenOrObservation();
-                               if (specimen != null){
-                                       mainElementLabel = specimen.getTitleCache();
-                               }
-                       }else if (descr.isInstanceOf(TaxonNameDescription.class)){
-                               TaxonName name = CdmBase.deproxy(descr, TaxonNameDescription.class).getTaxonName();
-                               if (name != null){
-                                       mainElementLabel = name.getTitleCache();
-                               }
-                       }
-               }
-
-               String cache = null;
-               if (element instanceof TextData) {
-                       //cache = ((TextData) element).getText(language);
-                   cache = "Text Data";
-               }
-               if (element instanceof CommonTaxonName) {
-                       cache = ((CommonTaxonName) element).getName();
-               }
-               if (element instanceof TaxonInteraction) {
-                       Taxon taxon2 = ((TaxonInteraction) element).getTaxon2();
-                       if(taxon2 != null && taxon2.getName() != null){
-                               cache = taxon2.getName().getTitleCache();
-                       }else{
-                               cache = "No taxon chosen";
-                       }
-               }
-               if (element instanceof Distribution) {
-                       Distribution distribution = (Distribution) element;
-
-                       NamedArea area = distribution.getArea();
-                       if(area != null){
-                               cache =  area.getLabel();
-
-                               PresenceAbsenceTerm status = distribution.getStatus();
-                               if (status == null){
-                                       cache += ", no status";
-                               }else {
-                                       cache += ", " + status.getLabel();
-                               }
-                       }
-               }
-               String result = cache == null ? "" : cache;
-               if (isNotBlank(mainElementLabel)){
-                       result = CdmUtils.concat(" ", result, "(" + mainElementLabel + ")");
-               }
-               return result;
+       public static String getCache(DescriptionElementBase element, Language language) {
+           return DescriptionElementFormatter.format(element, language);
        }
 
        /**
@@ -196,6 +99,14 @@ public class DescriptionHelper {
                }
        }
 
+//     public static String getObjectDescription(Object o){
+//         if (o instanceof CdmBase){
+//             return ReferencingObjectFormatter.format((CdmBase)o, CdmStore.getDefaultLanguage());
+//         }else{
+//             return o.toString();
+//         }
+//     }
+
        /**
         * Set whatever the element's title cache equivalent is,
         * depending on its class, using the default language.
@@ -205,323 +116,22 @@ public class DescriptionHelper {
         */
        public static void setCache(DescriptionElementBase element,
                        String value) {
-               setCache(element, value, CdmStore.getDefaultLanguage());
-       }
-
-       public static String getObjectDescription(Object element) {
-           String resultString = null;
-               if (element instanceof IdentifiableEntity) {
-                       try{
-                           resultString = ((IdentifiableEntity) element).getTitleCache();
-                       }catch(LazyInitializationException e){
-                               String result = "No Session to initialize title cache for IdentifiableEntity";
-                               MessagingUtils.error(DescriptionHelper.class, result, e);
-                               resultString = "TODO: " + result;
-                       }
-               }else if (element instanceof OriginalSourceBase) {
-                       try{
-                               OriginalSourceBase<?> originalSource = (OriginalSourceBase<?>) element;
-//                             ISourceable sourcedObject = originalSource.getSourcedObj();
-                               //due to #5743 the bidirectionality for sourced object had to be removed
-                               String sourceObjectTitle = "sourced object data not available (#5743)";
-//                             if(sourcedObject instanceof IIdentifiableEntity){
-//                                     sourceObjectTitle = ((IdentifiableEntity) sourcedObject).getTitleCache();
-//                             }else if(sourcedObject instanceof DescriptionElementBase){
-//                                     sourceObjectTitle = "Element for description: " + ((DescriptionElementBase) sourcedObject).getInDescription().getTitleCache();
-//                             }else{
-//                                     throw new IllegalStateException("Unknown ISourceable object for given OriginalSourceBase");
-//                             }
-
-                               resultString = CdmUtils.concat("; ", new String[]{originalSource.getIdNamespace(), originalSource.getIdInSource(), sourceObjectTitle});
-                       }catch(LazyInitializationException e){
-                               String result = "Error initializing title cache for ISourceable of an OriginalSourceBase";
-                               MessagingUtils.error(DescriptionHelper.class, result, e);
-                               resultString = "TODO: " + result;
-                       }
-               }else if (element instanceof LanguageStringBase) {
-                   resultString = ((LanguageStringBase) element).getText();
-               }else if (element instanceof DescriptionElementBase) {
-                   resultString = getCache((DescriptionElementBase) element);
-               }else if (element instanceof RelationshipBase<?, ?, ?>) {
-                   resultString = getCache((RelationshipBase<?, ?, ?>) element);
-               }else if (element instanceof TypeDesignationBase<?>) {
-                   resultString = getCache((TypeDesignationBase<?>) element);
-               }else if (element instanceof HomotypicalGroup) {
-                   resultString = getCache((HomotypicalGroup) element);
-               }else if (element instanceof TaxonNode) {
-                   resultString = getCache((TaxonNode) element);
-               }else if (element instanceof DeterminationEvent) {
-                   resultString = getCache((DeterminationEvent) element);
-               }else if (element instanceof GatheringEvent){
-                       resultString = getCache((GatheringEvent) element);
-               }else if (element instanceof Marker) {
-                       Marker marker = (Marker) element;
-                       MarkerType type = marker.getMarkerType();
-                       resultString = (type == null ? "- no marker type -" : marker.getMarkerType().getLabel()) + " (" + marker.getFlag() + ")";
-               }else if (element instanceof User) {
-                       User user = (User) element;
-                       resultString = user.getUsername();
-               }else if (element instanceof Group) {
-                       Group group = (Group) element;
-                       resultString = group.getName();
-               }else if (element instanceof KeyStatement) {
-            KeyStatement keyStatement = (KeyStatement) element;
-            resultString = getCache(keyStatement);
-        }else{
-                       // TODO write return texts for HomotypicalGroup, etc.
-            resultString = element.toString();
-               }
-
-               if (resultString == null){
-                   resultString = element.toString();
-               }
-               return resultString;
-       }
-
-       private static String getCache(GatheringEvent gatheringEvent){
-               String ALTITUDE_PREFIX = "alt. ";
-               final String METER = "m";
-
-               String result = "";
-
-               //collector
-               AgentBase<?> collector = CdmBase.deproxy(gatheringEvent.getCollector());
-               String collectorStr = collector == null? null : collector.getTitleCache();
-               result = CdmUtils.concat(", ", result, collectorStr);
-
-               //gathering period
-               TimePeriod gatheringPeriod = gatheringEvent.getTimeperiod();
-               result = CdmUtils.concat(", ", result, (gatheringPeriod == null? null : gatheringPeriod.toString()));
-
-               //country
-               String strCountry = null;
-               NamedArea country = gatheringEvent.getCountry();
-               Representation repCountry = country == null ? null : country.getRepresentation(Language.DEFAULT());
-               strCountry = repCountry == null ? null: repCountry.getLabel();
-               result = CdmUtils.concat(", ", result, strCountry);
-
-               //locality
-               LanguageString locality = gatheringEvent.getLocality();
-               if (locality != null) {
-                       result = CdmUtils.concat(", ", result, locality.getText());
-               }
-
-               //elevation
-               String elevationStr;
-               if (isNotBlank(gatheringEvent.getAbsoluteElevationText())){
-                       elevationStr = gatheringEvent.getAbsoluteElevationText();
-               }else{
-                       String text = gatheringEvent.getAbsoluteElevationText();
-                       Integer min = gatheringEvent.getAbsoluteElevation();
-                       Integer max = gatheringEvent.getAbsoluteElevationMax();
-                       elevationStr = DerivedUnitFacade.distanceString(min, max, text, METER);
-               }
-               if (isNotBlank(elevationStr)){
-                       result = CdmUtils.concat(", " , result, ALTITUDE_PREFIX);
-                       result += elevationStr;
-               }
-
-               //exact locality
-               if (gatheringEvent.getExactLocation() != null){
-                       String exactLocation = gatheringEvent.getExactLocation().toSexagesimalString(false, false);
-                       result = CdmUtils.concat(", ", result, exactLocation);
-               }
-
-               return result;
-       }
-
-       private static String getCache(DeterminationEvent detEvent) {
-               //taxon
-               String taxonStr = null;
-               TaxonName taxonName = detEvent.getTaxonName();
-               TaxonBase<?> taxon = detEvent.getTaxon();
-               if (taxonName != null){
-                       taxonStr = taxonName.getTitleCache();
-               }
-               if (isBlank(taxonStr) && taxon != null){
-                       taxonStr = taxon.getTitleCache();
-               }
-               if (isBlank(taxonStr)){
-                       taxonStr = "no or unlabled taxon";
-               }
-
-               //unit
-               SpecimenOrObservationBase<?> unit = detEvent.getIdentifiedUnit();
-               String unitStr;
-               if (unit != null){
-                       unitStr = unit.getTitleCache();
-                       if (isBlank(unitStr)){
-                               unitStr = "Unlabled unit";
-                       }
-               }else{
-                       unitStr = "no unit";
-               }
-
-               String result = CdmUtils.concat(" determined as ", unitStr, taxonStr);
-
-               return result;
+               setCache(element, value, PreferencesUtil.getGlobalLanguage());
        }
 
-       private static String getCache(TaxonNode taxonNode) {
-               String result = "";
-               Classification classification = taxonNode.getClassification();
-               if (classification != null){
-                       String classificationStr = classification.getName() == null ? "" : classification.getName().getText();
-                       result = CdmUtils.concat("" , result, classificationStr);
-                       if (isBlank(result)){
-                               result = classification.toString();
-                       }
-               }
-               String parentStr;
-               TaxonNode parentNode = taxonNode.getParent();
-               if (parentNode == null){
-                       parentStr = "no parent";
-               }else{
-                       Taxon parentTaxon = parentNode.getTaxon();
-                       if (parentTaxon == null){
-                               parentStr = "no parent taxon";
-                       }else{
-                               TaxonName parentName = parentTaxon.getName();
-                               if (parentName == null){
-                                       parentStr = "child of " + parentTaxon.getTitleCache();
-                               }else{
-                                       parentStr = "child of " + parentName.getTitleCache();
-                               }
-                       }
-               }
-               result = CdmUtils.concat(": ", result, parentStr);
-
-               return result;
-       }
-
-       private static String getCache(TypeDesignationBase<?> designation) {
-               designation = CdmBase.deproxy(designation);
-               //from
-               String fromString = null;
-               Set<TaxonName> from = designation.getTypifiedNames();
-               if(from != null){
-                   for (TaxonName name : from){
-                       fromString = CdmUtils.concat(",", fromString, name.getTitleCache());
-                   }
-               }
-               //to
-               IdentifiableEntity<?> to = null;
-               String toStr = "";
-               if (designation.isInstanceOf(SpecimenTypeDesignation.class)){
-                       to = ((SpecimenTypeDesignation)designation).getTypeSpecimen();
-               }else if (designation.isInstanceOf(NameTypeDesignation.class)){
-                       to = ((NameTypeDesignation)designation).getTypeName();
-               }else if (designation.isInstanceOf(TextualTypeDesignation.class)){
-                   toStr = ((TextualTypeDesignation)designation).getPreferredText(CdmStore.getDefaultLanguage());
-               }else{
-                       throw new RuntimeException("Type Designation class not supported: " +  designation.getClass().getName());
-               }
-               toStr = to == null? toStr : to.getTitleCache();
-               //status
-               String typeLabel = null;
-               TypeDesignationStatusBase<?> status = designation.getTypeStatus();
-               if (status != null){
-                       Representation typeRepr = status.getPreferredRepresentation(CdmStore.getDefaultLanguage());
-                       if (typeRepr != null){
-                               typeLabel = typeRepr.getAbbreviatedLabel();
-                       }
-                       if (isBlank(typeLabel) && typeRepr != null){
-                               typeLabel = typeRepr.getLabel();
-                       }
-                       if (isBlank(typeLabel) ){
-                               typeLabel = status.getSymbol();
-                       }
-                       if (isBlank(typeLabel)){
-                               typeLabel = status.getTitleCache();
-                       }
-               }
-               if (isBlank(typeLabel)){
-                       typeLabel = "->";
-               }
-               //concat
-               String result = CdmUtils.concat(" ", new String[]{fromString, typeLabel, toStr});
-               return result;
-       }
-
-       private static String getCache(RelationshipBase<?, ?, ?> rel) {
-               rel = CdmBase.deproxy(rel);
-               RelationshipTermBase<?> type = rel.getType();
-               IdentifiableEntity<?> from;
-               IdentifiableEntity<?> to;
-               if (rel.isInstanceOf(NameRelationship.class)){
-                       from = ((NameRelationship)rel).getFromName();
-                       to = ((NameRelationship)rel).getToName();
-               }else if (rel.isInstanceOf(HybridRelationship.class)){
-                       from = ((HybridRelationship)rel).getParentName();
-                       to = ((HybridRelationship)rel).getHybridName();
-               }else if (rel.isInstanceOf(TaxonRelationship.class)){
-                       from = ((TaxonRelationship)rel).getFromTaxon();
-                       to = ((TaxonRelationship)rel).getToTaxon();
-               }else{
-                       try {
-                               Method fromMethod = rel.getClass().getMethod("getRelatedFrom");
-                               Method toMethod = rel.getClass().getMethod("getRelatedFrom");
-                               fromMethod.setAccessible(true);
-                               toMethod.setAccessible(true);
-                               from = (IdentifiableEntity<?>)fromMethod.invoke(rel);
-                               to = (IdentifiableEntity<?>)toMethod.invoke(rel);
-                       } catch (NoSuchMethodException | SecurityException | IllegalAccessException
-                               | IllegalArgumentException | InvocationTargetException e) {
-                               throw new RuntimeException(e);
-                       }
-               }
-               String typeLabel = null;
-               if (type != null){
-                       Representation typeRepr = type.getPreferredRepresentation(CdmStore.getDefaultLanguage());
-                       if (typeRepr != null){
-                               typeLabel = typeRepr.getAbbreviatedLabel();
-                       }
-                       if (isBlank(typeLabel) && typeRepr != null){
-                               typeLabel = typeRepr.getLabel();
-                       }
-                       if (isBlank(typeLabel) ){
-                               typeLabel = type.getSymbol();
-                       }
-                       if (isBlank(typeLabel)){
-                               typeLabel = type.getTitleCache();
-                       }
-               }
-               if (isBlank(typeLabel)){
-                       typeLabel = "->";
-               }
-               String result = CdmUtils.concat(" ", new String[]{from == null ? null : from.getTitleCache(),
-                               typeLabel, to == null? null : to.getTitleCache()});
-               return result;
-       }
-
-
-       private static String getCache(HomotypicalGroup hg) {
-               String result = "";
-               for (TaxonName tnb : hg.getTypifiedNames()){
-                       result = CdmUtils.concat(", ", result, tnb.getTitleCache());
-               }
-               if (isBlank(result)){
-                       result = "No typified names";
-               }
-               return result;
-       }
-
-       private static String getCache(KeyStatement ks) {
-        String result = "";
-
-        result = "KeyStatement";
-
-        return result;
-    }
-
-       public static String getObjectClassname(Object element) {
-               return element.getClass().getSimpleName();
-       }
+//     public static String getObjectClassname(Object element) {
+//             if (element instanceof CdmBase){
+//                 return ((CdmBase) element).getUserFriendlyTypeName();
+//             }else{
+//                 return element.getClass().getSimpleName();
+//             }
+//     }
 
        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(PreferencesUtil.getGlobalLanguage()).getLabel();
                } else{
                        return "No label set";
                }
@@ -543,7 +153,7 @@ public class DescriptionHelper {
        }
 
        private static List<Language> getLanguageList(){
-               return Arrays.asList(new Language[]{CdmStore.getDefaultLanguage()});
+               return Arrays.asList(new Language[]{PreferencesUtil.getGlobalLanguage()});
        }
 
        public static String getDistributionText(Distribution element) {
@@ -555,12 +165,12 @@ public class DescriptionHelper {
                NamedArea area = distribution.getArea();
                if(area != null){
 
-                       text = NamedArea.labelWithLevel(area, CdmStore.getDefaultLanguage());
+                       text = NamedArea.labelWithLevel(area, PreferencesUtil.getGlobalLanguage());
 
                        PresenceAbsenceTerm status = distribution.getStatus();
 
                        if (status != null) {
-                               text += ", " + status.getLabel();
+                               text += ", " + status.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage()).getLabel();
                        }else{
                                text += ", NO STATUS";
                        }
@@ -569,7 +179,7 @@ public class DescriptionHelper {
        }
 
        public static  String getImageText(Media media) {
-                LanguageString title = media.getTitle(CdmStore.getDefaultLanguage());
+                LanguageString title = media.getTitle(PreferencesUtil.getGlobalLanguage());
                if (title != null) {
                        return title.getText();
                }
@@ -585,14 +195,14 @@ public class DescriptionHelper {
                                        text += source.getCitation().getTitleCache();
                                }
                                if(source.getNameUsedInSource() != null){
-                                       text += " [ " + source.getNameUsedInSource().getTitleCache() + " ]";
+                                       text += " [" + source.getNameUsedInSource().getTitleCache() + "]";
                                }
                        }
                        if(isBlank(text)){
                                text = "No sources provided";
                        }
                }else{
-                       List<Language> languages = Arrays.asList(new Language[]{CdmStore.getDefaultLanguage()});
+                       List<Language> languages = Arrays.asList(new Language[]{PreferencesUtil.getGlobalLanguage()});
                        LanguageString languageString = element.getPreferredLanguageString(languages);
                        text = languageString != null ? languageString.getText() : null;
                }
@@ -616,12 +226,34 @@ public class DescriptionHelper {
                if (name == null || name.length() == 0) {
                        name = "No name provided";
                }
+               if (commonName.getTransliteration()!= null && !StringUtils.isBlank(commonName.getTransliteration())) {
+                   name += "/" +commonName.getTransliteration() + " ";
+               }
                Language language = commonName.getLanguage();
-               if (language == null) {
-                       name += " (No language provided)";
-               } else {
-                       name += " (" + language.getLabel(CdmStore.getDefaultLanguage()) + ")";
+               NamedArea area = commonName.getArea();
+               String areaLabel = null;
+               String languageLabel = null;
+               if (area != null){
+                       areaLabel = area.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage()).getLabel();
+               }
+               if (language != null){
+                       languageLabel = language.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage()).getLabel();
+               }
+               if (areaLabel != null || languageLabel != null){
+                       name += " (" ;
+                       if (languageLabel != null){
+                               name += languageLabel;
+                       }
+                       if (areaLabel != null){
+                               if (languageLabel != null){
+                                       name += ", ";
+                               }
+                               name += areaLabel;
+                       }
+                       name +=  ")";
                }
+
+
                return name;
        }
 
@@ -630,7 +262,7 @@ public class DescriptionHelper {
                if (text == null || text.length() == 0) {
                        text = "No label provided";
                }
-
+               
                return text;
        }
 
@@ -703,4 +335,4 @@ public class DescriptionHelper {
        private static boolean isBlank(String str){
                return StringUtils.isBlank(str);
        }
-}
+}
\ No newline at end of file
index 98785ed13436098231f35e9da2d0377e65b67554..102b4651183342cc5eba2fd2feef95ec82dc84ed 100644 (file)
@@ -31,7 +31,7 @@ import eu.etaxonomy.cdm.model.term.TermTree;
 public class FeatureNodeContainerTree {
 
        /** Constant <code>comparator</code> */
-       // TODO we will do this with a ViewerSorter
+       // TODO we will do this with a ViewerComparator
        public static Comparator<DescriptionElementBase> comparator = new Comparator<DescriptionElementBase>() {
 
                @Override
index 5a742448168e443ce5e9817ae460d6095216a2b3..ee97480d84b8d27aa8c76ff7ac02e5ade807894f 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.model;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 
@@ -18,7 +18,6 @@ import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
  *
  * @author pplitzner
  * @date Dec 3, 2014
- *
  */
 public interface IDerivedUnitFacadePart {
 
index 5cc3c37c783bae459910afdb29c8c9b307737c70..74a81ac4d98c8d1c6e94fb88072c77764210447f 100644 (file)
@@ -6,17 +6,14 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.model;
 
-
 /**
  * Interface for handling the current "dirty" state of an object. An object is
  * dirty when changes are done but not saved/persisted yet.
- * 
+ *
  * @author n.hoffmann
  * @created Mar 8, 2010
- * @version 1.0
  */
 public interface IDirtyMarkable {
 
index 169086fe41641a748d44198e28e4bbebb7f63589..fd3cfc9fc9c91a60a4e152f0cd07cb7d16e8dff8 100644 (file)
@@ -84,8 +84,6 @@ public class ImageResources {
        public static final String HETEROTYPIC_SYN_ORIGINAL_ICON = "heterotypic_syn_original_icon";
        /** Constant <code>MISAPPLIED_NAME_ICON="misapplied_icon"</code> */
        public static final String MISAPPLIED_NAME_ICON = "misapplied_icon";
-       /** Constant <code>INVALID_TYPE_DESIGNATION_ICON="invalid_type_designation_icon"</code> */
-       public static final String INVALID_TYPE_DESIGNATION_ICON = "invalid_icon";
        /** Constant <code>PRO_PARTE_SYNONYM_ICON="pro_parte_synonym_icon"</code> */
     public static final String PRO_PARTE_SYNONYM_ICON = "proparte_syn_icon";
     /** Constant <code>PRO_PARTE_SYNONYM_ICON="pro_parte_synonym_icon"</code> */
@@ -195,6 +193,8 @@ public class ImageResources {
     public static final String FUNNEL_ICON = "FUNNEL_ICON";
     public static final String FUNNEL_ICON_EXCLAMATION = "FUNNEL_ICON_EXCLAMATION";
 
+    public static final String PROHIBITED = "prohibited";
+
 
 
        /***************************************************************************
@@ -329,8 +329,6 @@ public class ImageResources {
                                "homotypic_syn_hetero_group.gif");
                registerImage(registry, MISAPPLIED_NAME_ICON,
                                "misapplied_no_bg.gif");
-               registerImage(registry, INVALID_TYPE_DESIGNATION_ICON,
-                "invalid.gif");
                registerImage(registry, PRO_PARTE_SYNONYM_ICON,
                 "proparte-bright.gif");
            registerImage(registry, PARTIAL_SYNONYM_ICON,
@@ -473,6 +471,8 @@ public class ImageResources {
                        "funnel-icon.png");
                registerImage(registry, FUNNEL_ICON_EXCLAMATION,
                        "funnel-exclamation-icon.png");
+               registerImage(registry, PROHIBITED,
+                "no_entry.png");
 
        }
 
index 80c1822742f58ff246068004f6c76401c0f86431..64f136f177f10f58e993eee406942f046cfd7b90 100644 (file)
@@ -25,19 +25,11 @@ import org.eclipse.jface.viewers.StructuredSelection;
  *
  * @author p.ciardelli
  * @created 03.07.2009
- * @version 1.0
  */
 public class LineSelection extends TextSelection implements IStructuredSelection {
 
        private StructuredSelection structuredSelection;
 
-       /**
-        * <p>Constructor for LineSelection.</p>
-        *
-        * @param selection a {@link org.eclipse.jface.text.ITextSelection} object.
-        * @param document a {@link org.eclipse.jface.text.IDocument} object.
-        * @param selectedObject a {@link java.lang.Object} object.
-        */
        public LineSelection(ITextSelection selection, IDocument document, Object selectedObject) {
                super(document, selection.getOffset(), selection.getLength());
                if (selectedObject != null) {
@@ -47,66 +39,26 @@ public class LineSelection extends TextSelection implements IStructuredSelection
                }
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.IStructuredSelection#getFirstElement()
-        */
-       /**
-        * <p>getFirstElement</p>
-        *
-        * @return a {@link java.lang.Object} object.
-        */
        @Override
     public Object getFirstElement() {
                return structuredSelection.getFirstElement();
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.IStructuredSelection#iterator()
-        */
-       /**
-        * <p>iterator</p>
-        *
-        * @return a {@link java.util.Iterator} object.
-        */
        @Override
     public Iterator<?> iterator() {
                return structuredSelection.iterator();
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.IStructuredSelection#size()
-        */
-       /**
-        * <p>size</p>
-        *
-        * @return a int.
-        */
        @Override
     public int size() {
                return structuredSelection.size();
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.IStructuredSelection#toArray()
-        */
-       /**
-        * <p>toArray</p>
-        *
-        * @return an array of {@link java.lang.Object} objects.
-        */
        @Override
     public Object[] toArray() {
                return structuredSelection.toArray();
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.viewers.IStructuredSelection#toList()
-        */
-       /**
-        * <p>toList</p>
-        *
-        * @return a {@link java.util.List} object.
-        */
        @Override
     public List<?> toList() {
                return structuredSelection.toList();
index da63b1a75124027e82f4234c99bfbff653548330..059dc4235634dec68ce19d4a3601716447557fee 100644 (file)
@@ -7,8 +7,9 @@ import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.lang.exception.ExceptionUtils;
-import org.apache.log4j.Logger;
+import org.apache.commons.lang3.exception.ExceptionUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.MultiStatus;
 import org.eclipse.core.runtime.Platform;
@@ -41,16 +42,17 @@ public class MessagingUtils {
     public final static String REMOTE_ACCESS_FAILURE_MESSAGE = "Maybe the server is currently not available. If the problem persists please contact the server admin with the error trace below.";
     public static final String WIDGET_IS_DISPOSED_MESSAGE = "A widget was called, which was already disposed";
     public static final String ACCESS_DENIED = "The connection to the server could not be established because the access was denied.";
-
+    public static final String PERMISSION_DENIED = "You do not have the permission to ";
+    public static final String RESTART_EDITOR_MESSAGE = "An error occured that may require restarting the editor.";
     /**
      * Gets the Log4J logger for a given class
      *
      * @param clazz
      *            a {@link java.lang.Class} object.
-     * @return a {@link org.apache.log4j.Logger} object.
+     * @return a {@link org.apache.logging.log4j.Logger} object.
      */
     public static Logger getLog4JLogger(Class<?> clazz) {
-        return Logger.getLogger(clazz);
+        return LogManager.getLogger(clazz);
     }
 
     /**
@@ -202,8 +204,11 @@ public class MessagingUtils {
         LocalDateTime date = LocalDateTime.now();
         String dateTimeStr = date.format(DateTimeFormatter.ISO_DATE_TIME);
 
-        if(RemoteExecutionTimestampsUtil.getLastServiceMethod() != null){
-            contextInfo.add("last remote method : " + RemoteExecutionTimestampsUtil.getLastServiceMethod());
+        if(RemoteExecutionTimestampsUtil.getLastService() != null){
+            contextInfo.add("last remote service : " + RemoteExecutionTimestampsUtil.getLastService());
+        }
+        if(RemoteExecutionTimestampsUtil.getLastMethod() != null){
+            contextInfo.add("last remote method : " + RemoteExecutionTimestampsUtil.getLastMethod());
         }
         if(RemoteExecutionTimestampsUtil.getLastRequestClientTime() != null){
             contextInfo.add("last remote request client time : " + RemoteExecutionTimestampsUtil.getLastRequestClientTime());
@@ -314,7 +319,7 @@ public class MessagingUtils {
         // We need to build a MultiStatus object since the simple
         // idea of writing out the stack trace as a single string
         // leads to a single line on windows
-        List<Status> childStatuses = new ArrayList<Status>();
+        List<Status> childStatuses = new ArrayList<>();
 
         // add context info
         List<String> contextInfo = getContextInfo();
index 1cf9d3f80e9d6ebe23d8faa91629cfac5f52d10b..6625422b4aa86357235e658e3a663bc0bb6318e7 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.model;
 
 import java.util.ArrayList;
@@ -17,31 +16,17 @@ import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
- * <p>NomenclaturalCodeHelper class.</p>
- *
  * @author p.ciardelli
  * @created 11.09.2009
- * @version 1.0
  */
 public class NomenclaturalCodeHelper {
 
-       /**
-        * <p>getAllCodes</p>
-        *
-        * @return a {@link java.util.List} object.
-        */
        public static List<NomenclaturalCode> getAllCodes() {
                return Arrays.asList(NomenclaturalCode.values());
        }
 
-
-       /**
-        * <p>getSupportedCodes</p>
-        *
-        * @return a {@link java.util.List} object.
-        */
        public static List<NomenclaturalCode> getSupportedCodes() {
-               List<NomenclaturalCode> supportedCodes = new ArrayList<NomenclaturalCode>();
+               List<NomenclaturalCode> supportedCodes = new ArrayList<>();
                NomenclaturalCode nomenclaturalCode =PreferencesUtil.getPreferredNomenclaturalCode();
                for (NomenclaturalCode code : getAllCodes()) {
                        if (isSupported(code)) {
@@ -55,10 +40,6 @@ public class NomenclaturalCodeHelper {
                return supportedCodes;
        }
 
-       /**
-        * @param code
-        * @return
-        */
        private static boolean isSupported(NomenclaturalCode code) {
                if (code.equals(NomenclaturalCode.ICNAFP ) || code.equals(NomenclaturalCode.ICZN)) {
                        return true;
@@ -67,16 +48,9 @@ public class NomenclaturalCodeHelper {
                }
        }
 
-
-       /**
-        * <p>getDescription</p>
-        *
-        * @param code a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode} object.
-        * @return a {@link java.lang.String} object.
-        */
        public static String getDescription(NomenclaturalCode code) {
-               if (code.equals(NomenclaturalCode.ICNB)) {
-                       return "International Code of Nomenclature of Bacteria (ICNB)";
+               if (code.equals(NomenclaturalCode.ICNP)) {
+                       return "International Code of Nomenclature of Prokaryotes (ICNP)";
                }
                if (code.equals(NomenclaturalCode.ICNAFP )) {
                        return "International Code of Botanical Nomenclature (ICNAFP )";
@@ -93,12 +67,7 @@ public class NomenclaturalCodeHelper {
                return code.name();
        }
 
-       /**
-        * <p>getDefaultCode</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode} object.
-        */
        public static NomenclaturalCode getDefaultCode() {
                return NomenclaturalCode.ICNAFP ;
        }
-}
+}
\ No newline at end of file
index 7096c1453335a73ecc6b13f112781ab1599465e3..2bb8c0f4e3c80c5059c0f9b2ce92ea2575a1091a 100644 (file)
@@ -1,21 +1,18 @@
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.model;
 
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 
 /**
- * 
  * @author n.hoffmann
  * @created Mar 30, 2011
- * @version 1.0
  */
 public class PolytomousKeyRelationship {
        private Object destination;
@@ -26,32 +23,16 @@ public class PolytomousKeyRelationship {
                this.destination = HibernateProxyHelper.deproxy(destination);
        }
 
-       /**
-        * @param destination
-        *            the destination to set
-        */
        public void setDestination(Object destination) {
                this.destination = destination;
        }
-
-       /**
-        * @return the destination
-        */
        public Object getDestination() {
                return destination;
        }
 
-       /**
-        * @param source
-        *            the source to set
-        */
        public void setSource(Object source) {
                this.source = source;
        }
-
-       /**
-        * @return the source
-        */
        public Object getSource() {
                return source;
        }
index 168c4d5628d46a8688fac995f3e709b130457f88..90a64f56263d43b98201a1b3b7f22ac8b45e01be 100644 (file)
@@ -1,5 +1,10 @@
 /**
+ * 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.model;
 
index 0bf20e1a6d14ca6c00ae6ab9682263ab14489d52..ed6717aefc82a1ee6ccb76b91b624fa28e71f5a1 100644 (file)
@@ -1,9 +1,14 @@
 /**
- *
- */
+* 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.model;
 
-import org.apache.commons.lang.NotImplementedException;
+import org.apache.commons.lang3.NotImplementedException;
 
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
@@ -18,48 +23,25 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @author n.hoffmann
  * @created Nov 30, 2011
  */
-public class TaxonRelationshipTypeInverseContainer extends DefinedTermBase<DefinedTermBase> {
+public class TaxonRelationshipTypeInverseContainer  {
 
        private static final long serialVersionUID = 7225140304186547675L;
+
        private boolean inverse;
        private TaxonRelationshipType type;
 
-
-       /**
-        *
-        * @param sourceTaxon
-        * @param relationship
-        * @return
-        */
        public static TaxonRelationshipTypeInverseContainer CreateFromSource(Taxon sourceTaxon, TaxonRelationship relationship){
                return new TaxonRelationshipTypeInverseContainer(relationship.getType(), isRelationshipInverse(sourceTaxon, relationship));
        }
 
-       /**
-        *
-        * @param sourceTaxon
-        * @param relationship
-        * @return
-        */
        public static Taxon RelatedTaxon(Taxon sourceTaxon, TaxonRelationship relationship){
                return isRelationshipInverse(sourceTaxon, relationship) ? relationship.getFromTaxon() : relationship.getToTaxon();
        }
 
-       /**
-        *
-        * @param sourceTaxon
-        * @param relationship
-        * @return
-        */
        private static boolean isRelationshipInverse(Taxon sourceTaxon, TaxonRelationship relationship){
                return relationship.getFromTaxon().equals(sourceTaxon) ? false : true;
        }
 
-       /**
-        *
-        * @param type
-        * @param inverse
-        */
        public TaxonRelationshipTypeInverseContainer(TaxonRelationshipType type, boolean inverse){
                this.inverse = inverse;
                this.setType(type);
@@ -70,12 +52,11 @@ public class TaxonRelationshipTypeInverseContainer extends DefinedTermBase<Defin
        }
 
        /**
-        * returns the representation for the given language, when there is no representation for this language available, the english version is returned.
+        * Returns the representation for the given language, when there is no representation for this language available, the english version is returned.
         * @param language
         * @return representation
-        *
         */
-       @Override
+//     @Override
     public Representation getRepresentation(Language language){
                Representation result;
                result = inverse ? type.getInverseRepresentation(language) : type.getRepresentation(language);
@@ -96,16 +77,16 @@ public class TaxonRelationshipTypeInverseContainer extends DefinedTermBase<Defin
 
 
        /**
-        * returns the label of the TaxonRelationshipType for a given language, if the representation of the language is not available the english representation is returned.
+        * Returns the label of the TaxonRelationshipType for a given language, if the representation of the language is not available the english representation is returned.
         * @param language
         * @return label
         */
-       @Override
+//     @Override
     public String getLabel(Language language){
                return getRepresentation(language).getLabel();
        }
 
-       @Override
+//     @Override
     public String getDescription(Language language){
                return getRepresentation(language).getDescription();
        }
@@ -126,20 +107,19 @@ public class TaxonRelationshipTypeInverseContainer extends DefinedTermBase<Defin
                this.type = type;
        }
 
-       @Override
+//     @Override
        public String getTitleCache() {
                return String.format("%s (%s)", getLabel(CdmStore.getDefaultLanguage()), getAbbreviatedLabel());
        }
 
-       @Override
+//     @Override
        public void resetTerms() {
                throw new NotImplementedException();
        }
 
-       @Override
+//     @Override
        protected void setDefaultTerms(
                        TermVocabulary<DefinedTermBase> termVocabulary) {
                throw new NotImplementedException();
        }
-
-}
+}
\ No newline at end of file
index 78332335faf4b61aa1d28b1d94a7f9b256bdc77f..c450729cfc2026fa6975110592d1cab71595dff8 100644 (file)
@@ -1,3 +1,11 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.model;
 
 import org.eclipse.swt.dnd.ByteArrayTransfer;
index fecd37545c4628b31a41637c6328347cae2f8137..059b9c80f539929cd5eb1bb7d575d253fa816491 100644 (file)
@@ -1,29 +1,25 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.model;
 
 import org.eclipse.swt.graphics.GC;
 import org.eclipse.swt.widgets.Control;
 
 /**
- * <p>TextHelper class.</p>
- *
  * @author n.hoffmann
  * @created Mar 30, 2010
- * @version 1.0
  */
 public class TextHelper {
-       
+
        /** Constant <code>ELLIPSIS="..."</code> */
        public static final String ELLIPSIS = "...";
-               
+
        /**
         * <p>shortenText</p>
         *
@@ -45,7 +41,7 @@ public class TextHelper {
                }
                int length = textValue.length();
                int charsToClip = Math.round(0.95f*length * (1 - ((float)maxWidth/maxExtent)));
-               
+
                int end = length - charsToClip;
                while (end > 0) {
                        String s1 = textValue.substring(0, end);
@@ -59,9 +55,9 @@ public class TextHelper {
                }
                gc.dispose();
                return textValue;
-               
+
        }
-       
+
        public static String deproxyClassName(Class clazz){
                String name = clazz.getSimpleName();
                if (name.indexOf("_$$")>-1){
index 5c733796e256671258caf430499fa764f61b7fae..dee0978a7e8bd89c828cbe78c31bfc4fef788ea2 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.newWizard;
 
 import org.eclipse.e4.ui.workbench.IWorkbench;
@@ -14,28 +13,20 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.swt.widgets.Display;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 
 /**
- *
  * @author n.hoffmann
  * @created Jun 1, 2010
- * @version 1.0
  */
-public abstract class AbstractNewEntityWizard<T> extends Wizard implements
-               IConversationEnabled {
-
-       private ConversationHolder conversation;
+public abstract class AbstractNewEntityWizard<T>
+        extends Wizard {
 
        protected CdmFormFactory formFactory;
 
        private T entity;
 
-       private IStructuredSelection selection;
+       protected IStructuredSelection selection;
 
        public AbstractNewEntityWizard(){
                setWindowTitle(String.format("New %s", getEntityName()));
@@ -43,19 +34,12 @@ public abstract class AbstractNewEntityWizard<T> extends Wizard implements
 
        /**
         * FIXME there might be a smarter way to do this,
-        *
-        * @return
         */
        protected abstract String getEntityName();
 
-       /** {@inheritDoc} */
        @Override
        public boolean performFinish() {
                saveEntity();
-
-               conversation.commit();
-               conversation.close();
-               conversation = null;
                return true;
        }
 
@@ -72,10 +56,8 @@ public abstract class AbstractNewEntityWizard<T> extends Wizard implements
         */
        protected abstract void saveEntity();
 
-       /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
            formFactory = new CdmFormFactory(Display.getCurrent(), null);
-           conversation = CdmStore.createConversation();
            this.selection = selection;
                entity = createNewEntity();
 
@@ -83,16 +65,7 @@ public abstract class AbstractNewEntityWizard<T> extends Wizard implements
 
        protected abstract T createNewEntity();
 
-       @Override
-    public ConversationHolder getConversationHolder() {
-               return conversation;
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void update(CdmDataChangeMap changeEvents) {}
-
        public IStructuredSelection getSelection() {
                return selection;
        }
-}
+}
\ No newline at end of file
old mode 100755 (executable)
new mode 100644 (file)
index cd6ed01..606f5a7
@@ -14,8 +14,6 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.swt.widgets.Display;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -26,10 +24,7 @@ import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
  * @created Jun 1, 2010
  * @version 1.0
  */
-public abstract class AbstractNewEntityWizardParentChild<T> extends Wizard implements
-               IConversationEnabled {
-
-       private ConversationHolder conversation;
+public abstract class AbstractNewEntityWizardParentChild<T> extends Wizard {
 
        protected CdmFormFactory formFactory;
 
@@ -58,11 +53,6 @@ public abstract class AbstractNewEntityWizardParentChild<T> extends Wizard imple
                return true;
            }
                saveEntity();
-
-               conversation.commit();
-               conversation.close();
-               conversation = null;
-
                finished = true;
                return true;
        }
@@ -92,7 +82,6 @@ public abstract class AbstractNewEntityWizardParentChild<T> extends Wizard imple
        /** {@inheritDoc} */
        public void init(IWorkbench workbench, IStructuredSelection selection) {
            formFactory = new CdmFormFactory(Display.getCurrent(), null);
-           conversation = CdmStore.createConversation();
            this.selection = selection;
 
            createParentEntity();
@@ -100,19 +89,8 @@ public abstract class AbstractNewEntityWizardParentChild<T> extends Wizard imple
 
        }
 
-
-
        protected abstract void createParentEntity();
 
-       @Override
-    public ConversationHolder getConversationHolder() {
-               return conversation;
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void update(CdmDataChangeMap changeEvents) {}
-
        public IStructuredSelection getSelection() {
                return selection;
        }
index bc1f0011b223da65a055d8ee233c5f6e354a0215..7a968133d315e4336006b411f01401b9404fe9be 100644 (file)
@@ -8,7 +8,6 @@
  */
 package eu.etaxonomy.taxeditor.newWizard;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.molecular.Amplification;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -28,9 +27,8 @@ public class AmplificationGeneralWizardPage extends AbstractCdmEntityWizardPage<
      * @param conversation
      * @param entity
      */
-    public AmplificationGeneralWizardPage(CdmFormFactory formFactory,
-            ConversationHolder conversation, Amplification entity) {
-        super(formFactory, conversation, entity);
+    public AmplificationGeneralWizardPage(CdmFormFactory formFactory, Amplification entity) {
+        super(formFactory, entity);
         setTitle("General Amplification Data");
     }
 
index 0718bb4ded574fb2376ad9a4820203a421dedfcf..bb825f494099d5eff71290c0c910ec60edde264c 100644 (file)
@@ -1,12 +1,11 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.newWizard;
 
 import java.util.List;
@@ -26,8 +25,6 @@ import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Text;
 
-import eu.etaxonomy.cdm.api.application.ICdmRepository;
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.ext.ipni.IIpniService;
 import eu.etaxonomy.cdm.ext.ipni.IpniService;
 import eu.etaxonomy.cdm.model.reference.Reference;
@@ -36,60 +33,47 @@ import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 
 /**
- * <p>ExternalReferenceServiceWizardPage class.</p>
- *
  * @author n.hoffmann
  * @created Sep 16, 2010
- * @version 1.0
  */
 public class ExternalReferenceServiceWizardPage extends WizardPage implements SelectionListener, ISelectionChangedListener {
 
-       private ConversationHolder conversation;
        private CdmFormFactory formFactory;
        private Reference entity;
        private Composite control;
        private ListViewer viewer;
-       
+
        private IIpniService ipniService;
        private Text text_query;
        private Button button_search;
 
-       /**
-        * <p>Constructor for ExternalReferenceServiceWizardPage.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param entity a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-        */
-       protected ExternalReferenceServiceWizardPage(CdmFormFactory formFactory, ConversationHolder conversation, Reference entity) {
+       protected ExternalReferenceServiceWizardPage(CdmFormFactory formFactory, Reference entity) {
                super("ExternalReferenceServiceWizardPage");
                this.formFactory = formFactory;
                this.entity = entity;
-               this.conversation = conversation;
                ipniService = new IpniService();
-               
+
                setDescription("Query IPNI service for references");
        }
-       
-       /** {@inheritDoc} */
+
        @Override
        public void createControl(Composite parent) {
                control = formFactory.createComposite(parent);
-               
+
                control.setLayout(LayoutConstants.LAYOUT(2, false));
-               
+
                text_query = new Text(control, SWT.SINGLE | SWT.BORDER);
                text_query.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
-               
+
                button_search = new Button(control, SWT.PUSH);
                button_search.setLayoutData(LayoutConstants.RIGHT());
                button_search.setText("Search");
-               
+
                button_search.addSelectionListener(this);
-               
+
                viewer = new ListViewer(control);
                viewer.getControl().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2,1));
-               
+
                viewer.setContentProvider(new IStructuredContentProvider(){
 
                        @Override
@@ -99,14 +83,14 @@ public class ExternalReferenceServiceWizardPage extends WizardPage implements Se
                                }
                                return null;
                        }
-                       
+
                        @Override
                        public void inputChanged(Viewer viewer, Object oldInput,
                                        Object newInput) {}
-                       
+
                        @Override
                        public void dispose() {}
-                       
+
                });
                viewer.setLabelProvider(new LabelProvider(){
                        @Override
@@ -117,34 +101,29 @@ public class ExternalReferenceServiceWizardPage extends WizardPage implements Se
                                return "Element is not a reference";
                        }
                });
-               
+
                viewer.addSelectionChangedListener(this);
-               
+
                setControl(control);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void widgetSelected(SelectionEvent e) {
                String query = text_query.getText();
-               List<Reference> publications = ipniService.getPublications(query, null, (ICdmRepository) CdmStore.getCurrentApplicationConfiguration(), null);
+               List<Reference> publications = ipniService.getPublications(query, null, CdmStore.getCurrentApplicationConfiguration(), null);
                viewer.setInput(publications);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {}
 
-       /** {@inheritDoc} */
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
                IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
-               
+
                Reference selectedReference = (Reference) selection.getFirstElement();
                if(selectedReference != null){
                        ((AbstractNewEntityWizard) getWizard()).setEntity(selectedReference);
                }
        }
-       
-       
-}
+}
\ No newline at end of file
index 78b79339fa3c1c713eac78b51efca613c3182dbf..b8577246b376e8a6354931b965e2c100d6e3ac1f 100644 (file)
@@ -24,7 +24,7 @@ public class NewAmplificationWizard  extends AbstractNewEntityWizard<Amplificati
     /** {@inheritDoc} */
     @Override
     public void addPages() {
-        amplificationGeneralPage = new AmplificationGeneralWizardPage(formFactory, getConversationHolder(), getEntity());
+        amplificationGeneralPage = new AmplificationGeneralWizardPage(formFactory, getEntity());
         addPage(amplificationGeneralPage);
     }
 
index 7085e5554946a84a12a1c8824a805b322836d797..90a39cf776bf6c647709a4ad1c8eba1db4042a51 100644 (file)
@@ -41,7 +41,7 @@ public class NewClassificationWizard extends AbstractNewEntityWizard<Classificat
 
        @Override
        public void addPages() {
-               classificationWizardPage = new ClassificationWizardPage(formFactory, getConversationHolder(), getEntity());
+               classificationWizardPage = new ClassificationWizardPage(formFactory, getEntity());
                addPage(classificationWizardPage);
        }
 
index 697705e2f54d4108ac0c477fb6e8f20d21bb22d8..1b2d132aaebd1bd5f5dde76f814e09f02589caed 100644 (file)
@@ -26,7 +26,7 @@ public class NewCollectionWizard extends AbstractNewEntityWizard<Collection> {
        /** {@inheritDoc} */
        @Override
        public void addPages() {
-               addPage(new CollectionWizardPage(formFactory, getConversationHolder(), getEntity()));
+               addPage(new CollectionWizardPage(formFactory,  getEntity()));
        }
 
        /* (non-Javadoc)
old mode 100755 (executable)
new mode 100644 (file)
index 0710d31..ba6c197
@@ -11,6 +11,7 @@ package eu.etaxonomy.taxeditor.newWizard;
 import eu.etaxonomy.cdm.api.service.IReferenceService;
 import eu.etaxonomy.cdm.model.common.Marker;
 import eu.etaxonomy.cdm.model.common.MarkerType;
+import eu.etaxonomy.cdm.model.reference.ReferenceType;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -21,6 +22,13 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class NewCommonNameReferenceWizard extends NewReferenceWizard {
 
 
+    /**
+     * @param type
+     */
+    public NewCommonNameReferenceWizard(ReferenceType type) {
+        super(type);
+    }
+
     @Override
     protected void saveEntity() {
         getEntity().addMarker(Marker.NewInstance(MarkerType.COMMON_NAME_REFERENCE(), true));
index 513f38bd031982cc98171c5cd126548bafb42312..68b77953211edfb56d3c7ac5aa70d42d9919f174 100644 (file)
@@ -6,12 +6,11 @@
  * 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.newWizard;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
@@ -30,9 +29,11 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventWizardPage;
 /**
  * @author n.hoffmann
  * @created Jun 16, 2010
- * @version 1.0
  */
-public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<SpecimenOrObservationBase> implements IDerivedUnitFacadePart{
+public class NewDerivedUnitBaseWizard
+        extends AbstractNewEntityWizard<SpecimenOrObservationBase>
+        implements IDerivedUnitFacadePart{
+
     private SpecimenOrObservationType specOrObsType = null;
 
     public NewDerivedUnitBaseWizard() {
@@ -43,23 +44,23 @@ public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<SpecimenOr
         super();
         this.specOrObsType = specOrObsType;
     }
-    /** {@inheritDoc} */
+
     @Override
     public void addPages() {
         DerivedUnitFacade facade = null;
         try {
             if(getEntity() instanceof DerivedUnit) {
                 facade = DerivedUnitFacade.NewInstance((DerivedUnit)getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
-                addPage(new DerivedUnitGeneralWizardPage(formFactory, getConversationHolder(), facade));
-                addPage(new GatheringEventWizardPage(formFactory, getConversationHolder(), facade));
-                addPage(new FieldUnitWizardPage(formFactory, getConversationHolder(), facade));
-                addPage(new DerivedUnitBaseWizardPage(formFactory, getConversationHolder(), facade));
+                addPage(new DerivedUnitGeneralWizardPage(formFactory, facade));
+                addPage(new GatheringEventWizardPage(formFactory, facade));
+                addPage(new FieldUnitWizardPage(formFactory, facade));
+                addPage(new DerivedUnitBaseWizardPage(formFactory, facade));
             }
             else if(getEntity() instanceof FieldUnit){
                 facade = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.FieldUnit, (FieldUnit)getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
-                addPage(new FieldUnitGeneralWizardPage(formFactory, getConversationHolder(), facade));
-                addPage(new GatheringEventWizardPage(formFactory, getConversationHolder(), facade));
-                addPage(new FieldUnitWizardPage(formFactory, getConversationHolder(), facade));
+                addPage(new FieldUnitGeneralWizardPage(formFactory, facade));
+                addPage(new GatheringEventWizardPage(formFactory, facade));
+                addPage(new FieldUnitWizardPage(formFactory, facade));
             }
         } catch (DerivedUnitFacadeNotSupportedException e) {
             // we should never get here
@@ -67,9 +68,8 @@ public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<SpecimenOr
         }
     }
 
-    /** {@inheritDoc} */
     @Override
-    protected SpecimenOrObservationBase createNewEntity() {
+    protected SpecimenOrObservationBase<?> createNewEntity() {
         if (specOrObsType == null) {
             return DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
         } else {
@@ -87,18 +87,13 @@ public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<SpecimenOr
         }
     }
 
-
-       /** {@inheritDoc} */
        @Override
        protected void saveEntity() {
            setEntity(CdmStore.getService(IOccurrenceService.class).merge(getEntity()));
-
        }
 
-
     @Override
     protected String getEntityName() {
         return "Specimen";
     }
-
-}
+}
\ No newline at end of file
index 1134ce0da956ba82c900a3d93db44c0a1cc3dd28..f04e20116b0e8b53302b7062750ba96d306d4325 100644 (file)
@@ -31,7 +31,7 @@ public class NewFeatureVocabularyWizard  extends AbstractNewEntityWizard<TermVoc
 
     @Override
     public void addPages() {
-        vocabularyPage = new VocabularyWizardPage(formFactory, getConversationHolder(), getEntity());
+        vocabularyPage = new VocabularyWizardPage(formFactory, getEntity());
         addPage(vocabularyPage);
     }
 
index 54efda3b6494ae6b33af3a8b74d3e1cbda06035a..233983cad0d237fd58de2189228dc86a6e2c14d9 100644 (file)
@@ -26,7 +26,7 @@ public class NewGrantedAuthorityWizard extends AbstractNewEntityWizard<GrantedAu
 
        @Override
        public void addPages() {
-               authorityPage = new GrantedAuthorityDetailWizardPage(formFactory, getConversationHolder(), getEntity());
+               authorityPage = new GrantedAuthorityDetailWizardPage(formFactory, getEntity());
                super.addPage(authorityPage);
        }
 
index 015a2e8a8bf2ee6586cef2c1382c97d285a1d1da..7f9d877cdf2b3212c500c58433a14b72654cc61c 100644 (file)
@@ -28,7 +28,7 @@ public class NewGroupWizard extends AbstractNewEntityWizard<Group> {
         */
        @Override
        public void addPages() {
-               groupPage = new GroupDetailWizardPage(formFactory, getConversationHolder(), getEntity());
+               groupPage = new GroupDetailWizardPage(formFactory, getEntity());
                super.addPage(groupPage);
        }
 
index d6da373a0bd8b4f92c6a28bd11ae8a29ded42773..afa55f54ae915a0abe4f6896d9fe618892f8773b 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.newWizard;
 
 import eu.etaxonomy.cdm.api.service.IAgentService;
@@ -17,13 +16,12 @@ import eu.etaxonomy.taxeditor.ui.section.agent.InstitutionWizardPage;
 /**
  * @author n.hoffmann
  * @created Dec 15, 2010
- * @version 1.0
  */
 public class NewInstitutionWizard extends AbstractNewEntityWizard<Institution> {
 
        @Override
        public void addPages() {
-               addPage(new InstitutionWizardPage(formFactory, getConversationHolder(), getEntity()));
+               addPage(new InstitutionWizardPage(formFactory, getEntity()));
        }
 
        @Override
@@ -40,5 +38,4 @@ public class NewInstitutionWizard extends AbstractNewEntityWizard<Institution> {
        protected String getEntityName() {
                return "Institution";
        }
-
-}
+}
\ No newline at end of file
index 023b13b428e0f2f75f595669a52b9cfdbfe1da26..4ae3567895dc702e12f5a95e6184ee8221b3e117 100644 (file)
@@ -29,7 +29,7 @@ public class NewNonViralNameWizard extends AbstractNewEntityWizard<TaxonName> {
        /** {@inheritDoc} */
        @Override
        public void addPages() {
-               addPage(new NonViralNameWizardPage(formFactory, getConversationHolder(), getEntity()));
+               addPage(new NonViralNameWizardPage(formFactory, getEntity()));
        }
 
        /** {@inheritDoc} */
index 3b396913eb7971ddd752b639042dfcf12beaec76..127b5277cd380d823ccc80b1ac641cc58046d094 100644 (file)
@@ -26,7 +26,7 @@ public class NewPersonWizard extends AbstractNewEntityWizard<Person> {
        /** {@inheritDoc} */
        @Override
        public void addPages() {
-               addPage(new PersonWizardPage(formFactory, getConversationHolder(), getEntity()));
+               addPage(new PersonWizardPage(formFactory, getEntity()));
        }
 
        /** {@inheritDoc} */
index 23cca956bb89108af50e040f2ae967318db5345a..9bb11dea9e90ce1d917f46a712ba57e2cd2e58ee 100644 (file)
@@ -18,7 +18,7 @@ public class NewPolytomousKeyWizard extends AbstractNewEntityWizard<PolytomousKe
 
        @Override
        public void addPages() {
-               polytomousKeyPage = new PolytomousKeyWizardPage(formFactory, getConversationHolder(), getEntity());
+               polytomousKeyPage = new PolytomousKeyWizardPage(formFactory, getEntity());
                super.addPage(polytomousKeyPage);
        }
 
index a00e275d9198a72179604691c824c5e5eeca7e7c..c4e980bd6f9523b7ea278f6cc8c8fd47caf0dcbf 100644 (file)
@@ -24,7 +24,7 @@ public class NewPrimerWizard  extends AbstractNewEntityWizard<Primer> {
     /** {@inheritDoc} */
     @Override
     public void addPages() {
-        primerPage = new PrimerWizardPage(formFactory, getConversationHolder(), getEntity());
+        primerPage = new PrimerWizardPage(formFactory, getEntity());
         addPage(primerPage);
     }
 
index d6aadf0f3553965d0486702fdbca518ba4a31ce6..752bcf5df156a834e2dde38d5931cfb516a5ec0d 100644 (file)
@@ -6,52 +6,74 @@
 * 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.newWizard;
 
+import java.util.List;
+
+import org.eclipse.e4.ui.workbench.IWorkbench;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Display;
+
 import eu.etaxonomy.cdm.api.service.IReferenceService;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
+import eu.etaxonomy.cdm.model.reference.ReferenceType;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceWizardPage;
 
 /**
- * <p>NewReferenceWizard class.</p>
- *
  * @author n.hoffmann
  * @created Jun 1, 2010
- * @version 1.0
  */
 public class NewReferenceWizard extends AbstractNewEntityWizard<Reference> {
 
        private ReferenceWizardPage referencePage;
+       private ReferenceType refType = null;
+
+       public NewReferenceWizard(ReferenceType type){
+           super();
+           refType = type;
+       }
+
+       @Override
+       public void init(IWorkbench workbench, IStructuredSelection selection) {
+        formFactory = new CdmFormFactory(Display.getCurrent(), null);
+        this.selection = selection;
+        setEntity(createNewEntity());
+
+    }
 
-       /** {@inheritDoc} */
        @Override
        public void addPages() {
                // TODO disabling external service wizard page for now
-//             addPage(new ExternalReferenceServiceWizardPage(formFactory, getConversationHolder(), entity));
-               referencePage = new ReferenceWizardPage(formFactory, getConversationHolder(), getEntity());
+//             addPage(new ExternalReferenceServiceWizardPage(formFactory, entity));
+               referencePage = new ReferenceWizardPage(formFactory, getEntity(), false);
                addPage(referencePage);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected Reference createNewEntity() {
+           if (refType != null){
+               List<ReferenceType> inReferenceTypes = ReferenceType.inReferenceContraints(refType);
+               if (!inReferenceTypes.isEmpty()){
+                   return ReferenceFactory.newReference(inReferenceTypes.iterator().next());
+               }
+           }
                return ReferenceFactory.newGeneric();
        }
 
-       /** {@inheritDoc} */
        @Override
        protected void saveEntity() {
            CdmStore.getService(IReferenceService.class).save(getEntity());
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setEntity(Reference entity) {
                super.setEntity(entity);
-               referencePage.getDetailElement().setEntity(entity);
+               if (referencePage != null){
+                   referencePage.getDetailElement().setEntity(entity);
+               }
        }
 
        @Override
index 47c37affbb8f541d128c1c69bc4280f11b544be2..206eb8a1d9d35ea69d771c07c9b23cf4b491556f 100644 (file)
@@ -1,6 +1,11 @@
 /**
- *
- */
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.newWizard;
 
 import java.util.Map;
@@ -16,6 +21,7 @@ import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.dto.CreateTaxonDTO;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
+import eu.etaxonomy.cdm.model.reference.NamedSource;
 import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNodeStatus;
@@ -27,7 +33,7 @@ import eu.etaxonomy.taxeditor.ui.section.classification.TaxonNodeDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.classification.TaxonNodeWizardPage;
 
 /**
- * <p>NewTaxonNodeWizard class.</p>
+ * NewTaxonNodeWizard class.
  *
  * @author n.hoffmann
  * @created Sep 15, 2009
@@ -48,7 +54,7 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizardParentChild<Taxon
 
     @Override
     public void addPages() {
-        taxonNodePage = new TaxonNodeWizardPage(formFactory, getConversationHolder(), getParentEntity(), wizardPageListener, true);
+        taxonNodePage = new TaxonNodeWizardPage(formFactory, getParentEntity(), wizardPageListener, true);
         addPage(taxonNodePage);
     }
 
@@ -58,25 +64,26 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizardParentChild<Taxon
         if(taxon == null ){
             openEmptyEditor = true;
         }else{
-            getConversationHolder().bind();
-            try{
+           try{
                UpdateResult result;
                TaxonNode parent = getParentEntity();
 
                Map<Language, LanguageString> notes = ((TaxonNodeDetailElement)taxonNodePage.getDetailElement()).getMultiLanguageTextExcludedNotes();
-               UUID refUuid = parent.getReference() != null? parent.getReference().getUuid(): null;
+               NamedSource source = parent.getSource().checkEmpty()? null: parent.getSource();
 
                TaxonNodeStatus status = ((TaxonNodeDetailElement)taxonNodePage.getDetailElement()).getTaxonNodeStatus();
                if (status == null){
                    notes = null;
                }
-               result = CdmStore.getService(ITaxonNodeService.class).createNewTaxonNode(parent.getUuid(), taxon, refUuid, parent.getMicroReference(),
-                        status, notes);
+
+               result = CdmStore.getService(ITaxonNodeService.class).createNewTaxonNode(parent.getUuid(),
+                       taxon, source, parent.getMicroReference(), status, notes);
+
 
                if (result.isOk()){
                    this.setEntity((TaxonNode)result.getCdmEntity());
-                   CdmApplicationState.getCurrentDataChangeService()
-                                .fireChangeEvent(new CdmChangeEvent(Action.Create, result.getUpdatedObjects(), NewTaxonNodeWizard.class), true);
+                    CdmApplicationState.getCurrentDataChangeService()
+                             .fireChangeEvent(new CdmChangeEvent(Action.Create, result.getUpdatedObjects(), NewTaxonNodeWizard.class), true);
 
                     }else{
                         setSuccess(false);
@@ -95,25 +102,6 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizardParentChild<Taxon
         }
     }
 
-//    @Override
-//    protected TaxonNode createNewEntity() {
-//        if(getSelection() != null){
-//            Object selectedObject = getSelection().getFirstElement();
-//            if(selectedObject instanceof TaxonNodeDto){
-//                TaxonNodeDto taxonNodeDto = (TaxonNodeDto) selectedObject;
-//             TaxonNode node =  CdmStore.getService(ITaxonNodeService.class).load(taxonNodeDto.getUuid());
-//             Reference sec = node.getTaxon() != null? node.getTaxon().getSec():null;
-//             Taxon newTaxon = Taxon.NewInstance(TaxonNameFactory.NewNameInstance(PreferencesUtil.getPreferredNomenclaturalCode(), null), sec);
-//             TaxonNode child = node.addChildTaxon(newTaxon, null, null);
-//
-//                return child;
-//
-//            }
-//        }
-//
-//        return null;
-//    }
-
     public boolean openInEditor() {
         return isOpenInEditor ;
     }
@@ -164,4 +152,4 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizardParentChild<Taxon
             }
         }
     }
-}
+}
\ No newline at end of file
index a3aa31281a13aaccd197d5e0641e48db09065f87..f130e43241e5c673f6f6fdf1058994e0db837266 100644 (file)
@@ -33,8 +33,8 @@ public class NewTaxonWizard extends AbstractNewEntityWizard<Taxon> {
        /** {@inheritDoc} */
        @Override
        public void addPages() {
-           addPage(new TaxonWizardPage(formFactory, getConversationHolder(), getEntity()));
-           addPage(new NonViralNameWizardPage(formFactory, getConversationHolder(), getEntity().getName()));
+           addPage(new TaxonWizardPage(formFactory, getEntity()));
+           addPage(new NonViralNameWizardPage(formFactory, getEntity().getName()));
        }
 
        /** {@inheritDoc} */
@@ -52,11 +52,11 @@ public class NewTaxonWizard extends AbstractNewEntityWizard<Taxon> {
             Set<TaxonName> namesToSave = new HashSet<>();
             for (HybridRelationship hybridRelationship: taxon.getName().getHybridChildRelations()){
                 if (hybridRelationship.getParentName() != taxon.getName()){
-                    if (!hybridRelationship.getParentName().isPersited()){
+                    if (!hybridRelationship.getParentName().isPersisted()){
                         namesToSave.add(hybridRelationship.getParentName());
                     }
                }else if (hybridRelationship.getHybridName() != taxon.getName()){
-                   if (!hybridRelationship.getHybridName().isPersited()){
+                   if (!hybridRelationship.getHybridName().isPersisted()){
                        namesToSave.add(hybridRelationship.getHybridName());
                    }
                 }
@@ -65,11 +65,11 @@ public class NewTaxonWizard extends AbstractNewEntityWizard<Taxon> {
 
             for (HybridRelationship hybridRelationship: taxon.getName().getHybridParentRelations()){
                 if (hybridRelationship.getParentName() != taxon.getName()){
-                    if (!hybridRelationship.getParentName().isPersited()){
+                    if (!hybridRelationship.getParentName().isPersisted()){
                         namesToSave.add(hybridRelationship.getParentName());
                     }
                }else if (hybridRelationship.getHybridName() != taxon.getName()){
-                   if (!hybridRelationship.getHybridName().isPersited()){
+                   if (!hybridRelationship.getHybridName().isPersisted()){
                        namesToSave.add(hybridRelationship.getHybridName());
                    }
                 }
index fd9ac5ae64bbe85ee44ad31f4df2ea5ba9414aab..09ef95411a2b41c880ba42dae1a3ecf83d5677c4 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, 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 95baf5fe82c35d133e4b097259d2dd29e8cd6b98..4f6de340403aa1974d92bd8ca30d36fc51f3708b 100644 (file)
@@ -18,7 +18,7 @@ public class NewUserWizard extends AbstractNewEntityWizard<User> {
 
        @Override
        public void addPages() {
-               userPage = new UserDetailWizardPage(formFactory, getConversationHolder(), getEntity());
+               userPage = new UserDetailWizardPage(formFactory, getEntity());
                addPage(userPage);
        }
 
index c4248413cede4919ff5940f006c0588161632b9d..41d4bcdf38411c7fce88d0de92ae44274ee7e425 100644 (file)
@@ -3,7 +3,6 @@
  */
 package eu.etaxonomy.taxeditor.newWizard;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -17,9 +16,8 @@ import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyDetailElement;
  */
 public class PolytomousKeyWizardPage extends AbstractCdmEntityWizardPage<PolytomousKey> {
 
-       public PolytomousKeyWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, PolytomousKey entity) {
-               super(formFactory, conversation, entity);
+       public PolytomousKeyWizardPage(CdmFormFactory formFactory, PolytomousKey entity) {
+               super(formFactory, entity);
        }
 
        @Override
index f9874848d1a3a87cbba90fcc0c60753f86116888..2a0becbdb2fa7a00db5ad07a471facf781bad340 100644 (file)
@@ -8,7 +8,6 @@
  */
 package eu.etaxonomy.taxeditor.newWizard;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.molecular.Primer;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -28,9 +27,8 @@ public class PrimerWizardPage extends AbstractCdmEntityWizardPage<Primer> {
      * @param conversation
      * @param entity
      */
-    public PrimerWizardPage(CdmFormFactory formFactory,
-            ConversationHolder conversation, Primer entity) {
-        super(formFactory, conversation, entity);
+    public PrimerWizardPage(CdmFormFactory formFactory, Primer entity) {
+        super(formFactory, entity);
         setTitle("General Primer Data");
     }
 
index 3344a7ab806134620063710a45bcf00f7a57ea50..1f6b658dacc602e7820d8c50de305c82d372315f 100644 (file)
@@ -8,7 +8,6 @@
  */
 package eu.etaxonomy.taxeditor.newWizard;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -23,9 +22,8 @@ import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermVocabularyDetailElement;
  */
 public class VocabularyWizardPage extends AbstractCdmEntityWizardPage<TermVocabulary> {
 
-    public VocabularyWizardPage(CdmFormFactory formFactory,
-            ConversationHolder conversation, TermVocabulary entity) {
-        super(formFactory, conversation, entity);
+    public VocabularyWizardPage(CdmFormFactory formFactory, TermVocabulary entity) {
+        super(formFactory, entity);
         setTitle("General Vocabulary Data");
     }
 
index aa3c2b82ced1343c347a2f75ee0ff33c3dec628b..e55df30e69cd849b0898b58553803d0c347b1096 100644 (file)
@@ -24,9 +24,9 @@ import eu.etaxonomy.cdm.model.media.Media;
 /**
  * @author pplitzner
  * @date 04.12.2013
- *
  */
-public abstract class AbstractDescriptionPostOperation<T extends IDescribable, D extends DescriptionBase> extends AbstractPostOperation<T> {
+public abstract class AbstractDescriptionPostOperation<T extends IDescribable, D extends DescriptionBase> 
+               extends AbstractPostOperation<T> {
 
     protected D description;
     protected IdentifiableSource source;
index 7c949d73115b821cc5a7efdcb0ce15b90a23d1ae..499a34ec71234f8c07cab1a8aca5117b751b06f6 100644 (file)
 package eu.etaxonomy.taxeditor.operation;
 
 import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.IStatus;
 
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 
@@ -29,8 +27,6 @@ import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
  * @version 1.0
  */
 public abstract class AbstractPersistentPostOperation extends AbstractPostTaxonOperation {
-       private final IConversationEnabled conversationEnabled;
-
        protected TaxonNodeDto parentNode;
 
           /**
@@ -39,12 +35,10 @@ public abstract class AbstractPersistentPostOperation extends AbstractPostTaxonO
      * @param label a {@link java.lang.String} object.
      * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
      * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
-     * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
      */
     protected AbstractPersistentPostOperation(String label, IUndoContext undoContext,
-            IPostOperationEnabled postOperationEnabled,
-            IConversationEnabled conversationEnabled) {
-        this(label, undoContext, postOperationEnabled, conversationEnabled, null);
+            IPostOperationEnabled postOperationEnabled) {
+        this(label, undoContext, postOperationEnabled, null);
     }
 
        /**
@@ -53,14 +47,11 @@ public abstract class AbstractPersistentPostOperation extends AbstractPostTaxonO
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
-        * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        protected AbstractPersistentPostOperation(String label, IUndoContext undoContext,
                        IPostOperationEnabled postOperationEnabled,
-                       IConversationEnabled conversationEnabled,
                        ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
                super(label, undoContext, postOperationEnabled, cdmEntitySessionEnabled);
-               this.conversationEnabled = conversationEnabled;
        }
 
        /**
@@ -70,16 +61,12 @@ public abstract class AbstractPersistentPostOperation extends AbstractPostTaxonO
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param taxonNode a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
         * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
-        * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         */
        public AbstractPersistentPostOperation(String label,
                        IUndoContext undoContext, TaxonNodeDto taxonNode,
                        IPostOperationEnabled postOperationEnabled,
-                       IConversationEnabled conversationEnabled,
                        ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
                super(label, undoContext, taxonNode, postOperationEnabled, cdmEntitySessionEnabled);
-               this.conversationEnabled = conversationEnabled;
-
        }
 
        /**
@@ -88,18 +75,14 @@ public abstract class AbstractPersistentPostOperation extends AbstractPostTaxonO
         * @param label a {@link java.lang.String} object.
         * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
         * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
-        * @param conversationEnabled a {@link eu.etaxonomy.cdm.api.conversation.IConversationEnabled} object.
         * @param parentNode a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
         */
        public AbstractPersistentPostOperation(String label,
                        IUndoContext undoContext,
                        IPostOperationEnabled postOperationEnabled,
-                       IConversationEnabled conversationEnabled,
-            ICdmEntitySessionEnabled cdmEntitySessionEnabled, TaxonNodeDto parentNode) {
+                       ICdmEntitySessionEnabled cdmEntitySessionEnabled, TaxonNodeDto parentNode) {
                super(label, undoContext, postOperationEnabled, cdmEntitySessionEnabled);
                this.parentNode = parentNode;
-               this.conversationEnabled = conversationEnabled;
-
        }
 
        /* (non-Javadoc)
@@ -108,15 +91,7 @@ public abstract class AbstractPersistentPostOperation extends AbstractPostTaxonO
        /** {@inheritDoc} */
        @Override
     protected IStatus postExecute(Object objectAffectedByOperation) {
-               Assert.isNotNull(conversationEnabled, "Operation has to have a valid conversation attached.");
-
-
-               if (!conversationEnabled.getConversationHolder().isClosed()){
-                       conversationEnabled.getConversationHolder().bind();
-                       conversationEnabled.getConversationHolder().commit(true);
-               }
                IStatus status = super.postExecute(objectAffectedByOperation);
-
                return status;
        }
 
@@ -124,7 +99,6 @@ public abstract class AbstractPersistentPostOperation extends AbstractPostTaxonO
         * Binds the conversation that was attached to this operation.
         */
        public void bind(){
-               conversationEnabled.getConversationHolder().bind();
                if(getCdmEntitySessionEnabled() != null && getCdmEntitySessionEnabled().getCdmEntitySession()!=null) {
                    getCdmEntitySessionEnabled().getCdmEntitySession().bind();
         }
index a73e991946ae73280df446c2a9dc0545afcfa734..ccff1862865bd1409550f74b2a0a3acaee4ea570 100644 (file)
@@ -8,6 +8,8 @@
  */
 package eu.etaxonomy.taxeditor.operation;
 
+import java.util.UUID;
+
 import org.eclipse.core.commands.operations.AbstractOperation;
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.runtime.IStatus;
@@ -19,30 +21,20 @@ import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 /**
  * @author pplitzner
  * @date 03.12.2013
- *
  */
 public abstract class AbstractPostOperation<T extends ICdmBase> extends AbstractOperation {
 
-
     /**
      * A reference to the {@link ICdmBase} element the concrete operation is working on
      */
     protected T element;
 
+    protected UUID elementUuid;
 
-    /**
-     *
-     */
     protected IPostOperationEnabled postOperationEnabled;
 
-    private ICdmEntitySessionEnabled cdmEntitySessionEnabled;
-
+    private ICdmEntitySessionEnabled<T> cdmEntitySessionEnabled;
 
-    /**
-     * @param label
-     * @param element
-     * @param postOperationEnabled
-     */
     public AbstractPostOperation(String label, IUndoContext undoContext,
             T element, IPostOperationEnabled postOperationEnabled) {
         this(label, undoContext, element, postOperationEnabled, null);
@@ -50,10 +42,24 @@ public abstract class AbstractPostOperation<T extends ICdmBase> extends Abstract
 
     public AbstractPostOperation(String label, IUndoContext undoContext,
             T element, IPostOperationEnabled postOperationEnabled,
-            ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+            ICdmEntitySessionEnabled<T> cdmEntitySessionEnabled) {
         super(label);
         addContext(undoContext);
         this.element = element;
+        if (element != null){
+            this.elementUuid = element.getUuid();
+        }
+        this.postOperationEnabled = postOperationEnabled;
+        this.cdmEntitySessionEnabled = cdmEntitySessionEnabled;
+    }
+
+    public AbstractPostOperation(String label, UUID elementUuid, IUndoContext undoContext,
+            IPostOperationEnabled postOperationEnabled,
+            ICdmEntitySessionEnabled<T> cdmEntitySessionEnabled) {
+        super(label);
+        addContext(undoContext);
+        this.element = null;
+        this.elementUuid = elementUuid;
         this.postOperationEnabled = postOperationEnabled;
         this.cdmEntitySessionEnabled = cdmEntitySessionEnabled;
     }
@@ -62,6 +68,9 @@ public abstract class AbstractPostOperation<T extends ICdmBase> extends Abstract
         return element;
     }
 
+    public UUID getElementUuid(){
+        return elementUuid;
+    }
 
     /**
      * This method will try to call the post operation on a possibly registered
@@ -88,31 +97,7 @@ public abstract class AbstractPostOperation<T extends ICdmBase> extends Abstract
         return postOperationEnabled;
     }
 
-//    protected IStatus updateSession(CdmBase clientObjectAffectedByOperation, UpdateResult updateResult) {
-//        Set<CdmBase> affectedObjects;
-//        if(updateResult == null) {
-//            affectedObjects = new HashSet<CdmBase>();
-//        } else {
-//            affectedObjects = updateResult.getUpdatedObjects();
-//        }
-//
-//        if(cdmEntitySessionEnabled != null) {
-//            cdmEntitySessionEnabled.getCdmEntitySession().update(clientObjectAffectedByOperation, affectedObjects);
-//        }
-//        return Status.OK_STATUS;
-//    }
-//
-//    protected IStatus updateSession(UUID uuid) {
-//
-//        if(cdmEntitySessionEnabled != null) {
-//            CdmBase cdmBase = cdmEntitySessionEnabled.getCdmEntitySession().remoteLoad(CdmStore.getService(IService.class),uuid);
-//            cdmEntitySessionEnabled.getCdmEntitySession().update(null, cdmBase);
-//        }
-//        return Status.OK_STATUS;
-//    }
-
-    public ICdmEntitySessionEnabled getCdmEntitySessionEnabled() {
+    public ICdmEntitySessionEnabled<T> getCdmEntitySessionEnabled() {
         return cdmEntitySessionEnabled;
     }
-
-}
+}
\ No newline at end of file
index b3d19f906c11894256577d1231a1f21431d6ac29..0f3144b818ac36a005cd118a56ea1dd0b9025029 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.operation;
 
 import java.util.UUID;
@@ -26,7 +25,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @author p.ciardelli
  * @author n.hoffmann
  * @created 14.01.2009
- * @version 1.0
  */
 public abstract class AbstractPostTaxonOperation extends AbstractPostOperation<Taxon> {
 
@@ -49,15 +47,14 @@ public abstract class AbstractPostTaxonOperation extends AbstractPostOperation<T
         this(label, undoContext, taxon, postOperationEnabled, null, null);
     }
     public AbstractPostTaxonOperation(String label, IUndoContext undoContext,
-            Taxon taxon, IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled, UISynchronize sync) {
+            Taxon taxon, IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled<Taxon> cdmEntitySessionEnabled, UISynchronize sync) {
         super(label, undoContext, taxon, postOperationEnabled, cdmEntitySessionEnabled);
         this.sync = sync;
     }
 
     public AbstractPostTaxonOperation(String label, IUndoContext undoContext,
-            Taxon taxon, IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+            Taxon taxon, IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled<Taxon> cdmEntitySessionEnabled) {
         super(label, undoContext, taxon, postOperationEnabled, cdmEntitySessionEnabled);
-
     }
 
     public AbstractPostTaxonOperation(String label, IUndoContext undoContext, TaxonNodeDto taxonNode,
@@ -66,7 +63,7 @@ public abstract class AbstractPostTaxonOperation extends AbstractPostOperation<T
     }
 
     public AbstractPostTaxonOperation(String label, IUndoContext undoContext, TaxonNodeDto taxonNode,
-            IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+            IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled<Taxon> cdmEntitySessionEnabled) {
         this(label, undoContext, (Taxon) CdmStore.getService(ITaxonService.class).find(taxonNode.getTaxonUuid()), postOperationEnabled, cdmEntitySessionEnabled, null);
         this.taxonNode = taxonNode;
     }
@@ -98,7 +95,7 @@ public abstract class AbstractPostTaxonOperation extends AbstractPostOperation<T
     }
 
     public AbstractPostTaxonOperation(String label, IUndoContext undoContext,
-            IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+            IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled<Taxon> cdmEntitySessionEnabled) {
         super(label, undoContext, null, postOperationEnabled, cdmEntitySessionEnabled);
     }
 
@@ -106,7 +103,6 @@ public abstract class AbstractPostTaxonOperation extends AbstractPostOperation<T
         this(label, undoContext, taxonUuid, null);
     }
 
-
     public UISynchronize getSync() {
         return sync;
     }
@@ -114,5 +110,4 @@ public abstract class AbstractPostTaxonOperation extends AbstractPostOperation<T
     public void setSync(UISynchronize sync) {
         this.sync = sync;
     }
-
-}
+}
\ No newline at end of file
similarity index 73%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingCdmDefaultOperation.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/CdmDefaultOperation.java
index 203c242b112bdc79c5ebad2468c34c8f6251edd0..b857b2f79853dc94436b4d0ec080e39fe554d9bd 100644 (file)
@@ -19,18 +19,15 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 /**
  * @author cmathew
  * @date 21 Jul 2015
- *
  */
-public abstract class RemotingCdmDefaultOperation extends RemotingCdmOperation {
+public abstract class CdmDefaultOperation extends CdmOperation {
 
     private CdmBase cdmEntity;
 
-    public RemotingCdmDefaultOperation(String label, Action action, Object source, boolean async) {
+    public CdmDefaultOperation(String label, Action action, Object source, boolean async) {
         super(label, action, source, async);
     }
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.operation.RemotingCdmOperation#doExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-     */
+
     @Override
     protected boolean doExecute(IProgressMonitor monitor, IAdaptable info) {
         try {
@@ -48,14 +45,10 @@ public abstract class RemotingCdmDefaultOperation extends RemotingCdmOperation {
         if(success && cdmEntity != null) {
             fireDataChangeEvent(cdmEntity);
         }
-
     }
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.operation.RemotingCdmOperation#onComplete(boolean)
-     */
+
     @Override
     protected IStatus onComplete(boolean success) {
         return Status.OK_STATUS;
     }
-
-}
+}
\ No newline at end of file
similarity index 76%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingCdmOperation.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/CdmOperation.java
index cf5dcd9839a80dbab74be1b3200bb33ab4ac4d0e..7ae5efccfa87be64738eb7d1f38f11bf01e308b5 100644 (file)
@@ -25,25 +25,21 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 /**
  * @author cmathew
  * @date 16 Jun 2015
- *
  */
-public abstract class RemotingCdmOperation extends AbstractOperation {
+public abstract class CdmOperation extends AbstractOperation {
 
     private final Object source;
     private final Action action;
     private final boolean async;
-    protected Class entityType;
+    protected Class<?> entityType;
 
-    public RemotingCdmOperation(String label, Action action, Object source, boolean async) {
+    public CdmOperation(String label, Action action, Object source, boolean async) {
         super(label);
         this.source = source;
         this.action = action;
         this.async = async;
     }
 
-    /* (non-Javadoc)
-     * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-     */
     @Override
     public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
 
@@ -76,22 +72,13 @@ public abstract class RemotingCdmOperation extends AbstractOperation {
         }
     }
 
-    /* (non-Javadoc)
-     * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-     */
     @Override
     public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
-        // TODO Auto-generated method stub
         return null;
     }
 
-    /* (non-Javadoc)
-     * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-     */
     @Override
     public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
-        // TODO Auto-generated method stub
         return null;
     }
-
-}
+}
\ No newline at end of file
similarity index 90%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingCdmUpdateOperation.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/CdmUpdateOperation.java
index 9b180ceaa2e58bce0f87d04d5f0cf45d863b288c..ff3b2ddf0ae14cf8fb87df0e81304409a42a2b82 100644 (file)
@@ -28,7 +28,7 @@ import eu.etaxonomy.cdm.api.service.UpdateResult;
  * @author cmathew
  * @date 16 Jun 2015
  */
-public abstract class RemotingCdmUpdateOperation extends RemotingCdmOperation {
+public abstract class CdmUpdateOperation extends CdmOperation {
 
     protected UpdateResult updateResult;
     public static boolean throwExceptions = false;
@@ -37,7 +37,7 @@ public abstract class RemotingCdmUpdateOperation extends RemotingCdmOperation {
     protected MPart activePart = null;
     protected MApplication application = null;
 
-    public RemotingCdmUpdateOperation(String label, Action action, Object source, boolean async,
+    public CdmUpdateOperation(String label, Action action, Object source, boolean async,
                EPartService partService,
                MPart activePart,
                MApplication application) {
@@ -47,7 +47,7 @@ public abstract class RemotingCdmUpdateOperation extends RemotingCdmOperation {
         this.application = application;
     }
 
-    public RemotingCdmUpdateOperation(String label, Action action, Object source, boolean async){
+    public CdmUpdateOperation(String label, Action action, Object source, boolean async){
         super(label, action, source, async);
 
     }
@@ -104,14 +104,14 @@ public abstract class RemotingCdmUpdateOperation extends RemotingCdmOperation {
 
             Status[] childStatus = new Status[exceptions.size()];
             int count = 0;
-            Set<String> messages = new HashSet<String>();
+            //Set<String> messages = new HashSet<>();
             for(Exception ex : exceptions) {
                 Status status = new Status(statusFlag,
                         "unknown",
                         statusFlag,
-                        ex.getLocalizedMessage(),
+                        null,
                         ex);
-                messages.add(ex.getLocalizedMessage());
+               // messages.add(ex.getLocalizedMessage());
                 childStatus[count] = status;
                 count++;
             }
similarity index 94%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/e4/RemotingCdmHandlerE4.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/e4/CdmHandlerE4.java
index 4e1ea64cdf5f04f597f90a56e5c8a702c26b8fc1..7e9279c2911b32f0ccaa572a3108ff593a5ee35c 100644 (file)
@@ -32,14 +32,14 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
  * @date 16 Jun 2015
  *
  */
-public abstract class RemotingCdmHandlerE4 {
+public abstract class CdmHandlerE4 {
 
     protected String label;
     protected EPartService partService;
        protected MApplication application;
        protected EModelService modelService;
 
-    public RemotingCdmHandlerE4(String label) {
+    public CdmHandlerE4(String label) {
         this.label = label;
     }
 
@@ -72,7 +72,7 @@ public abstract class RemotingCdmHandlerE4 {
             ErrorDialog.openError(null, "Operation successful but with warnings", null, status);
             break;
         case IStatus.ERROR:
-            ErrorDialog.openError(null, "Error executing operation", null, status);
+            //MessagingUtils.error(null, "Error executing operation", null, status);
             break;
         default:
         }
index e734e1004d653ec0ee6446d35b8c2a07ce5be562..263531f90a28802b1035d3e3fec329ea988af6c3 100644 (file)
@@ -11,11 +11,12 @@ package eu.etaxonomy.taxeditor.parser;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 
 import eu.etaxonomy.cdm.api.service.INameService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.model.common.AnnotatableEntity;
 import eu.etaxonomy.cdm.model.name.INonViralName;
 import eu.etaxonomy.cdm.model.name.ITaxonNameBase;
 import eu.etaxonomy.cdm.model.name.Rank;
@@ -38,7 +39,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class ParseHandler{
 
-    public static final Logger logger = Logger.getLogger(ParseHandler.class);
+    public static final Logger logger = LogManager.getLogger(ParseHandler.class);
 
 
        private static NonViralNameParserImpl nonViralNameParser = NonViralNameParserImpl.NewInstance();
@@ -211,7 +212,7 @@ public class ParseHandler{
      */
     private void resolveDuplicateNames(INonViralName name, MatchMatrix matchMatrix) {
 
-        if (matchMatrix.duplicateNames.size() == 1){
+        if (matchMatrix != null && matchMatrix.duplicateNames != null && matchMatrix.duplicateNames.size() == 1){
             name = matchMatrix.duplicateNames.iterator().next();
         }else if(matchMatrix.duplicateNames.size() > 1){
             // FIXME TODO resolve multiple duplications. Use first match for a start
old mode 100755 (executable)
new mode 100644 (file)
index 3461019..a515266
@@ -8,8 +8,6 @@
 */
 package eu.etaxonomy.taxeditor.preference;
 
-import java.net.URI;
-
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CLabel;
@@ -25,6 +23,7 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
@@ -38,23 +37,13 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author k.luther
  * @since 23.03.2018
- *
  */
 public class AbcdImportPreference extends CdmPreferencePage implements IE4PreferencePage, SelectionListener {
 
-    /**
-     *
-     */
     private static final String CATALOGUE_NUMBER = "Catalogue number";
 
-    /**
-     *
-     */
     private static final String BARCODE = "Barcode";
 
-    /**
-     *
-     */
     private static final String ACCESSION_NUMBER = "Accession number";
 
     protected Abcd206ImportConfigurator configurator;
@@ -72,8 +61,6 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4Prefer
     Button checkBoxIgnoreExisting;
     Button checkBoxIgnoreAuthorship;
     Combo checkBoxMapUnitId;
-//    Button checkBoxMapUnitIdToAccessionNumber;
-//    Button checkBoxMapUnitIdToBarcode;
     Button checkBoxRemoveCountry;
     Button checkBoxMoveToDefaultClassification;
     Button checkBoxImportSiblings;
@@ -202,7 +189,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4Prefer
         checkBoxAddIndividualsAssociations.addSelectionListener(new SelectionAdapter() {
             @Override
             public void widgetSelected(SelectionEvent e) {
-                configurator.setAddIndividualsAssociationsSuchAsSpecimenAndObservations(!configurator.isAddIndividualsAssociationsSuchAsSpecimenAndObservations());
+                configurator.setAddIndividualsAssociations(!configurator.isAddIndividualsAssociations());
                 setApply(true);
             }
         });
@@ -375,7 +362,6 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4Prefer
         }
         this.setApply(true);
 
-
        // PreferencesUtil.recursiveSetEnabled(composite, override);
         setApply(true);
 
@@ -403,15 +389,10 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4Prefer
                 PreferencesUtil.setBooleanValue( PreferencesUtil.prefOverrideKey(PreferencePredicate.AbcdImportConfig.getKey()), override);
             }
             PreferencesUtil.setStringValue(PreferencePredicate.AbcdImportConfig.getKey(), "");
-
-
         }
         return true;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void widgetDefaultSelected(SelectionEvent e) {
         // TODO Auto-generated method stub
@@ -469,7 +450,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4Prefer
 
         checkBoxRemoveCountry.setSelection(configurator.isRemoveCountryFromLocalityText());
         checkBoxImportSiblings.setSelection(configurator.isGetSiblings());
-        checkBoxAddIndividualsAssociations.setSelection(configurator.isAddIndividualsAssociationsSuchAsSpecimenAndObservations());
+        checkBoxAddIndividualsAssociations.setSelection(configurator.isAddIndividualsAssociations());
         checkBoxReuseDescriptiveGroups.setSelection(configurator.isReuseExistingDescriptiveGroups());
         checkBoxReuseExistingTaxa.setSelection(configurator.isReuseExistingTaxaWhenPossible());
 
@@ -491,9 +472,6 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4Prefer
                 }
                 index++;
             }
-
         }
-
     }
-
-}
+}
\ No newline at end of file
old mode 100755 (executable)
new mode 100644 (file)
index 107a915..2ecb04d
@@ -14,7 +14,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.swt.SWT;
@@ -48,28 +48,24 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author k.luther
  * @since 05.06.2019
- *
  */
-abstract public class AbstractGeneralTermPreference<T extends AbstractTermDto> extends CdmPreferencePage implements ISelectionChangedListener, SelectionListener{
+public abstract class AbstractGeneralTermPreference<T extends AbstractTermDto> extends CdmPreferencePage
+        implements ISelectionChangedListener, SelectionListener {
 
     protected CheckBoxTreeComposite treeComposite;
     protected List<TermVocabularyDto> vocabularies = new ArrayList<>();
-    protected Combo useLocalOrAdmin ;
+    protected Combo useLocalOrAdmin;
 
     protected boolean isOverride;
     protected boolean allowOverride;
     protected CdmPreference pref;
     protected IPreferencePredicate predicate;
 
-
-    public AbstractGeneralTermPreference(){
+    public AbstractGeneralTermPreference() {
         super();
 
     }
 
-    /**
-     * @param title
-     */
     public AbstractGeneralTermPreference(String title) {
         super(title);
     }
@@ -78,7 +74,6 @@ abstract public class AbstractGeneralTermPreference<T extends AbstractTermDto> e
         return !isAdminPreference;
     }
 
-
     protected TermType type;
 
     public List<TermVocabularyDto> getVocabularies() {
@@ -101,14 +96,11 @@ abstract public class AbstractGeneralTermPreference<T extends AbstractTermDto> e
         return treeComposite;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected Control createContents(Composite parent) {
         Composite container = new Composite(parent, SWT.NULL);
         getPreferenceValues();
-        if (isLocalPref() && !allowOverride){
+        if (isLocalPref() && !allowOverride) {
             final CLabel description = new CLabel(parent, SWT.NULL);
             description.setText(Messages.NameDetailsViewConfiguration_description_not_available);
             this.setDefaultButtonActivated(false);
@@ -120,36 +112,37 @@ abstract public class AbstractGeneralTermPreference<T extends AbstractTermDto> e
         container.setLayout(gridLayout);
         parent.setLayout(new GridLayout());
         useLocalOrAdmin = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
-        if (!isAdminPreference){
+        if (!isAdminPreference) {
             useLocalOrAdmin.add(LocalOrDefaultEnum.Default.getLabel(), 0);
             useLocalOrAdmin.add(LocalOrDefaultEnum.Local.getLabel(), 1);
 
-        }else{
+        } else {
             useLocalOrAdmin.add(LocalOrDefaultEnum.AllowOverride.getLabel(), 0);
             useLocalOrAdmin.add(LocalOrDefaultEnum.Database.getLabel(), 1);
         }
 
-
-        treeComposite = new CheckBoxTreeComposite(container, new TermDtoContentProvider(), new TermDtoLabelProvider(), SWT.SCROLL_PAGE);
+        treeComposite = new CheckBoxTreeComposite(container, new TermDtoContentProvider(), new TermDtoLabelProvider(),
+                SWT.SCROLL_PAGE);
         treeComposite.getViewer().setComparator(new DefinedTermSorter());
         rememberCheckedValues(getCheckedValuesFromPreferences());
 
-        if (isLocalPref()){
-            if (isOverride){
+        if (isLocalPref()) {
+            if (isOverride) {
                 useLocalOrAdmin.select(1);
-            }else{
+            } else {
                 useLocalOrAdmin.select(0);
-                if (treeComposite.getViewer().getTree() != null && treeComposite.getViewer().getTree().getTopItem() != null) {
+                if (treeComposite.getViewer().getTree() != null
+                        && treeComposite.getViewer().getTree().getTopItem() != null) {
                     treeComposite.getViewer().getTree().setSelection(treeComposite.getViewer().getTree().getTopItem());
                 }
                 treeComposite.setEnabled(false);
 
-                //treeComposite.getViewer().getTree().getVerticalBar().setEnabled(true);
+                // treeComposite.getViewer().getTree().getVerticalBar().setEnabled(true);
             }
-        }else{
-            if (allowOverride){
+        } else {
+            if (allowOverride) {
                 useLocalOrAdmin.select(0);
-            }else{
+            } else {
                 useLocalOrAdmin.select(1);
             }
         }
@@ -161,41 +154,36 @@ abstract public class AbstractGeneralTermPreference<T extends AbstractTermDto> e
         treeComposite.getViewer().addSelectionChangedListener(this);
 
         return container;
-
     }
 
-    public String getCheckedValuesFromPreferences(){
+    public String getCheckedValuesFromPreferences() {
         String values;
-        if (!isAdminPreference && isOverride){
+        if (!isAdminPreference && isOverride) {
             values = PreferencesUtil.getStringValue(predicate.getKey(), true);
-        }else{
-            values = pref != null ?pref.getValue(): null;
+        } else {
+            values = pref != null ? pref.getValue() : null;
         }
         return values;
     }
 
     protected void rememberCheckedValues(String checkedValues) {
         initialiseVocabularies();
-        treeComposite.getViewer().getTree().deselectAll();
-        treeComposite.getViewer().refresh();
-        treeComposite.getViewer().setInput(getVocabularies());
-        Object o =treeComposite.getViewer().getInput();
-
+        setInput();
 
         if (checkedValues != null && checkedValues != "") { //$NON-NLS-1$
             String[] listChecked = checkedValues.split(";"); //$NON-NLS-1$
             String[] listCheckedComma = checkedValues.split(","); //$NON-NLS-1$
             List<String> checked = new ArrayList<>();
-            if (listChecked != null ){
+            if (listChecked != null{
                 checked = Arrays.asList(listChecked);
             }
-            if (listCheckedComma != null && checkedValues.contains(",")){ //$NON-NLS-1$
+            if (listCheckedComma != null && checkedValues.contains(",")) { //$NON-NLS-1$
                 checked = Arrays.asList(listCheckedComma);
             }
             List<T> termsFromStringValues = getTermsFromStringValues(checked);
             treeComposite.setCheckedElements(termsFromStringValues.toArray());
 
-        }else{
+        } else {
             List<T> termsFromStringValues = getTermsFromStringValues(new ArrayList<String>());
             treeComposite.setCheckedElements(termsFromStringValues.toArray());
             treeComposite.getViewer().refresh();
@@ -204,6 +192,12 @@ abstract public class AbstractGeneralTermPreference<T extends AbstractTermDto> e
         }
     }
 
+    protected void setInput() {
+        treeComposite.getViewer().getTree().deselectAll();
+        treeComposite.getViewer().refresh();
+        treeComposite.getViewer().setInput(getVocabularies());
+    }
+
     protected abstract List<T> getTermsFromStringValues(List<String> listValue);
 
     protected void initialiseVocabularies() {
@@ -216,33 +210,27 @@ abstract public class AbstractGeneralTermPreference<T extends AbstractTermDto> e
         setVocabularies(vocs);
     }
 
-    protected void getPreferenceValues(){
+    protected void getPreferenceValues() {
         pref = PreferencesUtil.getPreferenceFromDB(predicate);
-        this.allowOverride = pref!= null?pref.isAllowOverride():true;
+        this.allowOverride = pref != null ? pref.isAllowOverride() : true;
         this.isOverride = PreferencesUtil.getOverrideForPreference(predicate.getKey());
-        if (pref == null){
+        if (pref == null) {
             pref = CdmPreference.NewTaxEditorInstance(predicate, null);
         }
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void selectionChanged(SelectionChangedEvent event) {
         this.setApply(true);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void widgetSelected(SelectionEvent e) {
-        if (e.getSource().equals(useLocalOrAdmin)){
-            if (useLocalOrAdmin.getText().equals(LocalOrDefaultEnum.Default.getLabel())){
+        if (e.getSource().equals(useLocalOrAdmin) && !isAdminPreference) {
+            if (useLocalOrAdmin.getText().equals(LocalOrDefaultEnum.Default.getLabel())) {
                 treeComposite.setEnabled(false);
                 isOverride = false;
-            }else{
+            } else {
                 treeComposite.setEnabled(true);
                 isOverride = true;
             }
@@ -251,36 +239,32 @@ abstract public class AbstractGeneralTermPreference<T extends AbstractTermDto> e
         this.setApply(true);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void widgetDefaultSelected(SelectionEvent e) {
         // TODO Auto-generated method stub
-
     }
 
     @Override
-    protected void performDefaults(){
-        if (!isLocalPref()){
+    protected void performDefaults() {
+        if (!isLocalPref()) {
             rememberCheckedValues("");
             treeComposite.setEnabled(true);
-        }else{
+        } else {
             isOverride = false;
             rememberCheckedValues(getCheckedValuesFromPreferences());
             treeComposite.setEnabled(false);
         }
-       pref = null;
-       useLocalOrAdmin.select(0);
+        pref = null;
+        useLocalOrAdmin.select(0);
 
-       setApply(true);
-       super.performDefaults();
+        setApply(true);
+        super.performDefaults();
 
     }
 
     @Override
     public boolean performOk() {
-        if (!isApply()){
+        if (!isApply()) {
             return true;
         }
         Object[] checkedElements = treeComposite.getViewer().getCheckedElements();
@@ -288,11 +272,11 @@ abstract public class AbstractGeneralTermPreference<T extends AbstractTermDto> e
         Collection<TermDto> preferredTermDtos = new ArrayList<>();
         List<DefinedTermBase> preferredTerms = new ArrayList<>();
         for (Object o : checkedElements) {
-            if(o instanceof TermDto){
+            if (o instanceof TermDto) {
                 TermDto termDto = (TermDto) o;
                 listUIIDChecked.add(termDto.getUuid());
                 preferredTermDtos.add(termDto);
-                if (vocabularies.size() > 1){
+                if (vocabularies.size() > 1) {
                     preferredTerms.add(CdmStore.getService(ITermService.class).load(termDto.getUuid()));
                 }
 
@@ -300,18 +284,17 @@ abstract public class AbstractGeneralTermPreference<T extends AbstractTermDto> e
         }
         String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
 
-
         String text = this.useLocalOrAdmin.getText();
-        if (text.equals(LocalOrDefaultEnum.Database.getLabel()) || text.equals(LocalOrDefaultEnum.Default.getLabel())){
+        if (text.equals(LocalOrDefaultEnum.Database.getLabel()) || text.equals(LocalOrDefaultEnum.Default.getLabel())) {
             PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(predicate.getKey()), false);
-        }else if (text.equals(LocalOrDefaultEnum.Local.getLabel())){
+        } else if (text.equals(LocalOrDefaultEnum.Local.getLabel())) {
             PreferencesUtil.setStringValue(predicate.getKey(), saveCheckedElements);
             PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(predicate.getKey()), true);
         }
-        if (type == null){
+        if (type == null) {
             CdmStore.getTermManager().setPreferredTermsByDto(preferredTermDtos, vocabularies.get(0));
 
-        }else{
+        } else {
             CdmStore.getTermManager().setPreferredTermsByType(preferredTermDtos, type);
         }
         PreferencesUtil.firePreferencesChanged(this.getClass());
@@ -319,26 +302,31 @@ abstract public class AbstractGeneralTermPreference<T extends AbstractTermDto> e
     }
 
     protected boolean performOkAdmin() {
-        Object[] checkedElements = treeComposite.getViewer().getCheckedElements();
-        List<UUID> listUIIDChecked = new ArrayList<>();
-        List<DefinedTermBase> preferredTerms = new ArrayList<>();
-        for (Object o : checkedElements) {
-            if(o instanceof TermDto){
-                TermDto termDto = (TermDto) o;
-                listUIIDChecked.add(termDto.getUuid());
-                preferredTerms.add(CdmStore.getService(ITermService.class).load(termDto.getUuid()));
+        CdmPreference savePref = CdmPreference.NewTaxEditorInstance(predicate, null);
+        
+        if (pref != null) {
+           
+            Object[] checkedElements = treeComposite.getCheckedElements();
+            List<UUID> listUIIDChecked = new ArrayList<>();
+            List<DefinedTermBase> preferredTerms = new ArrayList<>();
+            for (Object o : checkedElements) {
+                if (o instanceof TermDto) {
+                    TermDto termDto = (TermDto) o;
+                    listUIIDChecked.add(termDto.getUuid());
+                    preferredTerms.add(CdmStore.getService(ITermService.class).load(termDto.getUuid()));
+                }
+            }
+            String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
+            if (StringUtils.isBlank(saveCheckedElements)) {
+                saveCheckedElements = null;
+            }
+            savePref = CdmPreference.NewTaxEditorInstance(predicate, saveCheckedElements);
+            String text = this.useLocalOrAdmin.getText();
+            if (text.equals(LocalOrDefaultEnum.Database.getLabel())) {
+                savePref.setAllowOverride(false);
+            } else if (text.equals(LocalOrDefaultEnum.AllowOverride.getLabel())) {
+                savePref.setAllowOverride(true);
             }
-        }
-        String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
-        if (StringUtils.isBlank(saveCheckedElements)){
-            saveCheckedElements = null;
-        }
-        CdmPreference savePref = CdmPreference.NewTaxEditorInstance(predicate, saveCheckedElements);
-        String text = this.useLocalOrAdmin.getText();
-        if (text.equals(LocalOrDefaultEnum.Database.getLabel()) ){
-            savePref.setAllowOverride(false);
-        }else if (text.equals(LocalOrDefaultEnum.AllowOverride.getLabel())){
-            savePref.setAllowOverride(true);
         }
 
         PreferencesUtil.setPreferenceToDB(savePref);
@@ -346,5 +334,4 @@ abstract public class AbstractGeneralTermPreference<T extends AbstractTermDto> e
         PreferencesUtil.firePreferencesChanged(this.getClass());
         return true;
     }
-
-}
+}
\ No newline at end of file
old mode 100755 (executable)
new mode 100644 (file)
index 6cc58a1..043303e
@@ -45,36 +45,36 @@ public abstract class AbstractVocabularySelectionPreference extends CdmPreferenc
     /**
     *
     */
-   protected void refresh() {
-       //getValues();
-       if (table != null){
-           table.removeAll();
-           if (pref != null){
-               createTableRow(pref);
-           }
-           table.redraw();
-           table.pack();
+    protected void refresh() {
+        // getValues();
+        if (table != null) {
+            table.removeAll();
+            if (pref != null) {
+                createTableRow(pref);
+            }
+            table.redraw();
+            table.pack();
 
-       }
+        }
 
-   }
+    }
 
-   public abstract void createTableRow(CdmPreference pref) ;
-  // public abstract String getUUIDFromSubject(CdmPreference pref);
+    public abstract void createTableRow(CdmPreference pref);
+    // public abstract String getUUIDFromSubject(CdmPreference pref);
 
-   protected void fillVocabularies(CdmPreference vocPref){
-       List<UUID> uuids = null;
-       if (isAdminPreference){
-           uuids = PreferencesUtil.createUuidList(vocPref.getValue());
-       }else{
-           uuids = PreferencesUtil.createUUIDListFromStringPref(vocPref.getPredicate(), false);
-       }
-       if (uuids == null || uuids.isEmpty()){
-           vocabularies = new ArrayList();
-           vocabularies = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(type);
-       }else{
-           vocabularies =  CdmStore.getService(IVocabularyService.class).findVocabularyDtoByVocabularyUuids(uuids);
-       }
-   }
+    protected void fillVocabularies(CdmPreference vocPref) {
+        List<UUID> uuids = null;
+        if (isAdminPreference) {
+            uuids = PreferencesUtil.createUuidList(vocPref.getValue());
+        } else {
+            uuids = PreferencesUtil.createUUIDListFromStringPref(vocPref.getPredicate(), false);
+        }
+        if (uuids == null || uuids.isEmpty()) {
+            vocabularies = new ArrayList();
+            vocabularies = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(type);
+        } else {
+            vocabularies = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByVocabularyUuids(uuids);
+        }
+    }
 
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AreaCheckBoxTreeComposite.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AreaCheckBoxTreeComposite.java
new file mode 100644 (file)
index 0000000..a7b7668
--- /dev/null
@@ -0,0 +1,267 @@
+/**
+* Copyright (C) 2023 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 java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.jface.viewers.AbstractTreeViewer;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.ITreeSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.swt.widgets.Widget;
+
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.taxeditor.preference.wizard.CheckBoxTreeComposite;
+
+/**
+ * @author katjaluther
+ * @since 18.10.2023
+ */
+public class AreaCheckBoxTreeComposite extends CheckBoxTreeComposite {
+    Map<TermDto, Set<TermNodeDto>> mapTermsToNodes = new HashMap<>();
+
+    /**
+     * @param parent
+     * @param contentProvider
+     * @param labelProvider
+     * @param style
+     */
+    public AreaCheckBoxTreeComposite(Composite parent, ITreeContentProvider contentProvider, IBaseLabelProvider labelProvider,
+            int style) {
+        super(parent, contentProvider, labelProvider, style);
+        
+    }
+    
+    @Override
+    protected Tree createTree() {
+        Tree tree = new Tree(this, SWT.BORDER | SWT.CHECK);
+        tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+        tree.addListener(SWT.Selection, event -> {
+            if (event.detail == SWT.CHECK) {
+                TreeItem item = (TreeItem) event.item;
+                if(!allowTopLevelSelection && item.getParentItem()==null){
+                    // top level selection not allowed
+                    item.setChecked(false);
+                    return;
+                }              
+                if (item.getChecked()){
+                    updateAfterCheckElement(item);                          
+                }else{
+                    if (checkedElements != null){
+                        updateAfterUnCheckElement(item);
+                    }
+                }                
+            }
+        });
+        return tree;
+    }
+
+    
+    
+    /**
+     * @return the mapTermsToNodes
+     */
+    public Map<TermDto, Set<TermNodeDto>> getMapTermsToNodes() {
+        return mapTermsToNodes;
+    }
+
+    /**
+     * @param mapTermsToNodes the mapTermsToNodes to set
+     */
+    public void setMapTermsToNodes(Map<TermDto, Set<TermNodeDto>> mapTermsToNodes) {
+        this.mapTermsToNodes = mapTermsToNodes;
+    }
+
+    /**
+     * @param item
+     */
+    private void updateAfterCheckElement(Object item) {
+        List<Object> tempList = new ArrayList<>();
+        if (checkedElements != null) {
+            Collections.addAll(tempList, checkedElements);
+        }
+        
+        TermNodeDto checkedNode = null;
+        TermDto checkedTerm = null;
+        TreeItem treeItem = null;
+        if (item instanceof TreeItem) {
+             treeItem = (TreeItem) item;   
+             if (treeItem.getData() instanceof TermNodeDto) {
+                 checkedNode = (TermNodeDto)treeItem.getData();
+                 checkedTerm = checkedNode.getTerm();
+             }else if (treeItem.getData() instanceof TermDto) {           
+                 checkedTerm = (TermDto)treeItem.getData();
+             }else {
+                 return;
+             }
+        }else  if (item instanceof TermNodeDto) {
+            checkedNode = (TermNodeDto)item;
+            checkedTerm = checkedNode.getTerm();
+        }else if (item instanceof TermDto) {           
+            checkedTerm = (TermDto)item;
+        }else {
+            return;
+        }
+        
+        
+        Set<TermNodeDto> allRelevantNodes =  this.mapTermsToNodes.get(checkedTerm);
+        if (allRelevantNodes != null) {
+            tempList.addAll(allRelevantNodes);
+        }
+        tempList.add(checkedTerm);
+        
+        setCheckedElements(tempList.toArray());
+        
+    }
+    
+   
+    @Override
+    protected void updateAfterUnCheckElement(Object item) {
+        List<Object> tempList = new ArrayList<>();     
+        List<Object> elementsToUpdate = new ArrayList<>();
+        Collections.addAll(tempList, checkedElements);
+        TermNodeDto checkedNode = null;
+        TermDto checkedTerm = null;
+        if (item instanceof TreeItem) {
+            if (((TreeItem)item).getData() instanceof TermNodeDto) {
+                checkedNode = (TermNodeDto)((TreeItem)item).getData();
+                checkedTerm = checkedNode.getTerm();
+            }else if (((TreeItem)item).getData() instanceof TermDto) {           
+                checkedTerm = (TermDto)((TreeItem)item).getData();
+            }else {
+                return;
+            }
+        }else if (item instanceof TermNodeDto) {
+            checkedNode = (TermNodeDto)item;
+            checkedTerm = checkedNode.getTerm();            
+        }else if (item instanceof TermDto) {
+            checkedTerm = (TermDto) item;
+        }
+        
+        for (Object o:checkedElements){
+            //o can be a termnode dto or a term dto
+            //check whether item.getData is a termDto or a termNodeDto
+            TermNodeDto toCheckNode = null;
+            TermDto toCheckTerm = null;
+            if (o instanceof TermNodeDto) {
+                toCheckNode = (TermNodeDto) o;
+                toCheckTerm = toCheckNode.getTerm();
+            }else if (o instanceof TermDto) {
+                toCheckTerm = (TermDto)o;
+            }else {
+                continue;
+            }
+            
+            if (toCheckNode != null && checkedNode != null && toCheckNode.equals(checkedNode)){
+                tempList.remove(toCheckNode);
+                elementsToUpdate.add(toCheckNode);
+
+            }
+            if (toCheckNode != null && checkedTerm != null && toCheckTerm.equals(checkedTerm)){
+                tempList.remove(toCheckNode);
+                elementsToUpdate.add(toCheckNode);
+                
+            }
+            if (toCheckTerm != null && checkedTerm != null && toCheckTerm.equals(checkedTerm)){
+                tempList.remove(toCheckTerm);
+                elementsToUpdate.add(toCheckTerm);
+                
+            }
+        }
+        setCheckedElements(tempList.toArray());
+    }
+    
+    @Override
+    public void widgetSelected(SelectionEvent e) {
+        ITreeSelection structuredSelection = viewer.getStructuredSelection();
+        Object firstElement = structuredSelection.getFirstElement();
+        if(e.widget == btnCollapse){
+            viewer.collapseAll();
+        }
+        else if(e.widget == btnExpand){
+            viewer.expandToLevel(firstElement, AbstractTreeViewer.ALL_LEVELS);
+        }
+        else if(e.widget == btnSelectDirectChildren){
+            Widget item = viewer.testFindItem(firstElement);
+            if(item instanceof TreeItem){
+                viewer.expandToLevel(firstElement, 1);
+                TreeItem treeItem = (TreeItem) item;
+                TreeItem[] childItems = treeItem.getItems();
+                List<TreeItem> childItemList = Arrays.asList(childItems);
+                boolean allChecked = childItemList.stream().allMatch(childItem->childItem.getChecked());
+                childItemList.stream().forEach(childItem->childItem.setChecked(!allChecked));
+                if (!allChecked) {
+                    for (TreeItem updateItem: childItemList) {
+                        updateAfterCheckElement(updateItem);
+                    }
+                    
+                }else {
+                    for (TreeItem updateItem: childItemList) {
+                        updateAfterUnCheckElement(updateItem);
+                    }
+                }
+               
+            }
+        }
+        else if(e.widget == btnSelectAllChildren){
+            Widget item = viewer.testFindItem(firstElement);
+            if(item instanceof TreeItem){
+                viewer.expandToLevel(firstElement, AbstractTreeViewer.ALL_LEVELS);
+                Set<TreeItem> childrenSet = getSubTreeItems((TreeItem)item);
+                Object[] children = childrenSet.toArray();
+                boolean checked = true;
+                if (children == null) {
+                    return;
+                }
+                if (children != null && ((TreeItem)children[0]).getChecked()) {
+                    checked = false;
+                }
+                viewer.setSubtreeChecked(firstElement, checked);
+                ((TreeItem) item).setChecked(false);
+                Object[] checkedElements = viewer.getCheckedElements();
+                
+                for (Object updateItem: children) {
+                    if (((TreeItem)children[0]).getChecked()) {
+                        updateAfterCheckElement(updateItem);
+                    }else {
+                        updateAfterUnCheckElement(updateItem);
+                    }
+                }
+             
+            }
+        }
+    }
+    
+    private Set<TreeItem> getSubTreeItems(TreeItem parent) {
+        Set<TreeItem> children = new HashSet<>();
+        
+        if (parent.getItems() != null) {            
+            children.addAll(Arrays.asList(parent.getItems()));
+            for(TreeItem child : parent.getItems()) {              
+                children.addAll(getSubTreeItems(child));
+            }
+        }
+        return children;
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/BiocaseProvideConfig.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/BiocaseProvideConfig.java
new file mode 100644 (file)
index 0000000..04a9731
--- /dev/null
@@ -0,0 +1,56 @@
+// $Id$
+/**
+* Copyright (C) 2023 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 java.util.LinkedHashMap;
+
+/**
+ * @author K.Luther
+ * @date 14.06.2023
+ *
+ */
+public class BiocaseProvideConfig {
+
+    private String[] datasets;
+    private String service_url;
+
+
+    public BiocaseProvideConfig() {
+    }
+
+    public BiocaseProvideConfig(Object[] datasets, String service_url) {
+        this.setDatasets(datasets);
+        this.service_url = service_url;
+    }
+
+
+    public String[] getDatasets() {
+        return datasets;
+    }
+    public void setDatasets(Object[] datasets) {
+        this.datasets = new String[datasets.length];
+        int index = 0;
+        for (Object o:datasets) {
+            LinkedHashMap<String,String> map = (LinkedHashMap<String, String>)o;
+            this.datasets[index] = map.get("title");
+            index++;
+        }
+
+    }
+    public String getService_url() {
+        return service_url;
+    }
+    public void setService_url(String service_url) {
+        this.service_url = service_url;
+    }
+
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmLightExportPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmLightExportPreference.java
new file mode 100644 (file)
index 0000000..39c4c36
--- /dev/null
@@ -0,0 +1,283 @@
+/**
+* Copyright (C) 2020 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.apache.commons.lang3.StringUtils;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+
+import eu.etaxonomy.cdm.api.application.ICdmRepository;
+import eu.etaxonomy.cdm.format.description.distribution.CondensedDistributionRecipe;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since Nov 12, 2020
+ */
+public class CdmLightExportPreference extends CdmPreferencePage implements SelectionListener {
+
+    protected Combo createCondensedDistributionString;
+    protected Combo comboDistributionStringRecipe;
+
+    protected Button allowOverrideCreateCondensedDistributionString;
+    protected Button allowOverrideDistributionStringRecipe;
+
+    protected CdmPreference preferenceIsExportCondensedDistribution = null;
+    protected boolean isAllowOverrideIsExportCondensedDistribution = false;
+    protected boolean overrideExportCondensedDistribution = false;
+    protected CdmPreference preferenceCondensedDistribtionRecipe = null;
+    protected boolean isAllowOverrideCondensedDistributionRecipe = false;
+    protected boolean overrideCondensedDistributionRecipe = false;
+    protected Boolean isExportCondensedDistribution = null;
+    protected CondensedDistributionRecipe recipe = null;
+
+    @Override
+    protected Control createContents(Composite parent) {
+        getValues();
+        Composite composite = createComposite(parent);
+//        GridLayout gridLayout = new GridLayout();
+//        composite.setLayout(gridLayout);
+
+        Label description = new Label(composite, SWT.NULL);
+        description.setText(Messages.CdmLightPreference_description);
+
+        createCondensedDistributionString = createBooleanCombo(composite, Messages.GeneralPreference_yes, Messages.GeneralPreference_no, PreferencePredicate.CdmLightExportCondensedDistributionString, Messages.CdmLightPreference_distributionString, isAdminPreference);
+
+        createCondensedDistributionString
+                .setToolTipText(Messages.CdmLightPreference_distributionString_tooltip);
+        int index = 0;
+        for (String itemLabel : createCondensedDistributionString.getItems()) {
+            if (isExportCondensedDistribution == null && itemLabel.startsWith(Messages.Preference_Use_Default)) {
+                createCondensedDistributionString.select(index);
+                break;
+            }
+            if (isExportCondensedDistribution != null && itemLabel.equals(Messages.GeneralPreference_yes) && isExportCondensedDistribution){
+                createCondensedDistributionString.select(index);
+                break;
+            }
+            if (isExportCondensedDistribution != null && itemLabel.equals(Messages.GeneralPreference_no) && !isExportCondensedDistribution){
+                createCondensedDistributionString.select(index);
+                break;
+            }
+            index++;
+        }
+        createCondensedDistributionString.addSelectionListener(this);
+
+        if (isAdminPreference){
+           allowOverrideCreateCondensedDistributionString = createAllowOverrideButton(composite);
+           allowOverrideCreateCondensedDistributionString.setSelection(this.preferenceIsExportCondensedDistribution != null? this.preferenceIsExportCondensedDistribution.isAllowOverride(): isAdminPreference);
+           allowOverrideCreateCondensedDistributionString.addSelectionListener(new SelectionAdapter() {
+               @Override
+               public void widgetSelected(SelectionEvent e) {
+                   setApply(true);
+//                   if (preferenceIsExportCondensedDistribution == null){
+//                       preferenceIsExportCondensedDistribution = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CdmLightExportCondensedDistributionString, PreferencePredicate.CdmLightExportCondensedDistributionString.getDefaultValue() != null ?  PreferencePredicate.CdmLightExportCondensedDistributionString.getDefaultValue().toString(): null);
+//                   }
+//                   preferenceIsExportCondensedDistribution.setAllowOverride(!preferenceIsExportCondensedDistribution.isAllowOverride());
+                   isAllowOverrideIsExportCondensedDistribution = !isAllowOverrideIsExportCondensedDistribution;
+               }
+           });
+        }
+
+        comboDistributionStringRecipe = createCombo(composite, CondensedDistributionRecipe.values(), PreferencePredicate.CondensedDistributionRecipe, "Condensed Distribution String recipe", isAdminPreference);
+
+//        GridData gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
+//        gridData.horizontalIndent = 9;
+//        comboDistributionStringRecipe.setLayoutData(gridData);
+        GridLayoutFactory.fillDefaults();
+
+        comboDistributionStringRecipe.addSelectionListener(this);
+        comboDistributionStringRecipe.setEnabled((isExportCondensedDistribution != null && isExportCondensedDistribution )|| (isExportCondensedDistribution == null) && Boolean.valueOf(preferenceIsExportCondensedDistribution.getValue()));
+        index = 0;
+
+        for (String itemLabel : comboDistributionStringRecipe.getItems()) {
+            if (itemLabel.startsWith(Messages.Preference_Use_Default) && recipe == null){
+                comboDistributionStringRecipe.select(index);
+                break;
+            }
+            if (itemLabel.equals(recipe.getLabel())) {
+                comboDistributionStringRecipe.select(index);
+                break;
+            }
+
+            index++;
+        }
+        if (isAdminPreference){
+            allowOverrideDistributionStringRecipe = createAllowOverrideButton(composite);
+            allowOverrideDistributionStringRecipe.setSelection(this.preferenceCondensedDistribtionRecipe != null? this.preferenceCondensedDistribtionRecipe.isAllowOverride(): true);
+            allowOverrideDistributionStringRecipe.addSelectionListener(new SelectionAdapter() {
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
+//                    if (preferenceCondensedDistribtionRecipe == null){
+//                        preferenceCondensedDistribtionRecipe = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CondensedDistributionRecipe, PreferencePredicate.CondensedDistributionRecipe.getDefaultValue() != null ?  PreferencePredicate.CondensedDistributionRecipe.getDefaultValue().toString(): null);
+//                    }
+//                    preferenceCondensedDistribtionRecipe.setAllowOverride(!preferenceCondensedDistribtionRecipe.isAllowOverride());
+                    isAllowOverrideCondensedDistributionRecipe = !isAllowOverrideCondensedDistributionRecipe;
+                }
+            });
+         }
+
+        return composite;
+    }
+
+
+
+
+
+    @Override
+    public void widgetSelected(SelectionEvent e) {
+        setApply(true);
+        if (e.getSource().equals(this.comboDistributionStringRecipe)){
+            int selIndex = comboDistributionStringRecipe.getSelectionIndex();
+            if (selIndex == 0){
+                overrideCondensedDistributionRecipe = false;
+            }else{
+                overrideCondensedDistributionRecipe = true;
+            }
+            recipe = (CondensedDistributionRecipe) comboDistributionStringRecipe.getData(comboDistributionStringRecipe.getText());
+
+        }
+        if (e.getSource().equals(this.createCondensedDistributionString)){
+            String text = createCondensedDistributionString.getText();
+            if(text.startsWith(Messages.Preference_Use_Default)){
+                isExportCondensedDistribution = null;
+                overrideExportCondensedDistribution = false;
+            }
+
+            if (text.equals(Messages.GeneralPreference_yes)){
+                isExportCondensedDistribution = true;
+                overrideExportCondensedDistribution = true;
+            }else if (text.equals(Messages.GeneralPreference_no)){
+                isExportCondensedDistribution = false;
+                overrideExportCondensedDistribution = true;
+            }
+            comboDistributionStringRecipe.setEnabled((isExportCondensedDistribution != null && isExportCondensedDistribution )|| (isExportCondensedDistribution == null) && Boolean.valueOf(preferenceIsExportCondensedDistribution.getValue()));
+        }
+
+
+
+    }
+
+
+    @Override
+    public boolean performOk() {
+        if (!isApply()){
+            return true;
+        }
+        if(overrideExportCondensedDistribution){
+            PreferencesUtil.setBooleanValue(PreferencePredicate.CdmLightExportCondensedDistributionString.getKey(), isExportCondensedDistribution);
+            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.CdmLightExportCondensedDistributionString.getKey()), overrideExportCondensedDistribution);
+        }else{
+           PreferencesUtil.setBooleanValue( PreferencesUtil.prefOverrideKey(PreferencePredicate.CdmLightExportCondensedDistributionString.getKey()), overrideExportCondensedDistribution);
+        }
+        if(overrideCondensedDistributionRecipe){
+            PreferencesUtil.setStringValue(PreferencePredicate.CondensedDistributionRecipe.getKey(), recipe.getKey());
+            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.CondensedDistributionRecipe.getKey()), overrideCondensedDistributionRecipe);
+        }else{
+           PreferencesUtil.setBooleanValue( PreferencesUtil.prefOverrideKey(PreferencePredicate.CondensedDistributionRecipe.getKey()), overrideCondensedDistributionRecipe);
+        }
+
+
+
+        return true;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void widgetDefaultSelected(SelectionEvent e) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    protected void performDefaults() {
+        isExportCondensedDistribution = Boolean.valueOf(PreferencePredicate.CdmLightExportCondensedDistributionString.getDefaultValue().toString());
+        createCondensedDistributionString.select(0);
+        recipe = PreferencePredicate.CondensedDistributionRecipe.getDefaultValue() != null? CondensedDistributionRecipe.valueOf(PreferencePredicate.CondensedDistributionRecipe.getDefaultValue().toString()): null;
+        comboDistributionStringRecipe.select(0);
+        setApply(true);
+    }
+
+
+    @Override
+    public void getValues() {
+        isAdminPreference = false;
+
+        ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
+       // general export of condensed string
+        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.CdmLightExportCondensedDistributionString);
+        preferenceIsExportCondensedDistribution = controller.getPreferenceService().find(key);
+
+        if (preferenceIsExportCondensedDistribution != null ){
+            isAllowOverrideIsExportCondensedDistribution = preferenceIsExportCondensedDistribution.isAllowOverride();
+        }else{
+            preferenceIsExportCondensedDistribution = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CdmLightExportCondensedDistributionString, PreferencePredicate.CdmLightExportCondensedDistributionString.getDefaultValue().toString());
+            isAllowOverrideIsExportCondensedDistribution = true;
+        }
+
+        overrideExportCondensedDistribution = PreferencesUtil.getBooleanValue(
+                PreferencesUtil.prefOverrideKey(PreferencePredicate.CdmLightExportCondensedDistributionString.getKey()), true) != null? PreferencesUtil.getBooleanValue(
+                        PreferencesUtil.prefOverrideKey(PreferencePredicate.CdmLightExportCondensedDistributionString.getKey()), true):false;
+
+        if (isAllowOverrideIsExportCondensedDistribution){
+            if( overrideExportCondensedDistribution){
+                isExportCondensedDistribution = PreferencesUtil.getBooleanValue(PreferencePredicate.CdmLightExportCondensedDistributionString.getKey(), true);
+            }else{
+                isExportCondensedDistribution = null;
+            }
+
+        }else{
+            isExportCondensedDistribution = preferenceIsExportCondensedDistribution.getValue()!= null?Boolean.valueOf(preferenceIsExportCondensedDistribution.getValue()): null;
+        }
+        // recipe for creation of condensed string
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.CondensedDistributionRecipe);
+        preferenceCondensedDistribtionRecipe = controller.getPreferenceService().find(key);
+
+        if (preferenceCondensedDistribtionRecipe != null ){
+            isAllowOverrideCondensedDistributionRecipe = preferenceCondensedDistribtionRecipe.isAllowOverride();
+        }else{
+            preferenceCondensedDistribtionRecipe = CdmPreference.NewDatabaseInstance(PreferencePredicate.CondensedDistributionRecipe,
+                    PreferencePredicate.CondensedDistributionRecipe.getDefaultValue() != null? PreferencePredicate.CondensedDistributionRecipe.getDefaultValue().toString(): null);
+            isAllowOverrideCondensedDistributionRecipe = true;
+        }
+
+        overrideCondensedDistributionRecipe = PreferencesUtil.getBooleanValue(
+                PreferencesUtil.prefOverrideKey(PreferencePredicate.CondensedDistributionRecipe.getKey()), true) != null? PreferencesUtil.getBooleanValue(
+                        PreferencesUtil.prefOverrideKey(PreferencePredicate.CondensedDistributionRecipe.getKey()), true):false;
+
+        if (isAllowOverrideCondensedDistributionRecipe && overrideCondensedDistributionRecipe){
+            String configString = PreferencesUtil.getStringValue(PreferencePredicate.CondensedDistributionRecipe.getKey(), true);
+            if (StringUtils.isNotBlank(configString)){
+                recipe = CondensedDistributionRecipe.valueOf(configString);
+            }
+        }else{
+            if (preferenceCondensedDistribtionRecipe.getValue() != null){
+                recipe = CondensedDistributionRecipe.valueOf(preferenceCondensedDistribtionRecipe.getValue());
+            }
+        }
+    }
+}
\ No newline at end of file
old mode 100755 (executable)
new mode 100644 (file)
index ed5fc42..15f1d45
@@ -9,12 +9,14 @@
 package eu.etaxonomy.taxeditor.preference;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
 import eu.etaxonomy.cdm.api.service.ITermService;
@@ -23,7 +25,6 @@ import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferenceResolver;
 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -31,16 +32,13 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author k.luther
  * @since 27.04.2018
- *
  */
 public class CdmPreferenceCache {
-    Map<String,List<CdmPreference>> preferenceCache = new HashMap();
+    Map<String,List<CdmPreference>> preferenceCache = new HashMap<>();
 
     private static CdmPreferenceCache instance;
 
-    private final static Logger logger = Logger.getLogger(CdmPreferenceCache.class);
-
-
+    private final static Logger logger = LogManager.getLogger();
 
     public static CdmPreferenceCache instance(){
         if(instance == null){
@@ -51,7 +49,6 @@ public class CdmPreferenceCache {
 
     public CdmPreference get(String predicate){
         if (preferenceCache.get(predicate) != null){
-            List<CdmPreference> preferences = preferenceCache.get(predicate);
             if (preferenceCache.get(predicate).size() > 1){
                 CdmPreference pref = PreferenceResolver.resolve(preferenceCache.get(predicate), CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.getByKey(predicate)));
                 return pref;
@@ -94,12 +91,10 @@ public class CdmPreferenceCache {
             cachedPreferences.remove(prefToRemove);
             cachedPreferences.add(pref);
         }else{
-            List<CdmPreference> prefs = new ArrayList();
+            List<CdmPreference> prefs = new ArrayList<>();
             prefs.add(pref);
             preferenceCache.put(pref.getPredicate(), prefs);
         }
-
-
     }
 
     public boolean remove(CdmPreference pref){
@@ -114,7 +109,6 @@ public class CdmPreferenceCache {
             cachedPreferences.remove(prefToRemove);
         }
         return true;
-
     }
 
     public void getAllTaxEditorDBPreferences(){
@@ -127,96 +121,53 @@ public class CdmPreferenceCache {
             put(pref);
         }
 
-        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableDistributionStatus);
-
-        if (get(key) != null){
-            if (!PreferencesUtil.getOverrideForPreference(PreferencePredicate.AvailableDistributionStatus.getKey()) || !get(key).isAllowOverride()){
-                //get terms for the uuids... and add them to the termManager as preferred terms
-                ITermService termService = CdmStore.getService(ITermService.class);
-                List<UUID> uuidList = new ArrayList();
-                if (get(key).getValue() != null){
-                    String[] uuidArray =findBestMatching(key).getValue().split(";");
-                    for (String uuidString:uuidArray){
-                        try {
-                            uuidList.add(UUID.fromString(uuidString));
-                        } catch (Exception e) {
-                            logger.warn("Preference loading failed", e);
-                        }
-                    }
-                }
-
-                List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
-                List<TermDto> dtos = new ArrayList<>();
-                for (DefinedTermBase term: definedTermBases){
-                    dtos.add(TermDto.fromTerm(term));
-                }
-                CdmStore.getTermManager().setPreferredTermsByType(dtos, TermType.PresenceAbsenceTerm);
-            }
-        }
-         key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableRanks);
+        loadAndSet(PreferencePredicate.AvailableDistributionStatus, TermType.PresenceAbsenceTerm);
+        loadAndSet(PreferencePredicate.AvailableRanks, TermType.Rank);
+        loadAndSet(PreferencePredicate.AvailableNomenclaturalStatus, TermType.NomenclaturalStatusType);
+        loadAndSet(PreferencePredicate.AvailableNameRelationshipType, TermType.NameRelationshipType);
+        loadAndSet(PreferencePredicate.AvailableLanguages, TermType.Language);
+    }
 
+    private void loadAndSet(PreferencePredicate preferencePredicate, TermType termType) {
+        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), preferencePredicate);
         if (get(key) != null){
-            if (!PreferencesUtil.getOverrideForPreference(PreferencePredicate.AvailableRanks.getKey()) || !get(key).isAllowOverride()){
+            if (!PreferencesUtil.getOverrideForPreference(preferencePredicate.getKey()) || !get(key).isAllowOverride()){
                 //get terms for the uuids... and add them to the termManager as preferred terms
-                ITermService termService = CdmStore.getService(ITermService.class);
-                List<UUID> uuidList = new ArrayList();
-                if (get(key).getValue() != null){
-                    String[] uuidArray =findBestMatching(key).getValue().split(";");
-                    for (String uuidString:uuidArray){
-                        try {
-                            uuidList.add(UUID.fromString(uuidString));
-                        } catch (Exception e) {
-                            logger.warn("Preference loading failed", e);
-                        }
-                    }
-                }
-
-                List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
-                List<TermDto> dtos = new ArrayList();
-                for (DefinedTermBase term: definedTermBases){
-                    dtos.add(TermDto.fromTerm(term));
+                Collection<TermDto> dtos = createDtoList(key);
+                if (dtos != null){
+                    CdmStore.getTermManager().setPreferredTermsByType(dtos, termType);
                 }
-                CdmStore.getTermManager().setPreferredTermsByType(dtos, TermType.Rank);
             }
         }
+    }
 
-        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableNomenclaturalStatus);
-
-        if (get(key) != null){
-            if (!PreferencesUtil.getOverrideForPreference(PreferencePredicate.AvailableNomenclaturalStatus.getKey()) || !get(key).isAllowOverride()){
-                //get terms for the uuids... and add them to the termManager as preferred terms
-                ITermService termService = CdmStore.getService(ITermService.class);
-                List<UUID> uuidList = new ArrayList();
-                if (get(key).getValue() != null){
-                    String[] uuidArray =findBestMatching(key).getValue().split(";");
-                    for (String uuidString:uuidArray){
-                        try {
-                            uuidList.add(UUID.fromString(uuidString));
-                        } catch (Exception e) {
-                            logger.warn("Preference loading failed", e);
-                        }
-                    }
-                }
+    public Collection<TermDto> createDtoList(PrefKey key) {
+        ITermService termService = CdmStore.getService(ITermService.class);
+        List<UUID> uuidList = createUuidList(key);
+        Collection<TermDto> dtos = termService.findByUUIDsAsDto(uuidList);
+        return dtos;
+    }
 
-                List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
-                List<TermDto> dtos = new ArrayList();
-                for (DefinedTermBase term: definedTermBases){
-                    dtos.add(TermDto.fromTerm(term));
+    public List<UUID> createUuidList(PrefKey key) {
+        List<UUID> uuidList = new ArrayList<>();
+        if (get(key).getValue() != null){
+            String[] uuidArray =findBestMatching(key).getValue().split(";");
+            for (String uuidString:uuidArray){
+                try {
+                    uuidList.add(UUID.fromString(uuidString));
+                } catch (Exception e) {
+                    logger.warn("Preference loading failed", e);
                 }
-                CdmStore.getTermManager().setPreferredTermsByType(dtos, TermType.NomenclaturalStatusType);
             }
         }
+        return uuidList;
     }
 
-
-
     public CdmPreference findBestMatching(PrefKey key) {
-        List<CdmPreference> allPrefs = new ArrayList();
+        List<CdmPreference> allPrefs = new ArrayList<>();
         for (String predicate: preferenceCache.keySet()){
             allPrefs.addAll(preferenceCache.get(predicate));
         }
-       return PreferenceResolver.resolve(allPrefs, key);
-
+        return PreferenceResolver.resolve(allPrefs, key);
     }
-
 }
index 6a32de077f3fb73332d1726330159455b002eca9..7e2ec014d9cfd0b8ee534f5b22c18ef1f36c7bae 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.preference;
 
 import org.eclipse.core.expressions.PropertyTester;
@@ -16,13 +15,13 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author n.hoffmann
  * @created Jan 26, 2011
- * @version 1.0
  */
 public class CdmStorePropertyTester extends PropertyTester {
 
     private static final String EDITOR_IS_CONNECTED_TO_DB = "isCdmStoreConnected";
     private static final String IS_REMOTING = "isRemoting";
-    private static final String IS_STANDALONE = "isStandAlone";
+    private static final String IS_CONNECTED_AND_NOT_LOCAL_ACTIVATED = "isCdmStoreConnectedAndNotLocalActivated";
+    private static final String IS_CONNECTED_AND_LOCAL_ACTIVATED = "isCdmStoreConnectedAndLocalActive";
 
     @Override
     public boolean test(Object receiver, String property, Object[] args,
@@ -36,16 +35,15 @@ public class CdmStorePropertyTester extends PropertyTester {
             if(!isCdmStoreConnected()) {
                 return false;
             } else {
-                return isRemoting();
+                return true;
             }
         }
 
-        if(IS_STANDALONE.equals(property)){
-            if(!isCdmStoreConnected()) {
-                return false;
-            } else {
-                return !isRemoting();
-            }
+        if(IS_CONNECTED_AND_NOT_LOCAL_ACTIVATED.equals(property)){
+            return isCdmStoreConnectedAndNotLocalActive();
+        }
+        if(IS_CONNECTED_AND_LOCAL_ACTIVATED.equals(property)){
+            return isCdmStoreConnectedAndLocalActive();
         }
         return false;
     }
@@ -55,7 +53,14 @@ public class CdmStorePropertyTester extends PropertyTester {
         return active;
     }
 
-    private boolean isRemoting() {
-        return CdmStore.getCurrentSessionManager().isRemoting();
+    private boolean isCdmStoreConnectedAndNotLocalActive(){
+        boolean active = CdmStore.isActive();
+        active = active & !PreferencesUtil.getLocalActive();
+        return active;
+    }
+    private boolean isCdmStoreConnectedAndLocalActive(){
+        boolean active = CdmStore.isActive();
+        active = active & PreferencesUtil.getLocalActive();
+        return active;
     }
 }
index e770b62b8da6f645e3b8c30abdae5e75fdc2c3fa..ce634987fe97c3892adba1286937009ba4310511 100644 (file)
@@ -26,6 +26,7 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;\r
 \r
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;\r
+import eu.etaxonomy.cdm.model.metadata.DistributionDescription;\r
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;\r
 import eu.etaxonomy.cdm.model.metadata.TermComboEnum;\r
 import eu.etaxonomy.cdm.model.metadata.TermDisplayEnum;\r
@@ -52,10 +53,10 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
     protected TermDisplayEnum displayStatus;\r
     protected TermComboEnum displayStatusCombo;\r
     protected TermDisplayEnum displayArea;\r
-    protected Boolean ownDescriptionForDistributionEditor;\r
+    protected DistributionDescription descriptionForDistributionEditor;\r
     protected Integer numberOfStatus;\r
 \r
-    protected boolean overrideOwnDescriptionForDistributionEditor;\r
+    protected boolean overrideDescriptionForDistributionEditor;\r
     protected boolean overrideAreaVoc;\r
     protected boolean overrideRank;\r
     protected boolean overrideOrderAreas;\r
@@ -75,7 +76,8 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
     protected Button allowOverrideAreaDisplayButton;\r
     protected Combo statusSortSelectionCombo;\r
     protected Button allowOverrideStatusSortButton;\r
-\r
+    protected Combo descriptionSelectionCombo;\r
+    protected Button allowOverrideDescriptionSelectionButton;\r
 \r
     protected Text numberOfStatusText;\r
     protected Button allowOverrideNumberOfStatusButton;\r
@@ -89,7 +91,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
     protected CdmPreference prefStatusDisplayInCombo;\r
     protected CdmPreference prefAreaSort;\r
     protected CdmPreference prefRank;\r
-    protected CdmPreference prefOwnDescription;\r
+    protected CdmPreference prefDescription;\r
     protected CdmPreference prefNumberStatus;\r
     protected CdmPreference prefStatusSort;\r
     Composite child;\r
@@ -123,7 +125,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             GridData sepGrid = createTextGridData();\r
             separator.setLayoutData(sepGrid);\r
             separator.setVisible(false);\r
-            CdmPreference dbPref;\r
+\r
             GridData textGrid = createTextGridData();\r
             textGrid.verticalSpan = 2;\r
             separator.setLayoutData(sepGrid);\r
@@ -387,6 +389,43 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 });\r
             }\r
 \r
+            //===\r
+            descriptionSelectionCombo = createCombo(child, DistributionDescription.values(),\r
+                    PreferencePredicate.DescriptionForDistributionEditor, Messages.ChecklistEditorGeneralPreference_own_Description, isAdminPreference);\r
+            index = 0;\r
+            for (String itemLabel : descriptionSelectionCombo.getItems()) {\r
+                if (descriptionForDistributionEditor == null && itemLabel.startsWith(Messages.Preference_Use_Default)) {\r
+                    descriptionSelectionCombo.select(index);\r
+                    break;\r
+                }\r
+                if (descriptionForDistributionEditor != null && descriptionForDistributionEditor.getLabel().equals(itemLabel)){\r
+                    descriptionSelectionCombo.select(index);\r
+                    break;\r
+                }\r
+                \r
+                index++;\r
+            }\r
+            descriptionSelectionCombo.addSelectionListener(this);\r
+            if (isAdminPreference) {\r
+                allowOverrideDescriptionSelectionButton = createAllowOverrideButton(child);\r
+                allowOverrideDescriptionSelectionButton.setSelection(prefDescription != null? prefDescription.isAllowOverride():true);\r
+                allowOverrideDescriptionSelectionButton.addSelectionListener(new SelectionAdapter() {\r
+                    @Override\r
+                    public void widgetSelected(SelectionEvent e) {\r
+                        setApply(true);\r
+                        if (prefDescription == null){\r
+                            prefDescription = CdmPreference.NewTaxEditorInstance(PreferencePredicate.DescriptionForDistributionEditor, PreferencePredicate.DescriptionForDistributionEditor.getDefaultValue() != null ?  PreferencePredicate.DescriptionForDistributionEditor.getDefaultValue().toString(): null);\r
+                        }\r
+                        prefDescription.setAllowOverride(allowOverrideDescriptionSelectionButton.getSelection());\r
+                    }\r
+                });\r
+            }\r
+\r
+\r
+            \r
+            //====\r
+            \r
+            \r
 \r
 \r
             final CLabel description = new CLabel(child, SWT.NULL);\r
@@ -481,6 +520,9 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 if (prefNumberStatus != null && !prefNumberStatus.isAllowOverride()){\r
                     numberOfStatusText.setEnabled(false);\r
                 }\r
+                if (prefDescription != null && !prefDescription.isAllowOverride()){\r
+                    descriptionSelectionCombo.setEnabled(false);\r
+                }\r
             }\r
 \r
         }\r
@@ -569,6 +611,14 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             }\r
             PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(\r
                     PreferencePredicate.NumberOfVisibleStatusInDropDown.getKey()), override);\r
+            \r
+            override = false;\r
+            if (descriptionForDistributionEditor != null) {\r
+                override = true;\r
+                PreferencesUtil.setStringValue(PreferencePredicate.DescriptionForDistributionEditor.getKey(), descriptionForDistributionEditor.getKey());\r
+            }\r
+            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(\r
+                    PreferencePredicate.DescriptionForDistributionEditor.getKey()), override);\r
 \r
 \r
             PreferencesUtil.firePreferencesChanged(this.getClass());\r
@@ -668,6 +718,20 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 isShowRank = false;\r
             }\r
         }\r
+        \r
+        if (e.getSource().equals(this.descriptionSelectionCombo)) {\r
+            String text = descriptionSelectionCombo.getText();\r
+            if(text.startsWith(Messages.Preference_Use_Default)){\r
+                descriptionForDistributionEditor = null;\r
+                return;\r
+            }\r
+            \r
+            if (text.equals(DistributionDescription.AlwaysDefault.getLabel())){\r
+                descriptionForDistributionEditor = DistributionDescription.AlwaysDefault;\r
+            }else{\r
+                descriptionForDistributionEditor = DistributionDescription.UseAlreadyExisting;\r
+            }\r
+        }\r
 \r
 \r
         if (e.getSource().equals(this.activateCombo)) {\r
@@ -864,7 +928,11 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             }\r
         } else {\r
             if (overrideOrderStatus){\r
-                orderStatus = TermOrder.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.StatusSortedInDistributionEditor.getKey()));\r
+                try{\r
+                    orderStatus = TermOrder.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.StatusSortedInDistributionEditor.getKey()));\r
+                }catch (IllegalArgumentException e){\r
+                    orderStatus = TermOrder.Label;\r
+                }\r
             }else{\r
                 orderStatus = null;\r
             }\r
@@ -915,21 +983,36 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
 \r
         }\r
 \r
-        prefOwnDescription = PreferencesUtil\r
-                .getPreferenceFromDB(PreferencePredicate.OwnDescriptionForDistributionEditor);\r
-        if (prefOwnDescription != null) {\r
-            if (prefOwnDescription.isAllowOverride()) {\r
-                ownDescriptionForDistributionEditor = PreferencesUtil.isOwnDescriptionForChecklistEditor();\r
+        prefDescription = PreferencesUtil\r
+                .getPreferenceFromDB(PreferencePredicate.DescriptionForDistributionEditor);\r
+        overrideDescriptionForDistributionEditor = PreferencesUtil.getBooleanValue(\r
+                PreferencesUtil.prefOverrideKey(PreferencePredicate.DescriptionForDistributionEditor.getKey()), true) != null? PreferencesUtil.getBooleanValue(\r
+                        PreferencesUtil.prefOverrideKey(PreferencePredicate.DescriptionForDistributionEditor.getKey()), true): false;\r
+        if (prefDescription != null) {\r
+            if (prefDescription.isAllowOverride()) {\r
+                if (overrideDescriptionForDistributionEditor) {\r
+                    String str =  PreferencesUtil.getStringValue(PreferencePredicate.DescriptionForDistributionEditor.getKey());\r
+                    if (str == null) {\r
+                        descriptionForDistributionEditor = null;\r
+                    }else {\r
+                        descriptionForDistributionEditor = DistributionDescription.byKey(str);\r
+                    }                \r
+                }\r
             } else {\r
-                ownDescriptionForDistributionEditor = prefOwnDescription.getValue() != null? Boolean.valueOf(prefOwnDescription.getValue().toString()): null;\r
+                descriptionForDistributionEditor = prefDescription.getValue() != null? DistributionDescription.byKey(prefDescription.getValue().toString()): null;\r
             }\r
         } else {\r
-            ownDescriptionForDistributionEditor = PreferencesUtil.isShowRankInChecklistEditor();\r
-            // allowOverrideOwnDescriptionForDistributionEditor = true;\r
-            overrideOwnDescriptionForDistributionEditor = PreferencesUtil.getBooleanValue(\r
-                    PreferencesUtil.prefOverrideKey(PreferencePredicate.OwnDescriptionForDistributionEditor.getKey()), true) != null? PreferencesUtil.getBooleanValue(\r
-                            PreferencesUtil.prefOverrideKey(PreferencePredicate.OwnDescriptionForDistributionEditor.getKey()), true): false;\r
-            //prefOwnDescription = CdmPreference.NewTaxEditorInstance(PreferencePredicate.OwnDescriptionForDistributionEditor, PreferencePredicate.OwnDescriptionForDistributionEditor.getDefaultValue() != null ?  PreferencePredicate.OwnDescriptionForDistributionEditor.getDefaultValue().toString(): null);\r
+            if (overrideDescriptionForDistributionEditor) {\r
+                String str =  PreferencesUtil.getStringValue(PreferencePredicate.DescriptionForDistributionEditor.getKey());\r
+                if (str == null) {\r
+                    descriptionForDistributionEditor = null;\r
+                }else {\r
+                    descriptionForDistributionEditor = DistributionDescription.byKey(str);\r
+                }\r
+            }else {\r
+                descriptionForDistributionEditor = null;\r
+            }\r
+            \r
         }\r
 \r
 \r
@@ -1011,7 +1094,9 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             index++;\r
         }\r
 \r
-        ownDescriptionForDistributionEditor = null;\r
+        descriptionForDistributionEditor = null;\r
+        descriptionSelectionCombo.select(0);\r
+        \r
         if (prefNumberStatus == null){\r
             numberOfStatusText.setText(PreferencePredicate.NumberOfVisibleStatusInDropDown.getDefaultValue().toString());\r
         }else{\r
@@ -1029,13 +1114,14 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             allowOverrideOrderAreasButton.setSelection(true);\r
             allowOverrideRankButton.setSelection(true);\r
             allowOverrideNumberOfStatusButton.setSelection(true);\r
+            allowOverrideDescriptionSelectionButton.setSelection(true);\r
         }\r
         overrideActivated = true;\r
         overrideAreaDisplay = true;\r
         overrideStatusDisplay = true;\r
         overrideOrderAreas = true;\r
         overrideRank = true;\r
-        overrideOwnDescriptionForDistributionEditor = true;\r
+        overrideDescriptionForDistributionEditor = true;\r
         overrideNumberOfStatus = true;\r
 \r
         if (!isAdminPreference) {\r
old mode 100755 (executable)
new mode 100644 (file)
index a3455f3..e5966fe
@@ -11,14 +11,13 @@ package eu.etaxonomy.taxeditor.preference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.preference.wizard.GeneralVocabularyPreferencePage;
 
 /**
  * @author k.luther
  * @since 05.10.2018
  *
  */
-public class CommonNameVocabularyPreferencePage extends GeneralVocabularyPreferencePage implements IE4PreferencePage {
+public class CommonNameVocabularyPreferencePage extends NamedAreaVocabularyPreferencePage{//GeneralVocabularyPreferencePage implements IE4PreferencePage {
 
 
     public CommonNameVocabularyPreferencePage(){
index 5c48eccbc1757c606a3aa6b2d02dc4e4d3c61210..e2f1d193e29380922d44f1a4784d2fb3426a071a 100644 (file)
@@ -25,12 +25,12 @@ import org.eclipse.swt.widgets.Control;
 
 import eu.etaxonomy.cdm.api.service.ITermTreeService;
 import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.taxeditor.featuretree.FeatureTreeContentProvider;
-import eu.etaxonomy.taxeditor.featuretree.FeatureTreeLabelProvider;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.termtree.TermTreeContentProvider;
+import eu.etaxonomy.taxeditor.termtree.TermTreeLabelProvider;
 
 /**
  * <p>DefaultFeatureTreePreferenecs class.</p>
@@ -42,6 +42,9 @@ public class DefaultFeatureTreePreferenecs extends CdmPreferencePage {
 
        private TermTree defaultFeatureTreeForTextualDescription;
        private TermTree defaultFeatureTreeForStructuredDescription;
+       
+       private ListViewer viewerText;
+       private  ListViewer viewerStructure;
 
        /** {@inheritDoc} */
        @Override
@@ -54,8 +57,8 @@ public class DefaultFeatureTreePreferenecs extends CdmPreferencePage {
                if(!CdmStore.isActive()) {
             MessagingUtils.noDataSourceWarningDialog(null);
                }else{
-                   createTextTreeSelection(composite);
                    createStructureTreeSelection(composite);
+                   createTextTreeSelection(composite);
                }
 
                return composite;
@@ -64,31 +67,33 @@ 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);
-               viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+               viewerText.setContentProvider(new TermTreeContentProvider());
+               viewerText.setLabelProvider(new TermTreeLabelProvider());
 
-               viewer.setContentProvider(new FeatureTreeContentProvider());
-               viewer.setLabelProvider(new FeatureTreeLabelProvider());
-
-               viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+               viewerText.addSelectionChangedListener(new ISelectionChangedListener() {
 
                        @Override
                        public void selectionChanged(SelectionChangedEvent arg0) {
                            setApply(true);
-                               IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+//                         viewer.setSelection(arg0.getSelection());
+                               IStructuredSelection selection = (IStructuredSelection) viewerText.getSelection();
 
                                defaultFeatureTreeForTextualDescription = (TermTree)selection.getFirstElement();
+
                        }
                });
 
                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);
                }
        }
 
@@ -96,30 +101,33 @@ public class DefaultFeatureTreePreferenecs extends CdmPreferencePage {
                final CLabel label = new CLabel(parent, SWT.NONE);
                label.setText(Messages.DefaultFeatureTreePreferenecs_1);
 
-               final ListViewer viewer = new ListViewer(parent);
-               viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+               viewerStructure = new ListViewer(parent, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
 
-               viewer.setContentProvider(new FeatureTreeContentProvider());
-               viewer.setLabelProvider(new FeatureTreeLabelProvider());
+               viewerStructure.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
 
-               viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+               viewerStructure.setContentProvider(new TermTreeContentProvider());
+               viewerStructure.setLabelProvider(new TermTreeLabelProvider());
+
+               viewerStructure.addSelectionChangedListener(new ISelectionChangedListener() {
 
                        @Override
                        public void selectionChanged(SelectionChangedEvent arg0) {
                            setApply(true);
-                               IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+//                         viewer.setSelection(arg0.getSelection());
+                               IStructuredSelection selection = (IStructuredSelection) viewerStructure.getSelection();
 
                                defaultFeatureTreeForStructuredDescription = (TermTree) selection.getFirstElement();
+
                        }
                });
 
                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);
                }
        }
 
@@ -141,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();
+    }
+
 }
old mode 100755 (executable)
new mode 100644 (file)
index 3814b23..f6b0044
 */
 package eu.etaxonomy.taxeditor.preference;
 
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
+import eu.etaxonomy.cdm.api.application.ICdmRepository;
+import eu.etaxonomy.cdm.format.description.distribution.CondensedDistributionRecipe;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
+import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author k.luther
  * @since 02.07.2019
- *
  */
-public class DistributionGeneralPreference extends CdmPreferencePage {
+public class DistributionGeneralPreference extends CdmPreferencePage implements SelectionListener {
+    protected CdmPreference preferenceCondensedDistribtionRecipe;
+    protected boolean isAllowOverrideCondensedDistributionRecipe;
+    protected boolean isOverrideCondensedDistributionRecipe;
+    Combo comboDistributionStringRecipe;
+    Button allowOverrideDistributionStringRecipe;
+    protected CondensedDistributionRecipe recipe;
+
 
     @Override
     protected Control createContents(Composite parent) {
-        noDefaultAndApplyButton();
-        return null;
+        getValues();
+        Composite composite = createComposite(parent);
+        comboDistributionStringRecipe = createCombo(composite, CondensedDistributionRecipe.values(), PreferencePredicate.CondensedDistributionRecipe, "Condensed Distribution String recipe", isAdminPreference);
+
+//      GridData gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
+//      gridData.horizontalIndent = 9;
+//      comboDistributionStringRecipe.setLayoutData(gridData);
+      GridLayoutFactory.fillDefaults();
+
+      comboDistributionStringRecipe.addSelectionListener(this);
+//      comboDistributionStringRecipe.setEnabled((isExportCondensedDistribution != null && isExportCondensedDistribution )|| (isExportCondensedDistribution == null) && Boolean.valueOf(preferenceIsExportCondensedDistribution.getValue()));
+      int index = 0;
+
+      for (String itemLabel : comboDistributionStringRecipe.getItems()) {
+          if (itemLabel.startsWith(Messages.Preference_Use_Default) && recipe == null){
+              comboDistributionStringRecipe.select(index);
+              break;
+          }
+          if (itemLabel.equals(recipe.getLabel())) {
+              comboDistributionStringRecipe.select(index);
+              break;
+          }
+
+          index++;
+      }
+      if (isAdminPreference){
+          allowOverrideDistributionStringRecipe = createAllowOverrideButton(composite);
+          allowOverrideDistributionStringRecipe.setSelection(this.preferenceCondensedDistribtionRecipe != null? this.preferenceCondensedDistribtionRecipe.isAllowOverride(): true);
+          allowOverrideDistributionStringRecipe.addSelectionListener(new SelectionAdapter() {
+              @Override
+              public void widgetSelected(SelectionEvent e) {
+                  setApply(true);
+                  isAllowOverrideCondensedDistributionRecipe = !isAllowOverrideCondensedDistributionRecipe;
+              }
+          });
+       }else{
+          comboDistributionStringRecipe.setEnabled(isAllowOverrideCondensedDistributionRecipe);
+
+       }
+
+      return composite;
+    }
+
+    @Override
+    protected void getValues(){
+        isAdminPreference = false;
+        ICdmRepository controller;
+        controller = CdmStore.getCurrentApplicationConfiguration();
+        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.CondensedDistributionRecipe);
+        preferenceCondensedDistribtionRecipe = controller.getPreferenceService().find(key);
+
+        if (preferenceCondensedDistribtionRecipe != null ){
+            isAllowOverrideCondensedDistributionRecipe = preferenceCondensedDistribtionRecipe.isAllowOverride();
+        }else{
+            preferenceCondensedDistribtionRecipe = CdmPreference.NewDatabaseInstance(PreferencePredicate.CondensedDistributionRecipe,
+                    PreferencePredicate.CondensedDistributionRecipe.getDefaultValue() != null? PreferencePredicate.CondensedDistributionRecipe.getDefaultValue().toString(): null);
+            isAllowOverrideCondensedDistributionRecipe = true;
+        }
+
+        isOverrideCondensedDistributionRecipe = PreferencesUtil.getBooleanValue(
+                PreferencesUtil.prefOverrideKey(PreferencePredicate.CondensedDistributionRecipe.getKey()), true) != null? PreferencesUtil.getBooleanValue(
+                        PreferencesUtil.prefOverrideKey(PreferencePredicate.CondensedDistributionRecipe.getKey()), true):false;
+
+        if (isAllowOverrideCondensedDistributionRecipe && isOverrideCondensedDistributionRecipe){
+           String configString = PreferencesUtil.getStringValue(PreferencePredicate.CondensedDistributionRecipe.getKey(), true);
+           if (StringUtils.isNotBlank(configString)){
+               recipe = CondensedDistributionRecipe.valueOf(configString);
+           }
+        }else{
+            if (preferenceCondensedDistribtionRecipe.getValue() != null){
+                recipe = CondensedDistributionRecipe.valueOf(preferenceCondensedDistribtionRecipe.getValue());
+            }
+        }
+    }
+
+    @Override
+    public void widgetSelected(SelectionEvent e) {
+        setApply(true);
+        if (e.getSource().equals(this.comboDistributionStringRecipe)){
+            int selIndex = comboDistributionStringRecipe.getSelectionIndex();
+            if (selIndex == 0){
+                isOverrideCondensedDistributionRecipe = false;
+            }else{
+                isOverrideCondensedDistributionRecipe = true;
+            }
+            recipe = (CondensedDistributionRecipe) comboDistributionStringRecipe.getData(comboDistributionStringRecipe.getText());
+
+        }
+
     }
 
+    @Override
+    public void widgetDefaultSelected(SelectionEvent e) {
+        // TODO Auto-generated method stub
+
+    }
 
+    @Override
+    public boolean performOk() {
+        if (!isApply()){
+            return true;
+        }
+
+        if(isOverrideCondensedDistributionRecipe){
+            PreferencesUtil.setStringValue(PreferencePredicate.CondensedDistributionRecipe.getKey(), recipe.getKey());
+            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.CondensedDistributionRecipe.getKey()), isOverrideCondensedDistributionRecipe);
+        }else{
+           PreferencesUtil.setBooleanValue( PreferencesUtil.prefOverrideKey(PreferencePredicate.CondensedDistributionRecipe.getKey()), isOverrideCondensedDistributionRecipe);
+        }
+        return true;
+    }
 
 }
old mode 100755 (executable)
new mode 100644 (file)
index 48af3bf..d2d7062
@@ -153,10 +153,10 @@ public class DistributionStatusPreferencePage extends AbstractVocabularySelectio
         Iterator<CdmPreference> prefIterator = prefStatus.iterator();
         CdmPreference pref;
         TableColumn column = new TableColumn(table, SWT.NONE);
-        column.setText("Predicate");
-        column.setWidth(100);
-        column = new TableColumn(table, SWT.NONE);
-        column.setText("Subject");
+//        column.setText("Predicate");
+//        column.setWidth(100);
+//        column = new TableColumn(table, SWT.NONE);
+        column.setText("Area");
         column.setWidth(100);
         column = new TableColumn(table, SWT.NONE);
         column.setText("Values");
@@ -195,105 +195,101 @@ public class DistributionStatusPreferencePage extends AbstractVocabularySelectio
                 // no UUID
             }
         }
-        for (int col = 0; col < 6; col ++) {
+        for (int col = 0; col < 5; col ++) {
             if (col == 0){
-              item.setText(col, pref.getPredicate());
-            }else if (col == 1){
-                if (namedAreaString != null){
+               if (namedAreaString != null){
                     String subjectString = pref.getSubjectString().replace(pref.getSubject().getLastPart(), namedAreaString);
                     subjectString = subjectString.replace("/", "");
                     item.setText(col, subjectString);
                 }else{
                     item.setText(col, "Default");
                 }
+            }else if (col == 1){
+               List<UUID> uuidList = null;
+                if ((isAdminPreference || !override)&& pref.getValue() == null){
+                    item.setText(col, "All status");
+                }else{
 
-
-            }else if (col == 2){
-               List<UUID> uuidList = null;
-               if ((isAdminPreference || !override)&& pref.getValue() == null){
-                   item.setText(col, "All status");
-               }else{
-
-                   if (!isAdminPreference && override && ((pref != null && pref.isAllowOverride()) || pref == null)){
-                       uuidList = PreferencesUtil.createUUIDListFromStringPref(PreferencePredicate.AvailableDistributionStatus.getKey(), true);
-                   }else{
-                       if (pref != null && pref.getValue() != null){
-                           uuidList = PreferencesUtil.createUuidList(pref.getValue());
-                       }else{
-                           item.setText(col, "All status");
-                       }
-                   }
-                   if (uuidList != null){
-                       List<PresenceAbsenceTerm> terms = CdmStore.getTermManager().getTerms(uuidList, PresenceAbsenceTerm.class);
-                       String status = "";
-                       int index = 1;
-                       for (PresenceAbsenceTerm term: terms){
-                           status = status.concat(term.getLabel());
-                           if (index < terms.size()){
-                               status = status.concat(", ");
-                           }
-                           index ++;
-
-                       }
-                       item.setText(col, status);
-                   }
-               }
-
-
-             }else if (col == 3 ){
-                Button allowOverrideButton = new Button(table, SWT.CHECK);
-                allowOverrideButton.setData(pref);
-                TableEditor editor = new TableEditor(table);
-                editor.horizontalAlignment = SWT.LEFT;
-                editor.grabHorizontal = true;
-                editor.setEditor(allowOverrideButton, item, col);
-                allowOverrideButton.setSelection(pref.isAllowOverride());
-                if (isAdminPreference){
-
-                allowOverrideButton.addSelectionListener(new SelectionAdapter(){
-                    @Override
-                    public void widgetSelected(SelectionEvent e){
-                        setApply(true);
-                        Button thisButton= (Button) e.widget;
-                        CdmPreference preference=(CdmPreference)thisButton.getData();
-                        preference = PreferenceResolver.resolve(prefStatus, preference.getKey());
-                        if (isAdminPreference){
-                            preference.setAllowOverride(!preference.isAllowOverride());
+                    if (!isAdminPreference && override && ((pref != null && pref.isAllowOverride()) || pref == null)){
+                        uuidList = PreferencesUtil.createUUIDListFromStringPref(PreferencePredicate.AvailableDistributionStatus.getKey(), true);
+                    }else{
+                        if (pref != null && pref.getValue() != null){
+                            uuidList = PreferencesUtil.createUuidList(pref.getValue());
                         }else{
+                            item.setText(col, "All status");
+                        }
+                    }
+                    if (uuidList != null){
+                        List<PresenceAbsenceTerm> terms = CdmStore.getTermManager().getTerms(uuidList, PresenceAbsenceTerm.class);
+                        String status = "";
+                        int index = 1;
+                        for (PresenceAbsenceTerm term: terms){
+                            status = status.concat(term.getLabel());
+                            if (index < terms.size()){
+                                status = status.concat(", ");
+                            }
+                            index ++;
 
                         }
+                        item.setText(col, status);
                     }
-                  });
-                }else{
-                    allowOverrideButton.setEnabled(false);
                 }
-            } else if (col == 4 && isAdminPreference){
-                Button delButton = new Button(table, SWT.PUSH);
-                delButton.setImage(ImageResources
-                        .getImage(ImageResources.TRASH_ICON));
-                delButton.setData(pref);
-                delButton.pack();
-                delButton.addSelectionListener(new SelectionAdapter(){
-                    @Override
-                    public void widgetSelected(SelectionEvent e){
-                        Button thisButton= (Button) e.widget;
-                        CdmPreference preference=(CdmPreference)thisButton.getData();
-                        int index = prefStatus.indexOf(preference);
-                        table.getItem(index).setText("Deleted");
-                        //prefStatus.remove(preference);
-                        prefStatusToDelete.add(preference);
-                        setApply(true);
 
-                    }
-                  });
-                TableEditor editor = new TableEditor(table);
-                editor.horizontalAlignment = SWT.LEFT;
-                editor.grabHorizontal = true;
-                editor.setEditor(delButton, item, col);
 
-            }
-            else if (col == 5 && isAdminPreference){
-                Button listButton = new Button(table, SWT.PUSH);
+
+            }else if (col == 2){
+                Button allowOverrideButton = new Button(table, SWT.CHECK);
+                 allowOverrideButton.setData(pref);
+                 TableEditor editor = new TableEditor(table);
+                 editor.horizontalAlignment = SWT.LEFT;
+                 editor.grabHorizontal = true;
+                 editor.setEditor(allowOverrideButton, item, col);
+                 allowOverrideButton.setSelection(pref.isAllowOverride());
+                 if (isAdminPreference){
+
+                 allowOverrideButton.addSelectionListener(new SelectionAdapter(){
+                     @Override
+                     public void widgetSelected(SelectionEvent e){
+                         setApply(true);
+                         Button thisButton= (Button) e.widget;
+                         CdmPreference preference=(CdmPreference)thisButton.getData();
+                         preference = PreferenceResolver.resolve(prefStatus, preference.getKey());
+                         if (isAdminPreference){
+                             preference.setAllowOverride(!preference.isAllowOverride());
+                         }else{
+
+                         }
+                     }
+                   });
+                 }else{
+                     allowOverrideButton.setEnabled(false);
+                 }
+
+             }else if (col == 3 && isAdminPreference){
+                Button delButton = new Button(table, SWT.PUSH);
+                 delButton.setImage(ImageResources
+                         .getImage(ImageResources.TRASH_ICON));
+                 delButton.setData(pref);
+                 delButton.pack();
+                 delButton.addSelectionListener(new SelectionAdapter(){
+                     @Override
+                     public void widgetSelected(SelectionEvent e){
+                         Button thisButton= (Button) e.widget;
+                         CdmPreference preference=(CdmPreference)thisButton.getData();
+                         int index = prefStatus.indexOf(preference);
+                         table.getItem(index).setText("Deleted");
+                         //prefStatus.remove(preference);
+                         prefStatusToDelete.add(preference);
+                         setApply(true);
+
+                     }
+                   });
+                 TableEditor editor = new TableEditor(table);
+                 editor.horizontalAlignment = SWT.LEFT;
+                 editor.grabHorizontal = true;
+                 editor.setEditor(delButton, item, col);
+            } else if (col == 4 && isAdminPreference){
+               Button listButton = new Button(table, SWT.PUSH);
                 listButton.setImage(ImageResources
                         .getImage(ImageResources.EDIT_ICON));
                 listButton.setData(pref);
@@ -302,7 +298,7 @@ public class DistributionStatusPreferencePage extends AbstractVocabularySelectio
                     @Override
                     public void widgetSelected(SelectionEvent e){
                         Button thisButton= (Button) e.widget;
-                        AvailableDistributionPerAreaStatusWizard wizard = new AvailableDistributionPerAreaStatusWizard();
+                        AvailableDistributionPerAreaStatusWizard wizard = new AvailableDistributionPerAreaStatusWizard(isAdminPreference);
                         CdmPreference actualPref = CdmPreferenceCache.instance().findBestMatching(pref.getKey());
                         wizard.setActualPref(actualPref);
                        String uuidString = getUUIDFromSubject(actualPref);
@@ -335,6 +331,10 @@ public class DistributionStatusPreferencePage extends AbstractVocabularySelectio
                 editor.setEditor(listButton, item, col);
 
             }
+//            else if (col == 5 && isAdminPreference){
+//                
+//
+//            }
         }
     }
 
old mode 100755 (executable)
new mode 100644 (file)
index c33b8b2..39b49b4
@@ -116,11 +116,11 @@ public enum EditorPreferencePredicate implements IEnumTerm<EditorPreferencePredi
 
 
     @Override
-    public String getMessage() {return delegateVocTerm.getMessage();}
+    public String getLabel() {return delegateVocTerm.getLabel();}
 
 
     @Override
-    public String getMessage(Language lang) {return delegateVocTerm.getMessage(lang);}
+    public String getLabel(Language lang) {return delegateVocTerm.getLabel(lang);}
 
 
     @Override
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/EnableComputedDescriptions.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/EnableComputedDescriptions.java
new file mode 100644 (file)
index 0000000..a9af09d
--- /dev/null
@@ -0,0 +1,174 @@
+/**
+* Copyright (C) 2021 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.preference;
+
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.EnabledComputedDescription;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+
+/**
+ * @author k.luther
+ * @since May 26, 2021
+ */
+public class EnableComputedDescriptions extends CdmPreferencePage implements SelectionListener{
+
+    protected CdmPreference computedDescriptionsHandling = null;
+    protected EnabledComputedDescription selectedHandling = null;
+    protected boolean allowOverride;
+    protected boolean isOverride = true;
+
+    protected Combo comboSelectHandling;
+    Button allowOverrideHandlingButton;
+
+
+    @Override
+    protected Control createContents(Composite parent) {
+        getValues();
+
+        Composite composite = createComposite(parent);
+        Label description = new Label(composite, SWT.NULL);
+        description.setText(Messages.Computed_factualData_handling_description);
+
+        comboSelectHandling = createCombo(composite, EnabledComputedDescription.values(), PreferencePredicate.EnableComputedDescription, Messages.FactualData_EnableComputedFactualData, isAdminPreference);
+        comboSelectHandling.addSelectionListener(this);
+        if (this.isAdminPreference){
+            allowOverrideHandlingButton = createAllowOverrideButton(composite);
+            allowOverrideHandlingButton.setSelection(allowOverride);
+            allowOverrideHandlingButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    allowOverride = !allowOverride;
+                    setApply(true);
+                    }
+            });
+        }
+        int index = 0;
+
+        for (String itemLabel : comboSelectHandling.getItems()) {
+            if (itemLabel.startsWith(Messages.Preference_Use_Default) && ((!isOverride && !isAdminPreference) || selectedHandling == null)){
+                comboSelectHandling.select(index);
+                break;
+            }
+            if (itemLabel.equals(selectedHandling.getLabel())) {
+                comboSelectHandling.select(index);
+                break;
+            }
+
+            index++;
+        }
+
+        if (!isAdminPreference){
+            comboSelectHandling.setEnabled(allowOverride);
+        }
+
+        return composite;
+    }
+
+
+    @Override
+    public void getValues(){
+        // get modifier values
+        computedDescriptionsHandling = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.EnableComputedDescription);
+        if (computedDescriptionsHandling == null){
+            computedDescriptionsHandling = CdmPreference.NewTaxEditorInstance(PreferencePredicate.EnableComputedDescription, ((EnabledComputedDescription)PreferencePredicate.EnableComputedDescription.getDefaultValue()).getKey());
+        }
+        allowOverride = computedDescriptionsHandling.isAllowOverride();
+
+
+
+        isOverride = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.EnableComputedDescription.getKey()), true);
+        if (allowOverride && isOverride){
+            String localHandlingPref = PreferencesUtil.getStringValue(PreferencePredicate.EnableComputedDescription.getKey(), true);
+            if (StringUtils.isNotBlank(localHandlingPref)){
+                selectedHandling = EnabledComputedDescription.byKey(localHandlingPref);
+            }
+
+         }else{
+             if (computedDescriptionsHandling.getValue() != null){
+                 try{
+                     selectedHandling = EnabledComputedDescription.byKey(computedDescriptionsHandling.getValue());
+                 }catch (IllegalArgumentException e){
+                     selectedHandling = (EnabledComputedDescription) PreferencePredicate.EnableComputedDescription.getDefaultValue();
+                 }
+             }
+         }
+
+
+
+
+    }
+
+    @Override
+    protected void performDefaults() {
+       selectedHandling = null;
+       allowOverride = true;
+
+       comboSelectHandling.select(0);
+       if (isAdminPreference){
+            allowOverrideHandlingButton.setSelection(allowOverride);
+        }
+        setApply(true);
+        super.performDefaults();
+    }
+
+
+    @Override
+    public void widgetSelected(SelectionEvent e) {
+        setApply(true);
+        if (e.getSource().equals(this.comboSelectHandling)){
+            int selIndex = comboSelectHandling.getSelectionIndex();
+            if (selIndex == 0){
+                isOverride = false;
+            }else{
+                isOverride = true;
+            }
+            selectedHandling = (EnabledComputedDescription) comboSelectHandling.getData(comboSelectHandling.getText());
+
+        }
+
+    }
+
+
+    @Override
+    public void widgetDefaultSelected(SelectionEvent e) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public boolean performOk() {
+        if (!isApply()){
+            return true;
+        }
+
+        if(isOverride){
+            PreferencesUtil.setStringValue(PreferencePredicate.EnableComputedDescription.getKey(), this.selectedHandling.getKey());
+            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.EnableComputedDescription.getKey()), isOverride);
+        }else{
+            PreferencesUtil.setBooleanValue( PreferencesUtil.prefOverrideKey(PreferencePredicate.EnableComputedDescription.getKey()), isOverride);
+        }
+        return true;
+    }
+
+
+
+}
old mode 100755 (executable)
new mode 100644 (file)
index ed89d33..d924ec2
@@ -48,6 +48,15 @@ public class FactualDataPreference extends CdmPreferencePage implements Selectio
 
     protected boolean allowOverrideFreeText;
     private boolean isOverrideFreeText = true;
+    
+    protected Boolean isShowSpecimenAsSource;
+
+    protected Combo comboShowSpecimenAsSource;
+    protected CdmPreference prefShowSpecimenAsSource = null;
+    Button allowOverrideShowSpecimenButton;
+
+    protected boolean allowOverrideSpecimen;
+    private boolean isOverrideSpecimen = true;
 
 
 
@@ -134,6 +143,39 @@ public class FactualDataPreference extends CdmPreferencePage implements Selectio
             comboShowModifierFreeText.setEnabled(allowOverrideFreeText);
         }
 
+        //Show specimen as source
+        comboShowSpecimenAsSource = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowSpecimenInFactSource, Messages.FactualData_showSpecimenAsSource, isAdminPreference);
+        comboShowSpecimenAsSource.addSelectionListener(this);
+        if (this.isAdminPreference){
+            allowOverrideShowSpecimenButton = createAllowOverrideButton(composite);
+            allowOverrideShowSpecimenButton.setSelection(allowOverrideSpecimen);
+            allowOverrideShowSpecimenButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    allowOverrideSpecimen = !allowOverrideSpecimen;
+                    setApply(true);
+                    }
+            });
+        }
+        index = 0;
+        if(isShowSpecimenAsSource==null){
+               comboShowSpecimenAsSource.select(0);
+        } else{
+            for (String itemLabel : comboShowSpecimenAsSource.getItems()){
+                if (itemLabel.startsWith(this.SHOW) && isShowSpecimenAsSource){
+                       comboShowSpecimenAsSource.select(index);
+                    break;
+                }
+                if (itemLabel.startsWith(DO_NOT_SHOW) && !isShowSpecimenAsSource){
+                       comboShowSpecimenAsSource.select(index);
+                    break;
+                }
+                index++;
+            }
+        }
+        if (!isAdminPreference){
+               comboShowSpecimenAsSource.setEnabled(allowOverrideSpecimen);
+        }
 
         return composite;
 
@@ -157,6 +199,14 @@ public class FactualDataPreference extends CdmPreferencePage implements Selectio
             }else{
                 PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifierFreeText.getKey()), false);
             }
+            
+            if (isShowSpecimenAsSource != null){
+                PreferencesUtil.setStringValue(PreferencePredicate.ShowSpecimenInFactSource.getKey(), Boolean.toString(isShowSpecimenAsSource));
+                PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowSpecimenInFactSource.getKey()), true);
+
+            }else{
+                PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowSpecimenInFactSource.getKey()), false);
+            }
 
         }
         return true;
@@ -176,7 +226,7 @@ public class FactualDataPreference extends CdmPreferencePage implements Selectio
             isShowModifier = Boolean.valueOf(showModifierString);
         }
 
-        isOverride = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifier.getKey()));
+        isOverride = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifier.getKey()), true);
         if (!isOverride){
            isShowModifier = null;
         }
@@ -193,10 +243,27 @@ public class FactualDataPreference extends CdmPreferencePage implements Selectio
             isShowModifierFreeText = Boolean.valueOf(showModifierStringFreeText);
         }
 
-        isOverrideFreeText = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifierFreeText.getKey()));
+        isOverrideFreeText = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifierFreeText.getKey()), true);
         if (!isOverrideFreeText){
            isShowModifierFreeText = null;
         }
+        
+     // get specimen values
+        prefShowSpecimenAsSource = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowSpecimenInFactSource);
+        if (prefShowSpecimenAsSource == null){
+               prefShowSpecimenAsSource = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowSpecimenInFactSource, PreferencePredicate.ShowSpecimenInFactSource.getDefaultValue().toString());
+        }
+        allowOverrideSpecimen = prefShowSpecimenAsSource.isAllowOverride();
+        isShowSpecimenAsSource = null;
+        String showSpecimenString = PreferencesUtil.getStringValue(PreferencePredicate.ShowSpecimenInFactSource.getKey(), true);
+        if (showSpecimenString != null){
+               isShowSpecimenAsSource = Boolean.valueOf(showSpecimenString);
+        }
+
+        isOverrideSpecimen = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowSpecimenInFactSource.getKey()), true);
+        if (!isOverrideSpecimen){
+               isShowSpecimenAsSource = null;
+        }
 
 
     }
@@ -218,6 +285,14 @@ public class FactualDataPreference extends CdmPreferencePage implements Selectio
        if (isAdminPreference){
             allowOverrideFreeTextButton.setSelection(allowOverrideFreeText);
         }
+       
+       isShowSpecimenAsSource = null;
+       allowOverrideSpecimen = true;
+
+       comboShowSpecimenAsSource.select(0);
+       if (isAdminPreference){
+            allowOverrideShowSpecimenButton.setSelection(allowOverrideSpecimen);
+        }
         setApply(true);
         super.performDefaults();
     }
@@ -254,6 +329,23 @@ public class FactualDataPreference extends CdmPreferencePage implements Selectio
             }
 
         }
+        
+        if (e.getSource().equals(this.comboShowSpecimenAsSource)) {
+            String text = comboShowSpecimenAsSource.getText();
+            if (text.startsWith(Messages.Preference_Use_Default)){
+                isOverrideSpecimen = false;
+                isShowSpecimenAsSource = null;
+
+            }else if (text.equals(SHOW)){
+               isShowSpecimenAsSource = true;
+               isOverrideSpecimen = true;
+            }else{
+               isShowSpecimenAsSource = false;
+               isOverrideSpecimen = true;
+            }
+
+        }
+
         setApply(true);
 
     }
old mode 100755 (executable)
new mode 100644 (file)
index 3b5b7e5..bc95178
@@ -13,7 +13,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
@@ -49,7 +49,7 @@ public class GeneralTermPreferencePage extends AbstractGeneralTermPreference<Ter
         }
 
         if (listValue == null || listValue.isEmpty() ){
-            termlist = termService.findByTitleAsDto("", type);
+            termlist = termService.findByTitleAsDtoWithVocDto("", type);
 
         }
 
index 99a5d73904d7c26afba4fb266cc1253c805347ef..05e3d0016f17a07b0bcbd4690b78bacfbe204f5f 100644 (file)
@@ -40,6 +40,7 @@ public interface IPreferenceKeys {
 
        public static final String TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED =  "eu.etaxonomy.taxeditor.taxonServiceConfigurator.doUnpublishedTaxa";
 
+       public static final String TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS =  "eu.etaxonomy.taxeditor.taxonServiceConfigurator.doWithAuthors";
        /**
         * Whether to show UUID and database id in the supplemental data view.
         */
@@ -54,6 +55,10 @@ public interface IPreferenceKeys {
         * Whether to show vocabulary of the term when displaying it's label.
         */
        public static final String SHOW_VOCABULARY_ID_FOR_TERM_LABELS = "eu.etaxonomy.taxeditor.showVocabularyIdForTermLabels";
+       /**
+     * Whether to show vocabulary of the term when displaying it's label.
+     */
+    public static final String SHOW_VOCABULARY_ID_FOR_TERM_LABELS_IN_TREE_EDITOR = "eu.etaxonomy.taxeditor.showVocabularyIdForTermLabelsInTreeEditor";
 
        /**
         *
index 829acbabfa4eb9edc3bdcfc0a585055732072acc..bfece848b4c044a819c732b166c426e56c93ec32 100644 (file)
@@ -6,13 +6,10 @@
 * 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 java.io.IOException;
-import java.util.Locale;
 
-import org.apache.commons.lang.StringUtils;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CCombo;
@@ -25,18 +22,19 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.PlatformUI;
 
+import eu.etaxonomy.cdm.model.metadata.IKeyLabel;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author n.hoffmann
  * @created Dec 3, 2010
- * @version 1.0
  */
 public class LanguageEditorPreferencePage extends CdmPreferencePage {
 
     private CCombo combo;
-    PreferencesUtil preferencesUtil = new PreferencesUtil();
+    
     private boolean isSelectionChanged = false;
     private int initalSelectionIndex;
 
@@ -68,7 +66,9 @@ public class LanguageEditorPreferencePage extends CdmPreferencePage {
         combo.setLayoutData(oneLine);
 
         combo.add(Language.GERMAN.getLabel(), 0);
+        combo.setData(Language.GERMAN.getLabel(), Language.GERMAN.getKey());
         combo.add(Language.ENGLISH.getLabel(), 1);
+        combo.setData(Language.ENGLISH.getLabel(), Language.ENGLISH.getKey());
         restoreSavedSelection();
 
         combo.addSelectionListener(new SelectionListener() {
@@ -80,6 +80,7 @@ public class LanguageEditorPreferencePage extends CdmPreferencePage {
 //                    preferencesUtil.writePropertyToConfigFile(combo.getSelectionIndex());
                     if(initalSelectionIndex != combo.getSelectionIndex()) {
                         isSelectionChanged = true;
+                        
                     }else{
                         isSelectionChanged = false;
                     }
@@ -101,58 +102,74 @@ public class LanguageEditorPreferencePage extends CdmPreferencePage {
      * TODO: This method is not taking advantages of the enum field yet
      */
     private void restoreSavedSelection() {
-        String rememberedValue = PreferencesUtil.getStringValue(IPreferenceKeys.DEFAULT_LANGUAGE_EDITOR);
-        if(StringUtils.isNotEmpty(rememberedValue)&& StringUtils.isNotBlank(rememberedValue)){
-            if(rememberedValue.equalsIgnoreCase("en")){ //$NON-NLS-1$
+       
+//        String rememberedValue = PreferencesUtil.getStringValue(IPreferenceKeys.DEFAULT_LANGUAGE_EDITOR, true);
+        eu.etaxonomy.cdm.model.common.Language lang = PreferencesUtil.getPreferredDefaultLanguage();
+       if(lang != null){
+            if(lang == eu.etaxonomy.cdm.model.common.Language.ENGLISH()){ //$NON-NLS-1$
                 initalSelectionIndex = 1;
                 combo.select(1);
-            }else if(rememberedValue.equalsIgnoreCase("de")){ //$NON-NLS-1$
+            }else if(lang == eu.etaxonomy.cdm.model.common.Language.GERMAN()){ //$NON-NLS-1$
                 initalSelectionIndex = 0;
                 combo.select(0);
             }
         }else{
-            Locale locale = Locale.getDefault();
-            if(locale.getLanguage().equals(new Locale("de").getLanguage())){
+            eu.etaxonomy.cdm.model.common.Language defaultLanguage = CdmStore.getDefaultLanguage();
+            if(defaultLanguage.equals(eu.etaxonomy.cdm.model.common.Language.GERMAN())){
                 initalSelectionIndex = 0;
                 combo.select(0);
-            }else if(locale.getLanguage().equals(new Locale("en").getLanguage())){
+            }else if(defaultLanguage.equals(eu.etaxonomy.cdm.model.common.Language.ENGLISH())){
                 initalSelectionIndex = 1;
                 combo.select(1);
             }
         }
     }
 
-    private enum Language{
+    private enum Language implements IKeyLabel{
 
-        GERMAN("Deutsch"), ENGLISH("English"); //$NON-NLS-1$ //$NON-NLS-2$
+        GERMAN("de","Deutsch"), ENGLISH("en","English"); //$NON-NLS-1$ //$NON-NLS-2$
         private final String label;
-        private Language(String label){
+        private final String key;
+        
+        
+        private Language(String key, String label) {
+            this.key = key;
             this.label = label;
         }
-
         /**
          * @return the label
          */
+        @Override
         public String getLabel() {
             return label;
         }
+
+               @Override
+               public String getKey() {
+                       return key;
+               }
     }
 
        @Override
        public boolean performOk() {
-        try {
-            if(isSelectionChanged){
-                preferencesUtil.writePropertyToConfigFile(combo.getSelectionIndex());
-                boolean result = MessageDialog.openConfirm(getShell(), Messages.LanguageEditorPreferencePage_PleaseRestart, Messages.LanguageEditorPreferencePage_EditorHasToRestart);
-                if(result){
-                    //Press Ok
-                    PlatformUI.getWorkbench().restart();
-                }
+          
+        if (isSelectionChanged) {
+               
+               try {
+                   PreferencesUtil.writePropertyToConfigFile(combo.getSelectionIndex());
+               }catch(IOException e) {
+                   e.printStackTrace();
+               }
+               
+            
+            boolean result = MessageDialog.openConfirm(getShell(), Messages.LanguageEditorPreferencePage_PleaseRestart, Messages.LanguageEditorPreferencePage_EditorHasToRestart);
+            if(result){
+                //Press Ok
+                PlatformUI.getWorkbench().restart();
             }
-        } catch (IOException e) {
-            e.printStackTrace();
         }
+        
+      
                return super.performOk();
        }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguagePreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguagePreferences.java
new file mode 100644 (file)
index 0000000..7a49370
--- /dev/null
@@ -0,0 +1,32 @@
+/**
+* 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.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+
+/**
+ * @author k.luther
+ * @since 18.01.2019
+ *
+ */
+public class LanguagePreferences extends CdmPreferencePage {
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected Control createContents(Composite parent) {
+        noDefaultAndApplyButton();
+        return null;
+    }
+
+}
index 866e88556db4d5d48d4e43f676249806c4fbf786..57c65d6a1970b6bddd1569bb5b7addc8ca7ac88c 100644 (file)
 package eu.etaxonomy.taxeditor.preference;\r
 \r
 import java.util.List;\r
+import java.util.UUID;\r
 \r
 import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.custom.CLabel;\r
 import org.eclipse.swt.events.SelectionAdapter;\r
 import org.eclipse.swt.events.SelectionEvent;\r
 import org.eclipse.swt.layout.GridLayout;\r
-import org.eclipse.swt.layout.RowLayout;\r
+import org.eclipse.swt.widgets.Button;\r
 import org.eclipse.swt.widgets.Combo;\r
 import org.eclipse.swt.widgets.Composite;\r
 import org.eclipse.swt.widgets.Control;\r
 import org.eclipse.swt.widgets.Label;\r
 \r
 import eu.etaxonomy.cdm.model.common.Language;\r
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;\r
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;\r
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
+import eu.etaxonomy.cdm.model.term.TermType;\r
 import eu.etaxonomy.taxeditor.l10n.Messages;\r
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
@@ -34,7 +40,14 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class LanguageRepresentationPreferencePage extends CdmPreferencePage{\r
 \r
 \r
-       private Language globalLanguage;\r
+       protected Language globalLanguage;\r
+       public final static String ID = "eu.etaxonomy.taxeditor.preferences.termLanguages"; //$NON-NLS-1$\r
+\r
+    protected CdmPreference termLanguagePref =null;\r
+    protected boolean overrideActivated;\r
+    protected Button allowOverrideOrderButton;\r
+    private String defaultSettings = "Default settings";\r
+    protected Combo combo_globalLanguage;\r
 \r
 //     private Composite createComposite(Composite parent){\r
 //             Composite composite = new Composite(parent, SWT.NULL);\r
@@ -59,79 +72,150 @@ public class LanguageRepresentationPreferencePage extends CdmPreferencePage{
        }\r
 \r
        private void createSetDefaultLanguage(Composite parent) {\r
-               globalLanguage = PreferencesUtil.getGlobalLanguage();\r
-\r
-               if(globalLanguage == null) {\r
-                   return;\r
-               }\r
+               getValues();\r
 \r
                int curentSelectionIndex = 0;\r
 \r
                final Composite composite = createComposite(parent);\r
-               composite.setLayout(new RowLayout(1));\r
-\r
-               final Label label = new Label(composite, SWT.NONE);\r
-               label.setText(Messages.LanguageRepresentationPreferencePage_global);\r
-\r
-               final Combo combo_globalLanguage = new Combo(composite, SWT.NONE);\r
-\r
-               List<Language> preferredLanguages = CdmStore.getTermManager().getPreferredTerms(Language.class);\r
-\r
-               for(int i = 0; i < preferredLanguages.size(); i++){\r
-                       Language language = preferredLanguages.get(i);\r
-                       combo_globalLanguage.add(language.getLabel(), i);\r
-                       if(language.equals(globalLanguage)){\r
-                               curentSelectionIndex = i;\r
-                       }\r
-               }\r
-\r
-               combo_globalLanguage.select(curentSelectionIndex);\r
+               GridLayout layout = new GridLayout();\r
+           layout.numColumns = 2;\r
+           composite.setLayout(layout);\r
+\r
+           if (isAdminPreference || !isAdminPreference && this.termLanguagePref.isAllowOverride()) {\r
+               final Label label = new Label(composite, SWT.NONE);\r
+               label.setText(Messages.LanguageRepresentationPreferencePage_global);\r
+               final Label labelFree = new Label(composite, SWT.NONE);\r
+           // label.setText(Messages.LanguageRepresentationPreferencePage_global);\r
+\r
+               //combo_globalLanguage = new Combo(composite, SWT.NONE);\r
+               \r
+               List<DefinedTermBase> preferredLanguages = CdmStore.getTermManager().getPreferredTerms(TermType.Language);\r
+               combo_globalLanguage = createComboTerms(composite, preferredLanguages, PreferencePredicate.TermLanguage, "Term Language", Language.getDefaultLanguage() , isAdminPreference);\r
+\r
+\r
+\r
+               for(int i = 0; i < preferredLanguages.size(); i++){\r
+                       Language language = (Language)preferredLanguages.get(i);\r
+                       \r
+                       if(language.equals(globalLanguage)){\r
+                               curentSelectionIndex = i;\r
+                       }\r
+               }\r
+\r
+               if (curentSelectionIndex != 0) {\r
+                   curentSelectionIndex ++;\r
+               }\r
+               combo_globalLanguage.select(curentSelectionIndex);\r
+\r
+               combo_globalLanguage.addSelectionListener(new SelectionAdapter() {\r
+                       /* (non-Javadoc)\r
+                        * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)\r
+                        */\r
+                       @Override\r
+                       public void widgetSelected(SelectionEvent e) {\r
+\r
+                               int selectionIndex = combo_globalLanguage.getSelectionIndex();\r
+                               if (combo_globalLanguage.getItem(selectionIndex).startsWith(Messages.Preference_Use_Default)){\r
+                                   if (isAdminPreference) {\r
+                                       globalLanguage = null;\r
+                                   }\r
+                           overrideActivated = false;\r
+                       }else {\r
+                           globalLanguage = (Language)combo_globalLanguage.getData(combo_globalLanguage.getItem(selectionIndex));\r
+                           overrideActivated = true;\r
+                       }\r
+                               setApply(true);\r
+                       }\r
+               });\r
+           }else {\r
+               //changing the Term Language locally is not allowed\r
+               final CLabel description = new CLabel(parent, SWT.NULL);\r
+            description.setText(Messages.LanguageRepresentationPreferencePage_not_available);\r
+            this.setDefaultButtonActivated(false);\r
+           }\r
 \r
-               combo_globalLanguage.addSelectionListener(new SelectionAdapter() {\r
-                       /* (non-Javadoc)\r
-                        * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)\r
-                        */\r
-                       @Override\r
-                       public void widgetSelected(SelectionEvent e) {\r
 \r
-                               int selectionIndex = combo_globalLanguage.getSelectionIndex();\r
-                               globalLanguage = CdmStore.getCurrentApplicationConfiguration().getTermService().getLanguageByLabel(combo_globalLanguage.getItem(selectionIndex));\r
-                               setApply(true);\r
-                       }\r
-               });\r
+       if (isAdminPreference) {\r
+            allowOverrideOrderButton = createAllowOverrideButton(composite);\r
+            allowOverrideOrderButton.setSelection(termLanguagePref != null? termLanguagePref.isAllowOverride(): true);\r
+            //allowOverrideOrderAreasButton.setEnabled(prefAreaSort != null);\r
+            allowOverrideOrderButton.addSelectionListener(new SelectionAdapter() {\r
+                @Override\r
+                public void widgetSelected(SelectionEvent e) {\r
+                    setApply(true);\r
+                    if (termLanguagePref == null){\r
+                        termLanguagePref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.TermLanguage, PreferencePredicate.TermLanguage.getDefaultValue() != null ?  PreferencePredicate.TermLanguage.getDefaultValue().toString(): null);\r
+                    }\r
+                    termLanguagePref.setAllowOverride(allowOverrideOrderButton.getSelection());\r
+                }\r
+            });\r
+        }\r
        }\r
 \r
-//     private void createSetMultiLanguageTextEditingCapability(Composite parent) {\r
-//             isMultilanguageTextEditingCapability = PreferencesUtil.getBooleanValue(IPreferenceKeys.MULTILANGUAGE_TEXT_EDITING_CAPABILITY);\r
-//\r
-//             final Composite composite = createComposite(parent);\r
-//\r
-//             final Button button_toggle = new Button(composite, SWT.CHECK);\r
-//\r
-//\r
-//             button_toggle.setText(Messages.LanguageRepresentationPreferencePage_enable);\r
-//\r
-//             button_toggle.setSelection(isMultilanguageTextEditingCapability);\r
-//\r
-//\r
-//             button_toggle.addSelectionListener(new SelectionAdapter(){\r
-//                     /* (non-Javadoc)\r
-//                      * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)\r
-//                      */\r
-//                     @Override\r
-//                     public void widgetSelected(SelectionEvent e) {\r
-//                         setApply(true);\r
-//                             isMultilanguageTextEditingCapability = button_toggle.getSelection();\r
-//                     }\r
-//             });\r
-//     }\r
+\r
+       @Override\r
+    public void getValues() {\r
+        isAdminPreference = false;\r
+        setPreferenceStore(PreferencesUtil.getPreferenceStore());\r
+        termLanguagePref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.TermLanguage);\r
+        overrideActivated = PreferencesUtil.getBooleanValue(\r
+                PreferencesUtil.prefOverrideKey(PreferencePredicate.TermLanguage.getKey()), true) != null? PreferencesUtil.getBooleanValue(\r
+                        PreferencesUtil.prefOverrideKey(PreferencePredicate.TermLanguage.getKey()), true):false;\r
+        if (termLanguagePref != null) {\r
+            if (termLanguagePref.isAllowOverride() && overrideActivated) {\r
+                String globalLanguageUUIDString = PreferencesUtil.getStringValue(PreferencePredicate.TermLanguage.getKey(), true);\r
+                if (globalLanguageUUIDString != null) {\r
+                    globalLanguage = Language.getLanguageFromUuid(UUID.fromString( globalLanguageUUIDString));\r
+                }else {\r
+                    globalLanguage = Language.getDefaultLanguage();\r
+                }\r
+                //globalLanguage = Language.getLanguageFromUuid(UUID.fromString(PreferencesUtil.getStringValue(PreferencePredicate.TermLanguage.getKey(), true)));\r
+            } else {\r
+                if(!overrideActivated){\r
+                    globalLanguage = null;\r
+                }else{\r
+                    globalLanguage = termLanguagePref.getValue() != null? Language.getLanguageFromUuid(UUID.fromString(termLanguagePref.getValue())): CdmStore.getDefaultLanguage();\r
+                }\r
+            }\r
+\r
+        } else {\r
+            if(!overrideActivated){\r
+                globalLanguage = null;\r
+            }else{\r
+                String globalLanguageUUIDString = PreferencesUtil.getStringValue(PreferencePredicate.TermLanguage.getKey(), true);\r
+                if (globalLanguageUUIDString != null) {\r
+                    globalLanguage = Language.getLanguageFromUuid(UUID.fromString( globalLanguageUUIDString));\r
+                }else {\r
+                    globalLanguage = Language.getDefaultLanguage();\r
+                }\r
+            }\r
+            termLanguagePref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.TermLanguage, PreferencePredicate.TermLanguage.getDefaultValue() != null ?  PreferencePredicate.TermLanguage.getDefaultValue().toString(): null);\r
+        }\r
+ }\r
 \r
        @Override\r
        public boolean performOk() {\r
            if (!isApply()){\r
                return true;\r
            }\r
+           //check whether a language or the option to use the db selection was chosen\r
            PreferencesUtil.setGlobalLanguage(globalLanguage);\r
+          // if (overrideActivated) {\r
+        PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.TermLanguage.getKey()), overrideActivated);\r
+       // }\r
                return super.performOk();\r
        }\r
+       \r
+       @Override\r
+    protected void performDefaults() {\r
+\r
+           globalLanguage =  null;\r
+           \r
+           combo_globalLanguage.select(0);\r
+           overrideActivated = false;\r
+        \r
+        setApply(true);\r
+\r
+    }\r
+       \r
 }\r
old mode 100755 (executable)
new mode 100644 (file)
index 9f07fa4..196ba6f
@@ -8,7 +8,6 @@
 */
 package eu.etaxonomy.taxeditor.preference;
 
-
 import java.awt.Toolkit;
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -16,10 +15,11 @@ import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.util.ArrayList;
+import java.util.Iterator;
 
 import javax.swing.event.DocumentEvent;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.equinox.internal.p2.ui.misc.StringMatcher;
 import org.eclipse.jface.fieldassist.ComboContentAdapter;
 import org.eclipse.jface.fieldassist.ContentProposalAdapter;
@@ -41,20 +41,18 @@ import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.List;
 import org.eclipse.swt.widgets.Text;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
 
-
 /**
  * @author k.luther
  * @date 20.04.2017
- *
  */
 public class ListComponent implements ModifyListener
                       {
@@ -71,19 +69,16 @@ public class ListComponent implements ModifyListener
     CdmPreferencePage preferencePage;
     CdmPreference providerListPreference;
     String providerList;
-    String[] items;
-
+    java.util.List<String> items;
 
     public CdmPreference getProviderListPreference() {
         return providerListPreference;
     }
 
-
     public void setProviderListPreference(CdmPreference providerListPreference) {
         this.providerListPreference = providerListPreference;
     }
 
-
     public ListComponent(Composite parent, int style, boolean isAdmin, CdmPreferencePage parentPage) {
         this.isAdmin= isAdmin;
         this.preferencePage = parentPage;
@@ -123,7 +118,6 @@ public class ListComponent implements ModifyListener
             for (String providerString : providerArray){
                 if (!StringUtils.isBlank(providerString)){
                     list.add(providerString);
-
                 }
             }
         }
@@ -138,12 +132,10 @@ public class ListComponent implements ModifyListener
         dataList.horizontalAlignment = GridData.FILL;
         dataList.horizontalSpan = 3;
 
-
 //        dataList.grabExcessVerticalSpace = true;
 
         list.setLayoutData(dataList);
 
-
         providerURI = new Combo(parent, SWT.BORDER);
 
         URL url;
@@ -172,31 +164,18 @@ public class ListComponent implements ModifyListener
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-
-        JSONArray jsonResponseArray;
+        java.util.List<BiocaseProvideConfig> listProvider = null;
+        ObjectMapper mapper = new ObjectMapper();
         try {
-            jsonResponseArray =new JSONArray(response);
-
-            int i = 0;
-            String service_url = null;
-            JSONArray dataSets = null;
-            items = new String[jsonResponseArray.length()];
-            while (i<jsonResponseArray.length()){
-                JSONObject object = jsonResponseArray.getJSONObject(i);
-                service_url = (String) object.get("service_url");
-                dataSets = (JSONArray) object.get("datasets");
-                if (service_url != null){
-                    providerURI.add(service_url);
-                    items[i] = service_url;
-                }
-                i++;
-            }
-
-        } catch (JSONException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
+            listProvider = mapper.readValue(response, new TypeReference<java.util.List<BiocaseProvideConfig>>(){});
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        items = new ArrayList<>();
+        for (BiocaseProvideConfig conf: listProvider) {
+            items.add(conf.getService_url());
+            providerURI.add(conf.getService_url());
         }
-
 
         GridData dataProviderUri = new GridData();
         dataProviderUri.horizontalAlignment = GridData.FILL;
@@ -228,14 +207,10 @@ public class ListComponent implements ModifyListener
 //        // additionally, configure the comboViewer arbitrary
 //        AutoCompleteField field = new AutoCompleteField(comboViewer.getCombo(), new ComboContentAdapter(), proposals);
 
-
-
-
         //providerURI.addModifyListener(this);
         labelException = new Label(parent, SWT.NULL);
         labelException.setText("");
 
-
         labelException.setLayoutData(dataProviderUri);
 
         Button addButton = new Button(parent, SWT.NULL);
@@ -248,23 +223,22 @@ public class ListComponent implements ModifyListener
         removeButton.addMouseListener(new RemoveListener());
     }
 
-
-    /**
-     * @return
-     */
     IContentProposalProvider getProposalProvider() {
         return new IContentProposalProvider() {
             @Override
             public IContentProposal[] getProposals(String contents, int position) {
                 //String[] items = getStringItems();
-                if (contents.length() == 0 || items.length == 0) {
+                if (contents.length() == 0 || items.isEmpty()) {
                     return new IContentProposal[0];
                 }
                 StringMatcher matcher = new StringMatcher("*" + contents + "*", true, false); //$NON-NLS-1$ //$NON-NLS-2$
-                ArrayList<String> matches = new ArrayList<String>();
-                for (int i = 0; i < items.length; i++) {
-                    if (matcher.match(items[i])) {
-                        matches.add(items[i]);
+                java.util.List<String> matches = new ArrayList<>();
+                Iterator<String> itemsIterator = items.iterator();
+                String nextItem = null;
+                while (itemsIterator.hasNext()) {
+                    nextItem = itemsIterator.next();
+                    if (matcher.match(nextItem) ) {
+                        matches.add(nextItem);
                     }
                 }
 
index d5db7462be35be9030024f067db7c8450ce8b62f..d08f298593d8a0093f97f579d4c918656ca4544a 100644 (file)
@@ -28,6 +28,7 @@ public class NameDetailsConfigurator {
     boolean isRankActivated = true;
     boolean isAtomisedEpithetsActivated = true;
     boolean isAuthorshipSectionActivated = true;
+    boolean isInAuthorshipActivated = false;
     boolean isAuthorCacheActivated = true;
     boolean isNomenclaturalReferenceSectionActivated = true;
     boolean isNomenclaturalStatusSectionActivated = true;
@@ -120,6 +121,14 @@ public class NameDetailsConfigurator {
         this.isAuthorshipSectionActivated = isAuthorshipSectionActivated;
     }
 
+    public boolean isInAuthorshipActivated() {
+        return isInAuthorshipActivated;
+    }
+
+    public void setInAuthorshipActivated(boolean isInAuthorshipActivated) {
+        this.isInAuthorshipActivated = isInAuthorshipActivated;
+    }
+
     public boolean isNomenclaturalReferenceSectionActivated() {
         return isNomenclaturalReferenceSectionActivated;
     }
index 3440dc1eeb2fceb6325188427246eb417fa5366f..907e072407947c248829149cc5f681ed1ff9a247 100644 (file)
@@ -41,6 +41,7 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage implements S
     protected boolean isShowNomenclaturalStatusRuleConsideredCodeEdition;
     protected boolean isShowNomenclaturalRef;
     protected boolean isShowAuthorship;
+    protected boolean isShowInAuthors;
     protected boolean isShowAuthorCache;
     protected boolean isShowEpithets;
     protected boolean isShowRank;
@@ -67,6 +68,7 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage implements S
     protected Button showEpithets;
     protected Button showAuthorCache;
     protected Button showAuthorship;
+    protected Button showInAuthors;
     protected Button showNomenclaturalRef;
     protected Button showNomenclaturalStatus;
     protected Button showNomenclaturalStatusRuleConsidered;
@@ -258,9 +260,25 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage implements S
                      setApply(true);
                      isShowAuthorship = showAuthorship.getSelection();
                      nameDetailsConfig.setAuthorshipSectionActivated(isShowAuthorship);
+                     showInAuthors.setEnabled(isShowAuthorship);
                   }
              });
 
+            showInAuthors = new Button(dbSettings, SWT.CHECK);
+            isShowInAuthors = nameDetailsConfig.isInAuthorshipActivated();
+            showInAuthors.setText(Messages.NameDetailsViewComposite_Show_In_Author);
+            showInAuthors.setSelection(isShowInAuthors);
+            showInAuthors.addSelectionListener(this);
+            showInAuthors.addSelectionListener(new SelectionAdapter(){
+                 @Override
+                 public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
+                     isShowInAuthors = showInAuthors.getSelection();
+                     nameDetailsConfig.setInAuthorshipActivated(isShowInAuthors);
+                  }
+             });
+            showInAuthors.setEnabled(isShowAuthorship);
+
             showNomenclaturalRef = new Button(dbSettings, SWT.CHECK);
             isShowNomenclaturalRef = nameDetailsConfig.isNomenclaturalReferenceSectionActivated();
             showNomenclaturalRef.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalReference);
@@ -501,6 +519,7 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage implements S
         showEpithets.setSelection(isShowEpithets);
         showAuthorCache.setSelection(isShowAuthorCache);
         showAuthorship.setSelection(isShowAuthorship);
+        showInAuthors.setSelection(isShowInAuthors);
         showNomenclaturalRef.setSelection(isShowNomenclaturalRef);
         showNomenclaturalStatus.setSelection(isShowNomenclaturalStatus);
 
@@ -544,6 +563,7 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage implements S
         isShowAppendedPhrase = nameDetailsConfig.isAppendedPhraseActivated();
         isShowEpithets = nameDetailsConfig.isAtomisedEpithetsActivated();
         isShowAuthorship = nameDetailsConfig.isAuthorshipSectionActivated();
+        isShowInAuthors = nameDetailsConfig.isInAuthorshipActivated();
         isShowAuthorCache = nameDetailsConfig.isAuthorCacheActivated();
         isShowLSID = nameDetailsConfig.isLSIDActivated();
         isShowNameApprobiation = nameDetailsConfig.isNameApprobiationActivated();
old mode 100755 (executable)
new mode 100644 (file)
index 581c0fa..35366af
@@ -8,43 +8,50 @@
 */
 package eu.etaxonomy.taxeditor.preference;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import eu.etaxonomy.cdm.api.service.ITermCollectionService;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
+import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.preference.wizard.GeneralVocabularyPreferencePage;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author k.luther
  * @since 12.09.2019
  */
 public class NamedAreaVocabularyPreferencePage extends GeneralVocabularyPreferencePage {
+    List<TermCollectionDto> collList = new ArrayList<>();
 
-    public NamedAreaVocabularyPreferencePage(){
+    public NamedAreaVocabularyPreferencePage() {
         isAdminPreference = false;
         setPredicate(PreferencePredicate.AvailableDistributionAreaVocabularies);
         type = TermType.NamedArea;
-
     }
 
+    @Override
+    protected void initialiseVocabularies() {
 
+        List<TermVocabularyDto> vocs = new ArrayList<>();
+        collList = CdmStore.getService(ITermCollectionService.class).findCollectionDtoByTermType(type);
 
+    }
 
-//    @Override
-//    protected void performDefaults() {
-//        if (!isAdminPreference){
-//            if (!pref.isAllowOverride()) {
-//                button_openSelectAreaVocabularies.setButtonEnabled(false);
-//            }
-//
-//        }
-//
-//        prefAreaVoc = null;
-//        refresh();
-//        setApply(true);
-//
-//    }
-
+    protected List<TermCollectionDto> getCollections() {
 
+        return collList;
+    }
 
+    @Override
+    protected void setInput() {
+        treeComposite.getViewer().getTree().deselectAll();
+        treeComposite.getViewer().refresh();
+        List<TermCollectionDto> collList = new ArrayList<>(getCollections());
 
+        treeComposite.getViewer().setInput(collList);
+    }
 
-}
+}
\ No newline at end of file
old mode 100755 (executable)
new mode 100644 (file)
index e3d49dc..0fb9711
@@ -139,7 +139,7 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
        /**\r
         * @return\r
         */\r
-       private Map<NomenclaturalCode, String> getLabelAndValues() {\r
+       private void getLabelAndValues() {\r
                List<NomenclaturalCode> supportedCodes = NomenclaturalCodeHelper\r
                                .getSupportedCodes();\r
                labelAndValues = new HashMap<>();\r
@@ -149,7 +149,7 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
                     .getDescription(supportedCodes.get(i))) ;\r
 \r
                }\r
-               return labelAndValues;\r
+\r
        }\r
 \r
        /**\r
index 8378343d1cefe5333b30723c0eeab3152ce32a3b..6370daf97fc4017c0c87c1acfe8f9deea828b4de 100644 (file)
@@ -14,6 +14,8 @@ import org.eclipse.swt.widgets.Control;
 \r
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;\r
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;\r
+import eu.etaxonomy.taxeditor.event.EventUtility;\r
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;\r
 import eu.etaxonomy.taxeditor.l10n.Messages;\r
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;\r
 \r
@@ -160,8 +162,9 @@ public class OrderPreferences extends CdmPreferencePage implements SelectionList
                    }\r
                    PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), isOverrideShowTaxonNodeWizard);\r
                }\r
-\r
+               EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, true);\r
                    }\r
+                   \r
                        return true;\r
 \r
                }\r
index 31da9178aac2fbda404d3448029d4ee2b8bbe9e8..2a3091879ad76f5cbd95b63a285115ff832545c3 100644 (file)
@@ -41,7 +41,7 @@ public class PreferencePropertyTester extends PropertyTester {
                return isChecklistEditorEnabled();
            }
            if(SHOW_IO_MENU.equals(property)){
-               boolean test = isShowIOMenuEnabled();
+//             boolean test = isShowIOMenuEnabled();
             return isShowIOMenuEnabled();
         }
            if(SHOW_SPECIMEN_MENU.equals(property)){
index 862e2068cde2a681f23890310e02c8b51ac694ab..b06da701615c8d2e785f582287d7e574d75d028a 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.preference;
 
 import java.io.File;
@@ -14,11 +13,11 @@ import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.lang.reflect.Field;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -27,78 +26,81 @@ import java.util.Set;
 import java.util.StringTokenizer;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.preferences.ConfigurationScope;
 import org.eclipse.core.runtime.preferences.IEclipsePreferences;
 import org.eclipse.equinox.internal.p2.ui.model.MetadataRepositoryElement;
 import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.window.Window;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
 import org.osgi.service.prefs.BackingStoreException;
 import org.osgi.service.prefs.Preferences;
 
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeConfigurator;
-import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.ITermTreeService;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.api.service.config.FindTaxaAndNamesConfiguratorImpl;
 import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;
+import eu.etaxonomy.cdm.api.service.config.SecundumForSubtreeConfigurator;
 import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.common.URI;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacadeConfigurator;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
-import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
-import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
+import eu.etaxonomy.cdm.model.metadata.DistributionDescription;
+import eu.etaxonomy.cdm.model.metadata.EnabledComputedDescription;
 import eu.etaxonomy.cdm.model.metadata.IPreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingSwapEnum;
 import eu.etaxonomy.cdm.model.metadata.TermDisplayEnum;
 import eu.etaxonomy.cdm.model.metadata.TermOrder;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.cdm.model.term.IDefinedTerm;
 import eu.etaxonomy.cdm.model.term.ISimpleTerm;
-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.model.term.VocabularyEnum;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoByNameComparator;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoByRankAndNameComparator;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDtoNaturalComparator;
 import eu.etaxonomy.cdm.strategy.match.DefaultMatchStrategy;
 import eu.etaxonomy.cdm.strategy.match.FieldMatcher;
 import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
 import eu.etaxonomy.cdm.strategy.match.MatchException;
 import eu.etaxonomy.cdm.strategy.match.MatchMode;
 import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.model.NomenclaturalCodeHelper;
 import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.TermStore;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-import eu.etaxonomy.taxeditor.ui.dialog.DefaultLanguageDialog;
 
 /**
- * <p>
- * PreferencesUtil class.
- * </p>
- *
  * @author p.ciardelli
  * @author n.hoffmann
  * @created 05.12.2008
  */
 public class PreferencesUtil implements IPreferenceKeys {
+
+    private final static Logger logger = LogManager.getLogger(PreferencesUtil.class);
+
     private final static String EDITOR_PREFERENCES_NODE = "eu.etaxonomy.taxeditor";
 
     public static final String PREFERRED_TERMS_CHANGE = "preferred_terms";
-
+    public static final String UPDATE_NAVIGATOR = "update_navigator";
     public static final String P2_REPOSITORIES_DELIM = ",";
     public static final String P2_REPOSITORY_FIELDS_DELIM = ";";
     public static final String SUBJECT_DELIM = "/";
@@ -107,7 +109,6 @@ public class PreferencesUtil implements IPreferenceKeys {
 
     private static TermTree<Feature> preferredTaxonFeatureTree;
 
-    private final static Logger logger = Logger.getLogger(PreferencesUtil.class);
 
     public static IPreferenceStore getPreferenceStore() {
        return TaxeditorStorePlugin.getDefault().getPreferenceStore();
@@ -124,9 +125,11 @@ public class PreferencesUtil implements IPreferenceKeys {
 
     public static String getPreferenceValue(PrefKey prefKey){
         try {
+            //check if there exist a node for the predicate
             if(getEditorPreferences().nodeExists(prefKey.getPredicate())){
                 Preferences predicateNode = getEditorPreferences().node(prefKey.getPredicate());
                 String[] splittedSubject = extractSubjectParts(prefKey.getSubject());
+                //check if the predicate node contains a node for the subject, this should be the last part
                 String value = predicateNode.get(splittedSubject[splittedSubject.length-1], PreferencePredicate.getByKey(prefKey.getPredicate()).getDefaultValue() != null? PreferencePredicate.getByKey(prefKey.getPredicate()).getDefaultValue().toString(): "");
                 int index = splittedSubject.length -2;
                 while (value != null && index >= 0){
@@ -237,7 +240,7 @@ public class PreferencesUtil implements IPreferenceKeys {
                  if (result instanceof String){
                      return (String)result;
                  }else{
-                     return result.toString();
+                     return result != null?result.toString(): null;
                  }
              }
             return pref.getValue();
@@ -574,12 +577,19 @@ public class PreferencesUtil implements IPreferenceKeys {
         }
     }
 
-    public static String getPreferredDefaultLangugae(){
-        String preferredLanguage = getStringValue(DEFAULT_LANGUAGE_EDITOR, true);
-        if(StringUtils.isNotEmpty(preferredLanguage) && StringUtils.isNotBlank(preferredLanguage)){
-            return preferredLanguage;
+
+    public static Language getPreferredDefaultLanguage(){
+
+
+        String prop = System.getProperty("osgi.nl");
+        if (prop.startsWith("de")) {
+            return Language.GERMAN();
+        }else {
+            return Language.ENGLISH();
         }
-        return null;
+
+
+
     }
 
     public static boolean isShowMediaPreview(){
@@ -669,45 +679,14 @@ public class PreferencesUtil implements IPreferenceKeys {
         return pattern;
     }
 
-    public static <T extends TermBase> void addTermToPreferredTerms(T term) {
-
-        // VocabularyEnum vocabulary =
-        // VocabularyEnum.getVocabularyEnum(term.getClass());
-        //
-        // getPreferenceStore().setValue(getPreferenceKey(term),
-        // VocabularyStore.getTermVocabulary(vocabulary).getTerms().contains(term));
-        //
-        // firePreferencesChanged(term.getClass());
-    }
-
     /**
      * Construct a unique key using the CdmBase object's uuid
-     *
-     * @param cdmBase
-     * @return
-     */
-    private static String getPreferenceKey(ICdmBase cdmBase) {
-        cdmBase = HibernateProxyHelper.deproxy(cdmBase);
-
-        String key = cdmBase.getClass().getName().concat(".")
-                .concat(cdmBase.getUuid().toString());
-        if (key.contains("javassist")) {
-            MessagingUtils.info("proxy");
-        }
-        return key;
-    }
-
-    /**
-     * Construct a unique key using the CdmBase object's uuid
-     *
-     * @param cdmBase
-     * @return
      */
     public static String getPreferenceKey(ISimpleTerm<?> simpleTerm) {
         simpleTerm = HibernateProxyHelper.deproxy(simpleTerm);
         String key = simpleTerm.getClass().getName().concat(".")
                 .concat(simpleTerm.getUuid().toString());
-        if (key.contains("javassist")) {
+        if (key.contains("javassist")) { //Note by AM (2022-06): javassist is not used anymore, instead hibernate uses bytebuddy which is not contained in class names so this logging will not work anymore
             MessagingUtils.warn(PreferencesUtil.class,
                     "Trying to persist a preference based on a proxy class.");
         }
@@ -721,7 +700,7 @@ public class PreferencesUtil implements IPreferenceKeys {
         definedTerm = HibernateProxyHelper.deproxy(definedTerm);
         String key = definedTerm.getClass().getName().concat(".")
                 .concat(definedTerm.getUuid().toString());
-        if (key.contains("javassist")) {
+        if (key.contains("javassist")) { //Note by AM (2022-06): javassist is not used anymore, instead hibernate uses bytebuddy which is not contained in class names so this logging will not work anymore
             MessagingUtils.warn(PreferencesUtil.class,
                     "Trying to persist a preference based on a proxy class.");
         }
@@ -744,6 +723,10 @@ public class PreferencesUtil implements IPreferenceKeys {
                 IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_NAMES): true);
         configurator.setDoTaxaByCommonNames(PreferencesUtil.getPreferenceStore().contains(IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES)? PreferencesUtil.getPreferenceStore().getBoolean(
                 IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES): true);
+        configurator.setDoIncludeAuthors(PreferencesUtil.getPreferenceStore().contains(IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS)? PreferencesUtil.getPreferenceStore().getBoolean(
+                IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS): false);
+        configurator.setIncludeUnpublished(PreferencesUtil.getPreferenceStore().contains(IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED)? PreferencesUtil.getPreferenceStore().getBoolean(
+                IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED): true);
         //configurator.setMatchMode(eu.etaxonomy.cdm.persistence.query.MatchMode.valueOf(getStringValue(TAXON_SERVICE_CONFIGURATOR_MATCH_MODE)));
 
         return configurator;
@@ -763,7 +746,8 @@ public class PreferencesUtil implements IPreferenceKeys {
         configurator.setDoSynonyms(true);
         configurator.setDoNamesWithoutTaxa(true);
         configurator.setDoTaxaByCommonNames(true);
-
+        configurator.setIncludeUnpublished(true);
+        configurator.setDoIncludeAuthors(false);
         configurator.setTaxonPropertyPath(Arrays.asList("$", "titleCache",
                 "name", "name.$", "relationsFromThisTaxon.$"));
 
@@ -801,6 +785,10 @@ public class PreferencesUtil implements IPreferenceKeys {
                 configurator.isDoNamesWithoutTaxa());
         getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES,
                 configurator.isDoTaxaByCommonNames());
+        getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS,
+                configurator.isDoIncludeAuthors());
+        getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED,
+                configurator.isIncludeUnpublished());
     }
 
     public static void firePreferencesChanged(Class clazz) {
@@ -808,6 +796,11 @@ public class PreferencesUtil implements IPreferenceKeys {
                 null, clazz);
     }
 
+    public static void firePreferencesChangedForNavigator() {
+        getPreferenceStore().firePropertyChangeEvent(UPDATE_NAVIGATOR,
+                null, null);
+    }
+
 
     public static String createPreferenceString(String property){
        return prefKey(property);
@@ -837,6 +830,7 @@ public class PreferencesUtil implements IPreferenceKeys {
         getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_SYNONYMS, true);
         getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_NAMES, true);
         getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES, true);
+        getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS, false);
 
         //Name Details
        // getPreferenceStore().setDefault(createPreferenceString(PreferencePredicate.NameDetailsView.getKey()), new NameDetailsConfigurator(false).toString());
@@ -898,19 +892,6 @@ public class PreferencesUtil implements IPreferenceKeys {
                 getPreferenceKey(preferredCode));
     }
 
-    public static void checkDefaultLanguage(){
-        if(PreferencesUtil.getPreferredDefaultLangugae() == null){
-           Shell shell = AbstractUtility.getShell();
-           int open = new DefaultLanguageDialog(shell).open();
-           if(open == Window.OK){
-               PlatformUI.getWorkbench().restart();
-           }
-        }else{
-            //TODO:In case of a reinstall, the config.ini will be overwritten
-            //     here you create config.ini with the stored key from preferences
-        }
-    }
-
     public static String getMapServiceAccessPoint() {
         return getStringValue(PreferencePredicate.EditMapServiceAccessPoint.getKey());
     }
@@ -959,26 +940,35 @@ public class PreferencesUtil implements IPreferenceKeys {
     public static Language getGlobalLanguage() {
 
         String languageUuidString = getStringValue(
-                GLOBAL_LANGUAGE_UUID, true);
+                PreferencePredicate.TermLanguage.getKey(), true);
 
-        if(!CdmStore.isActive()) {
-            MessagingUtils.noDataSourceWarningDialog(languageUuidString);
-            return null;
-        }
+        CdmPreference dbPref = getDBPreferenceValue(PreferencePredicate.TermLanguage.getKey());
 
-        if (CdmUtils.isBlank(languageUuidString)) {
-            return Language.getDefaultLanguage();
+        if (dbPref == null || (dbPref != null && dbPref.isAllowOverride() && getOverrideForPreference(PreferencePredicate.TermLanguage.getKey()))) {
+            if (CdmUtils.isBlank(languageUuidString)) {
+                return Language.getDefaultLanguage();
+            }else {
+                return Language.getLanguageFromUuid(UUID.fromString(languageUuidString));
+            }
+        }else {
+            languageUuidString = dbPref.getValue();
         }
-
         UUID languageUuid = UUID.fromString(languageUuidString);
-        return (Language) CdmStore.getService(ITermService.class).load(
-                languageUuid);
+        Language language = (Language)CdmApplicationState.getTermProxy().load(languageUuid);
+        if (language != null){
+            return language;
+        }else{
+            MessagingUtils.noDataSourceWarningDialog(languageUuidString);
+            return null;
+        }
     }
 
     public static void setGlobalLanguage(Language language) {
         if(language != null) {
-            setStringValue(GLOBAL_LANGUAGE_UUID,language.getUuid().toString());
+            setStringValue(PreferencePredicate.TermLanguage.getKey(),language.getUuid().toString());
             CdmStore.setDefaultLanguage(language);
+        }else {
+            CdmStore.setDefaultLanguage(Language.getDefaultLanguage());
         }
     }
 
@@ -1033,26 +1023,29 @@ public class PreferencesUtil implements IPreferenceKeys {
      * @param setLanguage 0 is for german and 1 for english.
      * @throws IOException
      */
-    public void writePropertyToConfigFile(int setLanguage) throws IOException {
+    public static void writePropertyToConfigFile(int setLanguage) throws IOException {
         File file = org.eclipse.core.runtime.preferences.ConfigurationScope.INSTANCE.getLocation().toFile();
         //give warning to user if the directory has no write access
         if(file == null){
             throw new IOException();
         }
-        Properties properties = load(file.getAbsolutePath()+"/config.ini");
+        Properties properties;
+        properties = load(file.getAbsolutePath()+"/config.ini");
         switch(setLanguage){
         case 0:
             properties.setProperty("osgi.nl", "de");
-            setStringValue(IPreferenceKeys.DEFAULT_LANGUAGE_EDITOR, "de");
+            setStringValue(IPreferenceKeys.DEFAULT_LANGUAGE_EDITOR, Language.uuidGerman.toString());
             break;
         case 1:
             properties.setProperty("osgi.nl", "en");
-            setStringValue(IPreferenceKeys.DEFAULT_LANGUAGE_EDITOR, "en");
+            setStringValue(IPreferenceKeys.DEFAULT_LANGUAGE_EDITOR, Language.uuidEnglish.toString());
             break;
         default:
             break;
         }
         save(file+"/config.ini", properties);
+
+
     }
 
     /**
@@ -1062,7 +1055,7 @@ public class PreferencesUtil implements IPreferenceKeys {
      * @return
      * @throws IOException
      */
-    private Properties load(String filename) throws IOException {
+    private static Properties load(String filename) throws IOException {
         FileInputStream in = new FileInputStream(filename);
         Properties prop = new Properties();
         prop.load(in);
@@ -1077,7 +1070,7 @@ public class PreferencesUtil implements IPreferenceKeys {
      * @param properties
      * @throws IOException
      */
-    private void save(String filename, Properties properties) throws IOException{
+    private static void save(String filename, Properties properties) throws IOException{
         FileOutputStream fos =  new FileOutputStream(filename);
         properties.store(fos, "");
         fos.close();
@@ -1127,7 +1120,7 @@ public class PreferencesUtil implements IPreferenceKeys {
                         continue;
                     }
                     boolean enabled = Boolean.parseBoolean(p2ReposStrST.nextToken());
-                    MetadataRepositoryElement mre = new MetadataRepositoryElement(null, uri, true);
+                    MetadataRepositoryElement mre = new MetadataRepositoryElement(null, uri.getJavaUri(), true);
                     mre.setNickname(nickname);
                     mre.setEnabled(enabled);
                     p2Repos.add(mre);
@@ -1182,6 +1175,25 @@ public class PreferencesUtil implements IPreferenceKeys {
         return value.equals(NavigatorOrderEnum.RankAndNameOrder);
     }
 
+    public static Comparator<TaxonNodeDto> getNodeComparator() {
+               Comparator<TaxonNodeDto> comparator;
+        NavigatorOrderEnum orderValue = NavigatorOrderEnum.RankAndNameOrder;
+               try{
+                   orderValue = PreferencesUtil.getSortNodes();
+               }catch(IllegalArgumentException e){
+
+               }
+
+               if (orderValue.equals(NavigatorOrderEnum.NaturalOrder)){
+                       comparator = new TaxonNodeDtoNaturalComparator();
+               } else if (orderValue.equals(NavigatorOrderEnum.AlphabeticalOrder)){
+                       comparator = new TaxonNodeDtoByNameComparator();
+               }else {
+                       comparator = new TaxonNodeDtoByRankAndNameComparator();
+               }
+               return comparator;
+       }
+
     public static boolean isStoreNavigatorState() {
         return getBooleanValue(RESTORE_NAVIGATOR_STATE);
     }
@@ -1227,12 +1239,20 @@ public class PreferencesUtil implements IPreferenceKeys {
         setStringValue(PreferencePredicate.DisplayOfAreasInDistributionEditor.getKey(), selection);
     }
 
-    public static void setOwnDescriptionForChecklistEditor(boolean selection) {
-        setBooleanValue(PreferencePredicate.OwnDescriptionForDistributionEditor.getKey(), selection);
+    public static void setDescriptionForChecklistEditor(DistributionDescription selection) {
+        setStringValue(PreferencePredicate.DescriptionForDistributionEditor.getKey(), selection.getKey());
     }
 
-    public static boolean isOwnDescriptionForChecklistEditor() {
-        return getBooleanValue(PreferencePredicate.OwnDescriptionForDistributionEditor.getKey());
+    public static DistributionDescription getDescriptionForChecklistEditor() {
+        String str =  getStringValue(PreferencePredicate.DescriptionForDistributionEditor.getKey());
+
+        DistributionDescription result = null;
+        try {
+            result = DistributionDescription.byKey(str);
+        }catch(IllegalArgumentException e) {
+            result = (DistributionDescription)PreferencePredicate.DescriptionForDistributionEditor.getDefaultValue();
+        }
+        return result;
     }
 
     public static TermDisplayEnum displayAreaInChecklistEditor() {
@@ -1276,7 +1296,7 @@ public class PreferencesUtil implements IPreferenceKeys {
             PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.NameDetailsView);
             preference =  getPreferenceFromDB(PreferencePredicate.NameDetailsView);
             if (preference == null){
-                return null;
+                return  new NameDetailsConfigurator();
             }
 
         //    setBooleanValue(ALLOW_OVERRIDE_NAME_DETAILS, preference.isAllowOverride());
@@ -1289,10 +1309,8 @@ public class PreferencesUtil implements IPreferenceKeys {
         }
         if (value!= null){
             fillNameDetailsConfigurator(config, value);
-
-
         }else {
-            return null;
+            return new NameDetailsConfigurator();
         }
         return config;
     }
@@ -1326,7 +1344,7 @@ public class PreferencesUtil implements IPreferenceKeys {
         if (value != null){
             fillNameDetailsConfigurator(config, value);
         }else {
-            return null;
+            return new NameDetailsConfigurator();
         }
         return config;
     }
@@ -1352,6 +1370,45 @@ public class PreferencesUtil implements IPreferenceKeys {
         }
     }
 
+    public static void extractSecundumForSubtreeConfiguratorFromPreferenceString(SecundumForSubtreeConfigurator config,
+            String configString) {
+        if(configString != null){
+             String[] configArray = configString.split(";");
+
+             for (String configItem: configArray){
+                 String[] keyValue = configItem.split(":");
+                 String keyString = keyValue[0];
+                 String valueString = null;
+                 if (keyValue.length>1){
+                     valueString = keyValue[1];
+                     if (keyValue.length>2){
+
+                         for (int index = 2; index< keyValue.length; index++){
+                             valueString += ":"+ keyValue[index];
+                         }
+                     }
+                 }
+                 if (keyString.equals("includeAcceptedTaxa")){
+                     config.setIncludeAcceptedTaxa(Boolean.valueOf(valueString));
+                 }else if (keyString.equals("includeSynonyms")){
+                     config.setIncludeSynonyms(Boolean.valueOf(valueString));
+                 }else if (keyString.equals("includeSharedTaxa")){
+                     config.setIncludeSharedTaxa(Boolean.valueOf(valueString));
+                 }else if (keyString.equals("includeProParteSynonyms")){
+                     config.setIncludeProParteSynonyms(Boolean.valueOf(valueString));
+                 }else if (keyString.equals("includeMisapplications")){
+                     config.setIncludeMisapplications(Boolean.valueOf(valueString));
+                 }else if (keyString.equals("overwriteExisting")){
+                     config.setOverwriteExisting(Boolean.valueOf(valueString));
+                 }else if (keyString.equals("emptySecundumDetail")){
+                     config.setEmptySecundumDetail(Boolean.valueOf(valueString));
+                 }else{
+                     logger.debug("This key of the set secundum configurator needs to be added to the transformer: " + keyString);
+                 }
+             }
+         }
+    }
+
     public static Abcd206ImportConfigurator getDBAbcdImportConfigurationPreference() {
 
         Abcd206ImportConfigurator config = Abcd206ImportConfigurator.NewInstance(null,null);
@@ -1392,8 +1449,10 @@ public class PreferencesUtil implements IPreferenceKeys {
                  }
                  if (keyString.equals("ignoreImportOfExistingSpecimen")){
                      config.setIgnoreImportOfExistingSpecimen(Boolean.valueOf(valueString));
-                 }else if (keyString.equals("addIndividualsAssociationsSuchAsSpecimenAndObservations")){
-                     config.setAddIndividualsAssociationsSuchAsSpecimenAndObservations(Boolean.valueOf(valueString));
+                 }else if (keyString.equals("addIndividualsAssociations")){
+                     config.setAddIndividualsAssociations(Boolean.valueOf(valueString));
+                 }else if (keyString.equals("addDeterminations")){
+                     config.setAddDeterminations(Boolean.valueOf(valueString));
                  }else if (keyString.equals("reuseExistingTaxaWhenPossible")){
                      config.setReuseExistingTaxaWhenPossible(Boolean.valueOf(valueString));
                  }else if (keyString.equals("ignoreAuthorship")){
@@ -1426,17 +1485,23 @@ public class PreferencesUtil implements IPreferenceKeys {
                      config.setRemoveCountryFromLocalityText(Boolean.valueOf(valueString));
                  }else if (keyString.equals("getSiblings")){
                      config.setGetSiblings(Boolean.valueOf(valueString));
+                 }else if (keyString.equals("classificationUUID")){
+                     if (valueString != null){
+                         config.setClassificationUuid(UUID.fromString(valueString));
+                     }
+                 }else if (keyString.equals("classificationName")){
+                     config.setClassificationName(valueString);
                  }else if (keyString.equals("dnaSource")){
                      try{
-                         config.setDnaSoure(URI.create(valueString));
+                         if (StringUtils.isNotBlank(valueString)){
+                             config.setDnaSoure(URI.create(valueString));
+                         }
                      }catch(Exception e){
                          config.setDnaSoure(null);
                      }
                  }else{
                      logger.debug("This key of the abcd configurator needs to be added to the transformer: " + keyString);
                  }
-
-
              }
          }
     }
@@ -1471,20 +1536,19 @@ public class PreferencesUtil implements IPreferenceKeys {
     public static Abcd206ImportConfigurator getLastUsedAbcdImportConfigurator(){
         Abcd206ImportConfigurator config = Abcd206ImportConfigurator.NewInstance(null,null);
 
-       String configString = PreferencesUtil.getStringValue(IPreferenceKeys.LAST_USED_ABCD_CONFIG, true);
-       if (configString != null){
-           extractAbcdConfiguratorFromPreferenceString(config, configString);
-           if (config != null){
-               if (config.getNomenclaturalCode() == null){
-                   config.setNomenclaturalCode(getPreferredNomenclaturalCode());
-               }
-           }
-       }else{
-           config = PreferencesUtil.getLocalAbcdImportConfigurator(false);
-       }
+        String configString = PreferencesUtil.getStringValue(IPreferenceKeys.LAST_USED_ABCD_CONFIG, true);
+        if (configString != null){
+            extractAbcdConfiguratorFromPreferenceString(config, configString);
+            if (config != null){
+                if (config.getNomenclaturalCode() == null){
+                    config.setNomenclaturalCode(getPreferredNomenclaturalCode());
+                }
+            }
+        }else{
+            config = PreferencesUtil.getLocalAbcdImportConfigurator(false);
+        }
 
         return config;
-
     }
 
     public static void updateAbcdImportConfigurationPreference() {
@@ -1494,7 +1558,6 @@ public class PreferencesUtil implements IPreferenceKeys {
 
         if (!getBooleanValue(prefOverrideKey(PreferencePredicate.AbcdImportConfig.getKey())) || !pref.isAllowOverride()){
             resetToDBPreferenceAbcdCOnfigurator();
-
         }
     }
 
@@ -1556,14 +1619,12 @@ public class PreferencesUtil implements IPreferenceKeys {
                             saveCheckedElements);
                     preference = CdmPreference.NewInstance(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableDistributionAreaTerms, saveCheckedElements);
                     setPreferenceToDB(preference);
-
                 }
             } else{
                 preference = CdmPreference.NewInstance(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableDistributionAreaTerms, saveCheckedElements);
                 setPreferenceToDB(preference);
                 setStringValue(PreferencePredicate.AvailableDistributionAreaTerms.getKey(),
                         saveCheckedElements);
-
             }
         }
     }
@@ -1640,11 +1701,7 @@ public class PreferencesUtil implements IPreferenceKeys {
     }
 
     public static boolean getFilterCommonNameReferences(){
-        Boolean result = getBooleanValue(PreferencePredicate.CommonNameReferencesWithMarker.getKey());
-        if (result == null){
-            return false;
-        }
-        return result;
+        return getBooleanValue(PreferencePredicate.CommonNameReferencesWithMarker.getKey());
     }
 
     public static void updateDBPreferences() {
@@ -1652,18 +1709,8 @@ public class PreferencesUtil implements IPreferenceKeys {
         CdmPreferenceCache cache = CdmPreferenceCache.instance();
         cache.getAllTaxEditorDBPreferences();
 
-        //ABCD Configurator
-
-        //updateAbcdImportConfigurationPreference();
-
         //Name Details
         NameDetailsConfigurator config = getPreferredNameDetailsConfiguration(false);
-        //    if (config != null ){
-        //        if (!getBooleanValue(OVERRIDE_NAME_DETAILS) ||  !getBooleanValue(ALLOW_OVERRIDE_NAME_DETAILS)){
-        //            setPreferredNameDetailsConfiguration(config, false);
-        //        }
-        //    }
-
     }
 
     public static void setPreferencesToDB(List<CdmPreference> preferences) {
@@ -1674,12 +1721,9 @@ public class PreferencesUtil implements IPreferenceKeys {
             for (CdmPreference preference: preferences){
                 if (preference.getValue() == null && preference.isAllowOverride()){
                     controller.getPreferenceService().remove(preference.getKey());
-
                 }else{
                     controller.getPreferenceService().set(preference);
-
                 }
-
             }
             CdmPreferenceCache.instance().getAllTaxEditorDBPreferences();
         }
@@ -1694,10 +1738,7 @@ public class PreferencesUtil implements IPreferenceKeys {
         return getPreferenceStore().contains(prefKey(prefKey));
     }
 
-    /**
-     *
-     */
-    public static TermTree<?> getPreferredFeatureTreeForNameDescription(boolean createNew) {
+    public static TermTree<Feature> getPreferredFeatureTreeForNameDescription(boolean createNew) {
         if(preferredNameFeatureTree != null && !createNew){
             return preferredNameFeatureTree;
         }
@@ -1724,7 +1765,7 @@ public class PreferencesUtil implements IPreferenceKeys {
         if (terms.isEmpty()){
             preferredNameFeatureTree = TermEditorInput.getDefaultNameFeatureTree();
         }else{
-            preferredNameFeatureTree = TermTree.NewInstance(terms);
+            preferredNameFeatureTree = TermTree.NewFeatureInstance(terms);
         }
     }
 
@@ -1780,11 +1821,79 @@ public class PreferencesUtil implements IPreferenceKeys {
         if (terms.isEmpty()){
             preferredTaxonFeatureTree = TermEditorInput.getDefaultFeatureTree();
         }else{
-            preferredTaxonFeatureTree = TermTree.NewInstance(terms);
+            preferredTaxonFeatureTree = TermTree.NewFeatureInstance(terms);
         }
     }
 
     public static void setLastSelectedBiocaseProvider(String lastAccessPoint) {
         setStringValue(LAST_USED_BIOCASE_PROVIDER, lastAccessPoint);
     }
+
+    /**
+     * @return
+     */
+    public static boolean getLocalActive() {
+        // TODO: this needs to be adapted!!!
+        return true;
+    }
+
+    /**
+     * @return
+     */
+    public static boolean showGfbioMetaData() {
+        //TODO: needs to be adapted!!!
+        return false;
+    }
+
+    public static SecReferenceHandlingEnum getSecReferenceHandlingPreference(){
+
+        String defaultBehaviour = getStringValue(PreferencePredicate.DefaultBehaviourForSecundum.getKey());
+        SecReferenceHandlingEnum handling = null;
+        try{
+            handling = SecReferenceHandlingEnum.valueOf(defaultBehaviour);
+        }catch(IllegalArgumentException e){
+            handling = (SecReferenceHandlingEnum)PreferencePredicate.DefaultBehaviourForSecundum.getDefaultValue();
+        }
+        return handling;
+
+    }
+
+    public static SecReferenceHandlingSwapEnum getSecReferenceHandlingSwapPreference(){
+        String defaultBehaviour = getStringValue(PreferencePredicate.DefaultBehaviourForSecundumWhenSwap.getKey());
+        SecReferenceHandlingSwapEnum handling = null;
+        try{
+            handling = SecReferenceHandlingSwapEnum.valueOf(defaultBehaviour);
+        }catch (IllegalArgumentException e){
+            handling = (SecReferenceHandlingSwapEnum)PreferencePredicate.DefaultBehaviourForSecundumWhenSwap.getDefaultValue();
+        }
+        return handling;
+
+    }
+
+    public static EnabledComputedDescription getComputedDesciptionHandlingPreference(){
+        String defaultBehaviour= getStringValue(PreferencePredicate.EnableComputedDescription.getKey());
+        EnabledComputedDescription computedDescriptionsEnabled = (EnabledComputedDescription)PreferencePredicate.EnableComputedDescription.getDefaultValue();
+        if (StringUtils.isNotBlank(defaultBehaviour)){
+            try{
+                computedDescriptionsEnabled = EnabledComputedDescription.byKey(defaultBehaviour);
+            }catch(IllegalArgumentException e){
+                //do nothing, keep default value;
+            }
+        }
+        return computedDescriptionsEnabled;
+
+    }
+
+    public static boolean isComputedDesciptionHandlingDisabled(){
+        String defaultBehaviour= getStringValue(PreferencePredicate.EnableComputedDescription.getKey());
+        EnabledComputedDescription computedDescriptionsEnabled = null;
+        try{
+            computedDescriptionsEnabled = EnabledComputedDescription.byKey(defaultBehaviour);
+        }catch (IllegalArgumentException e){
+            computedDescriptionsEnabled = (EnabledComputedDescription)PreferencePredicate.EnableComputedDescription.getDefaultValue();
+        }
+        return computedDescriptionsEnabled.equals(EnabledComputedDescription.Disabled);
+
+    }
+
 }
old mode 100755 (executable)
new mode 100644 (file)
index dc8d951..ad3a07f
@@ -12,7 +12,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
@@ -28,7 +28,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class RankPreference extends GeneralTermPreferencePage {
 
-    public RankPreference(){
+    public RankPreference() {
         super();
         isAdminPreference = false;
         setPredicate(PreferencePredicate.AvailableRanks);
@@ -49,14 +49,14 @@ public class RankPreference extends GeneralTermPreferencePage {
 
     @Override
     public boolean performOk() {
-        if (!isApply()){
+        if (!isApply()) {
             return true;
         }
         Object[] checkedElements = treeComposite.getViewer().getCheckedElements();
         List<UUID> listUIIDChecked = new ArrayList<>();
         List<TermDto> preferredTerms = new ArrayList<>();
         for (Object o : checkedElements) {
-            if(o instanceof TermDto){
+            if (o instanceof TermDto) {
                 TermDto termDto = (TermDto) o;
                 listUIIDChecked.add(termDto.getUuid());
                 preferredTerms.add(termDto);
@@ -66,10 +66,12 @@ public class RankPreference extends GeneralTermPreferencePage {
 
         PreferencesUtil.setStringValue(PreferencePredicate.AvailableRanks.getKey(), saveCheckedElements);
         String text = this.useLocalOrAdmin.getText();
-        if (text.equals(LocalOrDefaultEnum.Database.getLabel()) || text.equals(LocalOrDefaultEnum.Default.getLabel())){
-            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableRanks.getKey()), false);
-        }else if (text.equals(LocalOrDefaultEnum.Local.getLabel())){
-            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableRanks.getKey()), true);
+        if (text.equals(LocalOrDefaultEnum.Database.getLabel()) || text.equals(LocalOrDefaultEnum.Default.getLabel())) {
+            PreferencesUtil.setBooleanValue(
+                    PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableRanks.getKey()), false);
+        } else if (text.equals(LocalOrDefaultEnum.Local.getLabel())) {
+            PreferencesUtil.setBooleanValue(
+                    PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableRanks.getKey()), true);
         }
 
         CdmStore.getTermManager().setPreferredTermsByType(preferredTerms, TermType.Rank);
@@ -78,9 +80,4 @@ public class RankPreference extends GeneralTermPreferencePage {
 
     }
 
-
-
-
-
-
 }
index 99f9ecce17708363bbb68978a2acd18b5b4c2a62..78a12ffbe34dd4ee5f3d9139720715ad891b7ee1 100644 (file)
@@ -59,7 +59,12 @@ public interface Resources {
        /** Constant <code>COLOR_COMPOSITE_BACKGROUND="eu.etaxonomy.taxeditor.preferences.colo"{trunked}</code> */
        public static final String COLOR_COMPOSITE_BACKGROUND = "eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeBackground";
        /** Constant <code>COLOR_COMPOSITE_IRRELEVANT="eu.etaxonomy.taxeditor.preferences.colo"{trunked}</code> */
-       public static final String COLOR_COMPOSITE_IRRELEVANT = "eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeIrrelevant";
+       public static final String COLOR_COMPOSITE_IRRELEVANT1 = "eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeIrrelevant1";
+    public static final String COLOR_COMPOSITE_IRRELEVANT1_LIGHT = "eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeIrrelevant1_light";
+       public static final String COLOR_COMPOSITE_IRRELEVANT2 = "eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeIrrelevant2";
+    public static final String COLOR_COMPOSITE_IRRELEVANT2_LIGHT = "eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeIrrelevant2_light";
+    public static final String COLOR_COMPOSITE_IRRELEVANT1_2 = "eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeIrrelevant1_2";
+    public static final String COLOR_COMPOSITE_IRRELEVANT1_2_LIGHT = "eu.etaxonomy.taxeditor.preferences.colorDefinition.colorCompositeIrrelevant1_2_light";
 
        /** Constant <code>SEARCH_VIEW_FOREGROUND="eu.etaxonomy.taxeditor.preferences.colo"{trunked}</code> */
        public static final String SEARCH_VIEW_FOREGROUND = "eu.etaxonomy.taxeditor.preferences.colorDefinition.searchView.foreground";
old mode 100755 (executable)
new mode 100644 (file)
index 3bfe7f4..517562e
@@ -20,8 +20,8 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
-import eu.etaxonomy.cdm.model.metadata.NamedAreaSearchField;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.TermSearchField;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
 
@@ -37,7 +37,7 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
     protected CdmPreference searchForIdentifierAndTitleCachePref;
     protected CdmPreference sortTaxaByRankAndNamePref;
     protected CdmPreference filterCommonNameReferencesPref;
-    protected CdmPreference searchNamedAreasByAbbrevPref;
+    protected CdmPreference searchTermsByAbbrevPref;
 
 
     protected Boolean showIdInSelectionDialog;
@@ -45,14 +45,14 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
     protected Boolean searchForIdentifierAndTitleCache;
     protected Boolean sortTaxaByRankAndName;
     protected Boolean filterCommonNameReferences;
-    protected NamedAreaSearchField searchNamedAreasByAbbrev;
+    protected TermSearchField searchTermsByAbbrev;
 
     private boolean overrideShowIdInSelectionDialog = true;
     private boolean overrideSearchForIdentifierAsDefault = true;
     private boolean overrideSearchForIdentifierAndTitleCache = true;
     private boolean overrideSortTaxaByRankAndName = true;
     private boolean overrideFilterCommonNameReferences = true;
-    private boolean overrideSearchNamedAreasByAbbrev = true;
+    private boolean overrideSearchTermsByAbbrev = true;
 
     protected Combo showIdInSelectionDialogButton;
     protected Button allowOverrideIsShowIdInSelectionDialogButton;
@@ -64,8 +64,8 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
     protected Button allowOverrideIsSortTaxaByRankAndNameButton;
     protected Combo filterCommonNameReferenceButton;
     protected Button allowOverrideFilterCommonNameReferencesButton;
-    protected Combo searchNamedAreasByAbbrevButton;
-    protected Button allowOverridesearchNamedAreasByAbbrevButton;
+    protected Combo searchTermsByAbbrevButton;
+    protected Button allowOverridesearchTermsByAbbrevButton;
 
 
 
@@ -77,14 +77,14 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
         searchForIdentifierAndTitleCachePref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.SearchForIdentifierAndTitleCache);
         sortTaxaByRankAndNamePref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.SortTaxaByRankAndName);
         filterCommonNameReferencesPref =  PreferencesUtil.getPreferenceFromDB(PreferencePredicate.CommonNameReferencesWithMarker);
-        searchNamedAreasByAbbrevPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.NamedAreaSearchForAbbrev);
+        searchTermsByAbbrevPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.NamedAreaSearchForAbbrev);
 
         overrideShowIdInSelectionDialog = PreferencesUtil.getOverrideForPreference(PreferencePredicate.ShowIdInSelectionDialog.getKey());
         overrideSearchForIdentifierAsDefault = PreferencesUtil.getOverrideForPreference(PreferencePredicate.SearchForIdentifierAsDefault.getKey());
         overrideSearchForIdentifierAndTitleCache = PreferencesUtil.getOverrideForPreference(PreferencePredicate.SearchForIdentifierAndTitleCache.getKey());
         overrideSortTaxaByRankAndName = PreferencesUtil.getOverrideForPreference(PreferencePredicate.SortTaxaByRankAndName.getKey());
         overrideFilterCommonNameReferences = PreferencesUtil.getOverrideForPreference(PreferencePredicate.CommonNameReferencesWithMarker.getKey());
-        overrideSearchNamedAreasByAbbrev = PreferencesUtil.getOverrideForPreference(PreferencePredicate.NamedAreaSearchForAbbrev.getKey());
+        overrideSearchTermsByAbbrev = PreferencesUtil.getOverrideForPreference(PreferencePredicate.NamedAreaSearchForAbbrev.getKey());
 
         if(overrideShowIdInSelectionDialog){
             showIdInSelectionDialog = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSelectionDialog.getKey(), true);
@@ -101,9 +101,9 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
         if(overrideFilterCommonNameReferences){
             filterCommonNameReferences = PreferencesUtil.getBooleanValue(PreferencePredicate.CommonNameReferencesWithMarker.getKey(), true);
         }
-        if(overrideSearchNamedAreasByAbbrev){
+        if(overrideSearchTermsByAbbrev){
             String stringValue = PreferencesUtil.getStringValue(PreferencePredicate.NamedAreaSearchForAbbrev.getKey(), true);
-            searchNamedAreasByAbbrev = stringValue != null? NamedAreaSearchField.byKey(stringValue):null;
+            searchTermsByAbbrev = stringValue != null? TermSearchField.byKey(stringValue):null;
         }
 
 
@@ -185,13 +185,13 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
             }
         }
 
-        if (e.getSource().equals(this.searchNamedAreasByAbbrevButton)) {
-            String text = searchNamedAreasByAbbrevButton.getText();
+        if (e.getSource().equals(this.searchTermsByAbbrevButton)) {
+            String text = searchTermsByAbbrevButton.getText();
             if(text.startsWith(Messages.Preference_Use_Default)){
-                searchNamedAreasByAbbrev = null;
+                searchTermsByAbbrev = null;
                 return;
             }
-            searchNamedAreasByAbbrev = (NamedAreaSearchField) searchNamedAreasByAbbrevButton.getData(text);
+            searchTermsByAbbrev = (TermSearchField) searchTermsByAbbrevButton.getData(text);
 
         }
 
@@ -336,25 +336,25 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
             });
         }
 
-        searchNamedAreasByAbbrevButton = createCombo(composite, NamedAreaSearchField.values(), PreferencePredicate.NamedAreaSearchForAbbrev, Messages.DatabasePreferncesPage_NamedAreaSearchField, isAdminPreference);
-        searchNamedAreasByAbbrevButton.addSelectionListener(this);
+        searchTermsByAbbrevButton = createCombo(composite, TermSearchField.values(), PreferencePredicate.NamedAreaSearchForAbbrev, Messages.DatabasePreferncesPage_NamedAreaSearchField, isAdminPreference);
+        searchTermsByAbbrevButton.addSelectionListener(this);
 
 
-        if (!isAdminPreference && searchNamedAreasByAbbrevPref != null){
-            searchNamedAreasByAbbrevButton.setEnabled(searchNamedAreasByAbbrevPref.isAllowOverride());
+        if (!isAdminPreference && searchTermsByAbbrevPref != null){
+            searchTermsByAbbrevButton.setEnabled(searchTermsByAbbrevPref.isAllowOverride());
         }
 
         if (isAdminPreference){
-            allowOverridesearchNamedAreasByAbbrevButton = createAllowOverrideButton(composite);
-            allowOverridesearchNamedAreasByAbbrevButton.setSelection(searchNamedAreasByAbbrevPref != null? searchNamedAreasByAbbrevPref.isAllowOverride():true);
-            allowOverridesearchNamedAreasByAbbrevButton.addSelectionListener(new SelectionAdapter(){
+            allowOverridesearchTermsByAbbrevButton = createAllowOverrideButton(composite);
+            allowOverridesearchTermsByAbbrevButton.setSelection(searchTermsByAbbrevPref != null? searchTermsByAbbrevPref.isAllowOverride():true);
+            allowOverridesearchTermsByAbbrevButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
                     setApply(true);
-                    if (searchNamedAreasByAbbrevPref == null && !allowOverridesearchNamedAreasByAbbrevButton.getSelection()){
-                        searchNamedAreasByAbbrevPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, null);
+                    if (searchTermsByAbbrevPref == null && !allowOverridesearchTermsByAbbrevButton.getSelection()){
+                        searchTermsByAbbrevPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, null);
                     }
-                    searchNamedAreasByAbbrevPref.setAllowOverride(allowOverridesearchNamedAreasByAbbrevButton.getSelection());
+                    searchTermsByAbbrevPref.setAllowOverride(allowOverridesearchTermsByAbbrevButton.getSelection());
                 }
             });
         }
@@ -396,11 +396,11 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
             allowOverrideFilterCommonNameReferencesButton.setSelection(true);
             filterCommonNameReferencesPref.setAllowOverride(true);
         }
-        searchNamedAreasByAbbrevButton.select(0);
-        searchNamedAreasByAbbrev = null;
+        searchTermsByAbbrevButton.select(0);
+        searchTermsByAbbrev = null;
         if (isAdminPreference){
-            allowOverridesearchNamedAreasByAbbrevButton.setSelection(true);
-            searchNamedAreasByAbbrevPref.setAllowOverride(true);
+            allowOverridesearchTermsByAbbrevButton.setSelection(true);
+            searchTermsByAbbrevPref.setAllowOverride(true);
         }
         setApply(true);
     }
@@ -458,9 +458,9 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
                 override);
         override = false;
 
-        if(searchNamedAreasByAbbrev != null){
+        if(searchTermsByAbbrev != null){
             override = true;
-            PreferencesUtil.setStringValue(PreferencePredicate.NamedAreaSearchForAbbrev.getKey(), searchNamedAreasByAbbrev.getKey());
+            PreferencesUtil.setStringValue(PreferencePredicate.NamedAreaSearchForAbbrev.getKey(), searchTermsByAbbrev.getKey());
         }
         PreferencesUtil.setBooleanValue(
                 PreferencesUtil.prefOverrideKey(PreferencePredicate.NamedAreaSearchForAbbrev.getKey()),
@@ -558,15 +558,15 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
             index++;
         }
         index = 0;
-        for (String itemLabel: searchNamedAreasByAbbrevButton.getItems()) {
-            if ((searchNamedAreasByAbbrev == null || (!overrideSearchNamedAreasByAbbrev && !isAdminPreference)) && itemLabel.startsWith(Messages.Preference_Use_Default)) {
-                searchNamedAreasByAbbrevButton.select(index);
+        for (String itemLabel: searchTermsByAbbrevButton.getItems()) {
+            if ((searchTermsByAbbrev == null || (!overrideSearchTermsByAbbrev && !isAdminPreference)) && itemLabel.startsWith(Messages.Preference_Use_Default)) {
+                searchTermsByAbbrevButton.select(index);
                 break;
             }
 
 
-            if (searchNamedAreasByAbbrev != null && itemLabel.equals(searchNamedAreasByAbbrev.getLabel())){
-                searchNamedAreasByAbbrevButton.select(index);
+            if (searchTermsByAbbrev != null && itemLabel.equals(searchTermsByAbbrev.getLabel())){
+                searchTermsByAbbrevButton.select(index);
                 break;
             }
 
old mode 100755 (executable)
new mode 100644 (file)
index 16fed3c..f34b855
@@ -8,25 +8,39 @@
 */
 package eu.etaxonomy.taxeditor.preference;
 
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.RowLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.internal.Workbench;
 
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
 
 /**
  * @author k.luther
  * @since 18.01.2019
  *
  */
-public class SearchPreferences extends CdmPreferencePage {
+public class SearchPreferences extends FieldEditorPreferencePageE4 {
 
+       
     /**
      * {@inheritDoc}
      */
-    @Override
-    protected Control createContents(Composite parent) {
-        noDefaultAndApplyButton();
-        return null;
+       @Override
+       protected void createFieldEditors() {
+       
+       addField(new BooleanFieldEditor(PreferencesUtil.createPreferenceString(IPreferenceKeys.SEARCH_OPEN_RESULTS_IN_SEPARATE_WINDOWS),
+                Messages.TaxonomicEditorGeneralPreferences_search_window,
+                getFieldEditorParent()));
     }
+    
+    
 
+       
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SecundumReferenceHandling.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SecundumReferenceHandling.java
new file mode 100644 (file)
index 0000000..0ea08f4
--- /dev/null
@@ -0,0 +1,304 @@
+/**
+* Copyright (C) 2020 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.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingSwapEnum;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+
+/**
+ * @author k.luther
+ * @since Dec 1, 2020
+ */
+public class SecundumReferenceHandling extends CdmPreferencePage {
+
+    protected SecReferenceHandlingEnum secundumBehaviour;
+    protected SecReferenceHandlingSwapEnum secundumSwapBehaviour;
+
+
+    protected Combo synonymSecundumBehaviour;
+    protected CdmPreference pref = null;
+    Button allowOverrideButton;
+
+    protected boolean allowOverride;
+    private boolean override = true;
+
+    protected Combo synonymSecundumSwapBehaviour;
+    protected CdmPreference prefSwap = null;
+    Button allowOverrideSwapButton;
+
+    protected boolean allowOverrideSwap;
+    private boolean overrideSwap = true;
+
+
+   @Override
+   public void init() {
+       super.init();
+       isAdminPreference = false;
+
+
+   }
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected Control createContents(Composite parent) {
+        getValues();
+
+        Composite composite = createComposite(parent);
+        synonymSecundumBehaviour = createCombo(composite, SecReferenceHandlingEnum.values(), PreferencePredicate.DefaultBehaviourForSecundum, Messages.SecundumPreference_description, isAdminPreference);
+
+        synonymSecundumBehaviour.addSelectionListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                setApply(true);
+                if (!synonymSecundumBehaviour.getText().startsWith(Messages.Preference_Use_Default)){
+                    secundumBehaviour = (SecReferenceHandlingEnum)synonymSecundumBehaviour.getData(synonymSecundumBehaviour.getText());
+                }else{
+                    secundumBehaviour = null;
+                }
+
+            }
+
+
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                // TODO Auto-generated method stub
+
+                }
+            });
+            if (this.isAdminPreference){
+                allowOverrideButton = createAllowOverrideButton(composite);
+                allowOverrideButton.setSelection(allowOverride);
+                allowOverrideButton.addSelectionListener(new SelectionAdapter(){
+                    @Override
+                    public void widgetSelected(SelectionEvent e) {
+                        allowOverride = !allowOverride;
+                        setApply(true);
+                        }
+                });
+            }
+            int index = 0;
+
+            if(secundumBehaviour==null){
+                synonymSecundumBehaviour.select(0);
+            }
+            else{
+                for (String itemLabel : synonymSecundumBehaviour.getItems()){
+                    if (itemLabel.startsWith(secundumBehaviour.getLabel())){
+                        synonymSecundumBehaviour.select(index);
+                        break;
+                    }
+                    index++;
+                }
+            }
+            //swap secundum behaviour
+            synonymSecundumSwapBehaviour = createCombo(composite, SecReferenceHandlingSwapEnum.values(), PreferencePredicate.DefaultBehaviourForSecundumWhenSwap, Messages.SecundumPreferenceSwap_description, isAdminPreference);
+
+            synonymSecundumSwapBehaviour.addSelectionListener(new SelectionListener() {
+
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
+                    if (!synonymSecundumSwapBehaviour.getText().startsWith(Messages.Preference_Use_Default)){
+                        secundumSwapBehaviour = (SecReferenceHandlingSwapEnum)synonymSecundumSwapBehaviour.getData(synonymSecundumSwapBehaviour.getText());
+                    }else{
+                        secundumSwapBehaviour = null;
+                    }
+
+                }
+
+                @Override
+                public void widgetDefaultSelected(SelectionEvent e) {
+                    // TODO Auto-generated method stub
+
+                    }
+                });
+                if (this.isAdminPreference){
+                    allowOverrideSwapButton = createAllowOverrideButton(composite);
+                    allowOverrideSwapButton.setSelection(allowOverrideSwap);
+                    allowOverrideSwapButton.addSelectionListener(new SelectionAdapter(){
+                        @Override
+                        public void widgetSelected(SelectionEvent e) {
+                            allowOverrideSwap = !allowOverrideSwap;
+                            setApply(true);
+                            }
+                    });
+                }
+                index = 0;
+
+                if(secundumSwapBehaviour==null){
+                    synonymSecundumSwapBehaviour.select(0);
+                }
+                else{
+                    for (String itemLabel : synonymSecundumSwapBehaviour.getItems()){
+                        if (itemLabel.startsWith(secundumSwapBehaviour.getLabel())){
+                            synonymSecundumSwapBehaviour.select(index);
+                            break;
+                        }
+                        index++;
+                    }
+                }
+                if (!allowOverride && !isAdminPreference){
+                    synonymSecundumBehaviour.setEnabled(false);
+                }
+                if (!allowOverrideSwap && !isAdminPreference){
+                    synonymSecundumSwapBehaviour.setEnabled(false);
+                }
+            return composite;
+
+        }
+
+
+        @Override
+        public boolean performOk() {
+            if (isApply()){
+                if (secundumBehaviour != null){
+                    String text = secundumBehaviour.getKey();
+                    PreferencesUtil.setStringValue(PreferencePredicate.DefaultBehaviourForSecundum.getKey(), text);
+                    if (pref == null || !pref.getValue().equals(text)){
+                        PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForSecundum.getKey()), true);
+                    }
+                }else{
+                    PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForSecundum.getKey()), false);
+                }
+
+                //for swap operations
+                if (secundumSwapBehaviour != null){
+                    String text = secundumSwapBehaviour.getKey();
+                    PreferencesUtil.setStringValue(PreferencePredicate.DefaultBehaviourForSecundumWhenSwap.getKey(), text);
+                    if (prefSwap == null || !prefSwap.getValue().equals(text)){
+                        PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForSecundumWhenSwap.getKey()), true);
+                    }
+                }else{
+                    PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForSecundumWhenSwap.getKey()), false);
+                }
+            }
+            return true;
+        }
+
+        @Override
+        public void getValues(){
+            secundumBehaviour = null;
+            PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewInstance("/MoveSynOrAccepted/"), PreferencePredicate.DefaultBehaviourForSecundum);
+            pref = PreferencesUtil.getPreferenceFromDB(key);
+            if (pref == null){
+                pref = CdmPreference.NewInstance(key, PreferencePredicate.DefaultBehaviourForSecundum.getDefaultValue().toString());
+            }
+            allowOverride = pref.isAllowOverride();
+            try{
+                if (!isAdminPreference && allowOverride){
+                    String secundumString = PreferencesUtil.getStringValue(PreferencePredicate.DefaultBehaviourForSecundum.getKey(), true);
+                    if (secundumString != null){
+                        secundumBehaviour = SecReferenceHandlingEnum.valueOf(secundumString);
+                    }
+                }else{
+                    secundumBehaviour = SecReferenceHandlingEnum.valueOf(pref.getValue());
+                }
+
+
+            }catch (IllegalArgumentException e){
+                secundumBehaviour = SecReferenceHandlingEnum.KeepOrWarn;
+            }
+            String prefString = PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForSecundum.getKey());
+            override = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForSecundum.getKey()), true);
+            if (!override && !isAdminPreference){
+                secundumBehaviour = null;
+            }
+
+            //for swap operation
+
+            secundumSwapBehaviour = null;
+            key = CdmPreference.NewKey(PreferenceSubject.NewInstance("/SwapSynToAccepted/"), PreferencePredicate.DefaultBehaviourForSecundumWhenSwap);
+
+            prefSwap = PreferencesUtil.getPreferenceFromDB(key);
+            if (prefSwap == null){
+                prefSwap = CdmPreference.NewInstance(key, PreferencePredicate.DefaultBehaviourForSecundumWhenSwap.getDefaultValue().toString());
+            }
+            allowOverrideSwap = prefSwap.isAllowOverride();
+            try{
+                if (!isAdminPreference && allowOverrideSwap){
+                    String secundumString = PreferencesUtil.getStringValue(PreferencePredicate.DefaultBehaviourForSecundumWhenSwap.getKey(), !isAdminPreference);
+
+                    if (secundumString != null){
+                        secundumSwapBehaviour = SecReferenceHandlingSwapEnum.valueOf(secundumString);
+                    }
+                }else{
+                    secundumSwapBehaviour = SecReferenceHandlingSwapEnum.valueOf(prefSwap.getValue());
+                }
+
+
+            }catch (IllegalArgumentException e){
+                secundumSwapBehaviour = SecReferenceHandlingSwapEnum.KeepOrWarn;
+            }
+            prefString = PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForSecundumWhenSwap.getKey());
+            overrideSwap = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForSecundumWhenSwap.getKey()), true);
+            if (!overrideSwap){
+                secundumSwapBehaviour = null;
+            }
+        }
+
+        @Override
+        protected void performDefaults() {
+            secundumBehaviour = null;
+            allowOverride = true;
+            int index = 0;
+
+            for (String itemLabel : synonymSecundumBehaviour.getItems()){
+                if (itemLabel.startsWith(Messages.Preference_Use_Default)){
+                    synonymSecundumBehaviour.select(index);
+                    break;
+                }
+                index++;
+            }
+            if (isAdminPreference){
+                allowOverrideButton.setSelection(allowOverride);
+            }
+
+            //for swap operation
+
+            secundumSwapBehaviour = null;
+            allowOverrideSwap = true;
+            index = 0;
+
+            for (String itemLabel : synonymSecundumSwapBehaviour.getItems()){
+                if (itemLabel.startsWith(Messages.Preference_Use_Default)){
+                    synonymSecundumSwapBehaviour.select(index);
+                    break;
+                }
+                index++;
+            }
+            if (isAdminPreference){
+                allowOverrideSwapButton.setSelection(allowOverrideSwap);
+            }
+
+            setApply(true);
+            super.performDefaults();
+        }
+
+
+
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonPreferencesMisappliedNames.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TaxonPreferencesMisappliedNames.java
new file mode 100644 (file)
index 0000000..9a9ced2
--- /dev/null
@@ -0,0 +1,249 @@
+/**
+* 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.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since 18.01.2019
+ *
+ */
+public class TaxonPreferencesMisappliedNames extends CdmPreferencePage implements SelectionListener {
+
+       private static final String LOCAL_SETTINGS_NOT_ALLOWED = Messages.TaxonPreference_local_not_allowed;
+    
+
+    protected Boolean isShowPartialMisapplied;
+    protected boolean allowOverrideShowPartialMisapplied;
+    protected boolean overrideShowPartialMisapplied;
+    
+
+    Composite composite;
+
+    protected Combo showPartialMisappliedButton;
+    protected Button allowOverrideIsShowPartialMisappliedButton;
+    
+
+    protected CdmPreference showPartialMisapplicationPref;
+    
+
+    @Override
+    public void init() {
+        super.init();
+//        setPreferenceStore(PreferencesUtil.getPreferenceStore());
+        if(!CdmStore.isActive()){
+            return;
+        }
+
+
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected Control createContents(Composite parent) {
+        getValues();
+
+        boolean isEditingAllowed = true;
+        if(!isAdminPreference){
+            CdmPreferenceCache cache = CdmPreferenceCache.instance();
+
+            if (showPartialMisapplicationPref != null){
+                if (!showPartialMisapplicationPref.isAllowOverride() ){
+                    isEditingAllowed = false;
+                }
+            }
+        }
+        if (isEditingAllowed){
+            
+        }else{
+            Label label = new Label(parent, SWT.NONE);
+            label.setText(LOCAL_SETTINGS_NOT_ALLOWED);
+            this.noDefaultAndApplyButton();
+            return parent;
+        }
+        composite = createComposite(parent);
+        GridData gridData = createTextGridData();
+
+        Label separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
+        separator.setLayoutData(gridData);
+        separator.setVisible(false);
+        showPartialMisappliedButton = createBooleanCombo(composite, Messages.GeneralPreference_yes, Messages.GeneralPreference_no, PreferencePredicate.AllowPartialMisapplied, Messages.TaxonPreference_description, isAdminPreference);
+
+        showPartialMisappliedButton.addSelectionListener(this);
+        int index = 0;
+        for (String itemLabel : showPartialMisappliedButton.getItems()) {
+            if (isShowPartialMisapplied == null && itemLabel.startsWith(Messages.Preference_Use_Default)) {
+                showPartialMisappliedButton.select(index);
+                break;
+            }
+            if (isShowPartialMisapplied != null && itemLabel.equals(Messages.GeneralPreference_yes) && isShowPartialMisapplied){
+                showPartialMisappliedButton.select(index);
+                break;
+            }
+            if (isShowPartialMisapplied != null && itemLabel.equals(Messages.GeneralPreference_no) && !isShowPartialMisapplied){
+                showPartialMisappliedButton.select(index);
+                break;
+            }
+            index++;
+        }
+        showPartialMisappliedButton.setEnabled(isEditingAllowed);
+
+        if (isAdminPreference){
+            allowOverrideIsShowPartialMisappliedButton = createAllowOverrideButton(composite);
+            allowOverrideIsShowPartialMisappliedButton.setSelection(showPartialMisapplicationPref!= null?showPartialMisapplicationPref.isAllowOverride():true);
+
+            allowOverrideIsShowPartialMisappliedButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
+                    allowOverrideShowPartialMisapplied = allowOverrideIsShowPartialMisappliedButton.getSelection();
+                }
+            });
+        }
+
+        
+
+        
+
+        
+
+        if (!isEditingAllowed){
+            PreferencesUtil.recursiveSetEnabled(composite, false);
+        }
+
+        return composite;
+    }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected void getValues() {
+        CdmPreferenceCache cache = CdmPreferenceCache.instance();
+
+
+        overrideShowPartialMisapplied = PreferencesUtil.getBooleanValue(
+                PreferencesUtil.prefOverrideKey(PreferencePredicate.AllowPartialMisapplied.getKey()), true) != null? PreferencesUtil.getBooleanValue(
+                        PreferencesUtil.prefOverrideKey(PreferencePredicate.AllowPartialMisapplied.getKey()), true): false;
+
+        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AllowPartialMisapplied);
+        showPartialMisapplicationPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AllowPartialMisapplied);
+        allowOverrideShowPartialMisapplied = showPartialMisapplicationPref != null? showPartialMisapplicationPref.isAllowOverride():true;
+
+
+        if (showPartialMisapplicationPref != null) {
+            if (showPartialMisapplicationPref.isAllowOverride() ) {
+                if (overrideShowPartialMisapplied){
+                    isShowPartialMisapplied = PreferencesUtil.getBooleanValue(PreferencePredicate.AllowPartialMisapplied.getKey(), true);
+                }
+            } else {
+                isShowPartialMisapplied = Boolean.valueOf(showPartialMisapplicationPref.getValue());
+            }
+
+        } else {
+            if(!overrideShowPartialMisapplied){
+                isShowPartialMisapplied = null;
+            }else{
+                isShowPartialMisapplied = PreferencesUtil.getBooleanValue(PreferencePredicate.AllowPartialMisapplied.getKey(), true);
+            }
+            showPartialMisapplicationPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AllowPartialMisapplied, PreferencePredicate.AllowPartialMisapplied.getDefaultValue() != null ?  PreferencePredicate.AllowPartialMisapplied.getDefaultValue().toString(): null);
+        }
+
+      
+
+    }
+
+    @Override
+    public boolean performOk() {
+
+        boolean override = false;
+        if (isShowPartialMisapplied != null ) {
+            override = true;
+            PreferencesUtil.setStringValue(PreferencePredicate.AllowPartialMisapplied.getKey(), isShowPartialMisapplied.toString());
+        }
+        PreferencesUtil.setBooleanValue(
+                PreferencesUtil.prefOverrideKey(PreferencePredicate.AllowPartialMisapplied.getKey()),
+                override);
+        
+
+        return true;
+    }
+
+
+
+    @Override
+    protected void performDefaults() {
+        isShowPartialMisapplied = null;
+        showPartialMisappliedButton.select(0);
+
+        if (allowOverrideIsShowPartialMisappliedButton != null){
+            allowOverrideShowPartialMisapplied = true;
+            allowOverrideIsShowPartialMisappliedButton.setSelection(allowOverrideShowPartialMisapplied);
+        }
+
+        
+        setApply(true);
+
+        super.performDefaults();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void widgetSelected(SelectionEvent e) {
+       setApply(true);
+       if (e.getSource().equals(this.showPartialMisappliedButton)) {
+           String text = showPartialMisappliedButton.getText();
+           if(text.startsWith(Messages.Preference_Use_Default)){
+               isShowPartialMisapplied = null;
+               return;
+           }
+
+           if (text.equals(Messages.GeneralPreference_yes)){
+               isShowPartialMisapplied = true;
+           }else{
+               isShowPartialMisapplied = false;
+           }
+       }
+
+      
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void widgetDefaultSelected(SelectionEvent e) {
+        // TODO Auto-generated method stub
+
+    }
+
+}
index 030fb145f2e7c704ae34df2273c075075d4bbdf4..2cc8cb782e53082c6d1de6e4088fd5d601acef55 100644 (file)
@@ -61,8 +61,9 @@ public class TaxonomicEditorGeneralPreferences extends
 //             addField(new BooleanFieldEditor(PreferencesUtil.createPreferenceString(
 //                             IPreferenceKeys.SHOW_EXPERIMENTAL_FEATURES),
 //                             "Show experimental features", getFieldEditorParent()));
-//             addField(new BooleanFieldEditor(IPreferenceKeys.SEARCH_OPEN_RESULTS_IN_SEPARATE_WINDOWS,
-//                     "Open search results in separate windows",
+//             addField(new BooleanFieldEditor(PreferencesUtil.createPreferenceString(
+//                             IPreferenceKeys.SEARCH_OPEN_RESULTS_IN_SEPARATE_WINDOWS),
+//                             Messages.TaxonomicEditorGeneralPreferences_search_window,
 //                     getFieldEditorParent()));
 //             addField(new BooleanFieldEditor(PreferencesUtil.createPreferenceString(IPreferenceKeys.SORT_TAXA_BY_RANK_AND_NAME),
 //                "In selection dialogs for taxa, sort by rank and name",
@@ -1,5 +1,5 @@
 /**
-* Copyright (C) 2019 EDIT
+* Copyright (C) 2020 EDIT
 * European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
 *
@@ -10,27 +10,19 @@ 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
- *
+ * @since Nov 20, 2020
  */
-public class TaxonSearchPreferences extends FieldEditorPreferencePageE4{
+public class TermTreePreference 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,
+        addField(new BooleanFieldEditor(PreferencesUtil.createPreferenceString(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS_IN_TREE_EDITOR),
+                Messages.DescriptionPreferences_1,
                 getFieldEditorParent()));
 
     }
index 542e18c87233e2aa64053dbed9c478c1e9ecb78c..6dc5295401f375b087e66d82b8e7ead5c5dc36a8 100644 (file)
@@ -6,10 +6,8 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.preference.matching;
 
-
 import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -32,9 +30,9 @@ import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
 /**
  * @author n.hoffmann
  * @created Jan 22, 2010
- * @version 1.0
  */
-public abstract class AbstractMatchingPreferences<T extends IdentifiableEntity> extends CdmPreferencePage {
+public abstract class AbstractMatchingPreferences<T extends IdentifiableEntity> 
+               extends CdmPreferencePage {
 
        /**
         * Fields that will be excluded from the display
@@ -48,7 +46,7 @@ public abstract class AbstractMatchingPreferences<T extends IdentifiableEntity>
 
        private List<MatchMode> matchModeList;
 
-       protected Map<String, ComboFieldEditor> matchModeCombos = new HashMap();
+       protected Map<String, ComboFieldEditor> matchModeCombos = new HashMap<>();
 
         @Override
         protected Control createContents(Composite parent) {
@@ -60,7 +58,6 @@ public abstract class AbstractMatchingPreferences<T extends IdentifiableEntity>
 
            top.setLayoutData(layoutData);
 
-
 //            final GridLayout gridLayout = new GridLayout();
 //            gridLayout.numColumns = 2;
 //
@@ -84,7 +81,6 @@ public abstract class AbstractMatchingPreferences<T extends IdentifiableEntity>
            }
 
               return top;
-
            }
 
            @Override
@@ -97,17 +93,17 @@ public abstract class AbstractMatchingPreferences<T extends IdentifiableEntity>
 
            @Override
            public boolean performOk() {
-              if (matchModeCombos.size() >0){
+              if (matchModeCombos.size() > 0){
                   for (ComboFieldEditor editor: matchModeCombos.values()){
                       editor.store();
                   }
               }
               return super.performOk();
-
            }
+           
            @Override
            protected void performDefaults() {
-               if (matchModeCombos.size() >0){
+               if (matchModeCombos.size() > 0){
                       for (ComboFieldEditor editor: matchModeCombos.values()){
                           editor.loadDefault();
                       }
@@ -115,12 +111,6 @@ public abstract class AbstractMatchingPreferences<T extends IdentifiableEntity>
                super.performDefaults();
            }
 
-
-
-
-//     /**
-//      * {@inheritDoc}
-//      */
 //     @Override
 //     protected void createFieldEditors() {
 //         if(CdmStore.isActive()) {
@@ -151,11 +141,9 @@ public abstract class AbstractMatchingPreferences<T extends IdentifiableEntity>
 
        /**
         * Get names of all declared fields
-        *
-        * @return
         */
        private List<String> getFieldNames(){
-               List<Field> fields = new ArrayList<Field>();
+               List<Field> fields = new ArrayList<>();
 
                fields = getAllFields(fields, clazz);
                List<String> fieldNames = new ArrayList<String>();
index 1c5db7eb7b97edc8045e465c2725734dc7102277..8502d34d0c7c87a42e4cc88393b79685052990de 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.preference.matching;
 
 import eu.etaxonomy.cdm.model.name.TaxonName;
@@ -23,7 +22,6 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
  */
 public class NonViralNameMatchingPreference extends AbstractMatchingPreferences<TaxonName>{
 
-       /** {@inheritDoc} */
        @Override
     public void init() {
            super.init();
@@ -37,7 +35,6 @@ public class NonViralNameMatchingPreference extends AbstractMatchingPreferences<
                }
        }
 
-       /** {@inheritDoc} */
        @Override
        protected IMatchStrategy getDefaultMatchStrategy() throws MatchException {
                return MatchStrategyConfigurator.getDefaultNonViralNameMatchStrategy();
index 525f20fc7435d2b4bd0aba3826ff38f272514ffc..ad346ebe81b9d7bf3878dcdc6e7e203167d7d0b8 100644 (file)
@@ -8,6 +8,8 @@
 */
 package eu.etaxonomy.taxeditor.preference.menu;
 
+import java.util.List;
+
 import org.eclipse.jface.preference.PreferencePage;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.SWT;
@@ -21,6 +23,7 @@ import org.eclipse.swt.widgets.Composite;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.IKeyLabel;
 import eu.etaxonomy.cdm.model.metadata.IPreferencePredicate;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.IE4PreferencePage;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -28,11 +31,9 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 /**
  * @author cmathew
  * @date 30 Jul 2015
- *
  */
 public abstract class CdmPreferencePage extends PreferencePage implements IE4PreferencePage {
 
-
     private boolean isDefaultButtonActivated = true;
 
     protected boolean isAdminPreference = false;
@@ -56,8 +57,6 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
         init();
     }
 
-
-
     public void init() {
         setPreferenceStore(PreferencesUtil.getPreferenceStore());
     }
@@ -71,7 +70,6 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
         if (getDefaultsButton() != null){
             this.getDefaultsButton().setEnabled(isDefaultButtonActivated);
         }
-
     }
 
     @Override
@@ -107,7 +105,6 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
         return activateComp;
     }
 
-
     protected GridData createTextGridData() {
         GridData sepGrid = new GridData(GridData.FILL_HORIZONTAL);
         sepGrid.horizontalSpan = 2;
@@ -115,10 +112,8 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
     }
 
     protected void getValues(){
-
     }
 
-
     protected Button createAllowOverrideButton(Composite activateComp) {
         final Button allowOverrideCheckButton = new Button(activateComp, SWT.CHECK);
         String overrideString;
@@ -184,12 +179,12 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
         booleanCombo.add(Messages.Preference_Use_Default + defaultString);
         booleanCombo.add(textTrue);
         booleanCombo.add(textFalse);
-
+        if (!isAdminPage && dbPref != null){
+            booleanCombo.setEnabled(dbPref.isAllowOverride());
+        }
         return booleanCombo;
-
     }
 
-
     public Combo createCombo(Composite parent, IKeyLabel[] enumValues, IPreferencePredicate predicate, String labelText, boolean isAdminPage) {
         final CLabel description = new CLabel(parent, SWT.NULL);
         description.setText(labelText);
@@ -199,9 +194,8 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
 
         Combo booleanCombo = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
 
-
         CdmPreference dbPref = PreferencesUtil.getPreferenceFromDB(predicate);
-        String defaultValue = "";
+        String defaultValue = " - ";
         if (dbPref != null && !isAdminPage && dbPref.getValue() != null){
             defaultValue = dbPref.getValue();
             if (enumValues != null){
@@ -224,7 +218,6 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
             }catch(NullPointerException e){
                 defaultValue = "";
             }
-
         }
 
         booleanCombo.add(Messages.Preference_Use_Default + " ("+defaultValue+")");
@@ -236,7 +229,54 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
         }
 
         return booleanCombo;
+    }
+    
+    public Combo createComboTerms(Composite parent, List<DefinedTermBase> values, IPreferencePredicate predicate, String labelText, DefinedTermBase defaultTerm, boolean isAdminPage) {
+        final CLabel description = new CLabel(parent, SWT.NULL);
+        description.setText(labelText);
+        GridData textGrid = createTextGridData();
+        textGrid.verticalSpan = 2;
+        description.setLayoutData(textGrid);
+
+        Combo booleanCombo = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
+
+        CdmPreference dbPref = PreferencesUtil.getPreferenceFromDB(predicate);
+        String defaultValue = " - ";
+        if (dbPref != null && !isAdminPage && dbPref.getValue() != null){
+            defaultValue = dbPref.getValue();
+            if (values != null && !values.isEmpty()){
+                for (DefinedTermBase value: values){
+                    if (value.getUuid().toString().equals(defaultValue)){
+                        defaultValue = value.getLabel();
+                    }
+                }
+            }
+        }else {
+            try{
+                Object defaultObject = predicate.getDefaultValue();
+                if (defaultObject != null){
+                    if (defaultObject instanceof DefinedTermBase){
+                        defaultValue = ((DefinedTermBase)defaultObject).getLabel();
+                    }else{
+                        defaultValue = defaultObject.toString();
+                    }
+                }else if (defaultTerm != null) {
+                    defaultValue = defaultTerm.getLabel();
+                }
+            }catch(NullPointerException e){
+                defaultValue = "";
+            }
+        }
+
+        booleanCombo.add(Messages.Preference_Use_Default + " ("+defaultValue+")");
+        if (values != null){
+            for (DefinedTermBase value: values){
+                booleanCombo.add(value.getLabel());
+                booleanCombo.setData(value.getLabel(), value);
+            }
+        }
 
+        return booleanCombo;
     }
 
     public Boolean getBooleanPrefValue(CdmPreference pref) {
@@ -250,9 +290,4 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
     public boolean getPrefAllowOverride(CdmPreference pref) {
         return pref != null? pref.isAllowOverride(): true;
     }
-
-
-
-
-
 }
old mode 100755 (executable)
new mode 100644 (file)
index c3822a5..3253469
@@ -33,6 +33,7 @@ public class CommonNameLanguagePreferences extends GeneralTermPreferencePage {
            super(Messages.CommonNameLanguages_Title);
 
         isAdminPreference = false;
+
         setPredicate(PreferencePredicate.CommonNameLanguages);
         setDescription(Messages.CommonNameLanguagePreferencePage_description);
         type = TermType.Language;
index c7f1b34bd2fa6b58ce20458f4d2df8e1bf3b4616..8730f35c69f842022a5fa27e062cce84b582c8f1 100644 (file)
@@ -14,6 +14,7 @@ import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.swt.graphics.Image;
 
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
  * <p>DefinedTermBaseLabelProvider class.</p>
@@ -38,6 +39,6 @@ public class DefinedTermBaseLabelProvider extends LabelProvider implements
         */
        /** {@inheritDoc} */
        public String getColumnText(Object element, int columnIndex) {
-               return ((DefinedTermBase)element).getLabel();
+               return ((DefinedTermBase)element).getPreferredRepresentation(PreferencesUtil.getGlobalLanguage()).getLabel();
        }
 }
index dee01658b2edc54bad0124ec4466c3b549428c1a..11bfd5d544790bb495365a6227dee283ab843d87 100644 (file)
@@ -15,7 +15,7 @@ import java.util.List;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CLabel;
 import org.eclipse.swt.layout.GridData;
@@ -29,6 +29,7 @@ import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.model.common.CdmClass;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter;
@@ -42,20 +43,27 @@ import eu.etaxonomy.taxeditor.preference.wizard.CheckBoxTreeComposite;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>FeatureMenuPreferences class.</p>
+ * <p>
+ * FeatureMenuPreferences class.
+ * </p>
  *
  * @author p.ciardelli
  * @author n.hoffmann
  * @created 17.09.2008
  * @version 1.0
  */
-public class FeatureMenuPreferences extends GeneralTermPreferencePage{
+public class FeatureMenuPreferences extends GeneralTermPreferencePage {
 
-    /** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.preferences.feat"{trunked}</code> */
+    /**
+     * Constant
+     * <code>PLUGIN_ID="eu.etaxonomy.taxeditor.preferences.feat"{trunked}</code>
+     */
     public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.taxonFeature"; //$NON-NLS-1$
 
     /**
-     * <p>Constructor for FeatureMenuPreference.</p>
+     * <p>
+     * Constructor for FeatureMenuPreference.
+     * </p>
      */
     public FeatureMenuPreferences() {
         super();
@@ -68,7 +76,7 @@ public class FeatureMenuPreferences extends GeneralTermPreferencePage{
     protected Control createContents(Composite parent) {
         Composite container = new Composite(parent, SWT.NULL);
         getPreferenceValues();
-        if (isLocalPref() && !allowOverride){
+        if (isLocalPref() && !allowOverride) {
             final CLabel description = new CLabel(parent, SWT.NULL);
             description.setText(Messages.NameDetailsViewConfiguration_description_not_available);
             this.setDefaultButtonActivated(false);
@@ -80,36 +88,37 @@ public class FeatureMenuPreferences extends GeneralTermPreferencePage{
         container.setLayout(gridLayout);
         parent.setLayout(new GridLayout());
         useLocalOrAdmin = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
-        if (!isAdminPreference){
+        if (!isAdminPreference) {
             useLocalOrAdmin.add(LocalOrDefaultEnum.Default.getLabel(), 0);
             useLocalOrAdmin.add(LocalOrDefaultEnum.Local.getLabel(), 1);
 
-        }else{
+        } else {
             useLocalOrAdmin.add(LocalOrDefaultEnum.AllowOverride.getLabel(), 0);
             useLocalOrAdmin.add(LocalOrDefaultEnum.Database.getLabel(), 1);
         }
 
-
-        treeComposite = new CheckBoxTreeComposite(container, new FeatureDtoContentProvider(true, false, false), new TermDtoLabelProvider(), SWT.SCROLL_PAGE);
+        treeComposite = new CheckBoxTreeComposite(container, new FeatureDtoContentProvider(true, false, false),
+                new TermDtoLabelProvider(), SWT.SCROLL_PAGE);
         treeComposite.getViewer().setComparator(new DefinedTermSorter());
         rememberCheckedValues(getCheckedValuesFromPreferences());
 
-        if (isLocalPref()){
-            if (isOverride){
+        if (isLocalPref()) {
+            if (isOverride) {
                 useLocalOrAdmin.select(1);
-            }else{
+            } else {
                 useLocalOrAdmin.select(0);
-                if (treeComposite.getViewer().getTree() != null && treeComposite.getViewer().getTree().getTopItem() != null) {
+                if (treeComposite.getViewer().getTree() != null
+                        && treeComposite.getViewer().getTree().getTopItem() != null) {
                     treeComposite.getViewer().getTree().setSelection(treeComposite.getViewer().getTree().getTopItem());
                 }
                 treeComposite.setEnabled(false);
 
-                //treeComposite.getViewer().getTree().getVerticalBar().setEnabled(true);
+                // treeComposite.getViewer().getTree().getVerticalBar().setEnabled(true);
             }
-        }else{
-            if (allowOverride){
+        } else {
+            if (allowOverride) {
                 useLocalOrAdmin.select(0);
-            }else{
+            } else {
                 useLocalOrAdmin.select(1);
             }
         }
@@ -124,13 +133,11 @@ public class FeatureMenuPreferences extends GeneralTermPreferencePage{
 
     }
 
-
-
     @Override
-    public boolean performOk(){
-        if (isApply()){
+    public boolean performOk() {
+        if (isApply()) {
             boolean result = super.performOk();
-            if (result){
+            if (result) {
                 TermEditorInput.getPreferredTaxonFeatureTree(true);
             }
         }
@@ -147,15 +154,14 @@ public class FeatureMenuPreferences extends GeneralTermPreferencePage{
         Set<CdmClass> availableFor = new HashSet<>();
         availableFor.add(CdmClass.TAXON);
         vocs = CdmStore.getService(IVocabularyService.class).findFeatureVocabularyDtoByTermTypes(availableFor);
+        
 
         setVocabularies(vocs);
-//       super.initialiseVocabularies();
-
+        // super.initialiseVocabularies();
 
-
-//       List<TermVocabularyDto> vocs = new ArrayList<>();
-//       vocs.add(CdmStore.getService(IVocabularyService.class).findVocabularyDtoByVocabularyUuid(VocabularyEnum.NameFeature.getUuid()));
-//       this.getVocabularies().removeAll(vocs);
+        // List<TermVocabularyDto> vocs = new ArrayList<>();
+        // vocs.add(CdmStore.getService(IVocabularyService.class).findVocabularyDtoByVocabularyUuid(VocabularyEnum.NameFeature.getUuid()));
+        // this.getVocabularies().removeAll(vocs);
 
     }
 
@@ -165,23 +171,28 @@ public class FeatureMenuPreferences extends GeneralTermPreferencePage{
         ITermService termService = CdmStore.getService(ITermService.class);
         List<UUID> uuidList = new ArrayList();
         for (String s : listValue) {
-            if (!StringUtils.isBlank(s)){
+            if (!StringUtils.isBlank(s)) {
                 UUID uuid = UUID.fromString(s);
                 uuidList.add(uuid);
             }
         }
-        if (!uuidList.isEmpty()){
+        if (!uuidList.isEmpty()) {
             termlist = termService.findFeatureByUUIDsAsDto(uuidList);
         }
 
-        if (listValue == null || listValue.isEmpty() ){
+        if (listValue == null || listValue.isEmpty(){
             termlist = termService.findFeatureByTitleAsDto("");
+            Collection<TermDto> tempTermlist = new ArrayList<>();
+            for (TermDto dto: termlist) {
+                if (((FeatureDto)dto).isAvailableForTaxon()) {
+                    tempTermlist.add(dto);
+                }
+            }
+            termlist = tempTermlist;
 
         }
 
         return new ArrayList(termlist);
     }
 
-
-
 }
index 86a7977a4c1e7b4d9f63e2b01e0ac5f578ac0d0d..ece368ba252855daf4dee65187e2fab13a7a9da7 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.preference.menu;
 
 import org.eclipse.swt.events.SelectionAdapter;
@@ -25,11 +24,8 @@ import eu.etaxonomy.taxeditor.preference.GeneralTermPreferencePage;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
- * <p>LanguageMenuPreferences class.</p>
- *
  * @author p.ciardelli
  * @created 24.08.2009
- * @version 1.0
  */
 public class LanguageMenuPreferences extends GeneralTermPreferencePage {
 
@@ -39,18 +35,14 @@ public class LanguageMenuPreferences extends GeneralTermPreferencePage {
     protected CdmPreference multiLangugeActivatedPref =null;
     private boolean overrideActivated;
 
-    Combo multiLanguageEditing;
+    private Combo multiLanguageEditing;
 
-    Button allowOverrideOrderButton;
+    private Button allowOverrideOrderButton;
 
-       /**
-        * <p>Constructor for LanguageMenuPreferences.</p>
-        */
        public LanguageMenuPreferences() {
            super();
         setPredicate(PreferencePredicate.AvailableLanguages);
         type = TermType.Language;
-
        }
 
        @Override
@@ -176,6 +168,7 @@ public class LanguageMenuPreferences extends GeneralTermPreferencePage {
         PreferencesUtil.setBooleanValue(
                 PreferencesUtil.prefOverrideKey(PreferencePredicate.MultiLanguageTextEditing.getKey()),
                 overrideActivated);
+
         return super.performOk();
     }
 }
old mode 100755 (executable)
new mode 100644 (file)
index 3bc5624..d41c49e
@@ -9,10 +9,16 @@
 package eu.etaxonomy.taxeditor.preference.menu;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.UUID;
 
+import javax.inject.Inject;
+
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.e4.core.services.events.IEventBroker;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CLabel;
 import org.eclipse.swt.layout.GridData;
@@ -21,10 +27,12 @@ import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
+import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.model.common.CdmClass;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter;
 import eu.etaxonomy.taxeditor.editor.definedterm.FeatureDtoContentProvider;
@@ -42,11 +50,19 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  *
  */
 public class NameFeatureMenuPreference extends GeneralTermPreferencePage {
-    /** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.preferences.feat"{trunked}</code> */
+    /**
+     * Constant
+     * <code>PLUGIN_ID="eu.etaxonomy.taxeditor.preferences.feat"{trunked}</code>
+     */
     public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.nameFeature"; //$NON-NLS-1$
 
+    @Inject
+    private IEventBroker eventBroker;
+
     /**
-     * <p>Constructor for NameFeatureMenuPreference.</p>
+     * <p>
+     * Constructor for NameFeatureMenuPreference.
+     * </p>
      */
     public NameFeatureMenuPreference() {
         super();
@@ -58,7 +74,7 @@ public class NameFeatureMenuPreference extends GeneralTermPreferencePage {
     protected Control createContents(Composite parent) {
         Composite container = new Composite(parent, SWT.NULL);
         getPreferenceValues();
-        if (isLocalPref() && !allowOverride){
+        if (isLocalPref() && !allowOverride) {
             final CLabel description = new CLabel(parent, SWT.NULL);
             description.setText(Messages.NameDetailsViewConfiguration_description_not_available);
             this.setDefaultButtonActivated(false);
@@ -70,36 +86,37 @@ public class NameFeatureMenuPreference extends GeneralTermPreferencePage {
         container.setLayout(gridLayout);
         parent.setLayout(new GridLayout());
         useLocalOrAdmin = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
-        if (!isAdminPreference){
+        if (!isAdminPreference) {
             useLocalOrAdmin.add(LocalOrDefaultEnum.Default.getLabel(), 0);
             useLocalOrAdmin.add(LocalOrDefaultEnum.Local.getLabel(), 1);
 
-        }else{
+        } else {
             useLocalOrAdmin.add(LocalOrDefaultEnum.AllowOverride.getLabel(), 0);
             useLocalOrAdmin.add(LocalOrDefaultEnum.Database.getLabel(), 1);
         }
 
-
-        treeComposite = new CheckBoxTreeComposite(container, new FeatureDtoContentProvider(false, true, false), new TermDtoLabelProvider(), SWT.SCROLL_PAGE);
+        treeComposite = new CheckBoxTreeComposite(container, new FeatureDtoContentProvider(false, true, false),
+                new TermDtoLabelProvider(), SWT.SCROLL_PAGE);
         treeComposite.getViewer().setComparator(new DefinedTermSorter());
         rememberCheckedValues(getCheckedValuesFromPreferences());
 
-        if (isLocalPref()){
-            if (isOverride){
+        if (isLocalPref()) {
+            if (isOverride) {
                 useLocalOrAdmin.select(1);
-            }else{
+            } else {
                 useLocalOrAdmin.select(0);
-                if (treeComposite.getViewer().getTree() != null && treeComposite.getViewer().getTree().getTopItem() != null) {
+                if (treeComposite.getViewer().getTree() != null
+                        && treeComposite.getViewer().getTree().getTopItem() != null) {
                     treeComposite.getViewer().getTree().setSelection(treeComposite.getViewer().getTree().getTopItem());
                 }
                 treeComposite.setEnabled(false);
 
-                //treeComposite.getViewer().getTree().getVerticalBar().setEnabled(true);
+                // treeComposite.getViewer().getTree().getVerticalBar().setEnabled(true);
             }
-        }else{
-            if (allowOverride){
+        } else {
+            if (allowOverride) {
                 useLocalOrAdmin.select(0);
-            }else{
+            } else {
                 useLocalOrAdmin.select(1);
             }
         }
@@ -114,13 +131,12 @@ public class NameFeatureMenuPreference extends GeneralTermPreferencePage {
 
     }
 
-
     @Override
-    public boolean performOk(){
-        if (isApply()){
+    public boolean performOk() {
+        if (isApply()) {
             boolean result = super.performOk();
-            if (result){
-                PreferencesUtil.createPreferredFeatureTreeForNameDescription();
+            if (result) {
+                PreferencesUtil.getPreferredFeatureTreeForNameDescription(true);
             }
         }
         return true;
@@ -141,6 +157,27 @@ public class NameFeatureMenuPreference extends GeneralTermPreferencePage {
         setVocabularies(vocs);
     }
 
+    @Override
+    protected List<TermDto> getTermsFromStringValues(List<String> listValue) {
+        Collection<TermDto> termlist = new ArrayList<>();
+        ITermService termService = CdmStore.getService(ITermService.class);
+        List<UUID> uuidList = new ArrayList();
+        for (String s : listValue) {
+            if (!StringUtils.isBlank(s)) {
+                UUID uuid = UUID.fromString(s);
+                uuidList.add(uuid);
+            }
+        }
+        if (!uuidList.isEmpty()) {
+            termlist = termService.findFeatureByUUIDsAsDto(uuidList);
+        }
+
+        if (listValue == null || listValue.isEmpty()) {
+            termlist = termService.findFeatureByTitleAsDto("");
 
+        }
+
+        return new ArrayList(termlist);
+    }
 
 }
index ccdde23b65ad8f71ec4382379a73b4f7ab33b14d..e4ee5ab7ee347bba7825d261454a909a98ab9daf 100644 (file)
@@ -29,7 +29,7 @@ public class NameRelationshipTypeMenuPreferences extends
         */
        public NameRelationshipTypeMenuPreferences() {
            super();
-        setPredicate(PreferencePredicate.NameRelationshipType);
+        setPredicate(PreferencePredicate.AvailableNameRelationshipType);
         type = TermType.NameRelationshipType;
        }
 
index a9ed41941263533cea89743ae8b65c2c272a6c78..756d1f3db8b9b520c206b126700376e9d50e60c7 100644 (file)
@@ -13,7 +13,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
index 57c1bb03a0dc1fb19c947ec15f28990e902dd3ea..35f673644511d775cf41f6ae6431d19765a700ea 100644 (file)
@@ -13,7 +13,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
old mode 100755 (executable)
new mode 100644 (file)
index 370189e..f894b1d
@@ -8,7 +8,6 @@
 */
 package eu.etaxonomy.taxeditor.preference.wizard;
 
-
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -23,11 +22,11 @@ import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 
-import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.api.service.ITermCollectionService;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
-import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
 import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter;
 import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoContentProvider;
 import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoLabelProvider;
@@ -41,7 +40,8 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public abstract class AbstractTermSelectionWizardPage<T extends AbstractTermDto> extends WizardPage {
 
     protected CheckBoxTreeComposite treeComposite;
-    private List<TermVocabularyDto> vocabularies = new ArrayList<>();
+    private List<TermCollectionDto> vocabularies = new ArrayList<>();
+
     boolean localPref;
     protected CdmPreference pref;
     protected boolean override;
@@ -55,9 +55,10 @@ public abstract class AbstractTermSelectionWizardPage<T extends AbstractTermDto>
     }
 
     @Override
-    public void createControl(Composite parent){
+    public void createControl(Composite parent) {
         parent.setLayout(new GridLayout());
-        treeComposite = new CheckBoxTreeComposite(parent, new TermDtoContentProvider(), new TermDtoLabelProvider(), SWT.NONE);
+        treeComposite = new CheckBoxTreeComposite(parent, new TermDtoContentProvider(), new TermDtoLabelProvider(),
+                SWT.NONE);
         treeComposite.getViewer().setComparator(new DefinedTermSorter());
         rememberCheckedValues(getCheckedValuesFromPreferences());
         treeComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
@@ -66,19 +67,19 @@ public abstract class AbstractTermSelectionWizardPage<T extends AbstractTermDto>
 
     protected abstract String getCheckedValuesFromPreferences();
 
-    public CheckboxTreeViewer getViewer(){
+    public CheckboxTreeViewer getViewer() {
         return treeComposite.getViewer();
     }
 
-    public List<TermVocabularyDto> getVocabularies() {
+    public List<TermCollectionDto> getVocabularies() {
         return vocabularies;
     }
 
-    public void addVocabularies(TermVocabularyDto vocabulary) {
+    public void addVocabularies(TermCollectionDto vocabulary) {
         this.vocabularies.add(vocabulary);
     }
 
-    protected void setVocabularies(List<TermVocabularyDto> vocs) {
+    protected void setVocabularies(List<TermCollectionDto> vocs) {
 
         vocabularies = vocs;
     }
@@ -91,44 +92,45 @@ public abstract class AbstractTermSelectionWizardPage<T extends AbstractTermDto>
         initialiseVocabularies();
 
         treeComposite.getViewer().setInput(getVocabularies());
+
         List<T> termsFromStringValues = null;
         if (checkedValues != null && checkedValues != "") { //$NON-NLS-1$
             String[] listChecked = checkedValues.split(";"); //$NON-NLS-1$
             String[] listCheckedComma = checkedValues.split(","); //$NON-NLS-1$
             List<String> checked = new ArrayList<>();
-            if (listChecked != null ){
+            if (listChecked != null{
                 checked = Arrays.asList(listChecked);
             }
-            if (listCheckedComma != null && checkedValues.contains(",")){ //$NON-NLS-1$
+            if (listCheckedComma != null && checkedValues.contains(",")) { //$NON-NLS-1$
                 checked = Arrays.asList(listCheckedComma);
             }
             termsFromStringValues = getTermsFromStringValues(checked);
-            if (termsFromStringValues != null){
+            if (termsFromStringValues != null) {
                 treeComposite.setCheckedElements(termsFromStringValues.toArray());
             }
 
         }
-        if (termsFromStringValues == null){
+        if (termsFromStringValues == null) {
             termsFromStringValues = getTermsFromStringValues(new ArrayList<String>());
-            if (termsFromStringValues != null){
+            if (termsFromStringValues != null) {
                 treeComposite.setCheckedElements(termsFromStringValues.toArray());
             }
         }
     }
 
-
-
     protected void initialiseVocabularies() {
         if (getVocabularies() != null) {
             getVocabularies().clear();
         }
-        List<TermVocabularyDto> vocs = new ArrayList<>();
-        vocs = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(type);
+
+        List<TermCollectionDto> vocs = new ArrayList<>();
+        vocs = CdmStore.getService(ITermCollectionService.class).findCollectionDtoByTermType(type);
 
         setVocabularies(vocs);
+
     }
 
-    protected abstract List<TermVocabularyDto> getVocabulariesFromPreference();
+    protected abstract List<TermCollectionDto> getVocabulariesFromPreference();
 
     /**
      * @param listValue
@@ -137,25 +139,23 @@ public abstract class AbstractTermSelectionWizardPage<T extends AbstractTermDto>
     protected abstract List<T> getTermsFromStringValues(List<String> listValue);
 
     protected Button createAllowOverrideButton(Composite parent) {
-       Button activateCheckButton = new Button(parent, SWT.CHECK);
-       if (localPref){
-           activateCheckButton.setText("Override");
-           activateCheckButton.setSelection(override);
-       }else{
-           activateCheckButton.setText("Allow Override");
-           activateCheckButton.setSelection(override);
-       }
-
-
+        Button activateCheckButton = new Button(parent, SWT.CHECK);
+        if (localPref) {
+            activateCheckButton.setText("Override");
+            activateCheckButton.setSelection(override);
+        } else {
+            activateCheckButton.setText("Allow Override");
+            activateCheckButton.setSelection(override);
+        }
 
-        activateCheckButton.addSelectionListener(new SelectionAdapter(){
-                @Override
-                public void widgetSelected(SelectionEvent e) {
-                    pref.setAllowOverride(activateCheckButton.getSelection());
-                    override = activateCheckButton.getSelection();
+        activateCheckButton.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                pref.setAllowOverride(activateCheckButton.getSelection());
+                override = activateCheckButton.getSelection();
 
-                }
-            });
+            }
+        });
         return activateCheckButton;
     }
 
old mode 100755 (executable)
new mode 100644 (file)
index c53db7e..e3cccd2
@@ -13,25 +13,24 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.swt.widgets.Composite;
 
-import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.api.service.ITermCollectionService;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
 import eu.etaxonomy.taxeditor.editor.definedterm.RootElementsOnlyTreeContentProvider;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
-
 /**
  * @author k.luther
  * @since 04.06.2018
  *
  */
-public class AvailableAreaVocabulariesPage extends AbstractTermSelectionWizardPage<TermVocabularyDto>{
+public class AvailableAreaVocabulariesPage extends AbstractTermSelectionWizardPage<TermCollectionDto> {
 
     String featureTitle;
 
@@ -41,20 +40,20 @@ public class AvailableAreaVocabulariesPage extends AbstractTermSelectionWizardPa
         this.featureTitle = featureTitle;
         this.pref = pref;
 
-
     }
 
-//    public AvailableAreaVocabulariesPage(String pageName, boolean localPref, CdmPreference pref, String featureTitle) {
-//        this(pageName, localPref, pref, featureTitle);
-//
-//    }
+    // public AvailableAreaVocabulariesPage(String pageName, boolean localPref,
+    // CdmPreference pref, String featureTitle) {
+    // this(pageName, localPref, pref, featureTitle);
+    //
+    // }
 
     @Override
     public void createControl(Composite parent) {
 
         setTitle(String.format(Messages.AvailableAreaVocabulariesPage_PAGE_TITLE, featureTitle));
         setDescription(String.format(Messages.AvailableAreaVocabulariesPage_PAGE_DESCRIPTION, featureTitle));
-        if (!localPref){
+        if (!localPref) {
             createAllowOverrideButton(parent);
         }
 
@@ -64,35 +63,30 @@ public class AvailableAreaVocabulariesPage extends AbstractTermSelectionWizardPa
         treeComposite.setAllowTopLevelSelection(true);
     }
 
-
-
     @Override
     protected String getCheckedValuesFromPreferences() {
         String vocString = null;
-        if (localPref){
+        if (localPref) {
             vocString = PreferencesUtil.getPreferredVocabulariesForDistributionEditor(localPref);
-            if (StringUtils.isBlank(vocString) && pref != null){
+            if (StringUtils.isBlank(vocString) && pref != null) {
                 vocString = pref.getValue();
             }
             this.override = PreferencesUtil.getOverrideForPreference(pref.getPredicate());
-        }else if (pref != null){
+        } else if (pref != null) {
             vocString = pref.getValue();
         }
         return vocString;
     }
 
-
-
-
-
     /**
      * {@inheritDoc}
      */
     @Override
-    protected List<TermVocabularyDto> getVocabulariesFromPreference() {
+    protected List<TermCollectionDto> getVocabulariesFromPreference() {
         // TODO Auto-generated method stub
         return null;
     }
+
     @Override
     protected void rememberCheckedValues(String checkedValues) {
         initialiseVocabularies();
@@ -103,42 +97,38 @@ public class AvailableAreaVocabulariesPage extends AbstractTermSelectionWizardPa
             String[] listChecked = checkedValues.split(";"); //$NON-NLS-1$
             String[] listCheckedComma = checkedValues.split(","); //$NON-NLS-1$
             List<String> checked = new ArrayList<>();
-            if (listChecked != null ){
+            if (listChecked != null{
                 checked = Arrays.asList(listChecked);
             }
-            if (listCheckedComma != null && checkedValues.contains(",")){ //$NON-NLS-1$
+            if (listCheckedComma != null && checkedValues.contains(",")) { //$NON-NLS-1$
                 checked = Arrays.asList(listCheckedComma);
             }
-            List<TermVocabularyDto> termsFromStringValues = getTermsFromStringValues(checked);
+            List<TermCollectionDto> termsFromStringValues = getTermsFromStringValues(checked);
             treeComposite.setCheckedElements(termsFromStringValues.toArray());
 
-        }else{
+        } else {
 
             treeComposite.getViewer().setAllChecked(true);
         }
     }
 
     @Override
-    protected List<TermVocabularyDto> getTermsFromStringValues(List<String> listValue) {
-        List<TermVocabularyDto> termlist = new ArrayList<>();
+    protected List<TermCollectionDto> getTermsFromStringValues(List<String> listValue) {
+        List<TermCollectionDto> termlist = new ArrayList<>();
         List<UUID> uuidList = new ArrayList<>();
         for (String s : listValue) {
-            if (!StringUtils.isBlank(s)){
+            if (!StringUtils.isBlank(s)) {
                 UUID uuid = UUID.fromString(s);
                 uuidList.add(uuid);
             }
         }
-        IVocabularyService vocabularyService = CdmStore.getService(IVocabularyService.class);
-
-        termlist = vocabularyService.findVocabularyDtoByVocabularyUuids(uuidList);
-
-
+        ITermCollectionService vocabularyService = CdmStore.getService(ITermCollectionService.class);
+        // ITermTreeService treeService =
+        // CdmStore.getService(ITermTreeService.class);
+        termlist = vocabularyService.findTermCollectionDtoByUuids(uuidList);
 
         return termlist;
 
     }
 
-
-
-
 }
old mode 100755 (executable)
new mode 100644 (file)
index 94a0566..edd0a64
@@ -17,18 +17,26 @@ import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 
+import eu.etaxonomy.cdm.api.service.ITermCollectionService;
 import eu.etaxonomy.cdm.api.service.ITermService;
-import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
-import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoContentProvider;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoLabelProvider;
 import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.AreaCheckBoxTreeComposite;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -38,28 +46,37 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  *
  */
 public class AvailableDistributionPage extends AbstractTermSelectionWizardPage<TermDto> {
-
-
+    
+    
 
     public AvailableDistributionPage(String pageName) {
         super(pageName, TermType.NamedArea);
         this.localPref = true;
 
-
     }
 
-
     @Override
     public void createControl(Composite parent) {
         setTitle(Messages.AvailableDistributionPage_PAGE_TITLE);
         setDescription(Messages.AvailableDistributionPage_PAGE_DESCRIPTION);
+        parent.setLayout(new GridLayout());
+        treeComposite = new AreaCheckBoxTreeComposite(parent, new TermDtoContentProvider(), new TermDtoLabelProvider(),
+                    SWT.NONE);
+        treeComposite.getViewer().setComparator(new DefinedTermSorter());
+        rememberCheckedValues(getCheckedValuesFromPreferences());
+        treeComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+        setControl(treeComposite);
+        parent.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+        ((GridData)parent.getLayoutData()).minimumHeight= 400;
+        
 
-        super.createControl(parent);
     }
+    
 
     @Override
     protected String getCheckedValuesFromPreferences() {
-        String checkedValues = PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionAreaTerms.getKey(), true);
+        String checkedValues = PreferencesUtil
+                .getStringValue(PreferencePredicate.AvailableDistributionAreaTerms.getKey(), true);
 
         return checkedValues;
     }
@@ -67,46 +84,81 @@ public class AvailableDistributionPage extends AbstractTermSelectionWizardPage<T
     @Override
     protected void rememberCheckedValues(String checkedValues) {
         initialiseVocabularies();
+        List<TermCollectionDto> collections = new ArrayList<>();
+        collections.addAll(getVocabularies());
 
-        treeComposite.getViewer().setInput(getVocabularies());
+        treeComposite.getViewer().setInput(collections);
 
         if (checkedValues != null && checkedValues != "") { //$NON-NLS-1$
             String[] listChecked = checkedValues.split(";"); //$NON-NLS-1$
             String[] listCheckedComma = checkedValues.split(","); //$NON-NLS-1$
             List<String> checked = new ArrayList<>();
-            if (listChecked != null ){
+            if (listChecked != null{
                 checked = Arrays.asList(listChecked);
             }
-            if (listCheckedComma != null && checkedValues.contains(",")){ //$NON-NLS-1$
+            if (listCheckedComma != null && checkedValues.contains(",")) { //$NON-NLS-1$
                 checked = Arrays.asList(listCheckedComma);
             }
             List<TermDto> termsFromStringValues = getTermsFromStringValues(checked);
-            treeComposite.setCheckedElements(termsFromStringValues.toArray());
+            List<TermNodeDto> nodes = new ArrayList<>();
+            //check whether the term is contained in tree(s)
+            Map<TermDto, Set<TermNodeDto>> mapTermsToNodes = new HashMap<>();
+            for (TermCollectionDto coll: collections) {
+                if (coll instanceof TermTreeDto) {                    
+                    for (TermDto term:coll.getTerms()) {
+                        TermNodeDto node = ((TermTreeDto)coll).getNodeWithTerm(term, ((TermTreeDto)coll).getRoot());
+                        if (node != null) {
+                            if (mapTermsToNodes.get(term) == null) {
+                                mapTermsToNodes.put(term, new HashSet<>());
+                            }
+                            mapTermsToNodes.get(term).add(node);
+                        }
+                    }                   
+                }                
+            }
+            
+            for (TermDto term: termsFromStringValues) {                
+                for (TermCollectionDto coll: collections) {                    
+                    if(coll.getTerms().contains(term) && coll instanceof TermTreeDto) {
+                        TermNodeDto node = ((TermTreeDto)coll).getNodeWithTerm(term, ((TermTreeDto)coll).getRoot());
+                        if(node!= null) {
+                            nodes.add(node);
+                        }
+                    }
+                }
+            }
+            List<Object> termsAndNodesList = new ArrayList<>();
+            termsAndNodesList.addAll(termsFromStringValues);
+            termsAndNodesList.addAll(nodes);
+            
+            Object[] termsAndNodes = termsAndNodesList.toArray();
+            treeComposite.setCheckedElements(termsAndNodes);
+            ((AreaCheckBoxTreeComposite)treeComposite).setMapTermsToNodes(mapTermsToNodes);
+            
         }
 
     }
 
     @Override
     public void dispose() {
-       // CdmStore.getCurrentSessionManager().dispose(this);
+        // CdmStore.getCurrentSessionManager().dispose(this);
         super.dispose();
     }
 
-//    @Override
-//    public ICdmEntitySession getCdmEntitySession() {
-//        return CdmStore.getCurrentSessionManager().getNullSession();
-//    }
-//
-//    @Override
-//    public <T extends CdmBase> Collection<T> getRootEntities() {
-//        return null;
-//    }
-//
-//    @Override
+    // @Override
+    // public ICdmEntitySession getCdmEntitySession() {
+    // return CdmStore.getCurrentSessionManager().getNullSession();
+    // }
+    //
+    // @Override
+    // public <T extends CdmBase> Collection<T> getRootEntities() {
+    // return null;
+    // }
+    //
+    // @Override
     public Map<Object, List<String>> getPropertyPathsMap() {
         Map<Object, List<String>> propertyPathsMap = new HashMap<Object, List<String>>();
-        List<String> termsPropertyPaths = Arrays.asList(new String[] {
-                "includes" //$NON-NLS-1$
+        List<String> termsPropertyPaths = Arrays.asList(new String[] { "includes" //$NON-NLS-1$
         });
         propertyPathsMap.put("includes", termsPropertyPaths); //$NON-NLS-1$
         propertyPathsMap.put("terms", termsPropertyPaths); //$NON-NLS-1$
@@ -114,67 +166,82 @@ public class AvailableDistributionPage extends AbstractTermSelectionWizardPage<T
     }
 
     @Override
-    protected  List<TermVocabularyDto> getVocabulariesFromPreference(){
-        List<TermVocabularyDto> vocs = new ArrayList<>();
-
-        if (PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies) == null && PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey()) == null){
-            vocs = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(type);
-        }else{
-            String vocString = PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey());
-            if (vocString == null || vocString.equals("")){
-                vocs = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(type);
+    protected List<TermCollectionDto> getVocabulariesFromPreference() {
+        List<TermCollectionDto> vocs = new ArrayList<>();
+
+        if (PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies) == null
+                && PreferencesUtil
+                        .getStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey()) == null) {
+            vocs = CdmStore.getService(ITermCollectionService.class).findCollectionDtoByTermType(type);
+        } else {
+            String vocString = PreferencesUtil
+                    .getStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey());
+            if (vocString == null || vocString.equals("")) {
+                vocs = CdmStore.getService(ITermCollectionService.class).findCollectionDtoByTermType(type, true);
                 return vocs;
             }
             String[] arrayVocs = vocString.split(";"); //$NON-NLS-1$
 
-            Set<UUID> uuidVocs = new HashSet<>();
-            for (String voc: arrayVocs){
-                if (!StringUtils.isBlank(voc)){
+            List<UUID> uuidVocs = new ArrayList<>();
+            for (String voc : arrayVocs) {
+                if (!StringUtils.isBlank(voc)) {
                     uuidVocs.add(UUID.fromString(voc));
                 }
             }
-            List<TermVocabulary> tempVocs = CdmStore.getService(IVocabularyService.class).find(uuidVocs);
-            for (TermVocabulary<?> voc: tempVocs){
-                vocs.add(new TermVocabularyDto(voc.getUuid(), voc.getRepresentations(), voc.getTermType()));
-            }
+            List<TermCollectionDto> tempVocs = CdmStore.getService(ITermCollectionService.class)
+                    .findTermCollectionDtoByUuids(uuidVocs);
+            vocs.addAll(tempVocs);
+            // tempVocs =
+            // CdmStore.getService(ITermTreeService.class).getTermTreeDtosByUuids(uuidVocs);
+            // for (TermVocabulary<?> voc : tempVocs) {
+            // vocs.add(new TermVocabularyDto(voc.getUuid(),
+            // voc.getRepresentations(), voc.getTermType(),
+            // voc.getTitleCache(), voc.isAllowDuplicates(),
+            // voc.isOrderRelevant(), voc.isFlat()));
+            // }
         }
         return vocs;
     }
+
     @Override
     protected void initialiseVocabularies() {
         if (getVocabularies() != null) {
             getVocabularies().clear();
         }
-        List<TermVocabularyDto> vocs = new ArrayList<>();
+
+        List<TermCollectionDto> vocs = new ArrayList<>();
         vocs = getVocabulariesFromPreference();
 
+        List<TermCollectionDto> trees = new ArrayList<>();
+        // trees =
+        // CdmStore.getService(ITermTreeService.class).listTermTreeDtosByTermType(type);
+        // vocs
         setVocabularies(vocs);
+
     }
 
     @Override
     protected List<TermDto> getTermsFromStringValues(List<String> listValue) {
 
-            List<TermDto> termlist = new ArrayList<>();
-            ITermService termService = CdmStore.getService(ITermService.class);
-            List<UUID> uuidList = new ArrayList<>();
-            for (String s : listValue) {
-                if (!StringUtils.isBlank(s)){
-                    UUID uuid = UUID.fromString(s);
-                    uuidList.add(uuid);
-                }
+        List<TermDto> termlist = new ArrayList<>();
+        ITermService termService = CdmStore.getService(ITermService.class);
+        List<UUID> uuidList = new ArrayList<>();
+        for (String s : listValue) {
+            if (!StringUtils.isBlank(s)) {
+                UUID uuid = UUID.fromString(s);
+                uuidList.add(uuid);
             }
-            termlist = new ArrayList<>(termService.findByUUIDsAsDto(uuidList));
-
+        }
+        termlist = new ArrayList<>(termService.findByUUIDsAsDto(uuidList));
 
-            if (listValue.isEmpty()){
-                List<DefinedTermBase> terms = CdmStore.getTermManager().getAllTerms(type, null);
-                for (DefinedTermBase<?> term: terms){
-                    termlist.add(TermDto.fromTerm(term, true));
-                }
+        if (listValue.isEmpty()) {
+            List<DefinedTermBase> terms = CdmStore.getTermManager().getAllTerms(type, null);
+            for (DefinedTermBase<?> term : terms) {
+                termlist.add(TermDto.fromTerm(term, true));
             }
+        }
 
-            return termlist;
-
+        return termlist;
 
     }
 
old mode 100755 (executable)
new mode 100644 (file)
index 24991ae..948f12f
@@ -12,7 +12,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.util.IPropertyChangeListener;
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.SWT;
@@ -26,8 +26,8 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
+import eu.etaxonomy.cdm.api.service.ITermCollectionService;
 import eu.etaxonomy.cdm.api.service.ITermService;
-import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
@@ -35,8 +35,8 @@ import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferenceResolver;
 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
-import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -50,42 +50,40 @@ import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
  * @since 05.10.2018
  *
  */
-public class AvailableDistributionPerAreaStatusPage extends AvailableDistributionStatusPage implements IPropertyChangeListener{
+public class AvailableDistributionPerAreaStatusPage extends AvailableDistributionStatusPage
+        implements IPropertyChangeListener {
 
     List<CdmPreference> perAreaPreferences = new ArrayList();
     List<CdmPreference> perAreaPreferencesDeleteList = new ArrayList();
-    List<TermVocabularyDto> vocs;
+    List<TermCollectionDto> vocs;
     NamedArea actualArea;
     CdmPreference actualPref;
     Text areaText;
     String namedAreaString;
 
-
-
     Button btnSelectArea;
     Button btnRemove;
     Label status;
     int countTerms;
 
-
     public AvailableDistributionPerAreaStatusPage(String pageName, List<CdmPreference> prefs, boolean localPref) {
         super(pageName, null, localPref);
 
         perAreaPreferences = prefs;
-        if(PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies) == null && PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey()) == null){
-            vocs = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(type);
+        if (PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies) == null
+                && PreferencesUtil
+                        .getStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey()) == null) {
+            vocs = CdmStore.getService(ITermCollectionService.class).findCollectionDtoByTermType(type);
 
         }
         pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionStatus);
-        if (pref == null){
+        if (pref == null) {
             pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, null);
         }
         initialiseVocabularies();
         countTerms = CdmStore.getTermManager().getPreferredTerms(type).size();
     }
 
-
-
     @Override
     public void createControl(Composite parent) {
         setTitle(Messages.AvailableDistributionStatusPage_PAGE_TITLE);
@@ -94,33 +92,32 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
 
         super.createControl(parent);
 
-
-
     }
+
     @Override
     protected Button createAllowOverrideButton(Composite parent) {
         Button activateCheckButton = new Button(parent, SWT.CHECK);
-        if (localPref){
+        if (localPref) {
             activateCheckButton.setText("Override");
             activateCheckButton.setSelection(override);
-        }else{
+        } else {
             activateCheckButton.setText("Allow Override");
             activateCheckButton.setSelection(override);
         }
 
-        activateCheckButton.addSelectionListener(new SelectionAdapter(){
+        activateCheckButton.addSelectionListener(new SelectionAdapter() {
             @Override
             public void widgetSelected(SelectionEvent e) {
-                if (actualPref != null){
-                   actualPref.setAllowOverride(activateCheckButton.getSelection());
+                if (actualPref != null) {
+                    actualPref.setAllowOverride(activateCheckButton.getSelection());
                 }
                 override = activateCheckButton.getSelection();
 
             }
         });
 
-         return activateCheckButton;
-     }
+        return activateCheckButton;
+    }
 
     protected void createAreaSelectionCombo(Composite parent) {
 
@@ -138,40 +135,38 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
         GridData textData = new GridData();
         textData.minimumWidth = 200;
         textData.widthHint = 200;
-        areaText = new Text(toolbar,  SWT.NONE);
+        areaText = new Text(toolbar, SWT.NONE);
         areaText.setEditable(false);
-        areaText.setBackground(StoreUtil
-                .getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND));
+        areaText.setBackground(StoreUtil.getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND));
         areaText.setLayoutData(textData);
-        if (actualArea != null){
+        if (actualArea != null) {
             areaText.setText(actualArea.getLabel());
             areaText.setEnabled(false);
         }
-        btnSelectArea = new Button(toolbar, SWT.PUSH | SWT.FLAT );
-        btnSelectArea.setImage(ImageResources
-                .getImage(ImageResources.BROWSE_ICON));
+        btnSelectArea = new Button(toolbar, SWT.PUSH | SWT.FLAT);
+        btnSelectArea.setImage(ImageResources.getImage(ImageResources.BROWSE_ICON));
         btnSelectArea.setToolTipText("Browse Area");
 
-        btnSelectArea.addSelectionListener(new SelectionListener(){
+        btnSelectArea.addSelectionListener(new SelectionListener() {
 
             @Override
             public void widgetSelected(SelectionEvent e) {
                 refreshActualPrefernce();
 
-                NamedArea selection = SelectionDialogFactory.getSelectionFromDialog(NamedArea.class, getShell(), //getConversationHolder(),
+                NamedArea selection = SelectionDialogFactory.getSelectionFromDialog(NamedArea.class, getShell(),
                         actualArea, null);
                 actualArea = selection;
                 PrefKey key;
-                if (actualArea != null){
+                if (actualArea != null) {
                     areaText.setText(actualArea.getLabel());
                     key = newAreaSpecificStatusPreference();
                     actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
-                    if (actualPref == null){
+                    if (actualPref == null) {
                         actualPref = CdmPreference.NewInstance(key, null);
                         perAreaPreferences.add(actualPref);
                     }
                     override = actualPref.isAllowOverride();
-                }else{
+                } else {
                     actualPref = null;
                 }
 
@@ -187,61 +182,62 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
             }
 
         });
-//        btnRemove = new Button(toolbar, SWT.NONE);
-//        btnRemove.addSelectionListener(new SelectionListener(){
-//
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//
-//                PrefKey key = newAreaSpecificStatusPreference();
-//                actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
-//                actualPref = CdmPreference.NewInstance(key, null);
-//                if (actualPref.getKey().equals(pref.getKey())){
-//                    pref = actualPref;
-//                }
-//
-//                perAreaPreferences.add(actualPref);
-//                if (actualArea != null){
-//                    status.setText("Preference for area " + actualArea.getLabel() + " removed. Now the status defined for all areas are displayed");
-//                }else{
-//                    status.setText("Preference for all areas is removed. Now all status will be displayed");
-//                }
-//                status.setVisible(true);
-//
-//                actualArea = null;
-//
-//                areaText.setText("");
-//                rememberCheckedValues(getCheckedValuesFromPreferences());
-//
-//            }
-//
-//            @Override
-//            public void widgetDefaultSelected(SelectionEvent e) {
-//                // TODO Auto-generated method stub
-//
-//            }
-//
-//        });
-//        btnRemove.setImage(ImageResources.getImage(ImageResources.ACTIVE_DELETE_ICON));
-//        btnRemove.setToolTipText("");
+        // btnRemove = new Button(toolbar, SWT.NONE);
+        // btnRemove.addSelectionListener(new SelectionListener(){
+        //
+        // @Override
+        // public void widgetSelected(SelectionEvent e) {
+        //
+        // PrefKey key = newAreaSpecificStatusPreference();
+        // actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
+        // actualPref = CdmPreference.NewInstance(key, null);
+        // if (actualPref.getKey().equals(pref.getKey())){
+        // pref = actualPref;
+        // }
+        //
+        // perAreaPreferences.add(actualPref);
+        // if (actualArea != null){
+        // status.setText("Preference for area " + actualArea.getLabel() + "
+        // removed. Now the status defined for all areas are displayed");
+        // }else{
+        // status.setText("Preference for all areas is removed. Now all status
+        // will be displayed");
+        // }
+        // status.setVisible(true);
+        //
+        // actualArea = null;
+        //
+        // areaText.setText("");
+        // rememberCheckedValues(getCheckedValuesFromPreferences());
+        //
+        // }
+        //
+        // @Override
+        // public void widgetDefaultSelected(SelectionEvent e) {
+        // // TODO Auto-generated method stub
+        //
+        // }
+        //
+        // });
+        // btnRemove.setImage(ImageResources.getImage(ImageResources.ACTIVE_DELETE_ICON));
+        // btnRemove.setToolTipText("");
         status = new Label(toolbar, SWT.NONE);
         status.setVisible(false);
     }
 
-
     @Override
     public void propertyChange(PropertyChangeEvent event) {
-        if(event == null){
+        if (event == null) {
             return;
         }
         Object eventSource = event.getSource();
-        if(eventSource != this && btnSelectArea.equals(eventSource)){
-            if (actualArea != null){
+        if (eventSource != this && btnSelectArea.equals(eventSource)) {
+            if (actualArea != null) {
                 PrefKey key = newAreaSpecificStatusPreference();
                 actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
                 areaText.setText(actualArea.getLabel());
                 override = actualPref.isAllowOverride();
-            }else{
+            } else {
                 actualPref = null;
             }
 
@@ -250,61 +246,63 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
 
     @Override
     protected String getCheckedValuesFromPreferences() {
-       String checkedValues = null;
-       if (actualArea == null){
-           checkedValues = pref.getValue();
-           override = pref.isAllowOverride();
-       }else{
-           if (actualPref == null){
-               PrefKey key = newAreaSpecificStatusPreference();
-               actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
-
-               if (actualPref == null){
-                   actualPref = CdmPreference.NewInstance(key, null);
-                   checkedValues = PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionStatus.getKey(), true);
-
-               }
-           }
-           checkedValues = actualPref.getValue();
-           override = actualPref.isAllowOverride();
-       }
-
-       return checkedValues;
+        String checkedValues = null;
+        if (actualArea == null) {
+            checkedValues = pref.getValue();
+            override = pref.isAllowOverride();
+        } else {
+            if (actualPref == null) {
+                PrefKey key = newAreaSpecificStatusPreference();
+                actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
+
+                if (actualPref == null) {
+                    actualPref = CdmPreference.NewInstance(key, null);
+                    checkedValues = PreferencesUtil
+                            .getStringValue(PreferencePredicate.AvailableDistributionStatus.getKey(), true);
+
+                }
+            }
+            checkedValues = actualPref.getValue();
+            override = actualPref.isAllowOverride();
+        }
+
+        return checkedValues;
     }
 
-    protected void refreshActualPrefernce(){
+    protected void refreshActualPrefernce() {
         String saveCheckedElements;
         getViewer().expandAll();
 
-
-        if (countTerms == getViewer().getCheckedElements().length){
+        if (countTerms == getViewer().getCheckedElements().length) {
             saveCheckedElements = null;
-        }else{
+        } else {
             Object[] checkedElements = getViewer().getCheckedElements();
             List<UUID> listUIIDChecked = new ArrayList<>();
             List<DefinedTermBase> preferredTerms = new ArrayList<>();
             for (Object o : checkedElements) {
-                 if(o instanceof TermDto){
-                     TermDto termDto = (TermDto) o;
-                     listUIIDChecked.add(termDto.getUuid());
-                     preferredTerms.add(CdmStore.getService(ITermService.class).load(termDto.getUuid()));
-                 }
-             }
-             saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
-             if (StringUtils.isBlank(saveCheckedElements)){
-                 saveCheckedElements = null;
-         }
+                if (o instanceof TermDto) {
+                    TermDto termDto = (TermDto) o;
+                    listUIIDChecked.add(termDto.getUuid());
+                    preferredTerms.add(CdmStore.getService(ITermService.class).load(termDto.getUuid()));
+                }
+            }
+            saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
+            if (StringUtils.isBlank(saveCheckedElements)) {
+                saveCheckedElements = null;
+            }
         }
-        if (actualArea == null){
-            CdmPreference savePref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, saveCheckedElements);
+        if (actualArea == null) {
+            CdmPreference savePref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus,
+                    saveCheckedElements);
             savePref.setAllowOverride(override);
             pref = savePref;
-        }else{
+        } else {
             PrefKey key = newAreaSpecificStatusPreference();
             actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
-            CdmPreference savePref = CdmPreference.NewInstance(PreferenceSubject.fromKey(key), PreferencePredicate.AvailableDistributionStatus, saveCheckedElements);
-            if (actualPref != null){
-               perAreaPreferences.remove(actualPref);
+            CdmPreference savePref = CdmPreference.NewInstance(PreferenceSubject.fromKey(key),
+                    PreferencePredicate.AvailableDistributionStatus, saveCheckedElements);
+            if (actualPref != null) {
+                perAreaPreferences.remove(actualPref);
             }
             perAreaPreferences.add(savePref);
             savePref.setAllowOverride(override);
@@ -314,29 +312,31 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
     }
 
     @Override
-    protected  List<TermVocabularyDto> getVocabulariesFromPreference(){
-     return null;
+    protected List<TermCollectionDto> getVocabulariesFromPreference() {
+        return null;
     }
 
-    private PrefKey newAreaSpecificStatusPreference(){
+    private PrefKey newAreaSpecificStatusPreference() {
         PrefKey prefKey;
-        if (actualArea != null){
-            prefKey  = CdmPreference.NewKey(PreferenceSubject.NewInstance(PreferenceSubject.ROOT+"NamedArea["+actualArea.getUuid().toString()+"]"+PreferenceSubject.SEP), PreferencePredicate.AvailableDistributionStatus);
-        }else{
-            prefKey = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableDistributionStatus);
+        if (actualArea != null) {
+            prefKey = CdmPreference.NewKey(
+                    PreferenceSubject.NewInstance(PreferenceSubject.ROOT + "NamedArea["
+                            + actualArea.getUuid().toString() + "]" + PreferenceSubject.SEP),
+                    PreferencePredicate.AvailableDistributionStatus);
+        } else {
+            prefKey = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(),
+                    PreferencePredicate.AvailableDistributionStatus);
         }
         return prefKey;
     }
 
-
-    public void setActualPreference(CdmPreference pref){
+    public void setActualPreference(CdmPreference pref) {
         this.actualPref = pref;
-        if (actualPref != null){
+        if (actualPref != null) {
             override = actualPref.isAllowOverride();
-        }else{
+        } else {
             override = true;
         }
     }
 
-
 }
old mode 100755 (executable)
new mode 100644 (file)
index e60bdd1..8127542
@@ -13,12 +13,14 @@ import java.util.List;
 
 import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.jface.wizard.Wizard;
+import org.osgi.service.prefs.BackingStoreException;
+import org.osgi.service.prefs.Preferences;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.CdmPreferenceCache;
@@ -30,27 +32,46 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since 05.10.2018
  *
  */
-public class AvailableDistributionPerAreaStatusWizard extends Wizard implements IConversationEnabled{
-    private ConversationHolder conversation;
+public class AvailableDistributionPerAreaStatusWizard extends Wizard {
     private final AvailableDistributionPerAreaStatusPage aPage;
     List<CdmPreference> prefs;
+    private boolean isAdmin;
 
-    public AvailableDistributionPerAreaStatusWizard() {
+
+    public AvailableDistributionPerAreaStatusWizard(boolean isAdmin) {
+        this.isAdmin = isAdmin;
         setWindowTitle(Messages.AvailableDistributionStatusWizard_WIZARD_TITLE);
         // TODO if preferenceStore has elements checked load elements in wizard
-        CdmPreferenceCache cache = CdmPreferenceCache.instance();
-        prefs = new ArrayList<>();
-        cache.getAllTaxEditorDBPreferences();
-        List<CdmPreference> distrPrefs = cache.getAllForPredicate(PreferencePredicate.AvailableDistributionStatus.getKey());
-        if (distrPrefs != null){
-            prefs.addAll(distrPrefs);
-        }
-        if (prefs == null || prefs.isEmpty()) {
-            prefs = new ArrayList();
-            prefs.add(CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, null));
+        if (isAdmin){
+            CdmPreferenceCache cache = CdmPreferenceCache.instance();
+            prefs = new ArrayList<>();
+            cache.getAllTaxEditorDBPreferences();
+            List<CdmPreference> distrPrefs = cache.getAllForPredicate(PreferencePredicate.AvailableDistributionStatus.getKey());
+            if (distrPrefs != null){
+                prefs.addAll(distrPrefs);
+            }
+            if (prefs == null || prefs.isEmpty()) {
+                prefs = new ArrayList();
+                prefs.add(CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, null));
+            }
+        }else{
+            Preferences predicateNode = PreferencesUtil.getEditorPreferences().node(PreferencePredicate.AvailableDistributionStatus.getKey());
+            try {
+                if (prefs == null){
+                    prefs = new ArrayList();
+                }
+                for (String childName: predicateNode.childrenNames()){
+                    PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewInstance(childName), PreferencePredicate.AvailableDistributionStatus);
+                    prefs.add(CdmPreference.NewInstance(key, predicateNode.get(childName, null)));
+                }
+            } catch (BackingStoreException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
         }
         aPage = new AvailableDistributionPerAreaStatusPage(Messages.AvailableDistributionStatusWizard_PAGE_TITLE, prefs, false);
 
+
     }
 
     public void setActualPref(CdmPreference pref){
@@ -100,8 +121,15 @@ public class AvailableDistributionPerAreaStatusWizard extends Wizard implements
     @Override
     public boolean performFinish() {
         aPage.refreshActualPrefernce();
-        PreferencesUtil.setPreferencesToDB(aPage.perAreaPreferences);
-        PreferencesUtil.setPreferenceToDB(aPage.pref);
+        if (isAdmin){
+            PreferencesUtil.setPreferencesToDB(aPage.perAreaPreferences);
+            PreferencesUtil.setPreferenceToDB(aPage.pref);
+        }else{
+
+            //how to create a new preference(s) or save to a list????
+//            PreferencesUtil.getEditorPreferences().put(PreferencesUtil.createSubjectStringForChildNodes("", aPage.pref), aPage.getPreference().getValue());
+        }
+
 
        // PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableDistributionStatus.getKey()), aPage.override);
         PreferencesUtil.firePreferencesChanged(this.getClass());
@@ -109,17 +137,4 @@ public class AvailableDistributionPerAreaStatusWizard extends Wizard implements
         return true;
     }
 
-    @Override
-    public void update(CdmDataChangeMap changeEvents) {
-
-    }
-
-    @Override
-    public ConversationHolder getConversationHolder() {
-        if (conversation == null) {
-            conversation = CdmStore.createConversation();
-        }
-        return conversation;
-    }
-
 }
old mode 100755 (executable)
new mode 100644 (file)
index 6b09598..e8dbfc7
@@ -12,18 +12,15 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.jface.wizard.Wizard;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -33,8 +30,8 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since 19.11.2018
  *
  */
-public class AvailableDistributionStatusAdminWizard extends Wizard implements IConversationEnabled{
-    private ConversationHolder conversation;
+public class AvailableDistributionStatusAdminWizard extends Wizard {
+    
     private final AvailableDistributionStatusPage aPage;
     CdmPreference pref;
 
@@ -110,17 +107,6 @@ public class AvailableDistributionStatusAdminWizard extends Wizard implements IC
         return true;
     }
 
-    @Override
-    public void update(CdmDataChangeMap changeEvents) {
-
-    }
-
-    @Override
-    public ConversationHolder getConversationHolder() {
-        if (conversation == null) {
-            conversation = CdmStore.createConversation();
-        }
-        return conversation;
-    }
+    
 
 }
old mode 100755 (executable)
new mode 100644 (file)
index 45b9abc..2a05b2d
@@ -16,12 +16,10 @@ import org.eclipse.swt.widgets.Composite;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
-
-
 /**
  * @author k.luther
  * @since 05.10.2018
@@ -41,36 +39,32 @@ public class AvailableDistributionStatusPage extends TermSelectionWizardPage {
     public void createControl(Composite parent) {
         setTitle(Messages.AvailableDistributionStatusPage_PAGE_TITLE);
         setDescription(Messages.AvailableDistributionStatusPage_PAGE_DESCRIPTION);
-        if (localPref){
-            override = PreferencesUtil.getOverrideForPreference(PreferencePredicate.AvailableDistributionStatus.getKey());
+        if (localPref) {
+            override = PreferencesUtil
+                    .getOverrideForPreference(PreferencePredicate.AvailableDistributionStatus.getKey());
         }
         overrideButton = createAllowOverrideButton(parent);
 
-
         super.createControl(parent);
         overrideButton.setSelection(override);
     }
 
     @Override
     protected String getCheckedValuesFromPreferences() {
-       String checkedValues = null;
-        if (localPref){
-           checkedValues = PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionStatus.getKey(), true);
-        }else if(pref != null){
+        String checkedValues = null;
+        if (localPref) {
+            checkedValues = PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionStatus.getKey(),
+                    true);
+        } else if (pref != null) {
             checkedValues = pref.getValue();
         }
         return checkedValues;
     }
 
     @Override
-    protected List<TermVocabularyDto> getVocabulariesFromPreference() {
+    protected List<TermCollectionDto> getVocabulariesFromPreference() {
         // TODO Auto-generated method stub
         return null;
     }
 
-
-
-
-
-
 }
old mode 100755 (executable)
new mode 100644 (file)
index e5808ad..2c901a4
@@ -12,12 +12,10 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.jface.wizard.Wizard;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
@@ -32,8 +30,8 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since 05.10.2018
  *
  */
-public class AvailableDistributionStatusWizard extends Wizard implements IConversationEnabled{
-    private ConversationHolder conversation;
+public class AvailableDistributionStatusWizard extends Wizard {
+    
     private final AvailableDistributionStatusPage aPage;
     CdmPreference pref;
 
@@ -117,17 +115,5 @@ public class AvailableDistributionStatusWizard extends Wizard implements IConver
         return true;
     }
 
-    @Override
-    public void update(CdmDataChangeMap changeEvents) {
-
-    }
-
-    @Override
-    public ConversationHolder getConversationHolder() {
-        if (conversation == null) {
-            conversation = CdmStore.createConversation();
-        }
-        return conversation;
-    }
-
+    
 }
index 8e8757cd253739c4c0abc3b2422f8ba3b236fad2..fa36e9e74b8544d2bae84af210d3f8537bb8535f 100644 (file)
@@ -12,12 +12,13 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.UUID;
 
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.wizard.Wizard;
 
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 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.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -25,11 +26,9 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 /**
  * @author alex
  * @date 21.07.2014
- *
  */
 public class AvailableDistributionWizard extends Wizard {
 
-   // private ConversationHolder conversation;
     private final AvailableDistributionPage aPage;
 
     public AvailableDistributionWizard() {
@@ -42,13 +41,14 @@ public class AvailableDistributionWizard extends Wizard {
     public boolean performFinish() {
         // TODO: get Selection and save in EditorPreferences
         if (!checkNoneChecked()) {
-            Object[] checkedElements = aPage.getViewer().getCheckedElements();
+            //Object[] checkedElements = aPage.getViewer().getCheckedElements();
+            Object[] checkedElements = aPage.treeComposite.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());
@@ -56,6 +56,9 @@ public class AvailableDistributionWizard extends Wizard {
                 }else if(o instanceof TermVocabularyDto){
                     TermVocabularyDto termVocDto = (TermVocabularyDto) o;
                     listUIIDGrayed.add(termVocDto.getUuid());
+                }else if(o instanceof TermNodeDto){
+                    TermNodeDto termNodeDto = (TermNodeDto) o;
+                    listUIIDChecked.add(termNodeDto.getTerm().getUuid());
                 }
             }
             for (Object o : grayedList) {
@@ -83,8 +86,7 @@ public class AvailableDistributionWizard extends Wizard {
     }
 
     private boolean checkNoneChecked() {
-
-        if (aPage.getViewer().getCheckedElements().length == 0) {
+        if (aPage.treeComposite.getCheckedElements() == null || aPage.treeComposite.getCheckedElements().length == 0) {
             aPage.setMessage(Messages.AvailableDistributionWizard_CHECK_MESSAGE, aPage.WARNING);
             return true;
         } else {
@@ -92,16 +94,4 @@ public class AvailableDistributionWizard extends Wizard {
             return false;
         }
     }
-//
-//    @Override
-//    public ConversationHolder getConversationHolder() {
-//        if (conversation == null) {
-//            conversation = CdmStore.createConversation();
-//        }
-//        return conversation;
-//    }
-//
-//    @Override
-//    public void update(CdmDataChangeMap changeEvents) {
-//    }
 }
old mode 100755 (executable)
new mode 100644 (file)
index bd44096..ee918db
@@ -11,29 +11,24 @@ package eu.etaxonomy.taxeditor.preference.wizard;
 import java.util.ArrayList;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.jface.wizard.Wizard;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author k.luther
  * @since 04.06.2018
  *
  */
-public class AvailableVocabularyWizard extends Wizard implements IConversationEnabled {
+public class AvailableVocabularyWizard extends Wizard  {
 
-    private ConversationHolder conversation;
     private final AvailableAreaVocabulariesPage aPage;
     private boolean localPref = true;
     private CdmPreference pref;
@@ -123,16 +118,5 @@ public class AvailableVocabularyWizard extends Wizard implements IConversationEn
         return true;
     }
 
-    @Override
-    public void update(CdmDataChangeMap changeEvents) {
-    }
-
-    @Override
-    public ConversationHolder getConversationHolder() {
-        if (conversation == null) {
-            conversation = CdmStore.createConversation();
-        }
-        return conversation;
-    }
-
+    
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/CdmCheckBoxTreeViewer.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/CdmCheckBoxTreeViewer.java
new file mode 100644 (file)
index 0000000..7367100
--- /dev/null
@@ -0,0 +1,38 @@
+/**
+* Copyright (C) 2021 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.preference.wizard;
+
+import org.eclipse.jface.viewers.CheckboxTreeViewer;
+import org.eclipse.swt.events.TreeEvent;
+import org.eclipse.swt.widgets.Tree;
+
+/**
+ * @author k.luther
+ * @since Feb 11, 2021
+ */
+public class CdmCheckBoxTreeViewer extends CheckboxTreeViewer {
+
+    /**
+     * @param tree
+     */
+    public CdmCheckBoxTreeViewer(Tree tree) {
+        super(tree);
+    }
+
+    @Override
+    protected void handleTreeExpand(TreeEvent event) {
+
+        super.handleTreeExpand(event);
+        if (((CheckBoxTreeComposite)this.getControl().getParent()).checkedElements != null){
+            this.setCheckedElements(((CheckBoxTreeComposite)this.getControl().getParent()).checkedElements);
+        }
+
+    }
+
+}
index 4cff5afb8c4d0667dc1992e5e41cb0494b069b32..e5b52e0d258fcbf714a62fd70b5b45ef54128257 100644 (file)
@@ -9,7 +9,10 @@
 package eu.etaxonomy.taxeditor.preference.wizard;
 
 import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.viewers.AbstractTreeViewer;
@@ -29,26 +32,30 @@ import org.eclipse.swt.widgets.Tree;
 import org.eclipse.swt.widgets.TreeItem;
 import org.eclipse.swt.widgets.Widget;
 
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 
 /**
  * @author pplitzner
  * @since Oct 26, 2018
- *
  */
 public class CheckBoxTreeComposite extends Composite implements SelectionListener {
 
     private static final Font FONT_DEFAULT = JFaceResources.getFontRegistry().get(JFaceResources.DEFAULT_FONT);
     private static final Font FONT_ITALIC = JFaceResources.getFontRegistry().getItalic(JFaceResources.DEFAULT_FONT);
-    private static final Font FONT_BOLD = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);
-    private CheckboxTreeViewer viewer;
-    private Button btnCollapse;
-    private Button btnExpand;
-    private Button btnSelectAllChildren;
-    private Button btnSelectDirectChildren;
+    protected static final Font FONT_BOLD = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);
+    protected CheckboxTreeViewer viewer;
+    protected Button btnCollapse;
+    protected Button btnExpand;
+    protected Button btnSelectAllChildren;
+    protected Button btnSelectDirectChildren;
+
+    protected Object[] checkedElements;
+
+    protected boolean allowTopLevelSelection = false;
 
-    private boolean allowTopLevelSelection = false;
 
     public CheckBoxTreeComposite(Composite parent, ITreeContentProvider contentProvider, IBaseLabelProvider labelProvider, int style) {
         super(parent, style);
@@ -84,6 +91,18 @@ public class CheckBoxTreeComposite extends Composite implements SelectionListene
         btnSelectAllChildren.setImage(ImageResources.getImage(ImageResources.HIERARCHICAL));
         btnSelectAllChildren.setToolTipText(""); //$NON-NLS-1$
 
+        Tree tree = createTree();
+
+        viewer = new CdmCheckBoxTreeViewer(tree);
+        viewer.setContentProvider(contentProvider);
+        viewer.setLabelProvider(labelProvider);
+    }
+
+
+    /**
+     * @return
+     */
+    protected Tree createTree() {
         Tree tree = new Tree(this, SWT.BORDER | SWT.CHECK);
         tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
         tree.addListener(SWT.Selection, event -> {
@@ -94,17 +113,47 @@ public class CheckBoxTreeComposite extends Composite implements SelectionListene
                     item.setChecked(false);
                     return;
                 }
+
+                if (item.getChecked()){
+                    if (checkedElements != null){
+                        Object[] tempArray = Arrays.copyOf(checkedElements, checkedElements.length +1);
+                        tempArray[checkedElements.length] = item.getData();
+                        checkedElements = tempArray;
+                    }
+                }else{
+
+                    if (checkedElements != null){
+                        updateAfterUnCheckElement(item);
+                    }
+                }
+
                 updateItem(item);
             }
         });
-
-        viewer = new CheckboxTreeViewer(tree);
-        viewer.setContentProvider(contentProvider);
-        viewer.setLabelProvider(labelProvider);
+        return tree;
     }
 
 
-    private void updateItem(TreeItem treeItem){
+    protected void updateAfterUnCheckElement(Object item) {
+        Object[] tempArray = new Object[checkedElements.length -1];
+
+        int index = 0;
+        for (Object o:checkedElements){
+            Object element = null;
+            if (item instanceof TreeItem) {
+                element = ((TreeItem)item).getData();
+            }else {
+                element = item;
+            }
+            if (o != null && !o.equals(element)){
+               tempArray[index] = o;
+               index++;
+            }
+        }
+        checkedElements = tempArray;
+    }
+
+    protected void updateItem(TreeItem treeItem){
         TreeItem parentItem = treeItem.getParentItem();
         if(parentItem!=null){
             updateItem(parentItem);
@@ -123,7 +172,8 @@ public class CheckBoxTreeComposite extends Composite implements SelectionListene
         int checkedCount = 0;
         for (TreeItem child : children) {
             updateChildItems(child);
-            if(child.getChecked()){
+
+            if(child.getChecked() ){
                 if ((child.getFont().equals(FONT_BOLD)) || (child.getItems().length == 0)) {
                     checkedCount++;
                 }
@@ -150,6 +200,7 @@ public class CheckBoxTreeComposite extends Composite implements SelectionListene
                 treeItem.setFont(FONT_DEFAULT);
             }
         }
+
     }
 
 
@@ -166,8 +217,10 @@ public class CheckBoxTreeComposite extends Composite implements SelectionListene
      * @param elements
      */
     public void setCheckedElements(Object[] elements) {
+
+        this.checkedElements = elements;
         viewer.setCheckedElements(elements);
-        for (Object element: elements) {
+        for (Object element: checkedElements) {
             viewer.reveal(element);
         }
         TreeItem[] rootItems = viewer.getTree().getItems();
@@ -190,7 +243,6 @@ public class CheckBoxTreeComposite extends Composite implements SelectionListene
         for (TreeItem rootItem : rootItems) {
             updateItem(rootItem);
         }
-
     }
 
     @Override
@@ -212,23 +264,84 @@ public class CheckBoxTreeComposite extends Composite implements SelectionListene
                 List<TreeItem> childItemList = Arrays.asList(childItems);
                 boolean allChecked = childItemList.stream().allMatch(childItem->childItem.getChecked());
                 childItemList.stream().forEach(childItem->childItem.setChecked(!allChecked));
-                TreeItem parent = getRoot(treeItem);
-                updateItem(parent);
+                if (!allChecked) {
+                    for (TreeItem updateItem: childItemList) {
+                        updateAfterCheckElement(updateItem);
+                    }
+
+                }else {
+                    for (TreeItem updateItem: childItemList) {
+                        updateAfterUnCheckElement(updateItem);
+                    }
+                }
+
+
             }
         }
         else if(e.widget == btnSelectAllChildren){
             Widget item = viewer.testFindItem(firstElement);
             if(item instanceof TreeItem){
                 viewer.expandToLevel(firstElement, AbstractTreeViewer.ALL_LEVELS);
-                viewer.setSubtreeChecked(firstElement, !((TreeItem) item).getFont().equals(FONT_BOLD));
-                TreeItem parent = getRoot((TreeItem) item);
-                updateItem(parent);
+                Set<TreeItem> childrenSet = getSubTreeItems((TreeItem)item);
+                Object[] children = childrenSet.toArray();
+                boolean checked = true;
+                if (children == null) {
+                    return;
+                }
+                if (children != null && ((TreeItem)children[0]).getChecked()) {
+                    checked = false;
+                }
+                viewer.setSubtreeChecked(firstElement, checked);
                 ((TreeItem) item).setChecked(false);
+                Object[] checkedElements = viewer.getCheckedElements();
+
+                for (Object updateItem: children) {
+                    if (((TreeItem)children[0]).getChecked()) {
+                        updateAfterCheckElement(updateItem);
+                    }else {
+                        updateAfterUnCheckElement(updateItem);
+                    }
+                }
+
             }
         }
     }
 
-    private TreeItem getRoot(TreeItem treeItem) {
+    private void updateAfterCheckElement(Object item) {
+        Set<Object> tempList = new HashSet<>();
+        if (checkedElements != null) {
+            Collections.addAll(tempList, checkedElements);
+        }
+        TermNodeDto checkedNode = null;
+        TermDto checkedTerm = null;
+        TreeItem treeItem = null;
+        if (item instanceof TreeItem) {
+             treeItem = (TreeItem) item;
+             if (treeItem.getData() instanceof TermNodeDto) {
+                 checkedNode = (TermNodeDto)treeItem.getData();
+                 checkedTerm = checkedNode.getTerm();
+             }else if (treeItem.getData() instanceof TermDto) {
+                 checkedTerm = (TermDto)treeItem.getData();
+             }else {
+                 return;
+             }
+        }else  if (item instanceof TermNodeDto) {
+            checkedNode = (TermNodeDto)item;
+            checkedTerm = checkedNode.getTerm();
+        }else if (item instanceof TermDto) {
+            checkedTerm = (TermDto)item;
+        }else {
+            return;
+        }
+        if (checkedTerm != null) {
+            tempList.add(checkedTerm);
+        }
+
+        setCheckedElements(tempList.toArray());
+
+    }
+
+    protected TreeItem getRoot(TreeItem treeItem) {
         TreeItem parent = treeItem;
         while(parent.getParentItem()!=null){
             parent = parent.getParentItem();
@@ -236,8 +349,23 @@ public class CheckBoxTreeComposite extends Composite implements SelectionListene
         return parent;
     }
 
+    public Object[] getCheckedElements() {
+        return checkedElements;
+    }
+    private Set<TreeItem> getSubTreeItems(TreeItem parent) {
+        Set<TreeItem> children = new HashSet<>();
+
+        if (parent.getItems() != null) {
+            children.addAll(Arrays.asList(parent.getItems()));
+            for(TreeItem child : parent.getItems()) {
+                children.addAll(getSubTreeItems(child));
+            }
+        }
+        return children;
+    }
+
+
     @Override
     public void widgetDefaultSelected(SelectionEvent e) {
     }
-
-}
+}
\ No newline at end of file
old mode 100755 (executable)
new mode 100644 (file)
index 794940f..428a4b6
@@ -13,20 +13,19 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
-import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.api.service.ITermCollectionService;
+import eu.etaxonomy.cdm.api.service.ITermTreeService;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
-import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
 import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermSorter;
 import eu.etaxonomy.taxeditor.editor.definedterm.RootElementsOnlyTreeContentProvider;
 import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoLabelProvider;
@@ -40,20 +39,14 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @author k.luther
  * @since 13.09.2019
  */
-public class GeneralVocabularyPreferencePage extends AbstractGeneralTermPreference<TermVocabularyDto> implements ISelectionChangedListener, SelectionListener{
-
-
-    protected List<TermVocabularyDto> getVocabulariesFromPreference() {
-
-        return null;
-    }
+public class GeneralVocabularyPreferencePage extends AbstractGeneralTermPreference<TermCollectionDto> {
 
     @Override
     protected Control createContents(Composite parent) {
         Composite container = new Composite(parent, SWT.NULL);
-       // getValues();
+        // getValues();
         getPreferenceValues();
-        if (!isAdminPreference && !allowOverride){
+        if (!isAdminPreference && !allowOverride) {
             final CLabel description = new CLabel(parent, SWT.NULL);
             description.setText(Messages.NameDetailsViewConfiguration_description_not_available);
             this.setDefaultButtonActivated(false);
@@ -65,32 +58,32 @@ public class GeneralVocabularyPreferencePage extends AbstractGeneralTermPreferen
         container.setLayout(gridLayout);
         parent.setLayout(new GridLayout());
         useLocalOrAdmin = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
-        if (!isAdminPreference){
+        if (!isAdminPreference) {
             useLocalOrAdmin.add(LocalOrDefaultEnum.Default.getLabel(), 0);
             useLocalOrAdmin.add(LocalOrDefaultEnum.Local.getLabel(), 1);
 
-        }else{
+        } else {
             useLocalOrAdmin.add(LocalOrDefaultEnum.AllowOverride.getLabel(), 0);
             useLocalOrAdmin.add(LocalOrDefaultEnum.Database.getLabel(), 1);
         }
 
-
-        treeComposite = new CheckBoxTreeComposite(container, new RootElementsOnlyTreeContentProvider(), new TermDtoLabelProvider(), SWT.NONE);
+        treeComposite = new CheckBoxTreeComposite(container, new RootElementsOnlyTreeContentProvider(),
+                new TermDtoLabelProvider(), SWT.NONE);
         treeComposite.getViewer().setComparator(new DefinedTermSorter());
         treeComposite.setAllowTopLevelSelection(true);
         rememberCheckedValues(getCheckedValuesFromPreferences());
 
-        if (!isAdminPreference){
-            if (isOverride){
+        if (!isAdminPreference) {
+            if (isOverride) {
                 useLocalOrAdmin.select(1);
-            }else{
+            } else {
                 useLocalOrAdmin.select(0);
                 treeComposite.setEnabled(false);
             }
-        }else{
-            if (allowOverride){
+        } else {
+            if (allowOverride) {
                 useLocalOrAdmin.select(0);
-            }else{
+            } else {
                 useLocalOrAdmin.select(1);
             }
         }
@@ -108,86 +101,97 @@ public class GeneralVocabularyPreferencePage extends AbstractGeneralTermPreferen
     @Override
     protected void rememberCheckedValues(String checkedValues) {
         initialiseVocabularies();
-        treeComposite.getViewer().getTree().deselectAll();
-        treeComposite.getViewer().refresh();
-        treeComposite.getViewer().setInput(getVocabularies());
+        setInput();
 
-        if (checkedValues != null && checkedValues != "") { //$NON-NLS-1$
+        if (checkedValues != null && !checkedValues.equals("")) { //$NON-NLS-1$
             String[] listChecked = checkedValues.split(";"); //$NON-NLS-1$
             String[] listCheckedComma = checkedValues.split(","); //$NON-NLS-1$
             List<String> checked = new ArrayList<>();
-            if (listChecked != null ){
+            if (listChecked != null{
                 checked = Arrays.asList(listChecked);
             }
-            if (listCheckedComma != null && checkedValues.contains(",")){ //$NON-NLS-1$
+            if (listCheckedComma != null && checkedValues.contains(",")) { //$NON-NLS-1$
                 checked = Arrays.asList(listCheckedComma);
             }
-            List<TermVocabularyDto> termsFromStringValues = getTermsFromStringValues(checked);
+            List<TermCollectionDto> termsFromStringValues = getTermsFromStringValues(checked);
             treeComposite.setCheckedElements(termsFromStringValues.toArray());
 
-        }else{
-            List<TermVocabularyDto> termsFromStringValues = getTermsFromStringValues(new ArrayList<String>());
+        } else {
+            List<TermCollectionDto> termsFromStringValues = getTermsFromStringValues(new ArrayList<>());
             treeComposite.setCheckedElements(termsFromStringValues.toArray());
             treeComposite.getViewer().refresh();
             treeComposite.redraw();
-
         }
     }
 
-
     @Override
-    protected List<TermVocabularyDto> getTermsFromStringValues(List<String> listValue) {
-        List<TermVocabularyDto> vocList = new ArrayList<>();
-        List<UUID> uuids = new ArrayList();
-        IVocabularyService vocService = CdmStore.getService(IVocabularyService.class);
+    protected List<TermCollectionDto> getTermsFromStringValues(List<String> listValue) {
+        List<TermCollectionDto> vocList = new ArrayList<>();
+        List<TermCollectionDto> treeList = new ArrayList<>();
+        List<TermCollectionDto> collList = new ArrayList<>();
+        List<UUID> uuids = new ArrayList<>();
+        ITermCollectionService vocService = CdmStore.getService(ITermCollectionService.class);
+        ITermTreeService treeService = CdmStore.getService(ITermTreeService.class);
         for (String s : listValue) {
-            if (!StringUtils.isBlank(s)){
+            if (!StringUtils.isBlank(s)) {
                 UUID uuid = UUID.fromString(s);
                 uuids.add(uuid);
             }
         }
-        vocList = vocService.findVocabularyDtoByVocabularyUuids(uuids);
-
-
-        if (listValue.isEmpty()){
-            vocList =vocService.findVocabularyDtoByTermType(type);
+        vocList = vocService.findCollectionDtoByTermType(type);
+        // treeList = treeService.listTermTreeDtosByTermType(type);
+        if (listValue.isEmpty()) {
+            // vocList = vocService.findVocabularyDtoByTermType(type);
+        }
+        // if (vocList != null && !vocList.isEmpty()) {
+        // collList.addAll(vocList);
+        // }
+        if (!vocList.isEmpty()) {
+            for (TermCollectionDto dto : vocList) {
+                if (uuids.contains(dto.getUuid())) {
+                    collList.add(dto);
+                }
+            }
         }
 
-        return vocList;
+        return collList;
     }
 
     @Override
     public boolean performOk() {
-        if (!isApply()){
+        if (!isApply()) {
             return true;
         }
         Object[] checkedElements = treeComposite.getViewer().getCheckedElements();
         List<UUID> listUIIDChecked = new ArrayList<>();
 
         for (Object o : checkedElements) {
-            if(o instanceof TermVocabularyDto){
-                TermVocabularyDto termDto = (TermVocabularyDto) o;
+            if (o instanceof TermCollectionDto) {
+                TermCollectionDto termDto = (TermCollectionDto) o;
                 listUIIDChecked.add(termDto.getUuid());
-             }
+            }
         }
         String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
-        if (isAdminPreference){
+        if (isAdminPreference) {
             CdmPreference savePref = CdmPreference.NewTaxEditorInstance(predicate, saveCheckedElements);
             String text = this.useLocalOrAdmin.getText();
-            if (text.equals(LocalOrDefaultEnum.Database.getLabel()) ){
+            if (text.equals(LocalOrDefaultEnum.Database.getLabel()){
                 savePref.setAllowOverride(false);
-            }else if (text.equals(LocalOrDefaultEnum.AllowOverride.getLabel())){
+            } else if (text.equals(LocalOrDefaultEnum.AllowOverride.getLabel())) {
                 savePref.setAllowOverride(true);
             }
             PreferencesUtil.setPreferenceToDB(savePref);
             PreferencesUtil.updateDBPreferences();
-        }else{
+        } else {
             PreferencesUtil.setStringValue(predicate.getKey(), saveCheckedElements);
             String text = this.useLocalOrAdmin.getText();
-            if (text.equals(LocalOrDefaultEnum.Database.getLabel()) || text.equals(LocalOrDefaultEnum.Default.getLabel())){
-                PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(predicate.getKey()), false);
-            }else if (text.equals(LocalOrDefaultEnum.Local.getLabel())){
-                PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(predicate.getKey()), true);
+            if (text.equals(LocalOrDefaultEnum.Database.getLabel())
+                    || text.equals(LocalOrDefaultEnum.Default.getLabel())) {
+                PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(predicate.getKey()),
+                        false);
+            } else if (text.equals(LocalOrDefaultEnum.Local.getLabel())) {
+                PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(predicate.getKey()),
+                        true);
             }
         }
 
@@ -196,21 +200,19 @@ public class GeneralVocabularyPreferencePage extends AbstractGeneralTermPreferen
     }
 
     @Override
-    protected void performDefaults(){
-        if (isAdminPreference){
+    protected void performDefaults() {
+        if (isAdminPreference) {
             rememberCheckedValues("");
             treeComposite.setEnabled(true);
-        }else{
+        } else {
             isOverride = false;
             rememberCheckedValues(getCheckedValuesFromPreferences());
             treeComposite.setEnabled(false);
         }
-       pref = null;
-       useLocalOrAdmin.select(0);
-
-       setApply(true);
-       super.performDefaults();
+        pref = null;
+        useLocalOrAdmin.select(0);
 
+        setApply(true);
+        super.performDefaults();
     }
-
-}
+}
\ No newline at end of file
old mode 100755 (executable)
new mode 100644 (file)
index 53cae61..a7f2095
@@ -13,7 +13,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.model.term.TermType;
@@ -51,7 +51,7 @@ public abstract class TermSelectionWizardPage extends AbstractTermSelectionWizar
         }
 
         if (listValue == null || listValue.isEmpty() ){
-            termlist = termService.findByTitleAsDto("", type);
+            termlist = termService.findByTitleAsDtoWithVocDto("", type);
         }
         return new ArrayList(termlist);
     }
index 5d6a7265d30757e5a8198ee5306950ceee7e725d..5ce0601592a690d2502ce8d00ef0ade56d4a9ff6 100644 (file)
@@ -11,8 +11,6 @@ package eu.etaxonomy.taxeditor.preference.wizard;
 
 import org.eclipse.jface.wizard.Wizard;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.Representation;
@@ -28,7 +26,7 @@ import eu.etaxonomy.taxeditor.store.TermStore;
  * @created 12.06.2009
  * @version 1.0
  */
-public class VocabularyTermWizard<T extends DefinedTermBase> extends Wizard implements IConversationEnabled {
+public class VocabularyTermWizard<T extends DefinedTermBase> extends Wizard  {
        
        public T term = null;
        
@@ -36,15 +34,12 @@ public class VocabularyTermWizard<T extends DefinedTermBase> extends Wizard impl
 
        private Class<T> termClass;
 
-       private ConversationHolder conversation;
-
        /**
         * <p>Constructor for VocabularyTermWizard.</p>
         *
         * @param vocabularyClass a {@link java.lang.Class} object.
         */
-       public VocabularyTermWizard(Class<T> vocabularyClass, ConversationHolder conversation){ 
-               this.conversation = conversation;
+       public VocabularyTermWizard(Class<T> vocabularyClass){  
                termClass = vocabularyClass;
        }
        
@@ -54,8 +49,8 @@ public class VocabularyTermWizard<T extends DefinedTermBase> extends Wizard impl
         * @param vocabularyClass a {@link java.lang.Class} object.
         * @param selectedTerm a T object.
         */
-       public VocabularyTermWizard(Class<T> vocabularyClass, T selectedTerm, ConversationHolder conversation){
-               this(vocabularyClass, conversation);            
+       public VocabularyTermWizard(Class<T> vocabularyClass, T selectedTerm){
+               this(vocabularyClass);          
                term = (T) CdmStore.getService(ITermService.class).load(selectedTerm.getUuid());
                editMode = true;
        }
@@ -83,9 +78,7 @@ public class VocabularyTermWizard<T extends DefinedTermBase> extends Wizard impl
                }else{
                        TermStore.saveTerm(getTerm());
                }
-               
-               getConversationHolder().commit(true);
-               
+       
                return true;
        }
 
@@ -152,22 +145,6 @@ public class VocabularyTermWizard<T extends DefinedTermBase> extends Wizard impl
         */
        public Class<T> getTermClass() {
                return termClass;
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
-        */
-       @Override
-       public void update(CdmDataChangeMap changeEvents) {
-               // not needed
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
-        */
-       @Override
-       public ConversationHolder getConversationHolder() {
-               return conversation;
-       }
+       }       
 
 }
index 245d78ef7a1f6e259cf027a57bfd6a1afc839ab8..5d72b1a00e2fcb4a48b79455294af03f2061820f 100644 (file)
@@ -21,4 +21,6 @@ public class RequiredPermissions {
        public static final EnumSet<CRUD> TAXON_EDIT = Operation.UPDATE;
 
        public static final EnumSet<CRUD> DESCRIPTION_EDIT = Operation.UPDATE;
+
+       public static final EnumSet<CRUD> NAME_DELETE = Operation.DELETE;
 }
index 99f8847418509a5e3646f5ceecdd0986926490cd..39309b04b7a144bade73467e7599dd0c7d84e7da 100644 (file)
@@ -181,46 +181,46 @@ public class AppModelId {
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_DEFINEDTERM_E4_HANDLER_DELETETERMBASEHANDLERE4 = "eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.DeleteTermBaseHandlerE4";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_DEFINEDTERM_E4_HANDLER_MOVEDEFINEDTERMHANDLER = "eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.MoveDefinedTermHandler";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_EDITOR_DEFINEDTERM_E4_HANDLER_OPENDEFINEDTERMEDITORHANDLERE4 = "eu.etaxonomy.taxeditor.editor.definedterm.e4.handler.OpenDefinedTermEditorHandlerE4";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_ADDCHILDFEATUREHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.AddChildFeatureHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_ADDFEATUREHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.AddFeatureHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_CHARACTER_ADDFEATUREHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.character.AddFeatureHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_CHARACTER_CREATEFEATURETREEHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.character.CreateFeatureTreeHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_CHARACTER_FEATURETREEEXPORTONTOLOGYHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.character.FeatureTreeExportOntologyHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_CHARACTER_FEATURETREEEXPORTWORDHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.character.FeatureTreeExportWordHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_CHARACTER_REMOVEFEATURETREEHANDLERS = "eu.etaxonomy.taxeditor.featuretree.e4.handler.character.RemoveFeatureTreeHandlers";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_COPYFEATUREHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.CopyFeatureHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_CREATEFEATURETREEHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.CreateFeatureTreeHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_FEATURETREEEXPORTONTOLOGYHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportOntologyHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_FEATURETREEEXPORTWORDHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.FeatureTreeExportWordHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_NAMEDAREA_ADDFEATUREHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.namedArea.AddFeatureHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_NAMEDAREA_CREATEFEATURETREEHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.namedArea.CreateFeatureTreeHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_NAMEDAREA_FEATURETREEEXPORTONTOLOGYHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.namedArea.FeatureTreeExportOntologyHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_NAMEDAREA_FEATURETREEEXPORTWORDHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.namedArea.FeatureTreeExportWordHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_NAMEDAREA_REMOVEFEATURETREEHANDLERS = "eu.etaxonomy.taxeditor.featuretree.e4.handler.namedArea.RemoveFeatureTreeHandlers";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PASTEFEATUREHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.PasteFeatureHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PRESENCEABSENCE_ADDFEATUREHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.presenceAbsence.AddFeatureHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PRESENCEABSENCE_CREATEFEATURETREEHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.presenceAbsence.CreateFeatureTreeHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PRESENCEABSENCE_FEATURETREEEXPORTONTOLOGYHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.presenceAbsence.FeatureTreeExportOntologyHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PRESENCEABSENCE_FEATURETREEEXPORTWORDHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.presenceAbsence.FeatureTreeExportWordHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PRESENCEABSENCE_REMOVEFEATURETREEHANDLERS = "eu.etaxonomy.taxeditor.featuretree.e4.handler.presenceAbsence.RemoveFeatureTreeHandlers";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PROPERTY_ADDFEATUREHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.property.AddFeatureHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PROPERTY_CREATEFEATURETREEHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.property.CreateFeatureTreeHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PROPERTY_FEATURETREEEXPORTONTOLOGYHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.property.FeatureTreeExportOntologyHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PROPERTY_FEATURETREEEXPORTWORDHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.property.FeatureTreeExportWordHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PROPERTY_REMOVEFEATURETREEHANDLERS = "eu.etaxonomy.taxeditor.featuretree.e4.handler.property.RemoveFeatureTreeHandlers";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_RANK_ADDFEATUREHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.rank.AddFeatureHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_RANK_CREATEFEATURETREEHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.rank.CreateFeatureTreeHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_RANK_FEATURETREEEXPORTONTOLOGYHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.rank.FeatureTreeExportOntologyHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_RANK_FEATURETREEEXPORTWORDHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.rank.FeatureTreeExportWordHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_RANK_REMOVEFEATURETREEHANDLERS = "eu.etaxonomy.taxeditor.featuretree.e4.handler.rank.RemoveFeatureTreeHandlers";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_REMOVEFEATUREHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_REMOVEFEATURETREEHANDLERS = "eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureTreeHandlers";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_STRUCTURE_ADDFEATUREHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.structure.AddFeatureHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_STRUCTURE_CREATEFEATURETREEHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.structure.CreateFeatureTreeHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_STRUCTURE_FEATURETREEEXPORTONTOLOGYHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.structure.FeatureTreeExportOntologyHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_STRUCTURE_FEATURETREEEXPORTWORDHANDLER = "eu.etaxonomy.taxeditor.featuretree.e4.handler.structure.FeatureTreeExportWordHandler";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_STRUCTURE_REMOVEFEATURETREEHANDLERS = "eu.etaxonomy.taxeditor.featuretree.e4.handler.structure.RemoveFeatureTreeHandlers";
-       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_HANDLER_SAVEHANDLER = "eu.etaxonomy.taxeditor.featuretree.handler.SaveHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_ADDCHILDFEATUREHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.AddChildFeatureHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_ADDFEATUREHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.AddFeatureHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_CHARACTER_ADDFEATUREHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.character.AddFeatureHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_CHARACTER_CREATEFEATURETREEHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.character.CreateFeatureTreeHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_CHARACTER_FEATURETREEEXPORTONTOLOGYHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.character.FeatureTreeExportOntologyHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_CHARACTER_FEATURETREEEXPORTWORDHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.character.FeatureTreeExportWordHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_CHARACTER_REMOVEFEATURETREEHANDLERS = "eu.etaxonomy.taxeditor.termtree.e4.handler.character.RemoveFeatureTreeHandlers";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_COPYFEATUREHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.CopyFeatureHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_CREATEFEATURETREEHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.CreateFeatureTreeHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_FEATURETREEEXPORTONTOLOGYHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.FeatureTreeExportOntologyHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_FEATURETREEEXPORTWORDHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.FeatureTreeExportWordHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_NAMEDAREA_ADDFEATUREHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.namedArea.AddFeatureHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_NAMEDAREA_CREATEFEATURETREEHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.namedArea.CreateFeatureTreeHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_NAMEDAREA_FEATURETREEEXPORTONTOLOGYHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.namedArea.FeatureTreeExportOntologyHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_NAMEDAREA_FEATURETREEEXPORTWORDHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.namedArea.FeatureTreeExportWordHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_NAMEDAREA_REMOVEFEATURETREEHANDLERS = "eu.etaxonomy.taxeditor.termtree.e4.handler.namedArea.RemoveFeatureTreeHandlers";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PASTEFEATUREHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.PasteTermHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PRESENCEABSENCE_ADDFEATUREHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.presenceAbsence.AddFeatureHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PRESENCEABSENCE_CREATEFEATURETREEHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.presenceAbsence.CreateFeatureTreeHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PRESENCEABSENCE_FEATURETREEEXPORTONTOLOGYHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.presenceAbsence.FeatureTreeExportOntologyHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PRESENCEABSENCE_FEATURETREEEXPORTWORDHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.presenceAbsence.FeatureTreeExportWordHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PRESENCEABSENCE_REMOVEFEATURETREEHANDLERS = "eu.etaxonomy.taxeditor.termtree.e4.handler.presenceAbsence.RemoveFeatureTreeHandlers";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PROPERTY_ADDFEATUREHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.property.AddFeatureHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PROPERTY_CREATEFEATURETREEHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.property.CreateFeatureTreeHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PROPERTY_FEATURETREEEXPORTONTOLOGYHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.property.FeatureTreeExportOntologyHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PROPERTY_FEATURETREEEXPORTWORDHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.property.FeatureTreeExportWordHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_PROPERTY_REMOVEFEATURETREEHANDLERS = "eu.etaxonomy.taxeditor.termtree.e4.handler.property.RemoveFeatureTreeHandlers";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_RANK_ADDFEATUREHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.rank.AddFeatureHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_RANK_CREATEFEATURETREEHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.rank.CreateFeatureTreeHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_RANK_FEATURETREEEXPORTONTOLOGYHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.rank.FeatureTreeExportOntologyHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_RANK_FEATURETREEEXPORTWORDHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.rank.FeatureTreeExportWordHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_RANK_REMOVEFEATURETREEHANDLERS = "eu.etaxonomy.taxeditor.termtree.e4.handler.rank.RemoveFeatureTreeHandlers";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_REMOVEFEATUREHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.RemoveFeatureHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_REMOVEFEATURETREEHANDLERS = "eu.etaxonomy.taxeditor.termtree.e4.handler.RemoveFeatureTreeHandlers";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_STRUCTURE_ADDFEATUREHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.structure.AddFeatureHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_STRUCTURE_CREATEFEATURETREEHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.structure.CreateFeatureTreeHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_STRUCTURE_FEATURETREEEXPORTONTOLOGYHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.structure.FeatureTreeExportOntologyHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_STRUCTURE_FEATURETREEEXPORTWORDHANDLER = "eu.etaxonomy.taxeditor.termtree.e4.handler.structure.FeatureTreeExportWordHandler";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_HANDLER_STRUCTURE_REMOVEFEATURETREEHANDLERS = "eu.etaxonomy.taxeditor.termtree.e4.handler.structure.RemoveFeatureTreeHandlers";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_HANDLER_SAVEHANDLER = "eu.etaxonomy.taxeditor.termtree.handler.SaveHandler";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_HANDLER_DEFAULTHANDLER_E4_DEFAULTOPENCLASSIFICATIONWIZARDHANDLERE4 = "eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenClassificationWizardHandlerE4";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_HANDLER_DEFAULTHANDLER_E4_DEFAULTOPENTAXONNODEWIZARDHANDLERE4 = "eu.etaxonomy.taxeditor.handler.defaultHandler.e4.DefaultOpenTaxonNodeWizardHandlerE4";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_HANDLER_DEFAULTHANDLER_OPENREFERENCINGOBJECTSVIEWHANDLER = "eu.etaxonomy.taxeditor.handler.defaultHandler.OpenReferencingObjectsViewHandler";
@@ -249,6 +249,7 @@ public class AppModelId {
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_IO_E4_OUT_CSV_OPENCSVEXPORTWIZARD = "eu.etaxonomy.taxeditor.io.e4.out.csv.OpenCsvExportWizard";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_IO_E4_OUT_CSV_PRINT_OPENCSVPRINTEXPORTWIZARD = "eu.etaxonomy.taxeditor.io.e4.out.csv.print.OpenCsvPrintExportWizard";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_IO_E4_OUT_DWCA_OPENDWCAEXPORTWIZARD = "eu.etaxonomy.taxeditor.io.e4.out.dwca.OpenDwcaExportWizard";
+       public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_IO_E4_OUT_DWCA_OPENWFOBACKBONEEXPORTWIZARD = "eu.etaxonomy.taxeditor.io.e4.out.dwca.OpenWfoBackboneExportWizard";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_IO_E4_OUT_JAXB_OPENJAXBEXPORTWIZARD = "eu.etaxonomy.taxeditor.io.e4.out.jaxb.OpenJaxbExportWizard";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_IO_E4_OUT_OWL_OPENOWLTERMEXPORTWIZARD = "eu.etaxonomy.taxeditor.io.e4.out.owl.OpenOwlTermExportWizard";
        public static final String HANDLER_EU_ETAXONOMY_TAXEDITOR_IO_E4_OUT_SDD_OPENSDDEXPORTWIZARD = "eu.etaxonomy.taxeditor.io.e4.out.sdd.OpenSddExportWizard";
@@ -323,6 +324,13 @@ public class AppModelId {
        public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_NAMEDAREATREEEDITOR = "eu.etaxonomy.taxeditor.store.showView.parameter.namedAreaTreeEditor";
        public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_OCCURRENCESEARCH = "eu.etaxonomy.taxeditor.store.showView.parameter.occurrencesearch";
        public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_PRESENCEABSENCETREEEDITOR = "eu.etaxonomy.taxeditor.store.showView.parameter.presenceAbsenceTreeEditor";
+       public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_NAMERELATIONSHIPTYPETREEEDITOR = "eu.etaxonomy.taxeditor.store.showView.parameter.nameRelationshipTypeTreeEditor";
+       public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_NOMENCLATURALSTATUSTYPETREEEDITOR = "eu.etaxonomy.taxeditor.store.showView.parameter.nomenclaturalStatusTypeTreeEditor";
+//     public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_PRESENCEABSENCETREEEDITOR = "eu.etaxonomy.taxeditor.store.showView.parameter.presenceAbsenceTreeEditor";
+//     public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_PRESENCEABSENCETREEEDITOR = "eu.etaxonomy.taxeditor.store.showView.parameter.presenceAbsenceTreeEditor";
+//     public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_PRESENCEABSENCETREEEDITOR = "eu.etaxonomy.taxeditor.store.showView.parameter.presenceAbsenceTreeEditor";
+//     public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_PRESENCEABSENCETREEEDITOR = "eu.etaxonomy.taxeditor.store.showView.parameter.presenceAbsenceTreeEditor";
+//     public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_PRESENCEABSENCETREEEDITOR = "eu.etaxonomy.taxeditor.store.showView.parameter.presenceAbsenceTreeEditor";
        public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_PROPERTYTREEEDITOR = "eu.etaxonomy.taxeditor.store.showView.parameter.propertyTreeEditor";
        public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_RANKTREEEDITOR = "eu.etaxonomy.taxeditor.store.showView.parameter.rankTreeEditor";
        public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_SESSIONVIEW = "eu.etaxonomy.taxeditor.store.showView.parameter.sessionView";
@@ -330,24 +338,27 @@ public class AppModelId {
        public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_SUPPLEMENTALDATAVIEW = "eu.etaxonomy.taxeditor.store.showView.parameter.supplementalDataView";
        public static final String PARAMETER_EU_ETAXONOMY_TAXEDITOR_STORE_SHOWVIEW_PARAMETER_TERMSEARCH = "eu.etaxonomy.taxeditor.store.showView.parameter.termsearch";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_DEFINEDTERM = "eu.etaxonomy.taxeditor.editor.definedTerm";
-       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_CHARACTERTREEEDITOR = "eu.etaxonomy.taxeditor.featuretree.e4.CharacterTreeEditor";
-       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_FEATURETREEEDITOR = "eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditor";
-       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_NAMEDAREATREEEDITOR = "eu.etaxonomy.taxeditor.featuretree.e4.NamedAreaTreeEditor";
-       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_PRESENCEABSENCETREEEDITOR = "eu.etaxonomy.taxeditor.featuretree.e4.PresenceAbsenceTreeEditor";
-       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_PROPERTYTREEEDITOR = "eu.etaxonomy.taxeditor.featuretree.e4.PropertyTreeEditor";
-       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_RANKTREEEDITOR = "eu.etaxonomy.taxeditor.featuretree.e4.RankTreeEditor";
-       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_STRUCTURETREEEDITOR = "eu.etaxonomy.taxeditor.featuretree.e4.StructureTreeEditor";
+       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_TERMTREE = "eu.etaxonomy.taxeditor.termtree.e4.termTreeEditor";
+       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_CHARACTERTREEEDITOR = "eu.etaxonomy.taxeditor.termtree.e4.CharacterTreeEditor";
+       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_FEATURETREEEDITOR = "eu.etaxonomy.taxeditor.termtree.e4.FeatureTreeEditor";
+       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_NAMEDAREATREEEDITOR = "eu.etaxonomy.taxeditor.termtree.e4.NamedAreaTreeEditor";
+       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_PRESENCEABSENCETREEEDITOR = "eu.etaxonomy.taxeditor.termtree.e4.PresenceAbsenceTreeEditor";
+       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_NOMENCLATURALSTATUSTYPETREEEDITOR = "eu.etaxonomy.taxeditor.termtree.e4.nomenclaturalStatusTypeTreeEditor";
+       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_PROPERTYTREEEDITOR = "eu.etaxonomy.taxeditor.termtree.e4.PropertyTreeEditor";
+       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_RANKTREEEDITOR = "eu.etaxonomy.taxeditor.termtree.e4.RankTreeEditor";
+       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_FEATURETREE_E4_STRUCTURETREEEDITOR = "eu.etaxonomy.taxeditor.termtree.e4.StructureTreeEditor";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_STORE_PARTDESCRIPTOR_OCCURENCESEARCH = "eu.etaxonomy.taxeditor.store.partdescriptor.occurencesearch";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_STORE_PARTDESCRIPTOR_SEARCHDIALOG = "eu.etaxonomy.taxeditor.store.partdescriptor.SearchDialog";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_STORE_PARTDESCRIPTOR_TERMSEARCH = "eu.etaxonomy.taxeditor.store.partdescriptor.termsearch";
-       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_VIEW_DATAIMPORT_E4_GBIFRESPONSEIMPORTVIEWE4 = "eu.etaxonomy.taxeditor.view.dataimport.e4.GbifResponseImportViewE4";
-       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_VIEW_DATAIMPORT_E4_SPECIMENIMPORTVIEWE4 = "eu.etaxonomy.taxeditor.view.dataimport.e4.SpecimenImportViewE4";
+       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_VIEW_DATAIMPORT_E4_GBIFRESPONSEIMPORTVIEWE4 = "eu.etaxonomy.taxeditor.view.dataimport.e4.GbifResponseImportView";
+       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_VIEW_DATAIMPORT_E4_SPECIMENIMPORTVIEWE4 = "eu.etaxonomy.taxeditor.view.dataimport.e4.SpecimenImportView";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_VIEW_DATASOURCE = "eu.etaxonomy.taxeditor.view.datasource";
+       public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_VIEW_REMOTESEERVER = "eu.etaxonomy.taxeditor.view.remoteserver";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_VIEW_E4_DETAILS_DETAILSPARTE4 = "eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_VIEW_E4_SUPPLEMENTALDATA_SUPPLEMENTALDATAPARTE4 = "eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_VIEW_SESSIONS_SESSIONSVIEWPART = "eu.etaxonomy.taxeditor.view.sessions.SessionsViewPart";
        public static final String PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_VIEW_WEBIMPORT_TERMIMPORT_GFBIOTERMINOLOGYIMPORTPART = "eu.etaxonomy.taxeditor.view.webimport.termimport.GfBioTerminologyImportPart";
        public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_STORE_POPUPMENU_DATASOURCEVIEW = "eu.etaxonomy.taxeditor.store.popupmenu.datasourceview";
-       public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_STORE_POPUPMENU_FEATURETREEEDITOR = "eu.etaxonomy.taxeditor.store.popupmenu.featureTreeEditor";
+       public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_STORE_POPUPMENU_FEATURETREEEDITOR = "eu.etaxonomy.taxeditor.store.popupmenu.termTreeEditor";
        public static final String POPUPMENU_EU_ETAXONOMY_TAXEDITOR_STORE_POPUPMENU_TERMEDITOR = "eu.etaxonomy.taxeditor.store.popupmenu.termeditor";
 }
\ No newline at end of file
index 609b928b736844a38ff202104c1223241a3f1bd7..c6c59326e23d034eed75848d0ae53aaeb57278c9 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.store;
 
 import java.util.EnumSet;
@@ -27,8 +26,7 @@ import eu.etaxonomy.cdm.api.application.CdmApplicationException;
 import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
-import eu.etaxonomy.cdm.api.cache.CdmServiceCacher;
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.cache.CdmServiceCachingProxy;
 import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.api.service.IAnnotationService;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
@@ -90,17 +88,14 @@ import eu.etaxonomy.cdm.model.validation.EntityConstraintViolation;
 import eu.etaxonomy.cdm.model.validation.EntityValidation;
 import eu.etaxonomy.cdm.persistence.permission.ICdmPermissionEvaluator;
 import eu.etaxonomy.cdm.persistence.permission.Role;
-import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
 import eu.etaxonomy.taxeditor.io.ExportManager;
 import eu.etaxonomy.taxeditor.io.ImportManager;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
-import eu.etaxonomy.taxeditor.session.mock.MockCdmEntitySessionManager;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 import eu.etaxonomy.taxeditor.ui.dialog.RemotingLoginDialog;
 import eu.etaxonomy.taxeditor.util.ProgressMonitorClientManager;
-import eu.etaxonomy.taxeditor.webapp.CdmServer;
 
 /**
  * This implementation of ICdmDataRepository depends on hibernate sessions to
@@ -110,18 +105,20 @@ import eu.etaxonomy.taxeditor.webapp.CdmServer;
  * Only methods that either get or manipulate data are exposed here. So this
  * class acts as a facade for the methods in cdmlib-service.
  *
+ * NOTE by AM: TODO this description is outdated since we use remoting now.
+ *
  * @author n.hoffmann
  * @created 17.03.2009
  */
 public class CdmStore {
 
-    private static final Resource DEFAULT_APPLICATION_CONTEXT = new ClassPathResource(
+    public static final Resource DEFAULT_APPLICATION_CONTEXT = new ClassPathResource(
             "/eu/etaxonomy/cdm/editorApplicationContext.xml",
             TaxeditorStorePlugin.class);
 
-    private static final DbSchemaValidation DEFAULT_DB_SCHEMA_VALIDATION = DbSchemaValidation.VALIDATE;
+    public static final DbSchemaValidation DEFAULT_DB_SCHEMA_VALIDATION = DbSchemaValidation.VALIDATE;
 
-    private static CdmStore instance;
+    protected static CdmStore instance;
 
     private static ContextManager contextManager = new ContextManager();
 
@@ -137,8 +134,6 @@ public class CdmStore {
 
     private static CdmStoreConnector job;
 
-    private static CdmServer managedServer;
-
     private Language language;
 
     private ICdmSource cdmSource;
@@ -146,7 +141,7 @@ public class CdmStore {
     private boolean isConnected;
 
     protected static CdmStore getDefault(boolean connecting){
-        if (instance != null && instance.isConnected) {
+        if (instance != null && instance.isConnected()) {
             return instance;
         } else{// if (instance == null || !instance.isConnected) {
             if (connecting){
@@ -167,15 +162,15 @@ public class CdmStore {
      * @deprecated this method is not needed anymore after fully changing to remoting.
      * Therefore it will be removed
      */
-    @Deprecated
-    public static void connect() {
-        try {
-            ICdmSource cdmSource = CdmDataSourceRepository.getCurrentCdmSource();
-            connect(cdmSource);
-        } catch (Exception e) {
-            MessagingUtils.messageDialog("Connection to CDM Source Failed", CdmStore.class, "Could not connect to target CDM Source", e);
-        }
-    }
+//    @Deprecated
+//    public static void connect() {
+//        try {
+//            ICdmSource cdmSource = CdmDataSourceRepository.getCurrentCdmSource();
+//            connect(cdmSource);
+//        } catch (Exception e) {
+//            MessagingUtils.messageDialog("Connection to CDM Source Failed", CdmStore.class, "Could not connect to target CDM Source", e);
+//        }
+//    }
 
     /**
      * Initialize with a specific datasource
@@ -222,7 +217,7 @@ public class CdmStore {
         RemotingLoginDialog loginDialog = remotingLoginDialog;
         if(isActive()) {
             // before we connect we clear the entity caches and the sessions
-           CdmRemoteCacheManager.removeEntityCaches();
+            CdmRemoteCacheManager.removeEntityCaches();
             if(getCurrentSessionManager(true) != null) {
                 getCurrentSessionManager(true).disposeAll();
             }
@@ -274,31 +269,29 @@ public class CdmStore {
     }
 
     private void close() {
-        this.isConnected = false;
+        this.setConnected(false);
         this.cdmSource = null;
         CdmApplicationState.dispose();
     }
 
-    static void setInstance(ICdmRepository applicationController,
+    public static void setInstance(CdmApplicationRemoteController applicationController,
             ICdmSource cdmSource) {
         instance = new CdmStore(applicationController, cdmSource);
-        CdmApplicationState.setCdmServiceCacher(new CdmServiceCacher());
+        CdmApplicationState.setTermProxy(new CdmServiceCachingProxy());
     }
 
-    private CdmStore(ICdmRepository repository,
+    protected CdmStore(CdmApplicationRemoteController repository,
             ICdmSource cdmSource) {
         CdmApplicationState.setCurrentAppConfig(repository);
         CdmApplicationState.setCurrentDataChangeService(new CdmUIDataChangeService());
         this.cdmSource = cdmSource;
-        isConnected = true;
+        setConnected(true);
     }
 
     /**
      * All calls to the datastore require
-     *
-     * @return
      */
-    private ICdmRepository getApplicationConfiguration() {
+    private CdmApplicationRemoteController getApplicationConfiguration() {
         try {
             return CdmApplicationState.getCurrentAppConfig();
         } catch (Exception e) {
@@ -307,57 +300,26 @@ public class CdmStore {
         return null;
     }
 
-    public static ICdmRepository getCurrentApplicationConfiguration() {
-        if (getDefault() != null) {
-            return getDefault().getApplicationConfiguration();
+    public static CdmApplicationRemoteController getCurrentApplicationConfiguration() {
+        CdmStore defaultStore = getDefault();
+        if (defaultStore != null) {
+            return defaultStore.getApplicationConfiguration();
         }
         return null;
     }
 
-    /*
-     * CONVERSATIONS
-     */
-
-    /**
-     * Creates a new conversation, binds resources to the conversation and start
-     * a transaction for this conversation.
-     *
-     * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-     *         object.
-     */
-    public static ConversationHolder createConversation() {
-        ConversationHolder conversation = getCurrentApplicationConfiguration()
-                .NewConversation();
-        try {
-            conversation.startTransaction();
-        }catch(Exception e){
-            MessagingUtils.messageDialog("No database connection", CdmStore.class, "No database connection available", e);
-        }
-        return conversation;
-    }
-
-    //FIXME:Remoting should be removed after moving completely to remoting
-    private MockCdmEntitySessionManager mockCdmEntitySessionManager;
-
     private ICdmEntitySessionManager getSessionManager() {
-        //FIXME:Remoting we should only have CdmApplicationRemoteConfiguration after move to remoting
-        //               bad hack which should be finally removed
-        if(getCurrentApplicationConfiguration() instanceof CdmApplicationRemoteController) {
-            return ((CdmApplicationRemoteController)getCurrentApplicationConfiguration()).getCdmEntitySessionManager();
-        } else {
-            if(mockCdmEntitySessionManager == null) {
-                mockCdmEntitySessionManager = new MockCdmEntitySessionManager();
-            }
-            return mockCdmEntitySessionManager;
-        }
+        return getCurrentApplicationConfiguration().getCdmEntitySessionManager();
     }
-    public static  ICdmEntitySessionManager getCurrentSessionManager() {
+
+    public static ICdmEntitySessionManager getCurrentSessionManager() {
         return getCurrentSessionManager(false);
     }
 
     public static  ICdmEntitySessionManager getCurrentSessionManager(boolean connecting) {
-        if (getDefault(connecting) != null) {
-            return getDefault(connecting).getSessionManager();
+        CdmStore cdmStore = getDefault(connecting);
+        if (cdmStore != null) {
+            return cdmStore.getSessionManager();
         }
         return null;
     }
@@ -465,7 +427,7 @@ public class CdmStore {
      */
     public static Language getDefaultLanguage() {
         if (getDefault().getLanguage() == null) {
-            getDefault().setLanguage(PreferencesUtil.getGlobalLanguage());
+            getDefault().setLanguage(PreferencesUtil.getPreferredDefaultLanguage());
         }
         return getDefault().getLanguage();
     }
@@ -525,7 +487,7 @@ public class CdmStore {
      * @return a boolean.
      */
     public static boolean isActive() {
-        return instance != null && instance.isConnected;
+        return instance != null && instance.isConnected();
     }
 
     public static ICdmSource getActiveCdmSource() {
@@ -634,12 +596,11 @@ public class CdmStore {
         return service;
     }
 
-    public static void setManagedServer(CdmServer server) {
-        managedServer = server;
+    public boolean isConnected() {
+        return isConnected;
     }
 
-    public static CdmServer getManagedServer() {
-        return managedServer;
+    public void setConnected(boolean isConnected) {
+        this.isConnected = isConnected;
     }
-
-}
+}
\ No newline at end of file
index 1ab8b6e166be2b8bf3dbfda009d00d4cca262a6a..24e93b69ae046229ad79a73b081a21e7a3d95a31 100644 (file)
@@ -21,13 +21,11 @@ import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.swt.widgets.Display;
 import org.springframework.core.io.Resource;
 
-import eu.etaxonomy.cdm.api.application.CdmApplicationController;
 import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
 import eu.etaxonomy.cdm.config.CdmSourceException;
 import eu.etaxonomy.cdm.config.ICdmSource;
 import eu.etaxonomy.cdm.database.DbSchemaValidation;
-import eu.etaxonomy.cdm.database.ICdmDataSource;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
@@ -100,13 +98,8 @@ class CdmStoreConnector extends Job {
             int oldPriority = Thread.currentThread().getPriority();
             try {
                 Thread.currentThread().setPriority(10);
-                applicationController = getApplicationController(cdmSource,subprogressMonitor);
+                applicationController = getApplicationController(cdmSource, subprogressMonitor);
                 MessagingUtils.informationDialog(Messages.CdmStoreConnector_SUCCESS, Messages.CdmStoreConnector_DATA_MODEL_CREATION_SUCCESSFUL);
-                //FIXME E4 migrate or delete because data source view is not used anymore
-//                CdmDataSourceViewPartE4 dataSourceView = (CdmDataSourceViewPartE4) WorkbenchUtility.getE4WrappedPart(AbstractUtility.getView("eu.etaxonomy.taxeditor.view.datasource", false));
-//                if(dataSourceView!=null){
-//                    dataSourceView.refresh();
-//                }
                 EventUtility.postEvent(WorkbenchEventConstants.REFRESH_DATASOURCE, true);
                 return Status.OK_STATUS;
             } catch (Exception e) {
@@ -160,17 +153,18 @@ class CdmStoreConnector extends Job {
                             }
                         });
 
-                        ICdmRepository applicationController = null;
+                        CdmApplicationRemoteController applicationController = null;
 
                         if (!monitor.isCanceled()) {
                             CdmProgressMonitorAdapter subprogressMonitor = CdmProgressMonitorAdapter
                                     .CreateSubMonitor(monitor, 3);
                             // genrerate new application controller
-                            applicationController = getApplicationController(cdmSource,subprogressMonitor);
+                            applicationController = getApplicationController(cdmSource, subprogressMonitor);
                         }
 
                         if (!monitor.isCanceled()) {
                             CdmStore.setInstance(applicationController, cdmSource);
+                            CdmStore.getTermManager().reset();
                             monitor.subTask(Messages.CdmStoreConnector_AUTHENTICATING_USER);
                             display.syncExec(()-> {
                                 try {
@@ -179,6 +173,7 @@ class CdmStoreConnector extends Job {
                                     //loginDialog.onComplete();
                                     CdmStore.getContextManager().notifyContextStart();
                                     loginDialog.onComplete();
+                                    //TODO AM: is this necessary to be done on display thread?
                                     new TermLoader().unloadAllTerms();
                                     Rank.initDefaultTerms();
                                     NomenclaturalStatusType.initDefaultTerms();
@@ -205,14 +200,8 @@ class CdmStoreConnector extends Job {
         }
     }
 
-    private ICdmRepository getApplicationController(ICdmSource cdmSource, CdmProgressMonitorAdapter subprogressMonitor) {
-        if(cdmSource instanceof ICdmDataSource) {
-            return  CdmApplicationController.NewInstance(applicationContextBean,
-                    (ICdmDataSource)cdmSource,
-                    dbSchemaValidation,
-                    false,
-                    subprogressMonitor);
-        } else if(cdmSource instanceof ICdmRemoteSource) {
+    private CdmApplicationRemoteController getApplicationController(ICdmSource cdmSource, CdmProgressMonitorAdapter subprogressMonitor) {
+        if(cdmSource instanceof ICdmRemoteSource) {
             return CdmApplicationRemoteController.NewInstance((ICdmRemoteSource)cdmSource,
                     subprogressMonitor,
                     null);
index 538b0121b8e5a05a3a6a614fd3dc289521246595..c1930324ce6bc599f010cbbd611e802176645fa4 100644 (file)
@@ -11,7 +11,8 @@ package eu.etaxonomy.taxeditor.store;
 import java.util.Observable;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.ui.IMemento;
 import org.springframework.security.authentication.BadCredentialsException;
@@ -22,14 +23,11 @@ import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.context.SecurityContextHolder;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.api.utility.CdmUserHelper;
-import eu.etaxonomy.cdm.api.utility.RoleProber;
-import eu.etaxonomy.cdm.api.utility.UserHelper;
+import eu.etaxonomy.cdm.api.util.CdmUserHelper;
+import eu.etaxonomy.cdm.api.util.RoleProberImpl;
+import eu.etaxonomy.cdm.api.util.UserHelper;
 import eu.etaxonomy.cdm.model.permission.Group;
 import eu.etaxonomy.cdm.model.permission.User;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.cdm.persistence.permission.Role;
 import eu.etaxonomy.taxeditor.model.IContextListener;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -39,13 +37,10 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
  *
  * @author n.hoffmann
  * @created 03.07.2009
- * @version 1.0
  */
-public class LoginManager extends Observable implements IConversationEnabled, IContextListener{
+public class LoginManager extends Observable implements IContextListener{
 
-       public static final Logger logger = Logger.getLogger(LoginManager.class);
-
-       private ConversationHolder conversation;
+       public static final Logger logger = LogManager.getLogger();
 
        public static final String INCORRECT_CREDENTIALS_MESSAGE = "Login and/or Password incorrect";
        public static final String ACCOUNT_LOCKED_MESSAGE = "Account is locked";
@@ -124,10 +119,8 @@ public class LoginManager extends Observable implements IConversationEnabled, IC
                e.printStackTrace();
                throw new CdmAuthenticationException(EMPTY_CREDENTIALS_MESSAGE, e);
            }
-
        }
 
-
        private void _logGrantedAuthotities(StringBuilder gaText, String indent,
                        Set<GrantedAuthority> gaSet) {
                for(GrantedAuthority ga : gaSet){
@@ -135,11 +128,6 @@ public class LoginManager extends Observable implements IConversationEnabled, IC
                }
        }
 
-       /**
-        * <p>getAuthenticatedUser</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.model.common.User} object.
-        */
        public User getAuthenticatedUser(){
                Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
 
@@ -156,22 +144,6 @@ public class LoginManager extends Observable implements IConversationEnabled, IC
                notifyObservers();
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
-        */
-       @Override
-       public void update(CdmDataChangeMap arg) {}
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
-        */
-       @Override
-       public ConversationHolder getConversationHolder() {
-               if(conversation == null){
-                       conversation = CdmStore.createConversation();
-               }
-               return conversation;
-       }
 
        /**
         * Whether the current user has the role admin
@@ -179,7 +151,7 @@ public class LoginManager extends Observable implements IConversationEnabled, IC
         * @return
         */
        public boolean isAdmin() {
-           boolean result = userHelper().userIs(new RoleProber(Role.ROLE_ADMIN));
+           boolean result = userHelper().userIs(new RoleProberImpl(Role.ROLE_ADMIN));
         return result;
        }
 
@@ -189,7 +161,7 @@ public class LoginManager extends Observable implements IConversationEnabled, IC
      * @return
      */
     public boolean isUserManager() {
-        boolean result = userHelper().userIs(new RoleProber(Role.ROLE_USER_MANAGER));
+        boolean result = userHelper().userIs(new RoleProberImpl(Role.ROLE_USER_MANAGER));
         return result;
     }
 
@@ -205,12 +177,10 @@ public class LoginManager extends Observable implements IConversationEnabled, IC
 
        @Override
        public void contextStart(IMemento memento, IProgressMonitor monitor){
-               conversation = CdmStore.createConversation();
        }
 
        @Override
        public void contextRefresh(IProgressMonitor monitor) {
-               conversation = CdmStore.createConversation();
        }
 
        @Override
index 856e8c37efe77abd36d31e25fcf82c23dfcdd5a6..12e2ca0c4843a1afd9d80df01e6b3b868319cfc4 100644 (file)
@@ -16,7 +16,6 @@ import java.util.List;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.swt.widgets.Display;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.api.service.IGroupService;
 import eu.etaxonomy.cdm.api.service.IMediaService;
@@ -26,6 +25,7 @@ import eu.etaxonomy.cdm.api.service.IReferenceService;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.IUserService;
+import eu.etaxonomy.cdm.api.service.config.FindOccurrencesConfigurator;
 import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
@@ -40,7 +40,7 @@ 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.TaxonBase;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.model.term.TermCollection;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
@@ -60,7 +60,7 @@ public class SearchManager {
 
     private static final int MAX_RESULTS_BEFORE_WARNING = 500;
 
-       public List<TaxonName> findNames(IIdentifiableEntityServiceConfigurator configurator, ConversationHolder conversation){
+       public List<TaxonName> findNames(IIdentifiableEntityServiceConfigurator configurator){
            List<TaxonName> records = CdmStore.getService(INameService.class).findByFullTitle(configurator.getClazz(), configurator.getTitleSearchStringSqlized(), configurator.getMatchMode(), configurator.getCriteria(), configurator.getPageSize(), configurator.getPageNumber(), configurator.getOrderHints(), configurator.getPropertyPaths());
            return records;
        }
@@ -119,7 +119,7 @@ public class SearchManager {
         * @param configurator the configurator to use for the search
         * @return a list of the SpecimenOrObservationBases matching the search parameters found
         */
-       public List<SpecimenOrObservationBase> findOccurrences(IIdentifiableEntityServiceConfigurator configurator, boolean showCountWarning){
+       public List<SpecimenOrObservationBase> findOccurrences(FindOccurrencesConfigurator configurator, boolean showCountWarning){
            // by default we do not show field units. This may be configured via preferences
            return findOccurrences(configurator, PreferencesUtil.getBooleanValue(IPreferenceKeys.BULK_EDITOR_OCCURRENCE_SHOW_FIELD_UNITS), showCountWarning);
        }
@@ -134,9 +134,9 @@ public class SearchManager {
         * @param showFieldUnits if <code>true</code> then also FieldUnits are searched
         * @return
         */
-       public List<SpecimenOrObservationBase> findOccurrences(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> configurator, boolean showFieldUnits,
+       public List<SpecimenOrObservationBase> findOccurrences(FindOccurrencesConfigurator configurator, boolean showFieldUnits,
                boolean showCountWarning){
-           List<SpecimenOrObservationBase> records = new ArrayList<SpecimenOrObservationBase>();
+           List<SpecimenOrObservationBase> records = new ArrayList<>();
                final List<String> BASE_OCCURRENCE_INIT_STRATEGY = Arrays.asList(new String[] {
                        "collection", //$NON-NLS-1$
                        "descriptions", //$NON-NLS-1$
@@ -160,12 +160,12 @@ public class SearchManager {
                }
                configurator.setPropertyPaths(occurrencePropertyPaths);
 
-        if(showCountWarning && checkLargeResult(CdmStore.getService(IOccurrenceService.class).countOccurrences(configurator))){
-            records = CdmStore.getService(IOccurrenceService.class).findByTitle(configurator).getRecords();
-        }
-        else{
+        if(showCountWarning && checkLargeResult(CdmStore.getService(IOccurrenceService.class).countOccurrences(configurator)) || !showCountWarning){
             records = CdmStore.getService(IOccurrenceService.class).findByTitle(configurator).getRecords();
         }
+//        else{
+//            records = CdmStore.getService(IOccurrenceService.class).findByTitle(configurator).getRecords();
+//        }
                return records;
        }
 
@@ -222,8 +222,8 @@ public class SearchManager {
      * @return
      */
     public List<UuidAndTitleCache<NamedArea>> findNamedAreas(
-            IIdentifiableEntityServiceConfigurator searchConfigurator, List<TermVocabulary> vocs) {
-        List<UuidAndTitleCache<NamedArea>> entities = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedArea(vocs, null, searchConfigurator.getTitleSearchString(), PreferencesUtil.getGlobalLanguage());
+            IIdentifiableEntityServiceConfigurator searchConfigurator, List<TermCollection> vocs) {
+        List<UuidAndTitleCache<NamedArea>> entities = CdmStore.getService(ITermService.class).getUuidAndTitleCache(NamedArea.class, vocs, null, searchConfigurator.getTitleSearchString(), PreferencesUtil.getGlobalLanguage(), null);
         return entities;
     }
 
index 028b1cc7c7362a0a367795a8456e54aff77e03eb..64d932fcdae8ae8b2a6f8a0a87180f3876d0091d 100644 (file)
@@ -21,9 +21,9 @@ import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.forms.widgets.ExpandableComposite;
 import org.eclipse.ui.forms.widgets.ScrolledForm;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.term.TermNode;
 import eu.etaxonomy.taxeditor.l10n.Messages;
@@ -37,8 +37,6 @@ import eu.etaxonomy.taxeditor.view.detail.CdmSectionPart;
 import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
 
 /**
- * <p>StoreUtil class.</p>
- *
  * @author n.hoffmann
  * @created 11.05.2009
  */
@@ -80,13 +78,20 @@ public class StoreUtil extends AbstractUtility {
        public static void reflowParentScrolledForm(Composite composite, boolean flushCashes){
         ScrolledForm scrolledForm = null;
         Composite parent = composite;
-        while(parent!=null && !(parent instanceof ScrolledForm)){
+        while(parent!=null && !(parent instanceof ScrolledForm) && !parent.isDisposed()){
             parent = parent.getParent();
         }
-        scrolledForm = (ScrolledForm)parent;
+        if (parent instanceof ScrolledForm){
+            scrolledForm = (ScrolledForm)parent;
+        }else if ( parent != null && !parent.isDisposed() && parent.getParent() != null && !parent.getParent().isDisposed() &&parent.getParent() instanceof ScrolledForm ){
+            scrolledForm = (ScrolledForm)parent.getParent();
+        }
+
         if(scrolledForm!=null){
-            scrolledForm.reflow(flushCashes);
-            scrolledForm.redraw();
+            if (!scrolledForm.isDisposed()){
+                scrolledForm.reflow(flushCashes);
+                scrolledForm.redraw();
+            }
         }
     }
 
@@ -157,8 +162,8 @@ public class StoreUtil extends AbstractUtility {
      * </ol>
      */
     public static int compareBySearchString(String searchString, String string1, String string2) {
-        string1 = string1.toLowerCase();
-        string2 = string2.toLowerCase();
+        string1 = CdmUtils.Nz(string1).toLowerCase();
+        string2 = CdmUtils.Nz(string2).toLowerCase();
         //1. search string at the beginning
         if(string1.startsWith(searchString)){
             if(!string2.startsWith(searchString)){
@@ -236,4 +241,4 @@ public class StoreUtil extends AbstractUtility {
         }
         return t;
     }
-}
+}
\ No newline at end of file
index 922835a6657bdde309aa307c7d083dd1cb961dcd..bec4a7fe2a530bffb4c602aa9a6818cf56b69578 100644 (file)
@@ -6,26 +6,31 @@
 * 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.store;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
+import org.apache.commons.lang3.StringUtils;
+
+import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
-import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
@@ -34,183 +39,320 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
  */
 public class TermManager {
 
-       private static final String TERMS = "terms";
-       private static final String TERM = "term";
-       private static final String HIDE = "hide";
-
-       private static final String CLASS = "class";
-       private static final String UUID_STRING = "uuid";
-
-
     private Map<Object, List> cachedTermMap = new HashMap<>();
 
+    // new cache for features!!
+    // dinstinguish preferences for both
+    // load at start
 
-    //new cache for features!!
-    //dinstinguish preferences for both
-    //load at start
+    public TermManager() {
+    }
 
-       public TermManager(){
-       }
+    public void reset() {
+        cachedTermMap = new HashMap<>();
+    }
 
-       public <T extends DefinedTermBase> List<T> getPreferredTerms(TermType termType){
-           List<?> terms = cachedTermMap.get(termType);
-           List<T> termBaseList = new ArrayList<>();
-           if(terms==null || terms.isEmpty()){
-               termBaseList = getFilteredTerms(TermStore.<T>getTerms(termType, null));
-               if (termBaseList != null){
-                   cachedTermMap.put(termType.getUuid(), termBaseList);
-               }
-           }else{
-               Iterator<?> iterator = terms.iterator();
+    public <T extends DefinedTermBase> List<T> getPreferredTerms(TermType termType) {
+        List<?> terms = cachedTermMap.get(termType.getUuid());
+        List<T> termBaseList = new ArrayList<>();
+        if (terms == null || terms.isEmpty()) {
+            termBaseList = getFilteredTerms(TermStore.<T> getTerms(termType, null));
+            if (termBaseList != null) {
+                cachedTermMap.put(termType.getUuid(), termBaseList);
+            }
+        } else {
+            Iterator<?> iterator = terms.iterator();
             List<UUID> uuids = new ArrayList<>();
-            while (iterator.hasNext()){
+            while (iterator.hasNext()) {
                 Object term = iterator.next();
-                if (term instanceof TermDto){
-                    TermDto dto = (TermDto)term;
+                if (term instanceof TermDto) {
+                    TermDto dto = (TermDto) term;
                     uuids.add(dto.getUuid());
-                }else {
-                    termBaseList.add((T)term);
+                } else {
+                    termBaseList.add((T) term);
                 }
-
             }
-            if (!uuids.isEmpty()){
+            if (!uuids.isEmpty()) {
                 termBaseList.addAll(getTerms(uuids, termType));
             }
-           }
+        }
         return termBaseList;
-       }
+    }
+    
+    public <T extends DefinedTermBase>List<TermDto> getPreferredTermsAsDto(TermType termType) {
+        List<?> terms = cachedTermMap.get(termType.getUuid());
+        List<TermDto> termsAsDto = new ArrayList<>();
+        if (terms == null || terms.isEmpty()) {
+            List<T> termBaseList = new ArrayList<>();
+            termBaseList = getFilteredTerms(TermStore.<T> getTerms(termType, null));
+            if (termBaseList != null) {
+                cachedTermMap.put(termType.getUuid(), termBaseList);
+            }
+            for (T term:termBaseList) {
+                termsAsDto.add(TermDto.fromTerm(term));
+            }
+        } else {
+            List<TermDto> termBaseList = new ArrayList<>();
+            Iterator<?> iterator = terms.iterator();
+            List<UUID> uuids = new ArrayList<>();
+            while (iterator.hasNext()) {
+                Object term = iterator.next();
+                if (term instanceof TermDto) {
+                    TermDto dto = (TermDto) term;
+                    termsAsDto.add(dto);
+                } else {
+                    termsAsDto.add(TermDto.fromTerm((T)term));
+                }
+            }
+            
+        }
+        return termsAsDto;
+    }
+
+    public <T extends DefinedTermBase> List<T> getPreferredTerms(TermVocabulary<T> termVocabulary) {
+        @SuppressWarnings("unchecked")
+        List<T> terms = cachedTermMap.get(termVocabulary.getUuid());
+        if (terms == null) {
+            terms = getFilteredTerms(new ArrayList<>(TermStore.getTerms(termVocabulary, null)));
+            cachedTermMap.put(termVocabulary.getUuid(), terms);
+        }
+        return terms;
+    }
+
+    public List<TermDto> getPreferredTerms(TermVocabularyDto termVocabularyDto) {
+        @SuppressWarnings("unchecked")
+        List<TermDto> terms = cachedTermMap.get(termVocabularyDto.getUuid());
+        if (terms == null || terms.isEmpty()) {
+            terms = getFilteredTermDtos(new ArrayList<>(termVocabularyDto.getTerms()));
+            cachedTermMap.put(termVocabularyDto.getUuid(), terms);
+        }
+        return terms;
+    }
+
+    public List<TermDto> getPreferredTerms(TermCollectionDto termVocabularyDto) {
+        @SuppressWarnings("unchecked")
+        List<TermDto> terms = cachedTermMap.get(termVocabularyDto.getUuid());
+        if (terms == null || terms.isEmpty()) {
+            terms = getFilteredTermDtos(new ArrayList<>(termVocabularyDto.getTerms()));
+            cachedTermMap.put(termVocabularyDto.getUuid(), terms);
+        }
+        return terms;
+    }
 
-       public <T extends DefinedTermBase> List<T> getPreferredTerms(TermVocabulary<T> termVocabulary){
-           @SuppressWarnings("unchecked")
+    public <T extends DefinedTermBase> List<T> getPreferredTerms(TermVocabulary<T> termVocabulary, Comparator comp) {
+        if (comp == null) {
+            comp = new DefaultTermComparator<>();
+        }
+        @SuppressWarnings("unchecked")
         List<T> terms = cachedTermMap.get(termVocabulary.getUuid());
-           if(terms==null){
-               terms = getFilteredTerms(new ArrayList<T>(TermStore.getTerms(termVocabulary,null)));
-               cachedTermMap.put(termVocabulary.getUuid(), terms);
-           }
-           return terms;
-       }
-
-   public List<TermDto> getPreferredTerms(TermVocabularyDto termVocabularyDto){
-       @SuppressWarnings("unchecked")
-       List<TermDto> terms = cachedTermMap.get(termVocabularyDto.getUuid());
-       if(terms==null || terms.isEmpty()){
-           terms = getFilteredTermDtos(new ArrayList<>(termVocabularyDto.getTerms()));
-           cachedTermMap.put(termVocabularyDto.getUuid(), terms);
-       }
-       return terms;
-   }
-
-   public <T extends DefinedTermBase> List<T> getPreferredTerms(TermVocabulary<T> termVocabulary,
-           Comparator comp){
-       if (comp == null){
-           comp = new DefaultTermComparator<T>();
-       }
-       @SuppressWarnings("unchecked")
-    List<T> terms = cachedTermMap.get(termVocabulary.getUuid());
-       List<T> termBaseList = new ArrayList<>();
-       if(terms==null){
-           termBaseList = getFilteredTerms(new ArrayList<T>(TermStore.getTerms(termVocabulary, comp)));
-           cachedTermMap.put(termVocabulary.getUuid(), termBaseList);
-       }else{
-           Iterator<?> iterator = terms.iterator();
-           List<UUID> uuids = new ArrayList<>();
-           while (iterator.hasNext()){
-               Object term = iterator.next();
-               if (term instanceof TermDto){
-                   TermDto dto = (TermDto)term;
-                   uuids.add(dto.getUuid());
-               }else {
-                   termBaseList.add((T)term);
-               }
-
-           }
-           if (!uuids.isEmpty()){
-               termBaseList.addAll(this.getTerms(uuids, DefinedTermBase.class));
-           }
-
-       }
-       termBaseList.sort(comp);
-       terms = termBaseList;
-       return terms;
-   }
-
-       public <T extends DefinedTermBase> List<T> getPreferredTerms(Class<T> clazz){
-           @SuppressWarnings("unchecked")
+        List<T> termBaseList = new ArrayList<>();
+        if (terms == null) {
+            termBaseList = getFilteredTerms(new ArrayList<>(TermStore.getTerms(termVocabulary, comp)));
+            cachedTermMap.put(termVocabulary.getUuid(), termBaseList);
+        } else {
+            Iterator<?> iterator = terms.iterator();
+            List<UUID> uuids = new ArrayList<>();
+            while (iterator.hasNext()) {
+                Object term = iterator.next();
+                if (term instanceof TermDto) {
+                    TermDto dto = (TermDto) term;
+                    uuids.add(dto.getUuid());
+                } else {
+                    termBaseList.add((T) term);
+                }
+            }
+
+            if (!uuids.isEmpty()) {
+                termBaseList.addAll(this.getTerms(uuids, DefinedTermBase.class));
+            }
+
+        }
+        termBaseList.sort(comp);
+        terms = termBaseList;
+        return terms;
+    }
+
+    public <T extends DefinedTermBase> List<T> getPreferredTerms(Class<T> clazz) {
+        @SuppressWarnings("unchecked")
+        List<T> terms = cachedTermMap.get(clazz);
+        if (terms == null) {
+            terms = getFilteredTerms(TermStore.getTerms(clazz));
+            cachedTermMap.put(clazz, terms);
+        }
+        return terms;
+    }
+    
+    public <T extends DefinedTermBase> List<TermDto> getPreferredTermsAsDto(Class<T> clazz) {
+        @SuppressWarnings("unchecked")
         List<T> terms = cachedTermMap.get(clazz);
-           if(terms==null){
-               terms = getFilteredTerms(TermStore.getTerms(clazz));
-               cachedTermMap.put(clazz, terms);
-
-           }
-           return terms;
-       }
-
-       /**
-        * Generic method to get term preferences for a term vocabulary
-        *
-        * @param initialTerms a {@link java.util.List} object.
-        * @return a {@link java.util.List} object.
-        */
-       public <T extends DefinedTermBase> List<T> getFilteredTerms(List<T> initialTerms){
-               List<T> filteredTerms = new ArrayList<>();
-               if (initialTerms == null || initialTerms.isEmpty()){
-                   return filteredTerms;
-               }
-
-               for (T term : initialTerms){
-                       if (term instanceof TaxonRelationshipTypeInverseContainer){
-                               if(!PreferencesUtil.getBooleanValue(getPrefName(term), true)){
-                                       T type = (T)((TaxonRelationshipTypeInverseContainer) term).getType();
-                                       filteredTerms.add(type);
-                               }
-                       }
-
-                       if(PreferencesUtil.getBooleanValue(getPrefName(term), true)){
-                               filteredTerms.add(term);
-                       }
-               }
-               if (filteredTerms.isEmpty()){
-                   //check for dtos
-                   List<TermDto> preferredTerms = null;
-                   if (initialTerms.get(0).getVocabulary() != null){
-                       preferredTerms = cachedTermMap.get(initialTerms.get(0).getVocabulary().getUuid());
-                   }
-                   if (preferredTerms == null){
-                       preferredTerms = cachedTermMap.get(initialTerms.get(0).getTermType());
-                   }
-                   if (preferredTerms == null){
-                       return initialTerms;
-                   }
-                   for (T term : initialTerms){
-                   if (preferredTerms.contains(TermDto.fromTerm(term))){
-                       filteredTerms.add(term);
-                   }
-               }
-                   if (filteredTerms.isEmpty()){
-                       return initialTerms;
-                   }
-               }
-
-               return filteredTerms;
-       }
-
-       /**
+        List<TermDto> termsAsDto = new ArrayList<>();
+        if (terms == null) {
+            terms = getFilteredTerms(TermStore.getTerms(clazz));
+            cachedTermMap.put(clazz, terms);
+        }
+        for (T term: terms) {
+            termsAsDto.add(TermDto.fromTerm(term));
+        }
+        return termsAsDto;
+    }
+
+    /**
      * Generic method to get term preferences for a term vocabulary
      *
-     * @param initialTerms a {@link java.util.List} object.
+     * @param initialTerms
+     *            a {@link java.util.List} object.
      * @return a {@link java.util.List} object.
      */
-    public List<TermDto> getFilteredTermDtos(List<TermDto> initialTerms){
+    public <T extends DefinedTermBase> List<T> getFilteredTerms(List<T> initialTerms) {
+        List<T> filteredTerms = new ArrayList<>();
+        if (initialTerms == null || initialTerms.isEmpty()) {
+            return filteredTerms;
+        }
 
+        for (T term : initialTerms) {
+            // if (term instanceof InverseTermWrapper){
+            // if(!PreferencesUtil.getBooleanValue(getPrefName(term), true)){
+            // T type = (T)((TaxonRelationshipTypeInverseContainer)
+            // term).getType();
+            // filteredTerms.add(type);
+            // }
+            // }
+            
+            List<UUID> availableLanguages = PreferencesUtil.createUUIDListFromStringPref(PreferencePredicate.AvailableLanguages.getKey(), false);
+            if (availableLanguages != null && availableLanguages.contains(term.getUuid())) {
+                filteredTerms.add(term);
+            }
+        }
+        if (filteredTerms.isEmpty()) {
+            // check for dtos
+            List<TermDto> preferredTerms = null;
+            if (initialTerms.get(0).getVocabulary() != null) {
+                preferredTerms = cachedTermMap.get(initialTerms.get(0).getVocabulary().getUuid());
+            }
+            if (preferredTerms == null) {
+                preferredTerms = cachedTermMap.get(initialTerms.get(0).getTermType().getUuid());
+            }
+            if (preferredTerms == null) {
+                return initialTerms;
+            }
+            for (T term : initialTerms) {
+                if (preferredTerms.contains(TermDto.fromTerm(term))) {
+                    filteredTerms.add(term);
+                }
+            }
+            if (filteredTerms.isEmpty()) {
+                return initialTerms;
+            }
+        }
+
+        return filteredTerms;
+    }
+    
+    /**
+     * Generic method to get term preferences for a term vocabulary
+     *
+     * @param initialTerms
+     *            a {@link java.util.List} object.
+     * @return a {@link java.util.List} object.
+     */
+    public <T extends DefinedTermBase> List<TermDto> getFilteredTermsAsDto(List<TermDto> initialTerms) {
         List<TermDto> filteredTerms = new ArrayList<>();
+        if (initialTerms == null || initialTerms.isEmpty()) {
+            return filteredTerms;
+        }
 
-        for (TermDto term : initialTerms){
-            //TODO:inverse terms!!
-            if(PreferencesUtil.getBooleanValue(getPrefNameByDto(term))){
+        for (TermDto term : initialTerms) {
+            if (PreferencesUtil.getBooleanValue(getPrefNameByDto(term), true)) {
                 filteredTerms.add(term);
             }
         }
-        if (filteredTerms.isEmpty()){
+        if (filteredTerms.isEmpty()) {
+            // check for dtos
+            List<TermDto> preferredTerms = null;
+            if (initialTerms.get(0).getVocabularyUuid() != null) {
+                preferredTerms = cachedTermMap.get(initialTerms.get(0).getVocabularyUuid());
+            }
+            if (preferredTerms == null) {
+                preferredTerms = cachedTermMap.get(initialTerms.get(0).getTermType().getUuid());
+            }
+            if (preferredTerms == null) {
+                return initialTerms;
+            }
+            for (TermDto term : initialTerms) {
+                if (preferredTerms.contains(term)) {
+                    filteredTerms.add(term);
+                }
+            }
+            if (filteredTerms.isEmpty()) {
+                return initialTerms;
+            }
+        }
+
+        return filteredTerms;
+    }
+    
+
+    public <T extends DefinedTermBase> List<T> createTermListFromString(String stringValue, TermType type) {
+        List<String> checked = new ArrayList<>();
+
+        if (stringValue != null) {
+            String[] listChecked = stringValue.split(";"); //$NON-NLS-1$
+            String[] listCheckedComma = stringValue.split(","); //$NON-NLS-1$
+            if (listChecked != null) {
+                checked = Arrays.asList(listChecked);
+            }
+            if (listCheckedComma != null && stringValue.contains(",")) { //$NON-NLS-1$
+                checked = Arrays.asList(listCheckedComma);
+            }
+        }
+        List<T> termsFromStringValues = getTermsFromStringValues(checked, type);
+        return termsFromStringValues;
+    }
+
+    protected <T extends DefinedTermBase> List<T> getTermsFromStringValues(List<String> listValue, TermType type) {
+        List<DefinedTermBase> termlist = new ArrayList<>();
+        ITermService termService = CdmStore.getService(ITermService.class);
+        List<UUID> uuidList = new ArrayList<>();
+
+        for (String s : listValue) {
+            if (StringUtils.isNotBlank(s)) {
+                UUID uuid = UUID.fromString(s);
+                uuidList.add(uuid);
+            }
+        }
+
+        List<T> allTerms = getTerms(uuidList, type);
+        if (!allTerms.isEmpty()) {
+            return allTerms;
+        }
+
+        if (!uuidList.isEmpty() && allTerms.isEmpty()) {
+            termlist = termService.find(new HashSet(uuidList));
+        } else {
+            termlist = termService.listByTermType(type, null, null, null, null);
+        }
+
+        return new ArrayList(termlist);
+    }
+
+    /**
+     * Generic method to get term preferences for a term vocabulary
+     *
+     * @param initialTerms
+     *            a {@link java.util.List} object.
+     * @return a {@link java.util.List} object.
+     */
+    public List<TermDto> getFilteredTermDtos(List<TermDto> initialTerms) {
+
+        List<TermDto> filteredTerms = new ArrayList<>();
+
+        for (TermDto term : initialTerms) {
+            // TODO:inverse terms!!
+            if (PreferencesUtil.getBooleanValue(getPrefNameByDto(term))) {
+                filteredTerms.add(term);
+            }
+        }
+        if (filteredTerms.isEmpty()) {
             return initialTerms;
         }
 
@@ -218,139 +360,127 @@ public class TermManager {
     }
 
     private <T extends TermBase> String getPrefName(T term) {
-        return term.getTermType()!=null?term.getTermType().toString()+term.getUuid().toString():""+term.getUuid().toString();
+        return term.getTermType() != null ? term.getTermType().toString() + term.getUuid().toString()
+                : "" + term.getUuid().toString();
     }
 
     private String getPrefNameByDto(TermDto term) {
-        return term.getTermType()!=null?term.getTermType().toString()+term.getUuid().toString():""+term.getUuid().toString();
+        return term.getTermType() != null ? term.getTermType().toString() + term.getUuid().toString()
+                : "" + term.getUuid().toString();
     }
 
-       private <T extends DefinedTermBase> TermVocabulary<T> getTermVocabulary(Collection<T> initialTerms){
+    private <T extends DefinedTermBase> TermVocabulary<T> getTermVocabulary(Collection<T> initialTerms) {
 
-               if(!initialTerms.isEmpty()){
-               T entity = initialTerms.iterator().next();
-               return entity.getVocabulary();
-           }
-           return null;
-       }
-
-       private  TermVocabularyDto getTermVocabularyByDto(Collection<TermDto> initialTerms){
-        if(!initialTerms.isEmpty()){
-            TermDto entity = initialTerms.iterator().next();
-            return entity.getVocabularyDto();
+        if (!initialTerms.isEmpty()) {
+            T entity = initialTerms.iterator().next();
+            return entity.getVocabulary();
         }
         return null;
     }
 
-
-       /**
-        * Generic method to set term preferences
-        *
-        * @param preferredTerms a {@link java.util.List} object.
-        * @param initialTerms a {@link java.util.List} object.
-        * @param <T> a T object.
-        */
-       public <T extends DefinedTermBase> void setPreferredTerms(Collection<T> preferredTerms, Collection<T> initialTerms){
-           TermVocabulary<T> voc = getTermVocabulary(initialTerms);
-               Collection<UUID> undesiredTermUuids = new ArrayList<>();
-               for(TermBase term : initialTerms){
-                       if(! preferredTerms.contains(term)){
-                               undesiredTermUuids.add(term.getUuid());
-                               PreferencesUtil.setBooleanValue(getPrefName(term), false);
-                       }else{
-                           PreferencesUtil.setBooleanValue(getPrefName(term), true);
-                       }
-               }
-               clearTermMapForTermVoc(voc.getUuid());
-       }
-
-
-       /**
+    /**
      * Generic method to set term preferences
      *
-     * @param preferredTerms a {@link java.util.List} object.
-     * @param initialTerms a {@link java.util.List} object.
-     * @param <T> a T object.
+     * @param preferredTerms
+     *            a {@link java.util.List} object.
+     * @param initialTerms
+     *            a {@link java.util.List} object.
+     * @param <T>
+     *            a T object.
      */
-    public  void setPreferredTermsByType(Collection<TermDto> preferredTerms, TermType type){
-        List<?> oldValues = getPreferredTerms(type);
-        if (oldValues != null){
-            for (Object term: oldValues){
-                if (term instanceof TermDto){
-                    PreferencesUtil.setBooleanValue(getPrefNameByDto((TermDto)term), false);
-                }else{
-                    PreferencesUtil.setBooleanValue(getPrefName((DefinedTermBase)term), false);
-                }
+    public <T extends DefinedTermBase> void setPreferredTerms(Collection<T> preferredTerms,
+            Collection<T> initialTerms) {
+        TermVocabulary<T> voc = getTermVocabulary(initialTerms);
+        Collection<UUID> undesiredTermUuids = new ArrayList<>();
+        for (TermBase term : initialTerms) {
+            if (!preferredTerms.contains(term)) {
+                undesiredTermUuids.add(term.getUuid());
+                PreferencesUtil.setBooleanValue(getPrefName(term), false);
+            } else {
+                PreferencesUtil.setBooleanValue(getPrefName(term), true);
             }
         }
-//        for(TermDto term : preferredTerms){
-//           PreferencesUtil.setBooleanValue(getPrefNameByDto(term), true);
-//
-//        }
+        clearTermMapForTermVoc(voc.getUuid());
+    }
 
+    /**
+     * Generic method to set term preferences
+     *
+     * @param preferredTerms
+     *            a {@link java.util.List} object.
+     * @param initialTerms
+     *            a {@link java.util.List} object.
+     * @param <T>
+     *            a T object.
+     */
+    public void setPreferredTermsByType(Collection<TermDto> preferredTerms, TermType type) {
         clearTermMapForTermType(type);
         List<TermDto> list = new ArrayList<>(preferredTerms);
-        cachedTermMap.put(type, list);
+        cachedTermMap.put(type.getUuid(), list);
     }
 
     /**
      * Generic method to set term preferences
      *
-     * @param preferredTerms a {@link java.util.List} object.
-     * @param initialTerms a {@link java.util.List} object.
-     * @param <T> a T object.
+     * @param preferredTerms
+     *            a {@link java.util.List} object.
+     * @param initialTerms
+     *            a {@link java.util.List} object.
+     * @param <T>
+     *            a T object.
      */
-    public void setPreferredTermsByDto(Collection<TermDto> preferredTerms, TermVocabularyDto vocDto){
+    public void setPreferredTermsByDto(Collection<TermDto> preferredTerms, TermCollectionDto termCollectionDto) {
 
-        List<TermDto> oldValues = getPreferredTerms(vocDto);
-        for (TermDto term: oldValues){
+        List<TermDto> oldValues = getPreferredTerms(termCollectionDto);
+        for (TermDto term : oldValues) {
             PreferencesUtil.setBooleanValue(getPrefNameByDto(term), false);
         }
         TermType type = null;
         boolean allSameType = true;
-        for(TermDto term : preferredTerms){
+        for (TermDto term : preferredTerms) {
             PreferencesUtil.setBooleanValue(getPrefNameByDto(term), true);
-           if (type == null){
-               type = term.getTermType();
-           }else if (!type.equals(term.getTermType())){
-               allSameType = false;
-           }
+            if (type == null) {
+                type = term.getTermType();
+            } else if (!type.equals(term.getTermType())) {
+                allSameType = false;
+            }
         }
 
-        //if (initialTerms.iterator().hasNext()){
-            clearTermMapForTermVoc(vocDto.getUuid());
-            List<TermDto> list = new ArrayList<>(preferredTerms);
-            cachedTermMap.put(vocDto.getUuid(), list);
-            if (allSameType){
-                cachedTermMap.put(type, list);
-            }
-        //}
+        // if (initialTerms.iterator().hasNext()){
+        clearTermMapForTermVoc(termCollectionDto.getUuid());
+        List<TermDto> list = new ArrayList<>(preferredTerms);
+        cachedTermMap.put(termCollectionDto.getUuid(), list);
+        if (allSameType) {
+            cachedTermMap.put(type, list);
+        }
+        // }
     }
 
+    public <T extends DefinedTermBase> void clearTermMapForTermVoc(UUID vocUuid) {
+        cachedTermMap.remove(vocUuid);
+    }
 
-       public <T extends DefinedTermBase> void clearTermMapForTermVoc(UUID vocUuid){
-           cachedTermMap.remove(vocUuid);
-       }
-
-       public void clearTermMapForTermType(TermType termType){
-        cachedTermMap.remove(termType);
+    public void clearTermMapForTermType(TermType termType) {
+        cachedTermMap.remove(termType.getUuid());
     }
 
-       /**
+    /**
      * Generic method to get term preferences for a term vocabulary
      *
-     * @param initialTerms a {@link java.util.List} object.
+     * @param initialTerms
+     *            a {@link java.util.List} object.
      * @return a {@link java.util.List} object.
      */
-    public <T extends DefinedTermBase> List<T> getTerms(List<UUID> uuidList, Class clazz){
+    public <T extends DefinedTermBase> List<T> getTerms(List<UUID> uuidList, Class clazz) {
 
         List<T> filteredTerms = new ArrayList<>();
+        @SuppressWarnings("unchecked")
         List<T> terms = TermStore.getTerms(clazz);
-        if (uuidList == null || uuidList.isEmpty()){
+        if (uuidList == null || uuidList.isEmpty()) {
             return terms;
         }
-        for (T term : terms){
-            if(uuidList.contains(term.getUuid())){
+        for (T term : terms) {
+            if (uuidList.contains(term.getUuid())) {
                 filteredTerms.add(term);
             }
         }
@@ -361,32 +491,34 @@ public class TermManager {
     /**
      * Generic method to get term preferences for a term vocabulary
      *
-     * @param initialTerms a {@link java.util.List} object.
+     * @param initialTerms
+     *            a {@link java.util.List} object.
      * @return a {@link java.util.List} object.
      */
-    public <T extends DefinedTermBase> List<T> getTerms(List<UUID> uuidList, TermType type){
+    public <T extends DefinedTermBase> List<T> getTerms(List<UUID> uuidList, TermType type) {
 
         List<T> filteredTerms = new ArrayList<>();
         List<T> terms = TermStore.getTerms(type, null);
-        if (uuidList == null || uuidList.isEmpty()){
+        if (uuidList == null || uuidList.isEmpty()) {
             return terms;
         }
-        for (T term : terms){
-            if(uuidList.contains(term.getUuid())){
+
+        for (T term : terms) {
+            if (uuidList.contains(term.getUuid())) {
                 filteredTerms.add(term);
             }
         }
-
         return filteredTerms;
     }
 
     /**
      * Generic method to get term preferences for a term vocabulary
      *
-     * @param initialTerms a {@link java.util.List} object.
+     * @param initialTerms
+     *            a {@link java.util.List} object.
      * @return a {@link java.util.List} object.
      */
-    public <T extends DefinedTermBase> List<T> getAllTerms(TermType type, Comparator comparator){
+    public <T extends DefinedTermBase> List<T> getAllTerms(TermType type, Comparator comparator) {
         List<T> terms = TermStore.getTerms(type, comparator);
         return terms;
     }
index cae6e4b39b17c650adea93db55ce99c13eac07ef..cda69dc85527dcbdf22e7c75db1ed9fa658f5367 100644 (file)
@@ -6,11 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.store;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashSet;
@@ -19,16 +17,14 @@ import java.util.Set;
 
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.name.Rank;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
-import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
@@ -38,7 +34,6 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
  *
  * @author n.hoffmann
  * @created 25.06.2009
- * @version 1.0
  */
 public class TermStore {
 
@@ -85,7 +80,7 @@ public class TermStore {
         * @return a sorted list of terms
         */
        public static <TERM extends DefinedTermBase> List<TERM> getTerms(Class<TERM> clazz, Comparator<TERM> comparator, boolean filtered){
-               List<TERM> terms = new ArrayList<TERM>();
+               List<TERM> terms = new ArrayList<>();
 
                ITermStoreEdgeCase<TERM> edgeCase = getEdgeCase(clazz);
                if(filtered && edgeCase != null){
@@ -95,15 +90,8 @@ public class TermStore {
                }
 
                return terms;
-
        }
 
-       /**
-        *
-        * @param termClass
-        * @param comparator
-        * @return
-        */
        private static <T extends DefinedTermBase> List<T> getTermsFromService(TermType termType, Comparator<T> comparator){
            if (comparator == null){
                comparator = new DefaultTermComparator<T>();
@@ -114,12 +102,6 @@ public class TermStore {
            return terms;
        }
 
-       /**
-        *
-        * @param termClass
-        * @param comparator
-        * @return
-        */
        private static <T extends DefinedTermBase> List<T> getTermsFromService(Class<T> termClass, Comparator<T> comparator){
                if (comparator == null){
                        comparator = new DefaultTermComparator<T>();
@@ -130,9 +112,6 @@ public class TermStore {
                return terms;
        }
 
-       /**
-        * @param term a {@link eu.etaxonomy.cdm.model.term.DefinedTermBase} object.
-        */
        public static void saveTerm(DefinedTermBase term){
                CdmStore.getService(ITermService.class).saveOrUpdate(term);
        }
@@ -157,10 +136,9 @@ public class TermStore {
        }
 
        /**
-        * Handingling of special cases
+        * Handling of special cases
         */
-
-       private static Set<ITermStoreEdgeCase<? extends DefinedTermBase>> termStoreEdgeCases = new HashSet<ITermStoreEdgeCase<? extends DefinedTermBase>>();
+       private static Set<ITermStoreEdgeCase<? extends DefinedTermBase>> termStoreEdgeCases = new HashSet<>();
 
        static {
                termStoreEdgeCases.add(new ITermStoreEdgeCase<Feature>() {
@@ -187,7 +165,7 @@ public class TermStore {
                        @Override
                        public List<MarkerType> getTerms() {
                                // filter out non technical markers
-                               List<MarkerType> nonTechnicalMarkerTypes = new ArrayList<MarkerType>();
+                               List<MarkerType> nonTechnicalMarkerTypes = new ArrayList<>();
                                List<MarkerType> markerTypes = TermStore.getTermsFromService(MarkerType.class, null);
 
                                for (Object type : markerTypes) {
@@ -211,26 +189,21 @@ public class TermStore {
                        public List<Rank> getTerms() {
                                if(PreferencesUtil.getSortRanksHierarchichally()){
                                        return TermStore.getTermsFromService(Rank.class, new Comparator<Rank>(){
-
-                                               @Override
-                                               public int compare(Rank o1, Rank o2) {
-                                                       return o1.compareTo(o2);
-                                               }
-
-                                       });
+                                                       @Override
+                                                       public int compare(Rank o1, Rank o2) {
+                                                               return o1.compareTo(o2);
+                                                       }
+                                               });
                                }else{
                                        return TermStore.getTermsFromService(Rank.class, null);
                                }
                        }
-
                });
                termStoreEdgeCases.add(new ITermStoreEdgeCase<PresenceAbsenceTerm>() {
-
                        @Override
                        public Class<PresenceAbsenceTerm> getTermClass() {
                                return PresenceAbsenceTerm.class;
                        }
-
                        @Override
                        public List<PresenceAbsenceTerm> getTerms() {
                                List<PresenceAbsenceTerm> presenceAbsenceTerms = TermStore.getTermsFromService(PresenceAbsenceTerm.class, null);
@@ -238,39 +211,37 @@ public class TermStore {
                                return presenceAbsenceTerms;
                        }
                });
-               termStoreEdgeCases.add(new ITermStoreEdgeCase<TaxonRelationshipTypeInverseContainer>() {
-
-                       @Override
-                       public Class<TaxonRelationshipTypeInverseContainer> getTermClass() {
-                               return TaxonRelationshipTypeInverseContainer.class;
-                       }
-
-                       @Override
-                       public List<TaxonRelationshipTypeInverseContainer> getTerms() {
-                               List<TaxonRelationshipType> excludeTaxonRelationshipTypes = Arrays.asList(new TaxonRelationshipType[]{
-                                       TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN(),
-                                       TaxonRelationshipType.MISAPPLIED_NAME_FOR(),
-                                       TaxonRelationshipType.ALL_RELATIONSHIPS()
-                               });
-
-                               List<TaxonRelationshipTypeInverseContainer> relationshipTypeInverseContainers = new ArrayList<TaxonRelationshipTypeInverseContainer>();
-
-                               List<TaxonRelationshipType> relationshipTypes = TermStore.getTerms(TaxonRelationshipType.class);
-
-                               relationshipTypes.removeAll(excludeTaxonRelationshipTypes);
-
-                               for (TaxonRelationshipType relationshipType : relationshipTypes){
-                                       if(!relationshipType.isSymmetric()){
-                                               TaxonRelationshipTypeInverseContainer inverseContainer = new TaxonRelationshipTypeInverseContainer(relationshipType, true);
-                                               relationshipTypeInverseContainers.add(inverseContainer);
-                                       }
-                                       TaxonRelationshipTypeInverseContainer container = new TaxonRelationshipTypeInverseContainer(relationshipType, false);
-                                       relationshipTypeInverseContainers.add(container);
-                               }
-
-                               return relationshipTypeInverseContainers;
-                       }
-               });
+//             termStoreEdgeCases.add(new ITermStoreEdgeCase<TaxonRelationshipTypeInverseContainer>() {
+//                     @Override
+//                     public Class<TaxonRelationshipTypeInverseContainer> getTermClass() {
+//                             return TaxonRelationshipTypeInverseContainer.class;
+//                     }
+//                     @Override
+//                     public List<TaxonRelationshipTypeInverseContainer> getTerms() {
+//                             List<TaxonRelationshipType> excludeTaxonRelationshipTypes = Arrays.asList(new TaxonRelationshipType[]{
+//                                     TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN(),
+//                                     TaxonRelationshipType.MISAPPLIED_NAME_FOR(),
+//                                     TaxonRelationshipType.ALL_RELATIONSHIPS()
+//                             });
+//
+//                             List<TaxonRelationshipTypeInverseContainer> relationshipTypeInverseContainers = new ArrayList<>();
+//
+//                             List<TaxonRelationshipType> relationshipTypes = TermStore.getTerms(TaxonRelationshipType.class);
+//
+//                             relationshipTypes.removeAll(excludeTaxonRelationshipTypes);
+//
+//                             for (TaxonRelationshipType relationshipType : relationshipTypes){
+//                                     if(!relationshipType.isSymmetric()){
+//                                             TaxonRelationshipTypeInverseContainer inverseContainer = new TaxonRelationshipTypeInverseContainer(relationshipType, true);
+//                                             relationshipTypeInverseContainers.add(inverseContainer);
+//                                     }
+//                                     TaxonRelationshipTypeInverseContainer container = new TaxonRelationshipTypeInverseContainer(relationshipType, false);
+//                                     relationshipTypeInverseContainers.add(container);
+//                             }
+//
+//                             return relationshipTypeInverseContainers;
+//                     }
+//             });
        }
 
        private static <T extends DefinedTermBase> ITermStoreEdgeCase<T> getEdgeCase(Class<T> termClass) {
@@ -291,4 +262,4 @@ public class TermStore {
                public abstract List<TERM> getTerms();
 
        }
-}
+}
\ No newline at end of file
index 6dab303b3321727b5c0ca0ca3a6fad8cdf0fae2f..8b9afebd54a92ed34d2f02d150cb117c63219c5f 100644 (file)
@@ -1,8 +1,8 @@
 /**\r
 * Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
 * http://www.e-taxonomy.eu\r
-* \r
+*\r
 * The contents of this file are subject to the Mozilla protected License Version 1.1\r
 * See LICENSE.TXT at the top of this package for the full license terms.\r
 */\r
@@ -13,28 +13,29 @@ import java.util.UUID;
 import eu.etaxonomy.cdm.model.term.VocabularyEnum;\r
 \r
 public class UsageTermCollection {\r
-       protected final static UUID uuidMarkersVocabulary = UUID.fromString("19dffff7-e142-429c-a420-5d28e4ebe305");\r
-       \r
+\r
+    protected final static UUID uuidMarkersVocabulary = UUID.fromString("19dffff7-e142-429c-a420-5d28e4ebe305");\r
+\r
        public final static UUID uuidUseMarkerType = UUID.fromString("2e6e42d9-e92a-41f4-899b-03c0ac64f039");\r
-       \r
+\r
        protected final static UUID uuidFeatureVocabulary = VocabularyEnum.Feature.getUuid(); //  UUID.fromString("b187d555-f06f-4d65-9e53-da7c93f8eaa8");\r
        protected final static UUID uuidPalmWebFeatureTree = UUID.fromString("72ccce05-7cc8-4dab-8e47-bf3f5fd848a0");\r
-       \r
-       \r
+\r
+\r
        protected final static UUID uuidUseRecordFeature = UUID.fromString("8125a59d-b4d5-4485-89ea-67306297b599");\r
-       \r
+\r
        protected final static UUID uuidUseSummaryFeature = UUID.fromString("6acb0348-c070-4512-a37c-67bcac016279");\r
-       \r
+\r
        public final static UUID uuidUseCategoryVocabulary = UUID.fromString("67430d7c-fd43-4e9d-af5e-d0dca3f74931");\r
        protected final static UUID uuidUseCategoryDummy = UUID.fromString("983a7184-6a51-489e-aca1-f21fc4fdbae3");\r
        protected final static UUID uuidUseSubCategoryDummy = UUID.fromString("a8d80223-5c79-4063-8c6b-4dc8681e9c62");\r
-       \r
+\r
        protected final static UUID uuidCountryVocabulary = UUID.fromString("116c51f1-e63a-46f7-a258-e1149a42868b");\r
        protected final static UUID uuidCountryDummy = UUID.fromString("761dddee-bfa2-41f4-82df-3a19c71adee0");\r
-       \r
+\r
        protected final static UUID uuidPlantPartVocabulary = UUID.fromString("369914fe-d54b-4063-99ce-abc81d30ad35");\r
        protected final static UUID uuidPlantPartDummy = UUID.fromString("30150a82-a12f-4278-96ad-7ce708efa082");\r
-       \r
+\r
        protected final static UUID uuidHumanGroupVocabulary = UUID.fromString("ca46cea5-bdf7-438d-9cd8-e2793d2178dc");\r
        protected final static UUID uuidHumanGroupDummy = UUID.fromString("c4b63327-2548-429d-8d55-81fdba5900a5");\r
        protected final static UUID uuidEthnicGroupDummy = UUID.fromString("3ca851e5-d0d4-41cd-9066-f79e246c36c2");\r
@@ -49,14 +50,14 @@ public class UsageTermCollection {
        public final static String humanGroupLabel = "Human Group";\r
        public final static String ethnicGroupLabel = "Ethnic Group";\r
        public final static String notAvailableLabel = "N/A";\r
-       \r
-       \r
-       \r
-       \r
-       \r
-       \r
 \r
 \r
-       \r
-       \r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
 }\r
index 5d148df3201ee6712c025ef56e22b17a82e05783..055c1afee8bd8cdd8c0a0988de401240bde80c8a 100644 (file)
@@ -8,7 +8,6 @@
 */\r
 package eu.etaxonomy.taxeditor.store;\r
 \r
-import java.net.URI;\r
 import java.net.URISyntaxException;\r
 \r
 import org.eclipse.core.runtime.IProgressMonitor;\r
@@ -17,10 +16,12 @@ import org.eclipse.core.runtime.NullProgressMonitor;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
 import eu.etaxonomy.cdm.api.service.ITermService;\r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
+import eu.etaxonomy.cdm.common.URI;\r
 import eu.etaxonomy.cdm.model.common.MarkerType;\r
 import eu.etaxonomy.cdm.model.description.Feature;\r
 import eu.etaxonomy.cdm.model.description.State;\r
 import eu.etaxonomy.cdm.model.term.DefinedTerm;\r
+import eu.etaxonomy.cdm.model.term.OrderedTermVocabulary;\r
 import eu.etaxonomy.cdm.model.term.TermType;\r
 import eu.etaxonomy.cdm.model.term.TermVocabulary;\r
 \r
@@ -43,7 +44,6 @@ public class UseObjectStore {
        private static Feature useSummaryFeature;\r
        private static Feature useRecordFeature;\r
 \r
-\r
        public static void reset() {\r
                isInitialized = false;\r
                useMarkerType = null;\r
@@ -81,7 +81,8 @@ public class UseObjectStore {
                        monitor = new NullProgressMonitor();\r
                }\r
 \r
-               ConversationHolder conversation = CdmStore.createConversation();\r
+               //TODO remove ConversationHolder as we do not use it anymore since remoting\r
+               ConversationHolder conversation = null; //CdmStore.createConversation();\r
 \r
                //retrieve terms and vocabularies from db\r
                useRecordFeature = (Feature) CdmStore.getService(ITermService.class).find(UsageTermCollection.uuidUseRecordFeature);\r
@@ -138,15 +139,15 @@ public class UseObjectStore {
 //                     if (palmWebFeatureTree != null){\r
 //                             CdmStore.getService(ITermTreeService.class).saveOrUpdate(palmWebFeatureTree);\r
 //                     }\r
-                       conversation.commit(true);\r
+\r
+//                     conversation.commit(true);\r
 \r
                }\r
-               conversation.close();\r
+//             conversation.close();\r
        }\r
 \r
-\r
        private static void createHumanGroupVocabulary(IProgressMonitor monitor,ConversationHolder conversation) {\r
-               TermVocabulary<DefinedTerm> humanGroupVocabulary =  CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidHumanGroupVocabulary);\r
+               TermVocabulary<DefinedTerm> humanGroupVocabulary = CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidHumanGroupVocabulary);\r
                if (humanGroupVocabulary == null){\r
                        monitor.subTask("create human group vocabulary");\r
                        URI termSourceUri = null;\r
@@ -156,7 +157,7 @@ public class UseObjectStore {
                                e.printStackTrace();\r
                        }\r
 \r
-                       humanGroupVocabulary = TermVocabulary.NewInstance(TermType.Modifier, UsageTermCollection.humanGroupLabel, UsageTermCollection.humanGroupLabel, null, termSourceUri);\r
+                       humanGroupVocabulary = TermVocabulary.NewInstance(TermType.Modifier, DefinedTerm.class, UsageTermCollection.humanGroupLabel, UsageTermCollection.humanGroupLabel, null, termSourceUri);\r
                        humanGroupVocabulary.setUuid(UsageTermCollection.uuidHumanGroupVocabulary);\r
 \r
                        DefinedTerm newDummyModifier = DefinedTerm.NewInstance(TermType.Modifier, UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);\r
@@ -172,9 +173,8 @@ public class UseObjectStore {
                }\r
        }\r
 \r
-\r
        private static void createPlantVocabulary(IProgressMonitor monitor, ConversationHolder conversation) {\r
-               TermVocabulary<DefinedTerm> plantPartVocabulary =  CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidPlantPartVocabulary);\r
+               TermVocabulary<DefinedTerm> plantPartVocabulary = CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidPlantPartVocabulary);\r
                if (plantPartVocabulary == null){\r
                        monitor.subTask("create plant part vocabulary");\r
                        URI termSourceUri = null;\r
@@ -183,7 +183,7 @@ public class UseObjectStore {
                        } catch (URISyntaxException e) {\r
                                e.printStackTrace();\r
                        }\r
-                       plantPartVocabulary = TermVocabulary.NewInstance(TermType.Modifier, UsageTermCollection.plantPartLabel, UsageTermCollection.plantPartLabel, null, termSourceUri);\r
+                       plantPartVocabulary = TermVocabulary.NewInstance(TermType.Modifier, DefinedTerm.class, UsageTermCollection.plantPartLabel, UsageTermCollection.plantPartLabel, null, termSourceUri);\r
                        plantPartVocabulary.setUuid(UsageTermCollection.uuidPlantPartVocabulary);\r
 \r
                        DefinedTerm newDummyModifier = DefinedTerm.NewInstance(TermType.Modifier, UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);\r
@@ -195,9 +195,8 @@ public class UseObjectStore {
                }\r
        }\r
 \r
-\r
        private static void createCountryVocabulary(IProgressMonitor monitor, ConversationHolder conversation) {\r
-               TermVocabulary<DefinedTerm> countryVocabulary =  CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidCountryVocabulary);\r
+               TermVocabulary<DefinedTerm> countryVocabulary = CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidCountryVocabulary);\r
                if (countryVocabulary == null){\r
                        monitor.subTask("create country vocabulary");\r
                        URI termSourceUri = null;\r
@@ -206,7 +205,7 @@ public class UseObjectStore {
                        } catch (URISyntaxException e) {\r
                                e.printStackTrace();\r
                        }\r
-                       countryVocabulary = TermVocabulary.NewInstance(TermType.Modifier, UsageTermCollection.countryLabel, UsageTermCollection.countryLabel, null, termSourceUri);\r
+                       countryVocabulary = TermVocabulary.NewInstance(TermType.Modifier, DefinedTerm.class, UsageTermCollection.countryLabel, UsageTermCollection.countryLabel, null, termSourceUri);\r
                        countryVocabulary.setUuid(UsageTermCollection.uuidCountryVocabulary);\r
 \r
                        DefinedTerm newDummyModifier = DefinedTerm.NewInstance(TermType.Modifier, UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);\r
@@ -218,9 +217,8 @@ public class UseObjectStore {
                }\r
        }\r
 \r
-\r
        private static void createStateVocabulary(IProgressMonitor monitor, ConversationHolder conversation) {\r
-               TermVocabulary<State> stateVocabulary =  CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidUseCategoryVocabulary);\r
+               TermVocabulary<State> stateVocabulary = CdmStore.getService(IVocabularyService.class).find(UsageTermCollection.uuidUseCategoryVocabulary);\r
                if (stateVocabulary == null){\r
                        monitor.subTask("create state vocabulary");\r
                        URI termSourceUri = null;\r
@@ -230,7 +228,7 @@ public class UseObjectStore {
                                e.printStackTrace();\r
                        }\r
 \r
-                       stateVocabulary = TermVocabulary.NewInstance(TermType.State, UsageTermCollection.useCategoryVocabularyLabel, UsageTermCollection.useCategoryVocabularyLabel, null, termSourceUri);\r
+                       stateVocabulary = OrderedTermVocabulary.NewOrderedInstance(TermType.State, State.class, UsageTermCollection.useCategoryVocabularyLabel, UsageTermCollection.useCategoryVocabularyLabel, null, termSourceUri);\r
                        stateVocabulary.setUuid(UsageTermCollection.uuidUseCategoryVocabulary);\r
 \r
                        State newDummyState = State.NewInstance(UsageTermCollection.notAvailableLabel, UsageTermCollection.notAvailableLabel, null);\r
@@ -246,7 +244,6 @@ public class UseObjectStore {
                }\r
        }\r
 \r
-\r
        private static void createUseMarkerType(ConversationHolder conversation) {\r
                useMarkerType = (MarkerType) CdmStore.getService(ITermService.class).find(UsageTermCollection.uuidUseMarkerType);\r
                if (useMarkerType == null){\r
@@ -258,6 +255,4 @@ public class UseObjectStore {
                        conversation.commit(true);\r
                }\r
        }\r
-\r
-\r
-}\r
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/AvailableTermsWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/AvailableTermsWizard.java
new file mode 100644 (file)
index 0000000..195805b
--- /dev/null
@@ -0,0 +1,81 @@
+/**
+* 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.termtree;
+
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.jface.wizard.Wizard;
+
+import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * <p>
+ * AvailableFeaturesWizard class.
+ * </p>
+ *
+ * @author n.hoffmann
+ * @created Aug 5, 2010
+ * @version 1.0
+ */
+public class AvailableTermsWizard extends Wizard {
+
+    private AvailableTermsWizardPage page;
+
+    private Set<DefinedTermBase> additionalFeatures;
+
+    private List<TermVocabularyDto> vocabularyDtos;
+
+    private boolean singleSelection = false;
+
+    public AvailableTermsWizard(TermType termType) {
+        vocabularyDtos = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(termType);
+    }
+
+    public AvailableTermsWizard(List<TermVocabularyDto> vocabularyDtos) {
+        this.vocabularyDtos = vocabularyDtos;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void addPages() {
+        page = new AvailableTermsWizardPage(vocabularyDtos, singleSelection);
+        addPage(page);
+    }
+
+    @Override
+    public boolean canFinish() {
+        int size = page.getSelectedFeatures().size();
+        return singleSelection ? size == 1 : size > 0;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public boolean performFinish() {
+        additionalFeatures = page.getSelectedFeatures();
+        if (singleSelection && additionalFeatures.size() > 1) {
+            MessagingUtils.warningDialog("Too many terms selected", this, "You can only select 1 term");
+        }
+        return additionalFeatures.size() > 0;
+    }
+
+    public Set<DefinedTermBase> getAdditionalFeatures() {
+        return additionalFeatures;
+    }
+
+    public void setSingleSelection(boolean singleSelection) {
+        this.singleSelection = singleSelection;
+    }
+}
similarity index 58%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/AvailableFeaturesWizardPage.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/AvailableTermsWizardPage.java
index 84dc238a28e2e71257ce1042510c580507bd78e7..3ab69bbc3b45cdfb69545da41d053d24061e5a77 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.featuretree;
+package eu.etaxonomy.taxeditor.termtree;
 
 import java.util.Arrays;
 import java.util.HashSet;
@@ -35,49 +35,50 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created Aug 5, 2010
  * @version 1.0
  */
-public class AvailableFeaturesWizardPage extends WizardPage {
+public class AvailableTermsWizardPage extends WizardPage {
 
     private CheckBoxTreeComposite treeComposite;
     private List<TermVocabularyDto> vocabularies;
 
-       protected AvailableFeaturesWizardPage(List<TermVocabularyDto> vocabularies, boolean singleSelection) {
-               super("Available Terms Wizard Page");
-               this.vocabularies = vocabularies;
-               setTitle("Available Terms");
-               if(singleSelection){
-                   setDescription("Please select one single term");
-               }
-               else{
-                   setDescription("Please select terms.");
-               }
-       }
+    protected AvailableTermsWizardPage(List<TermVocabularyDto> vocabularies, boolean singleSelection) {
+        super("Available Terms Wizard Page");
+        this.vocabularies = vocabularies;
+        setTitle("Available Terms");
+        if (singleSelection) {
+            setDescription("Please select one single term");
+        } else {
+            setDescription("Please select terms.");
+        }
+    }
 
-       /** {@inheritDoc} */
-       @Override
-       public void createControl(Composite parent) {
-        treeComposite = new CheckBoxTreeComposite(parent, new TermDtoContentProvider(), new TermDtoLabelProvider(), SWT.NONE);
+    /** {@inheritDoc} */
+    @Override
+    public void createControl(Composite parent) {
+        treeComposite = new CheckBoxTreeComposite(parent, new TermDtoContentProvider(), new TermDtoLabelProvider(),
+                SWT.NONE);
         treeComposite.getViewer().setComparator(new DefinedTermSorter());
         treeComposite.getViewer().setInput(vocabularies);
         treeComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
-        treeComposite.getViewer().addSelectionChangedListener(e->getWizard().getContainer().updateButtons());
+        treeComposite.getViewer().addSelectionChangedListener(e -> getWizard().getContainer().updateButtons());
 
-               setControl(treeComposite);
-       }
+        setControl(treeComposite);
+    }
 
-       public Set<DefinedTermBase> getSelectedFeatures() {
+    public Set<DefinedTermBase> getSelectedFeatures() {
 
         List<Object> checkedElements = Arrays.asList(treeComposite.getViewer().getCheckedElements());
-        checkedElements = checkedElements.stream().filter(element->element instanceof TermDto).collect(Collectors.toList());
+        checkedElements = checkedElements.stream().filter(element -> element instanceof TermDto)
+                .collect(Collectors.toList());
 
-               Set<DefinedTermBase> terms = new HashSet<>();
+        Set<DefinedTermBase> terms = new HashSet<>();
 
-               for(Object element : checkedElements){
-                   if(element instanceof TermDto){
-                       DefinedTermBase term = CdmStore.getService(ITermService.class).load(((TermDto) element).getUuid());
-                       terms.add(term);
-                   }
-               }
-               return terms;
-       }
+        for (Object element : checkedElements) {
+            if (element instanceof TermDto) {
+                DefinedTermBase term = CdmStore.getService(ITermService.class).load(((TermDto) element).getUuid());
+                terms.add(term);
+            }
+        }
+        return terms;
+    }
 
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/CharacterNodeDtoTransfer.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/CharacterNodeDtoTransfer.java
new file mode 100755 (executable)
index 0000000..d711a54
--- /dev/null
@@ -0,0 +1,151 @@
+/**
+* Copyright (C) 2020 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.termtree;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.EOFException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.eclipse.swt.SWTException;
+import org.eclipse.swt.dnd.ByteArrayTransfer;
+import org.eclipse.swt.dnd.TransferData;
+
+import eu.etaxonomy.cdm.api.service.ITermNodeService;
+import eu.etaxonomy.cdm.model.term.TermNode;
+import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.cdm.persistence.dto.CharacterNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since Oct 13, 2020
+ */
+public class CharacterNodeDtoTransfer extends ByteArrayTransfer {
+
+    private static CharacterNodeDtoTransfer instance = new CharacterNodeDtoTransfer();
+    private static final String TYPE_NAME = "featureNodeDto-transfer-format";
+    private static final int TYPEID = registerType(TYPE_NAME);
+
+    /**
+     * <p>Getter for the field <code>instance</code>.</p>
+     *
+     * @return a {@link eu.etaxonomy.taxeditor.termtree.FeatureNodeTransfer} object.
+     */
+    public static synchronized CharacterNodeDtoTransfer getInstance() {
+        return instance;
+    }
+
+    private CharacterNodeDtoTransfer() {
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected int[] getTypeIds() {
+        return new int[] { TYPEID };
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected String[] getTypeNames() {
+        return new String[] { TYPE_NAME };
+    }
+    @Override
+    protected void javaToNative(Object object, TransferData transferData) {
+        if (object != null){
+            byte[] bytes = toByteArray((TermNodeDto[]) object);
+            if (bytes != null) {
+                super.javaToNative(bytes, transferData);
+            }
+        }
+    }
+
+    @Override
+    protected Object nativeToJava(TransferData transferData) {
+        try{
+            byte[] bytes = (byte[]) super.nativeToJava(transferData);
+            if (bytes != null){
+                return fromByteArray(bytes);
+            }
+        }catch (SWTException e){
+            MessagingUtils.warningDialog("The new imported node needs to be saved first", this, "Newly created nodes can not be moved without saving");
+        }
+
+        return null;
+    }
+
+
+    protected byte[] toByteArray(TermNodeDto[] elements) {
+        ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
+        DataOutputStream out = new DataOutputStream(byteOut);
+
+        byte[] bytes = null;
+
+        try {
+            for(TermNodeDto element : elements){
+                if (element.getUuid() == null){
+                //  MessagingUtils.warningDialog("The new imported node needs to be saved first", this, "Newly created nodes can not be moved without saving");
+
+                }else{
+                    writeElementUuid(element, out);
+                }
+            }
+            out.close();
+            bytes = byteOut.toByteArray();
+        } catch (IOException e) {
+
+            // when in doubt send nothing
+        }
+        return bytes;
+    }
+
+    protected Object[] fromByteArray(byte[] bytes) {
+        DataInputStream in = new DataInputStream(
+                new ByteArrayInputStream(bytes));
+
+        try {
+            List<CharacterNodeDto> elements = new ArrayList<CharacterNodeDto>();
+
+            try{
+                while(true){
+                    UUID uuid = readElementUuid(in);
+                    elements.add(loadElement(uuid));
+                }
+            }catch(EOFException e){
+                return  elements.toArray();
+            }
+        } catch (IOException e) {
+            return null;
+        }
+    }
+
+    public CharacterNodeDto loadElement(UUID uuid){
+        TermNode node = CdmStore.getService(ITermNodeService.class).load(uuid);
+        TermTreeDto tree = TermTreeDto.fromTree((TermTree)node.getGraph());
+        return CharacterNodeDto.fromTermNode(node, tree);
+    }
+
+    public UUID readElementUuid(DataInputStream in) throws IOException{
+        return UUID.fromString(in.readUTF());
+    }
+
+    private void writeElementUuid(TermNodeDto element, DataOutputStream out) throws IOException {
+        out.writeUTF(element.getUuid().toString());
+    }
+
+
+}
similarity index 92%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/CharacterTransfer.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/CharacterTransfer.java
index 766f719f894e4b17a761de69f4d6c7695119bdfa..b8d6fc68f5aa4d1bfc094c8d94b5da56690c848e 100644 (file)
@@ -6,7 +6,7 @@
 * 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.featuretree;
+package eu.etaxonomy.taxeditor.termtree;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -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){
similarity index 63%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/TermChooseWizard.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermChooseWizard.java
index b68f393a2a7365f2f075fe62b14a0c2cfd12adb3..6ca1429ee618b40c474c9b710a570a9c6fc9e7af 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.featuretree;
+package eu.etaxonomy.taxeditor.termtree;
 
 import java.util.List;
 
@@ -29,20 +29,33 @@ public class TermChooseWizard extends Wizard {
        private List<AbstractTermDto> selectedTerms;
 
     private TermDto term;
+    private boolean skipStandartVocs = false;
+    private boolean skipManagedColls = true;
 
        public TermChooseWizard(TermDto term){
            this.term = term;
-
-
        }
 
+       public TermChooseWizard(TermDto term, boolean skipStandartVocs, boolean skipManagedColl){
+           this.term = term;
+           this.skipStandartVocs = skipStandartVocs;
+           this.skipManagedColls = skipManagedColl;
+       }
+       
     public List<AbstractTermDto> getSelectedTerms() {
         return selectedTerms;
     }
+    public boolean isSkipStandartVocs() {
+               return skipStandartVocs;
+       }
+
+       public void setSkipStandartVocs(boolean skipStandartVocs) {
+               this.skipStandartVocs = skipStandartVocs;
+       }
 
        @Override
        public void addPages() {
-               page = new TermChooseWizardPage(term);
+               page = new TermChooseWizardPage(term, skipStandartVocs, skipManagedColls);
                page.setPageComplete(false);
                addPage(page);
        }
similarity index 59%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/TermChooseWizardPage.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermChooseWizardPage.java
index e56809a2b58d916c1fe5e796db197bfdfb0e9e4b..490da988d3e23d258f9e4a2ce441b99b516ef964 100644 (file)
@@ -7,7 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
-package eu.etaxonomy.taxeditor.featuretree;
+package eu.etaxonomy.taxeditor.termtree;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -29,13 +29,41 @@ public class TermChooseWizardPage extends WizardPage {
 
     private TermSearchController controller;
     private TermDto term;
+    private boolean skipStandartVocs;
+    private boolean skipManagedColls = true;
 
-       protected TermChooseWizardPage(TermDto term) {
+       protected TermChooseWizardPage(TermDto term, boolean skipStandardVocs) {
                super("Term Choose Wizard");
                setTitle("Choose Parent");
                setDescription("Please search and select the parent term or vocabulary (if you want to move the term as root).");
                this.term = term;
+               this.skipStandartVocs = skipStandardVocs;
        }
+       
+       protected TermChooseWizardPage(TermDto term, boolean skipStandardVocs, boolean skipManagedColls) {
+        super("Term Choose Wizard");
+        setTitle("Choose Parent");
+        setDescription("Please search and select the parent term or vocabulary (if you want to move the term as root).");
+        this.term = term;
+        this.skipStandartVocs = skipStandardVocs;
+        this.skipManagedColls = skipManagedColls;
+    }
+
+       public boolean isSkipStandartVocs() {
+               return skipStandartVocs;
+       }
+
+       public void setSkipStandartVocs(boolean skipStandartVocs) {
+               this.skipStandartVocs = skipStandartVocs;
+       }
+       
+       public boolean isSkipManagedColls() {
+        return skipManagedColls;
+    }
+
+    public void setSkipManagedColls(boolean skipManagedColls) {
+        this.skipManagedColls = skipManagedColls;
+    }
 
        @Override
        public void createControl(Composite parent) {
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermNodeDtoTransfer.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermNodeDtoTransfer.java
new file mode 100755 (executable)
index 0000000..3257c9a
--- /dev/null
@@ -0,0 +1,148 @@
+/**
+* Copyright (C) 2020 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.termtree;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.EOFException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.eclipse.swt.SWTException;
+import org.eclipse.swt.dnd.ByteArrayTransfer;
+import org.eclipse.swt.dnd.TransferData;
+
+import eu.etaxonomy.cdm.api.service.ITermNodeService;
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.model.term.TermNode;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since Oct 13, 2020
+ */
+public class TermNodeDtoTransfer extends ByteArrayTransfer {
+
+    private static TermNodeDtoTransfer instance = new TermNodeDtoTransfer();
+    private static final String TYPE_NAME = "featureNodeDto-transfer-format";
+    private static final int TYPEID = registerType(TYPE_NAME);
+
+    /**
+     * <p>Getter for the field <code>instance</code>.</p>
+     *
+     * @return a {@link eu.etaxonomy.taxeditor.termtree.FeatureNodeTransfer} object.
+     */
+    public static synchronized TermNodeDtoTransfer getInstance() {
+        return instance;
+    }
+
+    private TermNodeDtoTransfer() {
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected int[] getTypeIds() {
+        return new int[] { TYPEID };
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected String[] getTypeNames() {
+        return new String[] { TYPE_NAME };
+    }
+    @Override
+    protected void javaToNative(Object object, TransferData transferData) {
+        if (object != null){
+            byte[] bytes = toByteArray((TermNodeDto[]) object);
+            if (bytes != null) {
+                super.javaToNative(bytes, transferData);
+            }
+        }
+    }
+
+    @Override
+    protected Object nativeToJava(TransferData transferData) {
+        try{
+            byte[] bytes = (byte[]) super.nativeToJava(transferData);
+            if (bytes != null){
+                return fromByteArray(bytes);
+            }
+        }catch (SWTException e){
+           MessagingUtils.warningDialog("The new imported node needs to be saved first", this, "Newly created nodes can not be moved without saving");
+        }
+
+        return null;
+    }
+
+
+    protected byte[] toByteArray(TermNodeDto[] elements) {
+        ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
+        DataOutputStream out = new DataOutputStream(byteOut);
+
+        byte[] bytes = null;
+
+        try {
+            for(TermNodeDto element : elements){
+                if (element.getUuid() == null){
+                //  MessagingUtils.warningDialog("The new imported node needs to be saved first", this, "Newly created nodes can not be moved without saving");
+
+                }else{
+                    writeElementUuid(element, out);
+                }
+            }
+            out.close();
+            bytes = byteOut.toByteArray();
+        } catch (IOException e) {
+
+            // when in doubt send nothing
+        }
+        return bytes;
+    }
+
+    protected Object[] fromByteArray(byte[] bytes) {
+        DataInputStream in = new DataInputStream(
+                new ByteArrayInputStream(bytes));
+
+        try {
+            List<TermNodeDto> elements = new ArrayList<TermNodeDto>();
+
+            try{
+                while(true){
+                    UUID uuid = readElementUuid(in);
+                    elements.add(loadElement(uuid));
+                }
+            }catch(EOFException e){
+                return  elements.toArray();
+            }
+        } catch (IOException e) {
+            return null;
+        }
+    }
+
+    public TermNodeDto loadElement(UUID uuid){
+        TermNode<Feature> node = CdmStore.getService(ITermNodeService.class).load(uuid);
+        return TermNodeDto.fromNode(node, null);
+    }
+
+    public UUID readElementUuid(DataInputStream in) throws IOException{
+        return UUID.fromString(in.readUTF());
+    }
+
+    private void writeElementUuid(TermNodeDto element, DataOutputStream out) throws IOException {
+        out.writeUTF(element.getUuid().toString());
+    }
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermNodeTransfer.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermNodeTransfer.java
new file mode 100644 (file)
index 0000000..5b0cf92
--- /dev/null
@@ -0,0 +1,149 @@
+/**
+ * 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.termtree;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.EOFException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import org.eclipse.swt.SWTException;
+import org.eclipse.swt.dnd.ByteArrayTransfer;
+import org.eclipse.swt.dnd.TransferData;
+
+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;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * <p>FeatureNodeTransfer class.</p>
+ *
+ * @author n.hoffmann
+ * @created Aug 5, 2010
+ */
+public class TermNodeTransfer extends ByteArrayTransfer {
+
+       private static TermNodeTransfer instance = new TermNodeTransfer();
+       private static final String TYPE_NAME = "featureNode-transfer-format";
+       private static final int TYPEID = registerType(TYPE_NAME);
+
+       /**
+        * <p>Getter for the field <code>instance</code>.</p>
+        *
+        * @return a {@link eu.etaxonomy.taxeditor.termtree.FeatureNodeTransfer} object.
+        */
+       public static synchronized TermNodeTransfer getInstance() {
+               return instance;
+       }
+
+       private TermNodeTransfer() {
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       protected int[] getTypeIds() {
+               return new int[] { TYPEID };
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       protected String[] getTypeNames() {
+               return new String[] { TYPE_NAME };
+       }
+       @Override
+    protected void javaToNative(Object object, TransferData transferData) {
+        if (object != null){
+            byte[] bytes = toByteArray((TermNode[]) object);
+            if (bytes != null) {
+                super.javaToNative(bytes, transferData);
+            }
+        }
+    }
+
+    @Override
+    protected Object nativeToJava(TransferData transferData) {
+        try{
+            byte[] bytes = (byte[]) super.nativeToJava(transferData);
+            if (bytes != null){
+                return fromByteArray(bytes);
+            }
+        }catch (SWTException e){
+            MessagingUtils.warningDialog("The new imported node needs to be saved first", this, "Newly created nodes can not be moved without saving");
+        }
+
+        return null;
+    }
+
+
+    protected byte[] toByteArray(TermNode[] elements) {
+        ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
+        DataOutputStream out = new DataOutputStream(byteOut);
+
+        byte[] bytes = null;
+
+        try {
+            for(TermNode element : elements){
+                if (element.getUuid() == null){
+                //                    MessagingUtils.warningDialog("The new imported node needs to be saved first", this, "Newly created nodes can not be moved without saving");
+
+                }else{
+                    writeElementUuid(element, out);
+                }
+            }
+            out.close();
+            bytes = byteOut.toByteArray();
+        } catch (IOException e) {
+
+            // when in doubt send nothing
+        }
+        return bytes;
+    }
+
+    protected Object[] fromByteArray(byte[] bytes) {
+        DataInputStream in = new DataInputStream(
+                new ByteArrayInputStream(bytes));
+
+        try {
+            List<TermNode> elements = new ArrayList<TermNode>();
+
+            try{
+                while(true){
+                    UUID uuid = readElementUuid(in);
+                    elements.add(loadElement(uuid));
+                }
+            }catch(EOFException e){
+                return  elements.toArray();
+            }
+        } catch (IOException e) {
+            return null;
+        }
+    }
+
+    public TermNode loadElement(UUID uuid){
+        TermNode<Feature> node = CdmStore.getService(ITermNodeService.class).load(uuid);
+        return node;
+    }
+
+    public UUID readElementUuid(DataInputStream in) throws IOException{
+        return UUID.fromString(in.readUTF());
+    }
+
+    private void writeElementUuid(Object element, DataOutputStream out) throws IOException {
+        out.writeUTF(((TermNode)element).getUuid().toString());
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermTreeContentProvider.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermTreeContentProvider.java
new file mode 100644 (file)
index 0000000..486c09e
--- /dev/null
@@ -0,0 +1,112 @@
+/**
+* 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.termtree;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermNode;
+import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+
+/**
+ * <p>TermTreeContentProvider class.</p>
+ *
+ * @author n.hoffmann
+ * @created Aug 5, 2010
+ */
+public class TermTreeContentProvider<T extends DefinedTermBase> implements ITreeContentProvider {
+
+    private Viewer viewer;
+    private TermNodeDto oldInput;
+    private TermNodeDto newInput;
+    private Map<UUID, TermNodeDto> uuidTermMap = new HashMap<>();
+
+       @Override
+       public void dispose() {}
+
+       @Override
+       public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+           this.viewer = viewer;
+           if (oldInput instanceof TermNodeDto){
+               this.oldInput = (TermNodeDto)oldInput;
+           }
+           if (newInput instanceof TermNodeDto){
+               this.newInput = (TermNodeDto)newInput;
+           }
+           if (oldInput instanceof TermTreeDto){
+               this.oldInput = ((TermTreeDto)oldInput).getRoot();
+           }
+           if (newInput instanceof TermTreeDto){
+            this.newInput = ((TermTreeDto)newInput).getRoot();
+        }
+       }
+
+       @Override
+       public Object[] getElements(Object inputElement) {
+               return this.getChildren(inputElement);
+       }
+
+       @Override
+       public Object[] getChildren(Object parentElement) {
+           if(parentElement instanceof TermTree){
+            List<TermNode<?>> children = ((TermTree) parentElement).getRootChildren();
+            return children.toArray();
+        }else if(parentElement instanceof TermNode){
+            List<TermNode<?>> children = ((TermNode) parentElement).getChildNodes();
+            return children.toArray();
+        }
+               if(parentElement instanceof TermTreeDto){
+                   if (((TermTreeDto) parentElement).getRoot() != null){
+                       List<TermNodeDto> children = ((TermTreeDto) parentElement).getRoot().getChildren();
+                       return children.toArray();
+                   }
+                       return new Object[]{};
+               }else if(parentElement instanceof TermNodeDto){
+                       List<TermNodeDto> children = ((TermNodeDto) parentElement).getChildren();
+                       return children.toArray();
+               }else if(parentElement instanceof List){
+                       return ((List<TermNodeDto>) parentElement).toArray();
+               }else{
+                       return new Object[]{};
+               }
+       }
+
+       @Override
+       public Object getParent(Object element) {
+           if(element instanceof TermNode){
+            return ((TermNode<?>) element).getParent();
+        }
+           if(element instanceof TermNodeDto){
+               TermNodeDto parent = uuidTermMap.get(((TermNodeDto) element).getParentUuid());
+               return parent;
+           }
+               return null;
+       }
+
+       public Map<UUID, TermNodeDto> getUuidTermMap() {
+        return uuidTermMap;
+    }
+
+       public void setUuidTermMap(Map<UUID, TermNodeDto> uuidTermMap) {
+        this.uuidTermMap = uuidTermMap;
+    }
+
+       @Override
+       public boolean hasChildren(Object element) {
+               return getChildren(element).length != 0;
+       }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermTreeLabelProvider.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermTreeLabelProvider.java
new file mode 100644 (file)
index 0000000..f90ce33
--- /dev/null
@@ -0,0 +1,82 @@
+/**
+* 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.termtree;
+
+import java.util.ArrayList;
+
+import org.eclipse.swt.graphics.Image;
+
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.Representation;
+import eu.etaxonomy.cdm.model.term.TermNode;
+import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoLabelProvider;
+import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+/**
+ * @author n.hoffmann
+ * @created Aug 5, 2010
+ */
+public class TermTreeLabelProvider extends TermDtoLabelProvider {
+
+    public TermTreeLabelProvider() {
+        showIdInVoc = PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS_IN_TREE_EDITOR, true);
+    }
+
+
+       @Override
+       public String getText(Object element) {
+               if(element instanceof TermTreeDto){
+                       TermTreeDto treeElement = (TermTreeDto)element;
+                       Representation rep = treeElement.getRepresentation(PreferencesUtil.getGlobalLanguage());
+                       return rep != null? rep.getLabel() :((TermTreeDto) element).getTitleCache()  ;
+               }else if(element instanceof TermNodeDto){
+                   TermDto term = ((TermNodeDto) element).getTerm();
+                   if(term!=null){
+//                     boolean showIdInVoc = PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS_IN_TREE_EDITOR, true);
+                       return super.getText(term);
+                   }
+
+               }else if(element instanceof TermNode){
+            DefinedTermBase<?> term = ((TermNode<?>) element).getTerm();
+            if(term!=null){
+                Representation rep = term.getRepresentation(PreferencesUtil.getGlobalLanguage());
+                if (rep == null){
+                    rep = term.getPreferredRepresentation(new ArrayList<Language>());
+                }
+                return rep != null? rep.getLabel() : term.getTitleCache();
+            }
+
+        }else if(element instanceof TermTree){
+            return ((TermTree<?>) element).getTitleCache();
+
+        }
+               return "No label provided";
+       }
+
+        @Override
+        public Image getImage(Object element) {
+            if (element instanceof TermTreeDto){
+                   TermTreeDto dto = (TermTreeDto)element;
+                   if (!dto.isFlat()){
+                       return ImageResources.getImage(ImageResources.HIERARCHICAL);
+                   }else{
+                       return ImageResources.getImage(ImageResources.FLAT);
+                   }
+
+               }
+               return null;
+        }
+}
\ No newline at end of file
similarity index 73%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreePropertyTester.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/TermTreePropertyTester.java
index a7240e246a50a8a92af64a15933bd3b6a60f679a..20a50f660291c2d0089af934ebd1c471e18b892a 100644 (file)
@@ -1,7 +1,7 @@
 /**
  *
  */
-package eu.etaxonomy.taxeditor.featuretree;
+package eu.etaxonomy.taxeditor.termtree;
 
 import org.eclipse.core.expressions.PropertyTester;
 import org.eclipse.jface.viewers.IStructuredSelection;
@@ -15,9 +15,9 @@ import eu.etaxonomy.cdm.model.term.TermTree;
  * @since Jan 30, 2019
  *
  */
-public class FeatureTreePropertyTester extends PropertyTester {
+public class TermTreePropertyTester extends PropertyTester {
 
-       private static final String FEATURE_TREE= "isFeatureTree"; //$NON-NLS-1$
+       private static final String FEATURE_TREE= "isTermTree"; //$NON-NLS-1$
 
        @Override
     public boolean test(Object receiver, String property, Object[] args,
@@ -31,14 +31,14 @@ public class FeatureTreePropertyTester extends PropertyTester {
                }
 
                if(FEATURE_TREE.equals(property)){
-                   return isFeatureTree(selectedElements);
+                   return isTermTree(selectedElements);
                }
                else{
                        return false;
                }
        }
 
-       private boolean isFeatureTree(Object[] selectedElements) {
+       private boolean isTermTree(Object[] selectedElements) {
            for (Object object : selectedElements){
                if(!(object instanceof TermTree)){
                    return false;
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/ICharacterEditor.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/ICharacterEditor.java
new file mode 100755 (executable)
index 0000000..635642e
--- /dev/null
@@ -0,0 +1,20 @@
+/**
+* Copyright (C) 2020 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.termtree.e4;
+
+
+import eu.etaxonomy.cdm.model.description.Character;
+
+/**
+ * @author k.luther
+ * @since Oct 29, 2020
+ */
+public interface ICharacterEditor extends ITermTreeEditor<Character> {
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/ITermTreeEditor.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/ITermTreeEditor.java
new file mode 100644 (file)
index 0000000..1781098
--- /dev/null
@@ -0,0 +1,52 @@
+/**
+* Copyright (C) 2018 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.termtree.e4;
+
+import java.util.UUID;
+
+import org.eclipse.jface.viewers.TreeViewer;
+
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermNode;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
+
+/**
+ * @author pplitzner
+ * @since Nov 22, 2018
+ */
+public interface ITermTreeEditor<T extends DefinedTermBase>
+        extends IPostOperationEnabled, IE4SavablePart, ICdmEntitySessionEnabled {
+
+    public TermType getTermType();
+
+    public TermNodeDto getNodeDtoForUuid(UUID nodeUuid);
+
+    public TermCollectionDto getTreeDtoForUuid(UUID treeUuid);
+
+    public void setNodeDtoForUuid(TermNodeDto node);
+
+    public void setTreeDtoForUuid(TermTreeDto tree);
+
+    public boolean checkDuplicates(UUID termUuid, UUID treeUuid);
+
+    public void addOperation(AbstractPostOperation<TermNode> operation);
+
+    public void setDirty();
+
+    public TreeViewer getViewer();
+
+    public void refresh();
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermNodeDragListener.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermNodeDragListener.java
new file mode 100644 (file)
index 0000000..fc305b1
--- /dev/null
@@ -0,0 +1,62 @@
+/**
+* Copyright (C) 2017 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.termtree.e4;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.dnd.DragSourceAdapter;
+import org.eclipse.swt.dnd.DragSourceEvent;
+
+import eu.etaxonomy.cdm.model.term.TermNode;
+import eu.etaxonomy.taxeditor.termtree.TermNodeTransfer;
+
+public class TermNodeDragListener extends DragSourceAdapter {
+
+    private final TreeViewer viewer;
+
+    public TermNodeDragListener(TreeViewer viewer) {
+        this.viewer = viewer;
+    }
+
+    /**
+     * Method declared on DragSourceListener
+     */
+    @Override
+    public void dragSetData(DragSourceEvent event) {
+        IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+        if (selection != null && !selection.isEmpty()) {
+            TermNode[] featureNodes = (TermNode[]) selection.toList().toArray(new TermNode[selection.size()]);
+            for (TermNode node : featureNodes) {
+                // if the termgraph is managed, it is not allowed to edit it.
+                if (node.getGraph().isManaged()) {
+                    return;
+                }
+
+            }
+            if (TermNodeTransfer.getInstance().isSupportedType(event.dataType)) {
+                event.data = featureNodes;
+            }
+
+        }
+
+    }
+
+    /**
+     * Method declared on DragSourceListener
+     */
+    @Override
+    public void dragStart(DragSourceEvent event) {
+        ISelection sel = viewer.getSelection();
+        event.doit = !viewer.getSelection().isEmpty() && ((IStructuredSelection) viewer.getSelection()).toList()
+                .stream().allMatch(element -> element instanceof TermNode);
+
+    }
+
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermNodeDtoDragListener.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermNodeDtoDragListener.java
new file mode 100755 (executable)
index 0000000..c84a756
--- /dev/null
@@ -0,0 +1,65 @@
+/**
+* Copyright (C) 2017 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.termtree.e4;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.dnd.DragSourceAdapter;
+import org.eclipse.swt.dnd.DragSourceEvent;
+
+import eu.etaxonomy.cdm.model.term.TermNode;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.taxeditor.termtree.TermNodeDtoTransfer;
+
+public class TermNodeDtoDragListener extends DragSourceAdapter {
+
+       private final TreeViewer viewer;
+
+       public TermNodeDtoDragListener(TreeViewer viewer) {
+               this.viewer = viewer;
+       }
+
+    /**
+     * Method declared on DragSourceListener
+     */
+    @Override
+    public void dragSetData(DragSourceEvent event) {
+        IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+        if(selection!=null && !selection.isEmpty()){
+            if (selection instanceof TreeSelection && ((TreeSelection)selection).getFirstElement() instanceof TermNodeDto){
+                TermNodeDto[] featureNodes = (TermNodeDto[]) selection.toList().toArray(new TermNodeDto[selection.size()]);
+                if (TermNodeDtoTransfer.getInstance().isSupportedType(event.dataType)) {
+                    event.data = featureNodes;
+                }
+            }
+        }
+    }
+
+       /**
+        * Method declared on DragSourceListener
+        */
+       @Override
+       public void dragStart(DragSourceEvent event) {
+           ISelection sel = viewer.getSelection();
+           if (sel instanceof TreeSelection && ((TreeSelection)sel).getFirstElement() instanceof TermNodeDto){
+            event.doit = !viewer.getSelection().isEmpty()
+                    && ((IStructuredSelection) viewer.getSelection()).toList()
+                    .stream().allMatch(element -> element instanceof TermNodeDto)
+                    && ((IStructuredSelection) viewer.getSelection()).toList()
+                    .stream().allMatch(element -> !((TermNodeDto)element).isExternallyManaged());
+           }else {
+               event.doit = !viewer.getSelection().isEmpty()
+                    && ((IStructuredSelection) viewer.getSelection()).toList()
+                    .stream().allMatch(element -> element instanceof TermNode);
+           }
+       }
+
+}
\ No newline at end of file
similarity index 64%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/FeatureTreeDropAdapter.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeDropAdapter.java
index c4fa003a7ef59982b7ce390c0728b396bc2b7bdd..d6db8c171709a841700e1526b1d983b8ea47e789 100644 (file)
@@ -6,7 +6,7 @@
 * 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.featuretree.e4;
+package eu.etaxonomy.taxeditor.termtree.e4;
 
 import java.util.Arrays;
 import java.util.Collection;
@@ -28,25 +28,25 @@ 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.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
 import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer;
 import eu.etaxonomy.taxeditor.editor.definedterm.e4.DefinedTermDropAdapterE4;
-import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
-import eu.etaxonomy.taxeditor.featuretree.e4.operation.AddFeatureOperation;
-import eu.etaxonomy.taxeditor.featuretree.e4.operation.AddOntologyTermOperation;
-import eu.etaxonomy.taxeditor.featuretree.e4.operation.MoveFeatureOperation;
 import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.termtree.TermNodeTransfer;
+import eu.etaxonomy.taxeditor.termtree.e4.operation.AddFeatureOperation;
+import eu.etaxonomy.taxeditor.termtree.e4.operation.AddOntologyTermOperation;
+import eu.etaxonomy.taxeditor.termtree.e4.operation.MoveFeatureOperation;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.TermVocabularySelectionDialog;
 import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrapper;
 
-public class FeatureTreeDropAdapter extends ViewerDropAdapter {
+public class TermTreeDropAdapter extends ViewerDropAdapter {
 
-    protected IFeatureTreeEditor editor;
+    protected ITermTreeEditor editor;
     private UISynchronize sync;
 
-    public FeatureTreeDropAdapter(IFeatureTreeEditor editor, Viewer viewer, UISynchronize sync) {
+    public TermTreeDropAdapter(ITermTreeEditor editor, Viewer viewer, UISynchronize sync) {
                super(viewer);
                this.editor = editor;
                this.sync = sync;
@@ -54,9 +54,9 @@ public class FeatureTreeDropAdapter extends ViewerDropAdapter {
 
        @Override
        public boolean performDrop(Object data) {
-           if(StoreUtil.promptCheckIsDirty(editor)){
-               return false;
-           }
+//         if(StoreUtil.promptCheckIsDirty(editor)){
+//             return false;
+//         }
                Object currentTarget = getCurrentTarget();
                TermNode target = null;
                if(currentTarget instanceof TermTree){
@@ -65,12 +65,19 @@ public class FeatureTreeDropAdapter extends ViewerDropAdapter {
                else if(currentTarget instanceof TermNode){
                    target = (TermNode) currentTarget;
                }
+
+               if (target.getUuid() == null){
+                   if(StoreUtil.promptCheckIsDirty(editor)){
+                   return false;
+               }
+               }
                int position = 0;
 
                if (target != null) {
                        int location = getCurrentLocation();
                        TermNode parent = target.getParent();
-                       if(parent!=null){
+                       if(parent !=null){
+
                            if (location == LOCATION_BEFORE) {
                                position = Math.max(0, parent.getIndex(target));
                                target = parent;
@@ -106,6 +113,7 @@ public class FeatureTreeDropAdapter extends ViewerDropAdapter {
                        if (droppedObject.equals(target)) {
                                return false;
                        }
+
                }
                for (Object droppedObject : droppedObjects) {
                    //check term type compatibility
@@ -125,63 +133,91 @@ public class FeatureTreeDropAdapter extends ViewerDropAdapter {
                     continue;
                 }
                    }
-                   if(droppedObject instanceof TermNode){
-                       TermNode droppedNode = (TermNode) droppedObject;
-                       int currentPosition = target.getIndex(droppedNode);
-                       if(currentPosition<position){
+                   if(droppedObject instanceof TermNodeDto){
+                       if (((TermNodeDto)droppedObject).getUuid() == null){
+                           if(StoreUtil.promptCheckIsDirty(editor)){
+                               return false;
+                           }
+                       }
+                       TermNodeDto droppedNode = (TermNodeDto) droppedObject;
+                       TermNodeDto oldParent = editor.getNodeDtoForUuid(droppedNode.getParentUuid());
+                       int currentPosition = oldParent.getIndex(droppedNode);
+
+                       if(currentPosition<position && target.equals(oldParent)){
                            position -= 1;
                        }
-                       MoveFeatureOperation operation = new MoveFeatureOperation(droppedNode, target, position, getCurrentOperation(), editor, editor);
-                       AbstractUtility.executeOperation(operation, sync);
+                       MoveFeatureOperation operation = new MoveFeatureOperation(droppedNode.getUuid(), target.getUuid(), droppedNode.getTerm().getUuid(), position, getCurrentOperation(), editor, editor);
+
+                       Object o = oldParent.getChildren().remove(currentPosition);
+                       target.getChildNodes().add(position, droppedNode);
+                       droppedNode.setParentUuid(target.getUuid());
+                       editor.setDirty();
+                       editor.addOperation(operation);
                    }
+                   if(droppedObject instanceof TermNode){
+                if (((TermNode)droppedObject).getUuid() == null){
+                    if(StoreUtil.promptCheckIsDirty(editor)){
+                        return false;
+                    }
+                }
+                TermNode droppedNode = (TermNode) droppedObject;
+                TermNode oldParent = droppedNode.getParent();
+                int currentPosition = oldParent.getIndex(droppedNode);
+
+                if(currentPosition<position && target.equals(oldParent)){
+                    position -= 1;
+                }
+                MoveFeatureOperation operation = new MoveFeatureOperation(droppedNode.getUuid(), target.getUuid(), droppedNode.getTerm().getUuid(), position, getCurrentOperation(), editor, editor);
+
+                oldParent.removeChild(droppedNode);
+                target.addChild(droppedNode, position);
+
+                editor.setDirty();
+                editor.addOperation(operation);
+            }
                    else if(droppedObject instanceof Feature){
                        Feature droppedFeature = (Feature) droppedObject;
                        AddFeatureOperation operation = new AddFeatureOperation(
                                droppedFeature.getUuid(),
-                               target, position, editor, editor);
-                       AbstractUtility.executeOperation(operation, sync);
-                   }
-                   else if(droppedObject instanceof TermDto){
-                       TermDto termDto = (TermDto) droppedObject;
-                       // check if target feature tree has the same type as the dropped term
-                       if(!termDto.getTermType().equals(targetType)){
-                           MessagingUtils.warningDialog(DefinedTermDropAdapterE4.TERM_TYPE_ERROR_TITLE, this, DefinedTermDropAdapterE4.TERM_TYPE_ERROR_MESSAGE);
-                           continue;
-                       }
-                       AddFeatureOperation operation = new AddFeatureOperation(
-                               termDto.getUuid(),
-                               target, position, editor, editor);
-                       AbstractUtility.executeOperation(operation, sync);
-                   }
-                   else if(droppedObject instanceof OntologyTermWrapper){
+                               target.getUuid(), position, editor, editor);
+                       target.addChild(droppedFeature, position);
+                       editor.setDirty();
+                       editor.addOperation(operation);
+                   } else if(droppedObject instanceof OntologyTermWrapper){
                        OntologyTermWrapper wrapper = (OntologyTermWrapper)droppedObject;
                        TermVocabulary vocabulary = wrapper.getTermVocabulary();
                        if(vocabulary==null){
                            vocabulary =  TermVocabularySelectionDialog.select(
                                    Messages.FeatureTreeDropAdapter_CHOOSE_VOC, viewer.getControl().getShell(), null);
+
                            if(vocabulary instanceof OrderedTermVocabulary){
                                MessagingUtils.warningDialog(Messages.FeatureTreeDropAdapter_IMPORT_NOT_POSSIBLE, this,
                                        Messages.FeatureTreeDropAdapter_ORDER_VOC_NOT_POSSIBLE);
                                return false;
                            }
+                    if(vocabulary == null){
+                        return false;
+                    }
+
                        }
-                       if(vocabulary==null){
-                           return false;
-                       }
-                       else{
-                           AddOntologyTermOperation operation = new AddOntologyTermOperation(wrapper, target, vocabulary, editor, editor);
-                           AbstractUtility.executeOperation(operation, sync);
-                       }
+
+
+                       AddOntologyTermOperation operation = new AddOntologyTermOperation(wrapper, target.getUuid(), vocabulary, editor, editor);
+
+                       editor.setDirty();
+                       editor.addOperation(operation);
+
                    }
                }
                viewer.refresh();
+
                return true;
        }
 
     @Override
     public boolean validateDrop(Object target, int operation, TransferData transferData) {
         boolean
-        isSupported = FeatureNodeTransfer.getInstance().isSupportedType(transferData);
+        isSupported = TermNodeTransfer.getInstance().isSupportedType(transferData);
         isSupported |= TermTransfer.getInstance().isSupportedType(transferData);
         isSupported |= LocalSelectionTransfer.getTransfer().isSupportedType(transferData);
         isSupported &= getViewer().getInput()!=null;
@@ -191,4 +227,6 @@ public class FeatureTreeDropAdapter extends ViewerDropAdapter {
         return isSupported;
     }
 
+
+
 }
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeDtoDropAdapter.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeDtoDropAdapter.java
new file mode 100755 (executable)
index 0000000..7953c0c
--- /dev/null
@@ -0,0 +1,312 @@
+/**
+* Copyright (C) 2017 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.termtree.e4;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.UUID;
+import java.util.stream.Collectors;
+
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerDropAdapter;
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.swt.dnd.TransferData;
+
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.model.term.IHasTermType;
+import eu.etaxonomy.cdm.model.term.OrderedTermVocabulary;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer;
+import eu.etaxonomy.taxeditor.editor.definedterm.e4.DefinedTermDropAdapterE4;
+import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
+import eu.etaxonomy.taxeditor.termtree.TermNodeDtoTransfer;
+import eu.etaxonomy.taxeditor.termtree.e4.operation.AddFeatureOperation;
+import eu.etaxonomy.taxeditor.termtree.e4.operation.AddOntologyTermOperation;
+import eu.etaxonomy.taxeditor.termtree.e4.operation.MoveFeatureOperation;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.TermVocabularySelectionDialog;
+import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrapper;
+
+public class TermTreeDtoDropAdapter extends ViewerDropAdapter {
+
+    protected ITermTreeEditor editor;
+    private UISynchronize sync;
+
+    public TermTreeDtoDropAdapter(ITermTreeEditor editor, Viewer viewer, UISynchronize sync) {
+               super(viewer);
+               this.editor = editor;
+               this.sync = sync;
+       }
+
+       @Override
+       public boolean performDrop(Object data) {
+               if (data == null){
+                       return false;
+               }
+               Object currentTarget = getCurrentTarget();
+               TermNodeDto target = null;
+               if(currentTarget instanceof TermTreeDto){
+                       if (((TermTreeDto) currentTarget).isManaged()) {
+                               return false;
+                       }
+                   target = ((TermTreeDto) currentTarget).getRoot();
+               }
+               else if(currentTarget instanceof TermNodeDto){
+                       if (((TermNodeDto) currentTarget).isExternallyManaged() ) {
+                               return false;
+                       }
+                   target = (TermNodeDto) currentTarget;
+               }
+
+               int position = 0;
+               int location = getCurrentLocation();
+               UUID parentUuid = target.getParentUuid();
+               if(parentUuid!=null){
+                   TermNodeDto parent = editor.getNodeDtoForUuid(parentUuid);
+                   if (parent == null){
+                   MessagingUtils.warningDialog("The new node needs to be saved first", this, "Newly created nodes can not be moved or used as parent without saving");
+                   return false;
+               }
+                   if (location == LOCATION_BEFORE) {
+                       position = Math.max(0, parent.getIndex(target));
+                       target = parent;
+                   }
+
+                   if (location == LOCATION_AFTER) {
+                       position = parent.getIndex(target)+1;
+                       target = parent;
+                   }
+               }
+
+               Collection<Object> droppedObjects = Collections.emptyList();
+               if(data instanceof Object[]){
+                   droppedObjects = Arrays.asList((Object[])data);
+               }
+               else if(data instanceof IStructuredSelection){
+                   droppedObjects = ((IStructuredSelection) data).toList();
+               }
+               TreeViewer viewer = (TreeViewer) getViewer();
+
+               // cannot drop a feature node onto itself
+               for (Object droppedObject : droppedObjects) {
+                   if(droppedObject==null){
+                       MessagingUtils.warningDialog(DefinedTermDropAdapterE4.MOVE_FAILED, this.getClass(),
+                               Messages.FeatureTreeDropAdapter_MOVE_FAILED_SAVE_MESSAGE);
+                       return false;
+                   }
+                       if (droppedObject.equals(target)) {
+                               return false;
+                       }
+
+               }
+               for (Object droppedObject : droppedObjects) {
+                   //check term type compatibility
+                   TermType targetType = target.getType();
+
+                   TermType droppedType = null;
+                   if(droppedObject instanceof IHasTermType){
+                       droppedType = ((IHasTermType)droppedObject).getTermType();
+                       if(droppedType!=null && !droppedType.equals(targetType) && !droppedType.isKindOf(targetType)){
+                           MessagingUtils.warningDialog(DefinedTermDropAdapterE4.TERM_TYPE_ERROR_TITLE, this, DefinedTermDropAdapterE4.TERM_TYPE_ERROR_MESSAGE);
+                           continue;
+                       }
+                   }
+                   else if(droppedObject instanceof TermDto){
+                       droppedType = ((TermDto)droppedObject).getTermType();
+                       if(droppedType!=null && !droppedType.equals(targetType) && !droppedType.isKindOf(targetType)){
+                    MessagingUtils.warningDialog(DefinedTermDropAdapterE4.TERM_TYPE_ERROR_TITLE, this, DefinedTermDropAdapterE4.TERM_TYPE_ERROR_MESSAGE);
+                    continue;
+                }
+                   }
+                   if(droppedObject instanceof TermNodeDto){
+                       if (((TermNodeDto)droppedObject).getUuid() == null || target.getUuid() == null){
+                           MessagingUtils.warningDialog("The new imported node needs to be saved first", this, "Newly created nodes can not be moved or used as parent without saving");
+                           return false;
+                       }
+                       TermNodeDto droppedNode = editor.getNodeDtoForUuid(((TermNodeDto) droppedObject).getUuid());
+                       ITermTreeEditor<?> sourceEditor = editor;
+                       if (droppedNode == null){
+                           //the node does not come from the same editor, need to find the source editor
+                           TermType type = ((TermNodeDto) droppedObject).getType();
+                           TermEditorInput termEditorInput = new TermEditorInput(type);
+
+                           EPartService partService = TaxeditorStorePlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getService(EPartService.class);
+                           List<MPart> alreadyOpenedEditors = partService.getParts().stream()
+                                   .filter(part->part.getObject()!=null && part.getObject() instanceof ITermTreeEditor)
+                                   .filter(part->((ITermTreeEditor<?>)part.getObject()).getTermType().equals(type))
+                                   .collect(Collectors.toList());
+
+                           if(!alreadyOpenedEditors.isEmpty()){
+                               //there should never be more than one already opened editor
+                               //so we just open the first
+                               sourceEditor = (ITermTreeEditor<?>)alreadyOpenedEditors.iterator().next().getObject();
+                               droppedNode = sourceEditor.getNodeDtoForUuid(((TermNodeDto) droppedObject).getUuid());
+                           }
+                       }
+                       if (droppedNode == null){
+                           return false;
+                       }
+
+                       TermNodeDto oldParent = sourceEditor.getNodeDtoForUuid(droppedNode.getParentUuid());
+                       boolean isCircle = checkCircle(droppedNode, target);
+                       if (isCircle || droppedNode.equals(target)){
+                           return false;
+                       }
+                       int currentPosition = oldParent.getIndex(droppedNode);
+
+                       if(currentPosition<position && target.equals(oldParent)){
+                           position -= 1;
+                       }
+                       MoveFeatureOperation operation = new MoveFeatureOperation(droppedNode.getUuid(), droppedNode.getTerm().getUuid(), target.getUuid(), position, getCurrentOperation(), editor, editor);
+
+                       Object o = oldParent.getChildren().remove(currentPosition);
+
+                       target.getChildren().add(position, droppedNode);
+                       droppedNode.setParentUuid(target.getUuid());
+                       editor.setNodeDtoForUuid(droppedNode);
+                       editor.setNodeDtoForUuid(target);
+                       editor.setNodeDtoForUuid(oldParent);
+                       editor.setDirty();
+                       editor.addOperation(operation);
+                   }
+                   else if(droppedObject instanceof Feature){
+                       Feature droppedFeature = (Feature) droppedObject;
+                       AddFeatureOperation operation = new AddFeatureOperation(
+                               droppedFeature.getUuid(),
+                               target.getUuid(), position, editor, editor);
+                       editor.setDirty();
+                       editor.addOperation(operation);
+                   }
+                   else if(droppedObject instanceof TermDto){
+                       TermDto termDto = (TermDto) droppedObject;
+                       // check if target feature tree has the same type as the dropped term
+                       if(!termDto.getTermType().equals(targetType)){
+                           MessagingUtils.warningDialog(DefinedTermDropAdapterE4.TERM_TYPE_ERROR_TITLE, this, DefinedTermDropAdapterE4.TERM_TYPE_ERROR_MESSAGE);
+                           continue;
+                       }
+                       AddFeatureOperation operation = new AddFeatureOperation(
+                               termDto.getUuid(),
+                               target.getUuid(), position, editor, editor);
+                       TermNodeDto newDto = new TermNodeDto(termDto, target, position, null, null, 0, null, null);
+
+                editor.setDirty();
+                       editor.addOperation(operation);
+                   }
+                   else if(droppedObject instanceof OntologyTermWrapper){
+                       OntologyTermWrapper wrapper = (OntologyTermWrapper)droppedObject;
+                       TermVocabulary<?> vocabulary = wrapper.getTermVocabulary();
+                       if(vocabulary==null){
+                           vocabulary =  TermVocabularySelectionDialog.select(
+                                   Messages.FeatureTreeDropAdapter_CHOOSE_VOC, viewer.getControl().getShell(), null);
+
+                           if(vocabulary instanceof OrderedTermVocabulary){
+                               MessagingUtils.warningDialog(Messages.FeatureTreeDropAdapter_IMPORT_NOT_POSSIBLE, this,
+                                       Messages.FeatureTreeDropAdapter_ORDER_VOC_NOT_POSSIBLE);
+                               return false;
+                           }
+                    if(vocabulary == null){
+                        return false;
+                    }
+                       }
+
+                       AddOntologyTermOperation operation = new AddOntologyTermOperation(wrapper, target.getUuid(), vocabulary, editor, editor);
+
+                       editor.setDirty();
+                       editor.addOperation(operation);
+
+                   }
+               }
+               editor.getViewer().refresh();
+               return true;
+       }
+
+    private boolean checkCircle(TermNodeDto droppedNode, TermNodeDto newParent) {
+        boolean result = false;
+       if (droppedNode.getChildren().contains(newParent) ){
+           return true;
+       }
+       if (newParent.getParentUuid() != null){
+           result = checkCircle(droppedNode, editor.getNodeDtoForUuid(newParent.getParentUuid()));
+
+       }
+       return result;
+    }
+
+    @Override
+    public boolean validateDrop(Object target, int operation, TransferData transferData) {
+        boolean
+        isSupported = TermNodeDtoTransfer.getInstance().isSupportedType(transferData);
+        isSupported |= TermTransfer.getInstance().isSupportedType(transferData);
+        isSupported |= LocalSelectionTransfer.getTransfer().isSupportedType(transferData);
+        isSupported &= getViewer().getInput()!=null;
+        DropTargetEvent event = this.getCurrentEvent();
+
+        TermTreeDto rootTree = null;
+        if (getSelectedObject() instanceof TermNodeDto){
+            TermNodeDto selectedNode = (TermNodeDto)getSelectedObject();
+            rootTree = (TermTreeDto) editor.getTreeDtoForUuid(selectedNode.getTreeUuid());
+            
+        }
+        if(target instanceof TermTreeDto && getCurrentLocation()!=ViewerDropAdapter.LOCATION_ON){
+            return false;
+        }
+        if (target == null){
+            return false;
+        }
+        if (target instanceof TermNodeDto && ((TermNodeDto)target).isFlat() && getCurrentLocation() == LOCATION_ON){
+            return false;
+        }
+        TermDto term = null;
+        if (getSelectedObject() instanceof TermNodeDto){
+            term = ((TermNodeDto)getSelectedObject()).getTerm();
+            isSupported = checkDuplication(target, rootTree, term);
+        }
+
+        if (term == null){
+            TermTransfer transfer = TermTransfer.getInstance();
+            if (transfer.getSelection() != null){
+               TermDto dto = transfer.getSelection();
+               isSupported = checkDuplication(target, rootTree, dto);
+
+            }
+        }
+        return isSupported;
+    }
+
+    private boolean checkDuplication(Object target, TermTreeDto rootTree, TermDto term) {
+        TermTreeDto targetTree = null;
+        if (target instanceof TermNodeDto){
+            targetTree = (TermTreeDto) editor.getTreeDtoForUuid(((TermNodeDto)target).getTreeUuid());
+        }else if (target instanceof TermTreeDto){
+            targetTree = (TermTreeDto)target;
+        }
+        if (targetTree != null && !targetTree.isAllowDuplicate()){
+            for (TermDto dto: targetTree.getTerms()){
+                if (dto != null && dto.getUuid().equals(term.getUuid()) && !(rootTree != null && targetTree.equals(rootTree))){
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeDtoEditorComposite.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeDtoEditorComposite.java
new file mode 100755 (executable)
index 0000000..c610c9b
--- /dev/null
@@ -0,0 +1,220 @@
+/**
+* Copyright (C) 2017 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.termtree.e4;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DragSourceListener;
+import org.eclipse.swt.dnd.DropTargetListener;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Tree;
+
+import eu.etaxonomy.cdm.api.service.ITermTreeService;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
+import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.termtree.CharacterNodeDtoTransfer;
+import eu.etaxonomy.taxeditor.termtree.TermTreeContentProvider;
+import eu.etaxonomy.taxeditor.termtree.TermTreeLabelProvider;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.FeatureTreeSelectionDialog;
+
+/**
+ * @author pplitzner
+ * @since Jun 19, 2017
+ */
+public class TermTreeDtoEditorComposite<T extends DefinedTermBase> extends Composite {
+
+    private TermCollectionDto featureTree;
+
+    private Label label_title;
+    private Text text_title;
+    private Button btnOpenFeatureTree;
+    private TreeViewer viewer;
+
+    private Map<UUID, TermNodeDto> nodeUuidMap = new HashMap<>();
+
+    public TermTreeDtoEditorComposite(Composite parent, int style) {
+        super(parent, style);
+        setLayout(new GridLayout(1, false));
+
+        Composite composite_treeTitle = new Composite(this, SWT.NULL);
+        composite_treeTitle.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+        GridLayout gl_composite_treeTitle = new GridLayout(3, false);
+        gl_composite_treeTitle.marginWidth = 0;
+        composite_treeTitle.setLayout(gl_composite_treeTitle);
+
+        label_title = new Label(composite_treeTitle, SWT.NULL);
+        label_title.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+        label_title.setText(Messages.TermTreeEditorComposite_FEATURE_TREE);
+
+        text_title = new Text(composite_treeTitle, SWT.BORDER);
+        text_title.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+        text_title.setEditable(false);
+
+        btnOpenFeatureTree = new Button(composite_treeTitle, SWT.NONE);
+        btnOpenFeatureTree.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1));
+        btnOpenFeatureTree.setToolTipText(Messages.TermTreeEditorComposite_OPEN_TREE);
+        btnOpenFeatureTree.setImage(ImageResources.getImage(ImageResources.BROWSE_ICON));
+
+        viewer = new TreeViewer(new Tree(this, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI));
+        Tree tree = viewer.getTree();
+        tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1));
+        viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+    }
+
+    public void init(String label, DragSourceListener dragSourceListener, DropTargetListener dropTargetListener,
+            ISelectionChangedListener viewerSelectionChangedListener, IDirtyMarkable dirtyMarkable,
+            ModifyListener textModifyListener) {
+        init(label, null, dragSourceListener, dropTargetListener, null, viewerSelectionChangedListener, null,
+                dirtyMarkable, textModifyListener);
+    }
+
+    public void init(String label, TermType termType, DragSourceListener dragSourceListener,
+            DropTargetListener dropTargetListener, ISelectionChangedListener viewerSelectionChangedListener,
+            IDirtyMarkable dirtyMarkable, ModifyListener textModifyListener) {
+        this.init(label, termType, dragSourceListener, dropTargetListener, null, viewerSelectionChangedListener, null,
+                dirtyMarkable, textModifyListener);
+    }
+
+    public void init(DragSourceListener dragSourceListener, DropTargetListener dropTargetListener, Transfer[] transfers,
+            ISelectionChangedListener viewerSelectionChangedListener,
+            SelectionListener openFeatureTreeSelectionListener, ModifyListener textModifyListener) {
+        init(null, null, dragSourceListener, dropTargetListener, transfers, viewerSelectionChangedListener,
+                openFeatureTreeSelectionListener, null, textModifyListener);
+    }
+
+    private void init(String label, TermType termType, DragSourceListener dragSourceListener,
+            DropTargetListener dropTargetListener, Transfer[] transfers,
+            ISelectionChangedListener viewerSelectionChangedListener,
+            SelectionListener openFeatureTreeSelectionListener, IDirtyMarkable dirtyMarkable,
+            ModifyListener textModifyListener) {
+        if (label != null) {
+            label_title.setText(label);
+        }
+
+        viewer.setContentProvider(new TermTreeContentProvider());
+        viewer.setLabelProvider(new TermTreeLabelProvider());
+
+        int ops = DND.DROP_COPY | DND.DROP_MOVE;
+        if (transfers == null) {
+            transfers = new Transfer[] { CharacterNodeDtoTransfer.getInstance(), TermTransfer.getInstance(), };
+        }
+        if (dragSourceListener != null) {
+            viewer.addDragSupport(ops, transfers, dragSourceListener);
+        }
+        if (dropTargetListener != null) {
+            viewer.addDropSupport(ops, transfers, dropTargetListener);
+        }
+
+        if (viewerSelectionChangedListener != null) {
+            viewer.addSelectionChangedListener(viewerSelectionChangedListener);
+        }
+
+        if (textModifyListener != null) {
+            text_title.addModifyListener(textModifyListener);
+        }
+
+        // add specific selection listener
+        if (openFeatureTreeSelectionListener != null) {
+            btnOpenFeatureTree.addSelectionListener(openFeatureTreeSelectionListener);
+        } else {
+            // add default selection listener
+            btnOpenFeatureTree.addSelectionListener(new SelectionAdapter() {
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    TermTree<T> tree = FeatureTreeSelectionDialog.select(getDisplay().getActiveShell(), null, termType);
+                    if (tree != null) {
+                        setSelectedTree(tree);
+                        if (dirtyMarkable != null) {
+                            dirtyMarkable.forceDirty();
+                        }
+                    }
+                }
+            });
+        }
+    }
+
+    public void setSelectedTree(TermTree<T> featureTree) {
+        this.featureTree = CdmStore.getService(ITermTreeService.class).getTermTreeDtoByUuid(featureTree.getUuid());
+        addChildNodesToMap(((TermTreeDto) this.featureTree).getRoot());
+        viewer.setInput(this.featureTree);
+
+        StoreUtil.setTextWithoutModifyListeners(text_title, featureTree != null ? featureTree.getTitleCache() : "");
+    }
+
+    private void addChildNodesToMap(TermNodeDto root) {
+        this.nodeUuidMap.put(root.getUuid(), root);
+        if (root.getTerm() != null) {
+            this.featureTree.addTerm(root.getTerm());
+        }
+        for (TermNodeDto child : root.getChildren()) {
+            addChildNodesToMap(child);
+        }
+
+    }
+
+    public TermCollectionDto getFeatureTree() {
+        return featureTree;
+    }
+
+    public Label getLabel_title() {
+        return label_title;
+    }
+
+    public Button getBtnOpenFeatureTree() {
+        return btnOpenFeatureTree;
+    }
+
+    public TreeViewer getViewer() {
+        return viewer;
+    }
+
+    public Map<UUID, TermNodeDto> getNodeUuidMap() {
+        return nodeUuidMap;
+    }
+
+    public void setNodeUuidMap(Map<UUID, TermNodeDto> nodeUuidMap) {
+        this.nodeUuidMap = nodeUuidMap;
+    }
+
+    /**
+     *
+     */
+    public void refresh() {
+        getViewer().setInput(getViewer().getInput());
+        addChildNodesToMap(((TermTreeDto) this.featureTree).getRoot());
+
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeEditor.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeEditor.java
new file mode 100644 (file)
index 0000000..3089844
--- /dev/null
@@ -0,0 +1,590 @@
+/**
+ * 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.termtree.e4;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.di.Focus;
+import org.eclipse.e4.ui.di.Persist;
+import org.eclipse.e4.ui.di.UIEventTopic;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.model.application.ui.MDirtyable;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.services.EMenuService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IMemento;
+
+import eu.etaxonomy.cdm.api.service.ITermNodeService;
+import eu.etaxonomy.cdm.api.service.ITermTreeService;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermNode;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.AnnotationDto;
+import eu.etaxonomy.cdm.persistence.dto.MarkerDto;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermTreeViewerComparator;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.IContextListener;
+import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
+import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
+import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.store.AppModelId;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.termtree.TermNodeDtoTransfer;
+import eu.etaxonomy.taxeditor.termtree.TermTreeContentProvider;
+import eu.etaxonomy.taxeditor.termtree.TermTreeLabelProvider;
+import eu.etaxonomy.taxeditor.termtree.e4.operation.AddFeatureOperation;
+import eu.etaxonomy.taxeditor.termtree.e4.operation.CreateFeatureTreeOperation;
+import eu.etaxonomy.taxeditor.workbench.part.IE4ViewerPart;
+
+/**
+ * @author pplitzner
+ * @date 06.06.2017
+ */
+public class TermTreeEditor<T extends DefinedTermBase> implements ITermTreeEditor, ISelectionChangedListener,
+        IE4ViewerPart, IPartContentHasDetails, IPartContentHasSupplementalData, IContextListener, IDirtyMarkable {
+
+    public static final String OPEN_COMMAND_ID = "eu.etaxonomy.taxeditor.store.openTermTreeEditor";
+
+    public static final List<String> TREE_PROPERTY_PATH = Arrays.asList(new String[] { "root", //$NON-NLS-1$
+            "root.children", //$NON-NLS-1$
+            "root.children.inapplicableIf", //$NON-NLS-1$
+            "root.children.inapplicableIf.term", //$NON-NLS-1$
+            "root.children.inapplicableIf.state", //$NON-NLS-1$
+            "root.children.onlyApplicableIf", //$NON-NLS-1$
+            "root.children.onlyApplicableIf.term", //$NON-NLS-1$
+            "root.children.onlyApplicableIf.state", //$NON-NLS-1$
+    });
+
+    private ICdmEntitySession cdmEntitySession;
+
+    @Inject
+    private ESelectionService selService;
+
+    @Inject
+    private MDirtyable dirty;
+
+    @Inject
+    private UISynchronize sync;
+
+    @Inject
+    private MPart thisPart;
+
+    private TreeViewer viewer;
+
+    Map<UUID, TermCollectionDto> trees;
+
+    Map<UUID, TermNodeDto> uuidTermMap = new HashMap<>();
+    Map<UUID, CreateFeatureTreeOperation> createOperationList = new HashMap<>();
+    List<AbstractPostOperation<TermNode>> operationList = new ArrayList<>();
+    List<TermNodeDto> listToUpdate = new ArrayList<>();
+
+    TermType termType;
+
+    @Inject
+    public TermTreeEditor() {
+        CdmStore.getContextManager().addContextListener(this);
+    }
+
+    @PostConstruct
+    public void createControl(Composite parent, EMenuService menuService) {
+        if (CdmStore.isActive()) {
+            initSession();
+        } else {
+            return;
+        }
+        parent.setLayout(new FillLayout());
+        viewer = new TreeViewer(parent);
+        TermTreeContentProvider<?> contentProvider = new TermTreeContentProvider<>();
+
+        viewer.setContentProvider(contentProvider);
+        viewer.setLabelProvider(new TermTreeLabelProvider());
+
+        int ops = DND.DROP_COPY | DND.DROP_MOVE;
+        Transfer[] transfers = new Transfer[] { TermNodeDtoTransfer.getInstance(), TermTransfer.getInstance(),
+                LocalSelectionTransfer.getTransfer() };
+        viewer.addDragSupport(ops, transfers, new TermNodeDtoDragListener(viewer));
+        viewer.addDropSupport(ops, transfers, new TermTreeDtoDropAdapter(this, viewer, sync));
+        viewer.addSelectionChangedListener(this);
+        viewer.getTree().addKeyListener(new KeyAdapter() {
+            @Override
+            public void keyPressed(KeyEvent e) {
+                if (e.stateMask == SWT.MOD1 && e.keyCode == 'c') {
+                    copy(viewer.getStructuredSelection());
+                } else if (e.stateMask == SWT.MOD1 && e.keyCode == 'v') {
+                    paste(viewer.getStructuredSelection());
+                }
+            }
+        });
+
+        updateTrees();
+        viewer.setComparator(new TermTreeViewerComparator());
+        viewer.setInput(getTrees());
+        contentProvider.setUuidTermMap(uuidTermMap);
+        // create context menu
+        menuService.registerContextMenu(viewer.getControl(),
+                AppModelId.POPUPMENU_EU_ETAXONOMY_TAXEDITOR_STORE_POPUPMENU_FEATURETREEEDITOR);
+    }
+
+    public void init(TermType type, String label) {
+        this.termType = type;
+        updateTrees();
+        viewer.setComparator(new TermTreeViewerComparator());
+        viewer.setInput(getTrees());
+        ((TermTreeContentProvider) viewer.getContentProvider()).setUuidTermMap(uuidTermMap);
+        thisPart.setLabel(label);
+    }
+
+    // protected abstract List<TermTreeDto> getTrees();
+
+    public void paste(IStructuredSelection selection) {
+        ISelection clipBoardSelection = LocalSelectionTransfer.getTransfer().getSelection();
+        Object firstElement = selection.getFirstElement();
+        TermNodeDto parentNode = null;
+        if (firstElement instanceof TermNodeDto) {
+            parentNode = (TermNodeDto) firstElement;
+        } else if (firstElement instanceof TermTreeDto) {
+            parentNode = ((TermTreeDto) firstElement).getRoot();
+        }
+        if (parentNode != null) {
+
+            TermNodeDto copiedNode = (TermNodeDto) ((IStructuredSelection) clipBoardSelection).getFirstElement();
+            boolean isDuplicate = this.checkDuplicates(copiedNode.getTerm().getUuid(), parentNode.getTreeUuid());
+            if (isDuplicate && !parentNode.isAllowsDuplicats()) {
+                MessagingUtils.informationDialog(Messages.AddFeatureHandler_Duplicates_not_allowed,
+                        Messages.AddFeatureHandler_Duplicates_not_allowed_message + "\n"
+                                + copiedNode.getTerm().getTitleCache());
+                return;
+            }
+            TermNodeDto newDto = new TermNodeDto(copiedNode.getTerm(), parentNode, 0, null, null, 0,
+                    null, null);
+            this.refresh();
+            this.setDirty();
+            AddFeatureOperation operation = new AddFeatureOperation(copiedNode.getTerm().getUuid(), parentNode, this,
+                    this);
+            // AbstractUtility.executeOperation(operation, sync);
+            this.addOperation(operation);
+        }
+    }
+
+    public void copy(IStructuredSelection selection) {
+        LocalSelectionTransfer.getTransfer().setSelection(selection);
+    }
+
+    private void initSession() {
+        if (cdmEntitySession == null) {
+            cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+        }
+    }
+
+    private void clearSession() {
+        if (cdmEntitySession != null) {
+            cdmEntitySession.dispose();
+            cdmEntitySession = null;
+        }
+        dirty.setDirty(false);
+    }
+
+    @Override
+    public boolean isDirty() {
+        return dirty.isDirty();
+    }
+
+    public void setDirty(boolean isDirty) {
+        this.dirty.setDirty(isDirty);
+    }
+
+    @Override
+    public void setDirty() {
+        this.dirty.setDirty(true);
+    }
+
+    @Override
+    public void selectionChanged(SelectionChangedEvent event) {
+        // propagate selection
+        selService.setSelection(event.getSelection());
+    }
+
+    @Focus
+    public void focus() {
+        if (viewer != null) {
+            viewer.getControl().setFocus();
+        }
+        if (cdmEntitySession != null) {
+            cdmEntitySession.bind();
+        }
+        if (viewer.getSelection().isEmpty()) {
+            viewer.setSelection(null);
+        }
+    }
+
+    @Override
+    public void refresh() {
+        viewer.refresh();
+    }
+
+    @Override
+    public TreeViewer getViewer() {
+        return viewer;
+    }
+
+    @Override
+    public IStructuredSelection getSelection() {
+        return (IStructuredSelection) viewer.getSelection();
+    }
+
+    @Override
+    @Persist
+    public void save(IProgressMonitor monitor) {
+
+        ISelection sel = this.viewer.getSelection();
+
+        if (createOperationList != null && !createOperationList.isEmpty()) {
+            for (CreateFeatureTreeOperation operation : createOperationList.values()) {
+                TermCollectionDto termDto = getTreeDtoForUuid(operation.getElementUuid());
+                operation.getElement().setTitleCache(termDto.getTitleCache(), true);
+                operation.getElement().setAllowDuplicates(termDto.isAllowDuplicate());
+                operation.getElement().setFlat(termDto.isFlat());
+                operation.getElement().setOrderRelevant(termDto.isOrderRelevant());
+                AbstractUtility.executeOperation(operation, sync);
+            }
+            createOperationList.clear();
+        }
+
+        if (operationList != null && !operationList.isEmpty()) {
+            for (AbstractPostOperation<TermNode> operation : operationList) {
+                AbstractUtility.executeOperation(operation, sync);
+            }
+            operationList.clear();
+        }
+
+        CdmStore.getService(ITermNodeService.class).saveTermNodeDtoList(listToUpdate);
+        listToUpdate.clear();
+        List<TermTreeDto> rootEntities = getRootEntities();
+        UpdateResult result = CdmStore.getService(ITermTreeService.class).saveOrUpdateTermTreeDtoList(rootEntities);
+
+        this.setDirty(false);
+        initializeTrees();
+        this.viewer.setSelection(sel);
+        // this.viewer.setExpandedElements(expandedElements);
+    }
+
+    private void initializeTrees() {
+        Object[] expandedElements = viewer.getExpandedElements();
+        viewer.getTree().removeAll();
+        updateTrees();
+        viewer.setInput(getTrees());
+        viewer.setExpandedElements(expandedElements);
+    }
+
+    @PreDestroy
+    public void dispose() {
+        selService.setSelection(null);
+        clearSession();
+    }
+
+    @Override
+    public ICdmEntitySession getCdmEntitySession() {
+        return cdmEntitySession;
+    }
+
+    @Override
+    public Map<Object, List<String>> getPropertyPathsMap() {
+        List<String> propertyPaths = Arrays.asList(new String[] { "children", //$NON-NLS-1$
+                "term", //$NON-NLS-1$
+                "termTree", //$NON-NLS-1$
+        });
+        Map<Object, List<String>> propertyPathMap = new HashMap<>();
+        propertyPathMap.put(TermNode.class, propertyPaths);
+        return propertyPathMap;
+    }
+
+    @Override
+    public List<TermTreeDto> getRootEntities() {
+        return (List<TermTreeDto>) viewer.getInput();
+    }
+
+    @Override
+    public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
+    }
+
+    @Override
+    public void contextStop(IMemento memento, IProgressMonitor monitor) {
+        // close view when workbench closes
+        try {
+            thisPart.getContext().get(EPartService.class).hidePart(thisPart);
+        } catch (Exception e) {
+            // nothing
+        }
+    }
+
+    @Override
+    public void contextStart(IMemento memento, IProgressMonitor monitor) {
+    }
+
+    @Override
+    public void contextRefresh(IProgressMonitor monitor) {
+    }
+
+    @Override
+    public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
+    }
+
+    @Override
+    public void changed(Object element) {
+        dirty.setDirty(true);
+        viewer.refresh();
+    }
+
+    @Override
+    public void forceDirty() {
+        dirty.setDirty(true);
+    }
+
+    @Override
+    public boolean postOperation(Object objectAffectedByOperation) {
+        initializeTrees();
+        viewer.refresh();
+        if (objectAffectedByOperation instanceof TermNodeDto) {
+            TermNodeDto node = (TermNodeDto) objectAffectedByOperation;
+            // viewer.expandToLevel(((TermRelationBase) node).getGraph(), 1);
+            // find a solution for dto editor
+        }
+        if (objectAffectedByOperation != null) {
+            StructuredSelection selection = new StructuredSelection(objectAffectedByOperation);
+            viewer.setSelection(selection);
+        }
+        return true;
+    }
+
+    @Override
+    public boolean onComplete() {
+        return false;
+    }
+
+    @Override
+    public TermNodeDto getNodeDtoForUuid(UUID nodeUuid) {
+        return uuidTermMap.get(nodeUuid);
+    }
+
+    protected void addAllNodesToMap(TermNodeDto root) {
+        if (!uuidTermMap.containsKey(root.getUuid())) {
+            uuidTermMap.put(root.getUuid(), root);
+            // if (root.getTerm() != null){
+            // getTreeDtoForUuid(root.getTree().getUuid()).addTerm(root.getTerm());
+            // }
+        }
+        for (TermNodeDto child : root.getChildren()) {
+            uuidTermMap.put(child.getUuid(), child);
+            // if (child.getTerm() != null){
+            // getTreeDtoForUuid(child.getTree().getUuid()).addTerm(child.getTerm());
+            // }
+            if (child.getChildren() != null && !child.getChildren().isEmpty()) {
+                addAllNodesToMap(child);
+            }
+        }
+    }
+
+    @Override
+    public boolean checkDuplicates(UUID termUuid, UUID treeUuid) {
+        TermCollectionDto tree = this.getTreeDtoForUuid(treeUuid);
+        if (tree != null) {
+            for (TermDto dto : tree.getTerms()) {
+                if (dto != null && dto.getUuid().equals(termUuid)) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    protected void updateTrees() {
+        uuidTermMap.clear();
+        if (trees != null && !trees.isEmpty()) {
+            trees.clear();
+        }
+        if (trees == null) {
+            trees = new HashMap<>();
+        }
+        List<TermTreeDto> treeList = CdmStore.getService(ITermTreeService.class)
+                .listTermTreeDtosByTermType(getTermType());
+        treeList.stream().forEach(tree -> trees.put(tree.getUuid(), tree));
+        // trees.addAll(CdmStore.getService(ITermTreeService.class).listTermTreeDtosByTermType(getTermType()));
+        for (TermCollectionDto tree : trees.values()) {
+            addAllNodesToMap(((TermTreeDto) tree).getRoot());
+        }
+        ((TermTreeContentProvider<T>) viewer.getContentProvider()).setUuidTermMap(uuidTermMap);
+    }
+
+    public List<TermCollectionDto> getTrees() {
+        List<TermCollectionDto> treeList = new ArrayList<>(trees.values());
+        return treeList;
+    }
+
+    public void putTree(TermTreeDto tree) {
+        trees.put(tree.getUuid(), tree);
+    }
+
+    public void removeTree(TermTreeDto tree) {
+        trees.remove(tree.getUuid());
+    }
+
+    @Override
+    public TermCollectionDto getTreeDtoForUuid(UUID treeUuid) {
+        return trees.get(treeUuid);
+    }
+
+    @Override
+    public void setTreeDtoForUuid(TermTreeDto tree) {
+        trees.put(tree.getUuid(), tree);
+    }
+
+    @Override
+    public void setNodeDtoForUuid(TermNodeDto node) {
+        this.uuidTermMap.put(node.getUuid(), node);
+    }
+
+    @Override
+    public void addOperation(AbstractPostOperation operation) {
+        if (operation instanceof CreateFeatureTreeOperation) {
+            createOperationList.put(((CreateFeatureTreeOperation) operation).getElementUuid(),
+                    (CreateFeatureTreeOperation) operation);
+        } else {
+            operationList.add(operation);
+        }
+    }
+
+    @Inject
+    @Optional
+    private void addSaveCandidate(@UIEventTopic(WorkbenchEventConstants.ADD_SAVE_CANDIDATE) UUID cdmbaseUuid) {
+        ISelection sel = viewer.getSelection();
+        Object obj = ((StructuredSelection) sel).getFirstElement();
+        if (obj instanceof TermNodeDto) {
+            if (listToUpdate.contains(obj)) {
+                listToUpdate.remove(obj);
+            }
+            listToUpdate.add((TermNodeDto) obj);
+        }
+    }
+
+    @Inject
+    @Optional
+    private void addSaveCandidate(@UIEventTopic(WorkbenchEventConstants.ADD_SAVE_CANDIDATE) AnnotationDto anDto) {
+
+        ISelection sel = viewer.getSelection();
+        Object obj = ((StructuredSelection) sel).getFirstElement();
+        if (obj instanceof TermNodeDto) {
+            if (listToUpdate.contains(obj)) {
+                listToUpdate.remove(obj);
+            }
+            if (((TermNodeDto) obj).getAnnotations().contains(anDto)) {
+                ((TermNodeDto) obj).getAnnotations().remove(anDto);
+            }
+
+            ((TermNodeDto) obj).addAnnotation(anDto);
+
+            listToUpdate.add((TermNodeDto) obj);
+        }
+    }
+
+    @Inject
+    @Optional
+    private void removeElement(@UIEventTopic(WorkbenchEventConstants.REMOVE_ELEMENT) AnnotationDto anDto) {
+
+        ISelection sel = viewer.getSelection();
+        Object obj = ((StructuredSelection) sel).getFirstElement();
+        if (obj instanceof TermNodeDto) {
+            if (listToUpdate.contains(obj)) {
+                listToUpdate.remove(obj);
+            }
+            if (((TermNodeDto) obj).getAnnotations().contains(anDto)) {
+                ((TermNodeDto) obj).getAnnotations().remove(anDto);
+            }
+            listToUpdate.add((TermNodeDto) obj);
+        }
+    }
+
+    @Inject
+    @Optional
+    private void addSaveCandidate(@UIEventTopic(WorkbenchEventConstants.ADD_SAVE_CANDIDATE) MarkerDto markerDto) {
+
+        ISelection sel = viewer.getSelection();
+        Object obj = ((StructuredSelection) sel).getFirstElement();
+        if (obj instanceof TermNodeDto) {
+            if (listToUpdate.contains(obj)) {
+                listToUpdate.remove(obj);
+            }
+            if (((TermNodeDto) obj).getMarkers().contains(markerDto)) {
+                ((TermNodeDto) obj).getMarkers().remove(markerDto);
+            }
+            ((TermNodeDto) obj).addMarker(markerDto);
+
+            listToUpdate.add((TermNodeDto) obj);
+        }
+    }
+
+    @Inject
+    @Optional
+    private void removeMarker(@UIEventTopic(WorkbenchEventConstants.REMOVE_ELEMENT) MarkerDto markerDto) {
+
+        ISelection sel = viewer.getSelection();
+        Object obj = ((StructuredSelection) sel).getFirstElement();
+        if (obj instanceof TermNodeDto) {
+            if (listToUpdate.contains(obj)) {
+                listToUpdate.remove(obj);
+            }
+            if (((TermNodeDto) obj).getMarkers().contains(markerDto)) {
+                ((TermNodeDto) obj).getMarkers().remove(markerDto);
+            }
+
+            listToUpdate.add((TermNodeDto) obj);
+        }
+    }
+
+    @Override
+    public TermType getTermType() {
+        return termType;
+    }
+}
\ No newline at end of file
similarity index 83%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/FeatureTreeEditorComposite.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeEditorComposite.java
index 7bc710245fc286d6f97578ff323e82847a5b6e5d..5fa88e3ca77639de560febb979363a9a3cc48990 100644 (file)
@@ -6,7 +6,7 @@
 * 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.featuretree.e4;
+package eu.etaxonomy.taxeditor.termtree.e4;
 
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.TreeViewer;
@@ -31,29 +31,29 @@ import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermTree;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.editor.definedterm.TermTransfer;
-import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
-import eu.etaxonomy.taxeditor.featuretree.FeatureTreeContentProvider;
-import eu.etaxonomy.taxeditor.featuretree.FeatureTreeLabelProvider;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.termtree.TermNodeTransfer;
+import eu.etaxonomy.taxeditor.termtree.TermTreeContentProvider;
+import eu.etaxonomy.taxeditor.termtree.TermTreeLabelProvider;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.FeatureTreeSelectionDialog;
 
 /**
  * @author pplitzner
  * @since Jun 19, 2017
  */
-public class FeatureTreeEditorComposite <T extends DefinedTermBase> extends Composite{
+public class TermTreeEditorComposite <T extends DefinedTermBase> extends Composite{
 
-    private TermTree<T> featureTree;
+    private TermTree<T> termTree;
 
     private Label label_title;
     private Text text_title;
-    private Button btnOpenFeatureTree;
+    private Button btnOpenTermTree;
     private TreeViewer viewer;
 
-    public FeatureTreeEditorComposite(Composite parent, int style) {
+    public TermTreeEditorComposite(Composite parent, int style) {
         super(parent, style);
         setLayout(new GridLayout(1, false));
 
@@ -66,16 +66,16 @@ public class FeatureTreeEditorComposite <T extends DefinedTermBase> extends Comp
 
         label_title = new Label(composite_treeTitle, SWT.NULL);
         label_title.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
-        label_title.setText(Messages.FeatureTreeEditorComposite_FEATURE_TREE);
+        label_title.setText(Messages.TermTreeEditorComposite_FEATURE_TREE);
 
         text_title = new Text(composite_treeTitle, SWT.BORDER);
         text_title.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
         text_title.setEditable(false);
 
-        btnOpenFeatureTree = new Button(composite_treeTitle, SWT.NONE);
-        btnOpenFeatureTree.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1));
-        btnOpenFeatureTree.setToolTipText(Messages.FeatureTreeEditorComposite_OPEN_TREE);
-        btnOpenFeatureTree.setImage(ImageResources.getImage(ImageResources.BROWSE_ICON));
+        btnOpenTermTree = new Button(composite_treeTitle, SWT.NONE);
+        btnOpenTermTree.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1));
+        btnOpenTermTree.setToolTipText(Messages.TermTreeEditorComposite_OPEN_TREE);
+        btnOpenTermTree.setImage(ImageResources.getImage(ImageResources.BROWSE_ICON));
 
         viewer = new TreeViewer(new Tree(this, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI));
         Tree tree = viewer.getTree();
@@ -146,13 +146,13 @@ public class FeatureTreeEditorComposite <T extends DefinedTermBase> extends Comp
             label_title.setText(label);
         }
 
-        viewer.setContentProvider(new FeatureTreeContentProvider());
-        viewer.setLabelProvider(new FeatureTreeLabelProvider());
+        viewer.setContentProvider(new TermTreeContentProvider());
+        viewer.setLabelProvider(new TermTreeLabelProvider());
 
         int ops = DND.DROP_COPY | DND.DROP_MOVE;
         if(transfers==null){
         transfers = new Transfer[] {
-                FeatureNodeTransfer.getInstance(),
+                TermNodeTransfer.getInstance(),
                 TermTransfer.getInstance(),
                 };
         }
@@ -173,11 +173,11 @@ public class FeatureTreeEditorComposite <T extends DefinedTermBase> extends Comp
 
         //add specific selection listener
         if(openFeatureTreeSelectionListener!=null){
-            btnOpenFeatureTree.addSelectionListener(openFeatureTreeSelectionListener);
+            btnOpenTermTree.addSelectionListener(openFeatureTreeSelectionListener);
         }
         else{
             //add default selection listener
-            btnOpenFeatureTree.addSelectionListener(new SelectionAdapter(){
+            btnOpenTermTree.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
                     TermTree<T> tree = FeatureTreeSelectionDialog.select(getDisplay().getActiveShell(),
@@ -194,13 +194,13 @@ public class FeatureTreeEditorComposite <T extends DefinedTermBase> extends Comp
     }
 
     public void setSelectedTree(TermTree<T> featureTree) {
-        this.featureTree = featureTree;
+        this.termTree = featureTree;
         viewer.setInput(featureTree);
         StoreUtil.setTextWithoutModifyListeners(text_title, featureTree!=null?featureTree.getTitleCache():"");
     }
 
     public TermTree<T> getFeatureTree() {
-        return featureTree;
+        return termTree;
     }
 
     public Label getLabel_title() {
@@ -208,7 +208,7 @@ public class FeatureTreeEditorComposite <T extends DefinedTermBase> extends Comp
     }
 
     public Button getBtnOpenFeatureTree() {
-        return btnOpenFeatureTree;
+        return btnOpenTermTree;
     }
 
     public TreeViewer getViewer() {
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeSorter.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/TermTreeSorter.java
new file mode 100755 (executable)
index 0000000..94ee238
--- /dev/null
@@ -0,0 +1,41 @@
+/**
+* Copyright (C) 2021 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.termtree.e4;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerComparator;
+
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+
+
+/**
+ * @author k.luther
+ * @since Mar 1, 2021
+ */
+public class TermTreeSorter extends ViewerComparator {
+
+
+    @Override
+    public int compare(Viewer viewer, Object e1, Object e2) {
+        if (e1 instanceof TermNodeDto && e2 instanceof TermNodeDto){
+            boolean showIdInVoc = PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS, true);
+            String label1 = ((TermNodeDto) e1).getTerm().getRepresentation_L10n();
+            String label2 = ((TermNodeDto) e2).getTerm().getRepresentation_L10n();
+            if(showIdInVoc){
+                label1 = CdmUtils.concat(" : ", ((TermNodeDto) e1).getTerm().getIdInVocabulary(), label1);
+                label2 = CdmUtils.concat(" : ", ((TermNodeDto) e1).getTerm().getIdInVocabulary(), label2);
+            }
+            return label1.compareTo(label2);
+        }
+        return super.compare(viewer, e1, e2);
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/AbstractAddTermHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/AbstractAddTermHandler.java
new file mode 100755 (executable)
index 0000000..9d2331d
--- /dev/null
@@ -0,0 +1,114 @@
+/**
+* Copyright (C) 2020 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.termtree.e4.handler;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import javax.inject.Named;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.cdm.model.description.Character;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.CharacterDto;
+import eu.etaxonomy.cdm.persistence.dto.CharacterNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.termtree.AvailableTermsWizard;
+import eu.etaxonomy.taxeditor.termtree.e4.ICharacterEditor;
+import eu.etaxonomy.taxeditor.termtree.e4.ITermTreeEditor;
+import eu.etaxonomy.taxeditor.termtree.e4.TermTreeEditor;
+import eu.etaxonomy.taxeditor.termtree.e4.operation.AddFeatureOperation;
+
+/**
+ * @author k.luther
+ * @since Nov 10, 2020
+ */
+public abstract class AbstractAddTermHandler {
+    @Execute
+    public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell,
+            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
+            @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
+            UISynchronize sync) {
+        ITermTreeEditor editor = ((ITermTreeEditor) thisPart.getObject());
+
+        TermNodeDto parent = getParent(selection);
+        TermType type = null;
+        if (parent.getTerm() == null){
+            type = parent.getType();
+        }else{
+            type = parent.getTerm().getTermType();
+        }
+        AvailableTermsWizard wizard = new AvailableTermsWizard(type);
+        WizardDialog dialog = new WizardDialog(shell, wizard);
+
+        if (dialog.open() == IStatus.OK) {
+            Collection<DefinedTermBase> additionalTerms = wizard.getAdditionalFeatures();
+            List<DefinedTermBase> duplicates = new ArrayList<>();
+            for (DefinedTermBase term : additionalTerms) {
+
+                boolean isDuplicate = false;
+                if (!parent.isAllowsDuplicats()){
+                    isDuplicate = editor.checkDuplicates(term.getUuid(), parent.getTreeUuid());
+                    if (isDuplicate){
+                        duplicates.add(term);
+                    }
+                }
+                if (isDuplicate){
+                    continue;
+                }
+                AddFeatureOperation operation = new AddFeatureOperation(term.getUuid(), parent, editor, editor);
+//                AbstractUtility.executeOperation(operation, sync);
+                editor.addOperation(operation);
+                editor.setDirty();
+
+                if (editor instanceof ICharacterEditor){
+                    CharacterNodeDto newDto = new CharacterNodeDto(CharacterDto.fromCharacter((Character)term), parent, 0, (TermTreeDto) ((ICharacterEditor)editor).getTreeDtoForUuid(parent.getTreeUuid()), null, 0, null, null);
+                }else{
+                    TermNodeDto newDto = new TermNodeDto(TermDto.fromTerm(term), parent, 0, (TermTreeDto)editor.getTreeDtoForUuid(parent.getTreeUuid()), null, 0, null, null);
+                }
+
+//                ((AbstractTermTreeEditor)editor).getViewer().refresh();
+                if (editor instanceof ICharacterEditor){
+                    editor.refresh();
+                }else{
+                    Object[] expandedElements = ((TermTreeEditor)editor).getViewer().getExpandedElements();
+                    ((TermTreeEditor)editor).getViewer().setInput(((TermTreeEditor)editor).getTrees());
+                    ((TermTreeEditor)editor).getViewer().setExpandedElements(expandedElements);
+                }
+            }
+            if (!duplicates.isEmpty()){
+                String termsTitles = "";
+                for (DefinedTermBase term: duplicates){
+                    termsTitles = termsTitles + term.getTitleCache() +"\n";
+                }
+                MessagingUtils.informationDialog(Messages.AddFeatureHandler_Duplicates_not_allowed, Messages.AddFeatureHandler_Duplicates_not_allowed_message +  "\n"+termsTitles);
+            }
+        }
+    }
+
+    /**
+     * @param selection
+     * @return
+     */
+    abstract protected TermNodeDto getParent(IStructuredSelection selection);
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/AddChildTermHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/AddChildTermHandler.java
new file mode 100644 (file)
index 0000000..8c015a1
--- /dev/null
@@ -0,0 +1,49 @@
+/**
+* Copyright (C) 2017 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.termtree.e4.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.taxeditor.termtree.e4.ITermTreeEditor;
+
+/**
+ * @author pplitzner
+ * @since Jul 12, 2017
+ */
+public class AddChildTermHandler extends AbstractAddTermHandler{
+
+    @CanExecute
+    public boolean canExecute(
+            @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
+            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
+            MHandledMenuItem menuItem) {
+        boolean canExecute = false;
+        canExecute = thisPart.getObject() instanceof ITermTreeEditor
+                && selection!=null
+                && selection.size()==1
+                && selection.getFirstElement() instanceof TermNodeDto
+                && !((TermNodeDto)selection.getFirstElement()).isFlat()
+                       && !((TermNodeDto)selection).isExternallyManaged();
+        menuItem.setVisible(canExecute);
+        return canExecute;
+    }
+
+    @Override
+    protected TermNodeDto getParent(IStructuredSelection selection) {
+        return (TermNodeDto)selection.getFirstElement();
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/AddTermHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/AddTermHandler.java
new file mode 100644 (file)
index 0000000..f710b4a
--- /dev/null
@@ -0,0 +1,117 @@
+/**
+* Copyright (C) 2017 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.termtree.e4.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+import eu.etaxonomy.taxeditor.termtree.e4.ITermTreeEditor;
+
+/**
+ * @author pplitzner
+ * @since Jul 12, 2017
+ *
+ */
+public class AddTermHandler extends AbstractAddTermHandler{
+
+    @Execute
+    public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell,
+            @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
+            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart, UISynchronize sync) {
+        super.execute(shell, thisPart, selection, sync);
+    }
+//        IFeatureTreeEditor editor = ((IFeatureTreeEditor) thisPart.getObject());
+//        if (StoreUtil.promptCheckIsDirty(editor)) {
+//            return;
+//        }
+//        TermTreeDto tree = (TermTreeDto) selection.getFirstElement();
+////
+////        TermChooseWizard wizard = new TermChooseWizard(tree.getTermType());
+////        WizardDialog dialog = new WizardDialog(shell, wizard);
+////
+////        if (dialog.open() == IStatus.OK) {
+////            List<TermDto> selectedTerms = wizard.getSelectedTerms();
+////            for (TermDto termDto: selectedTerms) {
+////                AddFeatureOperation operation = new AddFeatureOperation(termDto.getUuid(), tree.getRoot(), editor, editor);
+////                AbstractUtility.executeOperation(operation, sync);
+////            }
+////        }
+//
+//        AvailableFeaturesWizard wizard = new AvailableFeaturesWizard(tree.getTermType());
+//        WizardDialog dialog = new WizardDialog(shell, wizard);
+//
+//        if (dialog.open() == IStatus.OK) {
+//            Collection<DefinedTermBase> additionalTerms = wizard.getAdditionalFeatures();
+//            for (DefinedTermBase term : additionalTerms) {
+////                if (tree.getRoot().getUuid()== null){
+////                    TermTree termTree = CdmStore.getService(ITermTreeService.class).load(tree.getUuid());
+////                    tree = TermTreeDto.fromTree(termTree);
+////                }
+//                if (!tree.isAllowDuplicate()){
+//                    boolean isDuplicate = editor.checkDuplicates(term.getUuid(), tree.getUuid());
+//                    if (isDuplicate){
+//                        MessagingUtils.informationDialog("No duplicates allowed", "This term tree does not allow duplicates.");
+//                        return;
+//                    }
+//                }
+//
+//                AddFeatureOperation operation = new AddFeatureOperation(term.getUuid(), tree.getRoot(), editor, editor);
+//                editor.addOperation(operation);
+//                editor.setDirty();
+//                if (editor instanceof ICharacterEditor){
+//                    CharacterNodeDto newDto = new CharacterNodeDto(CharacterDto.fromCharacter((Character)term), tree.getRoot(), 0, tree, null, null, null);
+//                }else{
+//                    TermNodeDto newDto = new TermNodeDto(TermDto.fromTerm(term), tree.getRoot(), 0, tree, null, null, null);
+//                }
+//
+////                ((AbstractTermTreeEditor)editor).getViewer().refresh();
+//                if (editor instanceof ICharacterEditor){
+//                    editor.refresh();
+//                }else{
+//                    Object[] expandedElements = ((AbstractTermTreeEditor)editor).getViewer().getExpandedElements();
+//                    ((AbstractTermTreeEditor)editor).getViewer().setInput(((AbstractTermTreeEditor)editor).getTrees());
+//                    ((AbstractTermTreeEditor)editor).getViewer().setExpandedElements(expandedElements);
+//                }
+//            }
+//        }
+//    }
+
+    @CanExecute
+    public boolean canExecute(
+            @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
+            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
+            MHandledMenuItem menuItem) {
+        boolean canExecute = false;
+        boolean isManaged = false;
+        
+        canExecute = thisPart.getObject() instanceof ITermTreeEditor
+                && selection!=null
+                && selection.size()==1
+                && selection.getFirstElement() instanceof TermTreeDto
+                       && !((TermTreeDto)selection.getFirstElement()).isManaged();
+        menuItem.setVisible(canExecute);
+        return canExecute;
+    }
+
+    @Override
+    protected TermNodeDto getParent(IStructuredSelection selection) {
+        return ((TermTreeDto) selection.getFirstElement()).getRoot();
+    }
+}
similarity index 72%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/handler/CopyFeatureHandler.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/CopyTermHandler.java
index 26b9fd24ea0dd20ce0e289d7d0b835507a2aea6d..b83d9446070a46a73bbfc12f6b0b3f61a9e5f364 100644 (file)
@@ -1,5 +1,5 @@
 
-package eu.etaxonomy.taxeditor.featuretree.e4.handler;
+package eu.etaxonomy.taxeditor.termtree.e4.handler;
 
 import javax.inject.Named;
 
@@ -11,15 +11,15 @@ import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
 import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
-import eu.etaxonomy.cdm.model.term.TermNode;
-import eu.etaxonomy.taxeditor.featuretree.e4.AbstractTermTreeEditor;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.taxeditor.termtree.e4.TermTreeEditor;
 
-public class CopyFeatureHandler {
+public class CopyTermHandler {
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part,
             @Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection){
-        ((AbstractTermTreeEditor) part.getObject()).copy(selection);
+        ((TermTreeEditor) part.getObject()).copy(selection);
     }
 
     @CanExecute
@@ -27,10 +27,11 @@ public class CopyFeatureHandler {
             @Named(IServiceConstants.ACTIVE_PART) MPart part,
             MHandledMenuItem menuItem){
         boolean canExecute = false;
-        canExecute =part.getObject() instanceof AbstractTermTreeEditor
+        canExecute =part.getObject() instanceof TermTreeEditor
                 && selection!=null
                 && selection.size()==1
-                && selection.getFirstElement() instanceof TermNode;
+                && selection.getFirstElement() instanceof TermNodeDto
+                && !((TermNodeDto)selection.getFirstElement()).isExternallyManaged();
         menuItem.setVisible(canExecute);
         return canExecute;
     }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/CreateTermTreeHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/CreateTermTreeHandler.java
new file mode 100644 (file)
index 0000000..71bdc8d
--- /dev/null
@@ -0,0 +1,84 @@
+/**
+* Copyright (C) 2017 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.termtree.e4.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.window.Window;
+
+import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.termtree.e4.ITermTreeEditor;
+import eu.etaxonomy.taxeditor.termtree.e4.TermTreeEditor;
+import eu.etaxonomy.taxeditor.termtree.e4.operation.CreateFeatureTreeOperation;
+
+/**
+ * @author pplitzner
+ * @since Jul 12, 2017
+ */
+public class CreateTermTreeHandler {
+
+    @Execute
+    public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart thisPart, UISynchronize sync){
+        ITermTreeEditor editor = (ITermTreeEditor) thisPart.getObject();
+
+        if (StoreUtil.promptCheckIsDirty(editor)) {
+            return;
+        }
+        Object[] expandedElements =  ((TermTreeEditor)editor).getViewer().getExpandedElements();
+
+        InputDialog dialog = new InputDialog(null,
+                "Create new term tree", "Enter new term tree title", "",
+                null);
+        if (dialog.open() == Window.CANCEL){
+            return;
+        }
+        TermTree<?> newTree = TermTree.NewInstance(editor.getTermType());
+        newTree.setAllowDuplicates(false);
+        newTree.setFlat(false);
+        newTree.setOrderRelevant(true);
+        newTree.setTitleCache(dialog.getValue(), true);
+
+        CreateFeatureTreeOperation operation = new CreateFeatureTreeOperation(newTree, editor, editor);
+        TermTreeDto newDto = TermTreeDto.fromTree(newTree);
+        editor.setDirty();
+
+        editor.addOperation(operation);
+        ((TermTreeEditor)editor).putTree(newDto);
+        ((TermTreeEditor)editor).getViewer().setInput(((TermTreeEditor)editor).getTrees());
+
+        ((TermTreeEditor)editor).getViewer().setExpandedElements(expandedElements);
+        ((TermTreeEditor)editor).getViewer().refresh();
+        IStructuredSelection sel = new StructuredSelection(newDto);
+        ((TermTreeEditor)editor).getViewer().setSelection(sel);
+
+
+
+    }
+
+    @CanExecute
+    public boolean canExecute(
+            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
+            MHandledMenuItem menuItem) {
+        boolean canExecute = false;
+        canExecute = thisPart.getObject() instanceof ITermTreeEditor;
+        menuItem.setVisible(canExecute);
+        return canExecute;
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/OpenTermTreeEditorHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/OpenTermTreeEditorHandler.java
new file mode 100755 (executable)
index 0000000..d40fa69
--- /dev/null
@@ -0,0 +1,68 @@
+/**
+* Copyright (C) 2020 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.termtree.e4.handler;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.model.application.MApplication;
+import org.eclipse.e4.ui.model.application.commands.MParameter;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.basic.MPartStack;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState;
+
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.termtree.e4.TermTreeEditor;
+import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
+
+/**
+ * @author k.luther
+ * @since Dec 11, 2020
+ */
+public class OpenTermTreeEditorHandler {
+    @Execute
+    public void execute(EPartService partService, MHandledMenuItem menuItem, MApplication application, EModelService modelService) {
+
+        String commandId = menuItem.getCommand().getElementId();
+        List<MParameter> parameters = menuItem.getParameters();
+        TermType termType = null;
+        for (MParameter param: parameters){
+            termType = TermType.getByKey(param.getValue());
+        }
+
+        if(termType != null){
+        TermType type = termType;
+
+        List<MPart> alreadyOpenedEditors = partService.getParts().stream()
+        .filter(part->part.getObject()!=null && part.getObject() instanceof TermTreeEditor)
+        .filter(part->((TermTreeEditor)part.getObject()).getTermType().equals(type))
+        .collect(Collectors.toList());
+        if(!alreadyOpenedEditors.isEmpty()){
+            //there should never be more than one already opened editor
+            //so we just open the first
+            partService.activate(alreadyOpenedEditors.iterator().next());
+        }
+        else{
+            MPart part = partService.createPart(eu.etaxonomy.taxeditor.store.AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_EDITOR_TERMTREE);
+            MPartStack editorAreaPartStack = WorkbenchUtility.getEditorAreaPartStack(application, modelService);
+            if(editorAreaPartStack!=null){
+                editorAreaPartStack.getChildren().add(part);
+            }
+            part = partService.showPart(part, PartState.ACTIVATE);
+            TermTreeEditor termEditor = (TermTreeEditor) part.getObject();
+            termEditor.init(termType, menuItem.getLocalizedLabel());
+        }
+        }
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/PasteTermHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/PasteTermHandler.java
new file mode 100644 (file)
index 0000000..2916d7e
--- /dev/null
@@ -0,0 +1,65 @@
+
+package eu.etaxonomy.taxeditor.termtree.e4.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+import eu.etaxonomy.taxeditor.termtree.e4.TermTreeEditor;
+
+public class PasteTermHandler {
+
+    @Execute
+    public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart part,
+            @Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection){
+        TermTreeEditor editor = (TermTreeEditor)part.getObject();
+        editor.paste(selection);
+    }
+
+    @CanExecute
+    public boolean canExecute(@Optional @Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection,
+            @Named(IServiceConstants.ACTIVE_PART) MPart part,
+            MHandledMenuItem menuItem){
+        boolean canExecute = false;
+        ISelection transferSelection = LocalSelectionTransfer.getTransfer().getSelection();
+        TermDto term = null;
+        TermTreeDto moveToTree = null;
+        if (((IStructuredSelection)transferSelection).getFirstElement() instanceof TermNodeDto){
+            term = ((TermNodeDto)((IStructuredSelection)transferSelection).getFirstElement()).getTerm();
+        }
+        TermNodeDto selectedNode = null;
+        TermTreeEditor editor = null;
+        if (part.getObject() instanceof TermTreeEditor) {
+            editor = (TermTreeEditor)part.getObject();
+        }
+        
+        if (selection.getFirstElement() instanceof TermNodeDto){
+            selectedNode = (TermNodeDto)selection.getFirstElement();
+            moveToTree = (TermTreeDto) editor.getTreeDtoForUuid(selectedNode.getTreeUuid());
+        }else if (selection.getFirstElement() instanceof TermTreeDto){
+            moveToTree = (TermTreeDto)selection.getFirstElement();
+        }
+        canExecute = part.getObject() instanceof TermTreeEditor
+                && selection!=null
+                && selection.size()==1
+                && transferSelection instanceof IStructuredSelection
+                && ((IStructuredSelection)transferSelection).size()==1
+                && ((IStructuredSelection)transferSelection).getFirstElement() instanceof TermNodeDto
+                && !moveToTree.getTerms().contains(term) || moveToTree.isAllowDuplicate()
+                && !moveToTree.isFlat() || selectedNode == null;
+        menuItem.setVisible(canExecute);
+        return canExecute;
+    }
+
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/RemoveTermHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/termtree/e4/handler/RemoveTermHandler.java
new file mode 100644 (file)
index 0000000..8205f61
--- /dev/null
@@ -0,0 +1,107 @@
+/**
+* Copyright (C) 2017 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.termtree.e4.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
+
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.termtree.e4.ICharacterEditor;
+import eu.etaxonomy.taxeditor.termtree.e4.ITermTreeEditor;
+import eu.etaxonomy.taxeditor.termtree.e4.TermTreeEditor;
+import eu.etaxonomy.taxeditor.termtree.e4.operation.RemoveFeatureOperation;
+
+/**
+ * @author pplitzner
+ * @since Jul 12, 2017
+ *
+ */
+public class RemoveTermHandler {
+
+    @Execute
+    public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
+            @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection, UISynchronize sync){
+        ITermTreeEditor editor = (ITermTreeEditor) thisPart.getObject();
+
+//        if (StoreUtil.promptCheckIsDirty(editor)) {
+//            return;
+//        }
+        if(!StoreUtil.confirmDelete()){
+            return;
+        }
+
+        for (Object selectedObject : selection.toArray()) {
+               TermNodeDto featureNode = (TermNodeDto) selectedObject;
+               TermTreeDto tree = (TermTreeDto) editor.getTreeDtoForUuid(featureNode.getTreeUuid());
+               if (featureNode.getUuid() != null){
+                   RemoveFeatureOperation operation = new RemoveFeatureOperation(featureNode.getUuid(), editor, editor);
+                   editor.addOperation(operation);
+               }else{
+//                 editor.removeAddOperation(featureNode);
+               }
+            ISelection sel = editor.getViewer().getSelection();
+            if (sel instanceof TreeSelection){
+//                Object o =((TreeSelection) sel).getFirstElement();
+//                if (o instanceof TermNodeDto && ((TermNodeDto)o).getUuid().equals(featureNode.getUuid())){
+                    TermNodeDto parent = editor.getNodeDtoForUuid(featureNode.getParentUuid());
+                    parent.removeChild(featureNode, false);
+//                }
+            }
+//            editor.refresh();
+//            }else{
+//                for (Object treeDto: ((AbstractTermTreeEditor)editor).getTrees()){
+//                    if (treeDto instanceof TermTreeDto && ((TermTreeDto)treeDto).getUuid().equals(featureNode.getTree().getUuid())){
+//                        ((TermTreeDto)treeDto).removeChild(featureNode);
+//                    }
+//
+//                }
+                if (editor instanceof TermTreeEditor){
+                    Object[] expandedElements = ((TermTreeEditor)editor).getViewer().getExpandedElements();
+                    ((TermTreeEditor)editor).getViewer().setInput(((TermTreeEditor)editor).getTrees());
+                    ((TermTreeEditor)editor).getViewer().setExpandedElements(expandedElements);
+                }else{
+                    ((ICharacterEditor)editor).getViewer().setInput(tree);
+                }
+                editor.refresh();
+//            }
+
+            editor.setDirty();
+        }
+    }
+
+    @CanExecute
+    public boolean canExecute(
+            @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
+            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
+            MHandledMenuItem menuItem) {
+        boolean canExecute = selection!=null && !selection.isEmpty();
+        if(selection!=null){
+            for(Object object:selection.toArray()){
+                canExecute &= object instanceof TermNodeDto && !((TermNodeDto)object).isExternallyManaged();
+             
+            }
+        }
+        canExecute &= thisPart.getObject() instanceof ITermTreeEditor;
+        menuItem.setVisible(canExecute);
+        return canExecute;
+    }
+
+}
@@ -6,7 +6,7 @@
 * 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.featuretree.e4.handler;
+package eu.etaxonomy.taxeditor.termtree.e4.handler;
 
 import javax.inject.Named;
 
@@ -19,23 +19,23 @@ import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
 import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.viewers.IStructuredSelection;
 
-import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.taxeditor.featuretree.e4.IFeatureTreeEditor;
-import eu.etaxonomy.taxeditor.featuretree.e4.operation.RemoveFeatureTreeOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.termtree.e4.ITermTreeEditor;
+import eu.etaxonomy.taxeditor.termtree.e4.TermTreeEditor;
+import eu.etaxonomy.taxeditor.termtree.e4.operation.RemoveFeatureTreeOperation;
 
 /**
  * @author pplitzner
  * @since Jul 12, 2017
  *
  */
-public class RemoveFeatureTreeHandler {
+public class RemoveTermTreeHandler {
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
             @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection, UISynchronize sync){
-        IFeatureTreeEditor editor = (IFeatureTreeEditor) thisPart.getObject();
+        ITermTreeEditor editor = (ITermTreeEditor) thisPart.getObject();
 
         if (StoreUtil.promptCheckIsDirty(editor)) {
             return;
@@ -45,9 +45,14 @@ public class RemoveFeatureTreeHandler {
         }
 
         for (Object selectedObject : selection.toArray()) {
-               TermTree featureTree = (TermTree) selectedObject;
-            RemoveFeatureTreeOperation operation = new RemoveFeatureTreeOperation(featureTree, editor, editor);
-            AbstractUtility.executeOperation(operation, sync);
+               TermTreeDto featureTree = (TermTreeDto) selectedObject;
+               ((TermTreeEditor)editor).removeTree(featureTree);
+               ((TermTreeEditor)editor).getViewer().setInput(((TermTreeEditor)editor).getTrees());
+            RemoveFeatureTreeOperation operation = new RemoveFeatureTreeOperation(featureTree.getUuid(), editor, editor);
+//            AbstractUtility.executeOperation(operation, sync);
+            editor.addOperation(operation);
+            editor.setDirty();
+            editor.refresh();
         }
     }
 
@@ -59,10 +64,10 @@ public class RemoveFeatureTreeHandler {
         boolean canExecute = selection!=null && !selection.isEmpty();
         if(canExecute){
             for(Object object:selection.toArray()){
-                canExecute &= object instanceof TermTree;
+                canExecute &= object instanceof TermTreeDto;
             }
         }
-        canExecute &= thisPart.getObject() instanceof IFeatureTreeEditor;
+        canExecute &= thisPart.getObject() instanceof ITermTreeEditor;
         menuItem.setVisible(canExecute);
         return canExecute;
     }
@@ -6,7 +6,7 @@
 * 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.featuretree.e4.handler;
+package eu.etaxonomy.taxeditor.termtree.e4.handler;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -29,22 +29,23 @@ import org.eclipse.ui.progress.IProgressConstants;
 
 import eu.etaxonomy.cdm.io.descriptive.owl.out.StructureTreeOwlExportConfigurator;
 import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.taxeditor.featuretree.e4.IFeatureTreeEditor;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.termtree.e4.ITermTreeEditor;
 
 /**
  * @author pplitzner
  * @since Jul 12, 2017
  *
  */
-public class FeatureTreeExportOntologyHandler {
+public class TermTreeExportOntologyHandler {
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell,
             @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
             @Named(IServiceConstants.ACTIVE_PART)MPart thisPart){
-        IFeatureTreeEditor editor = (IFeatureTreeEditor) thisPart.getObject();
+        ITermTreeEditor editor = (ITermTreeEditor) thisPart.getObject();
 
         if(StoreUtil.promptCheckIsDirty(editor)){
             return;
@@ -87,7 +88,7 @@ public class FeatureTreeExportOntologyHandler {
         boolean canExecute = false;
         canExecute = selection!=null
                 && selection.size()==1
-                && selection.getFirstElement() instanceof TermTree;
+                && selection.getFirstElement() instanceof TermTreeDto;
         menuItem.setVisible(canExecute);
         return canExecute;
     }
@@ -6,7 +6,7 @@
 * 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.featuretree.e4.handler;
+package eu.etaxonomy.taxeditor.termtree.e4.handler;
 
 import java.io.File;
 
@@ -24,26 +24,26 @@ import org.eclipse.swt.widgets.DirectoryDialog;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.progress.IProgressConstants;
 
-import eu.etaxonomy.cdm.io.descriptive.word.out.WordExportConfigurator;
+import eu.etaxonomy.cdm.io.descriptive.word.out.WordTermExportConfigurator;
 import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.taxeditor.featuretree.e4.IFeatureTreeEditor;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.termtree.e4.ITermTreeEditor;
 
 /**
  * @author pplitzner
  * @since Jul 12, 2017
- *
  */
-public class FeatureTreeExportWordHandler {
+public class TermTreeExportWordHandler {
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell,
             @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
             @Named(IServiceConstants.ACTIVE_PART)MPart thisPart){
-        IFeatureTreeEditor editor = (IFeatureTreeEditor) thisPart.getObject();
+        ITermTreeEditor editor = (ITermTreeEditor) thisPart.getObject();
 
         if(StoreUtil.promptCheckIsDirty(editor)){
             return;
@@ -54,7 +54,7 @@ public class FeatureTreeExportWordHandler {
         String directoryString = dialog.open();
         if(directoryString!=null){
             // create job
-            Job job = CdmStore.getExportManager().createIOServiceJob(WordExportConfigurator.NewInstance(null, null, selectedFeatureTree), new File(directoryString+"/"+selectedFeatureTree.getTitleCache()+".docx"));
+            Job job = CdmStore.getExportManager().createIOServiceJob(WordTermExportConfigurator.NewInstance(null, null, selectedFeatureTree), new File(directoryString+"/"+selectedFeatureTree.getTitleCache()+".docx"));
             // configure the job
             job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
             job.setUser(true);
@@ -71,7 +71,7 @@ public class FeatureTreeExportWordHandler {
         canExecute = PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_EXPERIMENTAL_FEATURES)
                 && selection!=null
                 && selection.size()==1
-                && selection.getFirstElement() instanceof TermTree;
+                && selection.getFirstElement() instanceof TermTreeDto;
         menuItem.setVisible(canExecute);
         return canExecute;
     }
@@ -6,7 +6,7 @@
 * 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.featuretree.e4.operation;
+package eu.etaxonomy.taxeditor.termtree.e4.operation;
 
 import java.util.UUID;
 
@@ -19,7 +19,7 @@ import org.eclipse.core.runtime.Status;
 import eu.etaxonomy.cdm.api.service.ITermNodeService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.term.TermNode;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -31,29 +31,30 @@ import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 /**
  * @author pplitzner
  * @since Apr 30, 2018
- *
  */
 public class AddFeatureOperation extends AbstractPostOperation<Feature> {
 
-    private TermNode<Feature> node;
+    private UUID nodeUuid;
+
     private int position;
     private UUID featureUuid;
 
-    public AddFeatureOperation(UUID featureUuid, TermNode<Feature> node,
-            IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
-        this(featureUuid, node, 0, postOperationEnabled, cdmEntitySessionEnabled);
+    public AddFeatureOperation(UUID featureUuid, TermNodeDto node,
+            IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled<Feature> cdmEntitySessionEnabled) {
+        this(featureUuid, node.getUuid(), 0, postOperationEnabled, cdmEntitySessionEnabled);
     }
-    public AddFeatureOperation(UUID featureUuid, TermNode<Feature> node, int position,
-            IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+    public AddFeatureOperation(UUID featureUuid, UUID nodeUuid, int position,
+            IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled<Feature> cdmEntitySessionEnabled) {
         super("Add Feature", StoreUtil.getUndoContext(), null, postOperationEnabled, cdmEntitySessionEnabled);
-        this.node = node;
+
+        this.nodeUuid = nodeUuid;
         this.featureUuid = featureUuid;
         this.position = position;
     }
 
     @Override
     public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
-        UpdateResult updateResult = CdmStore.getService(ITermNodeService.class).addChildNode(node.getUuid(), featureUuid, position);
+        UpdateResult updateResult = CdmStore.getService(ITermNodeService.class).addChildNode(nodeUuid, featureUuid, position);
         if(updateResult.isError()){
             Exception exception = StoreUtil.mergeUpdateResultExceptions(updateResult);
             MessagingUtils.errorDialog("Error during operation", this, "Could not add term", TaxeditorStorePlugin.PLUGIN_ID, exception, false);
@@ -71,5 +72,4 @@ public class AddFeatureOperation extends AbstractPostOperation<Feature> {
     public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
         return null;
     }
-
-}
+}
\ No newline at end of file
@@ -6,17 +6,18 @@
 * 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.featuretree.e4.operation;
+package eu.etaxonomy.taxeditor.termtree.e4.operation;
 
-import java.net.URI;
+import java.util.UUID;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 
-import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
+import eu.etaxonomy.cdm.api.service.ITermNodeService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.term.TermNode;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
@@ -30,19 +31,18 @@ import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrap
 /**
  * @author pplitzner
  * @since Apr 30, 2018
- *
  */
 public class AddOntologyTermOperation extends AbstractPostOperation<TermNode> {
 
-    private TermNode target;
+    private UUID targetUuid;
     private OntologyTermWrapper wrapper;
-    private TermVocabulary vocabulary;
+    private TermVocabulary<?> vocabulary;
 
-    public AddOntologyTermOperation(OntologyTermWrapper wrapper, TermNode target, TermVocabulary vocabulary,
-            IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
-        super("Add ontology term", StoreUtil.getUndoContext(), target, postOperationEnabled, cdmEntitySessionEnabled);
+    public AddOntologyTermOperation(OntologyTermWrapper wrapper, UUID targetUuid, TermVocabulary vocabulary,
+            IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled<TermNode> cdmEntitySessionEnabled) {
+        super("Add ontology term", StoreUtil.getUndoContext(), null, postOperationEnabled, cdmEntitySessionEnabled);
         this.wrapper = wrapper;
-        this.target = target;
+        this.targetUuid = targetUuid;
         this.vocabulary = vocabulary;
     }
 
@@ -50,9 +50,9 @@ public class AddOntologyTermOperation extends AbstractPostOperation<TermNode> {
     public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
         Feature feature = Feature.NewInstance(wrapper.getDescription(), wrapper.getLabel(), null);
         feature.setUri(URI.create(wrapper.getUri()));
-        CdmStore.getService(IFeatureNodeService.class).createChildFeatureNode(target.getUuid(), feature, vocabulary.getUuid());
+        UpdateResult updateResult = CdmStore.getService(ITermNodeService.class).createChildNode(targetUuid, feature, vocabulary.getUuid());
 
-        UpdateResult updateResult = CdmStore.getService(IFeatureNodeService.class).addChildFeatureNode(target.getUuid(), element.getUuid());
+//        UpdateResult updateResult = CdmStore.getService(ITermNodeService.class).addChildNode(targetUuid, element.getUuid());
         return postExecute(updateResult.getCdmEntity());
     }
 
@@ -6,7 +6,7 @@
 * 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.featuretree.e4.operation;
+package eu.etaxonomy.taxeditor.termtree.e4.operation;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.runtime.IAdaptable;
@@ -24,12 +24,11 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
 /**
  * @author pplitzner
  * @since Apr 30, 2018
- *
  */
 public class CreateFeatureTreeOperation extends AbstractPostOperation<TermTree>{
 
     public CreateFeatureTreeOperation(TermTree element,
-            IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+            IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled<TermTree> cdmEntitySessionEnabled) {
         super("Create Feature Tree", StoreUtil.getUndoContext(), element, postOperationEnabled, cdmEntitySessionEnabled);
     }
 
@@ -49,4 +48,7 @@ public class CreateFeatureTreeOperation extends AbstractPostOperation<TermTree>{
         return null;
     }
 
-}
+    public void setElement(TermTree termTree){
+        this.element = termTree;
+    }
+}
\ No newline at end of file
@@ -6,7 +6,9 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-package eu.etaxonomy.taxeditor.featuretree.e4.operation;
+package eu.etaxonomy.taxeditor.termtree.e4.operation;
+
+import java.util.UUID;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.runtime.IAdaptable;
@@ -25,25 +27,23 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
- *
  * @author pplitzner
  * @date 21.01.2019
- *
  */
-public class MoveFeatureOperation extends AbstractPostOperation<TermNode> {
+public class MoveFeatureOperation extends AbstractPostOperation<TermNode>{
 
-    private TermNode droppedNode;
-    private TermNode target;
+    private UUID droppedNodeUuid;
+    private UUID targetUuid;
+    private UUID termUuid;
     private int currentOperation;
     private int position;
 
-    public MoveFeatureOperation(TermNode droppedNode, TermNode target, int position,
+    public MoveFeatureOperation(UUID droppedNodeUuid, UUID termUuid, UUID targetUuid, int position,
             int currentOperation,
-            IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
-        super(currentOperation == DND.DROP_MOVE ? "Move Feature" : "Copy Feature", StoreUtil.getUndoContext(),
-                droppedNode, postOperationEnabled, cdmEntitySessionEnabled);
-        this.droppedNode = droppedNode;
-        this.target = target;
+            IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled<TermNode> cdmEntitySessionEnabled) {
+        super(currentOperation == DND.DROP_MOVE ? "Move Feature" : "Copy Feature",StoreUtil.getUndoContext(),null, postOperationEnabled, cdmEntitySessionEnabled);
+        this.droppedNodeUuid = droppedNodeUuid;
+        this.targetUuid = targetUuid;
         this.position = position;
         this.currentOperation = currentOperation;
     }
@@ -53,11 +53,11 @@ public class MoveFeatureOperation extends AbstractPostOperation<TermNode> {
         UpdateResult updateResult = null;
         //move operation
         if(currentOperation==DND.DROP_MOVE){
-            updateResult = CdmStore.getService(ITermNodeService.class).moveNode(droppedNode.getUuid(), target.getUuid(), position);
+            updateResult = CdmStore.getService(ITermNodeService.class).moveNode(droppedNodeUuid, targetUuid, position);
         }
         //copy operation
         else if(currentOperation==DND.DROP_COPY){
-            updateResult = CdmStore.getService(ITermNodeService.class).addChildNode(target.getUuid(), droppedNode.getTerm().getUuid());
+            updateResult = CdmStore.getService(ITermNodeService.class).addChildNode(targetUuid, termUuid);
         }
         if(updateResult!=null){
             return postExecute(updateResult.getCdmEntity());
@@ -75,4 +75,30 @@ public class MoveFeatureOperation extends AbstractPostOperation<TermNode> {
         return null;
     }
 
+    /**
+     * This method will try to call the post operation on a possibly registered
+     * IPostOperationEnabled implementor. Objects that were affected by the operation
+     * may be passed to the registered IPostOperationEnabled implementor.
+     *
+     * @param objectAffectedByOperation the affected object. Should be <code>null</code> if not needed
+     * @return a {@link org.eclipse.core.runtime.IStatus} object.
+     */
+    @Override
+    protected IStatus postExecute(Object objectAffectedByOperation) {
+
+        if(postOperationEnabled != null){
+            return postOperationEnabled.postOperation(objectAffectedByOperation) ? Status.OK_STATUS : Status.CANCEL_STATUS;
+        }
+        return Status.OK_STATUS;
+    }
+
+    /**
+     * <p>Getter for the field <code>postOperationEnabled</code>.</p>
+     *
+     * @return a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
+     */
+    @Override
+    public IPostOperationEnabled getPostOperationEnabled() {
+        return postOperationEnabled;
+    }
 }
@@ -6,7 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-package eu.etaxonomy.taxeditor.featuretree.e4.operation;
+package eu.etaxonomy.taxeditor.termtree.e4.operation;
+
+import java.util.UUID;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.runtime.IAdaptable;
@@ -14,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;
@@ -26,18 +28,17 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
 /**
  * @author pplitzner
  * @since Apr 30, 2018
- *
  */
 public class RemoveFeatureOperation extends AbstractPostOperation<TermNode>{
 
-    public RemoveFeatureOperation(TermNode element,
+    public RemoveFeatureOperation(UUID elementUuid,
             IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
-        super("Remove Feature", StoreUtil.getUndoContext(), element, postOperationEnabled, cdmEntitySessionEnabled);
+        super("Remove Feature", elementUuid, StoreUtil.getUndoContext(), postOperationEnabled, cdmEntitySessionEnabled);
     }
 
     @Override
     public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
-        DeleteResult result = CdmStore.getService(IFeatureNodeService.class).deleteFeatureNode(element.getUuid(), new TermNodeDeletionConfigurator());
+        DeleteResult result = CdmStore.getService(ITermNodeService.class).deleteNode(elementUuid, new TermNodeDeletionConfigurator());
         return postExecute(null);
     }
 
@@ -6,7 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-package eu.etaxonomy.taxeditor.featuretree.e4.operation;
+package eu.etaxonomy.taxeditor.termtree.e4.operation;
+
+import java.util.UUID;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.runtime.IAdaptable;
@@ -28,14 +30,16 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  */
 public class RemoveFeatureTreeOperation extends AbstractPostOperation<TermTree>{
 
-    public RemoveFeatureTreeOperation(TermTree element,
+
+
+    public RemoveFeatureTreeOperation(UUID elementUUID,
             IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
-        super("Remove Feature Tree", StoreUtil.getUndoContext(), element, postOperationEnabled, cdmEntitySessionEnabled);
+        super("Remove Feature Tree", elementUUID, StoreUtil.getUndoContext(), postOperationEnabled, cdmEntitySessionEnabled);
     }
 
     @Override
     public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
-        CdmStore.getService(ITermTreeService.class).delete(element.getUuid());
+        CdmStore.getService(ITermTreeService.class).delete(elementUuid);
         return postExecute(null);
     }
 
index 0feee21eea85642e6192935000d15d3864dde6cd..57c5d91c878c27919dce46a9c3c5d7cf74c4c097 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2017 EDIT
 * European Distributed Institute of Taxonomy
@@ -16,13 +15,9 @@ import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 /**
  * @author pplitzner
  * @date 12.12.2017
- *
  */
 public class UuidAndTitleCacheLabelProvider extends LabelProvider{
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public String getText(Object element) {
         if(element instanceof UuidAndTitleCache){
@@ -30,5 +25,4 @@ public class UuidAndTitleCacheLabelProvider extends LabelProvider{
         }
         return super.getText(element);
     }
-
-}
+}
\ No newline at end of file
index a779789c3db36bedd289a17fd95a129ff2016df6..12ec9be6cbc044e9b8fdfad02d1b92ab22d5a4dc 100644 (file)
@@ -9,6 +9,7 @@
 package eu.etaxonomy.taxeditor.ui.combo;
 
 import java.util.ArrayList;
+import java.util.Collections;
 
 import org.eclipse.equinox.internal.p2.ui.misc.StringMatcher;
 import org.eclipse.jface.fieldassist.ComboContentAdapter;
@@ -26,10 +27,9 @@ import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.forms.widgets.TableWrapData;
 
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.preference.Resources;
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractRelevanceFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -40,12 +40,11 @@ import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 /**
  * @author pplitzner
  * @date Aug 11, 2016
- *
  */
-public abstract class AbstractComboElement<T> extends
-AbstractCdmFormElement implements SelectionListener,
-IEnableableFormElement, ISelectable,
-DisposeListener {
+public abstract class AbstractComboElement<T>
+               extends AbstractRelevanceFormElement
+               implements SelectionListener, IEnableableFormElement,
+                       ISelectable, DisposeListener {
 
     protected static final int DEFAULT_VISIBLE_ITEMS = 10;
 
@@ -57,9 +56,6 @@ DisposeListener {
 
     public boolean hasNullValue;
 
-
-
-
     public AbstractComboElement(CdmFormFactory formFactory, ICdmFormElement formElement, boolean hasNullValue) {
         super(formFactory, formElement);
 
@@ -73,47 +69,33 @@ DisposeListener {
         TableWrapData fill_HORIZONTALLY = LayoutConstants.FILL_HORIZONTALLY();
         combo.setLayoutData(fill_HORIZONTALLY);
         fill_HORIZONTALLY.maxWidth = 50;
-        combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
+//        combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
         //disable mouse-wheel selection
         combo.addListener(SWT.MouseWheel, e->e.doit=false);
         this.hasNullValue = hasNullValue;
-
-
     }
 
     public AbstractComboElement(CdmFormFactory formFactory, ICdmFormElement formElement){
         this(formFactory, formElement, false);
     }
 
-
-
-    /** {@inheritDoc} */
     @Override
     public void setBackground(Color color) {
-        if (label != null) {
+        if (label != null && !label.isDisposed()) {
             label.setBackground(color);
         }
     }
 
-    /** {@inheritDoc} */
     @Override
-    public void setIrrelevant(boolean irrelevant) {
-        String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT
-                : Resources.COLOR_COMPOSITE_BACKGROUND;
-
-        Color color = AbstractUtility.getColor(colorId);
+    public void updateCacheRelevance() {
+        Color color = cacheRelevance().getColor();
         combo.setBackground(color);
-        if (label != null) {
-            label.setBackground(color);
-        }
-
     }
 
     public void setVisibleItemCount(int count){
         combo.setVisibleItemCount(count);
     }
 
-    /** {@inheritDoc} */
     @Override
     public void setSelected(boolean selected) {
         setBackground(selected ? SELECTED : getPersistentBackground());
@@ -131,7 +113,6 @@ DisposeListener {
         combo.removeSelectionListener(listener);
     }
 
-    /** {@inheritDoc} */
     @Override
     public void widgetDisposed(DisposeEvent e) {
         PreferencesUtil.getPreferenceStore().removePropertyChangeListener(this);
@@ -146,7 +127,6 @@ DisposeListener {
         return combo.isEnabled();
     }
 
-    /** {@inheritDoc} */
     @Override
     public void setEnabled(boolean enabled) {
         combo.setEnabled(enabled);
@@ -154,13 +134,10 @@ DisposeListener {
 
     public abstract void setSelection(T selection);
 
-
-
     private AbstractComboElement<T> getComboElement(){
         return this;
     }
 
-
     protected void addContentProposalAdapter() {
         ContentProposalAdapter adapter;
 
@@ -171,7 +148,7 @@ DisposeListener {
             @SuppressWarnings("unchecked")
             @Override
             public void proposalAccepted(IContentProposal proposal) {
-                setSelection((T)combo.getData(proposal.getContent()));
+                setSelection((T)combo.getData(proposal.getContent()));                
                 firePropertyChangeEvent(new CdmPropertyChangeEvent(getComboElement(), null));
             }
         });
@@ -186,13 +163,15 @@ DisposeListener {
                     return new IContentProposal[0];
                 }
                 StringMatcher matcher = new StringMatcher("*" + contents + "*", true, false); //$NON-NLS-1$ //$NON-NLS-2$
-                ArrayList<String> matches = new ArrayList<String>();
+                ArrayList<String> matches = new ArrayList<>();
                 for (int i = 0; i < items.length; i++) {
                     if (matcher.match(items[i])) {
                         matches.add(items[i]);
                     }
                 }
 
+                Collections.sort(matches);
+
                 // We don't want to autoactivate if the only proposal exactly matches
                 // what is in the combo.  This prevents the popup from
                 // opening when the user is merely scrolling through the combo values or
@@ -238,4 +217,12 @@ DisposeListener {
         };
     }
 
-}
+    @Override
+    public String toString() {
+        if (label != null){
+            return CdmUtils.concat("", "ComboElement[", label.getText(),"]");
+        }else{
+            return super.toString();
+        }
+    }
+}
\ No newline at end of file
index d0a210dd2043baa544301d4800b72d1283925175..2bd9a89b47f31a41810475e40794f49207126f84 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.combo;
 
 import java.util.ArrayList;
@@ -22,6 +21,7 @@ import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.ui.forms.widgets.TableWrapData;
 
+import eu.etaxonomy.cdm.model.description.NoDescriptiveDataStatus;
 import eu.etaxonomy.cdm.model.media.ExternalLinkType;
 import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
@@ -32,6 +32,7 @@ import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
 import eu.etaxonomy.cdm.model.reference.ReferenceType;
 import eu.etaxonomy.cdm.model.taxon.TaxonNodeStatus;
 import eu.etaxonomy.cdm.model.term.IEnumTerm;
+import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
@@ -44,16 +45,15 @@ import eu.etaxonomy.taxeditor.ui.section.name.NomenclaturalStatusSection;
  * @author n.hoffmann
  * @created Mar 16, 2010
  */
-public class EnumComboElement<T extends IEnumTerm<T>> extends
-               AbstractComboElement<T>  {
+public class EnumComboElement<T extends IEnumTerm<T>>
+        extends AbstractComboElement<T>  {
 
        //TODO RL
        public void setVisible(boolean b){
                combo.setVisible(b);
        }
 
-
-        private  static  CdmEnumDataHolder[] cdmEnumDataHolders = {
+       private  static  CdmEnumDataHolder[] cdmEnumDataHolders = {
                new CdmEnumDataHolder<NomenclaturalCode>(){
 
                        @Override
@@ -82,7 +82,14 @@ public class EnumComboElement<T extends IEnumTerm<T>> extends
 
                        @Override
                        public Collection<ReferenceType> getElements() {
-                               return Arrays.asList(ReferenceType.values());
+                           List<ReferenceType> list = Arrays.asList(ReferenceType.values());
+                           Collections.sort(list, new Comparator<ReferenceType>() {
+                           @Override
+                           public int compare(ReferenceType rt1, ReferenceType rt2){
+                               return rt1.getLabel().compareTo(rt2.getLabel());
+                           }
+                       });
+                               return list;
                        }
 
                        @Override
@@ -175,12 +182,26 @@ public class EnumComboElement<T extends IEnumTerm<T>> extends
                 return Arrays.asList(TaxonNodeStatus.values());
             }
 
-            @Override
-            public Class<TaxonNodeStatus> getClazz() {
-                return TaxonNodeStatus.class;
-            }
+        @Override
+        public Class<TaxonNodeStatus> getClazz() {
+            return TaxonNodeStatus.class;
+        }
+
+    }, new CdmEnumDataHolder<NoDescriptiveDataStatus>() {
 
+        @Override
+        public String getName() {
+            return "No Data Status";
         }
+        @Override
+        public Collection<NoDescriptiveDataStatus> getElements() {
+            return Arrays.asList(NoDescriptiveDataStatus.values());
+        }
+        @Override
+        public Class<NoDescriptiveDataStatus> getClazz() {
+            return NoDescriptiveDataStatus.class;
+        }
+    }
 
        };
 
@@ -210,7 +231,6 @@ public class EnumComboElement<T extends IEnumTerm<T>> extends
            return combo;
        }
 
-
        private String getDefaultLabelString() {
                if(enumType.equals(ReferenceType.class)){
                        return "Reference Type";
@@ -225,13 +245,18 @@ public class EnumComboElement<T extends IEnumTerm<T>> extends
         } else if(enumType.equals(NomenclaturalCodeEdition.class)) {
             return "Code Edition";
         }else if(enumType.equals(TaxonNodeStatus.class)) {
-            return "Placement status";
+            return Messages.EnumCombo_Placement_status;
+        }else if (enumType.equals(NoDescriptiveDataStatus.class)) {
+            return "No Data";
         }
                return "No Label";
        }
 
     private void populateTypes(Comparator<T> comparator){
         List<T> elementsForClass = new ArrayList<T>(getElementsForClass(enumType));
+        if (enumType.equals(SpecimenOrObservationType.class)){
+            elementsForClass.remove(SpecimenOrObservationType.FieldUnit);
+        }
         if(comparator!=null){
             Collections.sort(elementsForClass, comparator);
         }
@@ -246,6 +271,7 @@ public class EnumComboElement<T extends IEnumTerm<T>> extends
             for(Entry<T, String> keyLabelPair : orderedTerms.entrySet()){
                 elementTypeList.add(keyLabelPair.getKey());
                 combo.add(keyLabelPair.getValue(), index);
+                combo.setData(keyLabelPair.getValue(), keyLabelPair.getKey());
                 index++;
             }
         }else if(enumType.equals(NomenclaturalCodeEdition.class)){
@@ -254,17 +280,18 @@ public class EnumComboElement<T extends IEnumTerm<T>> extends
             ICdmFormElement parentElement = getParentElement();
             if (parentElement instanceof NameRelationshipDetailElement){
                 NameRelationship rel = ((NameRelationshipDetailElement)parentElement).getEntity();
-                code = rel.getToName().getNomenclaturalCode();
+                code = rel.getToName().getNameType();
             }else if (parentElement instanceof NomenclaturalStatusElement){
                 ICdmFormElement parent = ((NomenclaturalStatusElement)parentElement).getParentElement();
                 TaxonName name = ((NomenclaturalStatusSection)parent).getEntity();
-                code = name.getNomenclaturalCode();
+                code = name.getNameType();
             }
             List<NomenclaturalCodeEdition> elements = NomenclaturalCodeEdition.forCode(code);
             LinkedHashMap<NomenclaturalCodeEdition, String> orderedTerms = AbstractUtility.orderTerms(elements);
             for (NomenclaturalCodeEdition codeEdition: elements){
                     elementTypeList.add((T)codeEdition);
-                    combo.add(codeEdition.getMessage(), index);
+                    combo.add(codeEdition.getLabel(), index);
+                    combo.setData(codeEdition.getLabel(), codeEdition);
                     index++;
             }
         }
@@ -273,10 +300,12 @@ public class EnumComboElement<T extends IEnumTerm<T>> extends
             for(T enumElement : elementsForClass){
                 elementTypeList.add(enumElement);
                 if (enumElement instanceof IEnumTerm)  {
-                    combo.add(((IEnumTerm) enumElement).getMessage(), index);
+                    combo.add(((IEnumTerm) enumElement).getLabel(), index);
+                    combo.setData(((IEnumTerm) enumElement).getLabel(), enumElement);
                     index++;
                 }else{
                     combo.add(((Enum) enumElement).name(), index);
+                    combo.setData(((Enum) enumElement).name(), enumElement);
                     index++;
                 }
             }
@@ -292,7 +321,7 @@ public class EnumComboElement<T extends IEnumTerm<T>> extends
                }
                combo.select(index);
        }
-       /** {@inheritDoc} */
+
        @Override
     public void widgetSelected(SelectionEvent e) {
 
@@ -334,4 +363,4 @@ public class EnumComboElement<T extends IEnumTerm<T>> extends
                String getName();
                Collection<T> getElements();
        }
-}
+}
\ No newline at end of file
index 5099e079d35d1598d83b8426f02ddd50e4352f31..64e7164a24eb9249d99dd4d6d93edff6f641d23a 100755 (executable)
@@ -12,8 +12,8 @@ import java.util.ArrayList;
 import java.util.List;
 
 import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.RelationshipTermBase;
 import eu.etaxonomy.cdm.model.term.Representation;
-import eu.etaxonomy.cdm.model.name.NameRelationshipType;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -21,17 +21,16 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author k.luther
  * @since 15.10.2018
- *
  */
 public class InverseTermWrapper {
-    String label;
-    NameRelationshipType term;
-    boolean isInverse;
 
+    private String label;
+    private RelationshipTermBase term;
+    boolean isInverse;
 
     boolean useAbbrevLabel;
 
-    InverseTermWrapper(NameRelationshipType term, boolean isInverse, boolean useAbbrevLabel){
+    InverseTermWrapper(RelationshipTermBase term, boolean isInverse, boolean useAbbrevLabel){
         this.term = term;
         this.isInverse = isInverse;
         this.useAbbrevLabel = useAbbrevLabel;
@@ -42,22 +41,16 @@ public class InverseTermWrapper {
         }
     }
 
-
-    public NameRelationshipType getTerm() {
+    public RelationshipTermBase getTerm() {
         return term;
     }
-
-
-    public void setTerm(NameRelationshipType term) {
+    public void setTerm(RelationshipTermBase term) {
         this.term = term;
     }
 
-
     public String getLabel() {
         return label;
     }
-
-
     public void setLabel(String label) {
         this.label = label;
     }
@@ -65,33 +58,28 @@ public class InverseTermWrapper {
     public boolean isInverse() {
         return isInverse;
     }
-
-
     public void setInverse(boolean isInverse) {
         this.isInverse = isInverse;
     }
 
-    /**
-     * @param term
-     * @return
-     */
-    private String getInverseLabel(NameRelationshipType term) {
+    private String getInverseLabel(RelationshipTermBase term) {
         if (term == null){
             return "";
         }else{
             String termLabel = null;
-            List<Language> languages = new ArrayList();
+            List<Language> languages = new ArrayList<>();
 
             languages.add(CdmStore.getDefaultLanguage());
             Representation rep = term.getPreferredInverseRepresentation(languages);
-            if (useAbbrevLabel){
-                termLabel = rep.getAbbreviatedLabel();
-                if (termLabel == null){
+            if (rep != null){
+                if (useAbbrevLabel){
+                    termLabel = rep.getAbbreviatedLabel();
+                    if (termLabel == null){
+                        termLabel = rep.getLabel();
+                    }
+                }else{
                     termLabel = rep.getLabel();
                 }
-
-            }else{
-                termLabel = rep.getLabel();
             }
             if (termLabel == null){
                 termLabel = term.getInverseLabel();
@@ -99,7 +87,6 @@ public class InverseTermWrapper {
 
             return termLabel;
         }
-
     }
 
     /**
@@ -110,19 +97,21 @@ public class InverseTermWrapper {
      *            a T object.
      * @return a {@link java.lang.String} object.
      */
-    protected String getLabel(NameRelationshipType term) {
+    protected String getLabel(RelationshipTermBase term) {
         if (term == null){
             return "";
         }else{
             String termLabel = null;
             Representation rep = term.getPreferredRepresentation(CdmStore.getDefaultLanguage());
-            if (useAbbrevLabel){
-                termLabel = rep.getAbbreviatedLabel();
-                if (termLabel == null){
+            if (rep != null){
+                if (useAbbrevLabel){
+                    termLabel = rep.getAbbreviatedLabel();
+                    if (termLabel == null){
+                        termLabel = rep.getLabel();
+                    }
+                }else{
                     termLabel = rep.getLabel();
                 }
-            }else{
-                termLabel = rep.getLabel();
             }
             if (termLabel == null){
                 termLabel = term.getLabel();
@@ -138,5 +127,4 @@ public class InverseTermWrapper {
             return termLabel;
         }
     }
-
-}
+}
\ No newline at end of file
index 6acad5a9c1b1f1c35ad4d468469f5c1ec570c0b3..3cda82d0fc88b79323186034a65b74717d65fa03 100755 (executable)
@@ -12,7 +12,9 @@ package eu.etaxonomy.taxeditor.ui.combo;
 import java.util.ArrayList;
 import java.util.List;
 
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -23,6 +25,8 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
  *
  */
 public class MisappliedRelationshipComboElement extends TermComboElement<TaxonRelationshipType> {
+       
+       
 
     /**
      * @param formFactory
@@ -40,15 +44,35 @@ public class MisappliedRelationshipComboElement extends TermComboElement<TaxonRe
         super(formFactory, parentElement, TaxonRelationshipType.class, labelString, selection, addEmptyElement, style);
         List<TaxonRelationshipType> relTypes = new ArrayList<>();
         if (selection.isAnyMisappliedName()){
+
             relTypes.add(TaxonRelationshipType.MISAPPLIED_NAME_FOR());
             relTypes.add(TaxonRelationshipType.PRO_PARTE_MISAPPLIED_NAME_FOR());
-            relTypes.add(TaxonRelationshipType.PARTIAL_MISAPPLIED_NAME_FOR());
+            if (PreferencesUtil.getBooleanValue(PreferencePredicate.AllowPartialMisapplied.getKey())) {
+               relTypes.add(TaxonRelationshipType.PARTIAL_MISAPPLIED_NAME_FOR());
+            }
         }else if (selection.isAnySynonym()){
             relTypes.add(TaxonRelationshipType.PRO_PARTE_SYNONYM_FOR());
             relTypes.add(TaxonRelationshipType.PARTIAL_SYNONYM_FOR());
         }
-        populateTerms(relTypes);
+        addTerms(relTypes);
+        populateTerms();
         setSelection(selection);
     }
+    @Override
+    protected List<TaxonRelationshipType> getPreferredTerms(){
+       List<TaxonRelationshipType> relTypes = new ArrayList<>();
+       if (selection.isAnyMisappliedName()){
+
+            relTypes.add(TaxonRelationshipType.MISAPPLIED_NAME_FOR());
+            relTypes.add(TaxonRelationshipType.PRO_PARTE_MISAPPLIED_NAME_FOR());
+            if (PreferencesUtil.getBooleanValue(PreferencePredicate.AllowPartialMisapplied.getKey())) {
+               relTypes.add(TaxonRelationshipType.PARTIAL_MISAPPLIED_NAME_FOR());
+            }
+        }else if (selection.isAnySynonym()){
+            relTypes.add(TaxonRelationshipType.PRO_PARTE_SYNONYM_FOR());
+            relTypes.add(TaxonRelationshipType.PARTIAL_SYNONYM_FOR());
+        }
+               return relTypes;
+    }
 
 }
index f2f656efcc75ffa4cf1f3b3e6ca518e67548c98d..46a826b10ee7dc63309f251529dfac027310e502 100755 (executable)
@@ -50,8 +50,11 @@ public class OriginalSourceTypeComparator implements Comparator<OriginalSourceTy
         if(o2==null){
             return 1;
         }
+        if(o1.equals(o2)) {
+            return 0;
+        }
         //both are either taxonomic or media
-        else if(o1.equals(OriginalSourceType.PrimaryTaxonomicSource)
+        if(o1.equals(OriginalSourceType.PrimaryTaxonomicSource)
                 && o2.equals(OriginalSourceType.PrimaryMediaSource)){
             if(entity != null && entity.getType().equals(OriginalSourceType.PrimaryMediaSource)){
                 return 1;
@@ -60,7 +63,7 @@ public class OriginalSourceTypeComparator implements Comparator<OriginalSourceTy
                 return -1;
             }
         }
-        else if(o2.equals(OriginalSourceType.PrimaryTaxonomicSource)
+        if(o2.equals(OriginalSourceType.PrimaryTaxonomicSource)
                 && o1.equals(OriginalSourceType.PrimaryMediaSource)){
             if(entity != null && entity.getType().equals(OriginalSourceType.PrimaryMediaSource)){
                 return -1;
@@ -70,32 +73,35 @@ public class OriginalSourceTypeComparator implements Comparator<OriginalSourceTy
             }
         }
         //one is not taxonomic or media
-        else if(o1.equals(OriginalSourceType.PrimaryTaxonomicSource)
+        if(o1.equals(OriginalSourceType.PrimaryTaxonomicSource)
                 ||o1.equals(OriginalSourceType.PrimaryMediaSource)){
             return -1;
 
         }
-        else if(o2.equals(OriginalSourceType.PrimaryTaxonomicSource)
+        if(o2.equals(OriginalSourceType.PrimaryTaxonomicSource)
                 || o2.equals(OriginalSourceType.PrimaryMediaSource)){
             return 1;
         }
-        //The last two are always "Other" followed by "Unknown"
-        else if(o1.equals(OriginalSourceType.Other)){
-            if(o2.equals(OriginalSourceType.Unknown)){
-                return -11;
-            }
-            else{
+        //The last two are always "Unknown" followed by "Other"
+        if(o1.equals(OriginalSourceType.Unknown)){
+            if(o2.equals(OriginalSourceType.Other)){
                 return 1;
+            }else {
+                return -1;
             }
         }
-        if(o2.equals(OriginalSourceType.Other)){
+        //Other is always the later
+        if(o1.equals(OriginalSourceType.Other)){
             return 1;
         }
-        else{
-            String message1 = o1.getKey();
-            String message2 = o2.getKey();
-            return message1.compareTo(message2);
+        //o1 can not be Other or Unknown, so o1 must be before o2
+        if (o2.equals(OriginalSourceType.Unknown)) {
+            return -1;
         }
+        String message1 = o1.getLabel();
+        String message2 = o2.getLabel();
+        return message1.compareTo(message2);
+
     }
 
 }
\ No newline at end of file
similarity index 72%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/NameRelationshipTypeCombo.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/RelationshipTypeCombo.java
index 6eaa63d14d8b4683f51f1cdf35861375c048d106..eec13b7283ddda945d77d8d69c3745b2f44995d6 100755 (executable)
@@ -18,8 +18,13 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
 
 import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.RelationshipTermBase;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.name.NameRelationshipType;
+import eu.etaxonomy.cdm.model.name.Rank;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.Representation;
+import eu.etaxonomy.cdm.model.term.TermRelationshipType;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -33,12 +38,12 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
  * @since 08.10.2018
  *
  */
-public class NameRelationshipTypeCombo<T extends InverseTermWrapper> extends AbstractComboElement<T> {
+public class RelationshipTypeCombo<T extends InverseTermWrapper> extends AbstractComboElement<T> {
 
 
    List<InverseTermWrapper> wrapperList = new ArrayList<>();
    T wrapperSelection;
-   List<NameRelationshipType> terms = new ArrayList();
+   List<RelationshipTermBase> terms = new ArrayList();
    boolean useAbbrevLabel;
 
 
@@ -53,12 +58,29 @@ public class NameRelationshipTypeCombo<T extends InverseTermWrapper> extends Abs
      * @param useAbbrevLabel
      * @param comparator
      */
-    public NameRelationshipTypeCombo(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement,
+    public RelationshipTypeCombo(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, TermType type,
             String labelString,  boolean addEmptyElement, int style, boolean useAbbrevLabel,
             Comparator<T> comparator) {
      super(cdmFormFactory, parentElement);
      // labelString, selection, addEmptyElement, style,  comparator
-     terms = getTermManager().getPreferredTerms(TermType.NameRelationshipType);
+     
+     String availableTypes;
+     List<RelationshipTermBase> relTypes;
+     if (TermType.TaxonRelationshipType.equals(type )) {
+        availableTypes = PreferencesUtil.getStringValue(PreferencePredicate.ConceptRelationshipType.getKey());
+        relTypes = CdmStore.getTermManager().createTermListFromString(availableTypes, TermType.TaxonRelationshipType);
+     }else if (TermType.NameRelationshipType.equals(type)) {
+        availableTypes = PreferencesUtil.getStringValue(PreferencePredicate.AvailableNameRelationshipType.getKey());
+        relTypes = CdmStore.getTermManager().createTermListFromString(availableTypes, TermType.NameRelationshipType);
+     }else {
+//this should not happen.
+        return;
+     }
+     
+//     terms = getTermManager().getPreferredTerms(TermType.NameRelationshipType);
+     
+     terms = relTypes;
+//     PreferencesUtil.get
      this.useAbbrevLabel = useAbbrevLabel;
      populateTerms();
      label.setText(labelString);
@@ -105,7 +127,7 @@ public class NameRelationshipTypeCombo<T extends InverseTermWrapper> extends Abs
      *
      */
     private void fillInverseTermWrapperList() {
-        for (NameRelationshipType term: terms){
+        for (RelationshipTermBase term: terms){
             wrapperList.add(new InverseTermWrapper(term, false, useAbbrevLabel));
             List<Language> languages = new ArrayList();
             languages.add(CdmStore.getDefaultLanguage());
@@ -122,7 +144,9 @@ public class NameRelationshipTypeCombo<T extends InverseTermWrapper> extends Abs
     /** {@inheritDoc} */
     @Override
     public void widgetSelected(SelectionEvent e) {
-        wrapperSelection = (T) wrapperList.get(combo.getSelectionIndex());
+       if (combo.getSelectionIndex() > -1){
+               wrapperSelection = (T) wrapperList.get(combo.getSelectionIndex());
+       }
         firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
     }
 
similarity index 56%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/VocabularyComboElement.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermCollectionComboElement.java
index 90e1470eac01f6cef9c4040bf8ffc892d520a788..986f53b5689e0accda5221b1c7e61440ce90316b 100644 (file)
@@ -1,11 +1,17 @@
 /**
- *
- */
+* Copyright (C) 2016 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.combo;
 
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.EnumSet;
 import java.util.List;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
@@ -13,10 +19,11 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.widgets.Listener;
 
-import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.api.service.ITermCollectionService;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermCollection;
 import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -28,27 +35,31 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 /**
  * @author n.hoffmann
  * @created Nov 5, 2009
- * @version 1.0
- * @param <VOC>
  */
-public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC extends TermVocabulary<TERM>>
-               extends AbstractComboElement<VOC> {
+public class TermCollectionComboElement<TERM extends DefinedTermBase<TERM>, TC extends TermCollection<TERM,?>>
+               extends AbstractComboElement<TC> {
 
-       private VOC emptyElement;
+       private TC emptyElement;
        private static String EMPTY_ELEMENT_LABEL = "";
 
-       private ArrayList<VOC> terms;
+       private ArrayList<TC> terms;
+
+       private Comparator<TC> vocComparator;
 
-       private Comparator<VOC> vocComparator;
+    private final EnumSet<TermType> termTypes;
 
-    private final TermType termType;
+    public TermCollectionComboElement(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, TermType termType, String labelString,
+            TC selection, int style){
+        this(formFactory, parentElement, EnumSet.of(termType), labelString, selection, style);
+    }
 
-       public VocabularyComboElement(CdmFormFactory formFactory,
-               ICdmFormElement parentElement, TermType termType, String labelString, VOC selection,
-               int style) {
+    public TermCollectionComboElement(CdmFormFactory formFactory,
+               ICdmFormElement parentElement, EnumSet<TermType> termTypes, String labelString,
+               TC selection, int style) {
         super(formFactory, parentElement);
 
-        this.termType = termType;
+        this.termTypes = termTypes;
 
         populateTerms(getVocabularies());
 
@@ -63,7 +74,25 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
         }
        }
 
+       public TermCollectionComboElement(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, EnumSet<TermType> termTypes, String label,
+            TermCollectionDto selection, int style) {
+        super(formFactory, parentElement);
+
+        this.termTypes = termTypes;
 
+        populateTerms(getVocabularies());
+
+        combo.addSelectionListener(this);
+        combo.addDisposeListener(this);
+        addContentProposalAdapter();
+
+        PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this);
+
+        if (selection != null) {
+            setSelectionDto(selection);
+        }
+    }
 
     /**
         * <p>Sets the selection of the combo to the given T object.</p>
@@ -74,9 +103,7 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
         *            a T object or <code>null</code> to clear the selection
         */
        @Override
-    public void setSelection(VOC selection) {
-               this.selection = selection;
-
+    public void setSelection(TC selection) {
                this.selection = selection;
 
                Listener[] listeners = combo.getListeners(SWT.Selection);
@@ -102,17 +129,49 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
 //             }
        }
 
+    public void setSelectionDto(TermCollectionDto selection) {
+        Listener[] listeners = combo.getListeners(SWT.Selection);
+
+//      for (Listener listener : listeners) {
+//          combo.removeListener(SWT.Selection, listener);
+//      }
+        int selectedIndex = 0;
+        if(selection == null){
+            // set selection to the emptyElement
+            selectedIndex = 0;
+        }else{
+            for (TC voc: terms){
+
+                if (voc != null && voc.getUuid().equals(selection.getUuid())){
+                    selectedIndex = terms.indexOf(voc);
+                }
+            }
+
+//            if (selectedIndex == -1) {
+//                createTermNotInPreferredTerms(selection);
+//                selectedIndex = terms.indexOf(selection);
+//            }
+        }
+        if (selectedIndex > -1) {
+            combo.select(selectedIndex);
+        }
+
+//      for (Listener listener : listeners) {
+//          combo.addListener(SWT.Selection, listener);
+//      }
+    }
+
        /**
         * Fills the combo with elements and sets up the convenience functions
         * for selection index
         *
         * @param preferredTerms
         */
-       private void populateTerms(List<VOC> preferredTerms) {
+       private void populateTerms(List<TC> preferredTerms) {
 
                combo.removeAll();
 
-               terms = new ArrayList<VOC>();
+               terms = new ArrayList<>();
 
                int i = 1;
                int index = 0;
@@ -124,20 +183,18 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
                if (vocComparator != null) {
                        Collections.sort(preferredTerms, vocComparator);
                }else{
-                   Collections.sort(preferredTerms, new Comparator<VOC>() {
-
-                @Override
-                public int compare(VOC o1, VOC o2) {
-                    if (o1.equals(o2)){
+                   Collections.sort(preferredTerms, (o1,o2)->{
+                       if (o1.equals(o2)){
                         return 0;
                     }
-                    int result = ((TermVocabulary) o1).getTitleCache().toLowerCase().compareTo(((TermVocabulary)o2).getTitleCache().toLowerCase());
+                    int result = o1.getTitleCache().toLowerCase().compareTo(o2.getTitleCache().toLowerCase());
 
                     return result;
                 }
-            });
+            );
                }
-               for (VOC term : preferredTerms) {
+
+               for (TC term : preferredTerms) {
                        String label = getLabel(term);
                        if (label == null) {
                                if (term.getTitleCache() != null) {
@@ -173,20 +230,16 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
                combo.select(index);
        }
 
-       protected List<VOC> getVocabularies(){
-           List<TermVocabulary<TERM>> list = CdmStore.getService(IVocabularyService.class).<TERM>findByTermType(termType, null);
-               return (List<VOC>) list;
+       protected List<TC> getVocabularies(){
+           List<TermCollection> list = CdmStore.getService(ITermCollectionService.class).list(termTypes, null, null, null, null);
+               return (List<TC>) list;
        }
 
        /**
         * May be overridden by derived classes if the desired label string does not
         * reside in term.getLabel();
-        *
-        * @param term
-        *            a T object.
-        * @return a {@link java.lang.String} object.
         */
-       protected String getLabel(VOC term) {
+       protected String getLabel(TC term) {
                if (term == null){
                        return "";
                }else{
@@ -194,15 +247,14 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
                }
        }
 
-       private void createTermNotInPreferredTerms(VOC term) {
-               List<VOC> preferredTerms = getVocabularies();
+       private void createTermNotInPreferredTerms(TC term) {
+               List<TC> preferredTerms = getVocabularies();
 
                preferredTerms.add(term);
 
                populateTerms(preferredTerms);
        }
 
-       /** {@inheritDoc} */
        @Override
     public void widgetSelected(SelectionEvent e) {
            int i = combo.getSelectionIndex();
@@ -214,7 +266,6 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
        }
 
-       /** {@inheritDoc} */
        @Override
     public void propertyChange(PropertyChangeEvent event) {
                super.propertyChange(event);
@@ -237,5 +288,4 @@ public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC exte
         terms.remove(emptyElement);
         combo.remove(EMPTY_ELEMENT_LABEL);
     }
-
-}
+}
\ No newline at end of file
index d2b29a9bad1be8fda64433104c95e5a3946e20b1..8ddd172cbb8a15bc47f6a8dd4f38f359feadc02b 100755 (executable)
@@ -1,6 +1,11 @@
 /**
- *
- */
+* Copyright (C) 2017 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.combo.term;
 
 import java.util.ArrayList;
@@ -9,7 +14,7 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
@@ -18,6 +23,7 @@ import org.eclipse.swt.widgets.Listener;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
@@ -32,8 +38,6 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 /**
  * @author n.hoffmann
  * @created Nov 5, 2009
- * @version 1.0
- * @param <T>
  */
 public class TermComboElement<T extends DefinedTermBase>
                extends AbstractComboElement<T> {
@@ -43,7 +47,7 @@ public class TermComboElement<T extends DefinedTermBase>
 
        private ArrayList<T> terms;
 
-       public ArrayList<T> getTerms() {
+       public List<T> getTerms() {
         return terms;
     }
 
@@ -55,14 +59,12 @@ public class TermComboElement<T extends DefinedTermBase>
 
        public void setTermComparator(Comparator<T> termComparator) {
                this.termComparator = termComparator;
-               List<T> termsWithoutNull = terms.subList(1, terms.size());
-
-               populateTerms(termsWithoutNull);
-
+               populateTerms();
        }
 
        private final TermType termType;
-       private final TermVocabulary termVocabulary;
+       @SuppressWarnings("rawtypes")
+    private final TermVocabulary termVocabulary;
        private final Class<T> termClass;
 
        private List<T> customPreferredTerms;
@@ -76,6 +78,12 @@ public class TermComboElement<T extends DefinedTermBase>
                this(formFactory, parentElement, null, termType, null, null, labelString, selection, addEmptyElement, style, useAbbrevLabel, comparator);
        }
 
+       public TermComboElement(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, TermType termType, String labelString, TermDto selection, boolean addEmptyElement,
+            int style, boolean useAbbrevLabel, Comparator<T> comparator) {
+        this(formFactory, parentElement, null, termType, null, null, labelString, selection, addEmptyElement, style, useAbbrevLabel, comparator);
+    }
+
        public TermComboElement(CdmFormFactory formFactory,
                ICdmFormElement parentElement, TermVocabulary<?> termVocabulary, String labelString, T selection, boolean addEmptyElement,
                int style, boolean useAbbrevLabel, Comparator<T> comparator) {
@@ -87,56 +95,63 @@ public class TermComboElement<T extends DefinedTermBase>
             int style) {
         this(formFactory, parentElement, termClass, null, null, null, labelString, selection, addEmptyElement, style, false, null);
     }
+
     public TermComboElement(CdmFormFactory formFactory,
             ICdmFormElement parentElement, Class<T> termClass, String labelString, T selection, boolean addEmptyElement,
             int style, boolean useAbbrevLabel) {
-        this(formFactory, parentElement, termClass, null, null, null,labelString, selection, addEmptyElement, style, useAbbrevLabel, null);
-
+        this(formFactory, parentElement, termClass, null, null, null, labelString, selection, addEmptyElement, style, useAbbrevLabel, null);
     }
 
     public TermComboElement(CdmFormFactory formFactory,
             ICdmFormElement parentElement, List<T> terms, String labelString, T selection, boolean addEmptyElement,
-            int style, boolean useAbbrevLabel) {
-        this(formFactory, parentElement, null, null, null, terms,labelString, selection, addEmptyElement, style, useAbbrevLabel, null);
-
+            int style, boolean useAbbrevLabel, Comparator<T> comparator) {
+        this(formFactory, parentElement, null, null, null, terms,labelString, selection, addEmptyElement, style, useAbbrevLabel, comparator);
     }
 
        private TermComboElement(CdmFormFactory formFactory,
-               ICdmFormElement parentElement, Class<T> termClass, TermType termType, TermVocabulary<?> termVocabulary, List<T> terms,String labelString, T selection, boolean addEmptyElement,
+               ICdmFormElement parentElement, Class<T> termClass, TermType termType, TermVocabulary<?> termVocabulary, List<T> terms, String labelString, T selection, boolean addEmptyElement,
                int style, boolean useAbbrevLabel, Comparator<T> comparator) {
-        super(formFactory, parentElement);
 
-        this.termType = termType;
+           super(formFactory, parentElement);
+
         this.termVocabulary = termVocabulary;
         this.termClass = termClass;
         this.addEmptyElement = addEmptyElement;
         this.useAbbrevLabel = useAbbrevLabel;
-        this.termComparator = comparator;
+
         if (labelString != null) {
             label.setText(labelString);
         }
         this.selection = selection;
-
+        if (comparator == null) {
+                this.termComparator = new DefaultTermComparator<>();
+        }else {
+                this.termComparator = comparator;
+        }
         if(termType!=null){
             //TODO try to remove generic T and avoid classes to be used
-            populateTerms((List<T>) getTermManager().getPreferredTerms(termType));
+               addTerms((List<T>) getTermManager().getPreferredTerms(termType));
         }
         else if(termVocabulary!=null){
-            populateTerms((List<T>) getTermManager().getPreferredTerms(termVocabulary));
+            addTerms((List<T>) getTermManager().getPreferredTerms(termVocabulary));
         }
         else if(this.termClass!=null){
-            populateTerms(getPreferredTerms());
+            addTerms(getPreferredTerms());
         }else if (terms != null){
-            populateTerms(terms);
+            addTerms(terms);
+        }
+        if (termType == null && terms != null && !terms.isEmpty()){
+               this.termType = terms.get(0).getTermType();
+        }else{
+               this.termType = termType;
         }
-
 
         addContentProposalAdapter();
         combo.addSelectionListener(this);
         combo.addDisposeListener(this);
-        if (comparator == null){
-            setTermComparator(new DefaultTermComparator<T>());
-        }
+
+        populateTerms();
+
         PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this);
 
         if (selection != null) {
@@ -144,6 +159,75 @@ public class TermComboElement<T extends DefinedTermBase>
         }
        }
 
+       protected void addTerms(List<T> preferredTerms) {
+               terms = new ArrayList<>();
+               Collections.sort(preferredTerms, termComparator);
+               if(addEmptyElement){
+                   // Add an empty element for when nothing was selected yet
+                   combo.add(EMPTY_ELEMENT_LABEL);
+                   terms.add(emptyElement);
+               }
+               for (T term: preferredTerms){
+                       terms.add(term);
+               }
+       }
+
+       private TermComboElement(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, Class<T> termClass, TermType termType, TermVocabulary<?> termVocabulary, List<T> terms,String labelString, TermDto selection, boolean addEmptyElement,
+            int style, boolean useAbbrevLabel, Comparator<T> comparator) {
+        super(formFactory, parentElement);
+
+        this.termVocabulary = termVocabulary;
+        this.termClass = termClass;
+        this.addEmptyElement = addEmptyElement;
+        this.useAbbrevLabel = useAbbrevLabel;
+        if (comparator == null) {
+               this.termComparator = new DefaultTermComparator<T>();
+        }else {
+               this.termComparator = comparator;
+        }
+        if (labelString != null) {
+            label.setText(labelString);
+        }
+
+        if(termType!=null){
+            //TODO try to remove generic T and avoid classes to be used
+            addTerms((List<T>) getTermManager().getPreferredTerms(termType));
+        }
+        else if(termVocabulary!=null){
+            addTerms((List<T>) getTermManager().getPreferredTerms(termVocabulary));
+        }
+        else if(this.termClass!=null){
+            addTerms(getPreferredTerms());
+        }else if (terms != null && !terms.isEmpty()){
+            addTerms(terms);
+
+        }
+        if (termType == null){
+               this.termType = terms.get(0).getTermType();
+        }else{
+               this.termType = termType;
+        }
+
+        addContentProposalAdapter();
+        combo.addSelectionListener(this);
+        combo.addDisposeListener(this);
+
+        populateTerms();
+
+        PreferencesUtil.getPreferenceStore().addPropertyChangeListener(this);
+        if (this.terms != null && selection != null){
+            for (T term: this.terms){
+                if (term != null && term.getUuid().equals(selection.getUuid())){
+                    this.selection = term;
+                }
+            }
+        }
+        if (this.selection != null) {
+            setSelection(this.selection);
+        }
+    }
+
        /**
         * <p>Sets the selection of the combo to the given T object.</p>
         * <p>Passing <code>null</code> to this method will set the selection to
@@ -172,38 +256,55 @@ public class TermComboElement<T extends DefinedTermBase>
                                selectedIndex = terms.indexOf(selection);
                        }
                }
-               combo.select(selectedIndex);
+
 
                for (Listener listener : listeners) {
                        combo.addListener(SWT.Selection, listener);
                }
+               combo.select(selectedIndex);
+
        }
 
+       public void setSelectionDto(TermDto selection) {
+        int selectedIndex = 0;
+        if(selection == null){
+            // set selection to the emptyElement
+            selectedIndex = 0;
+        }else{
+            for (T term: terms){
+                if (term != null && term.getUuid().equals(selection.getUuid())){
+                    selectedIndex = terms.indexOf(term);
+                }
+            }
+        }
+        if (selectedIndex > -1) {
+            combo.select(selectedIndex);
+        }
+    }
+
        /**
         * Fills the combo with elements and sets up the convenience functions
         * for selection index
         *
         * @param preferredTerms
         */
-       protected void populateTerms(List<T> preferredTerms) {
-
+       protected void populateTerms() {
                combo.removeAll();
-
-               terms = new ArrayList<T>();
-
                int i = 1;
                int index = 0;
 
                if(addEmptyElement){
                    // Add an empty element for when nothing was selected yet
                    combo.add(EMPTY_ELEMENT_LABEL);
-                   terms.add(emptyElement);
                }
+               List<T> withoutNull = new ArrayList<>(terms);
 
                if (termComparator != null) {
-                       Collections.sort(preferredTerms, termComparator);
+                       if (addEmptyElement){
+                               withoutNull = terms.subList(1, terms.size());
+                       }
                }
-               for (T term : preferredTerms) {
+               for (T term : withoutNull) {
                        String label = getLabel(term);
                        if (label == null) {
                                if (term.getTitleCache() != null) {
@@ -219,11 +320,8 @@ public class TermComboElement<T extends DefinedTermBase>
                                }
 
                        }
-
                        combo.add(label);
                        combo.setData(label, term);
-                       terms.add(term);
-
                        i++;
                        if (selection != null) {
                                if (selection.equals(term)) {
@@ -231,17 +329,15 @@ public class TermComboElement<T extends DefinedTermBase>
                                }
                        }
                }
-
         if (selection != null && index == 0) {
-                       createTermNotInPreferredTerms(selection, preferredTerms);
+                       createTermNotInPreferredTerms(selection, terms);
                }
 
                combo.select(index);
-
        }
 
        protected List<T> getPreferredTerms(){
-           List<T> preferredTerms = new ArrayList<T>();
+           List<T> preferredTerms = new ArrayList<>();
                if (customPreferredTerms != null){
                        return customPreferredTerms;
                }
@@ -276,14 +372,14 @@ public class TermComboElement<T extends DefinedTermBase>
                            }
                        }
                        if (termLabel == null){
-                               termLabel = term.getLabel(CdmStore.getDefaultLanguage());
+                               termLabel = term.getLabel(PreferencesUtil.getGlobalLanguage());
                        }
                        if (termLabel == null){
                            termLabel = term.getLabel();
                        }
                        if(PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS)
                            && term.getVocabulary()!=null){
-                           String vocLabel = term.getVocabulary().getLabel(CdmStore.getDefaultLanguage());
+                           String vocLabel = term.getVocabulary().getLabel(PreferencesUtil.getGlobalLanguage());
                            if (vocLabel == null){
                                vocLabel = term.getVocabulary().getLabel();
                            }
@@ -293,29 +389,20 @@ public class TermComboElement<T extends DefinedTermBase>
                }
        }
 
-       /**
-        *
-        *
-        * @param term
-        */
        private void createTermNotInPreferredTerms(T term, List<T> preferredTerms) {
-               //List<T> preferredTerms = getPreferredTerms();
-
-               preferredTerms.add(term);
-
-               populateTerms(preferredTerms);
+               terms.add(term);
+               populateTerms();
        }
 
-       /** {@inheritDoc} */
        @Override
     public void widgetSelected(SelectionEvent e) {
            if (e.getSource().equals(combo) && combo.getSelectionIndex() >= 0){
+               int index = combo.getSelectionIndex();
                selection = terms.get(combo.getSelectionIndex());
+               firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
            }
-               firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
        }
 
-       /** {@inheritDoc} */
        @Override
     public void propertyChange(PropertyChangeEvent event) {
                super.propertyChange(event);
@@ -323,7 +410,8 @@ public class TermComboElement<T extends DefinedTermBase>
                if (event != null
                                && PreferencesUtil.PREFERRED_TERMS_CHANGE.equals(event
                                                .getProperty())) {
-                       populateTerms(getPreferredTerms());
+                       addTerms(getPreferredTerms());
+                       populateTerms();
                }
                this.setSelection(selection);
        }
@@ -346,9 +434,9 @@ public class TermComboElement<T extends DefinedTermBase>
         * @param terms a {@link List} of T objects or <code>null</code> for default preferred terms
         */
        public void setTerms(List<T> terms) {
-               setSelection(null);
                customPreferredTerms = terms;
-               populateTerms(customPreferredTerms);
+               addTerms(customPreferredTerms);
+               populateTerms();
        }
 
        public void removeEmptyElement(){
@@ -361,5 +449,4 @@ public class TermComboElement<T extends DefinedTermBase>
                }
            }
        }
-
-}
+}
\ No newline at end of file
index d16be3f8052245141a287f44a24c319bec7d97f6..d34039f96fec8b452043a037456606355a5908b7 100644 (file)
@@ -20,7 +20,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author pplitzner
  * @since Nov 24, 2017
- *
  */
 public class TermUuidContentProvider implements IStructuredContentProvider {
 
@@ -32,5 +31,4 @@ public class TermUuidContentProvider implements IStructuredContentProvider {
         }
         return null;
     }
-
-}
+}
\ No newline at end of file
index 3b0761a33e49a84be24c2ddc9473023a48e3921c..404d4e5c90b73960dd26b0eb7ac1de2a5b998320 100644 (file)
@@ -10,7 +10,9 @@ package eu.etaxonomy.taxeditor.ui.combo.termvocabulary;
 
 import org.eclipse.jface.viewers.LabelProvider;
 
+import eu.etaxonomy.cdm.model.term.Representation;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
  *
@@ -23,7 +25,8 @@ public class TermVocabularyComboLabelProvider extends LabelProvider {
     @Override
     public String getText(Object element) {
         if(element instanceof TermVocabulary){
-            return ((TermVocabulary) element).getLabel();
+               Representation rep = ((TermVocabulary) element).getPreferredRepresentation(PreferencesUtil.getGlobalLanguage());
+               return rep != null? rep.getLabel():((TermVocabulary) element).getTitleCache();
         }
         return super.getText(element);
     }
index 55ac72d4a0f260e53ef81e2dd88426e956ed3b69..6cb99b15587da14a6690389c81a76141a0cc2105 100644 (file)
@@ -39,7 +39,7 @@ AbstractCdmDetailElement<Classification>{
     protected void createControls(ICdmFormElement formElement, Classification entity, int style) {
          txtClassificationName = formFactory.createTextWithLabelElement(formElement, "Classification name", null, style);
          comboRelationType = formFactory.createDefinedTermComboElement(TermType.TaxonRelationshipType, formElement, "Taxon relation", null, style);
-         selectReference = formFactory.createSelectionElement(Reference.class, //getConversationHolder(),
+         selectReference = formFactory.createSelectionElement(Reference.class,
                  formElement, "Reference", null, EntitySelectionElement.SELECTABLE, style);
     }
 
@@ -59,4 +59,10 @@ AbstractCdmDetailElement<Classification>{
         return selectReference.getSelection();
     }
 
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
+
 }
index fd2edd9dbc405e2aec858fb3ffe7e16cc6a6b5cd..e910c28439c524b010f70589bc5ad6ea91379e76 100644 (file)
@@ -29,7 +29,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  *
  * @author n.hoffmann
  * @created 16.06.2009
- * @version 1.0
+
  */
 public class LoginDialog extends Dialog {
 
@@ -43,8 +43,6 @@ public class LoginDialog extends Dialog {
                title = Messages.LoginDialog_LOGIN;
        }
 
-
-       /** {@inheritDoc} */
        @Override
        protected Control createDialogArea(Composite parent) {
                Composite composite = (Composite) super.createDialogArea(parent);
index 6c7c0f373e7456ea03f7eb04bb8c1f00e931f152..b007bee2f78aad21ce9b76e9b035c67aae4c3622 100644 (file)
@@ -8,7 +8,6 @@
  */
 package eu.etaxonomy.taxeditor.ui.dialog;
 
-import java.io.File;
 import java.io.IOException;
 import java.net.SocketTimeoutException;
 import java.text.SimpleDateFormat;
@@ -17,8 +16,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
@@ -31,11 +31,8 @@ import org.eclipse.swt.SWTException;
 import org.eclipse.swt.custom.StyledText;
 import org.eclipse.swt.events.KeyAdapter;
 import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.layout.FillLayout;
@@ -52,7 +49,6 @@ import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.forms.events.ExpansionEvent;
 import org.eclipse.ui.forms.events.IExpansionListener;
 import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.progress.IProgressConstants;
 import org.eclipse.wb.swt.SWTResourceManager;
 import org.osgi.service.prefs.BackingStoreException;
 import org.osgi.service.prefs.Preferences;
@@ -73,7 +69,6 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.remoting.server.CdmServerException;
-import eu.etaxonomy.taxeditor.remoting.server.CdmServerUtils;
 import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteLocalhostSource;
 import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfo;
 import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfo.CdmInstanceInfo;
@@ -81,133 +76,165 @@ import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.LoginManager;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-import eu.etaxonomy.taxeditor.webapp.CdmEmbeddedServerException;
-import eu.etaxonomy.taxeditor.webapp.CdmServer;
-import eu.etaxonomy.taxeditor.webapp.ICDMServerError;
+import eu.etaxonomy.taxeditor.workbench.datasource.ICdmServerError;
 
 /**
  * @author cmathew
  * @date 20 Jan 2015
  */
-public class RemotingLoginDialog extends Dialog implements ICDMServerError {
-
-    private Logger logger = Logger.getLogger(getClass());
-
-    private static final String DEFAULT_PASS = "00000"; //$NON-NLS-1$
-    private static final String DEFAULT_USER = "admin"; //$NON-NLS-1$
-
-    private final static String STATUS_AVAILABLE = Messages.RemotingLoginDialog_STATUS_AVAILABLE;
-    private final static String STATUS_NOT_AVAILABLE = Messages.RemotingLoginDialog_STATUS_NOT_AVAILABLE;
-    private final static String STATUS_STARTED = Messages.RemotingLoginDialog_STATUS_STARTED;
-    private final static String STATUS_NOT_STARTED = Messages.RemotingLoginDialog_STATUS_NOT_STARTED;
-    private final static String STATUS_RETRIEVING = Messages.RemotingLoginDialog_STATUS_RETRIEVING;
-    private final static String STATUS_CHECKING_AVAILABILITY = Messages.RemotingLoginDialog_STATUS_CHECKING;
-    private final static String STATUS_NO_INSTANCES = Messages.RemotingLoginDialog_STATUS_NO_INSTANCES_FOUND;
-    private final static String STATUS_NOT_COMPATIBLE = Messages.RemotingLoginDialog_STATUS_NOT_COMPATIBLE;
-
-    private final static String MESG_COMPATIBLE_EDITOR_OLD = Messages.RemotingLoginDialog_UPDATE_EDITOR;
-    private final static String MESG_COMPATIBLE_SERVER_OLD = Messages.RemotingLoginDialog_CHOOSE_COMPATIBLE_CDM_SERVER;
-    private final static String MESG_SCHEMA_MISSING = Messages.RemotingLoginDialog_SCHEMA_MISSING;
-    private final static String MESG_NO_SCHEMA = Messages.RemotingLoginDialog_NO_SCHEMA;
-
-    private final static String LABEL_CONNECT = Messages.RemotingLoginDialog_LABEL_CONNECT;
-    private final static String LABEL_CREATE_SCHEMA = Messages.RemotingLoginDialog_LABEL_CREATE_SCHEMA;
-    private final static String LABEL_UPDATE_SCHEMA_VERSION = Messages.RemotingLoginDialog_LABEL_UPDATE_SCHEMA_VERSION;
-    private final static String MESG_UPDATE_SCHEMA_VERSION = Messages.RemotingLoginDialog_MSG_UPDATE_SCHEMA_VERSION;
-
-    private static final int BTN_COLOR_ATTENTION = SWT.COLOR_RED;
-
-    private final static String STORE_PREFERENCES_NODE = "eu.etaxonomy.taxeditor.store"; //$NON-NLS-1$
-
-    private final static String LOGIN_NODE = "login"; //$NON-NLS-1$
-    private final static String USERNAME_SUFFIX = "_username"; //$NON-NLS-1$
-    private final static String PASSWORD_SUFFIX = "_password"; //$NON-NLS-1$
-
-    private final static String LAST_SERVER_INSTANCE_NODE = "lastServerInstance"; //$NON-NLS-1$
-    private final static String LAST_SERVER_KEY = "lastServerKey"; //$NON-NLS-1$
-    private final static String LAST_INSTANCE_KEY = "lastInstanceKey"; //$NON-NLS-1$
+public class RemotingLoginDialog extends Dialog implements ICdmServerError {
+
+    private Logger logger = LogManager.getLogger(getClass());
+
+    public static final String DEFAULT_PASS = "00000"; //$NON-NLS-1$
+    public static final String DEFAULT_USER = "admin"; //$NON-NLS-1$
+
+    public final static String STATUS_AVAILABLE = Messages.RemotingLoginDialog_STATUS_AVAILABLE;
+    public final static String STATUS_NOT_AVAILABLE = Messages.RemotingLoginDialog_STATUS_NOT_AVAILABLE;
+    public final static String STATUS_STARTED = Messages.RemotingLoginDialog_STATUS_STARTED;
+    public final static String STATUS_NOT_STARTED = Messages.RemotingLoginDialog_STATUS_NOT_STARTED;
+    public final static String STATUS_RETRIEVING = Messages.RemotingLoginDialog_STATUS_RETRIEVING;
+    public final static String STATUS_CHECKING_AVAILABILITY = Messages.RemotingLoginDialog_STATUS_CHECKING;
+    public final static String STATUS_NO_INSTANCES = Messages.RemotingLoginDialog_STATUS_NO_INSTANCES_FOUND;
+    public final static String STATUS_NOT_COMPATIBLE = Messages.RemotingLoginDialog_STATUS_NOT_COMPATIBLE;
+
+    public final static String MESG_COMPATIBLE_EDITOR_OLD = Messages.RemotingLoginDialog_UPDATE_EDITOR;
+    public final static String MESG_COMPATIBLE_SERVER_OLD = Messages.RemotingLoginDialog_CHOOSE_COMPATIBLE_CDM_SERVER;
+    public final static String MESG_SCHEMA_MISSING = Messages.RemotingLoginDialog_SCHEMA_MISSING;
+    public final static String MESG_NO_SCHEMA = Messages.RemotingLoginDialog_NO_SCHEMA;
+
+    public final static String LABEL_CONNECT = Messages.RemotingLoginDialog_LABEL_CONNECT;
+    public final static String LABEL_CREATE_SCHEMA = Messages.RemotingLoginDialog_LABEL_CREATE_SCHEMA;
+    public final static String LABEL_UPDATE_SCHEMA_VERSION = Messages.RemotingLoginDialog_LABEL_UPDATE_SCHEMA_VERSION;
+    public final static String MESG_UPDATE_SCHEMA_VERSION = Messages.RemotingLoginDialog_MSG_UPDATE_SCHEMA_VERSION;
+    public final static String LABEL_LOGIN = Messages.RemotingLoginDialog_LABEL_LOGIN;
+    public final static String LABEL_CDM_SERVER = Messages.RemotingLoginDialog_LABEL_CDM_SERVER;
+    public final static String LABEL_REFRESH = Messages.RemotingLoginDialog_LABEL_REFRESH;
+    public final static String LABEL_CDM_INSTANCE = Messages.RemotingLoginDialog_LABEL_CDM_INSTANCE;
+    public final static String LABEL_LOGIN_COLON = Messages.RemotingLoginDialog_LABEL_LOGIN_COLON;
+    public final static String LABEL_PASSWORD = Messages.RemotingLoginDialog_LABEL_PASSWORD;
+    public final static String LABEL_EDITOR_CDM_VERSION = Messages.RemotingLoginDialog_LABEL_EDITOR_CDM_VERSION;
+    public final static String LABEL_SERVER_CDM_VERSION = Messages.RemotingLoginDialog_LABEL_SERVER_CDM_VERSION;
+    public final static String LABEL_EDITOR_CDMLIB_VERSION = Messages.RemotingLoginDialog_LABEL_EDITOR_CDMLIB_VERSION;
+    public final static String LABEL_SERVER_CDMLIB_VERSION = Messages.RemotingLoginDialog_LABEL_SERVER_CDMLIB_VERSION;
+    public final static String LABEL_STOP_MANAGED_SERVER = Messages.RemotingLoginDialog_LABEL_STOP_MANAGED_SERVER;
+    public final static String LABEL_PORT = Messages.RemotingLoginDialog_LABEL_PORT;
+    public final static String LABEL_ADVANCED = Messages.RemotingLoginDialog_LABEL_ADVANCED;
+    public final static String LABEL_DEFAULT_LOGIN = Messages.RemotingLoginDialog_DEFAULT_LOGIN;
+    public final static String LABEL_REMEMBER_ME = Messages.RemotingLoginDialog_LABEL_REMEMBER_ME;
+
+    public final static String MESG_LOGIN_CANNOT_BE_EMPTY = Messages.RemotingLoginDialog_LOGIN_CANNOT_BE_EMPTY;
+    public final static String STATUS_GENERATING_CONFIG_FILE = Messages.RemotingLoginDialog_GENERATING_CONFIG_FILE;
+    public final static String STATUS_STARTING_MGD_SERVER = Messages.RemotingLoginDialog_STARTING_MGD_SERVER;
+
+    public final static String ERR_GENERATING_CONFIG_FILE = Messages.RemotingLoginDialog_ERROR_GENERATING_CONFIG_FILE;
+    public final static String ERR_STARTING_SERVER = Messages.RemotingLoginDialog_ERROR_STARTING_SERVER;
+    public final static String ERR_SERVER_LAUNCH = Messages.RemotingLoginDialog_SERVER_LAUNCH_ERROR;
+    public final static String ERR_STOPPING_SERVER = Messages.RemotingLoginDialog_ERROR_STOPPING_SERVER;
+    public final static String ERR_COULD_NOT_STOP_SERVER = Messages.RemotingLoginDialog_COULD_NOT_STOP_SERVER;
+    public final static String RETRIEVE_SERVER_INSTANCES = Messages.RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES;
+    public final static String TASK_LAUNCHING_SERVER = Messages.RemotingLoginDialog_TASK_LAUNCHING_SERVER;
+
+    public static final int BTN_COLOR_ATTENTION = SWT.COLOR_RED;
+
+    public final static String STORE_PREFERENCES_NODE = "eu.etaxonomy.taxeditor.store"; //$NON-NLS-1$
+
+    public final static String LOGIN_NODE = "login"; //$NON-NLS-1$
+    public final static String USERNAME_SUFFIX = "_username"; //$NON-NLS-1$
+    public final static String PASSWORD_SUFFIX = "_password"; //$NON-NLS-1$
+
+    public final static String LAST_SERVER_INSTANCE_NODE = "lastServerInstance"; //$NON-NLS-1$
+    public final static String LAST_SERVER_KEY = "lastServerKey"; //$NON-NLS-1$
+    public final static String LAST_INSTANCE_KEY = "lastInstanceKey"; //$NON-NLS-1$
 
     protected Shell shlConnect;
-    private Text txtCdmServerStatus;
-    private Text txtCdmInstanceStatus;
-    private Combo comboCdmServer;
-    private Combo comboCdmInstance;
-    private Button btnConnect;
-
-    private Composite remotingComposite;
-    private Button btnCdmServerRefresh;
-    private Button btnCdmInstanceRefresh;
-    private Button btnStopServer;
-    private Composite loginComposite;
-    private Label lblLogin;
-    private Text txtLogin;
-    private Label lblPassword;
-    private Text txtPassword;
-    private Button btnRememberMe;
-    private Label lblDefaultLogin;
-    private Composite compAdvanced;
-    private Label lblPort;
-    private Text txtPort;
-    private Label lblServerCdmlibVersion;
-    private Text txtServerCdmlibVersion;
-    private ExpandableComposite expandableCompositeAdvanced;
-    private StyledText styledTxtMessage;
-
-    private Label lblEditorCdmlibVersion;
-    private Text txtEditorCdmlibVersion;
-    private Label lblServerSchemaVersion;
-    private Text txtServerSchemaVersion;
-    private Label lblEditorCdmVersion;
-    private Text txtEditorCdmVersion;
-
-    private final int MESSAGE_HEIGHT = 50;
-    private final int COMBO_MIN_WIDTH =200;
-    private final int CONTROLS_MIN_HEIGHT = 23; //does not seem to work yet
+    protected Text txtCdmServerStatus;
+    protected Text txtCdmInstanceStatus;
+
+    protected Combo comboCdmServer;
+    protected boolean allowServerChange = true;
+    protected Combo comboCdmInstance;
+    protected boolean allowInstanceChange = true;
+    public Button btnConnect;
+
+    protected Composite remotingComposite;
+    protected Button btnCdmServerRefresh;
+    protected Button btnCdmInstanceRefresh;
+    protected Button btnStopServer;
+    protected Composite loginComposite;
+    protected Label lblLogin;
+    protected Text txtLogin;
+    protected Label lblPassword;
+    protected Text txtPassword;
+    protected Button btnRememberMe;
+    protected Label lblDefaultLogin;
+    protected Composite compAdvanced;
+    protected Label lblPort;
+    protected Text txtPort;
+    protected Label lblServerCdmlibVersion;
+    protected Text txtServerCdmlibVersion;
+    protected ExpandableComposite expandableCompositeAdvanced;
+    protected StyledText styledTxtMessage;
+
+    protected Label lblEditorCdmlibVersion;
+    protected Text txtEditorCdmlibVersion;
+    protected Label lblServerSchemaVersion;
+    protected Text txtServerSchemaVersion;
+    protected Label lblEditorCdmVersion;
+    protected Text txtEditorCdmVersion;
+
+    protected final int MESSAGE_HEIGHT = 50;
+    protected final int COMBO_MIN_WIDTH =200;
+    protected final int CONTROLS_MIN_HEIGHT = 23; //does not seem to work yet
 //  private final int MIN_EXP_HEIGHT = 380;
 
-    private boolean autoConnect = false;
-    private boolean loadLoginPrefs = true;
-    private boolean isDevRemoteSource = false;
+    protected boolean autoConnect = false;
+    protected boolean loadLoginPrefs = true;
+    protected boolean isDevRemoteSource = false;
+    protected boolean isLocal = false;
 
-    private Job serverJob;
+    protected Job serverJob;
     protected Object result;
 
-    private final Map<String, CdmServerInfo> serverInfoMap = new HashMap<>();
+    protected final Map<String, CdmServerInfo> serverInfoMap = new HashMap<>();
 
-    private String serverName;
-    private String instanceName;
-    private CdmServerInfo selectedServerInfo;
-    private CdmInstanceInfo selectedCdmInstance;
-    private String login;
-    private String password;
+    protected String serverName;
+    protected String instanceName;
+    protected CdmServerInfo selectedServerInfo;
+    protected CdmInstanceInfo selectedCdmInstance;
+    protected String login;
+    protected String password;
 
     /**
      * Create the dialog.
-     * @param parent
-     * @param style
      */
     public RemotingLoginDialog(Shell parent, int style) {
         super(parent, style);
-        setText(Messages.RemotingLoginDialog_LABEL_LOGIN);
+        setText(LABEL_LOGIN);
     }
 
     public Object open(ICdmRemoteSource source, boolean loadLoginPrefs, boolean autoConnect) {
         this.loadLoginPrefs = loadLoginPrefs;
-        this.serverName = source.getName();
+        this.setServerName(source.getName());
         if (source instanceof CdmRemoteLocalhostSource){
-            this.instanceName = ((CdmRemoteLocalhostSource)source).getDatasourceName();
+            this.setInstanceName(((CdmRemoteLocalhostSource)source).getDatasourceName());
         }else{
             String contextPath = source.getContext();
-            this.instanceName = contextPath == null? "" : contextPath.substring(contextPath.lastIndexOf("/") + 1); //$NON-NLS-1$
+            this.setInstanceName(contextPath == null? "" : contextPath.substring(contextPath.lastIndexOf("/") + 1)); //$NON-NLS-1$
         }
-        return open(serverName, instanceName, loadLoginPrefs, autoConnect);
+        //disable datasource selection if datasource is given, see #10463
+
+        allowServerChange = false;
+        allowInstanceChange = false;
+
+        return open(getServerName(), getInstanceName(), loadLoginPrefs, autoConnect);
     }
 
     public Object open(String serverName, String instanceName, boolean loadLoginPrefs, boolean autoConnect) {
-        this.serverName = serverName;
-        this.instanceName = instanceName;
+        this.setServerName(serverName);
+        this.setInstanceName(instanceName);
         this.loadLoginPrefs = loadLoginPrefs;
-        this.autoConnect = autoConnect;
+        this.setAutoConnect(autoConnect);
         return open();
     }
 
@@ -218,7 +245,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
     public Object open() {
 
         createContents();
-        if(serverName == null && instanceName == null) {
+        if(getServerName() == null && getInstanceName() == null) {
             readPrefLastServerInstance();
         }
         expandableCompositeAdvanced.setExpanded(false);
@@ -244,7 +271,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
     /**
      * Create contents of the dialog.
      */
-    private void createContents() {
+    protected void createContents() {
         shlConnect = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL | SWT.RESIZE | SWT.CENTER);
         shlConnect.setText(LABEL_CONNECT);
         shlConnect.setLayout(new FillLayout(SWT.HORIZONTAL));
@@ -259,7 +286,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         cdmServerComposite.setLayout(new GridLayout(4, false));
 
         Label lblCdmServer = new Label(cdmServerComposite, SWT.NONE);
-        lblCdmServer.setText(Messages.RemotingLoginDialog_LABEL_CDM_SERVER);
+        lblCdmServer.setText(LABEL_CDM_SERVER);
         lblCdmServer.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
 
         comboCdmServer = new Combo(cdmServerComposite, SWT.READ_ONLY);
@@ -292,14 +319,14 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         GridData gd_btnCdmServerRefresh = new GridData(SWT.FILL, SWT.CENTER, true, true, 1, 1);
         gd_btnCdmServerRefresh.minimumHeight = CONTROLS_MIN_HEIGHT;
         btnCdmServerRefresh.setLayoutData(gd_btnCdmServerRefresh);
-        btnCdmServerRefresh.setText(Messages.RemotingLoginDialog_LABEL_REFRESH);
+        btnCdmServerRefresh.setText(LABEL_REFRESH);
 
         //instance
         Label lblCdmInstance = new Label(cdmServerComposite, SWT.NONE);
         GridData gd_lblCdmInstance = new GridData(SWT.RIGHT, SWT.CENTER, false, true, 1, 1);
         //gd_lblCdmInstance.heightHint = 30;
         lblCdmInstance.setLayoutData(gd_lblCdmInstance);
-        lblCdmInstance.setText(Messages.RemotingLoginDialog_LABEL_CDM_INSTANCE);
+        lblCdmInstance.setText(LABEL_CDM_INSTANCE);
 
         comboCdmInstance = new Combo(cdmServerComposite, SWT.READ_ONLY);
         comboCdmInstance.addSelectionListener(new SelectionAdapter() {
@@ -447,16 +474,6 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         txtServerCdmlibVersion.setEditable(false);
         txtServerCdmlibVersion.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
 
-        btnStopServer = new Button(compAdvanced, SWT.FLAT);
-        btnStopServer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
-        btnStopServer.addMouseListener(new MouseAdapter() {
-            @Override
-            public void mouseUp(MouseEvent e) {
-                onStopManagedServer();
-            }
-        });
-        btnStopServer.setText(Messages.RemotingLoginDialog_LABEL_STOP_MANAGED_SERVER);
-
         lblEditorCdmlibVersion = new Label(compAdvanced, SWT.CENTER);
         lblEditorCdmlibVersion.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
         lblEditorCdmlibVersion.setText(Messages.RemotingLoginDialog_LABEL_EDITOR_CDMLIB_VERSION);
@@ -493,54 +510,42 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
 
     }
 
-
-
-
-
-
-    @SuppressWarnings("unused")
-    private void addEmptyCells(int cnt) {
+    protected void addEmptyCells(int cnt) {
         for (int i = 0; i < cnt; i++) {
             new Label(compAdvanced, SWT.NONE);
         }
     }
 
-       private void onConnectButtonPressed() {
-               if(selectedServerInfo.isLocalhostMgd() && !isSelectedCdmInstanceRunningInManagedServer()) {
-                       startManagedServer();
-               } else {
-                       connect();
-                       if (CdmStore.isActive() && CdmStore.currentAuthentiationHasOneOfRoles(Role.ROLE_REMOTING)){
-                           PreferencesUtil.setNomenclaturalCodePreferences();
-                       }
+       protected void onConnectButtonPressed() {
+               connect();
+               if (CdmStore.isActive() && CdmStore.currentAuthentiationHasOneOfRoles(Role.ROLE_REMOTING)){
+                   PreferencesUtil.setNomenclaturalCodePreferences();
                }
+
        }
 
-    private void populateCdmServerCombo() {
-        Job job = new Job(Messages.RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES) {
+    protected void populateCdmServerCombo() {
+        Job job = new Job(RETRIEVE_SERVER_INSTANCES) {
             @Override
             protected IStatus run(IProgressMonitor monitor) {
                 Display.getDefault().syncExec(new Runnable() {
                     @Override
                     public void run() {
                         //TODO performance
-                        for(CdmServerInfo csii : CdmServerInfo.getCdmServers()) {
-                            serverInfoMap.put(csii.getName(), csii);
-                            comboCdmServer.add(csii.getName());
-                        }
+                        putAllServers();
                         int serverIndex = -1;
-                        if(serverName != null) {
-                            serverIndex = comboCdmServer.indexOf(serverName);
+                        if(getServerName() != null) {
+                            serverIndex = comboCdmServer.indexOf(getServerName());
                         }
                         if(serverIndex == -1) {
                             comboCdmServer.select(0);
-                            autoConnect = false;
+                            setAutoConnect(false);
                         } else {
                             comboCdmServer.select(serverIndex);
                         }
                         ICdmSource devRemoteSource = CdmServerInfo.getDevServerRemoteSource();
                         if(devRemoteSource != null) {
-                            isDevRemoteSource = true;
+                            setDevRemoteSource(true);
                             String username = System.getProperty("cdm.server.dev.username"); //$NON-NLS-1$
                             String password = System.getProperty("cdm.server.dev.password"); //$NON-NLS-1$
                             if(username != null && !username.isEmpty() && password != null && !password.isEmpty()) {
@@ -552,15 +557,26 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
                             onRefreshCdmServer();
                         }
                     }
+
+
                 });
                 return Status.OK_STATUS;
             }
         };
         job.schedule();
     }
+    public void putAllServers() {
+        for(CdmServerInfo csii : CdmServerInfo.getCdmServers(isLocal)) {
+            putServerInfo(csii);
+            comboCdmServer.add(csii.getName());
+        }
+    }
 
-    private void onRefreshCdmServer() {
-        try{
+    public void putServerInfo(CdmServerInfo csii) {
+        getServerInfoMap().put(csii.getName(), csii);
+    }
+    public void onRefreshCdmServer() {
+       try{
             txtCdmServerStatus.setText(STATUS_CHECKING_AVAILABILITY);
             clearOnServerChange();
             emptyCredentials();
@@ -578,14 +594,14 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         }
     }
 
-    private void updateSelectedCdmServer() {
+    protected void updateSelectedCdmServer() {
         int selIndex = comboCdmServer.getSelectionIndex();
         if(selIndex != -1) {
-            selectedServerInfo = serverInfoMap.get(comboCdmServer.getItem(selIndex));
+            selectedServerInfo = getServerInfoMap().get(comboCdmServer.getItem(selIndex));
         }
     }
 
-    private void updatePort() {
+    protected void updatePort() {
         txtPort.setText(""); //$NON-NLS-1$
         if(selectedServerInfo != null) {
             int port = selectedServerInfo.getPort();
@@ -597,7 +613,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         }
     }
 
-    private int getPort() {
+    protected int getPort() {
         int port = CdmServerInfo.NULL_PORT;
         try {
             port = Integer.valueOf(txtPort.getText());
@@ -655,13 +671,14 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         }
     }
 
-    private void populateCdmInstanceCombo(final boolean forceRefresh) {
+    protected void populateCdmInstanceCombo(final boolean forceRefresh) {
         comboCdmInstance.removeAll();
         comboCdmInstance.setEnabled(false);
         btnConnect.setEnabled(false);
         txtCdmInstanceStatus.setText(STATUS_RETRIEVING);
         txtCdmInstanceStatus.setToolTipText(""); //$NON-NLS-1$
 
+
         serverJob = new Job(Messages.RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES) {
             @Override
             protected IStatus run(IProgressMonitor monitor) {
@@ -671,32 +688,29 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
                             selectedServerInfo.refreshInstances();
                         }
                         final List<CdmInstanceInfo> instances = selectedServerInfo.getInstances();
-                        Display.getDefault().asyncExec(new Runnable() {
-                            @Override
-                            public void run() {
-                                if(!instances.isEmpty()) {
-                                    for(CdmInstanceInfo cdmInstance : instances) {
-                                        comboCdmInstance.add(cdmInstance.getName());
-                                    }
-                                    int instanceIndex = -1;
-                                    if(instanceName != null) {
-                                        instanceIndex = comboCdmInstance.indexOf(instanceName);
-                                    }
-                                    if(instanceIndex == -1) {
-                                        comboCdmInstance.select(0);
-                                        autoConnect = false;
-                                    } else {
-                                        comboCdmInstance.select(instanceIndex);
-                                    }
-                                    onRefreshCdmInstance();
-                                    comboCdmInstance.setEnabled(true);
-                                    if(autoConnect) {
-                                        connect();
-                                    }
+                        Display.getDefault().asyncExec(()->{
+                            if(!instances.isEmpty()) {
+                                for(CdmInstanceInfo cdmInstance : instances) {
+                                    comboCdmInstance.add(cdmInstance.getName());
+                                }
+                                int instanceIndex = -1;
+                                if(getInstanceName() != null) {
+                                    instanceIndex = comboCdmInstance.indexOf(getInstanceName());
+                                }
+                                if(instanceIndex == -1) {
+                                    comboCdmInstance.select(0);
+                                    setAutoConnect(false);
                                 } else {
-                                    txtCdmInstanceStatus.setText(STATUS_NO_INSTANCES);
-                                    btnConnect.setEnabled(false);
+                                    comboCdmInstance.select(instanceIndex);
                                 }
+                                onRefreshCdmInstance();
+                                comboCdmInstance.setEnabled(allowInstanceChange);
+                                if(isAutoConnect()) {
+                                    connect();
+                                }
+                            } else {
+                                txtCdmInstanceStatus.setText(STATUS_NO_INSTANCES);
+                                btnConnect.setEnabled(false);
                             }
                         });
                     }
@@ -713,28 +727,28 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
             }
         };
 
-        if(txtCdmServerStatus.getText().equals(STATUS_AVAILABLE) && !isDevRemoteSource) {
+        if(txtCdmServerStatus.getText().equals(STATUS_AVAILABLE) && !isDevRemoteSource()) {
             // Start the Job
             serverJob.schedule();
         }
     }
 
-    private void disableCdmInstanceControls(String cdmInstanceStatus, String tooltip) {
+    public void disableCdmInstanceControls(String cdmInstanceStatus, String tooltip) {
         txtCdmInstanceStatus.setText(cdmInstanceStatus);
         txtCdmInstanceStatus.setToolTipText(tooltip);
         comboCdmInstance.setEnabled(false);
         btnConnect.setEnabled(false);
     }
 
-    private void onRefreshCdmInstance() {
+    public void onRefreshCdmInstance() {
         txtCdmInstanceStatus.setText(STATUS_CHECKING_AVAILABILITY);
         clearOnInstanceChange();
         updateSelectedCdmInstance();
         checkSelectedCdmInstance();
-        updateManagedServerControls();
+//        updateManagedServerControls();
     }
 
-    private void updateSelectedCdmInstance() {
+    protected void updateSelectedCdmInstance() {
         int selIndex = comboCdmInstance.getSelectionIndex();
         if(selIndex != -1) {
             selectedCdmInstance = selectedServerInfo.getInstanceFromName(comboCdmInstance.getItem(selIndex));
@@ -744,122 +758,6 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         }
     }
 
-    private void updateManagedServerControls() {
-        if(selectedServerInfo.isLocalhostMgd()) {
-            if(isSelectedCdmInstanceRunningInManagedServer()) {
-                txtCdmInstanceStatus.setText(STATUS_STARTED);
-            } else {
-                txtCdmInstanceStatus.setText(STATUS_NOT_STARTED);
-            }
-            btnConnect.setEnabled(true);
-            selectedServerInfo.setPort(getManagedServerPort());
-            updatePort();
-        }
-
-        if(isManagedServerRunning()) {
-            btnStopServer.setEnabled(true);
-        } else {
-            btnStopServer.setEnabled(false);
-        }
-    }
-
-    private boolean isManagedServerRunning() {
-        return CdmStore.getManagedServer() != null && CdmStore.getManagedServer().isAlive();
-    }
-
-    private boolean isSelectedCdmInstanceRunningInManagedServer() {
-        return CdmStore.getManagedServer() != null &&
-                CdmStore.getManagedServer().isAlive() &&
-                selectedServerInfo.isLocalhostMgd() &&
-                CdmStore.getManagedServer().getDataSourceName().equals(selectedCdmInstance.getName());
-    }
-
-    private void startManagedServer() {
-        if(isManagedServerRunning()) {
-            if(CdmStore.getManagedServer().getDataSourceName().equals(selectedCdmInstance.getName())) {
-                return;
-            } else {
-                Display.getDefault().syncExec(new Runnable() {
-                    @Override
-                    public void run() {
-                        onStopManagedServer();
-                    }
-                });
-            }
-        }
-
-        boolean forceSchemaCreate = !schemaExists(selectedCdmInstance);
-        boolean forceSchemaUpdate = LABEL_UPDATE_SCHEMA_VERSION.equals(btnConnect.getText());
-
-        Job job = new Job(Messages.RemotingLoginDialog_JOB_SERVER_LAUNCH) {
-
-            @Override
-            public IStatus run(IProgressMonitor monitor) {
-                String mgdServerConfigFileName = "mgd.datasources.xml"; //$NON-NLS-1$
-                String config = CdmServerUtils.convertEditorToServerConfig();
-                int maxUnits = 50;
-                monitor.beginTask(Messages.RemotingLoginDialog_TASK_LAUNCHING_SERVER, maxUnits);
-                try {
-                    monitor.subTask(String.format(Messages.RemotingLoginDialog_GENERATING_CONFIG_FILE, selectedCdmInstance.getName()));
-                    File managedServerConfigFile = CdmServerUtils.writeManagedServerConfig(config, mgdServerConfigFileName);
-                    monitor.worked(1);
-                    CdmServer cdmServer = new CdmServer(selectedCdmInstance.getName(), managedServerConfigFile);
-                    cdmServer.setForceSchemaCreate(forceSchemaCreate);
-                    cdmServer.setForceSchemaUpdate(forceSchemaUpdate);
-                    CdmStore.setManagedServer(cdmServer);
-                    monitor.subTask(Messages.RemotingLoginDialog_STARTING_MGD_SERVER);
-                    cdmServer.start(false, RemotingLoginDialog.this);
-                    int serverUnits = 0;
-
-                    // the following loop is a 'fake' progress monitoring where the progress
-                    // bar is advanced by one unit every second until maxUnits -2
-                    while(!CdmStore.getManagedServer().isStarted() && !CdmStore.getManagedServer().isFailed()) {
-                        if(serverUnits < maxUnits - 2) {
-                            try {
-                                Thread.sleep(1000);
-                            } catch (InterruptedException e) {
-                            }
-                            monitor.worked(1);
-                            serverUnits++;
-                        }
-                    }
-                    Display.getDefault().syncExec(()->{
-                                hide(false);
-                                updateManagedServerControls();
-                                connect();
-                    });
-                } catch (IOException ioe) {
-                    MessagingUtils.errorDialog(Messages.RemotingLoginDialog_ERROR_GENERATING_CONFIG_FILE,
-                            this,
-                            ioe.getMessage(),
-                            TaxeditorStorePlugin.PLUGIN_ID,
-                            ioe,
-                            true);
-                } catch (CdmEmbeddedServerException cese) {
-                    MessagingUtils.errorDialog(Messages.RemotingLoginDialog_ERROR_STARTING_SERVER,
-                            this,
-                            cese.getMessage(),
-                            TaxeditorStorePlugin.PLUGIN_ID,
-                            cese,
-                            true);
-                } finally {
-                    monitor.done();
-                }
-                // NOTE: Errors thrown during server startup are passed to the handleError() implementation
-                // TODO: is the above catch clause for CdmEmbeddedServerException still valuable?
-
-                return Status.OK_STATUS;
-            }
-       };
-
-        // configure the job
-        job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
-        job.setUser(true);
-        // schedule job
-        hide(true);
-        job.schedule();
-    }
-
     private boolean schemaExists(CdmInstanceInfo instanceInfo) {
         if (instanceInfo.getDataSource() != null){
             try {
@@ -885,48 +783,16 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         return CdmMetaData.compareVersion(managedSchemaVersion(instanceInfo), CdmMetaData.getDbSchemaVersion(), 3, null);
     }
 
-    @Override
-    public void handleError(final Throwable t) {
-
-        Display.getDefault().syncExec(()-> {
-            serverJob.cancel();
-
-            String title = Messages.RemotingLoginDialog_SERVER_LAUNCH_ERROR;
-            String  message = t.getMessage();
-
-            MessagingUtils.errorDialog(title,
-                    this,
-                    message,
-                    TaxeditorStorePlugin.PLUGIN_ID,
-                    t,
-                    true);
-        });
-    }
-
-    private void onStopManagedServer() {
+    protected void checkSelectedCdmInstance() {
         try {
-            CdmStore.getManagedServer().stop();
-        } catch (Exception e) {
-            MessagingUtils.errorDialog(Messages.RemotingLoginDialog_ERROR_STOPPING_SERVER,
-                    this,
-                    String.format(Messages.RemotingLoginDialog_COULD_NOT_STOP_SERVER, CdmStore.getManagedServer().getPort()),
-                    TaxeditorStorePlugin.PLUGIN_ID,
-                    e,
-                    true);
+            if (selectedCdmInstance != null && selectedCdmInstance.getDataSource() != null){
+                String schemaVersion = selectedCdmInstance.getDataSource().getDbSchemaVersion();
+            }
+        } catch (CdmSourceException e1) {
+            // TODO Auto-generated catch block
+            e1.printStackTrace();
         }
-        CdmStore.setManagedServer(null);
-        updateManagedServerControls();
-    }
-
-    private int getManagedServerPort() {
-        return CdmStore.getManagedServer() == null ? CdmServerInfo.NULL_PORT : CdmStore.getManagedServer().getPort();
-    }
-
-    private void checkSelectedCdmInstance() {
-
-        if (selectedServerInfo.isLocalhostMgd()){
-            checkManagedSelectedInstance();
-        }else if (txtCdmServerStatus.getText().equals(STATUS_AVAILABLE)) {
+       if (txtCdmServerStatus.getText().equals(STATUS_AVAILABLE)) {
 
             boolean available = false;
             String instanceStatus = STATUS_NOT_AVAILABLE;
@@ -979,65 +845,8 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         }
     }
 
-    private void checkManagedSelectedInstance() {
-        boolean available = false;
-        String instanceStatus = STATUS_NOT_AVAILABLE;
-        String message = null;
-        String connect = LABEL_CONNECT;
-        Integer color = null;
-        String schemaVersion = CdmMetaData.getDbSchemaVersion();
-
-        if (!schemaExists(selectedCdmInstance)){
-            message = MESG_SCHEMA_MISSING;
-            connect = LABEL_CREATE_SCHEMA;
-            color = BTN_COLOR_ATTENTION;
-            schemaVersion = MESG_NO_SCHEMA;
-        } else {
-            int compare;
-            try {
-                schemaVersion = managedSchemaVersion(selectedCdmInstance);
-                compare = compareSchemaVersion(selectedCdmInstance);
-                if (compare > 0){
-                    instanceStatus = STATUS_NOT_COMPATIBLE;
-                    message = MESG_COMPATIBLE_EDITOR_OLD;
-                    available = false;
-                }else if (compare < 0){
-                    instanceStatus = STATUS_NOT_COMPATIBLE;
-                    message = MESG_UPDATE_SCHEMA_VERSION;
-                    available = true;
-                    connect = LABEL_UPDATE_SCHEMA_VERSION;
-                    color = BTN_COLOR_ATTENTION;
-                }else{
-                    available = true;
-                    instanceStatus = STATUS_AVAILABLE;
-                }
-            } catch (CdmSourceException e) {
-                available = false;
-            }
-        }
-
-        setManagedValues(available, instanceStatus, connect, color, schemaVersion);
-        setMessage(message);
-    }
-
-    private void setManagedValues(boolean available, String instanceStatus, String connect, Integer color,
-            String schemaVersion) {
-        Display.getDefault().syncExec(()->{
-            btnConnect.setEnabled(available);
-            btnConnect.setText(connect);
-            Color systemColor = null;
-            if(color != null) {
-                systemColor = Display.getCurrent().getSystemColor(color);
-            }
-            btnConnect.setBackground(systemColor);
-            btnConnect.requestLayout();
-            txtCdmInstanceStatus.setText(instanceStatus);
-            txtServerSchemaVersion.setText(schemaVersion);
-            lblDefaultLogin.setVisible(true);
-         });
-    }
 
-    private void connect() {
+    public void connect() {
         checkSelectedCdmInstance();
 
         if(!txtCdmInstanceStatus.getText().equals(STATUS_AVAILABLE)) {
@@ -1105,7 +914,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         }
     }
 
-    private void readPrefCredentials() {
+    protected void readPrefCredentials() {
         String username, password;
         IEclipsePreferences preferences = ConfigurationScope.INSTANCE.getNode(STORE_PREFERENCES_NODE);
         Preferences credentialsPrefs = preferences.node(LOGIN_NODE);
@@ -1114,7 +923,7 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         password = credentialsPrefs.get(getPasswordPrefKey(),""); //$NON-NLS-1$
         txtPassword.setText(password);
         if(username.isEmpty() || password.isEmpty()) {
-            autoConnect = false;
+            setAutoConnect(false);
         }
     }
 
@@ -1122,8 +931,8 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         IEclipsePreferences preferences = ConfigurationScope.INSTANCE.getNode(STORE_PREFERENCES_NODE);
         Preferences lastServerInstancePrefs = preferences.node(LAST_SERVER_INSTANCE_NODE);
 
-        serverName = lastServerInstancePrefs.get(LAST_SERVER_KEY, null);
-        instanceName = lastServerInstancePrefs.get(LAST_INSTANCE_KEY, null);
+        setServerName(lastServerInstancePrefs.get(LAST_SERVER_KEY, null));
+        setInstanceName(lastServerInstancePrefs.get(LAST_INSTANCE_KEY, null));
     }
 
     private void emptyCredentials() {
@@ -1132,11 +941,11 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
     }
 
     private String getUsernamePrefKey() {
-        return selectedServerInfo.toString(selectedCdmInstance.getName(), isDevRemoteSource?getPort():-1) + USERNAME_SUFFIX;
+        return selectedServerInfo.toString(selectedCdmInstance.getName(), isDevRemoteSource()?getPort():-1) + USERNAME_SUFFIX;
     }
 
     private String getPasswordPrefKey() {
-        return selectedServerInfo.toString(selectedCdmInstance.getName(), isDevRemoteSource?getPort():-1) + PASSWORD_SUFFIX;
+        return selectedServerInfo.toString(selectedCdmInstance.getName(), isDevRemoteSource()?getPort():-1) + PASSWORD_SUFFIX;
     }
 
     private boolean validateLogin(ICdmRemoteSource remoteSource) {
@@ -1200,13 +1009,6 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         }
     }
 
-//    private int getHeightWithoutMessage() {
-//        if(xpndblcmpstAdvanced.isExpanded()) {
-//            return MIN_EXP_HEIGHT;
-//        } else {
-//            return MIN_HEIGHT;
-//        }
-//    }
 
     public void hide(boolean isHidden) {
         if (!shlConnect.isDisposed()){
@@ -1289,16 +1091,15 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
     private void updateControls(){
 
         //server
-//      comboCdmServer; //nothing to change
         String strServerStatus = this.selectedServerInfo != null? STATUS_NOT_AVAILABLE : STATUS_AVAILABLE;
         txtCdmServerStatus.setText(strServerStatus);
-//      btnCdmServerRefresh;  //nothing to change
+
 
         //database
 //        comboCdmInstance
         String strInstanceStatus = this.selectedCdmInstance != null? STATUS_NOT_AVAILABLE : STATUS_AVAILABLE;
         txtCdmInstanceStatus.setText(strInstanceStatus);
-//        btnCdmInstanceRefresh;  //nothing to change
+
 
         //login + connect
         txtLogin.setText(Nz(login));
@@ -1306,24 +1107,63 @@ public class RemotingLoginDialog extends Dialog implements ICDMServerError {
         btnConnect.setText(LABEL_CONNECT);  //TODO
         btnConnect.setEnabled(true);
 
-        //rememberMe + defaultValues
-//        btnRememberMe;
-//        lblDefaultLogin;
+    }
 
-        //message
-//        styledTxtMessage;
+    private String Nz(String value) {
+        return CdmUtils.Nz(value);
+    }
 
-        //Advanced
-//        txtPort
-//        btnStopServer;
+    public Map<String, CdmServerInfo> getServerInfoMap() {
+        return serverInfoMap;
+    }
 
-//        txtServerCdmlibVersion;
-//        txtEditorCdmlibVersion;
-//        txtServerSchemaVersion;
-//        txtEditorCdmVersion;
+    public String getServerName() {
+        return serverName;
     }
 
-    private String Nz(String value) {
-        return CdmUtils.Nz(value);
+    public void setServerName(String serverName) {
+        this.serverName = serverName;
+    }
+
+    public boolean isAutoConnect() {
+        return autoConnect;
+    }
+
+    public void setAutoConnect(boolean autoConnect) {
+        this.autoConnect = autoConnect;
+    }
+
+    public boolean isDevRemoteSource() {
+        return isDevRemoteSource;
+    }
+
+    public void setDevRemoteSource(boolean isDevRemoteSource) {
+        this.isDevRemoteSource = isDevRemoteSource;
+    }
+
+    public String getInstanceName() {
+        return instanceName;
+    }
+
+    public void setInstanceName(String instanceName) {
+        this.instanceName = instanceName;
+    }
+
+    @Override
+    public void handleError(Throwable t) {
+        Display.getDefault().syncExec(()-> {
+            serverJob.cancel();
+
+            String title = Messages.RemotingLoginDialog_SERVER_LAUNCH_ERROR;
+            String  message = t.getMessage();
+
+            MessagingUtils.errorDialog(title,
+                    this,
+                    message,
+                    TaxeditorStorePlugin.PLUGIN_ID,
+                    t,
+                    true);
+        });
+
     }
 }
index db7cf37378bb24c9fdb68bb0ea0d99219cdc99ba..dbacdc9f55d261294c7d41b2b5274db43323cb77 100755 (executable)
@@ -10,9 +10,10 @@ package eu.etaxonomy.taxeditor.ui.dialog;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
 import org.eclipse.jface.wizard.Wizard;
 
 import eu.etaxonomy.cdm.api.service.description.DistributionAggregationConfiguration;
@@ -28,36 +29,36 @@ import eu.etaxonomy.taxeditor.ui.dialog.configurator.wizard.SuperAreaPage;
  */
 public class SuperAreaSelectionWizard extends Wizard {
 
-        private final SuperAreaPage aPage;
-        DistributionAggregationConfiguration configurator;
+    private final SuperAreaPage aPage;
+    DistributionAggregationConfiguration configurator;
 
-        public SuperAreaSelectionWizard(DistributionAggregationConfiguration configurator, NamedAreaLevel level) {
-            setWindowTitle(Messages.AvailableDistributionWizard_WINDOW_TITLE);
-            // TODO if preferenceStore has elements checked load elements in wizard
-            aPage = new SuperAreaPage(Messages.AvailableDistributionWizard_PAGE_TITLE, level);
-            this.configurator = configurator;
-        }
+    public SuperAreaSelectionWizard(DistributionAggregationConfiguration configurator, NamedAreaLevel level) {
+        setWindowTitle(Messages.AvailableDistributionWizard_WINDOW_TITLE);
+        // TODO if preferenceStore has elements checked load elements in wizard
+        aPage = new SuperAreaPage(Messages.AvailableDistributionWizard_PAGE_TITLE, level);
+        this.configurator = configurator;
+    }
 
-        @Override
-        public boolean performFinish() {
-            // TODO: get Selection and save in EditorPreferences
-            if (!checkNoneChecked()) {
-                Object[] checkedElements = aPage.getViewer().getCheckedElements();
-                Object[] grayedElements = aPage.getViewer().getGrayedElements();
-                ArrayList checkedList = new ArrayList(Arrays.asList(checkedElements));
-                ArrayList grayedList = new ArrayList(Arrays.asList(grayedElements));
-                checkedList = (ArrayList) CollectionUtils.subtract(checkedList, grayedList);
-                ArrayList<UUID> listUIIDChecked = new ArrayList<>();
-                ArrayList<UUID> listUIIDGrayed = new ArrayList<UUID>();
-                for (Object o : checkedList) {
-                    if (o instanceof TermDto) {
-                        listUIIDChecked.add(((TermDto) o).getUuid());
+    @Override
+    public boolean performFinish() {
+        // TODO: get Selection and save in EditorPreferences
+        if (!checkNoneChecked()) {
+            Object[] checkedElements = aPage.getViewer().getCheckedElements();
+            Object[] grayedElements = aPage.getViewer().getGrayedElements();
+            List<Object> checkedList = new ArrayList<>(Arrays.asList(checkedElements));
+            List<Object> grayedList = new ArrayList<>(Arrays.asList(grayedElements));
+            checkedList = (ArrayList) CollectionUtils.subtract(checkedList, grayedList);
+            ArrayList<UUID> listUIIDChecked = new ArrayList<>();
+            ArrayList<UUID> listUIIDGrayed = new ArrayList<>();
+            for (Object o : checkedList) {
+                if (o instanceof TermDto) {
+                    listUIIDChecked.add(((TermDto) o).getUuid());
 
-                    }else if(o instanceof TermVocabularyDto){
-                        TermVocabularyDto termVocDto = (TermVocabularyDto) o;
-                        listUIIDGrayed.add(termVocDto.getUuid());
-                    }
+                }else if(o instanceof TermVocabularyDto){
+                    TermVocabularyDto termVocDto = (TermVocabularyDto) o;
+                    listUIIDGrayed.add(termVocDto.getUuid());
                 }
+            }
 //                for (Object o : grayedList) {
 //                    if (o instanceof TermDto) {
 //                        listUIIDChecked.add(((TermDto) o).getUuid());
@@ -68,41 +69,28 @@ public class SuperAreaSelectionWizard extends Wizard {
 //                    }
 //                }
 
-               configurator.setSuperAreas(listUIIDChecked);
+           configurator.setSuperAreas(listUIIDChecked);
 
 
-                return true;
-            } else {
-                return false;
-            }
+            return true;
+        } else {
+            return false;
         }
+    }
 
-        @Override
-        public void addPages() {
-            addPage(aPage);
-        }
+    @Override
+    public void addPages() {
+        addPage(aPage);
+    }
 
-        private boolean checkNoneChecked() {
+    private boolean checkNoneChecked() {
 
-            if (aPage.getViewer().getCheckedElements().length == 0) {
-                aPage.setMessage(Messages.AvailableDistributionWizard_CHECK_MESSAGE, aPage.WARNING);
-                return true;
-            } else {
-                aPage.setMessage(null);
-                return false;
-            }
+        if (aPage.getViewer().getCheckedElements().length == 0) {
+            aPage.setMessage(Messages.AvailableDistributionWizard_CHECK_MESSAGE, aPage.WARNING);
+            return true;
+        } else {
+            aPage.setMessage(null);
+            return false;
         }
-    //
-//        @Override
-//        public ConversationHolder getConversationHolder() {
-//            if (conversation == null) {
-//                conversation = CdmStore.createConversation();
-//            }
-//            return conversation;
-//        }
-    //
-//        @Override
-//        public void update(CdmDataChangeMap changeEvents) {
-//        }
     }
-
+}
\ No newline at end of file
index 2f5e41af51d7705e6d8df1ebfe8aceb881f6f266..bac5856431cf5e209b88b6053a4528186b7ebd8f 100644 (file)
@@ -6,10 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.dialog;
 
-import java.net.URI;
+import eu.etaxonomy.cdm.common.URI;
 import java.net.URISyntaxException;
 
 import org.eclipse.jface.dialogs.IInputValidator;
@@ -24,7 +23,6 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
  *
  * @author p.ciardelli
  * @created 31.03.2009
- * @version 1.0
  *
  * TODO make this extend TitleAreaDialog
  */
@@ -48,8 +46,7 @@ public class UriDialog extends InputDialog {
                                                        new URI(text);
                                                } catch (URISyntaxException e) {
                                                        return "URL not correctly formed.";
-                                               }
-                                               
+                                               }       
                                                
                                                if (text.length() <= "http://".length()) {
                                                        return "";
@@ -76,7 +73,7 @@ public class UriDialog extends InputDialog {
         * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
         * @param dialogTitle a {@link java.lang.String} object.
         * @param dialogMessage a {@link java.lang.String} object.
-        * @return a {@link java.net.URI} object.
+        * @return a {@link eu.etaxonomy.cdm.common.URI} object.
         */
        public static URI getUri(Shell shell, String dialogTitle,
                        String dialogMessage) {
index e8bbde19d42455514a5a883a0158b45720b2b4e8..8ce7f8c0a9d90419b7675aace7a6bc3adacbd6ce 100755 (executable)
@@ -15,7 +15,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.viewers.CheckboxTableViewer;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.widgets.Button;
@@ -25,6 +25,7 @@ import eu.etaxonomy.cdm.api.service.description.AggregationMode;
 import eu.etaxonomy.cdm.api.service.description.AggregationSourceMode;
 import eu.etaxonomy.cdm.api.service.description.DescriptionAggregationBase;
 import eu.etaxonomy.cdm.api.service.description.DescriptionAggregationConfigurationBase;
+import eu.etaxonomy.cdm.filter.LogicFilter;
 import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
@@ -35,15 +36,16 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @author k.luther
  * @since 13.12.2019
  */
-public abstract class AggregationConfigurationWizardPage<T extends DescriptionAggregationBase> extends WizardPage {
+public abstract class AggregationConfigurationWizardPage<T extends DescriptionAggregationBase<T,S>,
+            S extends DescriptionAggregationConfigurationBase<T>>
+            extends WizardPage {
 
-    protected DescriptionAggregationConfigurationBase<T> configurator;
+    protected S configurator;
 
     protected Button checkUseSelectedTaxonNode;
     protected Button checkUseHigherLevel;
     protected Button checkUseSelectedSubtree;
 
-
     protected Combo comboHigherRank;
     protected Combo comboLowerRank;
 
@@ -54,29 +56,28 @@ public abstract class AggregationConfigurationWizardPage<T extends DescriptionAg
     protected TaxonNode subTreeNode;
 
     protected CheckboxTableViewer sourceTypeViewer;
-    Map<String, OriginalSourceType> typeMap = new HashMap();
-
+    protected Map<String, OriginalSourceType> typeMap = new HashMap<>();
 
-    Comparator comparator = new Comparator<Rank>(){
+    protected Button checkIncludeUnpublishedTaxa;
 
+    private Comparator<Rank> comparator = new Comparator<Rank>(){
         @Override
         public int compare(Rank o1, Rank o2) {
             return o2.compareTo(o1);
         }
-
     };
 
-    /**
-     * @param pageName
-     */
     protected AggregationConfigurationWizardPage(String pageName) {
         super(pageName);
         // TODO Auto-generated constructor stub
     }
 
-
-
     protected void updateHigherRankCombo() {
+       int index = comboHigherRank.getSelectionIndex();
+       String item = null;
+       if (index > 0){
+               item = comboHigherRank.getItem(index);
+       }
         comboHigherRank.removeAll();
         List<Rank> rankList = new ArrayList<>();
         TaxonName name = null;
@@ -86,9 +87,10 @@ public abstract class AggregationConfigurationWizardPage<T extends DescriptionAg
             }
         }
         comboHigherRank.add(""); //$NON-NLS-1$
-        if (name != null){
+        if (name != null && name.getRank() != null){
             for (Rank rank: CdmStore.getTermManager().getPreferredTerms(Rank.class)){
-                if (useHigherLevel() || (name != null && name.getRank().isHigher(rank) || name.getRank().equals(rank))){
+                if (useHigherLevel()
+                        || (name.getRank().isHigher(rank) || name.getRank().equals(rank))){
                     rankList.add(rank);
                 }
             }
@@ -103,12 +105,25 @@ public abstract class AggregationConfigurationWizardPage<T extends DescriptionAg
             comboHigherRank.add(rank.getLabel());
             comboHigherRank.setData(rank.getLabel(), rank);
         }
-
-
+        int i = 1;
+        if (item != null){
+               for (String itemString: comboHigherRank.getItems()){
+                       if (itemString.equals(item)){
+                               comboHigherRank.select(i);
+                               break;
+                       }
+                       i++;
+               }
+        }
+        
     }
 
-
    protected void updateLowerRankCombo() {
+          int index = comboLowerRank.getSelectionIndex();
+          String item = null;
+          if (index > 0){
+                  item = comboLowerRank.getItem(index);
+          }
        comboLowerRank.removeAll();
        TaxonName name = null;
        List<Rank> rankList = new ArrayList<>();
@@ -133,10 +148,19 @@ public abstract class AggregationConfigurationWizardPage<T extends DescriptionAg
        }
        rankList.sort(comparator);
        for (Rank rank: rankList){
-           comboLowerRank.add(rank.getLabel());
-           comboLowerRank.setData(rank.getLabel(), rank);
+          comboLowerRank.add(rank.getLabel());
+          comboLowerRank.setData(rank.getLabel(), rank);
+       }
+       int i = 0;
+       if (item != null){
+               for (String itemString: comboLowerRank.getItems()){
+                       if (itemString.equals(item)){
+                               comboLowerRank.select(i);
+                               break;
+                       }
+                       i++;
+               }
        }
-
    }
 
    public Rank getHigherRank(){
@@ -182,6 +206,7 @@ public abstract class AggregationConfigurationWizardPage<T extends DescriptionAg
 
    public EnumSet<OriginalSourceType> getSourceTypes(){
        List<OriginalSourceType> list = new ArrayList<>();
+       if (sourceTypeViewer == null) return null;
        for (Object o: sourceTypeViewer.getCheckedElements()){
            String string = null;
            if (o instanceof String){
@@ -199,12 +224,31 @@ public abstract class AggregationConfigurationWizardPage<T extends DescriptionAg
    public List<AggregationMode> getAggregationMode(){
 
        List<AggregationMode> result = new ArrayList<>();
-       for (Object o: aggregationModeViewer.getCheckedElements()){
-           if (o instanceof AggregationMode){
-               result.add((AggregationMode)o);
+       for (Object mode: aggregationModeViewer.getCheckedElements()){
+           if (mode instanceof AggregationMode){
+               result.add((AggregationMode)mode);
            }
        }
        return result;
    }
+   
+   protected void setConfigValueToRankCombo(Combo rankCombo) {
+               int index = 0;
+       if (configurator.getTaxonNodeFilter().getRankMax() == null){
+               rankCombo.select(index);
+       }else{        
+               Rank rank = null;
+               for (String item: rankCombo.getItems()){
+                       if (rankCombo.getData(item) instanceof Rank){
+                               rank = (Rank) rankCombo.getData(item);
+                               if (rank.getUuid().equals(configurator.getTaxonNodeFilter().getRankMax().getUuid())){
+                                       rankCombo.select(index);
+                                       break;
+                               }
+                       }
+                       index++;
+               }
+       }
+       }
 
-}
+}
\ No newline at end of file
index 8fc44c74ceaaa773fb188785a330eb2005edc0f0..902b14ca51d8925eff06943f86eefd1e101822e2 100755 (executable)
@@ -39,7 +39,6 @@ public class DistributionAggregationConfiguratorWizard extends Wizard implements
         longRunningTaskService = CdmApplicationState.getLongRunningTasksService();
     }
 
-
     @Override
     public boolean performFinish() {
 
@@ -61,19 +60,14 @@ public class DistributionAggregationConfiguratorWizard extends Wizard implements
 
         UUID uuid = longRunningTaskService.invoke(configurator);
 
-        Display.getDefault().asyncExec(new Runnable() {
-            @Override
-            public void run() {
+        Display.getDefault().asyncExec(()-> {
                 AbstractUtility.executeMoniteredOperation("Aggregate Distributions",
                         uuid,
                         1000,
                         false,
                         DistributionAggregationConfiguratorWizard.this,
                         null,
-                        true);
-
-            }
-
+                        true, false);
         });
 
         return true;
@@ -84,15 +78,11 @@ public class DistributionAggregationConfiguratorWizard extends Wizard implements
     public void addPages() {
         page = new DistributionAggregationWizardPage(configurator);
         addPage(page);
-
     }
 
 
     @Override
     public void postOperation(IRemotingProgressMonitor monitor) {
         // TODO Auto-generated method stub
-
     }
-
-
-}
+}
\ No newline at end of file
index 56f47dacd0505a8af9f549a5a1efcf68107eb72f..93beeb697aed969c7b14ca4326e528b87abd3aca 100755 (executable)
@@ -14,7 +14,7 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.jface.viewers.ArrayContentProvider;
 import org.eclipse.jface.viewers.CheckStateChangedEvent;
@@ -34,6 +34,7 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Listener;
+import org.osgi.service.component.annotations.ConfigurationPolicy;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
@@ -44,14 +45,15 @@ import eu.etaxonomy.cdm.api.service.description.DistributionAggregation;
 import eu.etaxonomy.cdm.api.service.description.DistributionAggregationConfiguration;
 import eu.etaxonomy.cdm.filter.LogicFilter;
 import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
+import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.term.TermTree;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.combo.OriginalSourceTypeComparator;
 import eu.etaxonomy.taxeditor.ui.dialog.SuperAreaSelectionWizard;
 
@@ -59,7 +61,9 @@ import eu.etaxonomy.taxeditor.ui.dialog.SuperAreaSelectionWizard;
  * @author k.luther
  * @since 15.11.2019
  */
-public class DistributionAggregationWizardPage extends AggregationConfigurationWizardPage<DistributionAggregation> implements Listener, SelectionListener{
+public class DistributionAggregationWizardPage
+        extends AggregationConfigurationWizardPage<DistributionAggregation,DistributionAggregationConfiguration>
+        implements Listener, SelectionListener{
 
     private Button buttonSuperArea;
     private Combo comboAreaLevel;
@@ -69,34 +73,25 @@ public class DistributionAggregationWizardPage extends AggregationConfigurationW
     private List<Classification> classifications;
     private Classification selectedClassification;
 
-    private Button checkExportUnpublished;
+    
 
+    private Object[] checkedElements;
 
-
-    Object[] checkedElements;
-
-
-
-
-    /**
-     * @param pageName
-     */
     public DistributionAggregationWizardPage(DistributionAggregationConfiguration configurator) {
         super(Messages.DistributionAggregationWizardPage_TITLE);
         this.configurator = configurator;
 
         this.setDescription(Messages.DistributionAggregationWizardPage_DESCRIPTION);
-
     }
 
-
     @Override
     public void createControl(Composite parent) {
         final Composite composite = new Composite(parent, SWT.NULL);
 
         String taxonStr = ""; //$NON-NLS-1$
         int count = configurator.getTaxonNodeFilter().getSubtreeFilter().size();
-
+        boolean areaChecked = configurator.getAggregationModes().contains(AggregationMode.WithinTaxon);
+        boolean toParentChecked = configurator.getAggregationModes().contains(AggregationMode.ToParent);
         for (LogicFilter<TaxonNode> filter: configurator.getTaxonNodeFilter().getSubtreeFilter()){
             subTreeNode = CdmApplicationState.getCurrentAppConfig().getTaxonNodeService().load(filter.getUuid());
             count--;
@@ -108,7 +103,7 @@ public class DistributionAggregationWizardPage extends AggregationConfigurationW
             }
         }
         if (StringUtils.isNotBlank(taxonStr)){
-            checkUseSelectedSubtree= new Button(composite,  SWT.RADIO);
+            checkUseSelectedSubtree= new Button(composite, SWT.RADIO);
             checkUseSelectedSubtree.setText(Messages.AggregationWizardPage_SUBTREE + " "+ taxonStr);
             checkUseSelectedSubtree.addListener(SWT.Selection, new Listener() {
                 @Override
@@ -133,11 +128,9 @@ public class DistributionAggregationWizardPage extends AggregationConfigurationW
                     comboClassificationSelection.setEnabled(!data.exclude);
                     updateHigherRankCombo();
                 }
-
-
             });
         }
-        checkUseHigherLevel= new Button(composite,  SWT.RADIO);
+        checkUseHigherLevel= new Button(composite, SWT.RADIO);
         checkUseHigherLevel.setText(Messages.DistributionAggregationWizardPage_CLASSIFICATION);
         checkUseHigherLevel.addListener(SWT.Selection, new Listener() {
            @Override
@@ -178,7 +171,6 @@ public class DistributionAggregationWizardPage extends AggregationConfigurationW
         });
         for(Classification tree : classifications){
             comboClassificationSelection.add(tree.getName().getText(), classifications.indexOf(tree));
-
         }
 
         comboClassificationSelection.select(classifications.indexOf(selectedClassification));
@@ -211,13 +203,15 @@ public class DistributionAggregationWizardPage extends AggregationConfigurationW
 
         comboHigherRank = new Combo(control, SWT.BORDER | SWT.READ_ONLY);
         updateHigherRankCombo();
+        setConfigValueToRankCombo(comboHigherRank);
         comboHigherRank.addListener(SWT.Selection, this);
 
-
         Label lowerRankLabel = new Label(control, SWT.NULL);
         lowerRankLabel.setText(Messages.DistributionAggregationWizardPage_LOWEST_RANK);
         comboLowerRank = new Combo(control, SWT.BORDER | SWT.READ_ONLY);
         updateLowerRankCombo();
+        
+        setConfigValueToRankCombo(comboLowerRank);
         comboLowerRank.addListener(SWT.Selection, this);
 
         separator = new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
@@ -229,7 +223,7 @@ public class DistributionAggregationWizardPage extends AggregationConfigurationW
         Label aggregationModeLabel = new Label(control, SWT.NULL);
         aggregationModeLabel.setText(Messages.DistributionAggregationWizardPage_AGGREGATION_MODE);
         aggregationModeLabel.setToolTipText(Messages.DistributionAggregationWizardPage_TOOLTIP_AGGR_MODE);
-        aggregationModeViewer =  CheckboxTableViewer.newCheckList(control, SWT.BORDER | SWT.SINGLE);
+        aggregationModeViewer = CheckboxTableViewer.newCheckList(control, SWT.BORDER | SWT.SINGLE);
         aggregationModeViewer.setContentProvider(new ArrayContentProvider());
         aggregationModeViewer.setLabelProvider(new LabelProvider(){
             @Override
@@ -252,6 +246,13 @@ public class DistributionAggregationWizardPage extends AggregationConfigurationW
         }
 
         aggregationModeViewer.setInput(aggregationModeList);
+        
+        for (AggregationMode mode: configurator.getAggregationModes()){
+            if (mode instanceof AggregationMode){
+               aggregationModeViewer.setChecked(mode, true);
+            }
+        }
+        
 
         aggregationModeViewer.addCheckStateListener(new ICheckStateListener(){
             @Override
@@ -289,29 +290,28 @@ public class DistributionAggregationWizardPage extends AggregationConfigurationW
             comboAreaLevel.setData(level.getLabel(), level);
         }
         comboAreaLevel.addSelectionListener(this);
-        comboAreaLevel.setEnabled(false);
+        comboAreaLevel.setEnabled(areaChecked);
+        
+        
         GridData gridData2 = new GridData();
         gridData2.horizontalSpan = 2;
         gridData2.horizontalAlignment = SWT.LEFT;
 
         buttonSuperArea = new Button(control, SWT.PUSH );
         buttonSuperArea.setLayoutData(gridData2);
-        buttonSuperArea.setEnabled(false);
+        buttonSuperArea.setEnabled(configurator.getAggregationModes().contains(AggregationMode.WithinTaxon));
         buttonSuperArea.setText(Messages.DistributionAggregationWizardPage_SELECT_AREA);
         buttonSuperArea.setToolTipText(Messages.DistributionAggregationWizardPage_TOOLTIP_AREA_SELECTION);
         buttonSuperArea.addSelectionListener(new SelectionAdapter() {
             @Override
             public void widgetSelected(SelectionEvent event) {
-                SuperAreaSelectionWizard availableDistributionWizard = new SuperAreaSelectionWizard((DistributionAggregationConfiguration) configurator, (NamedAreaLevel)comboAreaLevel.getData(comboAreaLevel.getText()));
-                WizardDialog dialog = new WizardDialog(StoreUtil.getShell(),
+                SuperAreaSelectionWizard availableDistributionWizard = new SuperAreaSelectionWizard(configurator, (NamedAreaLevel)comboAreaLevel.getData(comboAreaLevel.getText()));
+                WizardDialog dialog = new WizardDialog(AbstractUtility.getShell(),
                         availableDistributionWizard);
                 int open = dialog.open();
             }
         });
 
-
-
-
         Label sourceModeLabel = new Label(control, SWT.NULL);
 
         sourceModeLabel.setText(Messages.DistributionAggregationWizardPage_SOURCEMODE_CHILD_PARENT);
@@ -320,14 +320,23 @@ public class DistributionAggregationWizardPage extends AggregationConfigurationW
         comboSourceModeChildParent.setText(Messages.DistributionAggregationWizardPage_AGGREGATION_MODE);
 
         for (AggregationSourceMode mode :AggregationSourceMode.values()){
-            comboSourceModeChildParent.add(mode.getMessage());
-            comboSourceModeChildParent.setData(mode.getMessage(), mode);
-
+            comboSourceModeChildParent.add(mode.getLabel());
+            comboSourceModeChildParent.setData(mode.getLabel(), mode);
         }
 
         comboSourceModeChildParent.addSelectionListener(this);
-        comboSourceModeChildParent.setEnabled(false);
-        comboSourceModeChildParent.select(0);
+        comboSourceModeChildParent.setEnabled(toParentChecked);
+        int index = 0;
+        if (configurator.getToParentSourceMode() == null ){
+               comboSourceModeChildParent.select(index);
+        }else{
+               for (String text:comboSourceModeChildParent.getItems()){
+                       if (comboSourceModeChildParent.getData(text).equals(configurator.getToParentSourceMode())){
+                               comboSourceModeChildParent.select(index);
+                       }
+                       index++;
+               }
+        }
 
         Label sourceModeLabelSuperArea = new Label(control, SWT.NULL);
         sourceModeLabelSuperArea.setText(Messages.DistributionAggregationWizardPage_SOURCE_MODE_AREA);
@@ -336,13 +345,26 @@ public class DistributionAggregationWizardPage extends AggregationConfigurationW
         comboSourceModeWithinTaxon.setText(Messages.DistributionAggregationWizardPage_AGGREGATION_MODE);
 
         for (AggregationSourceMode mode :AggregationSourceMode.values()){
-            comboSourceModeWithinTaxon.add(mode.getMessage());
-            comboSourceModeWithinTaxon.setData(mode.getMessage(), mode);
+            comboSourceModeWithinTaxon.add(mode.getLabel());
+            comboSourceModeWithinTaxon.setData(mode.getLabel(), mode);
         }
 
         comboSourceModeWithinTaxon.addSelectionListener(this);
-        comboSourceModeWithinTaxon.setEnabled(false);
-        comboSourceModeWithinTaxon.select(0);
+        comboSourceModeWithinTaxon.setEnabled(configurator.getAggregationModes().contains(AggregationMode.WithinTaxon));
+        
+        index = 0;
+        if (configurator.getWithinTaxonSourceMode() == null ){
+               comboSourceModeWithinTaxon.select(index);
+        }else{
+               for (String text:comboSourceModeWithinTaxon.getItems()){
+                       if (comboSourceModeWithinTaxon.getData(text).equals(configurator.getWithinTaxonSourceMode())){
+                               comboSourceModeWithinTaxon.select(index);
+                       }
+                       index++;
+               }
+        }
+
+        
 
         Label sourceTypeLabel = new Label(control, SWT.NULL);
         sourceTypeLabel.setText(Messages.DistributionAggregationWizardPage_SOURCE_TYPE);
@@ -350,7 +372,6 @@ public class DistributionAggregationWizardPage extends AggregationConfigurationW
         sourceTypeViewer = CheckboxTableViewer.newCheckList(control, SWT.BORDER | SWT.SINGLE);
         sourceTypeViewer.setContentProvider(new ArrayContentProvider());
 
-
         sourceTypeViewer.addCheckStateListener(new ICheckStateListener(){
             @Override
             public void checkStateChanged(    CheckStateChangedEvent event){
@@ -362,47 +383,53 @@ public class DistributionAggregationWizardPage extends AggregationConfigurationW
         List<String> typeStrings = new ArrayList<>();
         OriginalSourceType[] typeArray = OriginalSourceType.values();
         Arrays.sort(typeArray, new OriginalSourceTypeComparator(null));
-        Arrays.stream(typeArray).forEach(p ->typeMap.put(p.getMessage(), p));
-        Arrays.stream(typeArray).forEach(p ->typeStrings.add(p.getMessage()));
-        typeStrings.remove(OriginalSourceType.NomenclaturalReference.getMessage());
+        Arrays.stream(typeArray).forEach(p ->typeMap.put(p.getLabel(), p));
+        Arrays.stream(typeArray).forEach(p ->typeStrings.add(p.getLabel()));
         sourceTypeViewer.setInput(typeStrings);
-        sourceTypeViewer.setChecked(OriginalSourceType.PrimaryMediaSource.getMessage(), true);
-        sourceTypeViewer.setChecked(OriginalSourceType.PrimaryTaxonomicSource.getMessage(), true);
-        sourceTypeViewer.getTable().setEnabled(false);
+        for (OriginalSourceType sourceType: configurator.getAggregatingSourceTypes()){
+               sourceTypeViewer.setChecked(sourceType.getLabel(), true);
+        }
+//        sourceTypeViewer.setChecked(OriginalSourceType.PrimaryTaxonomicSource.getLabel(), true);
+//        sourceTypeViewer.getTable().setEnabled(false);
+        AggregationSourceMode taxonMode = configurator.getToParentSourceMode();
+        AggregationSourceMode areaMode = configurator.getWithinTaxonSourceMode();
+        sourceTypeViewer.getTable().setEnabled(((areaChecked && (areaMode.equals(AggregationSourceMode.ALL) || areaMode.equals(AggregationSourceMode.ALL_SAMEVALUE) ) )|| toParentChecked && (taxonMode.equals(AggregationSourceMode.ALL) || taxonMode.equals(AggregationSourceMode.ALL_SAMEVALUE) )) );
 
         //aggregation mode
 
-
-
         Label selectStatusLabel = new Label(control, SWT.NULL);
         selectStatusLabel.setText(Messages.DistributionAggregationWizardPage_STATUS_ORDER);
         comboStatusOrder = new Combo(control, SWT.PUSH );
         comboStatusOrder.add(Messages.DistributionAggregationWizardPage_DEFAULT);
         comboStatusOrder.setData(Messages.DistributionAggregationWizardPage_DEFAULT, null);
-        for (TermTree tree: CdmStore.getService(ITermTreeService.class).list(TermType.PresenceAbsenceTerm, null, 0, null,null)){
+        for (TermTree<?> tree: CdmStore.getService(ITermTreeService.class).list(TermType.PresenceAbsenceTerm, null, 0, null,null)){
             comboStatusOrder.add(tree.getTitleCache());
             comboStatusOrder.setData(tree.getTitleCache(), tree);
         }
 
         comboStatusOrder.addSelectionListener(this);
-        comboStatusOrder.select(0);
+        index = 0;
+        if (configurator.getStatusOrder() == null ){
+               comboStatusOrder.select(index);
+        }else{
+               for (String text:comboStatusOrder.getItems()){
+                       if (text.equals(configurator.getStatusOrder().getTitleCache())){
+                               comboStatusOrder.select(index);
+                       }
+                       index++;
+               }
+        }
 
-        checkExportUnpublished = new Button(composite,  SWT.CHECK);
-        checkExportUnpublished.setText(Messages.DistributionAggregationWizardPage_EXPORT_UNPUBLISHED);
+        checkIncludeUnpublishedTaxa = new Button(composite,  SWT.CHECK);
+        checkIncludeUnpublishedTaxa.setText(Messages.DistributionAggregationWizardPage_EXPORT_UNPUBLISHED);
+        checkIncludeUnpublishedTaxa.setSelection(true);
 
         GridLayoutFactory.fillDefaults();
 
-
-
         setControl(composite);
-
     }
 
-
-
-
-
-
+       
     @Override
     public void widgetSelected(SelectionEvent e) {
 
@@ -414,24 +441,18 @@ public class DistributionAggregationWizardPage extends AggregationConfigurationW
             }else{
                 sourceTypeViewer.getTable().setEnabled(false);
             }
-
         }
 
         if (e.getSource().equals(comboAreaLevel)){
             buttonSuperArea.setEnabled(StringUtils.isNotBlank(comboAreaLevel.getText()));
         }
-
-
     }
 
-
     @Override
     public void widgetDefaultSelected(SelectionEvent e) {
         // TODO Auto-generated method stub
-
     }
 
-
     @Override
     public void handleEvent(Event event) {
         if (event.widget.equals(comboHigherRank)){
@@ -453,36 +474,24 @@ public class DistributionAggregationWizardPage extends AggregationConfigurationW
             updateHigherRankCombo();
             updateLowerRankCombo();
         }
-
     }
 
-
-
-
-
    public TermTree getStatusOrder(){
        if (StringUtils.isNotBlank(comboStatusOrder.getText())){
-           return (TermTree)comboStatusOrder.getData(comboStatusOrder.getText());
+           return (TermTree<?>)comboStatusOrder.getData(comboStatusOrder.getText());
        }
        return null;
    }
 
-
-
    public boolean useUnpublishedData(){
-       return checkExportUnpublished.getSelection();
+       return checkIncludeUnpublishedTaxa.getSelection();
    }
 
-
-
-
-
     public Classification getSelectedClassification() {
         return selectedClassification;
     }
 
-
     public TaxonNode getSubTreeNode() {
         return subTreeNode;
     }
-}
+}
\ No newline at end of file
index cb71551073095e50b103a2b92a11eea9865c2cba..dc0df4e34075118bbf519dcd4a68f607fea457c0 100755 (executable)
@@ -27,6 +27,8 @@ import org.eclipse.wb.swt.ResourceManager;
 import eu.etaxonomy.cdm.api.service.config.SecundumForSubtreeConfigurator;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
@@ -42,15 +44,18 @@ public class SetSecundumConfiguratorWizardPage extends WizardPage implements Lis
 
     private  Button btnBrowseReference = null;
 
-    private  Text textReference = null;
-    private  Button btnClear = null;
+    private Text textReference = null;
+    private Button btnClear = null;
     private EntitySelectionElement<Reference> selectReference;
-    private  Button btnIncludeAcceptedTaxa;
+    private Button btnIncludeAcceptedTaxa;
     private Button btnIncludeSynonyms;
-    private Button btnOverwriteExistingAccepted;
-    private Button btnOverwriteExistingSynonyms;
+    private Button btnOverwriteExisting;
+//    private Button btnOverwriteExistingSynonyms;
+//    private Button btnOverwriteExistingRelations;
     private Button btnEmptySecundumDetail;
     private Button btnIncludeSharedTaxa;
+    private Button btnIncludeMisappliedNamed;
+    private Button btnIncludeProParteSynonyms;
 
 
     /**
@@ -61,6 +66,7 @@ public class SetSecundumConfiguratorWizardPage extends WizardPage implements Lis
     public SetSecundumConfiguratorWizardPage(SecundumForSubtreeConfigurator configurator) {
         super("Set Secundum Reference Configuration");
         this.configurator = configurator;
+
         this.setDescription(Messages.SetSecundumConfiguration_Description_Configurator);
     }
 
@@ -78,13 +84,17 @@ public class SetSecundumConfiguratorWizardPage extends WizardPage implements Lis
         IObservableValue includeSynonymsConfiguratorObserveValue = PojoProperties.value("includeSynonyms").observe(configurator);
         bindingContext.bindValue(observeSelectionBtnIncludeSynonyms, includeSynonymsConfiguratorObserveValue, null, null);
 
-        IObservableValue observeSelectionBtnOverwriteExistingAccepted = WidgetProperties.selection().observe(btnOverwriteExistingAccepted);
-        IObservableValue overwriteExistingAcceptedConfiguratorObserveValue = PojoProperties.value("overwriteExistingAccepted").observe(configurator);
-        bindingContext.bindValue(observeSelectionBtnOverwriteExistingAccepted, overwriteExistingAcceptedConfiguratorObserveValue, null, null);
+        IObservableValue observeSelectionBtnIncludeMisappliedNames = WidgetProperties.selection().observe(btnIncludeMisappliedNamed);
+        IObservableValue includeMisappliedNamesConfiguratorObserveValue = PojoProperties.value("includeMisapplications").observe(configurator);
+        bindingContext.bindValue(observeSelectionBtnIncludeMisappliedNames, includeMisappliedNamesConfiguratorObserveValue, null, null);
+
+        IObservableValue observeSelectionBtnIncludeProparteSynonyms = WidgetProperties.selection().observe(btnIncludeProParteSynonyms);
+        IObservableValue includeProparteSynonymsConfiguratorObserveValue = PojoProperties.value("includeProParteSynonyms").observe(configurator);
+        bindingContext.bindValue(observeSelectionBtnIncludeProparteSynonyms, includeProparteSynonymsConfiguratorObserveValue, null, null);
 
-        IObservableValue observeSelectionBtnOverwriteExistingSynonyms = WidgetProperties.selection().observe(btnOverwriteExistingSynonyms);
-        IObservableValue overwriteExistingSynonymsConfiguratorObserveValue = PojoProperties.value("overwriteExistingSynonyms").observe(configurator);
-        bindingContext.bindValue(observeSelectionBtnOverwriteExistingSynonyms, overwriteExistingSynonymsConfiguratorObserveValue, null, null);
+        IObservableValue observeSelectionBtnOverwriteExisting = WidgetProperties.selection().observe(btnOverwriteExisting);
+        IObservableValue overwriteExistingConfiguratorObserveValue = PojoProperties.value("overwriteExisting").observe(configurator);
+        bindingContext.bindValue(observeSelectionBtnOverwriteExisting, overwriteExistingConfiguratorObserveValue, null, null);
 
         IObservableValue observeSelectionBtnEmptySecundumDetail = WidgetProperties.selection().observe(btnEmptySecundumDetail);
         IObservableValue emptySecundumDetailConfiguratorObserveValue = PojoProperties.value("emptySecundumDetail").observe(configurator);
@@ -100,30 +110,41 @@ public class SetSecundumConfiguratorWizardPage extends WizardPage implements Lis
     public void createControl(Composite parent) {
 
         final Composite composite = new Composite(parent, SWT.NULL);
-
+        GridData gridComp = new GridData(SWT.BEGINNING, SWT.BEGINNING, true, true);
+        gridComp.minimumWidth = 200;
         GridLayout gridLayout = new GridLayout();
-        gridLayout.numColumns = 1;
 
+        gridLayout.numColumns = 1;
+        composite.setLayoutData(gridComp);
         composite.setLayout(gridLayout);
         final Composite compositeRef = new Composite(composite, SWT.NULL);
 
         GridLayout gridLayoutRef = new GridLayout();
         gridLayoutRef.numColumns = 4;
 
+
         compositeRef.setLayout(gridLayoutRef);
-        compositeRef.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, true));
+        GridData gridRef = new GridData(SWT.BEGINNING, SWT.BEGINNING, true, true);
+        compositeRef.setLayoutData(gridRef);
         Label label = new Label(compositeRef, SWT.WRAP);
         label.setText(Messages.SetSecundumConfiguration_NewSecundum_Label);
-        label.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false));
+        label.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false));
 
         textReference = new Text(compositeRef, SWT.BORDER);
         textReference.setEditable(false);
-        textReference.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-        textReference.setTextLimit(Text.LIMIT);
+        textReference.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, true));
+//        textReference.setTextLimit(Text.LIMIT);
+        textReference.setBackground(StoreUtil
+                .getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND));
+        GridData gridTextReference = new GridData(SWT.FILL, SWT.FILL, true, true);
+        gridTextReference.widthHint = 20;
+        gridTextReference.grabExcessHorizontalSpace = true;
+        textReference.setLayoutData(gridTextReference);
 
         btnBrowseReference = new Button(compositeRef, SWT.NONE);
         btnBrowseReference.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/prj_obj.gif"));
         btnBrowseReference.addListener(SWT.Selection, this);
+        btnBrowseReference.setFocus();
 
         btnClear = new Button(compositeRef, SWT.NONE);
         btnClear.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/trash.gif"));
@@ -133,11 +154,11 @@ public class SetSecundumConfiguratorWizardPage extends WizardPage implements Lis
         GridData gd_labelDescription = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
         gd_labelDescription.horizontalSpan = 4;
         labelDescription.setLayoutData(gd_labelDescription);
-        new Label(compositeRef, SWT.NONE);
-        new Label(compositeRef, SWT.NONE);
-        new Label(compositeRef, SWT.NONE);
+//        new Label(compositeRef, SWT.NONE);
+//        new Label(compositeRef, SWT.NONE);
+//        new Label(compositeRef, SWT.NONE);
 
-       // selectReference = toolkit.createSelectionElement(Rights.class, getConversationHolder(), composite, "Rights", null, EntitySelectionElement.SELECTABLE);
+       // selectReference = toolkit.createSelectionElement(Rights.class, composite, "Rights", null, EntitySelectionElement.SELECTABLE);
         final Composite control = new Composite(composite, SWT.WRAP);
         GridLayout gridLayoutControl = new GridLayout();
 
@@ -153,30 +174,24 @@ public class SetSecundumConfiguratorWizardPage extends WizardPage implements Lis
                 Button b = (Button) e.widget;
                 GridData data = (GridData)  btnIncludeAcceptedTaxa.getLayoutData();
                 data.exclude = b.getSelection();
-                btnOverwriteExistingAccepted.setVisible(data.exclude);
-                btnIncludeSharedTaxa.setVisible(data.exclude);
+                boolean isEnabled = true;
                 if (!btnIncludeSynonyms.getSelection() && !data.exclude){
-                    btnEmptySecundumDetail.setVisible(false);
-                    setPageComplete(false);
-                }else{
-                    btnEmptySecundumDetail.setVisible(true);
-                    setPageComplete(true);
+                    isEnabled = false;
                 }
+                btnOverwriteExisting.setVisible(isEnabled);
+                btnEmptySecundumDetail.setVisible(isEnabled);
+                btnIncludeSharedTaxa.setVisible(isEnabled);
+                setPageComplete(isEnabled);
             }
         });
 
-        btnOverwriteExistingAccepted = new Button(control, SWT.CHECK);
-        GridData gd_btnOverwriteExistingAccepted = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
-        gd_btnOverwriteExistingAccepted.horizontalIndent = 10;
-        btnOverwriteExistingAccepted.setLayoutData(gd_btnOverwriteExistingAccepted);
-        btnOverwriteExistingAccepted.setText(Messages.SetSecundumConfiguration_OverwriteExistingAccepted);
+//                btnOverwriteExistingAccepted = new Button(control, SWT.CHECK);
+//                GridData gd_btnOverwriteExistingAccepted = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+//                gd_btnOverwriteExistingAccepted.horizontalIndent = 10;
+//                btnOverwriteExistingAccepted.setLayoutData(gd_btnOverwriteExistingAccepted);
+//                btnOverwriteExistingAccepted.setText(Messages.SetSecundumConfiguration_OverwriteExistingAccepted);
+
 
-                btnIncludeSharedTaxa = new Button(control, SWT.CHECK);
-                GridData gd_btnIncludeSharedTaxa = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
-                gd_btnIncludeSharedTaxa.horizontalIndent = 10;
-                btnIncludeSharedTaxa.setLayoutData(gd_btnIncludeSharedTaxa);
-                btnIncludeSharedTaxa.setText(Messages.SetSecundumConfiguration_IncludeSharedtaxa);
-                btnIncludeSharedTaxa.setSelection(configurator.isIncludeSharedTaxa());
 
         btnIncludeSynonyms = new Button(control, SWT.CHECK);
         btnIncludeSynonyms.setText(Messages.SetSecundumConfiguration_IncludeSynonyms);
@@ -187,25 +202,80 @@ public class SetSecundumConfiguratorWizardPage extends WizardPage implements Lis
                 Button b = (Button) e.widget;
                 GridData data = (GridData)  btnIncludeSynonyms.getLayoutData();
                 data.exclude = b.getSelection();
-                btnOverwriteExistingSynonyms.setVisible(data.exclude);
-                if (!btnIncludeAcceptedTaxa.getSelection() && !data.exclude){
-                    btnEmptySecundumDetail.setVisible(false);
-                    setPageComplete(false);
-                }else{
-                    btnEmptySecundumDetail.setVisible(true);
-                    setPageComplete(true);
+                boolean isEnabled = true;
+                if (!btnIncludeAcceptedTaxa.getSelection() && !data.exclude && !btnIncludeMisappliedNamed.getSelection() && !btnIncludeProParteSynonyms.getSelection()){
+                    isEnabled = false;
+                }
+                btnEmptySecundumDetail.setVisible(isEnabled);
+                btnOverwriteExisting.setVisible(isEnabled);
+                btnIncludeSharedTaxa.setVisible(isEnabled);
+                setPageComplete(isEnabled);
+
+            }
+        });
+
+//                btnOverwriteExistingSynonyms = new Button(control, SWT.CHECK);
+//                GridData gd_btnOverwriteExistingSynonyms = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+//                gd_btnOverwriteExistingSynonyms.horizontalIndent = 10;
+//                btnOverwriteExistingSynonyms.setLayoutData(gd_btnOverwriteExistingSynonyms);
+//                btnOverwriteExistingSynonyms.setText(Messages.SetSecundumConfiguration_OverwriteExistingSynonyms);
+//                btnOverwriteExistingSynonyms.setSelection(configurator.isOverwriteExistingSynonyms());
+
+        btnIncludeMisappliedNamed = new Button(control, SWT.CHECK);
+        btnIncludeMisappliedNamed.setText(Messages.SetSecundumConfiguration_IncludeMisapplications);
+        btnIncludeMisappliedNamed.setSelection(configurator.isIncludeMisapplications());
+        btnIncludeMisappliedNamed.addListener(SWT.Selection, new Listener() {
+            @Override
+         public void handleEvent(Event e) {
+                Button b = (Button) e.widget;
+                GridData data = (GridData)  btnIncludeMisappliedNamed.getLayoutData();
+                data.exclude = b.getSelection();
+                boolean isEnabled = true;
+                if (!btnIncludeAcceptedTaxa.getSelection() && !btnIncludeProParteSynonyms.getSelection() && !btnIncludeSynonyms.getSelection() && !data.exclude){
+                    isEnabled = false;
                 }
+                btnEmptySecundumDetail.setVisible(isEnabled);
+                btnOverwriteExisting.setVisible(isEnabled);
+                btnIncludeSharedTaxa.setVisible(isEnabled);
+                setPageComplete(isEnabled);
+            }
+        });
+
 
+
+        btnIncludeProParteSynonyms = new Button(control, SWT.CHECK);
+        btnIncludeProParteSynonyms.setText(Messages.SetSecundumConfiguration_IncludeProParteSynonyms);
+        btnIncludeProParteSynonyms.setSelection(configurator.isIncludeProParteSynonyms());
+        btnIncludeProParteSynonyms.addListener(SWT.Selection, new Listener() {
+            @Override
+         public void handleEvent(Event e) {
+                Button b = (Button) e.widget;
+                GridData data = (GridData)  btnIncludeProParteSynonyms.getLayoutData();
+                data.exclude = b.getSelection();
+                boolean isEnabled = true;
+                if (!btnIncludeAcceptedTaxa.getSelection() && !btnIncludeMisappliedNamed.getSelection() && !btnIncludeSynonyms.getSelection() && !data.exclude){
+                    isEnabled = false;
+                }
+                btnEmptySecundumDetail.setVisible(isEnabled);
+                btnOverwriteExisting.setVisible(isEnabled);
+                btnIncludeSharedTaxa.setVisible(isEnabled);
+                setPageComplete(isEnabled);
             }
         });
 
-        btnOverwriteExistingAccepted.setSelection(configurator.isOverwriteExistingAccepted());
-        btnOverwriteExistingSynonyms = new Button(control, SWT.CHECK);
-        GridData gd_btnOverwriteExistingSynonyms = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
-        gd_btnOverwriteExistingSynonyms.horizontalIndent = 10;
-        btnOverwriteExistingSynonyms.setLayoutData(gd_btnOverwriteExistingSynonyms);
-        btnOverwriteExistingSynonyms.setText(Messages.SetSecundumConfiguration_OverwriteExistingSynonyms);
-        btnOverwriteExistingSynonyms.setSelection(configurator.isOverwriteExistingSynonyms());
+        Label space = new Label(control, SWT.NONE);
+        btnIncludeSharedTaxa = new Button(control, SWT.CHECK);
+        btnIncludeSharedTaxa.setText(Messages.SetSecundumConfiguration_IncludeSharedtaxa);
+        btnIncludeSharedTaxa.setSelection(configurator.isIncludeSharedTaxa());
+
+        btnOverwriteExisting = new Button(control, SWT.CHECK);
+
+        btnOverwriteExisting.setText(Messages.SetSecundumConfiguration_OverwriteExisting);
+        btnOverwriteExisting.setSelection(configurator.isOverwriteExisting());
+
+
+//        btnOverwriteExistingAccepted.setSelection(configurator.isOverwriteExistingAccepted());
+
         btnEmptySecundumDetail = new Button(control, SWT.CHECK);
         btnEmptySecundumDetail.setText(Messages.SetSecundumConfiguration_EmptySecundumDetail);
         btnEmptySecundumDetail.setSelection(configurator.isEmptySecundumDetail());
index bb4940201a7895308a32a5c36fa6ff8437c561fc..cca4acce4346459f4cb44ecefd233b2ba58fa516 100755 (executable)
@@ -9,6 +9,7 @@
 package eu.etaxonomy.taxeditor.ui.dialog.configurator;
 
 import java.util.List;
+import java.util.UUID;
 
 import org.eclipse.jface.wizard.Wizard;
 
@@ -17,10 +18,10 @@ import eu.etaxonomy.cdm.api.service.description.StructuredDescriptionAggregation
 import eu.etaxonomy.cdm.api.service.longrunningService.ILongRunningTasksService;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
 import eu.etaxonomy.cdm.filter.TaxonNodeFilter;
-import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
-import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+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.l10n.Messages;
 import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
 
@@ -33,12 +34,11 @@ public class StructuredAggregationConfigurationWizard extends Wizard implements
     private final StructuredDescriptionAggregationConfiguration configurator;
     private StructuredDescriptionAggregationConfigurationWizardPage page;
     private ILongRunningTasksService longRunningTaskService;
-    private DescriptiveDataSet dataSet;
+    private DescriptiveDataSetBaseDto dataSet;
     private List<TaxonNodeDto> selectedNodes;
 
 
-    public StructuredAggregationConfigurationWizard(StructuredDescriptionAggregationConfiguration config, DescriptiveDataSet dataSet, List<TaxonNodeDto> nodes) {
-        super();
+    public StructuredAggregationConfigurationWizard(StructuredDescriptionAggregationConfiguration config, DescriptiveDataSetBaseDto dataSet, List<TaxonNodeDto> nodes) {
         this.configurator = config;
         this.dataSet = dataSet;
         setNeedsProgressMonitor(true);
@@ -47,12 +47,9 @@ public class StructuredAggregationConfigurationWizard extends Wizard implements
         this.selectedNodes = nodes;
     }
 
-
-
     @Override
     public void postOperation(IRemotingProgressMonitor monitor) {
         // TODO Auto-generated method stub
-
     }
 
     @Override
@@ -60,20 +57,14 @@ public class StructuredAggregationConfigurationWizard extends Wizard implements
         configurator.setAggregatingSourceTypes(page.getSourceTypes());
         configurator.setAggregationMode(page.getAggregationMode());
         configurator.setToParentSourceMode(page.getSourceModeChildParent());
-
-
-
+        configurator.setIncludeDefault(page.checkIncludeDefaultDescriptions.getSelection());
+        configurator.setIncludeLiterature(page.checkIncludeLiteratureDescriptions.getSelection());
+        configurator.getTaxonNodeFilter().setIncludeUnpublished(page.checkIncludeUnpublishedTaxa.getSelection());
 //        for (TaxonNode taxonNode : matrix.getDescriptiveDataSet().getTaxonSubtreeFilter()) {
 //            filter = filter.orSubtree(taxonNode);
 //        }
         TaxonNodeFilter filter = configurator.getTaxonNodeFilter();
         if (!page.useHigherLevel()) {
-            filter.setRankMax(dataSet.getMaxRank());
-            filter.setRankMin(dataSet.getMinRank());
-
-            for (NamedArea namedArea : dataSet.getGeoFilter()) {
-                filter = filter.orArea(namedArea.getUuid());
-            }
             //TODO: check whether this is correct!!!!
             for (TaxonNode node: page.getSelectedTaxonNodes()) {
                 if (page.useSubtree()){
@@ -84,19 +75,37 @@ public class StructuredAggregationConfigurationWizard extends Wizard implements
             }
             configurator.setTaxonNodeFilter(filter);
         }else{
-            filter = TaxonNodeFilter.NewRankInstance(dataSet.getMinRank(),
-                    dataSet.getMaxRank());
-            for (NamedArea namedArea : dataSet.getGeoFilter()) {
-                filter = filter.orArea(namedArea.getUuid());
-            }
-            for (TaxonNode taxonNode : dataSet.getTaxonSubtreeFilter()) {
-                filter = filter.orSubtree(taxonNode);
-            }
+            if (dataSet.getSubTreeFilter() != null){
+                   for (TaxonNodeDto taxonNode : dataSet.getSubTreeFilter()) {
+                       filter = filter.orSubtree(taxonNode.getUuid());
+                   }
+               }
             configurator.setTaxonNodeFilter(filter);
         }
 
+        //ranks
+        UUID minRankUuid = null;
+        UUID maxRankUuid = null;
+        if (page.getHigherRank() != null){
+            maxRankUuid = page.getHigherRank().getUuid();
+        }else{
+            maxRankUuid = dataSet.getMaxRank() != null? dataSet.getMaxRank().getUuid(): null;
 
+        }
+        if (page.getLowerRank() != null){
+            minRankUuid = page.getLowerRank().getUuid();
+        }else{
+            minRankUuid = dataSet.getMinRank() != null? dataSet.getMinRank().getUuid(): null;
+        }
+        filter.setRankMax(maxRankUuid);
+        filter.setRankMin(minRankUuid);
 
+        //geo filter
+        if (dataSet.getGeoFilter() != null){
+            for (TermDto namedArea : dataSet.getGeoFilter()) {
+                filter = filter.orArea(namedArea.getUuid());
+            }
+        }
         return true;
     }
 
@@ -104,6 +113,5 @@ public class StructuredAggregationConfigurationWizard extends Wizard implements
     public void addPages() {
         page = new StructuredDescriptionAggregationConfigurationWizardPage(configurator, selectedNodes);
         addPage(page);
-
     }
-}
+}
\ No newline at end of file
index b67f03535dabf1daf88bf1d373c74e4991ee2ee1..aca8c9a8ef8da151c8cdc0713f2ca755d487710c 100755 (executable)
@@ -9,7 +9,6 @@
 package eu.etaxonomy.taxeditor.ui.dialog.configurator;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 
@@ -35,45 +34,49 @@ import eu.etaxonomy.cdm.api.service.description.AggregationSourceMode;
 import eu.etaxonomy.cdm.api.service.description.AggregationType;
 import eu.etaxonomy.cdm.api.service.description.StructuredDescriptionAggregation;
 import eu.etaxonomy.cdm.api.service.description.StructuredDescriptionAggregationConfiguration;
-import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
+import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.persistence.dto.DescriptiveDataSetBaseDto;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.ui.combo.OriginalSourceTypeComparator;
 
 /**
  * @author k.luther
  * @since 11.12.2019
  */
-public class StructuredDescriptionAggregationConfigurationWizardPage extends AggregationConfigurationWizardPage<StructuredDescriptionAggregation> implements Listener {
+public class StructuredDescriptionAggregationConfigurationWizardPage
+        extends AggregationConfigurationWizardPage<StructuredDescriptionAggregation,StructuredDescriptionAggregationConfiguration>
+        implements Listener {
 
     protected CheckboxTableViewer subTreeSelectionViewer;
     private List<TaxonNodeDto> selectedNodes;
 
+    protected Button checkIncludeDefaultDescriptions;
+    protected Button checkIncludeLiteratureDescriptions;
+    protected DescriptiveDataSetBaseDto ddsDTO;
 
 
-    /**
-     * @param pageName
-     */
+    private Label selectSubtreeLabel;
+
     protected StructuredDescriptionAggregationConfigurationWizardPage(StructuredDescriptionAggregationConfiguration configurator, List<TaxonNodeDto> nodes) {
         super(Messages.DistributionAggregationWizardPage_TITLE);
         this.configurator = configurator;
         this.setDescription(Messages.DistributionAggregationWizardPage_DESCRIPTION);
         selectedNodes = nodes;
-    }
-
-
+        ddsDTO = CdmApplicationState.getCurrentAppConfig().getDescriptiveDataSetService().getDescriptiveDataSetDtoByUuid(configurator.getDatasetUuid());
 
+    }
 
     @Override
     public void createControl(Composite parent) {
+
         final Composite control = new Composite(parent, SWT.NULL);
         GridLayout gridLayoutControl = new GridLayout();
         gridLayoutControl.numColumns = 2;
         control.setLayout(gridLayoutControl);
         control.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, true));
 
-        //select between taxonnode filter for the whole descriptive dataset or the selected taxonnode/subtree
+        //taxon node filter
         GridData gridDataRadioComposite = new GridData();
         gridDataRadioComposite.horizontalSpan = 2;
         GridLayout gridLayoutRadioComposite = new GridLayout();
@@ -82,12 +85,32 @@ public class StructuredDescriptionAggregationConfigurationWizardPage extends Agg
         radioComposite.setLayoutData(gridDataRadioComposite);
         radioComposite.setLayout(gridLayoutRadioComposite);
 
-        checkUseSelectedSubtree= new Button(radioComposite,  SWT.RADIO);
+        boolean hasTaxonFilter = !configurator.getTaxonNodeFilter().getSubtreeFilter().isEmpty();
+
+        //   ... from descriptive data set
+        checkUseHigherLevel = new Button(radioComposite,  SWT.RADIO);
+        checkUseHigherLevel.setText(Messages.StructuredDescriptionAggregationWizardPage_SELECT_ALL_SUBTREES);
+        checkUseHigherLevel.addListener(SWT.Selection, new Listener() {
+           @Override
+           public void handleEvent(Event e) {
+               subTreeSelectionViewer.getTable().setEnabled(!checkUseHigherLevel.getSelection());
+               selectSubtreeLabel.setEnabled(!checkUseHigherLevel.getSelection());
+               updateHigherRankCombo();
+               if (checkUseHigherLevel.getSelection()){
+                   setPageComplete(true);
+               }
+           }
+        });
+
+
+        //   ... from selected subtree
+        checkUseSelectedSubtree= new Button(radioComposite, SWT.RADIO);
         checkUseSelectedSubtree.setText(Messages.AggregationWizardPage_SUBTREE);
         checkUseSelectedSubtree.addListener(SWT.Selection, new Listener() {
             @Override
             public void handleEvent(Event e) {
-                subTreeSelectionViewer.getTable().setEnabled(checkUseSelectedSubtree.getSelection());
+                subTreeSelectionViewer.getTable().setEnabled(!checkUseHigherLevel.getSelection());
+                selectSubtreeLabel.setEnabled(checkUseSelectedSubtree.getSelection() || checkUseSelectedTaxonNode.getSelection());
                 if (checkUseSelectedSubtree.getSelection() && subTreeSelectionViewer.getCheckedElements().length == 0){
                     setPageComplete(false);
                 }else{
@@ -96,35 +119,35 @@ public class StructuredDescriptionAggregationConfigurationWizardPage extends Agg
            }
         });
 
-        checkUseSelectedTaxonNode= new Button(radioComposite,  SWT.RADIO);
+        //    ... from selected taxon
+        checkUseSelectedTaxonNode= new Button(radioComposite, SWT.RADIO);
         checkUseSelectedTaxonNode.setText(Messages.StructuredDescriptionAggregationWizardPage_SELECT_SELECTED_TAXA_ONLY);
         checkUseSelectedTaxonNode.addListener(SWT.Selection, new Listener() {
             @Override
             public void handleEvent(Event e) {
-                subTreeSelectionViewer.getTable().setEnabled(checkUseSelectedTaxonNode.getSelection());
+                subTreeSelectionViewer.getTable().setEnabled(!checkUseHigherLevel.getSelection());
+                selectSubtreeLabel.setEnabled(!checkUseHigherLevel.getSelection());
                 if (checkUseSelectedTaxonNode.getSelection() && subTreeSelectionViewer.getCheckedElements().length == 0){
                     setPageComplete(false);
                 }else{
                     setPageComplete(true);
                 }
             }
-
-
         });
+        checkUseSelectedSubtree.setSelection(hasTaxonFilter);
 
-//        configurator.getTaxonNodeFilter().getSubtreeFilter().stream().forEach(p ->uuidList.add(p.getUuid()));
-//        List<String> propertyPaths = new ArrayList<>();
-//        propertyPaths.add("taxon.name");
-//        List<TaxonNode> nodeList = CdmApplicationState.getCurrentAppConfig().getTaxonNodeService().load(uuidList, propertyPaths);
-
-        Label selectSubtreeLabel = new Label(control, SWT.NULL);
+        //subtree selection
+        selectSubtreeLabel = new Label(control, SWT.NULL);
         selectSubtreeLabel.setText(Messages.StructuredDescriptionAggregationWizardPage_SELECT_SUBTREE);
         selectSubtreeLabel.setToolTipText(Messages.StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_SUBTREE);
-        subTreeSelectionViewer = CheckboxTableViewer.newCheckList(control, SWT.BORDER | SWT.SINGLE);
-
-        subTreeSelectionViewer.setContentProvider(new ArrayContentProvider());
 
+        GridData gridData = new GridData();
+        gridData.horizontalIndent = 25;
+        gridData.verticalAlignment = SWT.TOP;
+        selectSubtreeLabel.setLayoutData(gridData);
 
+        subTreeSelectionViewer = CheckboxTableViewer.newCheckList(control, SWT.BORDER | SWT.SINGLE);
+        subTreeSelectionViewer.setContentProvider(new ArrayContentProvider());
         subTreeSelectionViewer.setLabelProvider(new LabelProvider(){
             @Override
             public String getText(Object element){
@@ -135,12 +158,8 @@ public class StructuredDescriptionAggregationConfigurationWizardPage extends Agg
                 }
                 return null;
             }
-
         });
 
-
-
-
         if (selectedNodes == null || selectedNodes.isEmpty()){
             List<TaxonNode> nodeList;
             List<UUID> uuidList = new ArrayList<>();
@@ -148,9 +167,7 @@ public class StructuredDescriptionAggregationConfigurationWizardPage extends Agg
             List<String> propertyPaths = new ArrayList<>();
             propertyPaths.add("taxon.name");
             nodeList = CdmApplicationState.getCurrentAppConfig().getTaxonNodeService().load(uuidList, propertyPaths);
-
             subTreeSelectionViewer.setInput(nodeList);
-
         }else{
             subTreeSelectionViewer.setInput(selectedNodes);
         }
@@ -167,62 +184,71 @@ public class StructuredDescriptionAggregationConfigurationWizardPage extends Agg
             }
         });
 
+//        GridLayoutFactory.fillDefaults();
 
-        //use taxonnode filter of the descriptive data set
-        checkUseHigherLevel = new Button(radioComposite,  SWT.RADIO);
-        checkUseHigherLevel.setText(Messages.StructuredDescriptionAggregationWizardPage_SELECT_ALL_SUBTREES);
-        checkUseHigherLevel.addListener(SWT.Selection, new Listener() {
-           @Override
-           public void handleEvent(Event e) {
-               subTreeSelectionViewer.getTable().setEnabled(!checkUseHigherLevel.getSelection());
-               updateHigherRankCombo();
-               if (checkUseHigherLevel.getSelection()){
-                   setPageComplete(true);
-               }
-           }
-        });
+        //scope (published taxa, literature + default descriptions)
+        Label scopeLabel = new Label(control, SWT.NULL);
+        scopeLabel.setText(Messages.StructuredDescriptionAggregationWizardPage_SELECT_DEFINE_SCOPE);
+
+        Composite scopeComposite = new Composite(control, SWT.NULL);
+        GridLayout gridDataScopeComposite = new GridLayout();
+        gridDataScopeComposite.numColumns = 1;
+        scopeComposite.setLayout(gridDataScopeComposite);
 
+//        GridLayoutFactory.fillDefaults();
 
+        checkIncludeUnpublishedTaxa = new Button(scopeComposite, SWT.CHECK);
+        checkIncludeUnpublishedTaxa.setText(Messages.StructuredDescriptionAggregationWizardPage_SELECT_UNPUBLISHED_TAXA);
+        checkIncludeUnpublishedTaxa.setSelection(true);
 
+        checkIncludeDefaultDescriptions = new Button(scopeComposite, SWT.CHECK);
+        checkIncludeDefaultDescriptions.setText(Messages.StructuredDescriptionAggregationWizardPage_SELECT_DEFAULT_DESCRIPTION);
+        checkIncludeDefaultDescriptions.setEnabled(false);
 
+        checkIncludeLiteratureDescriptions = new Button(scopeComposite, SWT.CHECK);
+        checkIncludeLiteratureDescriptions.setText(Messages.StructuredDescriptionAggregationWizardPage_SELECT_LITERATURE_DESCRIPTION);
+        checkIncludeLiteratureDescriptions.setSelection(configurator.isIncludeLiterature());
         GridLayoutFactory.fillDefaults();
 
+        //ranks
         Label higherRankLabel = new Label(control, SWT.NULL);
         higherRankLabel.setText(Messages.DistributionAggregationWizardPage_HIGHEST_RANK);
-
         comboHigherRank = new Combo(control, SWT.BORDER | SWT.READ_ONLY);
         updateHigherRankCombo();
+        setConfigValueToRankCombo(comboHigherRank, ddsDTO.getMaxRank() != null? ddsDTO.getMaxRank().getUuid(): null);
         comboHigherRank.addListener(SWT.Selection, this);
 
-
         Label lowerRankLabel = new Label(control, SWT.NULL);
         lowerRankLabel.setText(Messages.DistributionAggregationWizardPage_LOWEST_RANK);
         comboLowerRank = new Combo(control, SWT.BORDER | SWT.READ_ONLY);
         updateLowerRankCombo();
+        setConfigValueToRankCombo(comboLowerRank, ddsDTO.getMinRank() != null? ddsDTO.getMinRank().getUuid(): null);
         comboLowerRank.addListener(SWT.Selection, this);
 
+        //aggregation mode viewer
         Label aggregationModeLabel = new Label(control, SWT.NULL);
         aggregationModeLabel.setText(Messages.DistributionAggregationWizardPage_AGGREGATION_MODE);
         aggregationModeLabel.setToolTipText(Messages.DistributionAggregationWizardPage_TOOLTIP_AGGR_MODE);
+
         aggregationModeViewer = CheckboxTableViewer.newCheckList(control, SWT.BORDER | SWT.SINGLE);
         aggregationModeViewer.setContentProvider(new ArrayContentProvider());
         aggregationModeViewer.setLabelProvider(new LabelProvider(){
             @Override
             public String getText(Object element){
                 if (element instanceof AggregationMode){
-                   return ((AggregationMode)element).getMessage();
+                       if (((AggregationMode)element).getKey().equals("INTAX")){
+                               return Messages.StructuredDescriptionAggregationWizardPage_SOURCEMODE_WITHIN_TAXON;
+                       }else if (((AggregationMode)element).getKey().equals("TOPAR")){
+                               return Messages.StructuredDescriptionAggregationWizardPage_SOURCEMODE_CHILD_PARENT;
+                       }
+                   return ((AggregationMode)element).getLabel();
                 }
                 return null;
             }
-
         });
-        List<AggregationMode> aggregationModeList = new ArrayList<>();
-        for (AggregationMode mode: AggregationMode.values()){
-            aggregationModeList.add(mode);
-        }
-
+        List<AggregationMode> aggregationModeList = AggregationMode.list(AggregationType.StructuredDescription);
         aggregationModeViewer.setInput(aggregationModeList);
-
+        aggregationModeViewer.setCheckedElements(configurator.getAggregationModes().toArray());
         aggregationModeViewer.addCheckStateListener(new ICheckStateListener(){
             @Override
             public void checkStateChanged(    CheckStateChangedEvent event){
@@ -242,55 +268,63 @@ public class StructuredDescriptionAggregationConfigurationWizardPage extends Agg
 
                 comboSourceModeChildParent.setEnabled(toParentChecked);
                 comboSourceModeWithinTaxon.setEnabled(withinChecked);
-//                AggregationSourceMode areaMode = (AggregationSourceMode)comboSourceModeSubAreaSuperArea.getData(comboSourceModeSubAreaSuperArea.getText());
-                AggregationSourceMode taxonMode = (AggregationSourceMode)comboSourceModeChildParent.getData(comboSourceModeChildParent.getText());
-//                getSourceTypeViewer().getTable().setEnabled(((areachecked && (areaMode.equals(AggregationSourceMode.ALL) || areaMode.equals(AggregationSourceMode.ALL_SAMEVALUE) ) )|| toParentChecked && (taxonMode.equals(AggregationSourceMode.ALL) || taxonMode.equals(AggregationSourceMode.ALL_SAMEVALUE) )) );
                 getWizard().getContainer().updateButtons();
-              }
+            }
         });
 
+        //source mode within taxon
         Label sourceModeLabelWithin = new Label(control, SWT.NULL);
-
-        sourceModeLabelWithin.setText(Messages.DistributionAggregationWizardPage_SOURCEMODE_WITHIN_TAXON);
+        sourceModeLabelWithin.setText(Messages.StructuredDescriptionAggregationWizardPage_SOURCEMODE_WITHIN_TAXON);
         sourceModeLabelWithin.setToolTipText(Messages.DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_WITHIN_TAXON);
         comboSourceModeWithinTaxon = new Combo(control,  SWT.BORDER| SWT.READ_ONLY);
         comboSourceModeWithinTaxon.setText(Messages.DistributionAggregationWizardPage_AGGREGATION_MODE);
 
+        int index = 0;
+        int defaultSelectionIndex = 0;
         for (AggregationSourceMode mode :AggregationSourceMode.list(AggregationMode.WithinTaxon, AggregationType.StructuredDescription) ){
-            comboSourceModeWithinTaxon.add(mode.getMessage());
-            comboSourceModeWithinTaxon.setData(mode.getMessage(), mode);
-
+            comboSourceModeWithinTaxon.add(mode.getLabel());
+            comboSourceModeWithinTaxon.setData(mode.getLabel(), mode);
+            if (configurator.getWithinTaxonSourceMode().equals(mode)){
+                defaultSelectionIndex = index;
+            }
+            index++;
         }
 
-
-        comboSourceModeWithinTaxon.setEnabled(false);
-        comboSourceModeWithinTaxon.select(0);
+        comboSourceModeWithinTaxon.setEnabled(configurator.getAggregationModes().contains(AggregationMode.WithinTaxon));
+        comboSourceModeWithinTaxon.select(defaultSelectionIndex);
         comboSourceModeWithinTaxon.addListener(SWT.Selection, this);
-        Label sourceModeLabel = new Label(control, SWT.NULL);
 
-        sourceModeLabel.setText(Messages.DistributionAggregationWizardPage_SOURCEMODE_CHILD_PARENT);
-        sourceModeLabel.setToolTipText(Messages.DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_CHILD_PARENT);
+        //source mode child parent
+        Label sourceModeChildParentLabel = new Label(control, SWT.NULL);
+        sourceModeChildParentLabel.setText(Messages.StructuredDescriptionAggregationWizardPage_SOURCEMODE_CHILD_PARENT);
+        sourceModeChildParentLabel.setToolTipText(Messages.DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_CHILD_PARENT);
         comboSourceModeChildParent = new Combo(control,  SWT.BORDER| SWT.READ_ONLY);
         comboSourceModeChildParent.setText(Messages.DistributionAggregationWizardPage_AGGREGATION_MODE);
 
+        index = 0;
+        defaultSelectionIndex = 0;
         for (AggregationSourceMode mode :AggregationSourceMode.list(AggregationMode.ToParent, AggregationType.StructuredDescription) ){
-            comboSourceModeChildParent.add(mode.getMessage());
-            comboSourceModeChildParent.setData(mode.getMessage(), mode);
-
+            comboSourceModeChildParent.add(mode.getLabel());
+            comboSourceModeChildParent.setData(mode.getLabel(), mode);
+            if (configurator.getToParentSourceMode().equals(mode)){
+                defaultSelectionIndex = index;
+            }
+            index++;
         }
 
-
-        comboSourceModeChildParent.setEnabled(false);
-        comboSourceModeChildParent.select(0);
+        comboSourceModeChildParent.setEnabled(configurator.getAggregationModes().contains(AggregationMode.ToParent));
+        comboSourceModeChildParent.select(defaultSelectionIndex);
         comboSourceModeChildParent.addListener(SWT.Selection, this);
         GridLayoutFactory.fillDefaults();
+
+        /*source type
+        //TODO: distinguish within taxon and parent child source types (#9805)
         Label sourceTypeLabel = new Label(control, SWT.NULL);
         sourceTypeLabel.setText(Messages.DistributionAggregationWizardPage_SOURCE_TYPE);
         sourceTypeLabel.setToolTipText(Messages.DistributionAggregationWizardPage_TOOLTIP_SOURCE_TYPE);
         sourceTypeViewer = CheckboxTableViewer.newCheckList(control, SWT.BORDER | SWT.SINGLE);
         sourceTypeViewer.setContentProvider(new ArrayContentProvider());
 
-
         sourceTypeViewer.addCheckStateListener(new ICheckStateListener(){
             @Override
             public void checkStateChanged(    CheckStateChangedEvent event){
@@ -302,13 +336,13 @@ public class StructuredDescriptionAggregationConfigurationWizardPage extends Agg
         List<String> typeStrings = new ArrayList<>();
         OriginalSourceType[] typeArray = OriginalSourceType.values();
         Arrays.sort(typeArray, new OriginalSourceTypeComparator(null));
-        Arrays.stream(typeArray).forEach(p ->typeMap.put(p.getMessage(), p));
-        Arrays.stream(typeArray).forEach(p ->typeStrings.add(p.getMessage()));
-        typeStrings.remove(OriginalSourceType.NomenclaturalReference.getMessage());
+        Arrays.stream(typeArray).forEach(p ->typeMap.put(p.getLabel(), p));
+        Arrays.stream(typeArray).forEach(p ->typeStrings.add(p.getLabel()));
         sourceTypeViewer.setInput(typeStrings);
-        sourceTypeViewer.setChecked(OriginalSourceType.PrimaryMediaSource.getMessage(), true);
-        sourceTypeViewer.setChecked(OriginalSourceType.PrimaryTaxonomicSource.getMessage(), true);
+        sourceTypeViewer.setChecked(OriginalSourceType.PrimaryMediaSource.getLabel(), true);
+        sourceTypeViewer.setChecked(OriginalSourceType.PrimaryTaxonomicSource.getLabel(), true);
         sourceTypeViewer.getTable().setEnabled(false);
+        */
         setControl(control);
     }
 
@@ -332,13 +366,12 @@ public class StructuredDescriptionAggregationConfigurationWizardPage extends Agg
         }
 
         if (event.widget.equals(this.comboSourceModeChildParent) || event.widget.equals(this.comboSourceModeWithinTaxon)){
-            if (getSourceModeChildParent().equals(AggregationSourceMode.NONE) && getSourceModeWithinTaxon().equals(AggregationSourceMode.NONE)){
-                sourceTypeViewer.getTable().setEnabled(false);
-            }else {
-                sourceTypeViewer.getTable().setEnabled(true);
-            }
+//            if (getSourceModeChildParent().equals(AggregationSourceMode.NONE) && getSourceModeWithinTaxon().equals(AggregationSourceMode.NONE)){
+//                sourceTypeViewer.getTable().setEnabled(false);
+//            }else {
+//                sourceTypeViewer.getTable().setEnabled(true);
+//            }
         }
-
     }
 
     public List<TaxonNode> getSelectedTaxonNodes(){
@@ -352,5 +385,23 @@ public class StructuredDescriptionAggregationConfigurationWizardPage extends Agg
         return result;
     }
 
-
-}
+    protected void setConfigValueToRankCombo(Combo rankCombo, UUID rankUuid) {
+               int index = 0;
+
+       if (rankUuid == null){
+                       rankCombo.select(index);
+       }else{
+               Rank rank = null;
+               for (String item: rankCombo.getItems()){
+                       if (rankCombo.getData(item) instanceof Rank){
+                               rank = (Rank) rankCombo.getData(item);
+                               if (rank.getUuid().equals(rankUuid)){
+                                       rankCombo.select(index);
+                                       break;
+                               }
+                       }
+                       index++;
+               }
+       }
+       }
+}
\ No newline at end of file
index cc1b077a0966f321f3655fef36063c6fa0ae573f..fdf163edeaa86a56d79ad04a1e02a6ae827fef63 100644 (file)
@@ -9,13 +9,11 @@ import org.eclipse.swt.events.DisposeEvent;
 import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.layout.RowLayout;
 import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.forms.widgets.FormToolkit;
 
 import eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator;
-import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
 /**
  * @author kluther
  * @date Nov 2, 2015
@@ -32,21 +30,22 @@ public class DeleteNameConfiguratorComposite extends Composite {
     private final Button btnIgnoreHasBasionym;
     private final Button btnIgnoreHasReplacedSynonym;
     private final Button btnRemoveAllTypeDesignations;
-  
+    private final Button btnIgnoreIsOriginalSpelling;
+
     /*
      * private boolean removeAllNameRelationships = false;
-       
+
        private boolean ignoreIsBasionymFor = false;
-       
+
        private boolean ignoreIsReplacedSynonymFor = false;
 
        private boolean ignoreHasBasionym = true;
-       
+
        private boolean ignoreHasReplacedSynonym = true;
-       
+
        private boolean removeAllNameTypeDesignations = true;
      */
-    
+
 
     /**
      * Create the composite.
@@ -69,27 +68,31 @@ public class DeleteNameConfiguratorComposite extends Composite {
         btnRemoveAllNameRelationships = new Button(this, SWT.CHECK);
         btnRemoveAllNameRelationships.setText("Remove all Name Relationships");
         btnRemoveAllNameRelationships.setSelection(true);
-        
+
         btnIgnoreIsBasionym = new Button(this, SWT.CHECK);
         btnIgnoreIsBasionym.setText("Ignore is Basionym");
         btnIgnoreIsBasionym.setSelection(true);
-        
+
+        btnIgnoreIsOriginalSpelling= new Button(this, SWT.CHECK);
+        btnIgnoreIsOriginalSpelling.setText("Ignore is Original Spelling");
+        btnIgnoreIsOriginalSpelling.setSelection(false);
+
         btnIgnoreIsReplacedSynonymFor = new Button(this, SWT.CHECK);
         btnIgnoreIsReplacedSynonymFor.setText("Ignore is Replaced Synonym");
         btnIgnoreIsReplacedSynonymFor.setSelection(true);
-        
+
         btnIgnoreHasBasionym = new Button(this, SWT.CHECK);
         btnIgnoreHasBasionym.setText("Ignore has Basionym");
         btnIgnoreHasBasionym.setSelection(true);
-        
+
         btnIgnoreHasReplacedSynonym = new Button(this, SWT.CHECK);
         btnIgnoreHasReplacedSynonym.setText("Ignore has Replaced Synonym");
         btnIgnoreHasReplacedSynonym.setSelection(true);
-        
+
         btnRemoveAllTypeDesignations = new Button(this, SWT.CHECK);
         btnRemoveAllTypeDesignations.setText("Remove all Type Designations");
         btnRemoveAllTypeDesignations.setSelection(true);
-        
+
         m_bindingContext = initDataBindings();
 
     }
@@ -100,19 +103,23 @@ public class DeleteNameConfiguratorComposite extends Composite {
         IObservableValue observeSelectionBtnRemoveAllNameRelationshipsWidget = WidgetProperties.selection().observe(btnRemoveAllNameRelationships);
         IObservableValue removeAllNameRelationshipsConfiguratorObserveValue = PojoProperties.value("removeAllNameRelationships").observe(configurator);
         bindingContext.bindValue(observeSelectionBtnRemoveAllNameRelationshipsWidget, removeAllNameRelationshipsConfiguratorObserveValue, null, null);
-        
+
         IObservableValue observeSelectionBtnbtnIgnoreIsBasionymObserveWidget = WidgetProperties.selection().observe(btnIgnoreIsBasionym);
         IObservableValue ignoreIsBasionymConfiguratorObserveValue = PojoProperties.value("ignoreIsBasionymFor").observe(configurator);
         bindingContext.bindValue(observeSelectionBtnbtnIgnoreIsBasionymObserveWidget, ignoreIsBasionymConfiguratorObserveValue, null, null);
-      
+
+        IObservableValue observeSelectionBtnbtnIgnoreIsOrigialSpellingObserveWidget = WidgetProperties.selection().observe(btnIgnoreIsOriginalSpelling);
+        IObservableValue ignoreIsOriginalSpellingConfiguratorObserveValue = PojoProperties.value("ignoreIsOriginalSpellingFor").observe(configurator);
+        bindingContext.bindValue(observeSelectionBtnbtnIgnoreIsOrigialSpellingObserveWidget, ignoreIsOriginalSpellingConfiguratorObserveValue, null, null);
+
         IObservableValue observeSelectionBtnIgnoreIsReplacedSynonymForWidget = WidgetProperties.selection().observe(btnIgnoreIsReplacedSynonymFor);
         IObservableValue ignoreIsReplacedSynonymForConfiguratorObserveValue = PojoProperties.value("ignoreIsReplacedSynonymFor").observe(configurator);
         bindingContext.bindValue(observeSelectionBtnIgnoreIsReplacedSynonymForWidget, ignoreIsReplacedSynonymForConfiguratorObserveValue, null, null);
-        
+
         IObservableValue observeSelectionBtnIgnoreHasBasionymWidget = WidgetProperties.selection().observe(btnIgnoreHasBasionym);
         IObservableValue ignoreHasBasionymConfiguratorObserveValue = PojoProperties.value("ignoreHasBasionym").observe(configurator);
         bindingContext.bindValue(observeSelectionBtnIgnoreHasBasionymWidget, ignoreHasBasionymConfiguratorObserveValue, null, null);
-        
+
         IObservableValue observeSelectionBtnIgnoreHasReplacedSynonymWidget = WidgetProperties.selection().observe(btnIgnoreHasReplacedSynonym);
         IObservableValue ignoreHasReplacedSynonymConfiguratorObserveValue = PojoProperties.value("ignoreHasReplacedSynonym").observe(configurator);
         bindingContext.bindValue(observeSelectionBtnIgnoreHasReplacedSynonymWidget, ignoreHasReplacedSynonymConfiguratorObserveValue, null, null);
index fdd8a154e6d5cdffb929757fcab01d16b4fdd721..010a7f5d738a7964f6241383608aa6ca2f749730 100644 (file)
@@ -53,6 +53,7 @@ public class DeleteTaxonBaseConfiguratorComposite extends Composite implements S
     //name related
     protected Button btnRemoveAllNameRelationships;
     protected Button btnIgnoreIsBasionym;
+    protected Button btnIgnoreIsOriginalSpelling;
     protected Button btnIgnoreIsReplacedSynonymFor;
     protected Button btnIgnoreHasBasionym;
     protected Button btnIgnoreHasReplacedSynonym;
@@ -101,6 +102,7 @@ public class DeleteTaxonBaseConfiguratorComposite extends Composite implements S
                    composite.setEnabled(data.exclude);
                    btnRemoveAllNameRelationships.setEnabled(data.exclude);
                    btnIgnoreIsBasionym.setEnabled(data.exclude);
+                   btnIgnoreIsOriginalSpelling.setEnabled(data.exclude);
                    btnIgnoreIsReplacedSynonymFor.setEnabled(data.exclude);
                    btnIgnoreHasBasionym.setEnabled(data.exclude);
                    btnIgnoreHasReplacedSynonym.setEnabled(data.exclude);
@@ -160,6 +162,7 @@ public class DeleteTaxonBaseConfiguratorComposite extends Composite implements S
                         btnIgnoreHasBasionym.setText("it has basionym(s)");
                         btnIgnoreHasBasionym.setSelection(true);
 
+
                         btnIgnoreIsReplacedSynonymFor = new Button(composite, SWT.CHECK);
                         GridData gd_btnIgnoreIsReplacedSynonymFor = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
                         gd_btnIgnoreIsReplacedSynonymFor.horizontalIndent = 10;
@@ -174,6 +177,14 @@ public class DeleteTaxonBaseConfiguratorComposite extends Composite implements S
         btnIgnoreIsBasionym.setText("it is a basionym");
         btnIgnoreIsBasionym.setSelection(true);
 
+        btnIgnoreIsOriginalSpelling = new Button(composite, SWT.CHECK);
+        GridData gd_btnIgnoreIsOriginalSpelling = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+        gd_btnIgnoreIsOriginalSpelling.horizontalIndent = 10;
+        btnIgnoreIsOriginalSpelling.setLayoutData(gd_btnIgnoreIsOriginalSpelling);
+        btnIgnoreIsOriginalSpelling.setText("it is original spelling");
+        btnIgnoreIsOriginalSpelling.setSelection(true);
+
+
 
 
        // createClassificationSelectionCombo(this);
@@ -198,6 +209,10 @@ public class DeleteTaxonBaseConfiguratorComposite extends Composite implements S
         IObservableValue<?> deleteIgnoreIsBasionymConfiguratorObserveValue = PojoProperties.value("ignoreIsBasionymFor").observe(nameConfig);
         m_bindingContext.bindValue(observeSelectionbtnIgnoreIsBasionymObserveWidget, deleteIgnoreIsBasionymConfiguratorObserveValue, null, null);
 
+        IObservableValue<?> observeSelectionbtnIgnoreIsOriginalSpellingObserveWidget = WidgetProperties.selection().observe(btnIgnoreIsOriginalSpelling);
+        IObservableValue<?> deleteIgnoreIsOriginalSpellingConfiguratorObserveValue = PojoProperties.value("ignoreIsOriginalSpellingFor").observe(nameConfig);
+        m_bindingContext.bindValue(observeSelectionbtnIgnoreIsOriginalSpellingObserveWidget, deleteIgnoreIsOriginalSpellingConfiguratorObserveValue, null, null);
+
         IObservableValue<?> observeSelectionbtnIgnoreIsReplacedSynonymForObserveWidget = WidgetProperties.selection().observe(btnIgnoreIsReplacedSynonymFor);
         IObservableValue<?> deleteIgnoreIsReplacedSynonymForConfiguratorObserveValue = PojoProperties.value("ignoreIsReplacedSynonymFor").observe(nameConfig);
         m_bindingContext.bindValue(observeSelectionbtnIgnoreIsReplacedSynonymForObserveWidget, deleteIgnoreIsReplacedSynonymForConfiguratorObserveValue, null, null);
index 93b0b24f31187b8bb8aa48feaa78fbdfefc022e5..1d36b992b34feb2843724d65bc557b4ea2229310 100644 (file)
@@ -30,7 +30,7 @@ import eu.etaxonomy.cdm.api.service.config.TaxonNodeDeletionConfigurator;
 public class DeleteTaxonConfiguratorComposite extends DeleteTaxonBaseConfiguratorComposite {
 
     private Button btnDeleteSynonyms;
-    private Button btnDeleteMisappliedNamesAndInvalidDesignations;
+    private Button btnDeleteMisappliedNames;
     private Button btnTaxonRelationships;
     private Button btnConceptRelationships;
 
@@ -58,7 +58,7 @@ public class DeleteTaxonConfiguratorComposite extends DeleteTaxonBaseConfigurato
                 data.exclude = b.getSelection();
 
                 btnDeleteSynonyms.setEnabled(data.exclude);
-                btnDeleteMisappliedNamesAndInvalidDesignations.setEnabled(data.exclude);
+                btnDeleteMisappliedNames.setEnabled(data.exclude);
                 btnTaxonRelationships.setEnabled(data.exclude);
                 btnConceptRelationships.setEnabled(data.exclude);
                 btnDeleteTaxonName.setEnabled(data.exclude);
@@ -79,12 +79,12 @@ public class DeleteTaxonConfiguratorComposite extends DeleteTaxonBaseConfigurato
         btnDeleteSynonyms.setText("Delete synonyms if possible");
         btnDeleteSynonyms.setSelection(true);
 
-        btnDeleteMisappliedNamesAndInvalidDesignations = new Button(this, SWT.CHECK);
-        GridData gd_btnDeleteMisappliedNamesAndInvalidDesignations = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
-        gd_btnDeleteMisappliedNamesAndInvalidDesignations.horizontalIndent = 10;
-        btnDeleteMisappliedNamesAndInvalidDesignations.setLayoutData(gd_btnDeleteMisappliedNamesAndInvalidDesignations);
-        btnDeleteMisappliedNamesAndInvalidDesignations.setText("Delete misapplied names and invalid designations if possible");
-        btnDeleteMisappliedNamesAndInvalidDesignations.setSelection(true);
+        btnDeleteMisappliedNames = new Button(this, SWT.CHECK);
+        GridData gd_btnDeleteMisappliedNames = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+        gd_btnDeleteMisappliedNames.horizontalIndent = 10;
+        btnDeleteMisappliedNames.setLayoutData(gd_btnDeleteMisappliedNames);
+        btnDeleteMisappliedNames.setText("Delete misapplied names if possible");
+        btnDeleteMisappliedNames.setSelection(true);
 
 
         btnTaxonRelationships = new Button(this, SWT.CHECK);
@@ -121,9 +121,9 @@ public class DeleteTaxonConfiguratorComposite extends DeleteTaxonBaseConfigurato
         IObservableValue deleteSynonymsConfiguratorObserveValue = PojoProperties.value("deleteSynonymsIfPossible").observe(configurator);
         m_bindingContext.bindValue(observeSelectionBtnDeleteSynonymsObserveWidget, deleteSynonymsConfiguratorObserveValue, null, null);
 
-        IObservableValue observeSelectionbtnDeleteMisappliedNamesAndInvalidDesignationsObserveWidget = WidgetProperties.selection().observe(btnDeleteMisappliedNamesAndInvalidDesignations);
-        IObservableValue deleteMisappliedNamesAndInvalidDesignationsConfiguratorObserveValue = PojoProperties.value("deleteMisappliedNamesAndInvalidDesignationsIfPossible").observe(configurator);
-        m_bindingContext.bindValue(observeSelectionbtnDeleteMisappliedNamesAndInvalidDesignationsObserveWidget, deleteMisappliedNamesAndInvalidDesignationsConfiguratorObserveValue, null, null);
+        IObservableValue observeSelectionbtnDeleteMisappliedNamesObserveWidget = WidgetProperties.selection().observe(btnDeleteMisappliedNames);
+        IObservableValue deleteMisappliedNamesConfiguratorObserveValue = PojoProperties.value("deleteMisappliedNames").observe(configurator);
+        m_bindingContext.bindValue(observeSelectionbtnDeleteMisappliedNamesObserveWidget, deleteMisappliedNamesConfiguratorObserveValue, null, null);
 
         IObservableValue observeSelectionbtnTaxonRelationshipsObserveWidget = WidgetProperties.selection().observe(btnTaxonRelationships);
         IObservableValue deleteTaxonRelationshipsConfiguratorObserveValue = PojoProperties.value("deleteTaxonRelationships").observe(configurator);
index 0a80946d2b579e6fa70ad4f2c4f1a25875a8afc8..8b7ce879dedea7167e2b0ef67129ef924a2515c3 100755 (executable)
@@ -12,8 +12,8 @@ import java.util.ArrayList;
 import java.util.Collection;
 
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
-import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoContentProvider;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -24,9 +24,9 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class NamedAreaTermDtoContentProvider extends TermDtoContentProvider {
 
     @Override
-    public Collection<? extends TermDto> getChildTerms(TermVocabularyDto voc) {
+    public Collection<? extends TermDto> getChildTerms(TermCollectionDto voc) {
         Collection<TermDto> children = getVocabularyToChildTermMap().get(voc);
-        if(children==null){
+        if (children == null) {
             children = new ArrayList<>(CdmStore.getService(IVocabularyService.class).getCompleteTermHierarchy(voc));
             getVocabularyToChildTermMap().put(voc, children);
         }
index 1ff746d61fe7c097622ad795d195bdf8d6e0688a..ebc6984b5bba9fc88b5a9e0b7a3898e033c143a5 100644 (file)
@@ -1,5 +1,11 @@
-//$Id$
-
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
 import java.lang.reflect.Field;
@@ -29,8 +35,6 @@ import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.IMemento;
 import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.term.IEnumTerm;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -42,18 +46,13 @@ import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 *
 * @author c.mathew
 * @created 18.07.2013
-* @version 1.0
 */
 public abstract class AbstractFilteredCdmEnumSelectionDialog<T extends IEnumTerm> extends
-               FilteredItemsSelectionDialog implements IConversationEnabled {
-
-       private ConversationHolder conversation;
+               FilteredItemsSelectionDialog {
 
        protected List<T> model;
        private String settings;
 
-
-
        /**
         * <p>Constructor for AbstractFilteredCdmResourceSelectionDialog.</p>
         *
@@ -66,7 +65,6 @@ public abstract class AbstractFilteredCdmEnumSelectionDialog<T extends IEnumTerm
         * @param <T> a T object.
         */
        protected AbstractFilteredCdmEnumSelectionDialog(Shell shell,
-                       ConversationHolder conversation,
                        String title,
                        boolean multi,
                        String settings,
@@ -75,9 +73,6 @@ public abstract class AbstractFilteredCdmEnumSelectionDialog<T extends IEnumTerm
                setTitle(title);
                setMessage("Use * for wildcard, or ? to see all entries");
                this.settings = settings;
-
-               this.conversation = conversation;
-
                init();
 
                initModel();
@@ -146,11 +141,9 @@ public abstract class AbstractFilteredCdmEnumSelectionDialog<T extends IEnumTerm
         * @return a {@link java.lang.String} object.
         */
        protected String getTitle(T cdmEnum) {
-               return cdmEnum.getMessage();
+               return cdmEnum.getLabel();
        }
 
-
-       /** {@inheritDoc} */
        @Override
        public void refresh() {
                initModel();
@@ -162,10 +155,6 @@ public abstract class AbstractFilteredCdmEnumSelectionDialog<T extends IEnumTerm
         */
        abstract protected void initModel();
 
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createFilter()
-        */
-       /** {@inheritDoc} */
        @Override
        protected ItemsFilter createFilter() {
                return new ItemsFilter() {
@@ -187,7 +176,7 @@ public abstract class AbstractFilteredCdmEnumSelectionDialog<T extends IEnumTerm
                        public boolean matchItem(Object item) {
                                String text = null;
                                if(item instanceof IEnumTerm){
-                                       text = ((IEnumTerm) item).getMessage();
+                                       text = ((IEnumTerm) item).getLabel();
                                }else if(item instanceof String){
                                        text = (String) item;
                                }
@@ -197,7 +186,6 @@ public abstract class AbstractFilteredCdmEnumSelectionDialog<T extends IEnumTerm
                };
        }
 
-
        /**
         * Set the filter input to the Agent's title cache
         *
@@ -231,10 +219,6 @@ public abstract class AbstractFilteredCdmEnumSelectionDialog<T extends IEnumTerm
                ((Text) getPatternControl()).setText(pattern);
        }
 
-       /* (non-Javadoc)
-       * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#fillContentProvider(org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.AbstractContentProvider, org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.ItemsFilter, org.eclipse.core.runtime.IProgressMonitor)
-       */
-       /** {@inheritDoc} */
        @Override
        protected void fillContentProvider(AbstractContentProvider contentProvider,
                ItemsFilter itemsFilter, IProgressMonitor progressMonitor)
@@ -258,10 +242,6 @@ public abstract class AbstractFilteredCdmEnumSelectionDialog<T extends IEnumTerm
                }
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getDialogSettings()
-        */
-       /** {@inheritDoc} */
        @Override
        protected IDialogSettings getDialogSettings() {
                IDialogSettings settings = TaxeditorStorePlugin.getDefault().getDialogSettings().getSection(getSettings());
@@ -272,19 +252,11 @@ public abstract class AbstractFilteredCdmEnumSelectionDialog<T extends IEnumTerm
                return settings;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getElementName(java.lang.Object)
-        */
-       /** {@inheritDoc} */
        @Override
        public String getElementName(Object item) {
-               return ((IEnumTerm) item).getMessage();
+               return ((IEnumTerm) item).getLabel();
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#getItemsComparator()
-        */
-       /** {@inheritDoc} */
        @Override
        protected Comparator getItemsComparator() {
                return new Comparator<IEnumTerm>() {
@@ -296,7 +268,7 @@ public abstract class AbstractFilteredCdmEnumSelectionDialog<T extends IEnumTerm
                                }
                            Collator collator = Collator.getInstance();
 
-                               int result = collator.compare(entity1.getMessage(), entity2.getMessage());
+                               int result = collator.compare(entity1.getLabel(), entity2.getLabel());
                                if (result == 0){
                                    return entity1.getUuid().compareTo(entity2.getUuid());
                                }
@@ -380,14 +352,10 @@ public abstract class AbstractFilteredCdmEnumSelectionDialog<T extends IEnumTerm
                        if (element == null) {
                                return null;
                        }
-                       return ((IEnumTerm) element).getMessage();
+                       return ((IEnumTerm) element).getLabel();
                }
        };
 
-       /* (non-Javadoc)
-       * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createExtendedContentArea(org.eclipse.swt.widgets.Composite)
-       */
-       /** {@inheritDoc} */
        @Override
        protected Control createExtendedContentArea(Composite parent) {
                if(getNewWizardLinkText() != null){
@@ -402,13 +370,10 @@ public abstract class AbstractFilteredCdmEnumSelectionDialog<T extends IEnumTerm
        protected SelectionListener getNewWizardLinkSelectionListener(){
                return new SelectionAdapter() {
 
-                       /* (non-Javadoc)
-                        * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-                        */
                        @Override
                        public void widgetSelected(SelectionEvent e) {
 
-                               AbstractNewEntityWizard wizard = getNewEntityWizard(e.text);
+                               AbstractNewEntityWizard<T> wizard = getNewEntityWizard(e.text);
                                wizard.init(null, null);
                                WizardDialog dialog = new WizardDialog(getShell(), wizard);
                                int status = dialog.open();
@@ -418,25 +383,11 @@ public abstract class AbstractFilteredCdmEnumSelectionDialog<T extends IEnumTerm
                                        T entity = (T) wizard.getEntity();
 
                                        refresh();
-                                       setPattern(entity);
-                                       getConversationHolder().bind();
+                                       setPattern(entity);                                     
                                }
                        }
                };
        }
 
-       /**
-        * <p>getConversationHolder</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       @Override
-    public ConversationHolder getConversationHolder() {
-               return conversation;
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void update(CdmDataChangeMap changeEvents) {}
-
-}
+       
+}
\ No newline at end of file
index fca1b81d8f9671713d32b5a13c3efa9aaf8eb2fc..2bbbb4dd8611c0459c2bfd83ef217aae869decb0 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.dialog.selection;
 
 import java.text.Collator;
@@ -19,7 +18,7 @@ import java.util.List;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.jobs.Job;
@@ -43,12 +42,12 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
 
-import eu.etaxonomy.cdm.api.service.dto.EntityDTOBase;
 import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.persistence.dto.EntityDTOBase;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -57,12 +56,11 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 
 /**
- * <p>Abstract AbstractFilteredCdmResourceSelectionDialog class.</p>
- *
  * @author n.hoffmann
  * @created 04.06.2009
  */
-public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmBase> extends SearchDialog<T> {
+public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmBase>
+        extends SearchDialog<T> {
 
     protected List<UuidAndTitleCache<T>> model;
        private final Set<T> transientCdmObjects = new HashSet<>();
@@ -73,7 +71,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
 
        protected Job searchJob;
 
-       protected AbstractFilteredCdmResourceSelectionDialog(Shell shell, //ConversationHolder conversation,
+       protected AbstractFilteredCdmResourceSelectionDialog(Shell shell,
                String title, boolean multi, String settings, Set<T> objectsToBeFiltered) {
            super(shell, title);
 
@@ -83,20 +81,25 @@ 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());
-
        }
 
-       protected AbstractFilteredCdmResourceSelectionDialog(Shell shell, //ConversationHolder conversation,
+       protected AbstractFilteredCdmResourceSelectionDialog(Shell shell,
                String title, boolean multi, String settings) {
         this(shell, title, multi, settings, (Set<T>)null);
        }
 
-       protected AbstractFilteredCdmResourceSelectionDialog(Shell shell, //ConversationHolder conversation,
+       protected AbstractFilteredCdmResourceSelectionDialog(Shell shell,
                String title, boolean multi, String settings, T objectToBeFiltered) {
            this(shell, title, multi, settings, objectToBeFiltered!=null?Collections.singleton(objectToBeFiltered):null);
        }
@@ -139,13 +142,10 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
        }
 
        /**
-     * <p>getSelectionFromDialog</p>
-     *
-     * @param dialog a {@link eu.etaxonomy.taxeditor.ui.dialog.selection.AbstractFilteredCdmResourceSelectionDialog} object.
-     * @param <TYPE> a TYPE object.
-     * @return a TYPE object.
+     * getSelectionFromDialog
      */
-    protected static UuidAndTitleCache getUuidAndTitleCacheSelectionFromDialog(AbstractFilteredCdmResourceSelectionDialog dialog) {
+    protected static <S extends ICdmBase> UuidAndTitleCache<S> getUuidAndTitleCacheSelectionFromDialog(
+            AbstractFilteredCdmResourceSelectionDialog<S> dialog) {
         if (dialog == null){
             return null;
         }
@@ -155,7 +155,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
             return null;
         }
 
-        UuidAndTitleCache uuid = dialog.getSelectedUuidAndTitleCache();
+        UuidAndTitleCache<S> uuid = dialog.getSelectedUuidAndTitleCache();
 
         return uuid;
     }
@@ -163,9 +163,6 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
        /**
         * Check if object was created during the life of this dialog. If not,
         * retrieve it from the CdmStore.
-        *
-        * @param cdmUuid a {@link java.util.UUID} object.
-        * @return a T object.
         */
        protected T getCdmObjectByUuid(UUID cdmUuid) {
                for (T cdmObject : transientCdmObjects) {
@@ -222,6 +219,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
        protected void setPattern(T cdmObject) {
                String pattern = getTitle(cdmObject);
                getSearchField().setText(pattern);
+
        }
 
        @Override
@@ -279,10 +277,6 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                return settings;
        }
 
-       public String getElementName(Object item) {
-               return ((UuidAndTitleCache<T>) item).getTitleCache();
-       }
-
        @Override
     protected Comparator<UuidAndTitleCache<T>> getItemsComparator() {
                return new Comparator<UuidAndTitleCache<T>>() {
@@ -292,21 +286,15 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                                Collator collator = Collator.getInstance();
                                if (entity1 == entity2){
                                    return 0;
-                               }
-
-                               if (entity1 == null && entity2 != null){
+                               }else if (entity1 == null){
                                    return -1;
-                               }
-                               if (entity2 == null && entity1 != null){
+                               }else if (entity2 == null){
                                    return 1;
-                               }
-                               if (entity1.getUuid().equals(entity2.getUuid())){
+                               }else if (entity1.getUuid().equals(entity2.getUuid())){
                     return 0;
-                }
-                               if (entity1.getTitleCache() == null && entity2.getTitleCache() != null){
+                }else if (entity1.getTitleCache() == null && entity2.getTitleCache() != null){
                                    return -1;
-                               }
-                               if (entity2.getTitleCache() == null){
+                               }else if (entity2.getTitleCache() == null){
                                    return 1;
                                }
                                int result = collator.compare(entity1.getTitleCache(), entity2.getTitleCache());
@@ -319,9 +307,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
        }
 
        /**
-        * <p>getSelectedUuidAndTitleCache</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.model.common.UuidAndTitleCache} object.
+        * getSelectedUuidAndTitleCache
         */
        protected UuidAndTitleCache<T> getSelectedUuidAndTitleCache() {
                Object result = getResult();
@@ -454,35 +440,13 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                                        T entity = (T) wizard.getEntity();
                                        refresh();
                                        setPattern(entity);
-
-//                                     if (getConversationHolder() != null){
-//                                         getConversationHolder().bind();
-//                                     }
                                    }
-                                   //FIXME : Need to make sure this is a stable fix (ticket 3822)
-//                                 if (getConversationHolder() != null){
-//                                     getConversationHolder().commit();
-//                                 }
                                }
                            }
                        }
                };
        }
 
-       /**
-        * <p>getConversationHolder</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-//      */
-//     @Override
-//     public ConversationHolder getConversationHolder() {
-//             return conversation;
-//     }
-
-       /** {@inheritDoc} */
-//     @Override
-//     public void update(CdmDataChangeMap changeEvents) {}
-
        /**
         * Don't want to add for example a taxon or synonym to itself
         * so filter the list to remove the taxon in question
@@ -502,6 +466,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
                        model.remove(uuidAndTitleCacheToRemove);
                }
        }
+
        @Override
        void createFilterButton(Composite searchAndFilter){
            //as default no filter button available
@@ -513,7 +478,7 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
         String pattern = null;
         if (control != null){
             pattern = ((Text)control).getText();
-            if (pattern.equals("*") || pattern.equals("?")){
+            if (pattern.equals("*") || pattern.equals("?") || (this instanceof CollectorSelectionDialog && StringUtils.isBlank(pattern) && ((CollectorSelectionDialog)this).collectorTeam != null)){
                 callService(null);
             }else if (StringUtils.isNotBlank(pattern)){
 //                callService(CdmUtils.replaceNonWordCharacters(pattern, "."));
@@ -529,6 +494,6 @@ public abstract class AbstractFilteredCdmResourceSelectionDialog<T extends ICdmB
 //        }
     }
 
-    abstract void callService(String pattern);
+    protected abstract void callService(String pattern);
 
 }
index da9790a9479b3d905c498784f52eaf274c48a1b4..6a6e14719942b0ea0d1d1074ebf16777d81149cf 100644 (file)
@@ -7,57 +7,42 @@ import eu.etaxonomy.cdm.api.service.IIdentifiableEntityService;
 import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
-import eu.etaxonomy.cdm.model.term.DefinedTerm;
+import eu.etaxonomy.cdm.model.term.IdentifierType;
 import eu.etaxonomy.cdm.persistence.query.MatchMode;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
-public abstract class AbstractFilteredIdentifierSelectionDialog<T extends ICdmBase> extends AbstractFilteredCdmResourceSelectionDialog {
+public abstract class AbstractFilteredIdentifierSelectionDialog<T extends ICdmBase>
+        extends AbstractFilteredCdmResourceSelectionDialog<T> {
 
-    DefinedTerm identifierType;
-    MatchMode matchMode;
-    Class<T> type;
+    private IdentifierType identifierType;
+    private MatchMode matchMode;
+    private Class<T> type;
 
-
-       /**
-     * @param shell
-     * @param title
-     * @param multi
-     * @param settings
-     * @param cdmObject
-     */
-    protected AbstractFilteredIdentifierSelectionDialog(Shell shell, String title, boolean multi, String settings,
-            ICdmBase cdmObject) {
+    protected AbstractFilteredIdentifierSelectionDialog(Shell shell, String title, boolean multi,
+            String settings, T cdmObject) {
         super(shell, title, multi, settings, cdmObject);
-
     }
 
-        public class FilteredIdentifiedEntityLabelProvider extends LabelProvider {
-                       @Override
-                       public String getText(Object element) {
-                               if (element == null) {
-                                       return null;
-                               }
-                               IdentifiedEntityDTO identifiedEntity = (IdentifiedEntityDTO) element;
-                               String titleCache = identifiedEntity.getCdmEntity().getTitleCache();
-                               if(PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSelectionDialog.getKey())){
-                                   titleCache += " ["+identifiedEntity.getCdmEntity().getUuid()+"]";
-                               }
-                               // add identifier
-                               titleCache += " ["+identifiedEntity.getIdentifier().getIdentifier()+"]";
-                   return titleCache;
-                       }
-               };
-
+    public class FilteredIdentifiedEntityLabelProvider extends LabelProvider {
                @Override
-        void callService(String pattern){
-
-                   model = CdmStore.getService(IIdentifiableEntityService.class).listByIdentifier(type, pattern, identifierType, matchMode, true, null, limitOfInitialElements);
+               public String getText(Object element) {
+                       if (element == null) {
+                               return null;
+                       }
+                       IdentifiedEntityDTO identifiedEntity = (IdentifiedEntityDTO) element;
+                       String titleCache = identifiedEntity.getCdmEntity().getTitleCache();
+                       if(PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSelectionDialog.getKey())){
+                           titleCache += " ["+identifiedEntity.getCdmEntity().getUuid()+"]";
+                       }
+                       // add identifier
+                       titleCache += " ["+identifiedEntity.getIdentifier().getIdentifier()+"]";
+            return titleCache;
                }
+       }
 
-
-
-
-
-
-}
+       @Override
+       protected void callService(String pattern){
+           model = CdmStore.getService(IIdentifiableEntityService.class).listByIdentifier(type, pattern, identifierType, matchMode, true, null, limitOfInitialElements);
+       }
+}
\ No newline at end of file
index a9cc19997624da805694ab79c77623f899d41130..1d20e6bcc82ec736ab60b65e0119fc15741e1bf6 100644 (file)
@@ -6,58 +6,57 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
+import java.util.List;
 import java.util.UUID;
 
+import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.service.IAgentService;
+import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.INomenclaturalAuthor;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.persistence.dto.EntityDTOBase;
+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.NewPersonWizard;
 import eu.etaxonomy.taxeditor.newWizard.NewTeamWizard;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>FilteredAgentSelectionDialog class.</p>
+ * FilteredAgentSelectionDialog class.
  *
  * @author n.hoffmann
  * @created Sep 10, 2009
- * @version 1.0
  */
-public class AgentSelectionDialog<T extends AgentBase> extends
-               AbstractFilteredCdmResourceSelectionDialog {
+public class AgentSelectionDialog<T extends AgentBase>
+        extends AbstractFilteredCdmResourceSelectionDialog<T> {
 
-       /**
-        *
-        */
        protected static final String PERSON = "New Person";
-       /**
-        *
-        */
        protected static final String TEAM = "New Team";
 
-       protected static boolean selectTeamMember;
+       protected boolean selectTeamMember;
 
        /**
-        * <p>select</p>
+        * select
         *
         * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         * @param entity a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
         * @return a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
         */
-       public static AgentBase select(Shell shell, //ConversationHolder conversation,
-               AgentBase entity, boolean selectTeamMember) {
-               AgentSelectionDialog dialog = new AgentSelectionDialog(shell, //conversation,
+       public static <S extends AgentBase> S select(Shell shell,
+               S entity, boolean selectTeamMember) {
+               AgentSelectionDialog<S> dialog = new AgentSelectionDialog<>(shell,
                                "Choose Agent", false, AgentSelectionDialog.class.getCanonicalName(), entity, selectTeamMember);
-               return (AgentBase) getSelectionFromDialog(dialog);
+               return getSelectionFromDialog(dialog);
        }
 
        /**
@@ -66,48 +65,32 @@ public class AgentSelectionDialog<T extends AgentBase> extends
         * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
         * @param title a {@link java.lang.String} object.
         * @param agent a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         * @param multi a boolean.
         * @param settings a {@link java.lang.String} object.
         */
-       protected AgentSelectionDialog(Shell shell, //ConversationHolder conversation,
-               String title, boolean multi, String settings, AgentBase agent, boolean selectTeamMember) {
-               super(shell, //conversation,
-                       title, multi, settings, agent);
+       protected AgentSelectionDialog(Shell shell,
+               String title, boolean multi, String settings, T agent, boolean selectTeamMember) {
+               super(shell, title, multi, settings, agent);
                this.selectTeamMember = selectTeamMember;
        }
 
-
-       /**
-        * @author p.ciardelli
-        * @created 18.09.2009
-        * @version 1.0
-        */
        public class DetailsLabelProvider extends LabelProvider {
-               /* (non-Javadoc)
-                * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-                */
                @Override
         public String getText(Object element) {
-                   AgentBase agent = (AgentBase) getCdmObjectByUuid(((UuidAndTitleCache<AgentBase>) element).getUuid());
+                   T agent = getCdmObjectByUuid(((UuidAndTitleCache<AgentBase>) element).getUuid());
                        if (agent instanceof INomenclaturalAuthor) {
-                               return "Nomenclatural title: '" + ((INomenclaturalAuthor) agent).getNomenclaturalTitle() + "'";
+                               return "Nomenclatural title: '" + ((INomenclaturalAuthor) agent).getNomenclaturalTitleCache() + "'";
                        } else {
                                return "'" + agent.getTitleCache() + "' is not a nomenclatural author.";
                        }
                }
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog#getPersistentObect(java.util.UUID)
-        */
-       /** {@inheritDoc} */
        @Override
-       protected AgentBase getPersistentObject(UUID cdmUuid) {
-               return CdmStore.getService(IAgentService.class).load(cdmUuid);
+       protected T getPersistentObject(UUID cdmUuid) {
+               return (T)CdmStore.getService(IAgentService.class).load(cdmUuid);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
                if(TEAM.equals(parameter)){
@@ -121,14 +104,12 @@ public class AgentSelectionDialog<T extends AgentBase> extends
                }
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String[] getNewWizardText() {
            String[] result;
-               if (this.selectTeamMember){
+               if (selectTeamMember){
                    result = new String[1];
                    result[0] = PERSON;
-
                }else{
                    result = new String[2];
             result[0] = PERSON;
@@ -137,32 +118,52 @@ public class AgentSelectionDialog<T extends AgentBase> extends
                return result;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#getNewWizardLinkSelectionListener()
-        */
        @Override
        protected SelectionListener getNewWizardButtonSelectionListener() {
                return super.getNewWizardButtonSelectionListener();
        }
 
-//     /** {@inheritDoc} */
-//     @Override
-//     protected void search() {
-//         Control control = getSearchField();
-//        String pattern = null;
-//        if (control != null){
-//            pattern = ((Text)control).getText();
-//        }
-//
-//     }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.dialog.selection.AbstractFilteredCdmResourceSelectionDialog#callService(java.lang.String)
-     */
     @Override
-    void callService(String pattern) {
-        model = CdmStore.getService(IAgentService.class).getUuidAndTitleCache(limitOfInitialElements, pattern);
-    }
+    protected void callService(String pattern) {
+        Class<T> clazz = (Class<T>)AgentBase.class;
+        if (selectTeamMember){
+            clazz = (Class<T>)Person.class;
+        }
 
+        model = (List)CdmStore.getService(IAgentService.class).getTeamOrPersonUuidAndTitleCache(clazz, limitOfInitialElements, pattern);
+    }
+    @Override
+    protected ILabelProvider createListLabelProvider() {
+        return new AgentLabelProvider();
+    }
 
-}
+    public class AgentLabelProvider extends LabelProvider {
+        @Override
+        public String getText(Object element) {
+            if (element == null) {
+                return null;
+            }
+            UuidAndTitleCache<?> uuidAndTitleCache = (UuidAndTitleCache<?>) element;
+            String titleCache = uuidAndTitleCache.getTitleCache()!= null? uuidAndTitleCache.getTitleCache(): "" ;
+            String abbrevTitleCache = uuidAndTitleCache.getAbbrevTitleCache()!= null? uuidAndTitleCache.getAbbrevTitleCache(): "";
+            String collectorTitleCache = null;
+            if (element instanceof TeamOrPersonUuidAndTitleCache){
+                collectorTitleCache = ((TeamOrPersonUuidAndTitleCache)element).getCollectorTitleCache();
+            }
+            if (!titleCache.equals(abbrevTitleCache) && abbrevTitleCache != null){
+                titleCache += " - " + abbrevTitleCache;
+            }
+            if (collectorTitleCache != null && !titleCache.equals(collectorTitleCache) && !abbrevTitleCache.equals(collectorTitleCache)){
+                titleCache += " - " + collectorTitleCache;
+            }
+            if(PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSelectionDialog.getKey())){
+                titleCache += " ["+uuidAndTitleCache.getId()+"]";
+            }
+            if (element instanceof EntityDTOBase){
+                titleCache += "(" + ((IdentifiedEntityDTO)element).getIdentifier().getTypeLabel() +": " + ((IdentifiedEntityDTO)element).getIdentifier().getIdentifier() + ")";
+            }
+
+            return titleCache;
+        }
+    }
+}
\ No newline at end of file
index 1f37bb224879467298f792acd62de8ad8864ac7f..69c372667d0b81ee0a4d458a147dae8b5d9e35f7 100644 (file)
@@ -28,7 +28,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class AmplificationSelectionDialog extends
 AbstractFilteredCdmResourceSelectionDialog<Amplification> {
 
-    public static Amplification select(Shell shell, //ConversationHolder conversation,
+    public static Amplification select(Shell shell,
             Amplification amplification){
         AmplificationSelectionDialog dialog = new AmplificationSelectionDialog(shell, //conversation,
                 "Choose Amplification", false, AmplificationSelectionDialog.class.getCanonicalName(), amplification);
@@ -38,7 +38,7 @@ AbstractFilteredCdmResourceSelectionDialog<Amplification> {
     /**
      * <p>Constructor for FilteredDerivedUnitSelectionDialog.</p>
      */
-    protected AmplificationSelectionDialog(Shell shell, //ConversationHolder conversation,
+    protected AmplificationSelectionDialog(Shell shell,
             String title,
             boolean multi, String settings, Amplification cdmObject) {
         super(shell, //conversation,
index 1efec831407ff23b8f7b09c5b28267961df6766b..f5b4b78ea429017147c910f58ab2de6f25aa11af 100644 (file)
@@ -29,71 +29,34 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class ClassificationSelectionDialog extends
                AbstractFilteredCdmResourceSelectionDialog<Classification> {
 
-       /**
-        * <p>
-        * select
-        * </p>
-        *
-        * @param shell
-        *            a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation
-        *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-        *            object.
-        * @param curentSelection
-        * @return a {@link eu.etaxonomy.cdm.model.taxon.TaxonomicTree} object.
-        */
-       public static Classification select(Shell shell,//ConversationHolder conversation,
+       public static Classification select(Shell shell,
                Classification curentSelection) {
-               ClassificationSelectionDialog dialog = new ClassificationSelectionDialog(shell, //conversation,
+               ClassificationSelectionDialog dialog = new ClassificationSelectionDialog(shell,
                        "Choose a Classification", false, "", null);
                return getSelectionFromDialog(dialog);
        }
 
-       /**
-        * <p>
-        * Constructor for FilteredClassificationSelectionDialog.
-        * </p>
-        *
-        * @param shell
-        *            a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param title
-        *            a {@link java.lang.String} object.
-        * @param multi
-        *            a boolean.
-        * @param settings
-        *            a {@link java.lang.String} object.
-        * @param conversation
-        *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-        *            object.
-        * @param classification
-        *            a {@link eu.etaxonomy.cdm.model.taxon.TaxonomicTree} object.
-        */
-       protected ClassificationSelectionDialog(Shell shell,//ConversationHolder conversation,
+       protected ClassificationSelectionDialog(Shell shell,
                String title, boolean multi,
                        String settings, Classification classification) {
-               super(shell, //conversation,
-                       title, multi, settings, classification);
+               super(shell, title, multi, settings, classification);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected Classification getPersistentObject(UUID cdmUuid) {
                return CdmStore.getService(IClassificationService.class).load(cdmUuid);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected void callService(String pattern) {
            model = CdmStore.getService(IClassificationService.class).getUuidAndTitleCache(limitOfInitialElements, pattern);
     }
 
-       /** {@inheritDoc} */
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
                return null;
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String[] getNewWizardText() {
                return null;
index 59ff7510d0abada47577e4745dc4c47cecafec65..56d795e86cc07c53335b9442610cf87900a5f75a 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.dialog.selection;
 
 import java.util.UUID;
@@ -20,82 +19,43 @@ import eu.etaxonomy.taxeditor.newWizard.NewCollectionWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>FilteredCollectionSelectionDialog class.</p>
- *
  * @author n.hoffmann
  * @created Oct 13, 2010
- * @version 1.0
  */
 public class CollectionSelectionDialog extends
                AbstractFilteredCdmResourceSelectionDialog<Collection> {
 
-       /**
-        * <p>select</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param collection a {@link eu.etaxonomy.cdm.model.occurrence.Collection} object.
-        * @return a {@link eu.etaxonomy.cdm.model.occurrence.Collection} object.
-        */
-       public static Collection select(Shell shell, //ConversationHolder conversation,
+       public static Collection select(Shell shell,
                Collection collection){
                CollectionSelectionDialog dialog = new CollectionSelectionDialog(shell, //conversation,
                                "Choose Collection", false, CollectionSelectionDialog.class.getCanonicalName(), collection);
                return getSelectionFromDialog(dialog);
        }
 
-       /**
-        * <p>Constructor for FilteredCollectionSelectionDialog.</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param title a {@link java.lang.String} object.
-        * @param multi a boolean.
-        * @param settings a {@link java.lang.String} object.
-        * @param cdmObject a {@link eu.etaxonomy.cdm.model.occurrence.Collection} object.
-        */
-       protected CollectionSelectionDialog(Shell shell,//ConversationHolder conversation,
+       protected CollectionSelectionDialog(Shell shell,
                         String title, boolean multi,
                        String settings, Collection cdmObject) {
                super(shell, //conversation,
                        title, multi, settings, cdmObject);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#getPersistentObject(java.util.UUID)
-        */
-       /** {@inheritDoc} */
        @Override
        protected Collection getPersistentObject(UUID uuid) {
                return CdmStore.getService(ICollectionService.class).load(uuid);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#search
-        */
-       /** {@inheritDoc} */
        @Override
        protected void callService(String pattern) {
           model = CdmStore.getService(ICollectionService.class).getUuidAndTitleCache(limitOfInitialElements,pattern);
     }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#getNewWizardLinkText()
-        */
-       /** {@inheritDoc} */
        @Override
        protected String[] getNewWizardText() {
         return new String[]{ "New Collection"};
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#getNewEntityWizard()
-        */
-       /** {@inheritDoc} */
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
                return new NewCollectionWizard();
        }
-
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CollectorSelectionDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/CollectorSelectionDialog.java
new file mode 100755 (executable)
index 0000000..6269281
--- /dev/null
@@ -0,0 +1,163 @@
+/**
+* Copyright (C) 2021 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.dialog.selection;
+
+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;
+
+import eu.etaxonomy.cdm.api.service.IAgentService;
+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.EntityDTOBase;
+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.NewPersonWizard;
+import eu.etaxonomy.taxeditor.newWizard.NewTeamWizard;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since Jul 1, 2021
+ */
+public class CollectorSelectionDialog extends AgentSelectionDialog<AgentBase<?>> {
+       Team collectorTeam = null;
+
+    /**
+     * @param shell
+     * @param title
+     * @param multi
+     * @param settings
+     * @param agent
+     * @param selectTeamMember
+     */
+    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);
+    }
+
+    @Override
+    protected ILabelProvider createListLabelProvider() {
+        return new CollectorLabelProvider();
+    }
+
+    @Override
+       protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
+       if(TEAM.equals(parameter)){
+            return new NewTeamWizard(false, true);
+        }
+        else if(PERSON.equals(parameter)){
+            return new NewPersonWizard();
+        }
+        else{
+            throw new IllegalArgumentException("Could not determine the desired wizard.");
+        }
+       }
+
+    public class CollectorLabelProvider extends LabelProvider {
+        @Override
+        public String getText(Object element) {
+            if (element == null) {
+                return null;
+            }
+            UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache) element;
+            String title = "";
+            String abbrevTitleCache = uuidAndTitleCache.getAbbrevTitleCache();
+            String titleCache = uuidAndTitleCache.getTitleCache();
+            String collectorTitleCache = null;
+            if (element instanceof TeamOrPersonUuidAndTitleCache && ((TeamOrPersonUuidAndTitleCache)element).getCollectorTitleCache() != null){
+                title = ((TeamOrPersonUuidAndTitleCache)element).getCollectorTitleCache();
+            }
+            if (!title.equals(titleCache)){
+                title += " - " + titleCache;
+            }
+            if (abbrevTitleCache != null && !uuidAndTitleCache.getTitleCache().equals(abbrevTitleCache) && !abbrevTitleCache.equals(titleCache)){
+                title += " - " + abbrevTitleCache;
+            }
+            if(PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSelectionDialog.getKey())){
+                title += " ["+uuidAndTitleCache.getId()+"]";
+            }
+            if (element instanceof EntityDTOBase){
+                title += "(" + ((IdentifiedEntityDTO)element).getIdentifier().getTypeLabel() +": " + ((IdentifiedEntityDTO)element).getIdentifier().getIdentifier() + ")";
+            }
+
+            return title;
+        }
+    }
+
+    @Override
+    protected void callService(String pattern) {
+        Class clazz = AgentBase.class;
+        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 5a0fb678bdb318f4eac8ca5f217aabb980cf825f..72631010b6ff4b09b34c546aa81810ae0b073220 100755 (executable)
@@ -12,15 +12,18 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.swt.widgets.Shell;
 
+import eu.etaxonomy.cdm.api.service.ITermCollectionService;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
+import eu.etaxonomy.cdm.model.term.TermCollection;
+import eu.etaxonomy.cdm.model.term.TermTree;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.taxeditor.preference.CdmPreferenceCache;
@@ -30,23 +33,12 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author k.luther
  * @since 09.10.2018
- *
  */
 public class CommonNameNamedAreaSelectionDialog extends NamedAreaSelectionDialog {
 
-    /**
-     * @param shell
-     * @param title
-     * @param multi
-     * @param namedArea
-     * @param preferenceId
-     * @param preselectedVocabularyUuids
-     */
     protected CommonNameNamedAreaSelectionDialog(Shell shell, String title, boolean multi, NamedArea namedArea,
             Object preferenceId) {
         super(shell, title, multi, namedArea, preferenceId, createVocabularyUuidList());
-
-
     }
 
     private static UUID[] createVocabularyUuidList() {
@@ -65,32 +57,45 @@ public class CommonNameNamedAreaSelectionDialog extends NamedAreaSelectionDialog
     }
     @Override
     protected void init() {
-        vocabularies = getAvailableVocabularies();
+        allVocabularies = getAvailableVocabularies();
     }
 
-
     protected List<TermVocabulary> getAvailableVocabularies(){
-        List<TermVocabulary> vocabularies = new ArrayList();
+        List<TermVocabulary> vocabularies = new ArrayList<>();
 
         UUID[] preselectedVocabularyUuids = createVocabularyUuidList();
         CdmPreferenceCache cache = CdmPreferenceCache.instance();
         PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.CommonNameAreaVocabularies);
         CdmPreference pref = cache.findBestMatching(key);
         if (preselectedVocabularyUuids != null){
-            for(int i=0;i<preselectedVocabularyUuids.length;i++){
-                TermVocabulary preselectedVocabulary = CdmStore.getService(IVocabularyService.class).find(preselectedVocabularyUuids[i]);
-                vocabularies.add(preselectedVocabulary);
+            for(UUID preselectedVocabularyUuid : preselectedVocabularyUuids){
+                TermCollection<?,?> preselectedVocabulary = CdmStore.getService(ITermCollectionService.class).find(preselectedVocabularyUuid);
+                if (preselectedVocabulary instanceof TermVocabulary) {
+                    vocabularies.add((TermVocabulary)preselectedVocabulary);
+                }else {
+                    if (allTrees == null) {
+                        allTrees = new ArrayList<>();
+                    }
+                    allTrees.add((TermTree)preselectedVocabulary);
+                }
+            }
+            selectedTermCollections = new ArrayList<>();
+            selectedTermCollections.addAll(vocabularies);
+            if (allTrees != null) {
+                selectedTermCollections.addAll(allTrees);
             }
         }
         if ((pref != null && !pref.isAllowOverride()) && preselectedVocabularyUuids!=null) {
              return vocabularies;
         }else{
-            selectedVocabularies = vocabularies;
-
-            return CdmStore.getService(IVocabularyService.class).listByTermType(TermType.NamedArea, true, null, null, null, null);
-        }
 
+            if (allVocabularies == null) {
+                allVocabularies = new ArrayList<>();
+            }
+            allVocabularies.addAll(CdmStore.getService(IVocabularyService.class).listByTermType(TermType.NamedArea, true, null, null, null, null));
 
+            return allVocabularies;
+        }
     }
 
     /**
@@ -100,18 +105,15 @@ public class CommonNameNamedAreaSelectionDialog extends NamedAreaSelectionDialog
      *              The shell for displaying this widget
      * @param namedArea
      *              A namedArea that should be selected when the dialog opens
-     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
      * @param preferenceId a class which is used for generating the preference key so that every
-     * dialogs can be grouped to have their own preferences depending on this id
+     *              dialogs can be grouped to have their own preferences depending on this id
      * @param preselectedVocabularyUuids the {@link UUID}s of the pre-selected vocabularies
      * @return a {@link eu.etaxonomy.cdm.model.location.NamedArea} object.
      */
-    public static NamedArea select(Shell shell, //ConversationHolder conversation,
+    public static NamedArea select(Shell shell,
             NamedArea namedArea, String preferenceId) {
-        CommonNameNamedAreaSelectionDialog dialog = new CommonNameNamedAreaSelectionDialog(shell, //conversation,
+        CommonNameNamedAreaSelectionDialog dialog = new CommonNameNamedAreaSelectionDialog(shell,
                 "Choose an area", false, namedArea, preferenceId);
         return getSelectionFromDialog(dialog);
     }
-
-
-}
+}
\ No newline at end of file
index ce9400963bac0cdeb65544f5b91a7a6bfebdafa0..0b45c430fd9c681603d120856204555865c1b717 100755 (executable)
@@ -20,44 +20,19 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author k.luther
  * @since 26.09.2018
- *
  */
 public class CommonNameReferenceSelectionDialog extends ReferenceSelectionDialog {
 
-    /**
-     * @param shell
-     * @param title
-     * @param multi
-     * @param reference
-     */
     protected CommonNameReferenceSelectionDialog(Shell shell, String title, boolean multi, Reference reference) {
-        super(shell, title, multi, reference);
-
+        super(shell, title, multi, reference, null);
     }
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog#search
-     */
-    /** {@inheritDoc} */
     @Override
     protected void callService(String pattern) {
-
         model = CdmStore.getService(IReferenceService.class).findUuidAndTitleCacheByMarker(100, pattern, MarkerType.COMMON_NAME_REFERENCE());
-
-
     }
 
-    /**
-     * <p>select</p>
-     *
-     * @param reference a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-     * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-     * @return a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-     */
-
-    public static Reference select(Shell shell, //ConversationHolder conversation,
+    public static Reference select(Shell shell,
             Reference reference) {
         CommonNameReferenceSelectionDialog dialog = new CommonNameReferenceSelectionDialog(shell,// conversation,
                 "Choose a common name reference", isInReference, reference);
@@ -66,7 +41,6 @@ public class CommonNameReferenceSelectionDialog extends ReferenceSelectionDialog
 
     @Override
     protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
-        return new NewCommonNameReferenceWizard();
+        return new NewCommonNameReferenceWizard(null);
     }
-
-}
+}
\ No newline at end of file
index 5ccdd67b6feafe54fb294ba254c27e2c9f0f8ca7..4c4f12db1c83c6cf96189b08aab7d1fe2b5c184e 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.dialog.selection;
 
 import java.util.UUID;
@@ -23,48 +22,25 @@ import eu.etaxonomy.taxeditor.newWizard.NewDerivedUnitBaseWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>FilteredDerivedUnitSelectionDialog class.</p>
- *
  * @author n.hoffmann
  * @created Jun 17, 2010
- * @version 1.0
  */
 public class DerivedUnitSelectionDialog extends
                AbstractFilteredCdmResourceSelectionDialog<DerivedUnit> {
 
-       /**
-        * <p>select</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param unit a {@link eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase} object.
-        * @return a {@link eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase} object.
-        */
-       public static DerivedUnit select(Shell shell, //ConversationHolder conversation,
+       public static DerivedUnit select(Shell shell,
                DerivedUnit unit){
                DerivedUnitSelectionDialog dialog = new DerivedUnitSelectionDialog(shell, //conversation,
                                "Choose Unit", false, DerivedUnitSelectionDialog.class.getCanonicalName(), unit);
                return getSelectionFromDialog(dialog);
        }
 
-       /**
-        * <p>Constructor for FilteredDerivedUnitSelectionDialog.</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param title a {@link java.lang.String} object.
-        * @param multi a boolean.
-        * @param settings a {@link java.lang.String} object.
-        * @param cdmObject a {@link eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase} object.
-        */
-       protected DerivedUnitSelectionDialog(Shell shell, //ConversationHolder conversation,
+       protected DerivedUnitSelectionDialog(Shell shell,
                String title,
                        boolean multi, String settings, DerivedUnit cdmObject) {
-               super(shell, //conversation,
-                       title, multi, settings, cdmObject);
+               super(shell, title, multi, settings, cdmObject);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected DerivedUnit getPersistentObject(UUID uuid) {
                Object object = CdmStore.getService(IOccurrenceService.class).load(uuid);
@@ -78,21 +54,18 @@ public class DerivedUnitSelectionDialog extends
                return null;
        }
 
-       /** {@inheritDoc} */
        @Override
        protected void callService(String pattern) {
            model = CdmStore.getService(IOccurrenceService.class).getDerivedUnitUuidAndTitleCache(limitOfInitialElements,pattern);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
                return new NewDerivedUnitBaseWizard();
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String[] getNewWizardText() {
                return new String[]{ "New Unit"};
        }
-}
+}
\ No newline at end of file
index f391c4f07eebc94e465196d8c1a2da9a8d4d5b8e..a73e8cd42d7e17051424cb1352e5507e8cc8af69 100644 (file)
@@ -35,7 +35,7 @@ AbstractFilteredCdmResourceSelectionDialog<DescriptiveDataSet> {
 
     public static DescriptiveDataSet select(Shell shell, DescriptiveDataSet descriptiveDataSet){
         DescriptiveDataSetSelectionDialog dialog = new DescriptiveDataSetSelectionDialog(shell,
-                "Choose descriptive data set", false, DescriptiveDataSetSelectionDialog.class.getCanonicalName(), descriptiveDataSet);
+                "Choose descriptive dataset", false, DescriptiveDataSetSelectionDialog.class.getCanonicalName(), descriptiveDataSet);
         return getSelectionFromDialog(dialog);
     }
 
@@ -57,7 +57,7 @@ AbstractFilteredCdmResourceSelectionDialog<DescriptiveDataSet> {
         if(descriptiveDataSet != null){
             return descriptiveDataSet;
         }
-        MessagingUtils.error(this.getClass(), "Selected element is not a descriptive data set", null);
+        MessagingUtils.error(this.getClass(), "Selected element is not a descriptive dataset", null);
         return null;
     }
 
@@ -91,7 +91,7 @@ AbstractFilteredCdmResourceSelectionDialog<DescriptiveDataSet> {
                 if (source instanceof Button){
                     Button sourceButton = (Button) source;
                 }
-                InputDialog dialog = new InputDialog(getShell(), "Descriptive Data Set label", "Enter label for descriptive data set", null, null);
+                InputDialog dialog = new InputDialog(getShell(), "Descriptive Dataset label", "Enter label for descriptive dataset", null, null);
                 if (dialog.open() == Window.OK) {
                     // User clicked OK; update the label with the input
                        DescriptiveDataSet descriptiveDataSet = DescriptiveDataSet.NewInstance();
@@ -107,7 +107,7 @@ AbstractFilteredCdmResourceSelectionDialog<DescriptiveDataSet> {
     /** {@inheritDoc} */
     @Override
     protected String[] getNewWizardText() {
-        return new String[]{"Descriptive Data Set "};
+        return new String[]{"Descriptive Dataset "};
     }
 
 }
index 14733be069e3b411e7a9b274a78dc81a2559c79a..2a20bd637667b728df44bcf7779be37ab775acd9 100644 (file)
@@ -37,49 +37,23 @@ public class ExtReferenceSelectionDialog extends
     private Reference remoteSourceRef;
     private IReferenceService service = null;
 
-    /**
-     * <p>select</p>
-     *
-     * @param reference a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-     * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-     * @return a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-     */
-    public static Reference select(Shell shell, //ConversationHolder conversation,
+    public static Reference select(Shell shell,
             Reference reference, boolean isInReference) {
-        ExtReferenceSelectionDialog dialog = new ExtReferenceSelectionDialog(shell, //conversation,
+        ExtReferenceSelectionDialog dialog = new ExtReferenceSelectionDialog(shell,
                 "Choose a reference", false, reference, isInReference);
         return getSelectionFromDialog(dialog);
     }
 
-    /**
-     * <p>select</p>
-     *
-     * @param reference a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-     * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-     * @return a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-     */
-    public static Reference select(Shell shell, //ConversationHolder conversation,
+    public static Reference select(Shell shell,
             Reference reference) {
-        ExtReferenceSelectionDialog dialog = new ExtReferenceSelectionDialog(shell, //conversation,
+        ExtReferenceSelectionDialog dialog = new ExtReferenceSelectionDialog(shell,
                 "Choose a reference", false, reference);
         return getSelectionFromDialog(dialog);
     }
 
-    /**
-     * <p>Constructor for FilteredReferenceSelectionDialog.</p>
-     *
-     * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-     * @param title a {@link java.lang.String} object.
-     * @param reference a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-     * @param multi a boolean.
-     */
-    protected ExtReferenceSelectionDialog(Shell shell, //ConversationHolder conversation,
+    protected ExtReferenceSelectionDialog(Shell shell,
             String title, boolean multi, Reference reference) {
-        super(shell, //conversation,
-                title, multi, ExtReferenceSelectionDialog.class.getCanonicalName());
+        super(shell, title, multi, ExtReferenceSelectionDialog.class.getCanonicalName());
         this.currentReference = reference;
 //            controller = CdmStore.getCurrentApplicationConfiguration();
         remoteSource = CdmServerInfo.getDevServerRemoteSource();
@@ -87,19 +61,9 @@ public class ExtReferenceSelectionDialog extends
         remoteSourceRef.setTitle(remoteSource.getName());
     }
 
-    /**
-     * <p>Constructor for FilteredReferenceSelectionDialog.</p>
-     *
-     * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-     * @param title a {@link java.lang.String} object.
-     * @param reference a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-     * @param multi a boolean.
-     */
-    protected ExtReferenceSelectionDialog(Shell shell, //ConversationHolder conversation,
+    protected ExtReferenceSelectionDialog(Shell shell,
             String title, boolean multi, Reference reference, boolean isInReference) {
-        super(shell, //conversation,
-                title, multi, ExtReferenceSelectionDialog.class.getCanonicalName());
+        super(shell, title, multi, ExtReferenceSelectionDialog.class.getCanonicalName());
         ExtReferenceSelectionDialog.isInReference = isInReference;
         this.currentReference = reference;
 
@@ -203,7 +167,7 @@ public class ExtReferenceSelectionDialog extends
 
     @Override
     protected NewReferenceWizard getNewEntityWizard(String parameter) {
-        return new NewReferenceWizard();
+        return new NewReferenceWizard(null);
     }
 
     @Override
index dc588186d4e5ca9380d974b2e3657778a221c05d..a8e0288b78cdb88624b5932881b0efcc0d38cada 100644 (file)
@@ -27,7 +27,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class FeatureSelectionDialog extends
                AbstractFilteredCdmResourceSelectionDialog<Feature> {
 
-       public static Feature select(Shell shell, //ConversationHolder conversation,
+       public static Feature select(Shell shell,
                Feature feature){
                FeatureSelectionDialog dialog = new FeatureSelectionDialog(shell, //conversation,
                                "Choose Feature", false, FeatureSelectionDialog.class.getCanonicalName(), feature);
@@ -42,7 +42,7 @@ public class FeatureSelectionDialog extends
         * @param settings
         * @param cdmObject
         */
-       protected FeatureSelectionDialog(Shell shell,//ConversationHolder conversation,
+       protected FeatureSelectionDialog(Shell shell,
                         String title, boolean multi,
                        String settings, Feature cdmObject) {
                super(shell,//conversation,
index d8b5d02272ae35df1b5d59a14aef4cb0daa0910e..97ef7b8218b29f2ab9d78aaead5a317468054fca 100644 (file)
@@ -9,6 +9,8 @@
 
 package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.UUID;
 
 import org.eclipse.jface.dialogs.InputDialog;
@@ -55,7 +57,9 @@ public class FeatureTreeSelectionDialog extends
 
        @Override
        protected TermTree getPersistentObject(UUID uuid) {
-               return CdmStore.getService(ITermTreeService.class).load(uuid);
+           List<String> propertyPath = new ArrayList<>();
+           propertyPath.add("root.*");
+               return CdmStore.getService(ITermTreeService.class).load(uuid, propertyPath);
        }
 
        @Override
@@ -77,7 +81,7 @@ public class FeatureTreeSelectionDialog extends
                         tree = TermTree.NewInstance(termType);
                     }
                     else{
-                        tree = TermTree.NewInstance();
+                        tree = TermTree.NewFeatureInstance();
                     }
                     tree.setTitleCache(dialog.getValue(), true);
                     CdmStore.getService(ITermTreeService.class).merge(tree,true);
index 33a176be689443c0ddd3420361561f68d5e25bf9..f13ffdbf31ffd6d364abd87b4d8d54e0f6da19be 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.dialog.selection;
 
 import java.util.UUID;
@@ -23,51 +22,25 @@ import eu.etaxonomy.taxeditor.newWizard.NewFieldUnitWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>FilteredFieldUnitSelectionDialog class.</p>
- *
  * @author n.hoffmann
  * @created Jun 17, 2010
- * @version 1.0
  */
 public class FieldUnitSelectionDialog extends
                AbstractFilteredCdmResourceSelectionDialog<FieldUnit> {
 
-       /**
-        * <p>select</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param observation a {@link eu.etaxonomy.cdm.model.occurrence.FieldUnit} object.
-        * @return a {@link eu.etaxonomy.cdm.model.occurrence.FieldUnit} object.
-        */
-       public static FieldUnit select(Shell shell, //ConversationHolder conversation,
+       public static FieldUnit select(Shell shell,
                FieldUnit observation){
                FieldUnitSelectionDialog dialog = new FieldUnitSelectionDialog(shell, //conversation,
                                "Choose Derived Unit", false, FieldUnitSelectionDialog.class.getCanonicalName(), observation);
                return getSelectionFromDialog(dialog);
        }
 
-       /**
-        * <p>Constructor for FilteredFieldUnitSelectionDialog.</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param title a {@link java.lang.String} object.
-        * @param multi a boolean.
-        * @param settings a {@link java.lang.String} object.
-        * @param cdmObject a {@link eu.etaxonomy.cdm.model.occurrence.FieldUnit} object.
-        */
-       protected FieldUnitSelectionDialog(Shell shell, //ConversationHolder conversation,
+       protected FieldUnitSelectionDialog(Shell shell,
                        String title, boolean multi, String settings,
                        FieldUnit cdmObject) {
-               super(shell, //conversation,
-                       title, multi, settings, cdmObject);
+               super(shell, title, multi, settings, cdmObject);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#getPersistentObject(java.util.UUID)
-        */
-       /** {@inheritDoc} */
        @Override
        protected FieldUnit getPersistentObject(UUID uuid) {
                Object object = CdmStore.getService(IOccurrenceService.class).load(uuid);
@@ -81,25 +54,18 @@ public class FieldUnitSelectionDialog extends
                return null;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#search
-        */
-       /** {@inheritDoc} */
        @Override
        protected void callService(String pattern) {
            model = CdmStore.getService(IOccurrenceService.class).getUuidAndTitleCache(FieldUnit.class, limitOfInitialElements, pattern);
-
        }
 
-       /** {@inheritDoc} */
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
                return new NewFieldUnitWizard();
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String[] getNewWizardText() {
                return new String[]{"New Field Unit"};
        }
-}
+}
\ No newline at end of file
index bfbc457ff3c5021bfe84e7a475ecc8890f4a128a..8d832200883ccc0eb9451468d3b1972f2cf71881 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2017 EDIT
 * European Distributed Institute of Taxonomy
@@ -24,43 +23,39 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.model.term.TermCollection;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
  * @author k.luther
  * @date 21.11.2017
- *
  */
 public class FilterDialog extends Dialog {
 
-    List<TermVocabulary> vocabularies = new ArrayList<TermVocabulary>();
+    @SuppressWarnings("rawtypes")
+    private List<TermCollection> vocabularies = new ArrayList<>();
 
-    List<TermVocabulary> selectedVocabularies = new ArrayList<TermVocabulary>();
-    List<TermVocabulary> tempSelectedVocabularies = new ArrayList<TermVocabulary>();
-    boolean performOk = true;
+    @SuppressWarnings("rawtypes")
+    private List<TermCollection> selectedVocabularies = new ArrayList<>();
+    @SuppressWarnings("rawtypes")
+    private List<TermCollection> tempSelectedVocabularies = new ArrayList<>();
 
-    Object preferenceId;
+    private Object preferenceId;
 
-    /**
-     * @param parentShell
-     */
-    protected FilterDialog(Shell parentShell, Object preferenceId, List<TermVocabulary> selectedVocabularies, List<TermVocabulary> vocabularies) {
+    protected FilterDialog(Shell parentShell, Object preferenceId, List<TermCollection> selectedVocabularies, List<TermCollection> vocabularies) {
         super(parentShell);
         this.vocabularies = vocabularies;
         this.preferenceId = preferenceId;
         this.selectedVocabularies = selectedVocabularies;
-        this.tempSelectedVocabularies = new ArrayList();
+        this.tempSelectedVocabularies = new ArrayList<>();
         this.tempSelectedVocabularies.addAll(selectedVocabularies);
-
-
     }
 
     @Override
     protected Control createDialogArea(Composite parent) {
         Composite dialogArea = new Composite(parent, SWT.NULL);
         dialogArea.setLayout(new GridLayout(1, false));
-        for (TermVocabulary voc: vocabularies){
+        for (TermCollection voc: vocabularies){
             Button btnCheckButton = new Button(dialogArea, SWT.CHECK);
             btnCheckButton.setText(voc.getLabel());
             btnCheckButton.setData(voc);
@@ -76,7 +71,7 @@ public class FilterDialog extends Dialog {
                 public void widgetSelected(SelectionEvent e) {
                    if (btnCheckButton.getSelection()){
                        if (!tempSelectedVocabularies.contains(btnCheckButton.getData())){
-                          tempSelectedVocabularies.add((TermVocabulary)btnCheckButton.getData());
+                          tempSelectedVocabularies.add((TermCollection)btnCheckButton.getData());
                           if (!tempSelectedVocabularies.isEmpty()) {
                                   getButton(IDialogConstants.OK_ID).setEnabled(true);
                           }
@@ -89,15 +84,12 @@ public class FilterDialog extends Dialog {
                           }
                        }
                    }
-
                 }
 
                 @Override
                 public void widgetDefaultSelected(SelectionEvent e) {
                     // TODO Auto-generated method stub
-
                 }
-
             });
         }
 
@@ -106,13 +98,12 @@ public class FilterDialog extends Dialog {
         gd_table.widthHint = 543;
 
         return dialogArea;
-
     }
 
     @Override
     protected void okPressed(){
 
-        for (TermVocabulary voc: vocabularies){
+        for (TermCollection voc: vocabularies){
             if (tempSelectedVocabularies.contains(voc)){
                 PreferencesUtil.setBooleanValue(getPrefKey(voc), false);
                 selectedVocabularies.add(voc);
@@ -124,8 +115,7 @@ public class FilterDialog extends Dialog {
         super.okPressed();
     }
 
-    private String getPrefKey(TermVocabulary vocabulary){
+    private String getPrefKey(TermCollection vocabulary){
         return "hide_"+NamedAreaSelectionDialog.class.getCanonicalName()+vocabulary.getUuid()+preferenceId;
     }
-
-}
+}
\ No newline at end of file
index 675a0739b4b8da276a0e791dea448e7c8de0ed5a..796dc9c1a282950bc69860ce38639904e867efdd 100644 (file)
@@ -32,7 +32,7 @@ import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityLabelT
 public class GrantedAuthoritySelectionDialog
         extends AbstractFilteredCdmResourceSelectionDialog<GrantedAuthorityImpl> {
 
-       public static GrantedAuthority select(Shell shell, //ConversationHolder conversation,
+       public static GrantedAuthority select(Shell shell,
                GrantedAuthorityImpl authority){
 
                GrantedAuthoritySelectionDialog dialog = new GrantedAuthoritySelectionDialog(shell,//conversation,
@@ -41,7 +41,7 @@ public class GrantedAuthoritySelectionDialog
                return getSelectionFromDialog(dialog);
        }
 
-       protected GrantedAuthoritySelectionDialog(Shell shell,//ConversationHolder conversation,
+       protected GrantedAuthoritySelectionDialog(Shell shell,
                String title, boolean multi,
                        String settings, GrantedAuthorityImpl cdmObject) {
                super(shell, //conversation,
index ae49aaded181f2ee666b47475185137eff4a2dcb..36d5a00176626d02b00c70fda80959d81a00610e 100644 (file)
@@ -34,7 +34,7 @@ public class GroupSelectionDialog extends
 
     User user;
 
-       public static Group select(Shell shell, //ConversationHolder conversation,
+       public static Group select(Shell shell,
                Group group, User user){
                GroupSelectionDialog dialog = new GroupSelectionDialog(shell, //conversation,
                                "Choose Group", false, GroupSelectionDialog.class.getCanonicalName(), group, user);
@@ -49,7 +49,7 @@ public class GroupSelectionDialog extends
         * @param settings
         * @param cdmObject
         */
-       protected GroupSelectionDialog(Shell shell,//ConversationHolder conversation,
+       protected GroupSelectionDialog(Shell shell,
                String title, boolean multi,
                        String settings, Group cdmObject, User user) {
                super(shell, //conversation,
index eadc7dd0d10f856c4642b089a275e43474e6df1b..31731bd695d1ac3570ed163a1b4efc4917b73758 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.dialog.selection;
 
 import java.util.UUID;
@@ -23,39 +22,26 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author n.hoffmann
  * @created Dec 15, 2010
- * @version 1.0
  */
 public class InstitutionSelectionDialog extends
                AbstractFilteredCdmResourceSelectionDialog<Institution> {
 
-       public static Institution select(Shell shell,// ConversationHolder conversation,
+       public static Institution select(Shell shell,
                Institution institution){
                InstitutionSelectionDialog dialog = new InstitutionSelectionDialog(shell, //conversation,
                                "Choose Institution", false, TeamSelectionDialog.class.getCanonicalName(), institution);
                return getSelectionFromDialog(dialog);
        }
 
-       /**
-        * @param shell
-        * @param conversation
-        * @param title
-        * @param multi
-        * @param settings
-        * @param cdmObject
-        */
-       protected InstitutionSelectionDialog(Shell shell,//ConversationHolder conversation,
+       protected InstitutionSelectionDialog(Shell shell,
                String title, boolean multi,
                        String settings, Institution cdmObject) {
-               super(shell, //conversation,
-                       title, multi, settings, cdmObject);
+               super(shell, title, multi, settings, cdmObject);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#getPersistentObject(java.util.UUID)
-        */
        @Override
        protected Institution getPersistentObject(UUID uuid) {
-               AgentBase agentBase = CdmStore.getService(IAgentService.class).load(uuid);
+               AgentBase<?> agentBase = CdmStore.getService(IAgentService.class).load(uuid);
 
                if(agentBase instanceof Institution){
                        return (Institution) agentBase;
@@ -63,31 +49,19 @@ public class InstitutionSelectionDialog extends
                return null;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#search
-        */
        @Override
        protected void callService(String pattern) {
-
-              model = CdmStore.getService(IAgentService.class).getUuidAndTitleCache(Institution.class, limitOfInitialElements,pattern);
-
-
+              model = CdmStore.getService(IAgentService.class)
+                      .getUuidAndTitleCache(Institution.class, limitOfInitialElements, pattern);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#getNewWizardLinkText()
-        */
        @Override
        protected String[] getNewWizardText() {
                return new String[]{"New Institution"};
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#getNewEntityWizard(java.lang.String)
-        */
        @Override
-       protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
+       protected AbstractNewEntityWizard<Institution> getNewEntityWizard(String parameter) {
                return new NewInstitutionWizard();
        }
-
-}
+}
\ No newline at end of file
index ecf151ad0ecb24c8f16c9b5f7565762ebe8097d4..93fc010922971b5f3fc802a883e3d502b46ac6a6 100644 (file)
@@ -27,7 +27,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class MediaSelectionDialog extends
 AbstractFilteredCdmResourceSelectionDialog<Media> {
 
-    public static Media select(Shell shell, //ConversationHolder conversation,
+    public static Media select(Shell shell,
             Media media){
         MediaSelectionDialog dialog = new MediaSelectionDialog(shell, //conversation,
                 "Choose Media", false, MediaSelectionDialog.class.getCanonicalName(), media);
@@ -37,7 +37,7 @@ AbstractFilteredCdmResourceSelectionDialog<Media> {
     /**
      * <p>Constructor for FilteredDerivedUnitSelectionDialog.</p>
      */
-    protected MediaSelectionDialog(Shell shell, //ConversationHolder conversation,
+    protected MediaSelectionDialog(Shell shell,
             String title,
             boolean multi, String settings, Media cdmObject) {
         super(shell, //conversation,
index f810756ef5e1ffbd3e28f90aa12a6011287363f1..d8b523967aa1cf5e324621ce93a8f0ab940ef46a 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.dialog.selection;
 
 import java.util.UUID;
@@ -25,58 +24,36 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class NameSelectionDialog extends AbstractFilteredCdmResourceSelectionDialog<TaxonName> {
 
-       public static TaxonName select(Shell shell, //ConversationHolder conversation,
+       public static TaxonName select(Shell shell,
                TaxonName name) {
-               NameSelectionDialog dialog = new NameSelectionDialog(shell, //conversation,
+               NameSelectionDialog dialog = new NameSelectionDialog(shell,
                                "Choose a name", false, name);
                return getSelectionFromDialog(dialog);
        }
 
-       protected NameSelectionDialog(Shell shell, //ConversationHolder conversation,
+       protected NameSelectionDialog(Shell shell,
                String title, boolean multi, TaxonName name) {
-               super(shell, //conversation,
+               super(shell,
                        title, multi, NameSelectionDialog.class.getCanonicalName(), name);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected TaxonName getPersistentObject(UUID cdmUuid) {
                return CdmStore.getService(INameService.class).load(cdmUuid);
        }
 
-       /** {@inheritDoc} */
-//     @Override
-//     protected void search() {
-//         Control control =getSearchField();
-//        String pattern = null;
-//        if (control != null){
-//            pattern = ((Text)control).getText();
-//        }
-//
-//        if (pattern.equals("?")){
-//            model = CdmStore.getService(INameService.class).getUuidAndTitleCache(null, null);
-//        }else if (pattern != null){
-//            model = CdmStore.getService(INameService.class).getUuidAndTitleCache(limitOfInitialElements, pattern);
-//        }
-//     }
-
-       /** {@inheritDoc} */
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
                return new NewNonViralNameWizard();
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String[] getNewWizardText() {
                return new String[]{"New Name"};
        }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.dialog.selection.AbstractFilteredCdmResourceSelectionDialog#callService(java.lang.String)
-     */
     @Override
-    void callService(String pattern) {
+    protected void callService(String pattern) {
         model = CdmStore.getService(INameService.class).getUuidAndTitleCache(limitOfInitialElements, pattern);
     }
-}
+}
\ No newline at end of file
index f63f482595c192bc020e33f6700cc1d44dbed82b..b7816619c646271a980e468236907fee8208b73c 100644 (file)
@@ -6,16 +6,13 @@
 * 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
-\r
 package eu.etaxonomy.taxeditor.ui.dialog.selection;\r
 \r
 import java.util.ArrayList;\r
 import java.util.List;\r
 import java.util.UUID;\r
 \r
-import org.apache.commons.lang.StringUtils;\r
-import org.eclipse.jface.action.Action;\r
-import org.eclipse.jface.action.IAction;\r
+import org.apache.commons.lang3.StringUtils;\r
 import org.eclipse.jface.dialogs.Dialog;\r
 import org.eclipse.swt.SWT;\r
 import org.eclipse.swt.events.SelectionEvent;\r
@@ -24,56 +21,37 @@ import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;\r
 import org.eclipse.swt.widgets.Shell;\r
 \r
+import eu.etaxonomy.cdm.api.service.ITermCollectionService;\r
 import eu.etaxonomy.cdm.api.service.ITermService;\r
+import eu.etaxonomy.cdm.api.service.ITermTreeService;\r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
 import eu.etaxonomy.cdm.model.location.NamedArea;\r
-import eu.etaxonomy.cdm.model.metadata.NamedAreaSearchField;\r
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;\r
+import eu.etaxonomy.cdm.model.metadata.TermSearchField;\r
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
+import eu.etaxonomy.cdm.model.term.TermCollection;\r
+import eu.etaxonomy.cdm.model.term.TermTree;\r
 import eu.etaxonomy.cdm.model.term.TermType;\r
 import eu.etaxonomy.cdm.model.term.TermVocabulary;\r
 import eu.etaxonomy.taxeditor.model.ImageResources;\r
 import eu.etaxonomy.taxeditor.model.MessagingUtils;\r
 import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;\r
-import eu.etaxonomy.taxeditor.preference.CdmPreferenceCache;\r
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 \r
 /**\r
  * @author n.hoffmann\r
  * @created May 11, 2010\r
- * @version 1.0\r
  */\r
 public class NamedAreaSelectionDialog extends\r
                AbstractFilteredCdmResourceSelectionDialog<NamedArea> {\r
 \r
-       private class IncludeNamedAreaVocabulary extends Action {\r
-               private final TermVocabulary<NamedArea> vocabulary;\r
-\r
-               /**\r
-                * Creates a new instance of the class.\r
-                */\r
-               public IncludeNamedAreaVocabulary(TermVocabulary<NamedArea> vocabulary) {\r
-                       super(vocabulary.getTitleCache(), IAction.AS_CHECK_BOX);\r
-                       this.vocabulary = vocabulary;\r
-               }\r
-\r
-               @Override\r
-        public void run(){\r
-                       if(isChecked()){\r
-                               selectedVocabularies.add(vocabulary);\r
-                       }else{\r
-                               selectedVocabularies.remove(vocabulary);\r
-                       }\r
-                       PreferencesUtil.setBooleanValue(getPrefKey(vocabulary), !isChecked());\r
-                       search();\r
-               }\r
-       }\r
        protected List<NamedArea> selectedAreas;\r
-       protected List<TermVocabulary> selectedVocabularies;\r
-    protected List<TermVocabulary> vocabularies;\r
-\r
-\r
+       @SuppressWarnings("rawtypes")\r
+    protected List<TermCollection> selectedTermCollections;\r
+    @SuppressWarnings("rawtypes")\r
+    protected List<TermVocabulary> allVocabularies;\r
+    protected List<TermTree> allTrees;\r
 \r
        /**\r
         * Creates a filtered selection dialog to select a named area.\r
@@ -82,42 +60,41 @@ public class NamedAreaSelectionDialog extends
         *                              The shell for displaying this widget\r
         * @param namedArea\r
         *                              A namedArea that should be selected when the dialog opens\r
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.\r
         * @param preferenceId a class which is used for generating the preference key so that every\r
-        * dialogs can be grouped to have their own preferences depending on this id\r
+        *        dialogs can be grouped to have their own preferences depending on this id\r
         * @param preselectedVocabularyUuids the {@link UUID}s of the pre-selected vocabularies\r
         * @return a {@link eu.etaxonomy.cdm.model.location.NamedArea} object.\r
         */\r
-       public static NamedArea select(Shell shell, //ConversationHolder conversation,\r
+       public static NamedArea select(Shell shell,\r
                NamedArea namedArea, String preferenceId, UUID... preselectedVocabularyUuids) {\r
-               NamedAreaSelectionDialog dialog = new NamedAreaSelectionDialog(shell, //conversation,\r
+               NamedAreaSelectionDialog dialog = new NamedAreaSelectionDialog(shell,\r
                                "Choose an area", false, namedArea, preferenceId, preselectedVocabularyUuids);\r
                return getSelectionFromDialog(dialog);\r
        }\r
 \r
-       protected NamedAreaSelectionDialog(Shell shell, //ConversationHolder conversation,\r
+       protected NamedAreaSelectionDialog(Shell shell,\r
                String title, boolean multi, NamedArea namedArea, Object preferenceId, UUID... preselectedVocabularyUuids) {\r
-               super(shell, //conversation,\r
-                       title, multi, NamedAreaSelectionDialog.class.getCanonicalName(), namedArea);\r
 \r
-               selectedVocabularies = new ArrayList<TermVocabulary>();\r
+               super(shell, title, multi, NamedAreaSelectionDialog.class.getCanonicalName(), namedArea);\r
+\r
+               selectedTermCollections = new ArrayList<>();\r
                this.preferenceID = preferenceId;\r
 \r
                if (preselectedVocabularyUuids != null && preselectedVocabularyUuids.length > 0){\r
-               for(int i=0;i<preselectedVocabularyUuids.length;i++){\r
-                       TermVocabulary preselectedVocabulary = CdmStore.getService(IVocabularyService.class).find(preselectedVocabularyUuids[i]);\r
-                       selectedVocabularies.add(preselectedVocabulary);\r
+               for(UUID preselectedVocabularyUuid : preselectedVocabularyUuids){\r
+                TermCollection<?,?> preselectedVocabulary = CdmStore.getService(ITermCollectionService.class).find(preselectedVocabularyUuid);\r
+                       selectedTermCollections.add(preselectedVocabulary);\r
                }\r
                }else{\r
-                   selectedVocabularies = createSelectedVocabularies();\r
+                   selectedTermCollections = createSelectedVocabularies();\r
                }\r
-\r
        }\r
 \r
-    protected List<TermVocabulary> createSelectedVocabularies() {\r
-        List<TermVocabulary> tempSelectedVocabularies = new ArrayList<TermVocabulary>();\r
-        for(TermVocabulary vocabulary:vocabularies){\r
-                       if((selectedVocabularies.contains(vocabulary) && !PreferencesUtil.getBooleanValue(getPrefKey(vocabulary)))\r
+    protected List<TermCollection> createSelectedVocabularies() {\r
+        @SuppressWarnings("rawtypes")\r
+        List<TermCollection> tempSelectedVocabularies = new ArrayList<>();\r
+        for(TermCollection<?,?> vocabulary: allVocabularies){\r
+                       if((selectedTermCollections.contains(vocabulary) && !PreferencesUtil.getBooleanValue(getPrefKey(vocabulary)))\r
                                        || !PreferencesUtil.getBooleanValue(getPrefKey(vocabulary))){\r
                                tempSelectedVocabularies.add(vocabulary);\r
                        }\r
@@ -125,31 +102,14 @@ public class NamedAreaSelectionDialog extends
         return tempSelectedVocabularies;\r
     }\r
 \r
-//    private static UUID[] createVocabularyUuidList() {\r
-//        String preselectedVocString = PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey());\r
-//        if (StringUtils.isBlank(preselectedVocString)){\r
-//            return null;\r
-//        }\r
-//        String[] preselectedVocArray = preselectedVocString.split(";");\r
-//        UUID[] uuidList = new UUID[preselectedVocArray.length];\r
-//        int i = 0;\r
-//        for (String uuidString: preselectedVocArray){\r
-//            uuidList[i]= UUID.fromString(uuidString);\r
-//            i++;\r
-//        }\r
-//        return uuidList;\r
-//    }\r
-\r
-\r
-       private String getPrefKey(TermVocabulary vocabulary){\r
-               return "hide_"+NamedAreaSelectionDialog.class.getCanonicalName()+vocabulary.getUuid()+preferenceID;\r
+       private String getPrefKey(TermCollection<?,?> termCollection){\r
+               return "hide_"+NamedAreaSelectionDialog.class.getCanonicalName()+termCollection.getUuid()+preferenceID;\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        protected NamedArea getPersistentObject(UUID uuid) {\r
 \r
-           DefinedTermBase area =  CdmStore.getService(ITermService.class).find(uuid);\r
+           DefinedTermBase<?> area =  CdmStore.getService(ITermService.class).find(uuid);\r
            if (area instanceof NamedArea){\r
                return (NamedArea) area;\r
            }\r
@@ -157,22 +117,21 @@ public class NamedAreaSelectionDialog extends
                return null;\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        protected void init() {\r
-               vocabularies = getAvailableVocabularies();\r
-       }\r
-\r
-       private List<TermVocabulary> getAvailableVocabularies(){\r
-           vocabularies = new ArrayList();\r
-           CdmPreferenceCache cache = CdmPreferenceCache.instance();\r
-           vocabularies = CdmStore.getService(IVocabularyService.class).listByTermType(TermType.NamedArea, true, null, null, null, null);\r
-           return vocabularies;\r
+               getAvailableVocabularies();\r
        }\r
 \r
+    private void getAvailableVocabularies(){\r
+           allVocabularies = new ArrayList<>();\r
+           allVocabularies.addAll(CdmStore.getService(IVocabularyService.class).listByTermType(TermType.NamedArea, true, null, null, null, null));\r
 \r
+           allTrees = CdmStore.getService(ITermTreeService.class).list(TermType.NamedArea, null, null, null, null);\r
+           if (allTrees == null) {\r
+               allTrees = new ArrayList<>();\r
+           }\r
+       }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        protected String getTitle(NamedArea namedArea) {\r
                try {\r
@@ -184,85 +143,56 @@ public class NamedAreaSelectionDialog extends
                }\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {\r
                return null;\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        protected String[] getNewWizardText() {\r
                return null;\r
        }\r
 \r
        @Override\r
-    void createFilterButton(Composite searchAndFilter)\r
-           {\r
-            filterButton = new Button(searchAndFilter, SWT.NONE);\r
-//            filterButton.setText("Filter");\r
-            filterButton.setImage(ImageResources.getImage(ImageResources.FUNNEL_ICON));\r
-//            SelectionListener filterSelectionListener = new FilterSelectionListener(preferenceID, this);\r
-            filterButton.addSelectionListener(new SelectionListener(){\r
-                @Override\r
-                public void widgetSelected(SelectionEvent e) {\r
-\r
-                        Object source = e.getSource();\r
-                        String text = null;\r
-                        if (source instanceof Button){\r
-                            Shell shell = ((Button)source).getShell();\r
-                            Dialog dialog = new FilterDialog(getShell(), preferenceID, selectedVocabularies, vocabularies);\r
-                            if(dialog!=null){\r
-                                dialog.open();\r
-                            }\r
-                            createSelectedVocabularies();\r
-                            search();\r
-                        }\r
-\r
-\r
-\r
-\r
+    void createFilterButton(Composite searchAndFilter){\r
+        filterButton = new Button(searchAndFilter, SWT.NONE);\r
+        filterButton.setImage(ImageResources.getImage(ImageResources.FUNNEL_ICON));\r
+        filterButton.addSelectionListener(new SelectionListener(){\r
+            @Override\r
+            public void widgetSelected(SelectionEvent e) {\r
+                Object source = e.getSource();\r
+                if (source instanceof Button){\r
+                    List<TermCollection> allCollections = new ArrayList<>();\r
+                    allCollections.addAll(allVocabularies);\r
+                    if (allTrees!= null) {\r
+                        allCollections.addAll(allTrees);\r
+                    }\r
+\r
+                    Dialog dialog = new FilterDialog(getShell(), preferenceID, selectedTermCollections, allCollections);\r
+                    dialog.open();\r
+                    createSelectedVocabularies();\r
+                    search();\r
                 }\r
+            }\r
 \r
-                @Override\r
-                public void widgetDefaultSelected(SelectionEvent e) {\r
-                    // TODO Auto-generated method stub\r
-\r
-                }\r
-\r
-\r
-            });\r
-\r
-        }\r
-\r
-\r
+            @Override\r
+            public void widgetDefaultSelected(SelectionEvent e) {\r
+                // TODO Auto-generated method stub\r
+            }\r
+        });\r
+    }\r
 \r
-    /* (non-Javadoc)\r
-     * @see eu.etaxonomy.taxeditor.ui.dialog.selection.AbstractFilteredCdmResourceSelectionDialog#callService(java.lang.String)\r
-     */\r
     @Override\r
-    void callService(String pattern) {\r
+    protected void callService(String pattern) {\r
+        //label type\r
         String abbrevTypeString = PreferencesUtil.getStringValue(PreferencePredicate.NamedAreaSearchForAbbrev.getKey());\r
-        NamedAreaSearchField abbrevType;\r
+        TermSearchField abbrevType;\r
         try{\r
-            abbrevType = StringUtils.isNotBlank(abbrevTypeString)? NamedAreaSearchField.byKey(abbrevTypeString): null;\r
+            abbrevType = StringUtils.isNotBlank(abbrevTypeString)? TermSearchField.byKey(abbrevTypeString): null;\r
         }catch(IllegalArgumentException e){\r
             abbrevType = null;\r
         }\r
-        if (selectedVocabularies == null || selectedVocabularies.size() == 0){\r
-            if (abbrevType != null && !abbrevType.equals(NamedAreaSearchField.NoAbbrev)){\r
-                model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedAreaByAbbrev(vocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage(), abbrevType);\r
-            }else{\r
-                model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedArea(vocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage());\r
-            }\r
-        }else{\r
-            if (abbrevType != null  && !abbrevType.equals(NamedAreaSearchField.NoAbbrev)){\r
-                model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedAreaByAbbrev(selectedVocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage(), abbrevType);\r
-            }else{\r
-                model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedArea(selectedVocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage());\r
-            }\r
 \r
-        }\r
+        model = CdmStore.getService(ITermService.class).getUuidAndTitleCache(NamedArea.class, selectedTermCollections, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage(), abbrevType);\r
     }\r
-\r
-}\r
+}
\ No newline at end of file
index d0e5272048350ea21ad5f9d3294ffd8effb25d2f..f3f53bec76eff6e131d9111ab554f947deb60868 100644 (file)
@@ -8,21 +8,21 @@
 */
 package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
-
-
 import java.text.Collator;
 import java.util.Comparator;
+import java.util.List;
 
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.service.IAgentService;
+import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
 import eu.etaxonomy.cdm.model.agent.INomenclaturalAuthor;
-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.EntityDTOBase;
+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.NewPersonWizard;
@@ -33,37 +33,25 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author k.luther
  * @date 25.05.2016
- *
  */
 public class NomenclaturalAuthorSelectionDialog extends TeamOrPersonBaseSelectionDialog {
 
-
-    /**
-     * @param shell
-     * @param conversation
-     * @param title
-     * @param multi
-     * @param settings
-     * @param agent
-     */
-    protected NomenclaturalAuthorSelectionDialog(Shell shell, //ConversationHolder conversation,
+    protected NomenclaturalAuthorSelectionDialog(Shell shell,
             String title,
-            boolean multi, String settings, TeamOrPersonBase agent, boolean teamMemberSelection) {
+            boolean multi, String settings, TeamOrPersonBase<?> agent, boolean teamMemberSelection) {
         super(shell, title, multi, settings, agent, teamMemberSelection);
 
     }
 
     @Override
     protected void callService(String pattern) {
-        model = CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache(Team.class, limitOfInitialElements, pattern);
-        model.addAll(CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache(Person.class, limitOfInitialElements, pattern));
+        model = (List)CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache(TeamOrPersonBase.class, limitOfInitialElements, pattern);
     }
 
-    /** {@inheritDoc} */
     @Override
-    protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
+    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();
@@ -72,119 +60,69 @@ public class NomenclaturalAuthorSelectionDialog extends TeamOrPersonBaseSelectio
             throw new IllegalArgumentException("Could not determine the desired wizard.");
         }
     }
-    /**
-        *
-        * @return
-        */
-    @Override
-       protected ILabelProvider createListLabelProvider() {
-               return new FilteredCdmResourceAbbrevLabelProvider();
-       }
 
-    /**
-     * <p>select</p>
-     *
-     * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-     * @param entity a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
-     * @return a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
-     */
-    public static TeamOrPersonBase select(Shell shell, //ConversationHolder conversation,
-            TeamOrPersonBase entity, boolean teamMemberSelection) {
+//    @Override
+//     protected ILabelProvider createListLabelProvider() {
+//             return new FilteredCdmResourceAbbrevLabelProvider();
+//     }
+
+    public static TeamOrPersonBase<?> select(Shell shell,
+            TeamOrPersonBase<?> entity, boolean teamMemberSelection) {
         NomenclaturalAuthorSelectionDialog dialog = new NomenclaturalAuthorSelectionDialog(shell, //conversation,
                 "Choose Agent", false, NomenclaturalAuthorSelectionDialog.class.getCanonicalName(), entity, teamMemberSelection);
-        return (TeamOrPersonBase)getSelectionFromDialog(dialog);
+        return getSelectionFromDialog(dialog);
     }
 
-    /**
-     * <p>getTitle</p>
-     *
-     * @param cdmObject a T object.
-     * @return a {@link java.lang.String} object.
-     */
     @Override
-    protected String getTitle(TeamOrPersonBase cdmObject) {
+    protected String getTitle(TeamOrPersonBase<?> cdmObject) {
         if(cdmObject == null){
             return "";
         }
 
-        if (cdmObject instanceof INomenclaturalAuthor) {
-            return ((INomenclaturalAuthor)cdmObject).getNomenclaturalTitle();
-        }
-        throw new IllegalArgumentException("Generic method only" +
-                " supports cdmObject of type IIdentifiableEntity." +
-                " Please implement specific method in subclass.");
+        return ((INomenclaturalAuthor)cdmObject).getNomenclaturalTitleCache();
     }
 
+    @Override
+    protected ILabelProvider createListLabelProvider() {
+        return new NomenclaturalLabelProvider();
+    }
 
-
-    public class FilteredCdmResourceAbbrevLabelProvider extends LabelProvider {
-               @Override
-               public String getText(Object element) {
-                       if (element == null) {
-                               return null;
-                       }
-                       UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache) element;
-                       String titleCache = uuidAndTitleCache.getTitleCache();
-                       String abbrevTitleCache = uuidAndTitleCache.getAbbrevTitleCache();
-                       if(titleCache!=null && abbrevTitleCache!=null){
-                           if (!titleCache.equals(abbrevTitleCache)){
-                               abbrevTitleCache += " - " + titleCache;
-                           }
-                           if(PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSelectionDialog.getKey())){
-                               abbrevTitleCache += " ["+uuidAndTitleCache.getId()+"]";
-                           }
-                       }
-            return abbrevTitleCache!=null?abbrevTitleCache:"[title null]";
-               }
-       }
-
-       /** {@inheritDoc} */
-//     @Override
-//     protected ItemsFilter createFilter() {
-//             return new ItemsFilter() {
-//
-//                     /**
-//                      * Always returns false to enforce refiltering even if the pattern is equal
-//                      */
-//                     @Override
-//                     public boolean equalsFilter(ItemsFilter filter) {
-//                             return false;
-//                     }
-//
-//                     @Override
-//                     public boolean isConsistentItem(Object item) {
-//                             return false;
-//                     }
-//
-//                     @Override
-//                     public boolean matchItem(Object item) {
-//                             String textTitleCache = null;
-//                             String abbrevTitleCache = null;
-//                             if(item instanceof UuidAndTitleCache){
-//                                     if (((UuidAndTitleCache) item).getAbbrevTitleCache() != null){
-//                                             abbrevTitleCache = ((UuidAndTitleCache) item).getAbbrevTitleCache();
-//                                     }
-//                                     if (((UuidAndTitleCache) item).getTitleCache() != null ){
-//                                             textTitleCache = ((UuidAndTitleCache) item).getTitleCache();
-//                                     }
-//                             }else if(item instanceof String){
-//                                     textTitleCache = (String) item;
-//                             }
-//
-//                             return  (matches(textTitleCache) || matches(abbrevTitleCache)) ;
-//
-//                     }
-//
-//             };
-//     }
+    public class NomenclaturalLabelProvider extends LabelProvider {
+        @Override
+        public String getText(Object element) {
+            if (element == null) {
+                return null;
+            }
+            UuidAndTitleCache<?> uuidAndTitleCache = (UuidAndTitleCache<?>) element;
+            String title = uuidAndTitleCache.getAbbrevTitleCache();
+            String titleCache = uuidAndTitleCache.getTitleCache();
+            String collectorTitleCache = null;
+            if (element instanceof TeamOrPersonUuidAndTitleCache){
+                collectorTitleCache = ((TeamOrPersonUuidAndTitleCache)element).getCollectorTitleCache();
+            }
+            if (!titleCache.equals(title)){
+                title += " - " + titleCache;
+            }
+            if (collectorTitleCache != null && !uuidAndTitleCache.getTitleCache().equals(collectorTitleCache) && !titleCache.equals(collectorTitleCache)){
+                title += " - " + collectorTitleCache;
+            }
+            if(PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSelectionDialog.getKey())){
+                title += " ["+uuidAndTitleCache.getId()+"]";
+            }
+            if (element instanceof EntityDTOBase){
+                title += "(" + ((IdentifiedEntityDTO)element).getIdentifier().getTypeLabel() +": " + ((IdentifiedEntityDTO)element).getIdentifier().getIdentifier() + ")";
+            }
+
+            return title;
+        }
+    }
 
        @Override
-       protected Comparator getItemsComparator() {
-               return new Comparator<UuidAndTitleCache>() {
+       protected Comparator<UuidAndTitleCache<TeamOrPersonBase<?>>> getItemsComparator() {
+               return new Comparator<UuidAndTitleCache<TeamOrPersonBase<?>>>() {
                        @Override
-                       public int compare(UuidAndTitleCache entity1,
-                                       UuidAndTitleCache entity2) {
+                       public int compare(UuidAndTitleCache<TeamOrPersonBase<?>> entity1,
+                                       UuidAndTitleCache<TeamOrPersonBase<?>> entity2) {
 
                            if (entity1.getUuid().equals(entity2.getUuid())){
                                return 0;
@@ -198,7 +136,6 @@ public class NomenclaturalAuthorSelectionDialog extends TeamOrPersonBaseSelectio
                                        compareString1 += entity1.getTitleCache();
                                }
 
-
                                String compareString2 = "";
                                if (entity2.getAbbrevTitleCache() != null){
                                        compareString2 = entity2.getAbbrevTitleCache();
@@ -216,6 +153,4 @@ public class NomenclaturalAuthorSelectionDialog extends TeamOrPersonBaseSelectio
                        }
                };
        }
-
-
-}
+}
\ No newline at end of file
index cb576cee581847ceca0c51fca54e9453882f4d07..36549f66ab2e9db1179a2523022b604fc73c8105 100644 (file)
@@ -6,15 +6,14 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
+import java.util.List;
 import java.util.UUID;
 
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.service.IAgentService;
-import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
@@ -22,82 +21,45 @@ import eu.etaxonomy.taxeditor.newWizard.NewTeamWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>FilteredNomenclaturalAuthorTeamSelectionDialog class.</p>
+ * FilteredNomenclaturalAuthorTeamSelectionDialog class.
  *
  * @author n.hoffmann
  * @created Jun 22, 2010
- * @version 1.0
  */
-public class NomenclaturalAuthorTeamSelectionDialog extends
-       AbstractFilteredCdmResourceSelectionDialog<AgentBase> {
+public class NomenclaturalAuthorTeamSelectionDialog
+        extends AbstractFilteredCdmResourceSelectionDialog<Team> {
 
-       /**
-        * <p>select</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param team a {@link eu.etaxonomy.cdm.model.agent.Team} object.
-        * @return a {@link eu.etaxonomy.cdm.model.agent.Team} object.
-        */
-       public static Team select(Shell shell, //ConversationHolder conversation,
+       public static Team select(Shell shell,
                Team team){
                NomenclaturalAuthorTeamSelectionDialog dialog = new NomenclaturalAuthorTeamSelectionDialog(shell, //conversation,
                                "Choose Author Team", false, NomenclaturalAuthorTeamSelectionDialog.class.getCanonicalName(), team);
-               return (Team)getSelectionFromDialog(dialog);
+               return getSelectionFromDialog(dialog);
        }
 
-       /**
-        * <p>Constructor for FilteredNomenclaturalAuthorTeamSelectionDialog.</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param title a {@link java.lang.String} object.
-        * @param multi a boolean.
-        * @param settings a {@link java.lang.String} object.
-        * @param agent a {@link eu.etaxonomy.cdm.model.agent.Team} object.
-        */
-       protected NomenclaturalAuthorTeamSelectionDialog(Shell shell, //ConversationHolder conversation,
+       protected NomenclaturalAuthorTeamSelectionDialog(Shell shell,
                String title,
                        boolean multi, String settings, Team agent) {
-               super(shell, //conversation,
+               super(shell,
                        title, multi, settings, agent);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
-               return new NewTeamWizard(true);
+               return new NewTeamWizard(true, false);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String[] getNewWizardText() {
                return new String[]{"new Team"};
        }
 
-//     /** {@inheritDoc} */
-//     @Override
-//     protected void search() {
-//         Control control =getSearchField();
-//        String pattern = null;
-//        if (control != null){
-//            pattern = ((Text)control).getText();
-//        }
-//
-//             model = CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache(limitOfInitialElements, pattern, Team.class);
-//     }
-
-       /** {@inheritDoc} */
        @Override
        protected Team getPersistentObject(UUID uuid) {
                return CdmBase.deproxy(CdmStore.getService(IAgentService.class).load(uuid), Team.class) ;
        }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.dialog.selection.AbstractFilteredCdmResourceSelectionDialog#callService(java.lang.String)
-     */
     @Override
-    void callService(String pattern) {
-        model = CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache(Team.class, limitOfInitialElements, pattern);
+    protected void callService(String pattern) {
+        model = (List)CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache(Team.class, limitOfInitialElements, pattern);
     }
-}
+}
\ No newline at end of file
index 81347bb6de26d9deca7e1251029c5765f7faae1e..294c88a391d314a033c9181a47dfa6ce001b9951 100644 (file)
@@ -8,55 +8,35 @@
 */
 package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
+import java.util.List;
+
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.model.agent.Person;
-import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author k.luther
  * @date 21.06.2016
- *
  */
-public class NomenclaturalPersonAuthorSelectionDialog extends NomenclaturalAuthorSelectionDialog {
+public class NomenclaturalPersonAuthorSelectionDialog extends PersonSelectionDialog {
 
-    /**
-     * @param shell
-     * @param conversation
-     * @param title
-     * @param multi
-     * @param settings
-     * @param agent
-     */
-    protected NomenclaturalPersonAuthorSelectionDialog(Shell shell, //ConversationHolder conversation,
-            String title,
-            boolean multi, String settings, TeamOrPersonBase agent, boolean teamMemberSelection) {
-        super(shell, //conversation,
-                title, multi, settings, agent, teamMemberSelection);
-        // TODO Auto-generated constructor stub
+    protected NomenclaturalPersonAuthorSelectionDialog(Shell shell,
+            String title, boolean multi,
+            String settings, Person agent) {
+        super(shell, title, multi, settings, agent);
     }
 
-
-    /**
-     * <p>select</p>
-     *
-     * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-     * @param entity a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
-     * @return a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
-     */
-    public static TeamOrPersonBase select(Shell shell, //ConversationHolder conversation,
-            TeamOrPersonBase entity, boolean teamMemberSelection) {
-        NomenclaturalPersonAuthorSelectionDialog dialog = new NomenclaturalPersonAuthorSelectionDialog(shell, //conversation,
-                "Choose Agent", false, NomenclaturalAuthorSelectionDialog.class.getCanonicalName(), entity,teamMemberSelection);
-        return (TeamOrPersonBase)getSelectionFromDialog(dialog);
+    public static Person select(Shell shell,
+            Person entity, boolean teamMemberSelection) {
+        NomenclaturalPersonAuthorSelectionDialog dialog = new NomenclaturalPersonAuthorSelectionDialog(shell,
+                "Choose Agent", false, NomenclaturalAuthorSelectionDialog.class.getCanonicalName(), entity);
+        return getSelectionFromDialog(dialog);
     }
 
     @Override
     protected void callService(String pattern) {
-        model = CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache(Person.class, limitOfInitialElements, pattern);
+        model = (List)CdmStore.getService(IAgentService.class).getUuidAndAbbrevTitleCache(Person.class, limitOfInitialElements, pattern);
     }
-
-}
+}
\ No newline at end of file
index b5d48ac52d4b2e9ef4068a048647b51ad0bd2162..2c11c0f607429c82f67ae1bceecbe9eaf7ec1d30 100644 (file)
@@ -5,7 +5,7 @@ import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.swt.widgets.Control;
@@ -13,11 +13,11 @@ import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.api.service.IReferenceService;
-import eu.etaxonomy.cdm.api.service.dto.EntityDTOBase.CdmEntity;
 import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.persistence.dto.EntityDTOBase.CdmEntity;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.cdm.persistence.query.MatchMode;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -29,11 +29,11 @@ public class NomenclaturalReferenceSelectionDialog extends
     private TeamOrPersonBase author;
     private boolean firstCall = true;
 
-       protected NomenclaturalReferenceSelectionDialog(Shell shell,//ConversationHolder conversation,
+       protected NomenclaturalReferenceSelectionDialog(Shell shell,
                         String title, boolean multi,
                        Reference reference, boolean inReference, TeamOrPersonBase author) {
                super(shell, //conversation,
-                       title, multi, reference);
+                       title, multi, reference, null);
                this.author = author;
                firstCall = true;
 
@@ -48,10 +48,10 @@ public class NomenclaturalReferenceSelectionDialog extends
         Control control =getSearchField();
         lastSelectedReferences = PreferencesUtil.getLastSelectedReferences();
         if (firstCall && author != null){
-            pattern = author.getNomenclaturalTitle();
+            int authorID = author.getId();
             if (control!= null){
                 firstCall = false;
-                model = CdmStore.getService(IReferenceService.class).getUuidAndAbbrevTitleCacheForAuthor(null, pattern, null);
+                model = CdmStore.getService(IReferenceService.class).getUuidAndAbbrevTitleCacheForAuthorID(null, authorID, null);
             }
 
         }else{
@@ -99,76 +99,14 @@ public class NomenclaturalReferenceSelectionDialog extends
        protected ILabelProvider createListLabelProvider() {
                return new FilteredCdmResourceAbbrevLabelProvider();
        }
-//   @Override
-//   protected void addIdentifierCheckButton(Composite searchAndFilter) {
-//       Button btnCheckButton = new Button(searchAndFilter, SWT.CHECK);
-//       btnCheckButton.setText("Use Identifier");
-//       btnCheckButton.addSelectionListener(new SelectionAdapter() {
-//           @Override
-//           public void widgetSelected(SelectionEvent e) {
-//               useIdentifier = btnCheckButton.getSelection();
-//           }
-//       });
-//   }
 
-       /**
-        * <p>select</p>
-        *
-        * @param reference a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @return a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-        */
-
-       public static Reference select(Shell shell, //ConversationHolder conversation,
+       public static Reference select(Shell shell,
                Reference reference, TeamOrPersonBase author) {
                NomenclaturalReferenceSelectionDialog dialog = new NomenclaturalReferenceSelectionDialog(shell,// conversation,
                                "Choose a reference", isInReference, reference, false, author);
                return getSelectionFromDialog(dialog);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createFilter()
-        */
-       /** {@inheritDoc} */
-//     @Override
-//     protected ItemsFilter createFilter() {
-//             return new ItemsFilter() {
-//
-//                     /**
-//                      * Always returns false to enforce refiltering even if the pattern is equal
-//                      */
-//                     @Override
-//                     public boolean equalsFilter(ItemsFilter filter) {
-//                             return false;
-//                     }
-//
-//                     @Override
-//                     public boolean isConsistentItem(Object item) {
-//                             return false;
-//                     }
-//
-//                     @Override
-//                     public boolean matchItem(Object item) {
-//                             return true;
-////                           String text = null;
-////                           if(item instanceof UuidAndTitleCache){
-////                                   if (((UuidAndTitleCache) item).getAbbrevTitleCache() != null){
-////                                           text = ((UuidAndTitleCache) item).getAbbrevTitleCache();
-////                                   } else{
-////                                           text = ((UuidAndTitleCache) item).getTitleCache();
-////                                   }
-////                           }else if(item instanceof String){
-////                                   text = (String) item;
-////                           }
-////                           return text != null ? matches(text) : false;
-//                     }
-//
-//             };
-//     }
-
-
-
        public class FilteredCdmResourceAbbrevLabelProvider extends LabelProvider {
                @Override
                public String getText(Object element) {
@@ -191,7 +129,7 @@ public class NomenclaturalReferenceSelectionDialog extends
                        }
             return abbrevTitleCache;
                }
-       };
+       }
 
        @Override
     protected Comparator getItemsComparator() {
@@ -235,7 +173,7 @@ public class NomenclaturalReferenceSelectionDialog extends
         if(cdmObject == null){
             return "";
         }
-        if (cdmObject.getAbbrevTitle() != null){
+        if (cdmObject.getAbbrevTitleCache() != null){
             return cdmObject.getAbbrevTitleCache();
         }else{
             return cdmObject.getTitleCache();
@@ -265,4 +203,5 @@ public class NomenclaturalReferenceSelectionDialog extends
 
 
 
+
 }
index f9942d69ab01ee62810314bf240c2fdc6f71c16c..f7acfd51a169ebe049a6d7eb1fefb1352bb63bb4 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.dialog.selection;
 
 import java.util.ArrayList;
@@ -14,71 +13,45 @@ import java.util.EnumSet;
 
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
 import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
 
 /**
- * <p>OriginalSourceTypeSelectionDialog class.</p>
- *
  * @author c.mathew
  * @created 18.07.2013
- * @version 1.0
  */
 public class OriginalSourceTypeSelectionDialog extends
                AbstractFilteredCdmEnumSelectionDialog<OriginalSourceType> {
 
-       /**
-        * <p>select</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @return a {@link eu.etaxonomy.cdm.model.reference.OriginalSourceType} object.
-        */
-       public static OriginalSourceType select(Shell shell, ConversationHolder conversation){
+       public static OriginalSourceType select(Shell shell){
                OriginalSourceTypeSelectionDialog dialog =
                                new OriginalSourceTypeSelectionDialog(shell,
-                                               conversation,
                                                "Choose Original Source Type",
                                                false,
                                                OriginalSourceTypeSelectionDialog.class.getCanonicalName());
                return getSelectionFromDialog(dialog);
        }
 
-       /**
-        * <p>Constructor for FilteredDerivedUnitSelectionDialog.</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param title a {@link java.lang.String} object.
-        * @param multi a boolean.
-        * @param settings a {@link java.lang.String} object.
-        */
        protected OriginalSourceTypeSelectionDialog(Shell shell,
-                       ConversationHolder conversation,
                        String title,
                        boolean multi,
                        String settings) {
-               super(shell, conversation, title, multi, settings, OriginalSourceType.PrimaryTaxonomicSource);
+               super(shell,  title, multi, settings, OriginalSourceType.PrimaryTaxonomicSource);
        }
 
-
-       /** {@inheritDoc} */
        @Override
        protected void initModel() {
-               model = new ArrayList<OriginalSourceType>();
+               model = new ArrayList<>();
                model.addAll(EnumSet.allOf(OriginalSourceType.class));
        }
 
-       /** {@inheritDoc} */
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
                return null;
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getNewWizardLinkText() {
                return null;
        }
-}
+}
\ No newline at end of file
index 20677bf77514ddf13ef4420906e4d712f1bd63e5..49aa07ce388754d4c3ba39d5630583dc7988767e 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.dialog.selection;
 
 import java.util.UUID;
@@ -20,76 +19,40 @@ import eu.etaxonomy.taxeditor.newWizard.NewPersonWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>FilteredPersonSelectionDialog class.</p>
- *
  * @author n.hoffmann
  * @created Sep 24, 2009
- * @version 1.0
  */
 public class PersonSelectionDialog extends
-                       AbstractFilteredCdmResourceSelectionDialog<Person> {
+                       AgentSelectionDialog<Person> {
 
-       /**
-        * <p>select</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param person a {@link eu.etaxonomy.cdm.model.agent.Person} object.
-        * @return a {@link eu.etaxonomy.cdm.model.agent.Person} object.
-        */
-       public static Person select(Shell shell, //onversationHolder conversation,
-               Person person){
-               PersonSelectionDialog dialog = new PersonSelectionDialog(shell, //conversation,
+       public static Person select(Shell shell, Person person){
+               PersonSelectionDialog dialog = new PersonSelectionDialog(shell,
                                "Choose a person", false, PersonSelectionDialog.class.getCanonicalName(), person);
                return getSelectionFromDialog(dialog);
        }
 
-       /**
-        * <p>Constructor for FilteredPersonSelectionDialog.</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param title a {@link java.lang.String} object.
-        * @param multi a boolean.
-        * @param settings a {@link java.lang.String} object.
-        * @param cdmObject a {@link eu.etaxonomy.cdm.model.agent.Person} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       protected PersonSelectionDialog(Shell shell,// ConversationHolder conversation,
-               String title,
+       protected PersonSelectionDialog(Shell shell, String title,
                        boolean multi, String settings, Person cdmObject) {
-               super(shell, //conversation,
-                       title, multi, settings, cdmObject);
+               super(shell, title, multi, settings, cdmObject, true);
        }
 
-
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#getPersistentObject(java.util.UUID)
-        */
-       /** {@inheritDoc} */
        @Override
        protected Person getPersistentObject(UUID uuid) {
                return (Person) CdmStore.getService(IAgentService.class).load(uuid);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#search
-        */
-       /** {@inheritDoc} */
        @Override
        protected void callService(String pattern) {
                model = CdmStore.getService(IAgentService.class).getUuidAndTitleCache(Person.class, limitOfInitialElements, pattern);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
                return new NewPersonWizard();
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String[] getNewWizardText() {
                return new String[]{"New Person"};
        }
-}
+}
\ No newline at end of file
index 86c0f1d792801c176aff44f84b292baa7a7a1d23..42782334fab69469b4d6854de1f37354f82fecc1 100644 (file)
@@ -26,7 +26,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class PolytomousKeySelectionDialog extends
                AbstractFilteredCdmResourceSelectionDialog<PolytomousKey> {
 
-       public static PolytomousKey select(Shell shell, //ConversationHolder conversation,
+       public static PolytomousKey select(Shell shell,
                PolytomousKey key){
                PolytomousKeySelectionDialog dialog = new PolytomousKeySelectionDialog(shell, //conversation,
                                "Choose Polytomous Key", false, PolytomousKeySelectionDialog.class.getCanonicalName(), key);
@@ -41,7 +41,7 @@ public class PolytomousKeySelectionDialog extends
         * @param settings
         * @param cdmObject
         */
-       protected PolytomousKeySelectionDialog(Shell shell,//ConversationHolder conversation,
+       protected PolytomousKeySelectionDialog(Shell shell,
                         String title, boolean multi,
                        String settings, PolytomousKey cdmObject) {
                super(shell, //conversation,
index a0166e807c8606d2898143c0866b5a26ac3182d9..f26ca3a2eaa0459f0d4aa02e52d256d4d87f970e 100644 (file)
@@ -28,7 +28,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class PrimerSelectionDialog extends
 AbstractFilteredCdmResourceSelectionDialog<Primer> {
 
-    public static Primer select(Shell shell, //ConversationHolder conversation,
+    public static Primer select(Shell shell,
             Primer primer){
         PrimerSelectionDialog dialog = new PrimerSelectionDialog(shell, //conversation,
                 "Choose Primer", false, PrimerSelectionDialog.class.getCanonicalName(), primer);
@@ -38,7 +38,7 @@ AbstractFilteredCdmResourceSelectionDialog<Primer> {
     /**
      * <p>Constructor for FilteredDerivedUnitSelectionDialog.</p>
      */
-    protected PrimerSelectionDialog(Shell shell, //ConversationHolder conversation,
+    protected PrimerSelectionDialog(Shell shell,
             String title,
             boolean multi, String settings, Primer cdmObject) {
         super(shell, //conversation,
index 671eeaef2dac418d13833cc0be1523fa03d97616..98eb33a4aa52a0fbd072095f636c514f7b6f3aa2 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.dialog.selection;
 
 import java.util.ArrayList;
@@ -17,7 +16,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -41,11 +40,8 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>FilteredReferenceSelectionDialog class.</p>
- *
  * @author n.hoffmann
  * @created 04.06.2009
- * @version 1.0
  */
 public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelectionDialog<Reference> {
 
@@ -53,91 +49,52 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
     private Reference currentReference;
     List<String> lastSelectedReferences = null;
     Map<UUID, AlternativeIdentifier> identifierMap;
+    Set<Reference> preSelectedReferences = new HashSet<>();
 
-       /**
-        * <p>select</p>
-        *
-        * @param reference a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @return a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-        */
-       public static Reference select(Shell shell, //ConversationHolder conversation,
+       public static Reference select(Shell shell,
                Reference reference, boolean isInReference) {
                ReferenceSelectionDialog dialog = new ReferenceSelectionDialog(shell, //conversation,
                                "Choose a reference", false, reference, isInReference);
                return getSelectionFromDialog(dialog);
        }
 
-       /**
-     * <p>select</p>
-     *
-     * @param reference a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-     * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-     * @return a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-     */
-    public static Reference select(Shell shell, //ConversationHolder conversation,
+    public static Reference select(Shell shell,
             Reference reference) {
         ReferenceSelectionDialog dialog = new ReferenceSelectionDialog(shell, //conversation,
-                "Choose a reference", false, reference);
+                "Choose a reference", false, reference, null);
         return getSelectionFromDialog(dialog);
     }
 
+    public static Reference select(Shell shell, String title,
+            Reference reference, Set<Reference> preSelectedReferences) {
+        ReferenceSelectionDialog dialog = new ReferenceSelectionDialog(shell, //conversation,
+                title, false, reference, preSelectedReferences);
+        return getSelectionFromDialog(dialog);
+    }
 
-
-       /**
-        * <p>Constructor for FilteredReferenceSelectionDialog.</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param title a {@link java.lang.String} object.
-        * @param reference a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param multi a boolean.
-        */
-       protected ReferenceSelectionDialog(Shell shell, //ConversationHolder conversation,
-               String title, boolean multi, Reference reference) {
-               super(shell, //conversation,
+    protected ReferenceSelectionDialog(Shell shell,
+               String title, boolean multi, Reference reference, Set<Reference> preSelectedReferences) {
+               super(shell,
                        title, multi, ReferenceSelectionDialog.class.getCanonicalName(), reference);
                this.currentReference = reference;
-
-
+               this.preSelectedReferences = preSelectedReferences;
        }
-
-
-
-
-       /**
-     * <p>Constructor for FilteredReferenceSelectionDialog.</p>
-     *
-     * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-     * @param title a {@link java.lang.String} object.
-     * @param reference a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
-     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-     * @param multi a boolean.
-     */
-    protected ReferenceSelectionDialog(Shell shell, //ConversationHolder conversation,
+    protected ReferenceSelectionDialog(Shell shell,
             String title, boolean multi, Reference reference, boolean isInReference) {
         super(shell, //conversation,
                 title, multi, ReferenceSelectionDialog.class.getCanonicalName());
-        this.isInReference = isInReference;
+        ReferenceSelectionDialog.isInReference = isInReference;
         this.currentReference = reference;
-
     }
 
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog#getPersistentObject(java.util.UUID)
-        */
-       /** {@inheritDoc} */
        @Override
        protected Reference getPersistentObject(UUID cdmUuid) {
            if (lastSelectedReferences == null){
                lastSelectedReferences = new ArrayList<>();
            }
-           if (lastSelectedReferences.size()<6){
+           if (lastSelectedReferences.size()<6 && !lastSelectedReferences.contains(cdmUuid.toString())){
                lastSelectedReferences.add(cdmUuid.toString());
-           }else{
+           }else if (lastSelectedReferences.size()==6 && !lastSelectedReferences.contains(cdmUuid.toString())){
                lastSelectedReferences.remove(0);
                lastSelectedReferences.add(cdmUuid.toString());
            }
@@ -146,10 +103,6 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
                return CdmStore.getService(IReferenceService.class).load(cdmUuid);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog#search
-        */
-       /** {@inheritDoc} */
        @Override
        protected void callService(String pattern) {
 
@@ -159,6 +112,13 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
                for (String uuidString: lastSelectedReferences){
                    uuids.add(UUID.fromString(uuidString));
                }
+               if (preSelectedReferences != null){
+               for (Reference ref: preSelectedReferences){
+                   if (ref != null){
+                       uuids.add(ref.getUuid());
+                   }
+                }
+               }
                if (!uuids.isEmpty()){
                    if (currentReference != null){
                        uuids.remove(currentReference.getUuid());
@@ -170,7 +130,6 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
                    }else{
                        model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCacheForUUIDS(uuids);
                    }
-
                }
 
            } else if (isInReference && currentReference != null){
@@ -181,11 +140,9 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
                     model.clear();
                 }
                 for (IdentifiedEntityDTO dto: list){
-
                     model.add(dto.getCdmEntity());
                 }
             }else{
-
                 model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCache(limitOfInitialElements,pattern, currentReference.getType());
             }
 
@@ -195,31 +152,27 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
                 if (model!= null){
                     model.clear();
                 }
-                identifierMap = new HashMap();
+                identifierMap = new HashMap<>();
                 for (IdentifiedEntityDTO dto: list){
                     if (dto.getIdentifier() != null){
                         identifierMap.put(dto.getCdmEntity().getUuid(), dto.getIdentifier());
                     }
                     model.add(dto.getCdmEntity());
-
                 }
             }else if (isUseIdentifier() ){
                 List<IdentifiedEntityDTO<Reference>> list = CdmStore.getService(IReferenceService.class).listByIdentifierAbbrev(pattern, null, MatchMode.BEGINNING, limitOfInitialElements);
                 if (model!= null){
                     model.clear();
                 }
-                identifierMap = new HashMap();
+                identifierMap = new HashMap<>();
                 for (IdentifiedEntityDTO dto: list){
                     identifierMap.put(dto.getCdmEntity().getUuid(), dto.getIdentifier());
                     model.add(dto.getCdmEntity());
-
                 }
             }else {
                 model = CdmStore.getService(IReferenceService.class).getUuidAndTitleCache(limitOfInitialElements,pattern);
             }
-
         }
-
        }
 
        @Override
@@ -238,7 +191,7 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
             }
         });
     }
-       /** {@inheritDoc} */
+
        @Override
        protected String getTitle(Reference cdmObject) {
                if(cdmObject == null){
@@ -246,24 +199,23 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
                }else{
                    return super.getTitle(cdmObject);
                }
-//             }else{
-//                     return DefaultReferenceCacheStrategy.putAuthorToEndOfString(cdmObject.getTitleCache(), cdmObject.getAuthorship().getTitleCache());
-//             }
        }
 
-       /** {@inheritDoc} */
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
-               return new NewReferenceWizard();
+           if (isInReference){
+               if (currentReference != null) {
+                return new NewReferenceWizard(this.currentReference.getType());
+            }
+           }
+               return new NewReferenceWizard(null);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String[] getNewWizardText() {
                return new String[]{"New Reference"};
        }
 
-       /** {@inheritDoc} */
     @Override
     protected void search() {
         Control control =getSearchField();
@@ -300,11 +252,9 @@ public class ReferenceSelectionDialog extends AbstractFilteredCdmResourceSelecti
                         titleCache += " (-)";
                     }
                 }
-
             }
 
             return titleCache;
         }
-    };
-
-}
+    }
+}
\ No newline at end of file
index e4995d8116fae4526e8f82322ec9d8433d89d132..c1d79aff6734517ea46aabfcf2241ab80da0abca 100644 (file)
@@ -27,7 +27,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class RightsSelectionDialog extends AbstractFilteredCdmResourceSelectionDialog<Rights> {
 
 
-    public static Rights select(Shell shell, //ConversationHolder conversation,
+    public static Rights select(Shell shell,
             Rights rights){
         RightsSelectionDialog dialog = new RightsSelectionDialog(shell, //conversation,
                 "Choose Rights", false, RightsSelectionDialog.class.getCanonicalName(), rights);
@@ -37,7 +37,7 @@ public class RightsSelectionDialog extends AbstractFilteredCdmResourceSelectionD
     /**
      * <p>Constructor for FilteredDerivedUnitSelectionDialog.</p>
      */
-    protected RightsSelectionDialog(Shell shell, //ConversationHolder conversation,
+    protected RightsSelectionDialog(Shell shell,
             String title,
             boolean multi, String settings, Rights rights) {
         super(shell, //conversation,
index 0786eac362dfc5fc0ba4c1ce307262acb7f39898..9972a6d6a3e9ec446af1afaf6548b71d9cd0a3b2 100644 (file)
@@ -87,7 +87,7 @@ import eu.etaxonomy.taxeditor.ui.dialog.selection.CdmFilteredItemsSelectionDialo
  * @author k.luther
  * @date 15.11.2017d
  */
-public abstract class SearchDialog<T extends ICdmBase> extends Dialog{// implements IConversationEnabled{
+public abstract class SearchDialog<T extends ICdmBase> extends Dialog{
 
     private TableViewer list;
     private Text searchField;
index 295021ae79db6fa80a6be63a18b8a5ffcfdd0689..08031d0ca7b09af2646eb57236c7e409052d701b 100644 (file)
@@ -13,7 +13,7 @@ import java.util.UUID;
 \r
 import org.eclipse.swt.widgets.Shell;\r
 \r
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;\r
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;\r
 import eu.etaxonomy.cdm.model.agent.AgentBase;\r
 import eu.etaxonomy.cdm.model.agent.Institution;\r
 import eu.etaxonomy.cdm.model.agent.Person;\r
@@ -55,97 +55,97 @@ 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.reference.NomenclaturalReferenceDetailElement;\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.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
  * @date Jan 25, 2012\r
- *\r
  */\r
 public class SelectionDialogFactory {\r
 \r
-    public static <T extends ICdmBase> T getSelectionFromDialog(Class<T> clazz, Shell shell, //ConversationHolder conversation,\r
+    public static <T extends ICdmBase> T getSelectionFromDialog(Class<T> clazz, Shell shell,\r
             T currentSelection){\r
         return getSelectionFromDialog(clazz, shell, //conversation,\r
                 currentSelection, null);\r
     }\r
 \r
-       public static <T extends ICdmBase> T getSelectionFromDialog(Class<T> clazz, Shell shell, //ConversationHolder conversation,\r
+       public static <T extends ICdmBase> T getSelectionFromDialog(Class<T> clazz, Shell shell,\r
                T currentSelection, ICdmFormElement parentElement){\r
 \r
                if(clazz.equals(Taxon.class)){\r
-                       return (T) TaxonSelectionDialog.selectTaxon(shell, //conversation,\r
-                               (Taxon) currentSelection);\r
+                       return (T) TaxonSelectionDialog.selectTaxon(shell, (Taxon) currentSelection);\r
                }\r
                if(clazz.equals(Synonym.class)){\r
-                       return (T) TaxonBaseSelectionDialog.selectSynonym(shell );//,conversation);\r
+                       return (T) TaxonBaseSelectionDialog.selectSynonym(shell );\r
                }\r
                if(clazz.equals(TaxonBase.class)){\r
-                       return (T) TaxonBaseSelectionDialog.selectTaxonBase(shell);//, conversation);\r
+                       return (T) TaxonBaseSelectionDialog.selectTaxonBase(shell);\r
                }\r
                if(clazz.equals(Classification.class)){\r
-                       return (T) ClassificationSelectionDialog.select(shell, //conversation,\r
-                               (Classification) currentSelection);\r
+                       return (T) ClassificationSelectionDialog.select(shell, (Classification) currentSelection);\r
                }\r
                if(clazz.equals(TaxonNode.class)){\r
-                       return (T) TaxonNodeSelectionDialog.select(shell, //conversation,\r
+                       return (T) TaxonNodeSelectionDialog.select(shell,\r
                                null, null, (TaxonNode) currentSelection, ((TaxonNode) currentSelection).getClassification().getUuid());\r
                }\r
-               if(clazz.equals(Reference.class) && parentElement instanceof NomenclaturalReferenceDetailElement){\r
-                       return (T) NomenclaturalReferenceSelectionDialog.select(shell, //conversation,\r
-                               (Reference) currentSelection, ((NomenclaturalReferenceDetailElement)parentElement).getEntity().getCombinationAuthorship());\r
+               if(clazz.equals(Reference.class) && parentElement != null && parentElement.getParentElement() instanceof NomenclaturalSourceDetailElement){\r
+                       return (T) NomenclaturalReferenceSelectionDialog.select(shell,\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, //conversation,\r
+            return (T) CommonNameReferenceSelectionDialog.select(shell,\r
                     (Reference) currentSelection);\r
         }\r
                if(clazz.equals(Reference.class)){\r
                    if (parentElement instanceof ReferenceDetailElement){\r
-                       return (T) ReferenceSelectionDialog.select(shell, //conversation,\r
+                       return (T) ReferenceSelectionDialog.select(shell,\r
                                ((ReferenceDetailElement) parentElement).getEntity(), true);\r
                    }\r
-                       return (T) ReferenceSelectionDialog.select(shell, //conversation,\r
-                               (Reference) currentSelection);\r
+                       return (T) ReferenceSelectionDialog.select(shell, (Reference) currentSelection);\r
                }\r
 \r
                if(clazz.equals(TaxonName.class)){\r
-                       return (T) NameSelectionDialog.select(shell, //conversation,\r
-                               (TaxonName) currentSelection);\r
+                       return (T) NameSelectionDialog.select(shell, (TaxonName)currentSelection);\r
                }\r
                if(clazz.equals(Team.class)){\r
-                       return (T) TeamSelectionDialog.select(shell, //conversation,\r
-                               (Team) currentSelection);\r
+                       return (T) TeamSelectionDialog.select(shell, (Team)currentSelection);\r
                }\r
-               if(clazz.equals(TeamOrPersonBase.class) && parentElement instanceof AuthorshipDetailElement){\r
-            return (T) NomenclaturalAuthorSelectionDialog.select(shell, //conversation,\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(TeamOrPersonBase.class)){\r
-                   //TODO: add TeamOrPersonBaseSelectionDialog (see ticket #4545)\r
-                   return (T) TeamOrPersonBaseSelectionDialog.select(shell, //conversation,\r
+        }else if(clazz.equals(AgentBase.class) && (parentElement instanceof FieldUnitFacadeGeneralDetailElement || parentElement instanceof DerivedUnitGeneralDetailElement)){\r
+                   return (T) CollectorSelectionDialog.select(shell,\r
                            (TeamOrPersonBase) currentSelection, false);\r
-               }\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
+                    (TeamOrPersonBase) currentSelection, false);\r
+        }\r
                if(clazz.equals(Person.class) && parentElement instanceof TeamMemberElement){\r
-                   return (T) NomenclaturalPersonAuthorSelectionDialog.select(shell, //conversation,\r
+                   return (T) NomenclaturalPersonAuthorSelectionDialog.select(shell,\r
                            (TeamOrPersonBase) currentSelection, true);\r
         }\r
                if(clazz.equals(AgentBase.class)){\r
-                       return (T) AgentSelectionDialog.select(shell, //conversation,\r
-                               (AgentBase) currentSelection, false);\r
+                       return (T) AgentSelectionDialog.select(shell, (AgentBase)currentSelection, false);\r
                }\r
                if(clazz.equals(Feature.class)){\r
-                       return (T) FeatureSelectionDialog.select(shell, //conversation,\r
-                               (Feature) currentSelection);\r
+                       return (T) FeatureSelectionDialog.select(shell, (Feature)currentSelection);\r
                }\r
                if(clazz.equals(TermTree.class)){\r
-                       return (T) FeatureTreeSelectionDialog.select(shell, //conversation,\r
-                               (TermTree) currentSelection);\r
+                       return (T) FeatureTreeSelectionDialog.select(shell, (TermTree)currentSelection);\r
                }\r
                if(clazz.equals(PolytomousKey.class)){\r
-                       return (T) PolytomousKeySelectionDialog.select(shell, //conversation,\r
-                               (PolytomousKey) currentSelection);\r
+                       return (T) PolytomousKeySelectionDialog.select(shell, (PolytomousKey)currentSelection);\r
                }\r
                if(clazz.equals(PolytomousKeyNode.class)){\r
                        MessagingUtils.warningDialog("Not implemented yet", SelectionDialogFactory.class,\r
@@ -153,90 +153,72 @@ public class SelectionDialogFactory {
                        return null;\r
                }\r
                if(clazz.equals(DerivedUnit.class)){\r
-                   return (T) DerivedUnitSelectionDialog.select(shell, //conversation,\r
-                           (DerivedUnit) currentSelection);\r
+                   return (T) DerivedUnitSelectionDialog.select(shell, (DerivedUnit) currentSelection);\r
                }\r
                if(clazz.equals(FieldUnit.class)){\r
-                   return (T) FieldUnitSelectionDialog.select(shell, //conversation,\r
-                           (FieldUnit) currentSelection);\r
+                   return (T) FieldUnitSelectionDialog.select(shell, (FieldUnit) currentSelection);\r
                }\r
                if(clazz.equals(SpecimenOrObservationBase.class)){\r
-                   return (T) SpecimenOrObservationBaseSelectionDialog.select(shell, //conversation,\r
+                   return (T) SpecimenOrObservationBaseSelectionDialog.select(shell,\r
                            (SpecimenOrObservationBase) currentSelection);\r
                }\r
                if(clazz.equals(NamedArea.class)){\r
                    if(parentElement instanceof IEntityElement && ((IEntityElement) parentElement).getEntity() instanceof DerivedUnitFacade){\r
-                       return (T) NamedAreaSelectionDialog.select(shell, //conversation,\r
+                       return (T) NamedAreaSelectionDialog.select(shell,\r
                                (NamedArea) currentSelection, DerivedUnit.class.getCanonicalName(), Country.uuidCountryVocabulary);\r
                    }\r
                    else if(parentElement instanceof CommonNameDetailElement ){\r
-                return (T) CommonNameNamedAreaSelectionDialog.select(shell, //conversation,\r
+                return (T) CommonNameNamedAreaSelectionDialog.select(shell,\r
                         (NamedArea) currentSelection, parentElement.getClass().getCanonicalName());\r
             }\r
                    else{\r
-\r
-                           List<UUID> uuidList = PreferencesUtil.createUUIDListFromStringPref(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey(), false);\r
-                           UUID[] uuidArray = null;\r
-                           if (uuidList != null){\r
-                               uuidArray = new UUID[uuidList.size()];\r
-                               uuidList.toArray(uuidArray);\r
-\r
-                           }\r
-                           return (T)NamedAreaSelectionDialog.select(shell, (NamedArea) currentSelection, null, uuidArray);\r
-\r
+                   List<UUID> uuidList = PreferencesUtil.createUUIDListFromStringPref(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey(), false);\r
+                   UUID[] uuidArray = null;\r
+                   if (uuidList != null){\r
+                       uuidArray = new UUID[uuidList.size()];\r
+                       uuidList.toArray(uuidArray);\r
+                   }\r
+                   return (T)NamedAreaSelectionDialog.select(shell, (NamedArea) currentSelection, null, uuidArray);\r
                    }\r
                }\r
                if(clazz.equals(Collection.class)){\r
-                       return (T) CollectionSelectionDialog.select(shell, //conversation,\r
-                               (Collection) currentSelection);\r
+                       return (T) CollectionSelectionDialog.select(shell, (Collection) currentSelection);\r
                }\r
                if(clazz.equals(User.class) && parentElement instanceof MemberDetailElement){\r
                    MemberDetailSection section = (MemberDetailSection)((MemberDetailElement)parentElement).getParentElement();\r
-                       return (T) UserSelectionDialog.select(shell, //conversation,\r
-                               (User) currentSelection, section.getEntity());\r
+                       return (T) UserSelectionDialog.select(shell,(User) currentSelection, section.getEntity());\r
                }\r
                if(clazz.equals(GrantedAuthorityImpl.class)){\r
-                       return (T) GrantedAuthoritySelectionDialog.select(shell, //conversation,\r
-                               (GrantedAuthorityImpl) currentSelection);\r
+                       return (T) GrantedAuthoritySelectionDialog.select(shell, (GrantedAuthorityImpl)currentSelection);\r
                }\r
                if (clazz.equals(Person.class)){\r
-                       return (T) PersonSelectionDialog.select(shell, //conversation,\r
-                               (Person) currentSelection);\r
+                       return (T) PersonSelectionDialog.select(shell, (Person)currentSelection);\r
                }\r
                if(clazz.equals(Group.class) &&  parentElement instanceof GroupsByUserDetailElement){\r
                    GroupsByUserDetailSection section =(GroupsByUserDetailSection)((GroupsByUserDetailElement)parentElement).getParentElement();\r
-                       return (T) GroupSelectionDialog.select(shell, //conversation,\r
-                               (Group) currentSelection, section.getEntity());\r
+                       return (T) GroupSelectionDialog.select(shell, (Group)currentSelection, section.getEntity());\r
                }\r
                if(clazz.equals(Institution.class)){\r
-                       return (T) InstitutionSelectionDialog.select(shell, //conversation,\r
-                               (Institution) currentSelection);\r
+                       return (T) InstitutionSelectionDialog.select(shell, (Institution)currentSelection);\r
                }\r
                if(clazz.equals(Primer.class)){\r
-                   return (T) PrimerSelectionDialog.select(shell, //conversation,\r
-                           (Primer) currentSelection);\r
+                   return (T) PrimerSelectionDialog.select(shell, (Primer)currentSelection);\r
                }\r
                if(clazz.equals(Amplification.class)){\r
-                   return (T) AmplificationSelectionDialog.select(shell, //conversation,\r
-                           (Amplification) currentSelection);\r
+                   return (T) AmplificationSelectionDialog.select(shell, (Amplification)currentSelection);\r
                }\r
                if(clazz.equals(Media.class)){\r
-                   return (T) MediaSelectionDialog.select(shell, //conversation,\r
-                           (Media) currentSelection);\r
+                   return (T) MediaSelectionDialog.select(shell, (Media)currentSelection);\r
                }\r
                if(clazz.equals(Rights.class)){\r
-            return (T) RightsSelectionDialog.select(shell, //conversation,\r
-                    (Rights) currentSelection);\r
+            return (T) RightsSelectionDialog.select(shell, (Rights)currentSelection);\r
         }\r
 \r
                return null;\r
        }\r
 \r
-       public static <T extends ICdmBase> T getSelectionFromExtDialog(Class<T> clazz, Shell shell, //ConversationHolder conversation,\r
+       public static <T extends ICdmBase> T getSelectionFromExtDialog(Class<T> clazz, Shell shell,\r
                ICdmFormElement parentElement){\r
-           return (T) ExtReferenceSelectionDialog.select(shell, //conversation,\r
-                   null);\r
+           return (T) ExtReferenceSelectionDialog.select(shell, null);\r
        }\r
-\r
-\r
-}\r
+}
\ No newline at end of file
index 643501dfbd403faf3a2cd0bf5a2ba25f8d6d00d3..663ba2b9adee77bebe416a2571093a4e6b1aa922 100644 (file)
@@ -26,14 +26,14 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class SpecimenOrObservationBaseSelectionDialog extends
                AbstractFilteredCdmResourceSelectionDialog<SpecimenOrObservationBase> {
 
-       public static SpecimenOrObservationBase select(Shell shell, //ConversationHolder conversation,
+       public static SpecimenOrObservationBase select(Shell shell,
                SpecimenOrObservationBase observation){
                SpecimenOrObservationBaseSelectionDialog dialog = new SpecimenOrObservationBaseSelectionDialog(shell, //conversation,
                                "Choose field unit or derived unit", false, SpecimenOrObservationBaseSelectionDialog.class.getCanonicalName(), observation);
                return getSelectionFromDialog(dialog);
        }
 
-       protected SpecimenOrObservationBaseSelectionDialog(Shell shell, //ConversationHolder conversation,
+       protected SpecimenOrObservationBaseSelectionDialog(Shell shell,
                        String title, boolean multi, String settings,
                        SpecimenOrObservationBase cdmObject) {
                super(shell, //conversation,
index 15df121d38aacdc3933ed050316a2685db300904..7509d85295a302d9e0352ced100f7f6b3b796185 100644 (file)
@@ -1,5 +1,11 @@
-//$Id$
-
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
 import java.util.ArrayList;
@@ -7,71 +13,45 @@ import java.util.EnumSet;
 
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
 
 /**
-* <p>OriginalSourceTypeSelectionDialog class.</p>
-*
 * @author c.mathew
 * @created 18.07.2013
-* @version 1.0
 */
 public class SpecimenOrObservationTypeSelectionDialog extends
                AbstractFilteredCdmEnumSelectionDialog<SpecimenOrObservationType> {
 
-       /**
-        * <p>select</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @return a {@link eu.etaxonomy.cdm.model.reference.OriginalSourceType} object.
-        */
-       public static SpecimenOrObservationType select(Shell shell, ConversationHolder conversation){
+       public static SpecimenOrObservationType select(Shell shell){
                SpecimenOrObservationTypeSelectionDialog dialog =
                                new SpecimenOrObservationTypeSelectionDialog(shell,
-                                               conversation,
                                                "Choose Specimen / Observation Type",
                                                false,
                                                SpecimenOrObservationTypeSelectionDialog.class.getCanonicalName());
                return getSelectionFromDialog(dialog);
        }
 
-       /**
-        * <p>Constructor for FilteredDerivedUnitSelectionDialog.</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param title a {@link java.lang.String} object.
-        * @param multi a boolean.
-        * @param settings a {@link java.lang.String} object.
-        */
        protected SpecimenOrObservationTypeSelectionDialog(Shell shell,
-                       ConversationHolder conversation,
                        String title,
                        boolean multi,
                        String settings) {
-               super(shell, conversation, title, multi, settings, SpecimenOrObservationType.Unknown);
+               super(shell, title, multi, settings, SpecimenOrObservationType.Unknown);
        }
 
-
-       /** {@inheritDoc} */
        @Override
        protected void initModel() {
                model = new ArrayList<SpecimenOrObservationType>();
                model.addAll(EnumSet.allOf(SpecimenOrObservationType.class));
        }
 
-       /** {@inheritDoc} */
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
                return null;
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getNewWizardLinkText() {
                return null;
        }
-}
+}
\ No newline at end of file
index f15b0bd3bae70816f13191366483d9e82991f87d..df960fb37586096a409cf23b19b0748fde520245 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.dialog.selection;
 
 import java.util.Collections;
@@ -27,38 +26,35 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author n.hoffmann
  * @created Sep 21, 2009
- * @version 1.0
  */
 public class TaxonBaseSelectionDialog<T extends TaxonBase> extends AbstractFilteredCdmResourceSelectionDialog {
 
-
-    public static TaxonBase selectTaxonBase(Shell shell){//, ConversationHolder conversation) {
-        AbstractFilteredCdmResourceSelectionDialog<TaxonBase> dialog = new TaxonBaseSelectionDialog(TaxonBase.class, shell, //conversation,
+    public static TaxonBase selectTaxonBase(Shell shell){
+        AbstractFilteredCdmResourceSelectionDialog<TaxonBase> dialog = new TaxonBaseSelectionDialog<>(TaxonBase.class, shell,
                 "Choose a taxon/synonym", false, null, null);
         return getSelectionFromDialog(dialog);
     }
 
-    public static Taxon selectTaxon(Shell shell, //ConversationHolder conversation,
+    public static Taxon selectTaxon(Shell shell,
             Taxon taxonToBeFiltered) {
 
 
-        AbstractFilteredCdmResourceSelectionDialog<TaxonBase> dialog = new TaxonBaseSelectionDialog(Taxon.class, shell, //conversation,
+        AbstractFilteredCdmResourceSelectionDialog<TaxonBase> dialog = new TaxonBaseSelectionDialog<>(Taxon.class, shell,
                 "Choose a taxon", false, null, taxonToBeFiltered);
         return (Taxon) getSelectionFromDialog(dialog);
     }
 
-    public static Synonym selectSynonym(Shell shell){//, ConversationHolder conversation) {
-        AbstractFilteredCdmResourceSelectionDialog<TaxonBase> dialog = new TaxonBaseSelectionDialog(Synonym.class, shell, //conversation,
+    public static Synonym selectSynonym(Shell shell){
+        AbstractFilteredCdmResourceSelectionDialog<TaxonBase> dialog = new TaxonBaseSelectionDialog<>(Synonym.class, shell,
                 "Choose a synonym", false, null, null);
         return (Synonym) getSelectionFromDialog(dialog);
     }
 
     private final Class<? extends TaxonBase> clazz;
 
-    protected TaxonBaseSelectionDialog(Class<? extends TaxonBase> clazz, Shell shell, //ConversationHolder conversation,
+    protected TaxonBaseSelectionDialog(Class<? extends TaxonBase> clazz, Shell shell,
             String title, boolean multi, TaxonBase taxon, TaxonBase taxonToBeFiltered) {
-        super(shell, //conversation,
-                title, multi, TaxonBaseSelectionDialog.class.getCanonicalName(), taxon);
+        super(shell, title, multi, TaxonBaseSelectionDialog.class.getCanonicalName(), taxon);
         if (taxonToBeFiltered != null){
             this.cdmBaseToBeFiltered = new HashSet<>();
             this.cdmBaseToBeFiltered.add(taxonToBeFiltered.getUuid());
@@ -67,27 +63,22 @@ public class TaxonBaseSelectionDialog<T extends TaxonBase> extends AbstractFilte
         search();
     }
 
-    /** {@inheritDoc} */
     @Override
     protected TaxonBase getPersistentObject(UUID uuid) {
         return CdmStore.getService(ITaxonService.class).load(uuid);
     }
 
-    /** {@inheritDoc} */
-    @SuppressWarnings({ "unchecked", "rawtypes" })
+    @SuppressWarnings({ "unchecked"})
        @Override
     protected void callService(String pattern) {
-
         model = CdmStore.getService(ITaxonService.class).getUuidAndTitleCache(limitOfInitialElements, pattern);
     }
 
-    /** {@inheritDoc} */
     @Override
     protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
         return new NewTaxonWizard();
     }
 
-    /** {@inheritDoc} */
     @Override
     protected String[] getNewWizardText() {
         return new String[]{"New Taxon"};
@@ -100,4 +91,4 @@ public class TaxonBaseSelectionDialog<T extends TaxonBase> extends AbstractFilte
         }
       // otherwise result is already sorted
     }
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonNodeAndBoolean.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/TaxonNodeAndBoolean.java
new file mode 100644 (file)
index 0000000..4d4dabe
--- /dev/null
@@ -0,0 +1,50 @@
+/**
+* Copyright (C) 2023 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.dialog.selection;
+
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+
+/**
+ * @author katjaluther
+ * @since 27.10.2023
+ */
+public class TaxonNodeAndBoolean {
+    private TaxonNode node;
+    private Boolean bool;
+    
+    
+    public TaxonNodeAndBoolean(TaxonNode node, Boolean bool) {
+        this.node = node;
+        this.bool = bool;
+        
+    }
+
+    public TaxonNode getNode() {
+        return node;
+    }
+    
+    public void setNode(TaxonNode node) {
+        this.node = node;
+    }
+
+    /**
+     * @return the bool
+     */
+    public Boolean getBool() {
+        return bool;
+    }
+
+    /**
+     * @param bool the bool to set
+     */
+    public void setBool(Boolean bool) {
+        this.bool = bool;
+    }
+
+}
index 4ce08049316c528681ee63851bb4fd2bb6b6f0b5..9959837344066240680b3513e0688ab993b8e3a4 100644 (file)
@@ -16,6 +16,7 @@ import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -27,6 +28,7 @@ import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -36,7 +38,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class TaxonNodeSelectionDialog extends AbstractFilteredCdmResourceSelectionDialog<TaxonNode> implements SelectionListener{
 
-       public static TaxonNode select(Shell shell, //ConversationHolder conversation,
+       public static TaxonNode select(Shell shell,
                String title, Set<UUID> excludeTaxa, TaxonNode node, UUID classificationUUID, boolean allowSelectClassification) {
                TaxonNodeSelectionDialog dialog = new TaxonNodeSelectionDialog(shell,
                                //conversation,
@@ -44,10 +46,10 @@ public class TaxonNodeSelectionDialog extends AbstractFilteredCdmResourceSelecti
                                excludeTaxa,
                                false,
                                node,
-                               classificationUUID, allowSelectClassification);
+                               classificationUUID, allowSelectClassification, false);
                return getSelectionFromDialog(dialog);
        }
-       public static TaxonNode select(Shell shell, //ConversationHolder conversation,
+       public static TaxonNode select(Shell shell,
             String title, Set<UUID> excludeTaxa, TaxonNode node, UUID classificationUUID) {
         TaxonNodeSelectionDialog dialog = new TaxonNodeSelectionDialog(shell,
                 //conversation,
@@ -58,8 +60,23 @@ public class TaxonNodeSelectionDialog extends AbstractFilteredCdmResourceSelecti
                 classificationUUID);
         return getSelectionFromDialog(dialog);
     }
+       
+       public static TaxonNodeAndBoolean select(Shell shell,
+            String title, Set<UUID> excludeTaxa, TaxonNode node, UUID classificationUUID, boolean allowClassification, boolean showDefaultDescription) {
+        TaxonNodeSelectionDialog dialog = new TaxonNodeSelectionDialog(shell,
+                //conversation,
+                title,
+                excludeTaxa,
+                false,
+                node,
+                classificationUUID, allowClassification, showDefaultDescription);
+        TaxonNode nodeResult = getSelectionFromDialog(dialog);
+        TaxonNodeAndBoolean result = new TaxonNodeAndBoolean(nodeResult,dialog.useDefaultDescription);
+        
+        return result;
+    }
 
-       public static UuidAndTitleCache<TaxonNode> selectUuidAndTitleCache(Shell shell, //ConversationHolder conversation,
+       public static UuidAndTitleCache<TaxonNode> selectUuidAndTitleCache(Shell shell,
             String title, Set<UUID> excludeTaxa, TaxonNode node, UUID classificationUUID) {
         TaxonNodeSelectionDialog dialog = new TaxonNodeSelectionDialog(shell,
                 //conversation,
@@ -67,7 +84,7 @@ public class TaxonNodeSelectionDialog extends AbstractFilteredCdmResourceSelecti
                 excludeTaxa,
                 false,
                 node,
-                classificationUUID, false);
+                classificationUUID, false, false);
         return getUuidAndTitleCacheSelectionFromDialog(dialog);
     }
 
@@ -79,9 +96,14 @@ public class TaxonNodeSelectionDialog extends AbstractFilteredCdmResourceSelecti
        private UUID selectedUuid;
 //     private final Set<UUID> excludeTaxa;
        private boolean allowClassificationSelection = false;
+       
+       private boolean useDefaultDescription = false;
+
+       Button checkDefaultDescription; 
+       private boolean showDefaultDescriptionCheck = false;
 
-       protected TaxonNodeSelectionDialog(Shell shell, //ConversationHolder conversation,
-               String title, Set<UUID> excludeTaxa, boolean multi, TaxonNode node, UUID classificationUUID, boolean allowSelectClassification) {
+       protected TaxonNodeSelectionDialog(Shell shell,
+               String title, Set<UUID> excludeTaxa, boolean multi, TaxonNode node, UUID classificationUUID, boolean allowSelectClassification, boolean showDefaultDescription) {
                super(shell, //conversation,
                        title, multi, TaxonNodeSelectionDialog.class.getCanonicalName(), node);
 
@@ -96,18 +118,20 @@ public class TaxonNodeSelectionDialog extends AbstractFilteredCdmResourceSelecti
 
                fillClassifications();
                this.allowClassificationSelection = allowSelectClassification;
+               this.showDefaultDescriptionCheck = showDefaultDescription;
 
                //createClassificationSelectionCombo(shell);
        }
-       protected TaxonNodeSelectionDialog(Shell shell, //ConversationHolder conversation,
+       protected TaxonNodeSelectionDialog(Shell shell,
             String title, Set<UUID> excludeTaxa, boolean multi, TaxonNode node, UUID classificationUUID) {
-           this(shell, title, excludeTaxa, multi, node, classificationUUID, false);
+           this(shell, title, excludeTaxa, multi, node, classificationUUID, false, false);
        }
 
        /** {@inheritDoc} */
        @Override
-       protected Control createDialogArea(Composite parent) {
+       protected Control createDialogArea(Composite parent) {      
            Composite container = (Composite) super.createDialogArea(parent);
+           
                return createClassificationSelectionCombo(container);
        }
 
@@ -118,19 +142,46 @@ public class TaxonNodeSelectionDialog extends AbstractFilteredCdmResourceSelecti
 //             classifications = CdmStore.getTaxonTreeService().list(null, null, null, null, null);
 
                Composite classificationSelection = new Composite(parent, SWT.NULL);
-               classificationSelection.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+               classificationSelection.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, false));
+               
 
                GridLayout layout = new GridLayout();
                classificationSelection.setLayout(layout);
-
+               layout.numColumns = 2;
+
+               if (showDefaultDescriptionCheck) {
+            
+            Label labelDefault = new Label(classificationSelection, SWT.NULL);
+            labelDefault.setText(Messages.TaxonNodeSelectionDialog_0);
+            GridData labelDefaultLayout = new GridData(SWT.LEFT, SWT.TOP, false, false,1,1);
+            labelDefault.setLayoutData(labelDefaultLayout);
+            checkDefaultDescription = new Button(classificationSelection, SWT.CHECK);
+            checkDefaultDescription.addSelectionListener(new SelectionListener() {
+                
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    useDefaultDescription = checkDefaultDescription.getSelection();                    
+                }
+                
+                @Override
+                public void widgetDefaultSelected(SelectionEvent e) {
+                    // TODO Auto-generated method stub
+                    
+                }
+            });
+            
+        }
+               
                Label label = new Label(classificationSelection, SWT.NULL);
                // TODO not working is not really true but leave it here to remind everyone that this is under construction
-               label.setText("Select Classification");
+               label.setText(Messages.TaxonNodeSelectionDialog_1);
+               GridData labelLayout = new GridData(SWT.LEFT, SWT.TOP, true, false,2,1);
+               label.setLayoutData(labelLayout);
                classificationSelectionCombo = new Combo(classificationSelection, SWT.BORDER | SWT.READ_ONLY);
                classificationSelectionCombo.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true));
 
                for(Classification tree : classifications){
-                       classificationSelectionCombo.add(tree.getName().getText(), classifications.indexOf(tree));
+                       classificationSelectionCombo.add(tree.getTitleCache(), classifications.indexOf(tree));
                        if (tree.getUuid().equals(selectedUuid)){
                            selectedClassification = tree;
                        }
@@ -153,7 +204,7 @@ public class TaxonNodeSelectionDialog extends AbstractFilteredCdmResourceSelecti
                        return taxonNode.getTaxon().getTitleCache();
                }
 
-               return "";
+               return ""; //$NON-NLS-1$
        }
 
        @Override
@@ -178,7 +229,7 @@ public class TaxonNodeSelectionDialog extends AbstractFilteredCdmResourceSelecti
        protected void callService(String pattern) {
            model = CdmStore.getService(IClassificationService.class)
                        .getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(
-                                       selectedClassification.getUuid(), limitOfInitialElements, pattern, allowClassificationSelection);
+                                       selectedClassification.getUuid(), limitOfInitialElements, pattern, allowClassificationSelection, true);
        }
 
        @Override
index 6b7c8cd88a185c159eb5eb4906ffa8a562ce2846..796348b89abe01dac6c62fa2b7d7847bdab6f67d 100644 (file)
@@ -11,7 +11,7 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 public class TaxonNodeSelectionNaturalOrderDialog extends\r
                TaxonNodeSelectionDialog {\r
 \r
-       protected TaxonNodeSelectionNaturalOrderDialog(Shell shell,//ConversationHolder conversation,\r
+       protected TaxonNodeSelectionNaturalOrderDialog(Shell shell,\r
                String title,\r
                        Set<UUID> excludeTaxa, boolean multi, TaxonNode node,\r
                        Classification classification) {\r
index 839ac0083a8a57bb0bee110bacf107a7c6fa9947..29f72b2fa0482f81448b5ec269ba8a5efbc8790b 100755 (executable)
@@ -43,7 +43,7 @@ public class TaxonSelectionDialog extends TaxonBaseSelectionDialog<Taxon> {
         // TODO Auto-generated constructor stub
     }
 
-    public static Taxon selectTaxon(Shell shell, //ConversationHolder conversation,
+    public static Taxon selectTaxon(Shell shell,
             Taxon taxonToBeFiltered) {
         AbstractFilteredCdmResourceSelectionDialog<Taxon> dialog = new TaxonSelectionDialog(Taxon.class, shell, //conversation,
                 "Choose a taxon", false, null, taxonToBeFiltered);
index a622e30d386e2d7f1367fab36a4e788e954b6a81..a08fd86ef8465c82b962157cf04f5ca29ec964e7 100755 (executable)
@@ -8,6 +8,8 @@
 */
 package eu.etaxonomy.taxeditor.ui.dialog.selection;
 
+import java.util.List;
+
 import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.cdm.api.service.IAgentService;
@@ -19,57 +21,34 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author k.luther
  * @since 18.03.2019
- *
  */
-public class TeamOrPersonBaseSelectionDialog extends AgentSelectionDialog<TeamOrPersonBase>  {
+public class TeamOrPersonBaseSelectionDialog
+        extends AgentSelectionDialog<TeamOrPersonBase<?>>  {
 
-    /**
-     * @param shell
-     * @param title
-     * @param multi
-     * @param settings
-     * @param agent
-     * @param selectTeamMember
-     */
     protected TeamOrPersonBaseSelectionDialog(Shell shell, String title, boolean multi, String settings,
-            TeamOrPersonBase agent, boolean selectTeamMember) {
+            TeamOrPersonBase<?> agent, boolean selectTeamMember) {
         super(shell, title, multi, settings, agent, selectTeamMember);
-        // TODO Auto-generated constructor stub
     }
 
-
-
-    /**
-     * <p>select</p>
-     *
-     * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-     * @param entity a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
-     * @return a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
-     */
-    public static TeamOrPersonBase select(Shell shell, //ConversationHolder conversation,
-            TeamOrPersonBase entity, boolean selectTeamMember) {
-        TeamOrPersonBaseSelectionDialog dialog = new TeamOrPersonBaseSelectionDialog(shell, //conversation,
+    public static TeamOrPersonBase<?> select(Shell shell,
+            TeamOrPersonBase<?> entity, boolean selectTeamMember) {
+        TeamOrPersonBaseSelectionDialog dialog = new TeamOrPersonBaseSelectionDialog(shell,
                 "Choose Team or Person", false, TeamOrPersonBaseSelectionDialog.class.getCanonicalName(), entity, selectTeamMember);
-        return (TeamOrPersonBase)getSelectionFromDialog(dialog);
+        return getSelectionFromDialog(dialog);
     }
 
     @Override
-    void callService(String pattern) {
-        model = CdmStore.getService(IAgentService.class).getUuidAndTitleCache(Team.class,limitOfInitialElements, pattern);
-        model.addAll( CdmStore.getService(IAgentService.class).getUuidAndTitleCache(Person.class,limitOfInitialElements, pattern));
+    protected void callService(String 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));
     }
 
-
-
-    /**
-     * @param cdmObject
-     * @return
-     */
-    protected String getTitle(TeamOrPersonBase cdmObject) {
+    @Override
+    protected String getTitle(TeamOrPersonBase<?> cdmObject) {
         if(cdmObject == null){
             return "";
         }
         return cdmObject.getTitleCache();
     }
-}
+}
\ No newline at end of file
index 787092116a72cc113ad9631ef81c66e4d690379b..b9aa719fefba85e486143a7ec1a1faee5305ed71 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.dialog.selection;
 
 import java.util.UUID;
@@ -21,72 +20,43 @@ import eu.etaxonomy.taxeditor.newWizard.NewTeamWizard;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- * <p>FilteredTeamSelectionDialog class.</p>
- *
  * @author n.hoffmann
  * @created Sep 24, 2009
- * @version 1.0
  */
 public class TeamSelectionDialog extends
                AbstractFilteredCdmResourceSelectionDialog<Team> {
 
-       /**
-        * <p>select</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param team a {@link eu.etaxonomy.cdm.model.agent.Team} object.
-        * @return a {@link eu.etaxonomy.cdm.model.agent.Team} object.
-        */
-       public static Team select(Shell shell, //ConversationHolder conversation,
+       public static Team select(Shell shell,
                Team team){
-               TeamSelectionDialog dialog = new TeamSelectionDialog(shell, //conversation,
+               TeamSelectionDialog dialog = new TeamSelectionDialog(shell,
                                "Choose Team", false, TeamSelectionDialog.class.getCanonicalName(), team);
                return getSelectionFromDialog(dialog);
        }
 
-       /**
-        * <p>Constructor for FilteredTeamSelectionDialog.</p>
-        *
-        * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
-        * @param title a {@link java.lang.String} object.
-        * @param multi a boolean.
-        * @param settings a {@link java.lang.String} object.
-        * @param cdmObject a {@link eu.etaxonomy.cdm.model.agent.Team} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       protected TeamSelectionDialog(Shell shell, //ConversationHolder conversation,
+       protected TeamSelectionDialog(Shell shell,
                        String title, boolean multi, String settings,
                        Team cdmObject) {
-               super(shell, //conversation,
-                       title, multi, settings, cdmObject);
+               super(shell, title, multi, settings, cdmObject);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.dialogs.filteredSelection.AbstractFilteredCdmResourceSelectionDialog#search
-        */
-       /** {@inheritDoc} */
        @Override
        protected void callService(String pattern) {
                model = CdmStore.getService(IAgentService.class).getUuidAndTitleCache(Team.class, limitOfInitialElements, pattern);
 
        }
 
-       /** {@inheritDoc} */
        @Override
        protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
                return new NewTeamWizard();
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String[] getNewWizardText() {
                return new String[]{"New Team"};
        }
 
-       /** {@inheritDoc} */
        @Override
        protected Team getPersistentObject(UUID uuid) {
                return CdmBase.deproxy(CdmStore.getService(IAgentService.class).load(uuid), Team.class);
        }
-}
+}
\ No newline at end of file
index 9ae2fdb7f732907f53064b83524f0c15c17e956c..13f69605be775734b88939bb12796f696123f831 100644 (file)
@@ -43,7 +43,7 @@ public class UserSelectionDialog extends
         * @param user
         * @return
         */
-       public static User select(Shell shell, //ConversationHolder conversation,
+       public static User select(Shell shell,
                User user, Group group){
                UserSelectionDialog dialog = new UserSelectionDialog(shell, //conversation,
                                "Choose User", false, UserSelectionDialog.class.getCanonicalName(), user, group);
@@ -58,7 +58,7 @@ public class UserSelectionDialog extends
         * @param settings
         * @param cdmObject
         */
-       protected UserSelectionDialog(Shell shell, //ConversationHolder conversation,
+       protected UserSelectionDialog(Shell shell,
                        String title, boolean multi, String settings, User cdmObject, Group group) {
                super(shell, //conversation,
                        title, multi, settings, cdmObject);
index 676eb368a4bec6ac35f79037d0083cb94f0b18fa..7deb5e9d7ccf62fe9d5b57fc3748c1d6a283936a 100644 (file)
@@ -9,7 +9,7 @@
 
 package eu.etaxonomy.taxeditor.ui.element;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.util.IPropertyChangeListener;
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.jface.wizard.WizardPage;
@@ -18,60 +18,32 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.forms.widgets.ScrolledForm;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
- * <p>
- * Abstract AbstractCdmEntityWizardPage class.
- * </p>
- *
  * @author n.hoffmann
  * @created Jun 1, 2010
  */
 public abstract class AbstractCdmEntityWizardPage<T> extends WizardPage
-               implements IConversationEnabled, IPropertyChangeListener {
+               implements IPropertyChangeListener {
 
        protected CdmFormFactory formFactory;
        protected T entity;
 
        AbstractCdmDetailElement<T> detailElement;
-       private final ConversationHolder conversation;
 
-       /**
-        * <p>
-        * Constructor for AbstractCdmEntityWizardPage.
-        * </p>
-        *
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param conversation
-        *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-        *            object.
-        * @param entity
-        *            a T object.
-        * @param <T>
-        *            a T object.
-        */
-       protected AbstractCdmEntityWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, T entity) {
+       protected AbstractCdmEntityWizardPage(CdmFormFactory formFactory, T entity) {
                super("page");
                this.formFactory = formFactory;
                this.entity = entity;
-               this.conversation = conversation;
                setDescription(getEntityTitle());
 
                formFactory.addPropertyChangeListener(this);
                setPageComplete(false);
        }
 
-       /**
-        * @return
-        */
+
        private String getEntityTitle() {
                if (entity instanceof IIdentifiableEntity) {
                        ((IIdentifiableEntity) entity).getTitleCache();
@@ -79,7 +51,6 @@ public abstract class AbstractCdmEntityWizardPage<T> extends WizardPage
                return "";
        }
 
-       /** {@inheritDoc} */
        @Override
        public void createControl(Composite parent) {
                ScrolledForm scrolledForm = formFactory.createScrolledForm(parent);
@@ -93,7 +64,7 @@ public abstract class AbstractCdmEntityWizardPage<T> extends WizardPage
                layout.bottomMargin = 25;
         control.setLayout(layout);
                WizardPageRootElement rootElement = new WizardPageRootElement(
-                               formFactory, control, getConversationHolder());
+                               formFactory, control);
 
                Color bgColor = getShell().getBackground();
 
@@ -106,39 +77,17 @@ public abstract class AbstractCdmEntityWizardPage<T> extends WizardPage
                setControl(scrolledForm);
        }
 
-       /**
-        * <p>
-        * Getter for the field <code>entity</code>.
-        * </p>
-        *
-        * @return a T object.
-        */
        public T getEntity() {
                return entity;
        }
 
-       /**
-        * Creates the detail element for this wizard page
-        *
-        * @param rootElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @return a
-        *         {@link eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement}
-        *         object.
-        */
        public abstract AbstractCdmDetailElement<T> createElement(
                        ICdmFormElement rootElement);
 
-       protected class WizardPageRootElement extends RootElement implements
-                       IConversationEnabled {
-
-               private final ConversationHolder conversation;
+       protected class WizardPageRootElement extends RootElement {
 
-               public WizardPageRootElement(CdmFormFactory formFactory,
-                               Composite layoutComposite, ConversationHolder conversation) {
+               public WizardPageRootElement(CdmFormFactory formFactory, Composite layoutComposite) {
                        super(formFactory, layoutComposite);
-                       this.conversation = conversation;
                }
 
                @Override
@@ -148,15 +97,6 @@ public abstract class AbstractCdmEntityWizardPage<T> extends WizardPage
                        detailElement = createElement(this);
                        ((Composite) getControl()).layout();
                }
-
-               @Override
-               public ConversationHolder getConversationHolder() {
-                       return conversation;
-               }
-
-               @Override
-               public void update(CdmDataChangeMap changeEvents) {
-               }
        }
 
        @Override
@@ -193,20 +133,6 @@ public abstract class AbstractCdmEntityWizardPage<T> extends WizardPage
                return true;
        }
 
-       /**
-        * <p>
-        * getConversationHolder
-        * </p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-        *         object.
-        */
-       @Override
-       public ConversationHolder getConversationHolder() {
-               return conversation;
-       }
-
-       /** {@inheritDoc} */
        @Override
        public void dispose() {
                if (detailElement != null) {
@@ -216,21 +142,7 @@ public abstract class AbstractCdmEntityWizardPage<T> extends WizardPage
                super.dispose();
        }
 
-       /**
-        * <p>
-        * Getter for the field <code>detailElement</code>.
-        * </p>
-        *
-        * @return a
-        *         {@link eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement}
-        *         object.
-        */
        public AbstractCdmDetailElement<T> getDetailElement() {
                return detailElement;
        }
-
-       /** {@inheritDoc} */
-       @Override
-       public void update(CdmDataChangeMap changeEvents) {
-       }
-}
+}
\ No newline at end of file
index 68a14bac87b48f13851edad429836bb9a75e2e4a..8811160e684b4ea49e81762927530a3e0618f903 100644 (file)
@@ -1,8 +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.element;\r
 \r
+import java.util.ArrayList;\r
 import java.util.ConcurrentModificationException;\r
 import java.util.HashSet;\r
 import java.util.List;\r
@@ -17,9 +23,13 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;\r
 import org.eclipse.ui.forms.widgets.Section;\r
 import org.eclipse.ui.forms.widgets.TableWrapData;\r
+import org.joda.time.DateTime;\r
 \r
+import eu.etaxonomy.cdm.common.CdmUtils;\r
+import eu.etaxonomy.cdm.model.permission.User;\r
 import eu.etaxonomy.taxeditor.model.AbstractUtility;\r
 import eu.etaxonomy.taxeditor.model.MessagingUtils;\r
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
 \r
 /**\r
  * @author n.hoffmann\r
@@ -39,7 +49,6 @@ public abstract class AbstractCdmFormElement implements ICdmFormElement {
 \r
        private Color persistentBackgroundColor;\r
 \r
-\r
        protected AbstractCdmFormElement(CdmFormFactory formFactory, Composite layoutComposite){\r
                this.layoutComposite = layoutComposite;\r
                this.formFactory = formFactory;\r
@@ -65,8 +74,6 @@ public abstract class AbstractCdmFormElement implements ICdmFormElement {
 \r
        /**\r
         * Returns all Controls that are managed by this element\r
-        *\r
-        * @return a {@link java.util.Set} object.\r
         */\r
        @Override\r
     public Set<Control> getControls(){\r
@@ -74,9 +81,7 @@ public abstract class AbstractCdmFormElement implements ICdmFormElement {
        }\r
 \r
        /**\r
-        * adds the control to the set of controls that are managed by this element\r
-        *\r
-        * @param child a {@link org.eclipse.swt.widgets.Control} object.\r
+        * Adds the control to the set of controls that are managed by this element\r
         */\r
        protected void addControl(Control child){\r
                controls.add(child);\r
@@ -96,17 +101,11 @@ public abstract class AbstractCdmFormElement implements ICdmFormElement {
                return elements;\r
        }\r
 \r
-       /**\r
-        * <p>Getter for the field <code>parentElement</code>.</p>\r
-        *\r
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.\r
-        */\r
        @Override\r
     public ICdmFormElement getParentElement(){\r
                return parentElement;\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
     public void addElement(ICdmFormElement element){\r
                elements.add(element);\r
@@ -193,21 +192,10 @@ public abstract class AbstractCdmFormElement implements ICdmFormElement {
                }\r
        }\r
 \r
-       /**\r
-        * <p>Getter for the field <code>layoutComposite</code>.</p>\r
-        *\r
-        * @return a {@link org.eclipse.swt.widgets.Composite} object.\r
-        */\r
        @Override\r
     public Composite getLayoutComposite() {\r
                return layoutComposite;\r
        }\r
-\r
-       /**\r
-        * <p>Setter for the field <code>layoutComposite</code>.</p>\r
-        *\r
-        * @param layoutComposite a {@link org.eclipse.swt.widgets.Composite} object.\r
-        */\r
        public void setLayoutComposite(Composite layoutComposite){\r
                this.layoutComposite = layoutComposite;\r
        }\r
@@ -225,33 +213,28 @@ public abstract class AbstractCdmFormElement implements ICdmFormElement {
                GridData gridData = new GridData();\r
                gridData.verticalIndent = indent;\r
             this.layoutComposite.setLayoutData(gridData);\r
-\r
         }\r
        }\r
-       /**\r
-        * <p>Getter for the field <code>propertyChangeListeners</code>.</p>\r
-        *\r
-        * @return a {@link java.util.Set} object.\r
-        */\r
+\r
        @Override\r
     public List<IPropertyChangeListener> getPropertyChangeListeners() {\r
                return propertyChangeListeners;\r
        }\r
-\r
-       /** {@inheritDoc} */\r
        @Override\r
     public void setPropertyChangeListeners(List<IPropertyChangeListener> propertyChangeListeners){\r
                this.propertyChangeListeners = propertyChangeListeners;\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
     public void firePropertyChangeEvent(CdmPropertyChangeEvent event) {\r
            //TODO: replace propertyChangeListeners with formFactory.getPropertyChangeListeners() and remove member propertyChangeListeners from AbstractCdmFormElement\r
                Assert.isNotNull(propertyChangeListeners, "Property change listeners are not present");\r
-\r
+               List<IPropertyChangeListener> temp = new ArrayList<>();\r
+               for (Object listener :propertyChangeListeners) {\r
+                       temp.add((IPropertyChangeListener)listener);\r
+               }\r
                try{\r
-                       for(Object listener : propertyChangeListeners){\r
+                       for(Object listener : temp){\r
                                ((IPropertyChangeListener)listener).propertyChange(event);\r
                        }\r
                }catch(ConcurrentModificationException e){\r
@@ -260,7 +243,9 @@ public abstract class AbstractCdmFormElement implements ICdmFormElement {
                        // and here: http://dev.e-taxonomy.eu/trac/ticket/2438\r
                        // Ignoring the CME because nothing bad is happening\r
                        MessagingUtils.warn(getClass(), "ConcurrentModificationException. Can be ignored.");\r
+                       e.printStackTrace();\r
                }\r
+               temp = null;\r
        }\r
 \r
        /**\r
@@ -283,7 +268,6 @@ public abstract class AbstractCdmFormElement implements ICdmFormElement {
                firePropertyChangeEvent(new CdmPropertyChangeEvent(object, originatingEvent));\r
        }\r
 \r
-\r
        /**\r
         * {@inheritDoc}\r
         *\r
@@ -298,7 +282,6 @@ public abstract class AbstractCdmFormElement implements ICdmFormElement {
                // implement in subclasses\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
     public boolean containsFormElement(ICdmFormElement formElement){\r
                if(formElement == this){\r
@@ -319,8 +302,6 @@ public abstract class AbstractCdmFormElement implements ICdmFormElement {
                // empty default implementation\r
        }\r
 \r
-\r
-       /** {@inheritDoc} */\r
        @Override\r
        public void setBackground(Color color) {\r
                for(ICdmFormElement element : getElements()){\r
@@ -342,4 +323,19 @@ public abstract class AbstractCdmFormElement implements ICdmFormElement {
        public Color getColor(String colorId){\r
                return AbstractUtility.getColor(colorId);\r
        }\r
+       \r
+       protected String dateFormat(DateTime dateTime){\r
+               if(dateTime == null){\r
+                       return "";\r
+               }\r
+               return CdmUtils.Nz(dateTime.toString(PreferencesUtil.getDateFormatPattern()));\r
+       }\r
+       \r
+       protected String userFormat(User user){\r
+               if(user == null){\r
+                       return "";\r
+               }\r
+               // TODO agree on what to display username or real name or even more from shibboleth\r
+               return CdmUtils.Nz(user.getUsername());\r
+       }\r
 }\r
index c5718b7d4236df8c163087073995b3dc62f71574..595708563df95c52e859c3ec43529433fb9b291d 100644 (file)
@@ -1,5 +1,10 @@
 /**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
  *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
  */
 package eu.etaxonomy.taxeditor.ui.element;
 
@@ -30,8 +35,6 @@ import org.eclipse.ui.forms.widgets.Section;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 import org.eclipse.ui.forms.widgets.ToggleHyperlink;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -46,10 +49,11 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
  *
  * @author n.hoffmann
  * @created Feb 22, 2010
- * @param <T>
  */
 //TODO shouldn't ENTITY be bound with super class ICdmBase for example (AbstractFormSection<ENTITY extends ICdmBase>)?
-public abstract class AbstractFormSection<ENTITY> extends Section implements ISelectionChangedListener, IEntityElement<ENTITY>, IConversationEnabled {
+public abstract class AbstractFormSection<ENTITY>
+        extends Section
+        implements ISelectionChangedListener, IEntityElement<ENTITY> {
 
     /**
      * The default number of columns in detail sections
@@ -71,22 +75,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
        private Color persistentBackgroundColor;
 
        /**
-        * <p>
         * Constructor for AbstractFormSection.
-        * </p>
-        *
-        * @param conversation
-        *            TODO
-        * @param style
-        *            a int.
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param parentElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @param <ENTITY>
-        *            a ENTITY object.
         */
     protected AbstractFormSection(CdmFormFactory formFactory, ICdmFormElement parentElement, int style) {
                super(parentElement.getLayoutComposite(), style);
@@ -108,27 +97,10 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
                client.setLayout(layout);
 
                this.setClient(client);
-
        }
 
-           /**
-     * <p>
+       /**
      * Constructor for AbstractFormSection.
-     * </p>
-     *
-     * @param formFactory
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-     *            object.
-     * @param conversation
-     *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-     *            object.
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param selectionProvider
-     *            a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-     * @param style
-     *            a int.
      */
     protected AbstractFormSection(CdmFormFactory formFactory, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
         this(formFactory, parentElement, style);
@@ -136,79 +108,35 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
     }
 
        /**
-        * <p>
         * Getter for the field <code>propertyChangeListeners</code>.
-        * </p>
-        *
-        * @return a {@link java.util.Set} object.
         */
        @Override
     public List<IPropertyChangeListener> getPropertyChangeListeners() {
                return propertyChangeListeners;
        }
 
-       /** {@inheritDoc} */
        @Override
     public void setPropertyChangeListeners(
                        List<IPropertyChangeListener> propertyChangeListeners) {
                this.propertyChangeListeners = propertyChangeListeners;
        }
 
-       /**
-        * <p>
-        * Setter for the field <code>entity</code>.
-        * </p>
-        *
-        * @param entity
-        *            a ENTITY object.
-        */
+       @Override
+       public ENTITY getEntity() {
+           return entity;
+       }
        public void setEntity(ENTITY entity) {
                this.entity = entity;
        }
 
-       /**
-        * <p>
-        * Getter for the field <code>entity</code>.
-        * </p>
-        *
-        * @return a ENTITY object.
-        */
-       @Override
-    public ENTITY getEntity() {
-               return entity;
-       }
-
-       /**
-        * <p>
-        * getToggle
-        * </p>
-        *
-        * @return a {@link org.eclipse.ui.forms.widgets.ToggleHyperlink} object.
-        */
        public ToggleHyperlink getToggle() {
                return this.toggle;
        }
 
-       /**
-        * <p>
-        * getSection
-        * </p>
-        *
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
-        *         object.
-        */
        public AbstractFormSection<ENTITY> getSection() {
                return this;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.forms.IPropertyChangeEmitter#firePropertyChangeEvent
-        * ()
-        */
-       /** {@inheritDoc} */
        @Override
     public void firePropertyChangeEvent(CdmPropertyChangeEvent event) {
         Assert.isNotNull(propertyChangeListeners, "No property change listeners.");
@@ -247,44 +175,24 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
                                originatingEvent));
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see org.eclipse.swt.widgets.Composite#setFocus()
-        */
-       /** {@inheritDoc} */
        @Override
        public boolean setFocus() {
                return getClient().setFocus();
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse
-        * .jface.util.PropertyChangeEvent)
-        */
-       /** {@inheritDoc} */
        @Override
     public void propertyChange(PropertyChangeEvent event) {
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.swt.widgets.Control#setBackground(org.eclipse.swt.graphics
-        * .Color)
-        */
-       /** {@inheritDoc} */
        @Override
        public void setBackground(Color color) {
                for (ICdmFormElement element : getElements()) {
                        element.setBackground(color);
                }
-               getLayoutComposite().setBackground(color);
+               if (!getLayoutComposite().isDisposed()){
+                       getLayoutComposite().setBackground(color);
+               }
                super.setBackground(color);
        }
 
@@ -299,15 +207,6 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
                return persistentBackgroundColor;
        }
 
-
-       /**
-        * <p>
-        * widgetSelected
-        * </p>
-        *
-        * @param e
-        *            a {@link org.eclipse.swt.events.SelectionEvent} object.
-        */
        public void widgetSelected(SelectionEvent e) {
         Widget widget = e.widget;
 
@@ -337,7 +236,6 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
                }
        }
 
-       /** {@inheritDoc} */
        @Override
     public void setSelected(boolean selected) {
                if (selected) {
@@ -348,7 +246,6 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
                }
        }
 
-       /** {@inheritDoc} */
        @Override
     public void selectionChanged(SelectionChangedEvent event) {
                if (event.getSelection() == CdmFormFactory.EMPTY_SELECTION) {
@@ -366,54 +263,23 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
                }
        }
 
-       /**
-        * <p>
-        * addSelectionListener
-        * </p>
-        *
-        * @param listener
-        *            a {@link org.eclipse.swt.events.SelectionListener} object.
-        */
        public void addSelectionListener(SelectionListener listener) {
                addListener(SWT.Selection, new TypedListener(listener));
        }
 
-       /**
-        * <p>
-        * removeSelectionListener
-        * </p>
-        *
-        * @param listener
-        *            a {@link org.eclipse.swt.events.SelectionListener} object.
-        */
        public void removeSelectionListener(SelectionListener listener) {
                removeListener(SWT.Selection, listener);
        }
 
-       /** {@inheritDoc} */
        @Override
     public void addElement(ICdmFormElement element) {
                elements.add(element);
        }
 
-       /**
-        * <p>
-        * removeElement
-        * </p>
-        *
-        * @param element
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        */
        protected void removeElement(ICdmFormElement element) {
                elements.remove(element);
        }
 
-       /**
-        * <p>
-        * removeElements
-        * </p>
-        */
        @Override
     public void removeElements() {
                for (Iterator<ICdmFormElement> formElementIterator = getElements().iterator();formElementIterator.hasNext();) {
@@ -452,11 +318,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
        }
 
        /**
-        * <p>
         * Getter for the field <code>parentElement</code>.
-        * </p>
-        *
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         */
        @Override
     public ICdmFormElement getParentElement() {
@@ -464,24 +326,13 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
        }
 
        /**
-        * <p>
         * Getter for the field <code>elements</code>.
-        * </p>
-        *
-        * @return a {@link java.util.Set} object.
         */
        @Override
     public Set<ICdmFormElement> getElements() {
                return elements;
        }
 
-       /**
-        * <p>
-        * getControls
-        * </p>
-        *
-        * @return a {@link java.util.Set} object.
-        */
        @Override
     public Set<Control> getControls() {
                Set<Control> controls = new HashSet<>();
@@ -493,26 +344,17 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
                return controls;
        }
 
-       /** {@inheritDoc} */
        @Override
        public void dispose() {
                removeElements();
                super.dispose();
        }
 
-       /**
-        * <p>
-        * getLayoutComposite
-        * </p>
-        *
-        * @return a {@link org.eclipse.swt.widgets.Composite} object.
-        */
        @Override
     public Composite getLayoutComposite() {
                return (Composite) getClient();
        }
 
-       /** {@inheritDoc} */
        @Override
     public boolean containsFormElement(ICdmFormElement formElement) {
                if (formElement == this) {
@@ -529,61 +371,16 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
        }
 
        /**
-        * <p>
         * Getter for the field <code>formFactory</code>.
-        * </p>
-        *
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
         */
        @Override
     public CdmFormFactory getFormFactory() {
                return formFactory;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.forms.ICdmFormElement#refresh()
-        */
        @Override
     public void refresh() {
                // empty default implementation
-
-       }
-
-       /**
-        * <p>
-        * getConversationHolder
-        * </p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-        *         object.
-        */
-       @Override
-    public ConversationHolder getConversationHolder() {
-           if(AbstractUtility.getActivePart() instanceof IConversationEnabled){
-            return ((IConversationEnabled) AbstractUtility.getActivePart()).getConversationHolder();
-        }
-           if(getParentElement() instanceof RootElement || getParentElement() == null){
-
-               Object activeEditor = AbstractUtility.getActiveEditor();
-               if(activeEditor instanceof IConversationEnabled){
-                   ConversationHolder conversation = ((IConversationEnabled) AbstractUtility.getActiveEditor()).getConversationHolder();
-                   return conversation;
-               }
-           }else if(getParentElement() instanceof IConversationEnabled){
-               return ((IConversationEnabled) getParentElement()).getConversationHolder();
-           }
-               MessagingUtils.error(getClass(), "Could not get conversation for AbstractFormSection. There is an error in the implementation. There should have been an active editor but it wasn't",
-                               new IllegalArgumentException());
-               return null;
-
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void update(CdmDataChangeMap changeEvents) {
-
        }
 
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractRelevanceFormElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/AbstractRelevanceFormElement.java
new file mode 100644 (file)
index 0000000..73b52cf
--- /dev/null
@@ -0,0 +1,40 @@
+/**
+* Copyright (C) 2021 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.element;
+
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author a.mueller
+ * @since 19.01.2021
+ */
+public abstract class AbstractRelevanceFormElement
+        extends AbstractCdmFormElement
+        implements ICacheRelevantFormElement {
+
+    protected CacheRelevanceHelper cacheRelevanceHelper = new CacheRelevanceHelper();
+
+    protected AbstractRelevanceFormElement(CdmFormFactory formFactory, Composite layoutComposite) {
+        super(formFactory, layoutComposite);
+    }
+
+    public AbstractRelevanceFormElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+        super(formFactory, formElement);
+    }
+
+    @Override
+    public void addDependsOnCache(ToggleableTextElement toggleElement) {
+        cacheRelevanceHelper.addDependsOnCache(toggleElement);
+    }
+
+    @Override
+    public CacheRelevance cacheRelevance() {
+        return cacheRelevanceHelper.cacheRelevance();
+    }
+}
index 6ab022bd5f7dce2610f96d2b899e9bb3c21ad271..90508a42ca586ce28cc46d274f695589d4eea300 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.element;
 
 import org.eclipse.jface.resource.JFaceResources;
@@ -16,18 +15,16 @@ import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
-import eu.etaxonomy.taxeditor.l10n.Messages;
-
 /**
- *
  * @author pplitzner
  * @date Sep 21, 2015
- *
  */
 public abstract class AbstractUriWithExceptionLabelElement <T> extends TextWithLabelElement {
 
     protected Label labelException;
 
+    protected String exceptionString;
+
        protected AbstractUriWithExceptionLabelElement(CdmFormFactory formFactory,
                        ICdmFormElement parentElement, String labelString,
                        T initialObject, Integer textHeight, int style) {
@@ -42,12 +39,12 @@ public abstract class AbstractUriWithExceptionLabelElement <T> extends TextWithL
 
         //uri text
         initText(formFactory, null, textHeight, null, false, style, getLayoutComposite());
-
+        setParsedText(initialObject);
         //exceptionLabel
-        initExceptionLabel(getLayoutComposite(), formFactory, initialObject);
+        initExceptionLabel(getLayoutComposite(), formFactory);
     }
 
-    protected void initExceptionLabel(Composite parent, CdmFormFactory formFactory, T initialObject) {
+    protected void initExceptionLabel(Composite parent, CdmFormFactory formFactory) {
         labelException = formFactory.createLabel(parent, "", SWT.WRAP); //$NON-NLS-1$
                int numColumns = AbstractFormSection.DEFAULT_NUM_COLUMNS;
                if(parent.getLayout() instanceof TableWrapLayout){
@@ -55,11 +52,11 @@ public abstract class AbstractUriWithExceptionLabelElement <T> extends TextWithL
                }
         labelException.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(numColumns, 1));
         labelException.setBackground(getPersistentBackground());
-               addControl(labelException);
-               setParsedText(initialObject);
+        labelException.setSize(1, 0);
+        addControl(labelException);
+               this.getLayoutComposite().layout();
     }
 
-
     public abstract void setParsedText(T object);
 
     protected abstract T getParsedText() throws Exception;
@@ -68,14 +65,17 @@ public abstract class AbstractUriWithExceptionLabelElement <T> extends TextWithL
         try {
             labelException.setFont(JFaceResources.getFontRegistry().get(JFaceResources.DEFAULT_FONT));
             labelException.setForeground(getPersistentBackground());
-            labelException.setText(""); //$NON-NLS-1$
+            labelException.setText("");
+            labelException.requestLayout();//$NON-NLS-1$
             return getParsedText();
         } catch (Exception e) {
             labelException.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT));
             labelException.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
-            labelException.setText(Messages.UriWithLabelElement_URL_NOT_SAVED+e.getLocalizedMessage());
+            labelException.setText(exceptionString + e.getLocalizedMessage());
+            labelException.requestLayout();
             return null;
         }
     }
 
-}
+
+}
\ No newline at end of file
index 198fbf2a30df7f07179dd4e65507b0097514a18c..4d66a835e6f881e799f4979cb879ad99a78f5634 100755 (executable)
@@ -10,7 +10,7 @@ package eu.etaxonomy.taxeditor.ui.element;
 
 import java.math.BigDecimal;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.widgets.Display;
@@ -21,7 +21,6 @@ import org.eclipse.swt.widgets.Display;
  */
 public class BigDecimalWithLabelElement extends NumberWithLabelElement {
 
-
     public BigDecimalWithLabelElement(CdmFormFactory toolkit, ICdmFormElement parentElement, String labelString,
             Number initialNumber, int style) {
         super(toolkit, parentElement, labelString, initialNumber, style);
index f2ed742d0f713a619def115d01026f09a48ab89b..57c2e3cabfe039e37eb0e37f0363b308389b69aa 100644 (file)
@@ -1,10 +1,13 @@
 /**
- *
- */
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.ui.element;
 
-import java.net.URI;
-
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.browser.Browser;
 import org.eclipse.swt.events.ControlEvent;
@@ -12,7 +15,7 @@ import org.eclipse.swt.events.ControlListener;
 import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.ui.forms.widgets.TableWrapData;
 
-
+import eu.etaxonomy.cdm.common.URI;
 
 /**
  * <p>BrowserElement class.</p>
@@ -31,7 +34,7 @@ public class BrowserElement extends AbstractCdmFormElement implements ControlLis
         * @param style a int.
         * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
         * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param imageUri a {@link java.net.URI} object.
+        * @param imageUri a {@link eu.etaxonomy.cdm.common.URI} object.
         */
        protected BrowserElement(CdmFormFactory formFactory, ICdmFormElement parentElement, URI imageUri, int style) {
                super(formFactory, parentElement);
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CacheRelevance.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CacheRelevance.java
new file mode 100644 (file)
index 0000000..2abf7fb
--- /dev/null
@@ -0,0 +1,72 @@
+/**
+* Copyright (C) 2021 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.element;
+
+import org.eclipse.swt.graphics.Color;
+
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.preference.Resources;
+
+/**
+ * @author a.mueller
+ * @since 20.01.2021
+ */
+public enum CacheRelevance{
+    CACHE1(Resources.COLOR_COMPOSITE_IRRELEVANT1, null),
+    CACHE2(Resources.COLOR_COMPOSITE_IRRELEVANT2, null),
+
+    CACHE1_2(Resources.COLOR_COMPOSITE_IRRELEVANT1_2, null),
+    CACHE1_LIGHT(Resources.COLOR_COMPOSITE_IRRELEVANT1_LIGHT, CACHE1),
+    CACHE2_LIGHT(Resources.COLOR_COMPOSITE_IRRELEVANT2_LIGHT, CACHE2),
+    CACHE1_2_LIGHT(Resources.COLOR_COMPOSITE_IRRELEVANT1_2_LIGHT, CACHE1_2),
+    NONE(Resources.COLOR_COMPOSITE_BACKGROUND, null),
+    ;
+
+    private final Color color;
+    private CacheRelevance light;
+
+
+    private CacheRelevance(String colorStr, CacheRelevance main){
+        this.color = AbstractUtility.getColor(colorStr);
+        light = this;
+        if (main != null){
+            main.light = this;
+        }
+    }
+
+    public Color getColor() {
+        return color;
+    }
+    public Color getColorLight() {
+        return color;
+    }
+
+    public Color getColor(String alternativeColorForNone) {
+        if (this == NONE){
+            return AbstractUtility.getColor(alternativeColorForNone);
+        }else{
+            return color;
+        }
+    }
+
+    public CacheRelevance addCacheRelevance(CacheRelevance that){
+        if (this == CACHE1 && that == CACHE2 || this == CACHE2 && that == CACHE1){
+            return CACHE1_2;
+        } else if (this == CACHE1_LIGHT && that == CACHE2_LIGHT || this == CACHE2_LIGHT && that == CACHE1_LIGHT){
+            return CACHE1_2_LIGHT;
+        }else {
+            return CacheRelevance.values()[Math.min(this.ordinal(), that.ordinal())];
+        }
+    }
+
+    public CacheRelevance getLight(){
+        return light;
+    }
+
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CacheRelevanceHelper.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CacheRelevanceHelper.java
new file mode 100644 (file)
index 0000000..a1cacf3
--- /dev/null
@@ -0,0 +1,72 @@
+/**
+* Copyright (C) 2021 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.element;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author a.mueller
+ * @date 22.01.2021
+ */
+public class CacheRelevanceHelper {
+
+    protected Set<ToggleableTextElement> cacheDependencies = new HashSet<>();
+
+    public CacheRelevance cacheRelevance() {
+        CacheRelevance result = CacheRelevance.NONE;
+        for (ToggleableTextElement cache : this.cacheDependencies){
+            if (cache != null){  //null should not happen anymore but just in case
+                if (cache.getState()){
+                    result = result.addCacheRelevance(cache.getRelevance());
+                }
+                //add recursion for light dependencies
+                result = result.addCacheRelevance(cache.cacheRelevance().getLight());
+            }
+        }
+        return result;
+    }
+
+    public void addDependsOnCache(ToggleableTextElement toggleElement) {
+        if (toggleElement != null){
+            cacheDependencies.add(toggleElement);
+        }
+    }
+
+    /**
+     * For hierarchical caching
+     */
+    public ToggleableTextElement[] getDependenciesArray() {
+        return this.cacheDependencies.toArray(new ToggleableTextElement[0]);
+    }
+
+    public static void addDependsOnCacheForSubElements(AbstractFormSection<?> section,
+            ToggleableTextElement toggleElement) {
+        section.getElements().stream()
+            .filter(x -> x instanceof ICacheRelevantFormElement)
+            .forEach(
+                x->((ICacheRelevantFormElement)x).addDependsOnCache(toggleElement));
+    }
+
+    public static void updateCacheRelevanceForSubelements(AbstractFormSection<?> section) {
+        updateCacheRelevanceForSubelements(section.getElements());
+    }
+
+    public static void updateCacheRelevanceForSubelements(Set<ICdmFormElement> elements) {
+//        System.out.print("setIrrelevant: " + this.getClass().getName());
+//        System.out.println("");
+        elements.stream()
+            .filter(x -> x instanceof ICacheRelevantFormElement)
+            .forEach(
+                    x->((ICacheRelevantFormElement)x).updateCacheRelevance());
+
+    }
+
+
+}
old mode 100644 (file)
new mode 100755 (executable)
index 1b5e49a..f93b560
@@ -1,11 +1,16 @@
 /**
- *
- */
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.ui.element;
 
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.Comparator;
+import java.util.EnumSet;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -49,10 +54,11 @@ import org.joda.time.DateTime;
 import org.joda.time.Partial;
 import org.springframework.security.core.GrantedAuthority;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.common.DOI;
+import eu.etaxonomy.cdm.common.URI;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 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;
@@ -61,7 +67,6 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.Credit;
 import eu.etaxonomy.cdm.model.common.ExtendedTimePeriod;
 import eu.etaxonomy.cdm.model.common.Extension;
-import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
 import eu.etaxonomy.cdm.model.common.Identifier;
 import eu.etaxonomy.cdm.model.common.LSID;
@@ -83,7 +88,6 @@ import eu.etaxonomy.cdm.model.description.KeyStatement;
 import eu.etaxonomy.cdm.model.description.MeasurementUnit;
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.description.QuantitativeData;
-import eu.etaxonomy.cdm.model.description.State;
 import eu.etaxonomy.cdm.model.description.StateData;
 import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
 import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue;
@@ -99,7 +103,6 @@ import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.media.MediaRepresentation;
 import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
 import eu.etaxonomy.cdm.model.media.Rights;
-import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.NameRelationshipType;
 import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
@@ -108,6 +111,7 @@ import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.name.TextualTypeDesignation;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
+import eu.etaxonomy.cdm.model.occurrence.OccurrenceStatus;
 import eu.etaxonomy.cdm.model.permission.GrantedAuthorityImpl;
 import eu.etaxonomy.cdm.model.permission.Group;
 import eu.etaxonomy.cdm.model.permission.User;
@@ -121,8 +125,17 @@ import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.IEnumTerm;
 import eu.etaxonomy.cdm.model.term.Representation;
 import eu.etaxonomy.cdm.model.term.TermBase;
+import eu.etaxonomy.cdm.model.term.TermCollection;
+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.AbstractTermDto;
+import eu.etaxonomy.cdm.persistence.dto.AnnotationDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureStateDto;
+import eu.etaxonomy.cdm.persistence.dto.ICdmBaseDto;
+import eu.etaxonomy.cdm.persistence.dto.MarkerDto;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -130,9 +143,10 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.combo.InverseTermWrapper;
 import eu.etaxonomy.taxeditor.ui.combo.MisappliedRelationshipComboElement;
-import eu.etaxonomy.taxeditor.ui.combo.NameRelationshipTypeCombo;
-import eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement;
+import eu.etaxonomy.taxeditor.ui.combo.RelationshipTypeCombo;
+import eu.etaxonomy.taxeditor.ui.combo.TermCollectionComboElement;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
+//import eu.etaxonomy.taxeditor.ui.combo.term.TermDtoComboElement;
 import eu.etaxonomy.taxeditor.ui.dialog.CloneClassificationDetailElement;
 import eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection.UnitType;
 import eu.etaxonomy.taxeditor.ui.mvc.element.DateElement;
@@ -145,6 +159,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;
@@ -196,18 +211,28 @@ import eu.etaxonomy.taxeditor.ui.section.description.detail.TemporalDataDetailEl
 import eu.etaxonomy.taxeditor.ui.section.description.detail.TextDataDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.feature.CharacterDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.feature.CharacterDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.feature.CharacterDtoDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.feature.CharacterDtoDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.feature.CharacterNodeDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.feature.CharacterNodeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.feature.CharacterNodeDtoDetailElement;
+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.FeatureNodeDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.feature.FeatureNodeDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.feature.FeatureTreeDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.feature.FeatureTreeDetailSection;
 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;
+import eu.etaxonomy.taxeditor.ui.section.feature.TermNodeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.feature.TermTreeDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.feature.TermTreeDetailElementForNode;
+import eu.etaxonomy.taxeditor.ui.section.feature.TermTreeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.feature.TermTreeDetailSectionForNode;
 import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityDetailSection;
@@ -242,8 +267,6 @@ import eu.etaxonomy.taxeditor.ui.section.name.NomenclaturalStatusElement;
 import eu.etaxonomy.taxeditor.ui.section.name.NomenclaturalStatusSection;
 import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.name.ProtologueElement;
-import eu.etaxonomy.taxeditor.ui.section.name.ProtologueSection;
 import eu.etaxonomy.taxeditor.ui.section.name.RuleConsideredElement;
 import eu.etaxonomy.taxeditor.ui.section.name.SpecimenTypeDesignationElement;
 import eu.etaxonomy.taxeditor.ui.section.name.TextTypeDesignationElement;
@@ -256,23 +279,26 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseDetailElement
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitMediaSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationEventDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationHistoryDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.EmptySection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitGeneralDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitGeneralDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeGeneralDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.GeoScopeDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.GeoScopePolyKeyDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.OccurrenceStatusElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.OriginalLabelDataSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.SourceCollectionDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenCollectionDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenCollectionDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.StatusCollectionDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.association.DerivedUnitTypeDesignationElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.association.DerivedUnitTypeDesignationSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.association.TaxonAssociationDetailElement;
@@ -316,20 +342,34 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.TissueSampleGeneralDetai
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.TissueSampleGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.media.MediaSpecimenGeneralDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.media.MediaSpecimenGeneralDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.AdvancedNomenclaturalSourceElement;
+import eu.etaxonomy.taxeditor.ui.section.reference.AdvancedSourceElement;
+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;
 import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.SecundumSourceElement;
+import eu.etaxonomy.taxeditor.ui.section.reference.SingleSourceSection;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.AnnotationDtoElement;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.AnnotationDtoSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.AnnotationElement;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.AnnotationSection;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.CdmBaseDtoElement;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.CdmBaseDtoSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.CdmBaseElement;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.CdmBaseSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.CreditElement;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.CreditSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.ExtensionElement;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.ExtensionSection;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.HeadlineDtoSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.HeadlineSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.IdentifiableSourceElement;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.MarkerDtoElement;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.MarkerDtoSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.MarkerElement;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.MarkerSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsElement;
@@ -358,24 +398,33 @@ import eu.etaxonomy.taxeditor.ui.section.userecords.UseRecordDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.DefinedTermDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.DefinedTermDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.FeatureDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.LanguageDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.MeasurementUnitCollectionElement;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.MeasurementUnitCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.MeasurementUnitDtoCollectionElement;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.MeasurementUnitDtoCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.NamedAreaDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.PresenceAbsenceTermDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedModifierVocabulariesCollectionSection;
-import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedModifierVocabulariesElement;
-import eu.etaxonomy.taxeditor.ui.section.vocabulary.StateVocabularyCollectionElement;
-import eu.etaxonomy.taxeditor.ui.section.vocabulary.StateVocabularyCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedModifierCollectionsCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedModifierCollectionsDtoCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedModifierCollectionsElement;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedModifierDtoCollectionsElement;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedStateCollectionElement;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedStateCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedStateCollectionsDtoElement;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedStateDtoCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.StatisticalMeasureCollectionElement;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.StatisticalMeasureCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.StatisticalMeasureDtoCollectionElement;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.StatisticalMeasureDtoCollectionSection;
 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;
 
@@ -640,6 +689,13 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
+    public RepresentationElement createRepresentationElement(ICdmFormElement parentElement, Representation representation, AbstractTermDto term,int textHeight, int style, boolean fillDetails) {
+        RepresentationElement element = new RepresentationElement(this, parentElement, representation, term, textHeight, style, fillDetails);
+        adapt(element);
+        parentElement.addElement(element);
+        return element;
+    }
+
     /**
      * createMultiLanguageTextElement
      *
@@ -664,6 +720,14 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
+    public TranslatableRepresentationElement createTranslatableRepresentationElementDto(ICdmFormElement parentElement, Representation representation, AbstractTermDto term,int textHeight, int style, boolean fillDetails) {
+        TranslatableRepresentationElement element = new TranslatableRepresentationElement(this, parentElement, representation, term, textHeight, style, fillDetails);
+        adapt(element);
+        parentElement.addElement(element);
+        return element;
+    }
+
+
     public KeyStatementElement createKeyStatementElement(ICdmFormElement parentElement, String labelString,
             KeyStatement keyStatement, int textHeight, int style) {
         KeyStatementElement element = new KeyStatementElement(this, parentElement, labelString, keyStatement,
@@ -710,6 +774,33 @@ public class CdmFormFactory extends FormToolkit {
         return createTextWithLabelElement(parentElement, labelString, initialText, null, style);
     }
 
+
+
+    /**
+     * createTextWithLabelAndSetNullElement
+     *
+     * @param parentElement
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+     *            object.
+     * @param labelString
+     *            a {@link java.lang.String} object.
+     * @param initialText
+     *            a {@link java.lang.String} object.
+     * @param textLimit maximal number of characters allowed
+     * @param style
+     *            a int.
+     * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelAndSetNullElement}
+     *         object.
+     */
+    public TextWithLabelAndSetNullElement createTextWithLabelAndSetNullElement(ICdmFormElement parentElement,
+                       String labelString, String initialText, int style) {
+        TextWithLabelAndSetNullElement element = new TextWithLabelAndSetNullElement(this, parentElement, labelString, initialText, style) ;
+
+        adapt(element);
+        parentElement.addElement(element);
+        return element;
+    }
+
     /**
      * createTextWithLabelElement
      *
@@ -817,41 +908,13 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    /**
-     *
-     * @param parentElement
-     * @param labelString
-     * @param conversationEnabled
-     * @param user
-     * @param style
-     * @return
-     */
-    public EditPasswordElement createEditPasswordElement(ICdmFormElement parentElement, String labelString,
-            ConversationHolder conversation, User user, int style) {
-        EditPasswordElement element = new EditPasswordElement(this, parentElement, labelString, user, conversation);
+    public EditPasswordElement createEditPasswordElement(ICdmFormElement parentElement, String labelString, User user, int style) {
+        EditPasswordElement element = new EditPasswordElement(this, parentElement, labelString, user);
         adapt(element);
         parentElement.addElement(element);
         return element;
     }
 
-    /**
-     * <p>
-     * createIntegerTextWithLabelElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param initialInteger
-     *            a {@link java.lang.Integer} object.
-     * @param style
-     *            a int.
-     * @return a
-     *         {@link eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement}
-     *         object.
-     */
        public FloatWithLabelElement createFloatTextWithLabelElement(
                        ICdmFormElement parentElement, String labelString,
                        Number initialNumber, int style) {
@@ -886,23 +949,6 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    /**
-     * <p>
-     * createKeyValueViewerElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param keyHeading
-     *            a {@link java.lang.String} object.
-     * @param valueHeading
-     *            a {@link java.lang.String} object.
-     * @param map
-     *            a {@link java.util.Map} object.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.KeyValueViewerElement}
-     *         object.
-     */
     public KeyValueViewerElement createKeyValueViewerElement(ICdmFormElement parentElement, String keyHeading,
             String valueHeading, Map<Object, Object> map) {
         KeyValueViewerElement element = new KeyValueViewerElement(this, parentElement, keyHeading, valueHeading, map);
@@ -910,17 +956,6 @@ public class CdmFormFactory extends FormToolkit {
         parentElement.addElement(element);
         return element;
     }
-    /**
-     * @deprecated Use {@link #createDefinedTermComboElement(TermType, ICdmFormElement, String, DefinedTermBase, int)} instead
-     */
-    @Deprecated
-    public <T extends DefinedTermBase> TermComboElement<T> createTermComboElement(Class<T> termComboType,
-            ICdmFormElement parentElement, String labelString, T selection, int style) {
-        TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termComboType, labelString, selection, true, style);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
-    }
 
     public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
             TermType termType,
@@ -931,6 +966,15 @@ public class CdmFormFactory extends FormToolkit {
             Comparator<T> comparator) {
         return this.createDefinedTermComboElement(termType, null, null, parentElement, labelString, selection, true, style, false, comparator);
     }
+    public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
+            List<T> terms,
+            ICdmFormElement parentElement,
+            String labelString,
+            T selection,
+            int style,
+            Comparator<T> comparator) {
+        return this.createDefinedTermComboElement(null, null, terms, parentElement, labelString, selection, true, style, false, comparator);
+    }
 
     public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
                        TermType termType,
@@ -950,8 +994,16 @@ public class CdmFormFactory extends FormToolkit {
                        int style) {
                return  this.createDefinedTermComboElement(termType, null, null, parentElement, labelString, selection, true, style, false, null);
        }
+       public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElementDto(
+            TermType termType,
+            ICdmFormElement parentElement,
+            String labelString,
+            TermDto selection,
+            int style) {
+        return  this.createDefinedTermComboElement(termType, null, null, parentElement, labelString, selection, true, style, false, null);
+    }
 
-       public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
+       public <T extends DefinedTermBase<?>> TermComboElement<T> createDefinedTermComboElement(
             List<T> terms,
             ICdmFormElement parentElement,
             String labelString,
@@ -959,7 +1011,16 @@ public class CdmFormFactory extends FormToolkit {
             int style) {
         return  this.createDefinedTermComboElement(null, null, terms, parentElement, labelString, selection, true, style, false, null);
     }
-       public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
+//     public TermDtoComboElement createDefinedTermDtoComboElement(
+//            List<TermDto> terms,
+//            ICdmFormElement parentElement,
+//            String labelString,
+//            TermDto selection,
+//            int style) {
+//        return  this.createDefinedTermDtoComboElement(null, null, terms, parentElement, labelString, selection, false, style, false, null);
+//    }
+
+       public <T extends DefinedTermBase<?>> TermComboElement<T> createDefinedTermComboElement(
                List<T> terms,
                ICdmFormElement parentElement,
                String labelString,
@@ -968,6 +1029,7 @@ public class CdmFormFactory extends FormToolkit {
                int style) {
            return  this.createDefinedTermComboElement(null, null, terms, parentElement, labelString, selection, addEmptyElement, style, false, null);
        }
+
     public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
                        TermType termType,
                        ICdmFormElement parentElement,
@@ -978,7 +1040,17 @@ public class CdmFormFactory extends FormToolkit {
                        boolean useAbbrevLabel) {
                return createDefinedTermComboElement(termType, null, null, parentElement, labelString, selection, addEmptyElement, style, useAbbrevLabel, null);
        }
-
+    
+//    public TermDtoComboElement createDefinedTermDtoComboElement(
+//            TermType termType,
+//            ICdmFormElement parentElement,
+//            String labelString,
+//            TermDto selection,
+//            boolean addEmptyElement,
+//            int style,
+//            boolean useAbbrevLabel) {
+//        return createDefinedTermDtoComboElement(termType, null, null, parentElement, labelString, selection, addEmptyElement, style, useAbbrevLabel, null);
+//    }
 
     public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
             TermVocabulary<?> termVocabulary,
@@ -1011,26 +1083,25 @@ public class CdmFormFactory extends FormToolkit {
                int style,
                boolean useAbbrevLabel,
                Comparator<T> comparator) {
+
            if(termType!=null){
-               TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termType, labelString, selection, addEmptyElement, style, useAbbrevLabel, comparator);
+               TermComboElement<T> element = new TermComboElement<>(this, parentElement, termType, labelString, selection, addEmptyElement, style, useAbbrevLabel, comparator);
                adapt(element);
                parentElement.addElement(element);
                return element;
            }
-           else if(termVocabulary!=null){
-               TermComboElement<T> element = new TermComboElement<T>(this, parentElement, termVocabulary, labelString, selection, addEmptyElement, style, useAbbrevLabel, comparator);
-               if (comparator!= null){
-                       element.setTermComparator(comparator);
-               }
+           else if(termVocabulary != null){
+               TermComboElement<T> element = new TermComboElement<>(this, parentElement, termVocabulary, labelString, selection, addEmptyElement, style, useAbbrevLabel, comparator);
+//             if (comparator!= null){
+//                     element.setTermComparator(comparator);
+//             }
                adapt(element);
                parentElement.addElement(element);
                return element;
            }else if (terms != null){
 
-               TermComboElement<T> element = new TermComboElement<T>(this, parentElement, terms, labelString, selection, addEmptyElement, style, useAbbrevLabel);
-            if (comparator!= null){
-                element.setTermComparator(comparator);
-            }
+               TermComboElement<T> element = new TermComboElement<>(this, parentElement, terms, labelString, selection, addEmptyElement, style, useAbbrevLabel, comparator);
+
             adapt(element);
             parentElement.addElement(element);
             return element;
@@ -1040,14 +1111,89 @@ public class CdmFormFactory extends FormToolkit {
                return null;
            }
        }
+//     private TermDtoComboElement createDefinedTermDtoComboElement(
+//            TermType termType,
+//            TermVocabulary<?> termVocabulary,
+//            List<TermDto> terms,
+//            ICdmFormElement parentElement,
+//            String labelString,
+//            TermDto selection,
+//            boolean addEmptyElement,
+//            int style,
+//            boolean useAbbrevLabel,
+//            Comparator<TermDto> comparator) {
+//
+//        if(termType!=null){
+//            TermDtoComboElement element = new TermDtoComboElement<>(this, parentElement, termType, labelString, selection, addEmptyElement, style, useAbbrevLabel, comparator);
+//            adapt(element);
+//            parentElement.addElement(element);
+//            return element;
+//        }
+//        else if(termVocabulary != null){
+//            TermDtoComboElement element = new TermDtoComboElement<>(this, parentElement, termVocabulary, labelString, selection, addEmptyElement, style, useAbbrevLabel, comparator);
+////          if (comparator!= null){
+////              element.setTermComparator(comparator);
+////          }
+//            adapt(element);
+//            parentElement.addElement(element);
+//            return element;
+//        }else if (terms != null){
+//
+//            TermDtoComboElement element = new TermDtoComboElement<>(this, parentElement, terms, labelString, selection, addEmptyElement, style, useAbbrevLabel, comparator);
+//
+//            adapt(element);
+//            parentElement.addElement(element);
+//            return element;
+//        }
+//        else {
+//            //this should never happen
+//            return null;
+//        }
+//    }
+
+          private <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
+                   TermType termType,
+                   TermVocabulary<?> termVocabulary,
+                   List<T> terms,
+                   ICdmFormElement parentElement,
+                   String labelString,
+                   TermDto selection,
+                   boolean addEmptyElement,
+                   int style,
+                   boolean useAbbrevLabel,
+                   Comparator<T> comparator) {
+
+              if(termType!=null){
+                   TermComboElement<T> element = new TermComboElement<>(this, parentElement, termType, labelString, selection, addEmptyElement, style, useAbbrevLabel, comparator);
+                   adapt(element);
+                   parentElement.addElement(element);
+                   return element;
+               }
+               else {
+                   //this should never happen
+                   return null;
+               }
+           }
 
-       public NameRelationshipTypeCombo createNameRelationshipTypeCombo(ICdmFormElement parentElement,
+       public RelationshipTypeCombo createNameRelationshipTypeCombo(ICdmFormElement parentElement,
             String labelString,
             int style,
             boolean useAbbrevLabel,
             Comparator<NameRelationshipType> comparator) {
 
-        NameRelationshipTypeCombo<InverseTermWrapper> element = new NameRelationshipTypeCombo(this, parentElement, labelString, true, style, useAbbrevLabel, comparator);
+        RelationshipTypeCombo<InverseTermWrapper> element = new RelationshipTypeCombo(this, parentElement, TermType.NameRelationshipType, labelString, true, style, useAbbrevLabel, comparator);
+        adapt(element);
+        parentElement.addElement(element);
+        return element;
+    }
+
+       public RelationshipTypeCombo createTaxonRelationshipTypeCombo(ICdmFormElement parentElement,
+            String labelString,
+            int style,
+            boolean useAbbrevLabel,
+            Comparator<TaxonRelationshipType> comparator) {
+
+        RelationshipTypeCombo<InverseTermWrapper> element = new RelationshipTypeCombo(this, parentElement, TermType.TaxonRelationshipType, labelString, true, style, useAbbrevLabel, comparator);
         adapt(element);
         parentElement.addElement(element);
         return element;
@@ -1084,29 +1230,23 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-       public <TERM extends DefinedTermBase<TERM>, VOC extends TermVocabulary<TERM>> VocabularyComboElement<TERM, VOC> createVocabularyComboElement(
+       public <TERM extends DefinedTermBase<TERM>, VOC extends TermCollection<TERM,?>> TermCollectionComboElement<TERM, VOC> createTermCollectionComboElement(
                TermType termType, String label, VOC selection, ICdmFormElement parentElement, int style) {
-           VocabularyComboElement<TERM, VOC> element = new VocabularyComboElement<TERM, VOC>(this, parentElement, termType, label, selection, style);
+
+           TermCollectionComboElement<TERM, VOC> element = new TermCollectionComboElement<TERM, VOC>(this, parentElement, termType, label, selection, style);
            adapt(element);
            parentElement.addElement(element);
            return element;
        }
 
-    /**
-     * <p>
-     * createBrowserElement
-     * </p>
-     *
-     * @param imageUri
-     *            a {@link java.net.URI} object.
-     * @param style
-     *            a int.
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.BrowserElement}
-     *         object.
-     */
+       public <TERM extends DefinedTermBase<TERM>, VOC extends TermCollection<TERM,?>> TermCollectionComboElement<TERM, VOC> createTermCollectionDtoComboElement(
+            EnumSet<TermType> termTypes, String label, TermCollectionDto selection, ICdmFormElement parentElement, int style) {
+        TermCollectionComboElement<TERM, VOC> element = new TermCollectionComboElement<TERM, VOC>(this, parentElement, termTypes, label, selection, style);
+        adapt(element);
+        parentElement.addElement(element);
+        return element;
+    }
+
     public BrowserElement createBrowserElement(ICdmFormElement parentElement, URI imageUri, int style) {
         BrowserElement element = new BrowserElement(this, parentElement, imageUri, style);
         adapt(element);
@@ -1114,20 +1254,6 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    /**
-     * <p>
-     * createImageElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param imageUri
-     *            a {@link java.net.URI} object.
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.ImageElement} object.
-     */
     public ImageElement createImageElement(ICdmFormElement parentElement, URI imageUri, int style) {
         ImageElement element = new ImageElement(this, parentElement, imageUri, style);
         adapt(element);
@@ -1135,25 +1261,6 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    /**
-     * <p>
-     * createTextActionElement
-     * </p>
-     *
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param initialText
-     *            a {@link java.lang.String} object.
-     * @param style
-     *            a int.
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param buttonLabel
-     *            a {@link java.lang.String} object.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextActionElement}
-     *         object.
-     */
     public TextActionElement createTextActionElement(ICdmFormElement parentElement, String labelString,
             String buttonLabel, String initialText, int style) {
         TextActionElement element = new TextActionElement(this, parentElement, labelString, buttonLabel, initialText,
@@ -1163,23 +1270,6 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    /**
-     * <p>
-     * createCheckbox
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param label
-     *            a {@link java.lang.String} object.
-     * @param initialState
-     *            a boolean.
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.CheckboxElement}
-     *         object.
-     */
     public CheckboxElement createCheckbox(ICdmFormElement parentElement, String label, Boolean initialState, int style) {
         if(initialState==null){
             initialState = Boolean.FALSE;
@@ -1194,10 +1284,6 @@ public class CdmFormFactory extends FormToolkit {
      * Creates a section as a part of the form.
      *
      * @return the section widget
-     * @param section
-     *            a
-     *            {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
-     *            object.
      */
     public Section adapt(AbstractFormSection section) {
         section.setMenu(section.getLayoutComposite().getMenu());
@@ -1267,50 +1353,44 @@ public class CdmFormFactory extends FormToolkit {
     }
 
     /**
-     * <p>
-     * createToggleableTextField
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param initialText
-     *            a {@link java.lang.String} object.
-     * @param initialState
-     *            a boolean.
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement}
-     *         object.
+     * createToggleableTextField with relevance
      */
     public ToggleableTextElement createToggleableTextField(ICdmFormElement parentElement, String labelString,
-            String initialText, boolean initialState, int style) {
+            String initialText, boolean initialState, CacheRelevance relevance, int style) {
+
         ToggleableTextElement element = new ToggleableTextElement(this, parentElement, labelString, initialText,
-                initialState, style | orientation);
+                initialState, relevance, style | orientation);
+        adapt(element);
+        parentElement.addElement(element);
+        return element;
+    }
+
+    /**
+     * like {@link #createToggleableTextField(ICdmFormElement, String, String, boolean, CacheRelevance, int)}
+     * but with predefined cache relevance == 1
+     */
+    public ToggleableTextElement createToggleableTextField(ICdmFormElement parentElement, String labelString,
+            String initialText, boolean initialState, int style) {
+        return createToggleableTextField(parentElement, labelString, initialText, initialState, CacheRelevance.CACHE1, style);
+    }
+
+    /**
+     * like {@link #createToggleableTextField(ICdmFormElement, String, String, boolean, CacheRelevance, int)}
+     * but with predefined cache relevance == 1
+     */
+    public RemovableTextElement createRemovableTextField(ICdmFormElement parentElement, String labelString,
+            String initialText, int style) {
+        RemovableTextElement element = new RemovableTextElement(this, parentElement, labelString, initialText,
+                style | orientation);
 
         adapt(element);
         parentElement.addElement(element);
         return element;
     }
 
+
     /**
-     * <p>
      * createTimePeriodElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param timePeriod
-     *            a {@link eu.etaxonomy.cdm.model.common.TimePeriod} object.
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.TimePeriodElement}
-     *         object.
      */
     public TimePeriodElement createTimePeriodElement(ICdmFormElement parentElement, String labelString,
             TimePeriod timePeriod, int style) {
@@ -1321,21 +1401,7 @@ public class CdmFormFactory extends FormToolkit {
     }
 
     /**
-     * <p>
      * createVerbatimTimePeriodElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param timePeriod
-     *            a {@link eu.etaxonomy.cdm.model.common.VerbatimTimePeriod} object.
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.VerbatimTimePeriodElement}
-     *         object.
      */
     public VerbatimTimePeriodElement createVerbatimTimePeriodElement(ICdmFormElement parentElement, String labelString,
             VerbatimTimePeriod timePeriod, int style) {
@@ -1345,24 +1411,8 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-
-
        /**
-        * <p>
         * createGatheringEventUnitElement
-        * </p>
-        *
-        * @param parentElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @param labelString
-        *            a {@link java.lang.String} object.
-        * @param timePeriod
-        *            a {@link eu.etaxonomy.cdm.model.common.GatheringEvent} object.
-        * @param style
-        *            a int.
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.GatheringEventUnitElement}
-        *         object.
         */
        public GatheringEventUnitElement createGatheringEventUnitElement(
                        ICdmFormElement parentElement,
@@ -1382,18 +1432,7 @@ public class CdmFormFactory extends FormToolkit {
        }
 
     /**
-     * <p>
      * createPointElement
-     * </p>
-     *
-     * @param style
-     *            a int.
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param point
-     *            a {@link eu.etaxonomy.cdm.model.location.Point} object.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.PointElement} object.
      */
     public PointElement createPointElement(ICdmFormElement parentElement, Point point, int style) {
         PointElement element = new PointElement(this, parentElement, point, style);
@@ -1413,19 +1452,6 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
-    /**
-     * <p>
-     * createDateDetailSection
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.DateDetailSection}
-     *         object.
-     */
     public DateDetailSection<TimePeriod> createDateDetailSection(ICdmFormElement parentElement, int style) {
         DateDetailSection<TimePeriod> section = new DateDetailSection<TimePeriod>(this, parentElement, false, style);
         parentElement.addElement(section);
@@ -1433,19 +1459,6 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
-    /**
-     * <p>
-     * createVerbatimDateDetailSection
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.VerbatimDateDetailSection}
-     *         object.
-     */
     public DateDetailSection<VerbatimTimePeriod> createVerbatimDateDetailSection(ICdmFormElement parentElement, int style) {
         DateDetailSection<VerbatimTimePeriod> section
                = new DateDetailSection<VerbatimTimePeriod>(this, parentElement, true, style);
@@ -1454,19 +1467,6 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
-       /**
-        * <p>
-        * createDateDetailSection
-        * </p>
-        *
-        * @param parentElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @param style
-        *            a int.
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection}
-        *         object.
-        */
        public MinMaxTextSection createMinMaxTextSection(ICdmFormElement parentElement, UnitType unitType, int style) {
                MinMaxTextSection section = new MinMaxTextSection(this, parentElement, unitType, style);
                parentElement.addElement(section);
@@ -1474,23 +1474,6 @@ public class CdmFormFactory extends FormToolkit {
                return section;
        }
 
-    /**
-     * <p>
-     * createPartialElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param partial
-     *            a {@link org.joda.time.Partial} object.
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.PartialElement}
-     *         object.
-     */
     public PartialElement createPartialElement(ICdmFormElement parentElement, String labelString, Partial partial,
             int style) {
         PartialElement element = new PartialElement(this, parentElement, labelString, style);
@@ -1507,26 +1490,10 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    /**
-     * <p>
-     * addSelectionListener
-     * </p>
-     *
-     * @param listener
-     *            a {@link org.eclipse.swt.events.SelectionListener} object.
-     */
     public void addSelectionListener(SelectionListener listener) {
         selectionListenerList.add(listener);
     }
 
-    /**
-     * <p>
-     * removeSelectionListener
-     * </p>
-     *
-     * @param listener
-     *            a {@link org.eclipse.swt.events.SelectionListener} object.
-     */
     public void removeSelectionListener(SelectionListener listener) {
         if (listener == null) {
             MessagingUtils.error(this.getClass(),
@@ -1536,15 +1503,6 @@ public class CdmFormFactory extends FormToolkit {
         }
     }
 
-    /**
-     * <p>
-     * addPropertyChangeListener
-     * </p>
-     *
-     * @param listener
-     *            a {@link org.eclipse.jface.util.IPropertyChangeListener}
-     *            object.
-     */
     public void addPropertyChangeListener(IPropertyChangeListener listener) {
         if (propertyChangeListeners.contains(listener)) {
             return;
@@ -1552,61 +1510,20 @@ public class CdmFormFactory extends FormToolkit {
         propertyChangeListeners.add(0, listener);
     }
 
-    /**
-     * <p>
-     * removePropertyChangeListener
-     * </p>
-     *
-     * @param listener
-     *            a {@link org.eclipse.jface.util.IPropertyChangeListener}
-     *            object.
-     */
     public void removePropertyChangeListener(IPropertyChangeListener listener) {
         propertyChangeListeners.remove(listener);
     }
 
-    /**
-     * @return the propertyChangeListeners
-     */
     public List<IPropertyChangeListener> getPropertyChangeListeners() {
         return propertyChangeListeners;
     }
 
-    /**
-     * <p>
-     * createHorizontalSeparator
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param style
-     *            a int.
-     * @return a {@link org.eclipse.swt.widgets.Label} object.
-     */
     public Label createHorizontalSeparator(ICdmFormElement parentElement, int style) {
         Label separator = this.createSeparator(parentElement.getLayoutComposite(), SWT.HORIZONTAL | style);
         separator.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
         return separator;
     }
 
-    /**
-     * <p>
-     * createVersionElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param entity
-     *            a {@link eu.etaxonomy.cdm.model.common.VersionableEntity}
-     *            object.
-     * @param style
-     *            a int.
-     * @return a
-     *         {@link eu.etaxonomy.taxeditor.ui.section.supplemental.VersionElement}
-     *         object.
-     */
     public VersionElement createVersionElement(ICdmFormElement parentElement, VersionableEntity entity, int style) {
         VersionElement element = new VersionElement(this, parentElement, entity, style);
         adapt(element);
@@ -1614,12 +1531,6 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    /**
-     * @param cdmBaseSection
-     * @param object
-     * @param style
-     * @return
-     */
     public CdmBaseElement createCdmBaseElement(ICdmFormElement parentElement, CdmBase entity, int style) {
         CdmBaseElement element = new CdmBaseElement(this, parentElement, entity, style);
         adapt(element);
@@ -1627,20 +1538,13 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    /**
-     * <p>
-     * createVersionSection
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param style
-     *            a int.
-     * @return a
-     *         {@link eu.etaxonomy.taxeditor.ui.section.supplemental.VersionSection}
-     *         object.
-     */
+    public CdmBaseDtoElement createCdmBaseDtoElement(ICdmFormElement parentElement, ICdmBaseDto entity, int style) {
+        CdmBaseDtoElement element = new CdmBaseDtoElement(this, parentElement, entity, style);
+        adapt(element);
+        parentElement.addElement(element);
+        return element;
+    }
+
     public VersionSection createVersionSection(ICdmFormElement parentElement, int style) {
         VersionSection section = new VersionSection(this, parentElement, style);
         parentElement.addElement(section);
@@ -1648,47 +1552,26 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
-    /**
-     * @param parent
-     * @param i
-     * @return
-     */
     public CdmBaseSection createCdmBaseSection(ICdmFormElement parentElement, int style) {
         CdmBaseSection section = new CdmBaseSection(this, parentElement, style);
         parentElement.addElement(section);
         adapt(section);
         return section;
     }
-
-    /**
-     * <p>
-     * createEmptyElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.section.EmptyElement} object.
-     */
-    public EmptyElement createEmptyElement(ICdmFormElement parentElement, String emptyText) {
-        EmptyElement element = new EmptyElement(this, parentElement, emptyText, SWT.NULL);
-        adapt(element);
-        parentElement.addElement(element);
-        return element;
+    public CdmBaseDtoSection createCdmBaseDtoSection(ICdmFormElement parentElement, int style) {
+        CdmBaseDtoSection section = new CdmBaseDtoSection(this, parentElement, style);
+        parentElement.addElement(section);
+        adapt(section);
+        return section;
+    }
+
+    public EmptyElement createEmptyElement(ICdmFormElement parentElement, String emptyText) {
+        EmptyElement element = new EmptyElement(this, parentElement, emptyText, SWT.NULL);
+        adapt(element);
+        parentElement.addElement(element);
+        return element;
     }
 
-    /**
-     * <p>
-     * createHeadlineSection
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @return a
-     *         {@link eu.etaxonomy.taxeditor.ui.section.supplemental.HeadlineSection}
-     *         object.
-     */
     public HeadlineSection createHeadlineSection(ICdmFormElement parentElement) {
         HeadlineSection section = new HeadlineSection(this, parentElement, SWT.NULL);
         parentElement.addElement(section);
@@ -1696,23 +1579,13 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
-    /**
-     * <p>
-     * createParsingMessageElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param parserProblem
-     *            a {@link eu.etaxonomy.cdm.strategy.parser.ParserProblem}
-     *            object.
-     * @param style
-     *            a int.
-     * @return a
-     *         {@link eu.etaxonomy.taxeditor.ui.section.taxon.ParsingMessageElement}
-     *         object.
-     */
+    public HeadlineDtoSection createHeadlineDtoSection(ICdmFormElement parentElement) {
+        HeadlineDtoSection section = new HeadlineDtoSection(this, parentElement, SWT.NULL);
+        parentElement.addElement(section);
+        adapt(section);
+        return section;
+    }
+
     public ParsingMessageElement createParsingMessageElement(ICdmFormElement parentElement,
             ParserProblem parserProblem, int style) {
         ParsingMessageElement element = new ParsingMessageElement(this, parentElement, parserProblem, style);
@@ -1721,36 +1594,37 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    public DefinedTermDetailSection createDefinedTermDetailSection(Class definedTermClass, ConversationHolder conversation,
+    public <T extends DefinedTermBase> DefinedTermDetailSection<T> createDefinedTermDetailSection(Class clazz,
             ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
-
-        DefinedTermDetailSection section = new DefinedTermDetailSection(this, definedTermClass, conversation, parentElement,
+        @SuppressWarnings("unchecked")
+        Class<T> definedTermClass = clazz;
+        DefinedTermDetailSection<T> section = new DefinedTermDetailSection<>(this, definedTermClass, parentElement,
                 selectionProvider, style);
 
         parentElement.addElement(section);
         adapt(section);
         return section;
-
     }
 
-    public TermMediaSection createTermMediaSection(ConversationHolder conversation,
+    public TermMediaSection createTermMediaSection(
             ICdmFormElement parentElement, int style) {
-        TermMediaSection section = new TermMediaSection(this, conversation, parentElement, style);
+        TermMediaSection section = new TermMediaSection(this, parentElement, style);
         parentElement.addElement(section);
         adapt(section);
         return section;
+    }
 
+    public DerivedUnitMediaSection createDerivedUnitMediaSection(
+            ICdmFormElement parentElement, int style) {
+        DerivedUnitMediaSection section = new DerivedUnitMediaSection(this, parentElement, style);
+        parentElement.addElement(section);
+        adapt(section);
+        return section;
     }
 
-    /**
-     * @param definedTermClass
-     * @param formElement
-     * @param style
-     * @return
-     */
     public AbstractCdmDetailElement createDefinedTermDetailElement(Class definedTermClass,
-            AbstractCdmDetailSection parentElement, int style) {
-        AbstractCdmDetailElement element = null;
+            ICdmFormElement parentElement, int style) {
+        AbstractCdmDetailElement<?> element = null;
 
         if (NamedArea.class.isAssignableFrom(definedTermClass)) {
             element = new eu.etaxonomy.taxeditor.ui.section.vocabulary.NamedAreaDetailElement(this, parentElement);
@@ -1758,24 +1632,37 @@ public class CdmFormFactory extends FormToolkit {
             element = new FeatureDetailElement(this, parentElement);
         } else if(definedTermClass.equals(PresenceAbsenceTerm.class)){
             element = new PresenceAbsenceTermDetailElement(this, parentElement);
+        } else if(definedTermClass.equals(Language.class)){
+            element = new LanguageDetailElement(this, parentElement);
         } else {
-            element = new DefinedTermDetailElement(this, parentElement);
+            element = new DefinedTermDetailElement<>(this, parentElement);
         }
 
-
         adapt(element);
         parentElement.addElement(element);
         return element;
     }
 
-    public CharacterNodeDetailSection createCharacterNodeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        CharacterNodeDetailSection section = new CharacterNodeDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public CharacterNodeDetailSection createCharacterNodeDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        CharacterNodeDetailSection section = new CharacterNodeDetailSection(this, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public CharacterNodeDtoDetailSection createCharacterNodeDtoDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        CharacterNodeDtoDetailSection section = new CharacterNodeDtoDetailSection(this, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public CharacterDetailSection createCharacterDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        CharacterDetailSection section = new CharacterDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public CharacterDetailSection createCharacterDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        CharacterDetailSection section = new CharacterDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public CharacterDtoDetailSection createCharacterDtoDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        CharacterDtoDetailSection section = new CharacterDtoDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
@@ -1785,361 +1672,412 @@ public class CdmFormFactory extends FormToolkit {
         addAndAdaptElement(parentElement, element);
         return element;
     }
+    public CharacterNodeDtoDetailElement createCharacterNodeDtoDetailElement(ICdmFormElement parentElement, int style){
+        CharacterNodeDtoDetailElement element = new CharacterNodeDtoDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
 
     public CharacterDetailElement createCharacterDetailElement(ICdmFormElement parentElement, int style){
         CharacterDetailElement element = new CharacterDetailElement(this, parentElement);
         addAndAdaptElement(parentElement, element);
         return element;
     }
+    public CharacterDtoDetailElement createCharacterDtoDetailElement(ICdmFormElement parentElement, int style){
+        CharacterDtoDetailElement element = new CharacterDtoDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public TermTreeDetailElement createFeatureTreeDetailElement(ICdmFormElement parentElement, int style){
+        TermTreeDetailElement element = new TermTreeDetailElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
 
-    public FeatureTreeDetailElement createFeatureTreeDetailElement(ICdmFormElement parentElement, int style){
-        FeatureTreeDetailElement element = new FeatureTreeDetailElement(this, parentElement);
+    public AbstractCdmDetailElement<TermTree> createFeatureTreeDetailElementForTree(
+            AbstractCdmDetailSection<TermTree> parentElement, int style) {
+        TermTreeDetailElementForNode element = new TermTreeDetailElementForNode(this, parentElement);
         addAndAdaptElement(parentElement, element);
         return element;
     }
 
-    public FeatureNodeDetailElement createFeatureNodeDetailElement(ICdmFormElement parentElement, int style){
-        FeatureNodeDetailElement element = new FeatureNodeDetailElement(this, parentElement);
+    public TermNodeDetailElement createFeatureNodeDetailElement(ICdmFormElement parentElement, int style){
+        TermNodeDetailElement element = new TermNodeDetailElement(this, parentElement);
         addAndAdaptElement(parentElement, element);
         return element;
     }
 
 
     //--------DetailSections---------
-    public NameDetailSection createNameDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        NameDetailSection section = new NameDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public NameDetailSection createNameDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        NameDetailSection section = new NameDetailSection(this, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public TermNodeDetailSection createFeatureNodeDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        TermNodeDetailSection section = new TermNodeDetailSection(this, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+    public TermNodeDetailSection createTermNodeDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        TermNodeDetailSection section = new TermNodeDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public FeatureNodeDetailSection createFeatureNodeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        FeatureNodeDetailSection section = new FeatureNodeDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public TermTreeDetailSection createFeatureTreeDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        TermTreeDetailSection section = new TermTreeDetailSection(this, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+    public TermTreeDetailSectionForNode createFeatureTreeDetailSectionForTree(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        TermTreeDetailSectionForNode section = new TermTreeDetailSectionForNode(this, parentElement, selectionProvider, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public ReferenceDetailSection createReferenceDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        ReferenceDetailSection section = new ReferenceDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public FeatureTreeDetailSection createFeatureTreeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        FeatureTreeDetailSection section = new FeatureTreeDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public NomenclaturalSourceDetailSection createNomenclaturalReferenceDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        NomenclaturalSourceDetailSection section = new NomenclaturalSourceDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public ReferenceDetailSection createReferenceDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        ReferenceDetailSection section = new ReferenceDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public OriginalSourceAdvancedSection createOriginalSourceAdvancedSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        OriginalSourceAdvancedSection section = new OriginalSourceAdvancedSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public NomenclaturalReferenceDetailSection createNomenclaturalReferenceDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        NomenclaturalReferenceDetailSection section = new NomenclaturalReferenceDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public AdvancedSourceElement createAdvancedSourceDetailElement(ICdmFormElement parentElement, int style){
+        AdvancedSourceElement element = new AdvancedSourceElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public AdvancedSourceElement createAdvancedNomenclaturalSourceDetailElement(ICdmFormElement parentElement, int style){
+        AdvancedNomenclaturalSourceElement element = new AdvancedNomenclaturalSourceElement(this, parentElement);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public SingleSourceSection createSingleSourceSection(ICdmFormElement parentElement, CdmBase cdmEntity, ISelectionProvider selectionProvider, String label, int style){
+        SingleSourceSection section = new SingleSourceSection(this, parentElement, cdmEntity, selectionProvider, style, label);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public TaxonBaseDetailSection createTaxonBaseDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        TaxonBaseDetailSection section = new TaxonBaseDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public TaxonBaseDetailSection createTaxonBaseDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        TaxonBaseDetailSection section = new TaxonBaseDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public AuthorshipDetailSection createAuthorshipDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        AuthorshipDetailSection section = new AuthorshipDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public AuthorshipDetailSection createAuthorshipDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        AuthorshipDetailSection section = new AuthorshipDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public TeamOrPersonBaseDetailSection createTeamOrPersonBaseDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        TeamOrPersonBaseDetailSection section = new TeamOrPersonBaseDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public TeamOrPersonBaseDetailSection createTeamOrPersonBaseDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        TeamOrPersonBaseDetailSection section = new TeamOrPersonBaseDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public TeamDetailSection createTeamDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        TeamDetailSection section = new TeamDetailSection(this, conversation, parentElement, null, style);
+    public TeamDetailSection createTeamDetailSection(ICdmFormElement parentElement, int style){
+        TeamDetailSection section = new TeamDetailSection(this, parentElement, null, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public PersonDetailSection createPersonDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        PersonDetailSection section = new PersonDetailSection(this, conversation, parentElement, null, style);
+    public PersonDetailSection createPersonDetailSection(ICdmFormElement parentElement, int style){
+        PersonDetailSection section = new PersonDetailSection(this, parentElement, null, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public DescriptionDetailSection createDescriptionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        DescriptionDetailSection section = new DescriptionDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public DescriptionDetailSection createDescriptionDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        DescriptionDetailSection section = new DescriptionDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public DescriptionElementDetailSection createDescriptionElementDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        DescriptionElementDetailSection section = new DescriptionElementDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public DescriptionElementDetailSection createDescriptionElementDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        DescriptionElementDetailSection section = new DescriptionElementDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public ParsingMessagesSection createParsingMessagesSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        ParsingMessagesSection section = new ParsingMessagesSection(this, conversation, parentElement, selectionProvider, style);
+    public ParsingMessagesSection createParsingMessagesSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        ParsingMessagesSection section = new ParsingMessagesSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
 
 
-    public NonViralNameDetailSection createNonViralNameDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, boolean nameChoosable, int style){
-        NonViralNameDetailSection section = new NonViralNameDetailSection(this, conversation, parentElement, selectionProvider, nameChoosable, style);
+    public NonViralNameDetailSection createNonViralNameDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, boolean nameChoosable, int style){
+        NonViralNameDetailSection section = new NonViralNameDetailSection(this, parentElement, selectionProvider, nameChoosable, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public MediaDetailsSection createMediaDetailsSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        MediaDetailsSection section = new MediaDetailsSection(this, conversation, parentElement, selectionProvider, style);
+    public MediaDetailsSection createMediaDetailsSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        MediaDetailsSection section = new MediaDetailsSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public FieldUnitDetailSection createFieldUnitDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        FieldUnitDetailSection section = new FieldUnitDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public FieldUnitFacadeDetailSection createFieldUnitFacadeDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        FieldUnitFacadeDetailSection section = new FieldUnitFacadeDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public GatheringEventDetailSection createGatheringEventDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        GatheringEventDetailSection section = new GatheringEventDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public GatheringEventDetailSection createGatheringEventDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        GatheringEventDetailSection section = new GatheringEventDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public DerivedUnitBaseDetailSection createDerivedUnitBaseDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        DerivedUnitBaseDetailSection section = new DerivedUnitBaseDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public DerivedUnitBaseDetailSection createDerivedUnitBaseDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        DerivedUnitBaseDetailSection section = new DerivedUnitBaseDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public DerivedUnitTypeDesignationSection createDerivedUnitTypeDesignationSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        DerivedUnitTypeDesignationSection section = new DerivedUnitTypeDesignationSection(this, conversation, parentElement, style);
+    public DerivedUnitTypeDesignationSection createDerivedUnitTypeDesignationSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        DerivedUnitTypeDesignationSection section = new DerivedUnitTypeDesignationSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public TaxonAssociationDetailSection createTaxonAssociationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        TaxonAssociationDetailSection section = new TaxonAssociationDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public TaxonAssociationDetailSection createTaxonAssociationDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        TaxonAssociationDetailSection section = new TaxonAssociationDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public OriginalLabelDataSection createOriginalLabelDataSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        OriginalLabelDataSection section = new OriginalLabelDataSection(this, conversation, parentElement, selectionProvider, style);
+    public OriginalLabelDataSection createOriginalLabelDataSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        OriginalLabelDataSection section = new OriginalLabelDataSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public NaturalLanguageSection createNaturalLanguageSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        NaturalLanguageSection section = new NaturalLanguageSection(this, conversation, parentElement, selectionProvider, style);
+    public NaturalLanguageSection createNaturalLanguageSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        NaturalLanguageSection section = new NaturalLanguageSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public FeatureDistributionDetailSection createFeatureDistributionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        FeatureDistributionDetailSection section = new FeatureDistributionDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public FeatureDistributionDetailSection createFeatureDistributionDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        FeatureDistributionDetailSection section = new FeatureDistributionDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public ClassificationDetailSection createClassificationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        ClassificationDetailSection section = new ClassificationDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public ClassificationDetailSection createClassificationDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        ClassificationDetailSection section = new ClassificationDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public TaxonNodeDetailSection createTaxonNodeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        TaxonNodeDetailSection section = new TaxonNodeDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public TaxonNodeDetailSection createTaxonNodeDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        TaxonNodeDetailSection section = new TaxonNodeDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public PolytomousKeyDetailSection createPolytomousKeyDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        PolytomousKeyDetailSection section = new PolytomousKeyDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public PolytomousKeyDetailSection createPolytomousKeyDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        PolytomousKeyDetailSection section = new PolytomousKeyDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public PolytomousKeyNodeDetailSection createPolytomousKeyNodeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        PolytomousKeyNodeDetailSection section = new PolytomousKeyNodeDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public PolytomousKeyNodeDetailSection createPolytomousKeyNodeDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        PolytomousKeyNodeDetailSection section = new PolytomousKeyNodeDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public InstitutionDetailSection createInstitutionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        InstitutionDetailSection section = new InstitutionDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public InstitutionDetailSection createInstitutionDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        InstitutionDetailSection section = new InstitutionDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public FieldUnitGeneralDetailSection createFieldUnitGeneralDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        FieldUnitGeneralDetailSection section = new FieldUnitGeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public FieldUnitFacadeGeneralDetailSection createFieldUnitFacadeGeneralDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        FieldUnitFacadeGeneralDetailSection section = new FieldUnitFacadeGeneralDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public DerivedUnitGeneralDetailSection createDerivedUnitGeneralDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        DerivedUnitGeneralDetailSection section = new DerivedUnitGeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public DerivedUnitGeneralDetailSection createDerivedUnitGeneralDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        DerivedUnitGeneralDetailSection section = new DerivedUnitGeneralDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public PreservedSpecimenGeneralDetailSection createPreservedSpecimenGeneralDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        PreservedSpecimenGeneralDetailSection section = new PreservedSpecimenGeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public PreservedSpecimenGeneralDetailSection createPreservedSpecimenGeneralDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        PreservedSpecimenGeneralDetailSection section = new PreservedSpecimenGeneralDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public TissueSampleGeneralDetailSection createTissueSampleGeneralDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        TissueSampleGeneralDetailSection section = new TissueSampleGeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public TissueSampleGeneralDetailSection createTissueSampleGeneralDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        TissueSampleGeneralDetailSection section = new TissueSampleGeneralDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public DnaSampleGeneralDetailSection createDnaSampleGeneralDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        DnaSampleGeneralDetailSection section = new DnaSampleGeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public DnaSampleGeneralDetailSection createDnaSampleGeneralDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        DnaSampleGeneralDetailSection section = new DnaSampleGeneralDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public DnaSamplePreparationPreservationSection createDnaSamplePreparationPreservationSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        DnaSamplePreparationPreservationSection section = new DnaSamplePreparationPreservationSection(this, conversation, parentElement, selectionProvider, style);
+    public DnaSamplePreparationPreservationSection createDnaSamplePreparationPreservationSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        DnaSamplePreparationPreservationSection section = new DnaSamplePreparationPreservationSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public DnaQualityDetailSection createDnaQualityDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        DnaQualityDetailSection section = new DnaQualityDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public DnaQualityDetailSection createDnaQualityDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        DnaQualityDetailSection section = new DnaQualityDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public SequenceGeneralDetailSection createSequenceGeneralDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        SequenceGeneralDetailSection section = new SequenceGeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public SequenceGeneralDetailSection createSequenceGeneralDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        SequenceGeneralDetailSection section = new SequenceGeneralDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public SequenceContigFileCollectionDetailSection createSequenceContigFileCollectionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        SequenceContigFileCollectionDetailSection section = new SequenceContigFileCollectionDetailSection(this, conversation, parentElement, style);
+    public SequenceContigFileCollectionDetailSection createSequenceContigFileCollectionDetailSection(ICdmFormElement parentElement, int style){
+        SequenceContigFileCollectionDetailSection section = new SequenceContigFileCollectionDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public SingleReadPherogramCollectionDetailSection createSingleReadPherogramCollectionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        SingleReadPherogramCollectionDetailSection section = new SingleReadPherogramCollectionDetailSection(this, conversation, parentElement, style);
+    public SingleReadPherogramCollectionDetailSection createSingleReadPherogramCollectionDetailSection(ICdmFormElement parentElement, int style){
+        SingleReadPherogramCollectionDetailSection section = new SingleReadPherogramCollectionDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public SequenceReferenceCollectionDetailSection createSequenceReferenceCollectionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        SequenceReferenceCollectionDetailSection section = new SequenceReferenceCollectionDetailSection(this, conversation, parentElement, style);
+    public SequenceReferenceCollectionDetailSection createSequenceReferenceCollectionDetailSection(ICdmFormElement parentElement, int style){
+        SequenceReferenceCollectionDetailSection section = new SequenceReferenceCollectionDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public SingleReadGeneralDetailSection createSingleReadGeneralDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        SingleReadGeneralDetailSection section = new SingleReadGeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public SingleReadGeneralDetailSection createSingleReadGeneralDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        SingleReadGeneralDetailSection section = new SingleReadGeneralDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public AmplificationGeneralDetailSection createAmplificationGeneralDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        AmplificationGeneralDetailSection section = new AmplificationGeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public AmplificationGeneralDetailSection createAmplificationGeneralDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        AmplificationGeneralDetailSection section = new AmplificationGeneralDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public AmplificationPrimerDetailSection createAmplificationPrimerDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        AmplificationPrimerDetailSection section = new AmplificationPrimerDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public AmplificationPrimerDetailSection createAmplificationPrimerDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        AmplificationPrimerDetailSection section = new AmplificationPrimerDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public AmplificationCloningDetailSection createAmplificationCloningDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        AmplificationCloningDetailSection section = new AmplificationCloningDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public AmplificationCloningDetailSection createAmplificationCloningDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        AmplificationCloningDetailSection section = new AmplificationCloningDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public AmplificationGelPhotoCollectionDetailSection createAmplificationGelPhotoCollectionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        AmplificationGelPhotoCollectionDetailSection section = new AmplificationGelPhotoCollectionDetailSection(this, conversation, parentElement, style);
+    public AmplificationGelPhotoCollectionDetailSection createAmplificationGelPhotoCollectionDetailSection(ICdmFormElement parentElement, int style){
+        AmplificationGelPhotoCollectionDetailSection section = new AmplificationGelPhotoCollectionDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public MediaSpecimenGeneralDetailSection createMediaSpecimenGeneralDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        MediaSpecimenGeneralDetailSection section = new MediaSpecimenGeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public MediaSpecimenGeneralDetailSection createMediaSpecimenGeneralDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        MediaSpecimenGeneralDetailSection section = new MediaSpecimenGeneralDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public HybridDetailSection createHybridDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        HybridDetailSection section = new HybridDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public HybridDetailSection createHybridDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        HybridDetailSection section = new HybridDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public UserDetailSection createUserDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        UserDetailSection section = new UserDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public UserDetailSection createUserDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        UserDetailSection section = new UserDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public GroupDetailSection createGroupDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        GroupDetailSection section = new GroupDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public GroupDetailSection createGroupDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        GroupDetailSection section = new GroupDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public DeterminationDetailSection createDeterminationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        DeterminationDetailSection section = new DeterminationDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public DeterminationDetailSection createDeterminationDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        DeterminationDetailSection section = new DeterminationDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public SampleDesignationDetailSection createSampleDesignationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        SampleDesignationDetailSection section = new SampleDesignationDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public SampleDesignationDetailSection createSampleDesignationDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        SampleDesignationDetailSection section = new SampleDesignationDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public TaxonRelationshipDetailSection createTaxonRelationshipDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        TaxonRelationshipDetailSection section = new TaxonRelationshipDetailSection(this, conversation, parentElement, selectionProvider, style, true);
+    public TaxonRelationshipDetailSection createTaxonRelationshipDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        TaxonRelationshipDetailSection section = new TaxonRelationshipDetailSection(this, parentElement, selectionProvider, style, true);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public ReferencedEntityDetailSection createReferencedEntityDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        ReferencedEntityDetailSection section = new ReferencedEntityDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public ReferencedEntityDetailSection createReferencedEntityDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        ReferencedEntityDetailSection section = new ReferencedEntityDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public TermVocabularyDetailSection createTermVocabularyDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        TermVocabularyDetailSection section = new TermVocabularyDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public TermVocabularyDetailSection createTermVocabularyDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        TermVocabularyDetailSection section = new TermVocabularyDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public GatheringEventDetailSection createGatheringSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        GatheringEventDetailSection section = new GatheringEventDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public GatheringEventDetailSection createGatheringSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        GatheringEventDetailSection section = new GatheringEventDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public NamedAreaDetailSection createNamedAreaDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        NamedAreaDetailSection section = new NamedAreaDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public NamedAreaDetailSection createNamedAreaDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        NamedAreaDetailSection section = new NamedAreaDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public UseRecordDetailSection createUseRecordDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
-        UseRecordDetailSection section = new UseRecordDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public UseRecordDetailSection createUseRecordDetailSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+        UseRecordDetailSection section = new UseRecordDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
@@ -2180,6 +2118,22 @@ public class CdmFormFactory extends FormToolkit {
         addAndAdaptElement(parentElement, element);
         return element;
     }
+    public OriginalSourceElement createOriginalSourceElement(ICdmFormElement parentElement, CdmBase cdmEntity, String label){
+        OriginalSourceElement<?> element = new OriginalSourceElement<>(this, parentElement, cdmEntity, label);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+
+    public SecundumSourceElement createSecundumSourceElement(ICdmFormElement parentElement, CdmBase cdmEntity, String label){
+        SecundumSourceElement element = new SecundumSourceElement(this, parentElement, cdmEntity, label);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
+    public NomenclaturalSourceElement createNomenclaturalSourceElement(ICdmFormElement parentElement, CdmBase cdmEntity, String label){
+        NomenclaturalSourceElement element = new NomenclaturalSourceElement(this, parentElement, cdmEntity, label);
+        addAndAdaptElement(parentElement, element);
+        return element;
+    }
 
     public TaxonRelationshipDetailElement createTaxonRelationshipDetailElement(ICdmFormElement parentElement){
         TaxonRelationshipDetailElement element = new TaxonRelationshipDetailElement(this, parentElement);
@@ -2235,8 +2189,8 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    public TaxonNodeAgentRelationCollectionSection createTaxonNodeAgentRelationCollectionElement(ICdmFormElement parentElement, ConversationHolder conversation, int style){
-        TaxonNodeAgentRelationCollectionSection element = new TaxonNodeAgentRelationCollectionSection(this, conversation, parentElement, style);
+    public TaxonNodeAgentRelationCollectionSection createTaxonNodeAgentRelationCollectionElement(ICdmFormElement parentElement, int style){
+        TaxonNodeAgentRelationCollectionSection element = new TaxonNodeAgentRelationCollectionSection(this, parentElement, style);
         adapt(element);
         parentElement.addElement(element);
 
@@ -2297,8 +2251,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;
     }
@@ -2321,21 +2275,26 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    public ReferenceDetailElement createReferenceDetailElement(ICdmFormElement parentElement, int style, boolean isWizard){
-        ReferenceDetailElement element = new ReferenceDetailElement(this, parentElement, style, isWizard);
+    public ReferenceDetailElement createReferenceDetailElement(ICdmFormElement parentElement, int style){
+        ReferenceDetailElement element = new ReferenceDetailElement(this, parentElement, style);
+        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;
     }
 
 
-    public FieldUnitGeneralDetailElement createFieldUnitGeneralDetailElement(ICdmFormElement parentElement){
-        FieldUnitGeneralDetailElement element = new FieldUnitGeneralDetailElement(this, parentElement);
+    public FieldUnitFacadeGeneralDetailElement createFieldUnitFacadeGeneralDetailElement(ICdmFormElement parentElement){
+        FieldUnitFacadeGeneralDetailElement element = new FieldUnitFacadeGeneralDetailElement(this, parentElement);
         addAndAdaptElement(parentElement, element);
         return element;
     }
@@ -2442,8 +2401,8 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    public FieldUnitDetailElement createFieldUnitDetailElement(ICdmFormElement parentElement) {
-        FieldUnitDetailElement element = new FieldUnitDetailElement(this, parentElement);
+    public FieldUnitFacadeDetailElement createFieldUnitFacadeDetailElement(ICdmFormElement parentElement) {
+        FieldUnitFacadeDetailElement element = new FieldUnitFacadeDetailElement(this, parentElement);
         addAndAdaptElement(parentElement, element);
         return element;
     }
@@ -2478,302 +2437,359 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    /**
-     * @param parentElement
-     * @param element
-     */
     private void addAndAdaptElement(ICdmFormElement parentElement, AbstractCdmDetailElement<?> element) {
         adapt(element);
         parentElement.addElement(element);
     }
 
     //--------EntityCollectionSection----------
-    public TeamMemberSection createTeamMemberSection(ConversationHolder conversation, ICdmFormElement parentElement, int style, boolean isNomenclatural){
-        TeamMemberSection section = new TeamMemberSection(this, conversation, parentElement, style, isNomenclatural);
+    public TeamMemberSection createTeamMemberSection(ICdmFormElement parentElement, int style, boolean isNomenclatural, boolean isCollector){
+        TeamMemberSection section = new TeamMemberSection(this, parentElement, style, isNomenclatural, isCollector);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public InapplicableIfEntityCollectionSection createInapplicableIfEntityCollectionSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        InapplicableIfEntityCollectionSection section = new InapplicableIfEntityCollectionSection(this, conversation, parentElement, style);
+    public InapplicableIfEntityCollectionSection createInapplicableIfEntityCollectionSection(ICdmFormElement parentElement, int style){
+        InapplicableIfEntityCollectionSection section = new InapplicableIfEntityCollectionSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public OnlyApplicableIfEntityCollectionSection createOnlyApplicableIfEntityCollectionSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        OnlyApplicableIfEntityCollectionSection section = new OnlyApplicableIfEntityCollectionSection(this, conversation, parentElement, style);
+    public OnlyApplicableIfEntityCollectionSection createOnlyApplicableIfEntityCollectionSection(ICdmFormElement parentElement, int style){
+        OnlyApplicableIfEntityCollectionSection section = new OnlyApplicableIfEntityCollectionSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public AnnotationSection createAnnotationSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        AnnotationSection section = new AnnotationSection(this, conversation, parentElement, style);
+    public InapplicableIfEntityCollectionSectionForNode createInapplicableIfEntityCollectionSectionForNode(ICdmFormElement parentElement, int style){
+        InapplicableIfEntityCollectionSectionForNode section = new InapplicableIfEntityCollectionSectionForNode(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public CreditSection createCreditSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        CreditSection section = new CreditSection(this, conversation, parentElement, style);
+    public OnlyApplicableIfEntityCollectionSectionForNode createOnlyApplicableIfEntityCollectionSectionForNode(ICdmFormElement parentElement, int style){
+        OnlyApplicableIfEntityCollectionSectionForNode section = new OnlyApplicableIfEntityCollectionSectionForNode(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
-    public DescriptionElementSourceSection createDescriptionElementSourceSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        DescriptionElementSourceSection section = new DescriptionElementSourceSection(this, conversation, parentElement, style);
+
+    public AnnotationSection createAnnotationSection(ICdmFormElement parentElement, int style){
+        AnnotationSection section = new AnnotationSection(this, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public AnnotationDtoSection createAnnotationDtoSection(ICdmFormElement parentElement, int style){
+        AnnotationDtoSection section = new AnnotationDtoSection(this, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public CreditSection createCreditSection(ICdmFormElement parentElement, int style){
+        CreditSection section = new CreditSection(this, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+    public DescriptionElementSourceSection createDescriptionElementSourceSection(ICdmFormElement parentElement, int style){
+        DescriptionElementSourceSection section = new DescriptionElementSourceSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
-    public DescriptionElementSourceSection createDescriptionElementSourceSection(ConversationHolder conversation, ICdmFormElement parentElement, Reference defaultSource, int style){
-        DescriptionElementSourceSection section = new DescriptionElementSourceSection(this, conversation, parentElement, defaultSource, style);
+    public DescriptionElementSourceSection createDescriptionElementSourceSection(ICdmFormElement parentElement, Reference defaultSource, int style){
+        DescriptionElementSourceSection section = new DescriptionElementSourceSection(this, parentElement, defaultSource, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+
+    public ExtensionSection createExtensionSection(ICdmFormElement parentElement, int style){
+        ExtensionSection section = new ExtensionSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public ExtensionSection createExtensionSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        ExtensionSection section = new ExtensionSection(this, conversation, parentElement, style);
+    public MarkerSection createMarkerSection(ICdmFormElement parentElement, int style){
+        MarkerSection section = new MarkerSection(this, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+    public MarkerDtoSection createMarkerDtoSection(ICdmFormElement parentElement, int style){
+        MarkerDtoSection section = new MarkerDtoSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public MarkerSection createMarkerSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        MarkerSection section = new MarkerSection(this, conversation, parentElement, style);
+    public MediaSection createMediaSection(ICdmFormElement parentElement, int style){
+        MediaSection section = new MediaSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public MediaSection createMediaSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        MediaSection section = new MediaSection(this, conversation, parentElement, style);
+    public DescriptionElementMediaSection createDescriptionElementMediaSection(ICdmFormElement parentElement, int style){
+        DescriptionElementMediaSection section = new DescriptionElementMediaSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public DescriptionElementMediaSection createDescriptionElementMediaSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        DescriptionElementMediaSection section = new DescriptionElementMediaSection(this, conversation, parentElement, style);
+    public MediaRepresentationSection createMediaRepresentationSection(ICdmFormElement parentElement, int style){
+        MediaRepresentationSection section = new MediaRepresentationSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public MediaRepresentationSection createMediaRepresentationSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        MediaRepresentationSection section = new MediaRepresentationSection(this, conversation, parentElement, style);
+    public MediaRepresentationPartSection createMediaRepresentationPartSection(ICdmFormElement parentElement, int style){
+        MediaRepresentationPartSection section = new MediaRepresentationPartSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public MediaRepresentationPartSection createMediaRepresentationPartSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        MediaRepresentationPartSection section = new MediaRepresentationPartSection(this, conversation, parentElement, style);
+    public ModifierSection createModifierSection(ICdmFormElement parentElement, int style){
+        ModifierSection section = new ModifierSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public ModifierSection createModifierSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        ModifierSection section = new ModifierSection(this, conversation, parentElement, style);
+    public NomenclaturalStatusSection createNomenclaturalStatusSection(ICdmFormElement parentElement, int style){
+        NomenclaturalStatusSection section = new NomenclaturalStatusSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public NomenclaturalStatusSection createNomenclaturalStatusSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        NomenclaturalStatusSection section = new NomenclaturalStatusSection(this, conversation, parentElement, style);
+    public NameRelationshipDetailSection createNameRelationshipDetailSection(ICdmFormElement parentElement, int style){
+        NameRelationshipDetailSection section = new NameRelationshipDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public NameRelationshipDetailSection createNameRelationshipDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        NameRelationshipDetailSection section = new NameRelationshipDetailSection(this, conversation, parentElement, style);
+    public ExternalLinksSection createExternalLinksSection(ICdmFormElement parentElement, int style){
+        ExternalLinksSection section = new ExternalLinksSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public ProtologueSection createProtologueSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        ProtologueSection section = new ProtologueSection(this, conversation, parentElement, style);
+    public ExternalLinksSection createExternalLinksSection(ICdmFormElement parentElement, String label, int style){
+        ExternalLinksSection section = new ExternalLinksSection(this, parentElement, true, label, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
-    public ExternalLinksSection createExternalLinksSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        ExternalLinksSection section = new ExternalLinksSection(this, conversation, parentElement, style);
+
+    public ExternalLinksSection createExternalLinksSection(ICdmFormElement parentElement, String label, boolean isWithTypeAndDesc, int style){
+        ExternalLinksSection section = new ExternalLinksSection(this, parentElement, isWithTypeAndDesc, label, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public RightsSection createRightsSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        RightsSection section = new RightsSection(this, conversation, parentElement, style);
+    public RightsSection createRightsSection(ICdmFormElement parentElement, int style){
+        RightsSection section = new RightsSection(this, parentElement, style);
+
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
 
+    public SourceSection createSourceSection(ICdmFormElement parentElement, int style){
+        SourceSection section = new SourceSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public SourceSection createSourceSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        SourceSection section = new SourceSection(this, conversation, parentElement, style);
+    public ScopeSection createScopeSection(ICdmFormElement parentElement, int style){
+        ScopeSection section = new ScopeSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public ScopeSection createScopeSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        ScopeSection section = new ScopeSection(this, conversation, parentElement, style);
+    public DescriptionSourceSection createDescriptionSourceSection(ICdmFormElement parentElement, int style){
+        DescriptionSourceSection section = new DescriptionSourceSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public DescriptionSourceSection createDescriptionSourceSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        DescriptionSourceSection section = new DescriptionSourceSection(this, conversation, parentElement, style);
+    public TypeDesignationSection createTypeDesignationSection(ICdmFormElement parentElement, int style){
+        TypeDesignationSection section = new TypeDesignationSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public TypeDesignationSection createTypeDesignationSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        TypeDesignationSection section = new TypeDesignationSection(this, conversation, parentElement, style);
+    public StateDataSection createStateDataSection(ICdmFormElement parentElement, int style){
+        StateDataSection section = new StateDataSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public StateDataSection createStateDataSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        StateDataSection section = new StateDataSection(this, conversation, parentElement, style);
+    public StatisticalMeasurementValueSection createStatisticalMeasurementValueSection(ICdmFormElement parentElement, int style){
+        StatisticalMeasurementValueSection section = new StatisticalMeasurementValueSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public StatisticalMeasurementValueSection createStatisticalMeasurementValueSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        StatisticalMeasurementValueSection section = new StatisticalMeasurementValueSection(this, conversation, parentElement, style);
+    public DescribedSpecimenSection createDescribedSpecimenSection(ICdmFormElement parentElement, int style){
+        DescribedSpecimenSection section = new DescribedSpecimenSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public DescribedSpecimenSection createDescribedSpecimenSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        DescribedSpecimenSection section = new DescribedSpecimenSection(this, conversation, parentElement, style);
+    public RecommendedStateCollectionSection createStateVocabulariesSection(ICdmFormElement parentElement, int style){
+        RecommendedStateCollectionSection section = new RecommendedStateCollectionSection(this, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+    public RecommendedStateCollectionSection createStateVocabulariesSection(ICdmFormElement parentElement, int style, Integer maxStates){
+        RecommendedStateCollectionSection section = new RecommendedStateCollectionSection(this, parentElement, style, maxStates);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+    public RecommendedStateDtoCollectionSection createStateVocabulariesDtoSection(ICdmFormElement parentElement, int style){
+        RecommendedStateDtoCollectionSection section = new RecommendedStateDtoCollectionSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public StateVocabularyCollectionSection createStateVocabulariesSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        StateVocabularyCollectionSection section = new StateVocabularyCollectionSection(this, conversation, parentElement, style);
+    public RecommendedModifierCollectionsCollectionSection createRecommendedModifierVocabulariesCollectionSection(ICdmFormElement parentElement, int style){
+        RecommendedModifierCollectionsCollectionSection section = new RecommendedModifierCollectionsCollectionSection(this, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+    public RecommendedModifierCollectionsDtoCollectionSection createRecommendedModifierVocabulariesDtoCollectionSection(ICdmFormElement parentElement, int style){
+        RecommendedModifierCollectionsDtoCollectionSection section = new RecommendedModifierCollectionsDtoCollectionSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public RecommendedModifierVocabulariesCollectionSection createRecommendedModifierVocabulariesCollectionSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        RecommendedModifierVocabulariesCollectionSection section = new RecommendedModifierVocabulariesCollectionSection(this, conversation, parentElement, style);
+    public MeasurementUnitCollectionSection createMeasurementUnitCollectionSection(ICdmFormElement parentElement, int style){
+        MeasurementUnitCollectionSection section = new MeasurementUnitCollectionSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public MeasurementUnitCollectionSection createMeasurementUnitCollectionSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        MeasurementUnitCollectionSection section = new MeasurementUnitCollectionSection(this, conversation, parentElement, style);
+    public MeasurementUnitDtoCollectionSection createMeasurementUnitDtoCollectionSection(ICdmFormElement parentElement, int style){
+        MeasurementUnitDtoCollectionSection section = new MeasurementUnitDtoCollectionSection(this, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
+    public StatisticalMeasureCollectionSection createStatisticalMeasureCollectionSection(ICdmFormElement parentElement, int style){
+        StatisticalMeasureCollectionSection section = new StatisticalMeasureCollectionSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public StatisticalMeasureCollectionSection createStatisticalMeasureCollectionSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        StatisticalMeasureCollectionSection section = new StatisticalMeasureCollectionSection(this, conversation, parentElement, style);
+    public StatisticalMeasureDtoCollectionSection createStatisticalMeasureDtoCollectionSection(ICdmFormElement parentElement, int style){
+        StatisticalMeasureDtoCollectionSection section = new StatisticalMeasureDtoCollectionSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public CollectingAreasDetailSection createCollectingAreasDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        CollectingAreasDetailSection section = new CollectingAreasDetailSection(this, conversation, parentElement, style);
+    public CollectingAreasDetailSection createCollectingAreasDetailSection(ICdmFormElement parentElement, int style){
+        CollectingAreasDetailSection section = new CollectingAreasDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public GeoScopeDetailSection createGeoScopeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        GeoScopeDetailSection section = new GeoScopeDetailSection(this, conversation, parentElement, style);
+    public GeoScopeDetailSection createGeoScopeDetailSection(ICdmFormElement parentElement, int style){
+        GeoScopeDetailSection section = new GeoScopeDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public GeoScopePolyKeyDetailSection createGeoScopePolyKeyDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        GeoScopePolyKeyDetailSection section = new GeoScopePolyKeyDetailSection(this, conversation, parentElement, style);
+    public GeoScopePolyKeyDetailSection createGeoScopePolyKeyDetailSection(ICdmFormElement parentElement, int style){
+        GeoScopePolyKeyDetailSection section = new GeoScopePolyKeyDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public IdentifierSection createIdentifierDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        IdentifierSection section = new IdentifierSection(this, conversation, parentElement, style);
+    public IdentifierSection createIdentifierDetailSection(ICdmFormElement parentElement, int style){
+        IdentifierSection section = new IdentifierSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public DerivedUnitFacadeIdentifierSection createDerivedUnitFacadeIdentifierSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-       DerivedUnitFacadeIdentifierSection section = new DerivedUnitFacadeIdentifierSection(this, conversation, parentElement, style);
+    public DerivedUnitFacadeIdentifierSection createDerivedUnitFacadeIdentifierSection(ICdmFormElement parentElement, int style){
+       DerivedUnitFacadeIdentifierSection section = new DerivedUnitFacadeIdentifierSection(this, parentElement, style);
        addAndAdaptSection(parentElement, section);
        return section;
     }
 
-    public CurrentSampleDesignationDetailSection createCurrentSampleDesignationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        CurrentSampleDesignationDetailSection section = new CurrentSampleDesignationDetailSection(this, conversation, parentElement, style);
+    public CurrentSampleDesignationDetailSection createCurrentSampleDesignationDetailSection(ICdmFormElement parentElement, int style){
+        CurrentSampleDesignationDetailSection section = new CurrentSampleDesignationDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public CurrentDeterminationDetailSection createCurrentDeterminationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        CurrentDeterminationDetailSection section = new CurrentDeterminationDetailSection(this, conversation, parentElement, style);
+    public CurrentDeterminationDetailSection createCurrentDeterminationDetailSection(ICdmFormElement parentElement, int style){
+        CurrentDeterminationDetailSection section = new CurrentDeterminationDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public PreservedSpecimenCurrentDeterminationDetailSection createPreservedSpecimenCurrentDeterminationDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        PreservedSpecimenCurrentDeterminationDetailSection section = new PreservedSpecimenCurrentDeterminationDetailSection(this, conversation, parentElement, style);
+    public PreservedSpecimenCurrentDeterminationDetailSection createPreservedSpecimenCurrentDeterminationDetailSection(ICdmFormElement parentElement, int style){
+        PreservedSpecimenCurrentDeterminationDetailSection section = new PreservedSpecimenCurrentDeterminationDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public SampleDesignationHistoryDetailSection createSampleDesignationHistoryDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        SampleDesignationHistoryDetailSection section = new SampleDesignationHistoryDetailSection(this, conversation, parentElement, style);
+    public SampleDesignationHistoryDetailSection createSampleDesignationHistoryDetailSection(ICdmFormElement parentElement, int style){
+        SampleDesignationHistoryDetailSection section = new SampleDesignationHistoryDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public DeterminationHistoryDetailSection createDeterminationHistoryDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        DeterminationHistoryDetailSection section = new DeterminationHistoryDetailSection(this, conversation, parentElement, style);
+    public DeterminationHistoryDetailSection createDeterminationHistoryDetailSection(ICdmFormElement parentElement, int style){
+        DeterminationHistoryDetailSection section = new DeterminationHistoryDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public SpecimenCollectionDetailSection createSpecimenCollectionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        SpecimenCollectionDetailSection section = new SpecimenCollectionDetailSection(this, conversation, parentElement, style);
+    public SpecimenCollectionDetailSection createSpecimenCollectionDetailSection(ICdmFormElement parentElement, int style){
+        SpecimenCollectionDetailSection section = new SpecimenCollectionDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public PreservedSpecimenSourceCollectionDetailSection createPreservedSpecimenSourceCollectionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        PreservedSpecimenSourceCollectionDetailSection section = new PreservedSpecimenSourceCollectionDetailSection(this, conversation, parentElement, style);
+    public PreservedSpecimenSourceCollectionDetailSection createPreservedSpecimenSourceCollectionDetailSection(ICdmFormElement parentElement, int style){
+        PreservedSpecimenSourceCollectionDetailSection section = new PreservedSpecimenSourceCollectionDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public SourceCollectionDetailSection createSourceCollectionDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        SourceCollectionDetailSection section = new SourceCollectionDetailSection(this, conversation, parentElement, style);
+    public SourceCollectionDetailSection createSourceCollectionDetailSection(ICdmFormElement parentElement, int style){
+        SourceCollectionDetailSection section = new SourceCollectionDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public ScopeRestrictionSection createScopeRestrictionSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        ScopeRestrictionSection section = new ScopeRestrictionSection(this, conversation, parentElement, style);
+    public StatusCollectionDetailSection createStatusCollectionDetailSection(ICdmFormElement parentElement, int style){
+        StatusCollectionDetailSection section = new StatusCollectionDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public MemberDetailSection createMemberDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        MemberDetailSection section = new MemberDetailSection(this, conversation, parentElement, style);
+    public ScopeRestrictionSection createScopeRestrictionSection(ICdmFormElement parentElement, int style){
+        ScopeRestrictionSection section = new ScopeRestrictionSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public GrantedAuthorityDetailSection createGrantedAuthorityDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        GrantedAuthorityDetailSection section = new GrantedAuthorityDetailSection(this, conversation, parentElement, style);
+    public MemberDetailSection createMemberDetailSection(ICdmFormElement parentElement, int style){
+        MemberDetailSection section = new MemberDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public GroupsByUserDetailSection createGroupsByUserDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        GroupsByUserDetailSection section = new GroupsByUserDetailSection(this, conversation, parentElement, style);
+    public GrantedAuthorityDetailSection createGrantedAuthorityDetailSection(ICdmFormElement parentElement, int style){
+        GrantedAuthorityDetailSection section = new GrantedAuthorityDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    public TaxonomicScopeSection createTaxonomicScopeSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
-        TaxonomicScopeSection section = new TaxonomicScopeSection(this, conversation, parentElement, style);
+    public GroupsByUserDetailSection createGroupsByUserDetailSection(ICdmFormElement parentElement, int style){
+        GroupsByUserDetailSection section = new GroupsByUserDetailSection(this, parentElement, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
+    public TaxonomicScopeSection createTaxonomicScopeSection(ICdmFormElement parentElement, int style){
+        TaxonomicScopeSection section = new TaxonomicScopeSection(this, parentElement, style);
+        addAndAdaptSection(parentElement, section);
+        return section;
+    }
 
     public AbstractEntityCollectionElement createEntityCollectionElement(AbstractFormSection parentElement,
             Object versionableEntity, SelectionListener removeListener, Color backgroundColor, int style) {
@@ -2783,20 +2799,32 @@ public class CdmFormFactory extends FormToolkit {
 
         if (entity instanceof Annotation) {
             element = new AnnotationElement(this, parentElement, (Annotation) entity, removeListener, style);
+        }else if (entity instanceof AnnotationDto) {
+            element = new AnnotationDtoElement(this, parentElement, (AnnotationDto) entity, removeListener, style);
         }else if (entity instanceof Person ) {
             boolean isNomenclatural = false;
             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) {
             element = new ExtensionElement(this, parentElement, (Extension) entity, removeListener, style);
         } else if (entity instanceof ExternalLink) {
-            element = new ExternalLinksElement(this, parentElement, (ExternalLink) entity, removeListener, style);
+            boolean isAdvanced = true;
+            if(parentElement instanceof ExternalLinksSection){
+                isAdvanced = ((ExternalLinksSection)parentElement).isAdvanced();
+            }
+            element = new ExternalLinksElement(this, parentElement, (ExternalLink) entity, isAdvanced, removeListener, style);
         } else if (entity instanceof Marker) {
             element = new MarkerElement(this, parentElement, (Marker) entity, removeListener, style);
+        } else if (entity instanceof MarkerDto) {
+            element = new MarkerDtoElement(this, parentElement, (MarkerDto) entity, removeListener, style);
         } else if (entity instanceof TaxonNodeAgentRelation) {
             element = new TaxonNodeAgentRelationCollectionElement(this, parentElement, (TaxonNodeAgentRelation) entity, removeListener, backgroundColor, style);
         }else if (entity instanceof Media) {
@@ -2822,9 +2850,6 @@ public class CdmFormFactory extends FormToolkit {
             if (parentElement instanceof DescriptionElementSourceSection){
                parent = ((DescriptionElementSourceSection)parentElement).getParent();
             }
-            if(parent != null){
-                Composite grandParent = parent.getParent();
-            }
             element = new DescriptionElementSourceElement(this, parentElement, (DescriptionElementSource) entity,
                     removeListener, style, false);
         } else if (entity instanceof DescriptionElementSource) {
@@ -2835,7 +2860,7 @@ public class CdmFormFactory extends FormToolkit {
                     removeListener,backgroundColor, style);
         }else if (entity instanceof IdentifiableSource && parentElement.getEntity() instanceof DescriptionElementBase) {
             element = new IdentifiableSourceElement(this, parentElement, (IdentifiableSource) entity, removeListener,
-                    style, false);
+                    style, true);
         } else if (entity instanceof IdentifiableSource ) {
             element = new IdentifiableSourceElement(this, parentElement, (IdentifiableSource) entity, removeListener,
                     style, true);
@@ -2907,7 +2932,6 @@ public class CdmFormFactory extends FormToolkit {
                         removeListener,
                         style);
             }
-
         } else if (entity instanceof NamedArea) {
             element = new CollectingAreaDetailElement(this, parentElement, (NamedArea) entity, removeListener, style);
         } else if (entity instanceof DeterminationEvent) {
@@ -2925,37 +2949,91 @@ public class CdmFormFactory extends FormToolkit {
             // this is the special case for protologs, maybe we can do this
             // differently when API improves
             DescriptionElementBase descriptionElement = (DescriptionElementBase) entity;
-            if (descriptionElement.getFeature().equals(Feature.PROTOLOGUE())) {
-                element = new ProtologueElement(this, parentElement, descriptionElement, removeListener, style);
-            }
+//            if (descriptionElement.getFeature().equals(Feature.PROTOLOGUE())) {
+//                element = new ProtologueElement(this, parentElement, descriptionElement, removeListener, style);
+//            }
         } else if (entity instanceof Identifier) {
             if(parentElement instanceof AbstractSampleDesignationDetailSection){
-                element = new SampleDesignationTextDetailElement(this, parentElement, (Identifier<DnaSample>) entity, removeListener, backgroundColor, style);
+                element = new SampleDesignationTextDetailElement(this, parentElement, (Identifier) entity, removeListener, backgroundColor, style);
             }
             else{
                 element = new IdentifierElement(this, parentElement, (Identifier) entity, removeListener, style);
             }
-        } else if (entity instanceof TermVocabulary) {
-            TermVocabulary<?> termVocabulary = (TermVocabulary<?>)entity;
-            switch (termVocabulary.getTermType()) {
+        } else if (entity instanceof TermCollection) {
+            TermCollection<DefinedTermBase,?> termCollection = (TermCollection<DefinedTermBase,?>)entity;
+            switch (termCollection.getTermType()) {
+            case Structure:
             case State:
-                element = new StateVocabularyCollectionElement(this, parentElement, (TermVocabulary<State>) entity, removeListener, backgroundColor, style);
+                element = new RecommendedStateCollectionElement<>(this, parentElement, termCollection, removeListener, backgroundColor, style);
                 break;
             case Modifier:
-                element = new RecommendedModifierVocabulariesElement(this, parentElement, (TermVocabulary<DefinedTerm>) entity, removeListener, backgroundColor, style);
+                element = new RecommendedModifierCollectionsElement(this, parentElement, (TermCollection)termCollection, removeListener, backgroundColor, style);
+                break;
+            case DeterminationModifier:
+                element = new RecommendedModifierCollectionsElement(this, parentElement, (TermCollection)termCollection, removeListener, backgroundColor, style);
+                break;
+            case KindOfUnit:
+                element = new RecommendedModifierCollectionsElement(this, parentElement, (TermCollection)termCollection, removeListener, backgroundColor, style);
+                break;
+            case Scope:
+                element = new RecommendedModifierCollectionsElement(this, parentElement, (TermCollection)termCollection, removeListener, backgroundColor, style);
+                break;
+            case Sex:
+                element = new RecommendedModifierCollectionsElement(this, parentElement, (TermCollection)termCollection, removeListener, backgroundColor, style);
+                break;
+            case Stage:
+                element = new RecommendedModifierCollectionsElement(this, parentElement, (TermCollection)termCollection, removeListener, backgroundColor, style);
+                break;
+            default:
+                break;
+            }
+        }else if (entity instanceof TermCollectionDto) {
+            TermCollectionDto termCollectionDto = (TermCollectionDto)entity;
+            TermType type = termCollectionDto.getTermType();    
+            if (type.isKindOf(TermType.Modifier)) {
+                type = TermType.Modifier;
+            }
+            switch (type) {
+            case State:
+                element = new RecommendedStateCollectionsDtoElement<>(this, parentElement, termCollectionDto, removeListener, backgroundColor, style);
+                break;
+            case Structure:
+                element = new RecommendedStateCollectionsDtoElement<>(this, parentElement, termCollectionDto, removeListener, backgroundColor, style);
                 break;
+            case Modifier:
+                element = new RecommendedModifierDtoCollectionsElement(this, parentElement, termCollectionDto, removeListener, backgroundColor, style);
+                break;           
             default:
+                
                 break;
             }
-        } else if (entity instanceof MeasurementUnit) {
+        }else if (entity instanceof MeasurementUnit) {
             element = new MeasurementUnitCollectionElement(this, parentElement, (MeasurementUnit) entity, removeListener, backgroundColor, style);
-        } else if (entity instanceof StatisticalMeasure) {
+        }else if (entity instanceof TermDto) {
+            if (((TermDto)entity).getTermType() != null) {
+                if(((TermDto)entity).getTermType().equals(TermType.MeasurementUnit)){
+                    element = new MeasurementUnitDtoCollectionElement(this, parentElement, (TermDto) entity, removeListener, backgroundColor, style);
+                }else if (((TermDto)entity).getTermType().equals(TermType.StatisticalMeasure)){
+                    element = new StatisticalMeasureDtoCollectionElement(this, parentElement, (TermDto) entity, removeListener, backgroundColor, style);
+                } 
+            }
+        }else if (entity instanceof StatisticalMeasure) {
             element = new StatisticalMeasureCollectionElement(this, parentElement, (StatisticalMeasure) entity, removeListener, backgroundColor, style);
         } else if (entity instanceof FeatureState && parentElement instanceof InapplicableIfEntityCollectionSection) {
             element = new InapplicableIfCollectionElement(this, parentElement, (FeatureState) entity, removeListener, backgroundColor, style);
         } else if (entity instanceof FeatureState && parentElement instanceof OnlyApplicableIfEntityCollectionSection) {
             element = new OnlyApplicableIfCollectionElement(this, parentElement, (FeatureState) entity, removeListener, backgroundColor, style);
-        }
+        } else if (entity instanceof FeatureState && parentElement instanceof InapplicableIfEntityCollectionSectionForNode) {
+            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);
+           }else if (entity instanceof OccurrenceStatus) {
+               element = new OccurrenceStatusElement(this, parentElement, (OccurrenceStatus)entity, removeListener, style);
+           }
 
         //check for parent section when entity is null
         //this happens when AbstractUnboundEntityCollectionSection is used
@@ -2984,7 +3062,7 @@ public class CdmFormFactory extends FormToolkit {
                     this,
                     String.format("Could not generate collection element for entity of class %s."
                             + " Looks like the case is not yet handled. Check implementation.\n"
-                            + "Entity: %s", entity.getClass(), entity.toString()), null);
+                            + "Entity: %s", entity.getClass().getName(), entity.toString()), null);
         }
 
         else{
@@ -3006,29 +3084,13 @@ public class CdmFormFactory extends FormToolkit {
      * <strong>Selection elements not handled by this method:</strong>
      * <ul>
      * <li>{@link TaxonNodeSelectionElement} see
-     * {@link #createTaxonNodeSelectionElement(ConversationHolder, ICdmFormElement, String, TaxonNode, int, int)}
+     * {@link #createTaxonNodeSelectionElement(ICdmFormElement, String, TaxonNode, int, int)}
      * </li>
      * <li>{@link NomenclaturalAuthorTeamSelectionElement} see
-     * {@link #createNomenclaturalAuthorTeamSelectionElement(ConversationHolder, ICdmFormElement, String, Team, int, int)}
+     * {@link #createNomenclaturalAuthorTeamSelectionElement(ICdmFormElement, String, Team, int, int)}
      * </li>
      * </ul>
      * </p>
-     *
-     * @param clazz
-     *            a {@link Class} object of the type that you want the selection
-     *            element to handle
-     * @param parentElement
-     *            a {@link ICdmFormElement} object.
-     * @param labelString
-     *            a {@link String} object.
-     * @param selectionType
-     * @param selection
-     *            a {@link ICdmBase} object.
-     * @param style
-     *            a int.
-     * @param conversation
-     *            a {@link ConversationHolder} object.
-     * @return a {@link EntitySelectionElement} object.
      */
     public <T extends CdmBase> EntitySelectionElement<T> createSelectionElement(Class<T> clazz,
             ICdmFormElement parentElement, String labelString, T selection, int mode,
@@ -3044,7 +3106,7 @@ public class CdmFormFactory extends FormToolkit {
     public <T extends CdmBase> EntitySelectionElement<T> createSelectionElement(Class<T> clazz,
             ICdmFormElement parentElement, String labelString, T selection, int mode,
             int style, boolean filterElement) {
-        EntitySelectionElement<T> element = new EntitySelectionElement<T>(this, //conversation,
+        EntitySelectionElement<T> element = new EntitySelectionElement<T>(this,
                 parentElement, clazz,
                 labelString, selection, mode, style, filterElement);
         adapt(element);
@@ -3053,7 +3115,6 @@ public class CdmFormFactory extends FormToolkit {
     }
 
     public <T extends CdmBase> EntitySelectionElement<T> createSelectionElement(Class<T> clazz,
-//            ConversationHolder conversation,
             ICdmFormElement parentElement, String labelString, T selection, int mode,
             int style) {
         EntitySelectionElement<T> element = new EntitySelectionElement<T>(this,
@@ -3064,6 +3125,24 @@ public class CdmFormFactory extends FormToolkit {
         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) {
         CommonNameReferenceSelectionElement element = new CommonNameReferenceSelectionElement(this,
@@ -3081,34 +3160,18 @@ public class CdmFormFactory extends FormToolkit {
      * <strong>Selection elements not handled by this method:</strong>
      * <ul>
      * <li>{@link TaxonNodeSelectionElement} see
-     * {@link #createTaxonNodeSelectionElement(ConversationHolder, ICdmFormElement, String, TaxonNode, int, int)}
+     * {@link #createTaxonNodeSelectionElement(ICdmFormElement, String, TaxonNode, int, int)}
      * </li>
      * <li>{@link NomenclaturalAuthorTeamSelectionElement} see
-     * {@link #createNomenclaturalAuthorTeamSelectionElement(ConversationHolder, ICdmFormElement, String, Team, int, int)}
+     * {@link #createNomenclaturalAuthorTeamSelectionElement(ICdmFormElement, String, Team, int, int)}
      * </li>
      * </ul>
      * </p>
-     *
-     * @param clazz
-     *            a {@link Class} object of the type that you want the selection
-     *            element to handle
-     * @param parentElement
-     *            a {@link ICdmFormElement} object.
-     * @param labelString
-     *            a {@link String} object.
-     * @param selectionType
-     * @param selection
-     *            a {@link ICdmBase} object.
-     * @param style
-     *            a int.
-     * @param conversation
-     *            a {@link ConversationHolder} object.
-     * @return a {@link EntitySelectionElement} object.
      */
     public <T extends CdmBase> EntitySelectionElementWithAbbreviatedTitle<T> createSelectionElementWithAbbreviatedTitle(
-            Class<T> clazz, ConversationHolder conversation, ICdmFormElement parentElement, String labelString,
+            Class<T> clazz, ICdmFormElement parentElement, String labelString,
             T selection, int mode, int style) {
-        EntitySelectionElementWithAbbreviatedTitle<T> element = new EntitySelectionElementWithAbbreviatedTitle<T>(this, //conversation,
+        EntitySelectionElementWithAbbreviatedTitle<T> element = new EntitySelectionElementWithAbbreviatedTitle<T>(this,
                 parentElement, clazz,
                 labelString, selection, mode, style);
         adapt(element);
@@ -3116,7 +3179,7 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    public TaxonNodeSelectionElement createTaxonNodeSelectionElement(ConversationHolder conversation,
+    public TaxonNodeSelectionElement createTaxonNodeSelectionElement(
             ICdmFormElement parentElement, String labelString, TaxonNode selection, int mode, int style) {
         TaxonNodeSelectionElement element = new TaxonNodeSelectionElement(this,
                 parentElement,
@@ -3125,9 +3188,10 @@ public class CdmFormFactory extends FormToolkit {
         parentElement.addElement(element);
         return element;
     }
-    public TaxonNodeSelectionElement createTaxonNodeSelectionElement(ConversationHolder conversation,
+
+    public TaxonNodeSelectionElement createTaxonNodeSelectionElement(
             ICdmFormElement parentElement, String labelString, TaxonNode selection, int mode, int style, Integer limit) {
-        TaxonNodeSelectionElement element = new TaxonNodeSelectionElement(this, //conversation,
+        TaxonNodeSelectionElement element = new TaxonNodeSelectionElement(this,
                 parentElement,
                 labelString, selection, mode, style, limit);
         adapt(element);
@@ -3135,18 +3199,16 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-
 //    public NomenclaturalAuthorTeamSelectionElement createNomenclaturalAuthorTeamSelectionElement(
-//            ConversationHolder conversation, ICdmFormElement parentElement, String labelString, Team selection,
+//            ICdmFormElement parentElement, String labelString, Team selection,
 //            int mode, int style) {
 //        NomenclaturalAuthorTeamSelectionElement element = new NomenclaturalAuthorTeamSelectionElement(this,
-//                conversation, parentElement, labelString, selection, mode, style);
+//                parentElement, labelString, selection, mode, style);
 //        adapt(element);
 //        parentElement.addElement(element);
 //        return element;
 //    }
 
-    /** {@inheritDoc} */
     public LabelElement createLabel(ICdmFormElement parentElement, String text) {
         LabelElement labelElement = new LabelElement(this, parentElement, text);
         adapt(labelElement);
@@ -3154,8 +3216,6 @@ public class CdmFormFactory extends FormToolkit {
         return labelElement;
     }
 
-
-
 //    public DateElementFormElement createDateElementForm(ICdmFormElement formElement, String labelText, DateTime dateTime, int style){
 //        Label label = new Label(formElement.getLayoutComposite(), style);
 //        label.setText(labelText+" (yyyy-MM-dd)");
@@ -3175,45 +3235,19 @@ public class CdmFormFactory extends FormToolkit {
          return dateElement;
     }
 
-    /**
-     * <p>
-     * Getter for the field <code>selectionProvider</code>.
-     * </p>
-     *
-     * @return a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-     */
     public ISelectionProvider getSelectionProvider() {
         return selectionProvider;
     }
 
-    /**
-     * <p>
-     * createDetailedDescriptionDetailElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param entity
-     *            a
-     *            {@link eu.etaxonomy.cdm.model.description.DescriptionElementBase}
-     *            object.
-     * @param style
-     *            a int.
-     * @return a
-     *         {@link eu.etaxonomy.taxeditor.ui.section.description.detail.AbstractDetailedDescriptionDetailElement}
-     *         object.
-     */
-    public AbstractDetailedDescriptionDetailElement createDetailedDescriptionDetailElement(
+    public AbstractDetailedDescriptionDetailElement<?> createDetailedDescriptionDetailElement(
             ICdmFormElement parentElement, DescriptionElementBase entity, int style, boolean enabled) {
-        AbstractDetailedDescriptionDetailElement detailedDescriptionElement = null;
+        AbstractDetailedDescriptionDetailElement<?> detailedDescriptionElement = null;
 
         if (entity instanceof CategoricalData) {
             detailedDescriptionElement = new CategoricalDataDetailElement(this, parentElement,
-                    (CategoricalData) entity, style);
+                    (CategoricalData) entity, enabled, style);
         } else if (entity instanceof CommonTaxonName) {
-            detailedDescriptionElement = new CommonNameDetailElement(this, parentElement, (CommonTaxonName) entity,
-                    style);
+            detailedDescriptionElement = new CommonNameDetailElement(this, parentElement, (CommonTaxonName) entity, enabled, style);
         } else if (entity instanceof Distribution && !enabled) {
             detailedDescriptionElement = new DistributionDetailElement(this, parentElement, (Distribution) entity,
                     enabled, style);
@@ -3222,38 +3256,27 @@ public class CdmFormFactory extends FormToolkit {
                     true, style);
         }else if (entity instanceof IndividualsAssociation) {
             detailedDescriptionElement = new IndividualsAssociationDetailElement(this, parentElement,
-                    (IndividualsAssociation) entity, style);
+                    (IndividualsAssociation) entity, enabled, style);
         } else if (entity instanceof QuantitativeData) {
             detailedDescriptionElement = new QuantitativeDataDetailElement(this, parentElement,
-                    (QuantitativeData) entity, style);
+                    (QuantitativeData) entity, enabled, style);
         } else if (entity instanceof TaxonInteraction) {
             detailedDescriptionElement = new TaxonInteractionDetailElement(this, parentElement,
-                    (TaxonInteraction) entity, style);
+                    (TaxonInteraction) entity, enabled, style);
         } else if (entity instanceof TemporalData) {
-            detailedDescriptionElement = new TemporalDataDetailElement(this, parentElement, (TemporalData) entity, style);
+            detailedDescriptionElement = new TemporalDataDetailElement(this, parentElement, (TemporalData) entity, enabled, style);
         } else if (entity instanceof TextData) {
-            detailedDescriptionElement = new TextDataDetailElement(this, parentElement, (TextData) entity, style);
+            detailedDescriptionElement = new TextDataDetailElement(this, parentElement, (TextData) entity, enabled, style);
         }
         else {
             throw new IllegalStateException("There is no interface for the given description element");
         }
+//        detailedDescriptionElement.setEnabled(enabled);
         adapt(detailedDescriptionElement);
         parentElement.addElement(detailedDescriptionElement);
         return detailedDescriptionElement;
-
     }
 
-    /**
-     * Creates a styled text as a part of the form.
-     *
-     * @param parent
-     *            the text parent
-     * @param value
-     *            the text initial value
-     * @param style
-     *            the text style
-     * @return the text widget
-     */
     public StyledText createStyledText(Composite parent, String value, int style) {
         StyledText text = new StyledText(parent, getBorderStyle() | style | getOrientation());
         if (value != null) {
@@ -3265,26 +3288,19 @@ public class CdmFormFactory extends FormToolkit {
         return text;
     }
 
-    public PreservedSpecimenDetailSection createPreservedSpecimenDetailsSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
-        PreservedSpecimenDetailSection section = new PreservedSpecimenDetailSection(this, conversation, parentElement, selectionProvider, style);
+    public PreservedSpecimenDetailSection createPreservedSpecimenDetailsSection(ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
+        PreservedSpecimenDetailSection section = new PreservedSpecimenDetailSection(this, parentElement, selectionProvider, style);
         addAndAdaptSection(parentElement, section);
         return section;
     }
 
-    /**
-     * @param formElement
-     * @param conversationHolder
-     * @param style
-     * @return
-     */
     public TaxonNodeAgentRelationCollectionSection createTaxonNodeAgentRelationCollectionSection(
-            ICdmFormElement formElement, ConversationHolder conversationHolder, int style) {
-        TaxonNodeAgentRelationCollectionSection section = new TaxonNodeAgentRelationCollectionSection(this, conversationHolder, formElement, style);
+            ICdmFormElement formElement, int style) {
+        TaxonNodeAgentRelationCollectionSection section = new TaxonNodeAgentRelationCollectionSection(this, formElement, style);
         addAndAdaptSection(formElement, section);
         return section;
     }
 
-
        public TaxonOfRelationshipElement createTaxonOfRelationshipDetailElement(
                        ICdmFormElement parentElement, int style) {
                TaxonOfRelationshipElement section = new TaxonOfRelationshipElement(this, parentElement, style);
@@ -3292,32 +3308,13 @@ public class CdmFormFactory extends FormToolkit {
         return section;
        }
 
-       public TaxonDetailSection createTaxonDetailSection(ConversationHolder conversationHolder,
+       public TaxonDetailSection createTaxonDetailSection(
                        ICdmFormElement formElement, ISelectionProvider selectionProvider, int style) {
-                       TaxonDetailSection section = new TaxonDetailSection(this, conversationHolder, formElement, selectionProvider, style);
+                       TaxonDetailSection section = new TaxonDetailSection(this, formElement, selectionProvider, style);
                addAndAdaptSection(formElement, section);
                return section;
        }
 
-
-    /**
-     * <p>
-     * createTextWithLabelElement
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param initialText
-     *            a {@link java.lang.String} object.
-     * @param textLimit maximal number of characters allowed
-     * @param style
-     *            a int.
-     * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement}
-     *         object.
-     */
     public RuleConsideredElement createRuleConsideredElement(ICdmFormElement parentElement, String labelString, boolean isShowCodeEdition, int style) {
         RuleConsideredElement element = new RuleConsideredElement(this, parentElement, labelString, isShowCodeEdition, style);
         adapt(element);
@@ -3325,15 +3322,6 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    /**
-     * @param class1
-     * @param formElement
-     * @param string
-     * @param area
-     * @param nothing
-     * @param style
-     * @return
-     */
     public EntitySelectionElementWithIdInVocabulary createSelectionElementWithIdInVocabulary(Class<NamedArea> clazz,
             ICdmFormElement formElement, String labelString, NamedArea area, int mode, int style) {
         EntitySelectionElementWithIdInVocabulary element = new EntitySelectionElementWithIdInVocabulary(this,
@@ -3343,11 +3331,6 @@ public class CdmFormFactory extends FormToolkit {
         return element;
     }
 
-    /**
-     * @param extendedTimePeriodElement
-     * @param twistie
-     * @return
-     */
     public ExtendedTimeDetailSection createExtendedTimeDetailSection(
             ExtendedTimePeriodElement parentElement, int style) {
         ExtendedTimeDetailSection section = new ExtendedTimeDetailSection(this, parentElement,  style);
@@ -3355,6 +3338,7 @@ public class CdmFormFactory extends FormToolkit {
         adapt(section);
         return section;
     }
+
     public ExtendedTimePeriodElement createExtendedTimePeriodElement(
             ICdmFormElement parentElement, String labelString, ExtendedTimePeriod timePeriod, int style) {
         ExtendedTimePeriodElement section = new ExtendedTimePeriodElement(this, parentElement, labelString, timePeriod, style);
@@ -3363,7 +3347,6 @@ public class CdmFormFactory extends FormToolkit {
         return section;
     }
 
-
 //     public RichTextWithLabelElement createRichTextLabelElement(ICdmFormElement parentElement, String labelString, String initialText, int textHeight, int style) {
 //              RichTextWithLabelElement element = new RichTextWithLabelElement(this, parentElement, labelString,
 //                              initialText, textHeight, style);
@@ -3371,11 +3354,4 @@ public class CdmFormFactory extends FormToolkit {
 //             parentElement.addElement(element);
 //             return element;
 //     }
-
-
-
-
-
-
-
-}
+}
\ No newline at end of file
index 3ee8d270937f7fbfbc1b4591a0eb3639a00c5c0f..51be7d7b0affed014241b6bcabb28901343d358c 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.element;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
index e1f2ea1261de26374a7f09bc1d00ebe8c4aee9fa..2e9d7cb5baf13fd36c13101c5cb0772ca5d6c44d 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.element;
 
 import org.eclipse.swt.SWT;
@@ -15,17 +14,17 @@ import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Label;
-
-import eu.etaxonomy.taxeditor.preference.Resources;
+import org.eclipse.ui.forms.widgets.TableWrapData;
 
 /**
  * <p>CheckboxElement class.</p>
  *
  * @author n.hoffmann
  * @created Nov 5, 2009
- * @version 1.0
  */
-public class CheckboxElement extends AbstractCdmFormElement implements SelectionListener, IEnableableFormElement, ISelectable {
+public class CheckboxElement
+        extends AbstractRelevanceFormElement
+        implements SelectionListener, IEnableableFormElement, ISelectable {
 
        private final Button checkbox;
 
@@ -60,28 +59,19 @@ public class CheckboxElement extends AbstractCdmFormElement implements Selection
 
        /**
         * <p>setSelection</p>
-        *
-        * @param selected a boolean.
         */
        public void setSelection(boolean selected){
                checkbox.removeSelectionListener(this);
                checkbox.setSelection(selected);
                checkbox.addSelectionListener(this);
        }
-
        /**
         * <p>getSelection</p>
-        *
-        * @return a boolean.
         */
        public boolean getSelection(){
                return checkbox.getSelection();
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-        */
-       /** {@inheritDoc} */
        @Override
     public void widgetSelected(SelectionEvent e) {
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
@@ -91,52 +81,58 @@ public class CheckboxElement extends AbstractCdmFormElement implements Selection
            return checkbox;
        }
 
-       /** {@inheritDoc} */
        @Override
     public void widgetDefaultSelected(SelectionEvent e) {}
 
-       /** {@inheritDoc} */
        @Override
     public void setSelected(boolean selected) {
-               setBackground(selected ? SELECTED : getPersistentBackground());
+           setBackground(selected ? SELECTED : getPersistentBackground());
        }
 
-       /** {@inheritDoc} */
        @Override
     public void setEnabled(boolean enabled) {
-               checkbox.setEnabled(enabled);
-               label.setEnabled(enabled);
+               if (!checkbox.isDisposed()){
+                       checkbox.setEnabled(enabled);
+                       if (label != null){
+                               label.setEnabled(enabled);
+                       }
+               }
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#isEnabled()
-        */
        @Override
        public boolean isEnabled() {
            return checkbox.isEnabled();
        }
 
-       /** {@inheritDoc} */
        @Override
-    public void setIrrelevant(boolean irrelevant) {
-               String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT : Resources.COLOR_COMPOSITE_BACKGROUND;
-
-               Color color = getColor(colorId);
-               setBackground(color);
+    public void updateCacheRelevance() {
+           Color color = cacheRelevance().getColor();
+               setCheckboxBackgroundOnly(color);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#setBackground(org.eclipse.swt.graphics.Color)
-        */
-       /** {@inheritDoc} */
+    public void setCheckboxBackgroundOnly(Color color) {
+        if (checkbox.isDisposed()){
+            return;
+        }
+        checkbox.setBackground(color);
+    }
+
        @Override
        public void setBackground(Color color) {
-           if (checkbox.isDisposed()){
-               return;
-           }
-           checkbox.setBackground(color);
-               if (label != null) {
+           setCheckboxBackgroundOnly(color);
+        if (label != null && !label.isDisposed()) {
             label.setBackground(color);
         }
        }
-}
+
+    public void setIndent(int indent){
+           TableWrapData tableWrapData = (TableWrapData)label.getLayoutData();
+        if (tableWrapData == null){
+            tableWrapData = new TableWrapData();
+
+        }
+        tableWrapData.indent = indent;
+        label.setLayoutData(tableWrapData);
+        getLayoutComposite().layout();
+    }
+}
\ No newline at end of file
index d0d8bcb53abf3f116f2b4c6ddd1d246dbde60f60..2ce2b4e90f92959f0e240f7848f7ec658beb7f90 100644 (file)
@@ -1,3 +1,11 @@
+/**\r
+* Copyright (C) 2018 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.element;\r
 \r
 import org.eclipse.jface.util.PropertyChangeEvent;\r
@@ -11,7 +19,9 @@ import eu.etaxonomy.cdm.strategy.parser.TimePeriodParser;
 import eu.etaxonomy.taxeditor.l10n.Messages;\r
 \r
 public class DateDetailSection<T extends TimePeriod>\r
-               extends AbstractFormSection<T> {\r
+               extends AbstractFormSection<T>\r
+        implements ICacheRelevantFormElement, IEnableableFormElement{\r
+\r
        protected TextWithLabelElement text_freeText;\r
        protected PartialElement partialElement_start;\r
        protected PartialElement partialElement_end;\r
@@ -21,6 +31,8 @@ public class DateDetailSection<T extends TimePeriod>
        protected int cursorPosition;\r
        protected boolean includeVerbatim;\r
 \r
+       boolean isEnabled = true;\r
+\r
        public int getCursorPosition() {\r
         return cursorPosition;\r
     }\r
@@ -30,18 +42,7 @@ public class DateDetailSection<T extends TimePeriod>
     }\r
 \r
     /**\r
-        * <p>\r
         * Constructor for DateDetailSection.\r
-        * </p>\r
-        *\r
-        * @param formFactory\r
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}\r
-        *            object.\r
-        * @param parentElement\r
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}\r
-        *            object.\r
-        * @param style\r
-        *            a int.\r
         */\r
        protected DateDetailSection(CdmFormFactory formFactory,\r
                        ICdmFormElement parentElement, boolean includeVerbatim, int style) {\r
@@ -69,8 +70,6 @@ public class DateDetailSection<T extends TimePeriod>
                        LayoutConstants.FILL_HORIZONTALLY(6, 1));\r
                }\r
 \r
-\r
-\r
                text_freeText = formFactory.createTextWithLabelElement(this,\r
                                "Freetext", null, style);\r
                text_freeText.getMainControl().setLayoutData(\r
@@ -111,12 +110,7 @@ public class DateDetailSection<T extends TimePeriod>
 \r
 \r
        /**\r
-        * <p>\r
         * Setter for the field <code>timePeriod</code>.\r
-        * </p>\r
-        *\r
-        * @param timePeriod\r
-        *            a {@link eu.etaxonomy.cdm.model.common.TimePeriod} object.\r
         */\r
        @Override\r
        public void setEntity(T timePeriod) {\r
@@ -126,8 +120,8 @@ public class DateDetailSection<T extends TimePeriod>
        }\r
 \r
        /**\r
-        * When setting the entity through parsing we do not want to alter the parse field\r
-        * @param timePeriod\r
+        * When setting the entity through parsing we do not want\r
+        * to alter the parse field\r
         */\r
        protected void setEntityInternally(T timePeriod){\r
                Partial start = timePeriod.getStart();\r
@@ -149,7 +143,6 @@ public class DateDetailSection<T extends TimePeriod>
                super.setEntity(timePeriod);\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        public void propertyChange(PropertyChangeEvent event) {\r
                if (event == null) {\r
@@ -168,9 +161,6 @@ public class DateDetailSection<T extends TimePeriod>
                }\r
        }\r
 \r
-       /**\r
-        * @param event\r
-        */\r
        private void handleException(CdmPropertyChangeEvent event) {\r
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this,\r
                                event.getException()));\r
@@ -212,8 +202,6 @@ public class DateDetailSection<T extends TimePeriod>
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));\r
        }\r
 \r
-//     protected abstract T parseNewInstance() ;\r
-\r
        protected void updateTitle(){\r
                String title = CdmUtils.Nz(getEntity().toString());\r
                this.setText(title);\r
@@ -224,7 +212,6 @@ public class DateDetailSection<T extends TimePeriod>
            layout();\r
     }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        public void dispose() {\r
                formFactory.removePropertyChangeListener(this);\r
@@ -238,4 +225,36 @@ public class DateDetailSection<T extends TimePeriod>
     public void setText_parseText(TextWithLabelElement text_parseText) {\r
         this.text_parseText = text_parseText;\r
     }\r
-}\r
+\r
+    @Override\r
+    public void updateCacheRelevance() {\r
+        CacheRelevanceHelper.updateCacheRelevanceForSubelements(this);\r
+    }\r
+\r
+    @Override\r
+    public void addDependsOnCache(ToggleableTextElement toggleElement) {\r
+        CacheRelevanceHelper.addDependsOnCacheForSubElements(this, toggleElement);\r
+    }\r
+\r
+    @Override\r
+    public CacheRelevance cacheRelevance() {\r
+        return null;\r
+    }\r
+\r
+    @Override\r
+    public void setEnabled(boolean enabled){\r
+        this.isEnabled = enabled;\r
+        for (ICdmFormElement element: getElements()){\r
+            if (element instanceof IEnableableFormElement){\r
+                IEnableableFormElement enableableElement = (IEnableableFormElement) element;\r
+                enableableElement.setEnabled(enabled);\r
+            }\r
+        }\r
+    }\r
+\r
+    @Override\r
+    public boolean isEnabled() {\r
+       return isEnabled;\r
+    }\r
+\r
+}
\ No newline at end of file
index 66ad9ccae730d11d028d314e71216d0db862267c..b4a6239666b6db2bf182184ccc34706b2ef7087f 100755 (executable)
@@ -13,14 +13,11 @@ import java.net.URL;
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
 import eu.etaxonomy.cdm.common.DOI;
 import eu.etaxonomy.taxeditor.l10n.Messages;
@@ -49,7 +46,7 @@ public class DoiWithLabelElement extends AbstractUriWithExceptionLabelElement<DO
     protected DoiWithLabelElement(CdmFormFactory formFactory, ICdmFormElement parentElement, String labelString,
             DOI initialObject, Integer textHeight, int style) {
         super(formFactory, parentElement, labelString, initialObject, textHeight, style);
-        // TODO Auto-generated constructor stub
+        exceptionString = Messages.DoiWithLabelElement_DOI_NOT_SAVED;
     }
 
     /**
@@ -89,7 +86,7 @@ public class DoiWithLabelElement extends AbstractUriWithExceptionLabelElement<DO
         textAndButton.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
       //uri text
         initText(formFactory, null, textHeight, null, false, style, textAndButton);
-
+        setParsedText(initialObject);
       //button
         btnOpenBrowser = formFactory.createButton(textAndButton, "", SWT.NONE); //$NON-NLS-1$
         btnOpenBrowser.setImage(ImageResources.getImage(ImageResources.WEB));
@@ -116,34 +113,9 @@ public class DoiWithLabelElement extends AbstractUriWithExceptionLabelElement<DO
             }
         });
         btnOpenBrowser.setLayoutData(LayoutConstants.RIGHT());
-        initExceptionLabel(getLayoutComposite(), formFactory, initialObject);
+        initExceptionLabel(getLayoutComposite(), formFactory);
     }
 
-    @Override
-    protected void initExceptionLabel(Composite parent, CdmFormFactory formFactory, DOI initialObject) {
-        labelException = formFactory.createLabel(parent, "", SWT.WRAP); //$NON-NLS-1$
-        int numColumns = AbstractFormSection.DEFAULT_NUM_COLUMNS;
-        if(parent.getLayout() instanceof TableWrapLayout){
-            numColumns = ((TableWrapLayout)parent.getLayout()).numColumns;
-        }
-        labelException.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(numColumns, 1));
-        labelException.setBackground(getPersistentBackground());
-        addControl(labelException);
-        setParsedText(initialObject);
-    }
-    @Override
-    public DOI parseText(){
-        try {
-            labelException.setFont(JFaceResources.getFontRegistry().get(JFaceResources.DEFAULT_FONT));
-            labelException.setForeground(getPersistentBackground());
-            labelException.setText(""); //$NON-NLS-1$
-            return getParsedText();
-        } catch (Exception e) {
-            labelException.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT));
-            labelException.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
-            labelException.setText(Messages.DoiWithLabelElement_DOI_NOT_SAVED+e.getLocalizedMessage());
-            return null;
-        }
-    }
+
 
 }
index 762f238791ff6dd6ac0ee4ce12321ec1afc6df1c..d9da71b501d8e51f04e7f3ca58dcaa51fe28e8c4 100755 (executable)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.ui.element;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.widgets.Display;
@@ -22,14 +22,11 @@ public class FloatWithLabelElement extends NumberWithLabelElement {
     private Float start;
     private Float end;
 
-
     public FloatWithLabelElement(CdmFormFactory toolkit, ICdmFormElement parentElement, String labelString,
             Number initialNumber, int style) {
         super(toolkit, parentElement, labelString, initialNumber, style);
-
     }
 
-
     @Override
     public void modifyText(ModifyEvent event) {
         String value = text.getText();
index 3612cad884da4bcfd6d11ab3b53096e7884186bd..382d97b9d7256240f5edb5e6311708971d3d2c20 100644 (file)
@@ -14,7 +14,7 @@ import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.forms.widgets.Section;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 
 /**
  * <p>
@@ -105,5 +105,9 @@ public class GatheringEventUnitElement extends AbstractCdmFormElement implements
        public void setLabel(String string) {
                label.setText(string);
        }
+
+       public void setExpanded(boolean isExpanded) {
+               this.section_minMaxText.setExpanded(isExpanded);
+       }
 }
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ICacheRelevantFormElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/ICacheRelevantFormElement.java
new file mode 100644 (file)
index 0000000..41660cb
--- /dev/null
@@ -0,0 +1,40 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.element;
+
+/**
+ * IRelevantFormElement interface.
+ *
+ * @author n.hoffmann
+ * @created May 10, 2010
+ */
+public interface ICacheRelevantFormElement {
+
+       /**
+        * Update the relevance state of the element.
+        * Usually the results in a color change.
+        * Containers may sent this to their subelements.
+        */
+       public void updateCacheRelevance();
+
+       /**
+        * Registers this element as being dependend on the
+        * given cache element (ToggleableTextElement).
+        * An element may depend on multiple cache elements.
+        */
+       public void addDependsOnCache(ToggleableTextElement toggleElement);
+
+       /**
+        * Computes the cache relevance for this element.
+        * The cache relevance depends on the registered cache elements
+        * and on their state.
+        */
+       public CacheRelevance cacheRelevance();
+
+}
\ No newline at end of file
index 413fd67b5124f1de250c01d497cde75d39adf4c1..fedf01bfd0094f4389e8ccb665caa25117d26116 100644 (file)
@@ -6,18 +6,15 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.element;
 
-
 /**
- * <p>IEnableableFormElement interface.</p>
+ * IEnableableFormElement interface.
  *
  * @author n.hoffmann
  * @created Mar 10, 2010
- * @version 1.0
  */
-public interface IEnableableFormElement extends IRelevantFormElement {
+public interface IEnableableFormElement {
 
        /**
         * Sets composites of this element to the given enablement state.
index 388520963b67296edee60b5446d8a57102824bd4..a64f9b684556cb7f7f43197f722cbafecbc6050d 100644 (file)
@@ -6,11 +6,8 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.element;
 
-
-
 /**
  * Any composite that represent a cdm entity should implement
  * this interface. Selection of CdmEntity data will rely on this
@@ -18,7 +15,6 @@ package eu.etaxonomy.taxeditor.ui.element;
  *
  * @author n.hoffmann
  * @created Feb 16, 2010
- * @version 1.0
  */
 public interface IEntityElement<ENTITY> extends ICdmFormElement, ISelectable {
 
@@ -29,4 +25,4 @@ public interface IEntityElement<ENTITY> extends ICdmFormElement, ISelectable {
         * @return a ENTITY object.
         */
        public ENTITY getEntity();
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IRelevantFormElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/IRelevantFormElement.java
deleted file mode 100644 (file)
index 489b72f..0000000
+++ /dev/null
@@ -1,29 +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.element;
-
-
-/**
- * <p>IRelevantFormElement interface.</p>
- *
- * @author n.hoffmann
- * @created May 10, 2010
- * @version 1.0
- */
-public interface IRelevantFormElement {
-
-       /**
-        * <p>setIrrelevant</p>
-        *
-        * @param irrelevant a boolean.
-        */
-       public void setIrrelevant(boolean irrelevant);
-       
-}
index c65938b4959a2fe231e3b3ee7e7b3a271ec66de0..dbc65bac6af78d8cec02377d16cf9dc8b40f6f5f 100644 (file)
@@ -1,37 +1,34 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.element;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Display;
 
-
 /**
  * <p>ISelectable interface.</p>
  *
  * @author n.hoffmann
  * @created Feb 22, 2010
- * @version 1.0
  */
 public interface ISelectable{
-       
+
        /** Constant <code>SELECTED</code> */
        public static Color SELECTED = Display.getCurrent().getSystemColor(SWT.COLOR_LIST_SELECTION);
        /** Constant <code>NOT_SELECTED</code> */
        public static Color NOT_SELECTED = Display.getCurrent().getSystemColor(SWT.COLOR_WHITE);
-       
+
        /**
         * <p>setSelected</p>
         *
         * @param selected a boolean.
         */
        public void setSelected(boolean selected);
-}
+}
\ No newline at end of file
index f41846dd8c3688f008af42d9cdd7baea2b1a116d..40678d5736ca836469e8e4b443ee1199f92786db 100644 (file)
@@ -6,18 +6,18 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.element;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.URI;
+import eu.etaxonomy.cdm.common.URI;
 
 import org.apache.http.HttpException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.jface.operation.IRunnableWithProgress;
@@ -35,21 +35,20 @@ import org.eclipse.ui.forms.widgets.TableWrapData;
 import eu.etaxonomy.cdm.common.UriUtils;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewerE4;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewer;
 import eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4;
 import eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4;
 
 /**
  * @author n.hoffmann
  * @created Sep 24, 2010
- * @version 1.0
  */
 public class ImageElement extends AbstractCdmFormElement implements PaintListener{
 
     /**
      * @author pplitzner
      * @since Jul 17, 2019
-     *
      */
     public class LoadImageJob extends Job {
         public LoadImageJob(String name) {
@@ -78,25 +77,29 @@ public class ImageElement extends AbstractCdmFormElement implements PaintListene
         @Override
         public void run() {
             try{
-                EPartService partService = getFormFactory().getContext().get(EPartService.class);
-                DetailsPartE4 detailsView = AbstractUtility.getDetailsView(partService);
-                if(detailsView!=null){
-                    AbstractCdmDataViewerE4 viewer = (AbstractCdmDataViewerE4) detailsView.getViewer();
-                    if(viewer!=null){
-                        viewer.reflow();
+                if (getFormFactory() != null && getFormFactory().getContext() != null){
+                    EPartService partService = getFormFactory().getContext().get(EPartService.class);
+                    IEclipseContext context =  getFormFactory().getContext().getActiveChild();
+                    DetailsPartE4 detailsView = AbstractUtility.getDetailsView(partService);
+                    if(detailsView!=null){
+                        AbstractCdmDataViewer viewer = (AbstractCdmDataViewer) detailsView.getViewer();
+                        if(viewer!=null){
+                            viewer.reflow();
+                        }
                     }
-                }
 
-                MPart mPartSupplemental = partService.findPart("eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4");
-                if(mPartSupplemental!=null){
-                    SupplementalDataPartE4 supplementalPart = (SupplementalDataPartE4)mPartSupplemental.getObject();
-                    if(supplementalPart!=null){
-                        AbstractCdmDataViewerE4 viewer = (AbstractCdmDataViewerE4) (supplementalPart).getViewer();
-                        if(viewer!=null){
-                            viewer.refresh();
+                    MPart mPartSupplemental = partService.findPart("eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4");
+                    if(mPartSupplemental!=null){
+                        SupplementalDataPartE4 supplementalPart = (SupplementalDataPartE4)mPartSupplemental.getObject();
+                        if(supplementalPart!=null){
+                            AbstractCdmDataViewer viewer = (AbstractCdmDataViewer) (supplementalPart).getViewer();
+                            if(viewer!=null){
+                                viewer.refresh();
+                            }
                         }
                     }
                 }
+                StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
             }
             catch(IllegalStateException e){
                 //when migrating to E4 this execption should not be thrown anymore
@@ -151,7 +154,7 @@ public class ImageElement extends AbstractCdmFormElement implements PaintListene
                             PaintEvent event = new PaintEvent(untypedEvent);
                             event.gc = new GC(container);
                             paintControl(event);
-                            getLayoutComposite().layout();
+
                         }
                     }
                 });
index 4e5183abbee1bf0b06d716cb5227ebebcc828385..9d9ca03e361055bd0b1e2db5e22777a42cbb4218 100644 (file)
@@ -25,7 +25,7 @@ import eu.etaxonomy.cdm.common.CdmUtils;
  * @created Jun 1, 2010
  * @version 1.0
  */
-public class LabelElement extends AbstractCdmFormElement {
+public class LabelElement extends AbstractCdmFormElement implements ISelectable{
 
        private Label label;
 
@@ -80,4 +80,13 @@ public class LabelElement extends AbstractCdmFormElement {
            Font boldFont = boldDescriptor.createFont(label.getDisplay());
            label.setFont( boldFont );
        }
+
+
+    @Override
+    public void setSelected(boolean selected) {
+        this.label.setBackground(selected ? SELECTED : getPersistentBackground());
+
+    }
+
+
 }
index cb8a4629fd020fd3bc71cad114f9d481c57e073f..b63b83816de1bf527404962c1bd0c8d790cf8bf1 100644 (file)
@@ -10,6 +10,7 @@
 package eu.etaxonomy.taxeditor.ui.element;
 
 import eu.etaxonomy.cdm.model.common.LSID;
+import eu.etaxonomy.taxeditor.l10n.Messages;
 
 /**
  *
@@ -22,6 +23,7 @@ public class LsidWithExceptionLabelElement extends AbstractUriWithExceptionLabel
     protected LsidWithExceptionLabelElement(CdmFormFactory formFactory, ICdmFormElement parentElement,
             String labelString, LSID initialObject, Integer textHeight, int style) {
         super(formFactory, parentElement, labelString, initialObject, textHeight, style);
+        exceptionString = Messages.LsidWithLabelElement_URL_NOT_SAVED;
     }
 
        /**
index 81decadefe1a516403ad85303cce6151cb7b2267..88085aaec2ef30380d666385d521d8e80104e3c8 100644 (file)
@@ -6,21 +6,16 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.element;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 
 /**
- * <p>
- * MinMaxTextSection class.
- * </p>
  *
  * @author c.mathew
  * @created 23 Jul 2013
- * @version 1.0
  */
 public class MinMaxTextSection extends AbstractFormSection<DerivedUnitFacade> {
 
@@ -74,14 +69,6 @@ public class MinMaxTextSection extends AbstractFormSection<DerivedUnitFacade> {
                formFactory.addPropertyChangeListener(this);
        }
 
-       /**
-        * <p>
-        * Setter for the field <code>timePeriod</code>.
-        * </p>
-        *
-        * @param timePeriod
-        *            a {@link eu.etaxonomy.cdm.model.common.TimePeriod} object.
-        */
        @Override
        public void setEntity(DerivedUnitFacade gatheringEvent) {
                super.setEntity(gatheringEvent);
index deffee9450f5dd0749249a98bf3f05c5780ede90..707ec3465bfbb597b4147d2e3cbc391a61908139 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.element;
 
 import java.util.ArrayList;
@@ -30,6 +29,7 @@ import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.common.MultilanguageTextHelper;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
+import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -37,16 +37,12 @@ import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.translation.TranslationWizard;
 
 /**
- * <p>
- * MultilanguageTextElement class.
- * </p>
  *
  * @author n.hoffmann
  * @created Sep 29, 2010
- * @version 1.0
  */
 public class MultilanguageTextElement extends AbstractCdmFormElement implements
-               SelectionListener {
+               SelectionListener, IEnableableFormElement {
 
        private class OpenTranslationWizard extends SelectionAdapter {
 
@@ -54,13 +50,6 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                        super();
                }
 
-               /*
-                * (non-Javadoc)
-                *
-                * @see
-                * org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse
-                * .swt.events.SelectionEvent)
-                */
                @Override
                public void widgetSelected(SelectionEvent e) {
                        Map<Language, LanguageString> multilanguageText = getMultilanguageText();
@@ -70,48 +59,45 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                                return;
                        }
 
-                       TranslationWizard wizard = new TranslationWizard(multilanguageText);
+                       TranslationWizard wizard = new TranslationWizard(multilanguageText, combo_language.getSelection());
                        WizardDialog dialog = new WizardDialog(getLayoutComposite()
                                        .getShell(), wizard);
 
                        if (dialog.open() == Window.OK) {
                                combo_language.setTerms(getLanguages());
                                updateControls();
+                               firePropertyChangeEvent(new CdmPropertyChangeEvent(button, e));
                        }
-
                }
        }
+       private class DeleteListener extends SelectionAdapter {
+
+               public DeleteListener() {
+                       super();
+               }
 
+               @Override
+               public void widgetSelected(SelectionEvent e) {
+                       Language lang = combo_language.getSelection();
+                       getMultilanguageText().remove(lang);
+                       combo_language.setSelection(null);
+                       combo_language.setTerms(getLanguages());
+                       updateControls();
+                       firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
+               }
+       }
+       
        private TermComboElement<Language> combo_language;
 
        protected LanguageStringWithLabelElement element_languageString;
 
        private Button button;
 
-//     private Button removeRepresentation;
+       private boolean isEnabled = true;
+       private Button removeRepresentation;
 
        private Map<Language, LanguageString> multilanguageText;
 
-       /**
-        * <p>
-        * Constructor for MultilanguageTextElement.
-        * </p>
-        *
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param formElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @param labelString
-        *            a {@link java.lang.String} object.
-        * @param multilanguageText
-        *            a {@link java.util.Map} object.
-        * @param textHeight
-        *            a {@link java.lang.Integer} object.
-        * @param style
-        *            a int.
-        */
        public MultilanguageTextElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement, String labelString,
                        Map<Language, LanguageString> multilanguageText,
@@ -124,7 +110,8 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                                .createLanguageStringWithLabelElement(formElement, labelString,
                                                null, textHeight, true, style);
 
-               if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+               if (PreferencesUtil.isMultilanguageTextEditingCapability() || (multilanguageText != null &&  !multilanguageText.containsKey(CdmStore
+                                                                       .getDefaultLanguage()) && !multilanguageText.isEmpty())) {
                        createMultilanguageTextEditingElements(formElement,
                                        multilanguageText, style);
                }
@@ -135,21 +122,21 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                        ICdmFormElement formElement,
                        Map<Language, LanguageString> multilanguageText, int style) {
                combo_language = formFactory.createDefinedTermComboElement(TermType.Language, formElement,
-                                               "", null, style);
+                                               "", null, false, style);
                combo_language.addSelectionListener(this);
-//             removeRepresentation = formFactory.createButton(getLayoutComposite(), null,
-//                             SWT.PUSH);
-//             removeRepresentation.setImage(ImageResources
-//                             .getImage(ImageResources.TRASH_ICON));
-//             removeRepresentation.setToolTipText("Remove representation");
-//             addControl(removeRepresentation);
-//             removeRepresentation.addSelectionListener(new DeleteListener(this));
-               addControl(formFactory.createLabel(getLayoutComposite(), ""));
+               
                button = formFactory.createButton(getLayoutComposite(),
                                "Open In Translation Editor", SWT.PUSH);
                addControl(button);
                button.setLayoutData(LayoutConstants.RIGHT());
                button.addSelectionListener(new OpenTranslationWizard());
+               removeRepresentation = formFactory.createButton(getLayoutComposite(), null,
+                               SWT.PUSH);
+               removeRepresentation.setImage(ImageResources
+                               .getImage(ImageResources.TRASH_ICON));
+               removeRepresentation.setToolTipText("Remove representation");
+               addControl(removeRepresentation);
+               removeRepresentation.addSelectionListener(new DeleteListener());
        }
 
        private List<Language> getLanguages() {
@@ -162,14 +149,6 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                return languageList;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt
-        * .events.SelectionEvent)
-        */
-       /** {@inheritDoc} */
        @Override
        public void widgetSelected(SelectionEvent e) {
            if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
@@ -180,29 +159,14 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
 
                        element_languageString.setLanguageString(selectedLanguageString);
                }
+               
            }
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse
-        * .swt.events.SelectionEvent)
-        */
-       /** {@inheritDoc} */
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
        }
 
-       /**
-        * <p>
-        * Setter for the field <code>multilanguageText</code>.
-        * </p>
-        *
-        * @param multilanguageText
-        *            the multilanguageText to set
-        */
        public void setMultilanguageText(
                        Map<Language, LanguageString> multilanguageText) {
                this.multilanguageText = multilanguageText;
@@ -214,29 +178,27 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                        }
                        updateControls();
                }
-
        }
 
        @Override
        public void refresh(){
            if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
                Language lang = combo_language.getSelection();
-               if (multilanguageText.get(lang)!= null){
-                   this.element_languageString.setText(multilanguageText.get(combo_language.getSelection()).getText());
-               }else{
-                   this.element_languageString.setText(null);
-               }
+               LanguageString preferredLanguageString = MultilanguageTextHelper
+                                       .getPreferredLanguageString(getMultilanguageText(),
+                                                       Arrays.asList(new Language[] { lang }));
+
+                       element_languageString.setLanguageString(preferredLanguageString);
            }else{
-               if (multilanguageText != null && multilanguageText.get(CdmStore.getDefaultLanguage()) != null){
-                   this.element_languageString.setText(multilanguageText.get(CdmStore.getDefaultLanguage()).getText());
-               }
-           }
+               LanguageString preferredLanguageString = MultilanguageTextHelper
+                                       .getPreferredLanguageString(getMultilanguageText(),
+                                                       Arrays.asList(new Language[] { CdmStore
+                                                                       .getDefaultLanguage() }));
 
+                       element_languageString.setLanguageString(preferredLanguageString);
+           }
        }
 
-       /**
-        *
-        */
        private void updateControls() {
                LanguageString preferredLanguageString = MultilanguageTextHelper
                                .getPreferredLanguageString(getMultilanguageText(),
@@ -245,38 +207,23 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
 
                element_languageString.setLanguageString(preferredLanguageString);
 
-               if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+               if (PreferencesUtil.isMultilanguageTextEditingCapability() || combo_language != null) {
                        combo_language.setSelection(preferredLanguageString == null?CdmStore.getDefaultLanguage():preferredLanguageString.getLanguage());
                        button.setEnabled(true);
                }
        }
 
-       /**
-        * <p>
-        * Getter for the field <code>multilanguageText</code>.
-        * </p>
-        *
-        * @return the multilanguageText
-        */
        public Map<Language, LanguageString> getMultilanguageText() {
                return multilanguageText;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#propertyChange(org
-        * .eclipse.jface.util.PropertyChangeEvent)
-        */
-       /** {@inheritDoc} */
        @Override
        public void propertyChange(PropertyChangeEvent event) {
                if (event == null) {
                        return;
                }
                Object eventSource = event.getSource();
-               if (eventSource == element_languageString) {
+               if (eventSource == element_languageString ) {
                        LanguageString languageString = ((LanguageStringWithLabelElement) eventSource)
                                        .getLanguageString();
                        if (multilanguageText == null){
@@ -287,7 +234,9 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                }
        }
 
-       public void setEnabled(boolean enabled){
+       @Override
+    public void setEnabled(boolean enabled){
+           isEnabled = enabled;
            if(button!=null){
                button.setEnabled(enabled);
            }
@@ -297,4 +246,12 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
            element_languageString.setEnabled(enabled);
        }
 
-}
+       public void setIndent(int indent){
+        this.element_languageString.setIndent(indent);
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return isEnabled;
+    }
+}
\ No newline at end of file
index a9bdc9cbe402d1b2d1011d0a7df16000fbc18ce0..5486f7d6683e165723b9e4d6ebc8b48d718f2c44 100644 (file)
@@ -6,11 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.element;
 
-import org.apache.commons.lang.StringUtils;
-
+import org.apache.commons.lang3.StringUtils;
 
 /**
  * <p>NumberWithLabelElement class.</p>
index 29a1f3a3270b16479c7b965d056714c87740ecef..9be8bc7d8336599d0cf7d659ebcc6d2badb933ff 100755 (executable)
@@ -8,14 +8,20 @@
 */
 package eu.etaxonomy.taxeditor.ui.element;
 
-import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
 import eu.etaxonomy.cdm.model.agent.ORCID;
 import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
+import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
 
 /**
  * @author k.luther
@@ -23,6 +29,8 @@ import eu.etaxonomy.taxeditor.l10n.Messages;
  */
 public class OrcidWithLabelElement extends AbstractUriWithExceptionLabelElement<ORCID> {
 
+    private Button btnOpenBrowser;
+
     /**
      * @param formFactory
      * @param parentElement
@@ -34,7 +42,7 @@ public class OrcidWithLabelElement extends AbstractUriWithExceptionLabelElement<
     protected OrcidWithLabelElement(CdmFormFactory formFactory, ICdmFormElement parentElement, String labelString,
             ORCID initialObject, Integer textHeight, int style) {
         super(formFactory, parentElement, labelString, initialObject, textHeight, style);
-        // TODO Auto-generated constructor stub
+        exceptionString = Messages.OrcidWithLabelElement_ORCID_NOT_SAVED;
     }
 
     /**
@@ -65,38 +73,57 @@ public class OrcidWithLabelElement extends AbstractUriWithExceptionLabelElement<
 
         //label
         initLabel(formFactory, labelString, false, getLayoutComposite());
-        //uri text
-        initText(formFactory, null, textHeight, null, false, style, getLayoutComposite());
-        initExceptionLabel(getLayoutComposite(), formFactory, initialObject);
-    }
+        Composite textAndButton = formFactory.createComposite(getLayoutComposite(), style);
+        addControl(textAndButton);
+        textAndButton.setLayout(LayoutConstants.LAYOUT(2, false));
+        textAndButton.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
 
-    @Override
-    protected void initExceptionLabel(Composite parent, CdmFormFactory formFactory, ORCID initialObject) {
-        labelException = formFactory.createLabel(parent, "", SWT.WRAP); //$NON-NLS-1$
-        int numColumns = AbstractFormSection.DEFAULT_NUM_COLUMNS;
-        if(parent.getLayout() instanceof TableWrapLayout){
-            numColumns = ((TableWrapLayout)parent.getLayout()).numColumns;
-        }
-        labelException.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(numColumns, 2));
-        labelException.setBackground(getPersistentBackground());
-        labelException.setText("\n\n"); //$NON-NLS-1$
-        addControl(labelException);
+        //uri text
+        initText(formFactory, null, textHeight, null, false, style, textAndButton);
         setParsedText(initialObject);
+      //button
+        btnOpenBrowser = formFactory.createButton(textAndButton, "", SWT.NONE); //$NON-NLS-1$
+        btnOpenBrowser.setImage(ImageResources.getImage(ImageResources.WEB));
+        btnOpenBrowser.setToolTipText(Messages.UriWithLabelElement_OPEN_EXTERNAL_BROWSER);
+        btnOpenBrowser.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                String errorTitle = Messages.UriWithLabelElement_INVALID_URL;
+                String errorText = Messages.UriWithLabelElement_COULD_NOT_OPEN_BROWSER;
+
+                ORCID orcid = parseText();
+                if(orcid!=null){
+                    try {
+                        WorkbenchUtility.openWebpage(orcid.asURI());
+                    } catch (IllegalArgumentException iae) {
+                        MessagingUtils.informationDialog(errorTitle, new Status(IStatus.WARNING, TaxeditorStorePlugin.PLUGIN_ID, errorText, iae));
+                    }
+                }
+                else{
+                    MessagingUtils.informationDialog(errorTitle, new Status(IStatus.WARNING, TaxeditorStorePlugin.PLUGIN_ID, errorText, null));
+                }
+            }
+        });
+        btnOpenBrowser.setLayoutData(LayoutConstants.RIGHT());
+        initExceptionLabel(getLayoutComposite(), formFactory);
     }
-    @Override
-    public ORCID parseText(){
-        try {
-            labelException.setFont(JFaceResources.getFontRegistry().get(JFaceResources.DEFAULT_FONT));
-            labelException.setForeground(getPersistentBackground());
-            return getParsedText();
-        } catch (Exception e) {
-            labelException.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT));
-            labelException.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
-            labelException.setText(Messages.OrcidWithLabelElement_ORCID_NOT_SAVED + " " + e.getLocalizedMessage());
-            labelException.requestLayout();
-            return null;
-        }
-    }
+
+
+//    @Override
+//    public ORCID parseText(){
+//        try {
+//            labelException.setText("");
+//            labelException.setFont(JFaceResources.getFontRegistry().get(JFaceResources.DEFAULT_FONT));
+//            labelException.setForeground(getPersistentBackground());
+//            return getParsedText();
+//        } catch (Exception e) {
+//            labelException.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT));
+//            labelException.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
+//            labelException.setText(Messages.OrcidWithLabelElement_ORCID_NOT_SAVED + " " + e.getLocalizedMessage());
+//            labelException.requestLayout();
+//            return null;
+//        }
+//    }
 
 }
 
index f1f880592ec2b3fcd19960b1eb1c978d4664b779..9d58953eb2e44d2252f5809cb221b09509c5c474 100644 (file)
@@ -8,34 +8,22 @@
  */
 package eu.etaxonomy.taxeditor.ui.element;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
  * @author pplitzner
  * @date 17.06.2014
- *
  */
 public class OriginalLabelDataElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
 
     private TextWithLabelElement textOriginalLabel;
 
-    /**
-     * @param formFactory
-     * @param formElement
-     */
     public OriginalLabelDataElement(CdmFormFactory formFactory,
             ICdmFormElement formElement) {
         super(formFactory, formElement);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
-     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
-     */
     @Override
     protected void createControls(ICdmFormElement formElement,
             DerivedUnitFacade entity, int style) {
@@ -43,13 +31,6 @@ public class OriginalLabelDataElement extends AbstractCdmDetailElement<DerivedUn
         textOriginalLabel.setText(entity.getOriginalLabelInfo());
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
-     * .lang.Object)
-     */
     @Override
     public void handleEvent(Object eventSource) {
         if(eventSource==textOriginalLabel){
@@ -57,4 +38,8 @@ public class OriginalLabelDataElement extends AbstractCdmDetailElement<DerivedUn
         }
     }
 
-}
+       @Override
+       public void fillFields() {
+               textOriginalLabel.setText(getEntity().getOriginalLabelInfo());
+       }
+}
\ No newline at end of file
index c9962acfe9a1bec8bb3c9018555f6d9d6fa12166..db8ac74b016d6e058418caae5b74c3a8836c8884 100644 (file)
@@ -29,13 +29,14 @@ import eu.etaxonomy.taxeditor.preference.Resources;
  * @author n.hoffmann
  * @created Mar 31, 2010
  */
-public class PartialElement extends AbstractCdmFormElement implements ISelectable {
+public class PartialElement extends AbstractCdmFormElement implements ISelectable, IEnableableFormElement {
 
        private Label label;
        private FloatWithLabelElement number_day;
        private FloatWithLabelElement number_month;
        private FloatWithLabelElement number_year = null;
        private Partial partial;
+       private boolean isEnabled;
 
        public PartialElement(CdmFormFactory formFactory,
             ICdmFormElement formElement, String labelString, int style){
@@ -175,7 +176,8 @@ public class PartialElement extends AbstractCdmFormElement implements ISelectabl
                setBackground(selected ? SELECTED : getPersistentBackground());
        }
 
-       public void setEnabled(boolean enabled){
+       @Override
+    public void setEnabled(boolean enabled){
            this.number_day.setEnabled(enabled);
            this.number_month.setEnabled(enabled);
            if (number_year != null){
@@ -207,4 +209,9 @@ public class PartialElement extends AbstractCdmFormElement implements ISelectabl
         }
 
     }
+
+    @Override
+    public boolean isEnabled() {
+         return isEnabled;
+    }
 }
index 6e3afdf52cc95521df2a7796e1b22f39bddddf80..d01ba46ffc38e5dd1fd41195aa722be6a8481e69 100644 (file)
@@ -6,17 +6,16 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.element;
 
 import java.text.ParseException;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.util.PropertyChangeEvent;
 
-import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.location.Point;
 import eu.etaxonomy.cdm.model.location.ReferenceSystem;
+import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/RemovableTextElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/RemovableTextElement.java
new file mode 100755 (executable)
index 0000000..ae23839
--- /dev/null
@@ -0,0 +1,98 @@
+/**
+* Copyright (C) 2021 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.element;
+
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+import eu.etaxonomy.taxeditor.model.ImageResources;
+
+/**
+ * @author k.luther
+ * @since Apr 1, 2021
+ */
+public class RemovableTextElement extends AbstractCdmFormElement implements SelectionListener {
+
+    private final Text text_cache;
+    private final Button btnRemoveElement;
+    private final Label label;
+    private final Composite container;
+    private boolean state;
+
+    protected RemovableTextElement(CdmFormFactory formFactory, ICdmFormElement parentElement,
+            String labelString, String initialText, int style) {
+        super(formFactory, parentElement);
+
+        label = formFactory.createLabel(getLayoutComposite(), labelString, style);
+        addControl(label);
+
+        container = formFactory.createComposite(getLayoutComposite(), SWT.WRAP);
+        container.setLayout(LayoutConstants.LAYOUT(2, false));
+        container.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
+        addControl(container);
+
+        text_cache = formFactory.createText(container, initialText, SWT.WRAP | SWT.MULTI);
+        addControl(text_cache);
+        text_cache.setEnabled(false);
+        text_cache.setLayoutData(LayoutConstants.FILL());
+
+        btnRemoveElement = formFactory.createButton(container, "Edit", SWT.TOGGLE);
+        btnRemoveElement.setText("");
+        btnRemoveElement.setImage(ImageResources.getImage(ImageResources.TRASH_ICON));
+        addControl(btnRemoveElement);
+        btnRemoveElement.addSelectionListener(this);
+        if (initialText != null){
+            setState(true);
+        }else {
+            setState(false);
+        }
+
+    }
+
+
+    @Override
+    public void widgetSelected(SelectionEvent e) {
+       setText(null);
+       firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
+    }
+
+    @Override
+    public void widgetDefaultSelected(SelectionEvent e) {
+        // TODO Auto-generated method stub
+
+    }
+
+    public void setText(String text){
+        if (text == null){
+            this.text_cache.setText("");
+        }
+        if (StringUtils.isBlank(text)){
+            setState(false);
+        }else{
+            setState(true);
+        }
+    }
+
+
+    public boolean isState() {
+        return state;
+    }
+
+
+    public void setState(boolean state) {
+        this.state = state;
+    }
+
+}
index c990a1c538144ee2ee54fd5b7e9a4ec3f2dd4a0e..00397d71bae1a1fad4f968c82d981cbb592ef15d 100644 (file)
@@ -17,6 +17,7 @@ package eu.etaxonomy.taxeditor.ui.element;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Set;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.SWT;
@@ -28,6 +29,7 @@ import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.term.Representation;
 import eu.etaxonomy.cdm.model.term.TermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
 import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -35,7 +37,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 
 
-public class RepresentationElement extends AbstractCdmFormElement {
+public class RepresentationElement extends AbstractCdmFormElement implements IEnableableFormElement{
 
         protected TermComboElement<Language> combo_language;
 
@@ -48,9 +50,12 @@ public class RepresentationElement extends AbstractCdmFormElement {
 
         protected Representation selectedRepresentation;
         protected TermBase term;
+        protected AbstractTermDto termDto;
 
                private Button removeRepresentation;
 
+               boolean isEnabled = true;
+
         public RepresentationElement(CdmFormFactory formFactory,
                 ICdmFormElement formElement, TermBase term,
                 Integer textHeight, int style, boolean fill) {
@@ -63,7 +68,7 @@ public class RepresentationElement extends AbstractCdmFormElement {
             super(formFactory, formElement);
 
             formFactory.addPropertyChangeListener(this);
-
+            setSelectedRepresentation(representation);
             element_Label = this.formFactory.createTextWithLabelElement(formElement, "Label", null, style);
             element_abbrevLabel = this.formFactory.createTextWithLabelElement(formElement, "abbrev. Label", null, style);
             element_plural = this.formFactory.createTextWithLabelElement(formElement, "Plural", null, style);
@@ -72,9 +77,34 @@ public class RepresentationElement extends AbstractCdmFormElement {
                 createRepresentationEditingElements(formElement, style);
             }
             setTerm(term, fill);
+            //if(representation!=null){
+            
+           //}
+
+        }
+
+        public RepresentationElement(CdmFormFactory formFactory,
+                ICdmFormElement formElement, Representation representation, AbstractTermDto term,
+                Integer textHeight, int style, boolean fill) {
+            super(formFactory, formElement);
+
+            formFactory.addPropertyChangeListener(this);
             if(representation!=null){
                 setSelectedRepresentation(representation);
             }
+            element_Label = this.formFactory.createTextWithLabelElement(formElement, "Label", null, style);
+            element_abbrevLabel = this.formFactory.createTextWithLabelElement(formElement, "abbrev. Label", null, style);
+            element_plural = this.formFactory.createTextWithLabelElement(formElement, "Plural", null, style);
+            element_text = this.formFactory.createMultiLineTextWithLabel(formElement, "Description", textHeight, style);
+            if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+                createRepresentationEditingElements(formElement, style);
+                
+            }
+            setTermDto(term, fill);
+            if(representation!=null){
+                setSelectedRepresentation(representation);
+            }
+            
 
         }
 
@@ -87,16 +117,26 @@ public class RepresentationElement extends AbstractCdmFormElement {
                removeRepresentation.setToolTipText("Remove representation");
                removeRepresentation.addSelectionListener(new DeleteListener(this));
                addControl(removeRepresentation);
-
+               boolean addNullValue = false;
+               if (this.selectedRepresentation == null) {
+                   addNullValue = true;
+               }
             combo_language = formFactory.createDefinedTermComboElement(TermType.Language, formElement,
-                            "", null, false, style);
+                            "", null, addNullValue, style);
 
        }
 
         public List<Language> getLanguages() {
 
             ArrayList<Language> languageList = new ArrayList<Language>();
-            for (Representation rep: term.getRepresentations()){
+            Set<Representation> reps = null;
+            if (term != null){
+                reps = term.getRepresentations();
+            }else{
+                reps = termDto.getRepresentations();
+            }
+
+            for (Representation rep: reps){
                 languageList.add(rep.getLanguage());
             }
 
@@ -114,17 +154,41 @@ public class RepresentationElement extends AbstractCdmFormElement {
                term.addRepresentation(rep);
             }
 
-            if (selectedRepresentation != null) {
-               combo_language.setTerms(getLanguages());
+//            if (selectedRepresentation != null) {
+//               combo_language.setTerms(getLanguages());
+//
+//            } else{
+//              setEnabledControls(false);
+//                 if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+//                      removeRepresentation.setEnabled(false);
+//                 }
+//            }
+            if (update){
+               updateControls();
+            }
+        }
 
-            } else{
-                setEnabledControls(false);
-                 if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
-                        removeRepresentation.setEnabled(false);
-                 }
+        public void setTermDto(
+                       AbstractTermDto term, boolean update) {
+            this.termDto = term;
+            if (term.getRepresentations().isEmpty()){
+                //if the term has no representation at all, create a default one.
+                Representation rep = Representation.NewInstance("", "empty representation", "", PreferencesUtil.getGlobalLanguage());
+                term.addRepresentation(rep);
             }
+
+            if (selectedRepresentation != null && combo_language != null) {
+               combo_language.setTerms(getLanguages());
+
+            } 
+//            else if (!term.getRepresentations().isEmpty()){
+//                 setEnabledControls(false);
+//                 if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+//                     removeRepresentation.setEnabled(false);
+//                 }
+//            }
             if (update){
-               updateControls();
+                updateControls();
             }
         }
 
@@ -135,9 +199,27 @@ public class RepresentationElement extends AbstractCdmFormElement {
             element_text.setEnabled(enabled);
         }
 
+        @Override
+        public void setEnabled(boolean isEnabled){
+            this.isEnabled = isEnabled;
+            setEnabledControls(isEnabled);
+
+        }
+
+        @Override
+        public boolean isEnabled(){
+            return isEnabled;
+        }
+
         protected void updateControls() {
-            Representation preferredRepresentation = term
+            Representation preferredRepresentation = null;
+            if (term != null){
+                 preferredRepresentation = term
                     .getPreferredRepresentation(PreferencesUtil.getGlobalLanguage() );
+            }else{
+                 preferredRepresentation = termDto
+                        .getPreferredRepresentation(PreferencesUtil.getGlobalLanguage() );
+            }
 
             element_Label.setText(preferredRepresentation != null? preferredRepresentation.getLabel(): null);
             element_abbrevLabel.setText(preferredRepresentation != null? preferredRepresentation.getAbbreviatedLabel(): null);
@@ -146,7 +228,12 @@ public class RepresentationElement extends AbstractCdmFormElement {
             selectedRepresentation = preferredRepresentation;
             if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
                 combo_language.setSelection(preferredRepresentation == null?CdmStore.getDefaultLanguage():preferredRepresentation.getLanguage());
-                boolean removePossible = term.getRepresentations().size() > 1 ;
+                boolean removePossible = false;
+                if (term != null){
+                    removePossible = term.getRepresentations().size() > 1 ;
+                }else{
+                    removePossible = termDto.getRepresentations().size() > 1 ;
+                }
                 removeRepresentation.setEnabled(removePossible);
 
             }
@@ -155,6 +242,9 @@ public class RepresentationElement extends AbstractCdmFormElement {
         public TermBase getTerm() {
             return term;
         }
+        public AbstractTermDto getTermDto() {
+            return termDto;
+        }
 
         @Override
         public void propertyChange(PropertyChangeEvent event) {
@@ -189,12 +279,21 @@ public class RepresentationElement extends AbstractCdmFormElement {
             } else if (eventSource == combo_language){
                 if (combo_language.getSelection() != null){
                     setEnabledControls(true);
-                    boolean removePossible = term.getRepresentations().size() > 1 ;
+                    boolean removePossible = false;
+                    if (term != null){
+                        removePossible = term.getRepresentations().size() > 1 ;
+                    }else{
+                        removePossible = termDto.getRepresentations().size() > 1 ;
+                    }
                     removeRepresentation.setEnabled(removePossible);
 
                     Language selectedLanguage = combo_language.getSelection();
                     if (selectedLanguage != null) {
-                        selectedRepresentation = getTerm().getRepresentation(selectedLanguage);
+                       if (getTerm() != null){
+                               selectedRepresentation = getTerm().getRepresentation(selectedLanguage);
+                       }else{
+                               selectedRepresentation = getTermDto().getRepresentation(selectedLanguage);
+                       }
                         if (selectedRepresentation == null){
                             selectedRepresentation = Representation.NewInstance("", "", "", selectedLanguage);
                         }
@@ -210,7 +309,8 @@ public class RepresentationElement extends AbstractCdmFormElement {
                     setEnabledControls(false);
                     removeRepresentation.setEnabled(false);
                 }
-                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
+                //firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
+                firePropertyChangeEvent(event);
             }
         }
 
@@ -219,10 +319,11 @@ public class RepresentationElement extends AbstractCdmFormElement {
         }
 
         public void setSelectedRepresentation(Representation selectedRepresentation) {
-            if (selectedRepresentation == null){
-                selectedRepresentation = Representation.NewInstance("", "", "", null);
-            }
+//            if (selectedRepresentation == null){
+//                selectedRepresentation = Representation.NewInstance("", "", "", null);
+//            }
             this.selectedRepresentation = selectedRepresentation;
+            
         }
 
         private class DeleteListener extends SelectionAdapter {
@@ -235,12 +336,23 @@ public class RepresentationElement extends AbstractCdmFormElement {
 
                @Override
                public void widgetSelected(SelectionEvent e) {
-                       term.removeRepresentation(selectedRepresentation);
+                   if (term != null){
+                       term.removeRepresentation(selectedRepresentation);
+                   }else {
+                       termDto.getRepresentations().remove(selectedRepresentation);
+                   }
                        firePropertyChangeEvent(new CdmPropertyChangeEvent(
                                        this, e));
                        updateControls();
                }
        }
+
+        /**
+         * @param isEnabled
+         */
+        public void setLanguageComboEnabled(boolean isEnabled) {
+            this.combo_language.setEnabled(isEnabled);            
+        }
     }
 
 
index d052d17091ad9b16b9f13899a4aa34e8d46b453b..a349cedf796784c094622d3f46e5a3f790df4442 100644 (file)
@@ -1,25 +1,19 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.element;
 
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Composite;
 
-
-
 /**
- * <p>RootElement class.</p>
- *
  * @author n.hoffmann
  * @created May 27, 2010
- * @version 1.0
  */
 public class RootElement extends AbstractCdmFormElement {
 
@@ -33,12 +27,10 @@ public class RootElement extends AbstractCdmFormElement {
                super(formFactory, layoutComposite);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setBackground(Color color) {
                for(ICdmFormElement element : getElements()){
                        element.setBackground(color);
                }
        }
-       
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelAndSetNullElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TextWithLabelAndSetNullElement.java
new file mode 100755 (executable)
index 0000000..de818ad
--- /dev/null
@@ -0,0 +1,102 @@
+package eu.etaxonomy.taxeditor.ui.element;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.ImageResources;
+
+public class TextWithLabelAndSetNullElement extends ToggleableTextElement {
+       
+
+       protected TextWithLabelAndSetNullElement(CdmFormFactory formFactory, ICdmFormElement parentElement,
+                       String labelString, String initialText,  int style) {
+               super(formFactory, parentElement, labelString, initialText, !initialText.equals("[NULL]"), null, style);
+               
+               this.text_cache.setEnabled(state);
+               
+               text_cache.addModifyListener(this);
+               
+               btnToggleProtectTitleCache.setSelection(!state);
+//             if (!state){
+//                     this.text_cache.setText("[NULL]");
+//                     
+//             }
+       }
+
+       protected void createButton(CdmFormFactory formFactory) {
+               btnToggleProtectTitleCache = formFactory.createButton(container, null, SWT.CHECK);
+                               
+               addControl(btnToggleProtectTitleCache);
+               btnToggleProtectTitleCache.addSelectionListener(this);
+               btnToggleProtectTitleCache.setToolTipText("Remove the value and keep it empty");
+       }
+
+       @Override
+    public void widgetSelected(SelectionEvent e) {
+               //add [NULL] to text field
+               setState(!btnToggleProtectTitleCache.getSelection());
+               text_cache.setEnabled(state);
+               
+               String textStr = "";
+               if (btnToggleProtectTitleCache.getSelection()){
+                       textStr = "[NULL]";
+               }
+               text_cache.setText(textStr);
+               
+               firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
+       }
+       
+
+
+       @Override
+       public void widgetDefaultSelected(SelectionEvent e) {
+               // TODO Auto-generated method stub
+               
+       }
+       
+       @Override
+       protected void setState(boolean state) {
+               //btnToggleProtectTitleCache.setSelection(state);
+               
+               text_cache.setEnabled(!state);
+               String textStr = "";
+           if(state){
+               btnToggleProtectTitleCache.setToolTipText(Messages.TextWithAddNull_ToolTip_NotNull);     
+           }
+           else{
+               btnToggleProtectTitleCache.setToolTipText(Messages.TextWithAddNull_ToolTip_null);
+               textStr = "[NULL]";
+               
+           }  
+          
+           //text_cache.setText(textStr);
+           this.state = state;
+           text_cache.removeModifyListener(this);
+        text_cache.addModifyListener(this);
+//        text_cache.setText(textStr);
+               
+       }
+       
+       @Override
+    public void setEnabled(boolean isEnabled){
+        this.isEnabled = isEnabled;
+        if (state){
+            text_cache.setEditable(isEnabled);
+        }
+        btnToggleProtectTitleCache.setEnabled(isEnabled);
+    }
+       
+       @Override
+    public void modifyText(ModifyEvent e) {
+           if (state){
+               firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
+           }
+       }
+       
+
+}
index ffaeb61267ace388e5431fb9cd0460b1e8bb5c54..8f3374d7a7a8f5ad214aa13434776a5ff4ef867f 100644 (file)
@@ -1,6 +1,11 @@
 /**
- *
- */
+* Copyright (C) 2021 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.ui.element;
 
 import org.eclipse.swt.SWT;
@@ -22,11 +27,13 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
 /**
  * @author n.hoffmann
  */
-public class TextWithLabelElement extends AbstractCdmFormElement implements ModifyListener, IEnableableFormElement,
-        ISelectable {
+public class TextWithLabelElement
+        extends AbstractRelevanceFormElement
+        implements ModifyListener, IEnableableFormElement, ISelectable {
 
     protected Text text;
     private Label label;
+    private boolean isEnabled;
 
     private final boolean isMultiLine;
 
@@ -136,8 +143,6 @@ public class TextWithLabelElement extends AbstractCdmFormElement implements Modi
 
     /**
      * Get the text of this composites text composite
-     *
-     * @return a {@link java.lang.String} object.
      */
     public String getText() {
         if (!text.isDisposed()){
@@ -149,12 +154,9 @@ public class TextWithLabelElement extends AbstractCdmFormElement implements Modi
 
     /**
      * Set the text of this composites text composite
-     *
-     * @param string
-     *            a {@link java.lang.String} object.
      */
     public void setText(String string) {
-        StoreUtil.setTextWithoutModifyListeners(text, string);
+        StoreUtil.setTextWithoutModifyListeners(text, string != null? string.trim(): string);
     }
 
     @Override
@@ -180,28 +182,48 @@ public class TextWithLabelElement extends AbstractCdmFormElement implements Modi
 
     @Override
     public void setEnabled(boolean enabled) {
-        text.setEnabled(enabled);
+        this.isEnabled = enabled;
+        if (text.isDisposed()){
+               return;
+        }
+        text.setEditable(enabled);
         String symbolicName = enabled ? Resources.COLOR_FONT_DEFAULT : Resources.COLOR_TEXT_DISABLED;
         text.setForeground(getColor(symbolicName));
     }
 
     @Override
     public boolean isEnabled() {
-        return text.isEnabled();
+        return isEnabled;
     }
 
-    @Override
-    public void setIrrelevant(boolean irrelevant) {
-        String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT : Resources.COLOR_COMPOSITE_BACKGROUND;
+    public void setEditable(boolean editable) {
+       if (text.isDisposed()){
+               return;
+       }
+        text.setEditable(editable);
+        String symbolicName = editable ? Resources.COLOR_FONT_DEFAULT : Resources.COLOR_TEXT_DISABLED;
+        text.setForeground(getColor(symbolicName));
+        if (!editable) {
+               text.setBackground(getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND));
+        }else {
+               text.setBackground(getPersistentBackground());
+        }
+    }
 
-        Color color = getColor(colorId);
-        text.setBackground(color);
+    @Override
+    public void updateCacheRelevance() {
+        Color color = cacheRelevance().getColor();
+        if (text.getEditable()) {
+               text.setBackground(color);
+        }
     }
 
     @Override
     public void setBackground(Color color) {
         if (label != null) {
-            label.setBackground(color);
+            if (!label.isDisposed()){
+                label.setBackground(color);
+            }
         }
     }
 
@@ -223,4 +245,34 @@ public class TextWithLabelElement extends AbstractCdmFormElement implements Modi
         text.setTextLimit(limit);
     }
 
+    public void setIndent(int indent){
+        TableWrapData tableWrapData = (TableWrapData)label.getLayoutData();
+        tableWrapData.indent = indent;
+
+        label.setLayoutData(tableWrapData);
+        if (isMultiLine){
+            tableWrapData = (TableWrapData)text.getLayoutData();
+            tableWrapData.indent = indent;
+
+            text.setLayoutData(tableWrapData);
+        }
+        getLayoutComposite().layout();
+    }
+
+    public void setTextForeground(Color color){
+        text.setForeground(color);
+    }
+
+    @Override
+    public String toString() {
+        if (label != null){
+            return CdmUtils.concat("", "TextWithLabelElement[", label.getText(),"]");
+        }else{
+            return super.toString();
+        }
+    }
+
+    public void setMessage(String message) {
+        text.setMessage(message);
+    }
 }
index 5112a2f6f6a7e4b872a814d67b229ed48f735102..141ca94a000d2ae50d08f414a348207b72980fe7 100644 (file)
@@ -6,25 +6,22 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.element;
 
-import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
 
 import eu.etaxonomy.cdm.model.common.TimePeriod;
 
 /**
- * <p>
  * TimePeriodElement class.
- * </p>
  *
  * @author n.hoffmann
  * @created Nov 17, 2009
  */
 public class TimePeriodElement
-                       extends TimePeriodElementBase<TimePeriod> {
+                       extends TimePeriodElementBase<TimePeriod> implements IEnableableFormElement{
+    boolean isEnabled = true;
 
-    
     public TimePeriodElement(CdmFormFactory formFactory, ICdmFormElement parentElement, String labelString,
                        TimePeriod timePeriod, int style) {
                super(formFactory, parentElement, labelString, timePeriod, style);
@@ -33,8 +30,28 @@ public class TimePeriodElement
        @Override
        protected DateDetailSection<TimePeriod> createDateDetailSection() {
                return formFactory.createDateDetailSection(this,
-                               Section.TWISTIE);
+                               ExpandableComposite.TWISTIE);
        }
 
+    @Override
+    public void setEnabled(boolean enabled) {
+        this.isEnabled = enabled;
+        for (ICdmFormElement element: getElements()){
+            if (element instanceof IEnableableFormElement){
+                IEnableableFormElement enableableElement = (IEnableableFormElement) element;
+                enableableElement.setEnabled(enabled);
+            }
+        }
+
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return isEnabled;
+    }
+    
+    public void setExpanded(boolean isExpanded) {
+       this.section_dateDetails.setExpanded(isExpanded);
+    }
 
-}
+}
\ No newline at end of file
index 881766685177c5e840bc95435a37e031d28ceef5..10106b286a46bf085b68fd0454e625fbd48707be 100644 (file)
@@ -1,3 +1,11 @@
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.ui.element;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
@@ -7,7 +15,7 @@ import org.eclipse.swt.widgets.Label;
 import eu.etaxonomy.cdm.model.common.TimePeriod;
 
 public abstract class TimePeriodElementBase<T extends TimePeriod>
-               extends AbstractCdmFormElement
+               extends AbstractRelevanceFormElement
                implements ISelectable {
 
     protected T timePeriod;
@@ -15,22 +23,7 @@ public abstract class TimePeriodElementBase<T extends TimePeriod>
     protected DateDetailSection<T> section_dateDetails;
 
        /**
-        * <p>
         * Constructor for TimePeriodElement.
-        * </p>
-        *
-        * @param style
-        *            a int.
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param parentElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @param labelString
-        *            a {@link java.lang.String} object.
-        * @param timePeriod
-        *            a {@link eu.etaxonomy.cdm.model.common.TimePeriod} object.
         */
        public TimePeriodElementBase(CdmFormFactory formFactory,
                        ICdmFormElement parentElement, String labelString,
@@ -100,4 +93,17 @@ public abstract class TimePeriodElementBase<T extends TimePeriod>
                label.setText(string);
        }
 
-}
+    @Override
+    public void updateCacheRelevance() {
+        if (section_dateDetails != null){
+            section_dateDetails.updateCacheRelevance();
+        }
+    }
+
+    @Override
+    public void addDependsOnCache(ToggleableTextElement cacheElement) {
+        if (section_dateDetails != null){
+            section_dateDetails.addDependsOnCache(cacheElement);
+        }
+    }
+}
\ No newline at end of file
index 38e0c7c7d0c2fd9b2356384946ec446ca95641af..8ee703ae628534d65f54269920dac56581eb0adb 100644 (file)
@@ -6,13 +6,13 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.element;
 
 import java.util.HashSet;
 import java.util.Set;
 
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.SWTException;
 import org.eclipse.swt.events.KeyAdapter;
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.events.ModifyEvent;
@@ -25,27 +25,33 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
  * When the button is pressed, this textfield may be edited.
  *
  * @author n.hoffmann
  * @created Nov 18, 2009
- * @version 1.0
  */
-public class ToggleableTextElement extends AbstractCdmFormElement implements SelectionListener, ModifyListener, IEnableableFormElement, ISelectable {
-
-       private final Text text_cache;
-       private final Button btnToggleProtectTitleCache;
-       private boolean state;
-       private final Set<SelectionListener> selectionListener = new HashSet<SelectionListener>();
+public class ToggleableTextElement
+        extends AbstractRelevanceFormElement
+        implements SelectionListener, ModifyListener,
+        IEnableableFormElement, ISelectable {
+
+       protected Text text_cache;
+       protected Button btnToggleProtectTitleCache;
+       protected boolean state;
+       private final Set<SelectionListener> selectionListener = new HashSet<>();
        private final Label label;
-       private final Composite container;
+       protected final Composite container;
+       private final CacheRelevance relevance;
 
+       protected boolean isEnabled = true;
        //TODO for RL
        public void setVisible(boolean b) {
                text_cache.setVisible(b);
@@ -55,7 +61,8 @@ public class ToggleableTextElement extends AbstractCdmFormElement implements Sel
        }
 
        protected ToggleableTextElement(CdmFormFactory formFactory, ICdmFormElement parentElement,
-                       String labelString, String initialText, boolean initialState, int style) {
+                       String labelString, String initialText, boolean initialState,
+                       CacheRelevance relevance, int style) {
                super(formFactory, parentElement);
 
                label = formFactory.createLabel(getLayoutComposite(), labelString, style);
@@ -68,40 +75,51 @@ public class ToggleableTextElement extends AbstractCdmFormElement implements Sel
 
                text_cache = formFactory.createText(container, initialText, SWT.WRAP | SWT.MULTI);
                addControl(text_cache);
-               text_cache.addModifyListener(this);
+               if (initialState){
+                   text_cache.addModifyListener(this);
+               }
                text_cache.setLayoutData(LayoutConstants.FILL());
 
-
                // Don't accept carriage returns as input
                text_cache.addKeyListener( new KeyAdapter(){
                        @Override
                        public void keyPressed(KeyEvent e) {
-                       if(e.character == SWT.CR) {
-                e.doit = false;
-            }
+                           if (!state){
+                               return;
+                           }
+                       if(e.character == SWT.CR) {
+                    e.doit = false;
+                }
                        }
                });
 
+               createButton(formFactory);
+
+               this.relevance = relevance;
+               setState(initialState);
+       }
+
+       protected void createButton(CdmFormFactory formFactory) {
                btnToggleProtectTitleCache = formFactory.createButton(container, "Edit", SWT.TOGGLE);
                btnToggleProtectTitleCache.setText("");
                btnToggleProtectTitleCache.setImage(ImageResources.getImage(ImageResources.LOCK_ICON));
                addControl(btnToggleProtectTitleCache);
                btnToggleProtectTitleCache.addSelectionListener(this);
-
-               setState(initialState);
        }
 
        public void setText(String text){
                if(text != null){
                        // store current caret position
-                       int caretPosition = text_cache.getCaretPosition();
+                   try {
+                       int caretPosition = text_cache.getCaretPosition();
 
-                       text_cache.removeModifyListener(this);
-                       text_cache.setText(text);
-                       text_cache.addModifyListener(this);
+                       StoreUtil.setTextWithoutModifyListeners(text_cache, text != null? text.trim(): text);
 
-                       // restore caret position
-                       text_cache.setSelection(caretPosition);
+                       // restore caret position
+                       text_cache.setSelection(caretPosition);
+                   }catch(SWTException e) {
+                       //if the text field is deprecated we do not want to set the text, so we can ignore this exception.
+                   }
                }
        }
 
@@ -109,7 +127,7 @@ public class ToggleableTextElement extends AbstractCdmFormElement implements Sel
                return text_cache.getText();
        }
 
-       private void setState(boolean state) {
+       protected void setState(boolean state) {
            if(state){
                btnToggleProtectTitleCache.setImage(ImageResources.getImage(ImageResources.LOCK_OPEN_ICON));
                btnToggleProtectTitleCache.setToolTipText(Messages.ToggleableText_ToolTip_open);
@@ -118,13 +136,19 @@ public class ToggleableTextElement extends AbstractCdmFormElement implements Sel
                btnToggleProtectTitleCache.setImage(ImageResources.getImage(ImageResources.LOCK_ICON));
                btnToggleProtectTitleCache.setToolTipText(Messages.ToggleableText_ToolTip_closed);
            }
-          setEnabled(state);
+           setCacheEnabled(state);
                this.state = state;
        }
 
-       @Override
-    public void setEnabled(boolean enabled) {
-               text_cache.setEnabled(enabled);
+
+    public void setCacheEnabled(boolean enabled) {
+        text_cache.setEditable(enabled);
+        if (enabled){
+            text_cache.removeModifyListener(this);
+            text_cache.addModifyListener(this);
+        }else{
+            text_cache.removeModifyListener(this);
+        }
                btnToggleProtectTitleCache.setGrayed(enabled);
                btnToggleProtectTitleCache.setSelection(enabled);
                Color color = enabled ? null : AbstractUtility.getColor(Resources.COLOR_TEXT_DISABLED);
@@ -132,11 +156,28 @@ public class ToggleableTextElement extends AbstractCdmFormElement implements Sel
                text_cache.setForeground(color);
        }
 
+    @Override
+    public void setEnabled(boolean isEnabled){
+        this.isEnabled = isEnabled;
+        if (state){
+            text_cache.setEditable(isEnabled);
+        }
+        btnToggleProtectTitleCache.setEnabled(isEnabled);
+    }
+
        @Override
        public boolean isEnabled() {
-           return text_cache.isEnabled();
+           return isEnabled;
        }
 
+       public boolean isCacheEnabled() {
+        return btnToggleProtectTitleCache.getSelection();
+    }
+
+    public CacheRelevance getRelevance() {
+        return this.relevance;
+    }
+
        public boolean getState(){
                return state;
        }
@@ -147,7 +188,7 @@ public class ToggleableTextElement extends AbstractCdmFormElement implements Sel
 
        @Override
     public void widgetSelected(SelectionEvent e) {
-               setState(btnToggleProtectTitleCache.getSelection());
+           setState(btnToggleProtectTitleCache.getSelection());
                for(SelectionListener listener : selectionListener){
                        listener.widgetSelected(e);
                }
@@ -167,18 +208,18 @@ public class ToggleableTextElement extends AbstractCdmFormElement implements Sel
 
        @Override
     public void modifyText(ModifyEvent e) {
-               firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
+           if (state){
+               firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
+           }
        }
 
        @Override
-    public void setIrrelevant(boolean irrelevant) {
-               String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT : Resources.COLOR_COMPOSITE_BACKGROUND;
-
-               Color color = getColor(colorId);
+    public void updateCacheRelevance() {
+               Color color = cacheRelevance().getColor();
                text_cache.setBackground(color);
        }
 
-       @Override
+    @Override
        public void setBackground(Color color) {
                label.setBackground(color);
                container.setBackground(color);
@@ -188,4 +229,14 @@ public class ToggleableTextElement extends AbstractCdmFormElement implements Sel
        public void setSelected(boolean selected) {
                setBackground(selected ? SELECTED : getPersistentBackground());
        }
-}
+
+    @Override
+    public String toString() {
+        if (label != null){
+            return CdmUtils.concat("", "ToggleableTextElement[", label.getText(),"]");
+        }else{
+            return super.toString();
+        }
+    }
+
+}
\ No newline at end of file
index c2810146084ebd1c5de29a6e6cc8c36ff5e3c196..87323b409695703296abdc192f3aa31e70c0f0de 100644 (file)
@@ -16,9 +16,11 @@ import org.eclipse.swt.events.SelectionEvent;
 
 import eu.etaxonomy.cdm.model.term.Representation;
 import eu.etaxonomy.cdm.model.term.TermBase;
-import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermTranslationWizard;
 
 /**
@@ -26,7 +28,7 @@ import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermTranslationWizard;
  * @date 23.06.2016
  *
  */
-public class TranslatableRepresentationElement extends RepresentationElement {
+public class TranslatableRepresentationElement extends RepresentationElement  {
 
     /**
      * @param formFactory
@@ -40,7 +42,14 @@ public class TranslatableRepresentationElement extends RepresentationElement {
     public TranslatableRepresentationElement(CdmFormFactory formFactory, ICdmFormElement formElement,
             Representation representation, TermBase term, Integer textHeight, int style, boolean fill) {
         super(formFactory, formElement, representation, term, textHeight, style, fill);
-        
+
+
+    }
+
+    public TranslatableRepresentationElement(CdmFormFactory formFactory, ICdmFormElement formElement,
+            Representation representation, AbstractTermDto term, Integer textHeight, int style, boolean fill) {
+        super(formFactory, formElement, representation, term, textHeight, style, fill);
+
 
     }
 
@@ -74,12 +83,18 @@ public class TranslatableRepresentationElement extends RepresentationElement {
         @Override
         public void widgetSelected(SelectionEvent e) {
             TermBase term = getTerm();
+            AbstractTermDto termDto = getTermDto();
+           
 
-            if (term == null){
+            if (term == null && termDto == null){
                 MessagingUtils.warningDialog("No term to translate", getClass(), "The term is empty and therefore can not be translated");
             }
-
-            TermTranslationWizard wizard = new TermTranslationWizard(term);
+            TermTranslationWizard wizard;
+            if (term != null) {
+               wizard = new TermTranslationWizard(term);
+            }else {
+               wizard = new TermTranslationWizard(termDto);
+            }
             WizardDialog dialog = new WizardDialog(getLayoutComposite()
                     .getShell(), wizard);
 
@@ -87,7 +102,7 @@ public class TranslatableRepresentationElement extends RepresentationElement {
                 combo_language.setTerms(getLanguages());
                 updateControls();
             }
-            
+
             firePropertyChangeEvent( e);
 
         }
@@ -123,10 +138,26 @@ public class TranslatableRepresentationElement extends RepresentationElement {
        if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
           button.setEnabled(true);
           combo_language.setTerms(getLanguages());
-          combo_language.setSelection(selectedRepresentation.getLanguage());
+          if (selectedRepresentation != null){
+              combo_language.setSelection(selectedRepresentation.getLanguage());
+          }else {
+              combo_language.setSelection(CdmStore.getDefaultLanguage());
+          }
        }
 
     }
+    @Override
+    public void setEnabled(boolean isEnabled){
+        super.setEnabled(isEnabled);
+        if (combo_language != null){
+            combo_language.setEnabled(isEnabled);
+        }
+        if (button != null){
+            button.setEnabled(isEnabled);
+        }
+
+    }
+
 
 
 }
index 4801c2234fed52ec86b40e163744fc1f0390f4f8..f3106f13f868500e04f6513fbc005570cd7d79d1 100644 (file)
@@ -6,12 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.element;
 
 import java.io.IOException;
-import java.net.URI;
-import java.net.URL;
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
@@ -21,7 +18,7 @@ import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 
-import eu.etaxonomy.cdm.common.UrlUtf8Coder;
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -31,21 +28,18 @@ import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
 /**
  * @author n.hoffmann
  * @created Dec 20, 2010
- * @version 1.0
  */
 public class UriWithLabelElement extends AbstractUriWithExceptionLabelElement<URI> {
 
     private Button btnOpenBrowser;
+    private boolean isValidUri = false;
 
     protected UriWithLabelElement(CdmFormFactory formFactory, ICdmFormElement parentElement, String labelString,
             URI initialObject, Integer textHeight, int style) {
         super(formFactory, parentElement, labelString, initialObject, textHeight, style);
-
+        exceptionString = Messages.UriWithLabelElement_URL_NOT_SAVED;
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected void init(CdmFormFactory formFactory, String labelString, URI initialObject, Integer textHeight, int style) {
 
@@ -60,7 +54,7 @@ public class UriWithLabelElement extends AbstractUriWithExceptionLabelElement<UR
 
         //uri text
         initText(formFactory, null, textHeight, null, false, style, textAndButton);
-
+        setParsedText(initialObject);
         //button
         btnOpenBrowser = formFactory.createButton(textAndButton, "", SWT.NONE); //$NON-NLS-1$
         btnOpenBrowser.setImage(ImageResources.getImage(ImageResources.WEB));
@@ -87,50 +81,33 @@ public class UriWithLabelElement extends AbstractUriWithExceptionLabelElement<UR
             }
         });
         btnOpenBrowser.setLayoutData(LayoutConstants.RIGHT());
-
-        initExceptionLabel(getLayoutComposite(), formFactory, initialObject);
+        initExceptionLabel(getLayoutComposite(), formFactory);
     }
 
-
-
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void setParsedText(URI object) {
         if(object != null){
             super.setText(object.toString());
         }
+
+
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected URI getParsedText() throws Exception {
         String uriText = super.getText();
         if(uriText!=null){
+            btnOpenBrowser.setEnabled(true);
             try{
-                return new URI(super.getText());
-            }catch(Exception e){
-                URL url = new URL(uriText);
-                String[] pathElements =  url.getPath().split("/");
-
-                for (String element: pathElements){
-                    String replacement = UrlUtf8Coder.encode(element);
-                    uriText = uriText.replace(element, replacement);
-                }
-                if (url.getQuery() != null){
-                    uriText = uriText.replace(url.getQuery(), UrlUtf8Coder.encode(url.getQuery()));
-                }
-                url = new URL(uriText);
-                return url.toURI();
-
+                URI uri = new URI(super.getText());
+                return uri;
+            }catch (Exception e){
+                btnOpenBrowser.setEnabled(false);
+                throw e;
             }
-
+        }else{
+            btnOpenBrowser.setEnabled(false);
+               return null;
         }
-        return null;
     }
-
 }
index f1f94e1ae30d24aab3c3667736191e6ac87530b6..093bed3e241ac2e5d6ad9c4e3e3bb794977c4ae4 100755 (executable)
@@ -15,12 +15,11 @@ import eu.etaxonomy.cdm.model.common.VerbatimTimePeriod;
 /**
  * @author k.luther
  * @since 15.05.2018
- *
  */
-public class VerbatimTimePeriodElement 
+public class VerbatimTimePeriodElement
                        extends TimePeriodElementBase<VerbatimTimePeriod> {
 
-    
+
     public VerbatimTimePeriodElement(CdmFormFactory formFactory, ICdmFormElement parentElement, String labelString,
                        VerbatimTimePeriod timePeriod, int style) {
                super(formFactory, parentElement, labelString, timePeriod, style);
@@ -33,19 +32,10 @@ public class VerbatimTimePeriodElement
        }
 
     /**
-     * <p>
      * Setter for the field <code>timePeriod</code>.
-     * </p>
-     *
-     * @param timePeriod
-     *            the timePeriod to set
      */
     @Override
     public void setTimePeriod(VerbatimTimePeriod timePeriod) {
         super.setTimePeriod(timePeriod);
     }
-
-
-
-
-}
+}
\ No newline at end of file
index c677b86c4e17c94139c48449f2b954db17b15c6b..b32f7fee5e538732765b0fa462eab5544474b21f 100644 (file)
@@ -18,6 +18,7 @@ import eu.etaxonomy.taxeditor.ui.mvc.interfaces.ICdmComposite;
 
 /**
  * Basic implementation of {@link ICdmComposite}.
+ *
  * @author pplitzner
  * @date 11.02.2014
  *
@@ -27,10 +28,6 @@ public abstract class AbstractCdmComposite<T extends CdmCompositeController> ext
 
     protected T controller;
 
-    /**
-     * @param parent
-     * @param style
-     */
     public AbstractCdmComposite(Composite parent, int style) {
         super(parent, style);
     }
@@ -47,25 +44,16 @@ public abstract class AbstractCdmComposite<T extends CdmCompositeController> ext
         }
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.mvc.interfaces.CdmComposite#initController(eu.etaxonomy.taxeditor.ui.element.CdmFormFactory, eu.etaxonomy.taxeditor.ui.element.ICdmFormElement)
-     */
     @Override
     public void initController(CdmFormFactory formFactory, ICdmFormElement parentElement) {
         initInternalController(formFactory, parentElement);
         initChildController(formFactory, parentElement);
     }
 
-    /**
-     * @param formFactory
-     * @param parentElement
-     * @return
-     */
     protected abstract void initInternalController(CdmFormFactory formFactory, ICdmFormElement parentElement);
 
     @Override
     public T getController(){
         return controller;
     }
-
-}
+}
\ No newline at end of file
index f1e2f8507765a41e4df006c4a7b88e5008fa7814..c40c2db96fadd3b8e0370b27edf4e76dd199920a 100644 (file)
@@ -21,15 +21,13 @@ import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 
-import eu.etaxonomy.cdm.model.term.IEnumTerm;
-import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
 import eu.etaxonomy.cdm.model.reference.ReferenceType;
+import eu.etaxonomy.cdm.model.term.IEnumTerm;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.preference.Resources;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractRelevanceFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
@@ -39,12 +37,12 @@ import eu.etaxonomy.taxeditor.ui.mvc.interfaces.CdmCompositeController;
 /**
  * @author pplitzner
  * @date 29.01.2014
- *
  */
-public class EnumTermComboController<T extends IEnumTerm<T>> extends AbstractCdmFormElement implements SelectionListener,
-IEnableableFormElement, ISelectable, CdmCompositeController {
+public class EnumTermComboController<T extends IEnumTerm<T>>
+               extends AbstractRelevanceFormElement
+               implements SelectionListener, IEnableableFormElement, ISelectable, CdmCompositeController {
 
-    private static CdmEnumDataHolder[] cdmEnumDataHolders = {
+    private static CdmEnumDataHolder<?>[] cdmEnumDataHolders = {
         new CdmEnumDataHolder<NomenclaturalCode>(){
 
             @Override
@@ -133,20 +131,7 @@ IEnableableFormElement, ISelectable, CdmCompositeController {
     private final Class<T> enumType;
 
     /**
-     * <p>
      * Constructor for AbstractEnumComboElement.
-     * </p>
-     *
-     * @param formFactory
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-     *            object.
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param <T>
-     *            a T object.
      */
     public EnumTermComboController(Combo combo, CdmFormFactory formFactory,
             ICdmFormElement parentElement, Class<T> enumType, int style) {
@@ -160,26 +145,10 @@ IEnableableFormElement, ISelectable, CdmCompositeController {
         populateTypes();
 
         combo.addSelectionListener(this);
-
-    }
-
-    private String getDefaultLabelString() {
-        if(enumType.equals(ReferenceType.class)){
-            return "Reference Type";
-        } else if (enumType.equals(NomenclaturalCode.class)){
-            return "Nomenclatural Code";
-        } else if(enumType.equals(OriginalSourceType.class)) {
-            return "Orig. Source Type";
-        } else if(enumType.equals(SpecimenOrObservationType.class)) {
-            return "Spec./Obs. Type";
-        }
-        return "No Label";
     }
 
     /**
-     * <p>
      * populateTypes
-     * </p>
      */
     private void populateTypes(){
         Collection<T> elementsForClass = getElementsForClass(enumType);
@@ -200,104 +169,54 @@ IEnableableFormElement, ISelectable, CdmCompositeController {
         }
     }
 
-    /**
-     * <p>
-     * Setter for the field <code>selection</code>.
-     * </p>
-     *
-     * @param selection
-     *            the selection to set
-     */
     public void setSelection(T selection) {
         this.selection = selection;
         combo.select(elementTypeList.indexOf(selection));
     }
 
-    /**
-     * <p>
-     * addSelectionListener
-     * </p>
-     *
-     * @param listener
-     *            a {@link org.eclipse.swt.events.SelectionListener} object.
-     */
     public void addSelectionListener(SelectionListener listener) {
         combo.addSelectionListener(listener);
     }
 
-    /**
-     * <p>
-     * removeSelectionListener
-     * </p>
-     *
-     * @param listener
-     *            a {@link org.eclipse.swt.events.SelectionListener} object.
-     */
     public void removeSelectionListener(SelectionListener listener) {
         combo.removeSelectionListener(listener);
     }
 
-    /** {@inheritDoc} */
     @Override
     public void setSelected(boolean selected) {
         setBackground(selected ? SELECTED : getPersistentBackground());
     }
 
-    /**
-     * <p>
-     * Getter for the field <code>selection</code>.
-     * </p>
-     *
-     * @return the selection
-     */
     public T getSelection() {
         return selection;
     }
 
-    /** {@inheritDoc} */
     @Override
     public void setEnabled(boolean enabled) {
         combo.setEnabled(enabled);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#isEnabled()
-     */
     @Override
     public boolean isEnabled() {
         return combo.isEnabled();
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt
-     * .events.SelectionEvent)
-     */
-    /** {@inheritDoc} */
     @Override
     public void widgetSelected(SelectionEvent e) {
         selection = elementTypeList.get(combo.getSelectionIndex());
     }
 
-    /** {@inheritDoc} */
     @Override
-    public void setIrrelevant(boolean irrelevant) {
-        String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT
-                : Resources.COLOR_COMPOSITE_BACKGROUND;
-
-        Color color = StoreUtil.getColor(colorId);
+    public void updateCacheRelevance() {
+        Color color = cacheRelevance().getColor();
         combo.setBackground(color);
     }
 
-    /** {@inheritDoc} */
     @Override
     public void setBackground(Color color) {
 //        label.setBackground(color);
     }
 
-    /** {@inheritDoc} */
     @Override
     public void widgetDefaultSelected(SelectionEvent e) {
     }
@@ -315,9 +234,9 @@ IEnableableFormElement, ISelectable, CdmCompositeController {
     }
 
     private CdmEnumDataHolder<T> getCdmEnumDataHolderForClass(Class<T> clazz){
-        for (CdmEnumDataHolder dataHolder : cdmEnumDataHolders) {
+        for (CdmEnumDataHolder<?> dataHolder : cdmEnumDataHolders) {
             if (dataHolder.getClazz().equals(clazz)){
-                return dataHolder;
+                return (CdmEnumDataHolder<T>)dataHolder;
             }
         }
         return null;
@@ -328,4 +247,4 @@ IEnableableFormElement, ISelectable, CdmCompositeController {
         String getName();
         Collection<T> getElements();
     }
-}
+}
\ No newline at end of file
index 1681223d0d9a9cdd3fb153bff08234102a783fca..77904f32155726fed21fd478ddbf3c36eca4f31f 100644 (file)
@@ -8,9 +8,6 @@
 */
 package eu.etaxonomy.taxeditor.ui.mvc.element;
 
-
-
-
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.DisposeEvent;
 import org.eclipse.swt.events.DisposeListener;
@@ -30,29 +27,34 @@ import org.eclipse.ui.forms.widgets.TableWrapLayout;
 import org.joda.time.DateTimeZone;
 
 import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.ui.element.CacheRelevance;
+import eu.etaxonomy.taxeditor.ui.element.CacheRelevanceHelper;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICacheRelevantFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
 import eu.etaxonomy.taxeditor.ui.mvc.AbstractCdmComposite;
 
 /**
  * @author pplitzner
  * @date 16.06.2014
- *
  */
-public class DateElement extends AbstractCdmComposite<DateElementController>  {
+public class DateElement
+        extends AbstractCdmComposite<DateElementController>
+        implements ICacheRelevantFormElement {
+
+    private static final String pattern = "yyyy-MM-dd HH:mm";
 
     private final FormToolkit toolkit = new FormToolkit(Display.getCurrent());
     private org.joda.time.DateTime initialDateTime;
-    private Text textDate;
+    private final Text textDate;
     private final Button openDateDialog;
-
-    private static final String pattern = "yyyy-MM-dd HH:mm";
-
+    private final Button btnRemove;
+    
+    protected CacheRelevanceHelper cacheRelevanceHelper = new CacheRelevanceHelper();
 
     /**
      * Create the composite.
-     * @param parent
-     * @param style
      */
     public DateElement(Composite parent, org.joda.time.DateTime initDateTime, String label, int style, boolean editableText) {
         super(parent, style);
@@ -60,7 +62,6 @@ public class DateElement extends AbstractCdmComposite<DateElementController>  {
                this.initialDateTime = initDateTime.toDateTime(DateTimeZone.UTC);
         }
 
-
         addDisposeListener(new DisposeListener() {
             @Override
             public void widgetDisposed(DisposeEvent e) {
@@ -83,7 +84,7 @@ public class DateElement extends AbstractCdmComposite<DateElementController>  {
         Composite composite = new Composite (this, SWT.NONE);
        GridLayout layout = new GridLayout ();
 
-       layout.numColumns = 2;
+       layout.numColumns = 3;
        layout.marginWidth = 0;
 
        composite.setLayout(layout);
@@ -120,7 +121,6 @@ public class DateElement extends AbstractCdmComposite<DateElementController>  {
 //                             time.setSeconds(initialDateTime.getSecondOfMinute());
                        }
 
-
 //                     new Label (dialog, SWT.NONE);
 //                     new Label (dialog, SWT.NONE);
                        Button ok = new Button (dialog, SWT.PUSH);
@@ -138,7 +138,17 @@ public class DateElement extends AbstractCdmComposite<DateElementController>  {
                        dialog.open ();
                }
         });
+        btnRemove = new Button (composite, SWT.PUSH);
+        Image imageRemove = ImageResources.getImage(ImageResources.ACTIVE_DELETE_ICON);
+   //     openDateDialog.setText ("Open Date Dialog");
+        btnRemove.setImage(imageRemove);
 
+        btnRemove.addSelectionListener (new SelectionAdapter() {
+               @Override
+               public void widgetSelected(SelectionEvent e){
+                       setData(null);
+               }
+        });
         toolkit.adapt(textDate, true, true);
     }
 
@@ -151,9 +161,6 @@ public class DateElement extends AbstractCdmComposite<DateElementController>  {
         return textDate;
     }
 
-
-
-
     public static org.joda.time.DateTime makeZonedTimeFromSWT(
                                        org.eclipse.swt.widgets.DateTime widget,
                                        org.eclipse.swt.widgets.DateTime dateTime) {
@@ -176,13 +183,31 @@ public class DateElement extends AbstractCdmComposite<DateElementController>  {
                  widget.setDay(dateTime.getDay());
                  widget.setHours(dateTime.getHours());
                  widget.setMinutes(dateTime.getMinutes());
-
        }
 
-       public void setData (org.joda.time.DateTime data) {
+       public void setData (org.joda.time.DateTime data) { 
+               
                        this.initialDateTime = data;
                        this.controller.setDateTime(data);
-                       this.textDate.setText(initialDateTime.toString(pattern));
+                       if (data == null){
+                               this.textDate.setText("");
+                       }else{
+                               this.textDate.setText(initialDateTime.toString(pattern));
+                       }
        }
 
-}
+    @Override
+    public void updateCacheRelevance() {
+        textDate.setBackground(cacheRelevance().getColor());
+    }
+
+    @Override
+    public void addDependsOnCache(ToggleableTextElement cacheElement) {
+        cacheRelevanceHelper.addDependsOnCache(cacheElement);
+    }
+
+    @Override
+    public CacheRelevance cacheRelevance() {
+        return cacheRelevanceHelper.cacheRelevance();
+    }
+}
\ No newline at end of file
index 51cf64fccf6dfac3bcb2aeee04618c3f31dbb81f..708e0e2aef5d9e839658b13db0f59ac6aef0dc5a 100644 (file)
@@ -8,17 +8,12 @@
 */
 package eu.etaxonomy.taxeditor.ui.mvc.element;
 
-
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
-
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.widgets.Text;
 import org.joda.time.DateTime;
-import org.joda.time.LocalDateTime;
 
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractRelevanceFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -28,33 +23,27 @@ import eu.etaxonomy.taxeditor.ui.mvc.interfaces.CdmCompositeController;
 /**
  * @author pplitzner
  * @date 16.06.2014
- *
  */
-public class DateElementController extends AbstractCdmFormElement implements IEnableableFormElement, CdmCompositeController, ModifyListener{
+public class DateElementController
+        extends AbstractRelevanceFormElement
+        implements IEnableableFormElement, CdmCompositeController, ModifyListener {
 
     private final Text textDate;
     private DateTime dateTime;
 
-    /**
-     * @param dateTimeElement
-     * @param formFactory
-     * @param parentElement
-     * @param initialDateTime
-     * @param none
-     */
-    public DateElementController(DateElement dateTimeElement, CdmFormFactory formFactory, 
+    public DateElementController(DateElement dateTimeElement, CdmFormFactory formFactory,
                ICdmFormElement parentElement, DateTime initialDateTime) {
         super(formFactory, parentElement);
         this.textDate = dateTimeElement.getTextDate();
 //        if (initialDateTime != null){
 //             this.textDate.setText(initialDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")));
 //        }
-         this.textDate.setText(initialDateTime!=null?initialDateTime.toString("yyyy-MM-dd HH:mm"):"");
+        this.textDate.setText(initialDateTime!=null?initialDateTime.toString("yyyy-MM-dd HH:mm"):"");
         addControl(textDate);
         dateTime = initialDateTime;
         textDate.addModifyListener(this);
     }
-    
+
 //    public DateElementController(DateElementFormElement dateTimeElement, CdmFormFactory formFactory,  DateTime initialDateTime) {
 //        super(formFactory, dateTimeElement);
 //        this.textDate = dateTimeElement.getTextDate();
@@ -78,14 +67,9 @@ public class DateElementController extends AbstractCdmFormElement implements IEn
 
     public DateTime getDateTime(){
         return dateTime;
-    } 
+    }
     public void setDateTime(DateTime date){
        dateTime = date;
-    } 
-
-    @Override
-    public void setIrrelevant(boolean irrelevant) {
-        // TODO Auto-generated method stub
     }
 
     @Override
@@ -98,4 +82,8 @@ public class DateElementController extends AbstractCdmFormElement implements IEn
         return textDate.isEnabled();
     }
 
-}
+    @Override
+    public void updateCacheRelevance() {
+        System.out.println("updateCacheRelevance not yet implemented for " + this.getClass().getName());
+    }
+}
\ No newline at end of file
index 91413df912e6667b118618aba796e43b052ec01a..025f4538f4270071683a0d8e70d8ac6092ace664 100644 (file)
@@ -1,6 +1,11 @@
 /**
- *
- */
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.ui.mvc.element;
 
 import org.eclipse.swt.SWT;
@@ -14,7 +19,7 @@ import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractRelevanceFormElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -23,14 +28,13 @@ import eu.etaxonomy.taxeditor.ui.element.ISelectable;
 import eu.etaxonomy.taxeditor.ui.mvc.interfaces.CdmCompositeController;
 
 /**
- * <p>
  * TextWithLabelElement class.
- * </p>
  *
  * @author n.hoffmann
  */
-public class TextWithLabelElementController extends AbstractCdmFormElement implements ModifyListener, IEnableableFormElement,
-        ISelectable, CdmCompositeController {
+public class TextWithLabelElementController
+        extends AbstractRelevanceFormElement
+        implements ModifyListener, IEnableableFormElement, ISelectable, CdmCompositeController {
 
     protected Text text;
 //    private Label label;
@@ -41,25 +45,7 @@ public class TextWithLabelElementController extends AbstractCdmFormElement imple
     public static final int SINGLE = -1;
 
     /**
-     * <p>
      * Constructor for TextWithLabelElement.
-     * </p>
-     *
-     * @param formFactory
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-     *            object.
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param labelString
-     *            a {@link java.lang.String} object.
-     * @param initialText
-     *            a {@link java.lang.String} object.
-     * @param textHeight
-     *            a {@link java.lang.Integer} object.
-     * @param style
-     *            a int.
-     * @wbp.parser.entryPoint
      */
     public TextWithLabelElementController(TextWithLabelElementMVC textWithLabelElement, CdmFormFactory formFactory, ICdmFormElement parentElement,
             String initialText, Integer textHeight, int style) {
@@ -101,8 +87,6 @@ public class TextWithLabelElementController extends AbstractCdmFormElement imple
 
     /**
      * Get the text of this composites text composite
-     *
-     * @return a {@link java.lang.String} object.
      */
     public String getText() {
         return text.getText();
@@ -110,9 +94,6 @@ public class TextWithLabelElementController extends AbstractCdmFormElement imple
 
     /**
      * Set the text of this composites text composite
-     *
-     * @param string
-     *            a {@link java.lang.String} object.
      */
     public void setText(String string) {
         StoreUtil.setTextWithoutModifyListeners(text, string);
@@ -136,10 +117,8 @@ public class TextWithLabelElementController extends AbstractCdmFormElement imple
     }
 
     @Override
-    public void setIrrelevant(boolean irrelevant) {
-        String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT : Resources.COLOR_COMPOSITE_BACKGROUND;
-
-        Color color = getColor(colorId);
+    public void updateCacheRelevance() {
+        Color color = cacheRelevance().getColor();
         text.setBackground(color);
     }
 
@@ -161,23 +140,14 @@ public class TextWithLabelElementController extends AbstractCdmFormElement imple
     }
 
     /**
-     * <p>
      * getMainControl
-     * </p>
-     *
-     * @return a {@link org.eclipse.swt.widgets.Control} object.
      */
     public Control getMainControl() {
         return text;
     }
 
     /**
-     * <p>
      * setTextLimit
-     * </p>
-     *
-     * @param limit
-     *            a int.
      */
     public void setTextLimit(int limit) {
         text.setTextLimit(limit);
index 4c3a7a19b819fcbdaca0ceafe13b790761fc76fa..3d92c39b681d293c7dff93af3ae2f44a57f219dd 100644 (file)
@@ -6,30 +6,20 @@
 * 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.openurl;
 
-import java.net.URI;
-
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.model.reference.Reference;
 
 /**
  * @author n.hoffmann
  * @created Feb 3, 2011
- * @version 1.0
  */
 public interface IOpenUrlEnabled {
 
        public void setOpenUrl(URI uri);
 
-       /**
-        * @return
-        */
        public Reference getReference();
 
-       /**
-        * @return
-        */
-       public String getDetail();
-       
-}
+       public String getDetail();      
+}
\ No newline at end of file
index ce5761b06562cf844b22d08e9180022527c6ba9c..02c1c7325017c830c3d6feaa50130a9ec7f69989 100644 (file)
@@ -9,7 +9,6 @@
 
 package eu.etaxonomy.taxeditor.ui.openurl;
 
-import java.net.URI;
 import java.util.List;
 
 import org.eclipse.jface.operation.IRunnableWithProgress;
@@ -24,6 +23,7 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.forms.widgets.ScrolledForm;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.ext.openurl.OpenUrlReference;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.ui.element.ImageElement;
@@ -33,7 +33,6 @@ import eu.etaxonomy.taxeditor.ui.element.RootElement;
 /**
  * @author n.hoffmann
  * @created Jan 31, 2011
- * @version 1.0
  */
 public class OpenUrlReferencePage extends WizardPage implements SelectionListener {
 
@@ -52,16 +51,10 @@ public class OpenUrlReferencePage extends WizardPage implements SelectionListene
 
        private Label label_pageNumber; 
        
-       /**
-        * @param pageName
-        */
        protected OpenUrlReferencePage() {
                super(NAME);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-        */
        @Override
        public void createControl(Composite parent) {
                container = getWizard().getFormFactory().createComposite(parent, SWT.NULL);
@@ -101,9 +94,6 @@ public class OpenUrlReferencePage extends WizardPage implements SelectionListene
                return (OpenUrlSelectorWizard) super.getWizard();
        }
 
-       /**
-        * @param jpegImage
-        */
        public void displayImage() {
                URI imageUri = getWizard().getOpenUrlReferenceImageUri();
                try {
@@ -127,9 +117,6 @@ public class OpenUrlReferencePage extends WizardPage implements SelectionListene
                }
        }
 
-       /**
-        * 
-        */
        private void configurePageBar() {
                setTitle(getWizard().getOpenUrlReference().getTitleCache());
                String pageNumber = getWizard().getOpenUrlReference().getPages();
@@ -138,9 +125,6 @@ public class OpenUrlReferencePage extends WizardPage implements SelectionListene
                button_next.setEnabled(canPage(NEXT));
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-        */
        @Override
        public void widgetSelected(SelectionEvent e) {
                if(e.getSource() == button_next){
@@ -173,9 +157,6 @@ public class OpenUrlReferencePage extends WizardPage implements SelectionListene
                return true;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
-        */
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {}
-}
+}
\ No newline at end of file
index 77f8a692b36f41b00a971723dda429a542b6eecb..aeebfedd06535b5dd40c77144bf0aa2a013bc46d 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.openurl;
 
 import org.eclipse.core.runtime.IStatus;
@@ -27,7 +26,6 @@ import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 /**
  * @author n.hoffmann
  * @created Jan 31, 2011
- * @version 1.0
  */
 public class OpenUrlSelectorElement extends AbstractCdmFormElement implements SelectionListener{
 
@@ -61,9 +59,6 @@ public class OpenUrlSelectorElement extends AbstractCdmFormElement implements Se
                button.addSelectionListener(this);
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-        */
        @Override
        public void widgetSelected(SelectionEvent e) {
                if(openUrlEnabled.getReference() == null){
@@ -80,9 +75,6 @@ public class OpenUrlSelectorElement extends AbstractCdmFormElement implements Se
                }
        }
 
-       /**
-        * @return
-        */
        public String getDetail() {
                return referenceDetail;
        }
@@ -91,23 +83,14 @@ public class OpenUrlSelectorElement extends AbstractCdmFormElement implements Se
                this.referenceDetail = referenceDetail;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
-        */
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {}
 
-       /**
-        * @param reference the reference to set
-        */
        public void setReference(Reference reference) {
                this.reference = reference;
        }
 
-       /**
-        * @return the reference
-        */
        public Reference getReference() {
                return reference;
        }
-}
+}
\ No newline at end of file
index 6327d4f3b31e98bb358fbaab6f77780a4d9ea473..e268928186e93bd32b18329ac5d17fb27631204e 100644 (file)
@@ -6,15 +6,14 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.openurl;
 
-import java.net.URI;
 import java.util.List;
 
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.swt.widgets.Display;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.ext.openurl.MobotOpenUrlQuery;
 import eu.etaxonomy.cdm.ext.openurl.MobotOpenUrlServiceWrapper;
 import eu.etaxonomy.cdm.ext.openurl.MobotOpenUrlServiceWrapper.ReferenceType;
@@ -27,7 +26,6 @@ import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 /**
  * @author n.hoffmann
  * @created Jan 31, 2011
- * @version 1.0
  */
 public class OpenUrlSelectorWizard extends Wizard {
 
@@ -45,8 +43,6 @@ public class OpenUrlSelectorWizard extends Wizard {
 
        private final String referenceDetail;
 
-
-
        /**
         * @param openUrlSelectorElement
         * @param reference
@@ -89,9 +85,6 @@ public class OpenUrlSelectorWizard extends Wizard {
                query.startPage = referenceDetail;
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#addPages()
-        */
        @Override
        public void addPages() {
 
@@ -101,54 +94,32 @@ public class OpenUrlSelectorWizard extends Wizard {
                super.addPages();
        }
 
-       /* (non-Javadoc)
-        * @see org.eclipse.jface.wizard.Wizard#performFinish()
-        */
        @Override
        public boolean performFinish() {
                return true;
        }
 
-       /**
-        * @param openUrlReference the openUrlReference to set
-        */
        public void setOpenUrlReference(OpenUrlReference openUrlReference) {
                this.openUrlReference = openUrlReference;
                this.openUrlReferenceImageUri = openUrlReference.getJpegImage(PreferencesUtil.getIntValue(PreferencePredicate.MobotOpenUrlServiceMaxWidth.getKey(), true)
                                , PreferencesUtil.getIntValue(PreferencePredicate.MobotOpenUrlServiceMaxHeight.getKey(), true));
        }
-
-       /**
-        * @return the openUrlReference
-        */
        public OpenUrlReference getOpenUrlReference() {
                return openUrlReference;
        }
 
-       /**
-        * @return
-        */
        public List<OpenUrlReference> getResult() {
                return openUrlServiceWrapper.doResolve(query);
        }
 
-       /**
-        * @return the formFactory
-        */
        public CdmFormFactory getFormFactory() {
                return formFactory;
        }
 
-       /**
-        * @return the openUrlServiceWrapper
-        */
        public MobotOpenUrlServiceWrapper getOpenUrlServiceWrapper() {
                return openUrlServiceWrapper;
        }
 
-       /**
-        * @return
-        */
        public URI getOpenUrlReferenceImageUri() {
                return openUrlReferenceImageUri;
        }
@@ -160,4 +131,4 @@ public class OpenUrlSelectorWizard extends Wizard {
        public String getReferenceDetail() {
                return referenceDetail;
        }
-}
+}
\ No newline at end of file
index e617f2c5bc7996b2866c1b0b341bc733f0460057..d808b155844d48abe97cd1b712bbe5a1dfcebbf4 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.password;
 
 import org.eclipse.jface.wizard.WizardDialog;
@@ -16,8 +15,6 @@ import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Label;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.model.permission.User;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
@@ -32,20 +29,18 @@ import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 /**
  * @author n.hoffmann
  * @created Mar 10, 2011
- * @version 1.0
  */
-public class EditPasswordElement extends AbstractCdmFormElement implements SelectionListener, IConversationEnabled{
+public class EditPasswordElement
+        extends AbstractCdmFormElement
+        implements SelectionListener{
 
        private User user;
        private Button button;
 
-       private ConversationHolder conversation;
-
        public EditPasswordElement(CdmFormFactory formFactory,
-                       ICdmFormElement formElement, String labelString, User user, ConversationHolder conversation) {
+                       ICdmFormElement formElement, String labelString, User user) {
                super(formFactory, formElement);
 
-               this.conversation = conversation;
                this.user = user;
 
                Label label = formFactory.createLabel(getLayoutComposite(), null);
@@ -65,7 +60,7 @@ public class EditPasswordElement extends AbstractCdmFormElement implements Selec
                if(!CdmStore.getService(IUserService.class).userExists(user.getUsername())) {
                        MessagingUtils.warningDialog(Messages.EditPasswordElement_USERNAME_DOES_NOT_EXIST, this, String.format(Messages.EditPasswordElement_PLEASE_CREATE_OR_SAVE_USER, user.getUsername()));
                } else {
-                       PasswordWizard wizard = new PasswordWizard(user, conversation);
+                       PasswordWizard wizard = new PasswordWizard(user);
                        WizardDialog dialog = new WizardDialog(getLayoutComposite().getShell(), wizard);
                        dialog.open();
                }
@@ -74,13 +69,5 @@ public class EditPasswordElement extends AbstractCdmFormElement implements Selec
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {}
 
-       @Override
-       public void update(CdmDataChangeMap arg0) {}
-
-       @Override
-       public ConversationHolder getConversationHolder() {
-               return conversation;
-       }
-
-
-}
+       
+}
\ No newline at end of file
index 94dc0fb8193d2bc627438802dda8f4602628592e..f56f7eaef9c469b2046234bfaf8895d2bfba2132 100644 (file)
@@ -14,11 +14,8 @@ import org.eclipse.swt.widgets.Display;
 import org.springframework.security.access.AccessDeniedException;
 import org.springframework.security.core.AuthenticationException;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.model.permission.User;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -29,19 +26,17 @@ import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
  * @created Mar 10, 2011
  * @version 1.0
  */
-public class PasswordWizard extends Wizard implements IConversationEnabled{
+public class PasswordWizard extends Wizard {
 
        private PasswordWizardPage passwordPage;
        private final User user;
-       private final ConversationHolder conversation;
-
+       
        /**
         * @param user the user to change the password for
         * @param conversation this optional parameter can be null. Only supply conversation if you
         * need to run this wizard is a nested conversation
         */
-       public PasswordWizard(User user, ConversationHolder conversation){
-               this.conversation = conversation;
+       public PasswordWizard(User user){
                this.user = user;
                setWindowTitle(Messages.PasswordWizardPage_CHANGE_PASSWORD);
        }
@@ -50,16 +45,13 @@ public class PasswordWizard extends Wizard implements IConversationEnabled{
        public void addPages() {
                CdmFormFactory formFactory = new CdmFormFactory(Display.getDefault());
 
-               passwordPage = new PasswordWizardPage(formFactory, getConversationHolder(), user);
+               passwordPage = new PasswordWizardPage(formFactory, user);
                addPage(passwordPage);
        }
 
        @Override
        public boolean performFinish() {
 
-               ConversationHolder internalConversation = CdmStore.getCurrentApplicationConfiguration().NewConversation();
-           internalConversation.bind();
-           internalConversation.startTransaction();
                String warningTitle = Messages.PasswordWizard_COULD_NOT_CHANGE_PWD;
         String warningMessage = Messages.PasswordWizard_OLD_PWD_INCORRECT;
         try{
@@ -74,10 +66,7 @@ public class PasswordWizard extends Wizard implements IConversationEnabled{
                        if (user.equals(CdmStore.getLoginManager().getAuthenticatedUser())){
                                CdmStore.getLoginManager().authenticate(user.getUsername(), passwordPage.getNewPassword());
                        }
-                   internalConversation.commit(false);
-                   internalConversation.unbind();
-                   internalConversation.close();
-                       return true;
+                       return true;
                }catch(AccessDeniedException e){
                        MessagingUtils.warningDialog(warningTitle, this, warningMessage);
                        return false;
@@ -88,20 +77,8 @@ public class PasswordWizard extends Wizard implements IConversationEnabled{
                }catch(Exception e){
                        MessagingUtils.warningDialog(Messages.PasswordWizard_PROBLEM_WITH_CHANGING_PWD, this, Messages.PasswordWizard_PWD_COULD_NOT_BE_CHANGED + e.getMessage());
                        return false;
-               }finally{
-                   if(conversation != null){
-                       conversation.bind();
-                   }
                }
        }
 
-       @Override
-       public void update(CdmDataChangeMap arg0) {
-       }
-
-       @Override
-       public ConversationHolder getConversationHolder() {
-               return conversation;
-       }
-
+       
 }
index ef2f695602e866d9e3f98fa51b56c896ad20ff97..352f7fc43d4edf27cfec05aee69508dbb31425cc 100644 (file)
@@ -17,7 +17,6 @@ import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Text;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.permission.User;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -40,9 +39,8 @@ public class PasswordWizardPage extends AbstractCdmEntityWizardPage<User> implem
        private TextWithLabelElement text_passwordRepeat;
        private final PasswordValidator passwordValidator;
 
-       protected PasswordWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, User entity) {
-               super(formFactory, conversation, entity);
+       protected PasswordWizardPage(CdmFormFactory formFactory, User entity) {
+               super(formFactory, entity);
 
                passwordValidator = new PasswordValidator();
 
@@ -58,7 +56,7 @@ public class PasswordWizardPage extends AbstractCdmEntityWizardPage<User> implem
                setPageComplete(false);
 
                control.setLayout(LayoutConstants.LAYOUT(2, false));
-               WizardPageRootElement rootElement = new WizardPageRootElement(formFactory, control, getConversationHolder());
+               WizardPageRootElement rootElement = new WizardPageRootElement(formFactory, control);
 
                if(isChangingOwnPassword()) {
                    text_oldPassword = formFactory.createTextWithLabelElement(rootElement, Messages.PasswordWizardPage_OLD_PASSWORD, null, SWT.PASSWORD);
@@ -125,6 +123,12 @@ public class PasswordWizardPage extends AbstractCdmEntityWizardPage<User> implem
 
                public String passwordsMatch(String password1, String password2){
 
+                   if (password1 == null || password2 == null) {
+                       //empty passwords not allowed
+                       setPageComplete(false);
+                return NO_MATCH;
+                   }
+
                        if(! password1.equals(password2)){
                                setPageComplete(false);
                                return NO_MATCH;
index 69d248196aeb92019075d55b284af566eb914f3b..d7b941465bb201d312cff0ed04d1604532fc3efe 100644 (file)
@@ -6,10 +6,8 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section;
 
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.EnumSet;
 import java.util.Observable;
@@ -17,13 +15,9 @@ import java.util.Observer;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Display;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.name.TaxonName;
@@ -34,24 +28,28 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.LoginManager;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractRelevanceFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CacheRelevance;
+import eu.etaxonomy.taxeditor.ui.element.CacheRelevanceHelper;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
+import eu.etaxonomy.taxeditor.ui.element.ICacheRelevantFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LabelElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
 
 /**
  * @author n.hoffmann
  * @created Feb 26, 2010
  */
-public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement implements ICdmDetailElement<T>, Observer{
+public abstract class AbstractCdmDetailElement<T>
+               extends AbstractRelevanceFormElement
+               implements ICdmDetailElement<T>, Observer{
 
        private T entity;
 
-       private boolean irrelevant;
-
        protected boolean enabled = true;
 
        private LabelElement warnForReferencedObjects;
@@ -65,13 +63,8 @@ public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement
                formFactory.addPropertyChangeListener(this);
                CdmStore.getLoginManager().addObserver(this);
 
-               getLayoutComposite().getParent().addDisposeListener(new DisposeListener() {
-
-            @Override
-            public void widgetDisposed(DisposeEvent e) {
-                CdmStore.getLoginManager().deleteObserver(AbstractCdmDetailElement.this);
-            }
-        });
+               getLayoutComposite().getParent().addDisposeListener(
+                       e -> CdmStore.getLoginManager().deleteObserver(AbstractCdmDetailElement.this));
        }
 
        /**
@@ -81,7 +74,7 @@ public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement
     public void setEntity(T entity) {
         this.entity = entity;
         // the id is always 0 if the entity was not yet saved, so it is new in this case
-        if(getEntity() == null || StoreUtil.getCdmEntity(getEntity()).getId() == 0) {
+        if(getEntity() == null || (getEntity() instanceof CdmBase && StoreUtil.getCdmEntity(getEntity()).getId() == 0)) {
             // new entity, not yet saved
             requiredCrud = EnumSet.of(CRUD.CREATE);
         } else {
@@ -90,6 +83,13 @@ public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement
         updateContent();
        }
 
+       public void setEntityWithoutUpdate(T entity){
+           this.entity = entity;
+        fillFields();
+       }
+       
+       public abstract void fillFields();
+
        @Override
     public T getEntity() {
                return entity;
@@ -112,26 +112,25 @@ public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement
 
        /**
         * Sets all field to the given enablement state except the objects in
-        * collection except
+        * the collection except parameter.
         *
         * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#setEnabled(boolean)
-        * @param enabled
-        *            a boolean.
-        * @param except
-        *            a {@link java.util.Collection} object.
         */
        public void setEnabled(boolean enabled, Collection<Object> except) {
+               boolean enabled_old = this.enabled;
            this.enabled = enabled;
-               for (ICdmFormElement element : getElements()) {
-                       if (element instanceof IEnableableFormElement) {
-                               IEnableableFormElement enableableElement = (IEnableableFormElement) element;
-                               if (except != null && except.contains(enableableElement)) {
-                                       // enableableElement.setEnabled(enabled);
-                               } else {
-                                       enableableElement.setEnabled(enabled);
+           if (this.enabled != enabled_old){
+                       for (ICdmFormElement element : getElements()) {
+                               if (element instanceof IEnableableFormElement) {
+                                       IEnableableFormElement enableableElement = (IEnableableFormElement) element;
+                                       if (except != null && except.contains(enableableElement)) {
+                                               // enableableElement.setEnabled(enabled);
+                                       } else {
+                                               enableableElement.setEnabled(enabled);
+                                       }
                                }
                        }
-               }
+           }
        }
 
        @Override
@@ -139,43 +138,39 @@ public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement
            return enabled;
        }
 
-       /**
-        * <p>
-        * Setter for the field <code>irrelevant</code>.
-        * </p>
-        *
-        * @param irrelevant
-        *            a boolean.
-        * @param except
-        *            a {@link java.util.Collection} object.
-        */
-       public void setIrrelevant(boolean irrelevant, Collection<Object> except) {
-               // logger.warn("Setting " + this.getClass().getSimpleName() +
-               // " to irrelevant state: " + irrelevant);
-               for (ICdmFormElement element : getElements()) {
-                       if (element instanceof IEnableableFormElement) {
-                               IEnableableFormElement relevantElement = (IEnableableFormElement) element;
-                               if (except != null && except.contains(relevantElement)) {
-                                       // do nothing
-                                       // logger.warn("not setting elements irrelevance: " +
-                                       // relevantElement.getClass().getSimpleName() + " in :" +
-                                       // this.getClass().getSimpleName());
-                               } else {
-                                       relevantElement.setIrrelevant(irrelevant);
-                               }
-                       }
-               }
-       }
-
-       @Override
+    @Override
     public void setEnabled(boolean enabled) {
-               setEnabled(enabled, null);
-       }
+        setEnabled(enabled, null);
+    }
 
+    @Override
+    public CacheRelevance cacheRelevance() {
+        return cacheRelevanceHelper.cacheRelevance();
+    }
+
+    @Override
+    public void addDependsOnCache(ToggleableTextElement toggleElement) {
+        cacheRelevanceHelper.addDependsOnCache(toggleElement);
+    }
+
+    protected void registerCacheRelevance(ICacheRelevantFormElement element, ToggleableTextElement... toggleableCaches) {
+        if (element != null && toggleableCaches != null) {
+             for (ToggleableTextElement toggleableCache : toggleableCaches){
+                 if (toggleableCache != null){
+                     element.addDependsOnCache(toggleableCache);
+                 }
+             }
+        }
+//        updateCacheRelevance();
+    }
+
+       /**
+        * Updates the cache relevance state of all internal elements of this
+        * AbstractCdmDetailElement.
+        */
        @Override
-    public void setIrrelevant(boolean irrelevant) {
-               this.irrelevant = irrelevant;
-               setIrrelevant(irrelevant, null);
+    public void updateCacheRelevance(){
+           CacheRelevanceHelper.updateCacheRelevanceForSubelements(getElements());
        }
 
        /**
@@ -196,9 +191,7 @@ public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement
 
                if (eventSource instanceof ICdmFormElement) {
                        ICdmFormElement eventElement = (ICdmFormElement) eventSource;
-                       ICdmFormElement eventElementContainer = eventElement
-                                       .getParentElement();
-                       ICdmFormElement parent = this.getParentElement();
+                       ICdmFormElement eventElementContainer = eventElement.getParentElement();
                        if (eventElementContainer == this) {
                                if (event instanceof CdmPropertyChangeEvent) {
                                        if (((CdmPropertyChangeEvent) event).hasException()) {
@@ -222,14 +215,13 @@ public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement
                isRelevant &= this instanceof AbstractIdentifiableEntityDetailElement;
 
                if (isRelevant) {
-                       ((AbstractIdentifiableEntityDetailElement) this)
-                                       .updateToggleableCacheField();
+                       ((AbstractIdentifiableEntityDetailElement<?>)this).updateToggleableCacheField();
                }
        }
 
        private void updateParentSection() {
                if (getParentElement() instanceof AbstractCdmDetailSection) {
-                       ((AbstractCdmDetailSection) getParentElement()).updateTitle();
+                       ((AbstractCdmDetailSection<?>) getParentElement()).updateTitle();
                }
                //NOTE: This slows down the rendering of the details view
 //             StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
@@ -246,23 +238,7 @@ public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement
                MessagingUtils.error(event.getSource().getClass(), event.getException());
        }
 
-       public boolean isIrrelevant() {
-               return irrelevant;
-       }
-
-       @Override
-    public ConversationHolder getConversationHolder() {
-               if (getParentElement() instanceof IConversationEnabled) {
-                       return ((IConversationEnabled) getParentElement())
-                                       .getConversationHolder();
-               }
-               throw new IllegalArgumentException(
-                               "Parent element should be IConversationEnabled");
-       }
 
-       @Override
-    public void update(CdmDataChangeMap changeEvents) {
-       }
 
        @Override
     public void update(Observable o, Object arg){
@@ -272,15 +248,12 @@ public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement
     }
 
     protected void updateControlStates(){
-        Collection<Object> except = new ArrayList<Object>();
-        for(ICdmFormElement formElement:getElements()){
-            if(formElement instanceof IEnableableFormElement && !((IEnableableFormElement) formElement).isEnabled()){
-                except.add(formElement);
-            }
+        if (getEntity() != null && getEntity() instanceof CdmBase){
+            enabled = enabled && CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getEntity()), requiredCrud);
+        }else{
+            enabled = true;
         }
-
-        enabled = getEntity() != null && CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getEntity()), requiredCrud);
-        setEnabled(enabled, except);
+        setEnabled(enabled);
     }
 
        public LabelElement getWarnForReferencedObjects() {
@@ -303,7 +276,6 @@ public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement
                                getWarnForReferencedObjects().setLayout(LayoutConstants.FILL(2, 3));
                                getWarnForReferencedObjects().setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
                                formFactory.createLabel(formElement, "");
-
                        }
                }
            }
@@ -318,5 +290,4 @@ public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement
                        getWarnForReferencedObjects().setVisible(isVisible);
                }
        }
-
-}
+}
\ No newline at end of file
index 452c54794a929c0691a50af28f0a001a3ce2351d..710d89797306c83083b44bc16b2e7d3748672f5b 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;
 
 import java.util.ArrayList;
@@ -21,10 +20,11 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.ui.forms.events.ExpansionEvent;
 import org.eclipse.ui.forms.events.IExpansionListener;
 import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.forms.widgets.TableWrapData;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.TextData;
@@ -35,10 +35,13 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CacheRelevance;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICacheRelevantFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
+import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
 
 /**
  * This class visualizes an CDM entity of type ENTITY.
@@ -50,19 +53,18 @@ import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
  */
 public abstract class AbstractCdmDetailSection<ENTITY>
                        extends AbstractFormSection<ENTITY>
-                       implements IEnableableFormElement, IExpansionListener {
+                       implements IEnableableFormElement, IExpansionListener, ICacheRelevantFormElement {
 
        protected AbstractCdmDetailElement<ENTITY> detailElement;
 
        public AbstractCdmDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-           this(formFactory, null, conversation, parentElement, selectionProvider, style);
+           this(formFactory, null, parentElement, selectionProvider, style);
        }
 
-
        public AbstractCdmDetailSection(CdmFormFactory formFactory, Class<ENTITY> clazz,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
                super(formFactory, parentElement, selectionProvider,
                                ExpandableComposite.CLIENT_INDENT | style);
@@ -84,7 +86,15 @@ public abstract class AbstractCdmDetailSection<ENTITY>
            super.setText(StoreUtil.cleanTitleString(title));
        }
 
-       protected void createControlsByType(AbstractCdmDetailSection<ENTITY> formElement, Class<ENTITY> entityClass, int style) {
+       public AbstractCdmDetailElement<ENTITY> getDetailElement() {
+        return detailElement;
+    }
+
+    public void setDetailElement(AbstractCdmDetailElement<ENTITY> detailElement) {
+        this.detailElement = detailElement;
+    }
+
+    protected void createControlsByType(AbstractCdmDetailSection<ENTITY> formElement, Class<ENTITY> entityClass, int style) {
            TableWrapLayout layout = (TableWrapLayout) getLayoutComposite().getLayout();
            layout.topMargin = 10;
            layout.numColumns = DEFAULT_NUM_COLUMNS;
@@ -110,7 +120,6 @@ public abstract class AbstractCdmDetailSection<ENTITY>
 
        public abstract String getHeading();
 
-       /** {@inheritDoc} */
        @Override
        public void dispose() {
                if (detailElement instanceof ISelectableElement) {
@@ -123,11 +132,10 @@ public abstract class AbstractCdmDetailSection<ENTITY>
                super.dispose();
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setBackground(Color color) {
                if (detailElement != null) {
-                       // detailComposite.setBackground(color);
+                   detailElement.setBackground(color);
                }
                super.setBackground(color);
        }
@@ -135,7 +143,7 @@ public abstract class AbstractCdmDetailSection<ENTITY>
        @Override
        public void setEntity(ENTITY entity) {
            EnumSet<CRUD> requiredCrud;
-           if(entity == null || StoreUtil.getCdmEntity(entity).getId() == 0) {
+           if(entity == null || (entity instanceof CdmBase &&StoreUtil.getCdmEntity(entity).getId() == 0 )) {
             // new entity, not yet saved
             requiredCrud = EnumSet.of(CRUD.CREATE);
         } else {
@@ -143,19 +151,34 @@ public abstract class AbstractCdmDetailSection<ENTITY>
         }
                if (detailElement != null) {
                        detailElement.setEntity(entity);
+                       formFactory.adapt(detailElement);
                Collection<Object> except = new ArrayList<>();
                for(ICdmFormElement formElement:detailElement.getElements()){
                    if(formElement instanceof IEnableableFormElement && !((IEnableableFormElement) formElement).isEnabled()){
                        except.add(formElement);
                    }
                }
+               if (entity != null && entity instanceof CdmBase){
+                   boolean hasPermission = CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(entity), requiredCrud);
+                   detailElement.setEnabled(isEnabled() && hasPermission, except);
+               }else{
+                   detailElement.setEnabled(isEnabled() && true, except);
+               }
 
-               boolean hasPermission = CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(entity), requiredCrud);
-                       detailElement.setEnabled(isEnabled() && hasPermission, except);
                }
                super.setEntity(entity);
                setSectionTitle();
                layout();
+       }
+       
+       public void setEntityWithoutUpdate(ENTITY entity) {
+
+               if (detailElement != null) {
+                       detailElement.fillFields();
+
+               }
+               super.setEntity(entity);
+               setSectionTitle();
 
        }
 
@@ -164,10 +187,10 @@ public abstract class AbstractCdmDetailSection<ENTITY>
                String label = "";
                if (getEntity() != null && (getEntity() instanceof IdentifiableEntity) && !(getEntity() instanceof SpecimenOrObservationBase)) {
                        if (getEntity() instanceof DefinedTermBase<?> ){
-                               label = ((DefinedTermBase<?>)getEntity()).getLabel(PreferencesUtil.getGlobalLanguage());
-                               if (label == null){
-                                       label = ((DefinedTermBase<?>)getEntity()).getLabel();
-                               }
+                               label = ((DefinedTermBase<?>)getEntity()).getPreferredRepresentation(PreferencesUtil.getGlobalLanguage()).getLabel();
+//                             if (label == null){
+//                                     label = ((DefinedTermBase<?>)getEntity()).getLabel();
+//                             }
                        } else if (getEntity() instanceof TextData){
                                label = ((TextData)getEntity()).getLanguageText(PreferencesUtil.getGlobalLanguage()).getText();
                                if (label == null){
@@ -175,10 +198,10 @@ public abstract class AbstractCdmDetailSection<ENTITY>
                                }
                        }
                        if(CdmUtils.isBlank(label)){
-                           label = ((IdentifiableEntity) getEntity()).getTitleCache();
+                           label = ((IdentifiableEntity<?>) getEntity()).getTitleCache();
                        }
                        if(CdmUtils.isBlank(label)){
-                           label = ((IdentifiableEntity) getEntity()).generateTitle();
+                           label = ((IdentifiableEntity<?>) getEntity()).generateTitle();
                        }
                        title = ": " + label;
                }
@@ -198,24 +221,41 @@ public abstract class AbstractCdmDetailSection<ENTITY>
                }
        }
 
-       /** {@inheritDoc} */
-       @Override
-    public void setIrrelevant(boolean irrelevant) {
-               if (detailElement != null) {
+    @Override
+    public void updateCacheRelevance() {
+        if (detailElement != null) {
+            detailElement.updateCacheRelevance();
+        }
+    }
 
-                       detailElement.setIrrelevant(irrelevant);
-               }
-       }
+    @Override
+    public void addDependsOnCache(ToggleableTextElement toggleElement) {
+        if (detailElement != null) {
+            detailElement.addDependsOnCache(toggleElement);
+        }
+    }
 
-       /** {@inheritDoc} */
-       @Override
+    @Override
+    public CacheRelevance cacheRelevance() {
+        return detailElement.cacheRelevance();
+    }
+
+    @Override
     public void expansionStateChanging(ExpansionEvent e) {
                // logger.warn("Expansion State Changing");
        }
 
-       /** {@inheritDoc} */
        @Override
     public void expansionStateChanged(ExpansionEvent e) {
                // logger.warn("Expansion State Changed");
        }
+
+       public void setIndent(int indent){
+           TableWrapData tableWrapData = (TableWrapData)this.getLayoutData();
+           if (tableWrapData == null){
+               tableWrapData = new TableWrapData();
+           }
+           tableWrapData.indent = indent;
+           setLayoutData(tableWrapData);
+       }
 }
index df7f77dcdf7934a54f3b76292aa0641e16cfa425..589f5892dab1a7b96abbe481b4204f18f124e3ca 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;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
@@ -19,17 +18,15 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
 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.ISelectable;
 import eu.etaxonomy.taxeditor.ui.element.LabelElement;
@@ -44,9 +41,9 @@ import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
  * @author n.hoffmann
  * @created Nov 16, 2009
  */
-public abstract class AbstractEntityCollectionElement<ENTITY> extends
-               AbstractCdmFormElement implements IEntityElement<ENTITY>,
-               SelectionListener, IConversationEnabled {
+public abstract class AbstractEntityCollectionElement<ENTITY>
+        extends AbstractCdmFormElement
+        implements IEntityElement<ENTITY>, SelectionListener, IEnableableFormElement {
 
        protected ENTITY entity;
 
@@ -57,8 +54,11 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
         */
        private final Composite box;
 
+       private boolean isEnabled;
+
        private Button btnRemove;
-    protected Button btnChooseEntity;
+
+       private Button btnChooseEntity;
 
        private Color backgroundColor;
 
@@ -106,11 +106,13 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
                        btnRemove.setToolTipText("Remove");
 
                        btnRemove.addSelectionListener(removeListener);
+                       btnRemove.setEnabled(isEnabled);
                }
 
-               createControls(this, style);
+
 
                setEntity(entity);
+               createControls(this, style);
        }
 
        /**
@@ -207,20 +209,6 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
         return box;
     }
 
-       @Override
-    public ConversationHolder getConversationHolder() {
-               if (getParentElement() instanceof IConversationEnabled) {
-                       return ((IConversationEnabled) getParentElement())
-                                       .getConversationHolder();
-               }
-               throw new IllegalArgumentException(
-                               "Parent element should be IConversationEnabled");
-       }
-
-       @Override
-    public void update(CdmDataChangeMap changeEvents) {
-       }
-
     public void setWarnForReferencedObjects(LabelElement warnForReferencedObjects) {
         this.warnForReferencedObjects = warnForReferencedObjects;
     }
@@ -250,4 +238,26 @@ public abstract class AbstractEntityCollectionElement<ENTITY> extends
             warnForReferencedObjects.setVisible(isVisible);
         }
     }
+
+    @Override
+       public void setEnabled(boolean enabled) {
+               this.isEnabled = enabled;
+               if (btnRemove != null){
+                       btnRemove.setEnabled(enabled);
+               }
+               if (btnChooseEntity != null){
+                       btnChooseEntity.setEnabled(enabled);
+               }
+
+               for (ICdmFormElement element:this.getElements()){
+                       if (element instanceof IEnableableFormElement){
+                               ((IEnableableFormElement)element).setEnabled(enabled);
+                       }
+               }
+       }
+
+       @Override
+       public boolean isEnabled() {
+               return isEnabled;
+       }
 }
index c784cb5be78181da8dc683afb4f39d9053aa0996..7b5db176c788f583532ab293a1547c9a916b8b27 100644 (file)
@@ -1,6 +1,11 @@
 /**
- *
- */
+* Copyright (C) 2018 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;
 
 import java.util.ArrayList;
@@ -17,8 +22,6 @@ import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.action.ToolBarManager;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
@@ -31,8 +34,8 @@ import org.eclipse.ui.forms.events.ExpansionEvent;
 import org.eclipse.ui.forms.events.IExpansionListener;
 import org.eclipse.ui.forms.widgets.ExpandableComposite;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.permission.CRUD;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.ImageResources;
@@ -45,17 +48,20 @@ 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;
 
 /**
- * This class visualizes an CDM entity of type ENTITY and additionally provides the functionality to add
- * other elements of type ELEMENT to them.
+ * This class visualizes an CDM entity of type ENTITY and additionally provides
+ * the functionality to add other elements of type ELEMENT to them.
  *
  * @param <ENTITY> A CDM entity which should be visualized by this section.
  * @param <ELEMENT> An element that can be added (multiple times) to this entity.
  *
  * @author n.hoffmann
  */
-public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends AbstractFormSection<ENTITY> implements IExpansionListener, Observer {
+public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT>
+        extends AbstractFormSection<ENTITY>
+        implements IExpansionListener, Observer, IEnableableFormElement {
 
     private static final EnumSet<CRUD> UPDATE = EnumSet.of(CRUD.UPDATE);
 
@@ -67,21 +73,21 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
 
     private AbstractEntityCollectionElement<ENTITY> entityCollectionElement;
 
-       public AbstractEntityCollectionSection(CdmFormFactory formFactory, ConversationHolder conversation, ICdmFormElement parentElement, String title, int style) {
+    private boolean isEnabled = true;
+
+       public AbstractEntityCollectionSection(CdmFormFactory formFactory, ICdmFormElement parentElement, String title, int style) {
                super(formFactory, parentElement, ExpandableComposite.CLIENT_INDENT | style);
                this.title = title;
                this.setText(getTitleString());
                updateToolbar();
-
+               layout();
                addExpansionListener(this);
 
                CdmStore.getLoginManager().addObserver(this);
-               addDisposeListener(new DisposeListener() {
-            @Override
-            public void widgetDisposed(DisposeEvent e) {
+               addDisposeListener(e-> {
                 CdmStore.getLoginManager().deleteObserver(AbstractEntityCollectionSection.this);
             }
-        });
+        );
        }
 
        protected Control createToolbar() {
@@ -97,6 +103,7 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
                                    getSection().setExpanded(true);
                                }
                                internalUpdateSection(true);
+
                            }
                        }
                };
@@ -178,8 +185,9 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
         * Override in subclasses if you want to have a different behaviour.
         */
        protected void setSectionTitle() {
-               Collection<ELEMENT> collection = getCollection(getEntity());
-               if(collection != null && collection.size() > 0){
+           ENTITY entity = getEntity();
+               Collection<ELEMENT> collection = getCollection(entity);
+               if(!CdmUtils.isNullSafeEmpty(collection)){
                        this.setText(getTitleString() + " +");
                }else{
                        this.setText(getTitleString());
@@ -189,7 +197,7 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
        /**
         * Removes all content from the container
         */
-       private void destroyDynamicContent(){
+       protected void destroyDynamicContent(){
                if(label_empty != null){
                        label_empty.dispose();
                        label_empty = null;
@@ -207,6 +215,7 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
        protected void internalUpdateSection(boolean changed){
            setSectionTitle();
                destroyDynamicContent();
+               updateToolbar();
                if(isExpanded() || expandSectionWhenContentAvailable()) {
             renderContent(isExpanded());
         }
@@ -218,8 +227,7 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
        /**
         * Create the elements to be shown in this section client area
         */
-       private void renderContent(boolean forceExpansion)
-       {
+       protected void renderContent(boolean forceExpansion){
                Collection<ELEMENT> collection = getCollection(getEntity());
 
                if(collection == null || collection.isEmpty()){
@@ -237,16 +245,15 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
        }
 
        protected void createEmptyContent(){
-               label_empty = formFactory.createLabel(getLayoutComposite(), getEmptyString());
+               if (label_empty == null){
+                       label_empty = formFactory.createLabel(getLayoutComposite(), getEmptyString());
+               }
        }
 
        /**
         * Creates the widgets for the collection
-        *
-        * @param elements a {@link java.util.Collection} object.
         */
-       protected void createDynamicContents(Collection<ELEMENT> elements)
-       {
+       protected void createDynamicContents(Collection<ELEMENT> elements){
                int i = 0;
                for(final ELEMENT element : elements){
                        SelectionAdapter removeListener = new SelectionAdapter(){
@@ -271,9 +278,9 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
         */
        protected void createElementComposite(ELEMENT element, SelectionListener removeListener, Color backgroundColor){
                entityCollectionElement = formFactory.createEntityCollectionElement(this, element, removeListener, backgroundColor, SWT.NULL);
+               entityCollectionElement.setEnabled(isEnabled);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setBackground(Color color) {
                if(label_empty != null && !label_empty.isDisposed()){
@@ -283,18 +290,14 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
        }
 
        /**
-        * <p>getTitleString</p>
-        *
-        * @return a {@link java.lang.String} object.
+        * getTitleString
         */
        public String getTitleString() {
                return CdmUtils.Nz(title);
        }
 
        /**
-        * <p>setTitleString</p>
-        *
-        * @param title a {@link java.lang.String} object.
+        * setTitleString
         */
        public void setTitleString(String title){
                this.title = title;
@@ -302,13 +305,11 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
                layout();
        }
 
-       /** {@inheritDoc} */
        @Override
     public void expansionStateChanging(ExpansionEvent e) {
 //             logger.warn("Expansion State Changing");
        }
 
-       /** {@inheritDoc} */
        @Override
     public void expansionStateChanged(ExpansionEvent e) {
                if(isExpanded()){
@@ -318,7 +319,7 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
                }
        }
 
-       private boolean expandSectionWhenContentAvailable(){
+       protected boolean expandSectionWhenContentAvailable(){
                return PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOULD_EXPAND_SECTION_WHEN_DATA_AVAILABLE, true);
        }
 
@@ -340,10 +341,10 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
        }
 
     protected void updateToolbar() {
-        if(getEntity() != null && CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getEntity()), UPDATE)){
+        if( !(getEntity() instanceof CdmBase) || (getEntity() != null && CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getEntity()), getUpdate())) && isEnabled){
             showToolbar();
         } else {
-            removeToolbar();
+               removeToolbar();
         }
     }
 
@@ -418,4 +419,28 @@ public abstract class AbstractEntityCollectionSection<ENTITY, ELEMENT> extends A
         * @return String to display when hovering the add button
         */
        protected abstract String getTooltipString();
+
+       @Override
+    public boolean isEnabled(){
+               return isEnabled;
+       }
+
+       @Override
+    public void setEnabled(boolean enabled){
+               isEnabled=enabled;
+               if (!isEnabled){
+                       removeToolbar();
+               }
+
+               for (ICdmFormElement element: getElements()){
+                       if (element instanceof IEnableableFormElement){
+                               ((IEnableableFormElement)element).setEnabled(isEnabled);
+                       }
+               }
+
+       }
+
+    public static EnumSet<CRUD> getUpdate() {
+        return UPDATE;
+    }
 }
index 44044d898cd4f17a34c3785319013eb6e51baadd..0b1f2216a87966501e1bca6677acf41f01782d10 100644 (file)
@@ -1,9 +1,13 @@
 /**
- *
- */
+* Copyright (C) 2018 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;
 
-import java.util.Arrays;
 import java.util.EnumSet;
 
 import eu.etaxonomy.cdm.model.common.CdmBase;
@@ -11,31 +15,24 @@ import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
 import eu.etaxonomy.cdm.model.permission.CRUD;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICacheRelevantFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
 
 /**
  * @author n.hoffmann
- *
  */
-public abstract class AbstractIdentifiableEntityDetailElement<T extends IIdentifiableEntity> extends
-        AbstractCdmDetailElement<T> {
+public abstract class AbstractIdentifiableEntityDetailElement<T extends IIdentifiableEntity>
+               extends AbstractCdmDetailElement<T> {
 
-    /**
-     *
-     */
     private static final EnumSet<CRUD> UPDATE = EnumSet.of(CRUD.UPDATE);
     protected ToggleableTextElement toggleable_cache;
 
-
     public AbstractIdentifiableEntityDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
         super(formFactory, formElement);
         updateToggleableCacheState();
-
-
     }
 
-
     public void updateToggleableCacheField() {
         if (toggleable_cache != null){
             if (!getEntity().isProtectedTitleCache()) {
@@ -45,28 +42,32 @@ public abstract class AbstractIdentifiableEntityDetailElement<T extends IIdentif
     }
 
     protected void handleToggleableCacheField() {
-        boolean pushedState = toggleable_cache.getState();
-
-        getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
-        setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache }));
+        getEntity().setTitleCache(toggleable_cache.getText(), toggleable_cache.getState());
+        updateCacheRelevance();
         updateToggleableCacheField();
     }
 
-
     @Override
     protected void updateControlStates(){
-
         updateToggleableCacheState();
         super.updateControlStates();
     }
 
-
     private void updateToggleableCacheState() {
         if(toggleable_cache != null){
             toggleable_cache.setEnabled(getEntity() != null && CdmStore.currentAuthentiationHasPermission((CdmBase) getEntity(), UPDATE));
         }
     }
 
-
-
-}
+    protected void registerCacheRelevance(ICacheRelevantFormElement element) {
+        registerCacheRelevance(element, toggleable_cache);
+    }
+    
+    @Override
+    public void fillFields() {
+       if (!getEntity().getTitleCache().equals(toggleable_cache.getText())) {
+               toggleable_cache.setText(getEntity().getTitleCache());
+               toggleable_cache.setSelected(getEntity().isProtectedTitleCache());
+       }       
+    }
+}
\ No newline at end of file
index dbdb27500c1299ed97770bed2dd13630c7309952..6a98e8cfec4ea15580397f3255af8640ff5b4984 100644 (file)
@@ -15,13 +15,9 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 /**
  * @author pplitzner
  * @since Mar 5, 2018
- *
  */
 public class DefaultCdmBaseComparator<T extends CdmBase> implements Comparator<T> {
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public int compare(T o1, T o2) {
         if(o1==null){
@@ -30,11 +26,10 @@ public class DefaultCdmBaseComparator<T extends CdmBase> implements Comparator<T
         if(o2==null){
             return 1;
         }
-        int diff = o1.getId()-o2.getId();
+        int diff = o1.getId() - o2.getId();
         if(diff==0){
             diff = o1.getCreated().compareTo(o2.getCreated());
         }
         return diff;
     }
-
-}
+}
\ No newline at end of file
index b6ade7f2aa776578bea62f3d613bcbc3e7945164..f82a0ff4a71836a4317be57b9e463fc4db461471 100644 (file)
@@ -50,4 +50,9 @@ public class EmptyElement extends AbstractCdmDetailElement{
        public void setEntity(Object entity) {
            // nothing
        }
+
+       @Override
+       public void fillFields() {
+               // do nothing           
+       }
 }
index ad45938352f43623885a873c01bbc1f2f74fa75b..e6ded9cb8c5b65cf51ea3efe106172ec0c11d8d9 100644 (file)
@@ -8,17 +8,15 @@
 */
 package eu.etaxonomy.taxeditor.ui.section;
 
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
 
 /**
  * @author pplitzner
  * @date 30.07.2013
- *
  */
-public interface ICdmDetailElement<T> extends IEntityElement<T>, IEnableableFormElement, IConversationEnabled{
+public interface ICdmDetailElement<T>
+               extends IEntityElement<T>, IEnableableFormElement{
 
     public abstract void setEntity(T entity);
-
-}
+}
\ No newline at end of file
index 8ccac28ac11022976831d98b4fd7f129f4cdf1f8..bbac3c2f74bc811f824310163c271fddaa9ddc5a 100644 (file)
@@ -14,7 +14,9 @@ public interface ITaxonBaseDetailSection{
         *
         * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.TaxonBase} object.
         */
-       public abstract void setTaxonBase(TaxonBase taxon);
+       public abstract void setTaxonBase(TaxonBase<?> taxon);
+       
+       public abstract void setTaxonBaseWithoutUpdate(TaxonBase<?> taxon);
 
-       public abstract TaxonBase getTaxonBase();
+       public abstract TaxonBase<?> getTaxonBase();
 }
index 0fb16db17bc93a2ec120e6e4a2367fada3016125..e61023bba9431dabdacd694bda145ef69bd8191d 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.agent;
 
 import eu.etaxonomy.cdm.model.agent.Institution;
@@ -19,7 +18,6 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author n.hoffmann
  * @created Dec 15, 2010
- * @version 1.0
  */
 public class InstitutionDetailElement extends
                AbstractCdmDetailElement<Institution> {
@@ -32,22 +30,11 @@ public class InstitutionDetailElement extends
 
        private EntitySelectionElement<Institution> selection_partOfInstitution;
 
-       /**
-        * @param formFactory
-        * @param formElement
-        */
        public InstitutionDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
                super(formFactory, formElement);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
-        * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
-        */
        @Override
        protected void createControls(ICdmFormElement formElement,
                        Institution entity, int style) {
@@ -60,20 +47,12 @@ public class InstitutionDetailElement extends
                // section_institutionTypes
                selection_partOfInstitution = formFactory
                                .createSelectionElement(Institution.class,
-                                               //getConversationHolder(),
                                        formElement, "Is Part Of",
                                                entity.getIsPartOf(),
                                                EntitySelectionElement.EDITABLE | EntitySelectionElement.SELECTABLE | EntitySelectionElement.DELETABLE,
                                                style);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
-        * .lang.Object)
-        */
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == text_name) {
@@ -85,4 +64,13 @@ public class InstitutionDetailElement extends
                }
        }
 
-}
+       @Override
+       public void fillFields() {
+               if (getEntity() != null) {
+                       text_name.setText(getEntity().getName());
+                       text_code.setText(getEntity().getCode());
+                       selection_partOfInstitution.setEntity(getEntity().getIsPartOf());
+               }
+               
+       }
+}
\ No newline at end of file
index 5a260c5966c48baa9a40a071f6741035b55b1686..2de9651d7851520b8d1f81738d4adaefa26580c2 100644 (file)
@@ -6,12 +6,10 @@
 * 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.agent;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.agent.Institution;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -21,37 +19,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author n.hoffmann
  * @created Dec 15, 2010
- * @version 1.0
  */
 public class InstitutionDetailSection extends AbstractCdmDetailSection<Institution> {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param selectionProvider
-        * @param style
-        */
        public InstitutionDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-        */
        @Override
        public String getHeading() {
                return "Institution";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
        protected AbstractCdmDetailElement<Institution> createCdmDetailElement(AbstractCdmDetailSection<Institution> parentElement, int style) {
            return formFactory.createInstitutionDetailElement(parentElement);
        }
-
-}
+}
\ No newline at end of file
index 1de47180332344d8a3a2fb2720ad04066d679c45..f926dd5b770b5d73a9d73883f81eb64e5897eb3c 100644 (file)
@@ -9,7 +9,6 @@
 
 package eu.etaxonomy.taxeditor.ui.section.agent;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.agent.Institution;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -29,9 +28,8 @@ public class InstitutionWizardPage extends
         * @param conversation
         * @param entity
         */
-       public InstitutionWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, Institution entity) {
-               super(formFactory, conversation, entity);
+       public InstitutionWizardPage(CdmFormFactory formFactory, Institution entity) {
+               super(formFactory, entity);
        }
 
            /*
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..682ed0e
--- /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,
+                                       this, "Person", null,
+                                               EntitySelectionElement.EDITABLE | EntitySelectionElement.SELECTABLE,
+                                               style);
+               if (entity != null){
+                       setEntity(entity);
+               }
+       }
+}
index 39c9564eef0ae838d3f6ffeddc02f133d890402f..9ead6a9f71df735f0c04450cd3e6c12361e4bb82 100644 (file)
@@ -6,27 +6,23 @@
  * 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.agent;
 
-import java.util.Arrays;
-import java.util.Collection;
-
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.swt.SWT;
 
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LsidWithExceptionLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.OrcidWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
 
 /**
- * <p>
  * PersonDetailElement class.
- * </p>
  *
  * @author n.hoffmann
  * @created Mar 8, 2010
@@ -34,6 +30,9 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement
 public class PersonDetailElement extends AbstractIdentifiableEntityDetailElement<Person> {
 
        private TextWithLabelElement text_nomenclaturalTitle;
+//     private TextWithLabelElement text_nomenclaturalTitleCache;
+       private TextWithLabelElement text_collectorTitle;
+//     private TextWithLabelElement text_collectorTitleCache;
        private TextWithLabelElement text_firstname;
        private TextWithLabelElement text_lastname;
        private TextWithLabelElement text_prefix;
@@ -41,8 +40,7 @@ public class PersonDetailElement extends AbstractIdentifiableEntityDetailElement
        private TextWithLabelElement text_initials;
        private TimePeriodElement time_lifespan;
        private OrcidWithLabelElement text_orcid;
-
-       private Collection<Object> excludeFromIrrelevantToggleableObjects;
+    private LsidWithExceptionLabelElement text_lsid;
 
        public PersonDetailElement(CdmFormFactory cdmFormFactory,
                        ICdmFormElement formElement, int style) {
@@ -57,44 +55,74 @@ public class PersonDetailElement extends AbstractIdentifiableEntityDetailElement
                                "Title Cache", entity.getTitleCache(),
                                entity.isProtectedTitleCache(), SWT.NULL);
 
+
+
                text_nomenclaturalTitle = formFactory.createTextWithLabelElement(
-                               formElement, "Abbrev. Title", entity.getNomenclaturalTitle(),
-                               SWT.NULL);
+                formElement, "Abbrev. Title", entity.getNomenclaturalTitle(),
+                SWT.SEARCH);
+
+               text_nomenclaturalTitle.setMessage(entity.getNomenclaturalTitleCache());
+
+
+               text_collectorTitle = formFactory.createTextWithLabelElement(
+                formElement, "Collector Title", entity.getCollectorTitle(),
+                SWT.SEARCH);
+
+               text_collectorTitle.setMessage(entity.getCollectorTitleCache());
+
                text_lastname = formFactory.createTextWithLabelElement(formElement,
                 "Familiy Name", entity.getFamilyName(), SWT.NULL);
                text_firstname = formFactory.createTextWithLabelElement(formElement,
-                               "Other/ Given Names", entity.getGivenName(), SWT.NULL);
+                               "Other/Given Names", entity.getGivenName(), SWT.NULL);
                text_initials = formFactory.createTextWithLabelElement(formElement,
                                "Initials", entity.getInitials(), SWT.NULL);
                text_prefix = formFactory.createTextWithLabelElement(formElement,
                                "Prefix", entity.getPrefix(), SWT.NULL);
                time_lifespan = formFactory.createTimePeriodElement(formElement, "Lifespan", entity.getLifespan(), SWT.NULL);
                text_orcid = formFactory.createOrcidWithLabelElement(formElement, "ORCID", entity.getOrcid(), SWT.NULL);
+               text_lsid = formFactory.createLsidWithExceptionLabelElement(formElement, "LSID", entity.getLsid(), SWT.NULL);
+
                getLayoutComposite().layout();
 
+           //cache relevance
+        registerCacheRelevance(text_firstname);
+        registerCacheRelevance(text_lastname);
+        registerCacheRelevance(text_prefix);
+        registerCacheRelevance(text_suffix);
+        registerCacheRelevance(text_initials);
+
+
+
        }
 
        @Override
        protected void updateContent() {
                super.updateContent();
-
-               excludeFromIrrelevantToggleableObjects = Arrays.asList(new Object[] {
-                               toggleable_cache, text_nomenclaturalTitle });
-
-               toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
-               setIrrelevant(toggleable_cache.getState(),
-                               excludeFromIrrelevantToggleableObjects);
+               toggleable_cache.setCacheEnabled(getEntity().isProtectedTitleCache());
+               updateCacheRelevance();
        }
 
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == toggleable_cache) {
                        handleToggleableCacheField();
-
                } else if (eventSource == text_nomenclaturalTitle) {
-                       getEntity()
-                                       .setNomenclaturalTitle(text_nomenclaturalTitle.getText());
-               } else if (eventSource == text_firstname) {
+                   if (StringUtils.isBlank(text_nomenclaturalTitle.getText()) && getEntity().getNomenclaturalTitle() != null){
+                getEntity().setNomenclaturalTitle(null);
+
+            }else if (StringUtils.isNotBlank(text_nomenclaturalTitle.getText()) ){
+                getEntity().setNomenclaturalTitle(text_nomenclaturalTitle.getText());
+
+            }
+               } else if (eventSource == text_collectorTitle) {
+                   if (StringUtils.isBlank(text_collectorTitle.getText()) && getEntity().getCollectorTitle() != null){
+                       getEntity().setCollectorTitle(null);
+
+                   }else if (StringUtils.isNotBlank(text_collectorTitle.getText()) ){
+                       getEntity().setCollectorTitle(text_collectorTitle.getText());
+
+                   }
+        }else if (eventSource == text_firstname) {
                        getEntity().setGivenName(text_firstname.getText());
                }else if (eventSource == text_initials) {
                        getEntity().setInitials(text_initials.getText());
@@ -106,16 +134,20 @@ public class PersonDetailElement extends AbstractIdentifiableEntityDetailElement
                        getEntity().setSuffix(text_suffix.getText());
                }else if (eventSource == text_orcid) {
             getEntity().setOrcid(text_orcid.parseText());
+        }else if (eventSource == text_lsid) {
+            getEntity().setLsid(text_lsid.parseText());
         }else if (eventSource == time_lifespan) {
             getEntity().setLifespan(time_lifespan.getTimePeriod());
         }
+               text_nomenclaturalTitle.setMessage(getEntity().getNomenclaturalTitleCache());
+               text_collectorTitle.setMessage(getEntity().getCollectorTitleCache());
 
-               //if (eventSource != toggleable_cache) {
                if (!getEntity().isProtectedTitleCache()){
                        toggleable_cache.setText(getEntity().generateTitle());
                }
 
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
+
        }
 
        @Override
@@ -126,8 +158,26 @@ public class PersonDetailElement extends AbstractIdentifiableEntityDetailElement
         if (pushedState){
             getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
         }
-        setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache, text_nomenclaturalTitle }));
+        updateCacheRelevance();
         updateToggleableCacheField();
-
     }
-}
+
+       @Override
+       public void fillFields() {
+               if (getEntity() != null) {
+                       text_nomenclaturalTitle.setText(getEntity().getNomenclaturalTitle());
+                       toggleable_cache.setText(getEntity().getTitleCache());
+                       toggleable_cache.setCacheEnabled(getEntity().isProtectedTitleCache());
+                       text_collectorTitle.setText(getEntity().getCollectorTitle());
+                       text_firstname.setText(getEntity().getGivenName());
+                       text_lastname.setText(getEntity().getFamilyName());
+                       text_prefix.setText(getEntity().getPrefix());
+                       text_suffix.setText(getEntity().getSuffix());
+                       text_initials.setText(getEntity().getInitials());
+                       time_lifespan.setTimePeriod(getEntity().getLifespan()!= null? getEntity().getLifespan(): null);
+                       text_orcid.setText(getEntity().getOrcid() != null? getEntity().getOrcid().toString(): null);
+                       text_lsid.setText(getEntity().getLsid()!= null? getEntity().getLsid().toString(): null);
+               }
+
+       }
+}
\ No newline at end of file
index 51bf42cc56d695917ac6de70affa0966ad6f69d4..c2475895170641504d253d4297c0a09d1c2c097c 100644 (file)
@@ -6,12 +6,10 @@
 * 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.agent;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -23,37 +21,21 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  *
  * @author n.hoffmann
  * @created Mar 8, 2010
- * @version 1.0
  */
 public class PersonDetailSection extends AbstractCdmDetailSection<Person>{
 
-       /**
-        * <p>Constructor for PersonDetailSection.</p>
-        *
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-        * @param style a int.
-        */
-       public PersonDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement,
+       public PersonDetailSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(cdmFormFactory, conversation, parentElement, selectionProvider, style);
+               super(cdmFormFactory, parentElement, selectionProvider, style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return "Person";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
        protected AbstractCdmDetailElement<Person> createCdmDetailElement(AbstractCdmDetailSection<Person> parentElement, int style) {
            return formFactory.createPersonDetailElement(parentElement, style);
        }
-
-
-}
+}
\ No newline at end of file
index b27738a943004b741dc5324b738dc2a08b4ec5c4..8ae5aa86c88903e13880e0d368adae2c4b11bb44 100644 (file)
@@ -6,14 +6,11 @@
 * 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.agent;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.swt.SWT;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -21,35 +18,18 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
- * <p>PersonWizardPage class.</p>
- *
  * @author n.hoffmann
  * @created Jun 1, 2010
- * @version 1.0
  */
 public class PersonWizardPage extends AbstractCdmEntityWizardPage<Person> {
 
-    PersonDetailElement personElement;
-
+    private PersonDetailElement personElement;
 
-       /**
-        * <p>Constructor for PersonWizardPage.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param entity a {@link eu.etaxonomy.cdm.model.agent.Person} object.
-        */
-       public PersonWizardPage(CdmFormFactory formFactory, ConversationHolder conversation,
-                       Person entity) {
-               super(formFactory, conversation, entity);
+    public PersonWizardPage(CdmFormFactory formFactory, Person entity) {
+               super(formFactory, entity);
                setTitle("Person");
        }
 
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.CdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.forms.ICdmFormElement)
-        */
-       /** {@inheritDoc} */
        @Override
        public AbstractCdmDetailElement<Person> createElement(ICdmFormElement rootElement) {
                personElement = formFactory.createPersonDetailElement(rootElement, SWT.NULL);
@@ -59,9 +39,6 @@ public class PersonWizardPage extends AbstractCdmEntityWizardPage<Person> {
 
        @Override
     protected boolean titleCacheIsNotEmpty() {
-        if (getEntity() instanceof AgentBase) {
-            return !StringUtils.isEmpty(entity.getTitleCache());
-        }
-        return true;
+        return !StringUtils.isEmpty(entity.getTitleCache());
     }
-}
+}
\ No newline at end of file
index 349b9d00d58e065130acb2a33b38f1087032b2fd..a18bb0c95bf32af3944f420290141630ef063af6 100644 (file)
@@ -6,13 +6,11 @@
  * 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.agent;
 
-import java.util.Arrays;
-
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.element.CacheRelevance;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
@@ -22,81 +20,74 @@ import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
 
 /**
- * <p>
  * TeamDetailElement class.
- * </p>
  *
  * @author n.hoffmann
  * @created Apr 26, 2010
- * @version 1.0
  */
-public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<Team> {
+public class TeamDetailElement
+        extends AbstractIdentifiableEntityDetailElement<Team> {
 
        private ToggleableTextElement toggleable_nomenclaturalTitleCache;
+       private ToggleableTextElement toggleable_collectorTitleCache;
        private CheckboxElement hasAdditionalMembers;
 
        private TeamMemberSection section_teamMembers;
        private boolean isNomenclaturalTeam;
+       private boolean isCollectorTeam;
 
        /**
-        * <p>
         * Constructor for TeamDetailElement.
-        * </p>
-        *
-        * @param cdmFormFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param formElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @param style
-        *            a int.
         */
        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;
        }
 
-       /** {@inheritDoc} */
     @Override
     protected void createControls(ICdmFormElement formElement, Team entity, int style) {
 
        setWarnForReferencingObjects(formElement);
-        toggleable_cache = formFactory.createToggleableTextField(formElement, "Title Cache", entity.getTitleCache(), entity.isProtectedTitleCache(), style);
-        toggleable_nomenclaturalTitleCache = formFactory.createToggleableTextField(formElement, "Abbrev. Title", entity.getNomenclaturalTitle(), entity.isProtectedNomenclaturalTitleCache(), style);
+        toggleable_cache = formFactory.createToggleableTextField(formElement, "Title Cache",
+                entity.getTitleCache(), entity.isProtectedTitleCache(), style);
+        toggleable_nomenclaturalTitleCache = formFactory.createToggleableTextField(formElement,
+                "Abbrev. Title", entity.getNomenclaturalTitleCache(), entity.isProtectedNomenclaturalTitleCache(),
+                CacheRelevance.CACHE2, style);
+        toggleable_collectorTitleCache = formFactory.createToggleableTextField(formElement,
+                "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(formElement, StoreUtil.getSectionStyle(TeamMemberSection.class, entity.getClass().getCanonicalName(), true), isNomenclaturalTeam, isCollectorTeam);
         section_teamMembers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+
+        //cache relevance
+        //TODO
+//        registerCacheRelevance(toggleable_nomenclaturalTitleCache);
+        registerCacheRelevance(hasAdditionalMembers, toggleable_cache, toggleable_nomenclaturalTitleCache);
+        registerCacheRelevance(section_teamMembers, toggleable_cache, toggleable_nomenclaturalTitleCache);
     }
 
-       /** {@inheritDoc} */
        @Override
        protected void updateContent() {
                super.updateContent();
                if (toggleable_cache != null){
-                   toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
+                   toggleable_cache.setCacheEnabled(getEntity().isProtectedTitleCache());
                }
                if (toggleable_nomenclaturalTitleCache != null){
-                   toggleable_nomenclaturalTitleCache.setEnabled(getEntity()
+                   toggleable_nomenclaturalTitleCache.setCacheEnabled(getEntity()
                                .isProtectedNomenclaturalTitleCache());
                }
-               if (toggleable_nomenclaturalTitleCache != null && toggleable_cache != null){
-               setIrrelevant(
-                               toggleable_cache.getState(),
-                               Arrays.asList(new Object[] { toggleable_cache,
-                                               toggleable_nomenclaturalTitleCache , hasAdditionalMembers}));
-               } else if (toggleable_cache != null){
-                   setIrrelevant(
-                    toggleable_cache.getState(),
-                    Arrays.asList(new Object[] { toggleable_cache, hasAdditionalMembers}));
-               }
-
+               if (toggleable_collectorTitleCache != null){
+            toggleable_collectorTitleCache.setCacheEnabled(getEntity()
+                .isProtectedCollectorTitleCache());
+        }
                section_teamMembers.setEntity(getEntity());
 
+               updateCacheRelevance();
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == toggleable_cache) {
@@ -104,18 +95,21 @@ public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<T
 
                } else if (eventSource == toggleable_nomenclaturalTitleCache) {
                        updateToggleable_nomanclaturalTitleCacheField();
-                       setIrrelevant(
-                                       toggleable_nomenclaturalTitleCache.getState(),
-                                       Arrays.asList(new Object[] { toggleable_nomenclaturalTitleCache, hasAdditionalMembers }));
-               } else if (eventSource == section_teamMembers) {
+                       updateCacheRelevance();
+               } else if (eventSource == toggleable_collectorTitleCache) {
+            updateToggleable_collectorTitleCacheField();
+            updateCacheRelevance();
+        } else if (eventSource == section_teamMembers) {
                        toggleable_cache.setText(getEntity().getTitleCache());
                        toggleable_nomenclaturalTitleCache.setText(getEntity()
-                                       .getNomenclaturalTitle());
+                                       .getNomenclaturalTitleCache());
+                       toggleable_collectorTitleCache.setText(getEntity()
+                    .getCollectorTitleCache());
                } else if (eventSource == hasAdditionalMembers){
                        getEntity().setHasMoreMembers(hasAdditionalMembers.getSelection());
                        updateToggleableCacheField();
                        toggleable_nomenclaturalTitleCache.setText(getEntity()
-                                       .getNomenclaturalTitle());
+                                       .getNomenclaturalTitleCache());
                }
 
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
@@ -124,25 +118,42 @@ public class TeamDetailElement extends AbstractIdentifiableEntityDetailElement<T
        public void updateToggleable_nomanclaturalTitleCacheField() {
                 boolean pushedState = toggleable_nomenclaturalTitleCache.getState();
 
-               getEntity().setNomenclaturalTitle(toggleable_nomenclaturalTitleCache.getText(), pushedState);
-               setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache }));
+               getEntity().setNomenclaturalTitleCache(toggleable_nomenclaturalTitleCache.getText(), pushedState);
+               updateCacheRelevance();
 
         if (!getEntity().isProtectedNomenclaturalTitleCache()) {
-            toggleable_nomenclaturalTitleCache.setText(getEntity().getNomenclaturalTitle());
+            toggleable_nomenclaturalTitleCache.setText(getEntity().getNomenclaturalTitleCache());
         }
     }
 
-    /**
-     * @return the isNomenclaturalTeam
-     */
+       public void updateToggleable_collectorTitleCacheField() {
+        boolean pushedState = toggleable_collectorTitleCache.getState();
+
+        getEntity().setCollectorTitleCache(toggleable_collectorTitleCache.getText(), pushedState);
+        updateCacheRelevance();
+
+       if (!getEntity().isProtectedCollectorTitleCache()) {
+           toggleable_collectorTitleCache.setText(getEntity().getCollectorTitleCache());
+       }
+   }
+
     public boolean isNomenclaturalTeam() {
         return isNomenclaturalTeam;
     }
-
-    /**
-     * @param isNomenclaturalTeam the isNomenclaturalTeam to set
-     */
     public void setNomenclaturalTeam(boolean isNomenclaturalTeam) {
         this.isNomenclaturalTeam = isNomenclaturalTeam;
     }
-}
+
+       @Override
+       public void fillFields() {
+               if (getEntity()!= null) {
+                       toggleable_nomenclaturalTitleCache.setText(getEntity().getNomenclaturalTitleCache());
+                       toggleable_collectorTitleCache.setText(getEntity().getCollectorTitleCache());
+                       hasAdditionalMembers.setEnabled(getEntity().isHasMoreMembers());
+       
+                       section_teamMembers.setEntity(getEntity());
+                       
+               }
+               
+       }
+}
\ No newline at end of file
index a308a6a9d908ec414c105c6044cfea74a6d299f1..626af949029aa70c78374c231e24aa727256a8c4 100644 (file)
@@ -6,12 +6,10 @@
 * 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.agent;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -23,38 +21,35 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  *
  * @author n.hoffmann
  * @created Mar 4, 2010
- * @version 1.0
  */
 public class TeamDetailSection extends AbstractCdmDetailSection<Team>{
 
     private boolean isNomenclaturalTeam;
+    private boolean isCollectorTeam;
+
+
 
        /**
         * <p>Constructor for TeamDetailSection.</p>
         *
         * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
         * @param style a int.
         */
-       public TeamDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement,
+       public TeamDetailSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(cdmFormFactory, conversation, parentElement, selectionProvider, style);
+               super(cdmFormFactory, parentElement, selectionProvider, style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return "Team";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @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 +59,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 3d2073e8e63fdc5ba9c0bc9db9f8dc6e9f13653c..9c9d0d5bf66ac0cd1eaafda5ed84485bfef5cf0c 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.agent;
 
 import org.eclipse.swt.events.SelectionListener;
@@ -23,40 +22,37 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author n.hoffmann
  * @created Apr 30, 2010
- * @version 1.0
  */
 public class TeamMemberElement extends AbstractEntityCollectionElement<Person> {
 
-       private EntitySelectionElement<Person> selection_person;
-       private final boolean isNomenclatural;
+       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);
-               this.isNomenclatural =isNomenclatural;
-
        }
 
-       /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
                selection_person = formFactory
                                .createSelectionElement(Person.class,
-                                               //getConversationHolder(),
                                        this, "Person", null,
                                                EntitySelectionElement.EDITABLE | EntitySelectionElement.SELECTABLE,
                                                style);
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setEntity(Person entity) {
                this.entity = entity;
-               selection_person.setEntity(entity);
+               if (selection_person != null){
+                       selection_person.setEntity(entity);
+               }
        }
 
-       /** {@inheritDoc} */
     @Override
     public void handleEvent(Object eventSource) {
         if (eventSource == selection_person) {
@@ -71,7 +67,7 @@ public class TeamMemberElement extends AbstractEntityCollectionElement<Person> {
                 }
                 else{
                     //first remove the edited team member and then add it again
-                    //because the model allows the same person multiple time in on team
+                    //because the model allows the same person multiple time in one team
                     team.removeTeamMember(getEntity());
                     team.addTeamMember(selection_person.getEntity(), index);
                 }
@@ -80,4 +76,4 @@ public class TeamMemberElement extends AbstractEntityCollectionElement<Person> {
             entity = selection_person.getEntity();
         }
     }
-}
+}
\ No newline at end of file
index bb8ed81d0fedf91ac1fd297f5622bfa99caf9ca7..13b0bf34a6ffa80bd49876cb9fc0ab56b659eca3 100644 (file)
@@ -6,94 +6,98 @@
 * 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.agent;
 
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.List;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import org.eclipse.swt.graphics.Color;
+
 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;
+import eu.etaxonomy.taxeditor.ui.element.CacheRelevanceHelper;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICacheRelevantFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection;
+import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
- * <p>TeamMemberSection class.</p>
- *
  * @author n.hoffmann
  * @created Apr 30, 2010
- * @version 1.0
  */
-public class TeamMemberSection extends AbstractUnboundEntityCollectionSection<Team, Person> {
+public class TeamMemberSection
+        extends AbstractEntityCollectionSection<Team, Person>
+        implements ICacheRelevantFormElement {
 
     private boolean isNomenclaturalTeam = false;
+    private boolean isCollectorTeam = false;
+
+    private CacheRelevanceHelper cacheRelevanceHelper = new CacheRelevanceHelper();
 
-       /**
-        * <p>Constructor for TeamMemberSection.</p>
-        *
-        * @param cdmFormFactory 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 style a int.
-        */
-       public TeamMemberSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style, boolean isNomenclatural) {
-               super(cdmFormFactory, conversation, parentElement, null, style);
+    public TeamMemberSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, int style, boolean isNomenclatural, boolean isCollectorTeam) {
+               super(cdmFormFactory, parentElement, null, style);
                isNomenclaturalTeam = isNomenclatural;
+               this.isCollectorTeam = isCollectorTeam;
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getTitleString() {
                return "Team Members";
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addElement(Person element) {
                getEntity().addTeamMember(element);
        }
 
-       /** {@inheritDoc} */
        @Override
-       public Person createNewElement() {
-               return Person.NewTitledInstance("");
+       public Person createNewElement()  {
+           Person selection = null;
+           if (isNomenclaturalTeam){
+               selection = NomenclaturalPersonAuthorSelectionDialog.select(getShell(), null, true);
+           }else if(isCollectorTeam){
+               selection = CollectorSelectionDialog.select(getShell(), null, true);
+               }else{
+               selection = PersonSelectionDialog.select(getShell(), null);
+           }
+
+           return selection;
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No persons yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Add a member to this team";
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElement(Person element) {
                getEntity().removeTeamMember(element);
        }
 
-    @Override
-    protected Collection<Person> getEntityCollection(Team entity) {
-        return getEntity().getTeamMembers();
-    }
+
 
     @Override
     public Comparator<Person> getComparator() {
         return (p1, p2) -> {
-            if(p1==null){
+            if (p1 == p2){
+                return 0;
+            }else if(p1==null){
                 return -1;
-            }
-            if(p2==null){
+            }else if(p2==null){
                 return 1;
             }
+
             List<Person> teamMembers = getEntity().getTeamMembers();
             int indexOfP1 = teamMembers.indexOf(p1);
             int indexOfP2 = teamMembers.indexOf(p2);
@@ -107,27 +111,40 @@ public class TeamMemberSection extends AbstractUnboundEntityCollectionSection<Te
         };
     }
 
-    /**
-     * @return
-     */
     public boolean isNomenclaturalTeam() {
        return isNomenclaturalTeam;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Person addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
 
-}
+    @Override
+    public void updateCacheRelevance() {
+        Color color = cacheRelevance().getColor();
+        setBackground(color);
+    }
+
+    @Override
+    public void addDependsOnCache(ToggleableTextElement toggleElement) {
+        cacheRelevanceHelper.addDependsOnCache(toggleElement);
+    }
+
+    @Override
+    public CacheRelevance cacheRelevance() {
+        return cacheRelevanceHelper.cacheRelevance();
+    }
+
+    @Override
+    public Collection<Person> getCollection(Team entity) {
+        return entity.getTeamMembers();
+
+    }
+
+}
\ No newline at end of file
index b5e91320dee097e2c018f7bff78426f0f9b3e8a9..d0ad99b1e3d26922eac0ddc8f243316b672a38af 100644 (file)
@@ -6,12 +6,10 @@
 * 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.agent;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
@@ -26,7 +24,6 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  *
  * @author n.hoffmann
  * @created Apr 26, 2010
- * @version 1.0
  */
 public class TeamOrPersonBaseDetailSection extends AbstractCdmDetailSection<TeamOrPersonBase> {
 
@@ -34,17 +31,15 @@ public class TeamOrPersonBaseDetailSection extends AbstractCdmDetailSection<Team
         * <p>Constructor for TeamOrPersonBaseDetailSection.</p>
         *
         * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
         * @param style a int.
         */
-       public TeamOrPersonBaseDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
-                       ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
-               super(cdmFormFactory, conversation, parentElement, selectionProvider, style);
+       public TeamOrPersonBaseDetailSection(CdmFormFactory cdmFormFactory,
+               ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
+               super(cdmFormFactory, parentElement, selectionProvider, style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                if (getEntity() != null){
@@ -63,4 +58,4 @@ public class TeamOrPersonBaseDetailSection extends AbstractCdmDetailSection<Team
            //TODO DetailElement missing??
            return null;
        }
-}
+}
\ No newline at end of file
index a2d9c70d22164297c94a71d71899a4791ae50918..2b464e076769ab56fd33eb239d2933bc9d2286e0 100644 (file)
@@ -6,12 +6,10 @@
  * 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.agent;
 
 import org.eclipse.swt.SWT;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -19,51 +17,29 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
- * <p>
- * TeamWizardPage class.
- * </p>
- *
  * @author n.hoffmann
  * @created Jun 1, 2010
- * @version 1.0
  */
 public class TeamWizardPage extends AbstractCdmEntityWizardPage<Team> {
 
     private boolean isNomenclaturalTeam = false;
+    private boolean isCollectorTeam = false;
 
-       /**
-        * <p>
-        * Constructor for TeamWizardPage.
-        * </p>
-        *
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param conversation
-        *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-        *            object.
-        * @param entity
-        *            a {@link eu.etaxonomy.cdm.model.agent.Team} object.
-        */
-       public TeamWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, Team entity, boolean isNomenclaturalTeam) {
-               super(formFactory, conversation, entity);
+       public TeamWizardPage(CdmFormFactory formFactory, Team entity, boolean isNomenclaturalTeam, boolean isCollectorTeam) {
+               super(formFactory, 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;
        }
 
-    /**
-     * @return the isNomenclaturalTeam
-     */
     public boolean isNomenclaturalTeam() {
         return isNomenclaturalTeam;
     }
@@ -71,4 +47,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;
+    }
+}
\ No newline at end of file
index aff83e4aaa2310d656471eed90db11011a4a2df9..374ef3aa2b5c016e2d699035542d01233b086654 100644 (file)
@@ -18,20 +18,13 @@ import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.INewWizard;
 import org.eclipse.ui.IWorkbench;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 /**
  * @author k.luther
  * @date 23.03.2016
  *
  */
-public abstract class AbstractEditWizard<T> extends Wizard implements
-INewWizard, IConversationEnabled{
-
-    private ConversationHolder conversation;
+public abstract class AbstractEditWizard<T> extends Wizard implements INewWizard{
 
     protected CdmFormFactory formFactory;
 
@@ -64,9 +57,6 @@ INewWizard, IConversationEnabled{
     @Override
     public boolean performFinish() {
         saveEntity();
-
-        conversation.commit();
-        conversation.close();
         return true;
     }
 
@@ -100,23 +90,7 @@ INewWizard, IConversationEnabled{
     @Override
     public void init(IWorkbench workbench, IStructuredSelection selection) {
         formFactory = new CdmFormFactory(context.get(Shell.class).getDisplay());
-        conversation = CdmStore.createConversation();
     }
-
-
-
-    /**
-     * <p>getConversationHolder</p>
-     *
-     * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-     */
-    @Override
-    public ConversationHolder getConversationHolder() {
-        return conversation;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void update(CdmDataChangeMap changeEvents) {}
+    
 
 }
index 86c5fb0a4720beaf2ff7b69a22bb962e87971b5a..c1c8455d892362717620b5b043a52282cc303153 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.classification;
 
 import org.eclipse.swt.SWT;
@@ -26,13 +25,8 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.GeoScopeDetailSection;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
- * <p>
- * ClassificationDetailElement class.
- * </p>
- *
  * @author n.hoffmann
  * @created Sep 27, 2010
- * @version 1.0
  */
 public class ClassificationDetailElement extends
                AbstractCdmDetailElement<Classification> {
@@ -48,59 +42,27 @@ public class ClassificationDetailElement extends
     private GeoScopeDetailSection section_collectingAreas;
 
 
-
-
-       /**
-        * <p>
-        * Constructor for ClassificationDetailElement.
-        * </p>
-        *
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param formElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        */
        public ClassificationDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
                super(formFactory, formElement);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
-        * (eu.etaxonomy.taxeditor.forms.ICdmFormElement,
-        * eu.etaxonomy.cdm.model.common.IAnnotatableEntity, int)
-        */
-       /** {@inheritDoc} */
        @Override
        protected void createControls(ICdmFormElement formElement,
                Classification entity, int style) {
            text_treeLabel = formFactory.createTextWithLabelElement(formElement, "Label", entity != null ? entity.getName().getText() : null, SWT.NULL);
-           selection_reference = formFactory.createSelectionElement(Reference.class, //getConversationHolder(),
+           selection_reference = formFactory.createSelectionElement(Reference.class,
                    formElement, "Reference",
                    entity != null ? entity.getReference() : null, EntitySelectionElement.ALL, SWT.NULL);
            text_microReference = formFactory.createTextWithLabelElement(formElement, "Reference Detail",
                    entity != null ? entity.getMicroReference() : null, SWT.NULL);
               element_date = formFactory.createTimePeriodElement(formElement, "Date",
                       entity != null ? entity.getTimeperiod() : null, style);
-              section_collectingAreas = formFactory.createGeoScopeDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(GeoScopeDetailSection.class, entity.getClass().getCanonicalName()));
+              section_collectingAreas = formFactory.createGeoScopeDetailSection(formElement, StoreUtil.getSectionStyle(GeoScopeDetailSection.class, entity.getClass().getCanonicalName()));
            section_collectingAreas.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
            section_collectingAreas.setEntity(entity);
-
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
-        * .lang.Object)
-        */
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == text_treeLabel) {
@@ -115,4 +77,16 @@ public class ClassificationDetailElement extends
             getEntity().setTimeperiod(element_date.getTimePeriod());
                }
        }
-}
+
+       @Override
+       public void fillFields() {
+               if (getEntity()!= null) {
+                       text_treeLabel.setText(getEntity().getName().getText());
+                       selection_reference.setEntity(getEntity().getReference());
+                       text_microReference.setText(getEntity().getMicroReference());
+                       element_date.setEntity(getEntity().getTimeperiod()!= null? getEntity().getTimeperiod(): null);;
+                       section_collectingAreas.setEntity(getEntity());
+               }
+               
+       }
+}
\ No newline at end of file
index f4344cec35122f43c2994c09f1f61193527f7847..1a5544db0c37372817b18b7af24207bddc884cd7 100644 (file)
@@ -11,7 +11,6 @@ package eu.etaxonomy.taxeditor.ui.section.classification;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -23,7 +22,6 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  *
  * @author n.hoffmann
  * @created Sep 27, 2010
- * @version 1.0
  */
 public class ClassificationDetailSection extends AbstractCdmDetailSection<Classification> {
 
@@ -31,40 +29,28 @@ public class ClassificationDetailSection extends AbstractCdmDetailSection<Classi
         * <p>Constructor for ClassificationDetailSection.</p>
         *
         * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
         * @param style a int.
         */
        public ClassificationDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.IEnableableFormElement#setEnabled(boolean)
-        */
-       /** {@inheritDoc} */
        @Override
        public void setEnabled(boolean enabled) {
 
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-        */
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return null;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
        protected AbstractCdmDetailElement<Classification> createCdmDetailElement(AbstractCdmDetailSection<Classification> parentElement, int style) {
            return formFactory.createClassificationDetailElement(parentElement);
        }
-}
+}
\ No newline at end of file
index dc4b7afc49b62776a2b2101d761cbc3fef17fddb..070013b2b3c77ef39c9133552426cb103f870c24 100644 (file)
@@ -6,61 +6,30 @@
  * 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.classification;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 /**
- * <p>
- * ClassificationWizardPage class.
- * </p>
- *
  * @author n.hoffmann
  * @created 23.06.2009
- * @version 1.0
  */
 public class ClassificationWizardPage extends
                AbstractCdmEntityWizardPage<Classification> {
 
-       /**
-        * <p>
-        * Constructor for ClassificationWizardPage.
-        * </p>
-        *
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param conversation
-        *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-        *            object.
-        * @param entity
-        *            a {@link eu.etaxonomy.cdm.model.taxon.TaxonomicTree} object.
-        */
        public ClassificationWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, Classification entity) {
-               super(formFactory, conversation, entity);
+                       Classification entity) {
+               super(formFactory, entity);
                setTitle("Classification");
-
        }
 
-           /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement
-     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement)
-     */
-    /** {@inheritDoc} */
     @Override
     public ClassificationDetailElement createElement(ICdmFormElement rootElement) {
         ClassificationDetailElement detailElement = formFactory.createClassificationDetailElement(rootElement);
         detailElement.setEntity(getEntity());
         return detailElement;
     }
-
-}
+}
\ No newline at end of file
index 55e7c2a219d2f22f56f85a347c23a8b31e736393..aa275cc2b85a6810aa019a9b7fc40defdf8f3788 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.classification;
 
 import javax.inject.Inject;
@@ -15,26 +14,19 @@ import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 
 /**
- *
  * @author pplitzner
  * @date Nov 6, 2016
- *
  */
-
 public class CloneClassificationWizard extends Wizard{
 
        private CloneClassificationWizardPage cloneClassificationWizardPage;
 
-    private ConversationHolder conversationHolder;
-
     private CdmFormFactory formFactory;
 
     private String classificationName;
@@ -49,17 +41,14 @@ public class CloneClassificationWizard extends Wizard{
     @Inject
     public CloneClassificationWizard() {
         super();
-        conversationHolder = CdmStore.createConversation();
-
     }
 
     public void init(Classification classification){
         formFactory = new CdmFormFactory(context.get(Shell.class).getDisplay());
-        cloneClassificationWizardPage = new CloneClassificationWizardPage(formFactory, conversationHolder, classification);
+        cloneClassificationWizardPage = new CloneClassificationWizardPage(formFactory, classification);
         addPage(cloneClassificationWizardPage);
     }
 
-
     @Override
     public boolean canFinish() {
         return cloneClassificationWizardPage.getClassificationName()!=null
@@ -75,7 +64,6 @@ public class CloneClassificationWizard extends Wizard{
         return true;
     }
 
-
     public String getClassificationName(){
         return classificationName;
     }
@@ -87,5 +75,4 @@ public class CloneClassificationWizard extends Wizard{
     public Reference getReference(){
         return reference;
     }
-
-}
+}
\ No newline at end of file
index 6019f7dc888ef2cbfd9a07bbbe04b692257bc546..b18df42f65516bad4814ab8b960c4001884b2f19 100644 (file)
@@ -9,7 +9,6 @@
 
 package eu.etaxonomy.taxeditor.ui.section.classification;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
@@ -29,9 +28,8 @@ public class CloneClassificationWizardPage extends
 
        private CloneClassificationDetailElement detailElement;
 
-    public CloneClassificationWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, Classification entity) {
-               super(formFactory, conversation, entity);
+    public CloneClassificationWizardPage(CdmFormFactory formFactory, Classification entity) {
+               super(formFactory, entity);
                setTitle("Clone Classification");
        }
 
index d44510b36757e18df75f461ff7b25a536361383b..ec3b3f9eae78881cf9c1977c9c372a6f43ce1e9d 100644 (file)
@@ -16,6 +16,9 @@ import java.util.Map;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.MergeResult;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.newWizard.IWizardPageListener;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
@@ -24,37 +27,42 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author k.luther
  * @date 23.03.2016
- *
  */
-public class EditTaxonNodeWizard extends AbstractEditWizard<TaxonNode> implements ICdmEntitySessionEnabled{
+public class EditTaxonNodeWizard 
+               extends AbstractEditWizard<TaxonNode> 
+               implements ICdmEntitySessionEnabled<TaxonNode>{
 
     private TaxonNodeWizardPage taxonNodePage;
     private IWizardPageListener wizardPageListener;
     private ICdmEntitySession cdmEntitySession;
 
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.classification.AbstractEditWizard#getEntityName()
-     */
+//    @Override
+//    public void init(IWorkbench workbench, IStructuredSelection selection) {
+//        formFactory = new CdmFormFactory(getContext().get(Shell.class).getDisplay());
+//        conversation = CdmStore.createConversation();
+//    }
+
     @Override
     protected String getEntityName() {
         return "taxon node";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.classification.AbstractEditWizard#saveEntity()
-     */
     @Override
     protected void saveEntity() {
-        getConversationHolder().bind();
         TaxonNode node = getEntity();
-
+        if (node.getSource().checkEmpty()){
+            node.setSource(null);
+        }
         MergeResult result = CdmStore.getService(ITaxonNodeService.class).merge(node, true);
+        EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAME_EDITOR, node.getTaxon().getUuid());
+        EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, new TaxonNodeDto(node.getParent()));
+        
 
     }
     @Override
     public void addPages() {
-        taxonNodePage = new TaxonNodeWizardPage(formFactory, getConversationHolder(), getEntity(), wizardPageListener, false);
+        taxonNodePage = new TaxonNodeWizardPage(formFactory, getEntity(), wizardPageListener, false);
 
         addPage(taxonNodePage);
     }
@@ -63,9 +71,6 @@ public class EditTaxonNodeWizard extends AbstractEditWizard<TaxonNode> implement
         this.wizardPageListener = wizardPageListener;
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard#setEntity(java.lang.Object)
-     */
     @Override
     public void setEntity(TaxonNode entity) {
         setWindowTitle(String.format("Edit %s", getEntityName()));
@@ -78,26 +83,16 @@ public class EditTaxonNodeWizard extends AbstractEditWizard<TaxonNode> implement
         super.setEntity(entity);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public ICdmEntitySession getCdmEntitySession() {
-
         return cdmEntitySession;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Collection<TaxonNode> getRootEntities() {
         return Collections.singleton(this.getEntity());
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Map<Object, List<String>> getPropertyPathsMap() {
         // TODO Auto-generated method stub
@@ -109,7 +104,4 @@ public class EditTaxonNodeWizard extends AbstractEditWizard<TaxonNode> implement
         cdmEntitySession.dispose();
         super.dispose();
     }
-
-
-
-}
+}
\ No newline at end of file
index d8e4e2963c1916baecc73cf2cc190c08bc3188ed..f87081bb6f3d77cb61a76adeb3bb30e82f2b0f93 100644 (file)
@@ -12,9 +12,9 @@ import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.graphics.Color;
 
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.model.taxon.TaxonNodeAgentRelation;
 import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.taxon.TaxonNodeAgentRelation;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -55,12 +55,12 @@ public class TaxonNodeAgentRelationCollectionElement extends AbstractEntityColle
 
     @Override
     public void setEntity(TaxonNodeAgentRelation entity) {
-
-        if(entity.getId()!=0){
+       this.entity = entity;
+        if(entity.getId()!=0 && combo_relationshipType != null){
             combo_relationshipType.setSelection(entity.getType());
             selection_toPerson.setEntity(entity.getAgent());
         }
-        this.entity = entity;
+
     }
 
     @Override
@@ -80,18 +80,18 @@ public class TaxonNodeAgentRelationCollectionElement extends AbstractEntityColle
         if (entity != null){
             selection_toPerson = formFactory
                     .createSelectionElement(TeamOrPersonBase.class,
-                            //getConversationHolder(),
                             element, "Agent", entity.getAgent(),
                             EntitySelectionElement.ALL, style);
         } else{
             selection_toPerson = formFactory
                     .createSelectionElement(TeamOrPersonBase.class,
-                            //getConversationHolder(),
                             element, "Agent", null,
                             EntitySelectionElement.ALL, style);
         }
         label = formFactory.createLabel(element, null);
-
+        if (entity != null){
+               setEntity(entity);
+        }
     }
 
     public boolean isComplete(){
index 4a3bce8e317dceb2830bb84bbea958915c164559..08fe6d36d64a624fcb87037595fe06becfb12ae9 100644 (file)
@@ -11,7 +11,8 @@ package eu.etaxonomy.taxeditor.ui.section.classification;
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNodeAgentRelation;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -22,16 +23,12 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 /**
  * @author k.luther
  * @date 22.03.2016
- *
  */
 public class TaxonNodeAgentRelationCollectionSection extends AbstractEntityCollectionSection<TaxonNode, TaxonNodeAgentRelation> {
 
-
-
-    public TaxonNodeAgentRelationCollectionSection (CdmFormFactory formFactory, ConversationHolder conversation,
+    public TaxonNodeAgentRelationCollectionSection (CdmFormFactory formFactory,
             ICdmFormElement parentElement, int style) {
-        super(formFactory, conversation, parentElement,  "Related persons or teams", style);
-
+        super(formFactory, parentElement,  "Related persons or teams", style);
     }
 
     @Override
@@ -58,8 +55,6 @@ public class TaxonNodeAgentRelationCollectionSection extends AbstractEntityColle
 
     @Override
     public void addElement(TaxonNodeAgentRelation element) {
-
-
     }
 
     @Override
@@ -80,20 +75,22 @@ public class TaxonNodeAgentRelationCollectionSection extends AbstractEntityColle
         return false;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public TaxonNodeAgentRelation addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
 
-}
+    public void setIndent(int i) {
+        TableWrapData tableWrapData = (TableWrapData)getLayoutData();
+        if (tableWrapData == null){
+            tableWrapData = new TableWrapData();
+        }
+        tableWrapData.indent = i;
+        setLayoutData(tableWrapData);
+    }
+}
\ No newline at end of file
index c13d8d89cdfd2513851ed245c2c4cd4a548bc42b..eaab161c2e0ae55f2279f98a0607888329304ed0 100644 (file)
@@ -6,17 +6,18 @@
  * 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.classification;
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.common.CdmUtils;
@@ -27,14 +28,17 @@ import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PublishEnum;
 import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.reference.NamedSource;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNodeStatus;
 import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.preference.CdmPreferenceCache;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
@@ -44,8 +48,9 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.MultilanguageTextElement;
+import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractSingleSourceElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.TaxonNodeSelectionElement;
 
@@ -53,34 +58,37 @@ import eu.etaxonomy.taxeditor.ui.selection.TaxonNodeSelectionElement;
  * @author n.hoffmann
  * @created Sep 27, 2010
  */
-public class TaxonNodeDetailElement extends AbstractCdmDetailElement<TaxonNode> {
+public class TaxonNodeDetailElement extends AbstractSingleSourceElement<TaxonNode> {
 
-    private static final String STATUS_NOTES = Messages.TaxonNodeWizardPage_STATUS_NOTES;
+    private static final String STATUS_PLACEMENT = Messages.TaxonNodeWizardPage_PLACEMENT_NOTES;
     private static final String CLASSIFICATION_STR = Messages.TaxonNodeWizardPage_CLASSIFICATION;
     private static final String REUSE_EXISTING_TAXON = Messages.TaxonNodeWizardPage_REUSE_EXISTING_TAXON;
     private static final String REUSE_EXISTING_NAME = Messages.TaxonNodeWizardPage_REUSE_EXISTING_NAME;
     private static final String SECUNDUM_REFERENCE = Messages.TaxonNodeWizardPage_SECUNDUM_REFERENCE;
 
+    private static final Font FONT_BOLD = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);
+
     private boolean createNew = false;
        private Classification classification;
        private TaxonNode parentNode;
        private Taxon taxon;
     private boolean complete;
     private TaxonNodeStatus status = null;
-    private Map<Language, LanguageString> multilanguageTextCache;
+//    private Map<Language, LanguageString> multilanguageTextCache;
 
        private TaxonNodeSelectionElement selection_parentTaxonNode;
        private EntitySelectionElement<Taxon> selection_reuseExistingTaxon;
        private EntitySelectionElement<TaxonName> selection_reuseExistingName;
     private EntitySelectionElement<Reference> selection_SecRef;
-       private EntitySelectionElement<Reference> selection_Ref;
+
     private TextWithLabelElement textTaxonSec;
        private TextWithLabelElement microReference;
     private TextWithLabelElement textNewTaxonName;
        private TaxonNodeAgentRelationCollectionSection selectionNodeAgentRelation;
        private EnumComboElement<TaxonNodeStatus> combo_status;
        private CheckboxElement checkbox_publish;
-    private MultilanguageTextElement multiLanguageTextStatusNotes;
+    private MultilanguageTextElement multiLanguageTextPlacementNotes;
+    private String defaultPublish;
 
        public TaxonNodeDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement, boolean isCreateNew) {
@@ -89,7 +97,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<TaxonNode>
        }
 
        public Map<Language, LanguageString> getMultiLanguageTextExcludedNotes() {
-        return multiLanguageTextStatusNotes.getMultilanguageText();
+        return multiLanguageTextPlacementNotes.getMultilanguageText();
     }
 
        public TaxonNodeStatus getTaxonNodeStatus(){
@@ -97,7 +105,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<TaxonNode>
        }
 
     public Reference getRef() {
-        return selection_Ref.getEntity();
+        return getEntity().getCitation();
     }
     public TaxonName getExistingName() {
         return selection_reuseExistingName.getEntity();
@@ -107,113 +115,119 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<TaxonNode>
     }
 
        @Override
-       protected void createControls(ICdmFormElement formElement,
-               TaxonNode entity, int style) {
+       public void createControls(ICdmFormElement formElement, TaxonNode entity, int style) {
 //         taxon = entity.getTaxon();
 
+           Label taxonTitle = new Label(getLayoutComposite(), SWT.NULL);
+           taxonTitle.setText(Messages.TaxonNodeWizardPage_TAXON_INFORMATION);
+           taxonTitle.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+           taxonTitle.setFont(FONT_BOLD);
+
            if (isCreateNew()){
-//             setParentTreeNode(entity);
-               selection_parentTaxonNode = formFactory
-                               .createTaxonNodeSelectionElement(getConversationHolder(), formElement, Messages.TaxonNodeWizardPage_PARENT, parentNode,
-                                               EntitySelectionElement.DELETABLE, style, 100);
+               textNewTaxonName = formFactory.createTextWithLabelElement(formElement,
+                    Messages.TaxonNodeWizardPage_NEW_TAXON, "", style);
+            textNewTaxonName.setFocus();
+            textNewTaxonName.setIndent(10);
 
-               selection_Ref = formFactory
+               selection_reuseExistingTaxon = formFactory
+                    .createSelectionElement(Taxon.class,
+                            formElement,
+                            REUSE_EXISTING_TAXON, null,
+                            EntitySelectionElement.SELECTABLE, style);
+               selection_reuseExistingTaxon.setIndent(10);
+            selection_reuseExistingName = formFactory
+                    .createSelectionElement(TaxonName.class,
+                            formElement,
+                            REUSE_EXISTING_NAME, taxon != null? taxon.getName(): null,
+                            EntitySelectionElement.DELETABLE, style);
+            selection_reuseExistingName.setIndent(10);
+            selection_SecRef = formFactory
                     .createSelectionElement(Reference.class,
-                            formElement, Messages.TaxonNodeWizardPage_PLACEMENT_SOURCE, null,
-                            EntitySelectionElement.DELETABLE, style, 100);
-
-            microReference = formFactory.createTextWithLabelElement(formElement,
-                    Messages.TaxonNodeWizardPage_PLACEMENT_SOURCE_DETAIL, "", style);
-            microReference.setText(parentNode.getMicroReference());
-
-               selection_reuseExistingTaxon = formFactory
-                               .createSelectionElement(Taxon.class,//getConversationHolder(),
-                                       formElement,
-                                               REUSE_EXISTING_TAXON, null,
-                                               EntitySelectionElement.DELETABLE, style);
-
-               selection_reuseExistingName = formFactory
-                               .createSelectionElement(TaxonName.class,//getConversationHolder(),
-                                       formElement,
-                                               REUSE_EXISTING_NAME, taxon != null? taxon.getName(): null,
-                                               EntitySelectionElement.DELETABLE, style);
-               selection_SecRef = formFactory
-                    .createSelectionElement(Reference.class,//getConversationHolder(),
                             formElement, SECUNDUM_REFERENCE, taxon != null? taxon.getSec(): null,
                             EntitySelectionElement.DELETABLE, style, 100);
+            selection_SecRef.setIndent(10);
+            microReference = formFactory.createTextWithLabelElement(formElement, "Secundum Details", "", style);
+
+            microReference.setIndent(10);
+            checkbox_publish = formFactory.createCheckbox(formElement,
+                    Messages.TaxonNodeWizardPage_TAXON_IS_PUBLISH, true, style);
+
+            checkbox_publish.setEnabled(isCreateNew());
+            checkbox_publish.setIndent(10);
+            Label spacer = new Label(getLayoutComposite(), SWT.NULL);
+            spacer.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 2));
+            Label nodeTitle = new Label(getLayoutComposite(), SWT.NULL);
+            nodeTitle.setText("Taxon Node");
+            nodeTitle.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+            nodeTitle.setFont(FONT_BOLD);
+//            LabelElement nodeTitle = formFactory.createLabel(formElement, Messages.TaxonNodeWizardPage_TAXON_INFORMATION);
+//            nodeTitle.setLayout(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+//            nodeTitle.setBackground(getPersistentBackground());
+//            nodeTitle.setBold();
+
+            selection_parentTaxonNode = formFactory
+                    .createTaxonNodeSelectionElement(formElement, Messages.TaxonNodeWizardPage_PARENT, parentNode,
+                            EntitySelectionElement.SELECTABLE, style, 100);
+            selection_parentTaxonNode.setIndent(10);
+            selection_parentTaxonNode.setEnabled(false);
 
-               if (isCreateNew()){
-                   textNewTaxonName = formFactory.createTextWithLabelElement(formElement,
-                           Messages.TaxonNodeWizardPage_NEW_TAXON, "", style);
-                   textNewTaxonName.setFocus();
-               } else{
-                   textNewTaxonName = formFactory.createTextWithLabelElement(formElement,
-                           Messages.TaxonNodeWizardPage_TAXON, "", style);
-               }
-           }else{
-               taxon = getEntity().getTaxon();
-               if (entity.getParent().getTaxon() == null){
-                   TextWithLabelElement textParent = formFactory.createTextWithLabelElement(
-                           formElement,CLASSIFICATION_STR, entity.getClassification().getTitleCache(), style);
-                textParent.setEnabled(false);
-               }else{
-                   TextWithLabelElement textParent = formFactory.createTextWithLabelElement(
-                           formElement, Messages.TaxonNodeWizardPage_PARENT, entity.getParent().getTaxon().getTitleCache(), style);
-                   textParent.setEnabled(false);
-               }
 
-               selection_Ref = formFactory
-                    .createSelectionElement(Reference.class,
-                            formElement, Messages.TaxonNodeWizardPage_PLACEMENT_SOURCE, null,
-                            EntitySelectionElement.DELETABLE, style);
 
+           }else{
+               taxon = getEntity().getTaxon();
                selection_reuseExistingTaxon = formFactory
-                  .createSelectionElement(Taxon.class,//getConversationHolder(),
-                          formElement,
+                  .createSelectionElement(Taxon.class, formElement,
                           Messages.TaxonNodeWizardPage_TAXON, taxon,
-                          EntitySelectionElement.DELETABLE, style);
+                          EntitySelectionElement.SELECTABLE, SWT.NULL);
+
+               selection_reuseExistingTaxon.setIndent(10);
+               textTaxonSec = formFactory.createTextWithLabelElement(formElement,SECUNDUM_REFERENCE, "", SWT.NULL);
+               textTaxonSec.setIndent(10);
+               microReference = formFactory.createTextWithLabelElement(formElement, "Secundum Details", "", SWT.NULL);
+               microReference.setIndent(10);
 
-               textTaxonSec = formFactory.createTextWithLabelElement(formElement,SECUNDUM_REFERENCE, "", style);
-            if (entity.getTaxon().getSec() != null){
+               if (entity.getTaxon().getSec() != null){
                 textTaxonSec.setText(taxon.getSec().getTitleCache());
             }
             textTaxonSec.setEnabled(false);
-           }
+            microReference.setEnabled(false);
+            Label spacer = new Label(getLayoutComposite(), SWT.NULL);
+            spacer.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 2));
 
-        if (!isCreateNew()){
-            if (entity.getReference() != null){
-                selection_Ref.setEntity(entity.getReference());
-            }
-        }
+            Label nodeTitle = new Label(getLayoutComposite(), SWT.NULL);
+            nodeTitle.setText("Taxon Node");
+            nodeTitle.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+            nodeTitle.setFont(FONT_BOLD);
 
-        Taxon tax = null;
-        if (entity.getTaxon() != null){
-            tax = entity.getTaxon();
-        }
-        checkbox_publish = formFactory.createCheckbox(formElement,
-                "Taxon is published", tax != null? tax.isPublish(): true, style);
+//            LabelElement nodeTitle = formFactory.createLabel(formElement, "Taxon Node");
+//            nodeTitle.setLayout(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+//            nodeTitle.setBackground(getPersistentBackground());
+//            nodeTitle.setBold();
+
+
+            if (entity.getParent().getTaxon() == null){
+                TextWithLabelElement textParent = formFactory.createTextWithLabelElement(
+                        formElement,CLASSIFICATION_STR, entity.getClassification().getTitleCache(), SWT.NULL);
+                textParent.setEnabled(false);
+                textParent.setIndent(10);
+            }else{
+                TextWithLabelElement textParent = formFactory.createTextWithLabelElement(
+                        formElement, Messages.TaxonNodeWizardPage_PARENT, entity.getParent().getTaxon().getTitleCache(), SWT.NULL);
+                textParent.setEnabled(false);
+                textParent.setIndent(10);
+            }
+           }
 
-        checkbox_publish.setEnabled(isCreateNew());
 
-        combo_status = formFactory.createEnumComboElement(TaxonNodeStatus.class, formElement, style, true);
+        combo_status = formFactory.createEnumComboElement(TaxonNodeStatus.class, formElement, SWT.NULL, true);
         if (!isCreateNew()){
             combo_status.setSelection(entity.getStatus());
         }
-
+        combo_status.setIndent(10);
         if(isCreateNew()){
 
-                  String defaultPublish = PreferencesUtil.getStringValue(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey());
-               if (defaultPublish != null && defaultPublish.equals(PublishEnum.Publish.getKey())){
-                   checkbox_publish.setSelection(true);
-               } else if (defaultPublish != null && defaultPublish.equals(PublishEnum.NotPublish.getKey())){
-                   checkbox_publish.setSelection(false);
-               }else{
-                   if(this.getParentTreeNode() != null &&  this.getParentTreeNode().isInstanceOf(TaxonNode.class) && this.getParentTreeNode().getTaxon() != null){
-                       checkbox_publish.setSelection(this.getParentTreeNode().getTaxon().isPublish());
-                   }else{
-                       checkbox_publish.setSelection(true);
-                   }
-               }
+            defaultPublish = PreferencesUtil.getStringValue(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey());
+               setDefaultPublish();
            } else{
             setTreeNode(entity);
             complete = true;
@@ -223,22 +237,50 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<TaxonNode>
                    preFillTaxonName();
                }
 
-           multiLanguageTextStatusNotes = formFactory.createMultiLanguageTextElement(formElement, STATUS_NOTES, null, 50, style);
+           multiLanguageTextPlacementNotes = formFactory.createMultiLanguageTextElement(formElement, STATUS_PLACEMENT, null, 50, style);
            if (!isCreateNew()){
-               multiLanguageTextStatusNotes.setMultilanguageText(entity.getStatusNote());
-               multiLanguageTextStatusNotes.setEnabled(entity.getStatus() != null);
+               multiLanguageTextPlacementNotes.setMultilanguageText(entity.getStatusNote());
+//             multiLanguageTextStatusNotes.setEnabled(entity.getStatus() != null);
            }
+           multiLanguageTextPlacementNotes.setIndent(10);
+           singleSourceSection = formFactory.createOriginalSourceElement(formElement, entity, "");
+        if (isCreateNew() || entity.getSource() == null){
+            NamedSource source = NamedSource.NewPrimarySourceInstance(null, null);
+            entity.setSource(source);
+            singleSourceSection.setEntity(source);
+        }else{
+            singleSourceSection.setEntity(entity.getSource());
 
-               if (!isCreateNew()){
-                   selectionNodeAgentRelation = formFactory.createTaxonNodeAgentRelationCollectionSection(formElement, getConversationHolder(), StoreUtil.getSectionStyle(TaxonNodeAgentRelationCollectionSection.class, entity.getClass().getCanonicalName()));
-                   selectionNodeAgentRelation.setEntity(entity);
-                   selectionNodeAgentRelation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-               }
+        }
+        singleSourceSection.setIndent(10);
+
+           setSourceLabel(Messages.TaxonNodeWizardPage_PLACEMENT_SOURCE);
+
+               selectionNodeAgentRelation = formFactory.createTaxonNodeAgentRelationCollectionSection(formElement, StoreUtil.getSectionStyle(TaxonNodeAgentRelationCollectionSection.class, entity.getClass().getCanonicalName()));
+               selectionNodeAgentRelation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        selectionNodeAgentRelation.setEntity(entity);
+        selectionNodeAgentRelation.setIndent(10);
+        selectionNodeAgentRelation.setFont(AbstractUtility.getFont(Resources.COLOR_FONT_DEFAULT));
+        setBackground(getPersistentBackground());
        }
 
+    private void setDefaultPublish() {
+        if (defaultPublish != null && defaultPublish.equals(PublishEnum.Publish.getKey())){
+            checkbox_publish.setSelection(true);
+        } else if (defaultPublish != null && defaultPublish.equals(PublishEnum.NotPublish.getKey())){
+            checkbox_publish.setSelection(false);
+        }else{
+            if(this.getParentTreeNode() != null &&  this.getParentTreeNode().isInstanceOf(TaxonNode.class) && this.getParentTreeNode().getTaxon() != null){
+                checkbox_publish.setSelection(this.getParentTreeNode().getTaxon().isPublish());
+            }else{
+                checkbox_publish.setSelection(true);
+            }
+        }
+    }
+
        private void preFillTaxonName() {
         TaxonNode node = parentNode;
-        if(node.getTaxon()!=null){
+        if(node != null && node.getTaxon()!=null){
             Taxon taxon = HibernateProxyHelper.deproxy(node.getTaxon(), Taxon.class);
             if(taxon.getName()!=null){
                 TaxonName name = HibernateProxyHelper.deproxy(node.getTaxon().getName());
@@ -272,23 +314,39 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<TaxonNode>
                    if (selection_reuseExistingTaxon.getEntity() != null){
                        setTaxon(selection_reuseExistingTaxon.getEntity());
                        if (getTaxon().getSec()!= null){
+                           microReference.setText(getTaxon().getSecMicroReference());
                            if (isCreateNew()){
                               selection_SecRef.setEntity(getTaxon().getSec());
+
                            }else{
                               textTaxonSec.setText((getTaxon().getSec().getTitleCache()));
                            }
                        }else{
+                           microReference.setText("");
                            if (isCreateNew()){
-                              selection_SecRef.setEntity(null);
+                                   selection_SecRef.setEntity(null);
+
                            }else{
                               textTaxonSec.setText("");
                            }
                        }
-                       checkbox_publish.setSelected(getTaxon().isPublish());
+                       if (checkbox_publish != null){
+                           checkbox_publish.setSelection(getTaxon().isPublish());
+                       }
+            }else{
+                if (isCreateNew()){
+                    selection_SecRef.setEntity(null);
+                }else{
+                    textTaxonSec.setText(null);
+                }
+                setDefaultPublish();
             }
                    boolean enabled = selection_reuseExistingTaxon.getEntity() == null;
                    if (selection_reuseExistingName != null){
                        selection_reuseExistingName.setEnabled(enabled);
+            }
+                   if (selection_SecRef != null){
+                       selection_SecRef.setEnabled(enabled);
             }
                    if (textNewTaxonName != null){
                        textNewTaxonName.setEnabled(enabled);
@@ -301,61 +359,47 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<TaxonNode>
                            selection_reuseExistingTaxon.setEnabled(enabled);
                        }
                        textNewTaxonName.setEnabled(enabled);
-                       complete = !textNewTaxonName.getText().isEmpty();
-               }
-
-        if (eventSource == selection_Ref) {
-            if(!isCreateNew()){
-                getEntity().setReference(selection_Ref.getEntity());
-            }
-        }else if (eventSource == selection_SecRef) {
-            if (taxon != null){
-                taxon.setSec(selection_SecRef.getEntity());
-            }
-        }else if (eventSource == microReference) {
-            if(!isCreateNew()){
-                getEntity().setMicroReference(microReference.getText());
-            }
-        }  else if (eventSource == checkbox_publish) {
-            if (taxon != null){
-                taxon.setPublish(checkbox_publish.getSelection());
-            }
+                       if (textNewTaxonName.getText() != null){
+                           complete = !textNewTaxonName.getText().isEmpty();
+                       }else {
+                           complete = false;
+                       }
         }
 
                if (eventSource == combo_status) {
             status = combo_status.getSelection();
-            if (status == null){
-                if (multiLanguageTextStatusNotes.getMultilanguageText() != null && !multiLanguageTextStatusNotes.getMultilanguageText().isEmpty()){
-                    multilanguageTextCache = new HashMap<>();
-                    for (LanguageString langString: multiLanguageTextStatusNotes.getMultilanguageText().values()){
-                        multilanguageTextCache.put(langString.getLanguage(), langString);
-                    }
-//                    multilanguageTextCache = multiLanguageTextStatusNotes.getMultilanguageText();
-                }
-                multiLanguageTextStatusNotes.setMultilanguageText(new HashMap<>());
-//                multiLanguageTextStatusNotes.refresh();
-
-            }else if (multilanguageTextCache != null ){
-
-                multiLanguageTextStatusNotes.setMultilanguageText(multilanguageTextCache);
-                multilanguageTextCache = null;
-            }
+//            if (status == null){
+//                if (multiLanguageTextStatusNotes.getMultilanguageText() != null && !multiLanguageTextStatusNotes.getMultilanguageText().isEmpty()){
+//                    multilanguageTextCache = new HashMap<>();
+//                    for (LanguageString langString: multiLanguageTextStatusNotes.getMultilanguageText().values()){
+//                        multilanguageTextCache.put(langString.getLanguage(), langString);
+//                    }
+////                    multilanguageTextCache = multiLanguageTextStatusNotes.getMultilanguageText();
+//                }
+//                multiLanguageTextStatusNotes.setMultilanguageText(new HashMap<>());
+////                multiLanguageTextStatusNotes.refresh();
+//
+//            }else if (multilanguageTextCache != null ){
+//
+//                multiLanguageTextStatusNotes.setMultilanguageText(multilanguageTextCache);
+//                multilanguageTextCache = null;
+//            }
             if (!isCreateNew()){
                 getEntity().setStatus(status);
-                if (status == null){
-                    getEntity().getStatusNote().clear();
-                    multiLanguageTextStatusNotes.setMultilanguageText(new HashMap<>());
-                    multiLanguageTextStatusNotes.refresh();
-                }else{
-                    if (multiLanguageTextStatusNotes.getMultilanguageText() != null){
-                        for (LanguageString lang:multiLanguageTextStatusNotes.getMultilanguageText().values()){
-                            getEntity().putStatusNote(lang);
-                        }
-                    }
-                }
+//                if (status == null){
+//                    getEntity().getStatusNote().clear();
+//                    multiLanguageTextStatusNotes.setMultilanguageText(new HashMap<>());
+//                    multiLanguageTextStatusNotes.refresh();
+//                }else{
+//                    if (multiLanguageTextStatusNotes.getMultilanguageText() != null){
+//                        for (LanguageString lang:multiLanguageTextStatusNotes.getMultilanguageText().values()){
+//                            getEntity().putStatusNote(lang);
+//                        }
+//                    }
+//                }
             }
 
-            multiLanguageTextStatusNotes.setEnabled(status != null);
+//            multiLanguageTextStatusNotes.setEnabled(status != null);
 
             complete = true;
         }
@@ -439,6 +483,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<TaxonNode>
                if (!isCreateNew()){
                    getEntity().setTaxon(taxon);
                }
+
                this.set_publish(taxon.isPublish());
                if (isCreateNew()){
                    textNewTaxonName.setText(taxon.getName().getTitleCache());
@@ -460,17 +505,16 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<TaxonNode>
                        }
                }
                if (taxonName != null){
-                   taxon = Taxon.NewInstance(taxonName, secundum);
-                   if (textNewTaxonName.getText() == null || !taxonName.getTitleCache().trim().equals(textNewTaxonName.getText().trim())){
-                        textNewTaxonName.setText(taxonName.getTitleCache());
-                   }
-                   if (!isCreateNew()){
-                       getEntity().setTaxon(taxon);
-                   }
+                   textNewTaxonName.setText(taxonName.getTitleCache());
+               }else{
+                   textNewTaxonName.setText("");
+                   if (selection_reuseExistingTaxon != null){
+                selection_reuseExistingTaxon.setEnabled(true);
+            }
+            textNewTaxonName.setEnabled(true);
 
-               } else {
-                   textNewTaxonName.setText(null);
                }
+
        }
 
        public String getTaxonName() {
@@ -513,7 +557,9 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<TaxonNode>
     }
 
     public void set_publish(boolean publish) {
-        this.checkbox_publish.setSelection(publish);
+        if (checkbox_publish != null){
+            this.checkbox_publish.setSelection(publish);
+        }
     }
 
     /**
@@ -529,4 +575,37 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<TaxonNode>
         }
         updateControlStates();
     }
+
+    @Override
+    public SelectionArbitrator getSelectionArbitrator() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+       @Override
+       public void fillFields() {
+               if (getEntity()!= null) {
+                       if (selection_parentTaxonNode!= null) {
+                               selection_parentTaxonNode.setEntity(getEntity().getParent());
+                       }
+                       if (selection_reuseExistingTaxon != null) {
+                               selection_reuseExistingTaxon.setEntity(getEntity().getTaxon());
+                       }
+                       if (selection_reuseExistingName!= null) {
+                               selection_reuseExistingName.setEntity(getEntity().getTaxon() != null?getEntity().getTaxon().getName(): null);
+                       }
+                       if (selection_SecRef != null) {
+                               selection_SecRef.setEntity(getEntity().getTaxon() != null?getEntity().getTaxon().getSec(): null);
+                       }else {
+                               textTaxonSec.setText(getEntity().getTaxon() != null?getEntity().getTaxon().getSec().getTitle():null);
+                       }
+                       microReference.setText(getEntity().getTaxon() != null? getEntity().getTaxon().getSecMicroReference(): null);
+                       textNewTaxonName.setText(getEntity().getTaxon() != null? getEntity().getTaxon().getName().getTitleCache():null);
+                       selectionNodeAgentRelation.setEntity(getEntity());
+                       combo_status.setSelection(getEntity().getStatus());
+                       this.set_publish(taxon.isPublish());
+                       multiLanguageTextPlacementNotes.setMultilanguageText(getEntity().getStatusNote());
+               }
+               
+       }
 }
index 5b91134c49b6bc00b730788fbb6d501434d1ce03..ce4d4fa1017e1e3b35fbe04079b35dd87e6d038e 100644 (file)
@@ -11,7 +11,6 @@ package eu.etaxonomy.taxeditor.ui.section.classification;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -31,21 +30,16 @@ public class TaxonNodeDetailSection extends AbstractCdmDetailSection<TaxonNode>
         * <p>Constructor for TaxonNodeDetailSection.</p>
         *
         * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
         * @param style a int.
         */
        public TaxonNodeDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-        */
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return null;
index aa8702c634300d2f9d39aabc77a56a027057ec28..45b3e198757abd9e3e63d1327ded512151fb4498 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.classification;
 
 import java.util.UUID;
@@ -16,9 +15,9 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Listener;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.dto.CreateTaxonDTO;
 import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.newWizard.IWizardPageListener;
@@ -29,10 +28,6 @@ import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 /**
- * <p>
- * TaxonNodeWizardPage class.
- * </p>
- *
  * @author n.hoffmann
  * @created Sep 15, 2009
  */
@@ -41,25 +36,9 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<TaxonNode>
     private final IWizardPageListener wizardPageListener;
     private final boolean isCreateNew;
 
-
-    /**
-        * <p>
-        * Constructor for TaxonNodeWizardPage.
-        * </p>
-        *
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param conversation
-        *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-        *            object.
-        * @param entity
-        *            a {@link eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode} object.
-     * @param closeOnEnterListener
-        */
        public TaxonNodeWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, TaxonNode entity, IWizardPageListener closeOnEnterListener, boolean isCreateNew) {
-               super(formFactory, conversation, entity);
+                       TaxonNode entity, IWizardPageListener closeOnEnterListener, boolean isCreateNew) {
+               super(formFactory, entity);
                this.wizardPageListener = closeOnEnterListener;
 
                if (isCreateNew){
@@ -68,18 +47,18 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<TaxonNode>
                    setTitle(Messages.TaxonNodeWizardPage_edit);
                }
                this.isCreateNew = isCreateNew;
-
-
        }
 
        @Override
        public TaxonNodeDetailElement createElement(ICdmFormElement rootElement) {
            TaxonNodeDetailElement detailElement = formFactory.createTaxonNodeDetailElement(rootElement, this.isCreateNew);
-               if (isCreateNew){
+
+           if (isCreateNew){
                    detailElement.setParentTreeNode(((NewTaxonNodeWizard)getWizard()).getParentEntity());
                }else{
                    detailElement.setEntity(entity);
                }
+//         detailElement.setPersistentBackground(Abstrac);;
 
                formFactory.addPropertyChangeListener(this);
 //             if (isCreateNew){
@@ -128,10 +107,13 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<TaxonNode>
        public CreateTaxonDTO createTaxon() {
 
            UUID nameUuid = null;
+           UUID taxonUuid = null;
            String taxonNameString = null;
            if (((TaxonNodeDetailElement) getDetailElement()).getExistingName() != null){
                nameUuid = ((TaxonNodeDetailElement) getDetailElement()).getExistingName().getUuid();
-           }else{
+           }else if (((TaxonNodeDetailElement) getDetailElement()).getTaxon() != null){
+               taxonUuid = ((TaxonNodeDetailElement) getDetailElement()).getTaxon().getUuid();
+           }else {
                taxonNameString = ((TaxonNodeDetailElement) getDetailElement()).getTaxonName();
            }
 
@@ -140,10 +122,15 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<TaxonNode>
                secUuid = ((TaxonNodeDetailElement) getDetailElement()).getSecReference().getUuid();
            }
            boolean isPublish = ((TaxonNodeDetailElement) getDetailElement()).is_publish();
-
-
-           CreateTaxonDTO createDto = new CreateTaxonDTO(nameUuid, secUuid,null,false, null,isPublish,
+           String secMicroReference = ((TaxonNodeDetailElement) getDetailElement()).getMicroReference();
+           CreateTaxonDTO createDto = null;
+           if (taxonUuid != null){
+               createDto = new CreateTaxonDTO(taxonUuid, false, null,isPublish,
+                       taxonNameString, PreferencesUtil.getPreferredNomenclaturalCode(), null);
+           }else{
+               createDto = new CreateTaxonDTO(nameUuid, secUuid, secMicroReference,false, null,isPublish,
                    taxonNameString, PreferencesUtil.getPreferredNomenclaturalCode(), null);
+           }
 
         return createDto;
        }
@@ -152,6 +139,10 @@ public class TaxonNodeWizardPage extends AbstractCdmEntityWizardPage<TaxonNode>
           return ((TaxonNodeDetailElement) getDetailElement()).getEntity();
        }
 
+       public Taxon getExistingTaxon(){
+              return ((TaxonNodeDetailElement) getDetailElement()).getTaxon();
+           }
+
        @Override
        public void dispose() {
                formFactory.removePropertyChangeListener(this);
index 07facf3c2850f3866ca4bf26c40abc6de5ed1f1d..42eaa5c321c77ad022c20ee04ecd509fe8ce2c8e 100755 (executable)
@@ -8,11 +8,10 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.common;
 
+import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.media.ExternalLink;
-import eu.etaxonomy.cdm.model.media.ExternalLinkType;
-import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -29,11 +28,11 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
  */
 public class ExternalLinksElement extends AbstractEntityCollectionElement<ExternalLink> implements ISelectableElement{
 
-    private final SelectionArbitrator selectionArbitrator;
+    private SelectionArbitrator selectionArbitrator;
 
     private UriWithLabelElement externalLinkUriText;
-    private EnumComboElement<ExternalLinkType> combo_linkType;
     private MultilanguageTextElement description;
+    private boolean isShowDescription = true;
 
 
 
@@ -47,7 +46,29 @@ public class ExternalLinksElement extends AbstractEntityCollectionElement<Extern
     public ExternalLinksElement(CdmFormFactory formFactory, AbstractFormSection section, ExternalLink entity,
             SelectionListener removeListener, int style) {
         super(formFactory, section, entity, removeListener, null, style);
-        selectionArbitrator = formFactory.createSelectionArbitrator(this);
+        if(formFactory.getSelectionProvider() != null){
+            selectionArbitrator = formFactory.createSelectionArbitrator(this);
+        }
+
+    }
+
+    /**
+     * @param formFactory
+     * @param section
+     * @param entity
+     * @param removeListener
+     * @param style
+     */
+    public ExternalLinksElement(CdmFormFactory formFactory, AbstractFormSection section, ExternalLink entity, boolean isWithTypeAndDesc,
+            SelectionListener removeListener, int style) {
+        super(formFactory, section, entity, removeListener, null, style);
+        if(formFactory.getSelectionProvider() != null){
+            selectionArbitrator = formFactory.createSelectionArbitrator(this);
+        }
+        this.isShowDescription = isWithTypeAndDesc;
+        setEntity(entity);
+
+
     }
 
     @Override
@@ -58,37 +79,33 @@ public class ExternalLinksElement extends AbstractEntityCollectionElement<Extern
 
     @Override
     public void setEntity(ExternalLink entity) {
-        if (entity.getUri() != null){
-            externalLinkUriText.setText(entity.getUri().toString());
-        }
-        if (entity.getLinkType() != null){
-            combo_linkType.setSelection(entity.getLinkType());
-        }
-        if (entity.getDescription() != null) {
-            description.setMultilanguageText(entity.getDescription());
-//            description.setText(entity.getDescription().get(
-//                        CdmStore.getDefaultLanguage()).getText());
-        }
+       this.entity = entity;
+       if (externalLinkUriText != null){
+               if (entity.getUri() != null){
+                   externalLinkUriText.setText(entity.getUri().toString());
+               }
+       
+               if (entity.getDescription() != null && isShowDescription) {
+                   if (description == null){
+                       description = formFactory.createMultiLanguageTextElement(this, "Description", null, 50, SWT.NULL);
+                   }
+                   description.setMultilanguageText(entity.getDescription());
+               }
+       }
     }
 
     @Override
     public void createControls(ICdmFormElement element, int style) {
-
-        combo_linkType = formFactory.createEnumComboElement(ExternalLinkType.class, element, style);
         externalLinkUriText = formFactory.createUriWithLabelElement(element, "URI", null,  style);
-
-       // description = formFactory.createMultiLineTextWithLabel(this, "Description", 50, SWT.WRAP);
-        description = formFactory.createMultiLanguageTextElement(element, "Description", null, 50, style);
-
-
+        if(isShowDescription){
+            description = formFactory.createMultiLanguageTextElement(element, "Description", null, 50, style);
+        }
     }
 
     @Override
     public void handleEvent(Object eventSource) {
         if (eventSource.equals(externalLinkUriText)){
             getEntity().setUri(externalLinkUriText.parseText());
-        }else if (eventSource.equals(combo_linkType)){
-            getEntity().setLinkType(combo_linkType.getSelection());
         }else if (eventSource.equals(description)){
             description.getMultilanguageText().values()
             .forEach(languageString -> getEntity().putDescription(languageString));
index c1b0aeacb696299cfb03afbcc103184db97540bf..e2746bf3f27eae5eb3219754ef9918ce7e5ca486 100755 (executable)
@@ -11,10 +11,12 @@ package eu.etaxonomy.taxeditor.ui.section.common;
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.reference.OriginalSourceBase;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.model.media.ExternalLink;
 import eu.etaxonomy.cdm.model.media.ExternalLinkType;
+import eu.etaxonomy.cdm.model.reference.OriginalSourceBase;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
@@ -22,57 +24,43 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 /**
  * @author k.luther
  * @since 23.08.2018
- *
  */
 public class ExternalLinksSection extends AbstractEntityCollectionSection<OriginalSourceBase, ExternalLink> {
 
+    private String emptySectionString = "No external link yet.";
 
+    private boolean isShowDescription = true;
 
-    /**
-     * @param formFactory
-     * @param formElement
-     */
-    public ExternalLinksSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-        super(cdmFormFactory, conversation, parentElement, "External Links", style);
-
+    public ExternalLinksSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, int style) {
+        super(cdmFormFactory, parentElement, "External Links", style);
     }
 
+    public ExternalLinksSection(CdmFormFactory cdmFormFactory,
+            ICdmFormElement parentElement, boolean isAdvanced, String string, int style) {
+        super(cdmFormFactory, parentElement, string, style);
+        this.isShowDescription = isAdvanced;
+    }
 
     @Override
+    //TODO think about moving to cdmlib
     public Comparator<ExternalLink> getComparator() {
-        return new Comparator<ExternalLink>(){
-
-            @Override
-            public int compare(ExternalLink o1, ExternalLink o2) {
-                if (o1 == o2){
-                    return 0;
-                }
-                if (o1 == null){
-                    return -1;
+        return (o1, o2)-> {
+            URI uri1 = o1 == null? null: o1.getUri();
+            URI uri2 = o2 == null? null: o2.getUri();
 
-                }
-                if (o2== null){
-                    return 1;
-                }
-                if (o1.getUri() == o1.getUri()){
+                if (uri1 == uri2){
                     return 0;
                 }
-                if (o1.getUri() == null){
+                if (uri1 == null){
                     return -1;
                 }
-                if (o2.getUri() == null){
+                if (uri2 == null){
                     return 1;
                 }
-               return o1.getUri().toString().compareTo(o2.getUri().toString());
-
-            }
-
-      };
-
+                return uri1.toString().compareTo(uri2.toString());
+        };
     }
 
-
-
     @Override
     public Collection<ExternalLink> getCollection(OriginalSourceBase entity) {
         if (entity != null){
@@ -80,7 +68,6 @@ public class ExternalLinksSection extends AbstractEntityCollectionSection<Origin
         } else {
             return null;
         }
-
     }
 
     @Override
@@ -92,7 +79,6 @@ public class ExternalLinksSection extends AbstractEntityCollectionSection<Origin
     @Override
     public void addElement(ExternalLink element) {
         getEntity().addLink(element);
-
     }
 
     @Override
@@ -108,18 +94,37 @@ public class ExternalLinksSection extends AbstractEntityCollectionSection<Origin
     @Override
     public void removeElement(ExternalLink element) {
         getEntity().removeLink(element);
-
     }
 
     @Override
     public String getEmptyString() {
-        return "No external link yet.";
+        return emptySectionString;
     }
 
-
     @Override
     protected String getTooltipString() {
         return null;
     }
 
-}
+    public void setEmptySectionString(String emptySectionString) {
+        this.emptySectionString = emptySectionString;
+    }
+
+    public void setIndent(int indent) {
+       TableWrapData tableWrapData = (TableWrapData)this.getLayoutData();
+       if (tableWrapData == null){
+           tableWrapData = new TableWrapData();
+       }
+       tableWrapData.indent = indent;
+       this.setLayoutData(tableWrapData);
+       getLayoutComposite().layout();
+    }
+
+    public boolean isAdvanced() {
+        return isShowDescription;
+    }
+
+    public void setAdvanced(boolean isAdvanced) {
+        this.isShowDescription = isAdvanced;
+    }
+}
\ No newline at end of file
index 1e1df2edc4428cc86977b710052836d39f0160d5..ce28c85e2785a3b62415f1d19d3b19f0f3f98247 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.common;
 
-import eu.etaxonomy.cdm.model.common.ReferencedEntityBase;
+import eu.etaxonomy.cdm.model.common.SingleSourcedEntityBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -19,9 +19,8 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author n.hoffmann
  * @date Dec 1, 2011
- *
  */
-public class ReferenceEntityDetailElement extends AbstractCdmDetailElement<ReferencedEntityBase>{
+public class ReferenceEntityDetailElement extends AbstractCdmDetailElement<SingleSourcedEntityBase>{
 
        private EntitySelectionElement<Reference> selection_reference;
        private TextWithLabelElement text_referenceDetail;
@@ -33,9 +32,9 @@ public class ReferenceEntityDetailElement extends AbstractCdmDetailElement<Refer
 
        @Override
        protected void createControls(ICdmFormElement formElement,
-                       ReferencedEntityBase entity, int style) {
+                       SingleSourcedEntityBase entity, int style) {
                selection_reference = formFactory
-                               .createSelectionElement(Reference.class,//getConversationHolder(),
+                               .createSelectionElement(Reference.class,
                                                 formElement, "Reference",
                                                entity.getCitation(),
                                                EntitySelectionElement.ALL, style);
@@ -54,4 +53,11 @@ public class ReferenceEntityDetailElement extends AbstractCdmDetailElement<Refer
                }
        }
 
+       @Override
+       public void fillFields() {
+               selection_reference.setEntity(getEntity().getCitation());
+               text_referenceDetail.setText(getEntity().getCitationMicroReference());
+               
+       }
+
 }
index 29434442a6e9a42b9d861eef5dc04e22827fe9a4..6c4c9a25fc9358ae7915fb39e8cc34a717b1414e 100644 (file)
@@ -10,8 +10,7 @@ package eu.etaxonomy.taxeditor.ui.section.common;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.common.ReferencedEntityBase;
+import eu.etaxonomy.cdm.model.common.SingleSourcedEntityBase;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -20,14 +19,13 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author n.hoffmann
  * @date Dec 1, 2011
- *
  */
-public class ReferencedEntityDetailSection extends AbstractCdmDetailSection<ReferencedEntityBase>{
+public class ReferencedEntityDetailSection extends AbstractCdmDetailSection<SingleSourcedEntityBase>{
 
        public ReferencedEntityDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
        @Override
@@ -35,12 +33,8 @@ public class ReferencedEntityDetailSection extends AbstractCdmDetailSection<Refe
                return "Reference";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
-       protected AbstractCdmDetailElement<ReferencedEntityBase> createCdmDetailElement(AbstractCdmDetailSection<ReferencedEntityBase> parentElement, int style) {
+       protected AbstractCdmDetailElement<SingleSourcedEntityBase> createCdmDetailElement(AbstractCdmDetailSection<SingleSourcedEntityBase> parentElement, int style) {
            return formFactory.createReferenceEntityDetailElement(parentElement);
        }
-
 }
index 8d397d91b682f8aae958c1453e159aa503ef62d0..c21441ed87d8a7f223fb8b53ca20d16287d57010 100755 (executable)
@@ -22,24 +22,14 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
  */
 public class CommonNameSourceElement extends DescriptionElementSourceElement {
 
-    /**
-     * @param cdmFormFactory
-     * @param formElement
-     * @param element
-     * @param removeListener
-     * @param style
-     */
     public CommonNameSourceElement(CdmFormFactory cdmFormFactory, AbstractFormSection<?> formElement,
             DescriptionElementSource element, SelectionListener removeListener, int style) {
         super(cdmFormFactory, formElement, element, removeListener, style, true);
-
     }
 
     @Override
     public void createControls(ICdmFormElement formElement, int style) {
         this.isCommonNameReference = true;
         super.createControls(formElement, style);
-
     }
-
-}
+}
\ No newline at end of file
index cad5a2fbf8654658e30f187a817d1ed39dbe2bc8..57a6fb0a149581dbeddae0626c980b5a5a1ef18d 100644 (file)
@@ -70,7 +70,7 @@ public class DerivedUnitElement extends
        @Override
        public void createControls(ICdmFormElement element, int style) {
                selection_derivedUnit = formFactory.createSelectionElement(
-                               DerivedUnit.class, //getConversationHolder(),
+                               DerivedUnit.class,
                                element, "Specimen", null,
                                EntitySelectionElement.SELECTABLE | EntitySelectionElement.EDITABLE,
                                style);
index 3000986c6e119c80bd48192f8d3ea4e6d70e758c..eb9102b65403a19e4f7be26f1a5a5efac7072ace 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 java.util.ArrayList;
@@ -14,7 +13,6 @@ import java.util.Collection;
 import java.util.Comparator;
 import java.util.List;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
@@ -25,29 +23,17 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
- * <p>DescribedSpecimenSection class.</p>
- *
  * @author n.hoffmann
  * @created Sep 16, 2010
- * @version 1.0
  */
 public class DescribedSpecimenSection extends AbstractEntityCollectionSection<TaxonDescription, SpecimenOrObservationBase> {
 
-       /**
-        * <p>Constructor for DescribedSpecimenSection.</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 style a int.
-        */
        public DescribedSpecimenSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        int style) {
-               super(formFactory, conversation, parentElement, "Described Specimen", style);
+               super(formFactory, parentElement, "Described Specimen", style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public Collection<SpecimenOrObservationBase> getCollection(
                        TaxonDescription entity) {
@@ -65,51 +51,40 @@ public class DescribedSpecimenSection extends AbstractEntityCollectionSection<Ta
         return new DefaultCdmBaseComparator<>();
     }
 
-       /** {@inheritDoc} */
        @Override
        public SpecimenOrObservationBase createNewElement() {
-               DerivedUnit selection = DerivedUnitSelectionDialog.select(getShell(), //getConversationHolder(),
+               DerivedUnit selection = DerivedUnitSelectionDialog.select(getShell(),
                        null);
                return selection;
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addElement(SpecimenOrObservationBase element) {
                getEntity().setDescribedSpecimenOrObservation(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElement(SpecimenOrObservationBase element) {
                getEntity().setDescribedSpecimenOrObservation(null);
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No described specimen yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Add a described specimen.";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public SpecimenOrObservationBase addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-}
+}
\ No newline at end of file
index 4e31b96d2002ee7363c50f7d03dca1fa5f8d1ecf..c0025bddf7205a01ca74f6a646a0164b7c782095 100644 (file)
@@ -6,10 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.description;
 
-import java.util.Arrays;
+import java.util.Collection;
 import java.util.stream.Collectors;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
@@ -17,7 +16,9 @@ import org.eclipse.jface.util.PropertyChangeEvent;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionType;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
 
@@ -26,42 +27,59 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement
  *
  * @author n.hoffmann
  * @created Mar 5, 2010
- * @version 1.0
  */
-public class DescriptionDetailElement extends AbstractIdentifiableEntityDetailElement<DescriptionBase> {
+public class DescriptionDetailElement
+        extends AbstractIdentifiableEntityDetailElement<DescriptionBase<?>> {
 
 //     private EntitySelectionElement<FeatureTree> selection_featureTree;
     private TextWithLabelElement txtDescriptionTypes;
+    private CheckboxElement isPublish;
 
        public DescriptionDetailElement(CdmFormFactory cdmFormFactory,
                        ICdmFormElement formElement, int style) {
                super(cdmFormFactory, formElement);
+
        }
 
        @Override
        protected void createControls(ICdmFormElement formElement, DescriptionBase entity, int style) {
-        toggleable_cache = formFactory.createToggleableTextField(this, "Label", entity.getTitleCache(), entity.isProtectedTitleCache(), style);
+        toggleable_cache = formFactory.createToggleableTextField(this, "Label",
+                entity.getTitleCache(), entity.isProtectedTitleCache(), style);
+
                // TODO I initially thought that we can handle the entity's descriptive system with a feature tree
                // Since descriptiveSystem is a Set of Features that are present or allowed for the current description,
                // it is similar to a FeatureTree (you can get this information from a feature tree) but not the same.
                // Please correct this once it is clear what descriptive system will be used for in CDM
-//             selection_featureTree = formFactory.createSelectionElement(FeatureTree.class, getConversationHolder(), formElement, "Feature Tree", null, EntitySelectionElement.ALL, style);
+//             selection_featureTree = formFactory.createSelectionElement(FeatureTree.class, formElement, "Feature Tree", null, EntitySelectionElement.ALL, style);
 
         Object typesString = entity.getTypes().stream().filter(type->type instanceof DescriptionType)
-        .map(type->((DescriptionType)type).getMessage())
-        .collect(Collectors.joining(","));
+                       .map(type->((DescriptionType)type).getLabel())
+                       .collect(Collectors.joining(","));
         txtDescriptionTypes = formFactory.createTextWithLabelElement(formElement, "Types", typesString, style);
         txtDescriptionTypes.setEnabled(false);
+        isPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
+       
        }
 
-    @Override
-    protected void updateContent() {
-        super.updateContent();
-        toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
-        setIrrelevant(toggleable_cache.getState(),
-                Arrays.asList(new Object[] { txtDescriptionTypes, toggleable_cache}));
+       @Override
+    public void setEnabled(boolean enabled, Collection<Object> except) {
+        this.enabled = enabled;
+        for (ICdmFormElement element : getElements()) {
+            if (element instanceof IEnableableFormElement) {
+                IEnableableFormElement enableableElement = (IEnableableFormElement) element;
+                enableableElement.setEnabled(enabled);
+//                if (enableableElement instanceof ToggleableTextElement){
+//                    ToggleableTextElement toggle = (ToggleableTextElement)enableableElement;
+//                    toggle.getBtnToggleProtectTitleCache().setEnabled(enabled);
+//                }
+
+            }
+        }
+        txtDescriptionTypes.setEnabled(false);
     }
 
+
+
     @Override
     protected void handleTitleCacheRelevantChange(PropertyChangeEvent event) {
         if(!getEntity().isProtectedTitleCache()){
@@ -74,8 +92,17 @@ public class DescriptionDetailElement extends AbstractIdentifiableEntityDetailEl
        @Override
        public void handleEvent(Object eventSource) {
         if (eventSource == toggleable_cache) {
+            if (!this.enabled){
+                return;
+            }
             getEntity().setTitleCache(toggleable_cache.getText(), toggleable_cache.getState());
-            setIrrelevant(toggleable_cache.getState(), Arrays.asList(new Object[] { toggleable_cache }));
+            updateCacheRelevance();
         }
+        if (eventSource == isPublish) {
+            getEntity().setPublish(isPublish.getSelection());
+        }
+       
        }
-}
+
+
+}
\ No newline at end of file
index 43e51f3457418657d9776cc8061cbfa19a5d490a..36a0a115f47b5d7f0a8e04dd8b02dd8e7ed562a3 100644 (file)
@@ -6,53 +6,45 @@
 * 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.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
 /**
- * <p>DescriptionDetailSection class.</p>
- *
  * @author n.hoffmann
  * @created Mar 5, 2010
- * @version 1.0
  */
-public class DescriptionDetailSection extends AbstractCdmDetailSection<DescriptionBase> {
-
-       /**
-        * <p>Constructor for DescriptionDetailSection.</p>
-        *
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-        * @param style a int.
-        */
-       public DescriptionDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
-                       ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
-               super(cdmFormFactory, conversation, parentElement, selectionProvider, style);
+public class DescriptionDetailSection extends AbstractCdmDetailSection<DescriptionBase<?>> {
 
+       public DescriptionDetailSection(CdmFormFactory cdmFormFactory,
+                       ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
+               super(cdmFormFactory, parentElement, selectionProvider, style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return "Description";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
-       protected AbstractCdmDetailElement<DescriptionBase> createCdmDetailElement(AbstractCdmDetailSection<DescriptionBase> parentElement, int style) {
+       protected AbstractCdmDetailElement<DescriptionBase<?>> createCdmDetailElement(AbstractCdmDetailSection<DescriptionBase<?>> parentElement, int style) {
            return formFactory.createDescriptionDetailElement(parentElement, style);
        }
-}
+
+       @Override
+    public void setEntity(DescriptionBase<?> entity) {
+           super.setEntity(entity);
+
+           if ((entity.isComputed() || entity.isCloneForSource())&& PreferencesUtil.isComputedDesciptionHandlingDisabled()){
+               setEnabled(false);
+               this.getDetailElement().setEnabled(false);
+           }
+       }
+}
\ No newline at end of file
index cf6ec295ceb98993726c226418765e7c27938c66..0d99764aa1cf61f7fbbfa8f8b5ac7567d38c39f1 100644 (file)
@@ -1,17 +1,25 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
 package eu.etaxonomy.taxeditor.ui.section.description;
 
+import java.util.ArrayList;
+import java.util.Collection;
+
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.Distribution;
+import eu.etaxonomy.taxeditor.editor.IDistributionEditorPart;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
@@ -35,16 +43,40 @@ public class DescriptionElementDetailElement extends
                        ICdmFormElement formElement, int style) {
                super(cdmFormFactory, formElement);
        }
-       
+
        /** {@inheritDoc} */
        @Override
        protected void createControls(ICdmFormElement formElement, DescriptionElementBase entity, int style) {
+       
+               setEnabled(!((getEntity().getInDescription() != null && (getEntity().getInDescription().isComputed() || getEntity().getInDescription().isCloneForSource())&& PreferencesUtil.isComputedDesciptionHandlingDisabled()) || (getEntity() instanceof Distribution && AbstractUtility.getActivePart() instanceof IDistributionEditorPart)));
                formFactory.createDetailedDescriptionDetailElement(formElement, entity, style, isEnabled());
        }
-       
+
        /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
+
+       }
+
+       @Override
+    protected void updateControlStates(){
+        Collection<Object> except = new ArrayList<Object>();
+        for(ICdmFormElement formElement:getElements()){
+            if(formElement instanceof IEnableableFormElement && !((IEnableableFormElement) formElement).isEnabled()){
+                except.add(formElement);
+            }
+        }
+        if ((getEntity().getInDescription() != null && (getEntity().getInDescription().isComputed() || getEntity().getInDescription().isCloneForSource())&& PreferencesUtil.isComputedDesciptionHandlingDisabled()) || (getEntity() instanceof Distribution && AbstractUtility.getActivePart() instanceof IDistributionEditorPart)){
+            enabled = false;
+         }else{
+            enabled = true;
+        }
+        setEnabled(enabled, except);
+    }
+
+       @Override
+       public void fillFields() {
+               // TODO actually not used
                
        }
 }
index 92084153f2e0f656e922cfaf9cc519999575003b..502189a1434d4e88a305e219f381af6b63db99a5 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.e4.ui.di.UISynchronize;
@@ -18,12 +17,12 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Control;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.TextData;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -38,28 +37,16 @@ import eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4;
  *
  * @author n.hoffmann
  * @created Mar 5, 2010
- * @version 1.0
  */
 public class DescriptionElementDetailSection extends
                AbstractCdmDetailSection<DescriptionElementBase> {
 
 
-
-       /**
-        * <p>Constructor for DescriptionElementDetailSection.</p>
-        *
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-        * @param style a int.
-        */
-       public DescriptionElementDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
+       public DescriptionElementDetailSection(CdmFormFactory cdmFormFactory,
                        ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
-               super(cdmFormFactory, conversation, parentElement, selectionProvider, style);
+               super(cdmFormFactory, parentElement, selectionProvider, style);
        }
 
-
        @Override
     protected Control createToolbar() {
 
@@ -70,9 +57,7 @@ public class DescriptionElementDetailSection extends
                final String label = "Change to " + destinationString;
 
                Action addAction = new Action("Change Type", IAction.AS_PUSH_BUTTON) {
-                       /* (non-Javadoc)
-                        * @see org.eclipse.jface.action.Action#run()
-                        */
+
                        @Override
                        public void run() {
                                boolean confirmed = MessagingUtils.confirmDialog("Confirmation", "Do you really want to change to "
@@ -102,13 +87,11 @@ public class DescriptionElementDetailSection extends
                return toolBarManager.createControl(this);
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return "Description Element";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected void setSectionTitle() {
                this.setText(getHeading() + ": " + getEntity().getFeature().getPreferredRepresentation(CdmStore.getDefaultLanguage()));
@@ -133,13 +116,17 @@ public class DescriptionElementDetailSection extends
            return count > 1;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
        protected AbstractCdmDetailElement<DescriptionElementBase> createCdmDetailElement(AbstractCdmDetailSection<DescriptionElementBase> parentElement, int style) {
            return formFactory.createDescriptionElementDetailElement(parentElement, style);
        }
-
-
-}
+       @Override
+    public void setEntity(DescriptionElementBase entity) {
+        super.setEntity(entity);
+        boolean isEnabled = true;
+        if ((entity.getInDescription().isComputed() || entity.getInDescription().isCloneForSource())&& PreferencesUtil.isComputedDesciptionHandlingDisabled() ){
+            isEnabled = false;
+        }
+        setEnabled(isEnabled);
+    }
+}
\ No newline at end of file
index 83953e5f3739d6ec143a723e70c60cd921d92911..4ed2ce151c1c5206e55af58c9513fe79115e73cc 100644 (file)
@@ -6,58 +6,53 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.description;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 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;
 
 /**
- * <p>DescriptionElementMediaSection class.</p>
- *
  * @author n.hoffmann
  * @created Mar 18, 2010
- * @version 1.0
  */
 public class DescriptionElementMediaSection extends
                AbstractEntityCollectionSection<DescriptionElementBase, Media> {
 
-       public DescriptionElementMediaSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
+       public DescriptionElementMediaSection(CdmFormFactory cdmFormFactory,
                        ICdmFormElement parentElement, int style) {
-               super(cdmFormFactory, conversation, parentElement, "Media", style);
+               super(cdmFormFactory, parentElement, "Media", style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setEntity(DescriptionElementBase entity) {
                if(entity.getFeature().equals(Feature.IMAGE())){
                        this.setVisible(false);
                }
                super.setEntity(entity);
+               if ((entity.getInDescription().isComputed() || entity.getInDescription().isCloneForSource())&& PreferencesUtil.isComputedDesciptionHandlingDisabled()){
+                   this.setEnabled(false);
+               }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addElement(Media element) {
                getEntity().addMedia(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public Media createNewElement() {
                return Media.NewInstance();
        }
 
-       /** {@inheritDoc} */
        @Override
        public Collection<Media> getCollection(DescriptionElementBase entity) {
                return entity.getMedia();
@@ -68,39 +63,28 @@ public class DescriptionElementMediaSection extends
         return new DefaultCdmBaseComparator<>();
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No media yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Create new media";
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElement(Media element) {
                getEntity().removeMedia(element);
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Media addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-
-}
+}
\ No newline at end of file
index 1809f54d10f00f19677aa1a74b13b1b71484924e..28b5060a80bedf7529f70a3f66d7b229b56499d1 100644 (file)
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.description;
 
+import java.util.Iterator;
+
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Control;
 
 import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 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.IEntityElement;
+import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
 import eu.etaxonomy.taxeditor.ui.section.common.ExternalLinksSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.OriginalSourceElement;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractOriginalSourceElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
- *
  * @author n.hoffmann
  * @created Nov 16, 2009
- * @version 1.0
  */
 public class DescriptionElementSourceElement extends
                AbstractOriginalSourceElement<DescriptionElementSource> implements
-               IEntityElement<DescriptionElementSource> {
+               IEntityElement<DescriptionElementSource>{
 
        private EntitySelectionElement<TaxonName> selection_name;
+       boolean isEnabled = true;
 
        public DescriptionElementSourceElement(CdmFormFactory cdmFormFactory,
                        AbstractFormSection<?> formElement, DescriptionElementSource element,
                        SelectionListener removeListener, int style, boolean isCommonNameReference) {
                super(cdmFormFactory, formElement, element, removeListener, style, isCommonNameReference);
-               formFactory.createSelectionArbitrator(this);
+               cdmFormFactory.createSelectionArbitrator(this);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement formElement, int style) {
                super.createControls(formElement, style);
                selection_name = formFactory
-                               .createSelectionElement(TaxonName.class,//getConversationHolder(),
+                               .createSelectionElement(TaxonName.class,
                                        formElement, "Name in Source",
                                                null, EntitySelectionElement.ALL, SWT.NULL);
-
-               externalLinks = formFactory.createExternalLinksSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(ExternalLinksSection.class, DescriptionElementSource.class.getCanonicalName()));
+               
+               externalLinks = formFactory.createExternalLinksSection(formElement, StoreUtil.getSectionStyle(ExternalLinksSection.class, DescriptionElementSource.class.getCanonicalName()));
         externalLinks.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        if (getEntity() != null){
+               setEntity(entity);
+        }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setEntity(DescriptionElementSource entity) {
                super.setEntity(entity);
-               if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSource.getKey())){
-                   text_idInSource.setText(entity.getIdInSource());
+               if (selection_reference != null ){
+                       if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSource.getKey())){
+                           text_idInSource.setText(entity.getIdInSource());
+                       }
+                       if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey())){
+                           text_idNamespace.setText(entity.getIdNamespace());
+                       }
+
+                       selection_reference.setEntity(entity.getCitation());
+                       text_referenceDetail.setText(entity.getCitationMicroReference());
+                       text_originalInfo.setText(entity.getOriginalInfo());
+                       selection_name.setEntity(entity.getNameUsedInSource());
+                       
+                       combo_origsourcetype.setSelection(entity.getType());
+                       externalLinks.setEntity(entity);
                }
-               if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey())){
-                   text_idNamespace.setText(entity.getIdNamespace());
+               if (selection_specimen != null) {
+                       selection_specimen.setEnabled(selection_reference.getEntity()== null);
+                       selection_reference.setEnabled(selection_specimen.getEntity()== null);
                }
-
-               selection_reference.setEntity(entity.getCitation());
-               text_referenceDetail.setText(entity.getCitationMicroReference());
-               text_originaleNameString.setText(entity.getOriginalNameString());
-               selection_name.setEntity(entity.getNameUsedInSource());
-               combo_origsourcetype.setSelection(entity.getType());
        }
 
-       /** {@inheritDoc} */
        @Override
-       public void setSelected(boolean selected) {
+       public void setSelected(boolean selected) {}
 
-       }
-
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
-               if (eventSource == text_idInSource) {
-                       getEntity().setIdInSource(text_idInSource.getText());
-               } else if (eventSource == text_idNamespace) {
-                       getEntity().setIdNamespace(text_idNamespace.getText());
-               } else if (eventSource == selection_reference) {
-                   getEntity().setCitation(selection_reference.getSelection());
-               } else if (eventSource == text_referenceDetail) {
-                       getEntity().setCitationMicroReference(
-                                       text_referenceDetail.getText());
-               } else if (eventSource == text_originaleNameString) {
-                       getEntity().setOriginalNameString(
-                                       text_originaleNameString.getText());
-               } else if (eventSource == selection_name) {
-                       getEntity().setNameUsedInSource(selection_name.getSelection());
-               }
-               else if(eventSource == combo_origsourcetype){
-                   getEntity().setType(combo_origsourcetype.getSelection());
-               }
+           super.handleEvent(eventSource);
+        if (eventSource == selection_name) {
+            getEntity().setNameUsedInSource(selection_name.getSelection());
+           
+        }
+        if (eventSource == selection_specimen) {
+            getEntity().setSpecimen(selection_specimen.getSelection());
+            this.selection_reference.setEnabled(selection_specimen.getSelection() == null);
+        }
+        if (eventSource == selection_reference) {
 
+            this.selection_specimen.setEnabled(selection_reference.getSelection() == null);
+        }
        }
 
-}
+       @Override
+       public void setEnabled(boolean enabled) {
+               super.setEnabled(enabled);
+               externalLinks.setEnabled(isEnabled);
+               if (selection_specimen != null) {
+                       selection_specimen.setEnabled(selection_reference.getEntity()== null);
+                       selection_reference.setEnabled(selection_specimen.getEntity()== null);
+               }
+       }
+        
+}
\ No newline at end of file
index 009a127acfbf9ad1ca2f821c29ab56adfacae2fb..ebaad77f58f7fc16a871eb66f72b36d55aa95fe7 100644 (file)
@@ -1,85 +1,54 @@
 /**
- *
- */
+* Copyright (C) 2018 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.description;
 
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashSet;
+import java.util.List;
+
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
 import eu.etaxonomy.cdm.model.reference.OriginalSourceBase;
 import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
 import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
- * <p>
- * DescriptionElementSourceSection class.
- * </p>
- *
  * @author n.hoffmann
  * @created Nov 17, 2009
- * @version 1.0
  */
 public class DescriptionElementSourceSection extends
         AbstractEntityCollectionSection<DescriptionElementBase, OriginalSourceBase> {
 
     private Reference defaultSource;
 
-
-    /**
-     * <p>
-     * Constructor for DescriptionElementSourceSection.
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param style
-     *            a int.
-     * @param cdmFormFactory
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-     *            object.
-     * @param conversation
-     *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-     *            object.
-     */
-    public DescriptionElementSourceSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
+    public DescriptionElementSourceSection(CdmFormFactory cdmFormFactory,
             ICdmFormElement parentElement, int style) {
-        super(cdmFormFactory, conversation, parentElement, "Sources", style);
+        super(cdmFormFactory, parentElement, "Sources", style);
     }
 
-    /**
-     * <p>
-     * Constructor for DescriptionElementSourceSection.
-     * </p>
-     *
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param style
-     *            a int.
-     * @param cdmFormFactory
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-     *            object.
-     * @param defaultSource
-     *            a default reference for new sources.
-     * @param conversation
-     *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-     *            object.
-     */
-    public DescriptionElementSourceSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
+    public DescriptionElementSourceSection(CdmFormFactory cdmFormFactory,
             ICdmFormElement parentElement, Reference defaultSource, int style) {
-        super(cdmFormFactory, conversation, parentElement, "Sources", style);
+        super(cdmFormFactory, parentElement, "Sources", style);
         this.defaultSource = defaultSource;
     }
 
-    /** {@inheritDoc} */
     @Override
     public DescriptionElementSource createNewElement() {
         DescriptionElementSource source =  DescriptionElementSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource);
@@ -88,34 +57,87 @@ public class DescriptionElementSourceSection extends
         }
         return source;
     }
-
-    /** {@inheritDoc} */
     @Override
-    public Collection<OriginalSourceBase> getCollection(DescriptionElementBase entity) {
-        Collection<OriginalSourceBase> sources = new HashSet();
-        sources.addAll(entity.getSources());
+    protected void internalUpdateSection(boolean changed){
+           setSectionTitle();
+               destroyDynamicContent();
+               if(isExpanded() || expandSectionWhenContentAvailable()) {
+            renderContent(isExpanded());
+        }
+               if(changed) {
+            firePropertyChangeEvent(this);
+        }
+               if (getEntity() != null && getEntity().getInDescription() != null &&(getEntity().getInDescription().isComputed() || getEntity().getInDescription().isCloneForSource())){
+               this.setEnabled(false);;
+       }
+       }
+    @Override
+    protected void renderContent(boolean forceExpansion){
+
+               Collection<OriginalSourceBase> collectionElement = getCollectionElement(getEntity());
+               Collection<OriginalSourceBase> collectionDescription = getCollectionDescription(getEntity());
+
+               if((collectionElement == null || collectionElement.isEmpty()) && (collectionDescription == null || collectionDescription.isEmpty())){
+                       createEmptyContent();
+               }
+               if (collectionElement != null && !collectionElement.isEmpty()){
+                   List<OriginalSourceBase> elements = new ArrayList<>(collectionElement);
+                   Collections.sort(elements, getComparator());
+                       createDynamicContents(elements);
+                       forceExpansion = true;
+               }
+
+               this.setExpanded(forceExpansion);
+
+
+
+
+               if(collectionDescription != null && !collectionDescription.isEmpty()){
+                       List<OriginalSourceBase> elements = new ArrayList<>(collectionDescription);
+                   Collections.sort(elements, getComparator());
+                   createDynamicContentsDisabled(elements);
+                       forceExpansion = true;
+               }
+
+               this.setExpanded(forceExpansion);
+
+               reflow();
+       }
+
+
+
+       public Collection<OriginalSourceBase> getCollectionDescription(DescriptionElementBase entity) {
+        Collection<OriginalSourceBase> sources = new HashSet<>();
+//        sources.addAll(entity.getSources());
         sources.addAll(entity.getInDescription().getSources());
+
+        return sources;
+    }
+    public Collection<OriginalSourceBase> getCollectionElement(DescriptionElementBase entity) {
+        Collection<OriginalSourceBase> sources = new HashSet<>();
+        if (entity != null) {
+            sources.addAll(entity.getSources());
+        }
+//        sources.addAll(entity.getInDescription().getSources());
+
         return sources;
     }
 
     @Override
     public Comparator<OriginalSourceBase> getComparator() {
-        return new SourceComparator();
+        return new SourceComparator<>();
     }
 
-    /** {@inheritDoc} */
     @Override
     public String getEmptyString() {
         return "No references yet.";
     }
 
-    /** {@inheritDoc} */
     @Override
     protected String getTooltipString() {
         return "Create a new reference";
     }
 
-    /** {@inheritDoc} */
     @Override
     public void addElement(OriginalSourceBase element) {
         if (element instanceof DescriptionElementSource){
@@ -123,7 +145,6 @@ public class DescriptionElementSourceSection extends
         }
     }
 
-    /** {@inheritDoc} */
     @Override
     public void removeElement(OriginalSourceBase element) {
         if (element instanceof DescriptionElementSource){
@@ -131,21 +152,41 @@ public class DescriptionElementSourceSection extends
         }
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public DescriptionElementSource addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
 
-
-}
+       @Override
+       public Collection<OriginalSourceBase> getCollection(DescriptionElementBase entity) {
+               Collection<OriginalSourceBase> sources = new HashSet<>();
+           sources.addAll(entity.getSources());
+           sources.addAll(entity.getInDescription().getSources());
+           return sources;
+
+       }
+
+
+       private void createDynamicContentsDisabled(Collection<OriginalSourceBase> elements)
+       {
+               int i = 0;
+               for(final OriginalSourceBase element : elements){
+                       SelectionAdapter removeListener = new SelectionAdapter(){
+                               @Override
+                               public void widgetSelected(SelectionEvent e) {
+                                       removeElement(element);
+                                       internalUpdateSection(true);
+                               }
+                       };
+                       boolean modulo = i++%2 == 0;
+                       String colorResource = modulo ? Resources.COLOR_LIST_EVEN : Resources.COLOR_LIST_ODD;
+                       createElementComposite(element, removeListener, AbstractUtility.getColor(colorResource));
+                       getEntityCollectionElement().setEnabled(false);
+               }
+       }
+}
\ No newline at end of file
index ad7ea3be05ce72fe96cd8c4969a77d1ef3ff6bfd..dd6ffc3f634f879cc63fbd3f542129f87b75dbc4 100644 (file)
@@ -19,60 +19,39 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
- * <p>
- * DescriptionSourceElement class.
- * </p>
- *
  * @author n.hoffmann
  * @created Mar 18, 2010
- * @version 1.0
  */
 public class DescriptionSourceElement extends
                AbstractEntityCollectionElement<Reference> {
 
        private EntitySelectionElement<Reference> selection_descriptionSource;
 
-       /**
-        * <p>
-        * Constructor for DescriptionSourceElement.
-        * </p>
-        *
-        * @param cdmFormFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param formElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
-        *            object.
-        * @param element
-        *            a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase}
-        *            object.
-        * @param removeListener
-        *            a {@link org.eclipse.swt.events.SelectionListener} object.
-        * @param style
-        *            a int.
-        */
        public DescriptionSourceElement(CdmFormFactory cdmFormFactory,
                        AbstractFormSection formElement, Reference element,
                        SelectionListener removeListener, int style) {
                super(cdmFormFactory, formElement, element, removeListener, null, style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
                selection_descriptionSource = formFactory
                                .createSelectionElement(Reference.class,
                                        element, "Source",
                                                null, EntitySelectionElement.ALL, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setEntity(Reference element) {
-               selection_descriptionSource.setEntity(element);
+               this.entity = element;
+               if (selection_descriptionSource != null){
+                       selection_descriptionSource.setEntity(element);
+               }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
 
index 94ee45fd026387b84b3420c675658fe263b9f713..cabb22af50a3eb9c2e129b65aed3ce10ac8fef73 100644 (file)
@@ -6,61 +6,42 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.description;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
-import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
+import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
 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;
 
 /**
- * <p>DescriptionSourceSection class.</p>
- *
  * @author n.hoffmann
  * @created Mar 18, 2010
- * @version 1.0
  */
 public class DescriptionSourceSection extends
                AbstractEntityCollectionSection<DescriptionBase, IdentifiableSource>{
 
-       /**
-        * <p>Constructor for DescriptionSourceSection.</p>
-        *
-        * @param cdmFormFactory 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 style a int.
-        */
-       public DescriptionSourceSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
+       public DescriptionSourceSection(CdmFormFactory cdmFormFactory,
                        ICdmFormElement parentElement, int style) {
-               super(cdmFormFactory, conversation, parentElement, "Sources", style);
+               super(cdmFormFactory, parentElement, "Sources", style);
        }
 
-
-
-       /** {@inheritDoc} */
        @Override
        public void addElement(IdentifiableSource element) {
                getEntity().addSource(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public IdentifiableSource createNewElement() {
                OriginalSourceType ost = OriginalSourceType.PrimaryTaxonomicSource;
                return IdentifiableSource.NewInstance(ost);
-
        }
 
-       /** {@inheritDoc} */
        @Override
        public Collection<IdentifiableSource> getCollection(DescriptionBase entity) {
                return entity.getSources();
@@ -71,41 +52,28 @@ public class DescriptionSourceSection extends
         return new DefaultCdmBaseComparator<>();
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No description sources yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Add a reference as source for this description";
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElement(IdentifiableSource element) {
                getEntity().removeSource(element);
        }
 
-
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public IdentifiableSource addExisting() {
         return null;
     }
 
-
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-}
+}
\ No newline at end of file
index f340cb1f9d1791d6f61338064321270e618f5a0d..e36e11702d2e2a51f103c80f18b70276bdd19d3b 100644 (file)
@@ -44,6 +44,7 @@ public class GeoScopeElement extends AbstractEntityCollectionElement<NamedArea>
        /** {@inheritDoc} */
        @Override
        public void setEntity(NamedArea entity) {
+               this.entity = entity;
 
        }
 
index 60533aade97f84a17ebc2098aa1f6548158f6b60..93da40ad4929dfc83db13145fc96b27cb7cec1a6 100644 (file)
@@ -6,13 +6,11 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.description;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -21,28 +19,16 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
- * <p>GeoScopeSection class.</p>
- *
  * @author n.hoffmann
  * @created Sep 17, 2010
- * @version 1.0
  */
 public class GeoScopeSection extends AbstractEntityCollectionSection<TaxonDescription, NamedArea> {
 
-       /**
-        * <p>Constructor for GeoScopeSection.</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 style a int.
-        */
        public GeoScopeSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(formFactory, conversation, parentElement, "Geo Scope", style);
+                       ICdmFormElement parentElement, int style) {
+               super(formFactory, parentElement, "Geo Scope", style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public Collection<NamedArea> getCollection(TaxonDescription entity) {
                return entity.getGeoScopes();
@@ -53,49 +39,38 @@ public class GeoScopeSection extends AbstractEntityCollectionSection<TaxonDescri
         return new DefaultCdmBaseComparator<>();
        }
 
-       /** {@inheritDoc} */
        @Override
        public NamedArea createNewElement() {
                return NamedArea.NewInstance();
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addElement(NamedArea element) {
                getEntity().addGeoScope(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElement(NamedArea element) {
                getEntity().removeGeoScope(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No geo scopes yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Add a new geo scope.";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public NamedArea addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-}
+}
\ No newline at end of file
index 8e4faf4304ce4ed6831ccb79c180cef728366ec9..e27cd8625e05870f477c2025703ff7ae112eae32 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.jface.action.ToolBarManager;
@@ -15,7 +14,6 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.ui.forms.widgets.ExpandableComposite;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -25,20 +23,17 @@ import eu.etaxonomy.taxeditor.ui.section.media.MediaMetaElement;
 import eu.etaxonomy.taxeditor.ui.section.media.MediaViewSwitch;
 
 /**
- * <p>MediaDetailsSection class.</p>
- *
  * @author n.hoffmann
  * @created Jun 15, 2010
- * @version 1.0
  */
 public class MediaDetailsSection extends AbstractCdmDetailSection<Media> {
 
     private MediaMetaElement mediaMetaElement;
 
-       public MediaDetailsSection(CdmFormFactory formFactory, ConversationHolder conversation,
+       public MediaDetailsSection(CdmFormFactory formFactory,
                        ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
        @Override
@@ -53,7 +48,11 @@ public class MediaDetailsSection extends AbstractCdmDetailSection<Media> {
                layout();
        }
 
-       /** {@inheritDoc} */
+
+       public void setMediaSectionTitle() {
+           this.setSectionTitle();
+    }
+
        @Override
        public String getHeading() {
                return "Image";
@@ -64,13 +63,10 @@ public class MediaDetailsSection extends AbstractCdmDetailSection<Media> {
            return null;
        }
 
-
-
     @Override
     protected Control createToolbar() {
         ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
         toolBarManager.add(MediaViewSwitch.createSwitch(mediaMetaElement));
         return toolBarManager.createControl(this);
     }
-
-}
+}
\ No newline at end of file
index fbe8038b0a7195759212b8891fd6a0ae3e8e3e5c..81902239145e531af861a34addaf7610e27febc2 100644 (file)
@@ -6,22 +6,25 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.description;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
 import org.eclipse.swt.events.SelectionListener;
 
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.IModifiable;
 import eu.etaxonomy.cdm.model.description.StateData;
 import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue;
 import eu.etaxonomy.cdm.model.term.DefinedTerm;
+import eu.etaxonomy.cdm.model.term.TermCollection;
 import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -29,11 +32,10 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 
 /**
- * <p>ModifierElement class.</p>
+ * ModifierElement class.
  *
  * @author n.hoffmann
  * @created Sep 15, 2010
- * @version 1.0
  */
 public class ModifierElement extends AbstractEntityCollectionElement<DefinedTerm> {
 
@@ -54,45 +56,45 @@ public class ModifierElement extends AbstractEntityCollectionElement<DefinedTerm
                super(formFactory, section, entity, removeListener, null, style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setEntity(DefinedTerm entity) {
                this.entity = entity;
-               if(getParentElement() instanceof ModifierSection){
-                   ModifierSection parentSection = (ModifierSection) getParentElement();
-                   List<DefinedTerm> modifierTerms = new ArrayList<DefinedTerm>();
-            Set<TermVocabulary<DefinedTerm>> recommendedModifierEnumeration = new HashSet<TermVocabulary<DefinedTerm>>();
-                   if(parentSection.getEntity() instanceof StateData){
-                       StateData stateData = (StateData) parentSection.getEntity();
-                       recommendedModifierEnumeration = stateData.getCategoricalData().getFeature().getRecommendedModifierEnumeration();
-                   }else if(parentSection.getEntity() instanceof StatisticalMeasurementValue){
-                       StatisticalMeasurementValue statisticalMeasurementValue = (StatisticalMeasurementValue)parentSection.getEntity();
-                       recommendedModifierEnumeration = statisticalMeasurementValue.getQuantitativeData().getFeature().getRecommendedModifierEnumeration();
-                   }
-                   if (!(parentSection.getParentElement() instanceof DescriptionElementBase) && parentSection.getEntity() instanceof DescriptionElementBase){
-                       DescriptionElementBase element = (DescriptionElementBase) parentSection.getEntity();
-                recommendedModifierEnumeration = element.getFeature().getRecommendedModifierEnumeration();
-
-                   }
-
-                   for (TermVocabulary<DefinedTerm> termVocabulary : recommendedModifierEnumeration) {
-                       modifierTerms.addAll(termVocabulary.getTerms());
-                   }
-                   combo_modifier.setTerms(modifierTerms);
-               }
-        if(entity!=null && entity.getId()>0){
-            combo_modifier.setSelection(entity);
-            combo_modifier.removeEmptyElement();
-        }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
-               combo_modifier = formFactory.createDefinedTermComboElement(TermType.Modifier, element, "Modifier", getEntity(), style);
+           ICdmFormElement parent = getParentElement();
+           Set<TermCollection<DefinedTerm, ?>> recommendedModifiers = null;
+           if (parent instanceof ModifierSection){
+               IModifiable modifiableEntity = ((ModifierSection)parent).getEntity();
+               if (modifiableEntity.isInstanceOf(StateData.class)){
+                   StateData stateData = CdmBase.deproxy(modifiableEntity, StateData.class);
+                   recommendedModifiers = stateData.getCategoricalData().getFeature().getRecommendedModifierEnumeration();
+               }
+           }
+           String labelString = "Modifier";
+           if (recommendedModifiers != null){
+               //TODO is there already a method somewhere that creates such a list
+               Set<DefinedTerm> terms = new HashSet<>();
+               for (TermCollection<DefinedTerm, ?> collection: recommendedModifiers){
+                   terms.addAll(collection.getDistinctTerms());
+               }
+               List<DefinedTerm> termList = new ArrayList<>(terms);
+               Collections.sort(termList, new DefaultTermComparator<>());
+               if (getEntity() == null) {
+                   combo_modifier = formFactory.createDefinedTermComboElement(termList, element, labelString, getEntity(), true, style);
+               }else {
+                   combo_modifier = formFactory.createDefinedTermComboElement(termList, element, labelString, getEntity(), false, style);
+               }
+           }else{
+               if (getEntity() == null) {
+                   combo_modifier = formFactory.createDefinedTermComboElement(TermType.Modifier, element, labelString, getEntity(), true, style);
+               }else {
+                   combo_modifier = formFactory.createDefinedTermComboElement(TermType.Modifier, element, labelString, getEntity(), false, style);
+               }
+           }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
            if(eventSource==combo_modifier && combo_modifier.getSelection()!=null){
@@ -121,4 +123,4 @@ public class ModifierElement extends AbstractEntityCollectionElement<DefinedTerm
                }
            }
        }
-}
+}
\ No newline at end of file
index 9a28dafa192e4dd4df97052eacdebb541e90d4c3..dd98795e8bcf15628166fc82f8aa5ccd838c915b 100644 (file)
@@ -6,76 +6,55 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.description;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.cdm.model.description.IModifiable;
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection;
 
 /**
- * <p>ModifierSection class.</p>
- *
  * @author n.hoffmann
  * @created Sep 15, 2010
- * @version 1.0
  */
 public class ModifierSection extends AbstractUnboundEntityCollectionSection<IModifiable, DefinedTerm> {
 
-       /**
-        * <p>Constructor for ModifierSection.</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 style a int.
-        */
        public ModifierSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        int style) {
-               super(formFactory, conversation, parentElement, "Modifiers", style);
+               super(formFactory, parentElement, "Modifiers", style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public DefinedTerm createNewElement() {
                return null;
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addElement(DefinedTerm element) {
                getEntity().addModifier(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElement(DefinedTerm element) {
                getEntity().removeModifier(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No modifiers yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Add a modifier.";
        }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection#getEntityCollection(java.lang.Object)
-     */
     @Override
     protected Collection<DefinedTerm> getEntityCollection(IModifiable entity) {
         return entity.getModifiers();
@@ -86,19 +65,13 @@ public class ModifierSection extends AbstractUnboundEntityCollectionSection<IMod
         return new DefaultCdmBaseComparator<>();
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public DefinedTerm addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-}
+}
\ No newline at end of file
index 289ef4ea92728930b852335597c4e3f771cdd976..a3ca50ababb47bf81778d53a766e1141458410be 100644 (file)
@@ -6,12 +6,12 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.description;
 
 import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
@@ -32,17 +32,13 @@ import eu.etaxonomy.taxeditor.ui.element.LabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
- * <p>NaturalLanguageDetailElement class.</p>
- *
  * @author n.hoffmann
  * @created Sep 16, 2010
- * @version 1.0
  */
 public class NaturalLanguageDetailElement extends AbstractCdmDetailElement<TaxonDescription> {
 
+       private static final Logger logger = LogManager.getLogger();
 
-       private static final Logger logger = Logger
-                       .getLogger(NaturalLanguageDetailElement.class);
        private LabelElement label;
 
        /**
@@ -70,10 +66,6 @@ public class NaturalLanguageDetailElement extends AbstractCdmDetailElement<Taxon
                }
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)
-        */
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
                // nothing gets edited, nothing gets updated
@@ -83,7 +75,7 @@ public class NaturalLanguageDetailElement extends AbstractCdmDetailElement<Taxon
 
                private TaxonDescription entity;
                private NaturalLanguageGenerator generator = new NaturalLanguageGenerator();
-               private TermTree featureTree = PreferencesUtil.getDefaultFeatureTreeForStructuredDescription();
+               private TermTree<?> featureTree = PreferencesUtil.getDefaultFeatureTreeForStructuredDescription();
                private Display display = Display.getCurrent();
 
                public FetchNaturalLanguageDescriptionJob(String jobName, TaxonDescription entity){
@@ -96,7 +88,6 @@ public class NaturalLanguageDetailElement extends AbstractCdmDetailElement<Taxon
                        String text = "";
 
                        if(featureTree != null){
-                               CdmStore.createConversation();
                                try{
                                        List<TextData> naturalLanguageDescription = generator.generateNaturalLanguageDescription(featureTree, entity, CdmStore.getDefaultLanguage());
 
@@ -129,4 +120,15 @@ public class NaturalLanguageDetailElement extends AbstractCdmDetailElement<Taxon
                }
 
        }
+
+       @Override
+       public void fillFields() {
+               if(getEntity().hasStructuredData()){
+                       FetchNaturalLanguageDescriptionJob job = new FetchNaturalLanguageDescriptionJob("Retrieving Natural Language Description", getEntity());
+                       job.schedule();
+               }else{
+                       label.setText("Taxon Description does not contain structured data.");
+               }
+               
+       }
 }
index 978a79a263ea1a548ac8e85a99eaf121d7665a39..7315685aed0b0fda38f347d6c87ca13d376b2ad6 100644 (file)
@@ -6,12 +6,10 @@
 * 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.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -19,11 +17,8 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
 /**
- * <p>NaturalLanguageSection class.</p>
- *
  * @author n.hoffmann
  * @created Sep 16, 2010
- * @version 1.0
  */
 public class NaturalLanguageSection extends AbstractCdmDetailSection<TaxonDescription> {
 
@@ -31,31 +26,23 @@ public class NaturalLanguageSection extends AbstractCdmDetailSection<TaxonDescri
         * <p>Constructor for NaturalLanguageSection.</p>
         *
         * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
         * @param style a int.
         */
        public NaturalLanguageSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-        */
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return "Natural Language Description";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
        protected AbstractCdmDetailElement<TaxonDescription> createCdmDetailElement(AbstractCdmDetailSection<TaxonDescription> parentElement, int style) {
            return formFactory.createNaturalLanguageDetailElement(parentElement);
        }
-}
+}
\ No newline at end of file
index 7b07a06e06f152c71cfb3bd06937dff1135fc358..eb3ab4239048938397b4a57b4eb09fd719368adf 100644 (file)
@@ -52,7 +52,7 @@ public class ScopeElement extends AbstractEntityCollectionElement<DefinedTerm> {
        @Override
        public void setEntity(DefinedTerm entity) {
                this.entity = entity;
-               if(entity!=null && entity.getId()!=0){
+               if(entity!=null && entity.getId()!=0 && combo_scope != null){
                    combo_scope.setSelection(entity);
                    combo_scope.removeEmptyElement();
                }
@@ -62,6 +62,9 @@ public class ScopeElement extends AbstractEntityCollectionElement<DefinedTerm> {
        @Override
        public void createControls(ICdmFormElement element, int style) {
                combo_scope = formFactory.createDefinedTermComboElement(TermType.Scope, element, "Scope", null, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
        /** {@inheritDoc} */
index e3588e2c26473d32621aa703de3ee6f03f53fd1d..310a44b8915b6360d53a09f686f3e9c74b82b03e 100644 (file)
@@ -6,74 +6,53 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.description;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection;
 
 /**
- * <p>ScopeSection class.</p>
- *
  * @author n.hoffmann
  * @created Mar 18, 2010
- * @version 1.0
  */
 public class ScopeSection extends AbstractUnboundEntityCollectionSection<TaxonDescription, DefinedTerm> {
 
-       /**
-        * <p>Constructor for ScopeSection.</p>
-        *
-        * @param cdmFormFactory 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 style a int.
-        */
-       public ScopeSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(cdmFormFactory, conversation, parentElement, "Scope", style);
+       public ScopeSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, int style) {
+               super(cdmFormFactory, parentElement, "Scope", style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addElement(DefinedTerm element) {
                getEntity().addScope(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public DefinedTerm createNewElement() {
                return null;
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No scopes yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Create a new scope";
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElement(DefinedTerm element) {
                getEntity().removeScope(element);
        }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection#getEntityCollection(java.lang.Object)
-     */
     @Override
     protected Collection<DefinedTerm> getEntityCollection(TaxonDescription entity) {
         return entity.getScopes();
@@ -84,19 +63,13 @@ public class ScopeSection extends AbstractUnboundEntityCollectionSection<TaxonDe
         return new DefaultCdmBaseComparator<>();
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public DefinedTerm addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-}
+}
\ No newline at end of file
index 3b7f496f3b7fb75b4f0ddbf69e11cbb587c17e66..da354f008dceddeb50d4a1912fc9cf3ed9e2620f 100644 (file)
@@ -1,6 +1,13 @@
+/**
+* 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.section.description;
 
-
 import java.util.Comparator;
 
 import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
@@ -11,19 +18,27 @@ import eu.etaxonomy.cdm.model.reference.Reference;
 /**
  * @author pplitzner
  * @date Apr 13, 2016
- *
  */
 public class SourceComparator  <T extends OriginalSourceBase> implements Comparator<T> {
+
     @Override
     public int compare(T o1, T o2) {
-        int id1 = o1.getId();
-        int id2 = o2.getId();
+
+        //same and null compare, to be on the save side
+        if (o1 == o2){
+            return 0;
+        }else if (o1 == null){
+            return -1;
+        }else if (o2 == null){
+            return 1;
+        }
+
         boolean isDescriptionElementSource1 = false;
         boolean isDescriptionElementSource2 = false;
-        if (o1 instanceof DescriptionElementSource){
+        if (o1.isInstanceOf(DescriptionElementSource.class)){
             isDescriptionElementSource1 = true;
         }
-        if (o2 instanceof DescriptionElementSource){
+        if (o2.isInstanceOf(DescriptionElementSource.class)){
             isDescriptionElementSource2 = true;
         }
         if (isDescriptionElementSource1 != isDescriptionElementSource2){
@@ -33,64 +48,63 @@ public class SourceComparator  <T extends OriginalSourceBase> implements Compara
                 return 1;
             }
         }
-        OriginalSourceType type1 = o1.getType();
-        OriginalSourceType type2 = o2.getType();
-        Reference citation1 = o1.getCitation();
-        Reference citation2 = o2.getCitation();
-
-        int result = 0;
 
         // the newly created should always be on top
-        if (id1 == 0){
-            if(id2!=0) {
-                result = -1;
-            }
-            else{
-                result = 0;
-            }
-        } else if(id2==0){
-            result = 1;
+        if (!o1.isPersisted() && o2.isPersisted()) {
+            return -1;
+        } else if(o1.isPersisted() && !o2.isPersisted()){
+            return 1;
         }
 
         // sort by type (Primary taxonomic > Primary Media > others
         // alphabetically by reference title cache)
-        else if (type1 == null){
-            if(type2==null){
-                result = 0;
-            }
-            else{
-                result = 1;
+        OriginalSourceType type1 = o1.getType();
+        OriginalSourceType type2 = o2.getType();
+        if (type1 == null){
+            if (type2!=null){
+                return -1;
             }
         } else if (type2 == null){
-            result = -1;
+            return 1;
         } else if(type1.equals(type2)){
-            result = 0;
+            //continue with citation compare
         } else if (type1.equals(OriginalSourceType.PrimaryTaxonomicSource)){
-            result = -1;
+            return 1;
         } else if (type2.equals(OriginalSourceType.PrimaryTaxonomicSource)){
-            result = 1;
+            return -1;
         } else if (type1.equals(OriginalSourceType.PrimaryMediaSource)){
-            result = -1;
+            return 1;
         } else if (type2.equals(OriginalSourceType.PrimaryMediaSource)){
-            result = 1;
+            return -1;
         }
 
+        int result;
+
         //sort by citation title cache if types are equal
-        if (result == 0){
-            if(citation1!=null && citation2!=null){
-                result = citation1.getTitleCache().compareTo(citation2.getTitleCache());
+        Reference citation1 = o1.getCitation();
+        Reference citation2 = o2.getCitation();
+        if(citation1!=null && citation2!=null){
+            result = citation1.getTitleCache().compareTo(citation2.getTitleCache());
+            if (result != 0){
+                return result;
             }
+        }
 
-            if(o2.getCreated()!=null && o1.getCreated()!=null){
-                result = o2.getCreated().compareTo(o1.getCreated());
+        //sort by created
+        if(o2.getCreated()!=null && o1.getCreated()!=null){
+            result = o1.getCreated().compareTo(o2.getCreated());
+            if (result != 0){
+                return result;
             }
-            if (result == 0){
-                //default fallback
-                return o1.getId() - o2.getId();
+        }else if (o1.getCreated() == null){
+            if (o2.getCreated() != null){
+                return -1;
             }
+        }else if (o2.getCreated() == null){
+            return 1;
         }
-        return result;
-
 
+        //default fallback
+        return o1.getUuid().compareTo(o2.getUuid());
     }
-}
+}
\ No newline at end of file
index 88b5cf86d680c6a7740dd53627dc621d86b7aa93..edaad6d1f7577294581a3dbb861f1628cb3caedd 100644 (file)
@@ -6,21 +6,22 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.description;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 
+import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.common.LanguageString;
-import eu.etaxonomy.cdm.model.description.State;
 import eu.etaxonomy.cdm.model.description.StateData;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermCollection;
 import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
@@ -33,80 +34,114 @@ import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 
 /**
- * <p>StateDataElement class.</p>
- *
  * @author n.hoffmann
  * @created Sep 15, 2010
- * @version 1.0
  */
 public class StateDataElement extends AbstractEntityCollectionElement<StateData> {
 
-       private TermComboElement<State> combo_state;
-       private ModifierSection section_modifiers;
-       private TextWithLabelElement text_modifyingText;
+    private TermComboElement<DefinedTermBase<?>> combo_state;
+    private ModifierSection section_modifiers;
+    private TextWithLabelElement text_modifyingText;
+
+    public StateDataElement(CdmFormFactory formFactory, AbstractFormSection<?> section, StateData entity,
+            SelectionListener removeListener, int style) {
+        super(formFactory, section, entity, removeListener, null, style);
+    }
+
+    @Override
+    public void setEntity(StateData entity) {
+        this.entity = entity;
+        if (combo_state != null) {
+
+            combo_state.setSelection(entity.getState());
+            if (section_modifiers != null) {
+                section_modifiers.setEntity(entity);
+                section_modifiers.setExpanded(!entity.getModifiers().isEmpty());
+            }
+            if (getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null
+                    && text_modifyingText != null) {
+                text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
+            }
+            if (getEntity().getId() > 0) {
+                combo_state.removeEmptyElement();
+            }
+        }
+    }
+
+    @Override
+    public void createControls(ICdmFormElement element, int style) {
+        if (getEntity() != null) {
+            List<DefinedTermBase<?>> stateTerms = new ArrayList<>();
+            Set<TermCollection<?, ?>> recommendedStateCollections = getEntity().getCategoricalData().getFeature()
+                    .getSupportedCategoricalEnumerations();
+            for (TermCollection<?, ?> stateCollection : recommendedStateCollections) {
+                stateTerms.addAll((Set) stateCollection.getDistinctTerms());
+            }
+            // stateTerms.add(null)
+            combo_state = formFactory.createDefinedTermComboElement(stateTerms, element, "State", null, style);
+        } else {
+            combo_state = formFactory.createDefinedTermComboElement(TermType.State, element, "State", null, style);
+        }
+        // combo_state.setTermComparator(new DefaultTermComparator<State>());
+
+        if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifier.getKey()) && (!CdmUtils.isNullSafeEmpty(entity.getCategoricalData().getFeature().getRecommendedModifierEnumeration()))) {
+            section_modifiers = formFactory.createModifierSection(element,
+                    StoreUtil.getSectionStyle(ModifierSection.class, StateData.class.getCanonicalName(), true));
+            section_modifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        }else if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifier.getKey()) && CdmUtils.isNullSafeEmpty(entity.getCategoricalData().getFeature().getRecommendedModifierEnumeration()) && !CdmUtils.isNullSafeEmpty(entity.getModifiers())) {
+            List<DefinedTermBase> terms = new ArrayList<>();
+            terms.addAll(entity.getModifiers());
+            for(DefinedTermBase term: terms) {
+                List<DefinedTermBase> termList = new ArrayList<>();
+                termList.add(term);
+                TermComboElement<DefinedTermBase> combo_modifier= formFactory.createDefinedTermComboElement(termList, element, "Modifier", term, style);
+                combo_modifier.addSelectionListener(new SelectionListener() {
 
-       /**
-        * <p>Constructor for StateDataElement.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param section a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} object.
-        * @param entity a {@link eu.etaxonomy.cdm.model.description.StateData} object.
-        * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
-        * @param style a int.
-        */
-       public StateDataElement(CdmFormFactory formFactory,
-                       AbstractFormSection section, StateData entity,
-                       SelectionListener removeListener, int style) {
-               super(formFactory, section, entity, removeListener, null, style);
-       }
+                    @Override
+                    public void widgetSelected(SelectionEvent e) {
+                        if (combo_modifier.getSelection() == null) {
+                            getEntity().getModifiers().remove(term);
+                        }
+                    }
 
-       /** {@inheritDoc} */
-       @Override
-       public void setEntity(StateData entity) {
-               this.entity = entity;
-               List<State> stateTerms = new ArrayList<State>();
-               Set<TermVocabulary<State>> stateVocabularies = getEntity().getCategoricalData().getFeature().getSupportedCategoricalEnumerations();
-               for (TermVocabulary<State> termVocabulary : stateVocabularies) {
-                   stateTerms.addAll(termVocabulary.getTerms());
+                    @Override
+                    public void widgetDefaultSelected(SelectionEvent e) {
+                    }
+                });
+            }
+        }
+        if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifierFreeText.getKey())) {
+            text_modifyingText = formFactory.createTextWithLabelElement(element, "Modifying Text", null, style);
         }
-               combo_state.setTerms(stateTerms);
-               combo_state.setSelection(entity.getState());
-               if (section_modifiers != null){
-               section_modifiers.setEntity(entity);
-               section_modifiers.setExpanded(!entity.getModifiers().isEmpty());
-               }
-               if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null && text_modifyingText != null) {
-            text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
+        if (entity != null) {
+            setEntity(entity);
         }
-               if(getEntity().getId()>0){
-                   combo_state.removeEmptyElement();
-               }
-       }
 
-       /** {@inheritDoc} */
-       @Override
-       public void createControls(ICdmFormElement element, int style) {
-               combo_state = formFactory.createDefinedTermComboElement(TermType.State, element, "State", null, style);
-//             combo_state.setTermComparator(new DefaultTermComparator<State>());
-               if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifier.getKey())){
-                   section_modifiers = formFactory.createModifierSection(getConversationHolder(), element, StoreUtil.getSectionStyle(ModifierSection.class, StateData.class.getCanonicalName(), true));
-                   section_modifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-               }
-               if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifierFreeText.getKey())){
-                   text_modifyingText = formFactory.createTextWithLabelElement(element, "Modifying Text", null, style);
-               }
+    }
 
-       }
+    @Override
+    public void handleEvent(Object eventSource) {
+        if (eventSource == combo_state) {
+            getEntity().setState(combo_state.getSelection());
+            combo_state.removeEmptyElement();
+        }
+        if (eventSource == text_modifyingText) {
+            getEntity().putModifyingText(
+                    LanguageString.NewInstance(text_modifyingText.getText(), CdmStore.getDefaultLanguage()));
+        }
+    }
 
-       /** {@inheritDoc} */
-       @Override
-       public void handleEvent(Object eventSource) {
-               if(eventSource == combo_state){
-                       getEntity().setState(combo_state.getSelection());
-                       combo_state.removeEmptyElement();
-               }
-               if(eventSource == text_modifyingText){
-                       getEntity().putModifyingText(LanguageString.NewInstance(text_modifyingText.getText(), CdmStore.getDefaultLanguage()));
-               }
-       }
+    @Override
+    public void setEnabled(boolean enable) {
+        if (combo_state != null) {
+            combo_state.setEnabled(enable);
+        }
+        if (section_modifiers != null) {
+            section_modifiers.setEnabled(enable);
+        }
+        if (text_modifyingText != null) {
+            text_modifyingText.setEnabled(enable);
+        }
+        super.setEnabled(enable);
+    }
 }
index bc16cd059e408a8e10758518e5a5c90c5af8798d..1775bf9caac49dac4bea66fbca1042416879f922 100644 (file)
@@ -6,44 +6,34 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.description;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.CategoricalData;
 import eu.etaxonomy.cdm.model.description.StateData;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
- * <p>StateDataSection class.</p>
- *
  * @author n.hoffmann
  * @created Sep 15, 2010
- * @version 1.0
  */
-public class StateDataSection extends AbstractEntityCollectionSection<CategoricalData, StateData> {
+public class StateDataSection extends AbstractEntityCollectionSection<CategoricalData, StateData> implements IEnableableFormElement {
 
-       /**
-        * <p>Constructor for StateDataSection.</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 style a int.
-        */
        public StateDataSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        int style) {
-               super(formFactory, conversation, parentElement, "State Data", style);
+               super(formFactory, parentElement, "State Data", style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public Collection<StateData> getCollection(CategoricalData entity) {
                return entity.getStateData();
@@ -54,51 +44,48 @@ public class StateDataSection extends AbstractEntityCollectionSection<Categorica
         return new DefaultCdmBaseComparator<>();
        }
 
-       /** {@inheritDoc} */
        @Override
        public StateData createNewElement() {
                return StateData.NewInstance();
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addElement(StateData element) {
                getEntity().addStateData(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElement(StateData element) {
                getEntity().removeStateData(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No state data yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Create new state data";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public StateData addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-
-}
+    @Override
+    protected void updateToolbar() {
+
+        if( !(getEntity() instanceof CdmBase) || (getEntity() != null && CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getEntity()), getUpdate())) && isEnabled()
+                && (this.getEntity().getFeature().getMaxStates() == null || this.getEntity().getFeature().getMaxStates() > this.getEntity().getStateData().size())){
+            showToolbar();
+        } else {
+            removeToolbar();
+        }
+    }
+}
\ No newline at end of file
index a5a1650fe2623de192490f0ebff18899571158c4..f2ad9598a69a0636302e7ab97c339ddb89f86782 100644 (file)
@@ -15,6 +15,7 @@ import java.util.Set;
 
 import org.eclipse.swt.events.SelectionListener;
 
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
 import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue;
 import eu.etaxonomy.cdm.model.term.TermType;
@@ -58,19 +59,28 @@ public class StatisticalMeasurementValueElement extends
        @Override
        public void setEntity(StatisticalMeasurementValue entity) {
                this.entity = entity;
-               Set<StatisticalMeasure> statisiticalMeasures = getEntity().getQuantitativeData().getFeature().getRecommendedStatisticalMeasures();
-        combo_type.setTerms(new ArrayList<StatisticalMeasure>(statisiticalMeasures));
-               combo_type.setSelection(entity.getType());
-               number_value.setNumber(entity.getValue());
-               section_modifiers.setEntity(entity);
+               if (combo_type != null){
+                       Set<StatisticalMeasure> statisiticalMeasures = getEntity().getQuantitativeData().getFeature().getRecommendedStatisticalMeasures();
+               combo_type.setTerms(new ArrayList<StatisticalMeasure>(statisiticalMeasures));
+                       combo_type.setSelection(entity.getType());
+                       number_value.setNumber(entity.getValue());
+                       if (section_modifiers != null) {
+                           section_modifiers.setEntity(entity);
+                       }
+               }
        }
 
        @Override
        public void createControls(ICdmFormElement element, int style) {
                number_value = formFactory.createBigDecimalTextWithLabelElement(element, "Value", 0, style);
                combo_type = formFactory.createDefinedTermComboElement(TermType.StatisticalMeasure, element, "Statistical Measure", null, style);
-               section_modifiers = formFactory.createModifierSection(getConversationHolder(), element, StoreUtil.getSectionStyle(ModifierSection.class, StatisticalMeasurementValue.class.getCanonicalName()));
-               section_modifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+               if (!CdmUtils.isNullSafeEmpty(entity.getQuantitativeData().getFeature().getRecommendedModifierEnumeration()) || !CdmUtils.isNullSafeEmpty(entity.getModifiers())){
+                   section_modifiers = formFactory.createModifierSection(element, StoreUtil.getSectionStyle(ModifierSection.class, StatisticalMeasurementValue.class.getCanonicalName()));
+                   section_modifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+               }
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
        @Override
@@ -89,4 +99,16 @@ public class StatisticalMeasurementValueElement extends
                        combo_type.removeEmptyElement();
                }
        }
+
+//     @Override
+//     public void setEnabled(boolean enabled) {
+//             combo_type.setEnabled(enabled);
+//             number_value.setEnabled(enabled);
+//             section_modifiers.setEnabled(enabled);
+//     }
+//
+//     @Override
+//     public boolean isEnabled() {
+//             return combo_type.isEnabled();
+//     }
 }
index 69f25d7f376e5800a0007ce8137bb741b5184df4..a3ac8d28bda0b57b8c4c8208b73b643de487ef53 100644 (file)
@@ -6,17 +6,16 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.description;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.QuantitativeData;
 import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
@@ -25,26 +24,16 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
  *
  * @author n.hoffmann
  * @created Sep 15, 2010
- * @version 1.0
  */
 public class StatisticalMeasurementValueSection extends
-               AbstractEntityCollectionSection<QuantitativeData, StatisticalMeasurementValue> {
+               AbstractEntityCollectionSection<QuantitativeData, StatisticalMeasurementValue> implements IEnableableFormElement{
 
-       /**
-        * <p>Constructor for StatisticalMeasurementValueSection.</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 style a int.
-        */
        public StatisticalMeasurementValueSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        int style) {
-               super(formFactory, conversation, parentElement, "Statistical Measurement Value", style);
+               super(formFactory, parentElement, "Statistical Measurement Value", style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public Collection<StatisticalMeasurementValue> getCollection(
                        QuantitativeData entity) {
@@ -56,49 +45,38 @@ public class StatisticalMeasurementValueSection extends
         return new DefaultCdmBaseComparator<>();
        }
 
-       /** {@inheritDoc} */
        @Override
        public StatisticalMeasurementValue createNewElement() {
                return StatisticalMeasurementValue.NewInstance();
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addElement(StatisticalMeasurementValue element) {
                getEntity().addStatisticalValue(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElement(StatisticalMeasurementValue element) {
                getEntity().removeStatisticalValue(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No statistical values yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Create new statistical value";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public StatisticalMeasurementValue addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-}
+}
\ No newline at end of file
index aa8147ad3b638914626b7eca38f958b34a716760..c99f7a01eefcfd0d75db09b4746b71101e383848 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.detail;
 
 import org.eclipse.swt.SWT;
@@ -30,13 +29,12 @@ import eu.etaxonomy.taxeditor.ui.section.description.ModifierSection;
  *
  * @author n.hoffmann
  * @created Jun 10, 2010
- * @version 1.0
  */
 public abstract class AbstractDetailedDescriptionDetailElement<T extends DescriptionElementBase> extends AbstractCdmDetailElement<T>{
 
-    TimePeriodElement timePeriod;
-    ModifierSection section_modifiers;
-    TextWithLabelElement text_modifyingText;
+    private TimePeriodElement timePeriod;
+    private ModifierSection section_modifiers;
+    private TextWithLabelElement text_modifyingText;
 
        /**
         * <p>Constructor for AbstractDetailedDescriptionDetailElement.</p>
@@ -48,31 +46,39 @@ public abstract class AbstractDetailedDescriptionDetailElement<T extends Descrip
         * @param <T> a T object.
         */
        public AbstractDetailedDescriptionDetailElement(CdmFormFactory formFactory,
-                       ICdmFormElement formElement, T entity, int style) {
+                       ICdmFormElement formElement, T entity, boolean enabled, int style) {
                super(formFactory, formElement);
                setEntity(entity);
+               setEnabled(enabled);
        }
+       public AbstractDetailedDescriptionDetailElement(CdmFormFactory formFactory,
+                       ICdmFormElement formElement, T entity, int style) {
+               super(formFactory, formElement);
+               setEntity(entity);
 
+       }
 
     protected void createTimePeriod(ICdmFormElement formElement, DescriptionElementBase entity,
             int style) {
            timePeriod = formFactory.createTimePeriodElement(this, "Time scope", entity.getTimeperiod(), SWT.WRAP);
-
+           timePeriod.setEnabled(enabled);
     }
 
     protected void createModifier(ICdmFormElement formElement, DescriptionElementBase entity,
             int style) {
 
         if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifier.getKey())){
-            section_modifiers = formFactory.createModifierSection(getConversationHolder(), this, StoreUtil.getSectionStyle(ModifierSection.class, entity.getClass().getCanonicalName(), true));
+            section_modifiers = formFactory.createModifierSection(this, StoreUtil.getSectionStyle(ModifierSection.class, entity.getClass().getCanonicalName(), true));
             section_modifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
             section_modifiers.setEntity(entity);
+            section_modifiers.setEnabled(enabled);
         }
         if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifierFreeText.getKey())){
             text_modifyingText = formFactory.createTextWithLabelElement(this, "Modifying Text", null, style);
             if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
                 text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
             }
+            text_modifyingText.setEnabled(enabled);
         }
     }
 
@@ -83,6 +89,7 @@ public abstract class AbstractDetailedDescriptionDetailElement<T extends Descrip
             if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
                 text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
             }
+            text_modifyingText.setEnabled(enabled);
         }
     }
 
@@ -96,4 +103,20 @@ public abstract class AbstractDetailedDescriptionDetailElement<T extends Descrip
         }
 
     }
-}
+
+    @Override
+    public void fillFields() {
+       timePeriod.setEntity(getEntity().getTimeperiod());
+        if (section_modifiers != null) {
+               section_modifiers.setEntity(getEntity());
+        }
+        if (text_modifyingText!= null) {
+               if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
+                text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
+            }
+        }
+    }
+
+
+
+}
\ No newline at end of file
index e348c51d1f9c91bb36d507f0076c59d4283c2075..e386944fc80804ca1cf1521d4917e84303a02b82 100644 (file)
@@ -3,8 +3,14 @@
  */
 package eu.etaxonomy.taxeditor.ui.section.description.detail;
 
+import java.util.Comparator;
+
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.description.CategoricalData;
+import eu.etaxonomy.cdm.model.description.NoDescriptiveDataStatus;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -21,6 +27,8 @@ public class CategoricalDataDetailElement extends AbstractDetailedDescriptionDet
        private CheckboxElement checkbox_orderRelevant;
        private StateDataSection section_stateData;
 
+       private EnumComboElement<NoDescriptiveDataStatus> noDataStatusCombo;
+        private CategoricalData tempData;
        /**
         * <p>Constructor for CategoricalDataDetailElement.</p>
         *
@@ -30,20 +38,31 @@ public class CategoricalDataDetailElement extends AbstractDetailedDescriptionDet
         * @param style a int.
         */
        public CategoricalDataDetailElement(CdmFormFactory formFactory,
-                       ICdmFormElement formElement, CategoricalData entity, int style) {
-               super(formFactory, formElement, entity, style);
+                       ICdmFormElement formElement, CategoricalData entity, boolean enabled, int style) {
+               super(formFactory, formElement, entity, enabled, style);
+
        }
 
        @Override
        protected void createControls(ICdmFormElement formElement,
                        CategoricalData entity, int style) {
+           Comparator<NoDescriptiveDataStatus> comp = new Comparator<NoDescriptiveDataStatus>() {
+
+            @Override
+            public int compare(NoDescriptiveDataStatus o1, NoDescriptiveDataStatus o2) {
+                return o1.getLabel(PreferencesUtil.getGlobalLanguage()).compareTo(o2.getLabel(PreferencesUtil.getGlobalLanguage()));
+            }
+        };
+           noDataStatusCombo = formFactory.createEnumComboElement(NoDescriptiveDataStatus.class, formElement, comp, style, true);
+        noDataStatusCombo.setSelection(entity.getNoDataStatus());
 
                checkbox_orderRelevant = formFactory.createCheckbox(formElement, "Order Relevant", entity.getOrderRelevant(), style);
-               section_stateData = formFactory.createStateDataSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(StateDataSection.class, entity.getClass().getCanonicalName(), true));
+               section_stateData = formFactory.createStateDataSection(formElement, StoreUtil.getSectionStyle(StateDataSection.class, entity.getClass().getCanonicalName(), true));
                section_stateData.setEntity(entity);
                section_stateData.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+               section_stateData.setEnabled(enabled);
                createTimePeriod(formElement, entity, style);
-               if (entity.getFeature().getRecommendedModifierEnumeration() != null && !entity.getFeature().getRecommendedModifierEnumeration().isEmpty()){
+               if (!CdmUtils.isNullSafeEmpty(entity.getFeature().getRecommendedModifierEnumeration()) || !CdmUtils.isNullSafeEmpty(entity.getModifiers())){
                    createModifier(formElement, entity, style);
                }else{
                    createFreetextModifier(formElement, entity, style);
@@ -55,6 +74,31 @@ public class CategoricalDataDetailElement extends AbstractDetailedDescriptionDet
            super.handleEvent(eventSource);
                if(eventSource == checkbox_orderRelevant){
                        getEntity().setOrderRelevant(checkbox_orderRelevant.getSelection());
+               } else if (eventSource == noDataStatusCombo) {
+            getEntity().setNoDataStatus(noDataStatusCombo.getSelection());
+            if (noDataStatusCombo.getSelection() != null) {
+                this.setEnabled(false);
+                if (!this.getEntity().getStateData().isEmpty()) {
+                    tempData = this.getEntity().clone();
+                }
+                this.getEntity().getStateData().clear();
+            } else {
+                if (tempData != null) {
+                    this.getEntity().getStateData().addAll(tempData.getStateData());
+                }
+                this.setEnabled(true);
+            }
+            noDataStatusCombo.setEnabled(true);
+        }
+       }
+
+       @Override
+       public void fillFields() {
+               if (getEntity()!= null) {
+                       super.fillFields();
+                       checkbox_orderRelevant.setEnabled(getEntity().getOrderRelevant());
+                       section_stateData.setEntity(getEntity());
+                       noDataStatusCombo.setSelection(getEntity().getNoDataStatus());
                }
        }
 }
index 69997f4166b960e7bcfc46e55a016ad75a555afb..d0dfac0124c0983eb9e6a9a41486895f9833f62d 100644 (file)
@@ -6,15 +6,21 @@
 * 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.detail;
 
+import java.util.List;
+import java.util.UUID;
+
 import org.eclipse.swt.SWT;
 
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.CommonTaxonName;
 import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -22,57 +28,50 @@ import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
- * <p>CommonNameDetailElement class.</p>
- *
  * @author n.hoffmann
  * @created Jun 10, 2010
- * @version 1.0
  */
 public class CommonNameDetailElement extends AbstractDetailedDescriptionDetailElement<CommonTaxonName> {
 
        private TermComboElement<Language> combo_language;
        private EntitySelectionElement<NamedArea> selection_namedArea;
        private TextWithLabelElement commonName;
-
+       private TextWithLabelElement transliteration;
 
        /**
         * <p>Constructor for CommonNameDetailElement.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param entity a {@link eu.etaxonomy.cdm.model.description.CommonTaxonName} object.
-        * @param style a int.
         */
        public CommonNameDetailElement(CdmFormFactory formFactory,
-                       ICdmFormElement formElement, CommonTaxonName entity, int style) {
-               super(formFactory, formElement, entity, style);
+                       ICdmFormElement formElement, CommonTaxonName entity, boolean enabled, int style) {
+               super(formFactory, formElement, entity, enabled, style);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected void createControls(ICdmFormElement formElement,
                        CommonTaxonName entity, int style) {
 
                commonName = formFactory.createTextWithLabelElement(this, "Common Name", entity.getName(), SWT.WRAP);
-
-               combo_language = formFactory.createDefinedTermComboElement(TermType.Language, this, "Language", entity.getLanguage(), style);
-
-               selection_namedArea = formFactory.createSelectionElement(NamedArea.class, //getConversationHolder(),
+               transliteration = formFactory.createTextWithLabelElement(this, "Transliteration", entity.getTransliteration(), SWT.WRAP);
+
+//             combo_language = formFactory.createDefinedTermComboElement(TermType.Language, this, "Language", entity.getLanguage(), style);
+               List<UUID> uuidList = PreferencesUtil.createUUIDListFromStringPref(PreferencePredicate.CommonNameLanguages.getKey(), false);
+               List<Language> languages = CdmStore.getTermManager().getTerms(uuidList, Language.class);
+//        combo_language = formFactory.createDefinedTermComboElement(languages, this, "Language", entity.getLanguage(), style);
+        combo_language = formFactory.createDefinedTermComboElement(TermType.Language, this, "Language", entity.getLanguage(), style);
+        combo_language.setTerms(languages);
+        combo_language.setSelection(entity.getLanguage());
+               selection_namedArea = formFactory.createSelectionElement(NamedArea.class,
                                formElement, "Area",
                                entity.getArea(), EntitySelectionElement.NOTHING, style);
 
                createTimePeriod(formElement, entity, style);
-               if (entity.getFeature().getRecommendedModifierEnumeration() != null && !entity.getFeature().getRecommendedModifierEnumeration().isEmpty()){
+               if (!(CdmUtils.isNullSafeEmpty(entity.getFeature().getRecommendedModifierEnumeration())) && !entity.getFeature().getRecommendedModifierEnumeration().isEmpty()){
             createModifier(formElement, entity, style);
         }else{
             createFreetextModifier(formElement, entity, style);
         }
-
        }
 
-
-
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
            super.handleEvent(eventSource);
@@ -82,7 +81,19 @@ public class CommonNameDetailElement extends AbstractDetailedDescriptionDetailEl
                        getEntity().setArea(selection_namedArea.getEntity());
                }else if(eventSource == commonName){
                        getEntity().setName(commonName.getText());
-               }
+               }else if(eventSource == transliteration){
+            getEntity().setTransliteration(transliteration.getText());
+        }
        }
 
-}
+       @Override
+       public void fillFields() {
+               if (getEntity()!= null) {
+                       super.fillFields();
+                       combo_language.setSelection(getEntity().getLanguage());
+                       selection_namedArea.setEntity(getEntity().getArea());
+                       commonName.setText(getEntity().getName());
+                       transliteration.setText(getEntity().getTransliteration());
+               }
+       }
+}
\ No newline at end of file
index 2fdf0f05718c6814f7f6d3993dfc0b50caa4608b..c833aa865752efeef64ccc9efb7503366c5e4e68 100644 (file)
@@ -6,15 +6,15 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.description.detail;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.description.Distribution;
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.location.NamedArea;
@@ -35,38 +35,23 @@ import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
- * <p>DistributionDetailElement class.</p>
- *
  * @author n.hoffmann
  * @created Jun 10, 2010
- * @version 1.0
  */
 public class DistributionDetailElement extends
                AbstractDetailedDescriptionDetailElement<Distribution> {
 
        private EntitySelectionElement<NamedArea> selection_namedArea;
        private TermComboElement<DefinedTermBase> combo_presenceAbsence;
-       private boolean namedAreaEditable = true;
 
        private TextWithLabelElement taxonOfDistribtion;
 
-
-       /**
-        * <p>Constructor for DistributionDetailElement.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param entity a {@link eu.etaxonomy.cdm.model.description.Distribution} object.
-        * @param style a int.
-        */
        public DistributionDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement, Distribution entity, boolean enabled, int style) {
-               super(formFactory, formElement, entity, style);
-               setEnabled(enabled);
+               super(formFactory, formElement, entity, enabled, style);
 
        }
 
-       /** {@inheritDoc} */
        @Override
        protected void createControls(ICdmFormElement formElement,
                        Distribution entity, int style) {
@@ -93,7 +78,7 @@ public class DistributionDetailElement extends
                List<DefinedTermBase> inputList = getStatusListForArea(area);
         combo_presenceAbsence = formFactory.createDefinedTermComboElement(inputList, this, "Distribution Status", entity.getStatus(), style);
         createTimePeriod(formElement, entity, style);
-        if (entity.getFeature().getRecommendedModifierEnumeration() != null && !entity.getFeature().getRecommendedModifierEnumeration().isEmpty()){
+        if (!CdmUtils.isNullSafeEmpty(entity.getFeature().getRecommendedModifierEnumeration()) || !CdmUtils.isNullSafeEmpty(entity.getModifiers())){
             createModifier(formElement, entity, style);
         }else{
             createFreetextModifier(formElement, entity, style);
@@ -109,7 +94,7 @@ public class DistributionDetailElement extends
                }
         CdmPreference pref = CdmPreferenceCache.instance().get(key);
         // if there is no preference for the area, look for the general
-        if (pref == null || pref.isAllowOverride()){
+        if (pref == null ){
             pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionStatus.getKey()));
         }
 
@@ -124,13 +109,10 @@ public class DistributionDetailElement extends
             }
         }
 
-
-
         List<DefinedTermBase> inputList = CdmStore.getTermManager().getTerms(uuidList, PresenceAbsenceTerm.class);
         return inputList;
     }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
            super.handleEvent(eventSource);
@@ -157,4 +139,15 @@ public class DistributionDetailElement extends
            taxonOfDistribtion.setText(nameCache);
        }
 
-}
+       @Override
+       public void fillFields() {
+               if (getEntity() != null) {
+                       super.fillFields();
+                       selection_namedArea.setEntity(getEntity().getArea());
+                       combo_presenceAbsence.setSelection(getEntity().getStatus());
+                       String nameCache = null;
+                       nameCache = ((IDistributionEditorPart)AbstractUtility.getActivePart()).getEditor().getActualNameCache();
+                       taxonOfDistribtion.setText(nameCache);
+               }
+       }
+}
\ No newline at end of file
index 4ae6151f3accb01d47c71b7753995037f9c9d827..692f48eb6ba3c3e468ed9008afae0bca85dbf548 100644 (file)
@@ -6,11 +6,11 @@
  * 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.detail;
 
 import java.util.Map;
 
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
@@ -25,7 +25,6 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author n.hoffmann
  * @created Jun 10, 2010
- * @version 1.0
  */
 public class IndividualsAssociationDetailElement extends
                AbstractDetailedDescriptionDetailElement<IndividualsAssociation> {
@@ -34,19 +33,17 @@ public class IndividualsAssociationDetailElement extends
        private EntitySelectionElement<SpecimenOrObservationBase> selection_derivedUnit;
 
        public IndividualsAssociationDetailElement(CdmFormFactory formFactory,
-                       ICdmFormElement formElement, IndividualsAssociation entity,
+                       ICdmFormElement formElement, IndividualsAssociation entity, boolean enabled,
                        int style) {
-               super(formFactory, formElement, entity, style);
+               super(formFactory, formElement, entity, enabled, style);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected void createControls(ICdmFormElement formElement,
                        IndividualsAssociation entity, int style) {
 
                selection_derivedUnit = formFactory
                                .createSelectionElement(SpecimenOrObservationBase.class,
-                                               //getConversationHolder(),
                                        formElement, "Occurrence/Unit",
                                                CdmBase.deproxy(entity.getAssociatedSpecimenOrObservation(),SpecimenOrObservationBase.class),
                                                EntitySelectionElement.ALL, style);
@@ -61,14 +58,13 @@ public class IndividualsAssociationDetailElement extends
                }
 
                createTimePeriod(formElement, entity, style);
-               if (entity.getFeature().getRecommendedModifierEnumeration() != null && !entity.getFeature().getRecommendedModifierEnumeration().isEmpty()){
+               if (!CdmUtils.isNullSafeEmpty(entity.getFeature().getRecommendedModifierEnumeration()) || !CdmUtils.isNullSafeEmpty(entity.getModifiers())){
             createModifier(formElement, entity, style);
         }else{
             createFreetextModifier(formElement, entity, style);
         }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
            super.handleEvent(eventSource);
@@ -78,6 +74,18 @@ public class IndividualsAssociationDetailElement extends
                } else if (eventSource == text_description) {
                        getEntity().putDescription(CdmStore.getDefaultLanguage(), text_description.getText());
                }
+       }
+
+       @Override
+       public void fillFields() {
+               if (getEntity()!= null) {
+                       super.fillFields();
+                       if (getEntity().getDescription() != null && getEntity().getDescription().get(CdmStore.getDefaultLanguage()) != null) {
+                               text_description.setText(getEntity().getDescription().get(
+                                               CdmStore.getDefaultLanguage()).getText());
+                       }
+                       selection_derivedUnit.setEntity(getEntity().getAssociatedSpecimenOrObservation());
+               }
 
        }
-}
+}
\ No newline at end of file
index 98de82f34b28cb193f26d5a9acd243232ce235cb..ec667bc919a2b43e5090e9a1863212c9fc698db7 100644 (file)
@@ -4,14 +4,21 @@
 package eu.etaxonomy.taxeditor.ui.section.description.detail;
 
 import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Comparator;
 
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.description.MeasurementUnit;
+import eu.etaxonomy.cdm.model.description.NoDescriptiveDataStatus;
 import eu.etaxonomy.cdm.model.description.QuantitativeData;
 import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 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.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.section.description.StatisticalMeasurementValueSection;
 
@@ -23,8 +30,10 @@ import eu.etaxonomy.taxeditor.ui.section.description.StatisticalMeasurementValue
 public class QuantitativeDataDetailElement extends
                AbstractDetailedDescriptionDetailElement<QuantitativeData> {
 
-       private TermComboElement<MeasurementUnit> comboMeasurementUnit;
-       private StatisticalMeasurementValueSection section_statisticalMeasurementValues;
+    private TermComboElement<MeasurementUnit> comboMeasurementUnit;
+    private StatisticalMeasurementValueSection section_statisticalMeasurementValues;
+    private EnumComboElement<NoDescriptiveDataStatus> noDataStatusCombo;
+    private QuantitativeData tempData;
 
        /**
         * <p>Constructor for QuantitativeDataDetailElement.</p>
@@ -35,33 +44,100 @@ public class QuantitativeDataDetailElement extends
         * @param style a int.
         */
        public QuantitativeDataDetailElement(CdmFormFactory formFactory,
-                       ICdmFormElement formElement, QuantitativeData entity, int style) {
-               super(formFactory, formElement, entity, style);
+                       ICdmFormElement formElement, QuantitativeData entity, boolean enabled, int style) {
+               super(formFactory, formElement, entity, enabled, style);
+               updateControlStates();
        }
 
        @Override
        protected void createControls(ICdmFormElement formElement,
                        QuantitativeData entity, int style) {
-               comboMeasurementUnit = formFactory.createDefinedTermComboElement(TermType.MeasurementUnit, formElement, "Measurement Unit", null, style);
+           Comparator<NoDescriptiveDataStatus> comp = new Comparator<NoDescriptiveDataStatus>() {
+
+            @Override
+            public int compare(NoDescriptiveDataStatus o1, NoDescriptiveDataStatus o2) {
+
+                return o1.getLabel(PreferencesUtil.getGlobalLanguage()).compareTo(o2.getLabel(PreferencesUtil.getGlobalLanguage()));
+            }
+        };
+           noDataStatusCombo = formFactory.createEnumComboElement(NoDescriptiveDataStatus.class, formElement,comp, style, true);
+        noDataStatusCombo.setSelection(entity.getNoDataStatus());
+           comboMeasurementUnit = formFactory.createDefinedTermComboElement(TermType.MeasurementUnit, formElement, "Measurement Unit", null, style);
         comboMeasurementUnit.setTerms(new ArrayList<MeasurementUnit>(entity.getFeature().getRecommendedMeasurementUnits()));
         comboMeasurementUnit.setSelection(entity.getUnit());
-               section_statisticalMeasurementValues = formFactory.createStatisticalMeasurementValueSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(StatisticalMeasurementValueSection.class, entity.getClass().getCanonicalName(), true));
+               section_statisticalMeasurementValues = formFactory.createStatisticalMeasurementValueSection(formElement, StoreUtil.getSectionStyle(StatisticalMeasurementValueSection.class, entity.getClass().getCanonicalName(), true));
                section_statisticalMeasurementValues.setEntity(entity);
                section_statisticalMeasurementValues.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-               if (entity.getFeature().getRecommendedModifierEnumeration() != null && !entity.getFeature().getRecommendedModifierEnumeration().isEmpty()){
+               if (!CdmUtils.isNullSafeEmpty(entity.getFeature().getRecommendedModifierEnumeration()) || !CdmUtils.isNullSafeEmpty(entity.getModifiers())){
             createModifier(formElement, entity, style);
         }else{
             createFreetextModifier(formElement, entity, style);
         }
        }
 
-       @Override
-       public void handleEvent(Object eventSource) {
-               if(eventSource == comboMeasurementUnit){
-                       getEntity().setUnit(comboMeasurementUnit.getSelection());
-                       comboMeasurementUnit.removeEmptyElement();
-               }else if (eventSource == section_statisticalMeasurementValues){
-                       // FIXME
-               }
-       }
+    @Override
+    public void handleEvent(Object eventSource) {
+        super.handleEvent(eventSource);
+        if (eventSource == comboMeasurementUnit) {
+            getEntity().setUnit(comboMeasurementUnit.getSelection());
+            comboMeasurementUnit.removeEmptyElement();
+        } else if (eventSource == section_statisticalMeasurementValues) {
+            // FIXME
+        } else if (eventSource == noDataStatusCombo) {
+            getEntity().setNoDataStatus(noDataStatusCombo.getSelection());
+            if (noDataStatusCombo.getSelection() != null) {
+                this.setEnabled(false);
+                if (!this.getEntity().getStatisticalValues().isEmpty()) {
+                    tempData = this.getEntity().clone();
+                }
+                this.getEntity().getStatisticalValues().clear();
+            } else {
+                if (tempData != null) {
+                    this.getEntity().getStatisticalValues().addAll(tempData.getStatisticalValues());
+                }
+                this.setEnabled(true);
+            }
+            noDataStatusCombo.setEnabled(true);
+        }
+    }
+
+    @Override
+    public void fillFields() {
+        if (getEntity() != null) {
+            super.fillFields();
+
+            comboMeasurementUnit.setSelection(getEntity().getUnit());
+            section_statisticalMeasurementValues.setEntity(getEntity());
+            noDataStatusCombo.setSelection(getEntity().getNoDataStatus());
+            if (getEntity().getNoDataStatus() != null) {
+                this.setEnabled(false);
+                noDataStatusCombo.setEnabled(true);
+            }
+
+        }
+
+    }
+
+    @Override
+    public void updateControlStates() {
+        Collection<Object> except = new ArrayList<Object>();
+        for (ICdmFormElement formElement : getElements()) {
+            if (formElement instanceof IEnableableFormElement && !((IEnableableFormElement) formElement).isEnabled()) {
+                except.add(formElement);
+            }
+        }
+
+        if ((getEntity().getInDescription() != null
+                && (getEntity().getInDescription().isComputed() || getEntity().getInDescription().isCloneForSource())
+                && PreferencesUtil.isComputedDesciptionHandlingDisabled())) {
+            enabled = false;
+        } else if (getEntity().getNoDataStatus() != null) {
+            enabled = false;
+            except.add(noDataStatusCombo);
+        } else {
+            enabled = true;
+        }
+        setEnabled(enabled, except);
+
+    }
 }
index fa310f3a599e29e4c69a2950a5feb079cec8ff69..8438cc8734961a0047b1553d515de3b5d7d92bc0 100644 (file)
@@ -11,6 +11,7 @@ package eu.etaxonomy.taxeditor.ui.section.description.detail;
 
 import java.util.Map;
 
+import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
@@ -55,8 +56,8 @@ public class TaxonInteractionDetailElement extends
         *            a int.
         */
        public TaxonInteractionDetailElement(CdmFormFactory formFactory,
-                       ICdmFormElement formElement, TaxonInteraction entity, int style) {
-               super(formFactory, formElement, entity, style);
+                       ICdmFormElement formElement, TaxonInteraction entity, boolean enabled, int style) {
+               super(formFactory, formElement, entity, enabled, style);
        }
 
        /** {@inheritDoc} */
@@ -65,7 +66,7 @@ public class TaxonInteractionDetailElement extends
                        TaxonInteraction entity, int style) {
 
            taxonSelection = formFactory
-                .createSelectionElement(Taxon.class,//getConversationHolder(),
+                .createSelectionElement(Taxon.class,
                         formElement, "Taxon",
                         CdmBase.deproxy(entity.getTaxon2(),Taxon.class),
                         EntitySelectionElement.ALL, style);
@@ -79,7 +80,7 @@ public class TaxonInteractionDetailElement extends
                     CdmStore.getDefaultLanguage()).getText());
         }
         createTimePeriod(formElement, entity, style);
-        if (entity.getFeature().getRecommendedModifierEnumeration() != null && !entity.getFeature().getRecommendedModifierEnumeration().isEmpty()){
+        if (!CdmUtils.isNullSafeEmpty(entity.getFeature().getRecommendedModifierEnumeration()) || !CdmUtils.isNullSafeEmpty(entity.getModifiers())){
             createModifier(formElement, entity, style);
         }else{
             createFreetextModifier(formElement, entity, style);
@@ -96,4 +97,15 @@ public class TaxonInteractionDetailElement extends
                        getEntity().putDescription(CdmStore.getDefaultLanguage(), interactionDescription.getText());
                }
        }
+
+       @Override
+       public void fillFields() {
+               if (getEntity()!= null) {
+                       super.fillFields();
+                       taxonSelection.setEntity(getEntity().getTaxon2());
+                       interactionDescription.setText(getEntity().getDescription(CdmStore.getDefaultLanguage()));
+
+               }
+
+       }
 }
old mode 100755 (executable)
new mode 100644 (file)
index dbd5385..269abad
@@ -28,9 +28,9 @@ public class TemporalDataDetailElement extends AbstractDetailedDescriptionDetail
      * @param entity
      * @param style
      */
-    public TemporalDataDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement, TemporalData entity,
+    public TemporalDataDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement, TemporalData entity, boolean enabled,
             int style) {
-        super(formFactory, formElement, entity, style);
+        super(formFactory, formElement, entity, enabled, style);
 
     }
 
@@ -46,4 +46,13 @@ public class TemporalDataDetailElement extends AbstractDetailedDescriptionDetail
 
     }
 
+       @Override
+       public void fillFields() {
+               if (getEntity() != null) {
+                       super.fillFields();
+                       timePeriod.setTimePeriod(getEntity().getPeriod());
+               }
+               
+       }
+
 }
index e0b8d7191a929e1278ecd24d5c579ed45dc01cd0..65df6d439c3f9b4dafe9183e4428dda59fe081b2 100644 (file)
@@ -14,6 +14,7 @@ import org.eclipse.swt.SWT;
 
 import eu.etaxonomy.cdm.model.description.TextData;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.MultilanguageTextElement;
 
@@ -39,8 +40,8 @@ public class TextDataDetailElement extends AbstractDetailedDescriptionDetailElem
         * @param style a int.
         */
        public TextDataDetailElement(CdmFormFactory formFactory,
-                       ICdmFormElement formElement, TextData entity, int style) {
-               super(formFactory, formElement, entity, style);
+                       ICdmFormElement formElement, TextData entity, boolean enabled, int style) {
+               super(formFactory, formElement, entity, enabled, style);
        }
 
        /** {@inheritDoc} */
@@ -58,6 +59,7 @@ public class TextDataDetailElement extends AbstractDetailedDescriptionDetailElem
        public void handleEvent(Object eventSource) {
            super.handleEvent(eventSource);
                if(eventSource == multilanguageTextElement){
+                       firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
 //                     getEntity().setMultiLanguageText(multilanguageTextElement.getMultilanguageText());
                }
        }
@@ -73,4 +75,13 @@ public class TextDataDetailElement extends AbstractDetailedDescriptionDetailElem
            }
            super.propertyChange(event);
        }
+
+       @Override
+       public void fillFields() {
+               if (getEntity()!= null) {
+                       super.fillFields();
+                       multilanguageTextElement.setMultilanguageText(getEntity().getMultilanguageText());
+               }
+               
+       }
 }
index ef8635ebd36af2054274f0dc5bc63b5b9d591644..b679e90e86ae82de9b666c22a5885098a248725c 100644 (file)
@@ -16,7 +16,7 @@ import org.eclipse.swt.graphics.Color;
 
 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.DefinedTermBase;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -27,14 +27,13 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author pplitzner
  * @since Aug 16, 2019
- *
  */
 public abstract class AbstractApplicableElement extends AbstractEntityCollectionElement<FeatureState> {
 
-    private TermComboElement<State> comboState;
+    private TermComboElement<DefinedTermBase<?>> comboState;
     private EntitySelectionElement<Feature> selectFeature;
 
-    public AbstractApplicableElement(CdmFormFactory formFactory, AbstractFormSection section, FeatureState entity,
+    public AbstractApplicableElement(CdmFormFactory formFactory, AbstractFormSection<?> section, FeatureState entity,
             SelectionListener removeListener, Color backgroundColor, int style) {
         super(formFactory, section, entity, removeListener, backgroundColor, style);
 
@@ -46,6 +45,9 @@ public abstract class AbstractApplicableElement extends AbstractEntityCollection
         comboState = formFactory.createDefinedTermComboElement(Collections.EMPTY_LIST, element, getComboLabel(), null, style);
         comboState.setEnabled(false);
         selectFeature.setEnabled(false);
+
+        selectFeature.setEntity(entity.getFeature());
+        comboState.setSelection(entity.getState());
     }
 
     protected abstract String getComboLabel();
@@ -53,8 +55,10 @@ public abstract class AbstractApplicableElement extends AbstractEntityCollection
     @Override
     public void setEntity(FeatureState entity) {
         this.entity = entity;
-        selectFeature.setEntity(entity.getFeature());
-        comboState.setSelection(entity.getState());
+        if (selectFeature != null){
+               selectFeature.setEntity(entity.getFeature());
+               comboState.setSelection(entity.getState());
+        }
     }
 
     @Override
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..2d7d153
--- /dev/null
@@ -0,0 +1,86 @@
+/**
+* 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.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.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<DefinedTermBase> 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());
+               //FIXME 10196
+               List<DefinedTermBase> 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);
+    }
+}
\ No newline at end of file
index bd23b933420d709b88bf7d3512b88fe22dced25c..4610a06910c0c18fce4b2aa174ef0d9bf221053e 100644 (file)
 */
 package eu.etaxonomy.taxeditor.ui.section.feature;
 
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.Character;
-import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.cdm.model.term.Representation;
-import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.editor.definedterm.TermBasePropertyTester;
+import eu.etaxonomy.taxeditor.model.ColorResources;
+import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LabelElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.element.RemovableTextElement;
 import eu.etaxonomy.taxeditor.ui.element.RepresentationElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.MeasurementUnitCollectionSection;
-import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedModifierVocabulariesCollectionSection;
-import eu.etaxonomy.taxeditor.ui.section.vocabulary.StateVocabularyCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedModifierCollectionsCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedStateCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.StatisticalMeasureCollectionSection;
 
 /**
- *
  * @author pplitzner
  * @since Dec 21, 2017
- *
  */
 public class CharacterDetailElement extends AbstractCdmDetailElement<Character> {
 
     private ICdmFormElement parentFormElement;
 
-    protected RepresentationElement element_Representation;
-
-    private TermComboElement<DefinedTerm> comboStructuralModifier;
+    private RepresentationElement element_Representation;
 
     private CheckboxElement supportsQuantitativeData;
 
     private CheckboxElement supportsCategoricalData;
 
-    private StateVocabularyCollectionSection sectionStateVocabularies;
+    private CheckboxElement availableForTaxon;
+    private CheckboxElement availableForTaxonName;
+    private CheckboxElement availableForSpecimenOrObservation;
+
+    private RecommendedStateCollectionSection sectionStateVocabularies;
 
     private MeasurementUnitCollectionSection sectionMeasurementUnits;
 
     private StatisticalMeasureCollectionSection sectionStatisticalMeasures;
 
-    private RecommendedModifierVocabulariesCollectionSection sectionModifierVocabularies;
+    private RecommendedModifierCollectionsCollectionSection sectionModifierVocabularies;
+    private Label labelText_structure;
+    private Text text_structure;
+
+    private Label labelText_property;
+    private Text text_property;
+
+    private RemovableTextElement ratioTo;
+
+    public CharacterDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+        super(formFactory, formElement);
+    }
+
+    @Override
+    protected void createControls(ICdmFormElement formElement, Character entity, int style) {
+        this.parentFormElement = formElement;
+        element_Representation = formFactory.createTranslatableRepresentationElement(formElement,
+                entity.getPreferredRepresentation(CdmStore.getDefaultLanguage()), entity, 100, style, true);
+        if (labelText_property != null) {
+            labelText_structure.dispose();
+        }
+        labelText_structure = new Label(formElement.getLayoutComposite(), SWT.NONE);
+        labelText_structure.setText("Structure");
+        if (text_structure != null) {
+            text_structure.dispose();
+        }
+        text_structure = new Text(formElement.getLayoutComposite(), SWT.WRAP);
+        text_structure.setText(CharacterNodeDetailElement.getStructureText(entity));
+        text_structure.setEditable(false);
+        text_structure.setLayoutData(LayoutConstants.FILL());
+        text_structure.setForeground(ColorResources.getColor(Resources.BLACK));
+        if (labelText_property != null) {
+            labelText_property.dispose();
+        }
+        labelText_property = new Label(formElement.getLayoutComposite(), SWT.NONE);
+        labelText_property.setText("Property");
+        if (text_property != null) {
+            text_property.dispose();
+        }
+        text_property = new Text(formElement.getLayoutComposite(), SWT.WRAP);
+        text_property.setEditable(false);
+        text_property.setText(CharacterNodeDetailElement.getPropertyText(entity));
+        text_property.setLayoutData(LayoutConstants.FILL());
+        text_property.setForeground(ColorResources.getColor(Resources.BLACK));
 
-       public CharacterDetailElement(CdmFormFactory formFactory,
-                       ICdmFormElement formElement) {
-               super(formFactory, formElement);
-       }
+        ratioTo = formFactory.createRemovableTextField(formElement, "Ratio to",
+                CharacterNodeDetailElement.getRatioToText(entity), style);
 
-       @Override
-       protected void createControls(ICdmFormElement formElement, Character entity, int style) {
-           this.parentFormElement = formElement;
-           element_Representation = formFactory.createTranslatableRepresentationElement(formElement,  entity.getPreferredRepresentation(CdmStore.getDefaultLanguage()),entity, 100, style, true);
-           CharacterNodeDetailElement.createText(formElement, "Structure", CharacterNodeDetailElement.getStructureText(entity));
-           CharacterNodeDetailElement.createText(formElement, "Property", CharacterNodeDetailElement.getPropertyText(entity));
+        supportsQuantitativeData = formFactory.createCheckbox(formElement, "Supports Quantitative Data",
+                entity.isSupportsQuantitativeData(), style);
+        supportsCategoricalData = formFactory.createCheckbox(formElement, "Supports Categorical Data",
+                entity.isSupportsCategoricalData(), style);
 
-        comboStructuralModifier = formFactory.createDefinedTermComboElement(TermType.StructureModifier, formElement, "Structural Modifier", entity.getStructureModifier(), style);
+        LabelElement availableLabel = formFactory.createLabel(formElement, "Available for");
+        availableLabel.setBold();
 
-           supportsQuantitativeData = formFactory.createCheckbox(formElement, "Supports Quantitative Data", entity.isSupportsQuantitativeData(), style);
-           supportsCategoricalData = formFactory.createCheckbox(formElement, "Supports Categorical Data", entity.isSupportsCategoricalData(), style);
+        availableForTaxon = formFactory.createCheckbox(formElement, "Taxon", entity.isAvailableForTaxon(), style);
+        availableForTaxonName = formFactory.createCheckbox(formElement, "Taxon Name", entity.isAvailableForTaxonName(),
+                style);
+        availableForSpecimenOrObservation = formFactory.createCheckbox(formElement, "Occurrence",
+                entity.isAvailableForOccurrence(), style);
 
         if (supportsCategoricalData.getSelection()) {
-            sectionStateVocabularies = formFactory.createStateVocabulariesSection(getConversationHolder(),
-                    parentFormElement, StoreUtil.getSectionStyle(StateVocabularyCollectionSection.class, entity.getClass().getCanonicalName(), true));
+            sectionStateVocabularies = formFactory.createStateVocabulariesSection(parentFormElement,
+                    StoreUtil.getSectionStyle(RecommendedStateCollectionSection.class,
+                            entity.getClass().getCanonicalName(), true));
             sectionStateVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
             sectionStateVocabularies.setEntity(entity);
         }
         if (supportsQuantitativeData.getSelection()) {
-            sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(getConversationHolder(),
-                    parentFormElement, StoreUtil.getSectionStyle(MeasurementUnitCollectionSection.class, entity.getClass().getCanonicalName(), true));
+            sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(parentFormElement,
+                    StoreUtil.getSectionStyle(MeasurementUnitCollectionSection.class,
+                            entity.getClass().getCanonicalName(), true));
             sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
             sectionMeasurementUnits.setEntity(entity);
 
-            sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(getConversationHolder(),
-                    parentFormElement, StoreUtil.getSectionStyle(StatisticalMeasureCollectionSection.class, entity.getClass().getCanonicalName(), true));
+            sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(parentFormElement,
+                    StoreUtil.getSectionStyle(StatisticalMeasureCollectionSection.class,
+                            entity.getClass().getCanonicalName(), true));
             sectionStatisticalMeasures.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
             sectionStatisticalMeasures.setEntity(entity);
         }
         if (supportsCategoricalData.getSelection() || supportsQuantitativeData.getSelection()) {
             sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesCollectionSection(
-                    getConversationHolder(), parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierVocabulariesCollectionSection.class, entity.getClass().getCanonicalName(), true));
+                    parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierCollectionsCollectionSection.class,
+                            entity.getClass().getCanonicalName(), true));
             sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
             sectionModifierVocabularies.setEntity(entity);
         }
 
     }
 
-
     @Override
     public void setEntity(Character entity) {
         super.setEntity(entity);
         setEnabled(TermBasePropertyTester.isModifiable(entity));
     }
 
-       @Override
-       public void handleEvent(Object eventSource) {
-           if(eventSource == comboStructuralModifier){
-               getEntity().setStructureModifier(comboStructuralModifier.getSelection());
-           }
-           if(eventSource == supportsQuantitativeData || eventSource == supportsCategoricalData){
-               //if any type is selected disable supportsTextData
-               getEntity().setSupportsTextData(false);
-           }
-           if(eventSource == supportsQuantitativeData){
-               getEntity().setSupportsQuantitativeData(supportsQuantitativeData.getSelection());
-               if(supportsQuantitativeData.getSelection()){
-                   activateQuantitativeWidgets();
-               }
-               else{
-                   removeQuantitativeWidgets();
-               }
+    @Override
+    public void handleEvent(Object eventSource) {
+        if (eventSource == ratioTo) {
+            if (!ratioTo.isState()) {
+                getEntity().setRatioToStructure(null);
+                this.getEntity().getTitleCache();
+                System.err.println(this.getEntity().getTitleCache());
+            }
+        }
+
+        if (eventSource == supportsQuantitativeData) {
+            getEntity().setSupportsQuantitativeData(supportsQuantitativeData.getSelection());
+            if (supportsQuantitativeData.getSelection()) {
+                activateQuantitativeWidgets();
+            } else {
+                removeQuantitativeWidgets();
+            }
             StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
-           }
-           else if(eventSource == supportsCategoricalData){
-               getEntity().setSupportsCategoricalData(supportsCategoricalData.getSelection());
+        } else if (eventSource == supportsCategoricalData) {
+            getEntity().setSupportsCategoricalData(supportsCategoricalData.getSelection());
             if (supportsCategoricalData.getSelection()) {
                 activateCategoricalWidgets();
+            } else {
+                removeCategoricalWidgets();
             }
-               else{
-                   removeCategoricalWidgets();
-               }
             StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
-           }
-           else if (eventSource == element_Representation) {
+        } else if (eventSource == element_Representation) {
             Representation selectedRepresentation = element_Representation.getSelectedRepresentation();
-            if(selectedRepresentation!=null){
+            if (selectedRepresentation != null) {
                 Language representationLanguage = selectedRepresentation.getLanguage();
-                if(representationLanguage==null){
+                if (representationLanguage == null) {
                     representationLanguage = Language.getDefaultLanguage();
                 }
-                getEntity().setLabel(selectedRepresentation.getLabel(),  representationLanguage);
-                getEntity().getRepresentation(representationLanguage).setAbbreviatedLabel(selectedRepresentation.getAbbreviatedLabel());
+                getEntity().setLabel(selectedRepresentation.getLabel(), representationLanguage);
+                getEntity().getRepresentation(representationLanguage)
+                        .setAbbreviatedLabel(selectedRepresentation.getAbbreviatedLabel());
                 getEntity().getRepresentation(representationLanguage).setText(selectedRepresentation.getDescription());
             }
             getEntity().setTitleCache(null);
+        } else if (eventSource == availableForSpecimenOrObservation) {
+            getEntity().setAvailableForOccurrence(availableForSpecimenOrObservation.getSelection());
+
+        } else if (eventSource == availableForTaxon) {
+            getEntity().setAvailableForTaxon(availableForTaxon.getSelection());
+
+        } else if (eventSource == availableForTaxonName) {
+            getEntity().setAvailableForTaxonName(availableForTaxonName.getSelection());
+
         }
-       }
-
-       private void activateQuantitativeWidgets(){
-           //disable categorical widgets
-           supportsCategoricalData.setSelection(false);
-           getEntity().setSupportsCategoricalData(false);
-           removeCategoricalWidgets();
-
-           //measurement units
-           sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(getConversationHolder(),
-                   parentFormElement, StoreUtil.getSectionStyle(MeasurementUnitCollectionSection.class, getEntity().getClass().getCanonicalName(), true));
-           sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-           sectionMeasurementUnits.setEntity(getEntity());
-
-           //statistical measures
-           sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(
-                   getConversationHolder(), parentFormElement, StoreUtil.getSectionStyle(StatisticalMeasureCollectionSection.class, getEntity().getClass().getCanonicalName(), true));
-           sectionStatisticalMeasures.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-           sectionStatisticalMeasures.setEntity(getEntity());
-
-           //modifiers
-           sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesCollectionSection(
-                   getConversationHolder(), parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierVocabulariesCollectionSection.class, getEntity().getClass().getCanonicalName(), true));
-           sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-           sectionModifierVocabularies.setEntity(getEntity());
-       }
-
-       private void removeQuantitativeWidgets(){
-           if(sectionMeasurementUnits!=null){
-               removeElementsAndControls(sectionMeasurementUnits);
-               removeElementsAndControls(sectionStatisticalMeasures);
-               removeElementsAndControls(sectionModifierVocabularies);
-           }
-       }
-
-       private void activateCategoricalWidgets(){
-           //disable quantitative widgeets
-           supportsQuantitativeData.setSelection(false);
-           getEntity().setSupportsQuantitativeData(false);
-           removeQuantitativeWidgets();
-
-           //states
-           sectionStateVocabularies = formFactory.createStateVocabulariesSection(getConversationHolder(),
-                parentFormElement, StoreUtil.getSectionStyle(StateVocabularyCollectionSection.class, getEntity().getClass().getCanonicalName(), true));
+
+    }
+
+    private void activateQuantitativeWidgets() {
+        // disable categorical widgets
+        supportsCategoricalData.setSelection(false);
+        getEntity().setSupportsCategoricalData(false);
+        removeCategoricalWidgets();
+
+        // measurement units
+        sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(parentFormElement,
+                StoreUtil.getSectionStyle(MeasurementUnitCollectionSection.class,
+                        getEntity().getClass().getCanonicalName(), true));
+        sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        sectionMeasurementUnits.setEntity(getEntity());
+
+        // statistical measures
+        sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(parentFormElement,
+                StoreUtil.getSectionStyle(StatisticalMeasureCollectionSection.class,
+                        getEntity().getClass().getCanonicalName(), true));
+        sectionStatisticalMeasures.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        sectionStatisticalMeasures.setEntity(getEntity());
+
+        // modifiers
+        sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesCollectionSection(
+                parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierCollectionsCollectionSection.class,
+                        getEntity().getClass().getCanonicalName(), true));
+        sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        sectionModifierVocabularies.setEntity(getEntity());
+    }
+
+    private void removeQuantitativeWidgets() {
+        if (sectionMeasurementUnits != null) {
+            removeElementsAndControls(sectionMeasurementUnits);
+            removeElementsAndControls(sectionStatisticalMeasures);
+            removeElementsAndControls(sectionModifierVocabularies);
+        }
+    }
+
+    private void activateCategoricalWidgets() {
+        // disable quantitative widgeets
+        supportsQuantitativeData.setSelection(false);
+        getEntity().setSupportsQuantitativeData(false);
+        removeQuantitativeWidgets();
+
+        // states
+        sectionStateVocabularies = formFactory.createStateVocabulariesSection(parentFormElement,
+                StoreUtil.getSectionStyle(RecommendedStateCollectionSection.class,
+                        getEntity().getClass().getCanonicalName(), true));
         sectionStateVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         sectionStateVocabularies.setEntity(getEntity());
 
-        //modifiers
+        // modifiers
         sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesCollectionSection(
-                getConversationHolder(), parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierVocabulariesCollectionSection.class, getEntity().getClass().getCanonicalName(), true));
+                parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierCollectionsCollectionSection.class,
+                        getEntity().getClass().getCanonicalName(), true));
         sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         sectionModifierVocabularies.setEntity(getEntity());
-       }
-
-       private void removeCategoricalWidgets(){
-           if(sectionStateVocabularies!=null){
-               removeElementsAndControls(sectionStateVocabularies);
-               removeElementsAndControls(sectionModifierVocabularies);
-           }
-       }
+    }
+
+    private void removeCategoricalWidgets() {
+        if (sectionStateVocabularies != null) {
+            removeElementsAndControls(sectionStateVocabularies);
+            removeElementsAndControls(sectionModifierVocabularies);
+        }
+    }
+
+    @Override
+    public void fillFields() {
+        if (getEntity() != null) {
+            element_Representation.setTerm(getEntity(), isEnabled());
+            supportsQuantitativeData.setSelection(getEntity().isSupportsQuantitativeData());
+            supportsCategoricalData.setSelection(getEntity().isSupportsCategoricalData());
+            ;
+            availableForTaxon.setSelection(getEntity().isAvailableForTaxon());
+            availableForTaxonName.setSelection(getEntity().isAvailableForTaxonName());
+            availableForSpecimenOrObservation.setSelection(getEntity().isAvailableForOccurrence());
+            sectionStateVocabularies.setEntity(getEntity());
+            sectionMeasurementUnits.setEntity(getEntity());
+            sectionStatisticalMeasures.setEntity(getEntity());
+            sectionModifierVocabularies.setEntity(getEntity());
+
+            text_structure.setText(CharacterNodeDetailElement.getStructureText(getEntity()));
+            text_property.setText(CharacterNodeDtoDetailElement.getPropertyText(getEntity()));
+            ratioTo.setText(CharacterNodeDetailElement.getRatioToText(getEntity()));
+        }
+
+    }
 
 }
index 941e49da17bcffc731d25ed87c7042cb5e8e119a..40e4d677fb33372aa70995231814a8b1819624f4 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.ui.section.feature;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.Character;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -18,17 +17,15 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
 /**
- *
  * @author pplitzner
  * @since Dec 21, 2017
- *
  */
 public class CharacterDetailSection extends AbstractCdmDetailSection<Character> {
 
        public CharacterDetailSection(CdmFormFactory formFactory,
-               ConversationHolder conversation, ICdmFormElement parentElement,
+               ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
        @Override
@@ -36,13 +33,9 @@ public class CharacterDetailSection extends AbstractCdmDetailSection<Character>
                return "Character";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected AbstractCdmDetailElement<Character> createCdmDetailElement(AbstractCdmDetailSection<Character> parentElement,
             int style) {
         return formFactory.createCharacterDetailElement(parentElement, style);
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/CharacterDtoDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/CharacterDtoDetailElement.java
new file mode 100644 (file)
index 0000000..9f079bd
--- /dev/null
@@ -0,0 +1,310 @@
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.feature;
+
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.description.Character;
+import eu.etaxonomy.cdm.model.term.Representation;
+import eu.etaxonomy.cdm.persistence.dto.CharacterDto;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermBasePropertyTester;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+import eu.etaxonomy.taxeditor.model.ColorResources;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LabelElement;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.element.RemovableTextElement;
+import eu.etaxonomy.taxeditor.ui.element.RepresentationElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.MeasurementUnitCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.MeasurementUnitDtoCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedModifierCollectionsCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedModifierCollectionsDtoCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedStateCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedStateDtoCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.StatisticalMeasureCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.StatisticalMeasureDtoCollectionSection;
+
+/**
+ * @author pplitzner
+ * @since Dec 21, 2017
+ */
+public class CharacterDtoDetailElement extends AbstractCdmDetailElement<CharacterDto> {
+
+    private ICdmFormElement parentFormElement;
+
+    protected RepresentationElement element_Representation;
+
+    private CheckboxElement supportsQuantitativeData;
+
+    private CheckboxElement supportsCategoricalData;
+
+    private CheckboxElement availableForTaxon;
+    private CheckboxElement availableForTaxonName;
+    private CheckboxElement availableForSpecimenOrObservation;
+
+    private RecommendedStateDtoCollectionSection sectionStateVocabularies;
+
+    private MeasurementUnitDtoCollectionSection sectionMeasurementUnits;
+
+    private StatisticalMeasureDtoCollectionSection sectionStatisticalMeasures;
+
+    private RecommendedModifierCollectionsDtoCollectionSection sectionModifierVocabularies;
+    private Label labelText_structure;
+    private Text text_structure;
+
+    private Label labelText_property;
+    private Text text_property;
+
+    private RemovableTextElement ratioTo;
+
+    public CharacterDtoDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+        super(formFactory, formElement);
+    }
+
+    @Override
+    protected void createControls(ICdmFormElement formElement, CharacterDto entity, int style) {
+        this.parentFormElement = formElement;
+
+        element_Representation = formFactory.createTranslatableRepresentationElementDto(formElement,
+                entity.getPreferredRepresentation(CdmStore.getDefaultLanguage()), entity, 100, style, true);
+        if (labelText_property != null) {
+            labelText_structure.dispose();
+        }
+        labelText_structure = new Label(formElement.getLayoutComposite(), SWT.NONE);
+        labelText_structure.setText("Structure");
+        if (text_structure != null) {
+            text_structure.dispose();
+        }
+        text_structure = new Text(formElement.getLayoutComposite(), SWT.WRAP);
+        text_structure.setText(entity.getStructure().getPath());
+        text_structure.setEditable(false);
+        text_structure.setLayoutData(LayoutConstants.FILL());
+        text_structure.setForeground(ColorResources.getColor(Resources.BLACK));
+        if (labelText_property != null) {
+            labelText_property.dispose();
+        }
+        labelText_property = new Label(formElement.getLayoutComposite(), SWT.NONE);
+        labelText_property.setText("Property");
+        if (text_property != null) {
+            text_property.dispose();
+        }
+        text_property = new Text(formElement.getLayoutComposite(), SWT.WRAP);
+        text_property.setEditable(false);
+        text_property.setText(entity.getProperty().getPath());
+        text_property.setLayoutData(LayoutConstants.FILL());
+        text_property.setForeground(ColorResources.getColor(Resources.BLACK));
+        ratioTo = formFactory.createRemovableTextField(formElement, "Ratio to",
+                entity.getRatioTo() != null ? entity.getRatioTo().getPath() : null, style);
+
+        supportsQuantitativeData = formFactory.createCheckbox(formElement, "Supports Quantitative Data",
+                ((FeatureDto) entity).isSupportsQuantitativeData(), style);
+        supportsCategoricalData = formFactory.createCheckbox(formElement, "Supports Categorical Data",
+                ((FeatureDto) entity).isSupportsCategoricalData(), style);
+        LabelElement availableLabel = formFactory.createLabel(formElement, "Available for");
+        availableLabel.setBold();
+        availableForTaxon = formFactory.createCheckbox(formElement, "Taxon", entity.isAvailableForTaxon(), style);
+        availableForTaxonName = formFactory.createCheckbox(formElement, "Taxon Name", entity.isAvailableForTaxonName(),
+                style);
+        availableForSpecimenOrObservation = formFactory.createCheckbox(formElement, "Occurrence",
+                entity.isAvailableForOccurrence(), style);
+        if (supportsCategoricalData.getSelection()) {
+            sectionStateVocabularies = formFactory.createStateVocabulariesDtoSection(parentFormElement,
+                    StoreUtil.getSectionStyle(RecommendedStateCollectionSection.class,
+                            entity.getClass().getCanonicalName(), true));
+            sectionStateVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+            sectionStateVocabularies.setEntity((entity));
+        }
+        if (supportsQuantitativeData.getSelection()) {
+            sectionMeasurementUnits = formFactory.createMeasurementUnitDtoCollectionSection(parentFormElement,
+                    StoreUtil.getSectionStyle(MeasurementUnitCollectionSection.class,
+                            entity.getClass().getCanonicalName(), true));
+            sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+            sectionMeasurementUnits.setEntity((entity));
+
+            sectionStatisticalMeasures = formFactory.createStatisticalMeasureDtoCollectionSection(parentFormElement,
+                    StoreUtil.getSectionStyle(StatisticalMeasureCollectionSection.class,
+                            entity.getClass().getCanonicalName(), true));
+            sectionStatisticalMeasures.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+            sectionStatisticalMeasures.setEntity((entity));
+        }
+        if (supportsCategoricalData.getSelection() || supportsQuantitativeData.getSelection()) {
+            sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesDtoCollectionSection(
+                    parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierCollectionsCollectionSection.class,
+                            entity.getClass().getCanonicalName(), true));
+            sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+            sectionModifierVocabularies.setEntity((entity));
+        }
+
+    }
+
+    public String getPropertyText() {
+        return getEntity().getProperty() != null ? getEntity().getProperty().getPath() : "[no property]";
+    }
+
+    public String getStructureText(Character entity) {
+        return entity.getStructure() != null ? entity.getStructure().getPath() : "[no structure]";
+    }
+
+    @Override
+    public void setEntity(CharacterDto entity) {
+        super.setEntity(entity);
+        setEnabled(TermBasePropertyTester.isModifiable(entity));
+    }
+
+    @Override
+    public void handleEvent(Object eventSource) {
+        if (eventSource == ratioTo) {
+            if (!ratioTo.isState()) {
+                getEntity().setRatioTo(null);
+                element_Representation.setTermDto(getEntity(), enabled);
+            }
+        }
+
+        if (eventSource == supportsQuantitativeData) {
+            getEntity().setSupportsQuantitativeData(supportsQuantitativeData.getSelection());
+            getEntity().setSupportsCategoricalData(supportsCategoricalData.getSelection());
+            if (supportsQuantitativeData.getSelection()) {
+                activateQuantitativeWidgets();
+            } else {
+                removeQuantitativeWidgets();
+            }
+            StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
+        } else if (eventSource == supportsCategoricalData) {
+            getEntity().setSupportsCategoricalData(supportsCategoricalData.getSelection());
+            getEntity().setSupportsQuantitativeData(supportsQuantitativeData.getSelection());
+            if (supportsCategoricalData.getSelection()) {
+                activateCategoricalWidgets();
+            } else {
+                removeCategoricalWidgets();
+            }
+            StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
+        } else if (eventSource == element_Representation) {
+            Representation selectedRepresentation = element_Representation.getSelectedRepresentation();
+            if (selectedRepresentation != null) {
+                Language representationLanguage = selectedRepresentation.getLanguage();
+                if (representationLanguage == null) {
+                    representationLanguage = Language.getDefaultLanguage();
+                }
+            }
+        } else if (eventSource == availableForSpecimenOrObservation) {
+            getEntity().setAvailableForOccurrence(availableForSpecimenOrObservation.getSelection());
+
+        } else if (eventSource == availableForTaxon) {
+            getEntity().setAvailableForTaxon(availableForTaxon.getSelection());
+
+        } else if (eventSource == availableForTaxonName) {
+            getEntity().setAvailableForTaxonName(availableForTaxonName.getSelection());
+
+        }
+    }
+
+    private void activateQuantitativeWidgets() {
+        // disable categorical widgets
+        supportsCategoricalData.setSelection(false);
+        getEntity().setSupportsCategoricalData(false);
+        removeCategoricalWidgets();
+
+        // measurement units
+        sectionMeasurementUnits = formFactory.createMeasurementUnitDtoCollectionSection(parentFormElement,
+                StoreUtil.getSectionStyle(MeasurementUnitCollectionSection.class,
+                        getEntity().getClass().getCanonicalName(), true));
+        sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        sectionMeasurementUnits.setEntity((getEntity()));
+
+        // statistical measures
+        sectionStatisticalMeasures = formFactory.createStatisticalMeasureDtoCollectionSection(parentFormElement,
+                StoreUtil.getSectionStyle(StatisticalMeasureCollectionSection.class,
+                        getEntity().getClass().getCanonicalName(), true));
+        sectionStatisticalMeasures.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        sectionStatisticalMeasures.setEntity((getEntity()));
+
+        // modifiers
+        sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesDtoCollectionSection(
+                parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierCollectionsCollectionSection.class,
+                        getEntity().getClass().getCanonicalName(), true));
+        sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        sectionModifierVocabularies.setEntity((getEntity()));
+    }
+
+    private void removeQuantitativeWidgets() {
+        if (sectionMeasurementUnits != null) {
+            removeElementsAndControls(sectionMeasurementUnits);
+            removeElementsAndControls(sectionStatisticalMeasures);
+            removeElementsAndControls(sectionModifierVocabularies);
+        }
+    }
+
+    private void activateCategoricalWidgets() {
+        // disable quantitative widgeets
+        supportsQuantitativeData.setSelection(false);
+        getEntity().setSupportsQuantitativeData(false);
+        removeQuantitativeWidgets();
+
+        // states
+        sectionStateVocabularies = formFactory.createStateVocabulariesDtoSection(parentFormElement,
+                StoreUtil.getSectionStyle(RecommendedStateCollectionSection.class,
+                        getEntity().getClass().getCanonicalName(), true));
+        sectionStateVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        sectionStateVocabularies.setEntity((getEntity()));
+
+        // modifiers
+        sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesDtoCollectionSection(
+                parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierCollectionsCollectionSection.class,
+                        getEntity().getClass().getCanonicalName(), true));
+        sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        sectionModifierVocabularies.setEntity((getEntity()));
+    }
+
+    private void removeCategoricalWidgets() {
+        if (sectionStateVocabularies != null) {
+            removeElementsAndControls(sectionStateVocabularies);
+            removeElementsAndControls(sectionModifierVocabularies);
+        }
+    }
+
+    @Override
+    public void propertyChange(PropertyChangeEvent event) {
+        EventUtility.postEvent(WorkbenchEventConstants.ADD_SAVE_CANDIDATE, getEntity().getUuid());
+        super.propertyChange(event);
+
+    }
+
+    @Override
+    public void fillFields() {
+        if (getEntity() != null) {
+            element_Representation.setTermDto(getEntity(), true);
+            supportsQuantitativeData.setSelection(getEntity().isSupportsQuantitativeData());
+            supportsCategoricalData.setSelection(getEntity().isSupportsCategoricalData());
+            availableForTaxon.setSelection(getEntity().isAvailableForTaxon());
+            availableForTaxonName.setSelection(getEntity().isAvailableForTaxonName());
+            availableForSpecimenOrObservation.setSelection(getEntity().isAvailableForOccurrence());
+            sectionStateVocabularies.setEntity(getEntity());
+            sectionMeasurementUnits.setEntity(getEntity());
+            sectionStatisticalMeasures.setEntity(getEntity());
+            sectionModifierVocabularies.setEntity(getEntity());
+            text_structure.setText(getEntity().getStructure().getPath());
+            text_property.setText(getEntity().getProperty().getPath());
+            ratioTo.setText(getEntity().getRatioTo() != null ? getEntity().getRatioTo().getPath() : null);
+        }
+
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/CharacterDtoDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/CharacterDtoDetailSection.java
new file mode 100644 (file)
index 0000000..f911dea
--- /dev/null
@@ -0,0 +1,41 @@
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.feature;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.persistence.dto.CharacterDto;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+
+/**
+ * @author pplitzner
+ * @since Dec 21, 2017
+ */
+public class CharacterDtoDetailSection extends AbstractCdmDetailSection<CharacterDto> {
+
+       public CharacterDtoDetailSection(CdmFormFactory formFactory,
+               ICdmFormElement parentElement,
+                       ISelectionProvider selectionProvider, int style) {
+               super(formFactory, parentElement, selectionProvider, style);
+       }
+
+       @Override
+       public String getHeading() {
+               return "Character";
+       }
+
+    @Override
+    protected AbstractCdmDetailElement<CharacterDto> createCdmDetailElement(AbstractCdmDetailSection<CharacterDto> parentElement,
+            int style) {
+        return formFactory.createCharacterDtoDetailElement(parentElement, style);
+    }
+}
\ No newline at end of file
index 85c68a7366520c93957378952a24febba754bcf5..e49d37c9e0555e89f3d854f62cc513217e86fc63 100644 (file)
@@ -8,32 +8,14 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.feature;
 
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.Character;
-import eu.etaxonomy.cdm.model.term.DefinedTerm;
-import eu.etaxonomy.cdm.model.term.Representation;
 import eu.etaxonomy.cdm.model.term.TermNode;
-import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.editor.definedterm.TermBasePropertyTester;
-import eu.etaxonomy.taxeditor.model.ColorResources;
-import eu.etaxonomy.taxeditor.preference.Resources;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
-import eu.etaxonomy.taxeditor.ui.element.RepresentationElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.vocabulary.MeasurementUnitCollectionSection;
-import eu.etaxonomy.taxeditor.ui.section.vocabulary.RecommendedModifierVocabulariesCollectionSection;
-import eu.etaxonomy.taxeditor.ui.section.vocabulary.StateVocabularyCollectionSection;
-import eu.etaxonomy.taxeditor.ui.section.vocabulary.StatisticalMeasureCollectionSection;
 
 /**
  *
@@ -42,27 +24,11 @@ import eu.etaxonomy.taxeditor.ui.section.vocabulary.StatisticalMeasureCollection
  *
  */
 public class CharacterNodeDetailElement extends AbstractCdmDetailElement<TermNode<Character>> {
+    private CharacterDetailSection 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;
+    private InapplicableIfEntityCollectionSectionForNode sectionInapplicableIf;
+    private OnlyApplicableIfEntityCollectionSectionForNode sectionOnlyApplicableIf;
 
        public CharacterNodeDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
@@ -72,61 +38,23 @@ public class CharacterNodeDetailElement extends AbstractCdmDetailElement<TermNod
        @Override
        protected void createControls(ICdmFormElement formElement, TermNode<Character> entity, int style) {
            this.parentFormElement = formElement;
-           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());
-        }
-
+//         characterDetails = formFactory.createCharacterDetailElement(formElement, style);
+           characterDetails = formFactory.createCharacterDetailSection(formElement, null, StoreUtil.getSectionStyle(CharacterDetailSection.class, entity.getClass().getCanonicalName(), true));
+           characterDetails.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+           addElement(characterDetails);
+           addControl(characterDetails);
+           characterDetails.setEntity(entity.getTerm());
         // applicability
-        sectionInapplicableIf = formFactory.createInapplicableIfEntityCollectionSection(getConversationHolder(),
+        sectionInapplicableIf = formFactory.createInapplicableIfEntityCollectionSectionForNode(
                 formElement, StoreUtil.getSectionStyle(InapplicableIfEntityCollectionSection.class, entity.getTerm().getClass().getCanonicalName()));
         sectionInapplicableIf.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         sectionInapplicableIf.setEntity(getEntity());
-        sectionOnlyApplicableIf = formFactory.createOnlyApplicableIfEntityCollectionSection(getConversationHolder(),
-                formElement, StoreUtil.getSectionStyle(OnlyApplicableIfEntityCollectionSection.class, entity.getTerm().getClass().getCanonicalName()));
+        sectionOnlyApplicableIf = formFactory.createOnlyApplicableIfEntityCollectionSectionForNode(formElement,
+                StoreUtil.getSectionStyle(OnlyApplicableIfEntityCollectionSection.class, entity.getTerm().getClass().getCanonicalName()));
         sectionOnlyApplicableIf.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         sectionOnlyApplicableIf.setEntity(entity);
     }
 
-    public static void createText(ICdmFormElement formElement, String label, String path) {
-        Label labelText = new Label(formElement.getLayoutComposite(), SWT.NONE);
-        labelText.setText(label);
-        Text text = new Text(formElement.getLayoutComposite(), SWT.WRAP);
-           text.setText(path);
-           text.setEditable(false);
-           text.setLayoutData(LayoutConstants.FILL());
-           text.setForeground(ColorResources.getColor(Resources.BLACK));
-    }
-
     public static String getPropertyText(Character entity) {
         return entity.getProperty()!=null?StoreUtil.getPath(entity.getProperty()):"[no property]";
     }
@@ -135,113 +63,28 @@ public class CharacterNodeDetailElement extends AbstractCdmDetailElement<TermNod
         return entity.getStructure()!=null?StoreUtil.getPath(entity.getStructure()):"[no structure]";
     }
 
+    public static String getRatioToText(Character entity) {
+        return entity.getRatioToStructure()!=null?StoreUtil.getPath(entity.getRatioToStructure()):"[no ratio to structure]";
+    }
+
     @Override
     public void setEntity(TermNode<Character> entity) {
         super.setEntity(entity);
+        characterDetails.setEntity(entity.getTerm());
         setEnabled(TermBasePropertyTester.isModifiable(entity));
     }
 
        @Override
        public void handleEvent(Object eventSource) {
-           if(eventSource == comboStructuralModifier){
-               getEntity().getTerm().setStructureModifier(comboStructuralModifier.getSelection());
-           }
-           if(eventSource == supportsQuantitativeData || eventSource == supportsCategoricalData){
-               //if any type is selected disable supportsTextData
-               getEntity().getTerm().setSupportsTextData(false);
-           }
-           if(eventSource == supportsQuantitativeData){
-               getEntity().getTerm().setSupportsQuantitativeData(supportsQuantitativeData.getSelection());
-               if(supportsQuantitativeData.getSelection()){
-                   activateQuantitativeWidgets();
-               }
-               else{
-                   removeQuantitativeWidgets();
-               }
-            StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
-           }
-           else if(eventSource == supportsCategoricalData){
-               getEntity().getTerm().setSupportsCategoricalData(supportsCategoricalData.getSelection());
-            if (supportsCategoricalData.getSelection()) {
-                activateCategoricalWidgets();
-            }
-               else{
-                   removeCategoricalWidgets();
-               }
-            StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
-           }
-           else if (eventSource == element_Representation) {
-            Representation selectedRepresentation = element_Representation.getSelectedRepresentation();
-            if(selectedRepresentation!=null){
-                Language representationLanguage = selectedRepresentation.getLanguage();
-                if(representationLanguage==null){
-                    representationLanguage = Language.getDefaultLanguage();
-                }
-                getEntity().getTerm().setLabel(selectedRepresentation.getLabel(),  representationLanguage);
-                getEntity().getTerm().getRepresentation(representationLanguage).setAbbreviatedLabel(selectedRepresentation.getAbbreviatedLabel());
-                getEntity().getTerm().getRepresentation(representationLanguage).setText(selectedRepresentation.getDescription());
-            }
-            getEntity().getTerm().setTitleCache(null);
-        }
-       }
-
-       private void activateQuantitativeWidgets(){
-           //disable categorical widgets
-           supportsCategoricalData.setSelection(false);
-           getEntity().getTerm().setSupportsCategoricalData(false);
-           removeCategoricalWidgets();
 
-           //measurement units
-           sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(getConversationHolder(),
-                   parentFormElement, StoreUtil.getSectionStyle(MeasurementUnitCollectionSection.class, getEntity().getClass().getCanonicalName(), true));
-           sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-           sectionMeasurementUnits.setEntity(getEntity().getTerm());
 
-           //statistical measures
-           sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(
-                   getConversationHolder(), parentFormElement, StoreUtil.getSectionStyle(StatisticalMeasureCollectionSection.class, getEntity().getClass().getCanonicalName(), true));
-           sectionStatisticalMeasures.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-           sectionStatisticalMeasures.setEntity(getEntity().getTerm());
-
-           //modifiers
-           sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesCollectionSection(
-                   getConversationHolder(), parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierVocabulariesCollectionSection.class, getEntity().getClass().getCanonicalName(), true));
-           sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-           sectionModifierVocabularies.setEntity(getEntity().getTerm());
        }
 
-       private void removeQuantitativeWidgets(){
-           if(sectionMeasurementUnits!=null){
-               removeElementsAndControls(sectionMeasurementUnits);
-               removeElementsAndControls(sectionStatisticalMeasures);
-               removeElementsAndControls(sectionModifierVocabularies);
-           }
-       }
-
-       private void activateCategoricalWidgets(){
-           //disable quantitative widgeets
-           supportsQuantitativeData.setSelection(false);
-           getEntity().getTerm().setSupportsQuantitativeData(false);
-           removeQuantitativeWidgets();
-
-           //states
-           sectionStateVocabularies = formFactory.createStateVocabulariesSection(getConversationHolder(),
-                parentFormElement, StoreUtil.getSectionStyle(StateVocabularyCollectionSection.class, getEntity().getClass().getCanonicalName(), true));
-        sectionStateVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-        sectionStateVocabularies.setEntity(getEntity().getTerm());
-
-        //modifiers
-        sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesCollectionSection(
-                getConversationHolder(), parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierVocabulariesCollectionSection.class, getEntity().getClass().getCanonicalName(), true));
-        sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-        sectionModifierVocabularies.setEntity(getEntity().getTerm());
-       }
-
-       private void removeCategoricalWidgets(){
-           if(sectionStateVocabularies!=null){
-               removeElementsAndControls(sectionStateVocabularies);
-               removeElementsAndControls(sectionModifierVocabularies);
-           }
+       @Override
+       public void fillFields() {
+               characterDetails.setEntity(getEntity().getTerm());
+               sectionInapplicableIf.setEntity(getEntity());
+           sectionOnlyApplicableIf.setEntity(getEntity());
+               
        }
-
-}
+}
\ No newline at end of file
index 48eb49b7287fea16f2713c0a78faf879d30d1fc4..e6f5775052d60ef7122b83d06d20782fb6530faa 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.ui.section.feature;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.Character;
 import eu.etaxonomy.cdm.model.term.TermNode;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -22,14 +21,13 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  *
  * @author pplitzner
  * @since Aug 19, 2019
- *
  */
 public class CharacterNodeDetailSection extends AbstractCdmDetailSection<TermNode<Character>> {
 
        public CharacterNodeDetailSection(CdmFormFactory formFactory,
-               ConversationHolder conversation, ICdmFormElement parentElement,
+               ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
        @Override
@@ -37,13 +35,9 @@ public class CharacterNodeDetailSection extends AbstractCdmDetailSection<TermNod
                return "Character Node";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected AbstractCdmDetailElement<TermNode<Character>> createCdmDetailElement(AbstractCdmDetailSection<TermNode<Character>> parentElement,
             int style) {
         return formFactory.createCharacterNodeDetailElement(parentElement, style);
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/CharacterNodeDtoDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/CharacterNodeDtoDetailElement.java
new file mode 100644 (file)
index 0000000..0f8de04
--- /dev/null
@@ -0,0 +1,201 @@
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.feature;
+
+import org.eclipse.jface.util.PropertyChangeEvent;
+
+import eu.etaxonomy.cdm.model.description.Character;
+import eu.etaxonomy.cdm.persistence.dto.CharacterDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermBasePropertyTester;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+
+/**
+ *
+ * @author pplitzner
+ * @since Aug 19, 2019
+ *
+ */
+public class CharacterNodeDtoDetailElement extends AbstractCdmDetailElement<TermNodeDto> {
+    private CharacterDtoDetailSection characterDetails;
+
+    private ICdmFormElement parentFormElement;
+
+    private InapplicableIfEntityCollectionSection sectionInapplicableIf;
+    private OnlyApplicableIfEntityCollectionSection sectionOnlyApplicableIf;
+
+       public CharacterNodeDtoDetailElement(CdmFormFactory formFactory,
+                       ICdmFormElement formElement) {
+               super(formFactory, formElement);
+       }
+
+       @Override
+       protected void createControls(ICdmFormElement formElement, TermNodeDto entity, int style) {
+           this.parentFormElement = formElement;
+//         characterDetails = formFactory.createCharacterDetailElement(formElement, style);
+           characterDetails = formFactory.createCharacterDtoDetailSection(formElement, null, StoreUtil.getSectionStyle(CharacterDetailSection.class, entity.getClass().getCanonicalName(), true));
+           characterDetails.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+           addElement(characterDetails);
+           addControl(characterDetails);
+           characterDetails.setEntity((CharacterDto)entity.getTerm());
+
+        // applicability
+        sectionInapplicableIf = formFactory.createInapplicableIfEntityCollectionSection(
+                formElement, StoreUtil.getSectionStyle(InapplicableIfEntityCollectionSection.class, entity.getTerm().getClass().getCanonicalName()));
+        sectionInapplicableIf.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        sectionInapplicableIf.setEntity(getEntity());
+        sectionOnlyApplicableIf = formFactory.createOnlyApplicableIfEntityCollectionSection(
+                formElement, StoreUtil.getSectionStyle(OnlyApplicableIfEntityCollectionSection.class, entity.getTerm().getClass().getCanonicalName()));
+        sectionOnlyApplicableIf.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        sectionOnlyApplicableIf.setEntity(entity);
+    }
+
+
+
+    public static String getPropertyText(Character entity) {
+        return entity.getProperty()!=null?StoreUtil.getPath(entity.getProperty()):"[no property]";
+    }
+
+    public static String getStructureText(Character entity) {
+        return entity.getStructure()!=null?StoreUtil.getPath(entity.getStructure()):"[no structure]";
+    }
+
+    @Override
+    public void setEntity(TermNodeDto entity) {
+        super.setEntity(entity);
+        characterDetails.setEntity((CharacterDto)entity.getTerm());
+        setEnabled(TermBasePropertyTester.isModifiable(entity));
+    }
+
+    @Override
+    public void propertyChange(PropertyChangeEvent event) {
+        EventUtility.postEvent(WorkbenchEventConstants.ADD_SAVE_CHARACTER, getEntity());
+        super.propertyChange(event);
+
+    }
+
+       @Override
+       public void handleEvent(Object eventSource) {
+
+//         if(eventSource == characterDetails){
+//             getEntity().getTerm().setStructureModifier(comboStructuralModifier.getSelection());
+//         }
+//         if(eventSource == supportsQuantitativeData || eventSource == supportsCategoricalData){
+//             //if any type is selected disable supportsTextData
+//             getEntity().getTerm().setSupportsTextData(false);
+//         }
+//         if(eventSource == supportsQuantitativeData){
+//             getEntity().getTerm().setSupportsQuantitativeData(supportsQuantitativeData.getSelection());
+//             if(supportsQuantitativeData.getSelection()){
+//                 activateQuantitativeWidgets();
+//             }
+//             else{
+//                 removeQuantitativeWidgets();
+//             }
+//            StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
+//         }
+//         else if(eventSource == supportsCategoricalData){
+//             getEntity().getTerm().setSupportsCategoricalData(supportsCategoricalData.getSelection());
+//            if (supportsCategoricalData.getSelection()) {
+//                activateCategoricalWidgets();
+//            }
+//             else{
+//                 removeCategoricalWidgets();
+//             }
+//            StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
+//         }
+//         else if (eventSource == element_Representation) {
+//            Representation selectedRepresentation = element_Representation.getSelectedRepresentation();
+//            if(selectedRepresentation!=null){
+//                Language representationLanguage = selectedRepresentation.getLanguage();
+//                if(representationLanguage==null){
+//                    representationLanguage = Language.getDefaultLanguage();
+//                }
+//                getEntity().getTerm().setLabel(selectedRepresentation.getLabel(),  representationLanguage);
+//                getEntity().getTerm().getRepresentation(representationLanguage).setAbbreviatedLabel(selectedRepresentation.getAbbreviatedLabel());
+//                getEntity().getTerm().getRepresentation(representationLanguage).setText(selectedRepresentation.getDescription());
+//            }
+//            getEntity().getTerm().setTitleCache(null);
+//        }
+       }
+
+       @Override
+       public void fillFields() {
+               characterDetails.setEntity((CharacterDto)getEntity().getTerm());
+               sectionInapplicableIf.setEntity(getEntity());
+               sectionOnlyApplicableIf.setEntity(getEntity());
+               
+       }
+
+//     private void activateQuantitativeWidgets(){
+//         //disable categorical widgets
+//         supportsCategoricalData.setSelection(false);
+//         getEntity().getTerm().setSupportsCategoricalData(false);
+//         removeCategoricalWidgets();
+//
+//         //measurement units
+//         sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(
+//                 parentFormElement, StoreUtil.getSectionStyle(MeasurementUnitCollectionSection.class, getEntity().getClass().getCanonicalName(), true));
+//         sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+//         sectionMeasurementUnits.setEntity(getEntity().getTerm());
+//
+//         //statistical measures
+//         sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(
+//                 parentFormElement, StoreUtil.getSectionStyle(StatisticalMeasureCollectionSection.class, getEntity().getClass().getCanonicalName(), true));
+//         sectionStatisticalMeasures.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+//         sectionStatisticalMeasures.setEntity(getEntity().getTerm());
+//
+//         //modifiers
+//         sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesCollectionSection(
+//                 parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierVocabulariesCollectionSection.class, getEntity().getClass().getCanonicalName(), true));
+//         sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+//         sectionModifierVocabularies.setEntity(getEntity().getTerm());
+//     }
+//
+//     private void removeQuantitativeWidgets(){
+//         if(sectionMeasurementUnits!=null){
+//             removeElementsAndControls(sectionMeasurementUnits);
+//             removeElementsAndControls(sectionStatisticalMeasures);
+//             removeElementsAndControls(sectionModifierVocabularies);
+//         }
+//     }
+//
+//     private void activateCategoricalWidgets(){
+//         //disable quantitative widgeets
+//         supportsQuantitativeData.setSelection(false);
+//         getEntity().getTerm().setSupportsQuantitativeData(false);
+//         removeQuantitativeWidgets();
+//
+//         //states
+//         sectionStateVocabularies = formFactory.createStateVocabulariesSection(
+//                parentFormElement, StoreUtil.getSectionStyle(StateVocabularyCollectionSection.class, getEntity().getClass().getCanonicalName(), true));
+//        sectionStateVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+//        sectionStateVocabularies.setEntity(getEntity().getTerm());
+//
+//        //modifiers
+//        sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesCollectionSection(
+//                parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierVocabulariesCollectionSection.class, getEntity().getClass().getCanonicalName(), true));
+//        sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+//        sectionModifierVocabularies.setEntity(getEntity().getTerm());
+//     }
+//
+//     private void removeCategoricalWidgets(){
+//         if(sectionStateVocabularies!=null){
+//             removeElementsAndControls(sectionStateVocabularies);
+//             removeElementsAndControls(sectionModifierVocabularies);
+//         }
+//     }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/CharacterNodeDtoDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/CharacterNodeDtoDetailSection.java
new file mode 100644 (file)
index 0000000..171bba5
--- /dev/null
@@ -0,0 +1,40 @@
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.feature;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+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.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+/**
+ * @author pplitzner
+ * @since Aug 19, 2019
+ */
+public class CharacterNodeDtoDetailSection extends AbstractCdmDetailSection<TermNodeDto> {
+
+       public CharacterNodeDtoDetailSection(CdmFormFactory formFactory,
+               ICdmFormElement parentElement,
+                       ISelectionProvider selectionProvider, int style) {
+               super(formFactory, parentElement, selectionProvider, style);
+       }
+
+       @Override
+       public String getHeading() {
+               return "Character Node";
+       }
+
+    @Override
+    protected AbstractCdmDetailElement<TermNodeDto> createCdmDetailElement(AbstractCdmDetailSection<TermNodeDto> parentElement,
+            int style) {
+        return formFactory.createCharacterNodeDtoDetailElement(parentElement, style);
+    }
+}
\ No newline at end of file
index 5cccce17f3ec892b734fea224c601983bc3680c6..fb351bc409279e35e993c722a1be2c85bb10eccd 100644 (file)
@@ -9,7 +9,6 @@
 
 package eu.etaxonomy.taxeditor.ui.section.feature;
 
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Arrays;
 import java.util.List;
@@ -18,9 +17,9 @@ import java.util.Map;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Label;
 
-import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
+import eu.etaxonomy.cdm.api.service.geo.IDistributionService;
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.common.UriUtils;
-import eu.etaxonomy.cdm.ext.geo.IEditGeoService;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
@@ -98,17 +97,19 @@ public class FeatureDistributionDetailElement extends AbstractCdmDetailElement<F
                // FIXME due to a bug in the rest map service we have to ensure that width will always be an even number
                // image.calculateWidth() % 2 == 1 ? image.calculateWidth() + 1 :
                int width = image.calculateWidth();
-                IEditGeoService editGeoService;
-               List<Language> languages = Arrays.asList(new Language[]{CdmStore.getDefaultLanguage()});
-               editGeoService = ((CdmApplicationRemoteController)CdmStore.getCurrentApplicationConfiguration()).getEditGeoService();
 
-               String parameter = editGeoService.getDistributionServiceRequestParameterString(
+               List<Language> languages = Arrays.asList(new Language[]{CdmStore.getDefaultLanguage()});
+               IDistributionService distributionService = CdmStore.getCurrentApplicationConfiguration().getDistributionService();
+               boolean includeUnpublished = true;
+               
+               String parameter = distributionService.getDistributionServiceRequestParameterString(
                                getTaxonDescriptions(),
                 false,
                 false,
                 null,
                 presenceAbsenceTermColors,
-                languages);
+                languages,
+                includeUnpublished);
 
                String mapUriString = String.format("%s?%s&ms=1000&bbox=-180,-90,180,90&l=earth", accessPoint, parameter);
                return mapUriString;
@@ -127,4 +128,31 @@ public class FeatureDistributionDetailElement extends AbstractCdmDetailElement<F
            return false;
        }
 
+       @Override
+       public void fillFields() {
+               String serviceUriString = PreferencesUtil.getStringValue(PreferencePredicate.EditMapServiceAccessPoint.getKey());
+               String message = null;
+               try {
+                       URI serviceUri = new URI(serviceUriString);
+                       if(UriUtils.isServiceAvailable(serviceUri, 500)){
+//                             image = formFactory.createBrowserElement(formElement, null, style);
+                               // FIXME : This is a temporary workaround which ic
+                               //         waiting for #5357 to be fixed
+                               if(!isUnsavedDistribution(getEntity())) {
+                                   String mapUriString = getMapUriString(getEntity());
+                                   image.setImageUriString(mapUriString);
+                                   message = mapUriString;
+                               }
+                               getParentElement().getLayoutComposite().layout();
+
+                               return;
+                       } else {
+                               message = String.format("The service is not available: %s", serviceUriString);
+                       }
+               } catch (URISyntaxException e) {
+                       message = String.format("The URI has problems: %s", serviceUriString);
+               }
+
+       }
+
 }
index 2276eaa4e4f878f525a0a6ff66bde43ef5f6463b..d3608d09220beb583469933a820d362e641f0e4b 100644 (file)
@@ -11,7 +11,6 @@ package eu.etaxonomy.taxeditor.ui.section.feature;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -23,40 +22,23 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  *
  * @author n.hoffmann
  * @created Sep 23, 2010
- * @version 1.0
  */
 public class FeatureDistributionDetailSection extends AbstractCdmDetailSection<Feature> {
 
-       /**
-        * <p>Constructor for FeatureDistributionDetailSection.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-        * @param style a int.
-        */
        public FeatureDistributionDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-        */
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return "Distribution Map";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
        protected AbstractCdmDetailElement createCdmDetailElement(AbstractCdmDetailSection<Feature> parentElement, int style) {
            //FIXME generic
            return formFactory.createFeatureDistributionDetailElement(parentElement);
        }
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureNodeDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureNodeDetailElement.java
deleted file mode 100644 (file)
index feb2aae..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
-* Copyright (C) 2009 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.ui.section.feature;
-
-import eu.etaxonomy.cdm.model.term.TermNode;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
-
-/**
- *
- * @author pplitzner
- * @since Dec 21, 2017
- *
- */
-public class FeatureNodeDetailElement extends AbstractCdmDetailElement<TermNode> {
-
-    private InapplicableIfEntityCollectionSection sectionInapplicableIf;
-    private OnlyApplicableIfEntityCollectionSection sectionOnlyApplicableIf;
-
-       public FeatureNodeDetailElement(CdmFormFactory formFactory,
-                       ICdmFormElement formElement) {
-               super(formFactory, formElement);
-       }
-
-       @Override
-       protected void createControls(ICdmFormElement formElement, TermNode entity, int style) {
-           sectionInapplicableIf = formFactory.createInapplicableIfEntityCollectionSection(getConversationHolder(),
-                    formElement, StoreUtil.getSectionStyle(InapplicableIfEntityCollectionSection.class, getEntity().getClass().getCanonicalName()));
-           sectionInapplicableIf.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-           sectionInapplicableIf.setEntity(getEntity());
-           sectionOnlyApplicableIf = formFactory.createOnlyApplicableIfEntityCollectionSection(getConversationHolder(),
-                   formElement, StoreUtil.getSectionStyle(OnlyApplicableIfEntityCollectionSection.class, getEntity().getClass().getCanonicalName()));
-           sectionOnlyApplicableIf.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
-           sectionOnlyApplicableIf.setEntity(getEntity());
-    }
-
-       @Override
-       public void handleEvent(Object eventSource) {
-       }
-
-}
index 68013d79a4eaa9e87d0017f9e7a317a6e4a11092..88be253f90434ab53676b61f04e9422928b43c2b 100644 (file)
@@ -10,9 +10,9 @@ package eu.etaxonomy.taxeditor.ui.section.feature;
 
 import org.eclipse.jface.wizard.Wizard;
 
-import eu.etaxonomy.cdm.model.description.Feature;
 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;
 
 /**
@@ -25,9 +25,9 @@ public class FeatureStateWizard extends Wizard {
     private static final String CREATE_FEATURE_STATE = "Create Feature State";
     private FeatureStateWizardPage page;
     private CdmFormFactory formFactory;
-    private TermNode<? extends Feature> termNode;
+    private TermNodeDto termNode;
 
-    public FeatureStateWizard(TermNode<? extends Feature> termNode, CdmFormFactory formFactory) {
+    public FeatureStateWizard(TermNodeDto termNode, CdmFormFactory formFactory) {
         super();
         this.formFactory = formFactory;
         this.termNode = termNode;
@@ -48,5 +48,9 @@ public class FeatureStateWizard extends Wizard {
     FeatureState getFeatureState(){
         return page.getFeatureState();
     }
+    
+    FeatureStateDto getFeatureStateDto(){
+        return page.getFeatureStateDto();
+    }
 
 }
index a91a48ae55f0902f1dcb5804794b8135dd05dd93..cc4898fb8db6d3fe13c82c675df4be0d67951486 100644 (file)
@@ -13,6 +13,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Set;
+import java.util.UUID;
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jface.util.PropertyChangeEvent;
@@ -27,15 +28,20 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
+import eu.etaxonomy.cdm.api.service.ITermNodeService;
 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.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermCollection;
 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.featuretree.AvailableFeaturesWizard;
 import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.termtree.AvailableTermsWizard;
 import eu.etaxonomy.taxeditor.ui.AbstractEntityCollectionElementWizardPage;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -44,19 +50,18 @@ import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 /**
  * @author pplitzner
  * @since Aug 16, 2019
- *
  */
 public class FeatureStateWizardPage extends AbstractEntityCollectionElementWizardPage {
 
     private TermComboElement<Feature> comboFeature;
     private Button btnSelectState;
 
-    private TermNode<? extends Feature> termNode;
-    private State selectedState = null;
+    private TermNodeDto termNode;
+    private DefinedTermBase<?> selectedState = null;
     private List<TermVocabularyDto> stateVocabulariesDtos = new ArrayList<>();
     private Text text;
 
-    protected FeatureStateWizardPage(String pageName, TermNode<? extends Feature> termNode, CdmFormFactory formFactory) {
+    protected FeatureStateWizardPage(String pageName, TermNodeDto termNode, CdmFormFactory formFactory) {
         super(pageName, formFactory);
         this.termNode = termNode;
         setTitle("Create Feature State");
@@ -67,7 +72,8 @@ public class FeatureStateWizardPage extends AbstractEntityCollectionElementWizar
     public void createControl(Composite parent) {
         super.createControl(parent);
 
-        comboFeature = formFactory.createDefinedTermComboElement(Collections.EMPTY_LIST, rootElement, "Parent Feature", null, SWT.NONE);
+        comboFeature = formFactory.createDefinedTermComboElement(Collections.EMPTY_LIST, rootElement, "Parent Feature",
+                null, SWT.NONE);
 
         Label label = new Label(rootElement.getLayoutComposite(), SWT.NONE);
         label.setText("State");
@@ -83,14 +89,14 @@ public class FeatureStateWizardPage extends AbstractEntityCollectionElementWizar
 
             @Override
             public void widgetSelected(SelectionEvent e) {
-                AvailableFeaturesWizard wizard = new AvailableFeaturesWizard(stateVocabulariesDtos);
+                AvailableTermsWizard wizard = new AvailableTermsWizard(stateVocabulariesDtos);
                 wizard.setSingleSelection(true);
                 WizardDialog dialog = new WizardDialog(getShell(), wizard);
 
                 if (dialog.open() == IStatus.OK) {
                     Collection<DefinedTermBase> additionalTerms = wizard.getAdditionalFeatures();
-                    if(additionalTerms.size()==1){
-                        selectedState = (State) additionalTerms.iterator().next();
+                    if (additionalTerms.size() == 1) {
+                        selectedState = additionalTerms.iterator().next();
                         text.setText(selectedState.getLabel());
                         FeatureStateWizardPage.this.getWizard().getContainer().updateButtons();
                     }
@@ -103,24 +109,31 @@ public class FeatureStateWizardPage extends AbstractEntityCollectionElementWizar
         updateFeatureCombo();
     }
 
-    FeatureState getFeatureState(){
+    FeatureStateDto getFeatureStateDto() {
+        return new FeatureStateDto(null, FeatureDto.fromFeature(comboFeature.getSelection()),
+                TermDto.fromTerm(selectedState));
+    }
+
+    FeatureState getFeatureState() {
         return FeatureState.NewInstance(comboFeature.getSelection(), selectedState);
     }
 
-    private void updateFeatureCombo(){
+    private void updateFeatureCombo() {
         List<Feature> features = new ArrayList<>();
-        TermNode<? extends Feature> parent = termNode.getParent();
-        while(parent!=null){
-            Feature parentTerm = parent.getTerm();
-            if(parentTerm!=null
-                    && parentTerm.isSupportsCategoricalData()
-                    && !parentTerm.getSupportedCategoricalEnumerations().isEmpty()){
-                features.add(parentTerm);
+        UUID parentUuid = termNode.getParentUuid();
+        if (parentUuid != null) {
+            TermNode<? extends Feature> parent = CdmStore.getService(ITermNodeService.class).load(parentUuid);
+            while (parent != null) {
+                Feature parentTerm = parent.getTerm();
+                if (parentTerm != null && parentTerm.isSupportsCategoricalData()
+                        && !parentTerm.getSupportedCategoricalEnumerations().isEmpty()) {
+                    features.add(parentTerm);
+                }
+                parent = parent.getParent();
             }
-            parent = parent.getParent();
         }
         comboFeature.setTerms(features);
-        if(features.size()==1){
+        if (features.size() == 1) {
             Feature feature = features.get(0);
             comboFeature.setSelection(feature);
             updateStateCombo(feature);
@@ -128,31 +141,34 @@ public class FeatureStateWizardPage extends AbstractEntityCollectionElementWizar
         }
     }
 
-    private void updateStateCombo(Feature feature){
+    private void updateStateCombo(Feature feature) {
         stateVocabulariesDtos.clear();
         text.setText("");
         selectedState = null;
-        if(feature!=null){
-            Set<TermVocabulary<State>> stateVocabularies = feature.getSupportedCategoricalEnumerations();
-            for (TermVocabulary<State> termVocabulary : stateVocabularies) {
-                stateVocabulariesDtos.add(new TermVocabularyDto(termVocabulary.getUuid(), termVocabulary.getRepresentations(), termVocabulary.getTermType()));
+        if (feature != null) {
+            Set<TermCollection<? extends DefinedTermBase, ?>> stateVocabularies = feature
+                    .getSupportedCategoricalEnumerations();
+            for (TermCollection<? extends DefinedTermBase, ?> termVocabulary : stateVocabularies) {
+                stateVocabulariesDtos.add(new TermVocabularyDto(termVocabulary.getUuid(),
+                        termVocabulary.getRepresentations(), termVocabulary.getTermType(),
+                        termVocabulary.getTitleCache(), termVocabulary.isAllowDuplicates(),
+                        termVocabulary.isOrderRelevant(), termVocabulary.isFlat()));
             }
         }
     }
 
     @Override
     public boolean isPageComplete() {
-        return comboFeature.getSelection()!=null && selectedState!=null;
+        return comboFeature.getSelection() != null && selectedState != null;
     }
 
     @Override
     public void propertyChange(PropertyChangeEvent event) {
-        if(event.getSource()==comboFeature){
+        if (event.getSource() == comboFeature) {
             Feature feature = comboFeature.getSelection();
             updateStateCombo(feature);
             comboFeature.removeEmptyElement();
         }
         getWizard().getContainer().updateButtons();
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureTreeDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/FeatureTreeDetailElement.java
deleted file mode 100644 (file)
index 726f6ff..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
-* Copyright (C) 2009 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.ui.section.feature;
-
-import org.eclipse.swt.widgets.Label;
-
-import eu.etaxonomy.cdm.model.term.TermTree;
-import eu.etaxonomy.taxeditor.model.ColorResources;
-import eu.etaxonomy.taxeditor.preference.Resources;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
-
-/**
- *
- * @author pplitzner
- * @since Dec 21, 2017
- *
- */
-public class FeatureTreeDetailElement extends AbstractIdentifiableEntityDetailElement<TermTree> {
-
-    private CheckboxElement allowDuplicates;
-    private CheckboxElement orderRelevant;
-    private CheckboxElement isFlat;
-
-       public FeatureTreeDetailElement(CdmFormFactory formFactory,
-                       ICdmFormElement formElement) {
-               super(formFactory, formElement);
-       }
-
-
-       @Override
-       protected void createControls(ICdmFormElement formElement, TermTree entity, int style) {
-           Label lblTermType = new Label(formElement.getLayoutComposite(), style);
-           lblTermType.setText("Term Type");
-           Label lblStructureText = new Label(formElement.getLayoutComposite(), style);
-           lblStructureText.setText(entity.getTermType().getMessage());
-           lblStructureText.setForeground(ColorResources.getColor(Resources.BLACK));
-
-           toggleable_cache = formFactory.createToggleableTextField(
-                formElement, "Title Cache", entity.getTitleCache(),
-                entity.isProtectedTitleCache(), style);
-           toggleable_cache.getBtnToggleProtectTitleCache().setEnabled(false);
-
-           allowDuplicates = formFactory.createCheckbox(formElement, "Allow duplicates", entity.isAllowDuplicates(), style);
-           orderRelevant = formFactory.createCheckbox(formElement, "Order relevant", entity.isOrderRelevant(), style);
-           isFlat = formFactory.createCheckbox(formElement, "Is flat", entity.isFlat(), style);
-    }
-
-       @Override
-       protected void updateControlStates() {
-           super.updateControlStates();
-           toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
-       }
-
-       @Override
-       public void handleEvent(Object eventSource) {
-           if (eventSource == toggleable_cache) {
-                   handleToggleableCacheField();
-        }
-           else if (eventSource == allowDuplicates) {
-               getEntity().setAllowDuplicates(allowDuplicates.getSelection());
-           }
-           else if (eventSource == orderRelevant) {
-               getEntity().setOrderRelevant(orderRelevant.getSelection());
-           }
-           else if (eventSource == isFlat) {
-               getEntity().setFlat(isFlat.getSelection());
-           }
-       }
-
-}
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 8f8af1048adf3de80a4cd784aaeeb4d660c1cfef..efe6b60f6c490bf0d203cee62ef4f56671bccb26 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2018 EDIT
 * European Distributed Institute of Taxonomy
@@ -15,100 +14,72 @@ 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.Feature;
-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.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<TermNode<? extends Feature>, FeatureState>{
+public class InapplicableIfEntityCollectionSection extends AbstractEntityCollectionSection<TermNodeDto, FeatureStateDto>{
 
-    public InapplicableIfEntityCollectionSection(CdmFormFactory formFactory, ConversationHolder conversation,
+    public InapplicableIfEntityCollectionSection(CdmFormFactory formFactory,
             ICdmFormElement parentElement, int style) {
-        super(formFactory, conversation, parentElement, "Inapplicable If", style);
+        super(formFactory, parentElement, "Inapplicable If", style);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public Collection<FeatureState> getCollection(TermNode <? extends Feature>entity) {
+    public Collection<FeatureStateDto> getCollection(TermNodeDto entity) {
         return entity.getInapplicableIf();
     }
 
-    /**
-     * {@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;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public void addElement(FeatureState element) {
-        getEntity().addInapplicableState(element);
+    public void addElement(FeatureStateDto element) {
+        getEntity().getInapplicableIf().add(element);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public FeatureState addExisting() {
+    public FeatureStateDto addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public void removeElement(FeatureState element) {
-        getEntity().removeInapplicableState(element);
+    public void removeElement(FeatureStateDto element) {
+        getEntity().getInapplicableIf().remove(element);
     }
 
-    /** {@inheritDoc} */
     @Override
     public String getEmptyString() {
         return "No feature state added yet.";
     }
 
-    /** {@inheritDoc} */
     @Override
     protected String getTooltipString() {
         return "Add a feature state";
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/InapplicableIfEntityCollectionSectionForNode.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/InapplicableIfEntityCollectionSectionForNode.java
new file mode 100644 (file)
index 0000000..a8857ec
--- /dev/null
@@ -0,0 +1,86 @@
+/**
+* Copyright (C) 2018 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.Collection;
+import java.util.Comparator;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.wizard.WizardDialog;
+
+import eu.etaxonomy.cdm.model.description.FeatureState;
+import eu.etaxonomy.cdm.model.term.TermNode;
+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 InapplicableIfEntityCollectionSectionForNode extends AbstractEntityCollectionSection<TermNode, FeatureState>{
+
+    public InapplicableIfEntityCollectionSectionForNode(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, int style) {
+        super(formFactory, parentElement, "Inapplicable If", style);
+    }
+
+    @Override
+    public Collection<FeatureState> getCollection(TermNode entity) {
+        return entity.getInapplicableIf();
+    }
+
+    @Override
+    public Comparator<FeatureState> getComparator() {
+        return new DefaultCdmBaseComparator<>();
+    }
+
+    @Override
+    public FeatureState createNewElement() {
+        FeatureStateWizard wizard = new FeatureStateWizard(TermNodeDto.fromNode(getEntity(), null), formFactory);
+        WizardDialog dialog = new WizardDialog(getLayoutComposite().getShell(), wizard);
+        int status = dialog.open();
+        if(status == IStatus.OK) {
+            return wizard.getFeatureState();
+        }
+        return null;
+    }
+
+    @Override
+    public void addElement(FeatureState element) {
+        getEntity().getInapplicableIf().add(element);
+    }
+
+    @Override
+    public FeatureState addExisting() {
+        return null;
+    }
+
+    @Override
+    public boolean allowAddExisting() {
+        return false;
+    }
+
+    @Override
+    public void removeElement(FeatureState element) {
+        getEntity().getInapplicableIf().remove(element);
+    }
+
+    @Override
+    public String getEmptyString() {
+        return "No feature state added yet.";
+    }
+
+    @Override
+    protected String getTooltipString() {
+        return "Add a feature state";
+    }
+}
\ No newline at end of file
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 63851efd747e0e3f99606b3cccad022ccabe2c97..a4dc877566e4f5138e1592622d143ca19aa3479a 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2018 EDIT
 * European Distributed Institute of Taxonomy
@@ -15,99 +14,73 @@ 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.Feature;
-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.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 OnlyApplicableIfEntityCollectionSection extends AbstractEntityCollectionSection<TermNode<? extends Feature>, FeatureState>{
+public class OnlyApplicableIfEntityCollectionSection extends AbstractEntityCollectionSection<TermNodeDto, FeatureStateDto>{
 
-    public OnlyApplicableIfEntityCollectionSection(CdmFormFactory formFactory, ConversationHolder conversation,
+    public OnlyApplicableIfEntityCollectionSection(CdmFormFactory formFactory,
             ICdmFormElement parentElement, int style) {
-        super(formFactory, conversation, parentElement, "Only applicable if", style);
+        super(formFactory, parentElement, "Only applicable if", style);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public Collection<FeatureState> getCollection(TermNode<? extends Feature> entity) {
+    public Collection<FeatureStateDto> getCollection(TermNodeDto entity) {
         return entity.getOnlyApplicableIf();
     }
 
-    /**
-     * {@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;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public void addElement(FeatureState element) {
-        getEntity().addApplicableState(element);
+    public void addElement(FeatureStateDto element) {
+        getEntity().getOnlyApplicableIf().add(element);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public FeatureState addExisting() {
+    public FeatureStateDto addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public void removeElement(FeatureState element) {
-        getEntity().removeApplicableState(element);
+    public void removeElement(FeatureStateDto element) {
+        getEntity().getOnlyApplicableIf().remove(element);
     }
 
-    /** {@inheritDoc} */
     @Override
     public String getEmptyString() {
         return "No feature state added yet.";
     }
 
-    /** {@inheritDoc} */
     @Override
     protected String getTooltipString() {
         return "Add a feature state";
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/OnlyApplicableIfEntityCollectionSectionForNode.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/OnlyApplicableIfEntityCollectionSectionForNode.java
new file mode 100644 (file)
index 0000000..6e54b1c
--- /dev/null
@@ -0,0 +1,86 @@
+/**
+* Copyright (C) 2018 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.Collection;
+import java.util.Comparator;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.wizard.WizardDialog;
+
+import eu.etaxonomy.cdm.model.description.FeatureState;
+import eu.etaxonomy.cdm.model.term.TermNode;
+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 OnlyApplicableIfEntityCollectionSectionForNode extends AbstractEntityCollectionSection<TermNode, FeatureState>{
+
+    public OnlyApplicableIfEntityCollectionSectionForNode(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, int style) {
+        super(formFactory, parentElement, "Only applicable if", style);
+    }
+
+    @Override
+    public Collection<FeatureState> getCollection(TermNode entity) {
+        return entity.getOnlyApplicableIf();
+    }
+
+    @Override
+    public Comparator<FeatureState> getComparator() {
+        return new DefaultCdmBaseComparator<>();
+    }
+
+    @Override
+    public FeatureState createNewElement() {
+        FeatureStateWizard wizard = new FeatureStateWizard(TermNodeDto.fromNode(getEntity(), null), formFactory);
+        WizardDialog dialog = new WizardDialog(getLayoutComposite().getShell(), wizard);
+        int status = dialog.open();
+        if(status == IStatus.OK) {
+            return wizard.getFeatureState();
+        }
+        return null;
+    }
+
+    @Override
+    public void addElement(FeatureState element) {
+        getEntity().getOnlyApplicableIf().add(element);
+    }
+
+    @Override
+    public FeatureState addExisting() {
+        return null;
+    }
+
+    @Override
+    public boolean allowAddExisting() {
+        return false;
+    }
+
+    @Override
+    public void removeElement(FeatureState element) {
+        getEntity().getOnlyApplicableIf().remove(element);
+    }
+
+    @Override
+    public String getEmptyString() {
+        return "No feature state added yet.";
+    }
+
+    @Override
+    protected String getTooltipString() {
+        return "Add a feature state";
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/TermNodeDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/TermNodeDetailElement.java
new file mode 100644 (file)
index 0000000..827d606
--- /dev/null
@@ -0,0 +1,80 @@
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.feature;
+
+import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermBasePropertyTester;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+
+/**
+ *
+ * @author pplitzner
+ * @since Dec 21, 2017
+ *
+ */
+public class TermNodeDetailElement extends AbstractCdmDetailElement<TermNodeDto> {
+
+    private InapplicableIfEntityCollectionSection sectionInapplicableIf;
+    private OnlyApplicableIfEntityCollectionSection sectionOnlyApplicableIf;
+
+       public TermNodeDetailElement(CdmFormFactory formFactory,
+                       ICdmFormElement formElement) {
+               super(formFactory, formElement);
+       }
+
+       @Override
+       protected void createControls(ICdmFormElement formElement, TermNodeDto entity, int style) {
+               
+               if (entity.getType().equals(TermType.Feature)) {
+                   sectionInapplicableIf = formFactory.createInapplicableIfEntityCollectionSection(
+                           formElement, StoreUtil.getSectionStyle(InapplicableIfEntityCollectionSection.class, getEntity().getClass().getCanonicalName()));
+                   sectionInapplicableIf.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+                   sectionInapplicableIf.setEntity(getEntity());
+                   sectionOnlyApplicableIf = formFactory.createOnlyApplicableIfEntityCollectionSection(
+                           formElement, StoreUtil.getSectionStyle(OnlyApplicableIfEntityCollectionSection.class, getEntity().getClass().getCanonicalName()));
+                   sectionOnlyApplicableIf.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+                   sectionOnlyApplicableIf.setEntity(getEntity());
+               }
+
+           DefinedTermBase term = CdmStore.getService(ITermService.class).load(getEntity().getTerm().getUuid());
+           AbstractCdmDetailElement termDetailElement = formFactory.createDefinedTermDetailElement(term.getClass(), formElement, style);
+           termDetailElement.setEntity(term);
+           termDetailElement.setEnabled(false);
+           if (!TermBasePropertyTester.isModifiable(entity)) {
+               this.setEnabled(false);
+           }
+
+    }
+
+       @Override
+       public void handleEvent(Object eventSource) {
+           EventUtility.postEvent(WorkbenchEventConstants.ADD_SAVE_CANDIDATE, getEntity().getUuid());
+       }
+
+       @Override
+       public void fillFields() {
+               sectionInapplicableIf.setEntity(getEntity());
+           sectionOnlyApplicableIf.setEntity(getEntity());
+               
+       }
+
+
+
+}
@@ -8,41 +8,38 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.feature;
 
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.term.TermNode;
+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.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
 /**
- *
  * @author pplitzner
  * @since Dec 21, 2017
- *
  */
-public class FeatureNodeDetailSection extends AbstractCdmDetailSection<TermNode> {
+public class TermNodeDetailSection extends AbstractCdmDetailSection<TermNodeDto> {
 
-       public FeatureNodeDetailSection(CdmFormFactory formFactory,
-               ConversationHolder conversation, ICdmFormElement parentElement,
+       public TermNodeDetailSection(CdmFormFactory formFactory,
+               ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
        @Override
        public String getHeading() {
-               return TermNode.class.getSimpleName();
+           String[] r = TermNode.class.getSimpleName().split("(?=\\p{Upper})");
+        String header = StringUtils.join(r," ");
+               return header;
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    protected AbstractCdmDetailElement<TermNode> createCdmDetailElement(AbstractCdmDetailSection<TermNode> parentElement,
+    protected AbstractCdmDetailElement<TermNodeDto> createCdmDetailElement(AbstractCdmDetailSection<TermNodeDto> parentElement,
             int style) {
         return formFactory.createFeatureNodeDetailElement(parentElement, style);
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/TermTreeDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/TermTreeDetailElement.java
new file mode 100644 (file)
index 0000000..d185b02
--- /dev/null
@@ -0,0 +1,125 @@
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.feature;
+
+import org.eclipse.swt.widgets.Label;
+
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.term.Representation;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermBasePropertyTester;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+import eu.etaxonomy.taxeditor.model.ColorResources;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.RepresentationElement;
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+
+/**
+ * @author pplitzner
+ * @since Dec 21, 2017
+ */
+public class TermTreeDetailElement extends AbstractCdmDetailElement<TermTreeDto> {
+
+    private CheckboxElement allowDuplicates;
+    private CheckboxElement orderRelevant;
+    private CheckboxElement isFlat;
+
+    private TextWithLabelElement titleCacheText;
+    protected RepresentationElement element_Representation;
+
+       public TermTreeDetailElement(CdmFormFactory formFactory,
+                       ICdmFormElement formElement) {
+               super(formFactory, formElement);
+       }
+
+       @Override
+       protected void createControls(ICdmFormElement formElement, TermTreeDto entity, int style) {
+           Label lblTermType = new Label(formElement.getLayoutComposite(), style);
+           lblTermType.setText("Term Type");
+           Label lblStructureText = new Label(formElement.getLayoutComposite(), style);
+           lblStructureText.setText(entity.getTermType().getLabel());
+           lblStructureText.setForeground(ColorResources.getColor(Resources.BLACK));
+
+           titleCacheText = formFactory.createTextWithLabelElement(
+                formElement, "Title Cache", entity.getTitleCache(), style);
+           //element_Representation = formFactory.createTranslatableRepresentationElementDto(formElement,  entity.getPreferredRepresentation(CdmStore.getDefaultLanguage()),entity, 100, style, true);
+           allowDuplicates = formFactory.createCheckbox(formElement, "Allow duplicates", entity.isAllowDuplicate(), style);
+           if (entity.isContainsDuplicates() && entity.isAllowDuplicate()){
+               allowDuplicates.setEnabled(false);
+           }
+           orderRelevant = formFactory.createCheckbox(formElement, "Order relevant", entity.isOrderRelevant(), style);
+
+           isFlat = formFactory.createCheckbox(formElement, "Is flat", entity.isFlat(), style);
+           if (entity.containsSubtrees()){
+               isFlat.setEnabled(false);
+           }
+           if (!TermBasePropertyTester.isModifiable(entity)) {
+               this.setEnabled(false);
+           }
+       }
+
+       @Override
+       public void updateControlStates() {
+           super.updateControlStates();
+       }
+
+       @Override
+       public void handleEvent(Object eventSource) {
+           if (eventSource == titleCacheText) {
+               getEntity().setTitleCache(titleCacheText.getText());
+           }
+           if (eventSource == element_Representation) {
+//                 getEntity().setTitleCache(titleCacheText.getText());
+               Representation selectedRepresentation = element_Representation.getSelectedRepresentation();
+            if(selectedRepresentation!=null){
+                Language representationLanguage = selectedRepresentation.getLanguage();
+                if(representationLanguage==null){
+                    representationLanguage = Language.getDefaultLanguage();
+                }
+//                getEntity().setLabel(selectedRepresentation.getLabel(),  representationLanguage);
+                Representation rep = getEntity().getRepresentation(representationLanguage);
+                if (rep == null){
+                       rep = new Representation(selectedRepresentation.getDescription(), selectedRepresentation.getLabel(), selectedRepresentation.getAbbreviatedLabel(), representationLanguage);
+                       getEntity().addRepresentation(rep);
+                }else{
+                       getEntity().getRepresentation(representationLanguage).setLabel(selectedRepresentation.getLabel());
+                       getEntity().getRepresentation(representationLanguage).setAbbreviatedLabel(selectedRepresentation.getAbbreviatedLabel());
+                       getEntity().getRepresentation(representationLanguage).setText(selectedRepresentation.getDescription());
+                }
+            }
+            //getEntity().setTitleCache(null);
+        }
+           else
+           if (eventSource == allowDuplicates) {
+               getEntity().setAllowDuplicate(allowDuplicates.getSelection());
+           }
+           else if (eventSource == orderRelevant) {
+               getEntity().setOrderRelevant(orderRelevant.getSelection());
+           }
+           else if (eventSource == isFlat) {
+               getEntity().setFlat(isFlat.getSelection());
+           }
+           EventUtility.postEvent(WorkbenchEventConstants.ADD_SAVE_CANDIDATE, getEntity());
+       }
+
+       @Override
+       public void fillFields() {
+
+           allowDuplicates.setSelection(getEntity().isAllowDuplicate());
+           orderRelevant.setSelection(getEntity().isOrderRelevant());
+           isFlat.setSelection(getEntity().isFlat());
+           element_Representation.setTermDto(getEntity(), enabled);
+
+       }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/TermTreeDetailElementForNode.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/TermTreeDetailElementForNode.java
new file mode 100644 (file)
index 0000000..19c0db0
--- /dev/null
@@ -0,0 +1,113 @@
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.feature;
+
+import org.eclipse.swt.widgets.Label;
+
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.term.Representation;
+import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.ColorResources;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.termtree.e4.ICharacterEditor;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.RepresentationElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+
+/**
+ * @author pplitzner
+ * @since Dec 21, 2017
+ */
+public class TermTreeDetailElementForNode extends AbstractCdmDetailElement<TermTree> {
+
+    private CheckboxElement allowDuplicates;
+    private CheckboxElement orderRelevant;
+    private CheckboxElement isFlat;
+
+//    private TextWithLabelElement titleCacheText;
+    protected RepresentationElement element_Representation;
+
+       public TermTreeDetailElementForNode(CdmFormFactory formFactory,
+                       ICdmFormElement formElement) {
+               super(formFactory, formElement);
+       }
+
+
+       @Override
+       protected void createControls(ICdmFormElement formElement, TermTree entity, int style) {
+
+           Label lblTermType = new Label(formElement.getLayoutComposite(), style);
+           lblTermType.setText("Term Type");
+           Label lblStructureText = new Label(formElement.getLayoutComposite(), style);
+           lblStructureText.setText(entity.getTermType().getLabel());
+           lblStructureText.setForeground(ColorResources.getColor(Resources.BLACK));
+
+//         titleCacheText = formFactory.createTextWithLabelElement(
+//                formElement, "Title Cache", entity.getTitleCache(), style);
+           element_Representation = formFactory.createTranslatableRepresentationElement(formElement,  entity.getPreferredRepresentation(CdmStore.getDefaultLanguage()),entity, 100, style, true);
+
+           allowDuplicates = formFactory.createCheckbox(formElement, "Allow duplicates", entity.isAllowDuplicates(), style);
+           orderRelevant = formFactory.createCheckbox(formElement, "Order relevant", entity.isOrderRelevant(), style);
+           isFlat = formFactory.createCheckbox(formElement, "Is flat", entity.isFlat(), style);
+           if (AbstractUtility.getActivePart() instanceof ICharacterEditor){
+               element_Representation.setEnabled(false);
+               allowDuplicates.setEnabled(false);
+               orderRelevant.setEnabled(false);
+               isFlat.setEnabled(false);
+           }
+
+    }
+
+       @Override
+       public void updateControlStates() {
+           super.updateControlStates();
+//         toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
+       }
+
+       @Override
+       public void handleEvent(Object eventSource) {
+           if (eventSource == element_Representation) {
+               Representation selectedRepresentation = element_Representation.getSelectedRepresentation();
+            if(selectedRepresentation!=null){
+                Language representationLanguage = selectedRepresentation.getLanguage();
+                if(representationLanguage==null){
+                    representationLanguage = Language.getDefaultLanguage();
+                }
+                getEntity().setLabel(selectedRepresentation.getLabel(),  representationLanguage);
+                getEntity().getRepresentation(representationLanguage).setAbbreviatedLabel(selectedRepresentation.getAbbreviatedLabel());
+                getEntity().getRepresentation(representationLanguage).setText(selectedRepresentation.getDescription());
+            }
+            getEntity().setTitleCache(null);
+        }
+           else
+           if (eventSource == allowDuplicates) {
+               getEntity().setAllowDuplicates(allowDuplicates.getSelection());
+           }
+           else if (eventSource == orderRelevant) {
+               getEntity().setOrderRelevant(orderRelevant.getSelection());
+           }
+           else if (eventSource == isFlat) {
+               getEntity().setFlat(isFlat.getSelection());
+           }
+       }
+
+
+       @Override
+       public void fillFields() {
+                allowDuplicates.setSelection(getEntity().isAllowDuplicates());
+                orderRelevant.setSelection(getEntity().isOrderRelevant());
+                isFlat.setSelection(getEntity().isFlat());
+               
+       }
+
+}
@@ -10,25 +10,23 @@ package eu.etaxonomy.taxeditor.ui.section.feature;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
 /**
- *
  * @author pplitzner
  * @since Dec 21, 2017
- *
  */
-public class FeatureTreeDetailSection extends AbstractCdmDetailSection<TermTree> {
+public class TermTreeDetailSection extends AbstractCdmDetailSection<TermTreeDto> {
 
-       public FeatureTreeDetailSection(CdmFormFactory formFactory,
-               ConversationHolder conversation, ICdmFormElement parentElement,
+       public TermTreeDetailSection(CdmFormFactory formFactory,
+               ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
        @Override
@@ -36,13 +34,9 @@ public class FeatureTreeDetailSection extends AbstractCdmDetailSection<TermTree>
                return TermTree.class.getSimpleName();
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    protected AbstractCdmDetailElement<TermTree> createCdmDetailElement(AbstractCdmDetailSection<TermTree> parentElement,
+    protected AbstractCdmDetailElement<TermTreeDto> createCdmDetailElement(AbstractCdmDetailSection<TermTreeDto> parentElement,
             int style) {
         return formFactory.createFeatureTreeDetailElement(parentElement, style);
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/TermTreeDetailSectionForNode.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/feature/TermTreeDetailSectionForNode.java
new file mode 100644 (file)
index 0000000..79fc157
--- /dev/null
@@ -0,0 +1,44 @@
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.feature;
+
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+
+/**
+ * @author pplitzner
+ * @since Dec 21, 2017
+ */
+public class TermTreeDetailSectionForNode extends AbstractCdmDetailSection<TermTree> {
+
+       public TermTreeDetailSectionForNode(CdmFormFactory formFactory,
+               ICdmFormElement parentElement,
+                       ISelectionProvider selectionProvider, int style) {
+               super(formFactory, parentElement, selectionProvider, style);
+       }
+
+       @Override
+       public String getHeading() {
+           String[] r = TermTree.class.getSimpleName().split("(?=\\p{Upper})");
+        String header = StringUtils.join(r," ");
+        return header;
+       }
+
+    @Override
+    protected AbstractCdmDetailElement<TermTree> createCdmDetailElement(AbstractCdmDetailSection<TermTree> parentElement,
+            int style) {
+        return formFactory.createFeatureTreeDetailElementForTree(parentElement, style);
+    }
+}
\ No newline at end of file
index 2d2d016621e0021866603292c60df4d14f2e792d..9b8711d52bbff0f9df9fe9bc63c37b3e29ea1583 100644 (file)
@@ -53,7 +53,7 @@ public class GrantedAuthorityCollectionElement extends AbstractEntityCollectionE
        @Override
        public void createControls(ICdmFormElement element, int style) {
                selection_authority = formFactory.createSelectionElement(
-                                       GrantedAuthorityImpl.class, //getConversationHolder(),
+                                       GrantedAuthorityImpl.class,
                                        element, "", getEntity(), EntitySelectionElement.SELECTABLE, style);
        }
 
index a75270ef3efa602f93295ccfa57215f6073aff45..3d7f3029bb6d39a9b4f1177a124baa8345209417 100644 (file)
@@ -54,6 +54,12 @@ public class GrantedAuthorityDetailElement extends AbstractCdmDetailElement<Gran
 
        }
 
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
+
 
 
 }
index 896f65df9c9f593bb99a0a350a7b0f4d2c68734e..0e13e55b6142b7836493f83c993bda1c1f833cc0 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.grantedAuthority;
 
 import java.util.Collection;
@@ -14,7 +13,6 @@ import java.util.Comparator;
 
 import org.springframework.security.core.GrantedAuthority;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.permission.Group;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.GrantedAuthoritySelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -24,31 +22,17 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 /**
  * @author n.hoffmann
  * @created Mar 9, 2011
- * @version 1.0
  */
 public class GrantedAuthorityDetailSection extends
                AbstractEntityCollectionSection<Group, GrantedAuthority> {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param title
-        * @param style
-        */
        public GrantedAuthorityDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        int style) {
-               super(formFactory, conversation, parentElement, "Granted Authorities",
+               super(formFactory, parentElement, "Granted Authorities",
                                style);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#
-        * getCollection(java.lang.Object)
-        */
        @Override
        public Collection<GrantedAuthority> getCollection(Group entity) {
                return entity.getGrantedAuthorities();
@@ -71,83 +55,45 @@ public class GrantedAuthorityDetailSection extends
         };
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#
-        * createNewElement()
-        */
        @Override
        public GrantedAuthority createNewElement() {
 //             StoreUtil
 //                             .warningDialog("Not implemented yet", getClass(),
 //                                             "This functionality needs to be implemented in CDM Library first.");
 
-               GrantedAuthority selection = GrantedAuthoritySelectionDialog.select(getLayoutComposite().getShell(), //getConversationHolder(),
+               GrantedAuthority selection = GrantedAuthoritySelectionDialog.select(getLayoutComposite().getShell(),
                        null);
                return selection;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#addElement
-        * (java.lang.Object)
-        */
        @Override
        public void addElement(GrantedAuthority element) {
                getEntity().addGrantedAuthority(element);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#
-        * removeElement(java.lang.Object)
-        */
        @Override
        public void removeElement(GrantedAuthority element) {
                getEntity().removeGrantedAuthority(element);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#
-        * getEmptyString()
-        */
        @Override
        public String getEmptyString() {
                return "No Granted Authorities yet.";
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#
-        * getTooltipString()
-        */
        @Override
        protected String getTooltipString() {
                return "Add a Granted Authority";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public GrantedAuthority addExisting() {
 
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-}
+}
\ No newline at end of file
index adbe10c1d13786c0d3a2c619c7f25ca21d86ae10..752a91a2c5a38645a0fdd6d6bccaf50ce8091154 100644 (file)
@@ -8,7 +8,6 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.grantedAuthority;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.permission.GrantedAuthorityImpl;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -21,9 +20,8 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  */
 public class GrantedAuthorityDetailWizardPage extends AbstractCdmEntityWizardPage<GrantedAuthorityImpl> {
 
-       public GrantedAuthorityDetailWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, GrantedAuthorityImpl entity) {
-               super(formFactory, conversation, entity);
+       public GrantedAuthorityDetailWizardPage(CdmFormFactory formFactory, GrantedAuthorityImpl entity) {
+               super(formFactory,  entity);
                setTitle("Granted Authority");
        }
 
index cbb0ccfac07daf430a2a2cc9d7c994b015a283c3..787aaaae2af26bacfdf4cd3eb4109c372ba284f6 100644 (file)
@@ -2,11 +2,12 @@ package eu.etaxonomy.taxeditor.ui.section.grantedAuthority;
 
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 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;
@@ -22,7 +23,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 
 public class GrantedAuthorityLabelTextProvider {
 
-       public static final Logger logger = Logger.getLogger(CdmAuthority.class);
+       public static final Logger logger = LogManager.getLogger(CdmAuthority.class);
 
 
        public static String getText(GrantedAuthority grantedAuthority){
@@ -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 0530f7ca999b3912a8ce9901f760f62e8d72a7a3..9a61da360a10e88030ac07e4aa2571dfae3afbb0 100644 (file)
@@ -52,4 +52,10 @@ public class GroupDetailElement extends AbstractCdmDetailElement<Group> {
                }
        }
 
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
+
 }
index 2cf9a1db8411191e2d3457e0d84bdced4ce1d1ae..c6a08f7e2f8093a190baa0627877136f227658f1 100644 (file)
@@ -11,7 +11,6 @@ package eu.etaxonomy.taxeditor.ui.section.group;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.permission.Group;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -21,37 +20,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author n.hoffmann
  * @created Mar 9, 2011
- * @version 1.0
  */
 public class GroupDetailSection extends AbstractCdmDetailSection<Group> {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param selectionProvider
-        * @param style
-        */
        public GroupDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#getHeading()
-        */
        @Override
        public String getHeading() {
                return "Group " + (getEntity() != null ? getEntity().getName() : "");
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
        protected AbstractCdmDetailElement<Group> createCdmDetailElement(AbstractCdmDetailSection<Group> parentElement, int style) {
            return formFactory.createGroupDetailElement(parentElement);
        }
-
-}
+}
\ No newline at end of file
index a6f3d4a342e14b0fffbe6743a2b48ebfff277529..cdad799dab624b1afadb93f84b2769ccf9ad83a7 100644 (file)
@@ -9,7 +9,6 @@
 
 package eu.etaxonomy.taxeditor.ui.section.group;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.permission.Group;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -28,9 +27,8 @@ public class GroupDetailWizardPage  extends AbstractCdmEntityWizardPage<Group>{
         * @param conversation
         * @param entity
         */
-       public GroupDetailWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, Group entity) {
-               super(formFactory, conversation, entity);
+       public GroupDetailWizardPage(CdmFormFactory formFactory, Group entity) {
+               super(formFactory, entity);
                setTitle("Group");
        }
 
index 5f13ea64542ef7fe51be6f734836435135b61069..164addf489df7586b234563503e656b42f71ef7c 100644 (file)
@@ -19,7 +19,7 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  */
 public class GroupSelectionElement extends EntitySelectionElement<Group> {
 
-       public GroupSelectionElement(CdmFormFactory formFactory,//ConversationHolder conversation,
+       public GroupSelectionElement(CdmFormFactory formFactory,
                ICdmFormElement parentElement,
                        String labelString, Group entity, int mode,
                        int style) {
index c222568c9a2e0a9d11c8e2a7515211d2dda8c8a9..c941a14c781198cf3c8584fe0f8c585f6f1476a2 100644 (file)
@@ -50,7 +50,10 @@ public class MemberDetailElement extends AbstractEntityCollectionElement<User> {
         */
        @Override
        public void setEntity(User entity) {
-               selection_user.setEntity(entity);
+               this.entity = entity;
+               if (selection_user!= null){
+                       selection_user.setEntity(entity);
+               }
        }
 
        /*
@@ -62,9 +65,12 @@ public class MemberDetailElement extends AbstractEntityCollectionElement<User> {
        @Override
        public void createControls(ICdmFormElement element, int style) {
                selection_user = formFactory
-                               .createSelectionElement(User.class,//getConversationHolder(),
+                               .createSelectionElement(User.class,
                                        element, "", entity,
                                                EntitySelectionElement.EDITABLE, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
        /*
index 44008a7e06722962bc79df79acec15c58f32bf71..208d5827c261980764106532da9781a6ae5095a5 100644 (file)
@@ -6,13 +6,11 @@
 * 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.group;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.permission.Group;
 import eu.etaxonomy.cdm.model.permission.User;
 import eu.etaxonomy.taxeditor.event.EventUtility;
@@ -26,26 +24,15 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 /**
  * @author n.hoffmann
  * @created Mar 9, 2011
- * @version 1.0
  */
 public class MemberDetailSection extends AbstractEntityCollectionSection<Group, User> {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param title
-        * @param style
-        */
        public MemberDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        int style) {
-               super(formFactory, conversation, parentElement, "Members", style);
+               super(formFactory, parentElement, "Members", style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
-        */
        @Override
        public Collection<User> getCollection(Group entity) {
                return entity.getMembers();
@@ -56,68 +43,43 @@ public class MemberDetailSection extends AbstractEntityCollectionSection<Group,
         return new DefaultCdmBaseComparator<>();
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#createNewElement()
-        */
        @Override
        public User createNewElement() {
-               User selection = UserSelectionDialog.select(getLayoutComposite().getShell(), //getConversationHolder(),
+               User selection = UserSelectionDialog.select(getLayoutComposite().getShell(),
                        null, this.getEntity());
                return selection;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
        @Override
        public void addElement(User element) {
                getEntity().addMember(element);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
        @Override
        public void removeElement(User element) {
                getEntity().removeMember(element);
                EventUtility.postEvent(WorkbenchEventConstants.REMOVE_USER, element);
-
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getEmptyString()
-        */
        @Override
        public String getEmptyString() {
                return "No members yet.";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getTooltipString()
-        */
        @Override
        protected String getTooltipString() {
                return "Add a member to this group";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public User addExisting() {
         // TODO Auto-generated method stub
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         // TODO Auto-generated method stub
         return false;
     }
-
-
-
-}
+}
\ No newline at end of file
index 12556d93825490ac8ef838d668d90580e22396db..c6163b68c535f1361b1e1f9eb95e0f0102d2ef6c 100644 (file)
@@ -39,15 +39,15 @@ public class PolytomousKeyDetailElement extends
 
            numberStartNumber = formFactory.createFloatTextWithLabelElement(formElement, "Start Number", entity.getStartNumber(), style);
 
-           sectionTaxonomicScope = formFactory.createTaxonomicScopeSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(TaxonomicScopeSection.class, entity.getClass().getCanonicalName()));
+           sectionTaxonomicScope = formFactory.createTaxonomicScopeSection(formElement, StoreUtil.getSectionStyle(TaxonomicScopeSection.class, entity.getClass().getCanonicalName()));
            sectionTaxonomicScope.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
            sectionTaxonomicScope.setEntity(entity);
 
-           sectionGeoScopes = formFactory.createGeoScopePolyKeyDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(GeoScopePolyKeyDetailSection.class, entity.getClass().getCanonicalName()));
+           sectionGeoScopes = formFactory.createGeoScopePolyKeyDetailSection(formElement, StoreUtil.getSectionStyle(GeoScopePolyKeyDetailSection.class, entity.getClass().getCanonicalName()));
            sectionGeoScopes.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
            sectionGeoScopes.setEntity(entity);
 
-           sectionScopeRestriction = formFactory.createScopeRestrictionSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(ScopeRestrictionSection.class, entity.getClass().getCanonicalName()));
+           sectionScopeRestriction = formFactory.createScopeRestrictionSection(formElement, StoreUtil.getSectionStyle(ScopeRestrictionSection.class, entity.getClass().getCanonicalName()));
            sectionScopeRestriction.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
            sectionScopeRestriction.setEntity(entity);
        }
@@ -67,4 +67,10 @@ public class PolytomousKeyDetailElement extends
                }
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
        }
+
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
 }
index 68a5db7d82cd6091816507fb0948683c2274c639..f0575547f76191b0ef2b0f882a3f55a81ac71117 100644 (file)
@@ -1,11 +1,15 @@
 /**
- *
- */
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.ui.section.key;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -14,30 +18,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
 /**
  * @author n.hoffmann
- *
  */
 public class PolytomousKeyDetailSection extends AbstractCdmDetailSection<PolytomousKey> {
 
        public PolytomousKeyDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-        */
        @Override
        public String getHeading() {
                return "Polytomous Key";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
        protected AbstractCdmDetailElement<PolytomousKey> createCdmDetailElement(AbstractCdmDetailSection<PolytomousKey> parentElement, int style) {
            return formFactory.createPolytomousKeyDetailElement(parentElement);
        }
-
-}
+}
\ No newline at end of file
index a0ff6d61f38e0c7e781e2505882411824fcab968..daa95df0124b098025891d50fc18a97174c2c6d7 100644 (file)
@@ -55,7 +55,7 @@ public class PolytomousKeyNodeDetailElement extends
                                        formElement, "Question", parent.getQuestion(), 50, style);
 
                        selection_feature = formFactory
-                                       .createSelectionElement(Feature.class,//getConversationHolder(),
+                                       .createSelectionElement(Feature.class,
                                                formElement, "Character",
                                                        parent.getFeature(),
                                                        EntitySelectionElement.EDITABLE | EntitySelectionElement.DELETABLE, style);
@@ -66,20 +66,20 @@ public class PolytomousKeyNodeDetailElement extends
 
 
                selection_taxon = formFactory
-                               .createSelectionElement(Taxon.class,//getConversationHolder(),
+                               .createSelectionElement(Taxon.class,
                                        formElement, "Taxon",
                                                entity.getTaxon(), EntitySelectionElement.DELETABLE,
                                                style);
 
 
                selection_subkey = formFactory
-                               .createSelectionElement(PolytomousKey.class,//getConversationHolder(),
+                               .createSelectionElement(PolytomousKey.class,
                                        formElement, "Subkey",
                                                entity.getSubkey(),
                                                EntitySelectionElement.EDITABLE | EntitySelectionElement.DELETABLE, style);
 
                selection_otherNode = formFactory
-                               .createSelectionElement(PolytomousKeyNode.class,//getConversationHolder(),
+                               .createSelectionElement(PolytomousKeyNode.class,
                                        formElement, "Other Node",
                                                entity.getOtherNode(),
                                                EntitySelectionElement.DELETABLE, style);
@@ -112,4 +112,10 @@ public class PolytomousKeyNodeDetailElement extends
                        getEntity().setOtherNode(selection_otherNode.getEntity());
                }
        }
+
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
 }
index 65c4d636c64fa269a0719d991b603160edb3ea03..1fa47a9ce375f3aa62ebe2bbc292fa29c897ff26 100644 (file)
@@ -1,11 +1,15 @@
 /**
- *
- */
+* 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.section.key;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -14,30 +18,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
 /**
  * @author n.hoffmann
- *
  */
 public class PolytomousKeyNodeDetailSection extends AbstractCdmDetailSection<PolytomousKeyNode> {
 
        public PolytomousKeyNodeDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-        */
        @Override
        public String getHeading() {
                return "Polytomous Key Node";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
        protected AbstractCdmDetailElement<PolytomousKeyNode> createCdmDetailElement(AbstractCdmDetailSection<PolytomousKeyNode> parentElement, int style) {
            return formFactory.createPolytomousKeyNodeDetailElement(parentElement);
        }
-
-}
+}
\ No newline at end of file
index 5e35debd28532a90e5b31ab29ff2e3a9706da196..161851d32ec624a8922a259670e12f424431ff85 100644 (file)
@@ -1,14 +1,18 @@
 /**
+ * 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.section.key;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
@@ -16,16 +20,14 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCol
 
 /**
  * @author n.hoffmann
- *
  */
 public class ScopeRestrictionSection extends AbstractUnboundEntityCollectionSection<PolytomousKey, DefinedTerm> {
 
        public ScopeRestrictionSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(formFactory, conversation, parentElement, "Scope Restriction", style);
+                       ICdmFormElement parentElement, int style) {
+               super(formFactory, parentElement, "Scope Restriction", style);
        }
 
-
        @Override
        protected Collection<DefinedTerm> getEntityCollection(PolytomousKey entity) {
                return entity.getScopeRestrictions();
@@ -39,7 +41,6 @@ public class ScopeRestrictionSection extends AbstractUnboundEntityCollectionSect
        @Override
        public DefinedTerm createNewElement() {
                return null;
-
        }
 
        @Override
@@ -62,24 +63,15 @@ public class ScopeRestrictionSection extends AbstractUnboundEntityCollectionSect
                return "Add a scope restriction";
        }
 
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public DefinedTerm addExisting() {
         // TODO Auto-generated method stub
         return null;
     }
 
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         // TODO Auto-generated method stub
         return false;
     }
-
-}
+}
\ No newline at end of file
index eba36707299a3ac28e277f6423968f6b5cc2b00d..0732cb88d4fdf9c4c1881db3b40bdf872fbdcc1c 100644 (file)
@@ -12,7 +12,6 @@ package eu.etaxonomy.taxeditor.ui.section.key;
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonSelectionDialog;
@@ -29,26 +28,13 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 public class TaxonomicScopeSection extends
                AbstractEntityCollectionSection<PolytomousKey, Taxon> {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param title
-        * @param style
-        */
        public TaxonomicScopeSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        int style) {
-               super(formFactory, conversation, parentElement, "Taxonomic Scope",
+               super(formFactory, parentElement, "Taxonomic Scope",
                                style);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#
-        * getCollection(java.lang.Object)
-        */
        @Override
        public Collection<Taxon> getCollection(PolytomousKey entity) {
                return entity.getTaxonomicScope();
@@ -59,81 +45,41 @@ public class TaxonomicScopeSection extends
         return new DefaultCdmBaseComparator<>();
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#
-        * createNewElement()
-        */
        @Override
        public Taxon createNewElement() {
-               Taxon selection = TaxonSelectionDialog.selectTaxon(getShell(),//getConversationHolder(),
-                       null);
-
+               Taxon selection = TaxonSelectionDialog.selectTaxon(getShell(), null);
                return selection;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#addElement
-        * (java.lang.Object)
-        */
        @Override
        public void addElement(Taxon element) {
                getEntity().addTaxonomicScope(element);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#
-        * removeElement(java.lang.Object)
-        */
        @Override
        public void removeElement(Taxon element) {
                getEntity().removeTaxonomicScope(element);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#
-        * getEmptyString()
-        */
        @Override
        public String getEmptyString() {
                return "No taxonomic scope yet.";
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#
-        * getTooltipString()
-        */
        @Override
        protected String getTooltipString() {
                return "Add a taxon to the scope of this key";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Taxon addExisting() {
         // TODO Auto-generated method stub
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         // TODO Auto-generated method stub
         return false;
     }
-
-}
+}
\ No newline at end of file
index 735c0e4e426f4e967ca0de63f563980c40df34b0..194c38cb1a2b3f4ca7aa045871f411f5bf3f292f 100644 (file)
@@ -6,11 +6,8 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.media;
 
-import java.net.URI;
-
 import org.apache.commons.io.FileUtils;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
@@ -18,7 +15,9 @@ import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.swt.events.SelectionListener;
 
-import eu.etaxonomy.cdm.common.media.ImageInfo;
+import eu.etaxonomy.cdm.api.service.media.MediaInfoFileReader;
+import eu.etaxonomy.cdm.common.URI;
+import eu.etaxonomy.cdm.common.media.CdmImageInfo;
 import eu.etaxonomy.cdm.model.media.ImageFile;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
@@ -49,7 +48,7 @@ public class ImageFileElement extends MediaRepresentationPartElement<ImageFile>
         @Override
         protected IStatus run(IProgressMonitor monitor) {
             try{
-                ImageInfo imageInfo = ImageInfo.NewInstanceWithMetaData(uri, 10000);
+                CdmImageInfo imageInfo = MediaInfoFileReader.legacyFactoryMethod(uri).readBaseInfo().readMetaData().getCdmImageInfo();
                 ImageFileElement.this.getLayoutComposite().getDisplay().asyncExec(()->{
                     element_keyValue.setInput(imageInfo.getMetaData());
                     try {
@@ -83,7 +82,6 @@ public class ImageFileElement extends MediaRepresentationPartElement<ImageFile>
             }
             return Status.OK_STATUS;
         }
-
     }
 
        private NumberWithLabelElement text_height;
@@ -111,18 +109,23 @@ public class ImageFileElement extends MediaRepresentationPartElement<ImageFile>
                text_width = formFactory.createFloatTextWithLabelElement(formElement, "Width", null, style);
                text_width.setEnabled(false);
                element_keyValue = formFactory.createKeyValueViewerElement(formElement, "Key", "Value", null);
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
        @Override
        public void setEntity(ImageFile entity) {
                super.setEntity(entity);
-               text_height.setNumber(entity.getHeight());
-               text_width.setNumber(entity.getWidth());
-               try {
-            new LoadImageJob(getEntity().getUri(), true).schedule();
-               } catch (Exception e) {
-                   e.printStackTrace();
-                       handleException();
+               if (text_height != null){
+                       text_height.setNumber(entity.getHeight());
+                       text_width.setNumber(entity.getWidth());
+                       try {
+                   new LoadImageJob(getEntity().getUri(), true).schedule();
+                       } catch (Exception e) {
+                           e.printStackTrace();
+                               handleException();
+                       }
                }
        }
 
index 4ed51c41d055084fb9764fe03f9b2f86d40007e3..29c38d830299c09345490efba06928f914c5a776 100644 (file)
@@ -9,21 +9,25 @@
 package eu.etaxonomy.taxeditor.ui.section.media;
 
 import java.io.IOException;
-import java.net.URI;
 import java.util.List;
 import java.util.Set;
 
+import org.apache.commons.imaging.ImageReadException;
 import org.apache.http.HttpException;
-import org.apache.sanselan.ImageReadException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Label;
 
+import eu.etaxonomy.cdm.api.service.media.MediaInfoFileReader;
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.common.UriUtils;
-import eu.etaxonomy.cdm.common.media.ImageInfo;
+import eu.etaxonomy.cdm.common.media.CdmImageInfo;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.media.ImageFile;
 import eu.etaxonomy.cdm.model.media.Media;
@@ -41,20 +45,21 @@ import eu.etaxonomy.taxeditor.ui.element.ImageElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.description.MediaDetailsSection;
 
 /**
  * @author pplitzner
  * @date 25.08.2014
- *
  */
 public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
 
     private static final String LOAD_IMAGE = Messages.MediaDetailElement_LOAD_IMAGE;
 
+    private boolean isShowImage = true;
+
     /**
      * @author pplitzner
      * @since Jul 11, 2019
-     *
      */
     private final class LoadImageJob extends Job {
         private URI uri;
@@ -65,11 +70,12 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
 
         @Override
         protected IStatus run(IProgressMonitor monitor) {
-            ImageInfo imageInfo;
             try {
                 //first check if uri refers to an actual (non-image) file
+
                 UriUtils.getInputStream(uri);// will fail with a FileNotFoundException if not
-                imageInfo = ImageInfo.NewInstance(uri, 10000);//will fail when it is no image file
+
+                CdmImageInfo imageInfo = MediaInfoFileReader.legacyFactoryMethod(uri).readBaseInfo().readMetaData().getCdmImageInfo(); //will fail when it is no image file
                 MediaDetailElement.this.getLayoutComposite().getDisplay().asyncExec(()->{
                     singleMediaRepresentationPart.setSize((int) imageInfo.getLength());
                     if(singleMediaRepresentationPart.isInstanceOf(ImageFile.class)){
@@ -84,14 +90,18 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
                     disposeImage();
                     if (!parentFormElement.getLayoutComposite().isDisposed()) {
                         element_image = formFactory.createImageElement(parentFormElement, uri, style);
-                        StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
+//                        StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
                         try {
                             element_image.initImageUri(uri);
                         } catch (IOException | HttpException e) {
                             exception(e);
                         }
                         element_image.loadImage();
+
                         disposeErrorLabel();
+                        StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
+
+
                     }
                 });
             } catch (Exception e){
@@ -122,10 +132,8 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
 
     @Override
     protected void createControls(ICdmFormElement formElement, Media entity, int style) {
-
         this.parentFormElement = formElement;
         this.style = style;
-
     }
 
     @Override
@@ -138,6 +146,14 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
         showAdvancedView();
     }
 
+    public boolean isShowImage() {
+        return isShowImage;
+    }
+
+    public void setShowImage(boolean isShowImage) {
+        this.isShowImage = isShowImage;
+    }
+
     @Override
     public void handleEvent(Object eventSource){
         if(eventSource==textUri){
@@ -148,7 +164,19 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
                 uriBuffer=textUri.getText();
             }
             else{
-                new LoadImageJob(uri, LOAD_IMAGE).schedule();
+                if (isShowImage){
+                    LoadImageJob job = new LoadImageJob(uri, LOAD_IMAGE);
+                    job.schedule();
+                }
+            }
+            if (this.getParentElement() != null && this.getParentElement() instanceof MediaMetaElement){
+                MediaMetaElement metaElement = (MediaMetaElement)this.getParentElement();
+                if (metaElement.getParentElement() != null && metaElement.getParentElement() instanceof MediaDetailsSection){
+                    MediaDetailsSection sec = (MediaDetailsSection)metaElement.getParentElement();
+//                    sec.setMediaSectionTitle();
+                    metaElement.createTitle();
+                    sec.setMediaSectionTitle();
+                }
             }
         }
     }
@@ -213,7 +241,7 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
                 removeElementsAndControls(textUri);
             }
             disposeImage();
-            section_mediaRepresentation = formFactory.createMediaRepresentationSection(getConversationHolder(), parentFormElement, StoreUtil.getSectionStyle(MediaRepresentationSection.class, getEntity().getClass().getCanonicalName()));
+            section_mediaRepresentation = formFactory.createMediaRepresentationSection(parentFormElement, StoreUtil.getSectionStyle(MediaRepresentationSection.class, getEntity().getClass().getCanonicalName()));
             section_mediaRepresentation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
             section_mediaRepresentation.setEntity(getEntity());
             //set buffered uri as text if uri had parsing problems in simple view
@@ -234,8 +262,21 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
                 textUri.parseText();
             }
             textUri.getLayoutComposite().layout();
-
-            new LoadImageJob(singleMediaRepresentationPart.getUri(), LOAD_IMAGE).schedule();
+            if (isShowImage){
+                LoadImageJob job = new LoadImageJob(singleMediaRepresentationPart.getUri(), LOAD_IMAGE);
+                job.schedule();
+            } else{
+                Button button_showImage = formFactory.createButton(getLayoutComposite(), Messages.MediaDetailElement_SHOW_IMAGE, SWT.PUSH);
+                button_showImage.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+                button_showImage.addSelectionListener(new SelectionAdapter() {
+                    @Override
+                    public void widgetSelected(SelectionEvent e) {
+                        LoadImageJob job = new LoadImageJob(singleMediaRepresentationPart.getUri(), Messages.MediaDetailElement_LOAD_IMAGE);
+                        job.schedule();
+                        button_showImage.setText(Messages.MediaDetailElement_RELOAD_IMAGE);
+                    }
+                });
+            }
         }
     }
 
@@ -271,4 +312,10 @@ public class MediaDetailElement extends AbstractCdmDetailElement<Media>{
         return uriBuffer;
     }
 
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
+
 }
index c8d5462cb3064c4c98ed3a4b23d9ce61e4af5e68..7a8098b65ee489214f29ae07775f1c0e810a9e0d 100644 (file)
@@ -1,13 +1,18 @@
 /**
+ * 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.section.media;
 
 import java.util.Map;
 
+import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionListener;
 
-import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.common.Language;
@@ -21,7 +26,7 @@ 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.ISelectableElement;
-import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.MultilanguageTextElement;
 import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
@@ -31,18 +36,16 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author n.hoffmann
  * @created Nov 17, 2009
- * @version 1.0
  */
 public class MediaMetaElement extends AbstractEntityCollectionElement<Media> implements ISelectableElement, ITogglableMediaElement{
 
     private EntitySelectionElement<AgentBase> selection_artist;
-    private LanguageStringWithLabelElement text_description;
-    private LanguageStringWithLabelElement text_title;
+    private MultilanguageTextElement text_description;
+    private MultilanguageTextElement text_title;
     private MediaDetailElement mediaDetailElement;
     private TimePeriodElement mediaCreated;
     private SelectionArbitrator selectionArbitrator;
 
-
     public MediaMetaElement(CdmFormFactory cdmFormFactory,
             AbstractFormSection<?> formElement, Media element,
             SelectionListener removeListener, int style) {
@@ -51,67 +54,70 @@ public class MediaMetaElement extends AbstractEntityCollectionElement<Media> imp
         if(cdmFormFactory.getSelectionProvider() != null){
             selectionArbitrator = cdmFormFactory.createSelectionArbitrator(this);
         }
-
-
     }
 
-    /** {@inheritDoc} */
     @Override
     public void createControls(ICdmFormElement element, int style) {
-//        final IAction switchAction = MediaViewSwitch.createSwitch(MediaMetaElement.this);
-//        Button btnToggleAdvancedMediaView = new Button(getBox(), style);
-//        btnToggleAdvancedMediaView.setToolTipText(switchAction.getText());
-//        btnToggleAdvancedMediaView.setImage(ImageResources.getImage(ImageResources.SWITCH_VIEW_TYPE));
-//        btnToggleAdvancedMediaView.addSelectionListener(new SelectionAdapter() {
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                switchAction.run();
-//            }
-//        });
+
         setWarnForReferencingObjects(element, 2);
-        text_title = formFactory.createLanguageStringWithLabelElement(element, "Title", null, style);
-        selection_artist = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
+        text_title = formFactory.createMultiLanguageTextElement(element, "Title", getEntity().getAllTitles(), 50, style);
+
+        selection_artist = formFactory.createSelectionElement(AgentBase.class,
                 element, "Artist", null, EntitySelectionElement.ALL, style);
         addElement(selection_artist);
 
         mediaCreated = formFactory.createTimePeriodElement(element, "Media Created", getEntity().getMediaCreated(), style);
         addElement(mediaCreated);
-        text_description = formFactory.createLanguageStringWithLabelElement(element, "Description", null, 100, true, style);
 
+       text_description = formFactory.createMultiLanguageTextElement(element, "Description", null, 50, SWT.WRAP);
 
 
 
         mediaDetailElement = formFactory.createMediaDetailElement(element);
+
+        ICdmFormElement grandGrandParent = getParentElement().getParentElement().getParentElement();
+        Class<?> clazz = null;
+        if (grandGrandParent != null){
+            clazz = grandGrandParent.getClass();
+        }
+        //TODO: find a nicer solution
+        if (grandGrandParent != null && clazz != null && clazz.getName().equals("eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage$WizardPageRootElement")){
+            mediaDetailElement.setShowImage(false);
+        }
         addElement(mediaDetailElement);
+        if (entity != null){
+               setEntity(entity);
+        }
     }
 
-    /** {@inheritDoc} */
     @Override
     public void setEntity(Media element) {
         this.entity = element;
-        mediaDetailElement.setEntity(element);
-
-        selection_artist.setEntity(HibernateProxyHelper
-                .deproxy(element.getArtist()));
-
-        text_description.setLanguageString(element.getDescription(CdmStore
-                .getDefaultLanguage()));
-        if (CdmUtils.isBlank(text_description.getText())){
-               Map<Language, LanguageString> allDescriptions = element.getAllDescriptions();
-               if (!allDescriptions.isEmpty()){
-                       text_description.setLanguageString(allDescriptions.get(Language.ENGLISH()));
-               }
+        if (mediaDetailElement != null){
+               mediaDetailElement.setEntity(element);
+       
+               selection_artist.setEntity(HibernateProxyHelper
+                       .deproxy(element.getArtist()));
+       
+               if (text_description != null) {
+                       text_description.setMultilanguageText(element.getAllDescriptions());
+               }
+               createTitle();
         }
+    }
 
-        LanguageString title = element.getTitle(CdmStore.getDefaultLanguage());
-
-        if (title == null) {
-            title = LanguageString.NewInstance(element.getTitleCache(), CdmStore.getDefaultLanguage());
-        }
-
-        text_title.setLanguageString(title);
-
-
+    public void createTitle() {
+//       LanguageString title = this.entity.getTitle(CdmStore.getDefaultLanguage());
+//       Map<Language, LanguageString> languageStrings = entity.getAllTitles();
+//       if (title == null || title.getText().contains("empty media")) {
+//           entity.getAllTitles().remove(title);
+//           title = LanguageString.NewInstance(entity.getTitleCache(), CdmStore.getDefaultLanguage());
+//           
+//           if (!title.getText().contains("empty media")){
+//               languageStrings.put(CdmStore.getDefaultLanguage(), title);
+//           }
+//       }
+       text_title.setMultilanguageText(this.entity.getAllTitles());
     }
 
     @Override
@@ -127,15 +133,16 @@ public class MediaMetaElement extends AbstractEntityCollectionElement<Media> imp
         mediaDetailElement.toggleAdvancedMediaView();
     }
 
-    /** {@inheritDoc} */
    @Override
     public void handleEvent(Object eventSource) {
         if (eventSource == selection_artist) {
             getEntity().setArtist(selection_artist.getSelection());
         } else if (eventSource == text_description) {
-            getEntity().addDescription(text_description.getLanguageString());
+            text_description.getMultilanguageText().values()
+            .forEach(languageString -> getEntity().putDescription(languageString));
         } else if (eventSource == text_title) {
-            getEntity().putTitle(text_title.getLanguageString());
+            text_title.getMultilanguageText().values()
+            .forEach(languageString -> getEntity().putTitle(languageString));
             if (getParentElement() instanceof AbstractCdmDetailSection) {
                 ((AbstractCdmDetailSection<?>) getParentElement()).updateTitle();
             }
@@ -150,6 +157,7 @@ public class MediaMetaElement extends AbstractEntityCollectionElement<Media> imp
         return selectionArbitrator;
     }
 
-
-
-}
+    public MediaDetailElement getMediaDetailElement(){
+        return mediaDetailElement;
+    }
+}
\ No newline at end of file
index 311eea95f3b09f3c5dff3523a3fc62aef9ac0095..4727fb4d14b1fa53443bff1e2974dc4c41d6847a 100644 (file)
@@ -10,7 +10,6 @@
 package eu.etaxonomy.taxeditor.ui.section.media;
 
 import java.io.IOException;
-import java.net.URI;
 import java.util.Collection;
 
 import org.apache.http.HttpException;
@@ -20,8 +19,10 @@ import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.swt.events.SelectionListener;
 
+import eu.etaxonomy.cdm.api.service.media.MediaInfoFileReader;
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.common.UriUtils;
-import eu.etaxonomy.cdm.common.media.ImageInfo;
+import eu.etaxonomy.cdm.common.media.CdmImageInfo;
 import eu.etaxonomy.cdm.model.media.ImageFile;
 import eu.etaxonomy.cdm.model.media.MediaRepresentation;
 import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
@@ -38,7 +39,6 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
  *
  * @author n.hoffmann
  * @created Mar 24, 2010
- * @version 1.0
  */
 public class MediaRepresentationElement extends AbstractEntityCollectionElement<MediaRepresentation> {
 
@@ -53,25 +53,27 @@ public class MediaRepresentationElement extends AbstractEntityCollectionElement<
                super(cdmFormFactory, section, element, removeListener, null, style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
                text_mimeType = formFactory.createTextWithLabelElement(element, "Mime Type", null, style);
                text_suffix = formFactory.createTextWithLabelElement(element, "Suffix", null, style);
-               section_mediaRepresentationPart = formFactory.createMediaRepresentationPartSection(getConversationHolder(), element, StoreUtil.getSectionStyle(MediaRepresentationPartSection.class, MediaRepresentation.class.getCanonicalName()));
+               section_mediaRepresentationPart = formFactory.createMediaRepresentationPartSection(element, StoreUtil.getSectionStyle(MediaRepresentationPartSection.class, MediaRepresentation.class.getCanonicalName()));
                section_mediaRepresentationPart.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setEntity(MediaRepresentation element) {
                this.entity = element;
-               section_mediaRepresentationPart.setEntity(element);
-               text_mimeType.setText(element.getMimeType());
-               text_suffix.setText(element.getSuffix());
+               if (section_mediaRepresentationPart != null){
+                       section_mediaRepresentationPart.setEntity(element);
+                       text_mimeType.setText(element.getMimeType());
+                       text_suffix.setText(element.getSuffix());
+               }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
                if(eventSource == text_mimeType){
@@ -101,7 +103,7 @@ public class MediaRepresentationElement extends AbstractEntityCollectionElement<
                         return Status.CANCEL_STATUS;
                     }
                     try {
-                        ImageInfo imageInfo = ImageInfo.NewInstance(uri, 10000);
+                       CdmImageInfo imageInfo = MediaInfoFileReader.legacyFactoryMethod(uri).readBaseInfo().readMetaData().getCdmImageInfo();
                         String mimeType = imageInfo.getMimeType();
                         getEntity().setMimeType(mimeType);
                         getEntity().setSuffix(imageInfo.getSuffix());
index 4e17de2a18596d6ceb8cb713c83f728fcc48754b..ea9d55dc9ea2fc0f4cc188bb9bc15d9f9195b8a7 100644 (file)
@@ -6,14 +6,12 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.media;
 
-import java.net.URI;
-
 import org.apache.commons.io.FileUtils;
 import org.eclipse.swt.events.SelectionListener;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -27,7 +25,6 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
  *
  * @author n.hoffmann
  * @created Mar 24, 2010
- * @version 1.0
  */
 public class MediaRepresentationPartElement<T extends MediaRepresentationPart> extends
                AbstractEntityCollectionElement<T> {
@@ -48,23 +45,28 @@ public class MediaRepresentationPartElement<T extends MediaRepresentationPart> e
                text_uri = formFactory.createUriWithLabelElement(element, "URI", null, style);
                text_size = formFactory.createFloatTextWithLabelElement(element, "Size", null, style);
                text_size.setEnabled(false);
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
        @Override
        public void setEntity(T entity) {
                this.entity = entity;
-               if(entity.getSize() != null){
-                       text_size.setText(FileUtils.byteCountToDisplaySize(entity.getSize()));
+               if (text_size != null){
+                       if(entity.getSize() != null){
+                               text_size.setText(FileUtils.byteCountToDisplaySize(entity.getSize()));
+                       }
+                       if(entity.getUri() != null){
+                               text_uri.setParsedText(entity.getUri());
+                       } else {
+                   String uriBuffer = getParentMediaDetailElement().getUriBuffer();
+                   if(uriBuffer!=null){
+                       text_uri.setText(uriBuffer);
+                       text_uri.parseText();//just to update the error label
+                   }
+               }
                }
-               if(entity.getUri() != null){
-                       text_uri.setParsedText(entity.getUri());
-               } else {
-            String uriBuffer = getParentMediaDetailElement().getUriBuffer();
-            if(uriBuffer!=null){
-                text_uri.setText(uriBuffer);
-                text_uri.parseText();//just to update the error label
-            }
-        }
        }
 
        @Override
index 0905bf963d5135c54cb79295caa805de9b83acda..6bb00c6763d19b2b0c2643589910a94d4cf1249c 100644 (file)
@@ -1,4 +1,11 @@
-
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.ui.section.media;
 
 import java.util.Collection;
@@ -6,7 +13,6 @@ import java.util.Comparator;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.media.ImageFile;
 import eu.etaxonomy.cdm.model.media.MediaRepresentation;
 import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
@@ -17,24 +23,14 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
- * <p>MediaRepresentationPartSection class.</p>
- *
  * @author n.hoffmann
  */
 public class MediaRepresentationPartSection extends
                AbstractEntityCollectionSection<MediaRepresentation, MediaRepresentationPart> {
 
-       /**
-        * <p>Constructor for MediaRepresentationPartSection.</p>
-        *
-        * @param cdmFormFactory 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 style a int.
-        */
-       public MediaRepresentationPartSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
+       public MediaRepresentationPartSection(CdmFormFactory cdmFormFactory,
                        ICdmFormElement parentElement, int style) {
-               super(cdmFormFactory, conversation, parentElement, "Media Representation Part", style);
+               super(cdmFormFactory, parentElement, "Media Representation Part", style);
                formFactory.addPropertyChangeListener(this);
        }
 
@@ -42,6 +38,7 @@ public class MediaRepresentationPartSection extends
        public void addElement(MediaRepresentationPart element) {
                getEntity().addRepresentationPart(element);
        }
+
        @Override
        public MediaRepresentationPart createNewElement() {
                // FIXME we are supporting image only at the moment
@@ -95,4 +92,4 @@ public class MediaRepresentationPartSection extends
     public boolean allowAddExisting() {
         return false;
     }
-}
+}
\ No newline at end of file
index 766e83c3ebcccb8851f26ded8374842b4484ee48..0d7b4c7e1af159e556b1036042277b7f81077354 100644 (file)
@@ -6,13 +6,11 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.media;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.media.MediaRepresentation;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -21,40 +19,26 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
- * <p>MediaRepresentationSection class.</p>
- *
  * @author n.hoffmann
  * @created Mar 24, 2010
- * @version 1.0
  */
 public class MediaRepresentationSection extends AbstractEntityCollectionSection<Media, MediaRepresentation> {
 
-       /**
-        * <p>Constructor for MediaRepresentationSection.</p>
-        *
-        * @param cdmFormFactory 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 style a int.
-        */
-       public MediaRepresentationSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
+       public MediaRepresentationSection(CdmFormFactory cdmFormFactory,
                        ICdmFormElement parentElement, int style) {
-               super(cdmFormFactory, conversation, parentElement, "Media Representation", style);
+               super(cdmFormFactory, parentElement, "Media Representation", style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addElement(MediaRepresentation element) {
                getEntity().addRepresentation(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public MediaRepresentation createNewElement() {
                return MediaRepresentation.NewInstance();
        }
 
-       /** {@inheritDoc} */
        @Override
        public Collection<MediaRepresentation> getCollection(
                        Media entity) {
@@ -66,39 +50,28 @@ public class MediaRepresentationSection extends AbstractEntityCollectionSection<
            return new DefaultCdmBaseComparator<>();
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No media representations yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Create a new media representation";
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElement(MediaRepresentation element) {
                getEntity().removeRepresentation(element);
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public MediaRepresentation addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-
-}
+}
\ No newline at end of file
index 182a6dd9df07d662c8a63e090c2a0652e347c6a3..949e5125b14066d714f0197a62086ba1e3b0a203 100644 (file)
@@ -1,12 +1,16 @@
 /**
- *
- */
+* 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.section.media;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.media.IdentifiableMediaEntity;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.MediaSelectionDialog;
@@ -16,22 +20,12 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
- * <p>MediaSection class.</p>
- *
  * @author nho
  */
 public class MediaSection extends AbstractEntityCollectionSection<IdentifiableMediaEntity, Media>{
 
-       /**
-        * <p>Constructor for MediaSection.</p>
-        *
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param style a int.
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       public MediaSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(cdmFormFactory, conversation, parentElement, "Media", style);
+       public MediaSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, int style) {
+               super(cdmFormFactory, parentElement, "Media", style);
        }
 
        @Override
@@ -78,4 +72,4 @@ public class MediaSection extends AbstractEntityCollectionSection<IdentifiableMe
     public boolean allowAddExisting() {
         return true;
     }
-}
+}
\ No newline at end of file
index bc5ad43946d5f745c1b54eab93209d61501f7699..c3f94a94760dfe479e764ad7f6edd97ca346c5b8 100644 (file)
@@ -6,16 +6,16 @@
 * 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.name;
 
 import java.util.Iterator;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
 import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
-import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -24,71 +24,58 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
-import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.section.reference.OriginalSourceElement;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractSourcedEntityBaseElement;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.SourceSection;
-import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
- * <p>Abstract AbstractTypeDesignationElement class.</p>
- *
  * @author n.hoffmann
  * @created May 17, 2010
- * @version 1.0
  */
-public abstract class AbstractTypeDesignationElement<T extends TypeDesignationBase> extends AbstractSourcedEntityBaseElement<T> {
+public abstract class AbstractTypeDesignationElement<T extends TypeDesignationBase>
+        extends AbstractSourcedEntityBaseElement<T> {
+
+    @SuppressWarnings("unused")
+    private static final Logger logger = LogManager.getLogger(AbstractTypeDesignationElement.class);
 
-       protected CheckboxElement checkbox_notDesignated;
-       protected EntitySelectionElement<Reference> selection_reference;
-    protected TextWithLabelElement text_referenceDetail;
+    protected CheckboxElement checkbox_notDesignated;
+//     protected EntitySelectionElement<Reference> selection_reference;
+//    protected TextWithLabelElement text_referenceDetail;
+       protected OriginalSourceElement singleSourceElement;
     protected SourceSection sourceSection;
     protected ICdmFormElement formElement;
     protected int style;
 
-       /**
-        * <p>Constructor for AbstractTypeDesignationElement.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param section a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} object.
-        * @param entity a T object.
-        * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
-        * @param style a int.
-        * @param <T> a T object.
-        */
+
        public AbstractTypeDesignationElement(CdmFormFactory formFactory,
                        AbstractFormSection section, T entity,
                        SelectionListener removeListener, int style) {
                super(formFactory, section, entity, removeListener, style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement formElement, int style) {
-           checkbox_notDesignated = formFactory.createCheckbox(formElement, "Not Designated", false, style);
-        sourceSection = formFactory.createSourceSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(SourceSection.class, IdentifiableSource.class.getCanonicalName()));
-        sourceSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+//         checkbox_notDesignated = formFactory.createCheckbox(formElement, "Not Designated", false, style);
                this.formElement = formElement;
                this.style = style;
+
        }
 
        @Override
        public void setEntity(T entity){
            super.setEntity(entity);
+           if (this.getElements() == null || this.getElements().isEmpty()){
+               return;
+           }
            removeSourcesControls();
-
+           removeNotDesignatedControls();
            if (this.entity != null && this.entity.hasDesignationSource()){
-               if (selection_reference == null){
-                   removeNotDesignatedControls();
-               selection_reference = formFactory
-                        .createSelectionElement(Reference.class, formElement, "Status Reference",
-                                entity.getCitation(), EntitySelectionElement.ALL, style);
-
-                text_referenceDetail = formFactory.createTextWithLabelElement(
-                    formElement, "Reference Detail", entity.getCitationMicroReference(), style);
-                checkbox_notDesignated = formFactory.createCheckbox(formElement, "Not Designated", entity.isNotDesignated(), style);
+               if (singleSourceElement == null){            
+                   singleSourceElement = formFactory.createOriginalSourceElement(formElement, entity, "Status Reference");
                }
+               singleSourceElement.setEntity(entity.getDesignationSource(true));
         }else{
-            if (selection_reference != null){
+            if (singleSourceElement != null){
                 removeReferenceControls();
                 //check if there is still a reference
                 if (this.entity.getCitation() != null){
@@ -96,12 +83,12 @@ public abstract class AbstractTypeDesignationElement<T extends TypeDesignationBa
                     this.entity.setCitationMicroReference(null);
                 }
             }
-        }
-           sourceSection = formFactory.createSourceSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(SourceSection.class, IdentifiableSource.class.getCanonicalName()));
+        }   
+           checkbox_notDesignated = formFactory.createCheckbox(formElement, "Not Designated", entity.isNotDesignated(), style);
+           sourceSection = formFactory.createSourceSection(formElement, StoreUtil.getSectionStyle(SourceSection.class, IdentifiableSource.class.getCanonicalName()));
         sourceSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         sourceSection.setEntity(entity);
         StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
-
        }
 
        /**
@@ -109,15 +96,29 @@ public abstract class AbstractTypeDesignationElement<T extends TypeDesignationBa
      */
     protected void updateContent() {
       // if (this.getParentElement() instanceof NameDetailSection
-
     }
 
-
     public void removeReferenceControls(){
         for (Iterator<ICdmFormElement> iterator = getElements().iterator();iterator.hasNext();) {
             ICdmFormElement childElement = iterator.next();
             // recursion
-           if (childElement instanceof EntitySelectionElement && ((EntitySelectionElement)childElement).equals(selection_reference)) {
+//           if (childElement instanceof EntitySelectionElement && ((EntitySelectionElement)childElement).equals(selection_reference)) {
+//                childElement.removeElements();
+//
+//                // unregister selection arbitrator
+//                if(childElement instanceof ISelectableElement){
+//                    SelectionArbitrator selectionArbitrator = ((ISelectableElement) childElement).getSelectionArbitrator();
+//                    if(selectionArbitrator != null){
+//                        formFactory.destroySelectionArbitrator(selectionArbitrator);
+//                    }
+//                }
+//
+//                // unregister from property changes
+//                formFactory.removePropertyChangeListener(childElement);
+//                singleSourceElement = null;
+//           }
+            if (childElement instanceof OriginalSourceElement && ((OriginalSourceElement)childElement).equals(singleSourceElement)) {
+
                 childElement.removeElements();
 
                 // unregister selection arbitrator
@@ -130,28 +131,9 @@ public abstract class AbstractTypeDesignationElement<T extends TypeDesignationBa
 
                 // unregister from property changes
                 formFactory.removePropertyChangeListener(childElement);
-                selection_reference = null;
-           }
-          if (childElement instanceof TextWithLabelElement && ((TextWithLabelElement)childElement).equals(text_referenceDetail)) {
-
-                  childElement.removeElements();
-
-                  // unregister selection arbitrator
-                  if(childElement instanceof ISelectableElement){
-                      SelectionArbitrator selectionArbitrator = ((ISelectableElement) childElement).getSelectionArbitrator();
-                      if(selectionArbitrator != null){
-                          formFactory.destroySelectionArbitrator(selectionArbitrator);
-                      }
-                  }
-
-                  // unregister from property changes
-                  formFactory.removePropertyChangeListener(childElement);
-                  text_referenceDetail = null;
-
-
-          }
+                singleSourceElement = null;
+            }
         }
-
     }
 
     public void removeNotDesignatedControls(){
@@ -172,10 +154,9 @@ public abstract class AbstractTypeDesignationElement<T extends TypeDesignationBa
                 // unregister from property changes
                 formFactory.removePropertyChangeListener(childElement);
                 checkbox_notDesignated = null;
+                break;
            }
-
         }
-
     }
 
     public void removeSourcesControls(){
@@ -201,20 +182,19 @@ public abstract class AbstractTypeDesignationElement<T extends TypeDesignationBa
                 sourceSection = null;
                 break;
            }
-
         }
-
     }
+
     @Override
     public void handleEvent(Object eventSource) {
-        if (eventSource == selection_reference) {
-            getEntity().setCitation(selection_reference.getEntity());
-            setEntity(entity);
-        }
-        if (eventSource == text_referenceDetail) {
-            getEntity().setCitationMicroReference(text_referenceDetail.getText());
-            setEntity(entity);
-        }
+//        if (eventSource == selection_reference) {
+//            getEntity().setCitation(selection_reference.getEntity());
+//            setEntity(entity);
+//        }
+//        if (eventSource == text_referenceDetail) {
+//            getEntity().setCitationMicroReference(text_referenceDetail.getText());
+//            setEntity(entity);
+//        }
         if (eventSource == checkbox_notDesignated) {
             getEntity().setNotDesignated(checkbox_notDesignated.getSelection());
         }
index a1831a059588aa2dca72dbf26bf8d0efcbbe438f..4c33824a0fb8ed1b30bd1caa861b68e987c829d6 100644 (file)
@@ -6,11 +6,8 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.name;
 
-import java.util.Arrays;
-
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.cdm.model.name.INonViralName;
 import eu.etaxonomy.cdm.model.name.IZoologicalName;
@@ -24,48 +21,43 @@ import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
- * <p>
  * AuthorshipDetailElement class.
- * </p>
  *
  * @author n.hoffmann
  * @created Mar 4, 2010
- * @version 1.0
  */
-public class AuthorshipDetailElement extends
-       AbstractIdentifiableEntityDetailElement<INonViralName> {
+public class AuthorshipDetailElement
+               extends AbstractIdentifiableEntityDetailElement<INonViralName> {
 
+    @SuppressWarnings("rawtypes")
     private EntitySelectionElement<TeamOrPersonBase> selectionExBasionymAuthor;
+    @SuppressWarnings("rawtypes")
     private EntitySelectionElement<TeamOrPersonBase> selectionBasionymAuthor;
+    @SuppressWarnings("rawtypes")
     private EntitySelectionElement<TeamOrPersonBase> selectionExCombinationAuthor;
+    @SuppressWarnings("rawtypes")
     private EntitySelectionElement<TeamOrPersonBase> selectionCombinationAuthor;
+    @SuppressWarnings("rawtypes")
+    private EntitySelectionElement<TeamOrPersonBase> selectionInCombinationAuthor;
+    @SuppressWarnings("rawtypes")
+    private EntitySelectionElement<TeamOrPersonBase> selectionInBasionymAuthor;
 
     private NumberWithLabelElement text_publicationYear;
     private NumberWithLabelElement text_originalPublicationYear;
-       /**
-        * <p>
+
+    /**
         * Constructor for AuthorshipDetailElement.
-        * </p>
-        *
-        * @param cdmFormFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param formElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @param style
-        *            a int.
         */
        public AuthorshipDetailElement(CdmFormFactory cdmFormFactory,
                        ICdmFormElement formElement, int style) {
                super(cdmFormFactory, formElement);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected void createControls(ICdmFormElement formElement,
                        INonViralName entity, int style) {
@@ -75,51 +67,73 @@ public class AuthorshipDetailElement extends
                                "Authorship Cache", entity.getAuthorshipCache(),
                                entity.isProtectedAuthorshipCache(), style);
                addElement(toggleable_cache);
-          }
+           }
            NomenclaturalCode code = entity.getNameType();
 
            if (config == null || config.isAuthorshipSectionActivated()){
             selectionCombinationAuthor = formFactory.createSelectionElementWithAbbreviatedTitle(TeamOrPersonBase.class,
-                               getConversationHolder(),
                                formElement, "Author",
                                entity.getCombinationAuthorship(),
                                EntitySelectionElement.DELETABLE | EntitySelectionElement.SELECTABLE | EntitySelectionElement.EDITABLE, style);
                addElement(selectionCombinationAuthor);
                selectionExCombinationAuthor = formFactory.createSelectionElementWithAbbreviatedTitle(TeamOrPersonBase.class,
-                               getConversationHolder(),
                                formElement, "Ex Author",
                                entity.getExCombinationAuthorship(),
                                EntitySelectionElement.DELETABLE | EntitySelectionElement.SELECTABLE | EntitySelectionElement.EDITABLE, style);
                addElement(selectionExCombinationAuthor);
+               if ((config == null || config.isInAuthorshipActivated())&& (getEntity().getNameType().isFungus() || getEntity().getNameType().isZoological())) {
+                   selectionInCombinationAuthor = formFactory.createSelectionElementWithAbbreviatedTitle(TeamOrPersonBase.class,
+                        formElement, "In Author",
+                        entity.getInCombinationAuthorship(),
+                        EntitySelectionElement.DELETABLE | EntitySelectionElement.SELECTABLE | EntitySelectionElement.EDITABLE, style);
+                addElement(selectionInCombinationAuthor);
+               }
                if (code != null){
                 if (code.equals(NomenclaturalCode.ICZN)){
                     text_publicationYear = formFactory.createFloatTextWithLabelElement(formElement, "Publication Year", ((IZoologicalName)entity).getPublicationYear(), style);
-
                 }
-             }
-               selectionBasionymAuthor = formFactory.createSelectionElementWithAbbreviatedTitle(TeamOrPersonBase.class, getConversationHolder(),
+            }
+               selectionBasionymAuthor = formFactory.createSelectionElementWithAbbreviatedTitle(TeamOrPersonBase.class,
                     formElement, "Basionym Author", entity.getBasionymAuthorship(),
                     EntitySelectionElement.DELETABLE | EntitySelectionElement.SELECTABLE | EntitySelectionElement.EDITABLE, style);
                addElement(selectionBasionymAuthor);
-               selectionExBasionymAuthor = formFactory.createSelectionElementWithAbbreviatedTitle(TeamOrPersonBase.class, getConversationHolder(),
+               selectionExBasionymAuthor = formFactory.createSelectionElementWithAbbreviatedTitle(TeamOrPersonBase.class,
                        formElement, "Ex Basionym Author",entity.getExBasionymAuthorship(),
                        EntitySelectionElement.DELETABLE | EntitySelectionElement.SELECTABLE | EntitySelectionElement.EDITABLE, style);
 
                addElement(selectionExBasionymAuthor);
-                if (code != null){
-                   if (code.equals(NomenclaturalCode.ICZN)){
-
-                       text_originalPublicationYear = formFactory.createFloatTextWithLabelElement(formElement, "Orig. Publication Year", ((IZoologicalName)entity).getOriginalPublicationYear(), style);
+               if ((config == null || config.isInAuthorshipActivated()) && (getEntity().getNameType().isFungus() || getEntity().getNameType().isZoological())) {
+                   selectionInBasionymAuthor = formFactory.createSelectionElementWithAbbreviatedTitle(TeamOrPersonBase.class,
+                        formElement, "In Basionym Author",
+                        entity.getInBasionymAuthorship(),
+                        EntitySelectionElement.DELETABLE | EntitySelectionElement.SELECTABLE | EntitySelectionElement.EDITABLE, style);
+                addElement(selectionInBasionymAuthor);
+            }
+               if (code != null && code.equals(NomenclaturalCode.ICZN)){
+                   text_originalPublicationYear = formFactory.createFloatTextWithLabelElement(formElement, "Orig. Publication Year", ((IZoologicalName)entity).getOriginalPublicationYear(), style);
+           }
+           }
 
-                   }
-                }
+           //put to Cache
+           registerCacheRelevance(selectionCombinationAuthor);
+        registerCacheRelevance(selectionBasionymAuthor);
+        registerCacheRelevance(selectionExCombinationAuthor);
+        registerCacheRelevance(selectionExBasionymAuthor);
+        registerCacheRelevance(text_publicationYear);
+        registerCacheRelevance(text_originalPublicationYear);
 
-           }
+        registerCacheRelevance(toggleable_cache, cacheRelevanceHelper.getDependenciesArray());
 
        }
 
-       /** {@inheritDoc} */
-       @Override
+    @Override
+    public void addDependsOnCache(ToggleableTextElement toggleElement) {
+        super.addDependsOnCache(toggleElement);
+        //register my cache on higher cache (if not null yet)
+        registerCacheRelevance(toggleable_cache, toggleElement);
+    }
+
+    @Override
        public void updateContent() {
                if (getEntity() == null) {
                        setEntity(TaxonNameFactory.NewNonViralInstance(null));
@@ -127,28 +141,17 @@ public class AuthorshipDetailElement extends
 
                super.updateContent();
                if (toggleable_cache != null){
-               toggleable_cache.setEnabled(getEntity().isProtectedAuthorshipCache());
-
-
-               if (this.isIrrelevant()) {
-                       setIrrelevant(isIrrelevant());
-               } else {
-                       setIrrelevant(toggleable_cache.getState(),
-                                       Arrays.asList(new Object[] { toggleable_cache }));
-               }
+               toggleable_cache.setCacheEnabled(getEntity().isProtectedAuthorshipCache());
+               updateCacheRelevance();
                }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == toggleable_cache) {
                        getEntity().setAuthorshipCache(toggleable_cache.getText(),
                                        toggleable_cache.getState());
-                       if (!isIrrelevant()){
-                               setIrrelevant(toggleable_cache.getState(),
-                                               Arrays.asList(new Object[] { toggleable_cache }));
-                       }
+                       updateCacheRelevance();
                } else if (eventSource == selectionCombinationAuthor) {
                        getEntity().setCombinationAuthorship(
                                        selectionCombinationAuthor.getSelection());
@@ -165,15 +168,19 @@ public class AuthorshipDetailElement extends
             ((IZoologicalName)getEntity()).setOriginalPublicationYear(text_originalPublicationYear.getInteger());
         } else if (eventSource == text_publicationYear) {
             ((IZoologicalName)getEntity()).setPublicationYear(text_publicationYear.getInteger());
+        }else if (eventSource == selectionInCombinationAuthor) {
+            (getEntity()).setInCombinationAuthorship(selectionInCombinationAuthor.getEntity());
+        }else if (eventSource == selectionInBasionymAuthor) {
+            getEntity().setInBasionymAuthorship(selectionInBasionymAuthor.getEntity());
         }
 
 //             if (eventSource != toggleable_cache) {
 //                     toggleable_cache.setText(getEntity().getAuthorshipCache());
 //             }
 
-//              we have to notify the parent if this is embedded in the nonviral name
-//              section
-//              maybe we can handle this a little bit more elegant
+//             we have to notify the parent if this is embedded in the nonviral name
+//             section
+//             maybe we can handle this a little bit more elegant
 //             if (getParentElement() instanceof AbstractCdmDetailSection)
                        firePropertyChangeEvent(new CdmPropertyChangeEvent(
                                        getParentElement(), null));
@@ -188,4 +195,26 @@ public class AuthorshipDetailElement extends
                }
            }
        }
-}
+
+       @Override
+       public void fillFields() {
+               /*
+               toggleable_cache.setText(getEntity().getAuthorshipCache());
+               toggleable_cache.setSelected(getEntity().isProtectedAuthorshipCache());
+               selectionExBasionymAuthor.setEntity(getEntity().getExBasionymAuthorship());
+           selectionBasionymAuthor.setEntity(getEntity().getBasionymAuthorship());
+           selectionExCombinationAuthor.setEntity(getEntity().getExCombinationAuthorship());
+           selectionCombinationAuthor.setEntity(getEntity().getCombinationAuthorship());
+           if (text_originalPublicationYear != null) {
+
+           }
+           if (text_publicationYear != null) {
+               text_publicationYear.setNumber(((IZoologicalName)getEntity()).getPublicationYear());
+               text_originalPublicationYear.setNumber(((IZoologicalName)getEntity()).getOriginalPublicationYear());
+           }
+
+           */
+
+
+       }
+}
\ No newline at end of file
index bbcbe837d0ca1d044cfcbb9c5e30fc2fba99eed9..9b07c1243b7e56600cf2c6cfa7b2e935a4d1a70b 100644 (file)
@@ -6,12 +6,10 @@
 * 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.name;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.INonViralName;
 import eu.etaxonomy.cdm.model.name.TaxonName;
@@ -25,28 +23,29 @@ import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
 /**
  * @author n.hoffmann
  * @created 05.06.2009
- * @version 1.0
  */
 public class AuthorshipDetailSection extends AbstractCdmDetailSection<INonViralName> implements ITaxonBaseDetailSection {
 
-       private TaxonBase taxonBase;
-
+       private TaxonBase<?> taxonBase;
 
-       public AuthorshipDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement,
+       public AuthorshipDetailSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(cdmFormFactory, conversation, parentElement, selectionProvider, style);
-
+               super(cdmFormFactory, parentElement, selectionProvider, style);
        }
 
-       /** {@inheritDoc} */
        @Override
     public void setTaxonBase(TaxonBase entity) {
                this.taxonBase = entity;
                INonViralName name = HibernateProxyHelper.deproxy(entity.getName());
                setEntity(name);
        }
+       @Override
+    public void setTaxonBaseWithoutUpdate(TaxonBase entity) {
+               this.taxonBase = entity;
+               INonViralName name = HibernateProxyHelper.deproxy(entity.getName());
+               setEntityWithoutUpdate(name);
+       }
 
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return "Authorship";
@@ -78,5 +77,4 @@ public class AuthorshipDetailSection extends AbstractCdmDetailSection<INonViralN
        public void updateContent(){
                ((AuthorshipDetailElement)this.detailElement).updateContent();
        }
-
-}
+}
\ No newline at end of file
index 801cda09488a593c85863afca61338af34adfc3a..b83f02d4193f2cf7d19fc7d11005e2c148756f09 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.name;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
@@ -29,10 +28,6 @@ public class HybridDetailElement extends AbstractCdmDetailElement<INonViralName>
        private CheckboxElement checkboxTrinomHybrid;
        private CheckboxElement checkboxHybridFormula;
 
-       /**
-        * @param formFactory
-        * @param formElement
-        */
        public HybridDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
                super(formFactory, formElement);
@@ -59,6 +54,12 @@ public class HybridDetailElement extends AbstractCdmDetailElement<INonViralName>
                checkboxTrinomHybrid.setEnabled(enableTrinom);
                checkboxHybridFormula = formFactory.createCheckbox(formElement, "Hybrid formula", entity.isHybridFormula(), style);
                checkboxHybridFormula.setEnabled(false);//read-only
+
+        registerCacheRelevance(checkboxMonomHybrid, cacheRelevanceHelper.getDependenciesArray());
+        registerCacheRelevance(checkboxBinomHybrid, cacheRelevanceHelper.getDependenciesArray());
+        registerCacheRelevance(checkboxTrinomHybrid, cacheRelevanceHelper.getDependenciesArray());
+        registerCacheRelevance(checkboxHybridFormula, cacheRelevanceHelper.getDependenciesArray());
+
        }
 
        @Override
@@ -72,12 +73,8 @@ public class HybridDetailElement extends AbstractCdmDetailElement<INonViralName>
                else if(eventSource == checkboxTrinomHybrid){
                        getEntity().setTrinomHybrid(checkboxTrinomHybrid.getSelection());
                }
-
        }
 
-
-
-
     @Override
     public void propertyChange(PropertyChangeEvent event) {
         if (event == null) {
@@ -92,9 +89,14 @@ public class HybridDetailElement extends AbstractCdmDetailElement<INonViralName>
                 checkboxTrinomHybrid.setEnabled(getEntity().getRank().isLower(Rank.SPECIES()));
             }
         }
-
     }
 
-
-
-}
+       @Override
+       public void fillFields() {
+               checkboxMonomHybrid.setSelection(getEntity().isMonomHybrid());
+               checkboxBinomHybrid.setSelection(getEntity().isBinomHybrid());
+               checkboxTrinomHybrid.setSelection(getEntity().isTrinomHybrid());
+               checkboxHybridFormula.setSelection(getEntity().isHybridFormula());
+               
+       }
+}
\ No newline at end of file
index e298dac4551cac94f8290cdf5b613c66fc8f49e2..835c4825cde66b4427dfa905049c77c7191cdfca 100644 (file)
@@ -6,14 +6,11 @@
 * 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.name;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.name.INonViralName;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -21,28 +18,21 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.description.detail.AbstractDetailedDescriptionDetailElement;
 
 /**
  * @author n.hoffmann
  * @created Jan 5, 2011
  */
-public class HybridDetailSection extends AbstractCdmDetailSection<TaxonName> implements
-               ITaxonBaseDetailSection {
+public class HybridDetailSection
+        extends AbstractCdmDetailSection<TaxonName>
+        implements ITaxonBaseDetailSection {
 
-       private TaxonBase taxonBase;
+       private TaxonBase<?> taxonBase;
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param selectionProvider
-        * @param style
-        */
        public HybridDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
        @Override
@@ -51,6 +41,12 @@ public class HybridDetailSection extends AbstractCdmDetailSection<TaxonName> imp
                TaxonName name = HibernateProxyHelper.deproxy(taxon.getName());
                setEntity(name);
        }
+       @Override
+       public void setTaxonBaseWithoutUpdate(TaxonBase taxon) {
+               taxonBase = taxon;
+               TaxonName name = HibernateProxyHelper.deproxy(taxon.getName());
+               setEntityWithoutUpdate(name);
+       }
 
        @Override
        public TaxonBase getTaxonBase() {
@@ -76,7 +72,5 @@ public class HybridDetailSection extends AbstractCdmDetailSection<TaxonName> imp
 
        public void updateContent() {
                ((AbstractCdmDetailElement)this.detailElement).setEntity(getEntity());
-               
        }
-
-}
+}
\ No newline at end of file
index 0bed8dc37f08988714ea883faa4241a03eee2700..47bc29357c4d9286afa7e684f241d8162cd016a7 100644 (file)
@@ -6,16 +6,16 @@
 * 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.name;
 
-import java.util.Arrays;
-import java.util.Collection;
+import java.util.ArrayList;
 import java.util.Comparator;
+import java.util.List;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.swt.SWT;
 
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.name.IBacterialName;
 import eu.etaxonomy.cdm.model.name.ICultivarPlantName;
 import eu.etaxonomy.cdm.model.name.IFungusName;
@@ -24,16 +24,16 @@ import eu.etaxonomy.cdm.model.name.IZoologicalName;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.name.TaxonNameFactory;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
 import eu.etaxonomy.taxeditor.preference.NameDetailsConfigurator;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
 import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
@@ -45,27 +45,27 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement
  * @author n.hoffmann
  * @created Feb 26, 2010
  */
-public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<INonViralName> implements ISelectableElement, IEnableableFormElement{
+public class NameDetailElement
+        extends AbstractIdentifiableEntityDetailElement<INonViralName>
+        implements ISelectableElement {
+
+    private final Logger logger = LogManager.getLogger(NameDetailElement.class);
 
-    private final Logger logger = Logger.getLogger(NameDetailElement.class);
+    private SelectionArbitrator selectionArbitrator;
 
-       private TermComboElement<Rank> combo_rank;
+    private TermComboElement<Rank> combo_rank;
        private TextWithLabelElement text_appendedPhrase;
        private TextWithLabelElement text_uninomial;
        private TextWithLabelElement text_infragenericEpithet;
        private TextWithLabelElement text_specificEpithet;
        private TextWithLabelElement text_infraspecificEpithet;
-       private SelectionArbitrator selectionArbitrator;
        private CheckboxElement checkbox_anamorphic;
        private TextWithLabelElement text_cultivarName;
+       private TextWithLabelElement text_cultivarGroup;
        private TextWithLabelElement text_subGenusAuthorship;
-
        private TextWithLabelElement text_breed;
-       //private NumberWithLabelElement text_publicationYear;
-       //private NumberWithLabelElement text_originalPublicationYear;
-       private int cursorPosition;
 
-       NameDetailsConfigurator config;
+       private NameDetailsConfigurator config;
 
        /**
         * <p>Constructor for NameDetailElement.</p>
@@ -78,11 +78,8 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<I
                        int style) {
                super(cdmFormFactory, formElement);
                // make this element selectable
-
-
        }
 
-       /** {@inheritDoc} */
        @Override
        protected void createControls(ICdmFormElement formElement, INonViralName nonViralName, int style) {
                Comparator<Rank> comparator = null;
@@ -90,18 +87,24 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<I
 
                if(PreferencesUtil.getSortRanksHierarchichally()){
                        comparator = new Comparator<Rank>(){
-
-                       @Override
-                       public int compare(Rank o1, Rank o2) {
-                               return o2.compareTo(o1);
-                       }
-
-               };
+                               @Override
+                               public int compare(Rank o1, Rank o2) {
+                                   if (o2 == null){
+                                       return -1;
+                                   }
+                                       return -1*o1.compareTo(o2);
+                               }
+                       };
+               }
+               if (nonViralName.getRank() != null && !(nonViralName.getRank().isCultivar() == nonViralName.getNameType().equals(NomenclaturalCode.ICNCP))){
+                   nonViralName.setRank(null);
                }
            if (config == null){
                toggleable_cache = formFactory.createToggleableTextField(this, "Name Cache", nonViralName.getNameCache(), nonViralName.isProtectedNameCache(), style);
+               List<Rank> ranks = getRanks(nonViralName, nonViralName.getNameType());
+
+               combo_rank = formFactory.createDefinedTermComboElement(ranks, this, "Rank", nonViralName.getRank(),style, comparator);
 
-               combo_rank = formFactory.createDefinedTermComboElement(TermType.Rank, this, "Rank", nonViralName.getRank(), style, comparator);
                createGenusOrUninomialControls(this, nonViralName, style);
             createInfragenerericEpithetControls(this, nonViralName, style);
             createSpecificEpithetControls(this, nonViralName, style);
@@ -114,7 +117,8 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<I
                }
 
            if (config.isRankActivated()){
-               combo_rank = formFactory.createDefinedTermComboElement(TermType.Rank, this, "Rank", nonViralName.getRank(), style, comparator);
+               List<Rank> ranks = getRanks(nonViralName, nonViralName.getNameType());
+                combo_rank = formFactory.createDefinedTermComboElement(ranks, this, "Rank", nonViralName.getRank(),style, comparator);
            }
 
                if (config.isAtomisedEpithetsActivated()){
@@ -131,23 +135,38 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<I
            if(this.getFormFactory().getSelectionProvider() != null){
             selectionArbitrator = this.getFormFactory().createSelectionArbitrator(this);
         }
-
+           for (ICdmFormElement element: this.getElements()){
+               element.setBackground(getPersistentBackground());
+           }
+           ((NameDetailSection)this.getParentElement()).layout();
+           //cache relevance
+        registerCacheRelevance(combo_rank);
+        //TODO decide if relevant
+        registerCacheRelevance(text_appendedPhrase);
+        registerCacheRelevance(text_uninomial);
+        registerCacheRelevance(text_infragenericEpithet);
+        registerCacheRelevance(text_specificEpithet);
+        registerCacheRelevance(text_infraspecificEpithet);
+        registerCacheRelevance(text_cultivarName);
+        registerCacheRelevance(text_subGenusAuthorship);
+        registerCacheRelevance(text_breed);
+
+        registerCacheRelevance(toggleable_cache, cacheRelevanceHelper.getDependenciesArray());
        }
 
-       /**
-        * <p>clearCheckRankWarnings</p>
+    /**
+        * clearCheckRankWarnings
         */
        protected void clearCheckRankWarnings() {
                if(getEntity().hasProblem(ParserProblem.CheckRank)){
                        getEntity().removeParsingProblem(ParserProblem.CheckRank);
 
-                       // FIXME this has to be reafctored completely. See tickets #1959, #1663, #1957, #1958
+                       // FIXME this has to be refactored completely. See tickets #1959, #1663, #1957, #1958
 //                     TaxonNameEditor nameEditor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(Page.NAME);
 //                     nameEditor.getSelectedContainer().getNameViewer().clearErrors();
                }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void updateContent() {
                if(getEntity() == null){
@@ -156,19 +175,14 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<I
 
                super.updateContent();
                if (toggleable_cache != null){
-                   toggleable_cache.setEnabled(getEntity().isProtectedNameCache());
+                   toggleable_cache.setCacheEnabled(getEntity().isProtectedNameCache());
 
                if (config == null){
-                       if(isIrrelevant()){
-                               setIrrelevant(isIrrelevant());
-                       }else{
-                               setIrrelevant(toggleable_cache.getState(), Arrays.asList(new Object[]{toggleable_cache}));
-                       }
+                       updateCacheRelevance();
                }
                }
        }
 
-
        private void createSpecificNameParts(ICdmFormElement formElement,
                        INonViralName nonViralName, int style) {
                NomenclaturalCode code = nonViralName.getNameType();
@@ -176,7 +190,11 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<I
                        switch(code){
                        case ICNAFP :
                                //nothing do add
-                               createBotanicalNameParts(formElement, nonViralName, style);
+                           if (nonViralName.getRank() != null && nonViralName.getRank().isCultivar()){
+                               nonViralName.setRank(null);
+                           }else{
+                               createBotanicalNameParts(formElement, nonViralName, style);
+                           }
                                break;
                        case Fungi :
                                if (config == null){
@@ -190,10 +208,13 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<I
                 //TODO implement
                 logger.warn("ICVCN not yet implemented");
                 break;
-            case ICNB:
+            case ICNP:
                createBacterialNameParts(formElement, nonViralName, style);
                 break;
             case ICNCP:
+                if (nonViralName.getRank() != null && !nonViralName.getRank().isCultivar()){
+                    nonViralName.setRank(null);
+                }
                createCultivarNameParts(formElement, nonViralName, style);
                 break;
             case NonViral:
@@ -201,9 +222,10 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<I
                 logger.warn("NonViral not yet implemented");
                 break;
             }
+
                }
-       }
 
+       }
 
        private void createBacterialNameParts(ICdmFormElement formElement, INonViralName nonViralName, int style) {
                IBacterialName bacterialName = (IBacterialName) nonViralName;
@@ -214,10 +236,34 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<I
 
        private void createCultivarNameParts(ICdmFormElement formElement, INonViralName nonViralName, int style) {
                ICultivarPlantName cultivarName = (ICultivarPlantName)nonViralName;
-               text_cultivarName = formFactory.createTextWithLabelElement(formElement, "Cultivar Name", cultivarName.getCultivarName(), style);
+
+               List<Rank> cultivarRanks = getRanks(cultivarName, nonViralName.getNameType());
+               combo_rank.setTerms(cultivarRanks);
+               combo_rank.setSelection(cultivarName.getRank());
+
+               Rank rank = cultivarName.getRank();
+               if (rank != null && (rank.equals(Rank.CULTIVAR()) || rank.equals(Rank.CULTIVARGROUP()) || rank.equals(Rank.GREX_ICNCP()))){
+                   text_cultivarGroup = formFactory.createTextWithLabelElement(formElement, "Cultivar Group Epi", cultivarName.getCultivarGroupEpithet(), style);
+               }
+               if(rank != null && rank.equals(Rank.CULTIVAR())){
+                   text_cultivarName = formFactory.createTextWithLabelElement(formElement, "Cultivar Epithet", cultivarName.getCultivarEpithet(), style);
+               }
 
        }
 
+    private List<Rank> getRanks(INonViralName name, NomenclaturalCode code) {
+        List<Rank> ranks = new ArrayList<>();
+        String availableRanks = PreferencesUtil.getStringValue(PreferencePredicate.AvailableRanks.getKey());
+        List<DefinedTermBase> allRanks = CdmStore.getTermManager().createTermListFromString(availableRanks, TermType.Rank);
+        for(DefinedTermBase term: allRanks){
+                   Rank rank = (Rank)term;
+                   if (rank.isCultivar() == code.equals(NomenclaturalCode.ICNCP)){
+                       ranks.add(rank);
+                   }
+               }
+               return ranks;
+    }
+
        private void createBotanicalNameParts(ICdmFormElement formElement, INonViralName nonViralName, int style){
                //nothing to do
        }
@@ -237,54 +283,48 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<I
 
        private void createGenusOrUninomialControls(ICdmFormElement element, INonViralName nonViralName, int style){
                String title = "Genus";
-               Rank rank = nonViralName.getRank();
-               if(rank != null && rank.isSupraGeneric()){
+               if(nonViralName.isSupraGeneric()){
                        title = "Uninomial";
                }
                text_uninomial = formFactory.createTextWithLabelElement(element, title, nonViralName.getGenusOrUninomial(), style);
        }
 
        private void createInfragenerericEpithetControls(ICdmFormElement element, INonViralName nonViralName, int style){
-               if (nonViralName.getNameType() == null || nonViralName.getNameType().equals(NomenclaturalCode.ICZN)){
-                       if(nonViralName.getRank() != null && nonViralName.getRank().isLower(Rank.GENUS()) ){
-                               text_infragenericEpithet = formFactory.createTextWithLabelElement(element, "Infrageneric Epithet", nonViralName.getInfraGenericEpithet(), style);
-                       }
-               } else{
-                       if((nonViralName.getRank() != null && nonViralName.getRank().isLower(Rank.GENUS())) && !nonViralName.getRank().isLower(Rank.SPECIES()) && !nonViralName.getRank().isSpeciesAggregate()){
-                               text_infragenericEpithet = formFactory.createTextWithLabelElement(element, "Infrageneric Epithet", nonViralName.getInfraGenericEpithet(), style);
-                       }
-               }
+           boolean isIcznOrNull = nonViralName.getNameType() == null || nonViralName.getNameType().equals(NomenclaturalCode.ICZN);
+           if (nonViralName.isInfraGeneric() || nonViralName.isSpecies()
+                   || isIcznOrNull && (nonViralName.isInfraSpecific() || nonViralName.isSpeciesAggregate()) //for iczn all subgeneric names may have infrageneric part, but unclear if speciesAggregates exist at all
+                   ){
+               text_infragenericEpithet = formFactory.createTextWithLabelElement(element, "Infrageneric Epithet", nonViralName.getInfraGenericEpithet(), style);
+           }
        }
 
        private void createSpecificEpithetControls(ICdmFormElement element, INonViralName nonViralName, int style){
-               if(nonViralName.getRank() != null && (nonViralName.getRank().isSpecies()  || nonViralName.getRank().isInfraSpecific() || nonViralName.getRank().isSpeciesAggregate())){
+               if(nonViralName.isSpecies()  || nonViralName.isInfraSpecific() || nonViralName.isSpeciesAggregate()){
                        text_specificEpithet = formFactory.createTextWithLabelElement(element, "Specific Epithet", nonViralName.getSpecificEpithet(), SWT.NULL);
                }
        }
 
        private void createInfraSpecificEpithetControls(ICdmFormElement element, INonViralName nonViralName, int style){
-               if(nonViralName.getRank() != null && nonViralName.getRank().isInfraSpecific()){
+               if(nonViralName.isInfraSpecific()){
                        text_infraspecificEpithet = formFactory.createTextWithLabelElement(element, "Infraspecific Epithet", nonViralName.getInfraSpecificEpithet(), SWT.NULL);
                }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource){
                if (eventSource == toggleable_cache) {
                        getEntity().setNameCache(toggleable_cache.getText(),
                                        toggleable_cache.getState());
-                       //if (!isIrrelevant()) {
-                setIrrelevant(toggleable_cache.getState(),
-                                               Arrays.asList(new Object[] { toggleable_cache }));
-            //}
+                updateCacheRelevance();
                }
                else if(eventSource == combo_rank){
                        getEntity().setRank(combo_rank.getSelection());
                        clearCheckRankWarnings();
                        updateContent();
+
+//                     ((NameDetailSection)this.getParentElement()).layout(true, true);
             //this is needed for the "new" wizards in order to redraw correctly
-            StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
+
                }
                else if(eventSource == text_appendedPhrase){
                        getEntity().setAppendedPhrase(text_appendedPhrase.getText());
@@ -306,21 +346,16 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<I
                }else if(eventSource == text_breed){
             ((IZoologicalName)getEntity()).setBreed(text_breed.getText());
         }else if(eventSource == this.text_cultivarName){
-            ((ICultivarPlantName)getEntity()).setCultivarName(text_cultivarName.getText());
+            ((ICultivarPlantName)getEntity()).setCultivarEpithet(text_cultivarName.getText());
+        }else if(eventSource == this.text_cultivarGroup){
+            ((ICultivarPlantName)getEntity()).setCultivarGroupEpithet(text_cultivarGroup.getText());
         }else if(eventSource == this.text_subGenusAuthorship){
             ((IBacterialName)getEntity()).setSubGenusAuthorship(text_subGenusAuthorship.getText());
         }
-
        }
 
-       /*
-        * (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.section.cdmdetail.ISelectableElement#getSelectionArbitrator()
-        */
        /**
         * <p>Getter for the field <code>selectionArbitrator</code>.</p>
-        *
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator} object.
         */
        @Override
     public SelectionArbitrator getSelectionArbitrator() {
@@ -338,27 +373,49 @@ public class NameDetailElement extends AbstractIdentifiableEntityDetailElement<I
 
        @Override
        protected void handleToggleableCacheField() {
-        boolean pushedState = toggleable_cache.getState();
-
-        getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
-        setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache, text_appendedPhrase, checkbox_anamorphic }));
+        getEntity().setTitleCache(toggleable_cache.getText(), toggleable_cache.getState());
+        updateCacheRelevance();
         updateToggleableCacheField();
     }
 
        @Override
-       public void setIrrelevant(boolean irrelevant, Collection<Object> except){
-           if (toggleable_cache != null){
-           if (toggleable_cache.getState() == irrelevant){
-               super.setIrrelevant(irrelevant, except);
-           }
-           if (except == null || except.isEmpty()){
-               toggleable_cache.setIrrelevant(irrelevant);
-           }
-           }
-
+       public void fillFields() {
+               super.fillFields();
+               if (combo_rank != null && (combo_rank.getSelection() == null || !combo_rank.getSelection().equals(getEntity().getRank()))  ) {
+                       combo_rank.setSelection(getEntity().getRank());
+               }
+               if(text_appendedPhrase != null && (text_appendedPhrase.getText() == null || !text_appendedPhrase.getText().equals(getEntity().getAppendedPhrase()))) {
+                       text_appendedPhrase.setText(getEntity().getAppendedPhrase());
+               }
+               if (text_uninomial != null && (text_uninomial.getText() == null || !text_uninomial.getText().equals(getEntity().getGenusOrUninomial()))) {
+                       text_uninomial.setText(getEntity().getGenusOrUninomial());
+               }
+               if (text_infragenericEpithet != null && (text_infragenericEpithet.getText() == null || !text_infragenericEpithet.getText().equals(getEntity().getInfraGenericEpithet()))) {
+                       text_infragenericEpithet.setText(getEntity().getInfraGenericEpithet());
+               }
+               if (text_specificEpithet != null && (text_specificEpithet.getText() == null || !text_specificEpithet.getText().equals(getEntity().getSpecificEpithet()))) {
+                       text_specificEpithet.setText(getEntity().getSpecificEpithet());
+               }
+               if (text_infraspecificEpithet != null && getEntity().getInfraSpecificEpithet() != null && !text_infraspecificEpithet.getText().equals(getEntity().getInfraSpecificEpithet())) {
+                       text_infraspecificEpithet.setText(getEntity().getInfraSpecificEpithet());
+               }
+               if (checkbox_anamorphic != null && (checkbox_anamorphic.getSelection() != ((IFungusName)getEntity()).isAnamorphic())) {
+                       checkbox_anamorphic.setSelection(((IFungusName)getEntity()).isAnamorphic());
+               }
+               if (text_cultivarName != null && ((ICultivarPlantName)getEntity()).getCultivarEpithet() != null && !text_cultivarName.getText().equals(((ICultivarPlantName)getEntity()).getCultivarEpithet())) {
+                       text_cultivarName.setText(((ICultivarPlantName)getEntity()).getCultivarEpithet());
+               }
+               if (text_cultivarGroup != null && ((ICultivarPlantName)getEntity()).getCultivarGroupEpithet() != null && !text_cultivarGroup.getText().equals(((ICultivarPlantName)getEntity()).getCultivarGroupEpithet())) {
+                       text_cultivarGroup.setText(((ICultivarPlantName)getEntity()).getCultivarGroupEpithet());
+               }
+               if (text_subGenusAuthorship != null && ((IBacterialName)getEntity()).getSubGenusAuthorship() != null && !text_subGenusAuthorship.getText().equals(((IBacterialName)getEntity()).getSubGenusAuthorship())) {
+                       text_subGenusAuthorship.setText(((IBacterialName)getEntity()).getSubGenusAuthorship());
+               }
+               if (text_breed!= null && ((IZoologicalName)getEntity()).getBreed() != null && !text_breed.getText().equals(((IZoologicalName)getEntity()).getBreed())) {
+                       text_breed.setText(((IZoologicalName)getEntity()).getBreed());
+               }
+               ((NameDetailSection)this.getParentElement()).setSectionTitle();
+               
+               
        }
-
-
-
-
-}
+}
\ No newline at end of file
index c16c00729e265e2439b66e8082601d7e75d7a1a6..66d436bd5f76c62652c6c98ced6a788808c282a5 100644 (file)
@@ -6,12 +6,10 @@
 * 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.name;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.INonViralName;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
@@ -22,44 +20,32 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
 
 /**
- * <p>NameDetailSection class.</p>
- *
  * @author n.hoffmann
  * @created 05.06.2009
  */
-public class NameDetailSection extends AbstractCdmDetailSection<INonViralName> implements ITaxonBaseDetailSection{
+public class NameDetailSection
+               extends AbstractCdmDetailSection<INonViralName>
+               implements ITaxonBaseDetailSection{
 
-       private TaxonBase taxonBase;
+       private TaxonBase<?> taxonBase;
 
-       /**
-        * <p>Constructor for NameDetailSection.</p>
-        *
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param style a int.
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-        */
-       public NameDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement,
+       public NameDetailSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(cdmFormFactory, conversation, parentElement, selectionProvider, style);
+               super(cdmFormFactory, parentElement, selectionProvider, style);
        }
 
-       /** {@inheritDoc} */
        @Override
     public void setTaxonBase(TaxonBase entity) {
                this.taxonBase = entity;
-               INonViralName name = (INonViralName) HibernateProxyHelper.deproxy(entity.getName());
+               INonViralName name = HibernateProxyHelper.deproxy(entity.getName());
                setEntity(name);
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return "Scientific Name";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected void setSectionTitle() {
                if(!isDisposed()){
@@ -72,7 +58,7 @@ public class NameDetailSection extends AbstractCdmDetailSection<INonViralName> i
        }
 
        @Override
-       public TaxonBase getTaxonBase() {
+       public TaxonBase<?> getTaxonBase() {
                return taxonBase;
        }
 
@@ -82,8 +68,18 @@ public class NameDetailSection extends AbstractCdmDetailSection<INonViralName> i
            return formFactory.createNameDetailElement(parentElement, style);
 
        }
-       
+
        public void updateContent(){
                ((NameDetailElement)this.detailElement).updateContent();
        }
+
+       @Override
+       public void setTaxonBaseWithoutUpdate(TaxonBase<?> taxon) {
+               this.taxonBase = taxon;
+               INonViralName name = HibernateProxyHelper.deproxy(taxon.getName());
+               setEntityWithoutUpdate(name);
+               
+       }
+
+       
 }
index 43cb447eabf15c27a91eeea542338860a61e9cb4..0f7d6a2056c00f903f61a8c88bbaa719390dac0b 100644 (file)
@@ -22,7 +22,8 @@ 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.LabelElement;
-import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractReferencedEntityElement;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractSourcedEntityElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
@@ -31,12 +32,14 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  * @author n.hoffmann
  * @created Mar 18, 2010
  */
-public class NameRelationshipDetailElement extends AbstractReferencedEntityElement<NameRelationship>{
+public class NameRelationshipDetailElement extends AbstractSourcedEntityElement<NameRelationship>{
 
        private RuleConsideredElement ruleConsidered;
        private EntitySelectionElement<?> selection_toName;
        private TermComboElement<NameRelationshipType> combo_relationshipType;
-       private LabelElement label;
+       private LabelElement labelElement;
+
+//     private OriginalSourceElement sourceElement;
 
        /**
         * <p>Constructor for NameRelationshipDetailElement.</p>
@@ -48,32 +51,46 @@ public class NameRelationshipDetailElement extends AbstractReferencedEntityEleme
         * @param style a int.
         */
        public NameRelationshipDetailElement(CdmFormFactory cdmFormFactory,
-                       AbstractFormSection formElement,
-                       NameRelationship entity, SelectionListener removeListener, int style) {
-               super(cdmFormFactory, formElement, entity, removeListener, style);
+               AbstractFormSection formElement,
+            NameRelationship entity, SelectionListener removeListener, int style){
+           super(cdmFormFactory, formElement, entity, removeListener, "Source", style);
+
        }
 
        @Override
        public void createControls(ICdmFormElement element, int style) {
+
            NameDetailsConfigurator config = PreferencesUtil.getPreferredNameDetailsConfiguration();
-               label = formFactory.createLabel(element, null);
+               labelElement = formFactory.createLabel(element, null);
+
                if (config == null || config.isNameRelationsRuleConsideredActivated()){
                    ruleConsidered = formFactory.createRuleConsideredElement(
                            element, "Rule Considered", config == null
                            || config.isNameRelationsRuleConsideredCodeEditionActivated(), style);
                }
+               LabelElement spacer = formFactory.createLabel(element, null);
+               spacer.getLayoutComposite().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+               addElement(spacer);
+               label = "Source";
                super.createControls(element, style);
+
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
        @Override
        public void setEntity(NameRelationship entity) {
-               String text = (entity.getFromName() == null? "-":entity.getFromName().getTitleCache())
-                       + " is " + (entity.getType()==null?"(no type)":entity.getType().getLabel())
-                       + " " + (entity.getToName()==null?"-":entity.getToName().getTitleCache());
-               label.setText(text);
-               if (ruleConsidered != null){
-                   ruleConsidered.setElement(entity);
+               if (labelElement != null){
+                  String text = (entity.getFromName() == null? "-":entity.getFromName().getTitleCache())
+                               + " " +(entity.getType()==null?"(no type)":entity.getType().getLabel())
+                               + " " + (entity.getToName()==null?"-":entity.getToName().getTitleCache());
+                       labelElement.setText(text);
+                       if (ruleConsidered != null){
+                           ruleConsidered.setElement(entity);
+                       }
                }
+
                super.setEntity(entity);
        }
 
@@ -85,19 +102,17 @@ public class NameRelationshipDetailElement extends AbstractReferencedEntityEleme
                else if(eventSource == selection_toName){
                        MessagingUtils.error(getClass(), "No API call available.", null);
                }
-               else if(eventSource == selection_reference){
-                       getEntity().setCitation(selection_reference.getSelection());
-               }
-               else if(eventSource == text_referenceDetail){
-                       getEntity().setCitationMicroReference(text_referenceDetail.getText());
-               }
+
+
        }
 
        @Override
        public void setBackground(Color color) {
-               if(label != null) {
-            label.setBackground(color);
+               if(labelElement != null) {
+            labelElement.setBackground(color);
         }
                super.setBackground(color);
        }
+
+
 }
index 218a50de859f314e5a3bdfe96e21e55a1545e1a9..51ac303155789390cdaed7f1441c806ee8678dbc 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.name;
 
 import java.util.Collection;
@@ -15,7 +14,6 @@ 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.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.TaxonName;
@@ -28,8 +26,6 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
 
 /**
- * <p>NameRelationshipDetailSection class.</p>
- *
  * @author n.hoffmann
  * @created Mar 18, 2010
  */
@@ -37,26 +33,16 @@ public class NameRelationshipDetailSection extends AbstractEntityCollectionSecti
 
        private TaxonBase taxonBase;
 
-       /**
-        * <p>Constructor for NameRelationshipDetailSection.</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 style a int.
-        */
-       public NameRelationshipDetailSection(CdmFormFactory formFactory, ConversationHolder conversation,
+       public NameRelationshipDetailSection(CdmFormFactory formFactory,
                        ICdmFormElement parentElement, int style) {
-               super(formFactory, conversation, parentElement, "Name Relationships", style);
+               super(formFactory, parentElement, "Name Relationships", style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addElement(NameRelationship element) {
                //getEntity().addRelationship(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public NameRelationship createNewElement() {
 
@@ -72,7 +58,6 @@ public class NameRelationshipDetailSection extends AbstractEntityCollectionSecti
                return null;
        }
 
-       /** {@inheritDoc} */
        @Override
        public Collection<NameRelationship> getCollection(TaxonName entity) {
                Collection<NameRelationship> allNameRelationships = entity.getRelationsFromThisName();
@@ -85,50 +70,46 @@ public class NameRelationshipDetailSection extends AbstractEntityCollectionSecti
         return new DefaultCdmBaseComparator<>();
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No name relationships yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Add a new name relationship from this name.";
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElement(NameRelationship element) {
                getEntity().removeNameRelationship(element);
        }
 
-       /** {@inheritDoc} */
        @Override
     public void setTaxonBase(TaxonBase entity) {
                this.taxonBase = entity;
                TaxonName name = HibernateProxyHelper.deproxy(entity.getName());
                setEntity(name);
        }
-
+       @Override
+    public void setTaxonBaseWithoutUpdate(TaxonBase entity) {
+               this.taxonBase = entity;
+               TaxonName name = HibernateProxyHelper.deproxy(entity.getName());
+               setEntity(name);
+       }
+       
        @Override
        public TaxonBase getTaxonBase() {
                return taxonBase;
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public NameRelationship addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-}
+}
\ No newline at end of file
index 92e5786deb87c9a192e9965949c1d7ecdb184ebb..96326a630eb10687c3da7799f5a02935a58f4080 100644 (file)
@@ -11,11 +11,8 @@ package eu.etaxonomy.taxeditor.ui.section.name;
 
 import org.eclipse.jface.wizard.Wizard;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.name.NameRelationship;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 
 /**
@@ -25,7 +22,7 @@ import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
  * @created Jun 1, 2010
  * @version 1.0
  */
-public class NameRelationshipWizard extends Wizard implements IConversationEnabled{
+public class NameRelationshipWizard extends Wizard {
 
        private static NameRelationshipDetailSection callingSection;
 
@@ -76,20 +73,4 @@ public class NameRelationshipWizard extends Wizard implements IConversationEnabl
        public NameRelationship getNameRelationship() {
                return page.getNameRelationship();
        }
-
-       /**
-        * <p>getConversationHolder</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       @Override
-    public ConversationHolder getConversationHolder() {
-               return callingSection.getConversationHolder();
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void update(CdmDataChangeMap changeEvents) {}
-
-
 }
index 77aa37a1d90bfd92619c332d5267b4db2ac69f44..e8729b142a288192ac448261363493dde09cef89 100644 (file)
@@ -13,12 +13,14 @@ import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 
+import eu.etaxonomy.cdm.model.common.RelationshipTermBase;
 import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.NameRelationshipType;
 import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.term.TermRelationshipType;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.ui.AbstractEntityCollectionElementWizardPage;
-import eu.etaxonomy.taxeditor.ui.combo.NameRelationshipTypeCombo;
+import eu.etaxonomy.taxeditor.ui.combo.RelationshipTypeCombo;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
@@ -35,11 +37,11 @@ public class NameRelationshipWizardPage extends AbstractEntityCollectionElementW
 
        private EntitySelectionElement<TaxonName> selection_relatedTo;
 
-       private NameRelationshipTypeCombo combo_relationshipType;
+       private RelationshipTypeCombo combo_relationshipType;
 
        private final TaxonName entity;
 
-       private NameRelationshipType type;
+       private RelationshipTermBase type;
 
        private TaxonName relatedName;
        boolean inverse;
@@ -98,9 +100,9 @@ public class NameRelationshipWizardPage extends AbstractEntityCollectionElementW
        public NameRelationship getNameRelationship() {
            NameRelationship rel;
            if (inverse){
-               rel = entity.addRelationshipFromName(relatedName, type, null, null, null, null);
+               rel = entity.addRelationshipFromName(relatedName, (NameRelationshipType)type, null, null, null, null);
            }else{
-               rel = entity.addRelationshipToName(relatedName, type, null, null, null, null);
+               rel = entity.addRelationshipToName(relatedName, (NameRelationshipType)type, null, null, null, null);
            }
            return rel;
        }
@@ -112,11 +114,12 @@ public class NameRelationshipWizardPage extends AbstractEntityCollectionElementW
                        return;
                }
                Object eventSource = event.getSource();
-               if (eventSource == combo_relationshipType) {
-                       type = combo_relationshipType.getSelection().getTerm();
+               if (eventSource == combo_relationshipType && combo_relationshipType.getSelection() != null) {
+                   type = combo_relationshipType.getSelection().getTerm();
                        this.inverse = combo_relationshipType.getSelection().isInverse();
                } else if (eventSource == selection_relatedTo) {
                        relatedName = selection_relatedTo.getEntity();
+
                }
 
                boolean complete = type != null && relatedName != null;
index 5febc16a1d51bfc3c0d41f0fe38c701565e92c99..feff3ff6a980f1d4c4d207df08c0efe4f8007785 100644 (file)
@@ -15,6 +15,7 @@ import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
 import eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus;
 import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.reference.NamedSource;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -54,30 +55,32 @@ public class NameTypeDesignationElement extends
                checkbox_conservedType = formFactory.createCheckbox(formElement,
                                "Conserved Type", false, style); //$NON-NLS-1$
                selection_typeName = formFactory
-                               .createSelectionElement(TaxonName.class,//getConversationHolder(),
+                               .createSelectionElement(TaxonName.class,
                                        formElement, "Name", null, //$NON-NLS-1$
                                                EntitySelectionElement.ALL, style);
                combo_typeStatus = formFactory.createDefinedTermComboElement(TermType.NameTypeDesignationStatus, formElement,
                                                "Designation Status", null, style); //$NON-NLS-1$
 
                super.createControls(formElement, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
        /** {@inheritDoc} */
        @Override
        public void setEntity(NameTypeDesignation entity) {
                super.setEntity(entity);
-               checkbox_conservedType.setSelection(entity.isConservedType());
-               checkbox_rejectedType.setSelection(entity.isRejectedType());
-
-               selection_typeName.setEntity(HibernateProxyHelper.deproxy(entity.getTypeName()));
-
-               combo_typeStatus.setSelection(HibernateProxyHelper.deproxy(entity.getTypeStatus(), NameTypeDesignationStatus.class));
+               if (checkbox_conservedType != null){
+                       checkbox_conservedType.setSelection(entity.isConservedType());
+                       checkbox_rejectedType.setSelection(entity.isRejectedType());
+                       selection_typeName.setEntity(HibernateProxyHelper.deproxy(entity.getTypeName()));
+                       combo_typeStatus.setSelection(HibernateProxyHelper.deproxy(entity.getTypeStatus(), NameTypeDesignationStatus.class));
+                       checkbox_notDesignated.setSelection(entity.isNotDesignated());
+               }
 
-               checkbox_notDesignated.setSelection(entity.isNotDesignated());
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == checkbox_conservedType) {
@@ -101,16 +104,20 @@ public class NameTypeDesignationElement extends
                 }
             }
                        getEntity().setTypeStatus(combo_typeStatus.getSelection());
+                       if (getEntity().hasDesignationSource()){
+                           NamedSource source = NamedSource.NewPrimarySourceInstance(null, null);
+                entity.setDesignationSource(source);
+                       }
 
                        setEntity(entity);
                } else if (eventSource == checkbox_notDesignated) {
                        getEntity().setNotDesignated(checkbox_notDesignated.getSelection());
                }
-               else if (eventSource == selection_reference) {
-                       getEntity().setCitation(selection_reference.getSelection());
-               } else if (eventSource == text_referenceDetail) {
-                       getEntity().setCitationMicroReference(
-                                       text_referenceDetail.getText());
-               }
+//             else if (eventSource == selection_reference) {
+//                     getEntity().setCitation(selection_reference.getSelection());
+//             } else if (eventSource == text_referenceDetail) {
+//                     getEntity().setCitationMicroReference(
+//                                     text_referenceDetail.getText());
+//             }
        }
 }
index e96d4ac3558426d0ccbe0f757a1c5f37832b036b..fa852eed7b36ae90e94fef94d38f4f437541adc4 100644 (file)
 package eu.etaxonomy.taxeditor.ui.section.name;
 
 import java.util.Comparator;
+import java.util.List;
 
 import org.eclipse.swt.events.SelectionListener;
 
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.preference.NameDetailsConfigurator;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 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.element.IEntityElement;
 import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
+import eu.etaxonomy.taxeditor.ui.element.LabelElement;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
-import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractReferencedEntityElement;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractSourcedEntityElement;
 
 /**
  * @author n.hoffmann
  * @created Nov 5, 2009
  */
-public class NomenclaturalStatusElement extends AbstractReferencedEntityElement<NomenclaturalStatus> implements IEntityElement<NomenclaturalStatus>, ISelectableElement{
+public class NomenclaturalStatusElement extends AbstractSourcedEntityElement<NomenclaturalStatus> implements IEntityElement<NomenclaturalStatus>, ISelectableElement{
 
        private TermComboElement<NomenclaturalStatusType> nomenclaturalStatusTypeCombo;
 
@@ -43,7 +49,7 @@ public class NomenclaturalStatusElement extends AbstractReferencedEntityElement<
 
        public NomenclaturalStatusElement(CdmFormFactory cdmFormFactory, AbstractFormSection formElement,
                        NomenclaturalStatus element, SelectionListener removeListener, int style) {
-               super(cdmFormFactory, formElement, element, removeListener, style);
+               super(cdmFormFactory, formElement, element, removeListener, "Source", style);
                selectionArbitrator = cdmFormFactory.createSelectionArbitrator(this);
        }
 
@@ -79,13 +85,23 @@ public class NomenclaturalStatusElement extends AbstractReferencedEntityElement<
             }
         };
 
-               nomenclaturalStatusTypeCombo = formFactory.createDefinedTermComboElement(TermType.NomenclaturalStatusType, this, "Status", null,true, style, true);
-               nomenclaturalStatusTypeCombo.setTermComparator(termComparator);
+        String availableStatus = PreferencesUtil.getStringValue(PreferencePredicate.AvailableNomenclaturalStatus.getKey());
+        List<NomenclaturalStatusType> allStatus = CdmStore.getTermManager().createTermListFromString(availableStatus, TermType.NomenclaturalStatusType);
+
+               nomenclaturalStatusTypeCombo = formFactory.createDefinedTermComboElement(allStatus, this, "Status", null,style, termComparator);
+
                if (config == null || config.isNomenclaturalStatusRuleConsideredActivated()){
                    ruleConsidered = formFactory.createRuleConsideredElement(this, "Rule Considered", config == null || config.isNomenclaturalStatusRuleConsideredCodeEditionActivated(), style);
                }
-
+               setSourceLabel("Source");
+               LabelElement spacer = formFactory.createLabel(this, null);
+        spacer.getLayoutComposite().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        addElement(spacer);
                super.createControls(element, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
+
 
        }
 
@@ -93,12 +109,14 @@ public class NomenclaturalStatusElement extends AbstractReferencedEntityElement<
        @Override
        public void setEntity(NomenclaturalStatus entity) {
                super.setEntity(entity);
-               if (entity.getType() != null){
-                   nomenclaturalStatusTypeCombo.setSelection(entity.getType());
-                   nomenclaturalStatusTypeCombo.removeEmptyElement();
-               }
-               if (ruleConsidered != null){
-                   ruleConsidered.setElement(entity);
+               if (nomenclaturalStatusTypeCombo != null){
+                       if (entity.getType() != null){
+                           nomenclaturalStatusTypeCombo.setSelection(entity.getType());
+                           nomenclaturalStatusTypeCombo.removeEmptyElement();
+                       }
+                       if (ruleConsidered != null){
+                           ruleConsidered.setElement(entity);
+                       }
                }
        }
 
@@ -119,11 +137,11 @@ public class NomenclaturalStatusElement extends AbstractReferencedEntityElement<
                        getEntity().setType(nomenclaturalStatusTypeCombo.getSelection());
                }
 
-               else if(eventSource == selection_reference){
-                       getEntity().setCitation(selection_reference.getSelection());
-               }
-               else if(eventSource == text_referenceDetail){
-                       getEntity().setCitationMicroReference(text_referenceDetail.getText());
-               }
+//             else if(eventSource == selection_reference){
+//                     getEntity().setCitation(selection_reference.getSelection());
+//             }
+//             else if(eventSource == text_referenceDetail){
+//                     getEntity().setCitationMicroReference(text_referenceDetail.getText());
+//             }
        }
 }
index a106d42443d7d3775619840ddeeca88161cb1361..e0dd9b5c70b71003366d212fecb8f768e33248c6 100644 (file)
@@ -6,13 +6,11 @@
 * 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.name;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
 import eu.etaxonomy.cdm.model.name.TaxonName;
@@ -24,28 +22,19 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
 
 /**
- * <p>NomenclaturalStatusSection class.</p>
- *
  * @author n.hoffmann
  */
-public class NomenclaturalStatusSection extends AbstractEntityCollectionSection<TaxonName, NomenclaturalStatus> implements ITaxonBaseDetailSection{
-
-       private TaxonBase taxonBase;
-
-       /**
-        * <p>Constructor for NomenclaturalStatusSection.</p>
-        *
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param style a int.
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       public NomenclaturalStatusSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement,
+public class NomenclaturalStatusSection
+        extends AbstractEntityCollectionSection<TaxonName, NomenclaturalStatus>
+        implements ITaxonBaseDetailSection{
+
+       private TaxonBase<?> taxonBase;
+
+       public NomenclaturalStatusSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement,
                        int style) {
-               super(cdmFormFactory, conversation, parentElement, "Nomenclatural Status", style);
+               super(cdmFormFactory, parentElement, "Nomenclatural Status", style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public Collection<NomenclaturalStatus> getCollection(TaxonName entity) {
                return entity.getStatus();
@@ -56,63 +45,57 @@ public class NomenclaturalStatusSection extends AbstractEntityCollectionSection<
         return new DefaultCdmBaseComparator<>();
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No nomenclatural status yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        public NomenclaturalStatus createNewElement() {
                return NomenclaturalStatus.NewInstance(null);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Create a new nomenclatural status";
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addElement(NomenclaturalStatus element) {
                getEntity().addStatus(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElement(NomenclaturalStatus element) {
                getEntity().removeStatus(element);
        }
 
-       /** {@inheritDoc} */
        @Override
     public void setTaxonBase(TaxonBase entity) {
                this.taxonBase = entity;
                TaxonName nonViralName = HibernateProxyHelper.deproxy(entity.getName());
                setEntity(nonViralName);
        }
+       
+       @Override
+    public void setTaxonBaseWithoutUpdate(TaxonBase entity) {
+               this.taxonBase = entity;
+               TaxonName nonViralName = HibernateProxyHelper.deproxy(entity.getName());
+               this.setEntity(nonViralName);
+       }
 
        @Override
        public TaxonBase getTaxonBase() {
                return taxonBase;
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public NomenclaturalStatus addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-}
+}
\ No newline at end of file
index 270e891549305a38361787a07dbb06164e251679..6abaed300231a3eedfab0f565266c1045da54c0f 100644 (file)
@@ -6,11 +6,8 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.name;
 
-import java.util.Arrays;
-
 import eu.etaxonomy.cdm.model.name.IBacterialName;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.cdm.model.name.TaxonName;
@@ -41,15 +38,12 @@ public class NonViralNameDetailElement
        private HybridDetailSection section_hybrid;
        private LsidWithExceptionLabelElement textLsid;
        private TextWithLabelElement text_nameApprobation;
-       //protected boolean isAdvancedView ;
 
        public NonViralNameDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
                super(formFactory, formElement);
-
        }
 
-       /** {@inheritDoc} */
        @Override
     protected void createControls(ICdmFormElement formElement, final TaxonName entity, int style) {
            NameDetailsConfigurator config = PreferencesUtil.getPreferredNameDetailsConfiguration();
@@ -58,77 +52,64 @@ public class NonViralNameDetailElement
             toggleable_cache = formFactory.createToggleableTextField(formElement, "Cache", entity.getTitleCache(), entity.isProtectedTitleCache() || entity.isProtectedFullTitleCache(), style);
 
             combo_nomenclaturalCode = formFactory.createEnumComboElement(NomenclaturalCode.class, formElement, style);
-            combo_nomenclaturalCode.setSelection(entity.getNomenclaturalCode());
-            if (entity.getNameType().equals(NomenclaturalCode.ICNB)){
+            combo_nomenclaturalCode.setSelection(entity.getNameType());
+            if (entity.getNameType().equals(NomenclaturalCode.ICNP)){
                text_nameApprobation = formFactory.createTextWithLabelElement(formElement, "Name Approbation", entity.getNameApprobation(),style);
             }
             textLsid = formFactory.createLsidWithExceptionLabelElement(formElement, "Lsid", entity.getLsid(), style);
-
-
         }else{
                if (config.isNameCacheActivated()){
                        toggleable_cache = formFactory.createToggleableTextField(formElement, "Cache", entity.getTitleCache(), entity.isProtectedTitleCache() || entity.isProtectedFullTitleCache(), style);
-
                }
                if (config.isNomenclaturalCodeActived()){
                        combo_nomenclaturalCode = formFactory.createEnumComboElement(NomenclaturalCode.class, formElement, style);
-                       combo_nomenclaturalCode.setSelection(entity.getNomenclaturalCode());
+                       combo_nomenclaturalCode.setSelection(entity.getNameType());
                }
-               if (entity.getNameType().equals(NomenclaturalCode.ICNB)){
+               if (entity.getNameType().equals(NomenclaturalCode.ICNP)){
                        if (config.isNameApprobiationActivated()){
-                        text_nameApprobation = formFactory.createTextWithLabelElement(formElement, "Name Approbation", entity.getNameApprobation(),style);
+                               text_nameApprobation = formFactory.createTextWithLabelElement(formElement, "Name Approbation", entity.getNameApprobation(),style);
                        }
                }
-
                if (config.isLSIDActivated()){
                        textLsid = formFactory.createLsidWithExceptionLabelElement(formElement, "Lsid", entity.getLsid(), style);
-
                }
-
-
         }
 
-
-           section_name = formFactory.createNameDetailSection(getConversationHolder(), formElement, null, StoreUtil.getSectionStyle(NameDetailSection.class, entity.getClass().getCanonicalName(), true));
+           section_name = formFactory.createNameDetailSection(formElement, null, StoreUtil.getSectionStyle(NameDetailSection.class, entity.getClass().getCanonicalName(), true));
            section_name.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
            addControl(section_name);
            addElement(section_name);
 //         if (isAdvancedView || PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_AUTHORSHIP)){
-           section_author = formFactory.createAuthorshipDetailSection(getConversationHolder(), formElement, null, StoreUtil.getSectionStyle(AuthorshipDetailSection.class, entity.getClass().getCanonicalName(), true));
+           section_author = formFactory.createAuthorshipDetailSection(formElement, null, StoreUtil.getSectionStyle(AuthorshipDetailSection.class, entity.getClass().getCanonicalName(), true));
            section_author.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
            addControl(section_author);
            addElement(section_author);
 //         }
            //TODO RL
            if (config == null || config.isHybridActivated()){
-          section_hybrid = formFactory.createHybridDetailSection(getConversationHolder(), formElement, null, StoreUtil.getSectionStyle(HybridDetailSection.class, entity.getClass().getCanonicalName()));
+          section_hybrid = formFactory.createHybridDetailSection(formElement, null, StoreUtil.getSectionStyle(HybridDetailSection.class, entity.getClass().getCanonicalName()));
           section_hybrid.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
           addControl(section_hybrid);
           addElement(section_hybrid);
+       }
 
-        }
-
-
+           //cache relevance
+           registerCacheRelevance(section_name);
+           registerCacheRelevance(section_author);
+           registerCacheRelevance(combo_nomenclaturalCode);
+           registerCacheRelevance(section_hybrid);
     }
 
-       /** {@inheritDoc} */
        @Override
        protected void updateContent() {
                super.updateContent();
-               // disable nomenclatural code, because changing of nom.code is not
-               // implemented on library side
-//             if(combo_nomenclaturalCode!=null){
-//                 combo_nomenclaturalCode.setEnabled(false);
-//             }
 
-               if(toggleable_cache!=null){
-                   toggleable_cache.setEnabled(getEntity().isProtectedTitleCache() || getEntity().isProtectedFullTitleCache());
-                   setIrrelevant(toggleable_cache.getState(),
-                           Arrays.asList(new Object[] { toggleable_cache, textLsid, text_nameApprobation }));
+               if(toggleable_cache != null){
+                   toggleable_cache.setCacheEnabled(getEntity().isProtectedTitleCache() || getEntity().isProtectedFullTitleCache());
+                   updateCacheRelevance();
                }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setEntity(TaxonName entity) {
                super.setEntity(entity);
@@ -143,7 +124,6 @@ public class NonViralNameDetailElement
         }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElements() {
                super.removeElements();
@@ -161,7 +141,6 @@ public class NonViralNameDetailElement
                }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == toggleable_cache) {
@@ -172,7 +151,7 @@ public class NonViralNameDetailElement
                        getEntity().setProtectedFullTitleCache(false);
                } else if (eventSource == section_name || eventSource == section_author) {
                        if (getParentElement() instanceof AbstractCdmDetailSection) {
-                ((AbstractCdmDetailSection) getParentElement()).updateTitle();
+                ((AbstractCdmDetailSection<?>) getParentElement()).updateTitle();
             }
                        if (toggleable_cache != null){
                        if (!toggleable_cache.getState()) {
@@ -192,9 +171,15 @@ public class NonViralNameDetailElement
                                this.updateContent();
                    //this is needed for the "new" wizards in order to redraw correctly
                    StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
-                               section_hybrid.setEntity(getEntity());
-                               section_author.setEntity(getEntity());
-                               section_name.setEntity(getEntity());
+                   if (section_hybrid != null){
+                       section_hybrid.setEntity(getEntity());
+                   }
+                   if (section_author != null){
+                       section_author.setEntity(getEntity());
+                   }
+                   if (section_name != null){
+                       section_name.setEntity(getEntity());
+                   }
                        }else{
                                combo_nomenclaturalCode.setSelection(getEntity().getNameType());
                        }
@@ -202,6 +187,7 @@ public class NonViralNameDetailElement
             ((IBacterialName)getEntity()).setNameApprobation(text_nameApprobation.getText());
         }
        }
+
        private boolean checkForDeletableParts(NomenclaturalCode selection) {
                NomenclaturalCode actualCode =  getEntity().getNameType();
                if (selection.equals(actualCode)){
@@ -218,9 +204,8 @@ public class NonViralNameDetailElement
                        }else {
                                return true;
                        }
-
                }
-               if (actualCode.equals(NomenclaturalCode.ICNB)){
+               if (actualCode.equals(NomenclaturalCode.ICNP)){
                        if (getEntity().getNameApprobation() != null || getEntity().getSubGenusAuthorship() != null){
                                if (MessagingUtils.confirmDialog(Messages.NonViralNameDetails_confirmDeleteOfBacterialNameParts, Messages.NonViralNameDetails_desciptionDeleteOfBacterialNameParts)){
                                        getEntity().setNameApprobation(null);
@@ -230,7 +215,6 @@ public class NonViralNameDetailElement
                        }else{
                                return true;
                        }
-
                }
                if (actualCode.equals(NomenclaturalCode.NonViral)){
                    return true;
@@ -246,15 +230,15 @@ public class NonViralNameDetailElement
                        }
                }
                if (actualCode.equals(NomenclaturalCode.ICNCP)){
-                       if (getEntity().getCultivarName() != null){
+                       if (getEntity().getCultivarEpithet() != null || getEntity().getCultivarGroupEpithet() != null){
                                if (MessagingUtils.confirmDialog(Messages.NonViralNameDetails_confirmDeleteOfCultivarNameParts, Messages.NonViralNameDetails_descriptionDeleteOfCultivarNameParts)){
-                                       getEntity().setCultivarName(null);
+                                       getEntity().setCultivarEpithet(null);
+                                       getEntity().setCultivarGroupEpithet(null);
                                        return true;
                                }
                        }else{
                                return true;
                        }
-
                }
                if (actualCode.equals(NomenclaturalCode.ICNAFP)){
                        return true;
@@ -264,18 +248,23 @@ public class NonViralNameDetailElement
 
        @Override
        protected void handleToggleableCacheField() {
-        boolean pushedState = toggleable_cache.getState();
-
-        getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
-        setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache, textLsid, text_nameApprobation }));
+        getEntity().setTitleCache(toggleable_cache.getText(), toggleable_cache.getState());
+        updateCacheRelevance();
         updateToggleableCacheField();
     }
 
-
-
-
-//    @Override
-//    public void toggleAdvancedMediaView(){
-//        mediaDetailElement.toggleAdvancedMediaView();
-//    }
-}
+       @Override
+       public void fillFields() {
+               super.fillFields();
+               
+               section_name.getDetailElement().fillFields();;
+               section_author.getDetailElement().fillFields();
+               combo_nomenclaturalCode.setSelection(getEntity().getNameType());
+               section_hybrid.getDetailElement().fillFields();
+               textLsid.setText(getEntity().getLsid()!= null? getEntity().getLsid().toString():null);
+               if (text_nameApprobation != null) {
+                       text_nameApprobation.setText(getEntity().getNameApprobation());
+               }
+               
+       }
+}
\ No newline at end of file
index c9a79fa54f98d0f21f0619f92c62866511909ab2..28b2c3f60f5c8453c0a6fe4e6c7d1725a8ea1932 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.name;
 
 import org.eclipse.jface.action.Action;
@@ -16,7 +15,6 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Control;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.INonViralName;
 import eu.etaxonomy.cdm.model.name.TaxonName;
@@ -44,19 +42,9 @@ public class NonViralNameDetailSection extends AbstractCdmDetailSection<TaxonNam
        private TaxonBase<?> taxonBase;
        boolean nameChoosable = false;
 
-       /**
-        * <p>Constructor for NonViralNameDetailSection.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-        * @param nameChoosable if <code>true</code> adds a button to choose the displayed name
-        * @param style a int.
-        */
-       public NonViralNameDetailSection(CdmFormFactory formFactory, ConversationHolder conversation,
+       public NonViralNameDetailSection(CdmFormFactory formFactory,
                        ICdmFormElement parentElement, ISelectionProvider selectionProvider, boolean nameChoosable, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
                this.nameChoosable = nameChoosable;
        }
 
@@ -69,7 +57,7 @@ public class NonViralNameDetailSection extends AbstractCdmDetailSection<TaxonNam
                    Action chooseNameAction = new Action("Choose Name", IAction.AS_PUSH_BUTTON){
                        @Override
                        public void run() {
-                           TaxonName taxonName = NameSelectionDialog.select(getShell(), //getConversationHolder(),
+                           TaxonName taxonName = NameSelectionDialog.select(getShell(),
                                    getEntity());
                            if(taxonName!=null){
                             TaxonName nonViralName = HibernateProxyHelper.deproxy(taxonName);
@@ -98,7 +86,7 @@ public class NonViralNameDetailSection extends AbstractCdmDetailSection<TaxonNam
 
                                        if(confirm){
                                                TaxonName clonedName;
-                                               clonedName = (TaxonName) getEntity().clone();
+                                               clonedName = getEntity().clone();
                                                setEntity(clonedName);
                                                taxonBase.setName(clonedName);
                                                taxonBase.generateTitle();
@@ -147,4 +135,12 @@ public class NonViralNameDetailSection extends AbstractCdmDetailSection<TaxonNam
                        AbstractCdmDetailSection<TaxonName> parentElement, int style) {
            return formFactory.createNonViralNameDetailElement(parentElement);
        }
+
+       @Override
+       public void setTaxonBaseWithoutUpdate(TaxonBase<?> taxon) {
+               taxonBase = taxon;
+               TaxonName name = HibernateProxyHelper.deproxy(taxon.getName());
+               setEntityWithoutUpdate(name);
+               
+       }
 }
index b577414fbd9bf7507ce01ac9f285a0fd049c47ec..01f70905340fa4b48ce0d53f25a21f60d78f42d9 100644 (file)
@@ -6,10 +6,8 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.name;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -17,8 +15,6 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
- * <p>NonViralNameWizardPage class.</p>
- *
  * @author n.hoffmann
  * @created Jun 1, 2010
  */
@@ -26,20 +22,11 @@ public class NonViralNameWizardPage extends AbstractCdmEntityWizardPage<TaxonNam
 
        private NonViralNameDetailElement nameElement;
 
-       /**
-        * <p>Constructor for NonViralNameWizardPage.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param entity a {@link eu.etaxonomy.cdm.model.name.NonViralName} object.
-        */
-       public NonViralNameWizardPage(CdmFormFactory formFactory, ConversationHolder conversation,
-                       TaxonName entity) {
-               super(formFactory, conversation, entity);
+       public NonViralNameWizardPage(CdmFormFactory formFactory, TaxonName entity) {
+               super(formFactory, entity);
                setTitle("Name");
        }
 
-       /** {@inheritDoc} */
        @Override
        public AbstractCdmDetailElement<TaxonName> createElement(ICdmFormElement rootElement) {
                nameElement = formFactory.createNonViralNameDetailElement(rootElement);
@@ -47,10 +34,9 @@ public class NonViralNameWizardPage extends AbstractCdmEntityWizardPage<TaxonNam
                return nameElement;
        }
 
-       /** {@inheritDoc} */
        @Override
        public void dispose() {
                nameElement.removeElements();
                super.dispose();
        }
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/ProtologueElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/ProtologueElement.java
deleted file mode 100644 (file)
index baa0abc..0000000
+++ /dev/null
@@ -1,139 +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.section.name;
-
-import java.net.URI;
-
-import org.eclipse.swt.events.SelectionListener;
-
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
-import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.media.MediaRepresentation;
-import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.reference.Reference;
-import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
-import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
-import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
-import eu.etaxonomy.taxeditor.ui.openurl.IOpenUrlEnabled;
-import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
-
-/**
- * <p>ProtologueElement class.</p>
- *
- * @author n.hoffmann
- * @created Nov 5, 2009
- * @version 1.0
- */
-public class ProtologueElement extends AbstractEntityCollectionElement<DescriptionElementBase> implements ISelectableElement, IOpenUrlEnabled{
-
-       private final SelectionArbitrator selectionArbitrator;
-
-       private UriWithLabelElement protologueUriText;
-       private MediaRepresentationPart mediaRepresentationPart;
-       private Media media;
-       private MediaRepresentation mediaRepresentation;
-
-       /**
-        * <p>Constructor for ProtologueElement.</p>
-        *
-        * @param element a {@link eu.etaxonomy.cdm.model.description.DescriptionElementBase} object.
-        * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
-        * @param style a int.
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} object.
-        */
-       public ProtologueElement(CdmFormFactory cdmFormFactory, AbstractFormSection<?> formElement, DescriptionElementBase element,
-                       SelectionListener removeListener, int style) {
-               super(cdmFormFactory, formElement, element, removeListener, null, style);
-               selectionArbitrator = cdmFormFactory.createSelectionArbitrator(this);
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void createControls(ICdmFormElement element, int style) {
-               protologueUriText = formFactory.createUriWithLabelElement(element, "Protologue URI", null, style);
-
-               formFactory.createOpenUrlSelectorElement(element, "Query BHL for Reference Image", this, style);
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void setEntity(DescriptionElementBase element) {
-               this.entity = element;
-
-               if(element.getMedia().size() == 0){
-                       element.addMedia(Media.NewInstance());
-               }
-               media = element.getMedia().iterator().next();
-
-               if(media.getRepresentations().size() == 0){
-                       media.addRepresentation(MediaRepresentation.NewInstance());
-               }
-               mediaRepresentation = media.getRepresentations().iterator().next();
-
-               if(mediaRepresentation.getParts().size() == 0){
-                       mediaRepresentation.addRepresentationPart(MediaRepresentationPart.NewInstance(null, null));
-               }
-
-               mediaRepresentationPart = mediaRepresentation.getParts().iterator().next();
-
-               if(mediaRepresentationPart.getUri() != null){
-                       protologueUriText.setText(mediaRepresentationPart.getUri().toString());
-               }
-       }
-
-       /**
-        * <p>Getter for the field <code>selectionArbitrator</code>.</p>
-        *
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator} object.
-        */
-       @Override
-    public SelectionArbitrator getSelectionArbitrator() {
-               return selectionArbitrator;
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void handleEvent(Object eventSource) {
-               if(eventSource == protologueUriText && protologueUriText.getText()!=null){
-                   mediaRepresentationPart.setUri(protologueUriText.parseText());
-               }
-       }
-
-       @Override
-       public void setOpenUrl(URI uri) {
-               protologueUriText.setText(uri.toString());
-               firePropertyChangeEvent(new CdmPropertyChangeEvent(protologueUriText, null));
-       }
-
-       @Override
-       public Reference getReference() {
-               return (Reference) getName().getNomenclaturalReference();
-       }
-
-       @Override
-       public String getDetail() {
-               return getName().getNomenclaturalMicroReference();
-       }
-
-       private TaxonName getName(){
-               TaxonNameDescription description = (TaxonNameDescription) entity.getInDescription();
-
-               TaxonName taxonName = description.getTaxonName();
-
-               return taxonName;
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/ProtologueSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/ProtologueSection.java
deleted file mode 100644 (file)
index 967ab34..0000000
+++ /dev/null
@@ -1,166 +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.section.name;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.List;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
-import eu.etaxonomy.cdm.model.description.TextData;
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-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;
-import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
-
-/**
- * <p>ProtologueSection class.</p>
- *
- * @author n.hoffmann
- * @created Nov 5, 2009
- */
-public class ProtologueSection extends AbstractEntityCollectionSection<TaxonName, DescriptionElementBase> implements ITaxonBaseDetailSection{
-
-       private TaxonBase taxonBase;
-
-       /**
-        * <p>Constructor for ProtologueSection.</p>
-        *
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param style a int.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       public ProtologueSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(cdmFormFactory, conversation, parentElement, "Protologues / Original Publications", style);
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public DescriptionElementBase createNewElement() {
-               return TextData.NewInstance(Feature.PROTOLOGUE());
-       }
-
-
-       /** {@inheritDoc} */
-       @Override
-       public Collection<DescriptionElementBase> getCollection(TaxonName entity) {
-               Collection<DescriptionElementBase> result = new ArrayList<>();
-               List<TaxonNameDescription> descriptions = getTaxonNameDescriptions(entity);
-               for (TaxonNameDescription desc : descriptions){
-                       desc.getElements()
-                       .stream()
-                       .filter(element -> element.getFeature().equals(Feature.PROTOLOGUE()))
-                       .forEach(element -> result.add(element));
-               }
-               return result;
-//OLD: return getTaxonNameDescription(entity).getElements();
-       }
-
-       @Override
-       public Comparator<DescriptionElementBase> getComparator() {
-        return new DefaultCdmBaseComparator<>();
-       }
-
-
-       /** {@inheritDoc} */
-       @Override
-       public String getEmptyString() {
-               return "No protologues yet.";
-       }
-
-
-       /** {@inheritDoc} */
-       @Override
-       protected String getTooltipString() {
-               return "Create a new protologue";
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void addElement(DescriptionElementBase element) {
-               //for simplification we always use the first description to add elements here
-               getTaxonNameDescription(getEntity()).addElement(element);
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void removeElement(DescriptionElementBase element) {
-               List<TaxonNameDescription> descriptions = getTaxonNameDescriptions(getEntity());
-               for (TaxonNameDescription desc : descriptions){
-                       desc.removeElement(element);
-               }
-       }
-
-       /** {@inheritDoc} */
-       @Override
-    public void setTaxonBase(TaxonBase entity) {
-               this.taxonBase = entity;
-               TaxonName name = HibernateProxyHelper.deproxy(entity.getName());
-               setEntity(name);
-       }
-
-       /**
-        * NOTE: returns first description
-        * @param name
-        * @return
-        */
-       private TaxonNameDescription getTaxonNameDescription(TaxonName name){
-               if(name.getDescriptions().size() == 0){
-                       name.addDescription(TaxonNameDescription.NewInstance(name));
-               }
-               return name.getDescriptions().iterator().next();
-       }
-
-       /**
-        * Try to fix FIXME in {@link #getTaxonNameDescription(TaxonNameBase)}
-        * @param name
-        * @return
-        */
-       private List<TaxonNameDescription> getTaxonNameDescriptions(TaxonName name){
-               List<TaxonNameDescription> result = new ArrayList<>();
-               if (name == null){
-                       return result;
-               }
-               for (TaxonNameDescription desc : name.getDescriptions()){
-                       result.add(desc);
-               }
-               return result;
-       }
-
-       @Override
-       public TaxonBase getTaxonBase() {
-               return taxonBase;
-       }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public DescriptionElementBase addExisting() {
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean allowAddExisting() {
-        return false;
-    }
-}
old mode 100755 (executable)
new mode 100644 (file)
index 283844c..a457696
@@ -11,7 +11,7 @@ package eu.etaxonomy.taxeditor.ui.section.name;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
index 8eee910db6e7622fa2c1e9f46ffcdebc278412a1..a1b625c34ed3af9146cb95a4b1f6bdac88012a28 100644 (file)
@@ -6,20 +6,25 @@
  * 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.name;
 
+import java.util.List;
+
 import org.eclipse.swt.events.SelectionListener;
 
-import eu.etaxonomy.cdm.api.service.name.TypeDesignationStatusComparator;
+import eu.etaxonomy.cdm.compare.name.TypeDesignationStatusComparator;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.cdm.model.reference.NamedSource;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -30,7 +35,6 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author n.hoffmann
  * @created May 17, 2010
- * @version 1.0
  */
 public class SpecimenTypeDesignationElement extends
                AbstractTypeDesignationElement<SpecimenTypeDesignation> {
@@ -45,43 +49,49 @@ public class SpecimenTypeDesignationElement extends
                super(formFactory, section, entity, removeListener, style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement formElement, int style) {
                selection_typeSpecimen = formFactory
                                .createSelectionElement(DerivedUnit.class,
                                        formElement, "Specimen", null,
                                                EntitySelectionElement.ALL, style);
-               combo_typeStatus = formFactory.createDefinedTermComboElement(TermType.SpecimenTypeDesignationStatus,
-                                               formElement, "Designation Status", null, style, new TypeDesignationStatusComparator<SpecimenTypeDesignationStatus>());
+               String availableTypes = PreferencesUtil.getStringValue(PreferencePredicate.SpecimenTypeDesignationStatus.getKey());
+           List<SpecimenTypeDesignationStatus> relTypes = CdmStore.getTermManager().createTermListFromString(availableTypes, TermType.SpecimenTypeDesignationStatus);
+//             combo_typeStatus = formFactory.createDefinedTermComboElement(TermType.SpecimenTypeDesignationStatus,
+//                                             formElement, "Designation Status", null, style, new TypeDesignationStatusComparator<SpecimenTypeDesignationStatus>());
+           combo_typeStatus = formFactory.createDefinedTermComboElement(relTypes, formElement, "Designation Status", null,style, new TypeDesignationStatusComparator<SpecimenTypeDesignationStatus>());
 
                super.createControls(formElement, style);
+               setEntity(entity);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setEntity(SpecimenTypeDesignation entity) {
            super.setEntity(entity);
-        if (entity.getTypeSpecimen() != null){
-            selection_typeSpecimen.setEntity(entity.getTypeSpecimen());
-        }else{
-            selection_typeSpecimen.setEntity(entity.getTypeSpecimen());
-        }
+           if (selection_typeSpecimen != null){
+               if (entity.getTypeSpecimen() != null){
+                   selection_typeSpecimen.setEntity(entity.getTypeSpecimen());
+               }else{
+                   selection_typeSpecimen.setEntity(entity.getTypeSpecimen());
+               }
 
-               SpecimenTypeDesignationStatus typeStatus = HibernateProxyHelper
-                               .deproxy(entity.getTypeStatus(), SpecimenTypeDesignationStatus.class);
-           combo_typeStatus.setSelection(typeStatus);
+                       SpecimenTypeDesignationStatus typeStatus = HibernateProxyHelper
+                                       .deproxy(entity.getTypeStatus(), SpecimenTypeDesignationStatus.class);
+                   combo_typeStatus.setSelection(typeStatus);
 
-               checkbox_notDesignated.setSelection(entity.isNotDesignated());
+                       checkbox_notDesignated.setSelection(entity.isNotDesignated());
+           }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
            super.handleEvent(eventSource);
                if (eventSource == combo_typeStatus) {
-
-                   if ((combo_typeStatus.getSelection() == null && entity.getCitation() != null) || ( entity.getTypeStatus() != null && getEntity().getTypeStatus().hasDesignationSource() && !combo_typeStatus.getSelection().hasDesignationSource() && entity.getCitation() != null)){
+                   boolean entityStatusHasDesignationSource = entity.getTypeStatus() != null && getEntity().getTypeStatus().hasDesignationSource();
+                   boolean selectedStatusHasDesignationSource = combo_typeStatus.getSelection() != null && combo_typeStatus.getSelection().hasDesignationSource();
+                   boolean hasCitation = entity.getCitation() != null;
+                   if (hasCitation && (combo_typeStatus.getSelection() == null ||
+                           ( entityStatusHasDesignationSource && !selectedStatusHasDesignationSource ))){
                        boolean ok = MessagingUtils.confirmDialog(Messages.NameTypeDesignationElement_4, Messages.NameTypeDesignationElement_5);
                        if (!ok){
                            combo_typeStatus.setSelection(entity.getTypeStatus());
@@ -89,6 +99,10 @@ public class SpecimenTypeDesignationElement extends
                        }
                    }
                        getEntity().setTypeStatus(combo_typeStatus.getSelection());
+                       if (entity.hasDesignationSource()){
+                           NamedSource source = NamedSource.NewPrimarySourceInstance(null, null);
+                           entity.setDesignationSource(source);
+                       }
                        setEntity(entity);
 
                }
@@ -107,11 +121,11 @@ public class SpecimenTypeDesignationElement extends
                } else if (eventSource == checkbox_notDesignated) {
                        getEntity().setNotDesignated(checkbox_notDesignated.getSelection());
                }
-               else if (eventSource == selection_reference) {
-                       getEntity().setCitation(selection_reference.getSelection());
-               } else if (eventSource == text_referenceDetail) {
-                       getEntity().setCitationMicroReference(
-                                       text_referenceDetail.getText());
-               }
+//             else if (eventSource == selection_reference) {
+//                     getEntity().setCitation(selection_reference.getSelection());
+//             } else if (eventSource == text_referenceDetail) {
+//                     getEntity().setCitationMicroReference(
+//                                     text_referenceDetail.getText());
+//             }
        }
-}
+}
\ No newline at end of file
index 1a002afce890b1f3f0d7feaf1cc7bec1151326ad..f5b88c580ab9b0b7e244acc4032de22128a34316 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.name;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
@@ -21,13 +20,11 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.MultilanguageTextElement;
 
 /**
- *
  * @author pplitzner
  * @since May 15, 2019
- *
  */
-public class TextTypeDesignationElement extends
-               AbstractTypeDesignationElement<TextualTypeDesignation> {
+public class TextTypeDesignationElement
+        extends AbstractTypeDesignationElement<TextualTypeDesignation> {
 
     private MultilanguageTextElement multilanguageTextElement;
     private CheckboxElement checkIsVerbatim;
@@ -43,6 +40,9 @@ public class TextTypeDesignationElement extends
         multilanguageTextElement = formFactory.createMultiLanguageTextElement(this, null, entity.getText(), 100, SWT.WRAP);
         checkIsVerbatim = formFactory.createCheckbox(formElement, "Is Verbatim", getEntity().isVerbatim(), style);
         super.createControls(formElement, style);
+        if (entity != null){
+               setEntity(entity);
+        }
        }
 
     @Override
@@ -57,7 +57,9 @@ public class TextTypeDesignationElement extends
        @Override
        public void setEntity(TextualTypeDesignation entity) {
            super.setEntity(entity);
-           removeNotDesignatedControls();
+           if (checkbox_notDesignated != null){
+               removeNotDesignatedControls();
+           }
        }
 
        @Override
@@ -67,4 +69,4 @@ public class TextTypeDesignationElement extends
                getEntity().setVerbatim(checkIsVerbatim.getSelection());
            }
        }
-}
+}
\ No newline at end of file
index 890e229028cecf8c5e8cc0938f8ae5176bcfbdcd..34756d3cf9a9fa1919c1592f4a5c56b7545a18fe 100644 (file)
@@ -6,12 +6,13 @@
 * 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.name;
 
 import java.util.Collection;
 import java.util.Comparator;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.commands.operations.IOperationHistory;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
@@ -22,10 +23,9 @@ import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.graphics.ImageData;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.INameService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
-import eu.etaxonomy.cdm.api.service.name.TypeDesignationComparator;
+import eu.etaxonomy.cdm.compare.name.TypeDesignationComparator;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
 import eu.etaxonomy.cdm.model.name.Rank;
@@ -59,11 +59,13 @@ import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart;
  */
 public class TypeDesignationSection extends AbstractEntityCollectionSection<TaxonName, TypeDesignationBase> implements ITaxonBaseDetailSection {
 
-       private TaxonBase taxonBase;
+    private static final Logger logger = LogManager.getLogger();
+
+       private TaxonBase<?> taxonBase;
 
-       public TypeDesignationSection(CdmFormFactory formFactory, ConversationHolder conversation,
+       public TypeDesignationSection(CdmFormFactory formFactory,
                        ICdmFormElement parentElement, int style) {
-               super(formFactory, conversation, parentElement, Messages.TypeDesignationSection_TYPE_DESIGNATIONS, style);
+               super(formFactory, parentElement, Messages.TypeDesignationSection_TYPE_DESIGNATIONS, style);
        }
 
        @Override
@@ -118,7 +120,8 @@ public class TypeDesignationSection extends AbstractEntityCollectionSection<Taxo
                             wizard.getBarcode(),
                             wizard.getCatalogNumber(),
                             wizard.getCollection().getUuid(),
-                            wizard.getTypeStatus());
+                            wizard.getTypeStatus(),
+                            wizard.getStableIdentifier());
                     if(!result.isOk()){
                         MessagingUtils.warningDialog(Messages.TypeDesignationSection_DUPLICATE_FAILED, this, result.getExceptions().toString());
                     }
@@ -141,7 +144,7 @@ public class TypeDesignationSection extends AbstractEntityCollectionSection<Taxo
 
        @Override
        public void addElement(TypeDesignationBase element) {
-               getEntity().addTypeDesignation(element, PreferencesUtil.getBooleanValue(IPreferenceKeys.ADD_TYPES_TO_ALL_NAMES));
+           getEntity().addTypeDesignation(element, PreferencesUtil.getBooleanValue(IPreferenceKeys.ADD_TYPES_TO_ALL_NAMES));
                updateToolbar();
        }
 
@@ -164,7 +167,7 @@ public class TypeDesignationSection extends AbstractEntityCollectionSection<Taxo
 
        @Override
        public Comparator<TypeDesignationBase> getComparator() {
-        return new TypeDesignationComparator();
+           return new TypeDesignationComparator();
        }
 
        @Override
@@ -187,7 +190,7 @@ public class TypeDesignationSection extends AbstractEntityCollectionSection<Taxo
            }
                boolean removeTypeDesignationFromAllTypifiedNames = PreferencesUtil.getBooleanValue(IPreferenceKeys.ADD_TYPES_TO_ALL_NAMES);
                TaxonName entity = removeTypeDesignationFromAllTypifiedNames ? null : getEntity();
-               if(!element.isPersited() && entity!=null){
+               if(!element.isPersisted() && entity!=null){
             entity.removeTypeDesignation(element);
                }
                else if(detailsView!=null
@@ -215,9 +218,14 @@ public class TypeDesignationSection extends AbstractEntityCollectionSection<Taxo
                setEntity(name);
        }
 
+       @Override
+    public void setTaxonBaseWithoutUpdate(TaxonBase entity) {
+               this.setTaxonBase(entity);
+       }
+
        private boolean isSpecimenType(){
-               Rank rank = getEntity().getRank();
-               if(rank==null){
+               Rank rank = getEntity() == null ? null : getEntity().getRank();
+               if(rank == null){
                        return false;
                }
                return rank.isSpecies() || rank.isInfraSpecific();
old mode 100755 (executable)
new mode 100644 (file)
index ae3e4eb..6a9b605
@@ -23,10 +23,8 @@ import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
- *
  * @author pplitzner
  * @since Apr 10, 2019
- *
  */
 public class DeleteTypeDesignationOperation extends AbstractPostOperation<TaxonName> {
 
@@ -34,16 +32,15 @@ public class DeleteTypeDesignationOperation extends AbstractPostOperation<TaxonN
 
     public DeleteTypeDesignationOperation(String label, IUndoContext undoContext, TaxonName taxonName,
             TypeDesignationBase<?> typeDesignation, IPostOperationEnabled postOperationEnabled,
-            ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+            ICdmEntitySessionEnabled<TaxonName> cdmEntitySessionEnabled) {
         super(label, undoContext, taxonName, postOperationEnabled, cdmEntitySessionEnabled);
         this.typeDesignation = typeDesignation;
-
     }
 
     @Override
     public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
         monitor.worked(20);
-        if (typeDesignation != null && typeDesignation.isPersited()){
+        if (typeDesignation != null && typeDesignation.isPersisted()){
             if(element==null){
                 CdmStore.getService(INameService.class).deleteTypeDesignation(null, typeDesignation);
             }
@@ -65,5 +62,4 @@ public class DeleteTypeDesignationOperation extends AbstractPostOperation<TaxonN
         element.removeTypeDesignation(typeDesignation);
         return postExecute(element);
     }
-
-}
+}
\ No newline at end of file
index 2c2427bedff622cca08048bedfb2ec5a1e403729..5d2bdaccc25933030793bf6cc650c1c019102bc5 100644 (file)
@@ -8,11 +8,13 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.name.type;
 
+
 import java.util.Collection;
 import java.util.stream.Collectors;
 
 import org.eclipse.jface.wizard.Wizard;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
 import eu.etaxonomy.cdm.model.name.TaxonName;
@@ -42,6 +44,8 @@ public class CloneTypeWizard extends Wizard{
 
     private SpecimenTypeDesignationStatus typeStatus;
 
+    private URI stableIdentifier;
+
     public CloneTypeWizard(TaxonName taxonName) {
         this.taxonName = taxonName;
         this.typeDesignations = taxonName.getTypeDesignations().stream()
@@ -65,6 +69,7 @@ public class CloneTypeWizard extends Wizard{
         this.catalogNumber = page.getCatalogNumber();
         this.collection = page.getCollection();
         this.typeStatus = page.getTypeStatus();
+        this.stableIdentifier = page.getStableIdentifier();
         return true;
     }
 
@@ -96,4 +101,12 @@ public class CloneTypeWizard extends Wizard{
         return typeStatus;
     }
 
+    public URI getStableIdentifier() {
+        return stableIdentifier;
+    }
+
+    public void setStableIdentifier(URI stableIdentifier) {
+        this.stableIdentifier = stableIdentifier;
+    }
+
 }
index d32861ef20dcc18b3419f1b9ef3fd8128408ce04..dd0c54f476605d6739ceca50bb07d3ce804c7f68 100644 (file)
@@ -8,17 +8,23 @@
  */
 package eu.etaxonomy.taxeditor.ui.section.name.type;
 
+import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.viewers.ComboViewer;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermUuidComboViewer;
 
@@ -27,7 +33,7 @@ import eu.etaxonomy.taxeditor.ui.combo.term.TermUuidComboViewer;
  * @since Mar 13, 2019
  *
  */
-public class CloneTypeWizardComposite extends Composite {
+public class CloneTypeWizardComposite extends Composite implements ModifyListener{
     private Text txtAccNumber;
     private Text txtCollection;
     private Button btnBrowseCollection;
@@ -35,6 +41,9 @@ public class CloneTypeWizardComposite extends Composite {
     private ComboViewer comboViewerBaseType;
     private Text textBarcode;
     private Text textCatalogNumber;
+    private Text textStableIdentifier;
+    private Label labelException;
+    private URI stableIdentifier;
 
     /**
      * Create the composite.
@@ -53,6 +62,15 @@ public class CloneTypeWizardComposite extends Composite {
         Combo combo = comboViewerBaseType.getCombo();
         combo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
 
+        Label lblNewLabel_1 = new Label(this, SWT.NONE);
+        lblNewLabel_1.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+        lblNewLabel_1.setText("Type Status");
+
+        comboTypeStatus = new TermUuidComboViewer(this, SWT.NONE);
+        comboTypeStatus.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
+        comboTypeStatus.setInput(TermType.SpecimenTypeDesignationStatus);
+
+
         Label lblNewLabel_2 = new Label(this, SWT.NONE);
         lblNewLabel_2.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
         lblNewLabel_2.setText("Collection");
@@ -85,13 +103,16 @@ public class CloneTypeWizardComposite extends Composite {
         textCatalogNumber = new Text(this, SWT.BORDER);
         textCatalogNumber.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
 
-        Label lblNewLabel_1 = new Label(this, SWT.NONE);
-        lblNewLabel_1.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
-        lblNewLabel_1.setText("Type Status");
 
-        comboTypeStatus = new TermUuidComboViewer(this, SWT.NONE);
-        comboTypeStatus.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
-        comboTypeStatus.setInput(TermType.SpecimenTypeDesignationStatus);
+        Label lblNewLabel_stableIdentifier = new Label(this, SWT.NONE);
+        lblNewLabel_stableIdentifier.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+        lblNewLabel_stableIdentifier.setText("Stable Identifier");
+
+        textStableIdentifier = new Text(this, SWT.BORDER);
+        textStableIdentifier.setEnabled(true);
+        textStableIdentifier.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
+        textStableIdentifier.addModifyListener(this);
+
 
     }
 
@@ -121,4 +142,34 @@ public class CloneTypeWizardComposite extends Composite {
     public Text getTextCatalogNumber() {
         return textCatalogNumber;
     }
+
+    public URI getStableIdentifier() {
+        return stableIdentifier;
+    }
+
+
+    @Override
+    public void modifyText(ModifyEvent e) {
+        if (e.getSource().equals(textStableIdentifier)){
+            try{
+                stableIdentifier = URI.create(textStableIdentifier.getText());
+                if (labelException != null){
+                    labelException.setText("");
+                }
+            }catch(IllegalArgumentException ex){
+                if (labelException == null){
+                    labelException = new Label(this, SWT.WRAP); //$NON-NLS-1$
+                    labelException.setBackground(this.getBackground());
+                    labelException.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT));
+                    labelException.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
+                    labelException.requestLayout();
+                    labelException.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));
+                }
+                labelException.setText(Messages.UriWithLabelElement_URL_NOT_SAVED + ex.getLocalizedMessage());
+
+                stableIdentifier = null;
+            }
+        }
+
+    }
 }
index 872feba22427562f76990c23469bddc44385a549..fcf6b9919d08b9fbb20c11cc1b4ef16f3b79b06e 100644 (file)
@@ -23,6 +23,7 @@ import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.widgets.Composite;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.CollectionSelectionDialog;
@@ -133,4 +134,11 @@ public class CloneTypeWizardPage extends WizardPage implements ISelectionChanged
         return (SpecimenTypeDesignationStatus) composite.getComboTypeStatus().getSelection();
     }
 
+    /**
+     * @return
+     */
+    public URI getStableIdentifier() {
+        return composite.getStableIdentifier();
+    }
+
 }
index bcee75a263a1ff84a2b26186e093ff9a93c1fbc4..fe76278e01da84f9db0b22868ff7a8da98685501 100644 (file)
@@ -9,78 +9,50 @@
 
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
- * <p>DeterminationEventDetailSection class.</p>
- *
  * @author n.hoffmann
  * @created Oct 13, 2010
- * @version 1.0
  */
-public abstract class AbstractDeterminationEventDetailSection extends
-               AbstractEntityCollectionSection<DerivedUnitFacade, DeterminationEvent> {
+public abstract class AbstractDeterminationEventDetailSection
+        extends AbstractEntityCollectionSection<SpecimenOrObservationBase, DeterminationEvent> {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param title
-        * @param style
-        */
        public AbstractDeterminationEventDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        String title, int style) {
-               super(formFactory, conversation, parentElement, title, style);
+               super(formFactory, parentElement, title, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#createNewElement()
-        */
-       /** {@inheritDoc} */
        @Override
        public DeterminationEvent createNewElement() {
                DeterminationEvent instance = DeterminationEvent.NewInstance();
         if(PreferencesUtil.isDeterminationOnlyForFieldUnits()){
-            instance.setIdentifiedUnit(getEntity().innerFieldUnit());
+            instance.setIdentifiedUnit(getEntity());
         }
         else{
-            instance.setIdentifiedUnit(getEntity().innerDerivedUnit());
+            instance.setIdentifiedUnit(getEntity());
         }
                return instance;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
        @Override
        public void addElement(DeterminationEvent determination) {
                getEntity().addDetermination(determination);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
        @Override
        public void removeElement(DeterminationEvent determination) {
                getEntity().removeDetermination(determination);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
-        */
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No determinations yet.";
        }
-
-}
+}
\ No newline at end of file
index 7eb029ea11044df3d8ee7dc68d5d5ad5dd5eec19..7976fa70a2b6e78668f2f954f5b324e14ad2ae8c 100644 (file)
@@ -65,9 +65,11 @@ public abstract class AbstractEventDetailElement<T extends EventBase> extends
        /** {@inheritDoc} */
        @Override
        public void setEntity(T entity) {
-               selection_agent.setEntity(entity.getActor());
-               text_description.setText(entity.getDescription());
-               element_timePeriod.setEntity(entity.getTimeperiod());
+               if (selection_agent != null){
+                       selection_agent.setEntity(entity.getActor());
+                       text_description.setText(entity.getDescription());
+                       element_timePeriod.setEntity(entity.getTimeperiod());
+               }
        }
 
 
@@ -75,13 +77,18 @@ public abstract class AbstractEventDetailElement<T extends EventBase> extends
        @Override
        public void createControls(ICdmFormElement element, int style) {
                selection_agent = formFactory
-                               .createSelectionElement(AgentBase.class,//getConversationHolder(),
+                               .createSelectionElement(AgentBase.class,
                                                 element, "Actor", null,
                                                EntitySelectionElement.ALL, style);
                element_timePeriod = formFactory.createTimePeriodElement(element,
                                "Time Period", null, style);
                text_description = formFactory.createTextWithLabelElement(element,
                                "Description", null, style);
+               if (entity != null){
+                       selection_agent.setEntity(entity.getActor());
+                       text_description.setText(entity.getDescription());
+                       element_timePeriod.setEntity(entity.getTimeperiod());
+               }
        }
 
 }
index 30e611c7ad6a592091c0941d7086ed6722942b82..5ffeaf3bd3e93935f1fe1951369a7847963199bc 100644 (file)
@@ -8,7 +8,7 @@
  */
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
index 767fe11e3e158ef1794e5656475b269a8e4e4703..282e90440785a7b0c22b23330fad141390b9e535 100644 (file)
@@ -52,14 +52,20 @@ public class CollectingAreaDetailElement extends
 
        @Override
        public void setEntity(NamedArea entity) {
-               selection_namedArea.setEntity(entity);
+               this.entity = entity;
+               if (selection_namedArea != null){
+                       selection_namedArea.setEntity(entity);
+               }
        }
 
        @Override
        public void createControls(ICdmFormElement formElement, int style) {
-               selection_namedArea = formFactory.createSelectionElement(NamedArea.class, //getConversationHolder(),
+               selection_namedArea = formFactory.createSelectionElement(NamedArea.class,
                                formElement, "Area",
                                null, EntitySelectionElement.NOTHING, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
        @Override
index fb17ab5f5addf0feb3b3c3e5cb9d3e1fcd12d9c0..b67c414dcac1071cd15bfdb51468c3c648f740e3 100644 (file)
@@ -6,14 +6,12 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.NamedAreaSelectionDialog;
@@ -28,17 +26,9 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
  */
 public class CollectingAreasDetailSection extends AbstractEntityCollectionSection<DerivedUnitFacade, NamedArea> {
 
-       /**
-        * <p>Constructor for CollectingAreasDetailSection.</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 style a int.
-        */
        public CollectingAreasDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(formFactory, conversation, parentElement, "Collecting Areas", style);
+                       ICdmFormElement parentElement, int style) {
+               super(formFactory, parentElement, "Collecting Areas", style);
        }
 
        @Override
@@ -53,7 +43,7 @@ public class CollectingAreasDetailSection extends AbstractEntityCollectionSectio
 
        @Override
        public NamedArea createNewElement() {
-               NamedArea selection = NamedAreaSelectionDialog.select(getLayoutComposite().getShell(), //getConversationHolder(),
+               NamedArea selection = NamedAreaSelectionDialog.select(getLayoutComposite().getShell(),
                        null, FieldUnit.class.getCanonicalName());
 
                return selection;
index b4a0c868c449db09a1ec9d1329169052e8df2071..d9a7bb48e3b13f7beee1e022b0db6b82ff336766 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import eu.etaxonomy.cdm.model.agent.Institution;
@@ -40,16 +39,7 @@ public class CollectionDetailElement extends
        private EntitySelectionElement<Collection> selection_superCollection;
 
        /**
-        * <p>
         * Constructor for CollectionDetailElement.
-        * </p>
-        *
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param formElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
         */
        public CollectionDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
@@ -73,12 +63,12 @@ public class CollectionDetailElement extends
                                formElement, "Town Or Location", entity.getTownOrLocation(),
                                style);
                selection_institute = formFactory
-                               .createSelectionElement(Institution.class,//getConversationHolder(),
+                               .createSelectionElement(Institution.class,
                                        formElement, "Institute",
                                                entity.getInstitute(),
                                                EntitySelectionElement.ALL, style);
                selection_superCollection = formFactory
-                               .createSelectionElement(Collection.class,//getConversationHolder(),
+                               .createSelectionElement(Collection.class,
                                        formElement,
                                                "Super Collection", entity.getSuperCollection(),
                                                EntitySelectionElement.ALL, style);
@@ -107,4 +97,10 @@ public class CollectionDetailElement extends
                    text_titleCache.setText(getEntity().getTitleCache());
         }
        }
-}
+
+       @Override
+       public void fillFields() {
+               // TODO actually this is only used for taxa/names
+               
+       }
+}
\ No newline at end of file
index d875d3529f2eb322228939501cd75679740575c8..b142820d62804f0f0589d37af60bd332bf158a91 100644 (file)
@@ -8,7 +8,6 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -16,23 +15,13 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
- * <p>CollectionWizardPage class.</p>
- *
  * @author n.hoffmann
  * @created Oct 13, 2010
  */
 public class CollectionWizardPage extends AbstractCdmEntityWizardPage<Collection> {
 
-       /**
-        * <p>Constructor for CollectionWizardPage.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param entity a {@link eu.etaxonomy.cdm.model.occurrence.Collection} object.
-        */
-       public CollectionWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, Collection entity) {
-               super(formFactory, conversation, entity);
+       public CollectionWizardPage(CdmFormFactory formFactory, Collection entity) {
+               super(formFactory, entity);
                setPageComplete(true);
        }
 
index 78d0d6779d8765c2571011fbaa296c95217b0888..383376398173b8420274e92b532dc100f9c09504 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import java.util.Arrays;
@@ -21,9 +20,8 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.ImageData;
 import org.eclipse.swt.widgets.Control;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -36,16 +34,10 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 public class CurrentDeterminationDetailSection extends
                AbstractDeterminationEventDetailSection {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param style
-        */
        public CurrentDeterminationDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        int style) {
-               super(formFactory, conversation, parentElement, "Current Determination", style);
+               super(formFactory, parentElement, "Current Determination", style);
        }
 
        @Override
@@ -88,7 +80,7 @@ public class CurrentDeterminationDetailSection extends
        }
 
        @Override
-       public Collection<DeterminationEvent> getCollection(DerivedUnitFacade entity) {
+       public Collection<DeterminationEvent> getCollection(SpecimenOrObservationBase entity) {
                DeterminationEvent preferredDetermination = entity.getPreferredDetermination();
                return preferredDetermination != null ? Arrays.asList(new DeterminationEvent[]{preferredDetermination}) : null;
        }
@@ -105,26 +97,18 @@ public class CurrentDeterminationDetailSection extends
                return newElement;
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Create new current determination event";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public DeterminationEvent addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-}
+}
\ No newline at end of file
index 959f8e0339e4829a066e46a9792e7aca718204cc..f868f083505fcc5e278762b251ed283522664649 100644 (file)
@@ -6,15 +6,16 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.api.facade.MethodNotSupportedByDerivedUnitTypeException;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.MethodNotSupportedByDerivedUnitTypeException;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
 import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
@@ -27,20 +28,15 @@ import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
- * <p>
- * DerivedUnitBaseDetailElement class.
- * </p>
- *
  * @author n.hoffmann
  * @created Jun 24, 2010
- * @version 1.0
  */
 public class DerivedUnitBaseDetailElement extends
                AbstractSpecimenOrObservationDetailElement {
 
-       private TextWithLabelElement text_derivedUnitDefinitions;
+    boolean showOnlyDerivedUnitData = true;
 
-       private TextWithLabelElement text_barcode;
+       private TextWithLabelElement text_derivedUnitDefinitions;
 
        private TextWithLabelElement text_catalogNumber;
 
@@ -50,32 +46,25 @@ public class DerivedUnitBaseDetailElement extends
 
        private TermComboElement<DefinedTerm> combo_preservationMethod;
 
-       private SpecimenCollectionDetailSection section_duplicates;
-
        private SourceCollectionDetailSection section_source;
 
     private OriginalLabelDataElement textOriginalLabel;
 
+    private DerivedUnitMediaSection mediaDetailElement;
 
-
-       /**
-        * <p>
-        * Constructor for DerivedUnitBaseDetailElement.
-        * </p>
-        *
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param formElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        */
        public DerivedUnitBaseDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
                super(formFactory, formElement);
        }
 
-       /** {@inheritDoc} */
+       public boolean isShowOnlyDerivedUnitData() {
+        return showOnlyDerivedUnitData;
+    }
+
+    public void setShowOnlyDerivedUnitData(boolean showOnlyDerivedUnitData) {
+        this.showOnlyDerivedUnitData = showOnlyDerivedUnitData;
+    }
+
        @Override
     protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
                // Disable for now
@@ -84,7 +73,6 @@ public class DerivedUnitBaseDetailElement extends
                // "Specimen Definition",
                // facade.getDerivedUnitDefinition(CdmStore.getDefaultLanguage()),
                // style);
-        text_barcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
         text_catalogNumber = formFactory.createTextWithLabelElement(formElement, "Catalog Number", entity.getCatalogNumber(), style);
 
 
@@ -95,7 +83,7 @@ public class DerivedUnitBaseDetailElement extends
                        // we ignore this
             MessagingUtils.info(e.getMessage());
                }
-        selection_storedUnder = formFactory.createSelectionElement(TaxonName.class, //getConversationHolder(),
+        selection_storedUnder = formFactory.createSelectionElement(TaxonName.class,
                 formElement, "Stored Under", entity.getStoredUnder(), EntitySelectionElement.ALL, style);
 
                try {
@@ -108,7 +96,7 @@ public class DerivedUnitBaseDetailElement extends
 //             section_duplicates = (SpecimenCollectionDetailSection) formFactory
 //                             .createEntityDetailSection(
 //                                             EntityDetailType.SPECIMEN_COLLECTION,
-//                                             getConversationHolder(), formElement, Section.TWISTIE);
+//                                             formElement, Section.TWISTIE);
 //             section_duplicates
 //                             .setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
 //             section_duplicates.setEntity(entity);
@@ -118,21 +106,22 @@ public class DerivedUnitBaseDetailElement extends
 
                super.createControls(formElement, entity, style);
 
-        section_source = formFactory.createSourceCollectionDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(SourceCollectionDetailSection.class, entity.getClass().getCanonicalName()));
+               section_source = formFactory.createSourceCollectionDetailSection(formElement, StoreUtil.getSectionStyle(SourceCollectionDetailSection.class, entity.getClass().getCanonicalName()));
                section_source.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
                section_source.setEntity(entity);
 
-
+               if(AbstractUtility.getActivePart() instanceof IDerivedUnitFacadePart || !showOnlyDerivedUnitData){
+            mediaDetailElement = formFactory.createDerivedUnitMediaSection(formElement, StoreUtil.getSectionStyle(DerivedUnitMediaSection.class, entity.getClass().getCanonicalName()));
+            mediaDetailElement.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+            mediaDetailElement.setEntity(getEntity());
+               }
        }
 
-    /** {@inheritDoc} */
     @Override
     public void handleEvent(Object eventSource) {
        super.handleEvent(eventSource);
         if (eventSource == text_derivedUnitDefinitions) {
             getEntity().addDerivedUnitDefinition(text_derivedUnitDefinitions.getText(), CdmStore.getDefaultLanguage());
-        } else if (eventSource == text_barcode) {
-            getEntity().setBarcode(text_barcode.getText());
         } else if (eventSource == text_catalogNumber) {
             getEntity().setCatalogNumber(text_catalogNumber.getText());
         } else if (eventSource == combo_preservationMethod) {
@@ -159,4 +148,10 @@ public class DerivedUnitBaseDetailElement extends
             }
         }
     }
-}
+
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+
+       }
+}
\ No newline at end of file
index 682fb69cba35a3fbda87ec6a9a29153436a57bd9..5888f92c3e68a788c08c430a65c69c601d67488f 100644 (file)
@@ -6,56 +6,36 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
 /**
- * <p>DerivedUnitBaseDetailSection class.</p>
  *
  * @author n.hoffmann
  * @created Jun 24, 2010
- * @version 1.0
  */
 public class DerivedUnitBaseDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
 
-       /**
-        * <p>Constructor for DerivedUnitBaseDetailSection.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-        * @param style a int.
-        */
        public DerivedUnitBaseDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-        */
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return "Specimen Details";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
        protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
            return formFactory.createDerivedUnitBaseDetailElement(parentElement);
        }
-}
+}
\ No newline at end of file
index b4983df63c7124e482eeb116fa832203e3e5c009..a79c7f75dff2ea1595e9bad4e642dfccc025f7d5 100644 (file)
@@ -6,11 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -19,13 +17,11 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 /**
  * @author n.hoffmann
  * @created Dec 15, 2010
- * @version 1.0
  */
 public class DerivedUnitBaseWizardPage extends AbstractCdmEntityWizardPage<DerivedUnitFacade> {
 
-       public DerivedUnitBaseWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, DerivedUnitFacade entity) {
-               super(formFactory, conversation, entity);
+       public DerivedUnitBaseWizardPage(CdmFormFactory formFactory, DerivedUnitFacade entity) {
+               super(formFactory, entity);
                setTitle("Derived Unit Details");
                setPageComplete(true);
        }
@@ -38,8 +34,9 @@ public class DerivedUnitBaseWizardPage extends AbstractCdmEntityWizardPage<Deriv
        @Override
        public AbstractCdmDetailElement<DerivedUnitFacade> createElement(ICdmFormElement rootElement) {
                DerivedUnitBaseDetailElement detailElement = formFactory.createDerivedUnitBaseDetailElement(rootElement);
+               detailElement.setShowOnlyDerivedUnitData(false);
                detailElement.setEntity(getEntity());
+
                return detailElement;
        }
-
-}
+}
\ No newline at end of file
index e97b2692c35ce6864033051b742b05265bcb8827..aab1a1d2a74f54a1b959ce18b5974499256bd990 100644 (file)
@@ -6,11 +6,11 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
+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,12 +32,12 @@ 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;
 
 /**
  * @author n.hoffmann
  * @created Dec 16, 2010
- * @version 1.0
  */
 public class DerivedUnitGeneralDetailElement extends
                AbstractCdmDetailElement<DerivedUnitFacade> {
@@ -54,13 +54,16 @@ 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;
+    private TextWithLabelElement text_barcode;
        private GatheringEventUnitElement element_elevation;
        private UriWithLabelElement uriPreferredStableUri;
        private CheckboxElement checkIsPublish;
+       private StatusCollectionDetailSection section_status;
 
 
        public DerivedUnitGeneralDetailElement(CdmFormFactory formFactory,
@@ -75,19 +78,16 @@ public class DerivedUnitGeneralDetailElement extends
                                formElement, "Title Cache", entity.getTitleCache(),
                                entity.isProtectedTitleCache(), style);
         //TODO for DerivateEditor do not use facade anymore to avoid this special case handling #4539
-               if(showOnlyDerivedUnitData){
-                   toggleableText_titleCache.setEnabled(false);
-               }
-               else{
+               if(!showOnlyDerivedUnitData){
                    combo_specorobstype = formFactory.createEnumComboElement(SpecimenOrObservationType.class, formElement, style);
                    combo_specorobstype.setSelection(entity.getType());
                    combo_specorobstype.setEnabled(showSpecimenType);
-                   selection_country = formFactory.createSelectionElement(NamedArea.class, //getConversationHolder(),
+                   selection_country = formFactory.createSelectionElement(NamedArea.class,
                            formElement, "Country",
                            entity.getCountry(), EntitySelectionElement.DELETABLE, style);
 
                if(PreferencesUtil.isCollectingAreaInGeneralSection()){
-                   section_collectingAreas = formFactory.createCollectingAreasDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(CollectingAreasDetailSection.class, entity.getClass().getCanonicalName()));
+                   section_collectingAreas = formFactory.createCollectingAreasDetailSection(formElement, StoreUtil.getSectionStyle(CollectingAreasDetailSection.class, entity.getClass().getCanonicalName()));
                    section_collectingAreas.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
                    section_collectingAreas.setEntity(entity);
                }
@@ -98,35 +98,54 @@ public class DerivedUnitGeneralDetailElement extends
                            entity.getExactLocation(), style);
                    element_elevation = formFactory.createGatheringEventUnitElement(
                            formElement, "Elevation : ", entity, MinMaxTextSection.UnitType.ELEVATION,  style);
-
+                   element_elevation.setExpanded(true);
                    element_date = formFactory.createTimePeriodElement(formElement, "Date",
                            entity.getGatheringPeriod(), style);
+                   element_date.setExpanded(true);
                    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);
                }
                selection_collection = formFactory
-                               .createSelectionElement(Collection.class,//getConversationHolder(),
+                               .createSelectionElement(Collection.class,
                                        formElement, "Collection",
                                                entity.getCollection(),
                                                EntitySelectionElement.ALL, style);
                text_accessionNumber = formFactory.createTextWithLabelElement(
                                formElement, "Accession Number", entity.getAccessionNumber(),
                                style);
+               text_barcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
+
                uriPreferredStableUri = formFactory.createUriWithLabelElement(formElement, "Pref. Stable URI", entity.getPreferredStableUri(), style);
-        checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
+               section_status = formFactory.createStatusCollectionDetailSection(formElement, StoreUtil.getSectionStyle(SourceCollectionDetailSection.class, entity.getClass().getCanonicalName()));
+               section_status.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+               section_status.setEntity(entity);
+
+               checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.baseUnit().isPublish(), style);
 
        }
 
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == toggleableText_titleCache) {
+
                        getEntity().setTitleCache(toggleableText_titleCache.getText(),
                                        toggleableText_titleCache.getState());
+                       if (toggleableText_titleCache.getState()) {
+                               return;
+                       }
                } else if (eventSource == selection_country) {
                        getEntity().setCountry(selection_country.getSelection());
                } else if (eventSource == languageText_locality) {
@@ -140,24 +159,34 @@ 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) {
                        getEntity().setCollection(selection_collection.getSelection());
                } else if (eventSource == text_accessionNumber) {
                        getEntity().setAccessionNumber(text_accessionNumber.getText());
+        } else if (eventSource == text_barcode) {
+            getEntity().setBarcode(text_barcode.getText());
                } else if (eventSource == combo_specorobstype) {
                        getEntity().setType(combo_specorobstype.getSelection());
                } else if (eventSource == uriPreferredStableUri) {
                    getEntity().setPreferredStableUri(uriPreferredStableUri.parseText());
                } else if (eventSource == checkIsPublish) {
             getEntity().innerDerivedUnit().setPublish(checkIsPublish.getSelection());
+        }else if (eventSource == section_status) {
+               firePropertyChangeEvent(this);
         }
 
-               if (eventSource != toggleableText_titleCache) {
-                       toggleableText_titleCache.setText(getEntity().getTitleCache());
-               }
+               toggleableText_titleCache.setText(getEntity().getTitleCache());
+
        }
 
     public void setShowOnlyDerivedUnitData(boolean showOnlyDerivedUnitData) {
@@ -168,4 +197,10 @@ public class DerivedUnitGeneralDetailElement extends
         this.showSpecimenType = showSpecimenType;
     }
 
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+
+       }
+
 }
index d8b69b538146c3036dc8b426c9ffb1efd987deda..93092d56b0dc330ec4527f88b3f8aa8e75eb3cd8 100644 (file)
@@ -11,8 +11,7 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -28,31 +27,17 @@ public class DerivedUnitGeneralDetailSection extends AbstractCdmDetailSection<De
     //TODO for DerivateEditor do not use facade anymore to avoid this special case handling #4539
        private DerivedUnitGeneralDetailElement derivedUnitGeneralDetailElement;
 
-    /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param selectionProvider
-        * @param style
-        */
        public DerivedUnitGeneralDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-        */
        @Override
        public String getHeading() {
                return "General";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
        protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
            derivedUnitGeneralDetailElement = formFactory.createDerivedUnitGeneralDetailElement(parentElement);
@@ -62,5 +47,4 @@ public class DerivedUnitGeneralDetailSection extends AbstractCdmDetailSection<De
        public void setShowOnlyDerivedUnitData(boolean showOnlyDerivedUnitData){
            derivedUnitGeneralDetailElement.setShowOnlyDerivedUnitData(showOnlyDerivedUnitData);
        }
-
-}
+}
\ No newline at end of file
index 79caa6ae8bfde876f4a0a95a122047af7d3ff924..b1f19f12493463ff3c1246723823424d5e7a4db1 100644 (file)
@@ -6,11 +6,12 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.OccurrenceStatus;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -19,28 +20,36 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 /**
  * @author n.hoffmann
  * @created Dec 17, 2010
- * @version 1.0
  */
 public class DerivedUnitGeneralWizardPage extends AbstractCdmEntityWizardPage<DerivedUnitFacade> {
 
-       public DerivedUnitGeneralWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, DerivedUnitFacade entity) {
-               super(formFactory, conversation, entity);
+       public DerivedUnitGeneralWizardPage(CdmFormFactory formFactory, DerivedUnitFacade entity) {
+               super(formFactory, entity);
                setTitle("General Specimen Data");
        }
 
        @Override
        protected void checkComplete() {
-               setPageComplete(true);
+               SpecimenOrObservationBase<?> baseUnit = this.entity.baseUnit();
+               boolean complete = true;
+               if (baseUnit instanceof DerivedUnit) {
+                       for (OccurrenceStatus status :((DerivedUnit)baseUnit).getStatus()) {
+                               if (status.getType() == null) {
+                                       complete = false;
+                                       break;
+                               }
+                       }
+               }
+               setPageComplete(complete);
        }
 
        @Override
        public AbstractCdmDetailElement<DerivedUnitFacade> createElement(ICdmFormElement rootElement) {
                DerivedUnitGeneralDetailElement detailElement = formFactory.createDerivedUnitGeneralDetailElement(rootElement);
                detailElement.setShowSpecimenType(false);
+               detailElement.setShowOnlyDerivedUnitData(false);
                detailElement.setEntity(getEntity());
                checkComplete();
                return detailElement;
        }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitMediaSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DerivedUnitMediaSection.java
new file mode 100644 (file)
index 0000000..ef99ced
--- /dev/null
@@ -0,0 +1,76 @@
+/**
+* Copyright (C) 2020 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.occurrence;
+
+import java.util.Collection;
+import java.util.Comparator;
+
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.MediaSelectionDialog;
+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 k.luther
+ * @since Aug 4, 2020
+ */
+public class DerivedUnitMediaSection extends AbstractEntityCollectionSection<DerivedUnitFacade, Media> {
+
+    public DerivedUnitMediaSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, int style) {
+        super(cdmFormFactory, parentElement, "Media", style);
+    }
+
+    @Override
+    public Media createNewElement() {
+        return Media.NewInstance();
+    }
+
+    @Override
+    public Collection<Media> getCollection(DerivedUnitFacade entity) {
+        return entity.getDerivedUnitMedia();
+    }
+
+    @Override
+    public Comparator<Media> getComparator() {
+        return new DefaultCdmBaseComparator<>();
+    }
+
+    @Override
+    public String getEmptyString() {
+        return "No media yet.";
+    }
+
+    @Override
+    protected String getTooltipString() {
+        return "Create new media";
+    }
+
+    @Override
+    public void addElement(Media element) {
+        getEntity().addDerivedUnitMedia(element);
+    }
+
+    @Override
+    public void removeElement(Media element) {
+        getEntity().removeDerivedUnitMedia(element);
+    }
+
+    @Override
+    public Media addExisting() {
+        return MediaSelectionDialog.select(getShell(), null);
+    }
+
+    @Override
+    public boolean allowAddExisting() {
+        return true;
+    }
+}
\ No newline at end of file
index 048d8502d2b08fc13eeb0451a1d5daa3d2e27602..f76a2fe96c988d69aca16cd88b690bfcd9715185 100644 (file)
@@ -6,10 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -19,43 +18,33 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 /**
  * @author n.hoffmann
  * @created May 11, 2011
- * @version 1.0
  */
-public class DeterminationDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+public class DeterminationDetailElement extends AbstractCdmDetailElement<SpecimenOrObservationBase> {
 
        private CurrentDeterminationDetailSection section_currentDetermination;
 
        private DeterminationHistoryDetailSection section_determinationHistory;
 
-       /**
-        * @param formFactory
-        * @param formElement
-        */
        public DeterminationDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
                super(formFactory, formElement);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#createControls(eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement, java.lang.Object, int)
-        */
        @Override
        protected void createControls(ICdmFormElement formElement,
-                       DerivedUnitFacade entity, int style) {
+               SpecimenOrObservationBase entity, int style) {
 
-        section_currentDetermination = formFactory.createCurrentDeterminationDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(CurrentDeterminationDetailSection.class, entity.getClass().getCanonicalName(), true));
+        section_currentDetermination = formFactory.createCurrentDeterminationDetailSection(
+                formElement, StoreUtil.getSectionStyle(CurrentDeterminationDetailSection.class, entity.getClass().getCanonicalName(), true));
         section_currentDetermination.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         section_currentDetermination.setEntity(entity);
 
-        section_determinationHistory = formFactory.createDeterminationHistoryDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(DeterminationHistoryDetailSection.class, entity.getClass().getCanonicalName()));
+        section_determinationHistory = formFactory.createDeterminationHistoryDetailSection(
+                formElement, StoreUtil.getSectionStyle(DeterminationHistoryDetailSection.class, entity.getClass().getCanonicalName()));
         section_determinationHistory.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         section_determinationHistory.setEntity(entity);
-
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)
-        */
        @Override
        public void handleEvent(Object eventSource) {
                if(eventSource == section_currentDetermination){
@@ -63,4 +52,9 @@ public class DeterminationDetailElement extends AbstractCdmDetailElement<Derived
                }
        }
 
-}
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
+}
\ No newline at end of file
index 35e59dab898008f315f4a1eca33f79fe8e180dd7..ea5b9c0254ed382ee96084507e263024aac2774a 100644 (file)
@@ -6,13 +6,11 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -21,41 +19,28 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author n.hoffmann
  * @created May 11, 2011
- * @version 1.0
  */
-public class DeterminationDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection {
+public class DeterminationDetailSection
+            extends AbstractCdmDetailSection<SpecimenOrObservationBase>
+            implements IDerivedUnitFacadeDetailSection {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param selectionProvider
-        * @param style
-        */
        public DeterminationDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#getHeading()
-        */
        @Override
        public String getHeading() {
                String sectionTitle = "Determinations";
                if(getEntity()!=null && getEntity().getDeterminations().size()>0){
-                       return sectionTitle+" +"; 
+                       return sectionTitle+" +";
                }
                return sectionTitle;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
-       protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+       protected AbstractCdmDetailElement<SpecimenOrObservationBase> createCdmDetailElement(AbstractCdmDetailSection<SpecimenOrObservationBase> parentElement, int style) {
            return formFactory.createDeterminationDetailElement(parentElement);
        }
-
-}
+}
\ No newline at end of file
index c7ea73c8987605ee51c7bea9eee09ed890ecbf49..2f85aefa262dd98492ed4532f0f5fa49d711beb6 100644 (file)
@@ -6,16 +6,15 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import org.eclipse.swt.events.SelectionListener;
 
-import eu.etaxonomy.cdm.model.term.DefinedTerm;
-import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
+import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -29,8 +28,9 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  * @author n.hoffmann
  * @created Oct 13, 2010
  */
-public class DeterminationEventDetailElement extends
-               AbstractEventDetailElement<DeterminationEvent> implements ISelectableElement{
+public class DeterminationEventDetailElement
+            extends AbstractEventDetailElement<DeterminationEvent>
+            implements ISelectableElement{
 
     private SelectionArbitrator selectionArbitrator;
 
@@ -50,29 +50,28 @@ public class DeterminationEventDetailElement extends
                }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setEntity(DeterminationEvent entity) {
                this.entity = entity;
-               combo_determinationModifier.setSelection(entity.getModifier());
-               selection_taxonBase.setEntity(entity.getTaxon());
-               selectionTaxonNameBase.setEntity(entity.getTaxonName());
+               if (combo_determinationModifier != null){
+                       combo_determinationModifier.setSelection(entity.getModifier());
+                       selection_taxonBase.setEntity(entity.getTaxon());
+                       selectionTaxonNameBase.setEntity(entity.getTaxonName());
+               }
                super.setEntity(entity);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
            selectionTaxonNameBase = formFactory
-                   .createSelectionElement(TaxonName.class,//getConversationHolder(),
+                   .createSelectionElement(TaxonName.class,
                             element, "Taxon Name", null,
                            EntitySelectionElement.ALL, style);
                selection_taxonBase = formFactory
-                               .createSelectionElement(TaxonBase.class,//getConversationHolder(),
+                               .createSelectionElement(TaxonBase.class,
                                                 element, "Taxon", null,
                                                EntitySelectionElement.ALL, style);
 
-
                // TODO set of references
 
                super.createControls(element, style);
@@ -83,9 +82,13 @@ public class DeterminationEventDetailElement extends
 
                combo_determinationModifier = formFactory.createDefinedTermComboElement(TermType.DeterminationModifier,
                                element, "Modifier", null, style);
+               if (entity != null){
+                       combo_determinationModifier.setSelection(entity.getModifier());
+                       selection_taxonBase.setEntity(entity.getTaxon());
+                       selectionTaxonNameBase.setEntity(entity.getTaxonName());
+               }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == combo_determinationModifier) {
@@ -97,7 +100,7 @@ public class DeterminationEventDetailElement extends
             getEntity().setTaxonName(name);
                    //empty taxon field if name was deleted
             //or does not belong the taxon
-                   TaxonBase taxonBase = selection_taxonBase.getEntity();
+                   TaxonBase<?> taxonBase = selection_taxonBase.getEntity();
                        if(name==null ||
                                (taxonBase!=null && taxonBase.getName()!=null
                                        && !taxonBase.getName().equals(name))){
@@ -105,7 +108,7 @@ public class DeterminationEventDetailElement extends
                                getEntity().setTaxon(null);
                        }
                } else if (eventSource == selection_taxonBase) {
-                       TaxonBase taxon = selection_taxonBase.getSelection();
+                       TaxonBase<?> taxon = selection_taxonBase.getSelection();
             getEntity().setTaxon(taxon);
             if(taxon!=null){
                 getEntity().setTaxonName(taxon.getName());
@@ -128,5 +131,4 @@ public class DeterminationEventDetailElement extends
     public SelectionArbitrator getSelectionArbitrator() {
         return selectionArbitrator;
     }
-
-}
+}
\ No newline at end of file
index f6825e83b464555f5bf342ccea0089d2dd09d88f..ddcb8d0a07543bc81f18d47910539361058d2baa 100644 (file)
@@ -6,15 +6,13 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
@@ -26,20 +24,14 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 public class DeterminationHistoryDetailSection extends
                AbstractDeterminationEventDetailSection {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param style
-        */
        public DeterminationHistoryDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        int style) {
-               super(formFactory, conversation, parentElement, "Determination History", style);
+               super(formFactory, parentElement, "Determination History", style);
        }
 
        @Override
-       public Collection<DeterminationEvent> getCollection(DerivedUnitFacade entity) {
+       public Collection<DeterminationEvent> getCollection(SpecimenOrObservationBase entity) {
                return entity != null ? entity.getOtherDeterminations() : null;
        }
 
@@ -53,26 +45,18 @@ public class DeterminationHistoryDetailSection extends
                internalUpdateSection(false);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Add a determination event to the history";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public DeterminationEvent addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitDetailSection.java
deleted file mode 100644 (file)
index 982cb66..0000000
+++ /dev/null
@@ -1,57 +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.section.occurrence;
-
-import org.eclipse.jface.viewers.ISelectionProvider;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
-
-/**
- * <p>FieldUnitDetailSection class.</p>
- *
- * @author n.hoffmann
- * @created Jun 17, 2010
- */
-public class FieldUnitDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
-
-       /**
-        * <p>Constructor for FieldUnitDetailSection.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-        * @param style a int.
-        */
-       public FieldUnitDetailSection(CdmFormFactory formFactory, ConversationHolder conversation,
-                       ICdmFormElement parentElement,
-                       ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public String getHeading() {
-               return "Field Unit Details";
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
-       @Override
-       protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
-           return formFactory.createFieldUnitDetailElement(parentElement);
-       }
-}
@@ -6,25 +6,20 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 
 /**
- * <p>FieldUnitDetailElement class.</p>
- *
  * @author n.hoffmann
  * @created Jun 17, 2010
- * @version 1.0
  */
-public class FieldUnitDetailElement extends AbstractSpecimenOrObservationDetailElement {
+public class FieldUnitFacadeDetailElement extends AbstractSpecimenOrObservationDetailElement {
 
        private TextWithLabelElement text_ecology;
 
@@ -44,18 +39,11 @@ public class FieldUnitDetailElement extends AbstractSpecimenOrObservationDetailE
 //
 //     private TermComboElement<DefinedTerm> combo_sex;
 
-       /**
-        * <p>Constructor for FieldUnitDetailElement.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        */
-       public FieldUnitDetailElement(CdmFormFactory formFactory,
+       public FieldUnitFacadeDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
                super(formFactory, formElement);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected void createControls(ICdmFormElement formElement,
                        DerivedUnitFacade entity, int style) {
@@ -72,7 +60,6 @@ public class FieldUnitDetailElement extends AbstractSpecimenOrObservationDetailE
                super.createControls(formElement, entity, style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
                super.handleEvent(eventSource);
@@ -94,6 +81,10 @@ public class FieldUnitDetailElement extends AbstractSpecimenOrObservationDetailE
                else if(eventSource == number_individualCount){
                        getEntity().setIndividualCount(number_individualCount.getText());
                }
+       }
 
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
        }
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitFacadeDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitFacadeDetailSection.java
new file mode 100644 (file)
index 0000000..99b6d42
--- /dev/null
@@ -0,0 +1,40 @@
+/**
+* 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.section.occurrence;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+
+/**
+ * @author n.hoffmann
+ * @created Jun 17, 2010
+ */
+public class FieldUnitFacadeDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
+
+       public FieldUnitFacadeDetailSection(CdmFormFactory formFactory,
+                       ICdmFormElement parentElement,
+                       ISelectionProvider selectionProvider, int style) {
+               super(formFactory, parentElement, selectionProvider, style);
+       }
+
+       @Override
+       public String getHeading() {
+               return "Field Unit Details";
+       }
+
+       @Override
+       protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+           return formFactory.createFieldUnitFacadeDetailElement(parentElement);
+       }
+}
@@ -8,12 +8,17 @@
  */
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.model.agent.AgentBase;
+import java.util.HashSet;
+import java.util.Set;
+
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
+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.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,14 +34,14 @@ 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;
 
 /**
  * @author pplitzner
  * @date 05.11.2013
- *
  */
-public class FieldUnitGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+public class FieldUnitFacadeGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
 
     private ToggleableTextElement toggleableText_titleCache;
     private EnumComboElement<SpecimenOrObservationType> combo_specorobstype;
@@ -46,37 +51,30 @@ public class FieldUnitGeneralDetailElement extends AbstractCdmDetailElement<Deri
     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;
 
-    /**
-     * @param formFactory
-     * @param formElement
-     */
-    public FieldUnitGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+    public FieldUnitFacadeGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
         super(formFactory, formElement);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
-     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
-     */
     @Override
     protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
         toggleableText_titleCache = formFactory.createToggleableTextField(formElement, "Title Cache",
                 entity.getTitleCache(), entity.isProtectedTitleCache(), style);
 
-        combo_specorobstype = formFactory.createEnumComboElement(SpecimenOrObservationType.class, formElement, style);
-        combo_specorobstype.setSelection(entity.getType());
-        selection_country = formFactory.createSelectionElement(NamedArea.class, //getConversationHolder(),
+        if (!entity.getType().equals(SpecimenOrObservationType.FieldUnit)){
+           combo_specorobstype = formFactory.createEnumComboElement(SpecimenOrObservationType.class, formElement, style);
+           combo_specorobstype.setSelection(entity.getType());
+        }
+
+        selection_country = formFactory.createSelectionElement(NamedArea.class,
                 formElement, "Country", entity.getCountry(), EntitySelectionElement.DELETABLE, style);
         if(PreferencesUtil.isCollectingAreaInGeneralSection()){
-            section_collectingAreas = formFactory.createCollectingAreasDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(CollectingAreasDetailSection.class, entity.getClass().getCanonicalName()));
+            section_collectingAreas = formFactory.createCollectingAreasDetailSection(formElement, StoreUtil.getSectionStyle(CollectingAreasDetailSection.class, entity.getClass().getCanonicalName()));
             section_collectingAreas.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
             section_collectingAreas.setEntity(entity);
         }
@@ -88,24 +86,26 @@ public class FieldUnitGeneralDetailElement extends AbstractCdmDetailElement<Deri
                                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);
+           }
+        selection_primary_collector.setIndent(8);
         text_collectingNumber = formFactory.createTextWithLabelElement(formElement, "Collecting number",
                 entity.getFieldNumber(), style);
-        checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
+        checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.innerFieldUnit().isPublish(), style);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
-     * .lang.Object)
-     */
     @Override
     public void handleEvent(Object eventSource) {
         if (eventSource == toggleableText_titleCache) {
             getEntity().setTitleCache(toggleableText_titleCache.getText(), toggleableText_titleCache.getState());
+
         } else if (eventSource == selection_country) {
             getEntity().setCountry(selection_country.getSelection());
         } else if (eventSource == languageText_locality) {
@@ -119,6 +119,28 @@ public class FieldUnitGeneralDetailElement extends AbstractCdmDetailElement<Deri
             getEntity().setGatheringPeriod(element_date.getTimePeriod());
         } else if (eventSource == selection_collector) {
             getEntity().setCollector(selection_collector.getSelection());
+
+            if (getEntity().getCollector() instanceof Team){
+               if (selection_primary_collector.getCollectorTeam() != null && selection_primary_collector.getEntity() != null ){
+                       boolean collInNewTeam = false;
+                       for (Person person:((Team)getEntity().getCollector()).getTeamMembers()){
+                               collInNewTeam = person.getId() == selection_primary_collector.getEntity().getId();
+                               if (collInNewTeam){
+                                       break;
+                               }
+                       }
+                       if (!collInNewTeam){
+                               selection_primary_collector.setEntity(null);
+                       }
+               }
+               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) {
@@ -127,8 +149,28 @@ public class FieldUnitGeneralDetailElement extends AbstractCdmDetailElement<Deri
             getEntity().innerFieldUnit().setPublish(checkIsPublish.getSelection());
         }
 
-        if (eventSource != toggleableText_titleCache) {
-            toggleableText_titleCache.setText(getEntity().getTitleCache());
+        toggleableText_titleCache.setText(getEntity().getTitleCache());
+
+    }
+    @Override
+    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);
+
     }
-}
+
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+
+       }
+
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitFacadeGeneralDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitFacadeGeneralDetailSection.java
new file mode 100644 (file)
index 0000000..4833bfb
--- /dev/null
@@ -0,0 +1,40 @@
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.occurrence;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+
+/**
+ * @author pplitzner
+ * @date 05.11.2013
+ */
+public class FieldUnitFacadeGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
+
+    public FieldUnitFacadeGeneralDetailSection(CdmFormFactory formFactory,
+            ICdmFormElement parentElement,
+            ISelectionProvider selectionProvider, int style) {
+        super(formFactory, parentElement, selectionProvider, style);
+    }
+
+    @Override
+    public String getHeading() {
+        return "General";
+    }
+
+    @Override
+    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+        return formFactory.createFieldUnitFacadeGeneralDetailElement(parentElement);
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitGeneralDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/FieldUnitGeneralDetailSection.java
deleted file mode 100644 (file)
index 70fe800..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
-* Copyright (C) 2013 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.ui.section.occurrence;
-
-import org.eclipse.jface.viewers.ISelectionProvider;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
-
-/**
- * @author pplitzner
- * @date 05.11.2013
- *
- */
-public class FieldUnitGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
-
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param selectionProvider
-     * @param style
-     */
-    public FieldUnitGeneralDetailSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement,
-            ISelectionProvider selectionProvider, int style) {
-        super(formFactory, conversation, parentElement, selectionProvider, style);
-    }
-
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-     */
-    @Override
-    public String getHeading() {
-        return "General";
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-     */
-    @Override
-    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
-        return formFactory.createFieldUnitGeneralDetailElement(parentElement);
-    }
-
-}
index 38c5033bdf79ef719fe0e637ecb792e1376b0b41..3161dfcce4ecf64fd7b6786cd3fd66e8063d6b3c 100644 (file)
@@ -8,46 +8,29 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
-/**
- *
- */
 public class FieldUnitGeneralWizardPage extends AbstractCdmEntityWizardPage<DerivedUnitFacade> {
 
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param entity
-     */
-    public FieldUnitGeneralWizardPage(CdmFormFactory formFactory,
-            ConversationHolder conversation, DerivedUnitFacade entity) {
-        super(formFactory, conversation, entity);
+    public FieldUnitGeneralWizardPage(CdmFormFactory formFactory, DerivedUnitFacade entity) {
+        super(formFactory,  entity);
         setTitle("General FieldUnit Data");
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.forms.AbstractCdmEntityWizardPage#checkComplete()
-     */
     @Override
     protected void checkComplete() {
         setPageComplete(true);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.forms.AbstractCdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.forms.ICdmFormElement)
-     */
     @Override
     public AbstractCdmDetailElement<DerivedUnitFacade> createElement(ICdmFormElement rootElement) {
-        FieldUnitGeneralDetailElement detailElement = formFactory.createFieldUnitGeneralDetailElement(rootElement);
+        FieldUnitFacadeGeneralDetailElement detailElement = formFactory.createFieldUnitFacadeGeneralDetailElement(rootElement);
         detailElement.setEntity(getEntity());
         checkComplete();
         return detailElement;
     }
-
-}
+}
\ No newline at end of file
index 1dacaa7b0b43ddaf8659770a23397824c382b35a..bc7f8f15e5ed40ba48946e70ca7bd41381ba9575 100644 (file)
@@ -9,8 +9,7 @@
 
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -23,9 +22,8 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  */
 public class FieldUnitWizardPage extends AbstractCdmEntityWizardPage<DerivedUnitFacade> {
 
-       public FieldUnitWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, DerivedUnitFacade entity) {
-               super(formFactory, conversation, entity);
+       public FieldUnitWizardPage(CdmFormFactory formFactory, DerivedUnitFacade entity) {
+               super(formFactory, entity);
                setTitle("Field Unit Details");
                setPageComplete(true);
        }
@@ -37,7 +35,7 @@ public class FieldUnitWizardPage extends AbstractCdmEntityWizardPage<DerivedUnit
 
        @Override
        public AbstractCdmDetailElement<DerivedUnitFacade> createElement(ICdmFormElement rootElement) {
-               FieldUnitDetailElement detailElement = formFactory.createFieldUnitDetailElement(rootElement);
+               FieldUnitFacadeDetailElement detailElement = formFactory.createFieldUnitFacadeDetailElement(rootElement);
                detailElement.setEntity(getEntity());
                return detailElement;
        }
index 747577168b671ca2b35c52ba4174951e117fdae2..5506e545cefd46ebe3a362c9ae32b020502e6cd7 100644 (file)
@@ -9,7 +9,7 @@
 
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -78,7 +78,7 @@ public class GatheringEventDetailElement extends
 
 
         if(!PreferencesUtil.isCollectingAreaInGeneralSection()){
-            section_collectingAreas = formFactory.createCollectingAreasDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(CollectingAreasDetailSection.class, entity.getClass().getCanonicalName()));
+            section_collectingAreas = formFactory.createCollectingAreasDetailSection(formElement, StoreUtil.getSectionStyle(CollectingAreasDetailSection.class, entity.getClass().getCanonicalName()));
             section_collectingAreas.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
             section_collectingAreas.setEntity(entity);
         }
@@ -95,4 +95,10 @@ public class GatheringEventDetailElement extends
                                        text_gatheringEventDescription.getText());
                }
        }
+
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+
+       }
 }
index 33ea2e354cfed40c3d0385f7b858473967b42242..14aabe0d9378488c11f3f4b826116d6437d95a5b 100644 (file)
@@ -11,8 +11,7 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -23,7 +22,6 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  *
  * @author n.hoffmann
  * @created Jun 24, 2010
- * @version 1.0
  */
 public class GatheringEventDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
 
@@ -31,30 +29,21 @@ public class GatheringEventDetailSection extends AbstractCdmDetailSection<Derive
         * <p>Constructor for GatheringEventDetailSection.</p>
         *
         * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
         * @param style a int.
         */
        public GatheringEventDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-        */
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return "Gathering Event Details";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
        protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
            return formFactory.createGatheringEventDetailElement(parentElement);
index aa4bee581dd18bf39e9020d4589e77c2c57a56d9..d74e7b14ca517c3e147b72114671d0a459ab44fc 100644 (file)
@@ -6,11 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -19,13 +17,11 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 /**
  * @author n.hoffmann
  * @created Dec 15, 2010
- * @version 1.0
  */
 public class GatheringEventWizardPage extends AbstractCdmEntityWizardPage<DerivedUnitFacade> {
 
-       public GatheringEventWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, DerivedUnitFacade entity) {
-               super(formFactory, conversation, entity);
+       public GatheringEventWizardPage(CdmFormFactory formFactory, DerivedUnitFacade entity) {
+               super(formFactory, entity);
                setTitle("Gathering Event Details");
                setPageComplete(true);
        }
index d9b637105ed8381c1e87125882c003f0dea52c48..55b2790592571a560dd86875fddd5e9a1bc0c62d 100644 (file)
@@ -12,7 +12,6 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.NamedAreaSelectionDialog;
@@ -32,23 +31,11 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
  */
 public class GeoScopeDetailSection extends AbstractEntityCollectionSection<Classification, NamedArea> {
 
-       /**
-        * <p>Constructor for CollectingAreasDetailSection.</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 style a int.
-        */
        public GeoScopeDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(formFactory, conversation, parentElement, "Geo Scopes", style);
+                       ICdmFormElement parentElement, int style) {
+               super(formFactory, parentElement, "Geo Scopes", style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
-        */
-       /** {@inheritDoc} */
        @Override
        public Collection<NamedArea> getCollection(Classification entity) {
                return entity.getGeoScopes();
@@ -59,69 +46,42 @@ public class GeoScopeDetailSection extends AbstractEntityCollectionSection<Class
         return new DefaultCdmBaseComparator<>();
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#createNewElement()
-        */
-       /** {@inheritDoc} */
        @Override
        public NamedArea createNewElement() {
-               NamedArea selection = NamedAreaSelectionDialog.select(getLayoutComposite().getShell(), //getConversationHolder(),
+               NamedArea selection = NamedAreaSelectionDialog.select(getLayoutComposite().getShell(),
                        null, Classification.class.getCanonicalName());
 
                return selection;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
        @Override
        public void addElement(NamedArea element) {
                getEntity().addGeoScope(element);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
        @Override
        public void removeElement(NamedArea element) {
                getEntity().removeGeoScope(element);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
-        */
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No geo scopes yet.";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
-        */
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Add a geo scope";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public NamedArea addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         // TODO Auto-generated method stub
         return false;
     }
-
-}
+}
\ No newline at end of file
index 1c832e7dcbb62ed3748e7529fab7df5b7ff21034..04bc81cd2857c96eeced1a73b8bc362a10b93ec2 100644 (file)
@@ -6,13 +6,11 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.NamedAreaSelectionDialog;
@@ -22,19 +20,16 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
- *
  * @author pplitzner
  * @date Sep 21, 2015
- *
  */
 public class GeoScopePolyKeyDetailSection extends AbstractEntityCollectionSection<PolytomousKey, NamedArea> {
 
     public GeoScopePolyKeyDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(formFactory, conversation, parentElement, "Geo Scopes", style);
+                       ICdmFormElement parentElement, int style) {
+               super(formFactory,  parentElement, "Geo Scopes", style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public Collection<NamedArea> getCollection(PolytomousKey entity) {
                return entity.getGeographicalScope();
@@ -45,53 +40,41 @@ public class GeoScopePolyKeyDetailSection extends AbstractEntityCollectionSectio
         return new DefaultCdmBaseComparator<>();
        }
 
-       /** {@inheritDoc} */
        @Override
        public NamedArea createNewElement() {
-               NamedArea selection = NamedAreaSelectionDialog.select(getLayoutComposite().getShell(), //getConversationHolder(),
+               NamedArea selection = NamedAreaSelectionDialog.select(getLayoutComposite().getShell(),
                        null, PolytomousKey.class.getCanonicalName());
 
                return selection;
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addElement(NamedArea element) {
                getEntity().addGeographicalScope(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElement(NamedArea element) {
                getEntity().removeGeographicalScope(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No geo scopes yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Add a geo scope";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public NamedArea addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/OccurrenceStatusElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/OccurrenceStatusElement.java
new file mode 100755 (executable)
index 0000000..b06703f
--- /dev/null
@@ -0,0 +1,108 @@
+/**
+ * Copyright (C) 2022 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.occurrence;
+
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Control;
+
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.occurrence.OccurrenceStatus;
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
+import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractSourcedEntityElement;
+
+public class OccurrenceStatusElement extends AbstractSourcedEntityElement<OccurrenceStatus>{
+
+       private TermComboElement<DefinedTerm> combo_statusType;
+       private Color colorRedSWT = new Color(null, 255, 0, 0);
+
+       public OccurrenceStatusElement(CdmFormFactory formFactory, AbstractFormSection<?> section, OccurrenceStatus entity, SelectionListener removeListener, int style) {
+               super(formFactory, section, entity, removeListener, "Status", style);
+       }
+
+       @Override
+       public void setEntity(OccurrenceStatus entity) {
+               super.setEntity(entity);
+               if (combo_statusType != null){
+                       DefinedTerm statusType = HibernateProxyHelper.deproxy(entity.getType());
+                       combo_statusType.setSelection(statusType);
+                       if (statusType == null) {
+                               Color colorRedSWT = new Color(null, 255, 0, 0);
+                               combo_statusType.setBackground(colorRedSWT);
+                       }else {
+                               combo_statusType.setBackground(NOT_SELECTED);
+                       }
+               }
+               this.setSourceLabel("Source");
+       }
+
+       @Override
+       public void createControls(ICdmFormElement element, int style) {
+               combo_statusType = formFactory.createDefinedTermComboElement(TermType.OccurrenceStatusType, element, "Type", null, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
+               super.createControls(element, style);
+               if (entity == null ^ entity.getType() == null) {
+                       combo_statusType.setBackground(colorRedSWT);
+               }else {
+                       combo_statusType.setBackground(NOT_SELECTED);
+               }
+               this.setSourceLabel("Source");
+       }
+
+       @Override
+       public void handleEvent(Object eventSource) {
+               if(eventSource == combo_statusType){
+                       getEntity().setType(combo_statusType.getSelection());
+                       firePropertyChangeEvent(new CdmPropertyChangeEvent(this.getParentElement(), eventSource));
+                       if (getEntity().getType() == null) {
+                               combo_statusType.setBackground(colorRedSWT);
+                       }else {
+                               combo_statusType.setBackground(NOT_SELECTED);
+                       }
+               }
+               if (getParentElement() instanceof AbstractCdmDetailSection) {
+            ((AbstractCdmDetailSection<?>) getParentElement()).updateTitle();
+        }
+       }
+
+       @Override
+       public SelectionArbitrator getSelectionArbitrator() {
+               // actually this view is used in the specimen wizard, so there the selection arbitrator is not needed.
+               return null;
+       }
+
+       @Override
+       public void setBackground(Color color) {
+
+               for(ICdmFormElement element : getElements()){
+                       if (element != null) {
+                               if (element != combo_statusType ^ (element == combo_statusType && combo_statusType.getSelection() != null)){
+                                       element.setBackground(color);
+                               }else {
+                                       element.setBackground(colorRedSWT);
+                               }
+                       }
+               }
+               for(Control element : getControls()){
+                       if (!element.isDisposed()){
+                           element.setBackground(color);
+                       }
+               }
+       }
+}
\ No newline at end of file
index a023a0934b5e8045094d2c9aedaad6278691a9f3..2a33ea0432ecd777a0c53eb64272bb6a3e637c22 100644 (file)
@@ -10,8 +10,7 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -20,37 +19,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author pplitzner
  * @date 17.06.2014
- *
  */
 public class OriginalLabelDataSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection {
 
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param selectionProvider
-     * @param style
-     */
     public OriginalLabelDataSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement,
+            ICdmFormElement parentElement,
             ISelectionProvider selectionProvider, int style) {
-        super(formFactory, conversation, parentElement, selectionProvider, style);
+        super(formFactory, parentElement, selectionProvider, style);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#getHeading()
-     */
     @Override
     public String getHeading() {
         return "Original Label Data";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-     */
     @Override
     protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
         return formFactory.createOriginalLabelDataElement(parentElement);
     }
-
-}
+}
\ No newline at end of file
index 94ec129f806e469f93ebea509bdd928ff38bb6e6..319c3c2bb223611ecc6ecc802a56b5581aa659de 100644 (file)
@@ -6,14 +6,12 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
 import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -22,32 +20,18 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
- * <p>SourceCollectionDetailSection class.</p>
  *
  * @author n.hoffmann
  * @created Oct 15, 2010
- * @version 1.0
  */
 public class SourceCollectionDetailSection extends
                AbstractEntityCollectionSection<DerivedUnitFacade, IdentifiableSource> {
 
-       /**
-        * <p>Constructor for SourceCollectionDetailSection.</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 style a int.
-        */
        public SourceCollectionDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(formFactory, conversation, parentElement, "Sources", style);
+                       ICdmFormElement parentElement, int style) {
+               super(formFactory, parentElement, "Sources", style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
-        */
-       /** {@inheritDoc} */
        @Override
        public Collection<IdentifiableSource> getCollection(DerivedUnitFacade entity) {
                return entity.getSources();
@@ -58,65 +42,38 @@ public class SourceCollectionDetailSection extends
         return new DefaultCdmBaseComparator<>();
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#createNewElement()
-        */
-       /** {@inheritDoc} */
        @Override
        public IdentifiableSource createNewElement() {
                return IdentifiableSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
        @Override
        public void addElement(IdentifiableSource element) {
                getEntity().addSource(element);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
        @Override
        public void removeElement(IdentifiableSource element) {
                getEntity().removeSource(element);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
-        */
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No sources yet.";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
-        */
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Add source";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public IdentifiableSource addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-}
+}
\ No newline at end of file
index 4eae4d1e4ddf6735b1bf01511e4ecfc6acc64c7b..b861b12c4530688696dc9a2e2ea46e00184934bc 100644 (file)
@@ -67,7 +67,9 @@ public class SpecimenCollectionDetailElement extends
        @Override
        public void setEntity(DerivedUnit entity) {
                this.entity = entity;
-               selection_derivedUnit.setEntity(entity);
+               if (selection_derivedUnit != null){
+                       selection_derivedUnit.setEntity(entity);
+               }
        }
 
        /*
@@ -81,9 +83,12 @@ public class SpecimenCollectionDetailElement extends
        @Override
        public void createControls(ICdmFormElement element, int style) {
                selection_derivedUnit = formFactory
-                               .createSelectionElement(DerivedUnit.class,//getConversationHolder(),
+                               .createSelectionElement(DerivedUnit.class,
                                        element, "Derived Unit", null,
                                                EntitySelectionElement.EDITABLE | EntitySelectionElement.SELECTABLE, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
        /*
index 86eb66731e9ef11344c46f31e2df84cd9f98c9bc..e6f46424056076382b67898b6ac2c86740e18905 100644 (file)
@@ -6,14 +6,12 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -22,32 +20,17 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
- * <p>SpecimenCollectionDetailSection class.</p>
- *
  * @author n.hoffmann
  * @created Oct 14, 2010
- * @version 1.0
  */
 public class SpecimenCollectionDetailSection extends
                AbstractEntityCollectionSection<DerivedUnitFacade, DerivedUnit> {
 
-       /**
-        * <p>Constructor for SpecimenCollectionDetailSection.</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 style a int.
-        */
        public SpecimenCollectionDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(formFactory, conversation, parentElement, "Duplicates", style);
+                       ICdmFormElement parentElement, int style) {
+               super(formFactory, parentElement, "Duplicates", style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
-        */
-       /** {@inheritDoc} */
        @Override
        public Collection<DerivedUnit> getCollection(DerivedUnitFacade entity) {
                return entity.getDuplicates();
@@ -58,65 +41,38 @@ public class SpecimenCollectionDetailSection extends
         return new DefaultCdmBaseComparator<>();
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#createNewElement()
-        */
-       /** {@inheritDoc} */
        @Override
        public DerivedUnit createNewElement() {
                return DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
        @Override
        public void addElement(DerivedUnit element) {
                getEntity().addDuplicate(element);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
        @Override
        public void removeElement(DerivedUnit element) {
                getEntity().removeDuplicate(element);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
-        */
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No duplicates yet.";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
-        */
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Add a duplicate";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public DerivedUnit addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/StatusCollectionDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/StatusCollectionDetailSection.java
new file mode 100644 (file)
index 0000000..28a89a0
--- /dev/null
@@ -0,0 +1,98 @@
+/**
+* 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.section.occurrence;
+
+import java.util.Collection;
+import java.util.Comparator;
+
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.OccurrenceStatus;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
+
+/**
+ * @author n.hoffmann
+ * @created Oct 15, 2010
+ */
+public class StatusCollectionDetailSection extends
+               AbstractEntityCollectionSection<DerivedUnitFacade, OccurrenceStatus> {
+
+       public StatusCollectionDetailSection(CdmFormFactory formFactory,
+                       ICdmFormElement parentElement, int style) {
+               super(formFactory, parentElement, "Status", style);
+       }
+
+       @Override
+       public Collection<OccurrenceStatus> getCollection(DerivedUnitFacade entity) {
+               if (entity.baseUnit() instanceof DerivedUnit){
+                       return ((DerivedUnit)entity.baseUnit()).getStatus();
+               }
+               return null;
+       }
+
+       @Override
+       public Comparator<OccurrenceStatus> getComparator() {
+        return new DefaultCdmBaseComparator<>();
+       }
+
+       @Override
+       public OccurrenceStatus createNewElement() {
+               return OccurrenceStatus.NewInstance(null);
+       }
+
+       @Override
+       public void addElement(OccurrenceStatus element) {
+                ((DerivedUnit)getEntity().baseUnit()).addStatus(element);
+       }
+
+       @Override
+       public void removeElement(OccurrenceStatus element) {
+               ((DerivedUnit)getEntity().baseUnit()).removeStatus(element);
+       }
+
+       @Override
+       public String getEmptyString() {
+               return "No status yet.";
+       }
+
+       @Override
+       protected String getTooltipString() {
+               return "Add status";
+       }
+
+    @Override
+    public OccurrenceStatus addExisting() {
+        return null;
+    }
+
+    @Override
+    public boolean allowAddExisting() {
+        return false;
+    }
+
+    @Override
+    protected void setSectionTitle() {
+           DerivedUnitFacade entity = getEntity();
+               Collection<OccurrenceStatus> collection = getCollection(entity);
+               if(collection != null && collection.size() > 0){
+                       String concatenatedLabels = "";
+                       for (OccurrenceStatus status: collection){
+                               concatenatedLabels += ", "+ (status != null && status.getType() != null? status.getType().getPreferredRepresentation(CdmStore.getDefaultLanguage()) : " - ");
+                       }
+                       concatenatedLabels = concatenatedLabels.replaceFirst(", ", ": ");
+                       this.setText(getTitleString() + concatenatedLabels );
+               }else{
+                       this.setText(getTitleString());
+               }
+       }
+}
\ No newline at end of file
index 33e6592e2f6b6d78404aa80dc1f489f59acc1803..0c7e6eb0d4241f2685fc005c7594ff2921e168cc 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.association;
 
 import java.util.Set;
@@ -14,10 +13,10 @@ import java.util.Set;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
 import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -34,7 +33,6 @@ public class DerivedUnitTypeDesignationElement
 
     private TermComboElement<SpecimenTypeDesignationStatus> combo_typeStatus;
 
-//    private List<EntitySelectionElement<TaxonNameBase>> selectionTaxonNames;
     private ICdmFormElement parentFormElement;
     private int style;
 
@@ -49,37 +47,29 @@ public class DerivedUnitTypeDesignationElement
     @Override
     public void setEntity(SpecimenTypeDesignation entity) {
         super.setEntity(entity);
-        Set<TaxonName> typifiedNames = entity.getTypifiedNames();
-        if(typifiedNames.size()==1){
-            selectionTaxonName.setEntity(typifiedNames.iterator().next());
+        if (combo_typeStatus != null){
+               Set<TaxonName> typifiedNames = entity.getTypifiedNames();
+               if(typifiedNames.size()==1){
+                   selectionTaxonName.setEntity(typifiedNames.iterator().next());
+               }
+               else if(typifiedNames.size()>1){
+                   formFactory.createLabel(getLayoutComposite(), "!!!!!!!!");
+               }
+
+               SpecimenTypeDesignationStatus typeStatus = HibernateProxyHelper
+                               .deproxy(entity.getTypeStatus());
+               combo_typeStatus.setSelection(typeStatus);
+               checkbox_notDesignated.setSelection(entity.isNotDesignated());
         }
-        else if(typifiedNames.size()>1){
-            formFactory.createLabel(getLayoutComposite(), "!!!!!!!!");
-        }
-
-        SpecimenTypeDesignationStatus typeStatus = HibernateProxyHelper
-                       .deproxy(entity.getTypeStatus());
-        combo_typeStatus.setSelection(typeStatus);
-        checkbox_notDesignated.setSelection(entity.isNotDesignated());
-
-//        for (TaxonNameBase taxonNameBase : typifiedNames) {
-//            EntitySelectionElement<TaxonNameBase> selectionElement = formFactory.createSelectionElement(
-//                    TaxonNameBase.class, getConversationHolder(), parentFormElement, "Scientific Name", null,
-//                    EntitySelectionElement.EDITABLE | EntitySelectionElement.SELECTABLE, style);
-//            selectionElement.setEntity(taxonNameBase);
-//        }
-
-
     }
 
-    /** {@inheritDoc} */
     @Override
     public void createControls(ICdmFormElement element, int style) {
         this.parentFormElement = element;
         this.style = style;
 
         selectionTaxonName = formFactory.createSelectionElement(
-                TaxonName.class, //getConversationHolder(),
+                TaxonName.class,
                 parentFormElement, "Scientific Name", null,
                 EntitySelectionElement.EDITABLE | EntitySelectionElement.SELECTABLE, style);
 
@@ -87,9 +77,11 @@ public class DerivedUnitTypeDesignationElement
                 parentFormElement, "Designation Status", null, style);
 
         super.createControls(element, style);
+        if (entity != null){
+               setEntity(entity);
+        }
     }
 
-    /** {@inheritDoc} */
     @Override
     public void handleEvent(Object eventSource) {
         if (eventSource == selectionTaxonName) {
@@ -99,12 +91,5 @@ public class DerivedUnitTypeDesignationElement
         } else if (eventSource == checkbox_notDesignated) {
             getEntity().setNotDesignated(checkbox_notDesignated.getSelection());
         }
-//        else if (eventSource == selection_reference) {
-//            getEntity().setCitation(selection_reference.getSelection());
-//        } else if (eventSource == text_referenceDetail) {
-//            getEntity().setCitationMicroReference(
-//                    text_referenceDetail.getText());
-//        }
     }
-
-}
+}
\ No newline at end of file
index fad8c63c9f75006e0e1bb8f81f1711233c58d1c9..faa6f45d47e3acb46cc986824df7d83b790b266a 100644 (file)
@@ -15,8 +15,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -27,18 +26,16 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 /**
  * @author pplitzner
  * @date Oct 29, 2015
- *
  */
 public class DerivedUnitTypeDesignationSection extends AbstractEntityCollectionSection<DerivedUnitFacade, SpecimenTypeDesignation> {
 
     private Collection<SpecimenTypeDesignation> typeDesignations;
 
     public DerivedUnitTypeDesignationSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-        super(formFactory, conversation, parentElement, "Type Designations", style);
+            ICdmFormElement parentElement, int style) {
+        super(formFactory, parentElement, "Type Designations", style);
     }
 
-    /** {@inheritDoc} */
     @Override
     public Collection<SpecimenTypeDesignation> getCollection(DerivedUnitFacade entity) {
         typeDesignations = entity.innerDerivedUnit().getSpecimenTypeDesignations();
@@ -50,20 +47,17 @@ public class DerivedUnitTypeDesignationSection extends AbstractEntityCollectionS
         return new DefaultCdmBaseComparator<>();
     }
 
-    /** {@inheritDoc} */
     @Override
     public SpecimenTypeDesignation createNewElement() {
         return SpecimenTypeDesignation.NewInstance();
     }
 
-    /** {@inheritDoc} */
     @Override
     public void addElement(SpecimenTypeDesignation element) {
         element.setTypeSpecimen(getEntity().innerDerivedUnit());
         typeDesignations.add(element);
     }
 
-    /** {@inheritDoc} */
     @Override
     public void removeElement(SpecimenTypeDesignation element) {
         List<SpecimenTypeDesignation> toRemove = new ArrayList<SpecimenTypeDesignation>();
@@ -84,33 +78,23 @@ public class DerivedUnitTypeDesignationSection extends AbstractEntityCollectionS
         typeDesignations.removeAll(toRemove);
     }
 
-    /** {@inheritDoc} */
     @Override
     public String getEmptyString() {
         return "No type designation yet.";
     }
 
-    /** {@inheritDoc} */
     @Override
     protected String getTooltipString() {
         return "Add a type designation";
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public SpecimenTypeDesignation addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-
-}
+}
\ No newline at end of file
index f2404e55e73969adf269010b08509caf4ff7005f..8b1f8a543f2101d1a427974d9a43347f12d88593 100644 (file)
@@ -27,8 +27,8 @@ import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.MenuItem;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
@@ -46,7 +46,6 @@ import eu.etaxonomy.taxeditor.view.CdmViewerChooser;
 /**
  * @author pplitzner
  * @date Dec 1, 2014
- *
  */
 public class TaxonAssociationDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> implements IDoubleClickListener{
 
@@ -54,10 +53,10 @@ public class TaxonAssociationDetailElement extends AbstractCdmDetailElement<Deri
         super(formFactory, formElement);
     }
 
-    /** {@inheritDoc} */
     @Override
     protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
-        Collection<TaxonBase<?>> associatedTaxa = CdmStore.getService(IOccurrenceService.class).listIndividualsAssociationTaxa(entity.innerDerivedUnit(), null, null, null, null);
+       boolean includeUnpublished = true;
+        Collection<TaxonBase<?>> associatedTaxa = CdmStore.getService(IOccurrenceService.class).listIndividualsAssociationTaxa(entity.innerDerivedUnit(), includeUnpublished, null, null, null, null);
         Collection<SpecimenTypeDesignation> typeDesignations = CdmStore.getService(IOccurrenceService.class).listTypeDesignations(entity.innerDerivedUnit(), null, null, null, null);
         Collection<DeterminationEvent> determinationEvents = CdmStore.getService(IOccurrenceService.class).listDeterminationEvents(entity.innerDerivedUnit(), null, null, null, null);
 
@@ -110,7 +109,7 @@ public class TaxonAssociationDetailElement extends AbstractCdmDetailElement<Deri
             }
             openInItem.setData(cdmBase);
             openInItem.addSelectionListener(new SelectionListener() {
-               
+
                @Override
                public void widgetSelected(SelectionEvent e) {
                        new CdmViewerChooser(TaxonAssociationDetailElement.this.getLayoutComposite().getShell()).chooseViewer(e.widget.getData());
@@ -182,4 +181,10 @@ public class TaxonAssociationDetailElement extends AbstractCdmDetailElement<Deri
             new CdmViewerChooser(event.getViewer().getControl().getShell()).chooseViewer(firstElement);
         }
     }
+
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+
+       }
 }
index b9ad3f24062ab8504f39f9465e7efe5f37f85a43..16f05f6ed270b0c6462a37d32a210f053c4f093f 100644 (file)
@@ -6,13 +6,11 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.association;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -20,31 +18,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.IDerivedUnitFacadeDetailSection;
 
 /**
- *
  * @author pplitzner
  * @date Dec 1, 2014
- *
  */
 public class TaxonAssociationDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
 
        public TaxonAssociationDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-        */
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return "Taxon Associations";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
        protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
            return formFactory.createTaxonAssociationDetailElement(parentElement);
index fe797a2acfcdda379adbce26049e1a0c63aaceb0..f92a5893fb674563c135b88d2cde8eb9bd9b6c81 100644 (file)
@@ -6,10 +6,8 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -17,32 +15,18 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 
 /**
- * <p>DeterminationEventDetailSection class.</p>
- *
  * @author n.hoffmann
  * @created Oct 13, 2010
- * @version 1.0
  */
 public abstract class PreservedSpecimenAbstractDeterminationEventDetailSection extends
                AbstractEntityCollectionSection<DerivedUnit, DeterminationEvent> {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param title
-        * @param style
-        */
        public PreservedSpecimenAbstractDeterminationEventDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        String title, int style) {
-               super(formFactory, conversation, parentElement, title, style);
+               super(formFactory, parentElement, title, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#createNewElement()
-        */
-       /** {@inheritDoc} */
        @Override
        public DeterminationEvent createNewElement() {
                DeterminationEvent instance = DeterminationEvent.NewInstance();
@@ -50,31 +34,18 @@ public abstract class PreservedSpecimenAbstractDeterminationEventDetailSection e
                return instance;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
        @Override
        public void addElement(DeterminationEvent determination) {
                getEntity().addDetermination(determination);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
        @Override
        public void removeElement(DeterminationEvent determination) {
                getEntity().removeDetermination(determination);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
-        */
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No determinations yet.";
        }
-
-}
+}
\ No newline at end of file
index d545968059850fc7195ac07b31f58546d4a07e6c..e44e0f7404ed8a0e30e26836cbafb11cd75715e2 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit;
 
 import java.util.Arrays;
@@ -15,13 +14,13 @@ import java.util.Comparator;
 import java.util.Set;
 
 import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.action.ToolBarManager;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.ImageData;
 import org.eclipse.swt.widgets.Control;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
 import eu.etaxonomy.taxeditor.model.ImageResources;
@@ -32,32 +31,23 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 /**
  * @author n.hoffmann
  * @created May 11, 2011
- * @version 1.0
  */
 public class PreservedSpecimenCurrentDeterminationDetailSection extends
     PreservedSpecimenAbstractDeterminationEventDetailSection {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param style
-        */
        public PreservedSpecimenCurrentDeterminationDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        int style) {
-               super(formFactory, conversation, parentElement, "Current Determination", style);
+               super(formFactory, parentElement, "Current Determination", style);
        }
 
        @Override
        protected Control createToolbar() {
                ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
 
-               Action addAction = new Action("add", Action.AS_PUSH_BUTTON){
-                       /* (non-Javadoc)
-                        * @see org.eclipse.jface.action.Action#run()
-                        */
-                       @Override
+               Action addAction = new Action("add", IAction.AS_PUSH_BUTTON){
+
+                   @Override
                        public void run() {
                                DeterminationEvent element = createNewElement();
 
@@ -98,9 +88,6 @@ public class PreservedSpecimenCurrentDeterminationDetailSection extends
                internalUpdateSection(false);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
-        */
        @Override
        public Collection<DeterminationEvent> getCollection(DerivedUnit entity) {
                DeterminationEvent preferredDetermination = null;
@@ -118,9 +105,6 @@ public class PreservedSpecimenCurrentDeterminationDetailSection extends
         return new DefaultCdmBaseComparator<>();
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.occurrence.AbstractDeterminationEventDetailSection#createNewElement()
-        */
        @Override
        public DeterminationEvent createNewElement() {
                DeterminationEvent newElement = super.createNewElement();
@@ -128,30 +112,18 @@ public class PreservedSpecimenCurrentDeterminationDetailSection extends
                return newElement;
        }
 
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
-        */
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Create new current determination event";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public DeterminationEvent addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-}
+}
\ No newline at end of file
index 90314a1289210224507d3d83c2a94377a3a35399..41c43400fbdc8e7833b0a3e54e1b3a766d0db5a0 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit;
 
 import eu.etaxonomy.cdm.model.name.TaxonName;
@@ -23,25 +22,17 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenCollectionDetailSection;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
- * <p>
- * DerivedUnitBaseDetailElement class.
- * </p>
- *
  * @author n.hoffmann
  * @created Jun 24, 2010
- * @version 1.0
  */
 public class PreservedSpecimenDetailElement extends
                AbstractCdmDetailElement<DerivedUnit> {
 
        private TextWithLabelElement text_derivedUnitDefinitions;
 
-       private TextWithLabelElement text_barcode;
-
        private TextWithLabelElement text_catalogNumber;
 
        private EntitySelectionElement<TaxonName> selection_storedUnder;
@@ -50,8 +41,6 @@ public class PreservedSpecimenDetailElement extends
 
        private TermComboElement<DefinedTerm> combo_preservationMethod;
 
-       private SpecimenCollectionDetailSection section_duplicates;
-
        private PreservedSpecimenSourceCollectionDetailSection section_source;
 
        /**
@@ -71,7 +60,6 @@ public class PreservedSpecimenDetailElement extends
                super(formFactory, formElement);
        }
 
-       /** {@inheritDoc} */
        @Override
     protected void createControls(ICdmFormElement formElement, DerivedUnit entity, int style) {
                // Disable for now
@@ -80,29 +68,25 @@ public class PreservedSpecimenDetailElement extends
                // "Specimen Definition",
                // facade.getDerivedUnitDefinition(CdmStore.getDefaultLanguage()),
                // style);
-        text_barcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
         text_catalogNumber = formFactory.createTextWithLabelElement(formElement, "Catalog Number", entity.getCatalogNumber(), style);
 
 
         PreservationMethod preservationMethod = entity.getPreservation();
         combo_preservationMethod = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Preservation Method", preservationMethod==null?null:preservationMethod.getDefinedMaterialOrMethod(), style);
-        selection_storedUnder = formFactory.createSelectionElement(TaxonName.class, //getConversationHolder(),
+        selection_storedUnder = formFactory.createSelectionElement(TaxonName.class,
                 formElement, "Stored Under", entity.getStoredUnder(), EntitySelectionElement.ALL, style);
 
         text_exsicatum = formFactory.createTextWithLabelElement(formElement, "Exsiccatum", entity.getExsiccatum(), style);
 
-        section_source = formFactory.createPreservedSpecimenSourceCollectionDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(PreservedSpecimenSourceCollectionDetailSection.class, entity.getClass().getCanonicalName()));
+        section_source = formFactory.createPreservedSpecimenSourceCollectionDetailSection(formElement, StoreUtil.getSectionStyle(PreservedSpecimenSourceCollectionDetailSection.class, entity.getClass().getCanonicalName()));
                section_source.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
                section_source.setEntity(entity);
        }
 
-    /** {@inheritDoc} */
     @Override
     public void handleEvent(Object eventSource) {
         if (eventSource == text_derivedUnitDefinitions) {
             getEntity().putDefinition(CdmStore.getDefaultLanguage(), text_derivedUnitDefinitions.getText());
-        } else if (eventSource == text_barcode) {
-            getEntity().setBarcode(text_barcode.getText());
         } else if (eventSource == text_catalogNumber) {
             getEntity().setCatalogNumber(text_catalogNumber.getText());
         } else if (eventSource == combo_preservationMethod) {
@@ -120,4 +104,10 @@ public class PreservedSpecimenDetailElement extends
             }
         }
     }
+
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
 }
index e0a6c0ea32ca71e85d89aa080acaec7ae6060efc..ff2806f878b4143e52b3cc529e52d33b069f6a34 100644 (file)
@@ -11,7 +11,6 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -31,29 +30,21 @@ public class PreservedSpecimenDetailSection extends AbstractCdmDetailSection<Der
         * <p>Constructor for DerivedUnitBaseDetailSection.</p>
         *
         * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
         * @param style a int.
         */
        public PreservedSpecimenDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-        */
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return "Specimen Details";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
        protected AbstractCdmDetailElement<DerivedUnit> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnit> parentElement, int style) {
            return formFactory.createPreservedSpecimenDetailElement(parentElement);
index b4a51ecf7bec40e414d3f3f695d70be18ad2bdae..09255116101f14b96d4d02c68b2700d1907ba3cb 100644 (file)
@@ -20,31 +20,19 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author pplitzner
  * @date 17.12.2013
- *
  */
 public class PreservedSpecimenGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnit> {
 
     private ToggleableTextElement toggleableText_titleCache;
     private EntitySelectionElement<Collection> selection_collection;
     private TextWithLabelElement text_accessionNumber;
+    private TextWithLabelElement text_barcode;
 
-
-    /**
-     * @param formFactory
-     * @param formElement
-     */
     public PreservedSpecimenGeneralDetailElement(CdmFormFactory formFactory,
             ICdmFormElement formElement) {
         super(formFactory, formElement);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
-     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
-     */
     @Override
     protected void createControls(ICdmFormElement formElement,
             DerivedUnit entity, int style) {
@@ -52,22 +40,16 @@ public class PreservedSpecimenGeneralDetailElement extends AbstractCdmDetailElem
                 formElement, "Title Cache", entity.getTitleCache(),
                 entity.isProtectedTitleCache(), style);
         selection_collection = formFactory
-                .createSelectionElement(Collection.class,//getConversationHolder(),
+                .createSelectionElement(Collection.class,
                         formElement, "Collection",
                         entity.getCollection(),
                         EntitySelectionElement.ALL, style);
         text_accessionNumber = formFactory.createTextWithLabelElement(
                 formElement, "Accession Number", entity.getAccessionNumber(),
                 style);
+        text_barcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
-     * .lang.Object)
-     */
     @Override
     public void handleEvent(Object eventSource) {
         if (eventSource == toggleableText_titleCache) {
@@ -77,10 +59,18 @@ public class PreservedSpecimenGeneralDetailElement extends AbstractCdmDetailElem
             getEntity().setCollection(selection_collection.getSelection());
         } else if (eventSource == text_accessionNumber) {
             getEntity().setAccessionNumber(text_accessionNumber.getText());
+        } else if (eventSource == text_barcode) {
+            getEntity().setBarcode(text_barcode.getText());
         }
+
         if (eventSource != toggleableText_titleCache) {
             toggleableText_titleCache.setText(getEntity().getTitleCache());
         }
     }
 
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
 }
index 23e111dd682000d397b2f37b528fe82b97c78093..5d1a3a532df6a133c68a0e6381c5bf146fe215ad 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -20,37 +19,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author pplitzner
  * @date 17.12.2013
- *
  */
 public class PreservedSpecimenGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnit> {
 
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param selectionProvider
-     * @param style
-     */
     public PreservedSpecimenGeneralDetailSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement,
+            ICdmFormElement parentElement,
             ISelectionProvider selectionProvider, int style) {
-        super(formFactory, conversation, parentElement, selectionProvider, style);
+        super(formFactory, parentElement, selectionProvider, style);
     }
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-     */
     @Override
     public String getHeading() {
         return "General Specimen";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-     */
     @Override
     protected AbstractCdmDetailElement<DerivedUnit> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnit> parentElement, int style) {
         return formFactory.createPreservedSpecimenGeneralDetailElement(parentElement);
     }
-}
+}
\ No newline at end of file
index 0760fce110b448aa1df5a3080178f5862667b2a6..1bc164c61ce87be509cf8aa5db2cfdc2b15b8a1a 100644 (file)
@@ -6,48 +6,31 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.derivedUnit;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
-import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
 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;
 
 /**
- * <p>SourceCollectionDetailSection class.</p>
- *
  * @author n.hoffmann
  * @created Oct 15, 2010
- * @version 1.0
  */
 public class PreservedSpecimenSourceCollectionDetailSection extends
                AbstractEntityCollectionSection<DerivedUnit, IdentifiableSource> {
 
-       /**
-        * <p>Constructor for SourceCollectionDetailSection.</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 style a int.
-        */
        public PreservedSpecimenSourceCollectionDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(formFactory, conversation, parentElement, "Sources", style);
+                       ICdmFormElement parentElement, int style) {
+               super(formFactory, parentElement, "Sources", style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
-        */
-       /** {@inheritDoc} */
        @Override
        public Collection<IdentifiableSource> getCollection(DerivedUnit entity) {
                return entity.getSources();
@@ -58,65 +41,38 @@ public class PreservedSpecimenSourceCollectionDetailSection extends
         return new DefaultCdmBaseComparator<>();
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#createNewElement()
-        */
-       /** {@inheritDoc} */
        @Override
        public IdentifiableSource createNewElement() {
                return IdentifiableSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
        @Override
        public void addElement(IdentifiableSource element) {
                getEntity().addSource(element);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
        @Override
        public void removeElement(IdentifiableSource element) {
                getEntity().removeSource(element);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
-        */
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No sources yet.";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
-        */
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Add source";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public IdentifiableSource addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-}
+}
\ No newline at end of file
index ec9030b62b9342b631c2e94f193f302e96695a2f..13d34977fa958cb412b887e62148211f98d60f9c 100644 (file)
@@ -6,10 +6,8 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.Identifier;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -18,45 +16,30 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.view.search.derivative.DerivateLabelProvider;
 
 /**
- *
  * @author pplitzner
  * @date Oct 16, 2014
- *
  */
 public abstract class AbstractSampleDesignationDetailSection extends
                AbstractEntityCollectionSection<IdentifiableEntity<?>, Identifier> {
 
        public AbstractSampleDesignationDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        String title, int style) {
-               super(formFactory, conversation, parentElement, title, style);
+               super(formFactory, parentElement, title, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#createNewElement()
-        */
-       /** {@inheritDoc} */
        @Override
        public Identifier createNewElement() {
                return Identifier.NewInstance(getEntity(), null, DerivateLabelProvider.getSampleDesignationTerm());
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-        */
-       /** {@inheritDoc} */
        @Override
        public void removeElement(Identifier sampleDesignation) {
                getEntity().removeIdentifier(sampleDesignation);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
-        */
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No sample designations yet.";
        }
-
-}
+}
\ No newline at end of file
index c74652163ba9f71ac8675e3258fef163306c3c58..5e4009395760948bb3c135003a6b163fe223e5a6 100644 (file)
@@ -19,7 +19,6 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.ImageData;
 import org.eclipse.swt.widgets.Control;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -42,27 +41,21 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
  * @author pplitzner
  * @date 21.01.2014
  */
-public abstract class AbstractUnboundEntityCollectionSection<ENTITY, ELEMENT> extends AbstractEntityCollectionSection<ENTITY, ELEMENT> {
+public abstract class AbstractUnboundEntityCollectionSection<ENTITY, ELEMENT>
+        extends AbstractEntityCollectionSection<ENTITY, ELEMENT> {
 
-    private boolean addUnboundElement = false;
+    protected boolean addUnboundElement = false;
 
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param title
-     * @param style
-     */
-    public AbstractUnboundEntityCollectionSection(CdmFormFactory formFactory, ConversationHolder conversation, ICdmFormElement parentElement, String title, int style) {
-        super(formFactory, conversation, parentElement, title, style);
+    public AbstractUnboundEntityCollectionSection(CdmFormFactory formFactory, ICdmFormElement parentElement, String title, int style) {
+        super(formFactory, parentElement, title, style);
     }
 
     /**
-     * @deprecated this method should not be extended in sub classes of {@link AbstractUnboundEntityCollectionSection}.<br>
+     * This method can not be extended in sub classes.
+     * Use {@link #getEntityCollection(Object)} instead.
      */
-    @Deprecated
     @Override
-    public Collection<ELEMENT> getCollection(ENTITY entity) {
+    public final Collection<ELEMENT> getCollection(ENTITY entity) {
         Collection<ELEMENT> elements = getEntityCollection(entity);
         if(addUnboundElement){
             //cloning to avoid saving the dummy element
@@ -79,9 +72,7 @@ public abstract class AbstractUnboundEntityCollectionSection<ENTITY, ELEMENT> ex
         ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
 
         Action addAction = new Action("add", IAction.AS_PUSH_BUTTON){
-            /* (non-Javadoc)
-             * @see org.eclipse.jface.action.Action#run()
-             */
+
             @Override
             public void run() {
                 addUnboundElement = true;
index 21253bc67271a166f65a0487bce5356a169b127e..cc30b95df7ec28d88afd6c4f09f0c94a62d90dc8 100644 (file)
@@ -24,47 +24,28 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author pplitzner
  * @date 15.01.2014
- *
  */
 public class AmplificationCloningDetailElement extends AbstractCdmDetailElement<AmplificationResult> {
-    private TextWithLabelElement textCloningStrain;
+    
+       private TextWithLabelElement textCloningStrain;
     private TimePeriodElement date;
     private EntitySelectionElement<AgentBase> selectionCloningStaff;
     private TermComboElement<DefinedTerm> comboCloningMaterialOrMethod;
 
-
-    /**
-     * @param formFactory
-     * @param formElement
-     */
     public AmplificationCloningDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
         super(formFactory, formElement);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
-     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
-     */
     @Override
     protected void createControls(ICdmFormElement formElement, AmplificationResult entity, int style) {
         Cloning cloning = entity.getCloning();
         textCloningStrain = formFactory.createTextWithLabelElement(formElement, "Cloning Strain", cloning==null?"":cloning.getStrain(), style);
         date = formFactory.createTimePeriodElement(formElement, "Cloning Date", cloning==null?null:cloning.getTimeperiod(), style);
-        selectionCloningStaff = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
+        selectionCloningStaff = formFactory.createSelectionElement(AgentBase.class,
                 formElement, "Cloning Staff", cloning==null?null:cloning.getActor(), EntitySelectionElement.ALL, style);
         comboCloningMaterialOrMethod = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Cloning Mat. & Meth.", cloning==null?null:cloning.getDefinedMaterialOrMethod(), style);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
-     * .lang.Object)
-     */
     @Override
     public void handleEvent(Object eventSource) {
         if(eventSource==textCloningStrain || eventSource==date|| eventSource==selectionCloningStaff || eventSource==comboCloningMaterialOrMethod){
@@ -88,4 +69,9 @@ public class AmplificationCloningDetailElement extends AbstractCdmDetailElement<
         }
     }
 
-}
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
+}
\ No newline at end of file
index 48bc4fb1a6f726e13e39d8599dff18fda00c37f1..46e7863d058a8a365ef84de1b11da40b024e38af 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.molecular.AmplificationResult;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -20,38 +19,23 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author pplitzner
  * @date 15.01.2014
- *
  */
-public class AmplificationCloningDetailSection extends AbstractCdmDetailSection<AmplificationResult> {
+public class AmplificationCloningDetailSection
+        extends AbstractCdmDetailSection<AmplificationResult> {
 
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param selectionProvider
-     * @param style
-     */
     public AmplificationCloningDetailSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement,
+            ICdmFormElement parentElement,
             ISelectionProvider selectionProvider, int style) {
-        super(formFactory, conversation, parentElement, selectionProvider, style);
+        super(formFactory, parentElement, selectionProvider, style);
     }
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-     */
     @Override
     public String getHeading() {
         return "Cloning";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-     */
     @Override
     protected AbstractCdmDetailElement<AmplificationResult> createCdmDetailElement(AbstractCdmDetailSection<AmplificationResult> parentElement, int style) {
         return formFactory.createAmplificationCloningDetailElement(parentElement);
     }
-
-}
+}
\ No newline at end of file
index 80feae63903c750dd2249e7422b00b2d7a0696b2..1b756125e5bc5b2a84145c538269b9fa6657ccdc 100644 (file)
@@ -12,7 +12,6 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.molecular.AmplificationResult;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -23,27 +22,14 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 /**
  * @author pplitzner
  * @date 26.02.2014
- *
  */
 public class AmplificationGelPhotoCollectionDetailSection extends AbstractEntityCollectionSection<AmplificationResult, Media> {
 
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param title
-     * @param style
-     */
-    public AmplificationGelPhotoCollectionDetailSection(CdmFormFactory formFactory, ConversationHolder conversation,
+    public AmplificationGelPhotoCollectionDetailSection(CdmFormFactory formFactory,
             ICdmFormElement parentElement, int style) {
-        super(formFactory, conversation, parentElement, "Gel Photo", style);
+        super(formFactory, parentElement, "Gel Photo", style);
     }
 
-
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
-     */
     @Override
     public Collection<Media> getCollection(AmplificationResult entity) {
         if(entity.getGelPhoto()!=null){
@@ -57,9 +43,6 @@ public class AmplificationGelPhotoCollectionDetailSection extends AbstractEntity
         return new DefaultCdmBaseComparator<>();
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#createNewElement()
-     */
     @Override
     public Media createNewElement() {
         if(getEntity().getGelPhoto()==null){
@@ -68,59 +51,35 @@ public class AmplificationGelPhotoCollectionDetailSection extends AbstractEntity
         return null;
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#addElement(java.lang.Object)
-     */
     @Override
     public void addElement(Media element) {
         if(getEntity().getGelPhoto()==null){
             getEntity().setGelPhoto(element);
         }
-
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#removeElement(java.lang.Object)
-     */
     @Override
     public void removeElement(Media element) {
         getEntity().setGelPhoto(null);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getEmptyString()
-     */
     @Override
     public String getEmptyString() {
         return "No gel photo yet";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getTooltipString()
-     */
     @Override
     protected String getTooltipString() {
         return "Add a gel photo";
     }
 
-
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Media addExisting() {
         return null;
     }
 
-
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-}
+}
\ No newline at end of file
index 6bb18a6e61222fa5206f170ea49705911ae16608..de54ed954904d893e9bf1e77dd4c2dc7121a8a3f 100644 (file)
@@ -18,42 +18,28 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 /**
  * @author pplitzner
  * @date 15.01.2014
- *
  */
 public class AmplificationGelPhotoDetailElement  extends AbstractCdmDetailElement<AmplificationResult> {
     private AmplificationGelPhotoCollectionDetailSection sectionGelPhoto;
 
-    /**
-     * @param formFactory
-     * @param formElement
-     */
     public AmplificationGelPhotoDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
         super(formFactory, formElement);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
-     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
-     */
     @Override
     protected void createControls(ICdmFormElement formElement, AmplificationResult entity, int style) {
-        sectionGelPhoto = formFactory.createAmplificationGelPhotoCollectionDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(AmplificationGelPhotoCollectionDetailSection.class, entity.getClass().getCanonicalName()));
+        sectionGelPhoto = formFactory.createAmplificationGelPhotoCollectionDetailSection(formElement, StoreUtil.getSectionStyle(AmplificationGelPhotoCollectionDetailSection.class, entity.getClass().getCanonicalName()));
         sectionGelPhoto.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         sectionGelPhoto.setEntity(entity);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
-     * .lang.Object)
-     */
     @Override
     public void handleEvent(Object eventSource) {
     }
 
-}
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
+}
\ No newline at end of file
index 7803f41243d1e2b4f7c75fc7caa06b26f64bbe9c..e8364c3e27f792df4ad42a0032e0d2986791c0fa 100644 (file)
@@ -28,7 +28,6 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author pplitzner
  * @date 19.12.2013
- *
  */
 public class AmplificationGeneralDetailElement extends AbstractCdmDetailElement<Amplification> {
 
@@ -41,49 +40,31 @@ public class AmplificationGeneralDetailElement extends AbstractCdmDetailElement<
     private EntitySelectionElement<Primer> selectionPrimerFW;
     private EntitySelectionElement<Primer> selectionPrimerRW;
 
-    /**
-     * @param formFactory
-     * @param formElement
-     */
     public AmplificationGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
         super(formFactory, formElement);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
-     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
-     */
     @Override
     protected void createControls(ICdmFormElement formElement, Amplification entity, int style) {
         textDesignation = formFactory.createTextWithLabelElement(formElement, "Designation", entity.getLabelCache(), style);
         textDesignation.setEnabled(false);
         textDesignation.setBackground(getPersistentBackground());
-        selectionInstitution = formFactory.createSelectionElement(Institution.class, //getConversationHolder(),
+        selectionInstitution = formFactory.createSelectionElement(Institution.class,
                 formElement, "Institution", entity.getInstitution(), EntitySelectionElement.ALL, style);
-        selectionAmplificationStaff = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
+        selectionAmplificationStaff = formFactory.createSelectionElement(AgentBase.class,
                 formElement, "Amplification staff", entity.getActor(), EntitySelectionElement.ALL, style);
         dateAmplification = formFactory.createTimePeriodElement(formElement, "Date", entity.getTimeperiod(), style);
         comboMarker = formFactory.createDefinedTermComboElement(TermType.DnaMarker, formElement, "DNA Marker", entity.getDnaMarker(), style);
-        selectionPrimerFW = formFactory.createSelectionElement(Primer.class,// getConversationHolder(),
+        selectionPrimerFW = formFactory.createSelectionElement(Primer.class,
                 formElement, "Primer FW", entity.getForwardPrimer(), EntitySelectionElement.ALL, style);
-        selectionPrimerRW = formFactory.createSelectionElement(Primer.class, //getConversationHolder(),
+        selectionPrimerRW = formFactory.createSelectionElement(Primer.class,
                 formElement, "Primer RW", entity.getReversePrimer(), EntitySelectionElement.ALL, style);
 
-        AnnotationSection annotationSection = formFactory.createAnnotationSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(AnnotationSection.class, entity.getClass().getCanonicalName()));
+        AnnotationSection annotationSection = formFactory.createAnnotationSection(formElement, StoreUtil.getSectionStyle(AnnotationSection.class, entity.getClass().getCanonicalName()));
         annotationSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         annotationSection.setEntity(entity);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
-     * .lang.Object)
-     */
     @Override
     public void handleEvent(Object eventSource) {
         if(eventSource==textNotes){
@@ -110,4 +91,10 @@ public class AmplificationGeneralDetailElement extends AbstractCdmDetailElement<
         getEntity().updateCache();
         textDesignation.setText(getEntity().getLabelCache());
     }
+
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
 }
index 240a8c30e7aae71f446cb3db8b63993a78f55e87..94cc7db622a751017c9a6540cfdf4584d06c0d75 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.molecular.Amplification;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -20,37 +19,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author pplitzner
  * @date 19.12.2013
- *
  */
 public class AmplificationGeneralDetailSection extends AbstractCdmDetailSection<Amplification> {
 
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param selectionProvider
-     * @param style
-     */
     public AmplificationGeneralDetailSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement,
+            ICdmFormElement parentElement,
             ISelectionProvider selectionProvider, int style) {
-        super(formFactory, conversation, parentElement, selectionProvider, style);
+        super(formFactory, parentElement, selectionProvider, style);
     }
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-     */
     @Override
     public String getHeading() {
         return "General Amplification";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-     */
     @Override
     protected AbstractCdmDetailElement<Amplification> createCdmDetailElement(AbstractCdmDetailSection<Amplification> parentElement, int style) {
         return formFactory.createAmplificationGeneralDetailElement(parentElement);
     }
-}
+}
\ No newline at end of file
index 2dc44b58f373152d5b38e40f87c7cdf33184a5c5..60c0501863c59258634bfe1b422184e9f4921243 100644 (file)
@@ -45,9 +45,9 @@ public class AmplificationPrimerDetailElement extends AbstractCdmDetailElement<A
      */
     @Override
     protected void createControls(ICdmFormElement formElement, Amplification entity, int style) {
-        selectionPrimerForward = formFactory.createSelectionElement(Primer.class, //getConversationHolder(),
+        selectionPrimerForward = formFactory.createSelectionElement(Primer.class,
                 formElement, "Forward Primer", entity.getForwardPrimer(), EntitySelectionElement.ALL, style);
-        selectionPrimerReverse = formFactory.createSelectionElement(Primer.class, //getConversationHolder(),
+        selectionPrimerReverse = formFactory.createSelectionElement(Primer.class,
                 formElement, "Reverse Primer", entity.getReversePrimer(), EntitySelectionElement.ALL, style);
     }
 
@@ -67,4 +67,10 @@ public class AmplificationPrimerDetailElement extends AbstractCdmDetailElement<A
             getEntity().setReversePrimer(selectionPrimerReverse.getSelection());
         }
     }
+
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
 }
index fdb25013c9808e988e8726aa67ee78db95fb06e5..768ff80411fd3f67578c0b9895963cf430de24e3 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.molecular.Amplification;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -20,38 +19,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author pplitzner
  * @date 15.01.2014
- *
  */
 public class AmplificationPrimerDetailSection extends AbstractCdmDetailSection<Amplification> {
 
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param selectionProvider
-     * @param style
-     */
     public AmplificationPrimerDetailSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement,
+            ICdmFormElement parentElement,
             ISelectionProvider selectionProvider, int style) {
-        super(formFactory, conversation, parentElement, selectionProvider, style);
+        super(formFactory, parentElement, selectionProvider, style);
     }
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-     */
     @Override
     public String getHeading() {
         return "Primer";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-     */
     @Override
     protected AbstractCdmDetailElement<Amplification> createCdmDetailElement(AbstractCdmDetailSection<Amplification> parentElement, int style) {
         return formFactory.createAmplificationPrimerDetailElement(parentElement);
     }
-
-}
+}
\ No newline at end of file
index ed847e71b8612828a37de28d7a5161acd01a4b8d..eebb0cca3f3701c9f30ab20e561e205c917af214 100644 (file)
@@ -6,14 +6,12 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.Identifier;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -22,17 +20,15 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 import eu.etaxonomy.taxeditor.view.search.derivative.DerivateLabelProvider;
 
 /**
- *
  * @author pplitzner
  * @date Oct 16, 2014
- *
  */
 public class CurrentSampleDesignationDetailSection extends AbstractSampleDesignationDetailSection {
 
        public CurrentSampleDesignationDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        int style) {
-               super(formFactory, conversation, parentElement, "Current Sample Designation", style);
+               super(formFactory, parentElement, "Current Sample Designation", style);
        }
 
        @Override
@@ -56,13 +52,11 @@ public class CurrentSampleDesignationDetailSection extends AbstractSampleDesigna
         return new DefaultCdmBaseComparator<>();
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Create new current sample designation";
        }
 
-    /** {@inheritDoc} */
     @Override
     public void addElement(Identifier sampleDesignation) {
         //The current sample designation is always the first one found.
@@ -71,20 +65,13 @@ public class CurrentSampleDesignationDetailSection extends AbstractSampleDesigna
         getEntity().addIdentifier(0, sampleDesignation);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Identifier addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-}
+}
\ No newline at end of file
index 3a49c46636f9a6d40ac6b73b9ab2bf6f4559e981..15f414bf92dd742c8ac016d5a96710a1e79b6f62 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import org.joda.time.DateTime;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.molecular.DnaQuality;
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.term.OrderedTerm;
@@ -26,9 +25,8 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 /**
  * @author pplitzner
  * @date 05.03.2014
- *
  */
-public class DnaQualityDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+public class DnaQualityDetailElement extends AbstractCdmDetailElement<DnaSample> {
 
     private TextWithLabelElement textPurificationMethod;
     private NumberWithLabelElement numberRatioOfAbsorbance260_280;
@@ -37,24 +35,12 @@ public class DnaQualityDetailElement extends AbstractCdmDetailElement<DerivedUni
     private TermComboElement<OrderedTerm> comboQualityTerm;
     private DateElement dateQualityCheck;
 
-    /**
-     * @param formFactory
-     * @param formElement
-     */
     public DnaQualityDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
         super(formFactory, formElement);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
-     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
-     */
     @Override
-    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade facade, int style) {
-        DnaSample entity = (DnaSample)facade.innerDerivedUnit();
+    protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
         DnaQuality dnaQuality = entity.getDnaQuality();
         if(dnaQuality==null){
             dnaQuality = DnaQuality.NewInstance();
@@ -66,8 +52,8 @@ public class DnaQualityDetailElement extends AbstractCdmDetailElement<DerivedUni
         OrderedTerm qualityTerm = dnaQuality.getQualityTerm();
 
         textPurificationMethod = formFactory.createTextWithLabelElement(formElement, "DNA Purification Details", dnaQuality.getPurificationMethod(), style);
-        numberRatioOfAbsorbance260_280 = formFactory.createFloatTextWithLabelElement(formElement, "Ratio of absorbance 260-280", ratioOfAbsorbance260_280, style);
-        numberRatioOfAbsorbance260_230 = formFactory.createFloatTextWithLabelElement(formElement, "Ratio of absorbance 260-230", ratioOfAbsorbance260_230, style);
+        numberRatioOfAbsorbance260_280 = formFactory.createFloatTextWithLabelElement(formElement, "Ratio of absorbance 260/280", ratioOfAbsorbance260_280, style);
+        numberRatioOfAbsorbance260_230 = formFactory.createFloatTextWithLabelElement(formElement, "Ratio of absorbance 260/230", ratioOfAbsorbance260_230, style);
         numberConcentration = formFactory.createFloatTextWithLabelElement(formElement, "Concentration", concentration, style);
         comboQualityTerm = formFactory.createDefinedTermComboElement(TermType.DnaQualityType, formElement, "Quality Term", qualityTerm, style);
         DateTime qualityCheckedDate = dnaQuality.getQualityCheckDate();
@@ -75,17 +61,9 @@ public class DnaQualityDetailElement extends AbstractCdmDetailElement<DerivedUni
         dateQualityCheck = formFactory.createDateElement(formElement, "Quality Check", qualityCheckedDate, style, false);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
-     * .lang.Object)
-     */
     @Override
     public void handleEvent(Object eventSource) {
-        DnaSample entity = (DnaSample)getEntity().innerDerivedUnit();
-        DnaQuality dnaQuality = entity.getDnaQuality();
+        DnaQuality dnaQuality = getEntity().getDnaQuality();
         if(eventSource==textPurificationMethod){
             dnaQuality.setPurificationMethod(textPurificationMethod.getText());
         }
@@ -103,8 +81,13 @@ public class DnaQualityDetailElement extends AbstractCdmDetailElement<DerivedUni
         }
         else if(eventSource==dateQualityCheck.getController()){
             DateTime dateTime = dateQualityCheck.getController().getDateTime();
-
             dnaQuality.setQualityCheckDate(dateTime);
         }
     }
-}
+
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
+}
\ No newline at end of file
index f9c70ca60374148b91f4f92c2c767d0542d4890e..10ced86ef6ae5d85156efe358aff12de32dbc193 100644 (file)
@@ -10,8 +10,7 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -20,37 +19,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author pplitzner
  * @date 05.03.2014
- *
  */
-public class DnaQualityDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
+public class DnaQualityDetailSection extends AbstractCdmDetailSection<DnaSample> {
 
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param selectionProvider
-     * @param style
-     */
     public DnaQualityDetailSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement,
+            ICdmFormElement parentElement,
             ISelectionProvider selectionProvider, int style) {
-        super(formFactory, conversation, parentElement, selectionProvider, style);
+        super(formFactory, parentElement, selectionProvider, style);
     }
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-     */
     @Override
     public String getHeading() {
         return "DNA Quality";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-     */
     @Override
-    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+    protected AbstractCdmDetailElement<DnaSample> createCdmDetailElement(AbstractCdmDetailSection<DnaSample> parentElement, int style) {
         return formFactory.createDnaQualityDetailElement(parentElement);
     }
-}
+}
\ No newline at end of file
index aeaf60e1ca000426972c2690744c19f10fe235e3..ba8fa81562efe657e65670bb5346362256b95e31 100644 (file)
@@ -8,7 +8,6 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -21,10 +20,8 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author pplitzner
  * @date 16.12.2013
- *
  */
-public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
-
+public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaSample> {
 
     private EntitySelectionElement<Collection> selection_collection;
     private TextWithLabelElement textBarcode;
@@ -37,9 +34,9 @@ public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<Deri
     }
 
     @Override
-    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
+    protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
         selection_collection = formFactory
-                .createSelectionElement(Collection.class,//getConversationHolder(),
+                .createSelectionElement(Collection.class,
                         formElement, "Collection",
                         entity.getCollection(),
                         EntitySelectionElement.ALL, style);
@@ -47,7 +44,6 @@ public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<Deri
 //        text_catalogNumber = formFactory.createTextWithLabelElement(formElement, "Catalog Number", entity.getCatalogNumber(), style);
         text_accessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
         checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
-
     }
 
     @Override
@@ -62,10 +58,15 @@ public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<Deri
             getEntity().setAccessionNumber(text_accessionNumber.getText());
         }
         else if(eventSource==checkIsPublish){
-            ((DnaSample)getEntity().innerDerivedUnit()).setPublish(checkIsPublish.getSelection());
+            getEntity().setPublish(checkIsPublish.getSelection());
         } else if (eventSource == selection_collection) {
             getEntity().setCollection(selection_collection.getSelection());
         }
     }
 
-}
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
+}
\ No newline at end of file
index 54713dda5a77d0dd3ae888d4761060ccdae22cf3..1f735126bd107be4785e2f11fc36c8bcaa02c930 100644 (file)
@@ -10,8 +10,7 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -22,22 +21,21 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  * @date 12.12.2013
  *
  */
-public class DnaSampleGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
+public class DnaSampleGeneralDetailSection extends AbstractCdmDetailSection<DnaSample> {
 
     public DnaSampleGeneralDetailSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement,
+            ICdmFormElement parentElement,
             ISelectionProvider selectionProvider, int style) {
-        super(formFactory, conversation, parentElement, selectionProvider, style);
+        super(formFactory, parentElement, selectionProvider, style);
     }
 
-
     @Override
     public String getHeading() {
         return "General";
     }
 
     @Override
-    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+    protected AbstractCdmDetailElement<DnaSample> createCdmDetailElement(AbstractCdmDetailSection<DnaSample> parentElement, int style) {
         return formFactory.createDnaSampleGeneralDetailElement(parentElement);
     }
-}
+}
\ No newline at end of file
index 4bab5d13e8d93ed841d0e3e5d452b11746971116..e4b7bad2a55c108a7be840e235f116c6985acea1 100644 (file)
@@ -6,10 +6,8 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.Institution;
 import eu.etaxonomy.cdm.model.common.TimePeriod;
@@ -26,9 +24,8 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author pplitzner
  * @date 16.12.2013
- *
  */
-public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDetailElement<DnaSample> {
 
     private EntitySelectionElement<Institution> selectionInstitution;
     private EntitySelectionElement<AgentBase> selectionStaff;
@@ -36,27 +33,16 @@ public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDe
     private NumberWithLabelElement numberPreservationTemperature;
     private TextWithLabelElement txtMaterialOrMethods;
 
-    /**
-     * @param formFactory
-     * @param formElement
-     */
     public DnaSamplePreparationPreservationDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
         super(formFactory, formElement);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
-     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
-     */
     @Override
-    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade facade, int style) {
+    protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
         Institution institution = null;
         AgentBase<?> staff = null;
         TimePeriod preparationDate = null;
-        DnaSample entity = (DnaSample)facade.innerDerivedUnit();
+
         if(entity.getDerivedFrom()!=null){
             institution = entity.getDerivedFrom().getInstitution();
             staff = entity.getDerivedFrom().getActor();
@@ -71,9 +57,9 @@ public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDe
         if(entity.getDerivedFrom()!=null){
             materialOrMethodText = entity.getDerivedFrom().getDescription();
         }
-        selectionInstitution = formFactory.createSelectionElement(Institution.class, //getConversationHolder(),
+        selectionInstitution = formFactory.createSelectionElement(Institution.class,
                 formElement, "Institution", institution, EntitySelectionElement.ALL, style);
-        selectionStaff = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
+        selectionStaff = formFactory.createSelectionElement(AgentBase.class,
                 formElement, "Staff", staff, EntitySelectionElement.ALL, style);
         datePreparationDate = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
         numberPreservationTemperature = formFactory.createFloatTextWithLabelElement(formElement, "Preservation Temp. [C°]", temperature, style);
@@ -81,16 +67,9 @@ public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDe
 
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
-     * .lang.Object)
-     */
     @Override
     public void handleEvent(Object eventSource) {
-        DnaSample entity = (DnaSample)getEntity().innerDerivedUnit();
+        DnaSample entity = getEntity();
         if(eventSource==datePreparationDate){
             if(entity.getDerivedFrom()!=null){
                 entity.getDerivedFrom().setTimeperiod(datePreparationDate.getTimePeriod());
@@ -115,7 +94,7 @@ public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDe
     }
 
     private PreservationMethod addPreservationMethod(){
-        DnaSample entity = (DnaSample)getEntity().innerDerivedUnit();
+        DnaSample entity = getEntity();
         PreservationMethod preservationMethod = entity.getPreservation();
         if(preservationMethod==null){
             preservationMethod = PreservationMethod.NewInstance();
@@ -123,4 +102,10 @@ public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDe
         }
         return preservationMethod;
     }
+
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
 }
index bfec88afd07c3e273492b90b76463179547b5ee2..61d53e26b6f46c0582d60afd10bd7701a3c25875 100644 (file)
@@ -10,8 +10,7 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -20,24 +19,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author pplitzner
  * @date 12.12.2013
- *
  */
-public class DnaSamplePreparationPreservationSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
+public class DnaSamplePreparationPreservationSection extends AbstractCdmDetailSection<DnaSample> {
 
     public DnaSamplePreparationPreservationSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement,
+            ICdmFormElement parentElement,
             ISelectionProvider selectionProvider, int style) {
-        super(formFactory, conversation, parentElement, selectionProvider, style);
+        super(formFactory, parentElement, selectionProvider, style);
     }
 
-
     @Override
     public String getHeading() {
         return "Preparation/Preservation";
     }
 
     @Override
-    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+    protected AbstractCdmDetailElement<DnaSample> createCdmDetailElement(AbstractCdmDetailSection<DnaSample> parentElement, int style) {
         return formFactory.createDnaSamplePreparationPreservationDetailElement(parentElement);
     }
-}
+}
\ No newline at end of file
index 557786ef3871dbfb88d9f508c79ab3dc9513fd7d..31f23f3a776fc7e9a43c1d2246507c7a28d4e883 100644 (file)
@@ -26,7 +26,6 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author pplitzner
  * @date 06.01.2014
- *
  */
 public class PrimerGeneralDetailElement extends AbstractCdmDetailElement<Primer> {
 
@@ -39,21 +38,10 @@ public class PrimerGeneralDetailElement extends AbstractCdmDetailElement<Primer>
     private TermComboElement<DefinedTerm> comboMarker;
     private EntitySelectionElement<Reference> selectionReference;
 
-    /**
-     * @param formFactory
-     * @param formElement
-     */
     public PrimerGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
         super(formFactory, formElement);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
-     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
-     */
     @Override
     protected void createControls(ICdmFormElement formElement, Primer entity, int style) {
         textPrimerName = formFactory.createTextWithLabelElement(formElement, "Primer Name", entity.getLabel(), style);
@@ -66,23 +54,16 @@ public class PrimerGeneralDetailElement extends AbstractCdmDetailElement<Primer>
         comboMarker = formFactory.createDefinedTermComboElement(TermType.DnaMarker, formElement, "DNA Marker", entity.getDnaMarker(), style);
 
         selectionReference = formFactory
-                .createSelectionElement(Reference.class,//getConversationHolder(),
+                .createSelectionElement(Reference.class,
                         formElement, "Reference",
                         entity.getPublishedIn(),
                         EntitySelectionElement.ALL, style);
 
-        AnnotationSection annotationSection = formFactory.createAnnotationSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(AnnotationSection.class, entity.getClass().getCanonicalName()));
+        AnnotationSection annotationSection = formFactory.createAnnotationSection(formElement, StoreUtil.getSectionStyle(AnnotationSection.class, entity.getClass().getCanonicalName()));
         annotationSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         annotationSection.setEntity(entity);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
-     * .lang.Object)
-     */
     @Override
     public void handleEvent(Object eventSource) {
         if(eventSource==textPrimerName){
@@ -103,4 +84,10 @@ public class PrimerGeneralDetailElement extends AbstractCdmDetailElement<Primer>
             getEntity().setPublishedIn(selectionReference.getSelection());
         }
     }
-}
+
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
+}
\ No newline at end of file
index b4cd1cbfeea202805d0182b2d9b43a818843863e..2517f16f016c0fa62072071d2233f96bedd06319 100644 (file)
@@ -6,11 +6,9 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.model.molecular.DnaSample;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -18,46 +16,34 @@ import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
- *
  * @author pplitzner
  * @date Oct 20, 2014
- *
  */
-public class SampleDesignationDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+public class SampleDesignationDetailElement
+        extends AbstractCdmDetailElement<DerivedUnit> {
 
        private CurrentSampleDesignationDetailSection sectionCurrentSampleDesignation;
 
        private SampleDesignationHistoryDetailSection sectionSampleDesignationHistory;
 
-       /**
-        * @param formFactory
-        * @param formElement
-        */
        public SampleDesignationDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
                super(formFactory, formElement);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#createControls(eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement, java.lang.Object, int)
-        */
        @Override
        protected void createControls(ICdmFormElement formElement,
-               DerivedUnitFacade facade, int style) {
-           DnaSample entity = (DnaSample)getEntity().innerDerivedUnit();
-        sectionCurrentSampleDesignation = formFactory.createCurrentSampleDesignationDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(CurrentSampleDesignationDetailSection.class, entity.getClass().getCanonicalName(), true));
+               DerivedUnit facade, int style) {
+           DerivedUnit entity = getEntity();
+        sectionCurrentSampleDesignation = formFactory.createCurrentSampleDesignationDetailSection(formElement, StoreUtil.getSectionStyle(CurrentSampleDesignationDetailSection.class, entity.getClass().getCanonicalName(), true));
         sectionCurrentSampleDesignation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         sectionCurrentSampleDesignation.setEntity(entity);
 
-        sectionSampleDesignationHistory = formFactory.createSampleDesignationHistoryDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(SampleDesignationHistoryDetailSection.class, entity.getClass().getCanonicalName()));
+        sectionSampleDesignationHistory = formFactory.createSampleDesignationHistoryDetailSection(formElement, StoreUtil.getSectionStyle(SampleDesignationHistoryDetailSection.class, entity.getClass().getCanonicalName()));
         sectionSampleDesignationHistory.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         sectionSampleDesignationHistory.setEntity(entity);
-
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)
-        */
        @Override
        public void handleEvent(Object eventSource) {
                if(eventSource == sectionCurrentSampleDesignation){
@@ -65,4 +51,9 @@ public class SampleDesignationDetailElement extends AbstractCdmDetailElement<Der
                }
        }
 
-}
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
+}
\ No newline at end of file
index da688d76bf2f68f4845114f8c7e424e10a45f575..04ba23ce04adf6830bbd4ca5bcc292ea4955ce9b 100644 (file)
@@ -6,41 +6,27 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
 /**
  * @author n.hoffmann
  * @created May 11, 2011
- * @version 1.0
  */
-public class SampleDesignationDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
+public class SampleDesignationDetailSection extends AbstractCdmDetailSection<DerivedUnit> {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param selectionProvider
-        * @param style
-        */
        public SampleDesignationDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#getHeading()
-        */
        @Override
        public String getHeading() {
                return "Sample Designations";
@@ -52,12 +38,8 @@ public class SampleDesignationDetailSection extends AbstractCdmDetailSection<Der
            setTextClient(createToolbar());
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
-       protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+       protected SampleDesignationDetailElement createCdmDetailElement(AbstractCdmDetailSection<DerivedUnit> parentElement, int style) {
            return formFactory.createSampleDesignationDetailElement(parentElement);
        }
-
-}
+}
\ No newline at end of file
index 5cbdc1e375e7776c9b8c35041872daa9e498a170..96d45bf71c7e7c87f0da5d596d072477fb858f05 100644 (file)
@@ -6,14 +6,12 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.LinkedList;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.Identifier;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -24,25 +22,14 @@ import eu.etaxonomy.taxeditor.view.search.derivative.DerivateLabelProvider;
 /**
  * @author n.hoffmann
  * @created May 11, 2011
- * @version 1.0
  */
 public class SampleDesignationHistoryDetailSection extends AbstractSampleDesignationDetailSection {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param style
-        */
        public SampleDesignationHistoryDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
-                       int style) {
-               super(formFactory, conversation, parentElement, "Sample Designation History", style);
+                       ICdmFormElement parentElement,int style) {
+               super(formFactory, parentElement, "Sample Designation History", style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
-        */
        @Override
        public Collection<Identifier> getCollection(IdentifiableEntity<?> entity) {
            LinkedList<Identifier> sampleDesignations = new LinkedList<>();
@@ -67,20 +54,11 @@ public class SampleDesignationHistoryDetailSection extends AbstractSampleDesigna
                internalUpdateSection(false);
        }
 
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
-        */
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Add a sample designation to the history";
        }
 
-       /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-     */
-    /** {@inheritDoc} */
     @Override
     public void addElement(Identifier sampleDesignation) {
         //The current sample designation is always the first one found.
@@ -91,20 +69,13 @@ public class SampleDesignationHistoryDetailSection extends AbstractSampleDesigna
         getEntity().addIdentifier(indexOfCurrentSampleDesignation+1, sampleDesignation);
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Identifier addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-}
+}
\ No newline at end of file
index 9392dd2499754932799ba666ed70cd6a671d0dd8..28c46f68ec271a9466a2f1270972a2b474f80402 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import org.eclipse.swt.events.SelectionListener;
@@ -20,47 +19,28 @@ import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 
 /**
- *
  * @author pplitzner
  * @date Oct 16, 2014
- *
- * @param <T>
  */
-public class SampleDesignationTextDetailElement extends
-               AbstractEntityCollectionElement<Identifier> {
+public class SampleDesignationTextDetailElement
+        extends AbstractEntityCollectionElement<Identifier> {
 
     protected TextWithLabelElement text_description;
 
-       /**
-     * @param formFactory
-     * @param section
-     * @param entity
-     * @param removeListener
-     * @param backgroundColor
-     * @param style
-     */
     public SampleDesignationTextDetailElement(CdmFormFactory formFactory, AbstractFormSection<?> section,
             Identifier entity, SelectionListener removeListener, Color backgroundColor, int style) {
         super(formFactory, section, entity, removeListener, backgroundColor, style);
     }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#createControls
-        * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, int)
-        */
-       /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
                text_description = formFactory.createTextWithLabelElement(element,
                                "Sample Designation", null, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#handleEvent(java.lang.Object)
-     */
     @Override
     public void handleEvent(Object eventSource) {
         if(eventSource==text_description){
@@ -72,13 +52,11 @@ public class SampleDesignationTextDetailElement extends
         }
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#setEntity(java.lang.Object)
-     */
     @Override
     public void setEntity(Identifier entity) {
         this.entity = entity;
-        text_description.setText(entity.getIdentifier());
+        if (text_description != null){
+               text_description.setText(entity.getIdentifier());
+        }
     }
-
-}
+}
\ No newline at end of file
index 98b82a4ec51a3e80b9bff8e993b937c16fcf3110..8fff9bf51181525c44abf9a4f548c80712688bea 100644 (file)
@@ -12,7 +12,6 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IMediaService;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
@@ -25,27 +24,14 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 /**
  * @author pplitzner
  * @date 03.03.2014
- *
  */
 public class SequenceContigFileCollectionDetailSection extends AbstractEntityCollectionSection<Sequence, Media> {
 
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param title
-     * @param style
-     */
-    public SequenceContigFileCollectionDetailSection(CdmFormFactory formFactory, ConversationHolder conversation,
+    public SequenceContigFileCollectionDetailSection(CdmFormFactory formFactory,
             ICdmFormElement parentElement, int style) {
-        super(formFactory, conversation, parentElement, "Contig File", style);
+        super(formFactory, parentElement, "Contig File", style);
     }
 
-
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
-     */
     @Override
     public Collection<Media> getCollection(Sequence entity) {
         if(entity.getContigFile()!=null){
@@ -59,9 +45,6 @@ public class SequenceContigFileCollectionDetailSection extends AbstractEntityCol
         return new DefaultCdmBaseComparator<>();
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#createNewElement()
-     */
     @Override
     public Media createNewElement() {
         if(getEntity().getContigFile()==null){
@@ -70,9 +53,6 @@ public class SequenceContigFileCollectionDetailSection extends AbstractEntityCol
         return null;
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#addElement(java.lang.Object)
-     */
     @Override
     public void addElement(Media element) {
         if(getEntity().getContigFile()==null){
@@ -88,47 +68,28 @@ public class SequenceContigFileCollectionDetailSection extends AbstractEntityCol
         }
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#removeElement(java.lang.Object)
-     */
     @Override
     public void removeElement(Media element) {
         getEntity().setContigFile(null);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getEmptyString()
-     */
     @Override
     public String getEmptyString() {
         return "No contig file yet";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getTooltipString()
-     */
     @Override
     protected String getTooltipString() {
         return "Add a contig file";
     }
 
-
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Media addExisting() {
         return null;
     }
 
-
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-}
+}
\ No newline at end of file
index 63e82b082164addb177c515bd17073955973a02f..1fb93a059d3fe3b4ed4debb152f3c4cbbe3b79df 100644 (file)
@@ -8,13 +8,13 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
-import java.net.URI;
 import java.net.URISyntaxException;
 
 import org.eclipse.swt.widgets.Text;
 
 import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
 import eu.etaxonomy.cdm.model.molecular.SequenceString;
 import eu.etaxonomy.taxeditor.preference.Resources;
@@ -28,7 +28,6 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 /**
  * @author pplitzner
  * @date 19.12.2013
- *
  */
 public class SequenceGeneralDetailElement extends AbstractCdmDetailElement<Sequence> {
 
@@ -141,4 +140,10 @@ public class SequenceGeneralDetailElement extends AbstractCdmDetailElement<Seque
         }
     }
 
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
+
 }
index 90cbeeabcf33856d3aced51a0fb6cbe6acd82a62..d17fe7a031239ebd04229b063ecbdb7c1910114f 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -20,38 +19,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author pplitzner
  * @date 19.12.2013
- *
  */
 public class SequenceGeneralDetailSection extends AbstractCdmDetailSection<Sequence>{
 
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param selectionProvider
-     * @param style
-     */
     public SequenceGeneralDetailSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement,
+            ICdmFormElement parentElement,
             ISelectionProvider selectionProvider, int style) {
-        super(formFactory, conversation, parentElement, selectionProvider, style);
+        super(formFactory, parentElement, selectionProvider, style);
     }
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-     */
     @Override
     public String getHeading() {
         return "General";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-     */
     @Override
     protected AbstractCdmDetailElement<Sequence> createCdmDetailElement(AbstractCdmDetailSection<Sequence> parentElement, int style) {
         return formFactory.createSequenceGeneralDetailElement(parentElement);
     }
-
-}
+}
\ No newline at end of file
index b648cc31118bfd0a11946f9a727f7b4d07af1ce2..55473d44328c0ebc40f76b28cbcf252ad04d85e7 100644 (file)
@@ -23,9 +23,9 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author pplitzner
  * @date 07.01.2014
- *
  */
-public class SequenceReferenceCollectionDetailElement extends AbstractEntityCollectionElement<Reference>{
+public class SequenceReferenceCollectionDetailElement
+        extends AbstractEntityCollectionElement<Reference>{
 
     protected EntitySelectionElement<Reference> selection_reference;
     protected TextWithLabelElement text_referenceDetail;
@@ -36,22 +36,27 @@ public class SequenceReferenceCollectionDetailElement extends AbstractEntityColl
         super(formFactory, section, entity, removeListener, null, style);
     }
 
-    /** {@inheritDoc} */
     @Override
     public void createControls(ICdmFormElement formElement, int style) {
         selection_reference = formFactory
-                .createSelectionElement(Reference.class,//getConversationHolder(),
+                .createSelectionElement(Reference.class,
                         formElement, "Reference",
                         null, EntitySelectionElement.SELECTABLE|EntitySelectionElement.EDITABLE, style);
         text_referenceDetail = formFactory.createTextWithLabelElement(
                 formElement, "Reference Detail", null, SWT.NULL);
+        if (entity != null){
+               setEntity(entity);
+        }
     }
 
     @Override
     public void setEntity(Reference entity) {
         this.entity = entity;
-        selection_reference.setEntity(entity);
-        text_referenceDetail.setText(entity.getReferenceAbstract());
+        if(selection_reference != null){
+               selection_reference.setEntity(entity);
+               text_referenceDetail.setText(entity.getReferenceAbstract());
+        }
+        
     }
 
     @Override
@@ -70,5 +75,4 @@ public class SequenceReferenceCollectionDetailElement extends AbstractEntityColl
             entity.setReferenceAbstract(text_referenceDetail.getText());
         }
     }
-
-}
+}
\ No newline at end of file
index ead142425a43133fdc5d23f16fe548c6ee16b8ea..9f00d6722484496c188707c429c239b669257b75 100644 (file)
@@ -11,7 +11,6 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
@@ -21,21 +20,17 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
  * This section visualizes {@link Reference}s belonging to a {@link Sequence} and alllows adding/removing them.
+ *
  * @author pplitzner
  * @date 07.01.2014
- *
  */
 public class SequenceReferenceCollectionDetailSection extends AbstractUnboundEntityCollectionSection<Sequence, Reference> {
 
     public SequenceReferenceCollectionDetailSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-        super(formFactory, conversation, parentElement, "References", style);
+            ICdmFormElement parentElement, int style) {
+        super(formFactory, parentElement, "References", style);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractNullEntityCollectionSection#getEntityCollection(java.lang.Object)
-     */
-    /** {@inheritDoc} */
     @Override
     protected Collection<Reference> getEntityCollection(Sequence entity) {
         return entity.getCitations();
@@ -46,66 +41,38 @@ public class SequenceReferenceCollectionDetailSection extends AbstractUnboundEnt
         return new DefaultCdmBaseComparator<>();
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#createNewElement()
-     */
-    /** {@inheritDoc} */
     @Override
     public Reference createNewElement() {
         return ReferenceFactory.newGeneric();
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-     */
-    /** {@inheritDoc} */
     @Override
     public void addElement(Reference element) {
         //never gets called
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-     */
-    /** {@inheritDoc} */
     @Override
     public void removeElement(Reference element) {
         getEntity().removeCitation(element);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
-     */
-    /** {@inheritDoc} */
     @Override
     public String getEmptyString() {
         return "No references yet.";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
-     */
-    /** {@inheritDoc} */
     @Override
     protected String getTooltipString() {
         return "Add a reference";
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Reference addExisting() {
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-
-
-}
+}
\ No newline at end of file
index 58e0416eac2b68b1deb8af4115c4213ee7ff77d3..1cac012a9fc5301e3dfff2822aca2aed0a1fa82f 100644 (file)
@@ -23,60 +23,41 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author pplitzner
  * @date 06.01.2014
- *
  */
 public class SingleReadGeneralDetailElement extends AbstractCdmDetailElement<SingleRead> {
 
     private EntitySelectionElement<Primer> selectionPrimer;
     private EntitySelectionElement<Amplification> selectionAmplification;
 
-    /**
-     * @param formFactory
-     * @param formElement
-     */
     public SingleReadGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
         super(formFactory, formElement);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
-     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
-     */
     @Override
     protected void createControls(ICdmFormElement formElement, SingleRead entity, int style) {
-        selectionPrimer = formFactory.createSelectionElement(Primer.class, //getConversationHolder(),
+        selectionPrimer = formFactory.createSelectionElement(Primer.class,
                 formElement, "Primer", entity.getPrimer(), EntitySelectionElement.ALL, style);
         AmplificationResult amplificationResult = entity.getAmplificationResult();
         if(amplificationResult==null){
             amplificationResult = AmplificationResult.NewInstance();
             amplificationResult.addSingleRead(entity);
         }
-        selectionAmplification = formFactory.createSelectionElement(Amplification.class, //getConversationHolder(),
+        selectionAmplification = formFactory.createSelectionElement(Amplification.class,
                 formElement, "Amplification", amplificationResult.getAmplification(), EntitySelectionElement.ALL, style);
 
-        AnnotationSection annotationSection = formFactory.createAnnotationSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(AnnotationSection.class, entity.getClass().getCanonicalName()));
+        AnnotationSection annotationSection = formFactory.createAnnotationSection(formElement, StoreUtil.getSectionStyle(AnnotationSection.class, entity.getClass().getCanonicalName()));
         annotationSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         annotationSection.setEntity(entity);
 
-        AmplificationCloningDetailSection cloningSection = formFactory.createAmplificationCloningDetailSection(getConversationHolder(), formElement, formFactory.getSelectionProvider(), StoreUtil.getSectionStyle(AmplificationCloningDetailSection.class, amplificationResult.getClass().getCanonicalName()));
+        AmplificationCloningDetailSection cloningSection = formFactory.createAmplificationCloningDetailSection(formElement, formFactory.getSelectionProvider(), StoreUtil.getSectionStyle(AmplificationCloningDetailSection.class, amplificationResult.getClass().getCanonicalName()));
         cloningSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         cloningSection.setEntity(amplificationResult);
 
-        AmplificationGelPhotoCollectionDetailSection gelPhotoSection = formFactory.createAmplificationGelPhotoCollectionDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(AmplificationGelPhotoCollectionDetailSection.class, amplificationResult.getClass().getCanonicalName()));
+        AmplificationGelPhotoCollectionDetailSection gelPhotoSection = formFactory.createAmplificationGelPhotoCollectionDetailSection(formElement, StoreUtil.getSectionStyle(AmplificationGelPhotoCollectionDetailSection.class, amplificationResult.getClass().getCanonicalName()));
         gelPhotoSection.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
         gelPhotoSection.setEntity(amplificationResult);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
-     * .lang.Object)
-     */
     @Override
     public void handleEvent(Object eventSource) {
         if(eventSource==selectionPrimer){
@@ -93,4 +74,10 @@ public class SingleReadGeneralDetailElement extends AbstractCdmDetailElement<Sin
             }
         }
     }
+
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+               
+       }
 }
index 60a90987174d3d7e4aa7527ae80252c14e6638e1..c7d1a0678ac24a2917cde73746a658b572796d0b 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.molecular.SingleRead;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -20,38 +19,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author pplitzner
  * @date 06.01.2014
- *
  */
 public class SingleReadGeneralDetailSection extends AbstractCdmDetailSection<SingleRead>{
 
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param selectionProvider
-     * @param style
-     */
     public SingleReadGeneralDetailSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement,
+            ICdmFormElement parentElement,
             ISelectionProvider selectionProvider, int style) {
-        super(formFactory, conversation, parentElement, selectionProvider, style);
+        super(formFactory, parentElement, selectionProvider, style);
     }
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-     */
     @Override
     public String getHeading() {
         return "General";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-     */
     @Override
     protected AbstractCdmDetailElement<SingleRead> createCdmDetailElement(AbstractCdmDetailSection<SingleRead> parentElement, int style) {
         return formFactory.createSingleReadGeneralDetailElement(parentElement);
     }
-
-}
+}
\ No newline at end of file
index fcb253ffccebec155d8658b7eab198be99f44233..cc1f2aa272a5a667ebafa82bc15c4520358cfb48 100644 (file)
@@ -12,7 +12,6 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IMediaService;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.molecular.SingleRead;
@@ -25,27 +24,14 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 /**
  * @author pplitzner
  * @date 03.03.2014
- *
  */
 public class SingleReadPherogramCollectionDetailSection extends AbstractEntityCollectionSection<SingleRead, Media> {
 
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param title
-     * @param style
-     */
-    public SingleReadPherogramCollectionDetailSection(CdmFormFactory formFactory, ConversationHolder conversation,
+    public SingleReadPherogramCollectionDetailSection(CdmFormFactory formFactory,
             ICdmFormElement parentElement, int style) {
-        super(formFactory, conversation, parentElement, "Read Chromatogram", style);
+        super(formFactory, parentElement, "Read Chromatogram", style);
     }
 
-
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
-     */
     @Override
     public Collection<Media> getCollection(SingleRead entity) {
         if(entity.getPherogram()!=null){
@@ -59,9 +45,6 @@ public class SingleReadPherogramCollectionDetailSection extends AbstractEntityCo
         return new DefaultCdmBaseComparator<>();
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#createNewElement()
-     */
     @Override
     public Media createNewElement() {
         if(getEntity().getPherogram()==null){
@@ -70,9 +53,6 @@ public class SingleReadPherogramCollectionDetailSection extends AbstractEntityCo
         return null;
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#addElement(java.lang.Object)
-     */
     @Override
     public void addElement(Media element) {
         if(getEntity().getPherogram()==null){
@@ -88,47 +68,28 @@ public class SingleReadPherogramCollectionDetailSection extends AbstractEntityCo
         }
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#removeElement(java.lang.Object)
-     */
     @Override
     public void removeElement(Media element) {
         getEntity().setPherogram(null);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getEmptyString()
-     */
     @Override
     public String getEmptyString() {
         return "No read chromatogram yet";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getTooltipString()
-     */
     @Override
     protected String getTooltipString() {
         return "Add a read chromatogram";
     }
 
-
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Media addExisting() {
         return null;
     }
 
-
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         return false;
     }
-}
+}
\ No newline at end of file
index 5aa32225d6172847223079b4ba512953e6ae1199..7f3e2a269df9aa975276e1941e724d58ea13505d 100644 (file)
@@ -8,15 +8,16 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.Institution;
 import eu.etaxonomy.cdm.model.common.TimePeriod;
-import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
 import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.cdm.model.term.TermType;
@@ -35,13 +36,13 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author pplitzner
  * @date 16.12.2013
- *
  */
 public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
 
-    private final TermVocabulary plantKindOfUnitVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.PlantKindOfUnit.getUuid());
+    @SuppressWarnings("unused")
+    static private final Logger logger = LogManager.getLogger(TissueSampleGeneralDetailElement.class);
 
-    static private final Logger logger = Logger.getLogger(TissueSampleGeneralDetailElement.class);
+    private final TermVocabulary<?> plantKindOfUnitVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.PlantKindOfUnit.getUuid());
 
     private TermComboElement<DefinedTerm> comboKindOfTissue;
     private EntitySelectionElement<Institution> selectionInstitution;
@@ -53,25 +54,13 @@ public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<D
     private TextWithLabelElement textBarcode;
     private CheckboxElement checkIsPublish;
 
-
-    /**
-     * @param formFactory
-     * @param formElement
-     */
     public TissueSampleGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
         super(formFactory, formElement);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
-     * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
-     */
     @Override
     protected void createControls(ICdmFormElement formElement, DerivedUnitFacade facade, int style) {
-        DnaSample entity = (DnaSample)getEntity().innerDerivedUnit();
+        DerivedUnit entity = getEntity().innerDerivedUnit();
 
         comboKindOfTissue = formFactory.createDefinedTermComboElement(plantKindOfUnitVocabulary, formElement, "Kind Of Tissue", entity.getKindOfUnit(), style);
         TimePeriod preparationDate = null;
@@ -86,30 +75,22 @@ public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<D
         if(entity.getPreservation()!=null){
             preservationMedium = entity.getPreservation().getMedium();
         }
-        selectionInstitution = formFactory.createSelectionElement(Institution.class, //getConversationHolder(),
+        selectionInstitution = formFactory.createSelectionElement(Institution.class,
                 formElement, "Institution", institution, EntitySelectionElement.ALL, style);
-        selectionStaff = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
+        selectionStaff = formFactory.createSelectionElement(AgentBase.class,
                 formElement, "Staff", staff, EntitySelectionElement.ALL,style);
         datePreparation = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
         comboPreservationMedium = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Preservation medium", preservationMedium, style);
-        selectionCollection = formFactory.createSelectionElement(Collection.class, //getConversationHolder(),
+        selectionCollection = formFactory.createSelectionElement(Collection.class,
                 formElement, "Collection", entity.getCollection(), EntitySelectionElement.ALL, style);
         textAccessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
         textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
         checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
-
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
-     * .lang.Object)
-     */
     @Override
     public void handleEvent(Object eventSource) {
-        DnaSample entity = (DnaSample)getEntity().innerDerivedUnit();
+        DerivedUnit entity = getEntity().innerDerivedUnit();
         if(eventSource==comboKindOfTissue) {
             entity.setKindOfUnit(comboKindOfTissue.getSelection());
         }
@@ -146,7 +127,7 @@ public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<D
     }
 
     private PreservationMethod addPreservationMethod(){
-        DnaSample entity = (DnaSample)getEntity().innerDerivedUnit();
+        DerivedUnit entity = getEntity().innerDerivedUnit();
         PreservationMethod preservationMethod = null;
         preservationMethod = entity.getPreservation();
         if(entity.getPreservation()==null){
@@ -155,4 +136,20 @@ public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<D
         }
         return preservationMethod;
     }
-}
+
+    @Override
+    public void fillFields() {
+
+       //TODO: implement
+//     comboKindOfTissue;
+//        selectionInstitution;
+//        selectionStaff;
+//        datePreparation;
+//        comboPreservationMedium;
+//        selectionCollection;
+//        textAccessionNumber;
+//        textBarcode;
+//        checkIsPublish;
+
+    }
+}
\ No newline at end of file
index 6293260aad41a1828e10921faabdc7649d36664b..0dfd287dc0c0b5b26a461a8d9cb0929ad3ea1153 100644 (file)
@@ -10,8 +10,7 @@ package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -20,38 +19,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**
  * @author pplitzner
  * @date 12.12.2013
- *
  */
 public class TissueSampleGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
 
-    /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param selectionProvider
-     * @param style
-     */
     public TissueSampleGeneralDetailSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement,
+            ICdmFormElement parentElement,
             ISelectionProvider selectionProvider, int style) {
-        super(formFactory, conversation, parentElement, selectionProvider, style);
+        super(formFactory, parentElement, selectionProvider, style);
     }
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-     */
     @Override
     public String getHeading() {
         return "General";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-     */
     @Override
     protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
         return formFactory.createTissueSampleGeneralDetailElement(parentElement);
     }
-
-}
+}
\ No newline at end of file
index fd3309c20385a031974672183873f2266eb579c8..79aa3a354fafdb5666e2a8f35c289aef3d7b1d1e 100644 (file)
@@ -8,11 +8,14 @@
  */
 package eu.etaxonomy.taxeditor.ui.section.occurrence.media;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.swt.SWT;
+
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
 import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.common.TimePeriod;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.occurrence.Collection;
@@ -27,7 +30,9 @@ import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LabelElement;
 import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.MultilanguageTextElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -38,67 +43,89 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author pplitzner
  * @date 16.12.2013
- *
  */
-public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> implements ITogglableMediaElement{
+public class MediaSpecimenGeneralDetailElement
+        extends AbstractCdmDetailElement<MediaSpecimen>
+        implements ITogglableMediaElement{
 
-    private final TermVocabulary mediaSpecimenVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.MediaSpecimenKindOfUnit.getUuid());
+    private final TermVocabulary<?> mediaSpecimenVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.MediaSpecimenKindOfUnit.getUuid());
 
     private TermComboElement<DefinedTerm> comboKindOfUnit;
     private LanguageStringWithLabelElement textTitleLanguageString;
+    private MultilanguageTextElement text_description;
     private EntitySelectionElement<AgentBase> selectionArtist;
     private TimePeriodElement date;
     private LanguageStringWithLabelElement textMethodLanguageString;
     private EntitySelectionElement<Collection> selection_collection;
     private TextWithLabelElement text_accessionNumber;
     private EntitySelectionElement<Reference> selection_publishedIn;
+    private TextWithLabelElement text_published_in_detail;
     private CheckboxElement checkIsPublish;
 
     private MediaDetailElement mediaDetailElement;
-    /**
-     * @param formFactory
-     * @param formElement
-     */
+
     public MediaSpecimenGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
         super(formFactory, formElement);
     }
 
     @Override
-    protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
-        MediaSpecimen specimen = null;
-        if (entity.innerDerivedUnit() instanceof MediaSpecimen){
-             specimen = (MediaSpecimen)entity.innerDerivedUnit();
-        }
-        Media media = null;
-        if (specimen != null){
-            media = specimen.getMediaSpecimen();
-        }
+    protected void createControls(ICdmFormElement formElement, MediaSpecimen entity, int style) {
+
+        Media media = entity == null ? null: entity.getMediaSpecimen();
+
         if(media==null){
             formFactory.createLabel(formElement, "No media attached to this MediaSpecimen!");
         }
         else{
-            comboKindOfUnit = formFactory.createDefinedTermComboElement(mediaSpecimenVocabulary, formElement, "Kind of Media", specimen.getKindOfUnit(), style);
-            textTitleLanguageString = formFactory.createLanguageStringWithLabelElement(formElement, "Motif", media.getTitle(), style);
-            selectionArtist = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
+            comboKindOfUnit = formFactory.createDefinedTermComboElement(mediaSpecimenVocabulary, formElement, "Kind of Media", entity.getKindOfUnit(), style);
+            textTitleLanguageString = formFactory.createLanguageStringWithLabelElement(formElement, "Subject", media.getTitle(CdmStore.getDefaultLanguage()), style);
+            if (getEntity() != null && media.getAllDescriptions() != null && !media.getAllDescriptions().isEmpty() ) {
+               boolean textExists = false;
+               for (LanguageString lngStr: media.getAllDescriptions().values()) {
+                       if (StringUtils.isNotBlank(lngStr.getText())) {
+                               textExists = true;
+                               break;
+                       }
+               }
+               if (textExists) {
+                       text_description = formFactory.createMultiLanguageTextElement(formElement, "Description", media.getAllDescriptions(), 50, SWT.WRAP);
+               }
+            }
+
+//            text_description = formFactory.createMultiLanguageTextElement(this, "Description", media.getAllDescriptions(), 200, SWT.WRAP);
+
+            LabelElement label1 = formFactory.createLabel(formElement, "");
+
+            selectionArtist = formFactory.createSelectionElement(AgentBase.class,
                     formElement, "Prepared by", media.getArtist(), EntitySelectionElement.ALL, style);
-            TimePeriod mediaCreated = specimen.getMediaSpecimen().getMediaCreated();
+            TimePeriod mediaCreated = entity.getMediaSpecimen().getMediaCreated();
 
             date = formFactory.createTimePeriodElement(formElement, "Preparation Date", mediaCreated, style);
             textMethodLanguageString = formFactory.createLanguageStringWithLabelElement(formElement, "Method", media.getDescription(Language.getDefaultLanguage()), style);
-            selection_collection = formFactory.createSelectionElement(Collection.class,// getConversationHolder(),
+//            EmptyElement spacer = formFactory.createEmptyElement(formElement, ""); //$NON-NLS-1$
+//            spacer.setBackground(getPersistentBackground());
+            LabelElement label2 = formFactory.createLabel(formElement, "");
+
+            selection_collection = formFactory.createSelectionElement(Collection.class,
                     formElement, "Collection", entity.getCollection(), EntitySelectionElement.ALL, style);
             text_accessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
 
+            LabelElement label3 = formFactory.createLabel(formElement, "");
             //the first PrimaryMediaSource is used for storing the reference
             Reference publishedIn = null;
+            String publishedInDetail = null;
             for(IdentifiableSource source:media.getSources()){
                 if(source.getType()==OriginalSourceType.PrimaryMediaSource){
                     publishedIn = source.getCitation();
+                    publishedInDetail = source.getCitationMicroReference();
                     break;
                 }
             }
-            selection_publishedIn = formFactory.createSelectionElement(Reference.class, //getConversationHolder(),
+            selection_publishedIn = formFactory.createSelectionElement(Reference.class,
                     formElement, "Published in", publishedIn, EntitySelectionElement.ALL, style);
+            text_published_in_detail = formFactory.createTextWithLabelElement(formElement, "Published in Detail", publishedInDetail, style);
+            LabelElement label4 = formFactory.createLabel(formElement, "");
+
             checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
 
             mediaDetailElement = formFactory.createMediaDetailElement(formElement);
@@ -108,26 +135,30 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
 
     @Override
     public void handleEvent(Object eventSource) {
-        Media media = ((MediaSpecimen)getEntity().innerDerivedUnit()).getMediaSpecimen();
+        Media media = getEntity().getMediaSpecimen();
         if(media==null){
             media = Media.NewInstance();
-            ((MediaSpecimen)getEntity().innerDerivedUnit()).setMediaSpecimen(media);
+            getEntity().setMediaSpecimen(media);
         }
         if(eventSource==comboKindOfUnit){
-            ((MediaSpecimen)getEntity().innerDerivedUnit()).setKindOfUnit(comboKindOfUnit.getSelection());
+            getEntity().setKindOfUnit(comboKindOfUnit.getSelection());
         }
         else if(eventSource==textTitleLanguageString){
-            media.putTitle(textTitleLanguageString.getLanguageString());
+            getEntity().getMediaSpecimen().putTitle(textTitleLanguageString.getLanguageString());
+            getEntity().resetTitleCache();
         }
         else if(eventSource==date){
             TimePeriod dateTime = date.getTimePeriod();
-            media.setMediaCreated(dateTime);
+            getEntity().getMediaSpecimen().setMediaCreated(dateTime);
+            getEntity().resetTitleCache();
         }
         else if(eventSource==selectionArtist){
-            media.setArtist(selectionArtist.getSelection());
+            getEntity().getMediaSpecimen().setArtist(selectionArtist.getSelection());
+            getEntity().resetTitleCache();
         }
         else if(eventSource==textMethodLanguageString){
-            media.addDescription(textMethodLanguageString.getLanguageString());
+            media.putDescription(textMethodLanguageString.getLanguageString());
+            getEntity().setMediaSpecimen(media);
         }
         else if (eventSource == selection_collection) {
             getEntity().setCollection(selection_collection.getSelection());
@@ -150,9 +181,25 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
                 primaryMediaSource.setCitation(selection_publishedIn.getSelection());
             }
         }
+        else if(eventSource==text_published_in_detail){
+            IdentifiableSource primaryMediaSource = null;
+            for(IdentifiableSource source:media.getSources()){
+                if(source.getType()==OriginalSourceType.PrimaryMediaSource){
+                    primaryMediaSource = source;
+                }
+            }
+            if(primaryMediaSource==null){
+                primaryMediaSource = IdentifiableSource.NewInstance(OriginalSourceType.PrimaryMediaSource);
+                media.addSource(primaryMediaSource);
+            }
+            else{
+                primaryMediaSource.setCitationMicroReference(text_published_in_detail.getText());
+            }
+        }
         else if(eventSource==checkIsPublish){
-            ((MediaSpecimen)getEntity().innerDerivedUnit()).setPublish(checkIsPublish.getSelection());
+            getEntity().setPublish(checkIsPublish.getSelection());
         }
+
     }
 
     @Override
@@ -169,4 +216,10 @@ public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<
         return mediaDetailElement.isAdvancedMediaView();
     }
 
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+
+       }
+
 }
index 4aa00678fcd2293f216715b8cc57e3625c7d0a75..0a1ea2aa9cc545d14e66d155b398d10d5f1af2bd 100644 (file)
@@ -13,8 +13,7 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Control;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
@@ -25,16 +24,15 @@ import eu.etaxonomy.taxeditor.ui.section.media.MediaViewSwitch;
 /**
  * @author pplitzner
  * @date 12.12.2013
- *
  */
-public class MediaSpecimenGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
+public class MediaSpecimenGeneralDetailSection extends AbstractCdmDetailSection<MediaSpecimen> {
 
     private ITogglableMediaElement togglableMediaElement;
 
     public MediaSpecimenGeneralDetailSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement,
+            ICdmFormElement parentElement,
             ISelectionProvider selectionProvider, int style) {
-        super(formFactory, conversation, parentElement, selectionProvider, style);
+        super(formFactory, parentElement, selectionProvider, style);
     }
 
     @Override
@@ -48,7 +46,7 @@ public class MediaSpecimenGeneralDetailSection extends AbstractCdmDetailSection<
     }
 
     @Override
-    protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+    protected AbstractCdmDetailElement<MediaSpecimen> createCdmDetailElement(AbstractCdmDetailSection<MediaSpecimen> parentElement, int style) {
         MediaSpecimenGeneralDetailElement mediaSpecimenGeneralDetailElement = formFactory.createMediaSpecimenGeneralDetailElement(parentElement);
         togglableMediaElement = mediaSpecimenGeneralDetailElement;
         return mediaSpecimenGeneralDetailElement;
@@ -60,6 +58,4 @@ public class MediaSpecimenGeneralDetailSection extends AbstractCdmDetailSection<
         toolBarManager.add(MediaViewSwitch.createSwitch(togglableMediaElement));
         return toolBarManager.createControl(this);
     }
-
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/AdvancedNomenclaturalSourceElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/AdvancedNomenclaturalSourceElement.java
new file mode 100755 (executable)
index 0000000..4ba1203
--- /dev/null
@@ -0,0 +1,58 @@
+/**
+* Copyright (C) 2020 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.reference;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.reference.OriginalSourceBase;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+
+/**
+ * @author k.luther
+ * @since Nov 12, 2020
+ */
+public class AdvancedNomenclaturalSourceElement extends AdvancedSourceElement {
+
+    /**
+     * @param formFactory
+     * @param formElement
+     */
+    public AdvancedNomenclaturalSourceElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+        super(formFactory, formElement);
+        // TODO Auto-generated constructor stub
+    }
+
+    @Override
+    protected void createControls(ICdmFormElement formElement, OriginalSourceBase entity, int style) {
+        Display display = Display.getCurrent();
+        Color background = display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
+        text_originalInfo = formFactory.createTextWithLabelElement(
+                formElement, "Original Information", entity != null?entity.getOriginalInfo():null, SWT.NULL);
+
+        text_originalInfo.setBackground(background);
+
+        if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey())){
+            text_idNamespace = formFactory.createTextWithLabelElement(formElement, "ID Namespace", entity != null?entity.getIdNamespace():null, style);
+            text_idNamespace.setBackground(background);
+        }
+        if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSource.getKey())){
+            text_idInSource = formFactory.createTextWithLabelElement(formElement, "ID in Source", entity != null?entity.getIdInSource():null, style);
+            text_idInSource.setBackground(background);
+
+        }
+        Label label = formFactory.createEmptyCell(getLayoutComposite());
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/AdvancedSourceElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/AdvancedSourceElement.java
new file mode 100644 (file)
index 0000000..014bf9e
--- /dev/null
@@ -0,0 +1,96 @@
+/**
+* Copyright (C) 2020 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.reference;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Display;
+
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.reference.NamedSourceBase;
+import eu.etaxonomy.cdm.model.reference.OriginalSourceBase;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+
+/**
+ * @author k.luther
+ * @since Jul 2, 2020
+ */
+public class AdvancedSourceElement extends AbstractCdmDetailElement<OriginalSourceBase> {
+
+    protected TextWithLabelElement text_idInSource;
+    protected TextWithLabelElement text_idNamespace;
+    protected TextWithLabelElement text_originalInfo;
+    protected TextWithLabelElement text_cdmsource;
+    protected EntitySelectionElement<TaxonName> select_nameUsedInSource;
+
+//    protected ExternalLinksSection externalLinks;
+
+    public AdvancedSourceElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+        super(formFactory, formElement);
+    }
+
+    @Override
+    protected void createControls(ICdmFormElement formElement, OriginalSourceBase entity, int style) {
+        Display display = Display.getCurrent();
+        Color background = display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
+
+        if (entity instanceof NamedSourceBase){
+            select_nameUsedInSource = formFactory.createSelectionElement(TaxonName.class, formElement, "Name in Source", entity != null? ((NamedSourceBase)entity).getNameUsedInSource(): null, EntitySelectionElement.DELETABLE, style);
+            select_nameUsedInSource.setBackground(background);
+        }
+        text_originalInfo = formFactory.createTextWithLabelElement(
+                formElement, "Original Information", entity != null?entity.getOriginalInfo():null, SWT.NULL);
+
+        text_originalInfo.setBackground(background);
+
+        if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey())){
+            text_idNamespace = formFactory.createTextWithLabelElement(formElement, "ID Namespace", entity != null?entity.getIdNamespace():null, style);
+            text_idNamespace.setBackground(background);
+        }
+        if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSource.getKey())){
+            text_idInSource = formFactory.createTextWithLabelElement(formElement, "ID in Source", entity != null?entity.getIdInSource():null, style);
+            text_idInSource.setBackground(background);
+        }
+    }
+
+    @Override
+    public void setEntity(OriginalSourceBase entity) {
+        super.setEntity(entity);
+    }
+
+    @Override
+    public void handleEvent(Object eventSource) {
+        if (eventSource.equals(text_idInSource)){
+             getEntity().setIdInSource(text_idInSource.getText());
+         }else if (eventSource.equals(text_idNamespace)){
+             getEntity().setIdNamespace(text_idNamespace.getText());
+         }else if (eventSource.equals(text_originalInfo)){
+             getEntity().setOriginalInfo(text_originalInfo.getText());
+         }else if (eventSource.equals(select_nameUsedInSource)){
+             ((NamedSourceBase)getEntity()).setNameUsedInSource(select_nameUsedInSource.getEntity());
+         }
+    }
+
+       @Override
+       public void fillFields() {
+               if (this.getEntity() != null) {
+                       text_idInSource.setText(this.getEntity().getIdInSource());
+                   text_idNamespace.setText(this.getEntity().getIdNamespace());;
+                   text_originalInfo.setText(this.getEntity().getOriginalInfo());                  
+                   select_nameUsedInSource.setEntity(((NamedSourceBase)getEntity()).getNameUsedInSource());;
+               }
+               
+       }
+}
\ No newline at end of file
@@ -9,13 +9,11 @@
 
 package eu.etaxonomy.taxeditor.ui.section.reference;
 
+import eu.etaxonomy.cdm.model.name.NomenclaturalSource;
 import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
-import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
  * <p>
@@ -25,11 +23,10 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
  * @author n.hoffmann
  * @created Mar 12, 2010
  */
-public class NomenclaturalReferenceDetailElement extends
+public class NomenclaturalSourceDetailElement extends
                AbstractCdmDetailElement<TaxonName> {
 
-       private EntitySelectionElement<Reference> selection_nomenclaturalReference;
-       private TextWithLabelElement text_referenceDetail;
+    private OriginalSourceElement sourceElement;
 
        /**
         * <p>
@@ -45,34 +42,39 @@ public class NomenclaturalReferenceDetailElement extends
         * @param style
         *            a int.
         */
-       public NomenclaturalReferenceDetailElement(CdmFormFactory cdmFormFactory,
+       public NomenclaturalSourceDetailElement(CdmFormFactory cdmFormFactory,
                        ICdmFormElement formElement, int style) {
                super(cdmFormFactory, formElement);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected void createControls(ICdmFormElement formElement,
                        TaxonName entity, int style) {
-               selection_nomenclaturalReference = formFactory
-                               .createSelectionElementWithAbbreviatedTitle(Reference.class,
-                                               getConversationHolder(), formElement, "Reference",
-                                               entity.getNomenclaturalReference(),
-                                               EntitySelectionElement.ALL, style);
-               text_referenceDetail = formFactory.createTextWithLabelElement(
-                               formElement, "Ref. Detail",
-                               entity.getNomenclaturalMicroReference(), style);
+
+           sourceElement = formFactory.createNomenclaturalSourceElement(formElement, entity, "Reference");
+           if (entity.getNomenclaturalSource() == null){
+            NomenclaturalSource source = NomenclaturalSource.NewNomenclaturalInstance(entity);
+            entity.setNomenclaturalSource(source);
+            sourceElement.setEntity(source);
+        }else{
+            sourceElement.setEntity(entity.getNomenclaturalSource());
+        }
+           sourceElement.setPersistentBackground(formElement.getPersistentBackground());
+
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
-               if (eventSource == selection_nomenclaturalReference) {
-                       getEntity().setNomenclaturalReference(
-                                       selection_nomenclaturalReference.getSelection());
-               } else if (eventSource == text_referenceDetail) {
-                       getEntity().setNomenclaturalMicroReference(
-                                       text_referenceDetail.getText());
+               if (eventSource.equals(sourceElement)) {
+                       getEntity().setNomenclaturalSource((NomenclaturalSource) sourceElement.getEntity());
                }
        }
+
+       @Override
+       public void fillFields() {
+               sourceElement.setEntity(getEntity().getNomenclaturalSource());
+               
+       }
+
+
 }
@@ -11,10 +11,9 @@ package eu.etaxonomy.taxeditor.ui.section.reference;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.name.NomenclaturalSource;
 import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.reference.INomenclaturalReference;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -28,7 +27,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;
@@ -37,19 +36,18 @@ public class NomenclaturalReferenceDetailSection extends
         * <p>Constructor for NomenclaturalReferenceDetailSection.</p>
         *
         * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
         * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
         * @param style a int.
         */
-       public NomenclaturalReferenceDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
+       public NomenclaturalSourceDetailSection(CdmFormFactory cdmFormFactory,
                        ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
-               super(cdmFormFactory, conversation, parentElement, selectionProvider, style);
+               super(cdmFormFactory, parentElement, selectionProvider, style);
        }
 
        @Override
        public String getHeading() {
-               return "Nomenclatural Reference";
+               return "Nomenclatural Source";
        }
 
        @Override
@@ -58,14 +56,23 @@ public class NomenclaturalReferenceDetailSection extends
                TaxonName name = HibernateProxyHelper.deproxy(entity.getName());
                setEntity(name);
        }
+       @Override
+    public void setTaxonBaseWithoutUpdate(TaxonBase entity) {
+               this.taxonBase = entity;
+               TaxonName name = HibernateProxyHelper.deproxy(entity.getName());
+               setEntityWithoutUpdate(name);
+       }
 
        @Override
        protected void setSectionTitle() {
                String title = "";
-               if(getEntity() != null && getEntity().getNomenclaturalReference() != null){
-                       INomenclaturalReference reference = getEntity().getNomenclaturalReference();
-                       String nomenclaturalCitation = reference.getNomenclaturalCitation(getEntity().getNomenclaturalMicroReference());
-                       title = ": " + nomenclaturalCitation;
+               if(getEntity() != null && getEntity().getNomenclaturalSource() != null){
+                       NomenclaturalSource reference = getEntity().getNomenclaturalSource();
+                       if (reference != null && reference.getCitation() != null){
+                           String nomenclaturalCitation = reference.getCitation().getNomenclaturalCitation(reference.getCitationMicroReference());
+                           title = ": " + nomenclaturalCitation;
+                       }
+
                }
                this.setText(getHeading() + title);
        }
@@ -78,6 +85,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);
        }
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/NomenclaturalSourceElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/NomenclaturalSourceElement.java
new file mode 100644 (file)
index 0000000..7ef7a40
--- /dev/null
@@ -0,0 +1,111 @@
+/**
+* Copyright (C) 2020 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.reference;
+
+import org.eclipse.swt.widgets.Label;
+
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
+import eu.etaxonomy.cdm.model.name.NomenclaturalSource;
+import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.section.common.ExternalLinksSection;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElementWithAbbreviatedTitle;
+
+/**
+ * @author k.luther
+ * @since Nov 11, 2020
+ */
+public class NomenclaturalSourceElement extends OriginalSourceElement<NomenclaturalSource> {
+
+    private EntitySelectionElementWithAbbreviatedTitle<Reference> selection_NomRef;
+    private EntitySelectionElement<TaxonName> select_nameUsedInSource;
+
+
+    public NomenclaturalSourceElement(CdmFormFactory formFactory, ICdmFormElement formElement, CdmBase cdmEntity,
+            String label) {
+        super(formFactory, formElement, cdmEntity, label);
+    }
+
+    @Override
+    protected void createControls(ICdmFormElement formElement, NomenclaturalSource entity,  int style) {
+
+        entity = HibernateProxyHelper.deproxy(entity);
+
+        selection_NomRef = formFactory.createSelectionElementWithAbbreviatedTitle(Reference.class,
+                formElement, "Reference",
+                null,
+                EntitySelectionElement.ALL, style);
+
+        if (entity != null){
+            selection_NomRef.setEntity(entity.getCitation());
+        }
+        selection_NomRef.setBackground(this.getPersistentBackground());
+        for (ICdmFormElement element: selection_NomRef.getElements()){
+            element.setBackground(getPersistentBackground());
+        }
+
+        microReference = formFactory.createTextWithLabelElement(formElement, "Details", entity != null? entity.getCitationMicroReference(): "", style);
+
+        Label sep = formFactory.createLabel(formElement.getLayoutComposite(), "");
+        sep.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+
+        select_nameUsedInSource = formFactory.createSelectionElement(TaxonName.class, formElement, "Original Spelling", entity != null? entity.getNameUsedInSource(): null, EntitySelectionElement.ALL, style);
+
+        externalLinks = formFactory.createExternalLinksSection(formElement, "Protologue/Original Publication", false, StoreUtil.getSectionStyle(ExternalLinksSection.class, DescriptionElementSource.class.getCanonicalName()));
+        externalLinks.setEmptySectionString("No protologue yet.");
+        externalLinks.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 3));
+        externalLinks.setEntity(entity);
+        externalLinks.setFont(AbstractUtility.getFont(Resources.COLOR_FONT_DEFAULT));
+        
+
+
+        addControl(externalLinks);
+        addElement(externalLinks);
+        externalLinks.setExpanded(true);
+
+//        advancedSection = formFactory.createOriginalSourceAdvancedSection(formElement, null, StoreUtil.getSectionStyle(OriginalSourceAdvancedSection.class, INomenclaturalReference.class.getCanonicalName()));
+//        TableWrapData layoutData = LayoutConstants.FILL_HORIZONTALLY(2, 1);
+//
+//        advancedSection.setLayoutData(layoutData);
+//        advancedSection.setBackground(this.getPersistentBackground());
+//        advancedSection.setEntity(entity);
+//        advancedSection.setFont(AbstractUtility.getFont(Resources.COLOR_FONT_DEFAULT));
+//        addControl(advancedSection);
+//        addElement(advancedSection);
+        this.getLayoutComposite().layout();
+    }
+
+    @Override
+    public EntitySelectionElement<Reference> getReferenceSelectionElement(){
+        return selection_NomRef;
+    }
+
+    @Override
+    public void handleEvent(Object eventSource) {
+        if (eventSource.equals(selection_NomRef)){
+            getEntity().setCitation(selection_NomRef.getEntity());
+        }
+        if (eventSource.equals(microReference)){
+            getEntity().setCitationMicroReference(microReference.getText());
+        }
+        if (eventSource.equals(select_nameUsedInSource)){
+            (getEntity()).setNameUsedInSource(select_nameUsedInSource.getEntity());
+        }
+        super.handleEvent(eventSource);
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/OriginalSourceAdvancedSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/OriginalSourceAdvancedSection.java
new file mode 100755 (executable)
index 0000000..aec51cc
--- /dev/null
@@ -0,0 +1,63 @@
+/**
+* Copyright (C) 2020 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.reference;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+
+import eu.etaxonomy.cdm.model.reference.OriginalSourceBase;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+
+/**
+ * @author k.luther
+ * @since Jul 1, 2020
+ */
+public class OriginalSourceAdvancedSection extends AbstractCdmDetailSection<OriginalSourceBase> {
+
+    public OriginalSourceAdvancedSection(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
+        super(formFactory, parentElement, selectionProvider, style);
+    }
+
+    @Override
+    protected AbstractCdmDetailElement<OriginalSourceBase> createCdmDetailElement(
+            AbstractCdmDetailSection<OriginalSourceBase> parentElement, int style) {
+
+        if (parentElement.getParentElement() instanceof NomenclaturalSourceElement){
+            return getFormFactory().createAdvancedNomenclaturalSourceDetailElement(parentElement, style);
+        }
+        return getFormFactory().createAdvancedSourceDetailElement(parentElement, style);
+    }
+
+    @Override
+    public String getHeading() {
+
+        return Messages.OriginalSourceAdvancedSection_advanced;
+    }
+    @Override
+    protected void createControlsByType(AbstractCdmDetailSection<OriginalSourceBase> formElement, Class<OriginalSourceBase> entityClass, int style) {
+        super.createControlsByType(formElement, entityClass, style);
+        int i = this.getTextClientHeightDifference();
+
+        TableWrapLayout layout = new TableWrapLayout();
+        layout.topMargin = 0;
+        layout.bottomMargin = 0;
+        layout.numColumns = DEFAULT_NUM_COLUMNS;
+        getLayoutComposite().setLayout(layout);
+//        setLayout(layout);
+    }
+
+//    protected ExternalLinksSection getExternalLinksElement(){
+//        return ((AdvancedSourceElement)this.getDetailElement()).getExternalLinks();
+//    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/OriginalSourceElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/OriginalSourceElement.java
new file mode 100755 (executable)
index 0000000..b985f62
--- /dev/null
@@ -0,0 +1,172 @@
+/**
+* Copyright (C) 2020 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.reference;
+
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.TimePeriod;
+import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
+import eu.etaxonomy.cdm.model.reference.INomenclaturalReference;
+import eu.etaxonomy.cdm.model.reference.NamedSourceBase;
+import eu.etaxonomy.cdm.model.reference.OriginalSourceBase;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.reference.ReferenceType;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.common.ExternalLinksSection;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+
+/**
+ * @author k.luther
+ * @since Jul 1, 2020
+ */
+public class OriginalSourceElement<T extends OriginalSourceBase>
+        extends AbstractCdmDetailElement<T>
+        implements IPropertyChangeListener{
+
+       protected ICdmFormElement composite;
+    protected EntitySelectionElement<Reference> selection_Ref;
+    protected TextWithLabelElement microReference;
+    protected TimePeriodElement accessed;
+    protected OriginalSourceAdvancedSection advancedSection;
+    protected String label = "Source";
+    protected CdmBase cdmEntity;
+    protected ExternalLinksSection externalLinks;
+    protected ReferenceType refType;
+
+    public OriginalSourceElement(CdmFormFactory formFactory, ICdmFormElement formElement, CdmBase cdmEntity, String label) {
+        super(formFactory, formElement);
+        this.cdmEntity = cdmEntity;
+        this.label = label;
+    }
+
+    @Override
+    protected void createControls(ICdmFormElement formElement, T entity,  int style) {
+
+        selection_Ref = formFactory.createSelectionElement(Reference.class,
+                      formElement, label, null,
+                      EntitySelectionElement.ALL, style, 100);
+
+        if (entity != null){
+            selection_Ref.setEntity(entity.getCitation());
+            if (entity.getCitation() != null) {
+               refType = entity.getCitation().getType();
+            }
+
+        }
+        selection_Ref.setBackground(this.getPersistentBackground());
+        microReference = formFactory.createTextWithLabelElement(formElement, "Details", entity != null? entity.getCitationMicroReference(): "", style);
+        microReference.setIndent(10);
+        for (ICdmFormElement element: selection_Ref.getElements()){
+            element.setBackground(getPersistentBackground());
+        }
+
+        //TODO preliminary #10057
+        if (entity != null && entity.getCitation() != null && entity.getCitation().isDynamic()){
+            TimePeriod acc =entity.getAccessed(); // (entity != null? entity.getAccessed(): null);
+            accessed = formFactory.createTimePeriodElement(formElement, "Accessed", acc, style);
+        }
+
+        externalLinks = formFactory.createExternalLinksSection(formElement, "Link(s)", StoreUtil.getSectionStyle(ExternalLinksSection.class, DescriptionElementSource.class.getCanonicalName()));
+        externalLinks.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 3));
+        externalLinks.setEntity(HibernateProxyHelper.deproxy(entity));
+        externalLinks.setFont(AbstractUtility.getFont(Resources.COLOR_FONT_DEFAULT));
+        externalLinks.setEmptySectionString("No links yet.");
+
+        addControl(externalLinks);
+        addElement(externalLinks);
+        advancedSection = formFactory.createOriginalSourceAdvancedSection(formElement, null, StoreUtil.getSectionStyle(OriginalSourceAdvancedSection.class, INomenclaturalReference.class.getCanonicalName()));
+        TableWrapData layoutData = LayoutConstants.FILL_HORIZONTALLY(2, 1);
+        advancedSection.setLayoutData(layoutData);
+        advancedSection.setFont(AbstractUtility.getFont(Resources.COLOR_FONT_DEFAULT));
+        addControl(advancedSection);
+        addElement(advancedSection);
+        advancedSection.setBackground(this.getPersistentBackground());
+        advancedSection.setEntity(entity);
+        if (entity == null){
+            advancedSection.setExpanded(false);
+        }else if (StringUtils.isNotBlank(entity.getIdInSource()) || StringUtils.isNotBlank(entity.getIdNamespace()) || StringUtils.isNotBlank(entity.getOriginalInfo()) || (entity.getLinks() != null && !entity.getLinks().isEmpty())  || (entity instanceof DescriptionElementSource && ((NamedSourceBase)entity).getNameUsedInSource() != null)){
+            advancedSection.setExpanded(true);
+        }else{
+            advancedSection.setExpanded(false);
+        }
+    }
+
+    @Override
+    public void handleEvent(Object eventSource) {
+        if (eventSource.equals(selection_Ref)){
+
+            getEntity().setCitation(selection_Ref.getEntity());
+         
+            ReferenceType newRefType = getEntity().getCitation() != null? getEntity().getCitation().getType(): null;
+            if (refType != null && refType.isDynamic()^(newRefType!= null && newRefType.isDynamic()) ){
+               this.refresh();
+            }
+            refType = newRefType;
+        }else if (eventSource.equals(microReference)){
+            getEntity().setCitationMicroReference(microReference.getText());
+        }else if(eventSource == accessed){
+            getEntity().setAccessed(accessed.getTimePeriod());
+        }
+    }
+
+    public void setCdmEntity(CdmBase cdmEntity) {
+        this.cdmEntity = cdmEntity;
+    }
+
+    public EntitySelectionElement<Reference> getReferenceSelectionElement(){
+        return selection_Ref;
+    }
+
+    public void setIndent(int indent){
+        selection_Ref.setIndent(indent);
+        microReference.setIndent(indent+10);
+        externalLinks.setIndent(indent+10);
+        advancedSection.setIndent(indent+10);
+    }
+
+    @Override
+    public void refresh() {
+               updateContent();
+               this.getParentElement().refresh();
+       }
+
+       @Override
+       public void fillFields() {
+               if (getEntity() != null) {
+                       selection_Ref.setEntity(getEntity().getCitation()!= null? getEntity().getCitation(): null);
+                   microReference.setText(getEntity().getCitationMicroReference());
+                   if (accessed != null) {
+                       accessed.setEntity(getEntity().getAccessed()!= null? getEntity().getAccessed(): null);
+                   }
+                   if (advancedSection != null) {
+                       advancedSection.setEntity(getEntity());
+                   }
+
+                   externalLinks.setEntity(getEntity());
+
+               }
+
+       }
+
+
+
+
+}
\ No newline at end of file
index 522f554779bd51fa04e941382b2afec7ea8e8a58..a0e0982f8fb80251532a55aaaaf63c515428cbb4 100644 (file)
@@ -6,11 +6,8 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.reference;
 
-
-
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -25,34 +22,33 @@ import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
 import eu.etaxonomy.cdm.model.reference.ReferenceType;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
+import eu.etaxonomy.taxeditor.ui.element.CacheRelevance;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.element.DoiWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.IErrorIntolerableElement;
 import eu.etaxonomy.taxeditor.ui.element.IExceptionHandler;
+import eu.etaxonomy.taxeditor.ui.element.LsidWithExceptionLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
 import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.VerbatimTimePeriodElement;
 import eu.etaxonomy.taxeditor.ui.mvc.element.DateElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.common.ExternalLinksSection;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
- * <p>
- * ReferenceBaseDetailElement class.
- * </p>
- *
  * @author n.hoffmann
  * @created Mar 2, 2010
  */
 public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElement<Reference>
                implements IErrorIntolerableElement, IExceptionHandler {
 
+       boolean isNomenclaturalReference = false;
 
-
-    private ToggleableTextElement toggleableAbbrevCache;
+       private ToggleableTextElement toggleableAbbrevCache;
 
        private TextWithLabelElement text_edition;
        private TextWithLabelElement text_editor;
@@ -61,7 +57,9 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
        private TextWithLabelElement text_organisation;
        private TextWithLabelElement text_pages;
        private TextWithLabelElement text_placePublished;
+       private TextWithLabelElement text_placePublished2;
        private TextWithLabelElement text_publisher;
+       private TextWithLabelElement text_publisher2;
        private TextWithLabelElement text_referenceAbstract;
        private TextWithLabelElement text_series;
 //     private TextWithLabelElement text_seriesPart;
@@ -70,38 +68,52 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
        private TextWithLabelElement text_title;
        private DoiWithLabelElement text_doi;
        private UriWithLabelElement text_uri;
+       private LsidWithExceptionLabelElement text_lsid;
        private DateElement text_accessed;
        private EntitySelectionElement<TeamOrPersonBase> selection_authorTeam;
        private VerbatimTimePeriodElement element_timePeriod;
        private EntitySelectionElement<Reference> selection_inReference;
        private EntitySelectionElement<Institution> selection_institution;
        private EnumComboElement<ReferenceType> combo_referenceType;
-
+       private ExternalLinksSection externalLinks;
        private EntitySelectionElement<Reference> selection_inSeries;
-       private boolean isWizard;
+
+    private void registerCacheElements() {
+        registerCacheRelevance(text_edition, toggleable_cache, toggleableAbbrevCache);
+        registerCacheRelevance(text_pages,   toggleable_cache);
+        registerCacheRelevance(text_series,  toggleable_cache, toggleableAbbrevCache);
+        registerCacheRelevance(text_volume,  toggleable_cache, toggleableAbbrevCache);
+        registerCacheRelevance(text_abbrevTitle, toggleableAbbrevCache);
+        registerCacheRelevance(text_title,   toggleable_cache);
+        registerCacheRelevance(text_accessed, toggleable_cache, toggleableAbbrevCache);
+        registerCacheRelevance(selection_authorTeam,  toggleable_cache, toggleableAbbrevCache);
+        registerCacheRelevance(element_timePeriod,  toggleable_cache, toggleableAbbrevCache);
+        registerCacheRelevance(selection_inReference, toggleable_cache, toggleableAbbrevCache);
+        registerCacheRelevance(combo_referenceType,   toggleable_cache, toggleableAbbrevCache);
+    }
 
        /**
-        * <p>
         * Constructor for ReferenceBaseDetailElement.
-        * </p>
-        *
-        * @param cdmFormFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param formElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @param style
-        *            a int.
         */
        public ReferenceDetailElement(CdmFormFactory cdmFormFactory,
-                       ICdmFormElement formElement, int style, boolean isWizard) {
+                       ICdmFormElement formElement, int style) {
                super(cdmFormFactory, formElement);
-               this.isWizard = isWizard;
        }
 
+       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;
+       }
 
-       /** {@inheritDoc} */
        @Override
        protected void createControls(ICdmFormElement formElement,
                        Reference entity, int style) {
@@ -112,7 +124,7 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
 
                toggleableAbbrevCache = formFactory.createToggleableTextField(formElement,
                        "Nomencl. Cache", entity.getAbbrevTitleCache(),
-                       entity.isProtectedAbbrevTitleCache(), style);
+                       entity.isProtectedAbbrevTitleCache(), CacheRelevance.CACHE2, style);
 
                combo_referenceType = formFactory.createEnumComboElement(ReferenceType.class,
                                                formElement, style);
@@ -129,15 +141,21 @@ 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,//getConversationHolder(),
-                               formElement, "Author",
-                                       entity.getAuthorship(),
-                                       EntitySelectionElement.ALL, style);
+                       if (isNomenclaturalReference){
+                               selection_authorTeam = formFactory
+                               .createSelectionElementWithAbbreviatedTitle(TeamOrPersonBase.class,
+                                       formElement, "Author",
+                                               entity.getAuthorship(),
+                                               EntitySelectionElement.ALL, style);
+                       }else{
+                   selection_authorTeam = formFactory
+                               .createSelectionElement(TeamOrPersonBase.class,
+                                       formElement, "Author",
+                                               entity.getAuthorship(),
+                                               EntitySelectionElement.ALL, style);
+                       }
         }
 
-
-
                if (referenceType != null) {
 
                        createInReferenceByType(this, referenceType, entity, SWT.NULL);
@@ -154,7 +172,7 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
 //                             if (referenceType.equals(ReferenceType.Proceedings)) {
 //                                 text_isbn = formFactory.createTextWithLabelElement(this, "ISBN",
 //                                 entity.getIsbn(), style);
-//                }
+//              }
                                if (referenceType.isPublication()) {
                                        createPublicationControls(this, referenceType, entity,
                                                        SWT.NULL);
@@ -165,7 +183,6 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                                if (referenceType.isSection()) {
                                        createSectionControls(this, entity, SWT.NULL);
                                }
-
                        }
                }
 
@@ -175,31 +192,34 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                            "Date Published", entity.getDatePublished(), style);
                }
 
+               createUri(this, entity, SWT.NULL);
+
+//             externalLinks = formFactory.createExternalLinksSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(ExternalLinksSection.class, DescriptionElementSource.class.getCanonicalName()));
+//        externalLinks.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 3));
+//        externalLinks.setEntity(entity);
+//        externalLinks.setFont(AbstractUtility.getFont(Resources.COLOR_FONT_DEFAULT));
+//        externalLinks.setEmptySectionString("No links yet.");
 
                if(referenceType != null && (!referenceType.equals(ReferenceType.Journal) && !referenceType.equals(ReferenceType.PrintSeries) && !referenceType.equals(ReferenceType.PersonalCommunication))) {
             text_doi = formFactory.createDoiWithLabelElement(formElement, "DOI", entity.getDoi(), style);
         }
-               createUriAndAbstract(this, entity, SWT.NULL);
+
+               createLsid(this, entity, SWT.NULL);
+               createAbstract(this, entity, SWT.NULL);
+
+               registerCacheElements();
 
                handleToggleableAbbrevTitleField();
                handleToggleableCacheField();
+
        }
 
-       private void createWebPageControls(ReferenceDetailElement referenceDetailElement, Reference reference, int style) {
+    private void createWebPageControls(ICdmFormElement element, Reference reference, int style) {
                DateTime accessed = reference.getAccessed();
 
-                text_accessed = formFactory.createDateElement(referenceDetailElement, "Accessed", accessed, style, false);
-
+               text_accessed = formFactory.createDateElement(element, "Accessed", accessed, style, false);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.forms.section.cdmdetail.AbstractCdmDetailComposite
-        * #updateContent()
-        */
-       /** {@inheritDoc} */
        @Override
        protected void updateContent() {
                if (getEntity() == null) {
@@ -209,32 +229,23 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                super.updateContent();
 
                // enable elements according to state of cache protection
-               // setEnabled(getEntity().isProtectedTitleCache(), Arrays.asList(new
-               // Object[]{text_cache}));
-               toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
-               toggleableAbbrevCache.setEnabled(getEntity().isProtectedAbbrevTitleCache());
-               setIrrelevantReferenceDetail(false);
-               setIrrelevantReferenceDetail(true);
+               toggleable_cache.setCacheEnabled(getEntity().isProtectedTitleCache());
+               toggleableAbbrevCache.setCacheEnabled(getEntity().isProtectedAbbrevTitleCache());
        }
 
        /**
         * Creates an in reference for reference types that do hav this.
-        *
-        * @param element
-        * @param referenceType
-        * @param reference
-        * @param style
         */
        private void createInReferenceByType(ICdmFormElement element,
                        ReferenceType referenceType, Reference reference, int style) {
-               boolean createInReferenceWidget = true;
-               String label = "In Reference";
+
+               String label;
 
                switch (referenceType) {
-               case Generic:
-                       break;
-               case Section:
-                   break;
+               case Book:
+               case Proceedings:
+                   label = "In Series";
+            break;
                case BookSection:
                        label = "Book";
                        break;
@@ -244,15 +255,15 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                case Article:
                        label = "Journal";
                        break;
-               case WebPage:
-                       break;
                default:
-                       createInReferenceWidget = false;
+                   label = "In Reference";
                }
 
+               boolean createInReferenceWidget = !ReferenceType.inReferenceContraints(referenceType).isEmpty();
+
                if (createInReferenceWidget) {
                        selection_inReference = formFactory
-                                       .createSelectionElement(Reference.class,//getConversationHolder(),
+                                       .createSelectionElement(Reference.class,
                                                element, label,
                                                        reference.getInReference(),
                                                        EntitySelectionElement.ALL, style);
@@ -261,11 +272,6 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
 
        /**
         * Creates additional controls to edit a generic reference
-        *
-        * @param element
-        * @param reference
-        * @param listener
-        * @param style
         */
        private void createGenericControls(ICdmFormElement element,
                        Reference reference, int style) {
@@ -285,29 +291,35 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                // pages
                text_pages = formFactory.createTextWithLabelElement(element, "Pages",
                                reference.getPages(), style);
-
-
        }
 
        /**
         * Creates additional controls to edit a publication
-        *
-        * @param element
-        * @param reference
-        * @param listener
-        * @param style
         */
        private void createPublicationControls(ICdmFormElement element,
                        ReferenceType referenceType, Reference reference, int style) {
 
-               // placePublished
-               text_placePublished = formFactory.createTextWithLabelElement(element,
-                               "Place Published", reference.getPlacePublished(), style);
+           if (!referenceType.equals(ReferenceType.Journal)) {
+               // placePublished
+               text_placePublished = formFactory.createTextWithLabelElement(element,
+                               "Place Published", reference.getPlacePublished(), style);
+
+               // publisher
+               text_publisher = formFactory.createTextWithLabelElement(element,
+                               "Publisher", reference.getPublisher(), style);
+
+               // placePublished2
+               text_placePublished2 = formFactory.createTextWithLabelElement(element,
+                                               "2nd Place Published", reference.getPlacePublished2(), style);
+
+               text_placePublished2.setEditable(!(reference.getPlacePublished() == null && reference.getPublisher() == null));
 
-               // publisher
-               text_publisher = formFactory.createTextWithLabelElement(element,
-                               "Publisher", reference.getPublisher(), style);
 
+               // publisher2
+               text_publisher2 = formFactory.createTextWithLabelElement(element,
+                               "2nd Publisher", reference.getPublisher2(), style);
+               text_publisher2.setEditable(!(getEntity().getPlacePublished() == null && getEntity().getPublisher() == null));
+           }
                if (referenceType.equals(ReferenceType.Journal)) {
                        // issn
                        text_issn = formFactory.createTextWithLabelElement(element, "ISSN",
@@ -317,7 +329,7 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                if (referenceType.equals(ReferenceType.Report)) {
                        // institution
                        selection_institution = formFactory
-                                       .createSelectionElement(Institution.class,//getConversationHolder(),
+                                       .createSelectionElement(Institution.class,
                                                element, "Institution",
                                                        reference.getInstitution(),
                                                        EntitySelectionElement.ALL, style);
@@ -326,7 +338,7 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                if (referenceType.equals(ReferenceType.Thesis)) {
                        // school
                        selection_institution = formFactory
-                                       .createSelectionElement(Institution.class,//getConversationHolder(),
+                                       .createSelectionElement(Institution.class,
                                                element, "School",
                                                        reference.getSchool(),
                                                        EntitySelectionElement.ALL, style);
@@ -341,10 +353,6 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
 
        /**
         * Creates additional controls to edit a section
-        *
-        * @param element
-        * @param reference
-        * @param style
         */
        private void createSectionControls(ICdmFormElement element,
                        Reference reference, int style) {
@@ -355,10 +363,6 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
 
        /**
         * Creates additional controls to edit a volume
-        *
-        * @param element
-        * @param reference
-        * @param style
         */
        private void createVolumeControls(ICdmFormElement element,
                        Reference reference, int style) {
@@ -370,21 +374,10 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                                reference.getSeriesPart(), style);
        }
 
-       /**
-        *
-        * @param element
-        * @param referenceType
-        * @param reference
-        * @param style
-        */
        private void createPrintedUnitControls(ICdmFormElement element,
                        ReferenceType referenceType, Reference reference, int style) {
                // in series
-               selection_inSeries = formFactory
-                               .createSelectionElement(Reference.class,//getConversationHolder(),
-                                       element, "In Series",
-                                               (Reference) reference.getInSeries(),
-                                               EntitySelectionElement.ALL, style);
+           //handled in generic in-Reference part
 
                // editor
                text_editor = formFactory.createTextWithLabelElement(element, "Editor",
@@ -398,28 +391,37 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                        // edition
                        text_edition = formFactory.createTextWithLabelElement(element,
                                        "Edition", reference.getEdition(), style);
-
                }
+
                // isbn
         text_isbn = formFactory.createTextWithLabelElement(element, "ISBN",
                 reference.getIsbn(), style);
        }
 
-       private void createUriAndAbstract(ICdmFormElement element,
+       private void createAbstract(ICdmFormElement element,
                        Reference reference, int style) {
-               // uri
-               text_uri = formFactory.createUriWithLabelElement(element, "URI",
-                               reference.getUri(), style);
-               if (reference.getType().equals(ReferenceType.WebPage)){
-                       createWebPageControls(this, reference, style);
-               }
-               // abstract
+
                text_referenceAbstract = formFactory.createMultiLineTextWithLabel(
                                element, "Reference Abstract", 100, style);
                text_referenceAbstract.setText(reference.getReferenceAbstract());
        }
 
-       /** {@inheritDoc} */
+       private void createLsid(ICdmFormElement element,
+            Reference reference, int style) {
+        text_lsid = formFactory.createLsidWithExceptionLabelElement(element, "LSID",
+                reference.getLsid(), style);
+    }
+
+       private void createUri(ICdmFormElement element,
+            Reference reference, int style) {
+
+        text_uri = formFactory.createUriWithLabelElement(element, "URI",
+                reference.getUri(), style);
+        if (reference.isDynamic()){
+            createWebPageControls(element, reference, style);
+        }
+    }
+
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == combo_referenceType) {
@@ -463,29 +465,39 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                        getEntity().setPages(text_pages.getText());
                } else if (eventSource == text_placePublished) {
                        getEntity().setPlacePublished(text_placePublished.getText());
-               } else if (eventSource == text_publisher) {
+                       text_publisher2.setEditable(!(getEntity().getPlacePublished() == null && getEntity().getPublisher() == null));
+                       text_placePublished2.setEditable(!(getEntity().getPlacePublished() == null && getEntity().getPublisher() == null));
+               }  else if (eventSource == text_placePublished2) {
+                       getEntity().setPlacePublished2(text_placePublished2.getText());
+               }else if (eventSource == text_publisher) {
                        getEntity().setPublisher(text_publisher.getText());
-               } else if (eventSource == text_referenceAbstract) {
+                       text_publisher2.setEditable(!(getEntity().getPlacePublished() == null && getEntity().getPublisher() == null));
+                       text_placePublished2.setEditable(!(getEntity().getPlacePublished() == null && getEntity().getPublisher() == null));
+               } else if (eventSource == text_publisher2) {
+                       getEntity().setPublisher2(text_publisher2.getText());
+               }else if (eventSource == text_referenceAbstract) {
                        getEntity().setReferenceAbstract(text_referenceAbstract.getText());
                } else if (eventSource == text_series) {
                        getEntity().setSeriesPart(text_series.getText());
                } else if (eventSource == text_title ) {
                        getEntity().setTitle(text_title.getText());
-                       if (!toggleable_cache.isEnabled()){
+                       if (!toggleable_cache.isCacheEnabled()){
                            toggleable_cache.setText(getEntity().generateTitle());
                        }
                } else if (eventSource == text_abbrevTitle ) {
                    getEntity().setAbbrevTitle(text_abbrevTitle.getText());
-                   if (!toggleableAbbrevCache.isEnabled()){
+                   if (!toggleableAbbrevCache.isCacheEnabled()){
                        toggleableAbbrevCache.setText(getEntity().generateAbbrevTitle());
                    }
                } else if (eventSource == text_uri) {
                        getEntity().setUri(text_uri.parseText());
-               } else if (eventSource == text_volume) {
+               } else if (eventSource == text_lsid) {
+            getEntity().setLsid(text_lsid.parseText());
+        } else if (eventSource == text_volume) {
                        getEntity().setVolume(text_volume.getText());
                }else if (eventSource == text_doi) {
             getEntity().setDoi(text_doi.parseText());
-        }else if (eventSource == text_accessed.getController()) {
+        }else if (text_accessed != null && eventSource == text_accessed.getController()) {
             getEntity().setAccessed(text_accessed.getController().getDateTime());
         }
 
@@ -507,7 +519,6 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
        }
 
-
     @Override
     public void updateToggleableCacheField() {
         if (!getEntity().isProtectedTitleCache()) {
@@ -519,72 +530,34 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
     }
 
     protected void handleToggleableAbbrevTitleField() {
-        boolean pushedAbbrevState = toggleableAbbrevCache.getState();
-        getEntity().setAbbrevTitleCache(toggleableAbbrevCache.getText(), pushedAbbrevState);
-        setIrrelevantReferenceDetail(true);
+        getEntity().setAbbrevTitleCache(
+                toggleableAbbrevCache.getText(), toggleableAbbrevCache.getState());
         updateToggleableCacheField();
+        updateCacheRelevance();
     }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleException
-        * (eu.etaxonomy.taxeditor.forms.CdmPropertyChangeEvent)
-        */
-       /** {@inheritDoc} */
        @Override
        public void handleException(CdmPropertyChangeEvent event) {
                exceptionOccurred(event);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.forms.IExceptionHandler#clearException()
-        */
-       /** {@inheritDoc} */
        @Override
        public void clearException() {
                exceptionOccurred(null);
        }
 
-       private final List<IExceptionHandler> exceptionHandlers = new ArrayList<IExceptionHandler>();
+       private final List<IExceptionHandler> exceptionHandlers = new ArrayList<>();
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.forms.IErrorIntolerableElement#addExceptionHandler
-        * (eu.etaxonomy.taxeditor.forms.IExceptionHandler)
-        */
-       /** {@inheritDoc} */
        @Override
        public void addExceptionHandler(IExceptionHandler handler) {
                exceptionHandlers.add(handler);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.forms.IErrorIntolerableElement#removeExceptionHandler
-        * (eu.etaxonomy.taxeditor.forms.IExceptionHandler)
-        */
-       /** {@inheritDoc} */
        @Override
        public void removeExceptionHandler(IExceptionHandler handler) {
                exceptionHandlers.remove(handler);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.forms.IErrorIntolerableElement#exceptionOccurred
-        * (eu.etaxonomy.taxeditor.forms.CdmPropertyChangeEvent)
-        */
-       /** {@inheritDoc} */
        @Override
        public void exceptionOccurred(CdmPropertyChangeEvent event) {
                for (IExceptionHandler handler : exceptionHandlers) {
@@ -598,25 +571,22 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
 
        @Override
        protected void handleToggleableCacheField() {
-
-               boolean pushedState = toggleable_cache.getState();
-        getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
-        setIrrelevantReferenceDetail(false);
+        getEntity().setTitleCache(toggleable_cache.getText(), toggleable_cache.getState());
         updateToggleableCacheField();
+        updateCacheRelevance();
     }
 
        protected void setIrrelevantReferenceDetail(boolean abbrev){
 
-               List<Object> except = new ArrayList();
+               List<Object> except = new ArrayList<>();
+
+           except.addAll( Arrays.asList(new Object[] { toggleable_cache, toggleableAbbrevCache, text_editor, text_isbn, text_issn, text_organisation, text_pages, text_placePublished,text_placePublished2, text_publisher, text_publisher2, text_referenceAbstract,  text_uri, selection_institution}));
 
-           except.addAll( Arrays.asList(new Object[] { toggleable_cache, toggleableAbbrevCache, text_editor, text_isbn, text_issn, text_organisation, text_pages, text_placePublished, text_publisher, text_referenceAbstract,  text_uri, selection_institution}));
-           boolean pushedState;
            if (abbrev){
              except.add(text_title);
            } else{
              except.add(text_abbrevTitle);
            }
-           pushedState = toggleableAbbrevCache.getState() || toggleable_cache.getState();
 
            switch( getEntity().getType()){
            case Journal:
@@ -630,12 +600,12 @@ public class ReferenceDetailElement extends AbstractIdentifiableEntityDetailElem
                break;
            }
 
-           setIrrelevant(pushedState, except);
-           text_title.setIrrelevant(toggleable_cache.getState());
-           text_abbrevTitle.setIrrelevant(toggleableAbbrevCache.getState());
+           updateCacheRelevance();
        }
 
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
 
-
-
-}
+       }
+}
\ No newline at end of file
index c8cf893e1bcf61323ab9cadc64718d271c7405bc..c8aa6aeac5fca92d733227e4c6f101e92c79dac0 100644 (file)
@@ -6,13 +6,11 @@
 * 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.reference;
 
 import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.reference.Reference;
@@ -25,48 +23,40 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
 
 /**
- * <p>ReferenceBaseDetailSection class.</p>
- *
  * @author n.hoffmann
  * @created 05.06.2009
- * @version 1.0
  */
 public class ReferenceDetailSection extends AbstractCdmDetailSection<Reference> implements ITaxonBaseDetailSection{
 
-       private TaxonBase taxonBase;
+       private TaxonBase<?> taxonBase;
 
-       /**
-        * <p>Constructor for ReferenceBaseDetailSection.</p>
-        *
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param style a int.
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-        */
-       public ReferenceDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement,
+       public ReferenceDetailSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(cdmFormFactory, conversation, parentElement, selectionProvider, style);
+               super(cdmFormFactory, parentElement, selectionProvider, style);
        }
 
-       /** {@inheritDoc} */
        @Override
-    public void setTaxonBase(TaxonBase entity) {
+    public void setTaxonBase(TaxonBase<?> entity) {
                this.taxonBase = entity;
-               TaxonName name = HibernateProxyHelper.deproxy(entity.getName());
-
-               Reference reference = (Reference) HibernateProxyHelper.deproxy(name.getNomenclaturalReference());
+               TaxonName name = entity.getName();
+               Reference reference = HibernateProxyHelper.deproxy(name.getNomenclaturalReference());
 
                setEntity(reference);
        }
+       @Override
+    public void setTaxonBaseWithoutUpdate(TaxonBase<?> entity) {
+               this.taxonBase = entity;
+               TaxonName name = entity.getName();
+               Reference reference = HibernateProxyHelper.deproxy(name.getNomenclaturalReference());
+
+               setEntityWithoutUpdate(reference);
+       }
 
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return "Reference";
        }
 
-       /** {@inheritDoc} */
        @Override
        public void refresh() {
                super.refresh();
@@ -74,13 +64,12 @@ public class ReferenceDetailSection extends AbstractCdmDetailSection<Reference>
        }
 
        @Override
-       public TaxonBase getTaxonBase() {
+       public TaxonBase<?> getTaxonBase() {
                return taxonBase;
        }
 
        @Override
        protected AbstractCdmDetailElement<Reference> createCdmDetailElement(AbstractCdmDetailSection<Reference> parentElement, int style) {
-           return formFactory.createReferenceDetailElement(parentElement, style, false);
+           return formFactory.createReferenceDetailElement(parentElement, style);
        }
-
-}
+}
\ No newline at end of file
index a0c147783acb55058a49ffa47e0a3f0ec61ba649..c59b41d9bf5969fa7a6ff86f021c494566e09b96 100644 (file)
@@ -6,13 +6,11 @@
 * 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.reference;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -22,63 +20,45 @@ import eu.etaxonomy.taxeditor.ui.element.IExceptionHandler;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
- * <p>ReferenceBaseWizardPage class.</p>
- *
  * @author n.hoffmann
  * @created Jun 1, 2010
- * @version 1.0
  */
 public class ReferenceWizardPage extends AbstractCdmEntityWizardPage<Reference> implements IExceptionHandler{
 
+    private boolean isNomenclaturalReference = false;
 
-       /**
-        * <p>Constructor for ReferenceBaseWizardPage.</p>
-        *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @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) {
-               super(formFactory, conversation, entity);
+       public ReferenceWizardPage(CdmFormFactory formFactory, Reference entity, boolean isNomenclaturalReference) {
+               super(formFactory, entity);
                setTitle("Reference");
+               this.isNomenclaturalReference = isNomenclaturalReference;
        }
 
        @Override
     public void createControl(Composite parent) {
-
            super.createControl(parent);
-
        }
 
-       /*
-        * (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.CdmEntityWizardPage#createElement(eu.etaxonomy.taxeditor.forms.ICdmFormElement)
-        */
-       /** {@inheritDoc} */
        @Override
     public AbstractCdmDetailElement<Reference> createElement(ICdmFormElement rootElement){
-               ReferenceDetailElement referenceElement = formFactory.createReferenceDetailElement(rootElement, SWT.NULL, true);
+               ReferenceDetailElement referenceElement;
+               if (isNomenclaturalReference){
+                       referenceElement = formFactory.createNomenclaturalReferenceDetailElement(rootElement,  SWT.NULL);
+               }else{
+                       referenceElement = formFactory.createReferenceDetailElement(rootElement, SWT.NULL);
+               }
                referenceElement.addExceptionHandler(this);
                referenceElement.setEntity(entity);
                referenceElement.setWarnForReferencingObjectsVisible(true);
                return referenceElement;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.IExceptionHandler#handleException(eu.etaxonomy.taxeditor.forms.CdmPropertyChangeEvent)
-        */
-       /** {@inheritDoc} */
        @Override
        public void handleException(CdmPropertyChangeEvent event) {
                setMessage(event.getException().getMessage(), WARNING);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.IExceptionHandler#clearException()
-        */
-       /** {@inheritDoc} */
        @Override
        public void clearException() {
                setMessage(null);
        }
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/SecundumSourceDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/SecundumSourceDetailElement.java
new file mode 100644 (file)
index 0000000..a16c831
--- /dev/null
@@ -0,0 +1,45 @@
+package eu.etaxonomy.taxeditor.ui.section.reference;
+
+import eu.etaxonomy.cdm.model.name.NomenclaturalSource;
+import eu.etaxonomy.cdm.model.taxon.SecundumSource;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+
+public class SecundumSourceDetailElement extends AbstractCdmDetailElement<TaxonBase> {
+       
+       private SecundumSourceElement sourceElement;
+       
+       public SecundumSourceDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+               super(formFactory, formElement);
+               
+       }
+
+       @Override
+       protected void createControls(ICdmFormElement formElement, TaxonBase entity, int style) {
+               sourceElement = formFactory.createSecundumSourceElement(formElement, entity, "Secundum");
+           if (entity.getSecSource() == null){
+            SecundumSource source = SecundumSource.NewSecundumInstance(entity);
+            entity.setSecSource(source);
+            sourceElement.setEntity(source);
+        }else{
+            sourceElement.setEntity(entity.getSecSource());
+        }
+           sourceElement.setPersistentBackground(formElement.getPersistentBackground());
+               
+       }
+
+       @Override
+       public void handleEvent(Object eventSource) {
+               
+               
+       }
+
+       @Override
+       public void fillFields() {
+               sourceElement.fillFields();
+               
+       }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/SecundumSourceElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/SecundumSourceElement.java
new file mode 100644 (file)
index 0000000..f580efb
--- /dev/null
@@ -0,0 +1,102 @@
+/**
+* Copyright (C) 2021 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.reference;
+
+import org.eclipse.swt.widgets.Label;
+
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.TimePeriod;
+import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
+import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.cdm.model.reference.NamedSourceBase;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.taxon.SecundumSource;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.section.common.ExternalLinksSection;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+
+/**
+ * @author k.luther
+ * @since Mar 24, 2021
+ */
+public class SecundumSourceElement extends OriginalSourceElement<SecundumSource> {
+
+       protected EntitySelectionElement<TaxonName> select_nameUsedInSource;
+       
+       public SecundumSourceElement(CdmFormFactory formFactory, ICdmFormElement formElement, CdmBase cdmEntity,
+            String label) {
+        super(formFactory, formElement, cdmEntity, label);
+    }
+
+    @Override
+    protected void createControls(ICdmFormElement formElement, SecundumSource entity,  int style) {
+
+        HibernateProxyHelper.deproxy(entity);
+
+        this.selection_Ref = formFactory.createSelectionElement(Reference.class, formElement, "Secundum", getEntity()!= null? getEntity().getCitation(): null, EntitySelectionElement.ALL, style);
+        if (entity.getCitation() != null) {
+               refType = entity.getCitation().getType();
+        }
+        selection_Ref.setBackground(this.getPersistentBackground());
+        for (ICdmFormElement element: selection_Ref.getElements()){
+            element.setBackground(getPersistentBackground());
+        }
+
+        microReference = formFactory.createTextWithLabelElement(formElement, "Detail", getEntity() != null? getEntity().getCitationMicroReference(): "", style);
+
+        //TODO preliminary #10057
+        if (entity != null && entity.getCitation() != null && entity.getCitation().isDynamic()){
+            TimePeriod acc =entity.getAccessed(); // (entity != null? entity.getAccessed(): null);
+            accessed = formFactory.createTimePeriodElement(formElement, "Accessed", acc, style);
+        }
+
+        Label sep = formFactory.createLabel(formElement.getLayoutComposite(), "");
+        sep.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        if (this.cdmEntity instanceof Taxon){
+               select_nameUsedInSource = formFactory.createSelectionElement(TaxonName.class, formElement, "Name in Source", entity != null? ((NamedSourceBase)entity).getNameUsedInSource(): null, EntitySelectionElement.DELETABLE, style);
+        }
+
+        externalLinks = formFactory.createExternalLinksSection(formElement, "Links", false, StoreUtil.getSectionStyle(ExternalLinksSection.class, DescriptionElementSource.class.getCanonicalName()));
+        externalLinks.setEmptySectionString("No links yet.");
+        externalLinks.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 3));
+        externalLinks.setEntity(getEntity());
+        externalLinks.setFont(AbstractUtility.getFont(Resources.COLOR_FONT_DEFAULT));
+
+        addControl(externalLinks);
+        addElement(externalLinks);
+        this.getLayoutComposite().layout();
+    }
+
+    @Override
+    public void handleEvent(Object eventSource) {
+        if (eventSource.equals(select_nameUsedInSource)){
+               getEntity().setNameUsedInSource(select_nameUsedInSource.getEntity());
+        }else{
+               super.handleEvent(eventSource);
+        }
+    }
+    
+    @Override
+       public void fillFields() {
+               if (getEntity() != null) {
+                       super.fillFields();
+                       if (select_nameUsedInSource != null) {
+                               select_nameUsedInSource.setEntity(getEntity().getNameUsedInSource());
+                       }
+               }
+               
+       }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/SecundumSourceSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/SecundumSourceSection.java
new file mode 100644 (file)
index 0000000..3f83f02
--- /dev/null
@@ -0,0 +1,52 @@
+/**
+ * Copyright (C) 2011 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+package eu.etaxonomy.taxeditor.ui.section.reference;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+
+public abstract class SecundumSourceSection extends AbstractCdmDetailSection<TaxonBase>  {
+
+       public SecundumSourceSection(CdmFormFactory formFactory, ICdmFormElement parentElement,
+               ISelectionProvider selectionProvider, int style) {
+               super(formFactory, parentElement, selectionProvider, style);
+       }
+
+       @Override
+       public String getHeading() {
+
+               return "Secundum Source";
+       }
+
+       @Override
+       protected void setSectionTitle() {
+               String title = "";
+               if(getEntity() != null ){
+
+                       if (getEntity().getSecSource() != null && getEntity().getSecSource().getCitation() != null){
+                           String secundumCitation = getEntity().getSecSource().getCitation().getNomenclaturalCitation(getEntity().getSecSource().getCitationMicroReference());
+                           title = ": " + secundumCitation;
+                       }
+
+               }
+               this.setText(getHeading() + title);
+       }
+
+//     @Override
+//     protected AbstractCdmDetailElement<TaxonBase> createCdmDetailElement(
+//                     AbstractCdmDetailSection<TaxonBase> parentElement, int style) {
+//
+//             return formFactory.createSecundumSourceDetailElement(parentElement);
+//     }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/SingleSourceSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/reference/SingleSourceSection.java
new file mode 100755 (executable)
index 0000000..5b162ea
--- /dev/null
@@ -0,0 +1,53 @@
+/**
+* Copyright (C) 2020 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.reference;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.reference.OriginalSourceBase;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+
+/**
+ * @author k.luther
+ * @since Jul 2, 2020
+ */
+public class SingleSourceSection extends AbstractCdmDetailSection<OriginalSourceBase> {
+
+    private CdmBase cdmEntity;
+    private String label;
+
+    public SingleSourceSection(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, CdmBase cdmEntity, ISelectionProvider selectionProvider, int style, String label) {
+        super(formFactory, parentElement, selectionProvider, style);
+        this.cdmEntity = cdmEntity;
+        this.label = label;
+        ((OriginalSourceElement<?>)this.detailElement).setCdmEntity(cdmEntity);
+    }
+
+    @Override
+    protected AbstractCdmDetailElement<OriginalSourceBase> createCdmDetailElement(
+            AbstractCdmDetailSection<OriginalSourceBase> parentElement, int style) {
+
+        return new OriginalSourceElement<>(getFormFactory(), parentElement, cdmEntity, label);
+    }
+
+    @Override
+    public String getHeading() {
+        return "";
+    }
+
+    public Reference getRef() {
+        return detailElement.getEntity().getCitation();
+    }
+}
index e0fbd7d103d0023a6952b834421b56375118665d..77ee10e75ab7a26d68f3e0ee6bb6162c40e820a3 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.supplemental;
 
 import org.eclipse.swt.SWT;
@@ -16,28 +15,45 @@ import org.eclipse.swt.widgets.Text;
 import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.cdm.model.common.TimePeriod;
+import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.reference.ICdmTarget;
 import eu.etaxonomy.cdm.model.reference.OriginalSourceBase;
 import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
+import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.combo.OriginalSourceTypeComparator;
 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.SelectionArbitrator;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.section.common.ExternalLinksSection;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
  * @author n.hoffmann
  * @created Mar 16, 2010
  */
-public abstract class AbstractOriginalSourceElement<T extends OriginalSourceBase> extends AbstractReferencedEntityElement<T> {
+public abstract class AbstractOriginalSourceElement<T extends OriginalSourceBase>
+        extends AbstractEntityCollectionElement<T> {
+
+    private SelectionArbitrator selectionArbitrator;
+
+    protected boolean isCommonNameReference = false;
+    protected EntitySelectionElement<Reference> selection_reference;
+    protected EntitySelectionElement<SpecimenOrObservationBase> selection_specimen;
+    protected TextWithLabelElement text_referenceDetail;
+    protected TimePeriodElement accessed;
        protected EnumComboElement<OriginalSourceType> combo_origsourcetype;
        protected TextWithLabelElement text_idInSource;
        protected TextWithLabelElement text_idNamespace;
-    protected TextWithLabelElement text_originaleNameString;
+    protected TextWithLabelElement text_originalInfo;
     protected TextWithLabelElement text_cdmsource;
 
     protected ExternalLinksSection externalLinks;
@@ -46,58 +62,150 @@ public abstract class AbstractOriginalSourceElement<T extends OriginalSourceBase
                        AbstractFormSection section,
                        T element, SelectionListener removeListener,
                        int style, boolean isCommonNameReference) {
-               super(formFactory, section, element, removeListener, style, isCommonNameReference);
+           super(formFactory, section, element, removeListener, null, style);
+               if(formFactory.getSelectionProvider() != null){
+            selectionArbitrator = formFactory.createSelectionArbitrator(this);
+        }
+        this.isCommonNameReference = isCommonNameReference;
        }
 
        public AbstractOriginalSourceElement(CdmFormFactory formFactory,
             AbstractFormSection section,
             T element, SelectionListener removeListener,
             int style) {
-        super(formFactory, section, element, removeListener, style);
+           this(formFactory, section, element, removeListener, style, false);
     }
 
-       /**
-        * {@inheritDoc}
-        */
        @Override
        public void setEntity(T entity) {
-           super.setEntity(entity);
-        text_originaleNameString.setText(entity.getOriginalNameString());
-        ICdmTarget cdmSource = entity.getCdmSource();
-        String source = "";
-        if(cdmSource instanceof IdentifiableEntity) {
-            source = ((IdentifiableEntity) cdmSource).getTitleCache();
-        } else if(cdmSource instanceof CdmBase) {
-            source += CdmUtils.isNotBlank(source)?"\nUUID: ":"";
-            source += ((CdmBase) cdmSource).getUuid().toString();
-        } else if(cdmSource!=null){
-            source = cdmSource.toString();
-        }
-        text_cdmsource.setText(source);
-        externalLinks.setEntity(entity);
+               this.entity = entity;
+               if (selection_reference != null){
+                   selection_reference.setEntity(entity.getCitation());
+               text_referenceDetail.setText(entity.getCitationMicroReference());
+               text_originalInfo.setText(entity.getOriginalInfo());
+
+               ICdmTarget cdmSource = entity.getCdmSource();
+               if (cdmSource != null){
+               String source = "";
+               if(cdmSource instanceof IdentifiableEntity) {
+                   source = ((IdentifiableEntity) cdmSource).getTitleCache();
+               } else if(cdmSource instanceof CdmBase) {
+                   source += CdmUtils.isNotBlank(source)?"\nUUID: ":"";
+                   source += ((CdmBase) cdmSource).getUuid().toString();
+               } else {
+                   source = cdmSource.toString();
+               }
+               text_cdmsource.setText(source);
+               }
+               if (externalLinks != null){
+                   externalLinks.setEntity(entity);
+               }
+               }
        }
 
-       /** {@inheritDoc}
+       /**
         * @wbp.parser.entryPoint*/
        @Override
        public void createControls(ICdmFormElement formElement, int style) {
+           if (isCommonNameReference && PreferencesUtil.getFilterCommonNameReferences()){
+          selection_reference = formFactory
+                    .createCommonNameReferenceSelectionElement(formElement, "Reference",
+                            null, EntitySelectionElement.ALL, style);
+        }else if (entity instanceof DescriptionElementSource && PreferencesUtil.getBooleanValue(PreferencePredicate.ShowSpecimenInFactSource.getKey())) {
+               selection_reference = formFactory
+                    .createSelectionElement(Reference.class,
+                             formElement, "Reference",
+                            null, EntitySelectionElement.ALL, style);
+               selection_specimen = formFactory
+                                       .createSelectionElement(SpecimenOrObservationBase.class,
+                                               formElement, "or Specimen",
+                                                       null, EntitySelectionElement.ALL, SWT.NULL);
+               }else{
+           selection_reference = formFactory
+                      .createSelectionElement(Reference.class,
+                               formElement, "Reference",
+                              null, EntitySelectionElement.ALL, style);
+        }
+
+        text_referenceDetail = formFactory.createTextWithLabelElement(
+                  formElement, "Reference Detail", null, SWT.NULL);
+
+        //TODO preliminary #10057
+        if (entity != null && entity.getCitation() != null && entity.getCitation().isDynamic()){
+            TimePeriod acc =entity.getAccessed(); // (entity != null? entity.getAccessed(): null);
+            accessed = formFactory.createTimePeriodElement(formElement, "Accessed", acc, style);
+        }
+
                combo_origsourcetype = formFactory
                                .createEnumComboElement(OriginalSourceType.class,
                                                formElement, new OriginalSourceTypeComparator(getEntity()), style, false);
-               super.createControls(formElement, style);
+
                if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSource.getKey())){
                    text_idInSource = formFactory.createTextWithLabelElement(formElement, "ID in Source", null, style);
                }
                if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey())){
                    text_idNamespace = formFactory.createTextWithLabelElement(formElement, "ID Namespace", null, style);
                }
-               text_originaleNameString = formFactory.createTextWithLabelElement(
+               text_originalInfo = formFactory.createTextWithLabelElement(
                        formElement, "Original Information", null, SWT.NULL);
-               text_cdmsource = formFactory.createTextWithLabelElement(
-                       formElement, "CDM Source", null, SWT.NULL);
-               ((Text) text_cdmsource.getMainControl()).setEditable(false);
 
-       }
+               //we only show the cdm source if it exist.
+               //It can't be set during editing as it is read only.
+               if (this.entity != null && this.entity.getCdmSource() != null) {
+                   text_cdmsource = formFactory.createTextWithLabelElement(
+                    formElement, "CDM Source", null, SWT.NULL);
+                   ((Text) text_cdmsource.getMainControl()).setEditable(false);
+        }
 
+               if (entity != null){
+                       selection_reference.setEntity(entity.getCitation());
+                       if (selection_specimen != null && entity instanceof DescriptionElementSource) {
+                               selection_specimen.setEntity(((DescriptionElementSource)entity).getSpecimen());
+                       }
+               text_referenceDetail.setText(entity.getCitationMicroReference());
+               text_originalInfo.setText(entity.getOriginalInfo());
 
-}
+               ICdmTarget cdmSource = entity.getCdmSource();
+               if (cdmSource != null){
+                   String source = "";
+                   if(cdmSource instanceof IdentifiableEntity) {
+                       source = ((IdentifiableEntity) cdmSource).getTitleCache();
+                   } else if(cdmSource instanceof CdmBase) {
+                       source += CdmUtils.isNotBlank(source)?"\nUUID: ":"";
+                       source += ((CdmBase) cdmSource).getUuid().toString();
+                   } else {
+                       source = cdmSource.toString();
+                   }
+                   text_cdmsource.setText(source);
+               }
+               if (externalLinks != null){
+                       externalLinks.setEntity(entity);
+               }
+               }
+       }
+
+    @Override
+    public void handleEvent(Object eventSource) {
+        if(eventSource == text_idInSource){
+            getEntity().setIdInSource(text_idInSource.getText());
+        }
+        else if(eventSource == text_idNamespace){
+            getEntity().setIdNamespace(text_idNamespace.getText());
+        }
+        else if(eventSource == selection_reference){
+            getEntity().setCitation(selection_reference.getSelection());
+        }
+        else if(eventSource == text_referenceDetail){
+            getEntity().setCitationMicroReference(text_referenceDetail.getText());
+        }
+        else if(eventSource == text_originalInfo){
+            getEntity().setOriginalInfo(text_originalInfo.getText());
+        }
+        else if(eventSource == combo_origsourcetype){
+            getEntity().setType(combo_origsourcetype.getSelection());
+        }
+        else if(eventSource == accessed){
+            getEntity().setAccessed(accessed.getTimePeriod());
+        }
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractReferencedEntityElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractReferencedEntityElement.java
deleted file mode 100644 (file)
index 57fb43c..0000000
+++ /dev/null
@@ -1,92 +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.section.supplemental;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionListener;
-
-import eu.etaxonomy.cdm.model.common.ReferencedEntityBase;
-import eu.etaxonomy.cdm.model.reference.Reference;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-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.ISelectableElement;
-import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
-import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
-import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
-
-/**
- * @author n.hoffmann
- * @created Mar 25, 2010
- */
-public abstract class AbstractReferencedEntityElement<T extends ReferencedEntityBase>
-               extends AbstractEntityCollectionElement<T> implements ISelectableElement {
-
-       private SelectionArbitrator selectionArbitrator;
-
-       protected EntitySelectionElement<Reference> selection_reference;
-       protected TextWithLabelElement text_referenceDetail;
-
-       protected boolean isCommonNameReference = false;
-
-       public AbstractReferencedEntityElement(CdmFormFactory formFactory,
-                       AbstractFormSection section, T entity,
-                       SelectionListener removeListener, int style, boolean isCommonNameReference) {
-               super(formFactory, section, entity, removeListener, null, style);
-               // make this element selectable
-               if(formFactory.getSelectionProvider() != null){
-                       selectionArbitrator = formFactory.createSelectionArbitrator(this);
-               }
-               this.isCommonNameReference = isCommonNameReference;
-       }
-
-    public AbstractReferencedEntityElement(CdmFormFactory formFactory,
-            AbstractFormSection section, T entity,
-            SelectionListener removeListener, int style) {
-        super(formFactory, section, entity, removeListener, null, style);
-        // make this element selectable
-        if(formFactory.getSelectionProvider() != null){
-            selectionArbitrator = formFactory.createSelectionArbitrator(this);
-        }
-    }
-
-       @Override
-       public void createControls(ICdmFormElement formElement, int style) {
-           if (isCommonNameReference && PreferencesUtil.getFilterCommonNameReferences()){
-               selection_reference = formFactory
-                    .createCommonNameReferenceSelectionElement(formElement, "Reference",
-                            null, EntitySelectionElement.ALL, style);
-           }else{
-               selection_reference = formFactory
-                       .createSelectionElement(Reference.class,//getConversationHolder(),
-                                formElement, "Reference",
-                               null, EntitySelectionElement.ALL, style);
-           }
-
-               text_referenceDetail = formFactory.createTextWithLabelElement(
-                               formElement, "Reference Detail", null, SWT.NULL);
-       }
-
-       @Override
-       public void setEntity(T entity) {
-               this.entity = entity;
-
-               selection_reference.setEntity(entity.getCitation());
-               text_referenceDetail.setText(entity.getCitationMicroReference());
-       }
-
-       @Override
-    public SelectionArbitrator getSelectionArbitrator() {
-               return selectionArbitrator;
-       }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractSingleSourceElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractSingleSourceElement.java
new file mode 100755 (executable)
index 0000000..5d23194
--- /dev/null
@@ -0,0 +1,69 @@
+/**
+* Copyright (C) 2020 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.supplemental;
+
+import eu.etaxonomy.cdm.model.common.SingleSourcedEntityBase;
+import eu.etaxonomy.cdm.model.reference.NamedSource;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.reference.OriginalSourceElement;
+
+/**
+ * @author k.luther
+ * @since Aug 18, 2020
+ */
+public abstract class AbstractSingleSourceElement <T extends SingleSourcedEntityBase>
+            extends AbstractCdmDetailElement<T> implements ISelectableElement{
+
+    protected OriginalSourceElement singleSourceSection;
+    private String label;
+
+    /**
+     * @param formFactory
+     * @param section
+     * @param entity
+     * @param removeListener
+     * @param backgroundColor
+     * @param style
+     */
+    public AbstractSingleSourceElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+        super(formFactory, formElement);
+
+    }
+
+    public String getLabel() {
+        return label;
+    }
+
+    public void setSourceLabel(String label) {
+        if (singleSourceSection != null){
+            singleSourceSection.getReferenceSelectionElement().setLabel(label);
+        }
+        this.label = label;
+    }
+
+    @Override
+    public void createControls(ICdmFormElement formElement, T entity, int style) {
+        singleSourceSection = formFactory.createOriginalSourceElement(formElement, entity, label);
+        if (entity.getSource() == null){
+            NamedSource source = NamedSource.NewPrimarySourceInstance(null, null);
+            entity.setSource(source);
+            singleSourceSection.setEntity(source);
+        }else{
+            singleSourceSection.setEntity(entity.getSource());
+
+        }
+    }
+
+    public void setIndent(int indent){
+        singleSourceSection.setIndent(indent);
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractSourcedEntityElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AbstractSourcedEntityElement.java
new file mode 100644 (file)
index 0000000..c369655
--- /dev/null
@@ -0,0 +1,85 @@
+/**
+ * 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.section.supplemental;
+
+import org.eclipse.swt.events.SelectionListener;
+
+import eu.etaxonomy.cdm.model.common.SingleSourcedEntityBase;
+import eu.etaxonomy.cdm.model.reference.NamedSource;
+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.ISelectableElement;
+import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
+import eu.etaxonomy.taxeditor.ui.section.reference.OriginalSourceElement;
+
+/**
+ * @author n.hoffmann
+ * @created Mar 25, 2010
+ */
+public abstract class AbstractSourcedEntityElement<T extends SingleSourcedEntityBase>
+               extends AbstractEntityCollectionElement<T> implements ISelectableElement {
+
+       private SelectionArbitrator selectionArbitrator;
+       private OriginalSourceElement sourceElement;
+       protected String label = "Source";
+
+
+       protected boolean isCommonNameReference = false;
+
+       public AbstractSourcedEntityElement(CdmFormFactory formFactory,
+                       AbstractFormSection<?> section, T entity,
+                       SelectionListener removeListener, String label, int style, boolean isCommonNameReference) {
+               super(formFactory, section, entity, removeListener, null, style);
+               // make this element selectable
+               if(formFactory.getSelectionProvider() != null){
+                       selectionArbitrator = formFactory.createSelectionArbitrator(this);
+               }
+               this.isCommonNameReference = isCommonNameReference;
+               this.label = label;
+       }
+
+    public AbstractSourcedEntityElement(CdmFormFactory formFactory,
+            AbstractFormSection section, T entity,
+            SelectionListener removeListener, String label, int style) {
+        this(formFactory, section, entity, removeListener, label, style, false);
+    }
+
+    @Override
+       public void createControls(ICdmFormElement formElement, int style) {
+           sourceElement = formFactory.createOriginalSourceElement(formElement, entity, label);
+
+        if (entity.getSource() == null){
+            NamedSource source = NamedSource.NewPrimarySourceInstance(null, null);
+            entity.setSource(source);
+            sourceElement.setEntity(source);
+        }else{
+            sourceElement.setEntity(entity.getSource());
+        }
+       }
+
+       @Override
+       public void setEntity(T entity) {
+               this.entity = entity;
+       }
+
+       @Override
+    public SelectionArbitrator getSelectionArbitrator() {
+               return selectionArbitrator;
+       }
+
+       public void setSourceLabel(String sourceLabel){
+           this.label = sourceLabel;
+           if (sourceElement != null){
+               this.sourceElement.getReferenceSelectionElement().setLabel(sourceLabel);
+               this.sourceElement.refresh();
+           }
+       }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AnnotationDtoElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AnnotationDtoElement.java
new file mode 100644 (file)
index 0000000..8e0d7b2
--- /dev/null
@@ -0,0 +1,84 @@
+/**
+ *
+ */
+package eu.etaxonomy.taxeditor.ui.section.supplemental;
+
+import org.eclipse.swt.events.SelectionListener;
+
+import eu.etaxonomy.cdm.model.common.AnnotationType;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.AnnotationDto;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+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.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
+
+/**
+ * <p>AnnotationElement class.</p>
+ *
+ * @author Katja Luther
+ */
+public class AnnotationDtoElement extends AbstractEntityCollectionElement<AnnotationDto>{
+
+       private TextWithLabelElement text;
+       private TermComboElement<AnnotationType> combo_annotationType;
+
+       /**
+        * <p>Constructor for AnnotationElement.</p>
+        *
+        * @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} object.
+        * @param annotation a {@link eu.etaxonomy.cdm.model.common.Annotation} object.
+        * @param style a int.
+        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
+        * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
+        */
+       public AnnotationDtoElement(CdmFormFactory cdmFormFactory, AbstractFormSection formElement, AnnotationDto annotation, SelectionListener removeListener, int style) {
+               super(cdmFormFactory, formElement, annotation, removeListener, null, style);
+       }
+
+       @Override
+       public void createControls(ICdmFormElement element, int style) {
+               combo_annotationType = formFactory.createDefinedTermComboElement(TermType.AnnotationType, this, "Annotation Type", null, style);
+
+               text = formFactory.createMultiLineTextWithLabel(this, "Annotation", 100, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
+       }
+
+       @Override
+       public void setEntity(AnnotationDto entity) {
+               this.entity = entity;
+               if (entity == null || combo_annotationType == null) {
+                   return;
+               }
+               if (combo_annotationType != null && entity.getTypeUuid() != null){
+                   AnnotationType selectedType = null;
+                   for (AnnotationType anType: combo_annotationType.getTerms()) {
+                       if (anType != null && anType.getUuid() != null && anType.getUuid().equals(entity.getTypeUuid())) {
+                           selectedType = anType;
+                           break;
+                       }
+                   }
+                   combo_annotationType.setSelection(selectedType);
+
+               }
+               text.setText(entity.getText());
+       }
+
+       @Override
+       public void handleEvent(Object eventSource) {
+               if(eventSource == combo_annotationType){
+                   getEntity().setTypeLabel(combo_annotationType.getSelection() == null ? null :combo_annotationType.getSelection().getLabel());
+                   getEntity().setTypeUuid(combo_annotationType.getSelection() == null ? null :combo_annotationType.getSelection().getUuid());
+               }else if(eventSource == text){
+                       getEntity().setText(text.getText());
+               }
+
+               EventUtility.postEvent(WorkbenchEventConstants.ADD_SAVE_CANDIDATE, getEntity());
+       }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AnnotationDtoSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/AnnotationDtoSection.java
new file mode 100644 (file)
index 0000000..38eebb7
--- /dev/null
@@ -0,0 +1,90 @@
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.supplemental;
+
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.UUID;
+
+import eu.etaxonomy.cdm.model.common.AnnotationType;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.persistence.dto.AnnotationDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 5, 2009
+ */
+public class AnnotationDtoSection extends AbstractEntityCollectionSection<TermNodeDto, AnnotationDto>{
+
+       public AnnotationDtoSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, int style) {
+               super(cdmFormFactory, parentElement, "Annotations", style);
+       }
+
+       @Override
+       public AnnotationDto createNewElement() {
+               String text = "";
+               AnnotationType type = AnnotationType.EDITORIAL();
+               Language language = CdmStore.getDefaultLanguage();
+
+               AnnotationDto anDto = new AnnotationDto(UUID.randomUUID(), 0);
+               anDto.setTypeUuid(type.getUuid());
+               return anDto;
+       }
+
+       @Override
+       public Collection<AnnotationDto> getCollection(TermNodeDto entity) {
+               return entity.getAnnotations();
+       }
+
+       @Override
+       public Comparator<AnnotationDto> getComparator() {
+           return null;
+      //  return new DefaultCdmBaseComparator<>();
+       }
+
+       @Override
+       public String getEmptyString() {
+               return "No annotations yet.";
+       }
+
+       @Override
+       protected String getTooltipString() {
+               return "Create a new annotation";
+       }
+
+       @Override
+       public void addElement(AnnotationDto element) {
+               getEntity().addAnnotation(element);
+       }
+
+       @Override
+       public void removeElement(AnnotationDto element) {
+               getEntity().removeAnnotation(element);
+               EventUtility.postEvent(WorkbenchEventConstants.REMOVE_ELEMENT, element);
+       }
+
+    @Override
+    public AnnotationDto addExisting() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public boolean allowAddExisting() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+}
\ No newline at end of file
index 3a29ac01bcd28f96092049f5105b5793fb2aa09d..cdae59ecde06909a3c854c82b30c2851b3c8b935 100644 (file)
@@ -43,13 +43,18 @@ public class AnnotationElement extends AbstractEntityCollectionElement<Annotatio
                combo_annotationType = formFactory.createDefinedTermComboElement(TermType.AnnotationType, this, "Annotation Type", null, style);
 
                text = formFactory.createMultiLineTextWithLabel(this, "Annotation", 100, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
        @Override
        public void setEntity(Annotation entity) {
                this.entity = entity;
-               combo_annotationType.setSelection(getEntity().getAnnotationType());
-               text.setText(entity.getText());
+               if (combo_annotationType != null){
+                       combo_annotationType.setSelection(getEntity().getAnnotationType());
+                       text.setText(entity.getText());
+               }
        }
 
        @Override
index 0f0974673cd9f879346986b035a4fbdc973ca73f..7e0c7cc92657cb01a7efc71c3d32520874628592 100644 (file)
@@ -1,12 +1,16 @@
 /**
- *
- */
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.ui.section.supplemental;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.AnnotatableEntity;
 import eu.etaxonomy.cdm.model.common.Annotation;
 import eu.etaxonomy.cdm.model.common.AnnotationType;
@@ -18,27 +22,15 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
- * <p>AnnotationSection class.</p>
- *
  * @author n.hoffmann
  * @created Nov 5, 2009
- * @version 1.0
  */
 public class AnnotationSection extends AbstractEntityCollectionSection<AnnotatableEntity, Annotation>{
 
-       /**
-        * <p>Constructor for AnnotationSection.</p>
-        *
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param style a int.
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       public AnnotationSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(cdmFormFactory, conversation, parentElement, "Annotations", style);
+       public AnnotationSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, int style) {
+               super(cdmFormFactory, parentElement, "Annotations", style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public Annotation createNewElement() {
                String text = "";
@@ -48,7 +40,6 @@ public class AnnotationSection extends AbstractEntityCollectionSection<Annotatab
                return Annotation.NewInstance(text, type, language);
        }
 
-       /** {@inheritDoc} */
        @Override
        public Collection<Annotation> getCollection(AnnotatableEntity entity) {
                return entity.getAnnotations();
@@ -59,45 +50,35 @@ public class AnnotationSection extends AbstractEntityCollectionSection<Annotatab
         return new DefaultCdmBaseComparator<>();
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No annotations yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Create a new annotation";
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addElement(Annotation element) {
                getEntity().addAnnotation(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElement(Annotation element) {
                getEntity().removeAnnotation(element);
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Annotation addExisting() {
         // TODO Auto-generated method stub
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         // TODO Auto-generated method stub
         return false;
     }
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CdmBaseDtoElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CdmBaseDtoElement.java
new file mode 100644 (file)
index 0000000..7cc10dc
--- /dev/null
@@ -0,0 +1,89 @@
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.supplemental;
+
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+
+import eu.etaxonomy.cdm.persistence.dto.ICdmBaseDto;
+import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+
+/**
+ * @author l.morris
+ * @date 24 Jan 2012
+ */
+public class CdmBaseDtoElement extends AbstractCdmFormElement implements IEntityElement<ICdmBaseDto>{
+       private Label label_created;
+       private Label label_updated;
+       private TextWithLabelElement text_uuid;
+       private TextWithLabelElement text_objectId;
+
+       private ICdmBaseDto entity;
+
+       public CdmBaseDtoElement(CdmFormFactory formFactory,
+                       ICdmFormElement formElement, ICdmBaseDto entity, int style) {
+
+               super(formFactory, formElement);
+
+               label_created = formFactory.createLabel(getLayoutComposite(), null, style);
+               TableWrapData layout = LayoutConstants.FILL_HORIZONTALLY();
+               layout.maxHeight = 1;
+               label_created.setLayoutData(layout);
+
+               label_updated = formFactory.createLabel(getLayoutComposite(), null, style);
+               TableWrapData layoutUpdated = LayoutConstants.FILL_HORIZONTALLY();
+               layoutUpdated.maxHeight = 1;
+               label_updated.setLayoutData(layoutUpdated);
+               text_uuid = formFactory.createTextWithLabelElement(formElement, "UUID", null, style);
+               text_uuid.setEditable(false);
+               text_objectId = formFactory.createTextWithLabelElement(formElement, "Object ID", null, style);
+               text_objectId.setEditable(false);
+               if (entity != null) {
+                       setEntity(entity);
+               }
+       }
+
+       @Override
+       public void setSelected(boolean selected) {
+               // this entity element is not likely to get selected
+       }
+
+       @Override
+       public ICdmBaseDto getEntity() {
+               return entity;
+       }
+
+       public void setEntity(ICdmBaseDto entity) {
+
+               this.entity = entity;
+               String createdBy = entity.getCreatedBy()!= null? entity.getCreatedBy():"";
+               String createdString = "Created "
+                                       + dateFormat(entity.getCreated())
+                                       + " by " + createdBy;
+               label_created.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
+               label_created.setText(createdString);
+
+               String updatedBy = entity.getUpdatedBy()!= null? entity.getUpdatedBy():"";
+               String updatedString = "Updated "
+                               + dateFormat(entity.getUpdated())
+                               + " by " + updatedBy;
+               label_updated.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
+               label_updated.setText(updatedString);
+
+               text_uuid.setText(entity != null ? entity.getUuid().toString() : "");
+               text_objectId.setText(entity != null ? entity.getId()+"" : "");
+
+               refresh();
+       }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CdmBaseDtoSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/CdmBaseDtoSection.java
new file mode 100644 (file)
index 0000000..7d14433
--- /dev/null
@@ -0,0 +1,46 @@
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.supplemental;
+
+import eu.etaxonomy.cdm.persistence.dto.ICdmBaseDto;
+import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+
+/**
+ * @author l.morris
+ * @date 24 Jan 2012
+ *
+ */
+public class CdmBaseDtoSection extends AbstractFormSection<ICdmBaseDto> {
+
+       private CdmBaseDtoElement cdmBaseElement;
+
+       /**
+        * @param formFactory
+        * @param parentElement
+        * @param selectionProvider
+        * @param style
+        */
+       public CdmBaseDtoSection(CdmFormFactory formFactory,
+                       ICdmFormElement parentElement,
+                       int style) {
+
+               super(formFactory, parentElement, style);
+               cdmBaseElement = formFactory.createCdmBaseDtoElement(this, null, style);
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       public void setEntity(ICdmBaseDto entity) {
+               super.setEntity(entity);
+               cdmBaseElement.setEntity(entity);
+       }
+
+}
index d645732289ad44b8f86e270ef014aa1e90d43d4f..411e17915188605b9ba1aa6a9daf5c1a364826d9 100644 (file)
@@ -1,18 +1,23 @@
 /**\r
 * Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
 * http://www.e-taxonomy.eu\r
-* \r
+*\r
 * The contents of this file are subject to the Mozilla Public License Version 1.1\r
 * See LICENSE.TXT at the top of this package for the full license terms.\r
 */\r
 package eu.etaxonomy.taxeditor.ui.section.supplemental;\r
 \r
+import org.eclipse.swt.widgets.Label;\r
+import org.eclipse.ui.forms.widgets.TableWrapData;\r
+\r
 import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.model.common.VersionableEntity;\r
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.IEntityElement;\r
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;\r
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;\r
 \r
 /**\r
@@ -21,9 +26,10 @@ import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
  *\r
  */\r
 public class CdmBaseElement extends AbstractCdmFormElement implements IEntityElement<CdmBase>{\r
-\r
+       private Label label_created;\r
        private TextWithLabelElement text_uuid;\r
        private TextWithLabelElement text_objectId;\r
+       \r
        private CdmBase entity;\r
        /**\r
         * @param formFactory\r
@@ -31,10 +37,20 @@ public class CdmBaseElement extends AbstractCdmFormElement implements IEntityEle
         */\r
        public CdmBaseElement(CdmFormFactory formFactory,\r
                        ICdmFormElement formElement, CdmBase entity, int style) {\r
-               \r
+\r
                super(formFactory, formElement);\r
-               text_uuid = formFactory.createTextWithLabelElement(formElement, "UUID", null, style);           \r
+               \r
+               //if (entity != null && !(entity.isInstanceOf(VersionableEntity.class))) {\r
+                       label_created = formFactory.createLabel(getLayoutComposite(), null, style);\r
+                       TableWrapData layout = LayoutConstants.FILL_HORIZONTALLY();\r
+                       layout.maxHeight = 1;\r
+                       label_created.setLayoutData(layout);\r
+\r
+               //}\r
+               text_uuid = formFactory.createTextWithLabelElement(formElement, "UUID", null, style);\r
+               text_uuid.setEditable(false);\r
                text_objectId = formFactory.createTextWithLabelElement(formElement, "Object ID", null, style);\r
+               text_objectId.setEditable(false);\r
                setEntity(entity);\r
        }\r
 \r
@@ -54,12 +70,20 @@ public class CdmBaseElement extends AbstractCdmFormElement implements IEntityEle
                return entity;\r
        }\r
 \r
-       \r
+\r
        public void setEntity(CdmBase entity) {\r
-               \r
-               this.entity = entity;                   \r
-               \r
-               text_uuid.setText(entity != null ? entity.getUuid().toString() : "");   \r
+\r
+               this.entity = entity;\r
+               String createdString = "";\r
+               if (entity != null && !(entity.isInstanceOf(VersionableEntity.class))) {\r
+                       createdString = "Created "\r
+                                               + dateFormat(entity.getCreated())\r
+                                               + " by " + userFormat(entity.getCreatedBy());   \r
+                       label_created.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());\r
+                       label_created.setText(createdString);\r
+               }\r
+               text_uuid.setText(entity != null ? entity.getUuid().toString() : "");\r
                text_objectId.setText(entity != null ? entity.getId()+"" : "");\r
+               refresh();\r
        }\r
 }\r
index b16c20ad953aa25940ee6fa33d365c34b03f8ad0..150fd2150dae3ca6c5f90d21edcd6f6e3e56f2de 100644 (file)
@@ -11,6 +11,7 @@ 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.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
@@ -27,6 +28,7 @@ public class CreditElement extends AbstractEntityCollectionElement<Credit> {
 
        private EntitySelectionElement<AgentBase> agentSelection;
        private TextWithLabelElement text;
+       private TimePeriodElement timePeriod;
 
        /**
         * <p>
@@ -63,11 +65,15 @@ public class CreditElement extends AbstractEntityCollectionElement<Credit> {
        @Override
        public void createControls(ICdmFormElement element, int style) {
                agentSelection = formFactory
-                               .createSelectionElement(AgentBase.class,//getConversationHolder(),
+                               .createSelectionElement(AgentBase.class,
                                        this, "Agent", null,
                                                EntitySelectionElement.ALL, style);
                text = formFactory.createMultiLineTextWithLabel(this, "Text", 100,
                                style);
+               timePeriod = formFactory.createTimePeriodElement(this, "Date", null, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
        /*
@@ -81,9 +87,11 @@ public class CreditElement extends AbstractEntityCollectionElement<Credit> {
        @Override
        public void setEntity(Credit element) {
                this.entity = element;
-
-               agentSelection.setEntity(element.getAgent());
-               text.setText(element.getText());
+               if (agentSelection != null){
+                       agentSelection.setEntity(element.getAgent());
+                       text.setText(element.getText());
+                       timePeriod.setTimePeriod(element.getTimePeriod());
+               }
        }
 
        /** {@inheritDoc} */
@@ -93,6 +101,8 @@ public class CreditElement extends AbstractEntityCollectionElement<Credit> {
                        entity.setAgent(agentSelection.getSelection());
                } else if (eventSource == text) {
                        entity.setText(text.getText());
+               } else if (eventSource == timePeriod) {
+                       entity.setTimePeriod(timePeriod.getTimePeriod());
                }
        }
 }
index 3ccf37fa00afab92ef96627f999b5ca8ad953ef1..b7a81018dd2e1490508044c3699d43d79f242254 100644 (file)
@@ -1,12 +1,16 @@
 /**
- *
- */
+* 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.section.supplemental;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.Credit;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -19,29 +23,18 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
  *
  * @author n.hoffmann
  * @created Nov 16, 2009
- * @version 1.0
  */
 public class CreditSection extends AbstractEntityCollectionSection<IdentifiableEntity, Credit> {
 
-       /**
-        * <p>Constructor for CreditSection.</p>
-        *
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param style a int.
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       public CreditSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(cdmFormFactory, conversation, parentElement, "Credits", style);
+       public CreditSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, int style) {
+               super(cdmFormFactory, parentElement, "Credits", style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public Credit createNewElement() {
-               return Credit.NewInstance(null, null);
+               return Credit.NewInstance(null, null, null);
        }
 
-       /** {@inheritDoc} */
        @Override
        public Collection<Credit> getCollection(IdentifiableEntity entity) {
                return entity.getCredits();
@@ -52,46 +45,35 @@ public class CreditSection extends AbstractEntityCollectionSection<IdentifiableE
         return new DefaultCdmBaseComparator<>();
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return  "No credits yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Create a new credit entry";
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addElement(Credit element) {
                getEntity().addCredit(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElement(Credit element) {
                getEntity().removeCredit(element);
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Credit addExisting() {
         // TODO Auto-generated method stub
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         // TODO Auto-generated method stub
         return false;
     }
-
-}
+}
\ No newline at end of file
index e3330eb82d57d6f8fbb12aba3498d40b883cbe14..b97ddb94a8b5cec62c0221139447bbcc06ec0cfc 100644 (file)
@@ -21,7 +21,6 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
  *
  * @author n.hoffmann
  * @created Nov 17, 2009
- * @version 1.0
  */
 public class ExtensionElement extends AbstractEntityCollectionElement<Extension> {
 
@@ -50,7 +49,9 @@ public class ExtensionElement extends AbstractEntityCollectionElement<Extension>
        public void createControls(ICdmFormElement element, int style) {
                combo_extensionType = formFactory.createDefinedTermComboElement(TermType.ExtensionType, element, "Type", null, style);
                text_extensionValue = formFactory.createTextWithLabelElement(element, "Extension", null, style);
-
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
        /* (non-Javadoc)
@@ -60,9 +61,11 @@ public class ExtensionElement extends AbstractEntityCollectionElement<Extension>
        @Override
        public void setEntity(Extension element) {
                this.entity = element;
-               ExtensionType extensionType = HibernateProxyHelper.deproxy(element.getType());
-               combo_extensionType.setSelection(extensionType);
-               text_extensionValue.setText(element.getValue());
+               if (combo_extensionType != null){
+                       ExtensionType extensionType = HibernateProxyHelper.deproxy(element.getType());
+                       combo_extensionType.setSelection(extensionType);
+                       text_extensionValue.setText(element.getValue());
+               }
        }
 
        /*
index efeab0c165fe672d49c5e58fe0fa6b98c66e85bb..6ccc6c9b7e28f567e651bcdf7a69d1fe16f1cc9c 100644 (file)
@@ -1,12 +1,16 @@
 /**
- *
- */
+* 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.section.supplemental;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.Extension;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -15,22 +19,12 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
- * <p>ExtensionSection class.</p>
- *
  * @author nho
  */
 public class ExtensionSection extends AbstractEntityCollectionSection<IdentifiableEntity, Extension> {
 
-       /**
-        * <p>Constructor for ExtensionSection.</p>
-        *
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param style a int.
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       public ExtensionSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(cdmFormFactory, conversation,parentElement, "Extensions", style);
+       public ExtensionSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, int style) {
+               super(cdmFormFactory, parentElement, "Extensions", style);
        }
 
        @Override
@@ -79,5 +73,4 @@ public class ExtensionSection extends AbstractEntityCollectionSection<Identifiab
         // TODO Auto-generated method stub
         return false;
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/HeadlineDtoSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/HeadlineDtoSection.java
new file mode 100644 (file)
index 0000000..dd31cb9
--- /dev/null
@@ -0,0 +1,44 @@
+/**
+ *
+ */
+package eu.etaxonomy.taxeditor.ui.section.supplemental;
+
+
+import eu.etaxonomy.cdm.persistence.dto.IAnnotatableDto;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+
+/**
+ * <p>HeadlineDtoSection class.</p>
+ *
+ * @author k.luther
+ */
+public class HeadlineDtoSection extends AbstractFormSection<IAnnotatableDto> {
+
+       /**
+        * <p>Constructor for HeadlineSection.</p>
+        *
+        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
+        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
+        * @param style a int.
+        */
+       public HeadlineDtoSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement,
+                       int style) {
+               super(cdmFormFactory, parentElement, style);
+       }
+
+       @Override
+       public void setEntity(IAnnotatableDto dto) {
+
+               super.setEntity(dto);
+
+               //String simpleName = entity.getClass().getSimpleName();
+        String titleString = dto.getLabel();
+        titleString = StoreUtil.cleanTitleString(titleString);
+        setText(titleString);
+               layout();
+       }
+
+}
index 57fb912253db32cccb632e4c8b65619f0e235732..94fd9b3ef4c1dac3525ded69bb19d62cd54a02ef 100644 (file)
@@ -1,6 +1,11 @@
 /**
- *
- */
+* Copyright (C) 2021 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.ui.section.supplemental;
 
 import org.eclipse.swt.events.SelectionListener;
@@ -20,7 +25,6 @@ import eu.etaxonomy.taxeditor.ui.section.common.ExternalLinksSection;
 /**
  * @author n.hoffmann
  * @created Nov 16, 2009
- * @version 1.0
  */
 public class IdentifiableSourceElement extends AbstractOriginalSourceElement<IdentifiableSource>{
 
@@ -36,65 +40,45 @@ public class IdentifiableSourceElement extends AbstractOriginalSourceElement<Ide
                 for (Control co: ((Composite)control).getChildren()){
                     co.setEnabled(isEnabled);
                 }
-               }
-
+            }
         }
-
        }
 
        public IdentifiableSourceElement(CdmFormFactory cdmFormFactory, AbstractFormSection formElement, IdentifiableSource element,
             SelectionListener removeListener, int style) {
         super(cdmFormFactory, formElement, element, removeListener, style);
-
     }
 
-       /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement formElement, int style) {
                super.createControls(formElement, style);
-               externalLinks = formFactory.createExternalLinksSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(ExternalLinksSection.class, IdentifiableSource.class.getCanonicalName()));
+               externalLinks = formFactory.createExternalLinksSection(formElement, StoreUtil.getSectionStyle(ExternalLinksSection.class, IdentifiableSource.class.getCanonicalName()));
         externalLinks.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+        if (entity != null){
+               setEntity(this.entity);
+        }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setEntity(IdentifiableSource entity) {
                super.setEntity(entity);
-               if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSource.getKey())){
-                   text_idInSource.setText(entity.getIdInSource());
+               if (selection_reference != null){
+                       if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSource.getKey())){
+                           text_idInSource.setText(entity.getIdInSource());
+                       }
+                       if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey())){
+                           text_idNamespace.setText(entity.getIdNamespace());
+                       }
+
+                       selection_reference.setEntity(entity.getCitation());
+                       text_referenceDetail.setText(entity.getCitationMicroReference());
+                       combo_origsourcetype.setSelection(entity.getType());
+                       text_originalInfo.setText(entity.getOriginalInfo());
                }
-               if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey())){
-                   text_idNamespace.setText(entity.getIdNamespace());
-               }
-
-               selection_reference.setEntity(entity.getCitation());
-               text_referenceDetail.setText(entity.getCitationMicroReference());
-               combo_origsourcetype.setSelection(entity.getType());
-               text_originaleNameString.setText(entity.getOriginalNameString());
-
-
-
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
-               if(eventSource == text_idInSource){
-                       getEntity().setIdInSource(text_idInSource.getText());
-               }
-               else if(eventSource == text_idNamespace){
-                       getEntity().setIdNamespace(text_idNamespace.getText());
-               }
-               if(eventSource == selection_reference){
-                       getEntity().setCitation(selection_reference.getSelection());
-               }
-               else if(eventSource == text_referenceDetail){
-                       getEntity().setCitationMicroReference(text_referenceDetail.getText());
-               }
-               else if(eventSource == text_originaleNameString){
-                       getEntity().setOriginalNameString(text_originaleNameString.getText());
-               } else if(eventSource == combo_origsourcetype){
-                       getEntity().setType(combo_origsourcetype.getSelection());
-               }
+           super.handleEvent(eventSource);
        }
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/MarkerDtoElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/MarkerDtoElement.java
new file mode 100644 (file)
index 0000000..6889a1f
--- /dev/null
@@ -0,0 +1,81 @@
+package eu.etaxonomy.taxeditor.ui.section.supplemental;
+
+import org.eclipse.swt.events.SelectionListener;
+
+import eu.etaxonomy.cdm.model.common.MarkerType;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.IAnnotatableDto;
+import eu.etaxonomy.cdm.persistence.dto.MarkerDto;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+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.CheckboxElement;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
+
+/**
+ * @author n.hoffmann
+ * @created Nov 16, 2009
+ * @version 1.0
+ */
+public class MarkerDtoElement extends AbstractEntityCollectionElement<MarkerDto>{
+
+
+       private TermComboElement<MarkerType> combo_markerType;
+       private CheckboxElement checkbox_markerState;
+
+       public MarkerDtoElement(CdmFormFactory cdmFormFactory, AbstractFormSection formElement, MarkerDto element,
+               SelectionListener removeListener, int style) {
+           super(cdmFormFactory, formElement, element, removeListener, null, style);
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       public void createControls(ICdmFormElement element, int style) {
+               checkbox_markerState = formFactory.createCheckbox(this, null, false, style);
+               combo_markerType = formFactory.createDefinedTermComboElement(TermType.MarkerType, this, null, null, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       public void setEntity(MarkerDto element) {
+               this.entity = element;
+
+               if (checkbox_markerState != null){
+                       checkbox_markerState.setSelection(element.getValue());
+                       MarkerType selectedType = null;
+            for (MarkerType markerType: combo_markerType.getTerms()) {
+                if (markerType != null && markerType.getUuid() != null && markerType.getUuid().equals(entity.getTypeUuid())) {
+                    selectedType = markerType;
+                    break;
+                }
+            }
+            combo_markerType.setSelection(selectedType);
+
+
+                       combo_markerType.removeEmptyElement();
+               }
+       }
+
+       /** {@inheritDoc} */
+       @Override
+       public void handleEvent(Object eventSource) {
+               if(eventSource == combo_markerType && getParentElement() instanceof MarkerDtoSection){
+                   MarkerDtoSection markerSection = (MarkerDtoSection)getParentElement();
+                   IAnnotatableDto annotatableEntity = markerSection.getEntity();
+                   annotatableEntity.removeMarker(entity);
+                       MarkerType markerType = combo_markerType.getSelection();
+                       entity.setTypeUuid(markerType.getUuid());
+                       annotatableEntity.addMarker(entity);
+               }
+               else if(eventSource == checkbox_markerState){
+                       getEntity().setValue(checkbox_markerState.getSelection());
+               }
+               EventUtility.postEvent(WorkbenchEventConstants.ADD_SAVE_CANDIDATE, getEntity());
+       }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/MarkerDtoSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/MarkerDtoSection.java
new file mode 100644 (file)
index 0000000..9bd1b89
--- /dev/null
@@ -0,0 +1,82 @@
+/**
+ * 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.section.supplemental;
+
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.UUID;
+
+import eu.etaxonomy.cdm.persistence.dto.IAnnotatableDto;
+import eu.etaxonomy.cdm.persistence.dto.MarkerDto;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection;
+
+/**
+ * @author nho
+ */
+public class MarkerDtoSection extends AbstractUnboundEntityCollectionSection<IAnnotatableDto, MarkerDto> {
+
+       public MarkerDtoSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, int style) {
+               super(cdmFormFactory, parentElement, "Marker", style);
+       }
+
+       @Override
+       public MarkerDto createNewElement() {
+           MarkerDto marker = new MarkerDto(UUID.randomUUID(), 0);
+           marker.setValue(true);
+        return marker;
+       }
+
+       @Override
+       public String getEmptyString() {
+               return "No markers yet.";
+       }
+
+       @Override
+       protected String getTooltipString() {
+               return "Create a new marker";
+       }
+
+       @Override
+       public void addElement(MarkerDto element) {
+               getEntity().addMarker(element);
+       }
+
+
+    @Override
+    public Comparator<MarkerDto> getComparator() {
+        return null;//new DefaultCdmBaseComparator<>();
+    }
+
+    @Override
+    public MarkerDto addExisting() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public boolean allowAddExisting() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    protected Collection<MarkerDto> getEntityCollection(IAnnotatableDto entity) {
+        return entity.getMarkers();
+    }
+
+    @Override
+    public void removeElement(MarkerDto element) {
+       getEntity().removeMarker(element);
+       EventUtility.postEvent(WorkbenchEventConstants.REMOVE_ELEMENT, element);
+    }
+}
\ No newline at end of file
index 5c0bb65cca9a1b4ab16f0f4be88c39299ec9b2c7..37a7bbd1e17866e4c58edb2edbf16859c12335e9 100644 (file)
@@ -34,15 +34,20 @@ public class MarkerElement extends AbstractEntityCollectionElement<Marker>{
        public void createControls(ICdmFormElement element, int style) {
                checkbox_markerState = formFactory.createCheckbox(this, null, false, style);
                combo_markerType = formFactory.createDefinedTermComboElement(TermType.MarkerType, this, null, null, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
        /** {@inheritDoc} */
        @Override
        public void setEntity(Marker element) {
                this.entity = element;
-               checkbox_markerState.setSelection(element.getFlag());
-               combo_markerType.setSelection(element.getMarkerType());
-               combo_markerType.removeEmptyElement();
+               if (checkbox_markerState != null){
+                       checkbox_markerState.setSelection(element.getFlag());
+                       combo_markerType.setSelection(element.getMarkerType());
+                       combo_markerType.removeEmptyElement();
+               }
        }
 
        /** {@inheritDoc} */
index 13837b269145a2bf36e7561c8cf5adcc83458f6f..dbb4653ce1af21622da10f060449540d7e78b3bf 100644 (file)
@@ -1,9 +1,16 @@
+/**
+ * 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.section.supplemental;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.AnnotatableEntity;
 import eu.etaxonomy.cdm.model.common.Marker;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -12,22 +19,12 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection;
 
 /**
- * <p>MarkerSection class.</p>
- *
  * @author nho
  */
 public class MarkerSection extends AbstractUnboundEntityCollectionSection<AnnotatableEntity, Marker> {
 
-       /**
-        * <p>Constructor for MarkerSection.</p>
-        *
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param style a int.
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       public MarkerSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(cdmFormFactory, conversation, parentElement, "Marker", style);
+       public MarkerSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, int style) {
+               super(cdmFormFactory, parentElement, "Marker", style);
        }
 
        @Override
@@ -78,5 +75,4 @@ public class MarkerSection extends AbstractUnboundEntityCollectionSection<Annota
         // TODO Auto-generated method stub
         return false;
     }
-
-}
+}
\ No newline at end of file
index 2435ba1fdacd0b265d19bb20db88363bbecbd4da..6039207482f541bd1f7129b2fb094b7aea27b39a 100644 (file)
@@ -6,100 +6,66 @@ package eu.etaxonomy.taxeditor.ui.section.supplemental;
 import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.agent.AgentBase;
-import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.media.Rights;
 import eu.etaxonomy.cdm.model.media.RightsType;
+import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
- * <p>
- * RightsElement class.
- * </p>
- *
  * @author n.hoffmann
  * @created Nov 16, 2009
- * @version 1.0
  */
-public class RightsElement extends AbstractEntityCollectionElement<Rights> {
+public class RightsElement extends AbstractEntityCollectionElement<Rights>{
 
        private TermComboElement<RightsType> combo_rightsType;
        private EntitySelectionElement<AgentBase> selection_agent;
        private TextWithLabelElement text;
+       private TextWithLabelElement abbrev;
+       private UriWithLabelElement uri;
 
-       /**
-        * <p>
-        * Constructor for RightsElement.
-        * </p>
-        *
-        * @param formElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
-        *            object.
-        * @param element
-        *            a {@link eu.etaxonomy.cdm.model.media.Rights} object.
-        * @param removeListener
-        *            a {@link org.eclipse.swt.events.SelectionListener} object.
-        * @param style
-        *            a int.
-        * @param cdmFormFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        */
        public RightsElement(CdmFormFactory cdmFormFactory,
                        AbstractFormSection formElement, Rights element,
                        SelectionListener removeListener, int style) {
                super(cdmFormFactory, formElement, element, removeListener, null, style);
        }
 
-
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite
-        * #createControls(org.eclipse.swt.widgets.Composite, int)
-        */
-       /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
                combo_rightsType = formFactory.createDefinedTermComboElement(TermType.RightsType, this, "Rights Type", null, style);
                selection_agent = formFactory.createSelectionElement(
-                               AgentBase.class, //getConversationHolder(),
+                               AgentBase.class,
                                this, "Agent",
                                null, EntitySelectionElement.ALL, style);
                text = formFactory.createMultiLineTextWithLabel(this, "Text", 100,
                                style);
+               abbrev = formFactory.createTextWithLabelElement(element, "Abbrev. Text", null, style);
+
+               uri = formFactory.createUriWithLabelElement(element, "Uri", null, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
+
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite
-        * #setElement(eu.etaxonomy.cdm.model.common.VersionableEntity)
-        */
-       /** {@inheritDoc} */
        @Override
        public void setEntity(Rights element) {
                this.entity = element;
-               combo_rightsType.setSelection(element.getType());
-               selection_agent.setEntity(element.getAgent());
-               text.setText(element.getText());
+               if(combo_rightsType != null){
+                       combo_rightsType.setSelection(element.getType());
+                       selection_agent.setEntity(element.getAgent());
+                       text.setText(element.getText());
+                       abbrev.setText(element.getAbbreviatedText());
+                       uri.setParsedText(element.getUri());
+               }
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#handleEvent
-        * (java.lang.Object)
-        */
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == combo_rightsType) {
@@ -108,7 +74,10 @@ public class RightsElement extends AbstractEntityCollectionElement<Rights> {
                        entity.setAgent(selection_agent.getSelection());
                } else if (eventSource == text) {
                        entity.setText(text.getText());
-               }
+               }else if (eventSource == abbrev) {
+            entity.setAbbreviatedText(abbrev.getText());
+        }else if (eventSource == uri) {
+            entity.setUri(uri.parseText());
+        }
        }
-
-}
+}
\ No newline at end of file
index 50e60346f5303335878b22158cb433d3d11d396a..8bc4154a046087f757197736521244e75c1e1c1e 100644 (file)
@@ -1,12 +1,16 @@
 /**
- *
- */
+* 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.section.supplemental;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.media.Rights;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.RightsSelectionDialog;
@@ -16,22 +20,12 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
- * <p>RightsSection class.</p>
- *
  * @author nho
  */
 public class RightsSection extends AbstractEntityCollectionSection<IdentifiableEntity, Rights> {
 
-       /**
-        * <p>Constructor for RightsSection.</p>
-        *
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param style a int.
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       public RightsSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(cdmFormFactory, conversation, parentElement, "Rights", style);
+       public RightsSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, int style) {
+               super(cdmFormFactory, parentElement, "Rights", style);
        }
 
        @Override
@@ -79,6 +73,4 @@ public class RightsSection extends AbstractEntityCollectionSection<IdentifiableE
     public boolean allowAddExisting() {
         return true;
     }
-
-
-}
+}
\ No newline at end of file
index f8219d0853cf2ebaaec01a6b247a01b0a391a2c3..2881bb6d60a036f24890d4fed4542f9730b28b2b 100644 (file)
@@ -1,43 +1,35 @@
 /**
- *
- */
+* 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.section.supplemental;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.reference.ISourceable;
 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
-import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
 import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.cdm.model.reference.ISourceable;
+import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
 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.description.SourceComparator;
 
 /**
- * <p>SourceSection class.</p>
- *
  * @author n.hoffmann
  * @created Nov 17, 2009
- * @version 1.0
  */
 public class SourceSection extends AbstractEntityCollectionSection<ISourceable, IdentifiableSource> {
 
-       /**
-        * <p>Constructor for SourceSection.</p>
-        *
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param style a int.
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       public SourceSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(cdmFormFactory, conversation, parentElement, "Sources", style);
+       public SourceSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, int style) {
+               super(cdmFormFactory, parentElement, "Sources", style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public IdentifiableSource createNewElement() {
            ISourceable entity = getEntity();
@@ -52,7 +44,6 @@ public class SourceSection extends AbstractEntityCollectionSection<ISourceable,
            return IdentifiableSource.NewInstance(type);
        }
 
-       /** {@inheritDoc} */
        @Override
        public Collection<IdentifiableSource> getCollection(
                        ISourceable entity) {
@@ -64,48 +55,35 @@ public class SourceSection extends AbstractEntityCollectionSection<ISourceable,
         return new SourceComparator();
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No references yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Create a new reference.";
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addElement(IdentifiableSource element) {
                getEntity().addSource(element);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void removeElement(IdentifiableSource element) {
                getEntity().removeSource(element);
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public IdentifiableSource addExisting() {
         // TODO Auto-generated method stub
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         // TODO Auto-generated method stub
         return false;
     }
-
-
-
-}
+}
\ No newline at end of file
index 36c08524e4b61487b48afa4ac7c91fd85c0eddcc..14062d9fe25048b8a2101e579260989b19e16fc8 100644 (file)
@@ -83,20 +83,7 @@ public class VersionElement extends AbstractCdmFormElement implements IEntityEle
                label_updated.setText(updatedString);
        }
        
-       private String dateFormat(DateTime dateTime){
-               if(dateTime == null){
-                       return "";
-               }
-               return CdmUtils.Nz(dateTime.toString(PreferencesUtil.getDateFormatPattern()));
-       }
        
-       private String userFormat(User user){
-               if(user == null){
-                       return "";
-               }
-               // TODO agree on what to display username or real name or even more from shibboleth
-               return CdmUtils.Nz(user.getUsername());
-       }
 
        /**
         * <p>Getter for the field <code>entity</code>.</p>
index 6ac00ae80d47a114e9d5a75c68f1d9baf2bfc733..717d209dc0adbb8ffd43c5bc187e492cfd1ebda7 100644 (file)
@@ -1,6 +1,13 @@
+/**
+* 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.section.supplemental.identifier;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.Identifier;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -9,26 +16,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 public abstract class AbstractIdentifierSection<T> extends AbstractEntityCollectionSection<T, Identifier> {
 
        public AbstractIdentifierSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(formFactory, conversation, parentElement, "Identifiers", style);
+                       ICdmFormElement parentElement, int style) {
+               super(formFactory, parentElement, "Identifiers", style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public Identifier createNewElement() {
                return Identifier.NewInstance(null, null);
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
                return "No identifiers yet.";
        }
 
-       /** {@inheritDoc} */
        @Override
        protected String getTooltipString() {
                return "Add an identifier";
        }
-
-}
+}
\ No newline at end of file
index d17982187440cb5f96596a0a3bae6f947c0d0531..eeffce09263b4b2dee477655bd9a90a9890a7636 100644 (file)
@@ -6,31 +6,26 @@
 * 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.supplemental.identifier;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.common.Identifier;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
- *
  * @author pplitzner
- *
  */
 public class DerivedUnitFacadeIdentifierSection extends AbstractIdentifierSection<DerivedUnitFacade> {
 
-
        public DerivedUnitFacadeIdentifierSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        int style) {
-               super(formFactory, conversation, parentElement, style);
+               super(formFactory, parentElement, style);
        }
 
        @Override
@@ -55,22 +50,15 @@ public class DerivedUnitFacadeIdentifierSection extends AbstractIdentifierSectio
                getEntity().removeIdentifier(element);
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Identifier addExisting() {
         // TODO Auto-generated method stub
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         // TODO Auto-generated method stub
         return false;
     }
-
-}
+}
\ No newline at end of file
index 0291ea7f31f4522727bbfb8218b63d991c949b4b..5fd9cc3955e626445ade4267db478b4e41d0925f 100644 (file)
@@ -6,13 +6,12 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.supplemental.identifier;
 
 import org.eclipse.swt.events.SelectionListener;
 
-import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.cdm.model.common.Identifier;
+import eu.etaxonomy.cdm.model.term.IdentifierType;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
@@ -22,15 +21,13 @@ import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 
 /**
- *
  * @author pplitzner
- *
  */
 public class IdentifierElement extends AbstractEntityCollectionElement<Identifier> {
 
        private TextWithLabelElement textIdentifier;
 
-       private TermComboElement<DefinedTerm> comboIdentifierType;
+       private TermComboElement<IdentifierType> comboIdentifierType;
 
     public IdentifierElement(CdmFormFactory formFactory,
             AbstractFormSection section, Identifier entity,
@@ -38,19 +35,22 @@ public class IdentifierElement extends AbstractEntityCollectionElement<Identifie
         super(formFactory, section, entity, removeListener, null, style);
     }
 
-    /** {@inheritDoc} */
     @Override
     public void setEntity(Identifier entity) {
         this.entity = entity;
-        textIdentifier.setText(entity.getIdentifier());
-        comboIdentifierType.setSelection(entity.getType());
+        if (textIdentifier != null){
+               textIdentifier.setText(entity.getIdentifier());
+               comboIdentifierType.setSelection(entity.getType());
+        }
     }
 
-       /** {@inheritDoc} */
        @Override
     public void createControls(ICdmFormElement formElement, int style) {
            comboIdentifierType = formFactory.createDefinedTermComboElement(TermType.IdentifierType, formElement, "Type", null, style);
                textIdentifier = formFactory.createTextWithLabelElement(formElement, "Identifier", null, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
        @Override
@@ -61,5 +61,4 @@ public class IdentifierElement extends AbstractEntityCollectionElement<Identifie
                        getEntity().setType(comboIdentifierType.getSelection());
                }
        }
-
 }
index 4b1a4b923305410b128e697301fe425e66a2329d..dfb0ef05d743a8e503df2455806572480dfe6795 100644 (file)
@@ -6,13 +6,11 @@
 * 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.supplemental.identifier;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.Identifier;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -20,16 +18,14 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
- *
  * @author pplitzner
- *
  */
 public class IdentifierSection extends AbstractIdentifierSection<IdentifiableEntity> {
 
        public IdentifierSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        int style) {
-               super(formFactory, conversation, parentElement, style);
+               super(formFactory, parentElement, style);
        }
 
        @Override
@@ -52,22 +48,15 @@ public class IdentifierSection extends AbstractIdentifierSection<IdentifiableEnt
                getEntity().removeIdentifier(element);
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Identifier addExisting() {
         // TODO Auto-generated method stub
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         // TODO Auto-generated method stub
         return false;
     }
-
-}
+}
\ No newline at end of file
index cf98f4c61a9226745b4a730994c2dbe71130dbf8..0e9663be6eca75574113fd02262852227464329c 100644 (file)
@@ -6,7 +6,6 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.taxon;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
@@ -14,7 +13,6 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.ui.forms.widgets.TableWrapData;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.INonViralName;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
@@ -26,13 +24,11 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
 
 /**
- * <p>ParsingMessagesSection class.</p>
- *
  * @author n.hoffmann
  * @created Mar 3, 2010
  */
-public class ParsingMessagesSection 
-                       extends AbstractCdmDetailSection<INonViralName> 
+public class ParsingMessagesSection
+                       extends AbstractCdmDetailSection<INonViralName>
                        implements ITaxonBaseDetailSection {
 
        /** Constant <code>HEADING_SUCCESS=""</code> */
@@ -41,27 +37,16 @@ public class ParsingMessagesSection
        public static final String HEADING_PROBLEM = "The name has problems.";
        private TaxonBase taxonBase;
 
-       /**
-        * <p>Constructor for ParsingMessagesSection.</p>
-        *
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
-        * @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-        * @param style a int.
-        */
-       public ParsingMessagesSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement,
+       public ParsingMessagesSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(cdmFormFactory, conversation, parentElement, selectionProvider, style);
+               super(cdmFormFactory, parentElement, selectionProvider, style);
        }
 
-       /** {@inheritDoc} */
        @Override
        protected void createControls(AbstractCdmDetailSection formElement, int style) {
                // we do it differently here
        }
 
-       /** {@inheritDoc} */
        @Override
     public void setTaxonBase(TaxonBase entity) {
                this.taxonBase = entity;
@@ -71,6 +56,12 @@ public class ParsingMessagesSection
                        displayParsingProblems();
                }
        }
+       @Override
+    public void setTaxonBaseWithoutUpdate(TaxonBase entity) {
+               //
+               this.taxonBase = entity;
+               this.setEntityWithoutUpdate(entity.getName());
+       }
 
        private void destroyParsingProblemComposites() {
                setText(HEADING_SUCCESS);
@@ -95,7 +86,6 @@ public class ParsingMessagesSection
                this.layout();
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return HEADING_SUCCESS;
@@ -112,4 +102,4 @@ public class ParsingMessagesSection
            //no detail element
            return null;
        }
-}
+}
\ No newline at end of file
index f7b6a34d93de878727748304c80758e85e4210a5..adb6955ed41d685e809bcf29efa7e9d6e4159dda 100644 (file)
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.taxon;
 
-import java.util.Arrays;
-
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.SWT;
 
-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.SynonymType;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.persistence.permission.Role;
 import eu.etaxonomy.taxeditor.preference.NameDetailsConfigurator;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
+import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
-import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+import eu.etaxonomy.taxeditor.ui.section.reference.SecundumSourceElement;
 
 /**
  * @author n.hoffmann
  * @created Feb 26, 2010
- * @version 1.0
  */
-public class TaxonBaseDetailElement extends AbstractIdentifiableEntityDetailElement<TaxonBase> {
+public class TaxonBaseDetailElement extends AbstractIdentifiableEntityDetailElement<TaxonBase<?>> {
 
        private CheckboxElement checkbox_doubtful;
 
        private CheckboxElement checkbox_useNameCache;
 
-       private EntitySelectionElement<Reference> selection_secundum;
-       private EntitySelectionElement<Reference> selection_sensu;
-       private TextWithLabelElement text_secundum_microreference;
+//     private EntitySelectionElement<Reference> selection_secundum;
+    private SecundumSourceElement secElement;
+
 
        private TextWithLabelElement text_appendedPhrase;
 
        private CheckboxElement checkbox_published;
 
-    private TermComboElement<SynonymType> combo_relationshipType;
-    private CheckboxElement checkProParte;
-    private CheckboxElement checkPartial;
+    private EnumComboElement<SynonymType> combo_relationshipType;
 
        public TaxonBaseDetailElement(CdmFormFactory cdmFormFactory,
                        ICdmFormElement formElement, int style) {
                super(cdmFormFactory, formElement);
        }
 
-       /** {@inheritDoc} */
        @Override
-       protected void createControls(ICdmFormElement formElement, TaxonBase entity, int style) {
+       protected void createControls(ICdmFormElement formElement, TaxonBase<?> entity, int style) {
 
            NameDetailsConfigurator config = PreferencesUtil.getPreferredNameDetailsConfiguration();
                toggleable_cache = formFactory.createToggleableTextField(formElement,
                                        "Title Cache", entity.getTitleCache(),
                                        entity.isProtectedTitleCache(), style);
 
-
                text_appendedPhrase = formFactory.createTextWithLabelElement(
                                        formElement, "Appended Phrase", entity.getAppendedPhrase(),
                                        SWT.WRAP);
 
+               secElement = formFactory.createSecundumSourceElement(formElement, null, "Secundum");
 
+               secElement.setCdmEntity(entity);
+                if (entity.getSecSource() == null){
+                   SecundumSource source = SecundumSource.NewSecundumInstance(entity);
+                   entity.setSecSource(source);
+                   secElement.setEntity(source);
+               }else{
+                   secElement.setEntity(entity.getSecSource());
+               }
 
-               selection_secundum = formFactory.createSelectionElement(Reference.class,
-                                formElement, "Secundum",
-                               entity.getSec(), EntitySelectionElement.ALL,
-                               style);
                if (config != null && !config.isSecEnabled()){
-                   selection_secundum.setEnabled(false);
-               }
-               if (config != null && config.isSecDetailsActivated()){
-               text_secundum_microreference = formFactory.createTextWithLabelElement(
-                    formElement, "Detail",
-                   entity.getSecMicroReference(),null,
-                    SWT.WRAP);
+                   secElement.setEnabled(false);
                }
 
+
                checkbox_useNameCache = formFactory.createCheckbox(formElement,
                                        "Exclude Authorship", entity.isUseNameCache(), style);
                checkbox_doubtful = formFactory.createCheckbox(formElement,
                                        entity.getClass().getSimpleName() + " is doubtful", entity.isDoubtful(), style);
 
-
-
                checkbox_published = formFactory.createCheckbox(formElement,
                        entity.getClass().getSimpleName()+" is published", entity.isPublish(), style);
 
-
-               if(entity instanceof Synonym){
-                   //#6198 removed type as it is currently not handled correctly in the editor
-//                 combo_relationshipType = formFactory.createDefinedTermComboElement(TermType.SynonymType, formElement, "Synonym Type", ((Synonym) entity).getType(), style);
-                       //#7334 removed pro parte and partial as they are handled as concept relationships now
-//             checkProParte = formFactory.createCheckbox(formElement, "Pro Parte Synonym", ((Synonym) entity).isProParte(), style);
-//             checkPartial= formFactory.createCheckbox(formElement, "Partial Synonym", ((Synonym) entity).isPartial(), style);
-               }
+           //cache relevance
+        registerCacheRelevance(checkbox_doubtful);
+        registerCacheRelevance(checkbox_useNameCache);
+        registerCacheRelevance(secElement);
+        registerCacheRelevance(text_appendedPhrase);
+        registerCacheRelevance(combo_relationshipType);
        }
 
     private void updateCheckboxPublish() {
-        if(getEntity() instanceof Taxon){
-            checkbox_published.setEnabled(
+        checkbox_published.setEnabled(
                        CdmStore.currentAuthentiationHasOneOfRoles(Role.ROLE_PUBLISH, Role.ROLE_ADMIN)
                        );
-        }
     }
 
        @Override
@@ -123,13 +108,11 @@ public class TaxonBaseDetailElement extends AbstractIdentifiableEntityDetailElem
         updateCheckboxPublish();
     }
 
-    /** {@inheritDoc} */
        @Override
        protected void updateContent() {
                super.updateContent();
-               toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
-               setIrrelevant(toggleable_cache.getState(),
-                               Arrays.asList(new Object[] { toggleable_cache, checkbox_published}));
+               toggleable_cache.setCacheEnabled(getEntity().isProtectedTitleCache());
+               updateCacheRelevance();
        }
 
        @Override
@@ -139,7 +122,6 @@ public class TaxonBaseDetailElement extends AbstractIdentifiableEntityDetailElem
                super.handleTitleCacheRelevantChange(event);
        }
 
-       /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource== toggleable_cache) {
@@ -148,12 +130,10 @@ public class TaxonBaseDetailElement extends AbstractIdentifiableEntityDetailElem
                        getEntity().setDoubtful(checkbox_doubtful.getSelection());
                } else if (eventSource == checkbox_useNameCache) {
                        getEntity().setUseNameCache(checkbox_useNameCache.getSelection());
-               } else if (eventSource == selection_secundum) {
-                       getEntity().setSec(selection_secundum.getSelection());
+               } else if (eventSource == secElement) {
+                       getEntity().setSecSource(secElement.getEntity());
                } else if (eventSource == text_appendedPhrase) {
                        getEntity().setAppendedPhrase(text_appendedPhrase.getText());
-               } else if (eventSource == text_secundum_microreference) {
-            getEntity().setSecMicroReference(text_secundum_microreference.getText());
                } else if (eventSource == checkbox_published) {
                    getEntity().setPublish(checkbox_published.getSelection());
                } else if(eventSource == combo_relationshipType){
@@ -165,12 +145,40 @@ public class TaxonBaseDetailElement extends AbstractIdentifiableEntityDetailElem
 //            ((Synonym) getEntity()).setProParte(checkProParte.getSelection());
         }
        }
+
        @Override
        protected void handleToggleableCacheField() {
-        boolean pushedState = toggleable_cache.getState();
-
-        getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
-        setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache, checkbox_published}));
+        getEntity().setTitleCache(toggleable_cache.getText(), toggleable_cache.getState());
+        updateCacheRelevance();
         updateToggleableCacheField();
     }
-}
+
+       @Override
+       public void refresh() {
+               updateContent();
+
+       }
+
+       @Override
+       public void fillFields() {
+               super.fillFields();
+               if (!(checkbox_doubtful.getSelection() == getEntity().isDoubtful())) {
+                       checkbox_doubtful.setSelection(getEntity().isDoubtful());
+               }               
+               if (!(checkbox_useNameCache.getSelection() == getEntity().isUseNameCache())) {
+                       checkbox_useNameCache.setSelection(getEntity().isUseNameCache());
+               }
+               if (!secElement.getEntity().equals(getEntity().getSecSource())) {
+                       secElement.fillFields();
+               }
+               if (getEntity().getAppendedPhrase()!= null && !getEntity().getAppendedPhrase().equals(text_appendedPhrase.getText())) {
+                       text_appendedPhrase.setText(getEntity().getAppendedPhrase());
+               }
+               if (!(checkbox_published.getSelection() == getEntity().isPublish())) {
+                       checkbox_published.setSelection(getEntity().isPublish());
+               }
+               if (combo_relationshipType != null && !((Synonym) getEntity()).getType().equals(combo_relationshipType.getSelection())) {
+                       combo_relationshipType.setSelection(((Synonym) getEntity()).getType());
+               }               
+       }
+}
\ No newline at end of file
index 5bcad1e775a013249e4eb2fde4238b80a4489c71..7cc23688186059a97b624012be0cb798584cbfad 100644 (file)
@@ -6,38 +6,52 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.taxon;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
 
 /**
  * @author n.hoffmann
  * @created Nov 4, 2009
- * @version 1.0
  */
-public class TaxonBaseDetailSection extends AbstractCdmDetailSection<TaxonBase{
+public class TaxonBaseDetailSection extends AbstractCdmDetailSection<TaxonBase<?>> implements ITaxonBaseDetailSection{
 
-       public TaxonBaseDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
-               super(cdmFormFactory, conversation, parentElement, selectionProvider, style);
+       public TaxonBaseDetailSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
+               super(cdmFormFactory, parentElement, selectionProvider, style);
        }
 
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
-               return getEntity() != null ? getEntity().getClass().getSimpleName() : "TaxonBase";
+               return getEntity() != null ? getEntity().getClass().getSimpleName() : "Taxon or Synonym";
        }
 
        @Override
-       protected AbstractCdmDetailElement<TaxonBase> createCdmDetailElement(AbstractCdmDetailSection<TaxonBase> parentElement, int style) {
+       protected AbstractCdmDetailElement<TaxonBase<?>> createCdmDetailElement(AbstractCdmDetailSection<TaxonBase<?>> parentElement, int style) {
            return formFactory.createTaxonBaseDetailElement(parentElement, style);
        }
 
+       @Override
+       public void setTaxonBase(TaxonBase<?> taxon) {
+               this.setEntity(taxon);
+               
+       }
+
+       @Override
+       public void setTaxonBaseWithoutUpdate(TaxonBase<?> taxon) {
+               setEntityWithoutUpdate(taxon);
+               
+       }
+
+       @Override
+       public TaxonBase<?> getTaxonBase() {
+               
+               return getEntity();
+       }
 }
index c2b062a21e3250a81f0bb935478461fc63dc2a2e..6c058286bbf9436e262d16c6c6b2a4349454c803 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.ui.section.taxon;
 
 import org.eclipse.swt.events.SelectionListener;
@@ -21,64 +20,40 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author n.hoffmann
  * @created Mar 29, 2011
- * @version 1.0
  */
 public class TaxonDetailElement extends AbstractEntityCollectionElement<Taxon> {
 
        private EntitySelectionElement<Taxon> selection_taxon;
 
-       /**
-        * @param formFactory
-        * @param section
-        * @param entity
-        * @param removeListener
-        * @param backgroundColor
-        * @param style
-        */
        public TaxonDetailElement(CdmFormFactory formFactory,
-                       AbstractFormSection section, Taxon entity,
+                       AbstractFormSection<?> section, Taxon entity,
                        SelectionListener removeListener, int style) {
                super(formFactory, section, entity, removeListener, null, style);
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#setEntity
-        * (java.lang.Object)
-        */
        @Override
        public void setEntity(Taxon entity) {
-               selection_taxon.setEntity(entity);
+               this.entity = entity;
+               if (selection_taxon != null){
+                       selection_taxon.setEntity(entity);
+               }
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#
-        * createControls(eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement, int)
-        */
        @Override
        public void createControls(ICdmFormElement element, int style) {
                selection_taxon = formFactory
                                .createSelectionElement(Taxon.class,
                                        element, "Taxon", null,
                                                EntitySelectionElement.SELECTABLE, style);
+               if (entity != null){
+                       setEntity(entity);
+               }
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#handleEvent
-        * (java.lang.Object)
-        */
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource == selection_taxon) {
                        setEntity(selection_taxon.getSelection());
                }
        }
-
-}
+}
\ No newline at end of file
index aa81c4c69f6baef08562633a669c2874e27c7061..734ff9694d54646304043117094ff3fbf2cdff81 100644 (file)
@@ -1,25 +1,28 @@
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.ui.section.taxon;
 
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.ICdmDetailElement;
 
 public class TaxonDetailSection extends AbstractCdmDetailSection<Taxon> {
 
-       
-       public TaxonDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
-               super(cdmFormFactory, conversation, parentElement, selectionProvider, style);
-       }
 
+       public TaxonDetailSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
+               super(cdmFormFactory, parentElement, selectionProvider, style);
+       }
 
-       /** {@inheritDoc} */
        @Override
        public String getHeading() {
                return getEntity() != null ? getEntity().getClass().getSimpleName() : "Taxon";
@@ -32,10 +35,5 @@ public class TaxonDetailSection extends AbstractCdmDetailSection<Taxon> {
 
        public void setTaxon(Taxon fromTaxon) {
                // TODO Auto-generated method stub
-               
        }
-
-       
-       
-
-}
+}
\ No newline at end of file
index a1606a3b252573bdbc7a058ece77e93a5ca5d74e..0f1db1a8ded4de9e711ca3ba4c22c301d622c19a 100644 (file)
@@ -1,7 +1,13 @@
+/**
+ * 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.section.taxon;
 
-import java.util.Arrays;
-
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Display;
 
@@ -20,54 +26,41 @@ public class TaxonOfRelationshipElement extends  AbstractIdentifiableEntityDetai
 
        private SelectionArbitrator selectionArbitrator;
 
-
-
-
     private CheckboxElement checkbox_doubtful;
 
-
        public TaxonOfRelationshipElement(CdmFormFactory formFactory, ICdmFormElement formElement, int style ) {
                super(formFactory, formElement);
        }
 
     @Override
     protected void handleToggleableCacheField() {
-        boolean pushedState = toggleable_cache.getState();
-
-        getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
-        setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache}));
+        getEntity().setTitleCache(toggleable_cache.getText(), toggleable_cache.getState());
+        updateCacheRelevance();
         updateToggleableCacheField();
     }
 
-
-
     @Override
     public void updateToggleableCacheField() {
-
-               if (toggleable_cache != null){
-                   if (!getEntity().isProtectedTitleCache()) {
-                       toggleable_cache.setText(getEntity().generateTitle());
-                   }
-               }
+        if (toggleable_cache != null){
+            if (!getEntity().isProtectedTitleCache()) {
+                toggleable_cache.setText(getEntity().generateTitle());
+            }
+        }
        }
 
         @Override
        public void refresh(){
                 updateContent();
                 updateToggleableCacheField();
-        }
+       }
 
        @Override
        protected void updateContent() {
-                super.updateContent();
-                toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
-                       setIrrelevant(toggleable_cache.getState(),
-                                       Arrays.asList(new Object[] { toggleable_cache}));
+               super.updateContent();
+               toggleable_cache.setCacheEnabled(getEntity().isProtectedTitleCache());
+               updateCacheRelevance();
                firePropertyChangeEvent(getEntity());
-
-        }
-
-
+       }
 
        @Override
        protected void createControls(ICdmFormElement formElement, Taxon entity, int style) {
@@ -83,10 +76,10 @@ public class TaxonOfRelationshipElement extends  AbstractIdentifiableEntityDetai
             selectionArbitrator = formFactory.createSelectionArbitrator(this);
         }
 
+           //cache relevance
+        registerCacheRelevance(checkbox_doubtful);
        }
 
-
-
        @Override
        public void handleEvent(Object eventSource) {
                if (eventSource== toggleable_cache) {
@@ -94,7 +87,6 @@ public class TaxonOfRelationshipElement extends  AbstractIdentifiableEntityDetai
                } else if (eventSource == checkbox_doubtful) {
                        getEntity().setDoubtful(checkbox_doubtful.getSelection());
                }
-
        }
 
        @Override
@@ -103,22 +95,23 @@ public class TaxonOfRelationshipElement extends  AbstractIdentifiableEntityDetai
     }
        @Override
     public void setWarnForReferencingObjects(ICdmFormElement formElement, int defaultReferencingObjects){
-        if (getEntity() instanceof Taxon){
-            Taxon taxon = getEntity();
-            if (taxon.getId() != 0){
-                long referencingObjectsCount = CdmStore.getCommonService().getReferencingObjectsCount(taxon);
-
-                if (referencingObjectsCount > defaultReferencingObjects){
-                    setWarnForReferencedObjects(formFactory.createLabel(formElement, CdmUtils.Nz("The "+ taxon.getUserFriendlyTypeName()+" is referenced by " + (referencingObjectsCount - defaultReferencingObjects)+ " other object(s), if you change it, it is changed for all these objects")));
-                    getWarnForReferencedObjects().setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
-                    getWarnForReferencedObjects().setLayout(LayoutConstants.FILL(2, 3));
-                    getWarnForReferencedObjects().setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
-                    formFactory.createLabel(formElement, "");
-
-                }
+        Taxon taxon = getEntity();
+        if (taxon.getId() != 0){
+            long referencingObjectsCount = CdmStore.getCommonService().getReferencingObjectsCount(taxon);
+
+            if (referencingObjectsCount > defaultReferencingObjects){
+                setWarnForReferencedObjects(formFactory.createLabel(formElement, CdmUtils.Nz("The "+ taxon.getUserFriendlyTypeName()+" is referenced by " + (referencingObjectsCount - defaultReferencingObjects)+ " other object(s), if you change it, it is changed for all these objects")));
+                getWarnForReferencedObjects().setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
+                getWarnForReferencedObjects().setLayout(LayoutConstants.FILL(2, 3));
+                getWarnForReferencedObjects().setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
+                formFactory.createLabel(formElement, "");
             }
         }
     }
 
-
-}
+       @Override
+       public void fillFields() {
+               super.fillFields();
+               checkbox_doubtful.setSelection(getEntity().isDoubtful());
+       }
+}
\ No newline at end of file
index 4f132c67175afeb5828b1b8a790901562ecfb9fb..c6adbe6d149f583a0d2e38be6ce0a6d8e4fe5808 100644 (file)
@@ -14,47 +14,43 @@ import org.eclipse.swt.SWT;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.ui.combo.InverseTermWrapper;
 import eu.etaxonomy.taxeditor.ui.combo.MisappliedRelationshipComboElement;
-import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
+import eu.etaxonomy.taxeditor.ui.combo.RelationshipTypeCombo;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractSingleSourceElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 
 /**
  * @author n.hoffmann
  * @date Dec 1, 2011
- *
  */
-public class TaxonRelationshipDetailElement extends AbstractCdmDetailElement<TaxonRelationship> {
+public class TaxonRelationshipDetailElement extends AbstractSingleSourceElement<TaxonRelationship> {//TODO: use AbstractSingleSourcedElement
 
-       private TermComboElement<TaxonRelationshipTypeInverseContainer> combo_taxonRelationshipType;
+       private RelationshipTypeCombo<InverseTermWrapper> combo_taxonRelationshipType;
        private MisappliedRelationshipComboElement combo_misappliedRelationshipType;
 
        private EntitySelectionElement<Taxon> selection_relatedTaxon;
        private CheckboxElement checkBoxDoubtful;
        protected ToggleableTextElement toggleable_cache;
-       private  EntitySelectionElement<Reference> secReference;
        private  EntitySelectionElement<Reference> sensuReference;
        private TextWithLabelElement text_sensu_microreference;
-
-
-       private TextWithLabelElement text_secundum_microreference;
-
        private TextWithLabelElement text_appendedPhrase;
 
     private CheckboxElement checkbox_published;
 
-
        private Taxon taxon;
 
        private TaxonDetailSection taxonElement;
@@ -65,17 +61,18 @@ public class TaxonRelationshipDetailElement extends AbstractCdmDetailElement<Tax
 
     public TaxonRelationshipDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
+
                super(formFactory, formElement);
        }
 
        @Override
-       protected void createControls(ICdmFormElement formElement,
+    public void createControls(ICdmFormElement formElement,
                        TaxonRelationship entity, int style) {
-           if ((entity.getType().isMisappliedNameOrInvalidDesignation()) ){
+           if ((entity.getType().isAnyMisappliedName()) ){
 
                        taxon = entity.getFromTaxon();
 
-            taxonElement = formFactory.createTaxonDetailSection(getConversationHolder(), formElement, null, StoreUtil.getSectionStyle(TaxonDetailSection.class, Taxon.class.getCanonicalName()));
+            taxonElement = formFactory.createTaxonDetailSection(formElement, null, StoreUtil.getSectionStyle(TaxonDetailSection.class, Taxon.class.getCanonicalName()));
             taxonElement.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
             addControl(taxonElement);
             addElement(taxonElement);
@@ -91,7 +88,7 @@ public class TaxonRelationshipDetailElement extends AbstractCdmDetailElement<Tax
 
             checkbox_published = formFactory.createCheckbox(this,
                     "Published", taxon.isPublish(), style);
-            sensuReference = formFactory.createSelectionElement(Reference.class,//getConversationHolder(),
+            sensuReference = formFactory.createSelectionElement(Reference.class,
                  formElement, label,
                 taxon.getSec(), EntitySelectionElement.ALL,
                 style);
@@ -109,17 +106,17 @@ public class TaxonRelationshipDetailElement extends AbstractCdmDetailElement<Tax
             combo_misappliedRelationshipType = formFactory.createMisappliedRelationshipComboElement(formElement, label,
                         entity.getType(), style);
 
-            if (entity.getType().isInvalidDesignation()){
-                combo_misappliedRelationshipType.setEnabled(false);
-            }else{
-                combo_misappliedRelationshipType.setEnabled(true);
-            }
+            combo_misappliedRelationshipType.setEnabled(true);
+
+
             if (entity.getType().isAnyMisappliedName()) {
                 label = "Misappl. Sec.";
             }else{
                 label = "Err. Sec.";
             }
-            secReference = formFactory.createSelectionElement(Reference.class,//getConversationHolder(),
+
+            /*TODO: use super.createControls(); to create single source element
+            secReference = formFactory.createSelectionElement(Reference.class,
                     formElement, label,
                     entity.getCitation(), EntitySelectionElement.ALL,
                     style);
@@ -128,6 +125,10 @@ public class TaxonRelationshipDetailElement extends AbstractCdmDetailElement<Tax
                     formElement, "Detail",
                     entity.getCitationMicroReference(),null,
                     SWT.WRAP);
+                    */
+            super.createControls(formElement, entity, style);
+            setSourceLabel(label);
+
             if (entity.getType().isAnyMisappliedName()) {
                 label = "Misapplication Doubtful";
             }else{
@@ -137,7 +138,7 @@ public class TaxonRelationshipDetailElement extends AbstractCdmDetailElement<Tax
                }else if (entity.getType().isAnySynonym() ){
                    taxon = entity.getFromTaxon();
 
-            taxonElement = formFactory.createTaxonDetailSection(getConversationHolder(), formElement, null, StoreUtil.getSectionStyle(TaxonDetailSection.class, Taxon.class.getCanonicalName()));
+            taxonElement = formFactory.createTaxonDetailSection(formElement, null, StoreUtil.getSectionStyle(TaxonDetailSection.class, Taxon.class.getCanonicalName()));
             taxonElement.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
             addControl(taxonElement);
             addElement(taxonElement);
@@ -149,7 +150,9 @@ public class TaxonRelationshipDetailElement extends AbstractCdmDetailElement<Tax
 
             checkbox_published = formFactory.createCheckbox(this,
                     "Published", taxon.isPublish(), style);
-            secReference = formFactory.createSelectionElement(Reference.class,//getConversationHolder(),
+            /*
+             * secReference = formFactory.createSelectionElement(Reference.class,
+
                     formElement, "Syn. Sec.",
                     entity.getCitation(), EntitySelectionElement.ALL,
                     style);
@@ -158,7 +161,11 @@ public class TaxonRelationshipDetailElement extends AbstractCdmDetailElement<Tax
                     formElement, "Detail",
                     entity.getCitationMicroReference(),null,
                     SWT.WRAP);
-            sensuReference = formFactory.createSelectionElement(Reference.class,//getConversationHolder(),
+                    */
+
+            super.createControls(formElement, entity, style);
+            setSourceLabel("Syn. Sec.");
+            sensuReference = formFactory.createSelectionElement(Reference.class,
                     formElement, "Sec",
                    taxon.getSec(), EntitySelectionElement.ALL,
                    style);
@@ -175,21 +182,20 @@ public class TaxonRelationshipDetailElement extends AbstractCdmDetailElement<Tax
             checkBoxDoubtful = formFactory.createCheckbox(formElement, "Syn. Doubtful", entity.isDoubtful(), style);
 
         }else{
-            combo_taxonRelationshipType = formFactory.createTermComboElement(
-                    TaxonRelationshipTypeInverseContainer.class,
-                    formElement, "Relationship Type",
-                    getTaxonRelationshipTypeInverseContainer(), style);
+            combo_taxonRelationshipType = formFactory.createTaxonRelationshipTypeCombo(
+                       formElement,
+                    "Relationship Type",
+                    style,
+                    false,
+                    null);
 
             combo_taxonRelationshipType.setEnabled(false);
             selection_relatedTaxon = formFactory.createSelectionElement(
-                    Taxon.class, //getConversationHolder(),
+                    Taxon.class,
                     formElement, "Related Taxon", getRelatedTaxon(),
                     EntitySelectionElement.SELECTABLE, style);
             checkBoxDoubtful = formFactory.createCheckbox(formElement, "Relation Doubtful", entity.isDoubtful(), style);
-
-
                }
-
        }
 
        private Taxon getRelatedTaxon() {
@@ -206,17 +212,13 @@ public class TaxonRelationshipDetailElement extends AbstractCdmDetailElement<Tax
 
        @Override
        public void handleEvent(Object eventSource) {
-               if (getEntity().getType().isMisappliedNameOrInvalidDesignation() || getEntity().getType().isAnySynonym()){
-                        if (eventSource == secReference) {
-                               getEntity().setCitation(secReference.getSelection());
-                       } else if (eventSource == text_secundum_microreference) {
-                               getEntity().setCitationMicroReference(text_secundum_microreference.getText());
-                       }  else if (eventSource == text_sensu_microreference) {
+               if (getEntity().getType().isAnyMisappliedName() || getEntity().getType().isAnySynonym()){
+                   if (eventSource == text_sensu_microreference) {
                        taxon.setSecMicroReference(text_sensu_microreference.getText());
                        } else if (eventSource == sensuReference) {
                                taxon.setSec(sensuReference.getSelection());
                        } else if (eventSource == combo_taxonRelationshipType ) {
-                           getEntity().setType(combo_taxonRelationshipType.getSelection().getType());
+                           getEntity().setType((TaxonRelationshipType) combo_taxonRelationshipType.getSelection().getTerm());
                        } else if ( eventSource == combo_misappliedRelationshipType) {
                 getEntity().setType(combo_misappliedRelationshipType.getSelection());
             } else if (eventSource == text_appendedPhrase) {
@@ -260,7 +262,6 @@ public class TaxonRelationshipDetailElement extends AbstractCdmDetailElement<Tax
        @Override
        public void refresh(){
                 updateContent();
-
         }
 
        @Override
@@ -269,9 +270,31 @@ public class TaxonRelationshipDetailElement extends AbstractCdmDetailElement<Tax
                if (taxonElement!=null) {
                        taxonElement.setEntity(entity.getFromTaxon());
         }
-
        }
 
+    @Override
+    public SelectionArbitrator getSelectionArbitrator() {
+        // TODO Auto-generated method stub
+        return null;
+    }
 
-
-}
+       @Override
+       public void fillFields() {
+               taxon = getEntity().getFromTaxon();
+               if (combo_misappliedRelationshipType!= null) {
+                       combo_misappliedRelationshipType.setSelection(getEntity().getType());
+               }
+               
+               super.singleSourceSection.fillFields();
+               selection_relatedTaxon.setEntity(getEntity().getToTaxon());;
+               checkBoxDoubtful.setSelection(getEntity().isDoubtful());
+               
+               sensuReference.setEntity(taxon.getSec());;
+               text_sensu_microreference.setText(taxon.getSecMicroReference());
+               text_appendedPhrase.setText(taxon.getAppendedPhrase());
+
+           checkbox_published.setSelection(taxon.isPublish());;
+           //taxonElement.fillFields();???
+               
+       }
+}
\ No newline at end of file
index 0751d9285a3317e873be20a811601ed0e5286154..c0c2ce060cd2ebb743614f36bed4927a85d56cfa 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.taxon;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.action.ToolBarManager;
@@ -16,7 +16,6 @@ import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Control;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
@@ -39,14 +38,15 @@ import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
  *
  */
 public class TaxonRelationshipDetailSection extends AbstractCdmDetailSection<TaxonRelationship> implements ITaxonBaseDetailSection {
-       Taxon taxon;
-       TaxonName name;
-       boolean taxonChoosable = false;
+
+    private Taxon taxon;
+       private TaxonName name;
+       private boolean taxonChoosable = false;
 
        public TaxonRelationshipDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style, boolean taxonChoosable) {
-               super(formFactory, conversation, parentElement,  selectionProvider, style);
+               super(formFactory, parentElement,  selectionProvider, style);
                this.taxonChoosable = taxonChoosable;
        }
 
@@ -64,13 +64,17 @@ public class TaxonRelationshipDetailSection extends AbstractCdmDetailSection<Tax
            return formFactory.createTaxonRelationshipDetailElement(parentElement);
        }
 
-       /** {@inheritDoc} */
        @Override
     public void setTaxonBase(TaxonBase taxon) {
                this.taxon = (Taxon)taxon;
                TaxonName name = HibernateProxyHelper.deproxy(taxon.getName());
                setName(name);
        }
+       
+       @Override
+    public void setTaxonBaseWithoutUpdate(TaxonBase taxon) {
+               this.setTaxonBase(taxon);
+       }
 
        @Override
        public TaxonBase getTaxonBase() {
@@ -90,7 +94,7 @@ public class TaxonRelationshipDetailSection extends AbstractCdmDetailSection<Tax
                    Action chooseTaxonAction = new Action("Choose Taxon", IAction.AS_PUSH_BUTTON){
                        @Override
                        public void run() {
-                           Taxon taxon = TaxonBaseSelectionDialog.selectTaxon(getShell(), //getConversationHolder(),
+                           Taxon taxon = TaxonBaseSelectionDialog.selectTaxon(getShell(),
                                    getEntity().getFromTaxon());
                            if(taxon!=null){
                             taxon = HibernateProxyHelper.deproxy(taxon);
index bae2195ea5a5449d0f12561281d4b56370ae67f3..298e7b2a3fbcbb4cd0d30ebc113afc891df01d07 100644 (file)
@@ -6,12 +6,10 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.ui.section.taxon;
 
 import org.eclipse.swt.SWT;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -19,23 +17,18 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 
 /**
- *
  * @author pplitzner
  * @date Jan 18, 2016
- *
  */
-public class TaxonWizardPage extends AbstractCdmEntityWizardPage<TaxonBase> {
+public class TaxonWizardPage extends AbstractCdmEntityWizardPage<TaxonBase<?>> {
 
-       public TaxonWizardPage(CdmFormFactory formFactory, ConversationHolder conversation,
-               TaxonBase entity) {
-               super(formFactory, conversation, entity);
+       public TaxonWizardPage(CdmFormFactory formFactory, TaxonBase<?> entity) {
+               super(formFactory, entity);
                setTitle("Taxon");
        }
 
-
-       /** {@inheritDoc} */
        @Override
-       public AbstractCdmDetailElement<TaxonBase> createElement(ICdmFormElement rootElement) {
+       public AbstractCdmDetailElement<TaxonBase<?>> createElement(ICdmFormElement rootElement) {
                TaxonBaseDetailElement taxonBaseDetailElement = formFactory.createTaxonBaseDetailElement(rootElement, SWT.NULL);
                taxonBaseDetailElement.setEntity(entity);
                return taxonBaseDetailElement;
index cab88c413e29516df18d22881b1aa523442c1d5f..4bf472adbcee55b757dff3ce1fbee2c55f03c46f 100644 (file)
@@ -59,7 +59,7 @@ public class GroupsByUserDetailElement extends
        @Override
        public void createControls(ICdmFormElement element, int style) {
                selection_group = formFactory
-                               .createSelectionElement(Group.class,//getConversationHolder(),
+                               .createSelectionElement(Group.class,
                                        element, "", getEntity(),
                                                EntitySelectionElement.NOTHING, style);
        }
index b7a22dcaf0ca8b55ec7f24d100721135f78cfaaa..6406b4e9d50515dcbcdd2e90a71c9d358f5cb495 100644 (file)
@@ -1,12 +1,16 @@
 /**
- *
- */
+* 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.section.user;
 
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.permission.Group;
 import eu.etaxonomy.cdm.model.permission.User;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.GroupSelectionDialog;
@@ -17,26 +21,15 @@ import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
  * @author n.hoffmann
- *
  */
 public class GroupsByUserDetailSection extends AbstractEntityCollectionSection<User, Group> {
 
-       /**
-        * @param formFactory
-        * @param conversation
-        * @param parentElement
-        * @param title
-        * @param style
-        */
        public GroupsByUserDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        int style) {
-               super(formFactory, conversation, parentElement, "Groups", style);
+               super(formFactory, parentElement, "Groups", style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
-        */
        @Override
        public Collection<Group> getCollection(User entity) {
                return entity.getGroups();
@@ -47,64 +40,42 @@ public class GroupsByUserDetailSection extends AbstractEntityCollectionSection<U
         return new DefaultCdmBaseComparator<>();
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#createNewElement()
-        */
        @Override
        public Group createNewElement() {
-               Group selectedGroup = GroupSelectionDialog.select(getShell(), //getConversationHolder(),
+               Group selectedGroup = GroupSelectionDialog.select(getShell(),
                        null, getEntity());
                return selectedGroup;
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#addElement(java.lang.Object)
-        */
        @Override
        public void addElement(Group element) {
                element.addMember(getEntity());
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#removeElement(java.lang.Object)
-        */
        @Override
        public void removeElement(Group element) {
                element.removeMember(getEntity());
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getEmptyString()
-        */
        @Override
        public String getEmptyString() {
                return "No groups yet.";
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getTooltipString()
-        */
        @Override
        protected String getTooltipString() {
                return "Add this user to a group";
        }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public Group addExisting() {
         // TODO Auto-generated method stub
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         // TODO Auto-generated method stub
         return false;
     }
-
-}
+}
\ No newline at end of file
index b40b1327358ad2c13998fda1211a848d99d2b058..b4a36a69579921ba7c1d78f1974354613957c0a0 100644 (file)
@@ -3,12 +3,16 @@
  */
 package eu.etaxonomy.taxeditor.ui.section.user;
 
+import java.util.ArrayList;
+import java.util.Collection;
+
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.permission.User;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
@@ -42,8 +46,7 @@ public class UserDetailElement extends AbstractCdmDetailElement<User> {
 
                if (userIsAuthenticated() || CdmStore.getLoginManager().isUserManager() || CdmStore.getLoginManager().isAdmin() ) {
                        formFactory.createEditPasswordElement(
-                                       formElement, "Change Password", getConversationHolder(),
-                                       entity, style);
+                                       formElement, "Change Password", entity, style);
                }
 
                text_emailAdress = formFactory.createTextWithLabelElement(formElement,
@@ -51,24 +54,28 @@ public class UserDetailElement extends AbstractCdmDetailElement<User> {
 
                selection_person = formFactory
                                .createSelectionElement(Person.class,
-                                               //getConversationHolder(),
                                                formElement,
                                                "Person",
                                                entity.getPerson(),
                                                EntitySelectionElement.EDITABLE | EntitySelectionElement.SELECTABLE,
                                                style);
 
-//             checkbox_accountNonExpired = formFactory.createCheckbox(formElement,
-//                             "Account Non Expired", entity.isAccountNonExpired(), style);
-//             checkbox_accountNonLocked = formFactory.createCheckbox(formElement,
-//                             "Account Non Locked", entity.isAccountNonLocked(), style);
                checkbox_enabled = formFactory.createCheckbox(formElement, "Enabled",
                                entity.isEnabled(), style);
-//             checkbox_credentialsNonExpired = formFactory.createCheckbox(
-//                             formElement, "Credentials Non Expired",
-//                             entity.isCredentialsNonExpired(), style);
+
        }
 
+       @Override
+    public void setEnabled(boolean enabled) {
+        Collection<Object> except = new ArrayList<Object>();
+
+        for(ICdmFormElement formElement:getElements()){
+            if(formElement instanceof IEnableableFormElement && !((IEnableableFormElement) formElement).isEnabled()){
+                except.add(formElement);
+            }
+        }
+        setEnabled(enabled, except);
+    }
        private boolean userIsAuthenticated() {
                return getEntity().equals(
                                CdmStore.getLoginManager().getAuthenticatedUser());
@@ -95,4 +102,17 @@ public class UserDetailElement extends AbstractCdmDetailElement<User> {
                                        checkbox_credentialsNonExpired.getSelection());
                }
        }
-}
+
+       @Override
+       public void fillFields() {
+               // TODO implement
+               //text_username;
+               //text_emailAdress;
+               //selection_person;
+               //checkbox_credentialsNonExpired;
+               //checkbox_enabled;
+               //checkbox_accountNonLocked;
+               //checkbox_accountNonExpired;
+               
+       }
+}
\ No newline at end of file
index 0a1df97b7ecaa4cf2a04739ccd794b6b3851c0d8..e80233e29d2ea96be4ae1beea33fe8cec3213b1c 100644 (file)
@@ -1,6 +1,11 @@
 /**
- *
- */
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.ui.section.user;
 
 import java.util.List;
@@ -8,7 +13,6 @@ import java.util.List;
 import org.eclipse.jface.util.IPropertyChangeListener;
 import org.eclipse.jface.viewers.ISelectionProvider;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.permission.User;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -17,38 +21,27 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 
 /**
  * @author n.hoffmann
- *
  */
 public class UserDetailSection extends AbstractCdmDetailSection<User> {
 
        public UserDetailSection(CdmFormFactory formFactory,
-                       ConversationHolder conversation, ICdmFormElement parentElement,
+                       ICdmFormElement parentElement,
                        ISelectionProvider selectionProvider, int style) {
-               super(formFactory, conversation, parentElement, selectionProvider, style);
+               super(formFactory, parentElement, selectionProvider, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.ICdmFormElement#setPropertyChangeListeners(java.util.List)
-        */
        @Override
        public void setPropertyChangeListeners(
                        List<IPropertyChangeListener> propertyChangeListeners) {
-
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
-        */
        @Override
        public String getHeading() {
                return "User " + (getEntity() != null ? getEntity().getUsername() : "");
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
-        */
        @Override
        protected AbstractCdmDetailElement<User> createCdmDetailElement(AbstractCdmDetailSection<User> parentElement, int style) {
            return formFactory.createUserDetailElement(parentElement);
        }
-}
+}
\ No newline at end of file
index 8e622e7ac2f03a1509d30d3e7ae0e82f6fe0ba0f..cbd44f8e1feee00a6a3b4e6ffd0e8d4f524e87a8 100644 (file)
@@ -3,7 +3,6 @@
  */
 package eu.etaxonomy.taxeditor.ui.section.user;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.permission.User;
 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmEntityWizardPage;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -16,9 +15,8 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
  */
 public class UserDetailWizardPage extends AbstractCdmEntityWizardPage<User> {
 
-       public UserDetailWizardPage(CdmFormFactory formFactory,
-                       ConversationHolder conversation, User entity) {
-               super(formFactory, conversation, entity);
+       public UserDetailWizardPage(CdmFormFactory formFactory, User entity) {
+               super(formFactory, entity);
                setTitle("User");
        }
 
index 7efabea1c3d183efc7cba646541ab04e4408294e..d7ea8df74a0a9232050fa6267c028051caa1048b 100644 (file)
@@ -15,18 +15,20 @@ import java.util.ListIterator;
 import java.util.Map;\r
 import java.util.Set;\r
 \r
-import org.apache.log4j.Logger;\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
 import org.eclipse.swt.events.SelectionEvent;\r
 import org.eclipse.swt.events.SelectionListener;\r
 \r
-import eu.etaxonomy.cdm.model.term.DefinedTerm;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
 import eu.etaxonomy.cdm.model.common.Language;\r
 import eu.etaxonomy.cdm.model.common.LanguageString;\r
 import eu.etaxonomy.cdm.model.common.Marker;\r
-import eu.etaxonomy.cdm.model.term.TermType;\r
 import eu.etaxonomy.cdm.model.description.CategoricalData;\r
 import eu.etaxonomy.cdm.model.description.State;\r
 import eu.etaxonomy.cdm.model.description.StateData;\r
+import eu.etaxonomy.cdm.model.term.DefinedTerm;\r
+import eu.etaxonomy.cdm.model.term.TermType;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 import eu.etaxonomy.taxeditor.store.TermStore;\r
 import eu.etaxonomy.taxeditor.store.UsageTermCollection;\r
@@ -35,19 +37,17 @@ import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;\r
 \r
-\r
 /**\r
  * The context manager mediates context start/stop and workbench shutdowns to all registered listeners.\r
  *\r
  * @author a.theys\r
  * @created mar 13, 2012\r
- * @version 1.0\r
  */\r
 public class UseRecordDetailElement extends\r
                AbstractCdmDetailElement<CategoricalData> implements SelectionListener {\r
 \r
        @SuppressWarnings("unused")\r
-       private static final Logger logger = Logger.getLogger(UseRecordDetailElement.class);\r
+       private static final Logger logger = LogManager.getLogger();\r
 \r
        private TermComboElement<State> combo_UseCategory;\r
        private TermComboElement<State> combo_UseSubCategory;\r
@@ -61,7 +61,6 @@ public class UseRecordDetailElement extends
                super(formFactory, formElement);\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        protected void createControls(ICdmFormElement formElement,\r
                        CategoricalData entity, int style) {\r
@@ -111,13 +110,10 @@ public class UseRecordDetailElement extends
                } else {\r
                        combo_EthnicGroup.setEnabled(false);\r
                }\r
-\r
        }\r
 \r
        /**\r
         * Returns the select modifier\r
-        * @param comboCategory\r
-        * @return\r
         */\r
        private DefinedTerm modifierSelection(String comboCategory) {\r
                if(!getEntity().getModifiers().isEmpty()) {\r
@@ -130,13 +126,10 @@ public class UseRecordDetailElement extends
                        return null;\r
                }\r
                return null;\r
-\r
        }\r
 \r
        /**\r
         * Returns the selected state\r
-        * @param comboCategory\r
-        * @return\r
         */\r
        private State stateSelection(String comboCategory) {\r
                if (!getEntity().getStateData().isEmpty()) {\r
@@ -145,7 +138,7 @@ public class UseRecordDetailElement extends
                                        String testString = statedata.getModifyingText().get(CdmStore.getDefaultLanguage()).getText();\r
                                        if(testString.equals(comboCategory)) {\r
                                                if(statedata.getState() !=null) {\r
-                                                       return statedata.getState();\r
+                                                       return CdmBase.deproxy(statedata.getState(), State.class);\r
                                                }\r
                                        }\r
                                }\r
@@ -155,14 +148,10 @@ public class UseRecordDetailElement extends
                        return null;\r
                }\r
                return null;\r
-\r
        }\r
 \r
        /**\r
         * This function sets the combo terms (Besides EthnicGroup\r
-        * @param listOfTerms\r
-        * @param modType\r
-        * @return\r
         */\r
        private List<DefinedTerm> setModifierComboTerms(List<DefinedTerm> listOfTerms, String modType) {\r
                List<DefinedTerm> termsToAdd = new ArrayList<DefinedTerm>();\r
@@ -179,17 +168,13 @@ public class UseRecordDetailElement extends
                return termsToAdd;\r
        }\r
 \r
-\r
        /**\r
         * This function sets the Use Category combo term\r
-        * @param listOfTerms\r
-        * @return\r
         */\r
        private List<State> setUseCategoryComboTerms(List<State> listOfTerms) {\r
-               List<State> termsToAdd = new ArrayList<State>();\r
+        List<State> termsToAdd = new ArrayList<>();\r
                for (State term : listOfTerms) {\r
-\r
-                       if ((term.getPartOf() != null) && (term.getPartOf().getUuid().equals( UsageTermCollection.uuidUseCategoryVocabulary))) {\r
+                   if ((term.getPartOf() != null) && (term.getPartOf().getUuid().equals( UsageTermCollection.uuidUseCategoryVocabulary))) {\r
                                termsToAdd.add(term);\r
                        }\r
                        else if ((term.getVocabulary() !=null) && (term.getPartOf() == null) && (term.getVocabulary().getUuid().equals(UsageTermCollection.uuidUseCategoryVocabulary))) {\r
@@ -197,18 +182,15 @@ public class UseRecordDetailElement extends
                        }\r
                }\r
                return termsToAdd;\r
-\r
        }\r
 \r
        /**\r
         * This function sets the Use SubCategory combo term\r
-        * @param listOfTerms\r
-        * @param selectedUseCategory\r
-        * @return\r
         */\r
        private List<State> setUseCategoryComboTerms(List<State> listOfTerms,\r
                        State selectedUseCategory) {\r
-               List<State> termsToAdd = new ArrayList<State>();\r
+\r
+               List<State> termsToAdd = new ArrayList<>();\r
                if (combo_UseCategory.getSelection() != null) {\r
 \r
                        for (State term : listOfTerms) {\r
@@ -236,9 +218,7 @@ public class UseRecordDetailElement extends
                                        }\r
                                }\r
                        }\r
-\r
                }\r
-\r
                else {\r
                        return null;\r
                }\r
@@ -249,9 +229,6 @@ public class UseRecordDetailElement extends
 \r
        /**\r
         * This function sets the EthnicGroup combo term\r
-        * @param listOfTerms\r
-        * @param selectedHumangroup\r
-        * @return\r
         */\r
        private List<DefinedTerm> setEthnicGroupComboTerms(List<DefinedTerm> listOfTerms,\r
                        DefinedTerm selectedHumangroup) {\r
@@ -291,8 +268,6 @@ public class UseRecordDetailElement extends
                return termsToAdd;\r
        }\r
 \r
-\r
-       /** {@inheritDoc} */\r
        @Override\r
        public void handleEvent(Object eventSource) {\r
                if (eventSource == combo_UseCategory) {\r
@@ -332,7 +307,6 @@ public class UseRecordDetailElement extends
                                        }\r
                                }\r
 \r
-\r
                                if (isChanged == false) {\r
                                        StateData stateData = StateData\r
                                                        .NewInstance(combo_UseCategory.getSelection());\r
@@ -342,16 +316,15 @@ public class UseRecordDetailElement extends
                                }\r
 \r
                                combo_UseSubCategory.setEnabled(true);\r
-\r
                        }\r
                        else {\r
                                if (!getEntity().getStateData().isEmpty()) {\r
                                        Iterator<StateData> itr = getEntity().getStateData().iterator();\r
                                        while(itr.hasNext()) {\r
-                                               StateData stateToRemove = itr.next();\r
+                                               itr.next();\r
                                                itr.remove();\r
                                        }\r
-                                       List<State> termsSubCategory = new ArrayList<State>();\r
+                                       List<State> termsSubCategory = new ArrayList<>();\r
                                        State emptyState = State.NewInstance();\r
                                        termsSubCategory.add(emptyState);\r
                                        combo_UseSubCategory.setTerms(termsSubCategory);\r
@@ -391,7 +364,6 @@ public class UseRecordDetailElement extends
                                        stateData.putModifyingText(CdmStore.getDefaultLanguage(), UsageTermCollection.useSubCategoryVocabularyLabel);\r
                                        getEntity().addStateData(stateData);\r
                                }\r
-\r
                        } else {\r
                                if (!getEntity().getStateData().isEmpty()) {\r
                                        Iterator<StateData> itrStateData = getEntity().getStateData().iterator();\r
@@ -417,7 +389,6 @@ public class UseRecordDetailElement extends
                                        if(GetVocabularyType(modifier, UsageTermCollection.plantPartLabel)) {\r
                                                itrExistingModifiers.remove();\r
                                        }\r
-\r
                                }\r
                                DefinedTerm plantPart = combo_PlantPart.getSelection();\r
                                getEntity().addModifier(plantPart);\r
@@ -432,7 +403,6 @@ public class UseRecordDetailElement extends
                                                }\r
                                        }\r
                                }\r
-\r
                        }\r
                }\r
                if (eventSource == combo_Country) {\r
@@ -443,7 +413,6 @@ public class UseRecordDetailElement extends
                                        if(GetVocabularyType(modifier, UsageTermCollection.countryLabel)) {\r
                                                itrExistingModifiers.remove();\r
                                        }\r
-\r
                                }\r
                                DefinedTerm country = combo_Country.getSelection();\r
                                getEntity().addModifier(country);\r
@@ -466,9 +435,7 @@ public class UseRecordDetailElement extends
                                for (DefinedTerm modToCheck: getEntity().getModifiers()) {\r
                                        if(modToCheck.equals(combo_HumanGroup.getSelection()) && (GetVocabularyType(modToCheck, UsageTermCollection.humanGroupLabel))) {\r
                                                isHumanGroupChanged = false;\r
-                               }\r
-\r
-\r
+                                       }\r
                                }\r
                                Iterator<DefinedTerm> itrExistingModifiers = getEntity().getModifiers().iterator();\r
                                while (itrExistingModifiers.hasNext()) {\r
@@ -476,7 +443,6 @@ public class UseRecordDetailElement extends
                                        if((GetVocabularyType(modifier, UsageTermCollection.humanGroupLabel) || GetVocabularyType(modifier, UsageTermCollection.ethnicGroupLabel)) && isHumanGroupChanged) {\r
                                                itrExistingModifiers.remove();\r
                                        }\r
-\r
                                }\r
                                if(isHumanGroupChanged){\r
                                        DefinedTerm humanGroup = combo_HumanGroup.getSelection();\r
@@ -499,11 +465,9 @@ public class UseRecordDetailElement extends
 //                             DefinedTerm emptyMod = DefinedTerm.NewInstance();\r
                                DefinedTerm emptyMod = null;\r
 \r
-\r
                                emptyListToResetComboBox.add(emptyMod);\r
                                combo_EthnicGroup.setTerms(emptyListToResetComboBox);\r
                                combo_EthnicGroup.setEnabled(false);\r
-\r
                        }\r
                }\r
                if (eventSource == combo_EthnicGroup) {\r
@@ -514,7 +478,6 @@ public class UseRecordDetailElement extends
                                                if(GetVocabularyType(modifier, combo_HumanGroup.getSelection().getTitleCache())) {\r
                                                        itrExistingModifiers.remove();\r
                                                }\r
-\r
                                        }\r
                                        DefinedTerm ethnicGroup = combo_EthnicGroup.getSelection();\r
                                        getEntity().addModifier(ethnicGroup);\r
@@ -529,19 +492,13 @@ public class UseRecordDetailElement extends
                                                        itr.remove();\r
                                                }\r
                                        }\r
-\r
                                }\r
                        }\r
                }\r
        }\r
 \r
-\r
-\r
        /**\r
         * This function Checks the vocabulary type\r
-        * @param term\r
-        * @param vocabularyExpected\r
-        * @return\r
         */\r
        private boolean GetVocabularyType(DefinedTerm term, String vocabularyExpected) {\r
                if ((term.getPartOf() != null)  && (term.getPartOf().getTitleCache().equals(vocabularyExpected))) {\r
@@ -556,15 +513,11 @@ public class UseRecordDetailElement extends
        return false;\r
        }\r
 \r
-\r
-\r
-       /** {@inheritDoc} */\r
        @Override\r
        public void setEntity(CategoricalData entity) {\r
                super.setEntity(entity);\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        public void widgetSelected(SelectionEvent e) {\r
                Object eventSource = e.getSource();\r
@@ -604,17 +557,26 @@ public class UseRecordDetailElement extends
                                                        }\r
                                                }\r
                                        }\r
-\r
                                }\r
                        }\r
                }\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        public void widgetDefaultSelected(SelectionEvent e) {\r
                // TODO Auto-generated method stub\r
+       }\r
+
 \r
+       @Override\r
+       public void fillFields() {\r
+               // TODO \r
+               //combo_UseCategory;\r
+               //combo_UseSubCategory;\r
+               //combo_PlantPart;\r
+               //combo_Country;\r
+               //combo_HumanGroup;\r
+               //combo_EthnicGroup;\r
        }\r
 \r
-}\r
+}
index 01b8ce6e5aa6cae218f36dcf69efd83a438d3327..602f9446758170aba0f14a8622d35dbb46d39704 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.ui.section.userecords;
 \r
 import org.eclipse.jface.viewers.ISelectionProvider;\r
 \r
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
@@ -26,38 +25,24 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
  */\r
 public class UseRecordDetailSection extends AbstractCdmDetailSection<DescriptionElementBase> {\r
 \r
-       /**Constructor for class UseRecordDetailSection\r
-        *\r
-        * @param cdmFormFactory\r
-        * @param conversation\r
-        * @param parentElement\r
-        * @param selectionProvider\r
-        * @param style\r
-        */\r
-       public UseRecordDetailSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,\r
+       public UseRecordDetailSection(CdmFormFactory cdmFormFactory,\r
                        ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {\r
-               super(cdmFormFactory, conversation, parentElement, selectionProvider, style);\r
+               super(cdmFormFactory, parentElement, selectionProvider, style);\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        public String getHeading() {\r
                return "Use Record";\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        protected void setSectionTitle() {\r
                this.setText(getHeading() + ": " + getEntity().getFeature().getLabel(CdmStore.getDefaultLanguage()));\r
                setTextClient(createToolbar());\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)\r
-        */\r
        @Override\r
        protected AbstractCdmDetailElement createCdmDetailElement(AbstractCdmDetailSection<DescriptionElementBase> parentElement, int style) {\r
            return formFactory.createUseRecordDetailElement(parentElement);\r
        }\r
-\r
-}\r
+}
\ No newline at end of file
index 4cf0c6f825f78a8f28bd3b350cd17a41529e765f..a905852bec0becc63e139ac9b8bef4c61c17d6fd 100644 (file)
@@ -8,12 +8,9 @@
 */\r
 package eu.etaxonomy.taxeditor.ui.section.vocabulary;\r
 \r
-import org.eclipse.swt.widgets.Button;\r
-\r
 import eu.etaxonomy.cdm.model.common.Language;\r
 import eu.etaxonomy.cdm.model.term.Representation;\r
 import eu.etaxonomy.cdm.model.term.TermBase;\r
-import eu.etaxonomy.cdm.model.term.TermVocabulary;\r
 import eu.etaxonomy.taxeditor.editor.definedterm.TermBasePropertyTester;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
@@ -25,14 +22,11 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
 /**\r
  * @author l.morris\r
  * @date 20 Dec 2011\r
- *\r
  */\r
 public abstract class AbstractTermBaseDetailElement<T extends TermBase> extends AbstractCdmDetailElement<T> {\r
 \r
-       protected UriWithLabelElement uri_uri;\r
-       protected RepresentationElement element_Representation;\r
-       private Button button;\r
-\r
+       private UriWithLabelElement uri_uri;\r
+       private RepresentationElement element_Representation;\r
 \r
        public AbstractTermBaseDetailElement(CdmFormFactory formFactory,\r
                        ICdmFormElement formElement) {\r
@@ -71,7 +65,4 @@ public abstract class AbstractTermBaseDetailElement<T extends TermBase> extends
             getEntity().setTitleCache(null);\r
         }\r
     }\r
-\r
-       public abstract TermVocabulary getVocabulary();\r
-\r
-}\r
+}
\ No newline at end of file
index 75732be94a4a01ad879bd4093dc7728d356e9499..2c2a8594b726cf33261974e367f888c02f18ba40 100644 (file)
@@ -8,32 +8,27 @@
 */\r
 package eu.etaxonomy.taxeditor.ui.section.vocabulary;\r
 \r
-import org.apache.commons.lang.StringUtils;\r
+import org.apache.commons.lang3.StringUtils;\r
 \r
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
-import eu.etaxonomy.cdm.model.term.TermVocabulary;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelAndSetNullElement;\r
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;\r
 \r
 /**\r
  * @author l.morris\r
  * @date 20 Dec 2011\r
- *\r
  */\r
-public class DefinedTermDetailElement<T extends DefinedTermBase> extends AbstractTermBaseDetailElement<T> {\r
+public class DefinedTermDetailElement<T extends DefinedTermBase>\r
+                       extends AbstractTermBaseDetailElement<T> {\r
 \r
     protected TextWithLabelElement textIdInVocabulary;\r
 \r
-    protected TextWithLabelElement textSymbol;\r
+    protected TextWithLabelAndSetNullElement textSymbol;\r
 \r
-    protected TextWithLabelElement textSymbol2;\r
+    protected TextWithLabelAndSetNullElement textSymbol2;\r
 \r
-\r
-       /**\r
-        * @param formFactory\r
-        * @param formElement\r
-        */\r
        public DefinedTermDetailElement(CdmFormFactory formFactory,\r
                        ICdmFormElement formElement) {\r
                super(formFactory, formElement);\r
@@ -43,50 +38,48 @@ public class DefinedTermDetailElement<T extends DefinedTermBase> extends Abstrac
     protected void createControls(ICdmFormElement formElement, T entity, int style) {\r
            super.createControls(formElement, entity, style);\r
            textIdInVocabulary = formFactory.createTextWithLabelElement(formElement, "ID in vocabulary", entity.getIdInVocabulary(), style);\r
-           textSymbol = formFactory.createTextWithLabelElement(formElement, "Symbol", entity.getSymbol(), style);\r
-           textSymbol2 = formFactory.createTextWithLabelElement(formElement, "Symbol 2", entity.getSymbol2(), style);\r
-       };\r
+           String symbolString = entity.getSymbol();\r
+           if (entity.getSymbol() == null) {\r
+               symbolString = "[NULL]";\r
+           }\r
+           String symbolString2 = entity.getSymbol2();\r
+           if (entity.getSymbol2() == null) {\r
+               symbolString2 = "[NULL]";\r
+           }\r
+           textSymbol = formFactory.createTextWithLabelAndSetNullElement(formElement, "Symbol", symbolString, style);\r
+           textSymbol2 = formFactory.createTextWithLabelAndSetNullElement(formElement, "Symbol 2", symbolString2, style);\r
+       }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)\r
-        */\r
        @Override\r
        public void handleEvent(Object eventSource) {\r
            super.handleEvent(eventSource);\r
-               //handleRepresentation(eventSource);\r
                if(eventSource==textIdInVocabulary){\r
                        if (StringUtils.isBlank(textIdInVocabulary.getText())){\r
                                getEntity().setIdInVocabulary(null);\r
                        }else{\r
                                getEntity().setIdInVocabulary(textIdInVocabulary.getText());\r
                        }\r
-\r
                }\r
-               if(eventSource==textSymbol){\r
-            if (StringUtils.isBlank(textSymbol.getText())){\r
-                getEntity().setSymbol(null);\r
-            }else{\r
-                getEntity().setSymbol(textSymbol.getText());\r
-            }\r
 \r
+               if(eventSource==textSymbol){\r
+                       if (textSymbol.getText().equals("[NULL]")){\r
+                               getEntity().setSymbol(null);\r
+                       }else {\r
+                               getEntity().setSymbol(textSymbol.getText());\r
+                       }\r
         }\r
 \r
                if(eventSource==textSymbol2){\r
-            if (StringUtils.isBlank(textSymbol2.getText())){\r
-                getEntity().setSymbol2(null);\r
-            }else{\r
-                getEntity().setSymbol2(textSymbol2.getText());\r
-            }\r
-\r
+                       if (textSymbol2.getText().equals("[NULL]")){\r
+                               getEntity().setSymbol2(null);\r
+                       }else {\r
+                               getEntity().setSymbol2(textSymbol2.getText());\r
+                       }\r
         }\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.section.vocabulary.AbstractTermBaseDetailElement#getVocabularyMarkers()\r
-        */\r
        @Override\r
-       public TermVocabulary getVocabulary() {\r
-               return getEntity() != null ? getEntity().getVocabulary() : null;\r
+       public void fillFields() {\r
+               // TODO Auto-generated method stub\r
        }\r
-\r
-}\r
+}
\ No newline at end of file
index 0125bc55543ecf027d564a47917d78609465e7be..1f9351d9b7a719d0e93ec8e56c22eb3d1ae2d037 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.ui.section.vocabulary;
 \r
 import org.eclipse.jface.viewers.ISelectionProvider;\r
 \r
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
@@ -20,27 +19,15 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**\r
  * @author l.morris\r
  * @date 4 Jan 2012\r
- *\r
  */\r
 public class DefinedTermDetailSection<T extends DefinedTermBase> extends AbstractCdmDetailSection<T> {\r
 \r
-       /**\r
-        * @param formFactory\r
-        * @param definedTermClass\r
-        * @param conversation\r
-        * @param parentElement\r
-        * @param selectionProvider\r
-        * @param style\r
-        */\r
        public DefinedTermDetailSection(CdmFormFactory formFactory,\r
-                       Class<T> definedTermClass, ConversationHolder conversation, ICdmFormElement parentElement,\r
+                       Class<T> definedTermClass, ICdmFormElement parentElement,\r
                        ISelectionProvider selectionProvider, int style) {\r
-               super(formFactory, definedTermClass, conversation, parentElement, selectionProvider, style);\r
+               super(formFactory, definedTermClass, parentElement, selectionProvider, style);\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#getHeading()\r
-        */\r
        @Override\r
        public String getHeading() {\r
                /*String result = null;\r
@@ -48,25 +35,18 @@ public class DefinedTermDetailSection<T extends DefinedTermBase> extends Abstrac
                if (result == null){\r
                        result = getEntity().getTitleCache();\r
                } */\r
-               \r
+\r
                return "Defined Term ";//+ result;\r
        }\r
 \r
        //FIXME clean up create element methods\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElementByType(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, java.lang.Class, int)\r
-        */\r
        @Override\r
        protected AbstractCdmDetailElement createCdmDetailElementByType(AbstractCdmDetailSection<T> parentElement, Class<T> entityClass, int style) {\r
            return formFactory.createDefinedTermDetailElement(entityClass, parentElement, style);\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)\r
-        */\r
        @Override\r
        protected AbstractCdmDetailElement<T> createCdmDetailElement(AbstractCdmDetailSection<T> parentElement, int style) {\r
            return null;\r
        }\r
-\r
-}\r
+}
\ No newline at end of file
index 82dd46455605319eda6b59ecaa86f62d6b2b24be..567cb63513dc17b6b4299627382dbab77017969b 100644 (file)
@@ -14,6 +14,7 @@ import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.taxeditor.store.StoreUtil;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;\r
+import eu.etaxonomy.taxeditor.ui.element.FloatWithLabelElement;\r
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.LabelElement;\r
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;\r
@@ -21,7 +22,6 @@ import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 /**\r
  * @author l.morris\r
  * @date 20 Dec 2011\r
- *\r
  */\r
 public class FeatureDetailElement extends DefinedTermDetailElement<Feature> {\r
 \r
@@ -43,33 +43,31 @@ public class FeatureDetailElement extends DefinedTermDetailElement<Feature> {
 \r
     private CheckboxElement supportsTemporalData;\r
 \r
-    private StateVocabularyCollectionSection sectionStateVocabularies;\r
+    private RecommendedStateCollectionSection sectionStateVocabularies;\r
 \r
     private MeasurementUnitCollectionSection sectionMeasurementUnits;\r
 \r
     private StatisticalMeasureCollectionSection sectionStatisticalMeasures;\r
 \r
-    private RecommendedModifierVocabulariesCollectionSection sectionModifierVocabularies;\r
+    private RecommendedModifierCollectionsCollectionSection sectionModifierVocabularies;\r
     private CheckboxElement availableForTaxon;\r
     private CheckboxElement availableForTaxonName;\r
     private CheckboxElement availableForSpecimenOrObservation;\r
 \r
-    /**\r
-        * @param formFactory\r
-        * @param formElement\r
-        */\r
+    private FloatWithLabelElement maxPerDataset;\r
+    private FloatWithLabelElement maxStates;\r
+\r
        public FeatureDetailElement(CdmFormFactory formFactory,\r
                        ICdmFormElement formElement) {\r
                super(formFactory, formElement);\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.section.vocabulary.AbstractTermBaseDetailElement#createControls(eu.etaxonomy.taxeditor.ui.element.ICdmFormElement, eu.etaxonomy.cdm.model.term.TermBase, int)\r
-        */\r
        @Override\r
        protected void createControls(ICdmFormElement formElement, Feature entity, int style) {\r
            super.createControls(formElement, entity, style);\r
            this.parentFormElement = formElement;\r
+           //Layout\r
+\r
            LabelElement supportsLabel = formFactory.createLabel(formElement, "Supports");\r
            supportsLabel.setBold();\r
            supportsTextData = formFactory.createCheckbox(formElement, "Text Data", entity.isSupportsTextData(), style);\r
@@ -81,27 +79,32 @@ public class FeatureDetailElement extends DefinedTermDetailElement<Feature> {
            supportsCommonTaxonName = formFactory.createCheckbox(formElement, "Common Taxon Name", entity.isSupportsCommonTaxonName(), style);\r
            supportsTemporalData = formFactory.createCheckbox(formElement, "Temporal Data", entity.isSupportsTemporalData(), style);\r
 \r
+           //categorical data\r
         if (supportsCategoricalData.getSelection()) {\r
-            sectionStateVocabularies = formFactory.createStateVocabulariesSection(getConversationHolder(),\r
-                    parentFormElement, StoreUtil.getSectionStyle(StateVocabularyCollectionSection.class, getEntity().getClass().getCanonicalName()));\r
+            maxStates = formFactory.createFloatTextWithLabelElement(formElement, "Max n states", entity.getMaxStates(), style);\r
+            sectionStateVocabularies = formFactory.createStateVocabulariesSection(\r
+                    parentFormElement, StoreUtil.getSectionStyle(RecommendedStateCollectionSection.class, getEntity().getClass().getCanonicalName()));\r
             sectionStateVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
             sectionStateVocabularies.setEntity(getEntity());\r
-\r
         }\r
+\r
+        //quantitative data\r
         if (supportsQuantitativeData.getSelection()) {\r
-            sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(getConversationHolder(),\r
+            sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(\r
                     parentFormElement, StoreUtil.getSectionStyle(MeasurementUnitCollectionSection.class, getEntity().getClass().getCanonicalName()));\r
             sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
             sectionMeasurementUnits.setEntity(getEntity());\r
 \r
-            sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(getConversationHolder(),\r
+            sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(\r
                     parentFormElement, StoreUtil.getSectionStyle(StatisticalMeasureCollectionSection.class, getEntity().getClass().getCanonicalName()));\r
             sectionStatisticalMeasures.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
             sectionStatisticalMeasures.setEntity(getEntity());\r
         }\r
+\r
+        //both\r
         if (supportsCategoricalData.getSelection() || supportsQuantitativeData.getSelection()) {\r
             sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesCollectionSection(\r
-                    getConversationHolder(), parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierVocabulariesCollectionSection.class, getEntity().getClass().getCanonicalName()));\r
+                    parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierCollectionsCollectionSection.class, getEntity().getClass().getCanonicalName()));\r
             sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
             sectionModifierVocabularies.setEntity(getEntity());\r
         }\r
@@ -111,17 +114,21 @@ public class FeatureDetailElement extends DefinedTermDetailElement<Feature> {
         TableWrapData data = LayoutConstants.FILL_HORIZONTALLY(2, 1);\r
         data.maxHeight = 3;\r
         noLabel.setLayout(data);\r
+\r
         LabelElement availableLabel = formFactory.createLabel(formElement, "Available for");\r
         availableLabel.setBold();\r
 \r
         availableForTaxon = formFactory.createCheckbox(formElement, "Taxon", entity.isAvailableForTaxon(), style);\r
         availableForTaxonName = formFactory.createCheckbox(formElement, "Taxon Name", entity.isAvailableForTaxonName(), style);\r
         availableForSpecimenOrObservation = formFactory.createCheckbox(formElement, "Occurrence", entity.isAvailableForOccurrence(), style);\r
+        LabelElement noLabel2 = formFactory.createLabel(formElement, "");\r
+        data = LayoutConstants.FILL_HORIZONTALLY(2, 1);\r
+        data.maxHeight = 3;\r
+        noLabel2.setLayout(data);\r
+        maxPerDataset = formFactory.createFloatTextWithLabelElement(formElement, "Max n per dataset", entity.getMaxPerDataset(), style);\r
+        //maxPerDataset.setTextLimit(1);\r
     }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.section.vocabulary.DefinedTermDetailElement#handleEvent(java.lang.Object)\r
-        */\r
        @Override\r
        public void handleEvent(Object eventSource) {\r
            super.handleEvent(eventSource);\r
@@ -165,17 +172,19 @@ public class FeatureDetailElement extends DefinedTermDetailElement<Feature> {
         }\r
            else if(eventSource == availableForSpecimenOrObservation){\r
             getEntity().setAvailableForOccurrence(availableForSpecimenOrObservation.getSelection());\r
-            System.err.println(getEntity().isAvailableForOccurrence());\r
         }\r
            else if(eventSource == availableForTaxon){\r
             getEntity().setAvailableForTaxon(availableForTaxon.getSelection());\r
-            System.err.println(getEntity().isAvailableForTaxon());\r
         }\r
            else if(eventSource == availableForTaxonName){\r
             getEntity().setAvailableForTaxonName(availableForTaxonName.getSelection());\r
-            System.err.println(getEntity().isAvailableForTaxonName());\r
         }\r
-\r
+           else if(eventSource == maxPerDataset){\r
+            getEntity().setMaxPerDataset(maxPerDataset.getInteger());\r
+        }\r
+           else if(eventSource == maxStates){\r
+            getEntity().setMaxStates(maxStates.getInteger());\r
+        }\r
         StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);\r
        }\r
 \r
@@ -186,20 +195,20 @@ public class FeatureDetailElement extends DefinedTermDetailElement<Feature> {
         removeCategoricalWidgets();\r
 \r
         //measurement units\r
-        sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(getConversationHolder(),\r
-                parentFormElement, StoreUtil.getSectionStyle(MeasurementUnitCollectionSection.class, getEntity().getClass().getCanonicalName()));\r
+        sectionMeasurementUnits = formFactory.createMeasurementUnitCollectionSection(parentFormElement,\r
+                StoreUtil.getSectionStyle(MeasurementUnitCollectionSection.class, getEntity().getClass().getCanonicalName()));\r
         sectionMeasurementUnits.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
         sectionMeasurementUnits.setEntity(getEntity());\r
 \r
         //statistical measures\r
         sectionStatisticalMeasures = formFactory.createStatisticalMeasureCollectionSection(\r
-                getConversationHolder(), parentFormElement,StoreUtil.getSectionStyle(StatisticalMeasureCollectionSection.class, getEntity().getClass().getCanonicalName()));\r
+                parentFormElement,StoreUtil.getSectionStyle(StatisticalMeasureCollectionSection.class, getEntity().getClass().getCanonicalName()));\r
         sectionStatisticalMeasures.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
         sectionStatisticalMeasures.setEntity(getEntity());\r
 \r
         //modifiers\r
         sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesCollectionSection(\r
-                getConversationHolder(), parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierVocabulariesCollectionSection.class, getEntity().getClass().getCanonicalName()));\r
+                parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierCollectionsCollectionSection.class, getEntity().getClass().getCanonicalName()));\r
         sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
         sectionModifierVocabularies.setEntity(getEntity());\r
     }\r
@@ -218,24 +227,26 @@ public class FeatureDetailElement extends DefinedTermDetailElement<Feature> {
         getEntity().setSupportsQuantitativeData(false);\r
         removeQuantitativeWidgets();\r
 \r
+        maxStates = formFactory.createFloatTextWithLabelElement(parentFormElement, "Max n states", getEntity().getMaxStates(), StoreUtil.getSectionStyle(RecommendedStateCollectionSection.class, getEntity().getClass().getCanonicalName()));\r
         //states\r
-        sectionStateVocabularies = formFactory.createStateVocabulariesSection(getConversationHolder(),\r
-                parentFormElement, StoreUtil.getSectionStyle(StateVocabularyCollectionSection.class, getEntity().getClass().getCanonicalName()));\r
+        sectionStateVocabularies = formFactory.createStateVocabulariesSection(\r
+                parentFormElement, StoreUtil.getSectionStyle(RecommendedStateCollectionSection.class, getEntity().getClass().getCanonicalName()), getEntity().getMaxStates());\r
         sectionStateVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
         sectionStateVocabularies.setEntity(getEntity());\r
 \r
+\r
         //modifiers\r
         sectionModifierVocabularies = formFactory.createRecommendedModifierVocabulariesCollectionSection(\r
-                getConversationHolder(), parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierVocabulariesCollectionSection.class, getEntity().getClass().getCanonicalName()));\r
+                parentFormElement, StoreUtil.getSectionStyle(RecommendedModifierCollectionsCollectionSection.class, getEntity().getClass().getCanonicalName()));\r
         sectionModifierVocabularies.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));\r
         sectionModifierVocabularies.setEntity(getEntity());\r
     }\r
 \r
     private void removeCategoricalWidgets(){\r
         if(sectionStateVocabularies!=null){\r
+            removeElementsAndControls(maxStates);\r
             removeElementsAndControls(sectionStateVocabularies);\r
             removeElementsAndControls(sectionModifierVocabularies);\r
         }\r
     }\r
-\r
-}\r
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/LanguageDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/LanguageDetailElement.java
new file mode 100644 (file)
index 0000000..533a72c
--- /dev/null
@@ -0,0 +1,86 @@
+/**
+* Copyright (C) 2021 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.section.vocabulary;
+
+import org.apache.commons.lang3.StringUtils;
+
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
+
+/**
+ * @author k.luther
+ * @since Sep 15, 2021
+ */
+public class LanguageDetailElement extends AbstractTermBaseDetailElement<Language> {
+
+    private TextWithLabelElement textIdInVocabulary;
+
+    private TextWithLabelElement textISO_639_1;
+
+    private TextWithLabelElement textSymbol;
+
+    private TextWithLabelElement textSymbol2;
+
+    public LanguageDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+        super(formFactory, formElement);
+    }
+
+    @Override
+    protected void createControls(ICdmFormElement formElement, Language entity, int style) {
+        super.createControls(formElement, entity, style);
+        textIdInVocabulary = formFactory.createTextWithLabelElement(formElement, "ID in vocabulary", entity.getIdInVocabulary(), style);
+        textISO_639_1 = formFactory.createTextWithLabelElement(formElement, "ID in ISO 639-1", entity.getIdInVocabulary(), style);
+        textSymbol = formFactory.createTextWithLabelElement(formElement, "Symbol", entity.getSymbol(), style);
+        textSymbol2 = formFactory.createTextWithLabelElement(formElement, "Symbol 2", entity.getSymbol2(), style);
+    }
+
+    @Override
+    public void handleEvent(Object eventSource) {
+        super.handleEvent(eventSource);
+        //handleRepresentation(eventSource);
+        if(eventSource==textIdInVocabulary){
+            if (StringUtils.isBlank(textIdInVocabulary.getText())){
+                getEntity().setIdInVocabulary(null);
+            }else{
+                getEntity().setIdInVocabulary(textIdInVocabulary.getText());
+            }
+        }
+
+        if(eventSource==textSymbol){
+            if (StringUtils.isBlank(textSymbol.getText())){
+                getEntity().setSymbol(null);
+            }else{
+                getEntity().setSymbol(textSymbol.getText());
+            }
+        }
+
+        if(eventSource==textSymbol2){
+            if (StringUtils.isBlank(textSymbol2.getText())){
+                getEntity().setSymbol2(null);
+            }else{
+                getEntity().setSymbol2(textSymbol2.getText());
+            }
+        }
+
+        if (eventSource == textISO_639_1){
+            if (StringUtils.isBlank(textISO_639_1.getText())){
+                getEntity().setIso639_1(null);
+            }else{
+                getEntity().setIso639_1(textISO_639_1.getText());
+            }
+        }
+    }
+
+       @Override
+       public void fillFields() {
+               // TODO Auto-generated method stub
+       }
+}
\ No newline at end of file
index d3be34353b841992f8f76139060c3baedba741c7..14422088fcdc84601df48d46cdd0cb6bfbf31a74 100644 (file)
@@ -47,13 +47,16 @@ public class MeasurementUnitCollectionElement extends AbstractEntityCollectionEl
 
     @Override
     public void createControls(ICdmFormElement element, int style) {
-        comboMeasurementUnit = formFactory.createDefinedTermComboElement(TermType.MeasurementUnit, element, "Measurement unit", null, style);
+        comboMeasurementUnit = formFactory.createDefinedTermComboElementDto(TermType.MeasurementUnit, element, "Measurement unit", null, style);
+        if (entity != null){
+               setEntity(entity);        
+        }
     }
 
     @Override
     public void setEntity(MeasurementUnit entity) {
         this.entity = entity;
-        if(entity.getId()!=0){
+        if(entity.getId()!=0 && comboMeasurementUnit != null){
             comboMeasurementUnit.setSelection(entity);
             comboMeasurementUnit.removeEmptyElement();
         }
index f6def5dbdfaf1d47054b1104babaa338d3e591ce..43d6e2f0a270ce8b4b254230ba773f8602883499 100644 (file)
@@ -11,7 +11,6 @@ package eu.etaxonomy.taxeditor.ui.section.vocabulary;
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.MeasurementUnit;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -22,19 +21,14 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCol
 /**
  * @author pplitzner
  * @date Apr 27, 2015
- *
  */
 public class MeasurementUnitCollectionSection extends AbstractUnboundEntityCollectionSection<Feature, MeasurementUnit> {
 
     public MeasurementUnitCollectionSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-        super(formFactory, conversation, parentElement, "Recommended measurement units", style);
+            ICdmFormElement parentElement, int style) {
+        super(formFactory, parentElement, "Recommended measurement units", style);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractNullEntityCollectionSection#getEntityCollection(java.lang.Object)
-     */
-    /** {@inheritDoc} */
     @Override
     protected Collection<MeasurementUnit> getEntityCollection(Feature entity) {
         return entity.getRecommendedMeasurementUnits();
@@ -45,67 +39,40 @@ public class MeasurementUnitCollectionSection extends AbstractUnboundEntityColle
         return new DefaultCdmBaseComparator<>();
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#createNewElement()
-     */
-    /** {@inheritDoc} */
     @Override
     public MeasurementUnit createNewElement() {
         return MeasurementUnit.NewInstance();
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-     */
-    /** {@inheritDoc} */
     @Override
     public void addElement(MeasurementUnit element) {
         //never gets called
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-     */
-    /** {@inheritDoc} */
     @Override
     public void removeElement(MeasurementUnit element) {
         getEntity().removeRecommendedMeasurementUnit(element);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
-     */
-    /** {@inheritDoc} */
     @Override
     public String getEmptyString() {
         return "No recommended measurement units yet.";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
-     */
-    /** {@inheritDoc} */
     @Override
     protected String getTooltipString() {
         return "Add a measurement unit";
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public MeasurementUnit addExisting() {
         // TODO Auto-generated method stub
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         // TODO Auto-generated method stub
         return false;
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/MeasurementUnitDtoCollectionElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/MeasurementUnitDtoCollectionElement.java
new file mode 100755 (executable)
index 0000000..1f597a4
--- /dev/null
@@ -0,0 +1,90 @@
+/**
+* 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.vocabulary;
+
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+
+import eu.etaxonomy.cdm.model.description.MeasurementUnit;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+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;
+
+/**
+ * @author pplitzner
+ * @date Apr 27, 2015
+ *
+ */
+public class MeasurementUnitDtoCollectionElement extends AbstractEntityCollectionElement<TermDto> {
+
+
+    private TermComboElement<MeasurementUnit> comboMeasurementUnit;
+
+    /**
+     * @param formFactory
+     * @param section
+     * @param entity
+     * @param removeListener
+     * @param isChoosableEntity
+     * @param backgroundColor
+     * @param style
+     */
+    public MeasurementUnitDtoCollectionElement(CdmFormFactory formFactory, AbstractFormSection section, TermDto entity,
+            SelectionListener removeListener, Color backgroundColor, int style) {
+        super(formFactory, section, entity, removeListener, backgroundColor, style);
+
+    }
+
+    @Override
+    public void createControls(ICdmFormElement element, int style) {
+        comboMeasurementUnit = formFactory.createDefinedTermComboElementDto(TermType.MeasurementUnit, element, "Measurement unit", null, style);
+        if (entity != null){
+               setEntity(entity);
+        }
+    }
+
+    @Override
+    public void setEntity(TermDto entity) {
+        this.entity = entity;
+        if(comboMeasurementUnit != null){
+            comboMeasurementUnit.setSelectionDto(entity);
+            comboMeasurementUnit.removeEmptyElement();
+        }
+    }
+
+    @Override
+    public void handleEvent(Object eventSource) {
+        if(eventSource==comboMeasurementUnit && comboMeasurementUnit.getSelection()!=null){
+            if(getParentElement() instanceof MeasurementUnitDtoCollectionSection){
+                MeasurementUnitDtoCollectionSection parentElement = (MeasurementUnitDtoCollectionSection) getParentElement();
+                FeatureDto feature = parentElement.getEntity();
+                TermDto remove = null;
+                for (TermDto unit: feature.getRecommendedMeasurementUnits()){
+                    if (unit.getUuid().equals(getEntity().getUuid())){
+                        remove =unit;
+                        break;
+                    }
+                }
+                feature.getRecommendedMeasurementUnits().remove(remove);
+                MeasurementUnit measurementUnit = comboMeasurementUnit.getSelection();
+                entity = TermDto.fromTerm(measurementUnit);
+                feature.getRecommendedMeasurementUnits().add(entity);
+
+                //update the parent section to re-set the listeners to the persisted measurement unit
+//                parentElement.removeElementAndUpdate(null);
+            }
+        }
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/MeasurementUnitDtoCollectionSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/MeasurementUnitDtoCollectionSection.java
new file mode 100755 (executable)
index 0000000..1f3d5f9
--- /dev/null
@@ -0,0 +1,107 @@
+/**
+* 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.vocabulary;
+
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.HashSet;
+
+import eu.etaxonomy.cdm.model.description.MeasurementUnit;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection;
+
+/**
+ * @author pplitzner
+ * @date Apr 27, 2015
+ */
+public class MeasurementUnitDtoCollectionSection extends AbstractUnboundEntityCollectionSection<FeatureDto, TermDto> {
+
+    public MeasurementUnitDtoCollectionSection(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, int style) {
+        super(formFactory, parentElement, "Recommended measurement units", style);
+    }
+
+    @Override
+    protected Collection<TermDto> getEntityCollection(FeatureDto entity) {
+        if (entity.getRecommendedMeasurementUnits() == null){
+            entity.setRecommendedMeasurementUnits(new HashSet<TermDto>());
+        }
+        return entity.getRecommendedMeasurementUnits();
+    }
+
+    @Override
+    public Comparator<TermDto> getComparator() {
+        return new Comparator<TermDto>() {
+            @Override
+            public int compare(TermDto o1, TermDto o2) {
+                if(o1==null){
+                    return -1;
+                }
+                if(o2==null){
+                    return 1;
+                }
+                int diff = o1.getTitleCache().compareTo(o2.getTitleCache());
+                if(diff==0){
+                    diff = o1.getUuid().compareTo(o2.getUuid());
+                }
+                return diff;
+            }
+        };
+    }
+
+    @Override
+    public TermDto createNewElement() {
+        return TermDto.fromTerm(MeasurementUnit.NewInstance());
+    }
+
+    @Override
+    public void addElement(TermDto element) {
+        //never gets called
+    }
+
+    @Override
+    public void removeElement(TermDto element) {
+        if (element == null){
+            return;
+        }
+        TermDto remove = null;
+        for (TermDto unit: getEntity().getRecommendedMeasurementUnits()){
+            if (unit.getUuid().equals(element.getUuid())){
+                remove = unit;
+                break;
+            }
+        }
+        getEntity().getRecommendedMeasurementUnits().remove(remove);
+    }
+
+    @Override
+    public String getEmptyString() {
+        return "No recommended measurement units yet.";
+    }
+
+    @Override
+    protected String getTooltipString() {
+        return "Add a measurement unit";
+    }
+
+    @Override
+    public TermDto addExisting() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public boolean allowAddExisting() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+}
\ No newline at end of file
index b303c9c31c1d1deac8c522dad4e58cd68863729e..5c1ca4230a20fed808238b0c3126a1e226e3f177 100644 (file)
@@ -8,10 +8,10 @@
 */\r
 package eu.etaxonomy.taxeditor.ui.section.vocabulary;\r
 \r
-import eu.etaxonomy.cdm.model.term.TermType;\r
 import eu.etaxonomy.cdm.model.location.NamedArea;\r
 import eu.etaxonomy.cdm.model.location.NamedAreaLevel;\r
 import eu.etaxonomy.cdm.model.location.NamedAreaType;\r
+import eu.etaxonomy.cdm.model.term.TermType;\r
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
@@ -20,7 +20,6 @@ import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
 /**\r
  * @author l.morris\r
  * @date 20 Dec 2011\r
- *\r
  */\r
 public class NamedAreaDetailElement extends DefinedTermDetailElement<NamedArea> {\r
 \r
@@ -31,10 +30,6 @@ public class NamedAreaDetailElement extends DefinedTermDetailElement<NamedArea>
        // validPeriod\r
        private TimePeriodElement timePeriod_validPeriod;\r
 \r
-       /**\r
-        * @param formFactory\r
-        * @param formElement\r
-        */\r
        public NamedAreaDetailElement(CdmFormFactory formFactory,\r
                        ICdmFormElement formElement) {\r
                super(formFactory, formElement);\r
@@ -47,12 +42,8 @@ public class NamedAreaDetailElement extends DefinedTermDetailElement<NamedArea>
                timePeriod_validPeriod = formFactory.createTimePeriodElement(formElement, "Valid Period", getEntity().getValidPeriod(), style);\r
                combo_namedAreaType = formFactory.createDefinedTermComboElement(TermType.NamedAreaType, formElement, "Named Area Type", getEntity().getType(), style);\r
                combo_namedAreaLevel = formFactory.createDefinedTermComboElement(TermType.NamedAreaLevel, formElement, "Named Area Level", getEntity().getLevel(), style);\r
-\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)\r
-        */\r
        @Override\r
        public void handleEvent(Object eventSource) {\r
         super.handleEvent(eventSource);\r
@@ -63,9 +54,5 @@ public class NamedAreaDetailElement extends DefinedTermDetailElement<NamedArea>
                } else if (eventSource == combo_namedAreaLevel) {\r
                        getEntity().setLevel(combo_namedAreaLevel.getSelection());\r
                }\r
-\r
-\r
        }\r
-\r
-\r
-}\r
+}
\ No newline at end of file
index 79470c1e6163800908f64fcca98a0aabb7a8942f..e0fc6accf5da1ef65f7c9db2c48e32babae6db01 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.ui.section.vocabulary;
 \r
 import org.eclipse.jface.viewers.ISelectionProvider;\r
 \r
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
 import eu.etaxonomy.cdm.model.location.NamedArea;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
@@ -20,39 +19,22 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**\r
  * @author l.morris\r
  * @date 20 Dec 2011\r
- *\r
  */\r
 public class NamedAreaDetailSection extends AbstractCdmDetailSection<NamedArea> {\r
 \r
-       /**\r
-        * @param formFactory\r
-        * @param conversation\r
-        * @param parentElement\r
-        * @param selectionProvider\r
-        * @param style\r
-        */\r
        public NamedAreaDetailSection(CdmFormFactory formFactory,\r
-                       ConversationHolder conversation, ICdmFormElement parentElement,\r
+                       ICdmFormElement parentElement,\r
                        ISelectionProvider selectionProvider, int style) {\r
-               super(formFactory, conversation, parentElement, selectionProvider, style);\r
-\r
+               super(formFactory, parentElement, selectionProvider, style);\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#getHeading()\r
-        */\r
        @Override\r
        public String getHeading() {\r
-\r
                return "Defined Term: "+ (getEntity() != null ? getEntity().getLabel() : "");\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)\r
-        */\r
        @Override\r
        protected AbstractCdmDetailElement<NamedArea> createCdmDetailElement(AbstractCdmDetailSection<NamedArea> parentElement, int style) {\r
            return formFactory.createNamedAreaDetailElement(parentElement);\r
        }\r
-\r
-}\r
+}
\ No newline at end of file
index 7af628fa543e55f01f3c57416ed1cf5715b4e893..4a297b9f608b7bc8b338073c55b53aa230eb5f7a 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.ui.section.vocabulary;
 \r
 import org.eclipse.jface.viewers.ISelectionProvider;\r
 \r
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
 import eu.etaxonomy.cdm.model.location.NamedAreaLevel;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
@@ -20,32 +19,20 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**\r
  * @author l.morris\r
  * @date 4 Jan 2012\r
- *\r
  */\r
 public class NamedAreaLevelDetailSection extends AbstractCdmDetailSection<NamedAreaLevel> {\r
 \r
-       /**\r
-        * @param formFactory\r
-        * @param parentElement\r
-        * @param style\r
-        */\r
        public NamedAreaLevelDetailSection(CdmFormFactory formFactory,\r
-                       ConversationHolder conversation, ICdmFormElement parentElement,\r
+               ICdmFormElement parentElement,\r
                        ISelectionProvider selectionProvider, int style) {\r
-               super(formFactory, conversation, parentElement, selectionProvider, style);\r
+               super(formFactory, parentElement, selectionProvider, style);\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#getHeading()\r
-        */\r
        @Override\r
        public String getHeading() {\r
                return "Defined Term: "+ (getEntity() != null ? getEntity().getLabel() : "");\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)\r
-        */\r
        @Override\r
        protected AbstractCdmDetailElement<NamedAreaLevel> createCdmDetailElement(AbstractCdmDetailSection<NamedAreaLevel> parentElement, int style) {\r
            return formFactory.createNamedAreaLevelElement(parentElement);\r
index b6aff4d1fc1de3d0e7820be4262d3e9cccade963..b9525ebd7d5209d34c8a879aaaca36a6a806a70f 100644 (file)
@@ -23,7 +23,6 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.forms.widgets.TableWrapData;
 
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -35,10 +34,8 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
 
 /**
- *
  * @author pplitzner
  * @date Nov 24, 2016
- *
  */
 public class PresenceAbsenceTermDetailElement extends DefinedTermDetailElement<PresenceAbsenceTerm> implements SelectionListener{
 
@@ -48,6 +45,8 @@ public class PresenceAbsenceTermDetailElement extends DefinedTermDetailElement<P
 
     private Button btnColorChooser;
 
+    private Button btnIsAbsent;
+
        public PresenceAbsenceTermDetailElement(CdmFormFactory formFactory,
                        ICdmFormElement formElement) {
                super(formFactory, formElement);
@@ -88,6 +87,17 @@ public class PresenceAbsenceTermDetailElement extends DefinedTermDetailElement<P
         btnColorChooser.setImage(ImageResources.getImage(ImageResources.BROWSE_ICON));
         btnColorChooser.setToolTipText(Messages.PresenceAbsenceTermDetailElement_CHOOSE_COLOR);
         btnColorChooser.addSelectionListener(this);
+
+        Label isAbsentTextLabel = new Label(getLayoutComposite(), style);
+        isAbsentTextLabel.setText(Messages.PresenceAbsenceTermDetailElement_LABEL_IS_ABSENT);
+        left = LayoutConstants.LEFT();
+        left.valign = TableWrapData.MIDDLE;
+        isAbsentTextLabel.setLayoutData(left);
+        addControl(isAbsentTextLabel);
+
+        btnIsAbsent = formFactory.createButton(getLayoutComposite(), "", SWT.CHECK); //$NON-NLS-1$
+        btnIsAbsent.addSelectionListener(this);
+        btnIsAbsent.setSelection(getEntity().isAbsenceTerm());
        }
 
        @Override
@@ -95,42 +105,34 @@ public class PresenceAbsenceTermDetailElement extends DefinedTermDetailElement<P
            super.handleEvent(eventSource);
        }
 
-       @Override
-       public TermVocabulary getVocabulary() {
-               return getEntity() != null ? getEntity().getVocabulary() : null;
-       }
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void widgetSelected(SelectionEvent e) {
-        ColorDialog dialog = new ColorDialog(AbstractUtility.getShell());
-        if(color!=null){
-            dialog.setRGB(color.getRGB());
-        }
-        RGB rgb = dialog.open();
-        if(rgb!=null){
+        if (e.getSource().equals(btnColorChooser)){
+            ColorDialog dialog = new ColorDialog(AbstractUtility.getShell());
             if(color!=null){
-                color.dispose();
+                dialog.setRGB(color.getRGB());
             }
-            color = new Color(AbstractUtility.getShell().getDisplay(), rgb);
-            colorLabel.setBackground(color);
-            try {
-                String hexCode = String.format("%02x%02x%02x", rgb.red,rgb.green,rgb.blue); //$NON-NLS-1$
-                getEntity().setDefaultColor(hexCode);
-            } catch (ParseException pe) {
-                MessagingUtils.error(PresenceAbsenceTermDetailElement.class, Messages.PresenceAbsenceTermDetailElement_COLOR_NOT_SET, pe);
+            RGB rgb = dialog.open();
+            if(rgb!=null){
+                if(color!=null){
+                    color.dispose();
+                }
+                color = new Color(AbstractUtility.getShell().getDisplay(), rgb);
+                colorLabel.setBackground(color);
+                try {
+                    String hexCode = String.format("%02x%02x%02x", rgb.red,rgb.green,rgb.blue); //$NON-NLS-1$
+                    getEntity().setDefaultColor(hexCode);
+                } catch (ParseException pe) {
+                    MessagingUtils.error(PresenceAbsenceTermDetailElement.class, Messages.PresenceAbsenceTermDetailElement_COLOR_NOT_SET, pe);
+                }
             }
+        }else if (e.getSource().equals(btnIsAbsent)){
+            getEntity().setAbsenceTerm(btnIsAbsent.getSelection());
         }
         firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void widgetDefaultSelected(SelectionEvent e) {
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierCollectionsCollectionSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierCollectionsCollectionSection.java
new file mode 100644 (file)
index 0000000..0eef699
--- /dev/null
@@ -0,0 +1,82 @@
+/**
+* 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.vocabulary;
+
+import java.util.Collection;
+import java.util.Comparator;
+
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
+import eu.etaxonomy.cdm.model.term.TermCollection;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection;
+
+/**
+ * @author pplitzner
+ * @date Apr 27, 2015
+ */
+public class RecommendedModifierCollectionsCollectionSection
+        extends AbstractUnboundEntityCollectionSection<Feature, TermCollection<DefinedTerm,?>> {
+
+    public RecommendedModifierCollectionsCollectionSection(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, int style) {
+        super(formFactory, parentElement, "Recommended modifier collections", style);
+    }
+
+    @Override
+    protected Collection<TermCollection<DefinedTerm,?>> getEntityCollection(Feature entity) {
+        return entity.getRecommendedModifierEnumeration();
+    }
+
+    @Override
+    public Comparator<TermCollection<DefinedTerm,?>> getComparator() {
+        return new DefaultCdmBaseComparator<>();
+    }
+
+    @Override
+    public TermVocabulary<DefinedTerm> createNewElement() {
+        return TermVocabulary.NewInstance(TermType.Modifier);
+    }
+
+    @Override
+    public void addElement(TermCollection<DefinedTerm,?> element) {
+        //never gets called
+    }
+
+    @Override
+    public void removeElement(TermCollection<DefinedTerm,?> element) {
+        getEntity().removeRecommendedModifierEnumeration(element);
+    }
+
+    @Override
+    public String getEmptyString() {
+        return "No modifier collection yet.";
+    }
+
+    @Override
+    protected String getTooltipString() {
+        return "Add a modifier collection";
+    }
+
+    @Override
+    public TermCollection<DefinedTerm,?> addExisting() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public boolean allowAddExisting() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierCollectionsDtoCollectionSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierCollectionsDtoCollectionSection.java
new file mode 100755 (executable)
index 0000000..f46d904
--- /dev/null
@@ -0,0 +1,109 @@
+/**
+* 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.vocabulary;
+
+import java.util.Collection;
+import java.util.Comparator;
+
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
+import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection;
+
+/**
+ * @author pplitzner
+ * @date Apr 27, 2015
+ */
+public class RecommendedModifierCollectionsDtoCollectionSection extends AbstractUnboundEntityCollectionSection<FeatureDto, TermCollectionDto> {
+
+    public RecommendedModifierCollectionsDtoCollectionSection(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, int style) {
+        super(formFactory, parentElement, "Recommended modifier collections", style);
+    }
+
+    @Override
+    protected Collection<TermCollectionDto> getEntityCollection(FeatureDto entity) {
+        return entity.getRecommendedModifierEnumeration();
+    }
+
+    @Override
+    public Comparator<TermCollectionDto> getComparator() {
+        return new Comparator<TermCollectionDto>() {
+            @Override
+            public int compare(TermCollectionDto o1, TermCollectionDto o2) {
+                if(o1==null){
+                    return -1;
+                }
+                if(o2==null){
+                    return 1;
+                }
+                int diff = o1.getTitleCache().compareTo(o2.getTitleCache());
+                if(diff==0){
+                    diff = o1.getUuid().compareTo(o2.getUuid());
+                }
+                return diff;
+            }
+        };
+    }
+
+    //TODO should not be implemented here as we do not want to create vocabularies/term collections here
+    @Override
+    public TermCollectionDto createNewElement() {
+        TermVocabulary<DefinedTerm> voc = TermVocabulary.NewInstance(TermType.Modifier);
+        return new TermVocabularyDto(voc.getUuid(), voc.getRepresentations(), voc.getTermType(), voc.getTitleCache(), voc.isAllowDuplicates(), voc.isOrderRelevant(), voc.isFlat());
+    }
+
+    @Override
+    public void addElement(TermCollectionDto element) {
+        //never gets called
+    }
+
+    @Override
+    public void removeElement(TermCollectionDto element) {
+        if (element == null){
+            return;
+        }
+        TermCollectionDto remove = null;
+        for (TermCollectionDto voc: getEntity().getRecommendedModifierEnumeration()) {
+            if (voc.getUuid().equals(element.getUuid())){
+                remove = voc;
+                break;
+            }
+        }
+
+        getEntity().getRecommendedModifierEnumeration().remove(remove);
+    }
+
+    @Override
+    public String getEmptyString() {
+        return "No modifiers collections yet.";
+    }
+
+    @Override
+    protected String getTooltipString() {
+        return "Add a modifier collection";
+    }
+
+    @Override
+    public TermCollectionDto addExisting() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public boolean allowAddExisting() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+}
\ No newline at end of file
@@ -11,11 +11,11 @@ package eu.etaxonomy.taxeditor.ui.section.vocabulary;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.graphics.Color;
 
+import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.term.DefinedTerm;
+import eu.etaxonomy.cdm.model.term.TermCollection;
 import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement;
+import eu.etaxonomy.taxeditor.ui.combo.TermCollectionComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -24,56 +24,46 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 /**
  * @author pplitzner
  * @date Apr 27, 2015
- *
  */
-public class RecommendedModifierVocabulariesElement extends AbstractEntityCollectionElement<TermVocabulary<DefinedTerm>> {
-
+public class RecommendedModifierCollectionsElement extends AbstractEntityCollectionElement<TermCollection<DefinedTerm,?>> {
 
-    private VocabularyComboElement<DefinedTerm, TermVocabulary<DefinedTerm>> comboStateVocabulary;
+    private TermCollectionComboElement<DefinedTerm, TermCollection<DefinedTerm,?>> comboStateTermCollection;
 
-    /**
-     * @param formFactory
-     * @param section
-     * @param entity
-     * @param removeListener
-     * @param isChoosableEntity
-     * @param backgroundColor
-     * @param style
-     */
-    public RecommendedModifierVocabulariesElement(CdmFormFactory formFactory, AbstractFormSection section, TermVocabulary<DefinedTerm> entity,
+    public RecommendedModifierCollectionsElement(CdmFormFactory formFactory, AbstractFormSection section, TermCollection<DefinedTerm,?> entity,
             SelectionListener removeListener, Color backgroundColor, int style) {
         super(formFactory, section, entity, removeListener, backgroundColor, style);
-
     }
 
     @Override
     public void createControls(ICdmFormElement element, int style) {
-        comboStateVocabulary = formFactory.createVocabularyComboElement(TermType.Modifier, "Modifier Vocabulary", null, element, style);
+        comboStateTermCollection = formFactory.createTermCollectionComboElement(TermType.Modifier, "Modifier Term Collections", null, element, style);
+        if (entity != null){
+               setEntity(entity);
+        }
     }
 
     @Override
-    public void setEntity(TermVocabulary<DefinedTerm> entity) {
+    public void setEntity(TermCollection<DefinedTerm,?> entity) {
         this.entity = entity;
-        if(entity.getId()!=0){
-            comboStateVocabulary.setSelection(entity);
-            comboStateVocabulary.removeEmptyElement();
+        if(entity.getId()!=0 && comboStateTermCollection != null){
+            comboStateTermCollection.setSelection(entity);
+            comboStateTermCollection.removeEmptyElement();
         }
     }
 
     @Override
     public void handleEvent(Object eventSource) {
-        if(eventSource==comboStateVocabulary && comboStateVocabulary.getSelection()!=null){
-            if(getParentElement() instanceof RecommendedModifierVocabulariesCollectionSection){
-                RecommendedModifierVocabulariesCollectionSection parentElement = (RecommendedModifierVocabulariesCollectionSection) getParentElement();
+        if(eventSource==comboStateTermCollection && comboStateTermCollection.getSelection()!=null){
+            if(getParentElement() instanceof RecommendedModifierCollectionsCollectionSection){
+                RecommendedModifierCollectionsCollectionSection parentElement = (RecommendedModifierCollectionsCollectionSection) getParentElement();
                 Feature feature = parentElement.getEntity();
                 feature.removeRecommendedModifierEnumeration(entity);
-                TermVocabulary<DefinedTerm> vocabulary = comboStateVocabulary.getSelection();
-                feature.addRecommendedModifierEnumeration(vocabulary);
-                entity = vocabulary;
+                TermCollection<DefinedTerm,?> termCollection = comboStateTermCollection.getSelection();
+                feature.addRecommendedModifierEnumeration(termCollection);
+                entity = termCollection;
                 //update the parent section to re-set the listeners to the persisted measurement unit
                 parentElement.removeElementAndUpdate(null);
             }
         }
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierDtoCollectionsElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierDtoCollectionsElement.java
new file mode 100755 (executable)
index 0000000..a576822
--- /dev/null
@@ -0,0 +1,79 @@
+/**
+* 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.vocabulary;
+
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
+import eu.etaxonomy.cdm.model.term.TermCollection;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
+import eu.etaxonomy.taxeditor.ui.combo.TermCollectionComboElement;
+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;
+
+/**
+ * @author pplitzner
+ * @date Apr 27, 2015
+ */
+public class RecommendedModifierDtoCollectionsElement extends AbstractEntityCollectionElement<TermCollectionDto> {
+
+    private TermCollectionComboElement<DefinedTerm, TermCollection<DefinedTerm,?>> comboStateTermCollection;
+
+    public RecommendedModifierDtoCollectionsElement(CdmFormFactory formFactory, AbstractFormSection section, TermCollectionDto entity,
+            SelectionListener removeListener, Color backgroundColor, int style) {
+        super(formFactory, section, entity, removeListener, backgroundColor, style);
+    }
+
+    @Override
+    public void createControls(ICdmFormElement element, int style) {
+        comboStateTermCollection = formFactory.createTermCollectionComboElement(TermType.Modifier, "Modifier collection", null, element, style);
+        if (entity != null){
+               setEntity(entity);
+        }
+    }
+
+    @Override
+    public void setEntity(TermCollectionDto entity) {
+        this.entity = entity;
+        if(comboStateTermCollection != null){
+            comboStateTermCollection.setSelectionDto(entity);
+            comboStateTermCollection.removeEmptyElement();
+        }
+    }
+
+
+    @Override
+    public void handleEvent(Object eventSource) {
+        if(eventSource==comboStateTermCollection && comboStateTermCollection.getSelection()!=null){
+            if(getParentElement() instanceof RecommendedModifierCollectionsDtoCollectionSection){
+                RecommendedModifierCollectionsDtoCollectionSection parentElement = (RecommendedModifierCollectionsDtoCollectionSection) getParentElement();
+                FeatureDto feature = parentElement.getEntity();
+                TermCollectionDto remove = null;
+                for (TermCollectionDto voc: feature.getRecommendedModifierEnumeration()){
+                    if (voc.getUuid().equals(getEntity().getUuid())){
+                        remove = voc;
+                        break;
+                    }
+                }
+                feature.getRecommendedModifierEnumeration().remove(remove);
+                TermCollection<DefinedTerm,?> termCollection = comboStateTermCollection.getSelection();
+                entity = TermCollectionDto.fromCdmBase(termCollection);
+                feature.getRecommendedModifierEnumeration().add(entity);
+                //update the parent section to re-set the listeners to the persisted measurement unit
+//                parentElement.removeElementAndUpdate(null);
+            }
+        }
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierVocabulariesCollectionSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedModifierVocabulariesCollectionSection.java
deleted file mode 100644 (file)
index 891901c..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/**
-* 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.vocabulary;
-
-import java.util.Collection;
-import java.util.Comparator;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.term.DefinedTerm;
-import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection;
-
-/**
- * @author pplitzner
- * @date Apr 27, 2015
- *
- */
-public class RecommendedModifierVocabulariesCollectionSection extends AbstractUnboundEntityCollectionSection<Feature, TermVocabulary<DefinedTerm>> {
-
-    public RecommendedModifierVocabulariesCollectionSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-        super(formFactory, conversation, parentElement, "Recommended modifier vocabularies", style);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractNullEntityCollectionSection#getEntityCollection(java.lang.Object)
-     */
-    /** {@inheritDoc} */
-    @Override
-    protected Collection<TermVocabulary<DefinedTerm>> getEntityCollection(Feature entity) {
-        return entity.getRecommendedModifierEnumeration();
-    }
-
-    @Override
-    public Comparator<TermVocabulary<DefinedTerm>> getComparator() {
-        return new DefaultCdmBaseComparator<>();
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#createNewElement()
-     */
-    /** {@inheritDoc} */
-    @Override
-    public TermVocabulary<DefinedTerm> createNewElement() {
-        return TermVocabulary.NewInstance(TermType.Modifier);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-     */
-    /** {@inheritDoc} */
-    @Override
-    public void addElement(TermVocabulary<DefinedTerm> element) {
-        //never gets called
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-     */
-    /** {@inheritDoc} */
-    @Override
-    public void removeElement(TermVocabulary<DefinedTerm> element) {
-        getEntity().removeRecommendedModifierEnumeration(element);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
-     */
-    /** {@inheritDoc} */
-    @Override
-    public String getEmptyString() {
-        return "No modifiers vocabularies yet.";
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
-     */
-    /** {@inheritDoc} */
-    @Override
-    protected String getTooltipString() {
-        return "Add a modifier vocabulary";
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public TermVocabulary<DefinedTerm> addExisting() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean allowAddExisting() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-
-}
@@ -11,11 +11,11 @@ package eu.etaxonomy.taxeditor.ui.section.vocabulary;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.graphics.Color;
 
-import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.State;
-import eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermCollection;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.taxeditor.ui.combo.TermCollectionComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -24,56 +24,47 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 /**
  * @author pplitzner
  * @date Apr 27, 2015
- *
  */
-public class StateVocabularyCollectionElement extends AbstractEntityCollectionElement<TermVocabulary<State>> {
-
+public class RecommendedStateCollectionElement<T extends DefinedTermBase<T>>
+        extends AbstractEntityCollectionElement<TermCollection<T,?>> {
 
-    private VocabularyComboElement<State, TermVocabulary<State>> comboStateVocabulary;
+    private TermCollectionComboElement<T, TermCollection<T,?>> comboStateCollection;
 
-    /**
-     * @param formFactory
-     * @param section
-     * @param entity
-     * @param removeListener
-     * @param isChoosableEntity
-     * @param backgroundColor
-     * @param style
-     */
-    public StateVocabularyCollectionElement(CdmFormFactory formFactory, AbstractFormSection section, TermVocabulary<State> entity,
+    public RecommendedStateCollectionElement(CdmFormFactory formFactory, AbstractFormSection<T> section, TermCollection<T,?> entity,
             SelectionListener removeListener, Color backgroundColor, int style) {
         super(formFactory, section, entity, removeListener, backgroundColor, style);
-
     }
 
     @Override
     public void createControls(ICdmFormElement element, int style) {
-        comboStateVocabulary = formFactory.createVocabularyComboElement(TermType.State, "State vocabulary", null, element, style);
+        comboStateCollection = formFactory.createTermCollectionComboElement(TermType.State, "State collection", null, element, style);
+        if (entity != null){
+               setEntity(entity);
+        }
     }
 
     @Override
-    public void setEntity(TermVocabulary<State> entity) {
+    public void setEntity(TermCollection<T,?> entity) {
         this.entity = entity;
-        if(entity.getId()!=0){
-            comboStateVocabulary.setSelection(entity);
-            comboStateVocabulary.removeEmptyElement();
+        if(entity.getId()!=0 && comboStateCollection != null){
+            comboStateCollection.setSelection(entity);
+            comboStateCollection.removeEmptyElement();
         }
     }
 
     @Override
     public void handleEvent(Object eventSource) {
-        if(eventSource==comboStateVocabulary && comboStateVocabulary.getSelection()!=null){
-            if(getParentElement() instanceof StateVocabularyCollectionSection){
-                StateVocabularyCollectionSection parentElement = (StateVocabularyCollectionSection) getParentElement();
+        if(eventSource==comboStateCollection && comboStateCollection.getSelection()!=null){
+            if(getParentElement() instanceof RecommendedStateCollectionSection){
+                RecommendedStateCollectionSection parentElement = (RecommendedStateCollectionSection) getParentElement();
                 Feature feature = parentElement.getEntity();
                 feature.removeSupportedCategoricalEnumeration(entity);
-                TermVocabulary<State> vocabulary = comboStateVocabulary.getSelection();
-                feature.addSupportedCategoricalEnumeration(vocabulary);
-                entity = vocabulary;
+                TermCollection<T,?> termCollection = comboStateCollection.getSelection();
+                feature.addSupportedCategoricalEnumeration(termCollection);
+                entity = termCollection;
                 //update the parent section to re-set the listeners to the persisted measurement unit
                 parentElement.removeElementAndUpdate(null);
             }
         }
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedStateCollectionSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedStateCollectionSection.java
new file mode 100644 (file)
index 0000000..31e6a63
--- /dev/null
@@ -0,0 +1,94 @@
+/**
+* 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.vocabulary;
+
+import java.util.Collection;
+import java.util.Comparator;
+
+import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermCollection;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection;
+
+/**
+ * @author pplitzner
+ * @date Apr 27, 2015
+ */
+public class RecommendedStateCollectionSection
+        extends AbstractUnboundEntityCollectionSection<Feature, TermCollection<? extends DefinedTermBase,?>> {
+
+    public RecommendedStateCollectionSection(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, int style) {
+        super(formFactory, parentElement, "Recommended state collections", style);
+    }
+
+    public RecommendedStateCollectionSection(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, int style, Integer maxStates) {
+        super(formFactory, parentElement, "Recommended state collections", style);
+    }
+
+    @Override
+    protected Collection<TermCollection<? extends DefinedTermBase,?>> getEntityCollection(Feature entity) {
+        return entity.getSupportedCategoricalEnumerations();
+    }
+
+    @Override
+    public Comparator<TermCollection<? extends DefinedTermBase,?>> getComparator() {
+        return new DefaultCdmBaseComparator<>();
+    }
+
+    //TODO should not be implemented as we do not want to create vocabularies/term collections here
+    @Override
+    public TermCollection<State,?> createNewElement() {
+        //FIXME 10196
+
+        return TermVocabulary.NewInstance(TermType.State);
+    }
+
+    @Override
+    public void addElement(TermCollection<? extends DefinedTermBase,?> element) {
+        //never gets called
+    }
+
+    @Override
+    public void removeElement(TermCollection<? extends DefinedTermBase,?> element) {
+        getEntity().removeSupportedCategoricalEnumeration(element);
+    }
+
+    @Override
+    public String getEmptyString() {
+        return "No state collections yet.";
+    }
+
+    @Override
+    protected String getTooltipString() {
+        return "Add a state collection";
+    }
+
+    @Override
+    public TermCollection<State,?> addExisting() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public boolean allowAddExisting() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+
+
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedStateCollectionsDtoElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedStateCollectionsDtoElement.java
new file mode 100755 (executable)
index 0000000..26034ee
--- /dev/null
@@ -0,0 +1,82 @@
+/**
+* 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.vocabulary;
+
+import java.util.EnumSet;
+
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermCollection;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
+import eu.etaxonomy.taxeditor.ui.combo.TermCollectionComboElement;
+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;
+
+/**
+ * @author pplitzner
+ * @date Apr 27, 2015
+ */
+public class RecommendedStateCollectionsDtoElement<T extends DefinedTermBase<T>>
+        extends AbstractEntityCollectionElement<TermCollectionDto> {
+
+    private TermCollectionComboElement<T, TermCollection<T,?>> comboStateCollection;
+
+    public RecommendedStateCollectionsDtoElement(CdmFormFactory formFactory, AbstractFormSection section, TermCollectionDto entity,
+            SelectionListener removeListener, Color backgroundColor, int style) {
+        super(formFactory, section, entity, removeListener, backgroundColor, style);
+    }
+
+    @Override
+    public void createControls(ICdmFormElement element, int style) {
+        //for now we allow State and Structure here
+        comboStateCollection = formFactory.createTermCollectionDtoComboElement(EnumSet.of(TermType.State, TermType.Structure), "State term collection", null, element, style);
+        if (entity != null){
+               setEntity(entity);
+        }
+    }
+
+    @Override
+    public void setEntity(TermCollectionDto entity) {
+        this.entity = entity;
+        if(comboStateCollection != null){
+            comboStateCollection.setSelectionDto(entity);
+            comboStateCollection.removeEmptyElement();
+        }
+    }
+
+    @Override
+    public void handleEvent(Object eventSource) {
+        if(eventSource==comboStateCollection && comboStateCollection.getSelection()!=null){
+            if(getParentElement() instanceof RecommendedStateDtoCollectionSection){
+                RecommendedStateDtoCollectionSection parentElement = (RecommendedStateDtoCollectionSection) getParentElement();
+                FeatureDto feature = parentElement.getEntity();
+                TermCollectionDto remove = null;
+                for (TermCollectionDto voc: feature.getSupportedCategoricalEnumerations()){
+                    if (voc.getUuid().equals(getEntity().getUuid())){
+                        remove = voc;
+                        break;
+                    }
+                }
+                feature.getSupportedCategoricalEnumerations().remove(remove);
+                TermCollection<T,?> termCollection = comboStateCollection.getSelection();
+                TermCollectionDto dto = TermCollectionDto.fromCdmBase(termCollection);
+                feature.getSupportedCategoricalEnumerations().add(dto);
+                entity = dto;
+                //update the parent section to re-set the listeners to the persisted measurement unit
+                parentElement.removeElementAndUpdate(null);
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedStateDtoCollectionSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/RecommendedStateDtoCollectionSection.java
new file mode 100755 (executable)
index 0000000..caa0823
--- /dev/null
@@ -0,0 +1,109 @@
+/**
+* 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.vocabulary;
+
+import java.util.Collection;
+import java.util.Comparator;
+
+import eu.etaxonomy.cdm.model.description.State;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.TermCollectionDto;
+import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection;
+
+/**
+ * @author pplitzner
+ * @date Apr 27, 2015
+ */
+public class RecommendedStateDtoCollectionSection extends AbstractUnboundEntityCollectionSection<FeatureDto, TermCollectionDto> {
+
+    public RecommendedStateDtoCollectionSection(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, int style) {
+        super(formFactory, parentElement, "Supported state collections", style);
+    }
+
+    @Override
+    protected Collection<TermCollectionDto> getEntityCollection(FeatureDto entity) {
+        return entity.getSupportedCategoricalEnumerations();
+    }
+
+    @Override
+    public Comparator<TermCollectionDto> getComparator() {
+        return new Comparator<TermCollectionDto>() {
+            @Override
+            public int compare(TermCollectionDto o1, TermCollectionDto o2) {
+                if(o1==null){
+                    return -1;
+                }
+                if(o2==null){
+                    return 1;
+                }
+                int diff = o1.getTitleCache().compareTo(o2.getTitleCache());
+                if(diff==0){
+                    diff = o1.getUuid().compareTo(o2.getUuid());
+                }
+                return diff;
+            }
+        };
+    }
+
+    //TODO should not be implemented as we do not want to create new vocabularies/term collections here
+    @Override
+    public TermCollectionDto createNewElement() {
+        //FIXME 10196
+        TermVocabulary<State> voc = TermVocabulary.NewInstance(TermType.State);
+        return new TermVocabularyDto(voc.getUuid(), voc.getRepresentations(), voc.getTermType(), voc.getTitleCache(), voc.isAllowDuplicates(), voc.isOrderRelevant(), voc.isFlat());
+    }
+
+    @Override
+    public void addElement(TermCollectionDto element) {
+        //never gets called
+    }
+
+    @Override
+    public void removeElement(TermCollectionDto element) {
+        if (element == null){
+            return;
+        }
+        TermCollectionDto remove = null;
+        for (TermCollectionDto voc: getEntity().getSupportedCategoricalEnumerations()){
+            if (voc.getUuid().equals(element.getUuid())){
+                remove = voc;
+                break;
+            }
+        }
+        getEntity().getSupportedCategoricalEnumerations().remove(remove);
+    }
+
+    @Override
+    public String getEmptyString() {
+        return "No state collections yet.";
+    }
+
+    @Override
+    protected String getTooltipString() {
+        return "Add a state collection";
+    }
+
+    @Override
+    public TermCollectionDto addExisting() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public boolean allowAddExisting() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StateVocabularyCollectionSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StateVocabularyCollectionSection.java
deleted file mode 100644 (file)
index 153ba8f..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/**
-* 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.vocabulary;
-
-import java.util.Collection;
-import java.util.Comparator;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.State;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection;
-
-/**
- * @author pplitzner
- * @date Apr 27, 2015
- *
- */
-public class StateVocabularyCollectionSection extends AbstractUnboundEntityCollectionSection<Feature, TermVocabulary<State>> {
-
-    public StateVocabularyCollectionSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-        super(formFactory, conversation, parentElement, "Supported state vocabularies", style);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractNullEntityCollectionSection#getEntityCollection(java.lang.Object)
-     */
-    /** {@inheritDoc} */
-    @Override
-    protected Collection<TermVocabulary<State>> getEntityCollection(Feature entity) {
-        return entity.getSupportedCategoricalEnumerations();
-    }
-
-    @Override
-    public Comparator<TermVocabulary<State>> getComparator() {
-        return new DefaultCdmBaseComparator<>();
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#createNewElement()
-     */
-    /** {@inheritDoc} */
-    @Override
-    public TermVocabulary<State> createNewElement() {
-        return TermVocabulary.NewInstance(TermType.State);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-     */
-    /** {@inheritDoc} */
-    @Override
-    public void addElement(TermVocabulary<State> element) {
-        //never gets called
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-     */
-    /** {@inheritDoc} */
-    @Override
-    public void removeElement(TermVocabulary<State> element) {
-        getEntity().removeSupportedCategoricalEnumeration(element);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
-     */
-    /** {@inheritDoc} */
-    @Override
-    public String getEmptyString() {
-        return "No state vocabularies yet.";
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
-     */
-    /** {@inheritDoc} */
-    @Override
-    protected String getTooltipString() {
-        return "Add a state vocabulary";
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public TermVocabulary<State> addExisting() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean allowAddExisting() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-
-}
index 54604952f5d78aba8dd6dec1ddb8f8481ea6b49a..829993ece96d7f68f01a01c58b3a5bdaff4ac978 100644 (file)
@@ -47,13 +47,16 @@ public class StatisticalMeasureCollectionElement extends AbstractEntityCollectio
 
     @Override
     public void createControls(ICdmFormElement element, int style) {
-        comboStatisticalMeasure = formFactory.createDefinedTermComboElement(TermType.StatisticalMeasure, element, "Statistical measure", null, style);
+        comboStatisticalMeasure = formFactory.createDefinedTermComboElementDto(TermType.StatisticalMeasure, element, "Statistical measure", null, style);
+        if (entity != null){
+               setEntity(entity);
+        }
     }
 
     @Override
     public void setEntity(StatisticalMeasure entity) {
         this.entity = entity;
-        if(entity.getId()!=0){
+        if(entity.getId()!=0 && comboStatisticalMeasure != null){
             comboStatisticalMeasure.setSelection(entity);
             comboStatisticalMeasure.removeEmptyElement();
         }
index fabe44198ae25eb205629cec4f9cdce58e534a72..a63f777e07d2bd12ef12845893c93e24b91ae775 100644 (file)
@@ -11,7 +11,6 @@ package eu.etaxonomy.taxeditor.ui.section.vocabulary;
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -22,19 +21,14 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCol
 /**
  * @author pplitzner
  * @date Apr 27, 2015
- *
  */
 public class StatisticalMeasureCollectionSection extends AbstractUnboundEntityCollectionSection<Feature, StatisticalMeasure> {
 
     public StatisticalMeasureCollectionSection(CdmFormFactory formFactory,
-            ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-        super(formFactory, conversation, parentElement, "Statistical measures", style);
+            ICdmFormElement parentElement, int style) {
+        super(formFactory, parentElement, "Statistical measures", style);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractNullEntityCollectionSection#getEntityCollection(java.lang.Object)
-     */
-    /** {@inheritDoc} */
     @Override
     protected Collection<StatisticalMeasure> getEntityCollection(Feature entity) {
         return entity.getRecommendedStatisticalMeasures();
@@ -45,67 +39,40 @@ public class StatisticalMeasureCollectionSection extends AbstractUnboundEntityCo
         return new DefaultCdmBaseComparator<>();
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#createNewElement()
-     */
-    /** {@inheritDoc} */
     @Override
     public StatisticalMeasure createNewElement() {
         return StatisticalMeasure.NewInstance();
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-     */
-    /** {@inheritDoc} */
     @Override
     public void addElement(StatisticalMeasure element) {
         //never gets called
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
-     */
-    /** {@inheritDoc} */
     @Override
     public void removeElement(StatisticalMeasure element) {
         getEntity().removeRecommendedStatisticalMeasure(element);
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
-     */
-    /** {@inheritDoc} */
     @Override
     public String getEmptyString() {
         return "No statistical measures yet.";
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
-     */
-    /** {@inheritDoc} */
     @Override
     protected String getTooltipString() {
         return "Add a statistical measure";
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public StatisticalMeasure addExisting() {
         // TODO Auto-generated method stub
         return null;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean allowAddExisting() {
         // TODO Auto-generated method stub
         return false;
     }
-
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureDtoCollectionElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureDtoCollectionElement.java
new file mode 100755 (executable)
index 0000000..c2bd005
--- /dev/null
@@ -0,0 +1,90 @@
+/**
+* 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.vocabulary;
+
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+
+import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+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;
+
+/**
+ * @author pplitzner
+ * @date Apr 27, 2015
+ *
+ */
+public class StatisticalMeasureDtoCollectionElement extends AbstractEntityCollectionElement<TermDto> {
+
+
+    private TermComboElement<StatisticalMeasure> comboStatisticalMeasure;
+
+    /**
+     * @param formFactory
+     * @param section
+     * @param entity
+     * @param removeListener
+     * @param isChoosableEntity
+     * @param backgroundColor
+     * @param style
+     */
+    public StatisticalMeasureDtoCollectionElement(CdmFormFactory formFactory, AbstractFormSection section, TermDto entity,
+            SelectionListener removeListener, Color backgroundColor, int style) {
+        super(formFactory, section, entity, removeListener, backgroundColor, style);
+
+    }
+
+    @Override
+    public void createControls(ICdmFormElement element, int style) {
+        comboStatisticalMeasure = formFactory.createDefinedTermComboElementDto(TermType.StatisticalMeasure, element, "Statistical measure", null, style);
+        if (entity != null){
+               setEntity(entity);
+        }
+    }
+
+    @Override
+    public void setEntity(TermDto entity) {
+        this.entity = entity;
+        if(comboStatisticalMeasure != null){
+            comboStatisticalMeasure.setSelectionDto(entity);
+            comboStatisticalMeasure.removeEmptyElement();
+        }
+    }
+
+    @Override
+    public void handleEvent(Object eventSource) {
+        if(eventSource==comboStatisticalMeasure && comboStatisticalMeasure.getSelection()!=null){
+            if(getParentElement() instanceof StatisticalMeasureDtoCollectionSection){
+                StatisticalMeasureDtoCollectionSection parentElement = (StatisticalMeasureDtoCollectionSection) getParentElement();
+                FeatureDto feature = parentElement.getEntity();
+                TermDto remove = null;
+                for (TermDto unit: feature.getRecommendedStatisticalMeasures()){
+                    if (unit.getUuid().equals(getEntity().getUuid())){
+                        remove =unit;
+                        break;
+                    }
+                }
+                feature.getRecommendedStatisticalMeasures().remove(remove);
+                StatisticalMeasure statisticalMeasure = comboStatisticalMeasure.getSelection();
+                entity = TermDto.fromTerm(statisticalMeasure);
+                feature.getRecommendedStatisticalMeasures().add(entity);
+
+                //update the parent section to re-set the listeners to the persisted measurement unit
+//                parentElement.removeElementAndUpdate(null);
+            }
+        }
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureDtoCollectionSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/StatisticalMeasureDtoCollectionSection.java
new file mode 100755 (executable)
index 0000000..2aeff4c
--- /dev/null
@@ -0,0 +1,103 @@
+/**
+* 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.vocabulary;
+
+import java.util.Collection;
+import java.util.Comparator;
+
+import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
+import eu.etaxonomy.cdm.persistence.dto.FeatureDto;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection;
+
+/**
+ * @author pplitzner
+ * @date Apr 27, 2015
+ */
+public class StatisticalMeasureDtoCollectionSection extends AbstractUnboundEntityCollectionSection<FeatureDto, TermDto> {
+
+    public StatisticalMeasureDtoCollectionSection(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, int style) {
+        super(formFactory, parentElement, "Statistical measures", style);
+    }
+
+    @Override
+    protected Collection<TermDto> getEntityCollection(FeatureDto entity) {
+        return entity.getRecommendedStatisticalMeasures();
+    }
+
+    @Override
+    public Comparator<TermDto> getComparator() {
+        return new Comparator<TermDto>() {
+            @Override
+            public int compare(TermDto o1, TermDto o2) {
+                if(o1==null){
+                    return -1;
+                }
+                if(o2==null){
+                    return 1;
+                }
+                int diff = o1.getTitleCache().compareTo(o2.getTitleCache());
+                if(diff==0){
+                    diff = o1.getUuid().compareTo(o2.getUuid());
+                }
+                return diff;
+            }
+        };
+    }
+
+    @Override
+    public TermDto createNewElement() {
+        return TermDto.fromTerm(StatisticalMeasure.NewInstance());
+    }
+
+    @Override
+    public void addElement(TermDto element) {
+        //never gets called
+    }
+
+    @Override
+    public void removeElement(TermDto element) {
+        if (element == null){
+            return;
+        }
+        TermDto remove = null;
+        for (TermDto unit: getEntity().getRecommendedStatisticalMeasures()){
+            if (unit.getUuid().equals(element.getUuid())){
+                remove = unit;
+                break;
+            }
+        }
+        getEntity().getRecommendedStatisticalMeasures().remove(remove);
+    }
+
+    @Override
+    public String getEmptyString() {
+        return "No statistical measures yet.";
+    }
+
+    @Override
+    protected String getTooltipString() {
+        return "Add a statistical measure";
+    }
+
+    @Override
+    public TermDto addExisting() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public boolean allowAddExisting() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+}
\ No newline at end of file
index 6a81862e7c4eab03c0547e8af159787bbff62198..84add773350b5baf771505ce2e96f82c59a8b102 100644 (file)
@@ -6,9 +6,9 @@ package eu.etaxonomy.taxeditor.ui.section.vocabulary;
 import java.util.Collection;
 import java.util.Comparator;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermBasePropertyTester;
 import eu.etaxonomy.taxeditor.ui.dialog.selection.MediaSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -16,15 +16,14 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
 
 /**
- *
  * @author pplitzner
  * @since May 17, 2019
- *
  */
 public class TermMediaSection extends AbstractEntityCollectionSection<DefinedTermBase, Media>{
 
-       public TermMediaSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
-               super(cdmFormFactory, conversation, parentElement, "Media", style);
+       public TermMediaSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, int style) {
+               super(cdmFormFactory, parentElement, "Media", style);
+               
        }
 
        @Override
@@ -71,5 +70,10 @@ public class TermMediaSection extends AbstractEntityCollectionSection<DefinedTer
     public boolean allowAddExisting() {
         return true;
     }
-
-}
+    
+    @Override
+    public void setEntity(DefinedTermBase entity) {
+        super.setEntity(entity);
+        setEnabled(TermBasePropertyTester.isModifiable(entity));        
+    }
+}
\ No newline at end of file
index d5e2f8eac25b3d72d2fa456da53bffb946a367cd..51b3e20d017eb52de0d7cb4d89b54ad7cb12fdba 100644 (file)
@@ -13,6 +13,7 @@ import org.eclipse.jface.wizard.Wizard;
 import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.term.Representation;
 import eu.etaxonomy.cdm.model.term.TermBase;
+import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
 import eu.etaxonomy.taxeditor.ui.translation.TermTranslationWizardPage;
 
 /**
@@ -23,17 +24,28 @@ import eu.etaxonomy.taxeditor.ui.translation.TermTranslationWizardPage;
 public class TermTranslationWizard extends Wizard {
     private TermTranslationWizardPage page;
 
-    private final TermBase term;
+    private TermBase term;
+    private AbstractTermDto termDto;
 
     public TermTranslationWizard(TermBase term) {
         setWindowTitle("Translation Editor");
         this.term = term;
         setNeedsProgressMonitor(true);
     }
+    
+    public TermTranslationWizard(AbstractTermDto termDto) {
+        setWindowTitle("Translation Editor");
+        this.termDto = termDto;
+        setNeedsProgressMonitor(true);
+    }
 
     @Override
     public void addPages() {
-        page = new TermTranslationWizardPage(term);
+       if (term != null) {
+               page = new TermTranslationWizardPage(term);
+       }else {
+               page = new TermTranslationWizardPage(termDto);
+       }
         addPage(page);
     }
 
@@ -48,7 +60,11 @@ public class TermTranslationWizard extends Wizard {
                 || CdmUtils.isNotBlank(representation.getLabel())
                 || CdmUtils.isNotBlank(representation.getAbbreviatedLabel())
                 || CdmUtils.isNotBlank(representation.getPlural())){
-            term.addRepresentation(representation);
+               if (term != null) {
+                       term.addRepresentation(representation);
+               }else if (termDto != null){
+                       termDto.addRepresentation(representation);
+               }
         }
 
         return true;
index 03dcc38d5ef14f1bb7a1619ae40a44c010e10c9c..fc4c162ef0205e0b9a4414064cd18986b545e424 100644 (file)
@@ -16,7 +16,6 @@ import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
 /**\r
  * @author l.morris\r
  * @date 20 Dec 2011\r
- *\r
  */\r
 public class TermVocabularyDetailElement extends AbstractTermBaseDetailElement<TermVocabulary> {\r
 \r
@@ -44,8 +43,8 @@ public class TermVocabularyDetailElement extends AbstractTermBaseDetailElement<T
        }\r
 \r
        @Override\r
-       public TermVocabulary getVocabulary() {\r
-               return getEntity();\r
+       public void fillFields() {\r
+               // TODO\r
+               //uri_uriTermSource\r
        }\r
-\r
-}\r
+}
\ No newline at end of file
index 90fe16f59a274671ab50ea1b57cdb67f4be50452..8883b7444bb1ee625f9e78f6dfddcac9cd9b8a4c 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.ui.section.vocabulary;
 \r
 import org.eclipse.jface.viewers.ISelectionProvider;\r
 \r
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
 import eu.etaxonomy.cdm.model.term.TermVocabulary;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
@@ -20,45 +19,26 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
 /**\r
  * @author l.morris\r
  * @date 20 Dec 2011\r
- *\r
  */\r
 public class TermVocabularyDetailSection extends\r
                AbstractCdmDetailSection<TermVocabulary> {\r
 \r
-       /**\r
-        * @param formFactory\r
-        * @param conversation\r
-        * @param parentElement\r
-        * @param selectionProvider\r
-        * @param style\r
-        */\r
        public TermVocabularyDetailSection(CdmFormFactory formFactory,\r
-                       ConversationHolder conversation, ICdmFormElement parentElement,\r
+                       ICdmFormElement parentElement,\r
                        ISelectionProvider selectionProvider, int style) {\r
-               super(formFactory, conversation, parentElement, selectionProvider, style);\r
-               // TODO Auto-generated constructor stub\r
+               super(formFactory, parentElement, selectionProvider, style);\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#getHeading()\r
-        */\r
        @Override\r
        public String getHeading() {\r
-\r
                return "Vocabulary: "+ (getEntity() != null ? getEntity().getLabel() : "");\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#setSectionTitle()\r
-        */\r
        @Override\r
        protected void setSectionTitle() {\r
                setText(getHeading());\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)\r
-        */\r
        @Override\r
        protected AbstractCdmDetailElement<TermVocabulary> createCdmDetailElement(AbstractCdmDetailSection<TermVocabulary> parentElement, int style) {\r
            return formFactory.createTermVocabularyDetailElement(parentElement);\r
index 872846befeda12a527960f1195bf786f711d1e12..5d84cbaf760f66e2ae21fbf0182cd38430b1c428 100644 (file)
@@ -1,3 +1,11 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.ui.selection;
 
 import eu.etaxonomy.cdm.model.taxon.Classification;
@@ -6,14 +14,12 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 public class ClassificationSelectionElement extends EntitySelectionElement<Classification> {
 
-       public ClassificationSelectionElement(CdmFormFactory formFactory,//ConversationHolder conversation, #
+       public ClassificationSelectionElement(CdmFormFactory formFactory,
                ICdmFormElement parentElement,
                        Class<Classification> clazz, String labelString,
                        Classification entity, int mode, int style) {
-               super(formFactory, //conversation,
+               super(formFactory,
                        parentElement, clazz, labelString, entity,
                                mode, style);
-
        }
-
-}
+}
\ No newline at end of file
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..b2790b0
--- /dev/null
@@ -0,0 +1,69 @@
+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.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> {
+
+       private Team collectorTeam;
+
+       public CollectorSelectionElement(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, String labelString, AgentBase entity, int mode, int style) {
+       super(formFactory,parentElement, AgentBase.class,
+               labelString, entity, mode, style);
+    }
+
+       public CollectorSelectionElement(CdmFormFactory formFactory,
+            ICdmFormElement parentElement, String labelString, AgentBase entity, Person primaryCollector, int mode, int style) {
+       super(formFactory,
+        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;
+       }
+
+       @Override
+    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);
+            }
+           }
+       }
+}
\ No newline at end of file
index 06c7b3bdf52ce97b686267ce31bbc6c8a4a15d98..09cba5b60f0086de21720262e0e3e345aa243c76 100755 (executable)
@@ -21,30 +21,19 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 /**
  * @author k.luther
  * @since 17.09.2018
- *
  */
 public class CommonNameReferenceSelectionElement extends EntitySelectionElement<Reference> {
 
-    /**
-     * @param formFactory
-     * @param parentElement
-     * @param clazz
-     * @param labelString
-     * @param entity
-     * @param mode
-     * @param style
-     */
     public CommonNameReferenceSelectionElement(CdmFormFactory formFactory, ICdmFormElement parentElement,
              String labelString, Reference entity, int mode, int style) {
         super(formFactory, parentElement, Reference.class, labelString, entity, mode, style);
 
     }
 
-
     @Override
     public void widgetSelected(SelectionEvent e) {
         if (e.getSource().equals(button_selection) ){
-            Reference selection = SelectionDialogFactory.getSelectionFromDialog(Reference.class, getShell(), //getConversationHolder(),
+            Reference selection = SelectionDialogFactory.getSelectionFromDialog(Reference.class, getShell(),
                     getEntity(), getParentElement());
             boolean alreadyMarked = false;
             if (selection != null){
@@ -62,10 +51,9 @@ public class CommonNameReferenceSelectionElement extends EntitySelectionElement<
             }
             StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
         }else{
-            Reference selection = SelectionDialogFactory.getSelectionFromExtDialog(Reference.class, getShell(),//null,
+            Reference selection = SelectionDialogFactory.getSelectionFromExtDialog(Reference.class, getShell(),
                     getParentElement());
             setSelectionInternal(selection);
         }
-
     }
-}
+}
\ No newline at end of file
index 2a1e846d1cd13032826a72f2dea2c61e39193360..6f1ada9e78cf83931770b600e6bb7c8603f04c69 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.selection;
 
 import java.util.Collections;
@@ -19,15 +18,14 @@ import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.api.service.IService;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.Institution;
 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.permission.User;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.model.molecular.Amplification;
 import eu.etaxonomy.cdm.model.molecular.Primer;
@@ -37,6 +35,7 @@ import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.cdm.model.permission.User;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -65,14 +64,14 @@ import eu.etaxonomy.taxeditor.ui.section.user.UserDetailWizardPage;
 /**
  * @author n.hoffmann
  * @created Jun 1, 2010
- * @version 1.0
  */
-public class EditFromSelectionWizard extends Wizard implements
-               SelectionListener, ICdmEntitySessionEnabled {
+public class EditFromSelectionWizard
+        extends Wizard
+        implements SelectionListener, ICdmEntitySessionEnabled<CdmBase> {
 
     private ICdmEntitySession cdmEntitySession;
     private ICdmEntitySession previousCdmEntitySession;
-       private final EntitySelectionElement selectionElement;
+       private final EntitySelectionElement<CdmBase> selectionElement;
        private CdmBase rootElement;
 
        public EditFromSelectionWizard(EntitySelectionElement selectionElement) {
@@ -85,7 +84,6 @@ public class EditFromSelectionWizard extends Wizard implements
                this.setWindowTitle(String.format("Edit %s", TextHelper.deproxyClassName(selectionElement.getEntity().getClass())));
        }
 
-       /** {@inheritDoc} */
        @Override
        public void addPages() {
 
@@ -100,26 +98,29 @@ 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,
+                                       HibernateProxyHelper.deproxy(rootElement, Reference.class), false));
+               } else if (rootElement.isInstanceOf(Team.class) && (selectionElement instanceof EntitySelectionElementWithAbbreviatedTitle<?> )) {
+                       addPage(new TeamWizardPage(formFactory,
+                                       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<?>)) {
+                                       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));
+                    HibernateProxyHelper.deproxy(rootElement, Team.class), false, false));
         } else if (rootElement.isInstanceOf(Person.class)) {
                        addPage(new PersonWizardPage(formFactory,
-                                       selectionElement.getConversationHolder(), HibernateProxyHelper.deproxy(rootElement, Person.class)));
+                                       HibernateProxyHelper.deproxy(rootElement, Person.class)));
                } else if (rootElement.isInstanceOf(TaxonName.class)) {
                        addPage(new NonViralNameWizardPage(formFactory,
-                                       selectionElement.getConversationHolder(),
                                        HibernateProxyHelper.deproxy(rootElement, TaxonName.class)));
                } else if (rootElement.isInstanceOf(TaxonBase.class)) {
             addPage(new TaxonWizardPage(formFactory,
-                    selectionElement.getConversationHolder(),
                     HibernateProxyHelper.deproxy(rootElement, TaxonBase.class)));
         }  else if (rootElement.isInstanceOf(SpecimenOrObservationBase.class)) {
 
@@ -141,48 +142,36 @@ public class EditFromSelectionWizard extends Wizard implements
                                throw new IllegalStateException();
                        }
 
-                       addPage(new DerivedUnitGeneralWizardPage(formFactory,
-                                       selectionElement.getConversationHolder(), facade));
-                       addPage(new GatheringEventWizardPage(formFactory,
-                                       selectionElement.getConversationHolder(), facade));
-                       addPage(new FieldUnitWizardPage(formFactory,
-                                       selectionElement.getConversationHolder(), facade));
+                       addPage(new DerivedUnitGeneralWizardPage(formFactory,facade));
+                       addPage(new GatheringEventWizardPage(formFactory, facade));
+                       addPage(new FieldUnitWizardPage(formFactory, facade));
                        if(facade.innerDerivedUnit()!=null){
-                           addPage(new DerivedUnitBaseWizardPage(formFactory,
-                                   selectionElement.getConversationHolder(), facade));
+                           addPage(new DerivedUnitBaseWizardPage(formFactory, facade));
                        }
                } else if (rootElement.isInstanceOf(Collection.class)) {
                        addPage(new CollectionWizardPage(formFactory,
-                                       selectionElement.getConversationHolder(),
                                        HibernateProxyHelper.deproxy(rootElement, Collection.class)));
                } else if (rootElement instanceof Institution) {
                        addPage(new InstitutionWizardPage(formFactory,
-                                       selectionElement.getConversationHolder(),
                                        HibernateProxyHelper.deproxy(rootElement, Institution.class)));
                } else if (rootElement instanceof User) {
                        addPage(new UserDetailWizardPage(formFactory,
-                                       selectionElement.getConversationHolder(),
                                        HibernateProxyHelper.deproxy(rootElement, User.class)));
                } else if (rootElement instanceof Primer) {
             addPage(new PrimerWizardPage(formFactory,
-                    selectionElement.getConversationHolder(),
                     HibernateProxyHelper.deproxy(rootElement, Primer.class)));
         } else if (rootElement instanceof Amplification) {
             addPage(new AmplificationGeneralWizardPage(formFactory,
-                    selectionElement.getConversationHolder(),
                     HibernateProxyHelper.deproxy(rootElement, Amplification.class)));
         } else if (rootElement instanceof PolytomousKey) {
             addPage(new PolytomousKeyWizardPage(formFactory,
-                    selectionElement.getConversationHolder(),
                     HibernateProxyHelper.deproxy(rootElement, PolytomousKey.class)));
         } else {
                        MessagingUtils.warningDialog("Missing interface", this,
                                        "No detail element for current selection");
                }
-
        }
 
-       /** {@inheritDoc} */
        @Override
        public boolean performFinish() {
            IService<CdmBase> service = CdmStore.getService(rootElement);
@@ -199,7 +188,6 @@ public class EditFromSelectionWizard extends Wizard implements
                return true;
        }
 
-       /** {@inheritDoc} */
        @Override
        public void widgetSelected(SelectionEvent e) {
                WizardDialog dialog = new WizardDialog(selectionElement.getShell(),
@@ -209,7 +197,6 @@ public class EditFromSelectionWizard extends Wizard implements
                }
        }
 
-       /** {@inheritDoc} */
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
        }
index 294e390610a7bc6c7ea8cc60f80ee401a27a91b1..9f3d0af945924b254b00fc4b19aba563e995e18d 100644 (file)
@@ -1,5 +1,10 @@
 /**\r
+ * Copyright (C) 2007 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
@@ -19,10 +24,9 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;\r
 import org.eclipse.swt.widgets.Shell;\r
 import org.eclipse.swt.widgets.Text;\r
+import org.eclipse.ui.forms.widgets.TableWrapData;\r
 import org.springframework.security.core.GrantedAuthority;\r
 \r
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;\r
 import eu.etaxonomy.cdm.api.service.IService;\r
 import eu.etaxonomy.cdm.common.CdmUtils;\r
 import eu.etaxonomy.cdm.model.common.CdmBase;\r
@@ -33,13 +37,14 @@ import eu.etaxonomy.cdm.model.permission.CRUD;
 import eu.etaxonomy.cdm.model.permission.Group;\r
 import eu.etaxonomy.cdm.model.permission.User;\r
 import eu.etaxonomy.cdm.model.reference.Reference;\r
+import eu.etaxonomy.taxeditor.model.AbstractUtility;\r
 import eu.etaxonomy.taxeditor.model.ImageResources;\r
 import eu.etaxonomy.taxeditor.preference.Resources;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 import eu.etaxonomy.taxeditor.store.LoginManager;\r
 import eu.etaxonomy.taxeditor.store.StoreUtil;\r
 import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;\r
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;\r
+import eu.etaxonomy.taxeditor.ui.element.AbstractRelevanceFormElement;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;\r
 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;\r
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;\r
@@ -54,12 +59,11 @@ import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityLabelT
 /**\r
  * @author n.hoffmann\r
  * @created Nov 17, 2009\r
- * @version 1.0\r
- * @param <T>\r
  */\r
-public class EntitySelectionElement<T extends CdmBase> extends\r
-               AbstractCdmFormElement implements  SelectionListener, IEnableableFormElement, ISelectableElement, IEntityElement<T>, ILabeledElement, //IConversationEnabled,\r
-               Observer {\r
+public class EntitySelectionElement<T extends CdmBase>\r
+        extends AbstractRelevanceFormElement\r
+        implements  SelectionListener, IEnableableFormElement, ISelectableElement,\r
+            IEntityElement<T>, ILabeledElement, Observer {\r
 \r
        private static final EnumSet<CRUD> UPDATE = EnumSet.of(CRUD.UPDATE);\r
        private static final EnumSet<CRUD> DELETE = EnumSet.of(CRUD.DELETE);\r
@@ -99,19 +103,15 @@ public class EntitySelectionElement<T extends CdmBase> extends
        private final boolean isDeletable;\r
        private final boolean isExternal;\r
 \r
-//     private final ConversationHolder conversation;\r
        private Class<T> clazz;\r
 \r
        public EntitySelectionElement(CdmFormFactory formFactory,\r
-//          ConversationHolder conversation,\r
             ICdmFormElement parentElement, Class<T> clazz,\r
             String labelString, T entity, int mode, int style, boolean filterElement){\r
            this(formFactory, parentElement, clazz, labelString, entity, mode, style, filterElement, null);\r
        }\r
 \r
-\r
        public EntitySelectionElement(CdmFormFactory formFactory,\r
-//                     ConversationHolder conversation,\r
                ICdmFormElement parentElement, Class<T> clazz,\r
                        String labelString, T entity, int mode, int style, boolean filterElement, Integer limit) {\r
                super(formFactory, parentElement);\r
@@ -124,8 +124,6 @@ public class EntitySelectionElement<T extends CdmBase> extends
 \r
                this.labelString = (labelString == null || labelString.equals("")) ? "" : labelString;\r
 \r
-//             this.conversation = conversation;\r
-\r
                if (isSelectable && formFactory.getSelectionProvider() != null) {\r
                        selectionArbitrator = formFactory.createSelectionArbitrator(this);\r
                }\r
@@ -140,22 +138,21 @@ public class EntitySelectionElement<T extends CdmBase> extends
 \r
     private void setFilteredEntity(T filterEntity) {\r
         this.filteredEntity =filterEntity;\r
-\r
     }\r
 \r
-    public EntitySelectionElement(CdmFormFactory formFactory,//ConversationHolder conversation,\r
+    public EntitySelectionElement(CdmFormFactory formFactory,\r
              ICdmFormElement parentElement, Class<T> clazz,\r
             String labelString, T entity, int mode, int style){\r
-        this(formFactory, //conversation,\r
+        this(formFactory,\r
                 parentElement, clazz, labelString, entity, mode, style, false);\r
     }\r
 \r
-    public EntitySelectionElement(CdmFormFactory formFactory,//ConversationHolder conversation,\r
+    public EntitySelectionElement(CdmFormFactory formFactory,\r
             ICdmFormElement parentElement, Class<T> clazz,\r
            String labelString, T entity, int mode, int style, Integer limit){\r
-       this(formFactory, //conversation,\r
+       this(formFactory,\r
                parentElement, clazz, labelString, entity, mode, style, false, limit);\r
-   }\r
+    }\r
 \r
        private void createControls(Composite parent, int style, Integer limit) {\r
 \r
@@ -188,8 +185,7 @@ public class EntitySelectionElement<T extends CdmBase> extends
                addControl(text);\r
 \r
                text.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());\r
-               text.setBackground(StoreUtil\r
-                               .getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND));\r
+               text.setBackground(AbstractUtility.getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND));\r
                if (limit != null){\r
                    text.setTextLimit(limit);\r
                }\r
@@ -235,23 +231,19 @@ public class EntitySelectionElement<T extends CdmBase> extends
        @Override\r
     public void widgetSelected(SelectionEvent e) {\r
            if (e.getSource().equals(button_selection) ){\r
-               T selection = SelectionDialogFactory.getSelectionFromDialog(clazz, getShell(), //getConversationHolder(),\r
+               T selection = SelectionDialogFactory.getSelectionFromDialog(clazz, getShell(),\r
                        getEntity(), getParentElement());\r
             setSelectionInternal(selection);\r
             if(!getLayoutComposite().isDisposed()){\r
                 StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);\r
             }\r
            }else{\r
-               Reference selection = SelectionDialogFactory.getSelectionFromExtDialog(Reference.class, getShell(),//null,\r
+               Reference selection = SelectionDialogFactory.getSelectionFromExtDialog(Reference.class, getShell(),\r
                        getParentElement());\r
             setSelectionInternal((T)selection);\r
            }\r
-\r
        }\r
 \r
-       /**\r
-     * @return\r
-     */\r
     public T getFilteredEntity() {\r
 \r
         return this.filteredEntity;\r
@@ -259,23 +251,14 @@ public class EntitySelectionElement<T extends CdmBase> extends
 \r
     /**\r
         * Return the selected object\r
-        *\r
-        * @return a T object.\r
         */\r
        public T getSelection() {\r
                return entity;\r
        }\r
 \r
-       /*\r
-        * (non-Javadoc)\r
-        *\r
-        * @see\r
-        * eu.etaxonomy.taxeditor.forms.IEnableableFormElement#setEnabled(boolean)\r
-        */\r
-       /** {@inheritDoc} */\r
        @Override\r
        public void setEnabled(boolean enabled) {\r
-\r
+               this.label.setEnabled(enabled);\r
                button_selection.setEnabled(enabled);\r
                if (isDeletable){\r
                    button_remove.setEnabled(enabled);\r
@@ -286,21 +269,13 @@ public class EntitySelectionElement<T extends CdmBase> extends
 \r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#isEnabled()\r
-        */\r
        @Override\r
        public boolean isEnabled() {\r
            return button_selection.isEnabled();\r
        }\r
 \r
        /**\r
-        * <p>\r
         * setSelectionInternal\r
-        * </p>\r
-        *\r
-        * @param selection\r
-        *            a T object.\r
         */\r
        protected void setSelectionInternal(T selection) {\r
                if (selection != null && !selection.equals(this.entity)) {\r
@@ -309,14 +284,6 @@ public class EntitySelectionElement<T extends CdmBase> extends
                }\r
        }\r
 \r
-       /**\r
-        * <p>\r
-        * Setter for the field <code>entity</code>.\r
-        * </p>\r
-        *\r
-        * @param selection\r
-        *            a T object.\r
-        */\r
        public void setEntity(T selection) {\r
                this.entity = selection;\r
                updateElement();\r
@@ -339,13 +306,6 @@ public class EntitySelectionElement<T extends CdmBase> extends
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));\r
        }\r
 \r
-       /**\r
-        * <p>\r
-        * getTitle\r
-        * </p>\r
-        *\r
-        * @return a {@link java.lang.String} object.\r
-        */\r
        protected String getTitle() {\r
                if (entity != null){\r
                        if(entity instanceof Group){\r
@@ -367,43 +327,16 @@ public class EntitySelectionElement<T extends CdmBase> extends
                return "";\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        public void setSelected(boolean selected) {\r
                setBackground(selected ? SELECTED : getPersistentBackground());\r
        }\r
 \r
-       /*\r
-        * (non-Javadoc)\r
-        *\r
-        * @see eu.etaxonomy.taxeditor.forms.IEntityElement#getEntity()\r
-        */\r
-       /**\r
-        * <p>\r
-        * Getter for the field <code>entity</code>.\r
-        * </p>\r
-        *\r
-        * @return a T object.\r
-        */\r
        @Override\r
        public T getEntity() {\r
                return entity;\r
        }\r
 \r
-       /*\r
-        * (non-Javadoc)\r
-        *\r
-        * @see eu.etaxonomy.taxeditor.forms.section.cdmdetail.ISelectableElement#\r
-        * getSelectionArbitrator()\r
-        */\r
-       /**\r
-        * <p>\r
-        * Getter for the field <code>selectionArbitrator</code>.\r
-        * </p>\r
-        *\r
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator}\r
-        *         object.\r
-        */\r
        @Override\r
        public SelectionArbitrator getSelectionArbitrator() {\r
                return selectionArbitrator;\r
@@ -418,13 +351,9 @@ public class EntitySelectionElement<T extends CdmBase> extends
                return getLayoutComposite().getShell();\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
-       public void setIrrelevant(boolean irrelevant) {\r
-               String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT\r
-                               : Resources.COLOR_TEXT_DISABLED_BACKGROUND;\r
-\r
-               Color color = StoreUtil.getColor(colorId);\r
+       public void updateCacheRelevance() {\r
+               Color color = cacheRelevance().getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND);\r
                text.setBackground(color);\r
        }\r
 \r
@@ -461,7 +390,7 @@ public class EntitySelectionElement<T extends CdmBase> extends
                                //if the edited entity has already been persisted\r
                                //but the transient entity is still set in this\r
                                //EntitySelectionElement, re-load it and set it\r
-                               if(!entity.isPersited()){\r
+                               if(!entity.isPersisted()){\r
                                    IService<T> service = CdmStore.getService(entity);\r
                                        T loadedEntity = service.load(entity.getUuid());\r
                                        if(loadedEntity != null){\r
@@ -477,23 +406,8 @@ public class EntitySelectionElement<T extends CdmBase> extends
        public void widgetDefaultSelected(SelectionEvent e) {\r
        }\r
 \r
-       /**\r
-        * <p>\r
-        * getConversationHolder\r
-        * </p>\r
-        *\r
-        * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}\r
-        *         object.\r
-        */\r
-//     @Override\r
-       public ConversationHolder getConversationHolder() {\r
-           if(getParentElement() instanceof IConversationEnabled) {\r
-            return ((IConversationEnabled)getParentElement()).getConversationHolder();\r
-        }\r
-           return null;\r
-       }\r
 \r
-       /** {@inheritDoc} */\r
+\r
        @Override\r
        public void setBackground(Color color) {\r
 \r
@@ -502,7 +416,6 @@ public class EntitySelectionElement<T extends CdmBase> extends
            }\r
        }\r
 \r
-       /** {@inheritDoc} */\r
        @Override\r
        public void setLabel(String labelString) {\r
                if (label != null) {\r
@@ -510,13 +423,6 @@ public class EntitySelectionElement<T extends CdmBase> extends
                }\r
        }\r
 \r
-       /**\r
-        * <p>\r
-        * Getter for the field <code>label</code>.\r
-        * </p>\r
-        *\r
-        * @return a {@link java.lang.String} object.\r
-        */\r
        @Override\r
        public String getLabel() {\r
                if (label != null) {\r
@@ -525,14 +431,6 @@ public class EntitySelectionElement<T extends CdmBase> extends
                return null;\r
        }\r
 \r
-       /** {@inheritDoc} */\r
-//     @Override\r
-//     public void update(CdmDataChangeMap changeEvents) {\r
-//     }\r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement#removeElements()\r
-        */\r
        @Override\r
     public void removeElements(){\r
                super.removeElements();\r
@@ -552,4 +450,17 @@ public class EntitySelectionElement<T extends CdmBase> extends
                button_edit.setEnabled(isEditable && button_selection.isEnabled() && getEntity() != null  && CdmStore.currentAuthentiationHasPermission(getEntity(), UPDATE));\r
            }\r
        }\r
-}\r
+\r
+       public void setIndent(int indent){\r
+        TableWrapData tableWrapData = (TableWrapData)label.getLayoutData();\r
+\r
+        if (tableWrapData == null){\r
+            tableWrapData = new TableWrapData();\r
+\r
+        }\r
+        tableWrapData.indent = indent;\r
+        label.setLayoutData(tableWrapData);\r
+\r
+        getLayoutComposite().layout();\r
+    }\r
+}
\ No newline at end of file
index 31b93d4913fe9e526df8b10a8e408e23a77384f3..cbefec7f20da4f09dd3320d6de3e5121e1065f12 100644 (file)
@@ -1,6 +1,11 @@
 /**
- *
- */
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.ui.selection;
 
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
@@ -11,19 +16,9 @@ import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 
 public class EntitySelectionElementWithAbbreviatedTitle<T extends CdmBase> extends EntitySelectionElement<T> {
 
-       /**
-     * @param formFactory
-     * @param conversation
-     * @param parentElement
-     * @param clazz
-     * @param labelString
-     * @param entity
-     * @param mode
-     * @param style
-     */
-    public EntitySelectionElementWithAbbreviatedTitle(CdmFormFactory formFactory,// ConversationHolder conversation,
+    public EntitySelectionElementWithAbbreviatedTitle(CdmFormFactory formFactory,
             ICdmFormElement parentElement, Class<T> clazz, String labelString, T entity, int mode, int style) {
-        super(formFactory, //conversation,
+        super(formFactory,
                 parentElement, clazz, labelString, entity, mode, style);
     }
 
@@ -31,7 +26,7 @@ public class EntitySelectionElementWithAbbreviatedTitle<T extends CdmBase> exten
     protected String getTitle() {
                if (entity != null){
                    if(entity instanceof TeamOrPersonBase) {
-                       return ((TeamOrPersonBase) entity).getNomenclaturalTitle();
+                       return ((TeamOrPersonBase) entity).getNomenclaturalTitleCache();
                    } else if(entity instanceof Reference){
                      //FIXME: temporary fix for #6437 to avoid outdated title caches
                        return ((Reference) entity).generateAbbrevTitle();
@@ -42,4 +37,4 @@ public class EntitySelectionElementWithAbbreviatedTitle<T extends CdmBase> exten
                }
                return "";
        }
-}
+}
\ No newline at end of file
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 e661c7a..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.getNomenclaturalTitle() : "";
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       public void widgetSelected(SelectionEvent e) {
-               Team newSelection = NomenclaturalAuthorTeamSelectionDialog.select(
-                               getShell(), //getConversationHolder(),
-                               entity);
-               setSelectionInternal(newSelection);
-       }
-}
index 316c7fa6fdc108ab522073a92c9895c8f4527073..d593bbdf2e64b61a5df4ca76b33fa0195ac132b0 100644 (file)
@@ -29,7 +29,7 @@ public class TaxonNodeSelectionElement extends EntitySelectionElement<TaxonNode>
 
 
 
-       public TaxonNodeSelectionElement(CdmFormFactory formFactory,//ConversationHolder conversation,
+       public TaxonNodeSelectionElement(CdmFormFactory formFactory,
                ICdmFormElement parentElement,
                        String labelString, TaxonNode entity, int mode, int style, Integer limit) {
                super(formFactory, //conversation,
@@ -60,7 +60,7 @@ public class TaxonNodeSelectionElement extends EntitySelectionElement<TaxonNode>
        /** {@inheritDoc} */
        @Override
        public void widgetSelected(SelectionEvent e) {
-               TaxonNode newSelection = TaxonNodeSelectionDialog.select(getShell(),//getConversationHolder(),
+               TaxonNode newSelection = TaxonNodeSelectionDialog.select(getShell(),
                        "Select parent taxon", null, null, getClassification().getUuid());
                setSelectionInternal(newSelection);
        }
index d9d70b0f2cbfce75d7c7d83af1f9353c89bd4b56..5b884034055597fd58d1537865ff4660d148f299 100644 (file)
 
 package eu.etaxonomy.taxeditor.ui.translation;
 
-import com.google.api.translate.Translate;
-
-import eu.etaxonomy.cdm.model.common.Language;
+//import com.google.api.translate.Translate;
+//import eu.etaxonomy.cdm.model.common.Language;
 
 /**
  * <p>GoogleLanguageApiWrapper class.</p>
  *
+ * NOTE: This class was commented to be able to remove google-api-translate-java-xxx.jar from classpath
+ *
  * @author n.hoffmann
  * @created Oct 21, 2010
- * @version 1.0
  * @deprecated Should not be used as the Google translation service is not free anymore
  */
 @Deprecated
-public class GoogleLanguageApiWrapper implements ITranslationServiceWrapper {
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.editor.translation.ITranslationServiceWrapper#translate(java.lang.String, eu.etaxonomy.cdm.model.common.Language, eu.etaxonomy.cdm.model.common.Language)
-        */
-       /** {@inheritDoc} */
-       @Override
-       public String translate(String text, Language source, Language target) throws LanguageNotSupportedException {
-               // TODO make this configurable in preferences
-               Translate.setHttpReferrer("http://cybertaxonomy.eu");
-
-               String translated;
-               try {
-                       translated = Translate.execute(text, getLanguageEquivalent(source), getLanguageEquivalent(target));
-               } catch (Exception e) {
-                       throw new LanguageNotSupportedException(e.getMessage());
-               }
-
-               return translated;
-       }
-
-       /**
-        * @param source
-        * @return
-        * @throws LanguageNotSupportedException
-        */
-       private com.google.api.translate.Language getLanguageEquivalent(
-                       Language language) throws LanguageNotSupportedException {
-
+public class GoogleLanguageApiWrapper /* implements ITranslationServiceWrapper */ {
 
-               if(language.equals(Language.ENGLISH())){
-                       return com.google.api.translate.Language.ENGLISH;
-               }
-               else if(language.equals(Language.FRENCH())){
-                       return com.google.api.translate.Language.FRENCH;
-               }
-               else if(language.equals(Language.GERMAN())){
-                       return com.google.api.translate.Language.GERMAN;
-               }
-               else if(language.equals(Language.SPANISH_CASTILIAN())){
-                       return com.google.api.translate.Language.SPANISH;
-               }
-               else if(language.equals(Language.AFRIKAANS())){
-                       return com.google.api.translate.Language.AFRIKAANS;
-               }
-               else if(language.equals(Language.ALBANIAN())){
-                       return com.google.api.translate.Language.ALBANIAN;
-               }
-               else if(language.equals(Language.AMHARIC())){
-                       return com.google.api.translate.Language.AMHARIC;
-               }
-               else if(language.equals(Language.ARABIC())){
-                       return com.google.api.translate.Language.ARABIC;
-               }
-               else if(language.equals(Language.ARMENIAN())){
-                       return com.google.api.translate.Language.ARMENIAN;
-               }
-               else if(language.equals(Language.AZERBAIJANI())){
-                       return com.google.api.translate.Language.AZERBAIJANI;
-               }
-               else if(language.equals(Language.BASQUE())){
-                       return com.google.api.translate.Language.BASQUE;
-               }
-               else if(language.equals(Language.BENGALI())){
-                       return com.google.api.translate.Language.BENGALI;
-               }
-               else if(language.equals(Language.BIHARI())){
-                       return com.google.api.translate.Language.BIHARI;
-               }
-               else if(language.equals(Language.BULGARIAN())){
-                       return com.google.api.translate.Language.BULGARIAN;
-               }
-               else if(language.equals(Language.BURMESE())){
-                       return com.google.api.translate.Language.BURMESE;
-               }
-               else if(language.equals(Language.CHEROKEE())){
-                       return com.google.api.translate.Language.CHEROKEE;
-               }
-               else if(language.equals(Language.CHINESE())){
-                       return com.google.api.translate.Language.CHINESE;
-               }
-               else if(language.equals(Language.CROATIAN())){
-                       return com.google.api.translate.Language.CROATIAN;
-               }
-               else if(language.equals(Language.CZECH())){
-                       return com.google.api.translate.Language.CZECH;
-               }
-               else if(language.equals(Language.DANISH())){
-                       return com.google.api.translate.Language.DANISH;
-               }
-               else if(language.equals(Language.DUTCH_MIDDLE())){
-                       return com.google.api.translate.Language.DUTCH;
-               }
-               else if(language.equals(Language.ESPERANTO())){
-                       return com.google.api.translate.Language.ESPERANTO;
-               }
-               else if(language.equals(Language.ESTONIAN())){
-                       return com.google.api.translate.Language.ESTONIAN;
-               }
-               else if(language.equals(Language.FILIPINO())){
-                       return com.google.api.translate.Language.FILIPINO;
-               }
-               else if(language.equals(Language.FINNISH())){
-                       return com.google.api.translate.Language.FINNISH;
-               }
-               else if(language.equals(Language.GALICIAN())){
-                       return com.google.api.translate.Language.GALICIAN;
-               }
-               else if(language.equals(Language.GEORGIAN())){
-                       return com.google.api.translate.Language.GEORGIAN;
-               }
-               else if(language.equals(Language.GREEK_MODERN())){
-                       return com.google.api.translate.Language.GREEK;
-               }
-               else if(language.equals(Language.GUARANI())){
-                       return com.google.api.translate.Language.GUARANI;
-               }
-               else if(language.equals(Language.GUJARATI())){
-                       return com.google.api.translate.Language.GUJARATI;
-               }
-               else if(language.equals(Language.HEBREW())){
-                       return com.google.api.translate.Language.HEBREW;
-               }
-               else if(language.equals(Language.HINDI())){
-                       return com.google.api.translate.Language.HINDI;
-               }
-               else if(language.equals(Language.HUNGARIAN())){
-                       return com.google.api.translate.Language.HUNGARIAN;
-               }
-               else if(language.equals(Language.ICELANDIC())){
-                       return com.google.api.translate.Language.ICELANDIC;
-               }
-               else if(language.equals(Language.INDONESIAN())){
-                       return com.google.api.translate.Language.INDONESIAN;
-               }
-               else if(language.equals(Language.INUKTITUT())){
-                       return com.google.api.translate.Language.INUKTITUT;
-               }
-               else if(language.equals(Language.IRISH())){
-                       return com.google.api.translate.Language.IRISH;
-               }
-               else if(language.equals(Language.ITALIAN())){
-                       return com.google.api.translate.Language.ITALIAN;
-               }
-               else if(language.equals(Language.JAPANESE())){
-                       return com.google.api.translate.Language.JAPANESE;
-               }
-               else if(language.equals(Language.KANNADA())){
-                       return com.google.api.translate.Language.KANNADA;
-               }
-               else if(language.equals(Language.KAZAKH())){
-                       return com.google.api.translate.Language.KAZAKH;
-               }
-               else if(language.equals(Language.KOREAN())){
-                       return com.google.api.translate.Language.KOREAN;
-               }
-               else if(language.equals(Language.KURDISH())){
-                       return com.google.api.translate.Language.KURDISH;
-               }
-               else if(language.equals(Language.KIRGHIZ_KYRGYZ())){
-                       return com.google.api.translate.Language.KYRGYZ;
-               }
-               else if(language.equals(Language.LAO())){
-                       return com.google.api.translate.Language.LAOTHIAN;
-               }
-               else if(language.equals(Language.LATVIAN())){
-                       return com.google.api.translate.Language.LATVIAN;
-               }
-               else if(language.equals(Language.LITHUANIAN())){
-                       return com.google.api.translate.Language.LITHUANIAN;
-               }
-               else if(language.equals(Language.MACEDONIAN())){
-                       return com.google.api.translate.Language.MACEDONIAN;
-               }
-               else if(language.equals(Language.MALAY())){
-                       return com.google.api.translate.Language.MALAY;
-               }
-               else if(language.equals(Language.MALAYALAM())){
-                       return com.google.api.translate.Language.MALAYALAM;
-               }
-               else if(language.equals(Language.MALTESE())){
-                       return com.google.api.translate.Language.MALTESE;
-               }
-               else if(language.equals(Language.MARATHI())){
-                       return com.google.api.translate.Language.MARATHI;
-               }
-               else if(language.equals(Language.MARATHI())){
-                       return com.google.api.translate.Language.MONGOLIAN;
-               }
-               else if(language.equals(Language.MARATHI())){
-                       return com.google.api.translate.Language.NEPALI;
-               }
-               else if(language.equals(Language.NORWEGIAN())){
-                       return com.google.api.translate.Language.NORWEGIAN;
-               }
-               else if(language.equals(Language.ORIYA())){
-                       return com.google.api.translate.Language.ORIYA;
-               }
-               else if(language.equals(Language.PUSHTO())){
-                       return com.google.api.translate.Language.PASHTO;
-               }
-               else if(language.equals(Language.PERSIAN())){
-                       return com.google.api.translate.Language.PERSIAN;
-               }
-               else if(language.equals(Language.PERSIAN())){
-                       return com.google.api.translate.Language.POLISH;
-               }
-               else if(language.equals(Language.PORTUGUESE())){
-                       return com.google.api.translate.Language.PORTUGUESE;
-               }
-               else if(language.equals(Language.PANJABI_PUNJABI())){
-                       return com.google.api.translate.Language.PUNJABI;
-               }
-               else if(language.equals(Language.ROMANIAN())){
-                       return com.google.api.translate.Language.ROMANIAN;
-               }
-               else if(language.equals(Language.RUSSIAN())){
-                       return com.google.api.translate.Language.RUSSIAN;
-               }
-               else if(language.equals(Language.SANSKRIT())){
-                       return com.google.api.translate.Language.SANSKRIT;
-               }
-               else if(language.equals(Language.SERBIAN())){
-                       return com.google.api.translate.Language.SERBIAN;
-               }
-               else if(language.equals(Language.SINDHI())){
-                       return com.google.api.translate.Language.SINDHI;
-               }
-               else if(language.equals(Language.SINDHI())){
-                       return com.google.api.translate.Language.SINHALESE;
-               }
-               else if(language.equals(Language.SLOVAK())){
-                       return com.google.api.translate.Language.SLOVAK;
-               }
-               else if(language.equals(Language.SLOVENIAN())){
-                       return com.google.api.translate.Language.SLOVENIAN;
-               }
-               else if(language.equals(Language.SWAHILI())){
-                       return com.google.api.translate.Language.SWAHILI;
-               }
-               else if(language.equals(Language.SWEDISH())){
-                       return com.google.api.translate.Language.SWEDISH;
-               }
-               else if(language.equals(Language.TAGALOG())){
-                       return com.google.api.translate.Language.TAGALOG;
-               }
-               else if(language.equals(Language.TAJIK())){
-                       return com.google.api.translate.Language.TAJIK;
-               }
-               else if(language.equals(Language.TAMIL())){
-                       return com.google.api.translate.Language.TAMIL;
-               }
-               else if(language.equals(Language.TELUGU())){
-                       return com.google.api.translate.Language.TELUGU;
-               }
-               else if(language.equals(Language.THAI())){
-                       return com.google.api.translate.Language.THAI;
-               }
-               else if(language.equals(Language.TIBETAN())){
-                       return com.google.api.translate.Language.TIBETAN;
-               }
-               else if(language.equals(Language.TURKISH())){
-                       return com.google.api.translate.Language.TURKISH;
-               }
-               else if(language.equals(Language.UIGHUR_UYGHUR())){
-                       return com.google.api.translate.Language.UIGHUR;
-               }
-               else if(language.equals(Language.UKRAINIAN())){
-                       return com.google.api.translate.Language.UKRANIAN;
-               }
-               else if(language.equals(Language.URDU())){
-                       return com.google.api.translate.Language.URDU;
-               }
-               else if(language.equals(Language.UZBEK())){
-                       return com.google.api.translate.Language.UZBEK;
-               }
-               else if(language.equals(Language.VIETNAMESE())){
-                       return com.google.api.translate.Language.VIETNAMESE;
-               }
-               else if(language.equals(Language.WELSH())){
-                       return com.google.api.translate.Language.WELSH;
-               }
-               else if(language.equals(Language.YIDDISH())){
-                       return com.google.api.translate.Language.YIDDISH;
-               }
-               else{
-                       throw new LanguageNotSupportedException("The language " + language.getDescription() + " is not supported");
-               }
-       }
+//     @Override
+//     public String translate(String text, Language source, Language target) throws LanguageNotSupportedException {
+//             // TODO make this configurable in preferences
+//             Translate.setHttpReferrer("https://cybertaxonomy.org");
+//
+//             String translated;
+//             try {
+//                     translated = Translate.execute(text, getLanguageEquivalent(source), getLanguageEquivalent(target));
+//             } catch (Exception e) {
+//                     throw new LanguageNotSupportedException(e.getMessage());
+//             }
+//
+//             return translated;
+//     }
+//
+//     private com.google.api.translate.Language getLanguageEquivalent(
+//                     Language language) throws LanguageNotSupportedException {
+//
+//             if(language.equals(Language.ENGLISH())){
+//                     return com.google.api.translate.Language.ENGLISH;
+//             }
+//             else if(language.equals(Language.FRENCH())){
+//                     return com.google.api.translate.Language.FRENCH;
+//             }
+//             else if(language.equals(Language.GERMAN())){
+//                     return com.google.api.translate.Language.GERMAN;
+//             }
+//             else if(language.equals(Language.SPANISH_CASTILIAN())){
+//                     return com.google.api.translate.Language.SPANISH;
+//             }
+//             else if(language.equals(Language.AFRIKAANS())){
+//                     return com.google.api.translate.Language.AFRIKAANS;
+//             }
+//             else if(language.equals(Language.ALBANIAN())){
+//                     return com.google.api.translate.Language.ALBANIAN;
+//             }
+//             else if(language.equals(Language.AMHARIC())){
+//                     return com.google.api.translate.Language.AMHARIC;
+//             }
+//             else if(language.equals(Language.ARABIC())){
+//                     return com.google.api.translate.Language.ARABIC;
+//             }
+//             else if(language.equals(Language.ARMENIAN())){
+//                     return com.google.api.translate.Language.ARMENIAN;
+//             }
+//             else if(language.equals(Language.AZERBAIJANI())){
+//                     return com.google.api.translate.Language.AZERBAIJANI;
+//             }
+//             else if(language.equals(Language.BASQUE())){
+//                     return com.google.api.translate.Language.BASQUE;
+//             }
+//             else if(language.equals(Language.BENGALI())){
+//                     return com.google.api.translate.Language.BENGALI;
+//             }
+//             else if(language.equals(Language.BIHARI())){
+//                     return com.google.api.translate.Language.BIHARI;
+//             }
+//             else if(language.equals(Language.BULGARIAN())){
+//                     return com.google.api.translate.Language.BULGARIAN;
+//             }
+//             else if(language.equals(Language.BURMESE())){
+//                     return com.google.api.translate.Language.BURMESE;
+//             }
+//             else if(language.equals(Language.CHEROKEE())){
+//                     return com.google.api.translate.Language.CHEROKEE;
+//             }
+//             else if(language.equals(Language.CHINESE())){
+//                     return com.google.api.translate.Language.CHINESE;
+//             }
+//             else if(language.equals(Language.CROATIAN())){
+//                     return com.google.api.translate.Language.CROATIAN;
+//             }
+//             else if(language.equals(Language.CZECH())){
+//                     return com.google.api.translate.Language.CZECH;
+//             }
+//             else if(language.equals(Language.DANISH())){
+//                     return com.google.api.translate.Language.DANISH;
+//             }
+//             else if(language.equals(Language.DUTCH_MIDDLE())){
+//                     return com.google.api.translate.Language.DUTCH;
+//             }
+//             else if(language.equals(Language.ESPERANTO())){
+//                     return com.google.api.translate.Language.ESPERANTO;
+//             }
+//             else if(language.equals(Language.ESTONIAN())){
+//                     return com.google.api.translate.Language.ESTONIAN;
+//             }
+//             else if(language.equals(Language.FILIPINO())){
+//                     return com.google.api.translate.Language.FILIPINO;
+//             }
+//             else if(language.equals(Language.FINNISH())){
+//                     return com.google.api.translate.Language.FINNISH;
+//             }
+//             else if(language.equals(Language.GALICIAN())){
+//                     return com.google.api.translate.Language.GALICIAN;
+//             }
+//             else if(language.equals(Language.GEORGIAN())){
+//                     return com.google.api.translate.Language.GEORGIAN;
+//             }
+//             else if(language.equals(Language.GREEK_MODERN())){
+//                     return com.google.api.translate.Language.GREEK;
+//             }
+//             else if(language.equals(Language.GUARANI())){
+//                     return com.google.api.translate.Language.GUARANI;
+//             }
+//             else if(language.equals(Language.GUJARATI())){
+//                     return com.google.api.translate.Language.GUJARATI;
+//             }
+//             else if(language.equals(Language.HEBREW())){
+//                     return com.google.api.translate.Language.HEBREW;
+//             }
+//             else if(language.equals(Language.HINDI())){
+//                     return com.google.api.translate.Language.HINDI;
+//             }
+//             else if(language.equals(Language.HUNGARIAN())){
+//                     return com.google.api.translate.Language.HUNGARIAN;
+//             }
+//             else if(language.equals(Language.ICELANDIC())){
+//                     return com.google.api.translate.Language.ICELANDIC;
+//             }
+//             else if(language.equals(Language.INDONESIAN())){
+//                     return com.google.api.translate.Language.INDONESIAN;
+//             }
+//             else if(language.equals(Language.INUKTITUT())){
+//                     return com.google.api.translate.Language.INUKTITUT;
+//             }
+//             else if(language.equals(Language.IRISH())){
+//                     return com.google.api.translate.Language.IRISH;
+//             }
+//             else if(language.equals(Language.ITALIAN())){
+//                     return com.google.api.translate.Language.ITALIAN;
+//             }
+//             else if(language.equals(Language.JAPANESE())){
+//                     return com.google.api.translate.Language.JAPANESE;
+//             }
+//             else if(language.equals(Language.KANNADA())){
+//                     return com.google.api.translate.Language.KANNADA;
+//             }
+//             else if(language.equals(Language.KAZAKH())){
+//                     return com.google.api.translate.Language.KAZAKH;
+//             }
+//             else if(language.equals(Language.KOREAN())){
+//                     return com.google.api.translate.Language.KOREAN;
+//             }
+//             else if(language.equals(Language.KURDISH())){
+//                     return com.google.api.translate.Language.KURDISH;
+//             }
+//             else if(language.equals(Language.KIRGHIZ_KYRGYZ())){
+//                     return com.google.api.translate.Language.KYRGYZ;
+//             }
+//             else if(language.equals(Language.LAO())){
+//                     return com.google.api.translate.Language.LAOTHIAN;
+//             }
+//             else if(language.equals(Language.LATVIAN())){
+//                     return com.google.api.translate.Language.LATVIAN;
+//             }
+//             else if(language.equals(Language.LITHUANIAN())){
+//                     return com.google.api.translate.Language.LITHUANIAN;
+//             }
+//             else if(language.equals(Language.MACEDONIAN())){
+//                     return com.google.api.translate.Language.MACEDONIAN;
+//             }
+//             else if(language.equals(Language.MALAY())){
+//                     return com.google.api.translate.Language.MALAY;
+//             }
+//             else if(language.equals(Language.MALAYALAM())){
+//                     return com.google.api.translate.Language.MALAYALAM;
+//             }
+//             else if(language.equals(Language.MALTESE())){
+//                     return com.google.api.translate.Language.MALTESE;
+//             }
+//             else if(language.equals(Language.MARATHI())){
+//                     return com.google.api.translate.Language.MARATHI;
+//             }
+//             else if(language.equals(Language.MARATHI())){
+//                     return com.google.api.translate.Language.MONGOLIAN;
+//             }
+//             else if(language.equals(Language.MARATHI())){
+//                     return com.google.api.translate.Language.NEPALI;
+//             }
+//             else if(language.equals(Language.NORWEGIAN())){
+//                     return com.google.api.translate.Language.NORWEGIAN;
+//             }
+//             else if(language.equals(Language.ORIYA())){
+//                     return com.google.api.translate.Language.ORIYA;
+//             }
+//             else if(language.equals(Language.PUSHTO())){
+//                     return com.google.api.translate.Language.PASHTO;
+//             }
+//             else if(language.equals(Language.PERSIAN())){
+//                     return com.google.api.translate.Language.PERSIAN;
+//             }
+//             else if(language.equals(Language.PERSIAN())){
+//                     return com.google.api.translate.Language.POLISH;
+//             }
+//             else if(language.equals(Language.PORTUGUESE())){
+//                     return com.google.api.translate.Language.PORTUGUESE;
+//             }
+//             else if(language.equals(Language.PANJABI_PUNJABI())){
+//                     return com.google.api.translate.Language.PUNJABI;
+//             }
+//             else if(language.equals(Language.ROMANIAN())){
+//                     return com.google.api.translate.Language.ROMANIAN;
+//             }
+//             else if(language.equals(Language.RUSSIAN())){
+//                     return com.google.api.translate.Language.RUSSIAN;
+//             }
+//             else if(language.equals(Language.SANSKRIT())){
+//                     return com.google.api.translate.Language.SANSKRIT;
+//             }
+//             else if(language.equals(Language.SERBIAN())){
+//                     return com.google.api.translate.Language.SERBIAN;
+//             }
+//             else if(language.equals(Language.SINDHI())){
+//                     return com.google.api.translate.Language.SINDHI;
+//             }
+//             else if(language.equals(Language.SINDHI())){
+//                     return com.google.api.translate.Language.SINHALESE;
+//             }
+//             else if(language.equals(Language.SLOVAK())){
+//                     return com.google.api.translate.Language.SLOVAK;
+//             }
+//             else if(language.equals(Language.SLOVENIAN())){
+//                     return com.google.api.translate.Language.SLOVENIAN;
+//             }
+//             else if(language.equals(Language.SWAHILI())){
+//                     return com.google.api.translate.Language.SWAHILI;
+//             }
+//             else if(language.equals(Language.SWEDISH())){
+//                     return com.google.api.translate.Language.SWEDISH;
+//             }
+//             else if(language.equals(Language.TAGALOG())){
+//                     return com.google.api.translate.Language.TAGALOG;
+//             }
+//             else if(language.equals(Language.TAJIK())){
+//                     return com.google.api.translate.Language.TAJIK;
+//             }
+//             else if(language.equals(Language.TAMIL())){
+//                     return com.google.api.translate.Language.TAMIL;
+//             }
+//             else if(language.equals(Language.TELUGU())){
+//                     return com.google.api.translate.Language.TELUGU;
+//             }
+//             else if(language.equals(Language.THAI())){
+//                     return com.google.api.translate.Language.THAI;
+//             }
+//             else if(language.equals(Language.TIBETAN())){
+//                     return com.google.api.translate.Language.TIBETAN;
+//             }
+//             else if(language.equals(Language.TURKISH())){
+//                     return com.google.api.translate.Language.TURKISH;
+//             }
+//             else if(language.equals(Language.UIGHUR_UYGHUR())){
+//                     return com.google.api.translate.Language.UIGHUR;
+//             }
+//             else if(language.equals(Language.UKRAINIAN())){
+//                     return com.google.api.translate.Language.UKRANIAN;
+//             }
+//             else if(language.equals(Language.URDU())){
+//                     return com.google.api.translate.Language.URDU;
+//             }
+//             else if(language.equals(Language.UZBEK())){
+//                     return com.google.api.translate.Language.UZBEK;
+//             }
+//             else if(language.equals(Language.VIETNAMESE())){
+//                     return com.google.api.translate.Language.VIETNAMESE;
+//             }
+//             else if(language.equals(Language.WELSH())){
+//                     return com.google.api.translate.Language.WELSH;
+//             }
+//             else if(language.equals(Language.YIDDISH())){
+//                     return com.google.api.translate.Language.YIDDISH;
+//             }
+//             else{
+//                     throw new LanguageNotSupportedException("The language " + language.getDescription() + " is not supported");
+//             }
+//     }
 
 }
index 502573a66bb7a110e2f146e134d41533f3e81db8..b6f889b5f0f7c05dbc60f74d033e8d30f3c3aae4 100644 (file)
@@ -17,6 +17,7 @@ import org.eclipse.swt.widgets.Display;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.term.Representation;
 import eu.etaxonomy.cdm.model.term.TermBase;
+import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -35,8 +36,9 @@ public class TermTranslationWizardPage extends WizardPage implements IPropertyCh
 
         private static int TEXT_HEIGHT = 200;
 
-        private final TermBase term;
+        private TermBase term;
 
+        private AbstractTermDto termDto;
         private MultilanguageTextElement source;
 
         private final CdmFormFactory formFactory;
@@ -54,6 +56,16 @@ public class TermTranslationWizardPage extends WizardPage implements IPropertyCh
             formFactory.addPropertyChangeListener(this);
             setPageComplete(false);
         }
+        
+        public TermTranslationWizardPage(AbstractTermDto termDto) {
+            super("TranslationWizardPage");
+            //Assert.isNotNull(multilanguageText, "Multilanguage text may not be null");
+            setTitle("Add or edit translations.");
+            this.termDto = termDto;
+            formFactory = new CdmFormFactory(Display.getCurrent());
+            formFactory.addPropertyChangeListener(this);
+            setPageComplete(false);
+        }
 
         @Override
         public void createControl(Composite parent) {
@@ -81,22 +93,42 @@ public class TermTranslationWizardPage extends WizardPage implements IPropertyCh
         }
 
         private void setSource(Language language) {
-           Representation preferredRepresentation =term.getPreferredRepresentation(language);
-            if(preferredRepresentation != null){
-               text_source.setSelectedRepresentation(preferredRepresentation);
-            }
+               Representation preferredRepresentation ;
+               if (term != null) {
+                       preferredRepresentation =term.getPreferredRepresentation(language);                 
+               }else {
+                       preferredRepresentation =termDto.getPreferredRepresentation(language);              
+               }
+               if(preferredRepresentation != null){
+                       text_source.setSelectedRepresentation(preferredRepresentation);
+               }
+               text_source.setEnabled(false);
+               text_source.setLanguageComboEnabled(false);
         }
 
         private void createLeftControls(ICdmFormElement element){
-            Representation preferredRepresentation= term.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage());
-
-            text_source = formFactory.createRepresentationElement(element, preferredRepresentation,term,  TEXT_HEIGHT,  SWT.NULL, true);
-            text_source.setTerm(term, true);
-
+               Representation preferredRepresentation;
+               if (term != null) {
+                       preferredRepresentation = term.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage());
+                       text_source = formFactory.createRepresentationElement(element, preferredRepresentation,term,  TEXT_HEIGHT,  SWT.NULL, true);
+                text_source.setTerm(term, true);
+                
+               }else {
+                       preferredRepresentation = termDto.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage());
+                       text_source = formFactory.createRepresentationElement(element, preferredRepresentation,termDto,  TEXT_HEIGHT,  SWT.NULL, true);
+                text_source.setTermDto(termDto, true);
+               }
+               text_source.setEnabled(false);
+               text_source.setEnabled(false);
         }
 
         private void createRightControls(ICdmFormElement element){
-            text_target = formFactory.createRepresentationElement(element, null, term, TEXT_HEIGHT, SWT.NULL, false);
+               if (term != null) {
+                       text_target = formFactory.createRepresentationElement(element, null, term, TEXT_HEIGHT, SWT.NULL, false);
+               }else {
+                       text_target = formFactory.createRepresentationElement(element, null, termDto, TEXT_HEIGHT, SWT.NULL, false);
+               }
+               text_target.setEnabled(false);
         }
 
         @Override
@@ -113,5 +145,6 @@ public class TermTranslationWizardPage extends WizardPage implements IPropertyCh
             if (event.getSource() == text_target){
                 getWizard().getContainer().updateButtons();
             }
+            
         }
 }
index 58199c84e2eacf51cc46dd5b1dc1b07d9121fea4..43694028fe17bb07c65ddb601dc7891e74079135 100644 (file)
@@ -29,14 +29,17 @@ public class TranslationWizard extends Wizard {
        
        private Map<Language, LanguageString> multilanguageText;
        
+       private Language selectedLanguage;
+       
        /**
         * <p>Constructor for TranslationWizard.</p>
         *
         * @param multilanguageText a {@link java.util.Map} object.
         */
-       public TranslationWizard(Map<Language, LanguageString> multilanguageText) {
+       public TranslationWizard(Map<Language, LanguageString> multilanguageText, Language lang) {
                setWindowTitle("Translation Editor");
                this.multilanguageText = multilanguageText;
+               selectedLanguage = lang;
                setNeedsProgressMonitor(true);
        }
        
@@ -46,7 +49,7 @@ public class TranslationWizard extends Wizard {
        /** {@inheritDoc} */
        @Override
        public void addPages() {
-               page = new TranslationWizardPage(multilanguageText);
+               page = new TranslationWizardPage(multilanguageText, selectedLanguage);
                addPage(page);
        }
        
index ded53e08607e1cf280ad7da7cd1fe615daebbb64..fdfa84bb449a83ebf40a536356340d7d1f8bcb08 100644 (file)
@@ -16,6 +16,8 @@ import java.util.Map;
 import java.util.Set;
 
 import org.eclipse.core.runtime.Assert;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -32,6 +34,7 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
@@ -43,9 +46,8 @@ import eu.etaxonomy.taxeditor.ui.element.RootElement;
  *
  * @author n.hoffmann
  * @created Sep 29, 2010
- * @version 1.0
  */
-public class TranslationWizardPage extends WizardPage{
+public class TranslationWizardPage extends WizardPage implements IPropertyChangeListener{
 
        private static int TEXT_HEIGHT = 400;
 
@@ -62,17 +64,20 @@ public class TranslationWizardPage extends WizardPage{
        private TermComboElement<Language> combo_targetLanguage;
 
        private LanguageStringWithLabelElement text_target;
+       
+       private Language selectedLanguage;
 
        /**
         * <p>Constructor for TranslationWizardPage.</p>
         *
         * @param multilanguageText a {@link java.util.Map} object.
         */
-       protected TranslationWizardPage(Map<Language, LanguageString> multilanguageText) {
+       protected TranslationWizardPage(Map<Language, LanguageString> multilanguageText, Language selectedLanguage) {
                super("TranslationWizardPage");
                Assert.isNotNull(multilanguageText, "Multilanguage text may not be null");
                setTitle("Add or edit translations.");
                this.multilanguageText = multilanguageText;
+               this.selectedLanguage = selectedLanguage;
                formFactory = new CdmFormFactory(Display.getCurrent());
                setPageComplete(false);
        }
@@ -101,6 +106,7 @@ public class TranslationWizardPage extends WizardPage{
                
                createLeftControls(leftRoot);
                createRightControls(rightRoot);
+
                
                // initialize with default language
                setSource(CdmStore.getDefaultLanguage());
@@ -131,7 +137,7 @@ public class TranslationWizardPage extends WizardPage{
         */
        private void createLeftControls(ICdmFormElement element){
 
-               combo_sourceLanguage = formFactory.createDefinedTermComboElement(TermType.Language, element, null, null, SWT.NULL);
+               combo_sourceLanguage = formFactory.createDefinedTermComboElement(TermType.Language, element, null, null, false,SWT.NULL);
                
                combo_sourceLanguage.setTerms(getLanguages());
 
@@ -161,8 +167,8 @@ public class TranslationWizardPage extends WizardPage{
         * @param element
         */
        private void createRightControls(ICdmFormElement element){
-               combo_targetLanguage = formFactory.createDefinedTermComboElement(TermType.Language, element, null, null, SWT.NULL);
-
+               combo_targetLanguage = formFactory.createDefinedTermComboElement(TermType.Language, element, null, null,false, SWT.NULL);
+                                               
                combo_targetLanguage.addSelectionListener(new SelectionAdapter() {
                        /* (non-Javadoc)
                         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
@@ -191,6 +197,33 @@ public class TranslationWizardPage extends WizardPage{
 
                text_target = formFactory.createLanguageStringWithLabelElement(element, null, null, TEXT_HEIGHT, false, SWT.NULL);
 
+               
+               Language lang = combo_targetLanguage.getTerms().get(0);
+               LanguageString langString;
+               LanguageString preferredLanguageString = MultilanguageTextHelper.getPreferredLanguageString(multilanguageText, null);
+               if (preferredLanguageString.getLanguage().equals(selectedLanguage)) {
+                       langString = multilanguageText.get(lang);
+                       if (langString == null) {
+                               Set<Language> alreadyExisting = multilanguageText.keySet();
+                               for (Language langExist: alreadyExisting) {
+                                       if (!langExist.equals(preferredLanguageString.getLanguage())) {
+                                               langString = multilanguageText.get(langExist);
+                                               lang = langExist;
+                                               break;
+                                       }
+                               }
+                       }
+               } else {
+                       langString = multilanguageText.get(selectedLanguage);
+                       lang = selectedLanguage;
+               }
+               if (langString != null) {
+                       text_target.setLanguageString(langString);
+                       combo_targetLanguage.setSelection(lang);
+                       setPageComplete(true);
+               }
+               
+
                //
                // The automated translation did rely on the Google Translate API. Unfortunately this service is not free anymore.
                // See http://code.google.com/apis/language/translate/overview.html
@@ -263,4 +296,14 @@ public class TranslationWizardPage extends WizardPage{
        public LanguageString getTargetLanguageString() {
                return text_target.getLanguageString();
        }
+
+       
+
+       @Override
+       public void propertyChange(PropertyChangeEvent event) {
+               if (event.getSource().equals(text_target)) {
+                       setPageComplete(true);
+               }
+               
+       }
 }
index 5b4508dfca3d560c1dde562f86c2090ee8f6c44a..dfb59a48fca2d481ee13f0c036b849d1eb3ccda5 100644 (file)
@@ -17,12 +17,11 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 /**
  * @author cmathew
  * @date 29 Jun 2015
- *
  */
 public class OperationsUtil {
 
     public static List<UUID> convertToUuidList(List<CdmBase> cdmBaseList) {
-        List<UUID> uuids = new ArrayList<UUID>();
+        List<UUID> uuids = new ArrayList<>();
         for(CdmBase cdmBase : cdmBaseList) {
             if(cdmBase == null) {
                 uuids.add(null);
index 437e4a738e987d9d73d7a3b48ac5d355329256c1..4a5f116ef22a5aee361b81b5e1129111d84e79b8 100644 (file)
@@ -13,7 +13,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.SubMonitor;
 import org.springframework.remoting.RemoteAccessException;
 
@@ -29,11 +29,9 @@ import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
  *
  * @author cmathew
  * @date 23 Oct 2015
- *
  */
-
 public class ProgressMonitorClientManager {
-    private static final Logger logger = Logger.getLogger(ProgressMonitorClientManager.class);
+    private static final Logger logger = LogManager.getLogger(ProgressMonitorClientManager.class);
 
     /**
      * Polls the progress monitor service for the progress status of a monitor
@@ -58,6 +56,7 @@ public class ProgressMonitorClientManager {
             SubMonitor monitor) throws InterruptedException {
         return pollMonitor(label, uuid, pollInterval, postOp, Arrays.asList(feedbackGenerator), monitor);
     }
+
     /**
      * Polls the progress monitor service for the progress status of a monitor
      * corresponding to the given uuid.
@@ -81,36 +80,29 @@ public class ProgressMonitorClientManager {
             final IPostMoniteredOperationEnabled postOp,
             List<IFeedbackGenerator> feedbackGenerators,
             SubMonitor monitor) throws InterruptedException {
+
         IProgressMonitorService progressMonitorService = CdmApplicationState.getCurrentAppConfig().getProgressMonitorService();
         IRemotingProgressMonitor remotingMonitor = progressMonitorService.getRemotingMonitor(uuid);
         try {
             final int START_DELAY=10;
             // wait about 10 seconds for the remoting monitor to be initialised
             // (i.e. for the begin task method to be called ON THE REMOTING MONITOR)
-            if ( remotingMonitor.isDone()){
+            if (remotingMonitor != null && remotingMonitor.isDone()){
                 return remotingMonitor;
             }
-            for(int i=0;i<START_DELAY;i++) {
-                Thread.sleep(10);
-                logger.info("Waiting for monitered work to start ..");
+            for(int i=0;remotingMonitor==null && i<START_DELAY;i++) {
+                Thread.sleep(500);
+                logger.info("Waiting for monitored work to start ..");
                 remotingMonitor = progressMonitorService.getRemotingMonitor(uuid);
-                if (remotingMonitor != null){
-                    if(remotingMonitor.getTotalWork() > 0) {
-                        break;
-                    }
-                    break;
-                }
             }
-
             if (remotingMonitor == null){
                 return null;
             }
+
             // if the total work is still not been set then we assume that the
             // operation has zero work units
-
             if(remotingMonitor.getTotalWork() == 0 && remotingMonitor.isDone()) {
                 return remotingMonitor;
-
             }else if (remotingMonitor.getTotalWork() == 0 ){
                 Object result = remotingMonitor.getResult();
                 InterruptedException exception = new InterruptedException("Monitor has zero work units");
@@ -119,10 +111,9 @@ public class ProgressMonitorClientManager {
                 }else if (result == null){
                     result = new UpdateResult();
                 }
-
             }
+
             // start the client monitor
-            monitor.beginTask(remotingMonitor.getTaskName(), remotingMonitor.getTotalWork());
             logger.info("Work to be done: " + remotingMonitor.getTotalWork());
             int editorTotalWorkDone = 0;
             int serverTotalWorkDone = 0;
@@ -146,8 +137,8 @@ public class ProgressMonitorClientManager {
                     }else{
                         throw e;
                     }
-
                 }
+
                 // check if remoting monitor is waiting for feedback
                 if(remotingMonitor.getIsWaitingForFeedback()) {
                     if(feedbackGenerators != null) {
@@ -166,38 +157,37 @@ public class ProgressMonitorClientManager {
                         feedbackCount++;
                     }
                 }
+
                 serverTotalWorkDone = (int) remotingMonitor.getWorkDone();
                 logger.info("Work done from start: " + serverTotalWorkDone);
-                String percentage = "100";
-                if (remotingMonitor.getTotalWork() != 0){
-                    percentage = new DecimalFormat("#.##").format(remotingMonitor.getPercentage());
-                }
-
-
-                // set dialog text
-                monitor.setTaskName(remotingMonitor.getTaskName());
-                monitor.subTask(" " + percentage + "% done ");
 
-                int worked = 0;
                 if (serverTotalWorkDone > editorTotalWorkDone){
-                    worked = serverTotalWorkDone - editorTotalWorkDone;
-                }
-                if(worked > 0) {
-                    logger.info("Work done since last check: " + worked);
-                    monitor.worked(worked);
+                    int worked = serverTotalWorkDone - editorTotalWorkDone;
+                    if(worked > 0) {
+                        logger.info("Work done since last check: " + worked);
+                        monitor.worked(worked);
+                    }
                 }
 
+                // set dialog text
+                String subTaskName = remotingMonitor.getSubTask();
+                String percentage = "0";
+                if (remotingMonitor.getTotalWork() != 0){
+                    percentage = new DecimalFormat("#.##").format(remotingMonitor.getPercentage());
+                }
+                subTaskName = subTaskName + " (" + percentage +"% done)";
+                //Note: do not update taskname as it resets percentage in status line
+                monitor.subTask(subTaskName );
 
                 editorTotalWorkDone = serverTotalWorkDone;
             }
             if(remotingMonitor.getResult() instanceof Exception) {
                 UpdateResult result = new UpdateResult();
                 result.addException((Exception) remotingMonitor.getResult());
-
             }
             return remotingMonitor;
         } finally {
-            if(postOp != null && remotingMonitor != null &&  remotingMonitor.isDone()) {
+            if(postOp != null && remotingMonitor != null && remotingMonitor.isDone()) {
                 postOp.postOperation(remotingMonitor);
             }
         }
index 0dece2683d57df9219dad6d2df818055c44a81f9..63d855623f9ab61c2bf59021525d126744c84b6a 100644 (file)
@@ -9,12 +9,16 @@
 package eu.etaxonomy.taxeditor.util;
 
 import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
 
 import org.eclipse.jface.viewers.ITreeContentProvider;
 
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -30,7 +34,7 @@ public class TaxonTreeNodeContentProvider implements ITreeContentProvider {
     @Override
     public Object[] getElements(Object inputElement) {
         if(inputElement instanceof Collection){
-            return ((Collection) inputElement).toArray();
+            return ((Collection<?>) inputElement).toArray();
         }
         return this.getChildren(inputElement);
     }
@@ -53,13 +57,16 @@ public class TaxonTreeNodeContentProvider implements ITreeContentProvider {
 //            HHH_9751_Util.removeAllNull(childrenSet);
 //            children = childrenSet.toArray();
 //        }
+        List<TaxonNodeDto> childrenList = null;
 
         if(parentElement instanceof TaxonNode){
-            children = taxonNodeService.listChildNodesAsTaxonNodeDto((TaxonNode)parentElement).toArray();
+               childrenList = taxonNodeService.listChildNodesAsTaxonNodeDto((TaxonNode)parentElement);
         }else {
-            children = taxonNodeService.listChildNodesAsTaxonNodeDto((TaxonNodeDto)parentElement).toArray();
+               childrenList = taxonNodeService.listChildNodesAsTaxonNodeDto((TaxonNodeDto)parentElement);
         }
-
+        Comparator<TaxonNodeDto> comparator = PreferencesUtil.getNodeComparator();
+        Collections.sort(childrenList, comparator);
+        children = childrenList.toArray();
         return children != null ? children : NO_CHILDREN;
     }
 
@@ -70,9 +77,11 @@ public class TaxonTreeNodeContentProvider implements ITreeContentProvider {
         }
         if(element instanceof TaxonNodeDto){
             if (((TaxonNodeDto) element).getParentUUID() != null){
-                TaxonNode parent = taxonNodeService.load(((TaxonNodeDto) element).getParentUUID());
-                if (parent != null){
-                    return new TaxonNodeDto(parent);
+                TaxonNodeDto parentDto = taxonNodeService.dto(((TaxonNodeDto) element).getParentUUID());
+//                TaxonNode parent = taxonNodeService.load(((TaxonNodeDto) element).getParentUUID());
+                if (parentDto != null){
+//                    return new TaxonNodeDto(parent);
+                    return parentDto;
                 }
             }
         }
index f39bfddeb35ab71aac33daae63841fc55fa0bcac..630ef417a4034dc6af4747731d2974f0aaf4bfb0 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
  * Copyright (C) 2017 EDIT
  * European Distributed Institute of Taxonomy
@@ -18,7 +17,6 @@ import org.hibernate.LazyInitializationException;
 
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
@@ -32,22 +30,19 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
 /**
  * @author pplitzner
  * @date 05.09.2017
- *
  */
-public class TaxonTreeNodeLabelProvider extends ColumnLabelProvider
-implements IStyledLabelProvider {
+public class TaxonTreeNodeLabelProvider
+        extends ColumnLabelProvider
+        implements IStyledLabelProvider {
 
     protected Styler notGrantedStyler = null;
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public String getText(Object element) {
         //classification
         if(element instanceof Classification){
             String text = ((Classification) element).getName().getText();
-            return text != null ? text : "Unnamed Taxonomic Tree";
+            return text != null ? text : "Unnamed Classification";
         }
         //taxon node
         else if (element instanceof TaxonNode){
@@ -63,10 +58,13 @@ implements IStyledLabelProvider {
                 }else{
                     try{
                         String text = "";
-                            if (taxonNode.getStatus() != null){
-                                text += taxonNode.getStatus().getSymbol() + " ";
-                            }
-                        text += taxon.getName() != null ? ((IIdentifiableEntity) HibernateProxyHelper.deproxy(taxon.getName())).getTitleCache() : new String();
+                        if (taxonNode.getStatus() != null){
+                            text = taxonNode.getStatus().getSymbol() + " ";
+                        }
+                        if (taxonNode.getTaxon() != null && !taxonNode.getTaxon().isPublish()) {
+                            text = text + "\\u20ac";
+                        }
+                        text += taxon.getName() != null ? taxon.getName().getTitleCache() : "";
                         return text;
                     }catch(Exception e){
                         MessagingUtils.error(getClass(), e);
@@ -79,24 +77,22 @@ implements IStyledLabelProvider {
         else if (element instanceof TaxonNodeDto){
             TaxonNodeDto taxonNode = (TaxonNodeDto) element;
             String text= "";
-            if (taxonNode.isUnplaced()){
-                text += Character.toString((char)63) + Character.toString((char)63) + " ";
-            }
-            if (taxonNode.isExcluded()) {
-                text +=Character.toString((char)248) + " ";
+            if (!taxonNode.isPublish() ) {
+                text = text + "\u26D4 ";
             }
-            if (taxonNode.isDoubtful()) {
-                text +=Character.toString((char)63) + " ";
+            if (taxonNode.getStatus() != null){
+                text = taxonNode.getStatus().getSymbol() + " ";
             }
+
+            //TODO if symbols contain non-ASCII this may create problems
+            //     if so we may use ASCII like text +=Character.toString((char)248) + " ";
+
             text += taxonNode.getTitleCache();
             return text;
         }
         return new String();
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public StyledString getStyledText(Object element) {
         //classification
@@ -127,4 +123,5 @@ implements IStyledLabelProvider {
         }
         return notGrantedStyler;
     }
-}
+
+}
\ No newline at end of file
index e0031327fbe6eadc717671d4ac3a3c5877f2145b..f2a880937cd1727f1d79673518f0796518f1eefc 100644 (file)
@@ -69,7 +69,7 @@ public class CdmViewerChooser extends PopupDialog implements ISelectionChangedLi
     }
 
     /**
-     * Opens a popup dialog with all possible viewers for the given input.
+     * Opens a pop-up dialog with all possible viewers for the given input.
      * @param input the input for which the viewers are listed
      */
     public void chooseViewer(Object input){
@@ -112,7 +112,7 @@ public class CdmViewerChooser extends PopupDialog implements ISelectionChangedLi
                            //build the parameterized command
                            ParameterizedCommand pc = ParameterizedCommand.generateCommand(command, params);
 
-                IHandlerService handlerService = (IHandlerService)PlatformUI.getWorkbench().getService(IHandlerService.class);
+                IHandlerService handlerService = PlatformUI.getWorkbench().getService(IHandlerService.class);
                 try {
                     if(pc!=null){
                         handlerService.executeCommand(pc, null);
index a75881b17f795bac0508bcce609183738f2effb1..373a604841b7871408c1763abb3a1d77d1d811c9 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * 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.view;
 
 import java.util.List;
@@ -19,17 +27,13 @@ import org.eclipse.e4.ui.model.application.ui.menu.MMenu;
 import org.eclipse.e4.ui.model.application.ui.menu.MMenuElement;
 import org.eclipse.e4.ui.model.application.ui.menu.MMenuFactory;
 import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeNode;
 
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
 import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 
 /**
  * Generic context menu for opening elements in the taxeditor.
- *
  */
 public class CdmViewerContextMenuE4 {
 
@@ -42,78 +46,29 @@ public class CdmViewerContextMenuE4 {
     @AboutToShow
     public void aboutToShow(List<MMenuElement> items, @Named(IServiceConstants.ACTIVE_SELECTION) Object selectedObject) {
 
-        Object firstElement = null;
-        if(selectedObject instanceof IStructuredSelection){
-            firstElement = ((IStructuredSelection) selectedObject).getFirstElement();
-        }else{
-            firstElement = selectedObject;
+        if (selectedObject == null){
+            return;
         }
 
-        if (firstElement instanceof FeatureNodeContainer){
-            return ;
-        }
-        if(firstElement instanceof TreeNode){
-            firstElement = ((TreeNode) firstElement).getValue();
-        }
+        List<UuidAndTitleCache<? extends ICdmBase>> uuidTypes = CdmViewerUtil.transformSelectionToUuidAndTitleCacheList(selectedObject);
 
-        Map<Command, String> enabledCommands = CdmViewerUtilE4.getAvailableViewers(firstElement, commandService, handlerService);
-
-        //get UUID
-//        UUID uuid = null;
-//        List<UUID> uuids = null;
-//        //for generic UuidAndTitleCache objects try to load the object
-//        if (firstElement instanceof UuidAndTitleCache && selectedObject instanceof IStructuredSelection && ((IStructuredSelection)selectedObject).size() == 1){
-//            uuid = ((UuidAndTitleCache)firstElement).getUuid();
-//        }else if (firstElement instanceof UuidAndTitleCache && selectedObject instanceof IStructuredSelection){
-//            uuids = new ArrayList<>();
-//            Iterator<IStructuredSelection> iterator = ((IStructuredSelection)selectedObject).iterator();
-//            UuidAndTitleCache sel;
-//            UUID uuidForList;
-//            while(iterator.hasNext()){
-//                sel = (UuidAndTitleCache)iterator.next();
-//                uuidForList = sel.getUuid();
-//                uuids.add(uuidForList);
-//
-//            }
-//
-//        }
-
-        //TODO!!
-//        if(selectedObject instanceof ICdmBase){
-//            uuid = ((ICdmBase) selectedObject).getUuid();
-//        }
+        Map<Command, String> enabledCommands = CdmViewerUtil.getAvailableViewers(uuidTypes, commandService, handlerService);
 
         //check if only one or multiple viewers/commands are available
-        if(enabledCommands.size()==1){
-            Entry<Command, String> entry = enabledCommands.entrySet().iterator().next();
-            final Command command = entry.getKey();
-            String viewerName = entry.getValue();
+        if (!enabledCommands.isEmpty()){
             MMenu menu = MMenuFactory.INSTANCE.createMenu();
             menu.setLabel(Messages.CdmViewerContextMenu_OPEN_IN);
             items.add(menu);
-           // items.add(addCommand(uuid, command, String.format(Messages.CdmViewerContextMenu_OPEN, viewerName)));
-            menu.getChildren().add(addCommand(selectedObject, command, viewerName));
-        }
-        else if(enabledCommands.size()>1){
-            MMenu menu = MMenuFactory.INSTANCE.createMenu();
-            menu.setLabel(Messages.CdmViewerContextMenu_OPEN_IN);
-            items.add(menu);
-            for(Entry<Command, String> entry:enabledCommands.entrySet()){
+            for(Entry<Command, String> entry: enabledCommands.entrySet()){
                 String viewerName = entry.getValue();
                 Command command = entry.getKey();
-                if (selectedObject instanceof IStructuredSelection){
-                    menu.getChildren().add(addCommand(selectedObject, command, viewerName));
-                }else if(selectedObject instanceof ICdmBase){
-//                    UUID uuid = ((ICdmBase) selectedObject).getUuid();
-                    menu.getChildren().add(addCommand(selectedObject, command, viewerName));
-                }else if (selectedObject instanceof UuidAndTitleCache){
-                   menu.getChildren().add(addCommand(selectedObject, command, viewerName));
-                }
+                menu.getChildren().add(addCommand(uuidTypes, command, viewerName));
             }
         }
     }
 
-    public MHandledMenuItem addCommand(Object selection, Command command, String commandLabel) {
+
+    public MHandledMenuItem addCommand(List<UuidAndTitleCache<? extends ICdmBase>> selectedUuids, Command command, String commandLabel) {
         MHandledMenuItem menuItem = MMenuFactory.INSTANCE.createHandledMenuItem();
         menuItem.setLabel(commandLabel);
         MCommand mCommand = MCommandsFactory.INSTANCE.createCommand();
@@ -126,16 +81,14 @@ public class CdmViewerContextMenuE4 {
         }
         //set params
 
-          menuItem.getTransientData().put(command.getId()+".uuid", selection);
+          menuItem.getTransientData().put(command.getId()+".uuid", selectedUuids);
 
 //        MParameter parameter = MCommandsFactory.INSTANCE.createParameter();
 //        parameter.setElementId(command.getId()+".uuid");
 //        parameter.setValue(uuid.toString());
 //        menuItem.getParameters().add(parameter);
 
-
         menuItem.setCommand(mCommand);
         return menuItem;
     }
-
-}
+}
\ No newline at end of file
index 77bb64f336b86c635152ec7ad365a95586739693..a3ee36133f2fcc45b01d6faf4ecbf23e05cc0800 100644 (file)
@@ -8,29 +8,95 @@
 */
 package eu.etaxonomy.taxeditor.view;
 
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.eclipse.core.commands.Command;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtensionRegistry;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.e4.core.commands.ECommandService;
+import org.eclipse.e4.core.commands.EHandlerService;
+import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.TreeNode;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.commands.ICommandService;
 
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.ICdmBase;
+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.DescriptionBaseDto;
+import eu.etaxonomy.cdm.persistence.dto.ReferencingObjectDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * Scans eu.etaxonomy.taxeditor.store.cdmViewer extension point.
+ *
  * @author pplitzner
  * @date Jul 7, 2015
- *
  */
 public class CdmViewerUtil {
 
+    /**
+     * Returns a map of available commands to open the given input. Keys are the
+     * command IDs and values are their string representations.
+     *
+     * @param input
+     *            the object which should be handled by the available commands
+     * @return a key-value map of available commands and their string
+     *         representation
+     */
+    public static Map<Command, String> getAvailableViewers(List<UuidAndTitleCache<? extends ICdmBase>> input, ECommandService commandService,
+            EHandlerService handlerService){
+
+        Map<Command, String> commandViewerNameMap = new HashMap<>();
+
+        Set<Class<?>> inputClasses = new HashSet<>();
+        if(input!=null){
+            input.stream()
+                .filter(uuid->uuid.getType()!= null)
+                .forEach(uuid->inputClasses.add(uuid.getType()));
+
+            inputClasses.forEach(ic->{
+                IExtensionRegistry reg = Platform.getExtensionRegistry();
+                IConfigurationElement[] extensions = reg
+                        .getConfigurationElementsFor("eu.etaxonomy.taxeditor.store.cdmViewer"); //$NON-NLS-1$
+                for (IConfigurationElement configElement : extensions) {
+                    try {
+                        if(configElement.getName().equals("viewCommandMapping")){ //$NON-NLS-1$
+                            String commandId = configElement.getAttribute("commandId"); //$NON-NLS-1$
+                            String viewerName = configElement.getAttribute("viewerName"); //$NON-NLS-1$
+                            Class<?> selectionClass = Class.forName(configElement.getAttribute("selection")); //$NON-NLS-1$
+                            if(selectionClass!=null
+                                    && commandId!=null
+                                    && viewerName!=null
+                                    && selectionClass.isAssignableFrom(ic)){
+                                Command command = commandService.getCommand(commandId);
+                                commandViewerNameMap.put(command, viewerName);
+                            }
+                        }
+                    } catch (ClassNotFoundException e) {
+                        MessagingUtils.error(CdmViewerChooser.class, "Could not initalize selection class element of cdmViewer extension", e); //$NON-NLS-1$
+                    }
+                }
+            });
+        }
+
+        return commandViewerNameMap;
+    }
+
     /**
      * Returns a map of available commands to open the given input.
      * Keys are the command IDs and values are their string representations.
@@ -41,12 +107,12 @@ public class CdmViewerUtil {
      *         representation
      */
     public static  Map<Command, String> getAvailableViewers(Object input){
-        Map<Command, String> commandViewerNameMap = new HashMap<Command, String>();
+                Map<Command, String> commandViewerNameMap = new HashMap<>();
 
         if(input!=null){
             //for generic UuidAndTitleCache objects try to load the object
             if (input instanceof UuidAndTitleCache){
-                UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache)input;
+                UuidAndTitleCache<? extends CdmBase> uuidAndTitleCache = (UuidAndTitleCache<? extends CdmBase>)input;
                 input = CdmStore.getCommonService().find(uuidAndTitleCache.getType(), uuidAndTitleCache.getUuid());
             }
             //for tree nodes get the value resp. the object of the node
@@ -57,6 +123,10 @@ public class CdmViewerUtil {
             if(input==null){
                 return commandViewerNameMap;
             }
+            if (input instanceof NomenclaturalSource){
+                input = ((NomenclaturalSource)input).getSourcedName();
+            }
+
             IExtensionRegistry reg = Platform.getExtensionRegistry();
             IConfigurationElement[] extensions = reg
                     .getConfigurationElementsFor("eu.etaxonomy.taxeditor.store.cdmViewer"); //$NON-NLS-1$
@@ -82,4 +152,69 @@ public class CdmViewerUtil {
         return commandViewerNameMap;
     }
 
-}
+
+    /**
+     * Trys to create a List of {@link UuidAndTitleCache} from the selection.<BR>
+     * Selections which are not recognized are not included in the list.<BR>
+     * As a minimum each returned element contains the type and the uuid.
+     * If available also the label and the CdmBase entity is added (later by using the subclass {@link DtoWithEntity}.
+     * Label creation is not forced (TODO maybe in future we should have a parameter forceLabelCreation)
+     * @param
+     * @return list of {@link UuidAndTitleCache}
+     */
+    public static List<UuidAndTitleCache<? extends ICdmBase>> transformSelectionToUuidAndTitleCacheList(Object selection) {
+
+        //make it all a list
+        List<Object> multipleSelection = new ArrayList<>();
+        if(selection instanceof IStructuredSelection){
+            IStructuredSelection structuredSelection = ((IStructuredSelection) selection);
+            ((List<?>)structuredSelection.toList()).forEach(o->multipleSelection.add(o));
+        }else if(selection.getClass().isArray()){
+            for (Object o : ((Object[])selection)){
+                multipleSelection.add(o);
+            }
+        }else if(selection instanceof List){
+            multipleSelection.addAll((List<?>)selection);
+        }else{
+            multipleSelection.add(selection);
+        }
+
+        //filter all as uuidIdAndTitleCache
+        List<UuidAndTitleCache<? extends ICdmBase>> uuidTypes = new ArrayList<>();
+
+        for (Object o : multipleSelection){
+            if (o instanceof FeatureNodeContainer){
+                continue ;
+            }
+            if(o instanceof TreeNode){
+                o = ((TreeNode)o).getValue();
+            }
+            o = CdmBase.deproxy(o);
+
+            UuidAndTitleCache<? extends ICdmBase> uuidAndTitleCache;
+            if (o instanceof CdmBase){
+                CdmBase cdmBase = (CdmBase)o;
+                uuidAndTitleCache = new DtoWithEntity<>(cdmBase);
+            }else if (o instanceof ReferencingObjectDto){
+                ReferencingObjectDto dto = (ReferencingObjectDto)o;
+                uuidAndTitleCache = dto.getOpenInTarget() != null ? dto.getOpenInTarget() : dto;
+            }else if (o instanceof UuidAndTitleCache){
+                uuidAndTitleCache = (UuidAndTitleCache<?>)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;
+            }
+            uuidTypes.add(uuidAndTitleCache);
+        }
+        return uuidTypes;
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerUtilE4.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerUtilE4.java
deleted file mode 100644 (file)
index 4c4f86b..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/**
-* 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.view;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.e4.core.commands.ECommandService;
-import org.eclipse.e4.core.commands.EHandlerService;
-import org.eclipse.jface.viewers.TreeNode;
-
-import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * Scans eu.etaxonomy.taxeditor.store.cdmViewer extension point.
- * @author pplitzner
- * @date Jul 7, 2015
- *
- */
-public class CdmViewerUtilE4 {
-
-    /**
-     * Returns a map of available commands to open the given input. Keys are the
-     * command IDs and values are their string representations.
-     *
-     * @param input
-     *            the object which should be handled by the available commands
-     * @return a key-value map of available commands and their string
-     *         representation
-     */
-    public static Map<Command, String> getAvailableViewers(Object input, ECommandService commandService,
-            EHandlerService handlerService){
-        Map<Command, String> commandViewerNameMap = new HashMap<>();
-
-        if(input!=null){
-            //for generic UuidAndTitleCache objects try to load the object
-            if (input instanceof UuidAndTitleCache){
-                UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache)input;
-                input = CdmStore.getCommonService().find(uuidAndTitleCache.getType(), uuidAndTitleCache.getUuid());
-            }
-            //for tree nodes get the value resp. the object of the node
-            else if (input instanceof TreeNode){
-                TreeNode treeNode = (TreeNode)input;
-                input = treeNode.getValue();
-            }
-        }
-
-        if(input!=null){
-            IExtensionRegistry reg = Platform.getExtensionRegistry();
-            IConfigurationElement[] extensions = reg
-                    .getConfigurationElementsFor("eu.etaxonomy.taxeditor.store.cdmViewer"); //$NON-NLS-1$
-            for (IConfigurationElement configElement : extensions) {
-                try {
-                    if(configElement.getName().equals("viewCommandMapping")){ //$NON-NLS-1$
-                        String commandId = configElement.getAttribute("commandId"); //$NON-NLS-1$
-                        String viewerName = configElement.getAttribute("viewerName"); //$NON-NLS-1$
-                        Class<?> selectionClass = Class.forName(configElement.getAttribute("selection")); //$NON-NLS-1$
-                        if(selectionClass!=null
-                                && commandId!=null
-                                && viewerName!=null
-                                && selectionClass.isAssignableFrom(input.getClass())){
-                            Command command = commandService.getCommand(commandId);
-                            commandViewerNameMap.put(command, viewerName);
-                        }
-                    }
-                } catch (ClassNotFoundException e) {
-                    MessagingUtils.error(CdmViewerChooser.class, "Could not initalize selection class element of cdmViewer extension", e); //$NON-NLS-1$
-                }
-            }
-        }
-        return commandViewerNameMap;
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/DtoWithEntity.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/DtoWithEntity.java
new file mode 100644 (file)
index 0000000..1c8ae26
--- /dev/null
@@ -0,0 +1,35 @@
+/**
+ * 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.view;
+
+import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+
+/**
+ * @author a.mueller
+ * @date 01.04.2021
+ */
+public class DtoWithEntity<S extends ICdmBase> extends UuidAndTitleCache<S> {
+
+    private static final long serialVersionUID = -7400373251065982668L;
+
+    private S entity;
+
+    public DtoWithEntity(S entity) {
+        super((Class<? extends S>)entity.getClass(), entity.getUuid(), entity.getId(), null);
+        this.setEntity(entity);
+    }
+
+    public S getEntity() {
+        return entity;
+    }
+    public void setEntity(S entity) {
+        this.entity = entity;
+    }
+}
index 7fc842dfbc7268db923de25cea4f2cad28a7c243..f5b3c89f32afac5c408d1f9ca6d21880c38f3036 100644 (file)
@@ -10,13 +10,13 @@ package eu.etaxonomy.taxeditor.view.dataimport;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
 
 import org.apache.http.client.ClientProtocolException;
 import org.eclipse.swt.widgets.Display;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
 import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper;
 import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
@@ -27,7 +27,6 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author pplitzner
  * @date 25.02.2014
- *
  */
 public class BioCaseEditorInput extends DataImportEditorInput<SpecimenOrObservationBase<?>> {
 
@@ -80,9 +79,6 @@ public class BioCaseEditorInput extends DataImportEditorInput<SpecimenOrObservat
         });
     }
 
-    /* (non-Javadoc)
-     * @see java.lang.Object#hashCode()
-     */
     @Override
     public int hashCode() {
         final int prime = 31;
@@ -91,9 +87,6 @@ public class BioCaseEditorInput extends DataImportEditorInput<SpecimenOrObservat
         return result;
     }
 
-    /* (non-Javadoc)
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
     @Override
     public boolean equals(Object obj) {
         if (this == obj) {
@@ -115,4 +108,4 @@ public class BioCaseEditorInput extends DataImportEditorInput<SpecimenOrObservat
         }
         return true;
     }
-}
+}
\ No newline at end of file
index bd45ac44f1623641bd43ee035a557cb34dbd50a9..17a764ef08f2dc836e2fb6845c697432c9f22fd8 100644 (file)
@@ -10,11 +10,10 @@ package eu.etaxonomy.taxeditor.view.dataimport;
 
 import java.util.Collection;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * Input for {@link DataImportEditor}. This class queries a data source for
@@ -22,22 +21,16 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  *
  * @author pplitzner
  * @date 25.02.2014
- *
  */
 public abstract class DataImportEditorInput<T> {
 
-    protected static Logger logger = Logger.getLogger(DataImportEditorInput.class);
+    protected static Logger logger = LogManager.getLogger();
 
     private Collection<T> results;
 
-    private final ConversationHolder conversationHolder;
 
     protected OccurenceQuery query;
 
-    public DataImportEditorInput() {
-        this.conversationHolder = CdmStore.createConversation();
-    }
-
     public Collection<T> getResults() {
         return results;
     }
@@ -46,10 +39,6 @@ public abstract class DataImportEditorInput<T> {
         this.results = results;
     }
 
-    public ConversationHolder getConversationHolder() {
-        return conversationHolder;
-    }
-
     @Override
     public abstract int hashCode();
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/SpecimenProviderSelectionWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/SpecimenProviderSelectionWizardPage.java
deleted file mode 100644 (file)
index cdb720b..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/**
-* Copyright (C) 2013 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.view.dataimport;
-
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.widgets.Composite;
-
-import eu.etaxonomy.cdm.ext.common.ServiceWrapperBase;
-import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper;
-import eu.etaxonomy.taxeditor.view.search.specimen.SpecimenProviderSelectionController;
-
-
-/**
- * Wizard page for selecting the specimen provider
- * @author pplitzner
- * @date 12.09.2013
- *
- */
-public class SpecimenProviderSelectionWizardPage extends WizardPage{
-
-    private SpecimenProviderSelectionController specimenProviderSelectionController;
-    private URI endPoint;
-    private ServiceWrapperBase serviceWrapper;
-
-    public SpecimenProviderSelectionWizardPage(String pageName) {
-        super(pageName);
-        setTitle("Select Specimen Provider");
-        setDescription("Select the provider to query for specimens.\nTo query a BioCASE " +
-                       "provider the access point URL must be entered.");
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-     */
-    @Override
-    public void createControl(Composite parent) {
-        specimenProviderSelectionController = SpecimenProviderSelectionController.getInstance(parent, getWizard());
-        setControl(specimenProviderSelectionController.getComposite());
-        //serviceWrapper = new BioCaseQueryServiceWrapper();
-
-    }
-
-    public QueryType getQueryType(){
-        if(specimenProviderSelectionController.getComposite().getBtnBioCaseProvider().getSelection()){
-            return QueryType.BIOCASE;
-        }
-        else {// if(specimenProviderSelectionController.getComposite().getBtnGbif().getSelection()){
-            return QueryType.GBIF;
-        }
-    }
-
-    /**
-     * @return
-     * @throws URISyntaxException
-     */
-    public URI getEndPoint() {
-        return endPoint;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.wizard.WizardPage#isPageComplete()
-     */
-    @Override
-    public boolean isPageComplete() {
-        if(specimenProviderSelectionController.getComposite().getBtnBioCaseProvider().getSelection()){
-            endPoint = null;
-            try {
-                endPoint = new URL(specimenProviderSelectionController.getComposite().getTxtAccessPoint().getText()).toURI();
-                serviceWrapper = new BioCaseQueryServiceWrapper();
-                serviceWrapper.setBaseUrl(specimenProviderSelectionController.getComposite().getTxtAccessPoint().getText());
-                this.setErrorMessage(null);
-                return true;
-            } catch (MalformedURLException e) {
-                setErrorMessage("A valid URL has to be entered.");
-                return false;
-            } catch (URISyntaxException e) {
-                setErrorMessage("A valid URL has to be entered.");
-                return false;
-            }
-        }
-        else if(specimenProviderSelectionController.getComposite().getBtnGbif().getSelection()){
-            this.setErrorMessage(null);
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * @return the bioCaseQueryServiceWrapper
-     */
-    public ServiceWrapperBase getQueryServiceWrapper() {
-        return serviceWrapper;
-    }
-
-    /**
-     * @param bioCaseQueryServiceWrapper the bioCaseQueryServiceWrapper to set
-     */
-    public void setQueryServiceWrapper(ServiceWrapperBase queryServiceWrapper) {
-        this.serviceWrapper = queryServiceWrapper;
-    }
-
-    /**
-     * @return
-     */
-    public SpecimenProviderSelectionController getController() {
-        return specimenProviderSelectionController;
-    }
-
-
-
-
-}
similarity index 61%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/DataImportViewE4.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/DataImportView.java
index 263be806e5d995d59b48913ebf644495c34f5aa8..a50bdd12d094a8a9c76781f5b1d6d7d210993b23 100644 (file)
@@ -8,15 +8,14 @@
 */
 package eu.etaxonomy.taxeditor.view.dataimport.e4;
 
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Collection;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.e4.ui.di.Focus;
 import org.eclipse.jface.viewers.CheckboxTableViewer;
@@ -38,35 +37,27 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.IMemento;
 import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.wb.swt.ResourceManager;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
-import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
-import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.databaseAdmin.wizard.ImportPreferencesWizard;
 import eu.etaxonomy.taxeditor.model.IContextListener;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
 import eu.etaxonomy.taxeditor.workbench.part.IEditorAreaPart;
 
 /**
  * View which shows a list of "data" that can be imported into the CDM
+ *
  * @author pplitzner
  * @date 22.08.2017
  *
  * @param <T> the CDM type that will be handled by this view
  */
-public abstract class DataImportViewE4<T> implements IPartContentHasFactualData,
-IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, IContextListener, Listener, IEditorAreaPart{
+public abstract class DataImportView<T> implements IPartContentHasFactualData, IPartContentHasDetails, IPartContentHasSupplementalData, IContextListener, Listener, IEditorAreaPart{
 
-    protected final Logger logger = Logger.getLogger(DataImportViewE4.class);
+    protected final Logger logger = LogManager.getLogger();
 
     protected Collection<T> results = new ArrayList<>();
 
@@ -74,39 +65,16 @@ IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, I
 
     protected OccurenceQuery query;
 
-    private static ConversationHolder conversationHolder;
-
-    private SaveImportedSpecimenActionE4 saveImportedSpecimenAction;
-
-    private Text textClassification;
-
-    private Classification classification;
+    private SaveImportedSpecimenAction saveImportedSpecimenAction;
 
     protected Text textReferenceString;
 
     private Button selectAllButton;
-    //private Button selectNoneButton;
 
     private Button importButton;
 
     private boolean state;
 
-    private Button openConfigurator;
-
-    private Abcd206ImportConfigurator config;
-
-    public Classification getClassification() {
-               return classification;
-       }
-
-       public void setClassification(Classification classification) {
-               this.classification = classification;
-       }
-
-       private Button btnBrowseClassification;
-
-       private Button btnClear;
-
     private final FormToolkit toolkit = new FormToolkit(Display.getCurrent());
 
     private Table table;
@@ -115,7 +83,7 @@ IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, I
     /**
      * Constructs a new DataImportEditor and registers it to listen to context changes
      */
-    public DataImportViewE4() {
+    public DataImportView() {
         CdmStore.getContextManager().addContextListener(this);
     }
 
@@ -125,12 +93,7 @@ IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, I
      */
     @PostConstruct
     public void createPartControl(Composite parent) {
-        if(CdmStore.isActive()){
-            initConversation();
-        }
-        else{
-            return;
-        }
+
         parent.setLayout(new GridLayout(1, false));
         Composite composite = new Composite(parent, SWT.NONE);
         composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
@@ -142,53 +105,53 @@ IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, I
         composite_1.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1));
         composite_1.setLayout(new GridLayout(3, false));
 
-        Label label = new Label(composite_1, SWT.TOP);
-        label.setText("Classification");
-        label.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1));
-        textClassification = new Text(composite_1, SWT.BORDER);
-        textClassification.setEnabled(false);
-        GridData gd_textClassification = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
-//        gd_textClassification.widthHint = 118;
-        textClassification.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, true));
-        btnBrowseClassification = new Button(composite_1, SWT.NONE);
-        btnBrowseClassification.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/open.gif"));
-        btnBrowseClassification.addListener(SWT.Selection, this);
-        btnClear = new Button(composite_1, SWT.NONE);
-        btnClear.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/trash.gif"));
-        btnClear.addListener(SWT.Selection, this);
+//        Label label = new Label(composite_1, SWT.TOP);
+//        label.setText("Classification");
+//        label.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1));
+//        textClassification = new Text(composite_1, SWT.BORDER);
+//        textClassification.setEnabled(false);
+//        GridData gd_textClassification = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+////        gd_textClassification.widthHint = 118;
+//        textClassification.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, true));
+//        btnBrowseClassification = new Button(composite_1, SWT.NONE);
+//        btnBrowseClassification.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/open.gif"));
+//        btnBrowseClassification.addListener(SWT.Selection, this);
+//        btnClear = new Button(composite_1, SWT.NONE);
+//        btnClear.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/trash.gif"));
+//        btnClear.addListener(SWT.Selection, this);
         //source reference
 
-        Label labelRef = new Label(composite_1, SWT.NONE);
-        labelRef.setText("Import souce reference");
-        labelRef.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1));
-        textReferenceString = new Text(composite_1, SWT.NONE);
-        textReferenceString.setEnabled(true);
-        GridData gd_textReferenceString = new GridData(SWT.LEFT, SWT.CENTER, true, true, 3, 1);
-        gd_textReferenceString.widthHint = 229;
-        textReferenceString.setLayoutData(gd_textReferenceString);
-        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
-        LocalDate localDate = LocalDate.now();
-
-        textReferenceString.setText("Specimen Import " + localDate.toString());
+//        Label labelRef = new Label(composite_1, SWT.NONE);
+//        labelRef.setText("Import souce reference");
+//        labelRef.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1));
+//        textReferenceString = new Text(composite_1, SWT.NONE);
+//        textReferenceString.setEnabled(true);
+//        GridData gd_textReferenceString = new GridData(SWT.LEFT, SWT.CENTER, true, true, 3, 1);
+//        gd_textReferenceString.widthHint = 229;
+//        textReferenceString.setLayoutData(gd_textReferenceString);
+//        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
+//        LocalDate localDate = LocalDate.now();
+//
+//        textReferenceString.setText("Specimen Import " + localDate.toString());
         //open configuration
-
-        PreferencesUtil.getLocalAbcdImportConfigurator(false);
-
-        openConfigurator = new Button(composite_1, SWT.PUSH);
-        openConfigurator.setText("Configuration");
-        new Label(composite_1, SWT.NONE);
-        new Label(composite_1, SWT.NONE);
-
-        openConfigurator.addSelectionListener(new SelectionAdapter(){
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-
-                IWizard wizard = new ImportPreferencesWizard();
-                WizardDialog dialog = new WizardDialog(e.display.getActiveShell(), wizard);
-                dialog.open();
-
-            }
-        });
+//
+//        PreferencesUtil.getLocalAbcdImportConfigurator(false);
+//
+//        openConfigurator = new Button(composite_1, SWT.PUSH);
+//        openConfigurator.setText("Configuration");
+//        new Label(composite_1, SWT.NONE);
+//        new Label(composite_1, SWT.NONE);
+//
+//        openConfigurator.addSelectionListener(new SelectionAdapter(){
+//            @Override
+//            public void widgetSelected(SelectionEvent e) {
+//
+//                IWizard wizard = new ImportPreferencesWizard();
+//                WizardDialog dialog = new WizardDialog(e.display.getActiveShell(), wizard);
+//                dialog.open();
+//
+//            }
+//        });
 
         //checkbox table for result
         Composite composite_2 = new Composite(composite, SWT.NONE);
@@ -198,7 +161,6 @@ IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, I
 
         CheckboxTableViewer checkboxTableViewer = CheckboxTableViewer.newCheckList(composite_2, SWT.BORDER | SWT.FULL_SELECTION);
 
-
         table = checkboxTableViewer.getTable();
         table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
         table.addListener(SWT.Selection, this);
@@ -226,7 +188,12 @@ IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, I
         importButton.addSelectionListener(new SelectionAdapter(){
             @Override
             public void widgetSelected(SelectionEvent e) {
-                saveImportedSpecimenAction.run();
+                IWizard wizard = new ImportPreferencesWizard();
+                WizardDialog dialog = new WizardDialog(e.display.getActiveShell(), wizard);
+                int status = dialog.open();
+                if (status == 0){
+                    saveImportedSpecimenAction.run();
+                }
             }
         });
 //        new Label(composite_2, SWT.NONE);
@@ -247,7 +214,7 @@ IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, I
         });
         //import button
 
-        saveImportedSpecimenAction = new SaveImportedSpecimenActionE4(this);
+        saveImportedSpecimenAction = new SaveImportedSpecimenAction(this);
         initializeToolBar();
     }
 
@@ -302,11 +269,6 @@ IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, I
 
     public abstract void query();
 
-    @Override
-    public void update(CdmDataChangeMap changeEvents) {
-        //nothing
-    }
-
     /**
      * Returns the text label of the given item.
      * @param item the item for which the label should be returns
@@ -319,10 +281,6 @@ IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, I
         if(getTable()!=null){
             getTable().setFocus();
         }
-        //make sure to bind again if maybe in another view the conversation was unbound
-        if(getConversationHolder()!=null && !getConversationHolder().isBound()){
-            getConversationHolder().bind();
-        }
     }
 
     @Override
@@ -335,54 +293,34 @@ IConversationEnabled, IPartContentHasDetails, IPartContentHasSupplementalData, I
 
     @Override
     public void contextStart(IMemento memento, IProgressMonitor monitor) {
-        initConversation();
-    }
 
-    private void initConversation(){
-        if(conversationHolder==null){
-            conversationHolder = CdmStore.createConversation();
-        }
     }
 
     @Override
     public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
-        if(getConversationHolder()!=null && getConversationHolder().isBound() && !getConversationHolder().isClosed()) {
-            getConversationHolder().close();
-        }
-    }
-
-    /**
-     * @return the conversationHolder
-     */
-    @Override
-    public ConversationHolder getConversationHolder() {
-        if(CdmStore.isActive() && conversationHolder==null){
-            initConversation();
-        }
-        return conversationHolder;
     }
 
     @Override
        public void handleEvent(Event event) {
-           if(event.widget==btnBrowseClassification){
-               classification = SelectionDialogFactory.getSelectionFromDialog(Classification.class, event.widget.getDisplay().getActiveShell(), null, null);
-               if(classification!=null){
-                   textClassification.setText(classification.getTitleCache());
-               }
-           }
-           else if(event.widget==btnClear){
-               classification = null;
-               textClassification.setText("");
-           }
-
-           else {
+//         if(event.widget==btnBrowseClassification){
+//             classification = SelectionDialogFactory.getSelectionFromDialog(Classification.class, event.widget.getDisplay().getActiveShell(), null, null);
+//             if(classification!=null){
+//                 textClassification.setText(classification.getTitleCache());
+//             }
+//         }
+//         else if(event.widget==btnClear){
+//             classification = null;
+//             textClassification.setText("");
+//         }
+
+//         else {
                if(event.widget == table){
                    TableItem[] item = table.getSelection();
                    if (item.length == 1){
                        Object o = item[0].getData();
                    }
                }
-           }
+//         }
        }
 
     public String getReferenceString() {
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/GbifResponseImportView.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/GbifResponseImportView.java
new file mode 100644 (file)
index 0000000..8f94ed5
--- /dev/null
@@ -0,0 +1,82 @@
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.view.dataimport.e4;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.Collection;
+
+import org.apache.http.client.ClientProtocolException;
+
+import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifQueryServiceWrapper;
+import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
+
+/**
+ * @author pplitzner
+ * @date Sep 5, 2014
+ *
+ */
+public class GbifResponseImportView extends DataImportView<GbifResponse> {
+
+
+    public static final String ID = "eu.etaxonomy.taxeditor.view.dataimport.e4.GbifResponseImportView";
+
+    @Override
+    protected String getTextForTableItem(GbifResponse item) {
+
+       String text = "";
+       String unitId = "";
+       if(item.getDataSetProtocol()!=null){
+          text += "["+item.getDataSetProtocol()+"] ";
+       }
+       if (item.getDerivedUnitFacade().getAccessionNumber() != null) {
+               unitId = item.getDerivedUnitFacade().getAccessionNumber();
+       }else if (item.getDerivedUnitFacade().getBarcode() != null) {
+               unitId = item.getDerivedUnitFacade().getBarcode();
+       }else {
+               unitId = item.getDerivedUnitFacade().getCatalogNumber();
+       }
+        if(item.getScientificName() != null){
+
+           text = item.getScientificName().getTitleCache();
+        }
+        //if (text != null){
+               String collectionCode = item.getDerivedUnitFacade().getCollection() != null ? " - " + item.getDerivedUnitFacade().getCollection().getCode(): "";
+            String kindOfUnit = item.getDerivedUnitFacade().getDerivedUnitKindOfUnit() != null ? " - " + item.getDerivedUnitFacade().getDerivedUnitKindOfUnit().toString():"";
+
+               return text + collectionCode +  unitId + kindOfUnit;
+        //}
+
+//        String text = "";
+//        if(item.getDataSetProtocol()!=null){
+//            text += "["+item.getDataSetProtocol()+"] ";
+//        }
+//        text += item.getDerivedUnitFacade().innerDerivedUnit().generateTitle();
+//        return text;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.view.dataimport.DataImportView#query()
+     */
+    @Override
+    public void query() {
+        String errorMessage = "Could not execute query " + query;
+        try{
+            Collection<GbifResponse> results = new GbifQueryServiceWrapper().query(query);
+            setResults(results);
+        } catch (ClientProtocolException e) {
+               logger.error(errorMessage, e);
+        } catch (IOException e) {
+               logger.error(errorMessage, e);
+        } catch (URISyntaxException e) {
+               // TODO Auto-generated catch block
+                       e.printStackTrace();
+        }
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/GbifResponseImportViewE4.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/GbifResponseImportViewE4.java
deleted file mode 100644 (file)
index 3c59b50..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
-* Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.view.dataimport.e4;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.util.Collection;
-
-import org.apache.http.client.ClientProtocolException;
-
-import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifQueryServiceWrapper;
-import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
-
-/**
- * @author pplitzner
- * @date Sep 5, 2014
- *
- */
-public class GbifResponseImportViewE4 extends DataImportViewE4<GbifResponse> {
-
-
-    public static final String ID = "eu.etaxonomy.taxeditor.view.dataimport.GbifResponseImportView";
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.view.dataimport.DataImportView#getTextForTableItem(java.lang.Object)
-     */
-    @Override
-    protected String getTextForTableItem(GbifResponse item) {
-        String text = "";
-        if(item.getDataSetProtocol()!=null){
-            text += "["+item.getDataSetProtocol()+"] ";
-        }
-        text += item.getDerivedUnitFacade().innerDerivedUnit().generateTitle();
-        return text;
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.view.dataimport.DataImportView#query()
-     */
-    @Override
-    public void query() {
-        String errorMessage = "Could not execute query " + query;
-        try{
-            //Collection<GbifResponse> results = new GbifQueryServiceWrapper().query(query);
-            //setResults(results);
-
-           // String errorMessage = "Could not execute query " + query;
-
-       //     Collection<SpecimenOrObservationBase<?>> results = new ArrayList<SpecimenOrObservationBase<?>>();
-                Collection<GbifResponse> results = new GbifQueryServiceWrapper().query(query);
-
-                setResults(results);
-
-
-//
-               // results = repo.getUnits();
-
-            } catch (ClientProtocolException e) {
-                logger.error(errorMessage, e);
-            } catch (IOException e) {
-                logger.error(errorMessage, e);
-            } catch (URISyntaxException e) {
-                               // TODO Auto-generated catch block
-                               e.printStackTrace();
-                       }
-        }
-
-//            setResults(results);
-//
-//        }
-//        } catch (ClientProtocolException e) {
-//            logger.error(errorMessage, e);
-//        } catch (IOException e) {
-//            logger.error(errorMessage, e);
-//        } catch (URISyntaxException e) {
-//            logger.error(errorMessage, e);
-//        }
-
-  //  }
-
-
-
-
-
-
-}
@@ -1,6 +1,7 @@
 package eu.etaxonomy.taxeditor.view.dataimport.e4;
 
-import java.net.URI;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -14,33 +15,28 @@ import org.eclipse.jface.action.Action;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableItem;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
 import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseResponse;
-import eu.etaxonomy.cdm.ext.occurrence.gbif.DataSetResponse;
 import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifDataSetProtocol;
 import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
 import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
 import eu.etaxonomy.cdm.io.specimen.gbif.in.GbifImportConfigurator;
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.view.dataimport.GbifResponseComparator;
 
 /**
- *
  * @author pplitzner
  * @since Oct 4, 2017
- *
  */
-public class SaveImportedSpecimenActionE4 extends Action {
+public class SaveImportedSpecimenAction extends Action {
 
     private Comparator<GbifResponse> comparator;
 
-    private DataImportViewE4<?> dataImportView;
+    private DataImportView<?> dataImportView;
 
-    public SaveImportedSpecimenActionE4(DataImportViewE4<?> dataImportView) {
+    public SaveImportedSpecimenAction(DataImportView<?> dataImportView) {
         super();
         this.dataImportView = dataImportView;
     }
@@ -48,12 +44,12 @@ public class SaveImportedSpecimenActionE4 extends Action {
     @Override
     public void run() {
         Table table = dataImportView.getTable();
-        Collection<GbifResponse> checkedResults = new HashSet<GbifResponse>();
-        Collection<BioCaseResponse> checkedAbcdResults = new HashSet<BioCaseResponse>();
+        Collection<GbifResponse> checkedResults = new HashSet<>();
+        Collection<BioCaseResponse> checkedAbcdResults = new HashSet<>();
         Object data;
-        Set<String[]> unitIdsGbif = new HashSet<String[]>();
-        Set<String[]> unitIdsBioCase = new HashSet<String[]>();
-        List<GbifResponse> biocaseResponses = new ArrayList<GbifResponse>();
+        Set<String[]> unitIdsGbif = new HashSet<>();
+        Set<String[]> unitIdsBioCase = new HashSet<>();
+        List<GbifResponse> biocaseResponses = new ArrayList<>();
 
         for(TableItem item:table.getItems()){
             if(item.getChecked()){
@@ -78,15 +74,12 @@ public class SaveImportedSpecimenActionE4 extends Action {
                 }else{
                     unitIdsGbif.add(tripleId);
                 }
-
-
             }
         }
         Collections.sort(biocaseResponses, getComparator());
 
         Abcd206ImportConfigurator configuratorAbcd;
-        List<Abcd206ImportConfigurator> abcdConfigurators = new ArrayList<Abcd206ImportConfigurator>();
-        DataSetResponse dataSetResponse;
+        List<Abcd206ImportConfigurator> abcdConfigurators = new ArrayList<>();
         OccurenceQuery bioCaseOccurrenceQuery = null;
         URI dataSetUri = null;
         for (BioCaseResponse response:checkedAbcdResults){
@@ -108,18 +101,24 @@ public class SaveImportedSpecimenActionE4 extends Action {
                     }
                 }
                 configuratorAbcd.setSourceUri(dataSetUri);
+                if (configuratorAbcd.getSourceReference() == null && configuratorAbcd.getSourceRefUuid() == null){
+                    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd");
+                    LocalDate localDate = LocalDate.now();
 
+                    String sourceRef ="Specimen Import " + localDate.toString();
+                    configuratorAbcd.setSourceReferenceTitle(sourceRef);
+                }
 
-                unitIdsBioCase = new HashSet<String[]>();
+                unitIdsBioCase = new HashSet<>();
                 bioCaseOccurrenceQuery = new OccurenceQuery(unitIdsBioCase);
                 configuratorAbcd.setOccurenceQuery(bioCaseOccurrenceQuery);
 
-                if (dataImportView.getClassification() != null){
-                    configuratorAbcd.setClassificationUuid(dataImportView.getClassification().getUuid());
-                }
-                if (dataImportView.getReferenceString() != null){
-                    configuratorAbcd.setSourceReferenceTitle(dataImportView.getReferenceString());
-                }
+//                if (dataImportView.getClassification() != null){
+//                    configuratorAbcd.setClassificationUuid(dataImportView.getClassification().getUuid());
+//                }
+//                if (dataImportView.getReferenceString() != null){
+//                    configuratorAbcd.setSourceReferenceTitle(dataImportView.getReferenceString());
+//                }
                 abcdConfigurators.add(configuratorAbcd);
 
 
@@ -194,16 +193,6 @@ public class SaveImportedSpecimenActionE4 extends Action {
             Job gbifJob = CdmStore.getImportManager().createIOServiceJob(configurator);
             CdmStore.getImportManager().run(gbifJob);
         }
-
-    }
-
-    private void persistTerm(DefinedTermBase<?> term, ITermService termService, ConversationHolder conversation){
-        if(term!=null){
-            //if the term does not exist in the DB save it
-            if(termService.find(term.getUuid())==null){
-                termService.saveOrUpdate(term);
-            }
-        }
     }
 
     @Override
@@ -217,5 +206,4 @@ public class SaveImportedSpecimenActionE4 extends Action {
         }
         return comparator;
     }
-
-}
+}
\ No newline at end of file
similarity index 92%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/SpecimenImportViewE4.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/SpecimenImportView.java
index 769e3f52c22ebcf0853b8d5ed769a315e259b287..5962c8da26efdd529dad7331c7f7f842a762ef4a 100644 (file)
@@ -10,7 +10,6 @@ package eu.etaxonomy.taxeditor.view.dataimport.e4;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
 
@@ -18,6 +17,7 @@ import org.apache.http.client.ClientProtocolException;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper;
 import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseResponse;
 import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206DataHolder;
@@ -33,28 +33,21 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
 /**
  * @author pplitzner
  * @date Sep 3, 2014
- *
  */
-public class SpecimenImportViewE4 extends DataImportViewE4<BioCaseResponse> {
+public class SpecimenImportView extends DataImportView<BioCaseResponse> {
 
-    public static final String ID = "eu.etaxonomy.taxeditor.view.dataimport.SpecimenImportView"; //$NON-NLS-1$
+    public static final String ID = "eu.etaxonomy.taxeditor.view.dataimport.e4.SpecimenImportView"; //$NON-NLS-1$
 
     private URI endPoint;
 
-    public SpecimenImportViewE4() {
+    public SpecimenImportView() {
 
     }
 
-    /**
-     * @param endPoint
-     */
     public void setEndpoint(URI endPoint) {
         this.endPoint = endPoint;
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.view.dataimport.DataImportView#getTextForTableItem(java.lang.Object)
-     */
     @Override
     protected String getTextForTableItem(BioCaseResponse item) {
         //TODO: could be defined in user preferences...
@@ -70,9 +63,6 @@ public class SpecimenImportViewE4 extends DataImportViewE4<BioCaseResponse> {
         }
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.view.dataimport.DataImportView#query()
-     */
     @Override
     public void query() {
         String errorMessage = "Could not execute query " + query;
@@ -133,7 +123,4 @@ public class SpecimenImportViewE4 extends DataImportViewE4<BioCaseResponse> {
        // setResults(results);
 
     }
-
-
-
-}
+}
\ No newline at end of file
@@ -9,29 +9,27 @@
 package eu.etaxonomy.taxeditor.view.dataimport.e4;
 
 import java.net.MalformedURLException;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
 
 import javax.inject.Inject;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.widgets.Composite;
 
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.ext.common.ServiceWrapperBase;
 import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper;
 import eu.etaxonomy.taxeditor.view.dataimport.QueryType;
 import eu.etaxonomy.taxeditor.view.search.specimen.SpecimenProviderSelectionController;
 
-
 /**
  * Wizard page for selecting the specimen provider
  * @author pplitzner
  * @date 12.09.2013
- *
  */
-public class SpecimenProviderSelectionWizardPageE4 extends WizardPage{
+public class SpecimenProviderSelectionWizardPage extends WizardPage{
 
     private SpecimenProviderSelectionController specimenProviderSelectionController;
     private URI endPoint;
@@ -39,16 +37,13 @@ public class SpecimenProviderSelectionWizardPageE4 extends WizardPage{
     private ServiceWrapperBase serviceWrapper;
 
     @Inject
-    public SpecimenProviderSelectionWizardPageE4() {
+    public SpecimenProviderSelectionWizardPage() {
         super("Select specimen provider");
         setTitle("Select Specimen Provider");
         setDescription("Select the provider to query for specimens.\nTo query a BioCASE " +
                        "provider the access point URL must be entered.");
     }
 
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-     */
     @Override
     public void createControl(Composite parent) {
         specimenProviderSelectionController = SpecimenProviderSelectionController.getInstance(parent, getWizard());
@@ -66,17 +61,10 @@ public class SpecimenProviderSelectionWizardPageE4 extends WizardPage{
         }
     }
 
-    /**
-     * @return
-     * @throws URISyntaxException
-     */
     public URI getEndPoint() {
         return endPoint;
     }
 
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.wizard.WizardPage#isPageComplete()
-     */
     @Override
     public boolean isPageComplete() {
         if(specimenProviderSelectionController.getComposite().getBtnBioCaseProvider().getSelection()){
@@ -91,15 +79,12 @@ public class SpecimenProviderSelectionWizardPageE4 extends WizardPage{
 
                     }
 
-                    endPoint = new URL(accessPoint).toURI();
+                    endPoint = URI.fromUrl(new URL(accessPoint));
                     serviceWrapper = new BioCaseQueryServiceWrapper();
                     serviceWrapper.setBaseUrl(specimenProviderSelectionController.getComposite().getTxtAccessPoint().getText());
                     this.setErrorMessage(null);
                     return true;
                 }
-
-
-
             } catch (MalformedURLException e) {
                 setErrorMessage("A valid URL has to be entered.");
                 return false;
@@ -115,28 +100,15 @@ public class SpecimenProviderSelectionWizardPageE4 extends WizardPage{
         return false;
     }
 
-    /**
-     * @return the bioCaseQueryServiceWrapper
-     */
     public ServiceWrapperBase getQueryServiceWrapper() {
         return serviceWrapper;
     }
 
-    /**
-     * @param bioCaseQueryServiceWrapper the bioCaseQueryServiceWrapper to set
-     */
     public void setQueryServiceWrapper(ServiceWrapperBase queryServiceWrapper) {
         this.serviceWrapper = queryServiceWrapper;
     }
 
-    /**
-     * @return
-     */
     public SpecimenProviderSelectionController getController() {
         return specimenProviderSelectionController;
     }
-
-
-
-
-}
+}
\ No newline at end of file
similarity index 91%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/SpecimenSearchWizardE4.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/SpecimenSearchWizard.java
index 13c8ac391ad32daf656a1c3e28fff299425ed2a4..b2bba93c6893670bf23418b72940d486e336eb0c 100644 (file)
@@ -46,13 +46,12 @@ import eu.etaxonomy.taxeditor.workbench.part.IEditorAreaPart;
  * Wizard for querying specimen provider.
  * @author pplitzner
  * @date 11.09.2013
- *
  */
-public class SpecimenSearchWizardE4 extends Wizard {
+public class SpecimenSearchWizard extends Wizard {
 
     private OccurenceQuery query = null;
-    private SpecimenProviderSelectionWizardPageE4 providerSelectionPage;
-    private SpecimenSearchWizardPageE4 searchPage;
+    private SpecimenProviderSelectionWizardPage providerSelectionPage;
+    private SpecimenSearchWizardPage searchPage;
 
     @Inject
     private EPartService partService;
@@ -69,7 +68,7 @@ public class SpecimenSearchWizardE4 extends Wizard {
      * Creates a new SpecimenSearchWizard
      */
     @Inject
-    public SpecimenSearchWizardE4(IEclipseContext context) {
+    public SpecimenSearchWizard(IEclipseContext context) {
         this.context = context;
         //default constructor needed for RCP extension points
 
@@ -83,7 +82,7 @@ public class SpecimenSearchWizardE4 extends Wizard {
         searchPage.getController().saveLastSate();
         providerSelectionPage.getController().saveLastState();
         ServiceWrapperBase serviceWrapper;
-        DataImportViewE4<?> dataImportView = null;
+        DataImportView<?> dataImportView = null;
         boolean biocase = providerSelectionPage.getQueryType().equals(QueryType.BIOCASE);
         query = searchPage.getQuery(biocase);
 
@@ -107,7 +106,7 @@ public class SpecimenSearchWizardE4 extends Wizard {
 
                 part = partService.createPart(AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_VIEW_DATAIMPORT_E4_SPECIMENIMPORTVIEWE4);
                 part = partService.showPart(part, PartState.ACTIVATE);
-                SpecimenImportViewE4 specimenImportView = (SpecimenImportViewE4) part.getObject();
+                SpecimenImportView specimenImportView = (SpecimenImportView) part.getObject();
                 specimenImportView.setEndpoint(providerSelectionPage.getEndPoint());
                 specimenImportView.setQuery(query);
 
@@ -116,7 +115,7 @@ public class SpecimenSearchWizardE4 extends Wizard {
             } else{
                 part = partService.createPart(AppModelId.PARTDESCRIPTOR_EU_ETAXONOMY_TAXEDITOR_VIEW_DATAIMPORT_E4_GBIFRESPONSEIMPORTVIEWE4);
                 part = partService.showPart(part, PartState.ACTIVATE);
-                GbifResponseImportViewE4 gbifImportView = (GbifResponseImportViewE4) part.getObject();
+                GbifResponseImportView gbifImportView = (GbifResponseImportView) part.getObject();
                 gbifImportView.setQuery(query);
 
                 dataImportView = gbifImportView;
@@ -173,24 +172,23 @@ public class SpecimenSearchWizardE4 extends Wizard {
     }
 
     public void init() {
-        providerSelectionPage = ContextInjectionFactory.make(SpecimenProviderSelectionWizardPageE4.class, context);
+        providerSelectionPage = ContextInjectionFactory.make(SpecimenProviderSelectionWizardPage.class, context);
 //      new SpecimenProviderSelectionWizardPage("Select specimen provider");
 //      searchPage = new SpecimenSearchWizardPage("Specimen Search");
-        searchPage = ContextInjectionFactory.make(SpecimenSearchWizardPageE4.class, context);
+        searchPage = ContextInjectionFactory.make(SpecimenSearchWizardPage.class, context);
     }
 
     private class QueryJob extends Job{
 
-        private final DataImportViewE4<?> view;
+        private final DataImportView<?> view;
 
-        public QueryJob(String name, DataImportViewE4<?> view) {
+        public QueryJob(String name, DataImportView<?> view) {
             super(name);
             this.view = view;
         }
 
         @Override
         protected IStatus run(IProgressMonitor monitor) {
-            view.getConversationHolder().bind();
             view.query();
             Display.getDefault().asyncExec(new Runnable() {
 
@@ -6,10 +6,12 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-package eu.etaxonomy.taxeditor.view.dataimport;
+package eu.etaxonomy.taxeditor.view.dataimport.e4;
 
 import java.util.Calendar;
 
+import javax.inject.Inject;
+
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.widgets.Composite;
 
@@ -27,8 +29,9 @@ public class SpecimenSearchWizardPage extends WizardPage{
 
     private SpecimenSearchController specimenSearchController;
 
-    public SpecimenSearchWizardPage(String pageName) {
-        super(pageName);
+    @Inject
+    public SpecimenSearchWizardPage() {
+        super("Specimen Search");
         setDescription("Specify search parameters for external search query.");
         setTitle("Search Specimens");
     }
@@ -43,19 +46,18 @@ public class SpecimenSearchWizardPage extends WizardPage{
      * Returns an {@link OccurenceQuery} filled with the parameters defined in this wizard page
      * @return
      */
-    public OccurenceQuery getQuery() {
+    public OccurenceQuery getQuery(boolean biocase) {
         String accessionNumber = specimenSearchController.getAccessionNumber();
         String collector = specimenSearchController.getCollector();
         String collectorsNumber = specimenSearchController.getCollectorNumber();
-        String country = specimenSearchController.getCountry(false);
+        String country = specimenSearchController.getCountry(biocase);
         Calendar dateFrom = specimenSearchController.getDateFrom();
         Calendar dateTo = specimenSearchController.getDateTo();
         String herbarium = specimenSearchController.getHerbarium();
         String locality = specimenSearchController.getLocality();
         String taxonName = specimenSearchController.getTaxonName();
-        String higherTaxon = specimenSearchController.getHigherTaxon();
         OccurenceQuery query = new OccurenceQuery(taxonName, collector, collectorsNumber, accessionNumber, herbarium, country, locality, dateFrom, dateTo, false);
-        query.higherTaxon = higherTaxon;
+        query.higherTaxon =specimenSearchController.getHigherTaxon();
         return query;
     }
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/SpecimenSearchWizardPageE4.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/dataimport/e4/SpecimenSearchWizardPageE4.java
deleted file mode 100644 (file)
index a801996..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
-* Copyright (C) 2013 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.view.dataimport.e4;
-
-import java.util.Calendar;
-
-import javax.inject.Inject;
-
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.widgets.Composite;
-
-import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
-import eu.etaxonomy.taxeditor.view.search.specimen.SpecimenSearchController;
-
-
-/**
- * Wizard page for entering search parameters
- * @author pplitzner
- * @date 12.09.2013
- *
- */
-public class SpecimenSearchWizardPageE4 extends WizardPage{
-
-    private SpecimenSearchController specimenSearchController;
-
-    @Inject
-    public SpecimenSearchWizardPageE4() {
-        super("Specimen Search");
-        setDescription("Specify search parameters for external search query.");
-        setTitle("Search Specimens");
-    }
-
-    @Override
-    public void createControl(Composite parent) {
-        specimenSearchController = SpecimenSearchController.getInstance(parent);
-        setControl(specimenSearchController.getComposite());
-    }
-
-    /**
-     * Returns an {@link OccurenceQuery} filled with the parameters defined in this wizard page
-     * @return
-     */
-    public OccurenceQuery getQuery(boolean biocase) {
-        String accessionNumber = specimenSearchController.getAccessionNumber();
-        String collector = specimenSearchController.getCollector();
-        String collectorsNumber = specimenSearchController.getCollectorNumber();
-        String country = specimenSearchController.getCountry(biocase);
-        Calendar dateFrom = specimenSearchController.getDateFrom();
-        Calendar dateTo = specimenSearchController.getDateTo();
-        String herbarium = specimenSearchController.getHerbarium();
-        String locality = specimenSearchController.getLocality();
-        String taxonName = specimenSearchController.getTaxonName();
-        OccurenceQuery query = new OccurenceQuery(taxonName, collector, collectorsNumber, accessionNumber, herbarium, country, locality, dateFrom, dateTo, false);
-        query.higherTaxon =specimenSearchController.getHigherTaxon();
-        return query;
-    }
-
-    /**
-     * @return the specimenSearchController
-     */
-    public SpecimenSearchController getController() {
-        return specimenSearchController;
-    }
-
-
-
-}
index 29d386ab7be7454a5921e3d7f89fbd7785e4101f..9ed682fc627191a9771ff1ba766ce97f0db3eb39 100644 (file)
@@ -14,7 +14,7 @@ import org.eclipse.e4.core.di.annotations.Execute;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.taxeditor.view.dataimport.e4.SpecimenSearchWizardE4;
+import eu.etaxonomy.taxeditor.view.dataimport.e4.SpecimenSearchWizard;
 
 /**
  * @author pplitzner
@@ -26,7 +26,7 @@ public class OpenSpecimenImportWizard {
     @Execute
     public void execute(IEclipseContext ctx, Shell s)
     {
-        SpecimenSearchWizardE4 wizard = ContextInjectionFactory.make(SpecimenSearchWizardE4.class, ctx);
+        SpecimenSearchWizard wizard = ContextInjectionFactory.make(SpecimenSearchWizard.class, ctx);
         wizard.init();
         WizardDialog dialog = new WizardDialog(s, wizard);
         dialog.open();
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/e4/handler/ChangeConnectionHandlerE4.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/e4/handler/ChangeConnectionHandlerE4.java
deleted file mode 100644 (file)
index 9635cfd..0000000
+++ /dev/null
@@ -1,75 +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.view.datasource.e4.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.core.di.annotations.Optional;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-import eu.etaxonomy.cdm.model.metadata.CdmMetaDataPropertyName;
-import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
-import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer;
-import eu.etaxonomy.taxeditor.view.datasource.e4.CdmDataSourceViewPartE4;
-
-/**
- * @author pplitzner
- * @date 22.08.2017
- */
-public class ChangeConnectionHandlerE4 {
-
-    @Execute
-    public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection) {
-
-                       if(CdmStore.isConnecting()){
-                               MessagingUtils.warningDialog(Messages.ChangeConnectionHandler_ALREADY_CONNECTING, this, Messages.ChangeConnectionHandler_CURRENTLY_CONNECTING_ALREADY);
-                               return ;
-                       }
-
-                       try {
-                           CdmMetaDataAwareDataSourceContainer container = (CdmMetaDataAwareDataSourceContainer) selection.getFirstElement();
-                               container.getCdmSource().checkConnection();
-                               boolean confirmed = MessagingUtils.confirmDialog(Messages.ChangeConnectionHandler_CREATE_DATAMODEL, String.format(Messages.ChangeConnectionHandler_REALLY_CREATE_DATAMODEL, container.getCdmSource().getName()));
-
-                               if(confirmed){
-                                       CdmDataSourceRepository.changeDataSource(container.getCdmSource());
-                               }
-                       } catch (Exception e) {
-                               MessagingUtils.warningDialog(Messages.ChangeConnectionHandler_DATASOURCE_NOT_AVAILABLE, this, Messages.ChangeConnectionHandler_NOT_AVAILABLE_REASONS);
-                               MessagingUtils.warn(getClass(), e);
-                               return ;
-               }
-
-               return ;
-       }
-
-    @CanExecute
-    public boolean canExecute(
-            @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
-            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
-            MHandledMenuItem menuItem) {
-        boolean canExecute = false;
-        canExecute = thisPart.getObject() instanceof CdmDataSourceViewPartE4
-                && selection!=null
-                && selection.size()==1
-                && selection.getFirstElement() instanceof CdmMetaDataAwareDataSourceContainer
-                && ((CdmMetaDataAwareDataSourceContainer) selection.getFirstElement()).getMetaData(CdmMetaDataPropertyName.DB_SCHEMA_VERSION).equals(CdmMetaDataAwareDataSourceContainer.DEFAULT_ENTRY);
-           menuItem.setVisible(canExecute);
-           return canExecute;
-       }
-}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/e4/handler/UpdateDataSourceHandlerE4.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/e4/handler/UpdateDataSourceHandlerE4.java
deleted file mode 100644 (file)
index b226665..0000000
+++ /dev/null
@@ -1,114 +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.view.datasource.e4.handler;
-
-import javax.inject.Named;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Optional;
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.progress.IProgressConstants;
-
-import eu.etaxonomy.cdm.config.ICdmSource;
-import eu.etaxonomy.cdm.database.ICdmDataSource;
-import eu.etaxonomy.cdm.database.update.CdmUpdater;
-import eu.etaxonomy.cdm.database.update.SchemaUpdateResult;
-import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-import eu.etaxonomy.taxeditor.view.datasource.CdmMetaDataAwareDataSourceContainer;
-import eu.etaxonomy.taxeditor.view.datasource.e4.CdmDataSourceViewPartE4;
-
-/**
- *
- * @author pplitzner
- * @date 22.08.2017
- *
- */
-public class UpdateDataSourceHandlerE4 extends AbstractDataSourceHandlerE4 {
-
-    /** {@inheritDoc} */
-    @Override
-    public boolean specificExecute(CdmDataSourceViewPartE4 dataSourceViewPart,
-            CdmMetaDataAwareDataSourceContainer container, Shell shell) {
-        if(! MessageDialog.open(MessageDialog.CONFIRM, shell, "Update Datasource", "WARNING!\n\n" +
-                "This will change your data base structure! Be sure you have an up-to-date backup of your data before running the update! \n\n " +
-                "Are you sure you want to update the datasource?", SWT.NONE)){
-            return false;
-        }
-        Job job = new Job("Updating datasource " + container.getCdmSource().getName()){
-
-            @Override
-            protected IStatus run(IProgressMonitor monitor) {
-                CdmUpdater updater = new CdmUpdater();
-                IStatus status = null;
-                ICdmSource cdmSource = container.getCdmSource();
-                //FIXME:Remoting we need another updater for ICdmRemoteSource
-                if(cdmSource instanceof ICdmDataSource) {
-                    try{
-                        SchemaUpdateResult result = updater.updateToCurrentVersion(
-                                (ICdmDataSource)cdmSource, CdmProgressMonitorAdapter.CreateMonitor(monitor));
-                        if(result.isSuccess()){
-                           sync.asyncExec(()->{
-                                    if(dataSourceViewPart!= null){
-                                        container.getMetaDataFromDataSource();
-                                        dataSourceViewPart.getViewer().update(new CdmMetaDataAwareDataSourceContainer[]{container}, null);
-                                    }
-                                }
-                            );
-                            status = Status.OK_STATUS;
-                        }else{
-                            throw new RuntimeException("An error occurred during the update.");
-                        }
-                    }catch(Exception e){
-                        status = new Status(IStatus.ERROR, TaxeditorStorePlugin.PLUGIN_ID, e.getMessage(), e);
-                        MessagingUtils.errorDialog("Could not complete updater", updater, status.getMessage(), status.getPlugin(), e, true);
-                    }
-                }
-
-                return status;
-            }
-
-        };
-
-        job.setPriority(Job.BUILD);
-        job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
-        job.schedule();
-
-        return true;
-    }
-
-
-    @Override
-    @CanExecute
-    public boolean canExecute(
-            @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
-            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
-            MHandledMenuItem menuItem) {
-        boolean canExecute = false;
-        canExecute = thisPart.getObject() instanceof CdmDataSourceViewPartE4
-                && selection!=null
-                && selection.size()==1
-                && selection.getFirstElement() instanceof CdmMetaDataAwareDataSourceContainer
-                && !((CdmMetaDataAwareDataSourceContainer) selection.getFirstElement()).isDataSourceCompatible();
-        menuItem.setVisible(canExecute);
-        return canExecute;
-    }
-}
index 73a8579e2c51ca4090b10457f8fa59484de68a3b..c549e99c1e1cda9331ad9fe0975b5ae9d8bb73c8 100644 (file)
@@ -6,20 +6,22 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.view.detail;
 
 import java.util.EventObject;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.jface.util.IPropertyChangeListener;
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.ui.forms.SectionPart;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.taxeditor.model.IElementHasDetails;
@@ -36,11 +38,12 @@ import eu.etaxonomy.taxeditor.ui.section.key.TaxonomicScopeSection;
 import eu.etaxonomy.taxeditor.ui.section.name.NameRelationshipDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.name.NomenclaturalStatusSection;
 import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.name.ProtologueSection;
 import eu.etaxonomy.taxeditor.ui.section.name.TypeDesignationSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.GeoScopeDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.IDerivedUnitFacadeDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalSourceDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection;
 import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonDetailSection;
 
@@ -51,10 +54,10 @@ import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonDetailSection;
  *
  * @author n.hoffmann
  * @created Feb 8, 2010
- * @version 1.0
  */
-public class CdmSectionPart<T> extends SectionPart implements
-               IPropertyChangeListener {
+public class CdmSectionPart<T> extends SectionPart
+        implements IPropertyChangeListener {
+    private static final Logger logger = LogManager.getLogger();
 
     public static String EXPANDED = "expanded";
     public static String COLLAPSED = "collapsed";
@@ -66,25 +69,17 @@ public class CdmSectionPart<T> extends SectionPart implements
         */
        private Object rootInput;
 
-       /**
-        * <p>
-        * Constructor for CdmSectionPart.
-        * </p>
-        *
-        * @param section
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
-        *            object.
-        * @param <T>
-        *            a T object.
-        */
        public CdmSectionPart(AbstractFormSection<T> section) {
                super(section);
                formSection = section;
        }
 
-       /** {@inheritDoc} */
        @Override
        public boolean setFormInput(Object input) {
+        if (formSection.isDisposed()){
+            return false;
+        }
+
            this.rootInput = input;
            //FIXME (CM): Need to fix this part of the design.
            //The design seems to be locked to the idea that only one
@@ -94,10 +89,11 @@ public class CdmSectionPart<T> extends SectionPart implements
                if (input instanceof IElementHasDetails) {
                        input = ((IElementHasDetails) input).getData();
                }
+
                if ((input instanceof TaxonBase)
                                && (formSection instanceof ITaxonBaseDetailSection)) {
                        ((ITaxonBaseDetailSection) formSection)
-                                       .setTaxonBase((TaxonBase) input);
+                                       .setTaxonBase((TaxonBase<?>) input);
                        return true;
                }
                else if (input.getClass().equals(DerivedUnit.class)
@@ -138,8 +134,8 @@ public class CdmSectionPart<T> extends SectionPart implements
                                        .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)
@@ -147,15 +143,11 @@ public class CdmSectionPart<T> extends SectionPart implements
                        ((NomenclaturalStatusSection) formSection)
                                        .setTaxonBase( ((TaxonRelationship)input).getFromTaxon());
                        return true;
-               }else if ((input instanceof TaxonRelationship)
-                               && (formSection instanceof ProtologueSection)) {
-                       ((ProtologueSection) formSection)
-                                       .setTaxonBase( ((TaxonRelationship)input).getFromTaxon());
-                       return true;
                }else if ((input instanceof TaxonRelationship)
                                && (formSection instanceof TypeDesignationSection)) {
                        ((TypeDesignationSection) formSection)
                                        .setTaxonBase( ((TaxonRelationship)input).getFromTaxon());
+//                     .setEntity( ((TaxonRelationship)input).getFromTaxon().getName());
                        return true;
                }else if ((input instanceof TaxonRelationship)
                                && (formSection instanceof NameRelationshipDetailSection)) {
@@ -166,22 +158,60 @@ public class CdmSectionPart<T> extends SectionPart implements
                        && (formSection instanceof RightsSection)){
                    ((RightsSection)formSection).setEntity(((DerivedUnitFacade)input).innerDerivedUnit());
                    return true;
+               }else if ((input instanceof DerivedUnitFacade)
+                && (formSection instanceof DeterminationDetailSection)){
+                   DerivedUnitFacade facade = ((DerivedUnitFacade)input);
+                   SpecimenOrObservationBase<?> sob = facade.innerDerivedUnit() != null? facade.innerDerivedUnit(): facade.innerFieldUnit();
+            ((DeterminationDetailSection)formSection).setEntity(sob);
+            return true;
+               }else if ((input instanceof DerivedUnitFacade)
+                && (formSection instanceof SampleDesignationDetailSection)){
+            ((SampleDesignationDetailSection)formSection).setEntity(((DerivedUnitFacade)input).innerDerivedUnit());
+            return true;
                }
-
+               //check whether this is needed
+//     }else if ((input instanceof TaxonBase)
+//            && (formSection instanceof TypeDesignationSection)){
+//        ((TypeDesignationSection)formSection).setEntity(((TaxonBase)input).getName());
+//        return true;
+//    }
 
                formSection.setEntity((T) input);
 
+
                return true;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse
-        * .jface.util.PropertyChangeEvent)
-        */
-       /** {@inheritDoc} */
+       public boolean setFormInputWithoutUpdate(Object input) {
+        if (formSection.isDisposed()){
+            return false;
+        }
+
+           this.rootInput = input;
+           //FIXME (CM): Need to fix this part of the design.
+           //The design seems to be locked to the idea that only one
+           // entity (either from the navigator or the editor) drives
+           // the detail view. In the case of multiple inputs the only workaround
+           // is checking the type and extracting relevant objects.
+               if (input instanceof IElementHasDetails) {
+                       input = ((IElementHasDetails) input).getData();
+               }
+
+               if ((input instanceof TaxonBase)
+                               && (formSection instanceof ITaxonBaseDetailSection )) {
+
+                       //if (!((TaxonBase<?>) input).getTitleCache().equals(((ITaxonBaseDetailSection) formSection).getTaxonBase().getTitleCache())) {
+                               ((ITaxonBaseDetailSection) formSection)
+                                       .setTaxonBaseWithoutUpdate((TaxonBase<?>) input);
+
+                       //}
+
+                       return true;
+               }
+               //actually only for Taxon Details...
+               return this.setFormInput( input);
+       }
+
        @Override
        public void propertyChange(PropertyChangeEvent event) {
                if (event != null) {
@@ -214,7 +244,10 @@ public class CdmSectionPart<T> extends SectionPart implements
        @Override
        protected void expansionStateChanged(boolean expanded) {
            super.expansionStateChanged(expanded);
-           PreferencesUtil.setStringValue(StoreUtil.getPrefKey(formSection.getClass(), rootInput.getClass().getCanonicalName()), expanded?EXPANDED:COLLAPSED);
+           try {
+               PreferencesUtil.setStringValue(StoreUtil.getPrefKey(formSection.getClass(), rootInput.getClass().getCanonicalName()), expanded?EXPANDED:COLLAPSED);
+           }catch (NullPointerException e) {
+               logger.error(e.getMessage());
+           }
        }
-
-}
+}
\ No newline at end of file
similarity index 90%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/AbstractCdmDataViewerE4.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/AbstractCdmDataViewer.java
index 4342b49c42f342d636a280322bfc39f0fbf95481..1ada7b30bf174d549894021a3394442b3669e794 100644 (file)
@@ -6,14 +6,14 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.view.e4;
 
 import javax.inject.Inject;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.e4.core.contexts.ContextInjectionFactory;
 import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.services.log.Logger;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.SWTException;
@@ -24,8 +24,6 @@ import org.eclipse.ui.forms.IFormPart;
 import org.eclipse.ui.forms.ManagedForm;
 import org.eclipse.ui.forms.widgets.ScrolledForm;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -38,14 +36,12 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.EmptySection;
 import eu.etaxonomy.taxeditor.view.detail.CdmSectionPart;
 
 /**
- *
  * @author pplitzner
  * @date 18.07.2017
- *
  */
-public abstract class AbstractCdmDataViewerE4 extends Viewer implements IConversationEnabled{
-        @Inject
-        private Logger logger;
+public abstract class AbstractCdmDataViewer extends Viewer {
+
+       private static final Logger logger = LogManager.getLogger();
 
        protected ManagedForm managedForm;
 
@@ -66,8 +62,7 @@ public abstract class AbstractCdmDataViewerE4 extends Viewer implements IConvers
        protected IDirtyMarkable part;
 
        @Inject
-       public AbstractCdmDataViewerE4() {
-
+       public AbstractCdmDataViewer() {
        }
 
        public void init(Composite parent, IDirtyMarkable part) {
@@ -92,7 +87,6 @@ public abstract class AbstractCdmDataViewerE4 extends Viewer implements IConvers
                rootElement = new RootElement(formFactory, body);
        }
 
-
     protected void createEmptySection(String message, RootElement parent) {
         destroySections();
 
@@ -115,11 +109,10 @@ public abstract class AbstractCdmDataViewerE4 extends Viewer implements IConvers
                        formFactory.dispose();
                        formFactory = null;
                }
-               formFactory =  new CdmFormFactory(Display.getCurrent(), this);
+               formFactory = new CdmFormFactory(Display.getCurrent(), this);
                ContextInjectionFactory.inject(formFactory, context);
        }
 
-       /** {@inheritDoc} */
        @Override
        public Control getControl() {
            if(body!=null){
@@ -134,7 +127,6 @@ public abstract class AbstractCdmDataViewerE4 extends Viewer implements IConvers
                return body;
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setInput(Object input) {
                this.input = input;
@@ -147,13 +139,11 @@ public abstract class AbstractCdmDataViewerE4 extends Viewer implements IConvers
                }
        }
 
-       /** {@inheritDoc} */
        @Override
        public Object getInput() {
                return input;
        }
 
-       /** {@inheritDoc} */
        @Override
        public void refresh() {
                showParts();
@@ -166,6 +156,19 @@ public abstract class AbstractCdmDataViewerE4 extends Viewer implements IConvers
 
 //             managedForm.reflow(true);
        }
+       
+       
+       public void refresh_withoutnew_build() {
+               if(input!=null){
+                       IFormPart[] parts = managedForm.getParts();
+                       for (IFormPart part: parts) {
+                               if(part instanceof CdmSectionPart) {    
+                                       ((CdmSectionPart<?>)part).setFormInputWithoutUpdate(input);
+                               }
+                       }
+               }               
+
+       }
 
        public void layout(){
                body.layout();
@@ -189,7 +192,6 @@ public abstract class AbstractCdmDataViewerE4 extends Viewer implements IConvers
                         null,
                         e,
                         true);
-
             }
                }
 
@@ -210,7 +212,6 @@ public abstract class AbstractCdmDataViewerE4 extends Viewer implements IConvers
                             null,
                             e,
                             true);
-
                 }
                        }
                        control = null;
@@ -241,10 +242,4 @@ public abstract class AbstractCdmDataViewerE4 extends Viewer implements IConvers
                managedForm.addPart(sectionPart);
                formFactory.addPropertyChangeListener(sectionPart);
        }
-
-    @Override
-    public ConversationHolder getConversationHolder() {
-        return null;
-       }
-
-}
+}
\ No newline at end of file
similarity index 71%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/AbstractCdmEditorPartE4.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/AbstractCdmEditorPart.java
index 2cfdb11bcbb56c93c5038470864c9ecd9b33990e..983e4e229f5e1dcf5189b569d57746f787a552df 100644 (file)
@@ -15,7 +15,8 @@ import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 import javax.inject.Named;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.core.di.annotations.Optional;
 import org.eclipse.e4.ui.di.PersistState;
@@ -31,8 +32,6 @@ import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.SWTException;
 import org.springframework.security.core.GrantedAuthority;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
@@ -41,8 +40,9 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.editor.IBulkEditor;
 import eu.etaxonomy.taxeditor.editor.ITaxonEditor;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -59,17 +59,19 @@ import eu.etaxonomy.taxeditor.workbench.part.ISelectionElementEditingPart;
  * @author pplitzner
  * @since Aug 10, 2017
  */
-public abstract class AbstractCdmEditorPartE4
-        implements IConversationEnabled, IDirtyMarkable, ISelectionElementEditingPart, IPostOperationEnabled{
+public abstract class AbstractCdmEditorPart<V extends Viewer>
+        implements IDirtyMarkable, ISelectionElementEditingPart, IPostOperationEnabled{
+
+       private static final Logger logger = LogManager.getLogger();
+
+       private DelaySelection delaySelection = null;
 
-    private DelaySelection delaySelection = null;
     /**
      * This is the monitor for the DelaySelection runnable.
      * If it is <code>true</code> then it is currently delaying a selection.
      */
     private boolean isInDelay;
     private boolean isEnabled = true;
-    private static final Logger logger = Logger.getLogger(AbstractCdmEditorPartE4.class);
 
     /**
      * This class invokes internal_selectionChanged() in a separate thread.
@@ -79,22 +81,65 @@ public abstract class AbstractCdmEditorPartE4
         private Object selection;
         private MPart activePart;
         private MPart thisPart;
+        private EPartService partService;
 
-        public DelaySelection(Object selection, MPart activePart, MPart thisPart) {
-            super();
+        public DelaySelection(Object selection, MPart activePart, MPart thisPart, EPartService partService) {
             this.selection = selection;
             this.activePart= activePart;
             this.thisPart = thisPart;
+            this.partService = partService;
         }
 
         @Override
         public void run() {
+
+            isInDelay = false;
+
+            //multiple selections are not supported
+            if(activePart != null
+                    && thisPart != null
+                    && !activePart.equals(thisPart)
+                    && selection instanceof IStructuredSelection
+                    && ((IStructuredSelection) selection).size()>1){
+                showEmptyPage();
+                return;
+            }
+
+            // no active editor found
+            if(activePart == thisPart && WorkbenchUtility.getActiveEditorPart(partService) == null && showEmptyIfNoActiveEditor()){
+                showEmptyPage();
+                return;
+            }
+
+            if (viewer != null && viewer.getControl()!= null && viewer.getInput() != null && !viewer.getControl().isDisposed()){
+               try{
+                   viewer.getControl().setEnabled(isEnabled);
+               }catch(SWTException e){
+                   System.out.println("...exception3 ("+ (thisPart == null? "":thisPart.getLabel()) + ")");
+                   logger.debug("Something went wrong for viewer.getControl().setEnabled(true) in " + this.getClass().getSimpleName(), e);
+               }
+            }
+
+            //same as previous selection? => return
+            if((previousSelection != null && selection != null)
+                    && (activePart != null && selectionProvidingPart != null
+                        && activePart.equals(selectionProvidingPart))
+                    && (previousSelection == selection
+                         || previousSelection.equals(selection)
+                         || new StructuredSelection(selection).equals(previousSelection))
+                     ) {
+                 return;
+            }
+
             try{
                 selectionChanged_internal(selection, activePart, thisPart);
+            }catch (Exception ex){
+                logger.error("Error during selectionChanged_internal", ex);
+                ex.printStackTrace();
             }
             finally{
-                isInDelay = false;
-            }
+                previousSelection = selection;
+             }
         }
 
         public synchronized void setSelection(Object selection) {
@@ -108,9 +153,13 @@ public abstract class AbstractCdmEditorPartE4
         public synchronized void setThisPart(MPart thisPart) {
             this.thisPart = thisPart;
         }
+
+        public synchronized void setThisPartService(EPartService partService) {
+            this.partService = partService;
+        }
     }
 
-    protected Viewer viewer;
+    protected V viewer;
 
     protected MPart thisPart;
 
@@ -132,65 +181,48 @@ public abstract class AbstractCdmEditorPartE4
 
     protected abstract void selectionChanged_internal(Object selection, MPart activePart, MPart thisPart);
 
+    protected boolean showEmptyIfNoActiveEditor(){
+        return true;
+    }
+
     @Inject
     public void selectionChanged(
             @Optional@Named(IServiceConstants.ACTIVE_SELECTION)Object selection,
             @Optional@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
             MPart thisPart, UISynchronize sync, EPartService partService){
-        //multiple selections are not supported
-        if(activePart!=null
-                && thisPart!=null
-                && !activePart.equals(thisPart)
-                && selection instanceof IStructuredSelection
-                && ((IStructuredSelection) selection).size()>1){
-            showEmptyPage();
-            return;
-        }
-        // no active editor found
-        if(activePart==thisPart && WorkbenchUtility.getActiveEditorPart(partService)==null){
-            showEmptyPage();
-            return;
-        }
-        if (viewer != null && viewer.getControl()!= null && viewer.getInput() != null && !viewer.getControl().isDisposed()){
-           try{
-               viewer.getControl().setEnabled(isEnabled);
-           }catch(SWTException e){
-              logger.debug("Something went wrong for viewer.getControl().setEnabled(true) in " + this.getClass().getSimpleName(), e);
-           }
 
+        //set the delay selection which puts the change handling to the end
+        if(delaySelection == null){
+            delaySelection = new DelaySelection(selection, activePart, thisPart, partService);
+        }else{
+            delaySelection.setSelection(selection);
+            delaySelection.setActivePart(activePart);
+            delaySelection.setThisPart(thisPart);
+            delaySelection.setThisPartService(partService);
         }
 
-        if((previousSelection!=null && selection!=null) && (activePart != null &&  selectionProvidingPart != null && activePart.equals(selectionProvidingPart)) &&
-                (previousSelection==selection
-                || previousSelection.equals(selection)
-                || new StructuredSelection(selection).equals(previousSelection))
-                ) {
-            return;
-        }
-        if(delaySelection==null){
-            delaySelection = new DelaySelection(selection, activePart, thisPart);
-        }
-        delaySelection.setSelection(selection);
-        delaySelection.setActivePart(activePart);
-        delaySelection.setThisPart(thisPart);
+        //as long as the delay thread is running,
         if(!isInDelay){
-            isInDelay = true;
+               isInDelay = true;
             sync.asyncExec(delaySelection);
-            previousSelection = selection;
         }
     }
 
     @Override
     public void changed(Object object) {
-        if(selectionProvidingPart!=null){
+        if(selectionProvidingPart != null){
             Object part = selectionProvidingPart.getObject();
             if(part instanceof IDirtyMarkable){
                 ((IDirtyMarkable) part).changed(object);
             }
+            if (part instanceof IBulkEditor){
+               ((IBulkEditor)part).setSelection(createSelection(object));
+            }
+
         }
     }
 
-    public Viewer getViewer() {
+    public V getViewer() {
         return viewer;
     }
 
@@ -203,17 +235,17 @@ public abstract class AbstractCdmEditorPartE4
     }
 
     protected void showViewer(IStructuredSelection selection, MPart activePart, Viewer viewer){
-        if(CdmStore.getCurrentSessionManager().getActiveSession()==null){
+        if(CdmStore.getCurrentSessionManager().getActiveSession() == null){
             return;
         }
-        if(viewer!=null && viewer.getControl()!=null && !viewer.getControl().isDisposed()){
+        if(viewer != null && viewer.getControl() != null && !viewer.getControl().isDisposed()){
             Object element = selection.getFirstElement();
-            Object part = createPartObject(activePart);
+            Object part = getPartObject(activePart);
             if (viewer.getControl().isDisposed()){
                 return;
             }
             viewer.getControl().setEnabled(true);
-            if(selection.getFirstElement()!=null){
+            if(element != null){
                 if (element instanceof Taxon){
 
                     Taxon taxon = HibernateProxyHelper.deproxy(element, Taxon.class);
@@ -222,7 +254,7 @@ public abstract class AbstractCdmEditorPartE4
                         if (node != null){
                             boolean doEnable = CdmStore.currentAuthentiationHasPermission(node,
                                     RequiredPermissions.TAXON_EDIT);
-                             if (!doEnable){
+                            if (!doEnable){
                                  //check whether there are explicit TaxonNode rights
                                  boolean taxonnodePermissionExists = false;
                                  Collection<? extends GrantedAuthority> authorities = CdmStore.getCurrentAuthentiation().getAuthorities();
@@ -234,15 +266,14 @@ public abstract class AbstractCdmEditorPartE4
                                  if (!taxonnodePermissionExists){
                                      doEnable = true;
                                  }
-                             }
+                            }
 
                             //TODO: differ between the views
                             this.isEnabled = doEnable;
                         }
-
-
                     }
-                    if (taxon.isMisapplication() || taxon.isProparteSynonym() || taxon.isInvalidDesignation()){
+
+                    if (taxon.isMisapplication() || taxon.isProparteSynonym() ){
 
                         if(part instanceof ITaxonEditor){
                             Taxon accepted = ((ITaxonEditor) part).getTaxon();
@@ -251,17 +282,16 @@ public abstract class AbstractCdmEditorPartE4
 
                             if (rels != null && rels.iterator().hasNext() && !taxon.equals(accepted)){
                                 TaxonRelationship rel = rels.iterator().next();
-                                if ((rel.getType().isMisappliedNameOrInvalidDesignation() || rel.getType().isAnySynonym()) && !rel.getFromTaxon().equals(((ITaxonEditor) part).getTaxon())){
+                                if ((rel.getType().isMisappliedName() || rel.getType().isAnySynonym()) && !rel.getFromTaxon().equals(((ITaxonEditor) part).getTaxon())){
                                     viewer.setInput(rel);
                                     selectionProvidingPart = activePart;
                                     return;
                                 }
                             }
                         }
-
-
                     }
                 }
+
                 //unwrap term DTOs
                 if(element instanceof TermDto){
                     element = CdmStore.getService(ITermService.class).load(((TermDto) element).getUuid());
@@ -280,8 +310,10 @@ public abstract class AbstractCdmEditorPartE4
                     }
                     ((DetailsViewerE4)viewer).setInput(element, part);
                 }
-
                 else{
+                    if(element instanceof TermNodeDto){
+                        //element = CdmStore.getService(ITermNodeService.class).load(((TermNodeDto) element).getUuid());
+                    }
                     if (activePart.getObject() instanceof DetailsPartE4 && element instanceof TaxonName){
                         selectionProvidingPart = ((DetailsPartE4)activePart.getObject()).getSelectionProvidingPart();
                     }
@@ -293,10 +325,10 @@ public abstract class AbstractCdmEditorPartE4
         }
     }
 
-    protected Object createPartObject(MPart activePart) {
+    protected Object getPartObject(MPart activePart) {
         Object partObject = activePart;
         Object wrappedPart = WorkbenchUtility.getE4WrappedPart(activePart);
-        if(wrappedPart!=null){
+        if(wrappedPart != null){
             partObject = wrappedPart;
         }
         return partObject;
@@ -317,11 +349,10 @@ public abstract class AbstractCdmEditorPartE4
                             null,
                             e,
                             true);
-
                 }
             }
-
         }
+
         reset();
         if(thisPart!=null){
             thisPart.setLabel(getViewName());
@@ -342,13 +373,6 @@ public abstract class AbstractCdmEditorPartE4
         return structuredSelection;
     }
 
-    @Override
-    public ConversationHolder getConversationHolder() {
-        if(selectionProvidingPart != null && selectionProvidingPart instanceof IConversationEnabled) {
-            return ((IConversationEnabled) selectionProvidingPart).getConversationHolder();
-        }
-        return null;
-    }
 
     @Override
     public boolean postOperation(Object objectAffectedByOperation) {
@@ -358,7 +382,19 @@ public abstract class AbstractCdmEditorPartE4
 
     @Override
     public boolean onComplete() {
-        viewer.refresh();
+        try {
+            viewer.refresh();
+        }catch(SWTException e) {
+            if (PreferencesUtil.isShowUpWidgetIsDisposedMessages() && e.getMessage().equals("Widget is disposed")){
+                MessagingUtils.errorDialog("Widget is disposed",
+                        null,
+                        MessagingUtils.WIDGET_IS_DISPOSED_MESSAGE,
+                        null,
+                        e,
+                       true);
+           }
+
+        }
         return true;
     }
 
@@ -383,10 +419,6 @@ public abstract class AbstractCdmEditorPartE4
 
     }
 
-    @Override
-    public void update(CdmDataChangeMap arg0) {
-    }
-
     @Override
     public void forceDirty() {
     }
index 5b0229b18e977649f74ef6992df53893478360e6..39f99dc8354ebdcabc37987158d89b70cd23e0b7 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2017 EDIT
 * European Distributed Institute of Taxonomy
@@ -14,14 +13,15 @@ import javax.inject.Inject;
 
 import org.eclipse.e4.core.contexts.ContextInjectionFactory;
 import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.services.log.Logger;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.swt.SWTException;
 import org.eclipse.swt.widgets.Composite;
 
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -31,18 +31,15 @@ import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPartE4;
+import eu.etaxonomy.taxeditor.view.detail.CdmSectionPart;
+import eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPart;
 import eu.etaxonomy.taxeditor.view.e4.supplementaldata.SupplementalDataPartE4;
-import eu.etaxonomy.taxeditor.workbench.part.ISelectionElementEditingPart;
 
 /**
  * @author pplitzner
  * @date 18.07.2017
- *
  */
-public class DetailsPartE4 extends AbstractCdmEditorPartE4 implements IPartContentHasSupplementalData, IPartContentHasFactualData {
-       @Inject
-       private Logger logger;
+public class DetailsPartE4 extends AbstractCdmEditorPart<DetailsViewerE4> implements IPartContentHasSupplementalData, IPartContentHasFactualData {
 
        @Inject
     public DetailsPartE4() {
@@ -54,7 +51,7 @@ public class DetailsPartE4 extends AbstractCdmEditorPartE4 implements IPartConte
         this.thisPart = thisPart;
 
         viewer = ContextInjectionFactory.make(DetailsViewerE4.class, context);
-        ((DetailsViewerE4)viewer).init(parent, this);
+        viewer.init(parent, this);
 
         // Propagate selection from viewer
         selectionChangedListener = (event -> selService.setSelection(AbstractUtility.getElementsFromSelectionChangedEvent(event)));
@@ -63,28 +60,47 @@ public class DetailsPartE4 extends AbstractCdmEditorPartE4 implements IPartConte
 
     @Override
     public void selectionChanged_internal(Object selection, MPart activePart, MPart thisPart) {
-        if (activePart==thisPart){
-            return;
+       if (activePart == null) {
+               return;
+       }
+       
+        if (activePart == thisPart ){
+               if (this.getViewer().isNeedsRefresh()) {
+                       viewer.refresh();
+                       viewer.setNeedsRefresh(false);
+                       return;
+               }else {
+                       return;
+               }
         }
+        
+       
 
-        Object partObject = createPartObject(activePart);
+        Object partObject = getPartObject(activePart);
         if (partObject instanceof SupplementalDataPartE4 ) {
             // do not show empty page
             return;
         }
+        
+        if (partObject instanceof AbstractCdmEditorPart && ((AbstractCdmEditorPart)partObject).getViewer() instanceof TreeViewer ) {
+               //active part is factual data view or media view
+               IStructuredSelection structuredSelection = createSelection(selection);
+               if (structuredSelection != null && !structuredSelection.isEmpty()) {
+                       //if the active part is empty the selection is still the previous selection
+                       if (!(structuredSelection instanceof TreeSelection)) {
+                               return;
+                       }
+               }
+               
+           }
 
         if(partObject instanceof IPartContentHasDetails){
             IStructuredSelection structuredSelection = createSelection(selection);
-            if(structuredSelection==null || structuredSelection.isEmpty()){
-                showEmptyPage();
-                return;
-            }
-            if(!(partObject instanceof ISelectionElementEditingPart) &&
-                    partObject instanceof IConversationEnabled && ((IConversationEnabled) partObject).getConversationHolder()==null) {
-                //TODO show specific message (refactor EmptyElement to allow specific messages)
+            if(structuredSelection == null || structuredSelection.isEmpty()){
                 showEmptyPage();
                 return;
             }
+
             // do not show details for feature nodes TODO strange check to avoid having shown the distribution map for every FeatureNodeContainer
             if(structuredSelection.getFirstElement() instanceof FeatureNodeContainer){
                 // do show the map for distributions
@@ -94,23 +110,14 @@ public class DetailsPartE4 extends AbstractCdmEditorPartE4 implements IPartConte
                     return;
                 }
             }
-//            if (partObject instanceof IDistributionEditor){
-//
-//                showViewer(structuredSelection, activePart, viewer);
-//                return;
-//
-//            }
+
             //FIXME this is a temporary workaround to fix selection handling for supplemental data view
             // Now the supp data view gets double selection from details view and name editor (see #7126)
+
             viewer.setSelection(structuredSelection, false);
 
             showViewer(structuredSelection, activePart, viewer);
-            if (viewer instanceof DetailsViewerE4){
-
-//                ((DetailsViewerE4)viewer).setDetailsEnabled(isEnabled());
-            }
-
-
+            viewer.setNeedsRefresh(false);
             return;
         }
         else{
@@ -120,15 +127,15 @@ public class DetailsPartE4 extends AbstractCdmEditorPartE4 implements IPartConte
     }
 
     public void refreshSelection(){
-        selectionChanged_internal(new StructuredSelection(this.viewer.getInput()), selectionProvidingPart, thisPart);
+       this.viewer.refresh_withoutnew_build();
     }
 
     @Override
     protected void showEmptyPage() {
         super.showEmptyPage();
-        if(viewer!=null && viewer.getControl()!=null && !viewer.getControl().isDisposed() ){
+        if(viewer != null && viewer.getControl() != null && !viewer.getControl().isDisposed() ){
                try{
-                       ((DetailsViewerE4)viewer).destroySections();
+                       viewer.destroySections();
                }catch(SWTException e){
                        if (PreferencesUtil.isShowUpWidgetIsDisposedMessages() && e.getMessage().equals("Widget is disposed")){
                     MessagingUtils.errorDialog("Widget is disposed",
@@ -137,7 +144,6 @@ public class DetailsPartE4 extends AbstractCdmEditorPartE4 implements IPartConte
                             null,
                             e,
                             true);
-
                 }
                }
         }
@@ -148,4 +154,4 @@ public class DetailsPartE4 extends AbstractCdmEditorPartE4 implements IPartConte
         return Messages.DetailsViewPart_VIEWER_NAME;
     }
 
-}
+}
\ No newline at end of file
index 1d5c55499ba87559e3645015dabdd16c9fa611e2..fc0cecca2cbc48e459e2ffd41d0347dc5648ce39 100755 (executable)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.view.e4.details;
 
 import java.util.Collection;
@@ -23,11 +22,12 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.TreeNode;
 import org.eclipse.swt.SWT;
+import org.eclipse.ui.forms.IFormPart;
 import org.springframework.security.core.GrantedAuthority;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.model.agent.Person;
 import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
@@ -63,7 +63,9 @@ import eu.etaxonomy.cdm.model.term.TermNode;
 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.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
+import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+import eu.etaxonomy.taxeditor.editor.IBulkEditor;
 import eu.etaxonomy.taxeditor.editor.IDistributionEditorPart;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.l10n.Messages;
@@ -77,6 +79,7 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.store.UsageTermCollection;
+import eu.etaxonomy.taxeditor.termtree.e4.ICharacterEditor;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.RootElement;
 import eu.etaxonomy.taxeditor.ui.section.agent.PersonDetailSection;
@@ -95,9 +98,11 @@ import eu.etaxonomy.taxeditor.ui.section.description.ScopeSection;
 import eu.etaxonomy.taxeditor.ui.section.description.detail.DistributionDetailElement;
 import eu.etaxonomy.taxeditor.ui.section.feature.CharacterDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.feature.CharacterNodeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.feature.CharacterNodeDtoDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.feature.FeatureDistributionDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.feature.FeatureNodeDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.feature.FeatureTreeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.feature.TermNodeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.feature.TermTreeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.feature.TermTreeDetailSectionForNode;
 import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.group.GroupDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.group.MemberDetailSection;
@@ -106,13 +111,12 @@ import eu.etaxonomy.taxeditor.ui.section.key.PolytomousKeyNodeDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.name.NameRelationshipDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.name.NomenclaturalStatusSection;
 import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.name.ProtologueSection;
 import eu.etaxonomy.taxeditor.ui.section.name.TypeDesignationSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitGeneralDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeGeneralDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.association.DerivedUnitTypeDesignationSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.association.TaxonAssociationDetailSection;
@@ -127,7 +131,7 @@ 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.supplemental.RightsSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.DerivedUnitFacadeIdentifierSection;
@@ -141,10 +145,9 @@ import eu.etaxonomy.taxeditor.ui.section.vocabulary.DefinedTermDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermMediaSection;
 import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermVocabularyDetailSection;
 import eu.etaxonomy.taxeditor.view.detail.CdmSectionPart;
-import eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewerE4;
+import eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewer;
 
 /**
- *
  * The DetailsViewer handles the content of the details view (
  * {@link DetailsPartE4}).<br>
  * Depending on the type of the selected element the section of the details view
@@ -152,14 +155,15 @@ import eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewerE4;
  *
  * @author pplitzner
  * @date 18.07.2017
- *
  */
-public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
+public class DetailsViewerE4 extends AbstractCdmDataViewer {
 
     private ISelection selection;
     private boolean detailsEnabled = true;
     private Object activePart;
 
+    private boolean needsRefresh = false;
+
     public boolean isDetailsEnabled() {
                return detailsEnabled;
        }
@@ -173,11 +177,17 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
         setInput(input);
 
     }
+
+       public boolean isNeedsRefresh() {
+               return needsRefresh;
+       }
+
+       public void setNeedsRefresh(boolean needsRefresh) {
+               this.needsRefresh = needsRefresh;
+       }
     // START HACK TO MAKE THE DERIVED UNIT FACADE WORK
     // since we are getting implementations of DerivedUnitBase from the bulk
-    // editor
-    // and not derived unit facade objects,
-
+    // editor and not derived unit facade objects,
     @Override
     public void setInput(Object input) {
 
@@ -187,13 +197,19 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
         if(input instanceof GbifResponse){
             input = ((GbifResponse) input).getDerivedUnitFacade();
         }
-       if (input !=null && input instanceof DerivedUnit) {
+        if (input instanceof DerivedUnit) {
             DerivedUnit derivedUnit = (DerivedUnit)input;
-            try {
-                input = DerivedUnitFacade.NewInstance(derivedUnit,
-                        PreferencesUtil.getDerivedUnitConfigurator());
-            } catch (DerivedUnitFacadeNotSupportedException e) {
-                                MessagingUtils.error(getClass(), e); //nothing should happen, later on the Details View will show an according information that it is not possible to open this data
+            if ((derivedUnit instanceof MediaSpecimen
+                    ||  (derivedUnit instanceof DnaSample && derivedUnit.getRecordBasis() == SpecimenOrObservationType.DnaSample ))
+                && !(this.activePart instanceof IBulkEditor)){
+                    //do nothing
+            }else{
+                try {
+                    input = DerivedUnitFacade.NewInstance(derivedUnit,
+                            PreferencesUtil.getDerivedUnitConfigurator());
+                } catch (DerivedUnitFacadeNotSupportedException e) {
+                    MessagingUtils.error(getClass(), e); //nothing should happen, later on the Details View will show an according information that it is not possible to open this data
+                }
             }
         }
         else if(input instanceof FieldUnit){
@@ -223,7 +239,6 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
         }
     }
 
-    /** {@inheritDoc} */
     @Override
     protected void showParts() {
         // FIXME (CM) : Need to clean out this code.
@@ -237,16 +252,14 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
         }
         destroySections();
         if (input instanceof TaxonBase) {
-            if(((TaxonBase) input).getName()==null){
+            if(((TaxonBase<?>) input).getName()==null){
                 createEmptySection(Messages.DetailsViewerE4_TAXON_HAS_NO_NAME, rootElement);
             }
             else{
                 createTaxonSections(rootElement);
             }
-
         } else if (input instanceof TaxonName) {
             createNameSections(rootElement);
-
         } else if (input instanceof Reference) {
             createReferenceSections(rootElement);
 
@@ -260,6 +273,9 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
             createTeamOrPersonBaseDetailSection(rootElement);
 
         } else if (input instanceof DescriptionBase) {
+            if ((((DescriptionBase<?>)input).isComputed() || ((DescriptionBase<?>)input).isCloneForSource())&& PreferencesUtil.isComputedDesciptionHandlingDisabled()){
+                this.setDetailsEnabled(false);
+            }
             if(input instanceof SpecimenDescription){
                 //TODO: add more sections to DetailsView for SpecimenDescription
                 createSpecimenDescriptionSection(rootElement);
@@ -279,10 +295,10 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
                 } else if (isUseDescription) {
                     createUseDescriptionSection(rootElement);
                 } else if (input instanceof TaxonDescription){
-                    createTaxonDescriptionSection(rootElement);
+                    createTaxonDescriptionSection(rootElement, !(((DescriptionBase<?>) input).isComputed() && PreferencesUtil.isComputedDesciptionHandlingDisabled()));
 
                 } else{
-                    createDescriptionSection(rootElement, false);
+                    createDescriptionSection(rootElement, false, !(((DescriptionBase<?>) input).isComputed() && PreferencesUtil.isComputedDesciptionHandlingDisabled()));
                 }
             }
         } else if (input instanceof DescriptionElementBase){
@@ -297,7 +313,9 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
                     isUseDescription = true;
                 }
             }
-
+            if (((DescriptionElementBase)input).getInDescription() != null && ((DescriptionElementBase)input).getInDescription().isComputed() && PreferencesUtil.isComputedDesciptionHandlingDisabled()){
+                this.setDetailsEnabled(false);
+            }
             if (isUseDescription == true && input instanceof CategoricalData) {
                 createUseRecordSection(rootElement);
             } else {
@@ -306,11 +324,10 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
 
         } else if (input instanceof Media) {
             createMediaElementSection(rootElement);
-
         }
         //FIXME hack to show more informative message to the user when
         //DerivedUnit has more than one FieldUnit #4363
-        else if (input instanceof DerivedUnit) {
+        else if (input instanceof DerivedUnit && !(input instanceof MediaSpecimen) && !(input instanceof DnaSample)) {
             DerivedUnit derivedUnit = (DerivedUnit)input;
             try {
                 input = DerivedUnitFacade.NewInstance(derivedUnit,
@@ -318,42 +335,42 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
             } catch (DerivedUnitFacadeNotSupportedException e) {
                 createEmptySection(e.getMessage(), rootElement);
             }
-        }
-        else if (input instanceof DerivedUnitFacade) {
-            if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.FieldUnit){
-                if(((DerivedUnitFacade) input).innerFieldUnit()==null){
+        } else if (input instanceof DerivedUnitFacade) {
+            DerivedUnitFacade facade = (DerivedUnitFacade) input;
+            if(facade.getType() == SpecimenOrObservationType.FieldUnit){
+                if(facade.innerFieldUnit() == null){
                     MessagingUtils.error(DetailsViewerE4.class, "FieldUnit of facade is null", null); //$NON-NLS-1$
                 }
                 else{
-                    createFieldUnitSection(rootElement);
+                    createFieldUnitFacadeSection(rootElement);
                 }
             }
-            else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.PreservedSpecimen){
-                if(((DerivedUnitFacade) input).innerDerivedUnit()==null){
+            else if(facade.getType() == SpecimenOrObservationType.PreservedSpecimen){
+                if(facade.innerDerivedUnit() == null){
                     MessagingUtils.error(DetailsViewerE4.class, "DerivedUnit of facade is null", null); //$NON-NLS-1$
                 }
                 else{
                     createDerivedUnitBaseElementSection(rootElement);
                 }
             }
-            else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.TissueSample){
+            else if(facade.getType() == SpecimenOrObservationType.TissueSample){
                 //TissueSample should only be created by using it's own class
                 //in future using only one class with different SpecimenOrObservationTypes is desired
                 createTissueSampleSection(rootElement);
-            }
-            else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.DnaSample){
-
-                if(((DerivedUnitFacade) input).innerDerivedUnit().getRecordBasis()==SpecimenOrObservationType.TissueSample){
+            }else if (facade.innerDerivedUnit() instanceof DnaSample){
+                createEmptySection("DNA sample not supported by specimen list editor", rootElement);
+            }else if (facade.innerDerivedUnit() instanceof MediaSpecimen){
+                createEmptySection("Image specimen not supported by specimen list editor", rootElement);
+            }else if(facade.getType()==SpecimenOrObservationType.DnaSample){
+
+                if(facade.innerDerivedUnit().getRecordBasis()==SpecimenOrObservationType.TissueSample){
+                    //this case seems to be very unlikely as innerDerivedUnit in real cases should more or less always have the same type
                     createTissueSampleSection(rootElement);
                 }
-                else if(((DerivedUnitFacade) input).innerDerivedUnit().getRecordBasis()==SpecimenOrObservationType.DnaSample){
+                else if(facade.innerDerivedUnit().getRecordBasis()==SpecimenOrObservationType.DnaSample){
                     createDnaSampleSection(rootElement);
                 }
-            }else if (((DerivedUnitFacade) input).innerDerivedUnit() instanceof MediaSpecimen){
-                createMediaSpecimenSection(rootElement);
-            }
-
-            else{
+            }else{
                 createDerivedUnitBaseElementSection(rootElement);
             }
         } else if (input instanceof DnaSample){
@@ -377,8 +394,8 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
             createFeatureDistributionSection(rootElement);
 
         } else if (input instanceof TermNode) {
-            TermType type= ((TermNode) input).getTermType();
-            if(type.equals(TermType.Character)){
+            TermType type= ((TermNode<?>) input).getTermType();
+            if(type.equals(TermType.Character) ){
                 createCharacterNodeSection(rootElement);
             }
             else if(type.equals(TermType.Feature)){
@@ -387,6 +404,19 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
 
         } else if (input instanceof TermTree) {
             createFeatureTreeSection(rootElement);
+        }  else if (input instanceof TermNodeDto) {
+            TermType type= ((TermNodeDto) input).getTerm().getTermType();
+            if(type.equals(TermType.Character) && activePart instanceof ICharacterEditor){
+                createCharacterNodeDtoSection(rootElement);
+            }
+            else if(type.equals(TermType.Feature) || type.equals(TermType.Character)){
+                createFeatureNodeSection(rootElement);
+            }else {
+                createTermNodeSection(rootElement);
+            }
+
+        } else if (input instanceof TermTreeDto) {
+            createFeatureTreeSectionForDto(rootElement);
 
         } else if (input instanceof Character) {
             createCharacterSection(rootElement);
@@ -398,7 +428,7 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
         } else if (input instanceof Group) {
             createGroupSection(rootElement);
         } else if (input instanceof TaxonRelationship && ((TaxonRelationship)input).getType()!=null
-                && (((TaxonRelationship)input).getType().isAnyMisappliedName() || ((TaxonRelationship)input).getType().isAnySynonym() || ((TaxonRelationship)input).getType().isMisappliedNameOrInvalidDesignation())){
+                && (((TaxonRelationship)input).getType().isAnyMisappliedName() || ((TaxonRelationship)input).getType().isAnySynonym() || ((TaxonRelationship)input).getType().isMisappliedName())){
             createMisappliedNameSection(rootElement);
         }else if (input instanceof TaxonRelationship ) {
             createTaxonRelationshipSection(rootElement);
@@ -412,43 +442,38 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
             if (sel.getFirstElement()instanceof Distribution){
                 createDescriptionElementSection(rootElement);
             }
-
-//            createDescriptionElementSection(rootElement);
+        }else if (activePart instanceof IDistributionEditorPart && input instanceof HashSet) {
+            createEmptySection(Messages.More_than_one_distribution, rootElement);
 
         }else {
             createEmptySection(null, rootElement);
         }
         layout();
-
     }
 
     private void createGroupSection(RootElement parent) {
-        GroupDetailSection groupDetailSection = formFactory.createGroupDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(GroupDetailSection.class, getInput().getClass().getCanonicalName()));
-        MemberDetailSection memberDetailSection = formFactory.createMemberDetailSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(MemberDetailSection.class, getInput().getClass().getCanonicalName()));
-        GrantedAuthorityDetailSection grantedAuthorityDetailSection = formFactory.createGrantedAuthorityDetailSection(getConversationHolder(), parent,StoreUtil.getSectionStyle(GrantedAuthorityDetailSection.class, getInput().getClass().getCanonicalName()));
+        GroupDetailSection groupDetailSection = formFactory.createGroupDetailSection(parent, this, StoreUtil.getSectionStyle(GroupDetailSection.class, getInput().getClass().getCanonicalName()));
+        MemberDetailSection memberDetailSection = formFactory.createMemberDetailSection(parent, StoreUtil.getSectionStyle(MemberDetailSection.class, getInput().getClass().getCanonicalName()));
+        GrantedAuthorityDetailSection grantedAuthorityDetailSection = formFactory.createGrantedAuthorityDetailSection(parent,StoreUtil.getSectionStyle(GrantedAuthorityDetailSection.class, getInput().getClass().getCanonicalName()));
 
         addPart(groupDetailSection);
         addPart(memberDetailSection);
         addPart(grantedAuthorityDetailSection);
     }
 
-    /** {@inheritDoc} */
     @Override
     public ISelection getSelection() {
         return selection;
     }
 
-    /** {@inheritDoc} */
     @Override
     public void setSelection(ISelection selection, boolean reveal) {
 
         this.selection = selection;
-
         if(this.selection!=null){
             SelectionChangedEvent selectionChangedEvent = new SelectionChangedEvent(this, selection);
             fireSelectionChanged(selectionChangedEvent);
         }
-
     }
 
     private void createTaxonSections(RootElement parent) {
@@ -461,9 +486,10 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
             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;
@@ -491,10 +517,10 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
             }
         }
         detailsEnabled = hasPermission;
-        ParsingMessagesSection parsingMessagesSection = formFactory.createParsingMessagesSection(getConversationHolder(), parent, this,
+        ParsingMessagesSection parsingMessagesSection = formFactory.createParsingMessagesSection(parent, this,
                 StoreUtil.getSectionStyle(ParsingMessagesSection.class, getInput().getClass().getCanonicalName(), true));
         if (config == null){
-            TaxonBaseDetailSection taxonBaseDetailSection = formFactory.createTaxonBaseDetailSection(getConversationHolder(), parent, this,
+            TaxonBaseDetailSection taxonBaseDetailSection = formFactory.createTaxonBaseDetailSection(parent, this,
                     StoreUtil.getSectionStyle(TaxonBaseDetailSection.class, getInput().getClass().getCanonicalName(), true));
             formFactory.createHorizontalSeparator(parent, SWT.BORDER);
           //  boolean hasPermission = CdmStore.currentAuthentiationHasPermission(getInput(), Operation.UPDATE);
@@ -502,73 +528,77 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
             addPart(taxonBaseDetailSection);
         }else{
             if (config.isTaxonSectionActivated()){
-                TaxonBaseDetailSection taxonBaseDetailSection = formFactory.createTaxonBaseDetailSection(getConversationHolder(), parent, this,
+                TaxonBaseDetailSection taxonBaseDetailSection = formFactory.createTaxonBaseDetailSection(parent, this,
                         StoreUtil.getSectionStyle(TaxonBaseDetailSection.class, getInput().getClass().getCanonicalName(), true));
                 taxonBaseDetailSection.setEnabled(detailsEnabled);
                 formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                 addPart(taxonBaseDetailSection);
             }
         }
+        //TODO: test code for secundum source section
+//        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,
+                .createNonViralNameDetailSection(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(parent, this,
+                    StoreUtil.getSectionStyle(NomenclaturalSourceDetailSection.class, getInput().getClass().getCanonicalName(), true));
             referenceDetailSection.setEnabled(detailsEnabled);
             formFactory.createHorizontalSeparator(parent, SWT.BORDER);
             addPart(referenceDetailSection);
 
         }
         if ( config == null || config.isNomenclaturalStatusSectionActivated()){
-            NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent,
+            NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(parent,
                     StoreUtil.getSectionStyle(NomenclaturalStatusSection.class, getInput().getClass().getCanonicalName(), true));
             nomenclaturalStatusSection.setEnabled(detailsEnabled);
             formFactory.createHorizontalSeparator(parent, SWT.BORDER);
             addPart(nomenclaturalStatusSection);
         }
 
-        if ( config == null || config.isProtologueActivated()){
-            ProtologueSection protologSection = formFactory.createProtologueSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(ProtologueSection.class, getInput().getClass().getCanonicalName()));
-            protologSection.setEnabled(detailsEnabled);
-            formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-            addPart(protologSection);
-        }
-
         if (config == null || config.isTypeDesignationSectionActivated()){
-            TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(TypeDesignationSection.class, getInput().getClass().getCanonicalName()));
+            TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(parent, StoreUtil.getSectionStyle(TypeDesignationSection.class, getInput().getClass().getCanonicalName()));
             typeDesignationSection.setEnabled(detailsEnabled);
             formFactory.createHorizontalSeparator(parent, SWT.BORDER);
             addPart(typeDesignationSection);
         }
 
         if (config == null || config.isNameRelationsSectionActivated()){
-            NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(NameRelationshipDetailSection.class, getInput().getClass().getCanonicalName()));
+            NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(parent, StoreUtil.getSectionStyle(NameRelationshipDetailSection.class, getInput().getClass().getCanonicalName()));
             nameRelationshipSection.setEnabled(detailsEnabled);
             formFactory.createHorizontalSeparator(parent, SWT.BORDER);
             addPart(nameRelationshipSection);
         }
 
-
         addPart(parsingMessagesSection);
-
         addPart(nonViralNameSection);
-
     }
 
     private void createNameSections(RootElement parent) {
         NonViralNameDetailSection nonViralNameSection = formFactory.createNonViralNameDetailSection(
-                getConversationHolder(), parent, this, false, StoreUtil.getSectionStyle(NonViralNameDetailSection.class, getInput().getClass().getCanonicalName(), true));
+                parent, this, false, StoreUtil.getSectionStyle(NonViralNameDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
-                StoreUtil.getSectionStyle(NomenclaturalReferenceDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        NomenclaturalSourceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(parent, this,
+                StoreUtil.getSectionStyle(NomenclaturalSourceDetailSection.class, getInput().getClass().getCanonicalName(), true));
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent,
+        NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(parent,
                 StoreUtil.getSectionStyle(NomenclaturalStatusSection.class, getInput().getClass().getCanonicalName(), true));
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
@@ -576,41 +606,37 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
         addPart(nomenclaturalStatusSection);
         addPart(referenceDetailSection);
 
-        ProtologueSection protologSection = formFactory.createProtologueSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(ProtologueSection.class, getInput().getClass().getCanonicalName()));
-        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
-        TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(TypeDesignationSection.class, getInput().getClass().getCanonicalName()));
+        TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(parent, StoreUtil.getSectionStyle(TypeDesignationSection.class, getInput().getClass().getCanonicalName()));
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(NameRelationshipDetailSection.class, getInput().getClass().getCanonicalName()));
+        NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(parent, StoreUtil.getSectionStyle(NameRelationshipDetailSection.class, getInput().getClass().getCanonicalName()));
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-        addPart(protologSection);
+//        addPart(protologSection);
         addPart(typeDesignationSection);
         addPart(nameRelationshipSection);
-
     }
 
     private void createReferenceSections(RootElement parent) {
-        ReferenceDetailSection referenceDetailSection = formFactory.createReferenceDetailSection(getConversationHolder(), parent, this,
+        ReferenceDetailSection referenceDetailSection = formFactory.createReferenceDetailSection(parent, this,
                 StoreUtil.getSectionStyle(ReferenceDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         addPart(referenceDetailSection);
     }
 
     private void createTeamOrPersonBaseDetailSection(RootElement parent) {
-        TeamOrPersonBaseDetailSection teamOrPersonBaseDetailSection = formFactory.createTeamOrPersonBaseDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(TeamOrPersonBaseDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        TeamOrPersonBaseDetailSection teamOrPersonBaseDetailSection = formFactory.createTeamOrPersonBaseDetailSection(parent, this, StoreUtil.getSectionStyle(TeamOrPersonBaseDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         addPart(teamOrPersonBaseDetailSection);
     }
 
     private void createTeamDetailSection(RootElement parent) {
-        TeamDetailSection teamDetailSection = formFactory.createTeamDetailSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(TeamDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        TeamDetailSection teamDetailSection = formFactory.createTeamDetailSection(parent, StoreUtil.getSectionStyle(TeamDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         addPart(teamDetailSection);
     }
 
     private void createPersonDetailSection(RootElement parent) {
-        PersonDetailSection personDetailSection = formFactory.createPersonDetailSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(PersonDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        PersonDetailSection personDetailSection = formFactory.createPersonDetailSection(parent, StoreUtil.getSectionStyle(PersonDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(personDetailSection);
     }
 
@@ -619,25 +645,28 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
     }
 
     private void createDescriptionElementSection(RootElement parent, Object activePart) {
-        DescriptionElementDetailSection descriptionElementDetailSection = formFactory.createDescriptionElementDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DescriptionElementDetailSection.class, getInput().getClass().getCanonicalName(), true));
-        descriptionElementDetailSection.setEnabled(this.detailsEnabled);
+        DescriptionElementDetailSection descriptionElementDetailSection = formFactory.createDescriptionElementDetailSection(parent, this, StoreUtil.getSectionStyle(DescriptionElementDetailSection.class, getInput().getClass().getCanonicalName(), true));
+
 
-        //  IntextReferenceSection intextReferenceSection = formFactory.createIntextReferenceSection(getConversationHolder(), parent,  getSectionStyle(.class, getInput().getClass().getCanonicalName()));
+        //  IntextReferenceSection intextReferenceSection = formFactory.createIntextReferenceSection(parent,  getSectionStyle(.class, getInput().getClass().getCanonicalName()));
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
         DescriptionElementSourceSection descriptionElementSourceSection;
         if (activePart != null && activePart instanceof IDistributionEditorPart){
             Reference defaultSource =((IDistributionEditorPart)activePart).getEditor().getDefaultSource();
-            descriptionElementSourceSection = formFactory.createDescriptionElementSourceSection(getConversationHolder(), parent, defaultSource, StoreUtil.getSectionStyle(DescriptionElementSourceSection.class, getInput().getClass().getCanonicalName()));
+            descriptionElementSourceSection = formFactory.createDescriptionElementSourceSection(parent, defaultSource, StoreUtil.getSectionStyle(DescriptionElementSourceSection.class, getInput().getClass().getCanonicalName()));
 
         }else{
-            descriptionElementSourceSection = formFactory.createDescriptionElementSourceSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(DescriptionElementSourceSection.class, getInput().getClass().getCanonicalName()) );
+            descriptionElementSourceSection = formFactory.createDescriptionElementSourceSection(parent, StoreUtil.getSectionStyle(DescriptionElementSourceSection.class, getInput().getClass().getCanonicalName()) );
+            descriptionElementSourceSection.setEnabled(this.detailsEnabled);
+
         }
 
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        DescriptionElementMediaSection descriptionElementMediaSection = formFactory.createDescriptionElementMediaSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(DescriptionElementMediaSection.class, getInput().getClass().getCanonicalName()));
+        DescriptionElementMediaSection descriptionElementMediaSection = formFactory.createDescriptionElementMediaSection(
+                parent, StoreUtil.getSectionStyle(DescriptionElementMediaSection.class, getInput().getClass().getCanonicalName()));
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
@@ -646,66 +675,69 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
         addPart(descriptionElementMediaSection);
     }
 
-    private void createDescriptionSection(RootElement parent, boolean isTaxonDescription) {
-        DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DescriptionDetailSection.class, getInput().getClass().getCanonicalName(), true));
+    private void createDescriptionSection(RootElement parent, boolean isTaxonDescription, boolean isEnabled) {
+        DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(parent, this, StoreUtil.getSectionStyle(DescriptionDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        descriptionDetailSection.setEnabled(isEnabled);
         addPart(descriptionDetailSection);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         if(isTaxonDescription) {
             NaturalLanguageSection naturalLanguageSection = formFactory.createNaturalLanguageSection(
-                    getConversationHolder(), parent, this, StoreUtil.getSectionStyle(NaturalLanguageSection.class, getInput().getClass().getCanonicalName(), true));
+                    parent, this, StoreUtil.getSectionStyle(NaturalLanguageSection.class, getInput().getClass().getCanonicalName(), true));
             formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+            naturalLanguageSection.setEnabled(isEnabled);
             addPart(naturalLanguageSection);
         }
         DescriptionSourceSection descriptionSourceSection = formFactory.createDescriptionSourceSection(
-                getConversationHolder(), parent, StoreUtil.getSectionStyle(DescriptionSourceSection.class, getInput().getClass().getCanonicalName(), true));
+                parent, StoreUtil.getSectionStyle(DescriptionSourceSection.class, getInput().getClass().getCanonicalName(), true));
+        descriptionSourceSection.setEnabled(isEnabled);
         addPart(descriptionSourceSection);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         if(isTaxonDescription) {
-            ScopeSection scopeSection = formFactory.createScopeSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(ScopeSection.class, getInput().getClass().getCanonicalName()));
+            ScopeSection scopeSection = formFactory.createScopeSection(parent, StoreUtil.getSectionStyle(ScopeSection.class, getInput().getClass().getCanonicalName()));
+            scopeSection.setEnabled(isEnabled);
             addPart(scopeSection);
         }
     }
 
-    private void createTaxonDescriptionSection(RootElement parent) {
-        createDescriptionSection(parent, true);
+    private void createTaxonDescriptionSection(RootElement parent, boolean isEnabled) {
+        createDescriptionSection(parent, true, isEnabled);
     }
 
     private void createSpecimenDescriptionSection(RootElement parent) {
-        createDescriptionSection(parent, false);
+        createDescriptionSection(parent, false, true);
     }
 
     private void createUseDescriptionSection(RootElement parent) {
-        DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DescriptionDetailSection.class, getInput().getClass().getCanonicalName()));
+        DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(parent, this, StoreUtil.getSectionStyle(DescriptionDetailSection.class, getInput().getClass().getCanonicalName()));
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        DescriptionSourceSection descriptionSourceSection = formFactory.createDescriptionSourceSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(DescriptionSourceSection.class, getInput().getClass().getCanonicalName()));
+        DescriptionSourceSection descriptionSourceSection = formFactory.createDescriptionSourceSection(parent, StoreUtil.getSectionStyle(DescriptionSourceSection.class, getInput().getClass().getCanonicalName()));
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         addPart(descriptionDetailSection);
         addPart(descriptionSourceSection);
-
     }
 
     private void createImageGallerySection(RootElement parent) {
-        DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DescriptionDetailSection.class, getInput().getClass().getCanonicalName()));
+        DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(parent, this, StoreUtil.getSectionStyle(DescriptionDetailSection.class, getInput().getClass().getCanonicalName()));
 
         addPart(descriptionDetailSection);
     }
 
     private void createMediaElementSection(RootElement parent) {
-        MediaDetailsSection mediaDetailSection = formFactory.createMediaDetailsSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(MediaDetailsSection.class, getInput().getClass().getCanonicalName(), true));
+        MediaDetailsSection mediaDetailSection = formFactory.createMediaDetailsSection(parent, this, StoreUtil.getSectionStyle(MediaDetailsSection.class, getInput().getClass().getCanonicalName(), true));
 
         addPart(mediaDetailSection);
     }
 
     private void createDerivedUnitBaseElementSection(RootElement parent) {
-        DerivedUnitGeneralDetailSection derivedUnitGeneralDetailSection = formFactory.createDerivedUnitGeneralDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DerivedUnitGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        DerivedUnitGeneralDetailSection derivedUnitGeneralDetailSection = formFactory.createDerivedUnitGeneralDetailSection(parent, this, StoreUtil.getSectionStyle(DerivedUnitGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
         //TODO for DerivateEditor do not use facade anymore to avoid this special case handling #4539
         if(!(AbstractUtility.getActivePart() instanceof IDerivedUnitFacadePart)){
             derivedUnitGeneralDetailSection.setShowOnlyDerivedUnitData(true);
@@ -714,93 +746,91 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        DerivedUnitBaseDetailSection derivedUnitBaseDetailSection = formFactory.createDerivedUnitBaseDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DerivedUnitBaseDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        DerivedUnitBaseDetailSection derivedUnitBaseDetailSection = formFactory.createDerivedUnitBaseDetailSection(parent, this, StoreUtil.getSectionStyle(DerivedUnitBaseDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(derivedUnitBaseDetailSection);
 
         //for editors working with facades
         if(AbstractUtility.getActivePart() instanceof IDerivedUnitFacadePart){
             formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-            GatheringEventDetailSection gatheringEventDetailSection = formFactory.createGatheringEventDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(GatheringEventDetailSection.class, getInput().getClass().getCanonicalName()));
+            GatheringEventDetailSection gatheringEventDetailSection = formFactory.createGatheringEventDetailSection(parent, this, StoreUtil.getSectionStyle(GatheringEventDetailSection.class, getInput().getClass().getCanonicalName()));
             addPart(gatheringEventDetailSection);
 
             formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-            FieldUnitDetailSection fieldUnitDetailSection = formFactory.createFieldUnitDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FieldUnitDetailSection.class, getInput().getClass().getCanonicalName()));
+            FieldUnitFacadeDetailSection fieldUnitDetailSection = formFactory.createFieldUnitFacadeDetailSection(parent, this, StoreUtil.getSectionStyle(FieldUnitFacadeDetailSection.class, getInput().getClass().getCanonicalName()));
             addPart(fieldUnitDetailSection);
         }
         else{
 
             if(PreferencesUtil.isShowTaxonAssociations()){
                 formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-                TaxonAssociationDetailSection taxonAssociationDetailSection = formFactory.createTaxonAssociationDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(TaxonAssociationDetailSection.class, getInput().getClass().getCanonicalName(), true));
+                TaxonAssociationDetailSection taxonAssociationDetailSection = formFactory.createTaxonAssociationDetailSection(parent, this, StoreUtil.getSectionStyle(TaxonAssociationDetailSection.class, getInput().getClass().getCanonicalName(), true));
                 addPart(taxonAssociationDetailSection);
             }
             formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-            DerivedUnitFacadeIdentifierSection identifierDetailSection = formFactory.createDerivedUnitFacadeIdentifierSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(DerivedUnitFacadeIdentifierSection.class, getInput().getClass().getCanonicalName()));
+            DerivedUnitFacadeIdentifierSection identifierDetailSection = formFactory.createDerivedUnitFacadeIdentifierSection(parent, StoreUtil.getSectionStyle(DerivedUnitFacadeIdentifierSection.class, getInput().getClass().getCanonicalName()));
             addPart(identifierDetailSection);
         }
         if(!PreferencesUtil.isDeterminationOnlyForFieldUnits()){
             formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-            DeterminationDetailSection determinationDetailSection = formFactory.createDeterminationDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DeterminationDetailSection.class, getInput().getClass().getCanonicalName()));
+            DeterminationDetailSection determinationDetailSection = formFactory.createDeterminationDetailSection(parent, this, StoreUtil.getSectionStyle(DeterminationDetailSection.class, getInput().getClass().getCanonicalName()));
             addPart(determinationDetailSection);
         }
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-        DerivedUnitTypeDesignationSection derivedUnitTypeDesignationSection = formFactory.createDerivedUnitTypeDesignationSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DerivedUnitTypeDesignationSection.class, getInput().getClass().getCanonicalName()));
+        DerivedUnitTypeDesignationSection derivedUnitTypeDesignationSection = formFactory.createDerivedUnitTypeDesignationSection(parent, this, StoreUtil.getSectionStyle(DerivedUnitTypeDesignationSection.class, getInput().getClass().getCanonicalName()));
         addPart(derivedUnitTypeDesignationSection);
-
     }
 
-    private void createFieldUnitSection(RootElement parent) {
-        FieldUnitGeneralDetailSection fielUnitGeneralDetailSection = formFactory.createFieldUnitGeneralDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FieldUnitGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
+    private void createFieldUnitFacadeSection(RootElement parent) {
+        FieldUnitFacadeGeneralDetailSection fielUnitGeneralDetailSection = formFactory.createFieldUnitFacadeGeneralDetailSection(parent, this, StoreUtil.getSectionStyle(FieldUnitFacadeGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        GatheringEventDetailSection gatheringEventDetailSection = formFactory.createGatheringEventDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(GatheringEventDetailSection.class, getInput().getClass().getCanonicalName()));
+        GatheringEventDetailSection gatheringEventDetailSection = formFactory.createGatheringEventDetailSection(parent, this, StoreUtil.getSectionStyle(GatheringEventDetailSection.class, getInput().getClass().getCanonicalName()));
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        FieldUnitDetailSection fieldUnitDetailSection = formFactory.createFieldUnitDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FieldUnitDetailSection.class, getInput().getClass().getCanonicalName()));
+        FieldUnitFacadeDetailSection fieldUnitDetailSection = formFactory.createFieldUnitFacadeDetailSection(parent, this, StoreUtil.getSectionStyle(FieldUnitFacadeDetailSection.class, getInput().getClass().getCanonicalName()));
 
         addPart(fielUnitGeneralDetailSection);
         addPart(gatheringEventDetailSection);
         addPart(fieldUnitDetailSection);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-        DeterminationDetailSection determinationDetailSection = formFactory.createDeterminationDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DeterminationDetailSection.class, getInput().getClass().getCanonicalName()));
+        DeterminationDetailSection determinationDetailSection = formFactory.createDeterminationDetailSection(parent, this, StoreUtil.getSectionStyle(DeterminationDetailSection.class, getInput().getClass().getCanonicalName()));
         addPart(determinationDetailSection);
-
     }
 
     private void createTissueSampleSection(RootElement parent) {
-        TissueSampleGeneralDetailSection section = formFactory.createTissueSampleGeneralDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(TissueSampleGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        TissueSampleGeneralDetailSection section = formFactory.createTissueSampleGeneralDetailSection(parent, this, StoreUtil.getSectionStyle(TissueSampleGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        SampleDesignationDetailSection sampleDesignationDetailSection = formFactory.createSampleDesignationDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(SampleDesignationDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        SampleDesignationDetailSection sampleDesignationDetailSection = formFactory.createSampleDesignationDetailSection(parent, this, StoreUtil.getSectionStyle(SampleDesignationDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         addPart(section);
         addPart(sampleDesignationDetailSection);
     }
 
     private void createDnaSampleSection(RootElement parent) {
-        DnaSampleGeneralDetailSection section = formFactory.createDnaSampleGeneralDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DnaSampleGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        DnaSampleGeneralDetailSection section = formFactory.createDnaSampleGeneralDetailSection(parent, this, StoreUtil.getSectionStyle(DnaSampleGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        DnaSamplePreparationPreservationSection preparationPreservationSection = formFactory.createDnaSamplePreparationPreservationSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DnaSamplePreparationPreservationSection.class, getInput().getClass().getCanonicalName(), true));
+        DnaSamplePreparationPreservationSection preparationPreservationSection = formFactory.createDnaSamplePreparationPreservationSection(parent, this, StoreUtil.getSectionStyle(DnaSamplePreparationPreservationSection.class, getInput().getClass().getCanonicalName(), true));
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        DnaQualityDetailSection qualitySection = formFactory.createDnaQualityDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DnaQualityDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        DnaQualityDetailSection qualitySection = formFactory.createDnaQualityDetailSection(parent, this, StoreUtil.getSectionStyle(DnaQualityDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        SampleDesignationDetailSection sampleDesignationDetailSection = formFactory.createSampleDesignationDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(SampleDesignationDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        SampleDesignationDetailSection sampleDesignationDetailSection = formFactory.createSampleDesignationDetailSection(parent, this, StoreUtil.getSectionStyle(SampleDesignationDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
         DeterminationDetailSection determinationDetailSection = null;
         if(!PreferencesUtil.isDeterminationOnlyForFieldUnits()){
-            determinationDetailSection = formFactory.createDeterminationDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DeterminationDetailSection.class, getInput().getClass().getCanonicalName()));
+            determinationDetailSection = formFactory.createDeterminationDetailSection(parent, this, StoreUtil.getSectionStyle(DeterminationDetailSection.class, getInput().getClass().getCanonicalName()));
         }
         addPart(section);
         addPart(preparationPreservationSection);
@@ -812,16 +842,15 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
     }
 
     private void createSequenceSection(RootElement parent) {
-        SequenceGeneralDetailSection section = formFactory.createSequenceGeneralDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(SequenceGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        SequenceGeneralDetailSection section = formFactory.createSequenceGeneralDetailSection(parent, this, StoreUtil.getSectionStyle(SequenceGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        SequenceReferenceCollectionDetailSection referenceSection = formFactory.createSequenceReferenceCollectionDetailSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(SequenceReferenceCollectionDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        SequenceReferenceCollectionDetailSection referenceSection = formFactory.createSequenceReferenceCollectionDetailSection(parent, StoreUtil.getSectionStyle(SequenceReferenceCollectionDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        SequenceContigFileCollectionDetailSection contigFileSection = formFactory.createSequenceContigFileCollectionDetailSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(SequenceContigFileCollectionDetailSection.class, getInput().getClass().getCanonicalName(), true));
-
+        SequenceContigFileCollectionDetailSection contigFileSection = formFactory.createSequenceContigFileCollectionDetailSection(parent, StoreUtil.getSectionStyle(SequenceContigFileCollectionDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         addPart(section);
         addPart(referenceSection);
@@ -829,62 +858,71 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
     }
 
     private void createSingleReadSection(RootElement parent) {
-        SingleReadGeneralDetailSection section = formFactory.createSingleReadGeneralDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(SingleReadGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        SingleReadGeneralDetailSection section = formFactory.createSingleReadGeneralDetailSection(parent, this, StoreUtil.getSectionStyle(SingleReadGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(section);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        SingleReadPherogramCollectionDetailSection pherogramSection = formFactory.createSingleReadPherogramCollectionDetailSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(SingleReadPherogramCollectionDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        SingleReadPherogramCollectionDetailSection pherogramSection = formFactory.createSingleReadPherogramCollectionDetailSection(parent, StoreUtil.getSectionStyle(SingleReadPherogramCollectionDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(pherogramSection);
-
     }
 
     private void createMediaSpecimenSection(RootElement parent) {
-        MediaSpecimenGeneralDetailSection generalSection = formFactory.createMediaSpecimenGeneralDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(MediaSpecimenGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        MediaSpecimenGeneralDetailSection generalSection = formFactory.createMediaSpecimenGeneralDetailSection(parent, this, StoreUtil.getSectionStyle(MediaSpecimenGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(generalSection);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        RightsSection rightsSection = formFactory.createRightsSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(RightsSection.class, getInput().getClass().getCanonicalName()));
+        RightsSection rightsSection = formFactory.createRightsSection(parent, StoreUtil.getSectionStyle(RightsSection.class, getInput().getClass().getCanonicalName()));
 //        rightsSection.setEntity(generalSection.getEntity().innerDerivedUnit());
         addPart(rightsSection);
-
     }
 
-    private void createFeatureTreeSection(RootElement parent) {
-        FeatureTreeDetailSection section = formFactory.createFeatureTreeDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FeatureTreeDetailSection.class, getInput().getClass().getCanonicalName(), true));
+    private void createFeatureTreeSectionForDto(RootElement parent) {
+        TermTreeDetailSection section = formFactory.createFeatureTreeDetailSection(parent, this, StoreUtil.getSectionStyle(TermTreeDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         addPart(section);
     }
+    private void createFeatureTreeSection(RootElement parent) {
+        TermTreeDetailSectionForNode section = formFactory.createFeatureTreeDetailSectionForTree(parent, this, StoreUtil.getSectionStyle(TermTreeDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        addPart(section);
+    }
 
     private void createFeatureNodeSection(RootElement parent) {
-        FeatureNodeDetailSection featureDistributionSection = formFactory.createFeatureNodeDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FeatureNodeDetailSection.class, getInput().getClass().getCanonicalName(), true));
-
+        TermNodeDetailSection featureDistributionSection = formFactory.createFeatureNodeDetailSection(parent, this, StoreUtil.getSectionStyle(TermNodeDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        addPart(featureDistributionSection);
+    }
+    private void createTermNodeSection(RootElement parent) {
+        TermNodeDetailSection featureDistributionSection = formFactory.createTermNodeDetailSection(parent, this, StoreUtil.getSectionStyle(TermNodeDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(featureDistributionSection);
     }
 
     private void createFeatureDistributionSection(RootElement parent) {
-        FeatureDistributionDetailSection featureDistributionSection = formFactory.createFeatureDistributionDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FeatureDistributionDetailSection.class, getInput().getClass().getCanonicalName(), true));
-
+        FeatureDistributionDetailSection featureDistributionSection = formFactory.createFeatureDistributionDetailSection(parent, this, StoreUtil.getSectionStyle(FeatureDistributionDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(featureDistributionSection);
     }
 
     private void createCharacterNodeSection(RootElement parent) {
-        CharacterNodeDetailSection featureDistributionSection = formFactory.createCharacterNodeDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(CharacterDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        CharacterNodeDetailSection featureDistributionSection = formFactory.createCharacterNodeDetailSection(parent, this, StoreUtil.getSectionStyle(CharacterDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        addPart(featureDistributionSection);
+    }
+
+    private void createCharacterNodeDtoSection(RootElement parent) {
+        CharacterNodeDtoDetailSection featureDistributionSection = formFactory.createCharacterNodeDtoDetailSection(parent, this, StoreUtil.getSectionStyle(CharacterDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(featureDistributionSection);
     }
 
     private void createCharacterSection(RootElement parent) {
-        CharacterDetailSection featureDistributionSection = formFactory.createCharacterDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(CharacterDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        CharacterDetailSection featureDistributionSection = formFactory.createCharacterDetailSection(parent, this, StoreUtil.getSectionStyle(CharacterDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(featureDistributionSection);
     }
 
     private void createPolytomousKeyNodeSection(RootElement parent) {
-        PolytomousKeyDetailSection polytomousKeyDetailSection = formFactory.createPolytomousKeyDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(PolytomousKeyDetailSection.class, getInput().getClass().getCanonicalName()));
+        PolytomousKeyDetailSection polytomousKeyDetailSection = formFactory.createPolytomousKeyDetailSection(parent, this, StoreUtil.getSectionStyle(PolytomousKeyDetailSection.class, getInput().getClass().getCanonicalName()));
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        PolytomousKeyNodeDetailSection polytomousKeyNodeDetailSection = formFactory.createPolytomousKeyNodeDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(PolytomousKeyNodeDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        PolytomousKeyNodeDetailSection polytomousKeyNodeDetailSection = formFactory.createPolytomousKeyNodeDetailSection(parent, this, StoreUtil.getSectionStyle(PolytomousKeyNodeDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         addPart(polytomousKeyDetailSection);
         addPart(polytomousKeyNodeDetailSection);
@@ -892,101 +930,105 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
     }
 
     private void createUseRecordSection(RootElement parent) {
-        UseRecordDetailSection descriptionUseRecordSection = formFactory.createUseRecordDetailSection(getConversationHolder(), parent, this,StoreUtil.getSectionStyle(UseRecordDetailSection.class, getInput().getClass().getCanonicalName(), true));
-
+        UseRecordDetailSection descriptionUseRecordSection = formFactory.createUseRecordDetailSection(parent, this,StoreUtil.getSectionStyle(UseRecordDetailSection.class, getInput().getClass().getCanonicalName(), true));
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
         addPart(descriptionUseRecordSection);
-
-
     }
 
     private void createUserSection(RootElement parent) {
-        UserDetailSection userDetailSection = formFactory.createUserDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(UserDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        UserDetailSection userDetailSection = formFactory.createUserDetailSection(parent, this, StoreUtil.getSectionStyle(UserDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
-        GroupsByUserDetailSection groupByUserDetailSection = formFactory.createGroupsByUserDetailSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(GroupsByUserDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        GroupsByUserDetailSection groupByUserDetailSection = formFactory.createGroupsByUserDetailSection(parent, StoreUtil.getSectionStyle(GroupsByUserDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
         addPart(userDetailSection);
         addPart(groupByUserDetailSection);
     }
 
     private void createMisappliedNameSection(RootElement parent) {
-        TaxonRelationshipDetailSection taxonRelationshipDetailSection = formFactory.createTaxonRelationshipDetailSection(getConversationHolder(), parent, this,
+        TaxonRelationshipDetailSection taxonRelationshipDetailSection = formFactory.createTaxonRelationshipDetailSection(parent, this,
                 StoreUtil.getSectionStyle(TaxonRelationshipDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(taxonRelationshipDetailSection);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-
         NonViralNameDetailSection nonViralNameSection = formFactory
-                .createNonViralNameDetailSection(getConversationHolder(), parent, this, true,
+                .createNonViralNameDetailSection(parent, this, true,
                         StoreUtil.getSectionStyle(NonViralNameDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(nonViralNameSection);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
-        NomenclaturalReferenceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(getConversationHolder(), parent, this,
-                StoreUtil.getSectionStyle(NomenclaturalReferenceDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        NomenclaturalSourceDetailSection referenceDetailSection = formFactory.createNomenclaturalReferenceDetailSection(parent, this,
+                StoreUtil.getSectionStyle(NomenclaturalSourceDetailSection.class, getInput().getClass().getCanonicalName(), true));
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
         addPart(referenceDetailSection);
 
-
-        NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent,
+        NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(parent,
                        StoreUtil.getSectionStyle(NomenclaturalStatusSection.class, getInput().getClass().getCanonicalName(), true));
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
         addPart(nomenclaturalStatusSection);
 
-               ProtologueSection protologSection = formFactory.createProtologueSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(ProtologueSection.class, getInput().getClass().getCanonicalName()));
-               formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-               addPart(protologSection);
-
-               TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(TypeDesignationSection.class, getInput().getClass().getCanonicalName()));
+               TypeDesignationSection typeDesignationSection = formFactory.createTypeDesignationSection(parent, StoreUtil.getSectionStyle(TypeDesignationSection.class, getInput().getClass().getCanonicalName()));
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                addPart(typeDesignationSection);
 
-               NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(NameRelationshipDetailSection.class, getInput().getClass().getCanonicalName()));
+               NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(parent, StoreUtil.getSectionStyle(NameRelationshipDetailSection.class, getInput().getClass().getCanonicalName()));
                formFactory.createHorizontalSeparator(parent, SWT.BORDER);
                addPart(nameRelationshipSection);
-
     }
 
     private void createTaxonRelationshipSection(RootElement parent) {
-        TaxonRelationshipDetailSection taxonRelationshipDetailSection = formFactory.createTaxonRelationshipDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(TaxonRelationshipDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        TaxonRelationshipDetailSection taxonRelationshipDetailSection = formFactory.createTaxonRelationshipDetailSection(parent, this, StoreUtil.getSectionStyle(TaxonRelationshipDetailSection.class, getInput().getClass().getCanonicalName(), true));
 
-        ReferencedEntityDetailSection referencedEntityBaseDetailSection = formFactory.createReferencedEntityDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(ReferencedEntityDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        ReferencedEntityDetailSection referencedEntityBaseDetailSection = formFactory.createReferencedEntityDetailSection(parent, this, StoreUtil.getSectionStyle(ReferencedEntityDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(taxonRelationshipDetailSection);
         addPart(referencedEntityBaseDetailSection);
     }
     private void createTermVocabularySection(RootElement parent) {
-        TermVocabularyDetailSection termVocabularyDetailSection = formFactory.createTermVocabularyDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(TermVocabularyDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        TermVocabularyDetailSection termVocabularyDetailSection = formFactory.createTermVocabularyDetailSection(parent, this, StoreUtil.getSectionStyle(TermVocabularyDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(termVocabularyDetailSection);
     }
 
     private void createDefinedTermSection(RootElement parent) {
-        DefinedTermDetailSection definedTermDetailSection = formFactory.createDefinedTermDetailSection(getInput().getClass(), getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DefinedTermDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        DefinedTermDetailSection<?> definedTermDetailSection = formFactory.createDefinedTermDetailSection(getInput().getClass(), parent, this, StoreUtil.getSectionStyle(DefinedTermDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(definedTermDetailSection);
-        TermMediaSection termMediaSection = formFactory.createTermMediaSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(DefinedTermDetailSection.class, getInput().getClass().getCanonicalName(), true));
+        TermMediaSection termMediaSection = formFactory.createTermMediaSection(parent, StoreUtil.getSectionStyle(DefinedTermDetailSection.class, getInput().getClass().getCanonicalName(), true));
         addPart(termMediaSection);
     }
 
-    @Override
-    public void update(CdmDataChangeMap arg0) {
 
-    }
     @Inject
     @Optional
     private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_DETAILS)boolean refresh){
         if(refresh){
-            refresh();
+               //refresh_withoutnew_build(); this would use the update without creation of all fields
+               if (needsRefresh) {
+                       refresh();
+               }
+               this.needsRefresh = false;
         }
     }
 
+    @Inject
+    @Optional
+    private void needsRefresh(@UIEventTopic(WorkbenchEventConstants.NEED_REFRESH_DETAILS)boolean enable){
+       for (IFormPart part :this.managedForm.getParts()) {
+          if (part instanceof CdmSectionPart) {
+                  ((CdmSectionPart)part).getSection().setEnabled(enable);
+                  this.setNeedsRefresh(!enable);
+
+          }
+       }
+
+
+    }
+
     @Inject
     @Optional
     private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_DETAILS_DISTRIBUTION)String nameCache){
         if(nameCache != null && getInput() instanceof Distribution && this.activePart instanceof IDistributionEditorPart){
-           if (part instanceof CdmSectionPart && ((CdmSectionPart)part).getSection() instanceof DescriptionElementDetailSection){
-               for (ICdmFormElement element: ((DescriptionElementDetailSection)((CdmSectionPart)part).getSection()).getElements()){
+           if (part instanceof CdmSectionPart && ((CdmSectionPart<?>)part).getSection() instanceof DescriptionElementDetailSection){
+               for (ICdmFormElement element: ((DescriptionElementDetailSection)((CdmSectionPart<?>)part).getSection()).getElements()){
                    if (element instanceof DescriptionElementDetailElement){
                        for(ICdmFormElement descriptionElement:((DescriptionElementDetailElement)element).getElements()){
                            if (descriptionElement instanceof DistributionDetailElement){
@@ -1000,4 +1042,4 @@ public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
     }
 
 
-}
+}
\ No newline at end of file
index f4420d7de21230f8471444425bf0fc46e1efe92b..79a0e87a94961d07446d03df3ca0a1fff4f0e9d6 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.view.e4.supplementaldata;
 
 import java.util.Set;
@@ -17,7 +16,6 @@ import javax.inject.Inject;
 import org.eclipse.e4.core.contexts.ContextInjectionFactory;
 import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.core.di.annotations.Optional;
-import org.eclipse.e4.core.services.log.Logger;
 import org.eclipse.e4.ui.di.UIEventTopic;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.jface.viewers.IStructuredSelection;
@@ -26,156 +24,172 @@ import org.eclipse.jface.viewers.TreeNode;
 import org.eclipse.swt.SWTException;
 import org.eclipse.swt.widgets.Composite;
 
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
+import eu.etaxonomy.cdm.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
+import eu.etaxonomy.cdm.model.term.TermBase;
 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.editor.ITaxonEditor;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermBasePropertyTester;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPartE4;
-
+import eu.etaxonomy.taxeditor.view.e4.AbstractCdmEditorPart;
 
 /**
- *
  * @author pplitzner
  * @since Aug 10, 2017
- *
  */
-public class SupplementalDataPartE4 extends AbstractCdmEditorPartE4 {
-       @Inject
-       private Logger logger;
+public class SupplementalDataPartE4 extends AbstractCdmEditorPart<SupplementalDataViewerE4> {
 
-       @Inject
+    @Inject
     public SupplementalDataPartE4() {
     }
 
-       @PostConstruct
-       public void create(Composite parent, MPart thisPart, IEclipseContext context) {
+    @PostConstruct
+    public void create(Composite parent, MPart thisPart, IEclipseContext context) {
 
-           this.thisPart = thisPart;
+        this.thisPart = thisPart;
 
-           viewer = ContextInjectionFactory.make(SupplementalDataViewerE4.class, context);
-           ((SupplementalDataViewerE4)viewer).init(parent, this);
-       }
+        viewer = ContextInjectionFactory.make(SupplementalDataViewerE4.class, context);
+        viewer.init(parent, this);
+    }
 
     @Override
     public void selectionChanged_internal(Object selection, MPart activePart, MPart thisPart) {
-           if(activePart==thisPart){
-               return;
-           }
-
-        Object partObject = createPartObject(activePart);
-
-           if(partObject instanceof IPartContentHasSupplementalData) {
-
-               IStructuredSelection structuredSelection = createSelection(selection);
-               if(structuredSelection==null || structuredSelection.isEmpty()){
-                   showEmptyPage();
-                   return;
-               }
-               if(structuredSelection.size() != 1){
-                   showEmptyPage();
-                   return;
-               }
-               if (partObject instanceof ITaxonEditor && structuredSelection.getFirstElement() instanceof Taxon ){
-                   if (((ITaxonEditor)partObject).getTaxon() != structuredSelection.getFirstElement() && ((Taxon)structuredSelection.getFirstElement()).isMisapplication()){
-                       Set<TaxonRelationship> rels =((Taxon)structuredSelection.getFirstElement()).getTaxonRelations(((ITaxonEditor)partObject).getTaxon());
-                       if (rels != null && rels.size() == 1){
-                           structuredSelection = new StructuredSelection(rels.iterator().next());
-                       }else{
-                           showEmptyPage();
-                           return;
-                       }
-
-                   }
-               }
-               // do not show supplemental data for feature nodes
-               if(structuredSelection.getFirstElement() instanceof FeatureNodeContainer){
-                   showEmptyPage();
-                   return;
-               }
-
-               else if(structuredSelection.getFirstElement() instanceof DerivedUnitFacade){
-                   return;
-               }
-               else if(structuredSelection.getFirstElement() instanceof PolytomousKeyNode){
-                   structuredSelection = new StructuredSelection(((PolytomousKeyNode)structuredSelection.getFirstElement()).getKey());
-               }
-               else if(structuredSelection.getFirstElement() instanceof TreeNode){
-                   structuredSelection = new StructuredSelection(((TreeNode)structuredSelection.getFirstElement()).getValue());
-               }
-               else if(structuredSelection.getFirstElement() instanceof GbifResponse){
-                   structuredSelection = new StructuredSelection(((GbifResponse)structuredSelection.getFirstElement()).getDerivedUnitFacade().innerDerivedUnit());
-               }
-               else if(structuredSelection.getFirstElement() instanceof DescriptionElementBase ){
+        if (activePart == thisPart) {
+            return;
+        }
+        // setEnabled(true);
+        Object partObject = getPartObject(activePart);
+
+        if (partObject instanceof IPartContentHasSupplementalData) {
+            setEnabled(true);
+
+            IStructuredSelection structuredSelection = createSelection(selection);
+            if (structuredSelection == null || structuredSelection.isEmpty()) {
+                showEmptyPage();
+                return;
+            }
+            if (structuredSelection.size() != 1) {
+                showEmptyPage();
+                return;
+            }
+            if (partObject instanceof ITaxonEditor && structuredSelection.getFirstElement() instanceof Taxon) {
+                if (((ITaxonEditor) partObject).getTaxon() != structuredSelection.getFirstElement()
+                        && ((Taxon) structuredSelection.getFirstElement()).isMisapplication()) {
+                    Set<TaxonRelationship> rels = ((Taxon) structuredSelection.getFirstElement())
+                            .getTaxonRelations(((ITaxonEditor) partObject).getTaxon());
+                    if (rels != null && rels.size() == 1) {
+                        structuredSelection = new StructuredSelection(rels.iterator().next());
+                    } else {
+                        showEmptyPage();
+                        return;
+                    }
+                }
+            }
+            // do not show supplemental data for feature nodes
+            if (structuredSelection.getFirstElement() instanceof FeatureNodeContainer) {
+                showEmptyPage();
+                return;
+            }
+
+            else if (structuredSelection.getFirstElement() instanceof DerivedUnitFacade) {
+                return;
+            } else if (structuredSelection.getFirstElement() instanceof PolytomousKeyNode) {
+                structuredSelection = new StructuredSelection(
+                        ((PolytomousKeyNode) structuredSelection.getFirstElement()).getKey());
+            } else if (structuredSelection.getFirstElement() instanceof TreeNode) {
+                structuredSelection = new StructuredSelection(
+                        ((TreeNode) structuredSelection.getFirstElement()).getValue());
+            } else if (structuredSelection.getFirstElement() instanceof GbifResponse) {
+                structuredSelection = new StructuredSelection(((GbifResponse) structuredSelection.getFirstElement())
+                        .getDerivedUnitFacade().innerDerivedUnit());
+            } else if (structuredSelection.getFirstElement() instanceof DescriptionElementBase) {
                 structuredSelection = new StructuredSelection((structuredSelection.getFirstElement()));
+
+                if (((DescriptionElementBase) structuredSelection.getFirstElement()).getInDescription() != null
+                        && (((DescriptionElementBase) structuredSelection.getFirstElement()).getInDescription()
+                                .isComputed()
+                                || ((DescriptionElementBase) structuredSelection.getFirstElement()).getInDescription()
+                                        .isCloneForSource())) {
+                    if (PreferencesUtil.isComputedDesciptionHandlingDisabled()) {
+                        setEnabled(false);
+                    } else {
+                        setEnabled(true);
+                    }
+                }
+            } else if (structuredSelection.getFirstElement() instanceof DescriptionBase) {
+
+                if (((DescriptionBase<?>) structuredSelection.getFirstElement()).isComputed()
+                        || ((DescriptionBase<?>) structuredSelection.getFirstElement()).isCloneForSource()) {
+                    if (PreferencesUtil.isComputedDesciptionHandlingDisabled()) {
+                        setEnabled(false);
+                    } else {
+                        setEnabled(true);
+                    }
+                }
+            } else if (structuredSelection.getFirstElement() instanceof TermDto
+                    || structuredSelection.getFirstElement() instanceof TermVocabularyDto
+                    || structuredSelection.getFirstElement() instanceof TermNodeDto) {
+                showViewer(structuredSelection, activePart, viewer);
+                setEnabled(TermBasePropertyTester.isModifiable(structuredSelection.getFirstElement()));
+                viewer.setEnabled(isEnabled());
+                return;
+            }
+
+            if (!(structuredSelection.getFirstElement() instanceof ICdmBase)) {
+                showEmptyPage();
+                return;
             }
-               else if(structuredSelection.getFirstElement() instanceof TermDto
-                       || structuredSelection.getFirstElement() instanceof TermVocabularyDto){
-                   showViewer(structuredSelection, activePart, viewer);
-                   return;
-               }
-
-
-               if(!(structuredSelection.getFirstElement() instanceof ICdmBase)){
-                   showEmptyPage();
-                   return;
-               }
-               showViewer(structuredSelection, activePart, viewer);
-               ((SupplementalDataViewerE4)viewer).setEnabled(isEnabled());
-
-
-               return;
-           }
-        else{
-               showEmptyPage();
-               return;
-           }
-       }
-
-    /**
-     * {@inheritDoc}
-     */
+            if (structuredSelection.getFirstElement() instanceof TermBase) {
+                setEnabled(TermBasePropertyTester.isModifiable(structuredSelection.getFirstElement()));
+            }
+            showViewer(structuredSelection, activePart, viewer);
+            viewer.setEnabled(isEnabled());
+
+            return;
+        } else {
+            showEmptyPage();
+            return;
+        }
+    }
+
     @Override
     protected void showEmptyPage() {
         super.showEmptyPage();
-        if(viewer!=null && viewer.getControl()!=null && !viewer.getControl().isDisposed()){
-               try{
-                       ((SupplementalDataViewerE4)viewer).destroySections();
-               }catch (SWTException e){
-                       if (PreferencesUtil.isShowUpWidgetIsDisposedMessages() && e.getMessage().equals("Widget is disposed")){
-                    MessagingUtils.errorDialog("Widget is disposed",
-                            null,
-                            MessagingUtils.WIDGET_IS_DISPOSED_MESSAGE,
-                            null,
-                            e,
-                            true);
-
+        if (viewer != null && viewer.getControl() != null && !viewer.getControl().isDisposed()) {
+            try {
+                viewer.destroySections();
+            } catch (SWTException e) {
+                if (PreferencesUtil.isShowUpWidgetIsDisposedMessages() && e.getMessage().equals("Widget is disposed")) {
+                    MessagingUtils.errorDialog("Widget is disposed", null, MessagingUtils.WIDGET_IS_DISPOSED_MESSAGE,
+                            null, e, true);
                 }
-               }
+            }
         }
     }
 
-       @Override
+    @Override
     protected String getViewName() {
-               return Messages.SupplementalDataViewPart_VIEWER_NAME;
-       }
+        return Messages.SupplementalDataViewPart_VIEWER_NAME;
+    }
 
-       @Inject
+    @Inject
     @Optional
-    private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_SUPPLEMENTAL)boolean refresh){
-        if(refresh){
+    private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_SUPPLEMENTAL) boolean refresh) {
+        if (refresh) {
             viewer.refresh();
         }
     }
-}
+}
\ No newline at end of file
index 40f2fc5f00422e05f812f905e894ef8de316be7e..23c45bd6fd1836530f127f03fb54b64db5c62af2 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.view.e4.supplementaldata;
 
 import javax.inject.Inject;
@@ -26,49 +25,47 @@ import eu.etaxonomy.cdm.model.media.IdentifiableMediaEntity;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
 import eu.etaxonomy.cdm.model.reference.ISourceable;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.cdm.persistence.dto.IAnnotatableDto;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.model.IElementHasDetails;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.ui.element.RootElement;
 import eu.etaxonomy.taxeditor.ui.section.media.MediaSection;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.AnnotationDtoSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.AnnotationSection;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.CdmBaseDtoSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.CdmBaseSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.CreditSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.ExtensionSection;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.HeadlineDtoSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.HeadlineSection;
+import eu.etaxonomy.taxeditor.ui.section.supplemental.MarkerDtoSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.MarkerSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.SourceSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.VersionSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.identifier.IdentifierSection;
 import eu.etaxonomy.taxeditor.view.detail.CdmSectionPart;
-import eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewerE4;
+import eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewer;
 
 /**
- *
  * @author pplitzner
  * @since Aug 10, 2017
- *
  */
-public class SupplementalDataViewerE4 extends AbstractCdmDataViewerE4 {
+public class SupplementalDataViewerE4 extends AbstractCdmDataViewer {
 
        private boolean showDebug;
 
-       /** {@inheritDoc} */
        @Override
        public ISelection getSelection() {
                return null;
        }
 
-       /** {@inheritDoc} */
        @Override
        public void setSelection(ISelection selection, boolean reveal) {
-
        }
 
-       /** {@inheritDoc} */
        @Override
        protected void showParts() {
 
@@ -83,12 +80,20 @@ public class SupplementalDataViewerE4 extends AbstractCdmDataViewerE4 {
                }
 
                destroySections();
+
                //1. Headline
-               createHeadlineSection(rootElement);
+               if (input instanceof IAnnotatableDto) {
+                   createHeadlineDtoSection(rootElement);
+               }else {
+                   createHeadlineSection(rootElement);
+               }
                //2. Annotatable entitiy
-               if(input instanceof AnnotatableEntity){
+               if(input instanceof AnnotatableEntity ){
                                createAnnotationSections(rootElement);
                }
+               if(input instanceof IAnnotatableDto ){
+            createAnnotationDtoSections(rootElement);
+               }
                //3. Identifiable entity
                if(input instanceof IdentifiableEntity){
                        createIdentifiableSections(rootElement);
@@ -104,13 +109,18 @@ public class SupplementalDataViewerE4 extends AbstractCdmDataViewerE4 {
                if(input instanceof IdentifiableMediaEntity){
                        createIdentifiableMediaSections(rootElement);
                }
+
                //5. Versionable
                if(input instanceof VersionableEntity){
                                createVersionSection(rootElement);
                }
                //6. CdmBase
-               if(showDebug){
-                       createCdmBaseSection(rootElement);
+               if(showDebug ){
+                   if (input instanceof IAnnotatableDto) {
+                       createCdmBaseDtoSection(rootElement);
+                   }else {
+                       createCdmBaseSection(rootElement);
+                   }
                }
 
                layout();
@@ -121,46 +131,66 @@ public class SupplementalDataViewerE4 extends AbstractCdmDataViewerE4 {
                addPart(headlineSection);
        }
 
+       private void createHeadlineDtoSection(RootElement parent){
+        HeadlineDtoSection headlineSection = formFactory.createHeadlineDtoSection(parent);
+        addPart(headlineSection);
+    }
+
        private void createSourceSection(RootElement parent){
            int expandStyle = StoreUtil.getSectionStyle(SourceSection.class, getInput().getClass().getCanonicalName(), false);
-        SourceSection sourceSection =  formFactory.createSourceSection(getConversationHolder(), parent, expandStyle);
+        SourceSection sourceSection =  formFactory.createSourceSection(parent, expandStyle);
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
         addPart(sourceSection);
     }
 
     private void createAnnotationSections(RootElement parent) {
         int expandStyle = StoreUtil.getSectionStyle(AnnotationSection.class, getInput().getClass().getCanonicalName(), false);
-        AnnotationSection annotationSection = formFactory.createAnnotationSection(getConversationHolder(), parent, expandStyle);
+        AnnotationSection annotationSection = formFactory.createAnnotationSection(parent, expandStyle);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
         expandStyle = StoreUtil.getSectionStyle(MarkerSection.class, getInput().getClass().getCanonicalName(), false);
-        MarkerSection markerSection = formFactory.createMarkerSection(getConversationHolder(), parent, expandStyle);
+        MarkerSection markerSection = formFactory.createMarkerSection(parent, expandStyle);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         addPart(annotationSection);
         addPart(markerSection);
+
     }
 
+    private void createAnnotationDtoSections(RootElement parent) {
+        int expandStyle = StoreUtil.getSectionStyle(AnnotationSection.class, getInput().getClass().getCanonicalName(), false);
+        AnnotationDtoSection annotationSection = formFactory.createAnnotationDtoSection(parent, expandStyle);
+
+        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+        expandStyle = StoreUtil.getSectionStyle(MarkerSection.class, getInput().getClass().getCanonicalName(), false);
+        MarkerDtoSection markerSection = formFactory.createMarkerDtoSection(parent, expandStyle);
+
+        formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+
+        addPart(annotationSection);
+        addPart(markerSection);
+
+    }
     private void createIdentifiableSections(RootElement parent) {
         int expandStyle = StoreUtil.getSectionStyle(SourceSection.class, getInput().getClass().getCanonicalName(), false);
-        SourceSection sourceSection = formFactory.createSourceSection(getConversationHolder(), parent, expandStyle);
+        SourceSection sourceSection = formFactory.createSourceSection(parent, expandStyle);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
         expandStyle =  StoreUtil.getSectionStyle(IdentifierSection.class, getInput().getClass().getCanonicalName(), false);
-        IdentifierSection identifierSection = formFactory.createIdentifierDetailSection(getConversationHolder(), parent, expandStyle);
+        IdentifierSection identifierSection = formFactory.createIdentifierDetailSection(parent, expandStyle);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
         expandStyle =  StoreUtil.getSectionStyle(ExtensionSection.class, getInput().getClass().getCanonicalName(), false);
-        ExtensionSection extensionSection = formFactory.createExtensionSection(getConversationHolder(), parent, expandStyle);
+        ExtensionSection extensionSection = formFactory.createExtensionSection(parent, expandStyle);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
         expandStyle =  StoreUtil.getSectionStyle(CreditSection.class, getInput().getClass().getCanonicalName(), false);
-        CreditSection creditSection = formFactory.createCreditSection(getConversationHolder(), parent, expandStyle);
+        CreditSection creditSection = formFactory.createCreditSection(parent, expandStyle);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
         expandStyle =  StoreUtil.getSectionStyle(RightsSection.class, getInput().getClass().getCanonicalName(), false);
-        RightsSection rightsSection = formFactory.createRightsSection(getConversationHolder(), parent, expandStyle);
+        RightsSection rightsSection = formFactory.createRightsSection(parent, expandStyle);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
@@ -174,13 +204,14 @@ public class SupplementalDataViewerE4 extends AbstractCdmDataViewerE4 {
 
     private void createIdentifiableMediaSections(RootElement parent) {
         int expandStyle = StoreUtil.getSectionStyle(MediaSection.class, getInput().getClass().getCanonicalName(), false);
-        MediaSection mediaSection = formFactory.createMediaSection(getConversationHolder(), parent, expandStyle);
+        MediaSection mediaSection = formFactory.createMediaSection(parent, expandStyle);
 
         formFactory.createHorizontalSeparator(parent, SWT.BORDER);
 
         addPart(mediaSection);
     }
 
+
        private void createVersionSection(RootElement parent){
                VersionSection versionSection = formFactory.createVersionSection(parent, ExpandableComposite.NO_TITLE);
                addPart(versionSection);
@@ -191,9 +222,10 @@ public class SupplementalDataViewerE4 extends AbstractCdmDataViewerE4 {
                addPart(cdmBaseSection);
        }
 
-       @Override
-       public void update(CdmDataChangeMap arg0) {
-       }
+       private void createCdmBaseDtoSection(RootElement parent) {
+        CdmBaseDtoSection cdmBaseSection = formFactory.createCdmBaseDtoSection(parent, ExpandableComposite.NO_TITLE);
+        addPart(cdmBaseSection);
+    }
 
        @Inject
     @Optional
@@ -205,11 +237,9 @@ public class SupplementalDataViewerE4 extends AbstractCdmDataViewerE4 {
 
        public void setEnabled(boolean doEnable){
            for (IFormPart section: this.managedForm.getParts()){
-               if (section instanceof CdmSectionPart && !((CdmSectionPart)section).getSection().isDisposed()){
-                   ((CdmSectionPart)section).getSection().setEnabled(doEnable);
+               if (section instanceof CdmSectionPart && !((CdmSectionPart<?>)section).getSection().isDisposed()){
+                   ((CdmSectionPart<?>)section).getSection().setEnabled(doEnable);
                }
            }
-
        }
-
-}
+}
\ No newline at end of file
@@ -6,8 +6,7 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
-package eu.etaxonomy.taxeditor.editor.view.checklist;
+package eu.etaxonomy.taxeditor.view.remoteserver;
 
 import java.util.List;
 
@@ -15,22 +14,19 @@ import org.eclipse.jface.viewers.IStructuredContentProvider;
 import org.eclipse.jface.viewers.Viewer;
 
 /**
- * @author a.oppermann
- * @created 30.04.2014
+ * <p>CdmDataSourceContentProvider class.</p>
+ *
+ * @author n.hoffmann
+ * @created 14.04.2009
  */
-public class ChecklistContentProvider implements IStructuredContentProvider {
+public class CdmRemoteServerContentProvider implements IStructuredContentProvider {
 
-       /**
-        * <p>dispose</p>
-        */
        @Override
     public void dispose() {
-
        }
 
        @Override
     public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
        }
 
        @Override
@@ -40,4 +36,4 @@ public class ChecklistContentProvider implements IStructuredContentProvider {
                }
                return new Object[]{};
        }
-}
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/CdmRemoteServerLabelProvider.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/CdmRemoteServerLabelProvider.java
new file mode 100644 (file)
index 0000000..9e0f372
--- /dev/null
@@ -0,0 +1,88 @@
+/**
+* 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.view.remoteserver;
+
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+
+import eu.etaxonomy.cdm.config.ICdmSource;
+import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
+import eu.etaxonomy.cdm.database.ICdmDataSource;
+import eu.etaxonomy.cdm.model.metadata.CdmMetaDataPropertyName;
+import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfo;
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * <p>CdmDataSourceLabelProvider class.</p>
+ *
+ * @author n.hoffmann
+ * @created 14.04.2009
+ */
+public class CdmRemoteServerLabelProvider extends LabelProvider implements ITableLabelProvider {
+
+       /** {@inheritDoc} */
+       @Override
+    public Image getColumnImage(Object element, int columnIndex) {
+               
+
+               return null;
+       }
+
+       /** {@inheritDoc} */
+       @Override
+    public String getColumnText(Object element, int columnIndex) {
+               CdmServerInfoConfig serverInfo = (CdmServerInfoConfig) element;
+
+               
+               switch (columnIndex){
+                       case 0:
+                               return serverInfo.getName();
+                       case 1:
+                               return serverInfo.getServer();                  
+                       case 2:
+                               return serverInfo.getPort() != null?String.valueOf(serverInfo.getPort()): "";
+                       case 3:
+                               return serverInfo.getPrefix();  
+                       case 4:
+                               return String.valueOf(!serverInfo.isIgnoreCdmLibVersion());
+               }
+               return null;
+       }
+
+       
+
+    @Override
+    public void addListener(ILabelProviderListener listener) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void dispose() {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public boolean isLabelProperty(Object element, String property) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public void removeListener(ILabelProviderListener listener) {
+        // TODO Auto-generated method stub
+
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/CdmRemoteServerViewPart.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/CdmRemoteServerViewPart.java
new file mode 100644 (file)
index 0000000..8fc843c
--- /dev/null
@@ -0,0 +1,247 @@
+/**
+* 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.view.remoteserver;
+
+import java.util.List;
+
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
+
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.di.Focus;
+import org.eclipse.e4.ui.di.UIEventTopic;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.services.EMenuService;
+import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
+import eu.etaxonomy.taxeditor.view.remoteserver.common.CdmRemoteServerRepository;
+import eu.etaxonomy.taxeditor.view.remoteserver.common.CdmRemoteServerViewerComparator;
+import eu.etaxonomy.taxeditor.view.remoteserver.wizard.CdmRemoteServerWizard;
+
+/**
+ * @author kluther
+ * @date 20.01.2023
+ */
+public class CdmRemoteServerViewPart {
+
+   // private static final Logger logger = LogManager.getLogger(CdmRemoteServerViewPart.class);
+
+    @Inject
+    private UISynchronize sync;
+
+       
+
+       private class RemoteServerJob extends Job{
+
+               private final List<CdmServerInfoConfig> cdmSources;
+
+               public RemoteServerJob(String title, List<CdmServerInfoConfig> cdmSources) {
+                       super(title);
+                       this.cdmSources = cdmSources;
+               }
+
+               @Override
+               public IStatus run(final IProgressMonitor monitor) {
+                       try{
+                               //logger.debug("Begin of eclipse core runtime Job to Retrieve datasources"); //$NON-NLS-1$
+                               monitor.beginTask("Retrieving datasources", cdmSources.size() + 1);                      //$NON-NLS-1$
+
+                               
+
+                               sync.asyncExec(()->viewer.setInput(this.cdmSources));
+
+                               monitor.worked(1);
+
+                               for(final CdmServerInfoConfig container : cdmSources){
+                                       sync.asyncExec(()-> {
+                                                       viewer.update(container, null);
+                                               }
+                                       );
+                                       monitor.worked(1);
+                               }
+
+                       }finally{
+                               monitor.done();
+                       }
+                       return Status.OK_STATUS;
+               }
+       }
+
+       private TableViewer viewer;
+
+//     private CdmRemoteServerViewerComparator comparator;
+
+       public CdmRemoteServerViewPart(){
+       }
+
+    private ISelectionChangedListener selectionChangedListener;
+
+    @Inject
+    private ESelectionService selService;
+
+    @PostConstruct
+    public void create(Composite parent, EMenuService menuService) {
+               // Create top composite
+               FillLayout fillLayout = new FillLayout();
+               fillLayout.marginWidth = 0;
+               fillLayout.marginHeight = 0;
+               fillLayout.type = SWT.VERTICAL;
+               parent.setLayout(fillLayout);
+
+               viewer = new TableViewer(parent, SWT.H_SCROLL
+                                                                                               | SWT.V_SCROLL | SWT.FULL_SELECTION);
+
+               createColumns(viewer);
+
+               viewer.setContentProvider(new CdmRemoteServerContentProvider());
+               viewer.setLabelProvider(new CdmRemoteServerLabelProvider());
+//             comparator = new CdmRemoteServerViewerComparator();
+//             viewer.setComparator(comparator);
+
+        // Propagate selection from viewer
+        selectionChangedListener = (event -> selService.setSelection(event.getSelection()));
+        viewer.addSelectionChangedListener(selectionChangedListener);
+        viewer.getControl().addMouseListener(new MouseListener() {
+                       
+                       @Override
+                       public void mouseUp(MouseEvent e) {
+                               // TODO Auto-generated method stub
+                               
+                       }
+                       
+                       @Override
+                       public void mouseDown(MouseEvent e) {
+                               // TODO Auto-generated method stub
+                               
+                       }
+                       
+                       @Override
+                       public void mouseDoubleClick(MouseEvent e) {
+                               StructuredSelection sel = (StructuredSelection) viewer.getSelection();
+                               if (sel.getFirstElement() instanceof CdmServerInfoConfig) {
+                                       CdmServerInfoConfig container = (CdmServerInfoConfig) sel.getFirstElement();
+                                       Wizard wizard = new CdmRemoteServerWizard(container, CdmRemoteServerWizard.Mode.EDIT);
+                                       WizardDialog dialog = new WizardDialog(null, wizard);
+                                       int result = dialog.open();
+                                       if(result == IStatus.OK){
+                                               if(viewer != null){
+                                                       viewer.update(container, null);
+                                               }
+                                       }
+                               }
+                       }
+               });
+
+        //create context menu
+        menuService.registerContextMenu(viewer.getControl(), "eu.etaxonomy.taxeditor.local.popupmenu.remoteServerViewPart");
+
+               refresh();
+       }
+
+
+       // This will create the columns for the table
+       private void createColumns(TableViewer viewer) {
+               Table table = viewer.getTable();
+
+               String[] titles = {"Name", "Server",  "Port", "Prefix", "Check version"};
+               int[] bounds = { 200, 200, 100, 50, 100 };
+
+               for (int i = 0; i < titles.length; i++) {
+                       TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
+                       column.getColumn().setText(titles[i]);
+                       column.getColumn().setWidth(bounds[i]);
+                       column.getColumn().setResizable(true);
+                       column.getColumn().setMoveable(true);
+                       column.getColumn().addSelectionListener(getSelectionAdapter(column.getColumn(), i));
+                       
+                       if(i == 1){
+                               table.setSortColumn(column.getColumn());
+                       }
+               }
+               table.setHeaderVisible(true);
+               table.setLinesVisible(true);
+               table.setSortDirection(SWT.UP);
+       }
+
+    @Inject
+    @Optional
+    private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_DATASOURCE)boolean refresh){
+        if(refresh){
+            refresh();
+        }
+    }
+
+       public void refresh(){
+               RemoteServerJob dataSourceJob = new RemoteServerJob(Messages.CdmDataSourceViewPart_1, CdmRemoteServerRepository.getAll());
+               dataSourceJob.schedule();
+       }
+       
+       @Focus
+       public void setFocus() {
+           if (viewer.getControl() != null && !viewer.getControl().isDisposed()) {
+            viewer.getControl().setFocus();
+        }
+       }
+
+       public StructuredViewer getViewer() {
+               return viewer;
+       }
+
+//     public IWorkbenchSiteProgressService getService() {
+//             return service;
+//     }
+
+       private SelectionAdapter getSelectionAdapter(final TableColumn column,
+                       final int index) {
+               SelectionAdapter selectionAdapter = new SelectionAdapter() {
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+//                             comparator.setColumn(index);
+                               int dir = viewer.getTable().getSortDirection();
+                               if (viewer.getTable().getSortColumn() == column) {
+                                       dir = dir == SWT.UP ? SWT.DOWN : SWT.UP;
+                               } else {
+                                       dir = SWT.DOWN;
+                               }
+                               viewer.getTable().setSortDirection(dir);
+                               viewer.getTable().setSortColumn(column);
+                               viewer.refresh();
+                       }
+               };
+               return selectionAdapter;
+       }
+       
+       
+       
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/common/CdmRemoteServerRepository.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/common/CdmRemoteServerRepository.java
new file mode 100644 (file)
index 0000000..bdf3eb1
--- /dev/null
@@ -0,0 +1,150 @@
+/**
+ * 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.
+ *
+ * @author n.hoffmann
+ */
+package eu.etaxonomy.taxeditor.view.remoteserver.common;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import eu.etaxonomy.cdm.config.ConfigFileUtil;
+import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSourceException;
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfo;
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
+
+public class CdmRemoteServerRepository{
+
+       private static final String DEFAULT_REMOTE_SERVER_FILENAME = "cdm_remote_servers.json";
+
+       static List<CdmServerInfoConfig> cdmServerList = new ArrayList<>();
+
+
+
+       public static boolean delete(CdmServerInfoConfig remoteServerConfig) {
+               cdmServerList.remove(remoteServerConfig);
+               save();
+               return true;
+       }
+
+       public static Integer check(CdmServerInfoConfig remoteServerConfig) {
+
+           int index = 0;
+               for (CdmServerInfoConfig server: cdmServerList) {
+                       if (server.getName().equals(remoteServerConfig.getName())) {
+                           return index;
+                       }
+                       index++;
+               }
+               return null;
+
+       }
+
+       public static boolean add(CdmServerInfoConfig newRemoteServer) {
+//             if (cdmServerList.containsKey(newRemoteServer)) {
+//                     return false;
+//             }
+
+               cdmServerList.add(newRemoteServer);
+               return true;
+       }
+
+       public static boolean update(CdmServerInfoConfig updatedRemoteServer, String oldName) {
+               int i = 0;
+               boolean contains = false;
+               for (CdmServerInfoConfig server: cdmServerList) {
+                       if (server.getName().equals(oldName)) {
+                               contains = true;
+                               break;
+                       }
+               }
+               if (contains) {
+                       cdmServerList.remove(i);
+               }
+               cdmServerList.add(i, updatedRemoteServer);
+               return true;
+       }
+
+       public static boolean moveUp(CdmServerInfoConfig updatedRemoteServer) {
+        int i = 0;
+        boolean contains = false;
+        for (CdmServerInfoConfig server: cdmServerList) {
+            if (server.getName().equals(updatedRemoteServer.getName())) {
+                contains = true;
+                break;
+            }
+            i++;
+        }
+        if (contains) {
+            cdmServerList.remove(i);
+        }
+
+        cdmServerList.add(--i, updatedRemoteServer);
+        return true;
+    }
+
+       public static boolean moveDown(CdmServerInfoConfig updatedRemoteServer) {
+        int i = 0;
+        boolean contains = false;
+        for (CdmServerInfoConfig server: cdmServerList) {
+            if (server.getName().equals(updatedRemoteServer.getName())) {
+                contains = true;
+                break;
+            }
+            i++;
+        }
+        if (contains) {
+            cdmServerList.remove(i);
+        }
+
+        cdmServerList.add(++i, updatedRemoteServer);
+        return true;
+    }
+
+       public static List<CdmServerInfoConfig> getAll() {
+               List<CdmServerInfoConfig> cdmServers = null;
+               try {
+                       cdmServerList.clear();
+                       File file = new File(ConfigFileUtil.perUserCdmFolderFallback(), DEFAULT_REMOTE_SERVER_FILENAME);
+                       cdmServers = CdmServerInfo.loadFromConfigFile(file);
+                       for (CdmServerInfoConfig server: cdmServers) {
+                               cdmServerList.add(server);
+                       }
+               } catch (Exception e) {
+                       // TODO Auto-generated catch block
+                       e.printStackTrace();
+               }
+
+               return cdmServers;
+       }
+
+
+
+
+
+       /**
+        * <p>save</p>
+        *
+        * @param dataSource a {@link eu.etaxonomy.cdm.database.ICdmDataSource} object.
+        * @param strDataSourceName a {@link java.lang.String} object.
+        * @return a {@link eu.etaxonomy.cdm.database.CdmPersistentDataSource} object.
+        * @throws CdmRemoteSourceException
+        */
+       public static boolean save()  {
+               File file = new File(ConfigFileUtil.perUserCdmFolderFallback(), DEFAULT_REMOTE_SERVER_FILENAME);
+               return CdmServerInfo.saveToConfigFile(cdmServerList, file);
+       }
+
+
+
+
+
+
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/common/CdmRemoteServerViewerComparator.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/common/CdmRemoteServerViewerComparator.java
new file mode 100644 (file)
index 0000000..243547e
--- /dev/null
@@ -0,0 +1,88 @@
+/**
+* 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.view.remoteserver.common;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerComparator;
+
+import eu.etaxonomy.cdm.config.ICdmSource;
+import eu.etaxonomy.cdm.database.ICdmDataSource;
+import eu.etaxonomy.cdm.model.metadata.CdmMetaDataPropertyName;
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
+
+/**
+ * @author n.hoffmann
+ * @created Dec 8, 2010
+ */
+public class CdmRemoteServerViewerComparator extends ViewerComparator {
+
+       private int propertyIndex;
+       private static final int DESCENDING = 1;
+       private int direction = DESCENDING;
+
+       public CdmRemoteServerViewerComparator() {
+               this.propertyIndex = 1;
+               direction = DESCENDING;
+       }
+
+       public void setColumn(int column) {
+               if (column == this.propertyIndex) {
+                       // Same column as last sort; toggle the direction
+                       direction = 1 - direction;
+               } else {
+                       // New column; do an ascending sort
+                       this.propertyIndex = column;
+                       direction = DESCENDING;
+               }
+       }
+
+       @Override
+       public int compare(Viewer viewer, Object e1, Object e2) {
+               CdmServerInfoConfig d1 = (CdmServerInfoConfig) e1;
+               CdmServerInfoConfig d2 = (CdmServerInfoConfig) e2;
+
+               
+
+               int result = 0;
+
+               switch (propertyIndex) {
+                       
+                       case 4:
+                               //port
+                               if (d1.getPort() == d2.getPort()) {
+                                       result = 0;
+                               }else if (d1.getPort() > d2.getPort()) {
+                                       result = 1;
+                               }else {
+                                       result = -1;
+                               }
+                               break;
+                       case 3:
+                               // prefix
+                               result = d1.getPrefix().compareTo(d2.getPrefix());
+                               break;
+                       case 2:
+                               //server
+                               String server1 = d1.getServer();
+                               String server2 = d2.getServer();
+                               
+                               result = server1.compareTo(server2);
+                               break;
+                       default:
+                               result = d1.getName().compareTo(d2.getName());
+               }
+
+               // If descending order, flip the direction
+               if (direction == DESCENDING) {
+                       result = -result;
+               }
+               return result;
+       }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/AbstractRemoteServerHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/AbstractRemoteServerHandler.java
new file mode 100644 (file)
index 0000000..58578f4
--- /dev/null
@@ -0,0 +1,68 @@
+/**
+* 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.view.remoteserver.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
+import eu.etaxonomy.taxeditor.view.remoteserver.CdmRemoteServerViewPart;
+
+/**
+ * @author kluther
+ * @date 23.01.2023
+ */
+public abstract class AbstractRemoteServerHandler {
+
+    protected UISynchronize sync;
+
+       @Execute
+    public void execute(
+            @Named(IServiceConstants.ACTIVE_SHELL)Shell shell,
+            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
+            @Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
+            UISynchronize sync) {
+
+           this.sync = sync;
+
+           CdmRemoteServerViewPart view = (CdmRemoteServerViewPart) thisPart.getObject();
+
+               boolean refresh = specificExecute(view,
+                       (CdmServerInfoConfig) selection.getFirstElement(), shell);
+
+               if(refresh) {
+            view.refresh();
+        }
+       }
+
+    @CanExecute
+    public boolean canExecute(
+            @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
+            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
+            MHandledMenuItem menuItem) {
+        boolean canExecute = false;
+        canExecute = thisPart.getObject() instanceof CdmRemoteServerViewPart
+                && selection!=null
+                && selection.size()==1
+                && selection.getFirstElement() instanceof CdmServerInfoConfig;
+        menuItem.setVisible(canExecute);
+        return canExecute;
+    }
+
+       public abstract boolean specificExecute(CdmRemoteServerViewPart dataSourceViewPart, CdmServerInfoConfig container, Shell shell);
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/CreateRemoteServerHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/CreateRemoteServerHandler.java
new file mode 100644 (file)
index 0000000..20e5914
--- /dev/null
@@ -0,0 +1,58 @@
+/**
+* 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.view.remoteserver.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.taxeditor.view.remoteserver.CdmRemoteServerViewPart;
+import eu.etaxonomy.taxeditor.view.remoteserver.wizard.CdmRemoteServerWizard;
+
+/**
+ * @author pplitzner
+ * @date 22.08.2017
+ */
+public class CreateRemoteServerHandler {
+
+    @Execute
+    public void execute(
+            @Named(IServiceConstants.ACTIVE_SHELL)Shell shell,
+            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart) {
+
+       CdmRemoteServerViewPart view = (CdmRemoteServerViewPart) thisPart.getObject();
+
+       CdmRemoteServerWizard wizard = new CdmRemoteServerWizard();
+
+        WizardDialog dialog = new WizardDialog(shell, wizard);
+
+        boolean refresh = dialog.open() == IStatus.OK;
+
+        if(refresh) {
+            view.refresh();
+        }
+    }
+
+    @CanExecute
+    public boolean canExecute(
+            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
+            MHandledMenuItem menuItem) {
+        boolean canExecute = false;
+        canExecute = thisPart.getObject() instanceof CdmRemoteServerViewPart;
+        menuItem.setVisible(canExecute);
+        return canExecute;
+    }
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/DeleteRemoteServerHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/DeleteRemoteServerHandler.java
new file mode 100644 (file)
index 0000000..00f4465
--- /dev/null
@@ -0,0 +1,40 @@
+/**
+* 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.view.remoteserver.handler;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
+import eu.etaxonomy.taxeditor.view.remoteserver.CdmRemoteServerViewPart;
+import eu.etaxonomy.taxeditor.view.remoteserver.common.CdmRemoteServerRepository;
+
+/**
+ *
+ * @author pplitzner
+ * @date 22.08.2017
+ *
+ */
+public class DeleteRemoteServerHandler extends AbstractRemoteServerHandler {
+
+
+
+    /** {@inheritDoc} */
+    @Override
+    public boolean specificExecute(CdmRemoteServerViewPart dataSourceViewPart, CdmServerInfoConfig container, Shell shell) {
+        if(! MessageDialog.openConfirm(shell, "Confirm Deletion", "Do you want to delete the selected datasources?")){
+            return false;
+        }        
+        CdmRemoteServerRepository.delete(container);
+        
+        return true;
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/EditRemoteServerHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/EditRemoteServerHandler.java
new file mode 100644 (file)
index 0000000..3705fd7
--- /dev/null
@@ -0,0 +1,44 @@
+/**
+* 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.view.remoteserver.handler;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
+import eu.etaxonomy.taxeditor.view.remoteserver.CdmRemoteServerViewPart;
+import eu.etaxonomy.taxeditor.view.remoteserver.wizard.CdmRemoteServerWizard;
+
+/**
+ * @author k.luther
+ * @date 23.01.2023
+ * 
+ */
+public class EditRemoteServerHandler extends AbstractRemoteServerHandler {
+
+    @Override
+    public boolean specificExecute(CdmRemoteServerViewPart remoteServerViewPart, CdmServerInfoConfig container, Shell shell) {
+       
+       Wizard wizard = new CdmRemoteServerWizard(container, CdmRemoteServerWizard.Mode.EDIT);
+               WizardDialog dialog = new WizardDialog(shell, wizard);
+
+               int result = dialog.open();
+
+               if(result == IStatus.OK){
+                       if(remoteServerViewPart != null){
+                               
+                               remoteServerViewPart.getViewer().update(container, null);
+                       }
+               }
+               
+               return false;
+       }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/MoveDownRemoteServerHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/MoveDownRemoteServerHandler.java
new file mode 100644 (file)
index 0000000..3573610
--- /dev/null
@@ -0,0 +1,56 @@
+// $Id$
+/**
+* Copyright (C) 2023 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.view.remoteserver.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
+import eu.etaxonomy.taxeditor.view.remoteserver.CdmRemoteServerViewPart;
+import eu.etaxonomy.taxeditor.view.remoteserver.common.CdmRemoteServerRepository;
+
+/**
+ * @author k.luther
+ * @date 12.04.2023
+ *
+ */
+public class MoveDownRemoteServerHandler extends AbstractRemoteServerHandler{
+    @Override
+    @CanExecute
+    public boolean canExecute(
+            @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
+            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
+            MHandledMenuItem menuItem) {
+        boolean canExecute = false;
+        canExecute = thisPart.getObject() instanceof CdmRemoteServerViewPart
+                && selection!=null
+                && selection.size()==1
+                && selection.getFirstElement() instanceof CdmServerInfoConfig
+                && CdmRemoteServerRepository.check((CdmServerInfoConfig)selection.getFirstElement()) < CdmRemoteServerRepository.getAll().size()-1;
+        menuItem.setVisible(canExecute);
+        return canExecute;
+    }
+
+    @Override
+    public boolean specificExecute(CdmRemoteServerViewPart dataSourceViewPart, CdmServerInfoConfig container,
+            Shell shell) {
+        CdmRemoteServerRepository.moveDown(container);
+        CdmRemoteServerRepository.save();
+        return true;
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/MoveUpRemoteServerHandler.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/handler/MoveUpRemoteServerHandler.java
new file mode 100644 (file)
index 0000000..4bea77d
--- /dev/null
@@ -0,0 +1,60 @@
+// $Id$
+/**
+* Copyright (C) 2023 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.view.remoteserver.handler;
+
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
+import eu.etaxonomy.taxeditor.view.remoteserver.CdmRemoteServerViewPart;
+import eu.etaxonomy.taxeditor.view.remoteserver.common.CdmRemoteServerRepository;
+
+/**
+ * @author k.luther
+ * @date 12.04.2023
+ *
+ */
+public class MoveUpRemoteServerHandler extends AbstractRemoteServerHandler{
+
+
+    @Override
+    @CanExecute
+    public boolean canExecute(
+            @Optional@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
+            @Named(IServiceConstants.ACTIVE_PART)MPart thisPart,
+            MHandledMenuItem menuItem) {
+        boolean canExecute = false;
+        canExecute = thisPart.getObject() instanceof CdmRemoteServerViewPart
+                && selection!=null
+                && selection.size()==1
+                && selection.getFirstElement() instanceof CdmServerInfoConfig
+                && CdmRemoteServerRepository.check((CdmServerInfoConfig)selection.getFirstElement()) > 0;
+        menuItem.setVisible(canExecute);
+        return canExecute;
+    }
+
+
+
+    @Override
+    public boolean specificExecute(CdmRemoteServerViewPart dataSourceViewPart, CdmServerInfoConfig container,
+            Shell shell) {
+        CdmRemoteServerRepository.moveUp(container);
+        CdmRemoteServerRepository.save();
+        return true;
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/wizard/CdmRemoteServerWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/wizard/CdmRemoteServerWizard.java
new file mode 100644 (file)
index 0000000..f8840c1
--- /dev/null
@@ -0,0 +1,110 @@
+/**
+* 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.view.remoteserver.wizard;
+
+import org.eclipse.jface.wizard.Wizard;
+
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
+import eu.etaxonomy.taxeditor.view.remoteserver.common.CdmRemoteServerRepository;
+
+/**
+ *
+ * @author n.hoffmann
+ * @author k.luther
+ * @created 23.03.2023
+ */
+public class CdmRemoteServerWizard extends Wizard {
+
+       private CdmRemoteServerWizardPage remoteServerPage;
+
+       private CdmServerInfoConfig remoteServer;
+       private String oldName;
+
+       public enum Mode {
+               CREATE,
+               EDIT,
+               CLONE
+       }
+
+       // default mode is to create a new remote server
+       Mode mode = Mode.EDIT;
+
+       public CdmRemoteServerWizard() {
+               super();
+               this.mode = Mode.CREATE;
+               setForcePreviousAndNextButtons(false);
+               setWindowTitle("Remote Server Dialog");
+       }
+
+       public CdmRemoteServerWizard(CdmServerInfoConfig remoteServer, Mode mode) {
+               super();
+               if(remoteServer != null){
+                       this.mode = mode;
+                       this.remoteServer = remoteServer;
+                       this.oldName = remoteServer.getName();
+               } else {
+                       this.remoteServer = new CdmServerInfoConfig();
+                       this.remoteServer.setName("");
+               }
+               setWindowTitle("Remote Server Dialog");
+       }
+
+       @Override
+       public void addPages() {
+               if (remoteServer != null) {
+
+                       remoteServerPage = new CdmRemoteServerWizardPage(remoteServer.getName(), remoteServer, mode);
+               }else {
+                       remoteServerPage = new CdmRemoteServerWizardPage("New remote server", remoteServer, mode);
+               }
+               this.addPage(remoteServerPage);
+               return;
+
+       }
+
+       @Override
+       public boolean performFinish() {
+               try {
+                       CdmServerInfoConfig cdmServerConf = this.remoteServerPage.getRemoteServer();
+                       if (mode.equals(Mode.CREATE) && CdmRemoteServerRepository.check(cdmServerConf)!= null) {
+                               while(CdmRemoteServerRepository.check(cdmServerConf) != null){
+                                       cdmServerConf.setName(cdmServerConf.getName()+ 1);
+                               }
+                               
+                               boolean confirm = MessagingUtils.confirmDialog("Servername already in use", "This servername is already in use, the new remote server will be called: "+ cdmServerConf.getName()+"\n Do you want to continue?");
+                               if (!confirm) {
+                                       return false;
+                               }
+                       }
+                       if (mode.equals(Mode.CREATE)) {
+                               CdmRemoteServerRepository.add(cdmServerConf);
+//                     }else {
+//                             CdmRemoteServerRepository.update(cdmServerConf, this.oldName);
+                       }
+                       CdmRemoteServerRepository.save();
+                       return true;
+        } catch (Throwable e) {
+            MessagingUtils.errorDialog("Error when persisting change",
+                    this,
+                    e.getMessage(),
+                    TaxeditorStorePlugin.PLUGIN_ID,
+                    e,
+                    true);
+            return false;
+        }
+       }
+
+       @Override
+       public boolean canFinish() {
+               return remoteServerPage.isPageComplete();
+       
+       }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/wizard/CdmRemoteServerWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/remoteserver/wizard/CdmRemoteServerWizardPage.java
new file mode 100644 (file)
index 0000000..835260d
--- /dev/null
@@ -0,0 +1,317 @@
+/**
+* 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.view.remoteserver.wizard;
+
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
+
+/**
+ * <p>Abstract CdmDataSourceCredentialsWizardPage class.</p>
+ *
+ * @author k.luther
+ * @created 23.01.2023
+ */
+public class CdmRemoteServerWizardPage extends WizardPage implements ModifyListener, SelectionListener {
+       private CdmServerInfoConfig remoteServer;
+
+       protected Text text_name;
+       protected Text text_server;
+       protected Text text_port;
+       protected Text text_prefix;
+
+       protected Button checkIgnoreCdmLibVersion;
+
+       protected Composite composite;
+
+       protected Composite parent;
+
+       protected String name;
+       protected String server;
+       protected String port;
+       protected String prefix;
+       protected Boolean checkCdmLibVersion;
+       CdmRemoteServerWizard.Mode mode;
+
+       /**
+        * <p>Constructor for CdmDataSourceCredentialsWizardPage.</p>
+        *
+        * @param pageName a {@link java.lang.String} object.
+        */
+       protected CdmRemoteServerWizardPage(String pageName, CdmServerInfoConfig remoteServer) {
+               super(pageName);
+               this.setPageComplete(false);
+               this.remoteServer = remoteServer;
+               mode = CdmRemoteServerWizard.Mode.CREATE;
+       }
+
+       /**
+        * <p>Constructor for CdmDataSourceCredentialsWizardPage.</p>
+        *
+        * @param pageName a {@link java.lang.String} object.
+        */
+       public CdmRemoteServerWizardPage(String pageName, CdmServerInfoConfig remoteServer, CdmRemoteServerWizard.Mode mode) {
+               super(pageName);
+               this.setPageComplete(false);
+
+               this.mode = mode;
+               if(mode == CdmRemoteServerWizard.Mode.CLONE ) {
+                       this.remoteServer = new CdmServerInfoConfig(remoteServer.getName(), remoteServer.getServer(), remoteServer.getPort(), remoteServer.getPrefix(),remoteServer.isIgnoreCdmLibVersion());
+               } else if (mode == CdmRemoteServerWizard.Mode.CREATE){
+                       this.remoteServer = new CdmServerInfoConfig("");
+                       //CdmRemoteServerRepository.add(this.remoteServer);
+               } else {
+                       this.remoteServer = remoteServer;
+               }
+       }
+
+       @Override
+    public void createControl(Composite parent) {
+               this.parent = parent;
+
+               // Create top-level composite
+               parent.setLayout(new GridLayout());
+               composite = new Composite(parent, SWT.NONE);
+               composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false,2,5));
+               GridLayout formLayout = new GridLayout();
+               formLayout.numColumns = 2;
+               composite.setLayout(formLayout);
+
+               // Create composite for data source name
+               Composite editRemoteServerComposite = new Composite(composite, SWT.NONE);
+               GridData remoteServerGridData = new GridData(SWT.FILL, SWT.TOP, true, true,2,1);
+               editRemoteServerComposite.setLayoutData(remoteServerGridData);
+               GridLayout remoteServerLayout = new GridLayout();
+               remoteServerLayout.numColumns = 2;
+               editRemoteServerComposite.setLayout(remoteServerLayout);
+
+               // Create label and input for dataSource name
+               Label remoteServerNameLabel = new Label(editRemoteServerComposite, SWT.NONE);
+               remoteServerNameLabel.setText("Name:");
+               text_name = new Text(editRemoteServerComposite, SWT.BORDER);
+               text_name.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+               Label remoteServerLabel = new Label(editRemoteServerComposite, SWT.NONE);
+               remoteServerLabel.setText("Server:");
+               text_server = new Text(editRemoteServerComposite, SWT.BORDER);
+               text_server.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+
+               Label remotePortLabel = new Label(editRemoteServerComposite, SWT.NONE);
+               remotePortLabel.setText("Port:");
+               text_port = new Text(editRemoteServerComposite, SWT.BORDER);
+               text_port.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+
+               Label remotePrefixLabel = new Label(editRemoteServerComposite, SWT.NONE);
+               remotePrefixLabel.setText("Prefix:");
+               text_prefix = new Text(editRemoteServerComposite, SWT.BORDER);
+               text_prefix.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+
+
+               Composite checkCdmlibVersionComposite = new Composite(editRemoteServerComposite, SWT.NONE);
+               GridData checkCdmlibVersionGridData = new GridData(SWT.FILL, SWT.TOP, true, true,2,1);
+               checkCdmlibVersionComposite.setLayoutData(checkCdmlibVersionGridData);
+               GridLayout checkCdmlibVersionLayout = new GridLayout();
+               checkCdmlibVersionLayout.numColumns = 3;
+               checkCdmlibVersionComposite.setLayout(checkCdmlibVersionLayout);
+               Label remoteCheckCdmLibVersionLabel = new Label(checkCdmlibVersionComposite, SWT.NONE);
+               remoteCheckCdmLibVersionLabel.setText("Check cdmlib Version:");
+               checkIgnoreCdmLibVersion = new Button(checkCdmlibVersionComposite, SWT.CHECK);
+               checkIgnoreCdmLibVersion.addSelectionListener(this);
+               Label remoteCheckCdmLibVersionWarning = new Label(checkCdmlibVersionComposite, SWT.NONE);
+               remoteCheckCdmLibVersionWarning.setText("(Recommended)");
+
+               // Create composite for buttons
+               Composite buttonComposite = new Composite(composite, SWT.NONE);
+               buttonComposite.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false));
+               GridLayout buttonLayout = new GridLayout();
+               buttonLayout.numColumns = 1;
+               buttonComposite.setLayout(buttonLayout);
+
+               // Create test connection button
+               Button testButton = new Button(buttonComposite, SWT.NONE);
+               testButton.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
+               testButton.setText("Test connection");
+
+               // Test connection when button is pressed
+               testButton.addSelectionListener(new SelectionAdapter() {
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               boolean testConnection = testServerConfiguration();
+                               if (testConnection) {
+                                   MessagingUtils.informationDialog("Connection successfull", "The connection to the server could be established successfully.");
+                               }else {
+                                   MessagingUtils.informationDialog("Connection not successfull", "The connection to the server could not be established.");
+                               }
+                       }
+               });
+
+               setControl(composite);
+               init();
+       }
+
+
+
+       /**
+        * Initialize text fields
+        */
+       public void init() {
+               removeListeners();
+               if(getRemoteServer() != null && getRemoteServer().getName() != null){
+                       text_name.setText(getRemoteServer().getName());
+                       text_server.setText(getRemoteServer().getServer());
+                       text_port.setText(getRemoteServer().getPort() != null?String.valueOf(getRemoteServer().getPort()): "");
+                       text_prefix.setText(getRemoteServer().getPrefix());
+                       checkIgnoreCdmLibVersion.setSelection(!getRemoteServer().isIgnoreCdmLibVersion());
+               }
+               // add listeners after setting text to avoid the modify event being called
+               // for the initial value
+               addListeners();
+
+               // in the case of cloning we use the same datasource info
+               // except for the name
+               if(mode == CdmRemoteServerWizard.Mode.CLONE) {
+                       getRemoteServer().setName("");
+                       text_name.setText("");
+               } else {
+                       name = text_name.getText();
+               }
+       }
+
+       private void addListeners() {
+               text_name.addModifyListener(this);
+               text_server.addModifyListener(this);
+               text_port.addModifyListener(this);
+               text_prefix.addModifyListener(this);
+
+       }
+
+       private void removeListeners() {
+               text_name.removeModifyListener(this);
+               text_server.removeModifyListener(this);
+               text_port.removeModifyListener(this);
+               text_prefix.removeModifyListener(this);
+
+       }
+
+       private boolean testServerConfiguration() {
+           Socket s = new Socket();
+        try {
+            s.connect(new InetSocketAddress(remoteServer.getServer(), remoteServer.getPort()), CdmApplicationRemoteConfiguration.HTTP_READ_TIMEOUT_MIN);
+            s.close();
+        } catch (IOException e) {
+            return false;
+        }
+        return true;
+       }
+
+
+       /**
+        * <p>checkPageComplete</p>
+        */
+       public void checkPageComplete(){
+               boolean complete = true;
+
+               complete &=StringUtils.isNotBlank(text_name.getText());
+               complete &=StringUtils.isNotBlank(text_server.getText());
+               complete &=this.remoteServer.getPort() != null;
+
+               this.setPageComplete(complete);
+       }
+
+
+
+       @Override
+       public IWizardPage getNextPage() {
+               return null;
+       }
+
+       public void setRemoteServer(CdmServerInfoConfig remoteServer) {
+               this.remoteServer = remoteServer;
+       }
+
+       protected CdmServerInfoConfig getRemoteServer() {
+               return remoteServer;
+       }
+
+       public String getRemoteServerName() {
+               return name;
+       }
+
+       @Override
+    public void modifyText(ModifyEvent e) {
+               name = text_name.getText();
+               server = text_server.getText();
+               port = text_port.getText();
+               prefix = text_prefix.getText();
+               this.remoteServer.setName(name != null? name:null);
+               this.remoteServer.setIgnoreCdmLibVersion(!this.checkIgnoreCdmLibVersion.getSelection());
+               this.remoteServer.setServer(server!= null? server:null);
+               this.remoteServer.setPrefix(prefix != null?prefix:null);
+
+               text_port.setBackground(text_prefix.getBackground());
+               Integer intPort = checkAndConvertPort();
+               if (intPort == null){
+                       text_port.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
+               }
+               this.remoteServer.setPort(intPort);
+               checkPageComplete();
+       }
+
+       private Integer checkAndConvertPort() {
+               Integer portInt = null;
+
+               try {
+                       portInt = StringUtils.isNotBlank(port)?Integer.parseInt(port):0;
+               }catch(NumberFormatException e) {
+                       return null;
+               }
+               if (portInt > 65535) {
+                       return null;
+               }
+
+               return portInt;
+       }
+
+       @Override
+       public void widgetSelected(SelectionEvent e) {
+               this.remoteServer.setIgnoreCdmLibVersion(!checkIgnoreCdmLibVersion.getSelection());
+               checkPageComplete();
+
+       }
+
+       @Override
+       public void widgetDefaultSelected(SelectionEvent e) {
+               // TODO Auto-generated method stub
+
+       }
+
+
+
+}
\ No newline at end of file
index 9244c93d06026afa03ec44de4965081a26839ffd..eb99ec733e7e671bdc9ff85b49efcdf131e2bacd 100755 (executable)
@@ -1,3 +1,11 @@
+/**
+* Copyright (C) 2013 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
 package eu.etaxonomy.taxeditor.view.search.derivative;
 
 import java.util.ArrayList;
@@ -27,15 +35,14 @@ public class DerivateContentProvider implements ITreeContentProvider {
        @Override
        public void dispose() {
                // TODO Auto-generated method stub
-
        }
 
        public List<SpecimenOrObservationBase> getRootElements() {
-           List<SpecimenOrObservationBase> elements = new ArrayList<SpecimenOrObservationBase>();
+           List<SpecimenOrObservationBase> elements = new ArrayList<>();
 
            if(rootNodes != null) {
                for(TreeNode node : rootNodes) {
-                   elements.add((SpecimenOrObservationBase)node.getValue());
+                   elements.add((SpecimenOrObservationBase<?>)node.getValue());
                }
            }
            return elements;
@@ -49,12 +56,10 @@ public class DerivateContentProvider implements ITreeContentProvider {
        public Object[] getElements(Object inputElement) {
            rootNodes = new ArrayList<>();
            if(inputElement instanceof Collection){
-               for (Object o: (Collection)inputElement) {
+               for (Object o: (Collection<?>)inputElement) {
                    if(o instanceof SpecimenOrObservationBase){
                        SpecimenOrObservationBase<?> rootElement = (SpecimenOrObservationBase<?>)o;
-                       if(rootElement!=null){
-                           rootNodes.add(new TreeNode(rootElement));
-                       }
+                       rootNodes.add(new TreeNode(rootElement));
                    }
             }
            }
@@ -70,7 +75,7 @@ public class DerivateContentProvider implements ITreeContentProvider {
             currentnode = (TreeNode) element;
             value = ((TreeNode) element).getValue();
         }
-        Set<Object> children = new LinkedHashSet<Object>();
+        Set<Object> children = new LinkedHashSet<>();
         if(value instanceof DnaSample && ((DnaSample) value).getRecordBasis()==SpecimenOrObservationType.DnaSample){
             DnaSample dnaSample = (DnaSample)value;
             Set<Sequence> sequences = dnaSample.getSequences();
@@ -138,7 +143,7 @@ public class DerivateContentProvider implements ITreeContentProvider {
        }
 
        private List<DerivedUnit> getDerivates(SpecimenOrObservationBase<?> specimenOrObservation){
-           List<DerivedUnit> derivates = new ArrayList<DerivedUnit>();
+           List<DerivedUnit> derivates = new ArrayList<>();
            for(DerivationEvent derivationEvent:specimenOrObservation.getDerivationEvents()){
                derivates.addAll(derivationEvent.getDerivatives());
            }
@@ -162,7 +167,5 @@ public class DerivateContentProvider implements ITreeContentProvider {
                        }
                        return 0;
                }
-
        }
-
-}
+}
\ No newline at end of file
index 0d74229736e51d1a0847e89be870b9536adf3f4d..6d0e2edf110de8c29d2250803eb32fab977b3f15 100644 (file)
@@ -18,12 +18,11 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.UUID;
 
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.jface.viewers.TreeNode;
 import org.eclipse.swt.graphics.Image;
-import org.hibernate.LazyInitializationException;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
 import eu.etaxonomy.cdm.common.CdmUtils;
@@ -31,7 +30,6 @@ import eu.etaxonomy.cdm.format.CdmFormatterFactory;
 import eu.etaxonomy.cdm.format.ICdmFormatter.FormatKey;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.term.DefinedTerm;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.Identifier;
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
@@ -44,18 +42,15 @@ import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
 import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
+import eu.etaxonomy.cdm.model.term.IdentifierType;
 import eu.etaxonomy.cdm.strategy.cache.common.IdentifiableEntityDefaultCacheStrategy;
+import eu.etaxonomy.cdm.strategy.cache.occurrence.DnaSampleDefaultCacheStrategy;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * Label provider for the views to show {@link SpecimenOrObservationBase}s.<br>
- * <br>
- * <b>Note:</b> If you use this label provider you need to assure that you
- * created a {@link ConversationHolder} resp. have an open session because
- * the labels are generated from various fields of the derivate hierarchy which
- * are lazy loaded and could therefore throw a {@link LazyInitializationException}.<br>
- * Use <b>{@link #setConversation(ConversationHolder)}</b> to assign the session to this provider.
  */
 public class DerivateLabelProvider extends ColumnLabelProvider {
 
@@ -65,13 +60,11 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
 
     private static Map<DerivedUnit, Collection<SpecimenTypeDesignation>> typeDesignations;
 
-    private ConversationHolder conversation;
-
     private static DefinedTerm photoTerm = null;
     private static DefinedTerm drawingTerm = null;
     private static DefinedTerm specimenScanTerm = null;
     private static DefinedTerm detailImageTerm = null;
-    private static DefinedTerm sampleDesignationTerm = null;
+    private static IdentifierType sampleDesignationTerm = null;
 
     //FIXME: move static term getters to new singleton utility class
     private static void initializeTerms() {
@@ -89,8 +82,11 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
             else if(definedTerm.getUuid().equals(UUID.fromString("31eb8d02-bf5d-437c-bcc6-87a626445f34"))){
                 detailImageTerm = definedTerm;
             }
-            else if(definedTerm.getUuid().equals(UUID.fromString("fadeba12-1be3-4bc7-9ff5-361b088d86fc"))){
-                sampleDesignationTerm = definedTerm;
+        }
+        List<IdentifierType> identifierTypes = CdmStore.getTermManager().getPreferredTerms(IdentifierType.class);
+        for (IdentifierType identifierType : identifierTypes) {
+            if(identifierType.getUuid().equals(UUID.fromString("fadeba12-1be3-4bc7-9ff5-361b088d86fc"))){
+                sampleDesignationTerm = identifierType;
             }
         }
     }
@@ -123,15 +119,13 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         return detailImageTerm;
     }
 
-    public static DefinedTerm getSampleDesignationTerm(){
+    public static IdentifierType getSampleDesignationTerm(){
         if(sampleDesignationTerm==null){
             initializeTerms();
         }
         return sampleDesignationTerm;
     }
 
-
-    /** {@inheritDoc} */
     @Override
     public String getText(Object element) {
         if(element instanceof TreeNode){
@@ -139,14 +133,13 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         }
         String text = null;
         if(element instanceof IdentifiableEntity
-                && ((IdentifiableEntity) element).isProtectedTitleCache()){
-            return ((IdentifiableEntity) element).getTitleCache();
+                && ((IdentifiableEntity<?>) element).isProtectedTitleCache()){
+            return ((IdentifiableEntity<?>) element).getTitleCache();
         }
 
-
         //check if collection code does not exist -> use collection name then
         FormatKey collectionKey = FormatKey.COLLECTION_CODE;
-        text = CdmFormatterFactory.format(element,new FormatKey[]{FormatKey.COLLECTION_CODE});
+        text = CdmFormatterFactory.format(element, new FormatKey[]{FormatKey.COLLECTION_CODE});
         if(CdmUtils.isBlank(text)){
             collectionKey = FormatKey.COLLECTION_NAME;
         }
@@ -156,22 +149,16 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
             text = ((FieldUnit) element).getTitleCache();
         }
         else if(element instanceof MediaSpecimen){
-            text = CdmFormatterFactory.format(element,
-                    new FormatKey[]{
-//                            FormatKey.MEDIA_TITLE_CACHE, FormatKey.SPACE,
-                            collectionKey, FormatKey.SPACE,
-                            FormatKey.MOST_SIGNIFICANT_IDENTIFIER, FormatKey.SPACE,
-                            FormatKey.MEDIA_TITLE, FormatKey.SPACE,
-                            FormatKey.MEDIA_ARTIST, FormatKey.SPACE,
-                            });
+            MediaSpecimen mediaSpecimen = (MediaSpecimen)element;
+            text = mediaSpecimen.getTitleCache();
         }
         else if (element instanceof DnaSample) {
-            text = CdmFormatterFactory.format(element,
-                    new FormatKey[] {
-                            collectionKey, FormatKey.SPACE,
-                            FormatKey.MOST_SIGNIFICANT_IDENTIFIER, FormatKey.SPACE,
-                            FormatKey.SAMPLE_DESIGNATION, FormatKey.SPACE
-                            });
+            DnaSample dnaSample = (DnaSample)element;
+            if (!(dnaSample.cacheStrategy() instanceof DnaSampleDefaultCacheStrategy)){
+                dnaSample.setCacheStrategy(new DnaSampleDefaultCacheStrategy());
+            }
+            dnaSample.setTitleCache(null);
+            text = dnaSample.getTitleCache();
         }
         else if (element instanceof DerivedUnit) {
             text = CdmFormatterFactory.format(element,
@@ -195,7 +182,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         }
         else if(element instanceof IdentifiableEntity){
 
-               IdentifiableEntity identifiableEntity = (IdentifiableEntity) element;
+               IdentifiableEntity<?> identifiableEntity = (IdentifiableEntity<?>) element;
                if(identifiableEntity.isProtectedTitleCache()){
                        text = identifiableEntity.getTitleCache();
                }
@@ -215,24 +202,14 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                return text;
     }
 
-    /** {@inheritDoc} */
     @Override
     public String getToolTipText(Object element) {
         return getDerivateText(element);
     }
 
-    /**
-     * @param conversation the conversation to set
-     */
-    public void setConversation(ConversationHolder conversation) {
-        this.conversation = conversation;
-    }
-
-    public String getDerivateText(Object element){
-        return getDerivateText(element, conversation);
-    }
-
-    public static String getDerivateText(Object element, ConversationHolder conversation){
+    //Note AM: not sure what this method is really used for, why do we need an explicit
+    //         formatting for those few use-cases where this is used?
+    public static String getDerivateText(Object element){
         //TODO: use list of strings to assemble labels to avoid adding the separator every time and to allow null values
         TreeNode parentNode = null;
         TreeNode node = null;
@@ -244,11 +221,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
             derivate = node.getValue();
         }
 
-        if(conversation!=null){
-            conversation.bind();
-        }
-
-        final String emptyString = "";
+        final String emptyString = StringUtils.EMPTY;
         final String separator = " ";
 
         String label = emptyString;
@@ -267,24 +240,15 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         }
         //MediaSpecimen
         else if(derivate instanceof MediaSpecimen){
-            MediaSpecimen mediaSpecimen = (MediaSpecimen)derivate;
-            if(mediaSpecimen.getMediaSpecimen()!=null){
-                label += mediaSpecimen.getMediaSpecimen().getTitle()!=null?mediaSpecimen.getMediaSpecimen().getTitle().getText()+separator:"[no motif]";
-                label += mediaSpecimen.getMediaSpecimen().getArtist()!=null?mediaSpecimen.getMediaSpecimen().getArtist()+separator:emptyString;
-            }
-            eu.etaxonomy.cdm.model.occurrence.Collection collection = mediaSpecimen.getCollection();
-            if(collection!=null){
-                label += collection.getName()!=null?collection.getName()+" ":emptyString;
-                label += collection.getCode()!=null?"("+collection.getCode()+")"+separator:emptyString;
-            }
-            label += mediaSpecimen.getAccessionNumber()!=null?mediaSpecimen.getAccessionNumber()+separator:emptyString;
-            label += mediaSpecimen.getBarcode()!=null?mediaSpecimen.getBarcode()+separator:emptyString;
+            label = ((MediaSpecimen)derivate).generateTitle();
         }
         //TissueSample + DnaSample
-        else if(derivate instanceof DnaSample){
+        else if(derivate instanceof DnaSample
+                && ((DnaSample) derivate).getRecordBasis()==SpecimenOrObservationType.DnaSample){
             DnaSample dnaSample = (DnaSample)derivate;
-            if(((DnaSample) derivate).getRecordBasis()==SpecimenOrObservationType.DnaSample){
-                Identifier<DnaSample> currentSampleDesignation = getCurrentSampleDesignation(dnaSample);
+            //AM: maybe we can use cache strategy here, unclear why only sample designation is needed; unfortunately method documentation is missing
+            if(dnaSample.getRecordBasis()==SpecimenOrObservationType.DnaSample){
+                Identifier currentSampleDesignation = getCurrentSampleDesignation(dnaSample);
                 if(currentSampleDesignation!=null && currentSampleDesignation.getIdentifier()!=null){
                     label += currentSampleDesignation.getIdentifier()+separator;
                 }
@@ -292,19 +256,6 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                     label += NO_SAMPLE_DESIGNATION+separator;
                 }
             }
-            else if(((DnaSample) derivate).getRecordBasis()==SpecimenOrObservationType.TissueSample){
-                if(dnaSample.getKindOfUnit()!=null){
-                    label += dnaSample.getKindOfUnit()+separator;
-                }
-                Identifier<DnaSample> currentSampleDesignation = getCurrentSampleDesignation(dnaSample);
-                if(currentSampleDesignation!=null && currentSampleDesignation.getIdentifier()!=null){
-                    label += currentSampleDesignation.getIdentifier()+separator;
-                }
-                else{
-                    label += NO_SAMPLE_DESIGNATION+separator;
-                }
-            }
-
         }
         //DerivedUnit + TissueSample
         else if(derivate instanceof DerivedUnit){
@@ -320,7 +271,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                 //TODO : This is not generic anymore for performance reasons
                 Set<SpecimenOrObservationBase> originals = derivedUnit.getOriginals();
                 if(originals!=null && originals.size() ==1) {
-                    SpecimenOrObservationBase specimen = originals.iterator().next();
+                    SpecimenOrObservationBase<?> specimen = originals.iterator().next();
                     if(specimen instanceof FieldUnit) {
                         FieldUnit fieldUnit = (FieldUnit)specimen;
                         GatheringEvent gatheringEvent = fieldUnit.getGatheringEvent();
@@ -339,15 +290,22 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                 label += mostSignificantIdentifier!=null?mostSignificantIdentifier+separator:emptyString;
             }
             else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.TissueSample){
-                //TissueSample should only be created by using it's own class
-                //in future using only one class with different SpecimenOrObservationTypes is desired
-//                label += derivedUnit.getKindOfUnit() + NO_SAMPLE_DESIGNATION;
+                if(derivedUnit.getKindOfUnit()!=null){
+                    label += derivedUnit.getKindOfUnit()+separator;
+                }
+                Identifier currentSampleDesignation = getCurrentSampleDesignation(derivedUnit);
+                if(currentSampleDesignation!=null && currentSampleDesignation.getIdentifier()!=null){
+                    label += currentSampleDesignation.getIdentifier() + separator;
+                }
+                else{
+                    label += NO_SAMPLE_DESIGNATION + separator;
+                }
             }
         }
         //Sequence
         else if(derivate instanceof Sequence){
             Sequence sequence = (Sequence)derivate;
-            Identifier<DnaSample> currentSampleDesignation = getCurrentSampleDesignation(sequence);
+            Identifier currentSampleDesignation = getCurrentSampleDesignation(sequence);
             if(currentSampleDesignation!=null && currentSampleDesignation.getIdentifier()!=null){
                 label += currentSampleDesignation.getIdentifier()+separator;
             }
@@ -361,7 +319,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
             SingleRead singleRead = (SingleRead)derivate;
             if(parentNode!=null && parentNode.getValue() instanceof Sequence){
                 Sequence sequence = (Sequence) parentNode.getValue();
-                Identifier<DnaSample> currentSampleDesignation = getCurrentSampleDesignation(sequence);
+                Identifier currentSampleDesignation = getCurrentSampleDesignation(sequence);
                 if(currentSampleDesignation!=null && currentSampleDesignation.getIdentifier()!=null){
                     label = currentSampleDesignation.getIdentifier()+separator;
                 }
@@ -462,15 +420,10 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         return ImageResources.getImage(ImageResources.DEFAULT_DERIVATIVE);
     }
 
-    public static Identifier<DnaSample> getCurrentSampleDesignation(CdmBase entity) {
+    public static Identifier getCurrentSampleDesignation(CdmBase entity) {
         if(entity.isInstanceOf(DnaSample.class)){
             DnaSample dnaSample = HibernateProxyHelper.deproxy(entity, DnaSample.class);
-            for (Identifier<DnaSample> identifier : dnaSample.getIdentifiers()) {
-                if(identifier.getType()!=null && identifier.getType().equals(DerivateLabelProvider.getSampleDesignationTerm())){
-                    //first sample designation is the current
-                    return identifier;
-                }
-            }
+            return dnaSample.getIdentifier(IdentifierType.uuidSampleDesignation);
         }
         else if(entity.isInstanceOf(Sequence.class)){
             Sequence sequence = HibernateProxyHelper.deproxy(entity, Sequence.class);
@@ -484,7 +437,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
     private static void addTypeDesignation(DerivedUnit derivedUnit, SpecimenTypeDesignation typeDesignation){
         Collection<SpecimenTypeDesignation> list = typeDesignations.get(derivedUnit);
         if(list==null){
-            list = new ArrayList<SpecimenTypeDesignation>();
+            list = new ArrayList<>();
         }
         list.add(typeDesignation);
         typeDesignations.put(derivedUnit, list);
@@ -495,16 +448,16 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
     }
 
     public void updateLabelCache(Collection<SpecimenOrObservationBase<?>> rootElements) {
-        multiLinkSingleReads = new HashSet<SingleRead>();
-        typeDesignations = new HashMap<DerivedUnit, Collection<SpecimenTypeDesignation>>();
+        multiLinkSingleReads = new HashSet<>();
+        typeDesignations = new HashMap<>();
         for(Entry<SingleRead, Collection<Sequence>> entry:CdmStore.getService(ISequenceService.class).getSingleReadSequencesMap().entrySet()){
             if(entry.getValue().size()>1){
                 multiLinkSingleReads.add(entry.getKey());
             }
         }
         if(rootElements!=null){
-            Collection<DerivedUnit> derivedUnits = new ArrayList<DerivedUnit>();
-            for (SpecimenOrObservationBase specimenOrObservationBase : rootElements) {
+            Collection<DerivedUnit> derivedUnits = new ArrayList<>();
+            for (SpecimenOrObservationBase<?> specimenOrObservationBase : rootElements) {
                 List<DerivedUnit> childUnits = CdmStore.getService(IOccurrenceService.class).getAllChildDerivatives(specimenOrObservationBase.getUuid());
                 if (childUnits != null){
                     derivedUnits.addAll(childUnits);
index b444e692cd032e2e00c972c7e3bbe5ea3d7731b1..20a518c41f935b446d5610d8bef29f77564165f8 100644 (file)
@@ -8,6 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.view.search.facet;
 
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -52,7 +53,7 @@ public class FilterComposite extends Composite{
         content.setLayout(gl_content);
 
         Label label = new Label(content, SWT.NONE);
-        label.setText(facet.getFacet());
+        label.setText(StringUtils.replace(facet.getFacet(), "&", "&&"));
         GridDataFactory.fillDefaults().applyTo(label);
 
     }
index cf19e2245c6e482abbaec2e0e5092006ae7b383c..cc5e05223010fd19610b83c43aa83301ec2cfb19 100644 (file)
@@ -18,6 +18,7 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.TreeMap;
 
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
@@ -94,10 +95,13 @@ public abstract class SearchController<S extends SearchResult<T>, T> implements
             categoryToFacetsMap.put(category, categoryFacets);
         }
         for (Entry<String, List<Facet>> entry: categoryToFacetsMap.entrySet()) {
-            String category = entry.getKey();
+            String category = StringUtils.replace(entry.getKey(), "&", "&&");
             // create group
             Group group = new Group(composite.getFilterListComposite(), SWT.NONE);
             group.setLayout(new GridLayout());
+            
+            
+            
             GridDataFactory.fillDefaults().applyTo(group);
             group.setText(category!=null?category:"None");
             // fill group with facet filters
@@ -115,6 +119,9 @@ public abstract class SearchController<S extends SearchResult<T>, T> implements
     private Set<Facet> createResults(List<S> results) {
         Set<Facet> facets = new HashSet<>();
         searchResultComposites.clear();
+        
+        
+        
         for (S result : results) {
 
             CheckBoxSearchResultComposite checkComp = createResultComposite(result, composite.getSearchResultComposite());
index 63366a6d58139ccf0371eafbc76d72ececc0ede0..f02f5a93878b81ce1000654259a39993c0704378 100644 (file)
@@ -18,7 +18,7 @@ import org.eclipse.swt.widgets.Composite;
 
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.api.service.config.FindOccurrencesConfigurator;
-import eu.etaxonomy.cdm.api.service.dto.PreservedSpecimenDTO;
+import eu.etaxonomy.cdm.api.service.dto.DerivedUnitDTO;
 import eu.etaxonomy.cdm.persistence.query.MatchMode;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
@@ -28,9 +28,8 @@ import eu.etaxonomy.taxeditor.view.search.facet.SearchController;
 /**
  * @author pplitzner
  * @since Jan 22, 2019
- *
  */
-public class OccurrenceSearchController extends SearchController<OccurrenceSearchResult, PreservedSpecimenDTO> {
+public class OccurrenceSearchController extends SearchController<OccurrenceSearchResult, DerivedUnitDTO> {
 
     public OccurrenceSearchController(SearchComposite composite) {
         super(composite);
@@ -41,11 +40,10 @@ public class OccurrenceSearchController extends SearchController<OccurrenceSearc
         return new Comparator<OccurrenceSearchResult>() {
             @Override
             public int compare(OccurrenceSearchResult o1, OccurrenceSearchResult o2) {
-                String label1 = o1.getContent().getTitleCache();
-                String label2 = o2.getContent().getTitleCache();
+                String label1 = o1.getContent().getLabel();
+                String label2 = o2.getContent().getLabel();
                 return StoreUtil.compareBySearchString(searchString, label1, label2);
             }
-
         };
     }
 
@@ -55,7 +53,7 @@ public class OccurrenceSearchController extends SearchController<OccurrenceSearc
         FindOccurrencesConfigurator config = new FindOccurrencesConfigurator();
         config.setTitleSearchString(searchString);
         config.setMatchMode(MatchMode.ANYWHERE);
-        Collection<PreservedSpecimenDTO> dtos = CdmStore.getService(IOccurrenceService.class).findByTitlePreservedSpecimenDTO(config);
+        Collection<DerivedUnitDTO> dtos = CdmStore.getService(IOccurrenceService.class).findByTitleDerivedUnitDTO(config);
         dtos.stream().forEach(dto->searchResults.add(new OccurrenceSearchResult(dto)));
         return searchResults;
     }
@@ -69,5 +67,4 @@ public class OccurrenceSearchController extends SearchController<OccurrenceSearc
     protected List<OccurrenceSearchResult> getSelectedResults() {
         return null;
     }
-
-}
+}
\ No newline at end of file
index 15c90e0d975cdcad488383483fc8702848883cc3..bc4128e61425d3ba7d3bc85d39ffd03434ad0ced 100644 (file)
@@ -8,10 +8,10 @@
 */
 package eu.etaxonomy.taxeditor.view.search.facet.occurrence;
 
-import java.util.HashSet;
 import java.util.Set;
+import java.util.stream.Collectors;
 
-import eu.etaxonomy.cdm.api.service.dto.PreservedSpecimenDTO;
+import eu.etaxonomy.cdm.api.service.dto.DerivedUnitDTO;
 import eu.etaxonomy.taxeditor.view.search.facet.Facet;
 import eu.etaxonomy.taxeditor.view.search.facet.SearchResult;
 
@@ -20,16 +20,15 @@ import eu.etaxonomy.taxeditor.view.search.facet.SearchResult;
  * @since Jan 24, 2019
  *
  */
-public class OccurrenceSearchResult extends SearchResult<PreservedSpecimenDTO> {
+public class OccurrenceSearchResult extends SearchResult<DerivedUnitDTO> {
 
-    public OccurrenceSearchResult(PreservedSpecimenDTO content) {
+    public OccurrenceSearchResult(DerivedUnitDTO content) {
         super(content);
     }
 
     @Override
-    protected Set<Facet> initFacets(PreservedSpecimenDTO content) {
-        Set<Facet> facets = new HashSet<>();
-        content.getAssociatedTaxa().forEach(pair->facets.add(new Facet(pair.getValue(), content.getKindOfUnit())));
+    protected Set<Facet> initFacets(DerivedUnitDTO content) {
+        Set<Facet> facets =  content.getAssociatedTaxa().stream().map(ref -> new Facet(ref.getLabel(), content.getKindOfUnit().getLabel())).collect(Collectors.toSet());
         return facets;
     }
 
index edcf5e2be25ef9d45f71dd28c165df6c335aa3f5..30f96ac02a7d0b01cd6b4233ed6ff1737a8534cb 100644 (file)
@@ -18,7 +18,7 @@ import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
 
-import eu.etaxonomy.cdm.api.service.dto.PreservedSpecimenDTO;
+import eu.etaxonomy.cdm.api.service.dto.DerivedUnitDTO;
 import eu.etaxonomy.taxeditor.view.search.facet.CheckBoxSearchResultComposite;
 
 /**
@@ -26,7 +26,7 @@ import eu.etaxonomy.taxeditor.view.search.facet.CheckBoxSearchResultComposite;
  * @since Jan 23, 2019
  *
  */
-public class OccurrenceSearchResultComposite extends CheckBoxSearchResultComposite<PreservedSpecimenDTO, OccurrenceSearchResult> {
+public class OccurrenceSearchResultComposite extends CheckBoxSearchResultComposite<DerivedUnitDTO, OccurrenceSearchResult> {
 
     private Label label;
 
@@ -42,7 +42,7 @@ public class OccurrenceSearchResultComposite extends CheckBoxSearchResultComposi
         content.setLayout(layout);
         label = new Label(content, SWT.WRAP);
         label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
-        label.setText(result.getContent().getTitleCache());
+        label.setText(result.getContent().getLabel());
         label.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT));
         GridDataFactory.fillDefaults().applyTo(label);
 
@@ -56,7 +56,7 @@ public class OccurrenceSearchResultComposite extends CheckBoxSearchResultComposi
                 parent.layout(true);
             }
         });
-        String representation_L10n_text = result.getContent().getCitation();
+        String representation_L10n_text = result.getContent().getSummaryLabel();
         if(representation_L10n_text!=null){
             lblDescription.setText(representation_L10n_text);
         }
index dc8634e05f028bef2519a3bc1a79717807930025..9e65afc0e5426bf7ae93ca7aaf96788f55dbc72d 100644 (file)
@@ -12,6 +12,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
@@ -23,12 +24,13 @@ import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.model.term.VocabularyEnum;
 import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
-import eu.etaxonomy.taxeditor.featuretree.TermChooseWizardPage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.termtree.TermChooseWizardPage;
 import eu.etaxonomy.taxeditor.view.search.facet.CheckBoxSearchResultComposite;
 import eu.etaxonomy.taxeditor.view.search.facet.SearchComposite;
 import eu.etaxonomy.taxeditor.view.search.facet.SearchController;
@@ -66,16 +68,57 @@ public class TermSearchController extends SearchController<TermSearchResult, Abs
     }
 
     @Override
-    protected List<TermSearchResult> searchResults(String searchString){
+    protected List<TermSearchResult> searchResults(String searchString) {
         List<TermSearchResult> searchResults = new ArrayList<>();
-        if(CdmUtils.isNotBlank(searchString)){
-            TermType type = term!= null ? term.getTermType():null;
-            Collection<TermDto> dtos = CdmStore.getService(ITermService.class).findByTitleAsDto(searchString, type);
+        if (CdmUtils.isNotBlank(searchString)) {
+            TermType type = term != null ? term.getTermType() : null;
+            Collection<TermDto> dtos = CdmStore.getService(ITermService.class).findByTitleAsDtoWithVocDto(searchString,
+                    type);
             dtos.remove(term);
-            dtos.stream().forEach(dto->searchResults.add(new TermSearchResult(dto)));
-            if (page != null){
-                Collection<TermVocabularyDto> vocDtos = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermTypeAndPattern(searchString, type);
-                vocDtos.stream().forEach(vocDto->searchResults.add(new TermSearchResult(vocDto)));
+
+            if (this.page != null && this.page.isSkipStandartVocs()) {
+                Collection<TermDto> filteredDtos = dtos.stream()
+                        .filter(c -> VocabularyEnum.getVocabularyEnumByUuid(c.getVocabularyUuid()) == null)
+                        .collect(Collectors.toSet());
+
+                dtos = filteredDtos;
+            }
+            if (this.page != null && this.page.isSkipManagedColls()) {
+                Collection<TermDto> filteredDtos = dtos.stream()
+                        .filter(c -> !c.isManaged())
+                        .collect(Collectors.toSet());
+
+                dtos = filteredDtos;
+            }
+            
+
+            dtos.stream().forEach(dto -> searchResults.add(new TermSearchResult(dto)));
+            if (page != null) {
+                Collection<TermVocabularyDto> vocDtos = CdmStore.getService(IVocabularyService.class)
+                        .findVocabularyDtoByTermTypeAndPattern(searchString, type);
+                if (this.page.isSkipStandartVocs()) {
+                    Collection<TermVocabularyDto> filteredDtos = vocDtos.stream()
+                            .filter(c -> VocabularyEnum.getVocabularyEnumByUuid(c.getUuid()) == null)
+                            .collect(Collectors.toSet());
+
+                    vocDtos = filteredDtos;
+                }
+                if (this.page != null && this.page.isSkipStandartVocs()) {
+                    Collection<TermVocabularyDto> filteredDtos = vocDtos.stream()
+                            .filter(c -> VocabularyEnum.getVocabularyEnumByUuid(c.getUuid()) == null)
+                            .collect(Collectors.toSet());
+
+                    vocDtos = filteredDtos;
+                }
+                if (this.page != null && this.page.isSkipManagedColls()) {
+                    Collection<TermVocabularyDto> filteredDtos = vocDtos.stream()
+                            .filter(c -> !c.isManaged())
+                            .collect(Collectors.toSet());
+
+                    vocDtos = filteredDtos;
+                }
+
+                vocDtos.stream().forEach(vocDto -> searchResults.add(new TermSearchResult(vocDto)));
             }
         }
         return searchResults;
@@ -90,11 +133,11 @@ public class TermSearchController extends SearchController<TermSearchResult, Abs
             public void widgetSelected(SelectionEvent e) {
                 Button selectedComp = (Button) e.widget;
                 boolean selected = selectedComp.getSelection();
-                for (CheckBoxSearchResultComposite<?,?> comp: getSearchResultComposites()){
+                for (CheckBoxSearchResultComposite<?, ?> comp : getSearchResultComposites()) {
                     comp.getBtnCheck().setSelection(false);
                 }
                 selectedComp.setSelection(selected);
-                if (page != null){
+                if (page != null) {
                     page.setPageComplete(selected);
                 }
             }
@@ -113,7 +156,7 @@ public class TermSearchController extends SearchController<TermSearchResult, Abs
     }
 
     @Override
-    protected void search(){
+    protected void search() {
         super.search();
 
     }
index 62f3db32c3ab0898335569c2224617cddb2aee0f..3a2a86ca6758a6943a3c8c7e2a2adfc619dbecd0 100644 (file)
@@ -8,20 +8,23 @@
 */
 package eu.etaxonomy.taxeditor.view.search.facet.term;
 
+import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 
+import eu.etaxonomy.cdm.api.service.l10n.TermRepresentation_L10n;
+import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.persistence.dto.AbstractTermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
-import eu.etaxonomy.cdm.remote.l10n.TermRepresentation_L10n;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.view.search.facet.Facet;
 import eu.etaxonomy.taxeditor.view.search.facet.SearchResult;
 
 /**
  * @author pplitzner
  * @since Jan 24, 2019
- *
  */
 public class TermSearchResult extends SearchResult<AbstractTermDto> {
 
@@ -32,14 +35,19 @@ public class TermSearchResult extends SearchResult<AbstractTermDto> {
     @Override
     protected Set<Facet> initFacets(AbstractTermDto content) {
         Set<Facet> facets = new HashSet<>();
-        content.localize(new TermRepresentation_L10n());
+        //this does not work!
+        List<Language> languages = new ArrayList<>();
+        languages.add(PreferencesUtil.getGlobalLanguage());
+        content.localize(new TermRepresentation_L10n(), languages);
         TermType termType = content.getTermType();
+
         if (content instanceof TermDto){
-            facets.add(new Facet(((TermDto)content).getVocRepresentation_L10n(), termType!=null?termType.getMessage():null));
+               String vocString =((TermDto)content).getVocabularyDto() != null?((TermDto)content).getVocabularyDto().getTitleCache():null;
+               vocString = vocString != null? vocString: (termType!= null? termType.getLabel():null);
+            facets.add(new Facet(((TermDto)content).getVocabularyDto() != null?((TermDto)content).getVocabularyDto().getTitleCache():"", termType!= null?termType.getLabel():"" ));
         }else{
-            facets.add(new Facet(content.getRepresentation_L10n(), termType!=null?termType.getMessage():null));
+            facets.add(new Facet(content.getRepresentation_L10n(), termType!=null?termType.getLabel():null));
         }
         return facets;
     }
-
-}
+}
\ No newline at end of file
index 2a695c2f5b4273fba5d2362ef186c682d43f27a5..3d86103d14a2c407fb351b7acbb515a05fa046f0 100644 (file)
@@ -9,12 +9,12 @@
 package eu.etaxonomy.taxeditor.view.search.facet.term;
 
 import java.io.InputStream;
-import java.net.URI;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.UUID;
 import java.util.stream.Collectors;
 
+import org.apache.commons.lang3.StringUtils;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
@@ -36,6 +36,7 @@ import org.eclipse.swt.widgets.Label;
 
 import eu.etaxonomy.cdm.api.service.IMediaService;
 import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.common.URI;
 import eu.etaxonomy.cdm.common.UriUtils;
 import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.media.MediaUtils;
@@ -47,17 +48,13 @@ import eu.etaxonomy.taxeditor.view.search.facet.CheckBoxSearchResultComposite;
 /**
  * @author pplitzner
  * @since Jan 23, 2019
- *
  */
 public class TermSearchResultComposite extends CheckBoxSearchResultComposite<AbstractTermDto, TermSearchResult> {
 
     private Collection<Image> imageBuffer;
 
-
-
     public TermSearchResultComposite(TermSearchResult result, Composite parent, int style) {
         super(result, parent, style);
-
     }
 
     @Override
@@ -66,7 +63,6 @@ public class TermSearchResultComposite extends CheckBoxSearchResultComposite<Abs
             image.dispose();
             imageBuffer = null;
         }
-
         super.dispose();
     }
 
@@ -78,7 +74,8 @@ public class TermSearchResultComposite extends CheckBoxSearchResultComposite<Abs
         content.setLayout(layout);
         Label label = new Label(content, SWT.WRAP);
         label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
-        label.setText(result.getContent().getRepresentation_L10n());
+        String termLabel = CdmUtils.Nz(StringUtils.replace(result.getContent().getRepresentation_L10n(), "&", "&&"));
+        label.setText(termLabel);
         label.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT));
         GridDataFactory.fillDefaults().applyTo(label);
 
@@ -89,7 +86,7 @@ public class TermSearchResultComposite extends CheckBoxSearchResultComposite<Abs
                 .collect(Collectors.joining(","));
         if (CdmUtils.isNotBlank(facetText)) {
             Label labelFacets = new Label(content, SWT.WRAP);
-            labelFacets.setText(facetText);
+            labelFacets.setText(StringUtils.replace(facetText, "&", "&&"));
             labelFacets.setFont(JFaceResources.getFontRegistry().getItalic(JFaceResources.DEFAULT_FONT));
         }
         // description
@@ -106,7 +103,9 @@ public class TermSearchResultComposite extends CheckBoxSearchResultComposite<Abs
                 }
             });
             lblDescription.setText(representation_L10n_text);
+            lblDescription.setText(StringUtils.replace(representation_L10n_text, "&", "&&"));
         }
+
         // media
         if (result.getContent() instanceof TermDto){
             Collection<UUID> mediaUuids = ((TermDto)result.getContent()).getMedia();
@@ -119,6 +118,9 @@ public class TermSearchResultComposite extends CheckBoxSearchResultComposite<Abs
                     protected IStatus run(IProgressMonitor monitor) {
                         Collection<URI> mediaUris = new HashSet<>();
                         for (UUID uuid : mediaUuids) {
+                            if (TermSearchResultComposite.this.isDisposed()){
+                                this.cancel();
+                            }
                             Media media = CdmStore.getService(IMediaService.class).load(uuid);
                             if(media==null){
                                 continue;
@@ -136,24 +138,31 @@ public class TermSearchResultComposite extends CheckBoxSearchResultComposite<Abs
                                     // ignore
                                 }
                             }
-                            Composite mediaContainer = new Composite(content, SWT.NONE);
-                            mediaContainer.setLayout(new FillLayout());
-                            for (Image image : imageBuffer) {
-                                Composite composite = new Composite(mediaContainer, SWT.NONE);
-                                composite.addPaintListener(new PaintListener() {
-                                    @Override
-                                    public void paintControl(PaintEvent e) {
-                                        if(image!=null){
-                                            e.gc.setAntialias(SWT.ON);
-                                            e.gc.setInterpolation(SWT.HIGH);
-                                            e.gc.drawImage(image, 0, 0,image.getBounds().width, image.getBounds().height,0, 0, 40, 40);
-                                            e.gc.dispose();
-                                        }
+                            try{
+                                if (!content.isDisposed()){
+                                    Composite mediaContainer = new Composite(content, SWT.NONE);
+                                    mediaContainer.setLayout(new FillLayout());
+                                    for (Image image : imageBuffer) {
+                                        Composite composite = new Composite(mediaContainer, SWT.NONE);
+                                        composite.addPaintListener(new PaintListener() {
+                                            @Override
+                                            public void paintControl(PaintEvent e) {
+                                                if(image!=null){
+                                                    e.gc.setAntialias(SWT.ON);
+                                                    e.gc.setInterpolation(SWT.HIGH);
+                                                    e.gc.drawImage(image, 0, 0,image.getBounds().width, image.getBounds().height,0, 0, 40, 40);
+                                                    e.gc.dispose();
+                                                }
+                                            }
+                                        });
                                     }
-                                });
+                                }
+                            }catch(IllegalArgumentException e){
+                                System.err.println(e.getStackTrace());
+                            }
+                            if (!TermSearchResultComposite.this.isDisposed() && !TermSearchResultComposite.this.getParent().isDisposed()){
+                                TermSearchResultComposite.this.getParent().layout();
                             }
-
-                            TermSearchResultComposite.this.getParent().layout();
                         });
                         return Status.OK_STATUS;
                     }
@@ -162,8 +171,4 @@ public class TermSearchResultComposite extends CheckBoxSearchResultComposite<Abs
         }
         return content;
     }
-
-
-
-
-}
+}
\ No newline at end of file
index 861624ca76ed3ad45e4b0c9ba3b18d26c3882adc..2956d802eeb33ddc91dd2d3747d90802f35c38a1 100644 (file)
@@ -25,7 +25,6 @@ import org.eclipse.jface.fieldassist.IContentProposalProvider;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.DisposeEvent;
 import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
@@ -34,11 +33,12 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.TableWrapData;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.taxeditor.preference.BiocaseProvideConfig;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
@@ -52,7 +52,7 @@ public class SpecimenProviderSelectionComposite extends Composite {
     private final Combo txtAccessPoint;
     private final Button btnGbif;
     private final Button btnBioCaseProvider;
-    private final Label lblAccessPointUrl;
+//    private final Label lblAccessPointUrl;
 
     private String[] items;
 
@@ -76,26 +76,36 @@ public class SpecimenProviderSelectionComposite extends Composite {
             tableWrapLayout.numColumns = 2;
             setLayout(tableWrapLayout);
         }
-
-        btnGbif = new Button(this, SWT.RADIO);
-        toolkit.adapt(btnGbif, true, true);
-        btnGbif.setText("GBIF");
-        new Label(this, SWT.NONE);
-
         btnBioCaseProvider = new Button(this, SWT.RADIO);
         toolkit.adapt(btnBioCaseProvider, true, true);
         btnBioCaseProvider.setText("BioCASE Provider");
+        btnBioCaseProvider.setLayoutData(new TableWrapData(TableWrapData.LEFT, TableWrapData.MIDDLE, 1, 2));
 //        txtAccessPoint = new Combo(this, SWT.BORDER);
 //
-
+        Label lblAccessPointUrl = new Label(this, SWT.NONE);
+        lblAccessPointUrl.setLayoutData(new TableWrapData(TableWrapData.LEFT, TableWrapData.MIDDLE, 1, 1));
+        toolkit.adapt(lblAccessPointUrl, true, true);
+        lblAccessPointUrl.setText("Access Point URL");
         txtAccessPoint = new Combo(this, SWT.BORDER);
+        TableWrapData layoutData = new TableWrapData(TableWrapData.LEFT, TableWrapData.TOP, 1, 1);
+        layoutData.maxWidth = 300;
+        txtAccessPoint.setLayoutData(layoutData);
+        toolkit.adapt(txtAccessPoint, true, true);
+//        new Label(this, SWT.NONE);
+        btnGbif = new Button(this, SWT.RADIO);
+        toolkit.adapt(btnGbif, true, true);
+        btnGbif.setText("GBIF");
+        btnGbif.setLayoutData(new TableWrapData(TableWrapData.LEFT, TableWrapData.MIDDLE, 1, 2));
         Set<String> itemList = new HashSet<>();
         URL url;
         String response = null;
         try {
             url = new URL("https://www.biocase.org/whats_biocase/gbif_biocase.cgi");
 
-            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+            HttpURLConnection conn;
+
+                conn = (HttpURLConnection) url.openConnection();
+
             conn.setRequestProperty("Accept", "application/json");
     //        conn.setConnectTimeout(TIMEOUT*9);
     //        conn.setReadTimeout(TIMEOUT*9);
@@ -117,46 +127,39 @@ public class SpecimenProviderSelectionComposite extends Composite {
             e.printStackTrace();
         }
 
-        JSONArray jsonResponseArray;
+        java.util.List<BiocaseProvideConfig> listProvider = null;
+        ObjectMapper mapper = new ObjectMapper();
         try {
-            jsonResponseArray =new JSONArray(response);
-
-            int i = 0;
-            String service_url = null;
-            JSONArray dataSets = null;
-//            items = new String[jsonResponseArray.length()];
-            while (i<jsonResponseArray.length()){
-                JSONObject object = jsonResponseArray.getJSONObject(i);
-                service_url = (String) object.get("service_url");
-                if (service_url != null){
-                    if (itemList.add(service_url)){
-                        dataSets = (JSONArray) object.get("datasets");
-                        if (service_url != null){
-                            int j = 0;
-                            while ( j < dataSets.length()){
-                                String title = ((JSONObject)dataSets.get(j)).getString("title");
-                                itemList.add(title+" - "+ service_url);
-                                txtAccessPoint.add(title+" - "+ service_url);
-                                //create object with title and service url to add as data
-                                txtAccessPoint.setData(title+" - "+ service_url, title);
-                                j++;
-                            }
-
-                        }
-
-
+            listProvider = mapper.readValue(response, new TypeReference<java.util.List<BiocaseProvideConfig>>(){});
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
 
-//                        txtAccessPoint.add(service_url);
+        int i = 0;
+        String service_url = null;
+        String[] datasets = null;
+        for (BiocaseProvideConfig conf: listProvider) {
+
+            service_url = conf.getService_url();
+            if (service_url != null){
+                if (itemList.add(service_url)){
+                    int j = 0;
+                    while ( j < conf.getDatasets().length){
+                        String title = conf.getDatasets()[j];
+                        itemList.add(title+" - "+ service_url);
+                        txtAccessPoint.add(title+" - "+ service_url);
+                        //create object with title and service url to add as data
+                        txtAccessPoint.setData(title+" - "+ service_url, title);
+                        j++;
                     }
-//                    items[i] = service_url;
+                    //                    txtAccessPoint.add(service_url);
                 }
-                i++;
+//                items[i] = service_url;
             }
-
-        } catch (JSONException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
+            i++;
         }
+
+
         String biocaseProvider = PreferencesUtil.getStringValue(PreferencePredicate.BioCaseProvider.getKey());
         if (biocaseProvider != null){
             String items[] = biocaseProvider.split(";");
@@ -170,10 +173,10 @@ public class SpecimenProviderSelectionComposite extends Composite {
         items = new String[itemList.size()];
         items = itemList.toArray(items);
 
-        GridData dataProviderUri = new GridData();
-        dataProviderUri.horizontalAlignment = GridData.FILL;
-        dataProviderUri.horizontalSpan = 3;
-        txtAccessPoint.setLayoutData(dataProviderUri);
+//        GridData dataProviderUri = new GridData();
+//        dataProviderUri.horizontalAlignment = GridData.FILL;
+//        dataProviderUri.horizontalSpan = 3;
+//        txtAccessPoint.setLayoutData(dataProviderUri);
       //  providerURI.setVisible(false);
 
         ContentProposalAdapter adapter = new ContentProposalAdapter(txtAccessPoint, new ComboContentAdapter(), getProposalProvider(), null, null);
@@ -182,13 +185,9 @@ public class SpecimenProviderSelectionComposite extends Composite {
 //        String[] proposals = new String[providerURI.getItems().length];
 
 
-        txtAccessPoint.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
-        toolkit.adapt(txtAccessPoint, true, true);
 
-        lblAccessPointUrl = new Label(this, SWT.NONE);
-        lblAccessPointUrl.setLayoutData(new TableWrapData(TableWrapData.LEFT, TableWrapData.MIDDLE, 1, 1));
-        toolkit.adapt(lblAccessPointUrl, true, true);
-        lblAccessPointUrl.setText("Access Point URL");
+//
+
 
     }
 
@@ -201,9 +200,9 @@ public class SpecimenProviderSelectionComposite extends Composite {
     public Combo getTxtAccessPoint() {
         return txtAccessPoint;
     }
-    public Label getLblAccessPointUrl() {
-        return lblAccessPointUrl;
-    }
+//    public Label getLblAccessPointUrl() {
+//        return lblAccessPointUrl;
+//    }
 
     /**
      * @return
index 31e3f87dcdd6cd6c92bd462e8a7684856d010ec1..3e48a306481f7ad9b304d904c6c8592f44dcecb6 100644 (file)
@@ -61,8 +61,6 @@ public class SpecimenProviderSelectionController implements Listener{
         composite.getTxtAccessPoint().addListener(SWT.Modify, this);
         composite.getBtnGbif().setSelection(true);
         composite.getTxtAccessPoint().setEnabled(false);
-        composite.getLblAccessPointUrl().setEnabled(false);
-
         loadLastState();
     }
 
@@ -83,7 +81,7 @@ public class SpecimenProviderSelectionController implements Listener{
             }
             composite.getBtnGbif().setSelection(false);
             composite.getTxtAccessPoint().setEnabled(true);
-            composite.getLblAccessPointUrl().setEnabled(true);
+
 
         }
     }
@@ -96,10 +94,8 @@ public class SpecimenProviderSelectionController implements Listener{
     public void handleEvent(Event event) {
         if(event.widget==composite.getBtnBioCaseProvider()){
             composite.getTxtAccessPoint().setEnabled(true);
-            composite.getLblAccessPointUrl().setEnabled(true);
         }
         else if(event.widget==composite.getBtnGbif()){
-            composite.getLblAccessPointUrl().setEnabled(false);
             composite.getTxtAccessPoint().setEnabled(false);
         }
         wizard.getContainer().updateButtons();
index c67129ebeaaa6bb1a5160c20d02362a83404f98a..11543bf2b004b449d54e3987ac1610cbfde4b3fc 100644 (file)
@@ -18,7 +18,6 @@ import org.eclipse.swt.widgets.Shell;
 /**
  * @author pplitzner
  * @since Nov 2, 2017
- *
  */
 public class InspectSessionHandler {
 
index 74801d2b84a63b32507f7d5a9efc51aa693ecbb3..a033432b2a57a244103f715a7d0a47a05988fd6b 100644 (file)
@@ -8,6 +8,7 @@
  */
 package eu.etaxonomy.taxeditor.view.sessions;
 
+import java.util.Collections;
 import java.util.List;
 
 import org.eclipse.jface.viewers.ILabelProvider;
@@ -61,7 +62,7 @@ public class InspectSessionsDialog extends Dialog {
 
     private TreeViewer treeViewer;
     private Button btnClose;
-    EntityCacherDebugResult ecdr;
+    private EntityCacherDebugResult entityCacherDebugResult;
     private SashForm sashForm;
     private Composite compositeDebug;
 
@@ -73,15 +74,16 @@ public class InspectSessionsDialog extends Dialog {
     public InspectSessionsDialog(Shell parent, int style) {
         super(parent, style);
         setText("Inspect Active Session");
-        cdmlibModelCache = CdmRemoteCacheManager.getInstance().getCdmModelGetMethodsCache();
+        cdmlibModelCache = CdmRemoteCacheManager.INSTANCE().getCdmModelGetMethodsCache();
         activeSession = CdmStore.getCurrentSessionManager().getActiveSession();
-        //TODO
-        ecdr = activeSession.debug(false);
+        if (activeSession != null){
+            //TODO
+            entityCacherDebugResult = activeSession.debug(false);
+        }
     }
 
     /**
      * Open the dialog.
-     * @return the result
      */
     public Object open() {
 
@@ -89,6 +91,7 @@ public class InspectSessionsDialog extends Dialog {
         setDebugInfoText();
         treeViewer.setContentProvider(new SessionsTreeContentProvider());
         treeViewer.setLabelProvider(new SessionsTreeLabelProvider());
+
         treeViewer.setInput(getRootElements());
         shlInspectSessions.open();
         shlInspectSessions.layout();
@@ -144,16 +147,15 @@ public class InspectSessionsDialog extends Dialog {
         gd_btnClose.widthHint = 70;
         btnClose.setLayoutData(gd_btnClose);
         btnClose.setText("Close");
-
     }
 
     private void setDebugInfoText() {
-        txtDebugInfo.setText(ecdr.toString());
+        txtDebugInfo.setText(entityCacherDebugResult == null? "No session" : entityCacherDebugResult.toString());
     }
     private CdmEntityInfo[] getRootElements() {
 
-        List<CdmEntityInfo> rootElemnts = ecdr.getRootElements();
-        return rootElemnts.toArray(new CdmEntityInfo[rootElemnts.size()]);
+        List<CdmEntityInfo> rootElements = entityCacherDebugResult == null? null : entityCacherDebugResult.getRootElements();
+        return rootElements == null ? new CdmEntityInfo[0]: rootElements.toArray(new CdmEntityInfo[rootElements.size()]);
     }
 
     class SessionsTreeContentProvider implements ITreeContentProvider {
@@ -174,6 +176,11 @@ public class InspectSessionsDialog extends Dialog {
         @Override
         public Object[] getChildren(Object parentElement) {
             List<CdmEntityInfo> children = ((CdmEntityInfo)parentElement).getChildren();
+            Collections.sort(children, (c1, c2)->{
+                String str1 = (c1 == null) ? "": c1.getLabel();
+                String str2 = (c2 == null) ? "": c2.getLabel();
+                return str1.compareTo(str2);
+            });
             return children.toArray();
         }
 
@@ -219,7 +226,6 @@ public class InspectSessionsDialog extends Dialog {
 
         @Override
         public Image getImage(Object element) {
-            // TODO Auto-generated method stub
             return null;
         }
 
index f270200bd9ef59077e163dd903f781a9b9fa2bad..78ba77796e5216a5e51563626359980083d58991 100644 (file)
@@ -32,7 +32,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.wb.swt.SWTResourceManager;
 
-import eu.etaxonomy.cdm.api.cache.CdmCacherBase;
+import eu.etaxonomy.cdm.api.cache.CdmPermanentCacheBase;
 import eu.etaxonomy.cdm.cache.CdmRemoteCacheManager;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
@@ -41,7 +41,7 @@ import eu.etaxonomy.taxeditor.session.NullSession;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import net.sf.ehcache.Cache;
 import net.sf.ehcache.CacheManager;
-import net.sf.ehcache.statistics.LiveCacheStatistics;
+import net.sf.ehcache.statistics.FlatStatistics;
 
 /**
  * @author cmathew
@@ -58,10 +58,10 @@ public class SessionsViewPart implements ICdmEntitySessionManagerObserver {
     private final ICdmEntitySessionManager cdmEntitySessionManager;
     private Text txtNoOfSessions;
     private Text txtNoOfCaches;
-    private Text txtDefaultInMemory;
+    private Text txtPermanentInMemory;
     private Text txtCdmModelInMemory;
     private Text txtCdmModelOnDisk;
-    private Text txtDefaultOnDisk;
+    private Text txtPermanentOnDisk;
 
     @Inject
     private ECommandService commandService;
@@ -81,6 +81,7 @@ public class SessionsViewPart implements ICdmEntitySessionManagerObserver {
      * Create contents of the view part.
      * @param parent
      */
+    @SuppressWarnings("unused")
     @PostConstruct
     public void createPartControl(Composite parent) {
         Composite container = new Composite(parent, SWT.NONE);
@@ -127,40 +128,40 @@ public class SessionsViewPart implements ICdmEntitySessionManagerObserver {
         new Label(container, SWT.NONE);
 
         {
-            Label lblDefaultCache = new Label(container, SWT.CENTER);
-            lblDefaultCache.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
-            lblDefaultCache.setText("Default Cache, ");
-            lblDefaultCache.setFont(SWTResourceManager.getFont("Ubuntu", 10, SWT.NORMAL));
-            lblDefaultCache.setAlignment(SWT.RIGHT);
+            Label lblPermanentCache = new Label(container, SWT.CENTER);
+            lblPermanentCache.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+            lblPermanentCache.setText("Permanent Cache, ");
+            lblPermanentCache.setFont(SWTResourceManager.getFont("Ubuntu", 10, SWT.NORMAL));
+            lblPermanentCache.setAlignment(SWT.RIGHT);
         }
         {
-            Label lblDefaultInMemory = new Label(container, SWT.CENTER);
-            lblDefaultInMemory.setText("in Memory : ");
-            lblDefaultInMemory.setFont(SWTResourceManager.getFont("Ubuntu", 10, SWT.NORMAL));
-            lblDefaultInMemory.setAlignment(SWT.RIGHT);
-            lblDefaultInMemory.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+            Label lblPermanentInMemory = new Label(container, SWT.CENTER);
+            lblPermanentInMemory.setText("in Memory : ");
+            lblPermanentInMemory.setFont(SWTResourceManager.getFont("Ubuntu", 10, SWT.NORMAL));
+            lblPermanentInMemory.setAlignment(SWT.RIGHT);
+            lblPermanentInMemory.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
         }
         {
-            txtDefaultInMemory = new Text(container, SWT.BORDER);
-            txtDefaultInMemory.setEditable(false);
-            GridData gd_txtDefaultInMemory = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
-            gd_txtDefaultInMemory.widthHint = 130;
-            txtDefaultInMemory.setLayoutData(gd_txtDefaultInMemory);
+            txtPermanentInMemory = new Text(container, SWT.BORDER);
+            txtPermanentInMemory.setEditable(false);
+            GridData gd_txtPermanentInMemory = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+            gd_txtPermanentInMemory.widthHint = 130;
+            txtPermanentInMemory.setLayoutData(gd_txtPermanentInMemory);
         }
         {
-            Label lblDefaultOnDisk = new Label(container, SWT.CENTER);
-            lblDefaultOnDisk.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
-            lblDefaultOnDisk.setText("on Disk : ");
-            lblDefaultOnDisk.setFont(SWTResourceManager.getFont("Ubuntu", 10, SWT.NORMAL));
-            lblDefaultOnDisk.setAlignment(SWT.RIGHT);
+            Label lblPermanentOnDisk = new Label(container, SWT.CENTER);
+            lblPermanentOnDisk.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+            lblPermanentOnDisk.setText("on Disk : ");
+            lblPermanentOnDisk.setFont(SWTResourceManager.getFont("Ubuntu", 10, SWT.NORMAL));
+            lblPermanentOnDisk.setAlignment(SWT.RIGHT);
         }
         {
-            txtDefaultOnDisk = new Text(container, SWT.BORDER);
-            txtDefaultOnDisk.setEditable(false);
-            txtDefaultOnDisk.setText("");
-            GridData gd_txtDefaultOnDisk = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
-            gd_txtDefaultOnDisk.widthHint = 130;
-            txtDefaultOnDisk.setLayoutData(gd_txtDefaultOnDisk);
+            txtPermanentOnDisk = new Text(container, SWT.BORDER);
+            txtPermanentOnDisk.setEditable(false);
+            txtPermanentOnDisk.setText("");
+            GridData gd_txtPermanentOnDisk = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+            gd_txtPermanentOnDisk.widthHint = 130;
+            txtPermanentOnDisk.setLayoutData(gd_txtPermanentOnDisk);
         }
         {
             Label lblCdmModelCache = new Label(container, SWT.CENTER);
@@ -274,28 +275,27 @@ public class SessionsViewPart implements ICdmEntitySessionManagerObserver {
             }
         }
 
-        CdmRemoteCacheManager instance = CdmRemoteCacheManager.getInstance();
+        CdmRemoteCacheManager instance = CdmRemoteCacheManager.INSTANCE();
         int cdmEnityCacheSize = CacheManager.create().getCacheNames().length;
         txtNoOfCaches.setText(String.valueOf(cdmEnityCacheSize));
 
-        Cache defaultCache = CacheManager.create().getCache(CdmCacherBase.DEFAULT_CACHE_NAME);
-        txtDefaultInMemory.setText("");
-        txtDefaultOnDisk.setText("");
-        if(defaultCache != null) {
-            LiveCacheStatistics liveCacheStatistics = defaultCache.getLiveCacheStatistics();
-            txtDefaultInMemory.setText(getInMemoryStats(liveCacheStatistics));
-            txtDefaultOnDisk.setText(getOnDiskStats(liveCacheStatistics));
+        Cache permanentCache = CacheManager.create().getCache(CdmPermanentCacheBase.PERMANENT_CACHE_NAME);
+        txtPermanentInMemory.setText("");
+        txtPermanentOnDisk.setText("");
+        if(permanentCache != null) {
+               FlatStatistics liveCacheStatistics = permanentCache.getStatistics();
+            txtPermanentInMemory.setText(getInMemoryStats(liveCacheStatistics));
+            txtPermanentOnDisk.setText(getOnDiskStats(liveCacheStatistics));
         }
 
         Cache cdmModelGetMethodsCache = instance.getCdmModelGetMethodsCache();
         txtCdmModelInMemory.setText("");
         txtCdmModelOnDisk.setText("");
         if(cdmModelGetMethodsCache != null) {
-            LiveCacheStatistics liveCacheStatistics = cdmModelGetMethodsCache.getLiveCacheStatistics();
+               FlatStatistics liveCacheStatistics = cdmModelGetMethodsCache.getStatistics();
             txtCdmModelInMemory.setText(getInMemoryStats(liveCacheStatistics));
             txtCdmModelOnDisk.setText(getOnDiskStats(liveCacheStatistics));
         }
-
     }
 
     private void addSession(ICdmEntitySession session) {
@@ -315,12 +315,12 @@ public class SessionsViewPart implements ICdmEntitySessionManagerObserver {
             }
         }
         item.setText(0, activePrefix + sessionOwnerString);
-        LiveCacheStatistics cacheStatistics = session.getCacheStatistics();
+        FlatStatistics cacheStatistics = session.getCacheStatistics();
         item.setText(1, getInMemoryStats(cacheStatistics));
         item.setText(2, getOnDiskStats(cacheStatistics));
     }
 
-    private String getInMemoryStats(LiveCacheStatistics statistics) {
+    private String getInMemoryStats(FlatStatistics statistics) {
         if(statistics != null) {
             long localHeapSize = statistics.getLocalHeapSize();
 
@@ -332,7 +332,7 @@ public class SessionsViewPart implements ICdmEntitySessionManagerObserver {
         return "";
     }
 
-    private String getOnDiskStats(LiveCacheStatistics statistics) {
+    private String getOnDiskStats(FlatStatistics statistics) {
         if(statistics != null) {
             long localDiskSize = statistics.getLocalDiskSize();
 
index 578f82b3e4a11632fedb6306954b268b02bd98b4..ba94686376ae9939913792ce51e792a3163e2957 100644 (file)
@@ -21,10 +21,7 @@ import org.eclipse.swt.widgets.Text;
 import org.eclipse.swt.widgets.Tree;
 import org.eclipse.wb.swt.SWTResourceManager;
 
-import eu.etaxonomy.cdm.api.service.IVocabularyService;
-import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.taxeditor.model.ImageResources;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.combo.termvocabulary.TermVocabularyComboViewer;
 
 /**
@@ -88,13 +85,13 @@ public class GfBioTerminologyImportComposite extends Composite{
         btnChooseOntology = new Button(composite_3, SWT.NONE);
         btnChooseOntology.setImage(ImageResources.getImage(ImageResources.BROWSE_ICON));
 
-        lblNewLabel_4 = new Label(composite_3, SWT.NONE);
-        lblNewLabel_4.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
-        lblNewLabel_4.setText("Import Vocabulary");
-
-        termVocabularyComboViewer = new TermVocabularyComboViewer(composite_3, SWT.NONE);
-        termVocabularyComboViewer.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, false, 1, 1));
-        termVocabularyComboViewer.setInput(CdmStore.getService(IVocabularyService.class).list(TermVocabulary.class, null, null, null, null));
+//        lblNewLabel_4 = new Label(composite_3, SWT.NONE);
+//        lblNewLabel_4.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+//        lblNewLabel_4.setText("Import Vocabulary");
+//
+//        termVocabularyComboViewer = new TermVocabularyComboViewer(composite_3, SWT.NONE);
+//        termVocabularyComboViewer.setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, false, false, 1, 1));
+//        termVocabularyComboViewer.setInput(CdmStore.getService(IVocabularyService.class).list(TermVocabulary.class, null, null, null, null));
 
         btnRemoveVocabulary = new Button(composite_3, SWT.NONE);
         btnRemoveVocabulary.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
index bfd120dd7115f5dc7539fde724a27e124ea12b70..9d2619c71d41862fca6d3a29044a53e50921e040 100644 (file)
@@ -38,7 +38,8 @@ import org.eclipse.swt.events.KeyAdapter;
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
-import org.json.JSONException;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
 
 import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.taxeditor.l10n.Messages;
@@ -190,7 +191,7 @@ public class GfBioTerminologyImportPresenter {
                 String response = new RequestTerminologies().request();
                 try {
                     availableOntologies = TerminologyParser.parse(response);
-                } catch (JSONException e) {
+                } catch (JsonProcessingException e) {
                     MessagingUtils.errorDialog("Loading ontologies failed", this, "Ontologies could not be found", TaxeditorStorePlugin.PLUGIN_ID, e, false);
                     e.printStackTrace();
                 }
@@ -259,7 +260,11 @@ public class GfBioTerminologyImportPresenter {
                     return Status.CANCEL_STATUS;
                 }
                 final List<OntologyTermWrapper> wrapperList = new ArrayList<>();
-                wrapperList.addAll(TermParser.parse(response));
+                try {
+                    wrapperList.addAll(TermParser.parse(response));
+                } catch (JsonProcessingException e) {
+                    e.printStackTrace();
+                }
                 if(wrapperList.isEmpty()){
                     MessagingUtils.informationDialog(Messages.GfBioTerminologyImportPresenter_NO_RESULTS_TITLE, Messages.GfBioTerminologyImportPresenter_NO_RESULTS_MESSAGE);
                 }
index 05cc3b288f377317109d0dccdfd94195d9c410b6..052492abbfa897579ed065407226db24b4db059f 100644 (file)
@@ -13,6 +13,8 @@ import java.util.Collection;
 
 import org.eclipse.jface.viewers.ITreeContentProvider;
 
+import com.fasterxml.jackson.core.JsonProcessingException;
+
 import eu.etaxonomy.taxeditor.view.webimport.termimport.parser.OntologyTermParser;
 import eu.etaxonomy.taxeditor.view.webimport.termimport.requests.RequestBroader;
 import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrapper;
@@ -38,8 +40,14 @@ public class OntologyTermContentProvider implements ITreeContentProvider {
         if(parentElement instanceof OntologyTermWrapper){
             OntologyTermWrapper wrapper = (OntologyTermWrapper) parentElement;
             String response = new RequestBroader(wrapper.getUri(), wrapper.getSourceTerminology()).request();
-            Collection<OntologyTermWrapper> broader = OntologyTermParser.parse(response, ((OntologyTermWrapper) parentElement).getSourceTerminology());
-            return broader.toArray();
+            Collection<OntologyTermWrapper> broader;
+            try {
+                broader = OntologyTermParser.parse(response, ((OntologyTermWrapper) parentElement).getSourceTerminology());
+                return broader.toArray();
+            } catch (JsonProcessingException e) {
+                e.printStackTrace();
+            }
+
         }
         return null;
     }
index 11df63631e451d8ede6b4e26cba809d6fdd07e89..5f700a442f88e50e32932b9cf7052f0c4c474041 100644 (file)
@@ -11,9 +11,9 @@ package eu.etaxonomy.taxeditor.view.webimport.termimport.parser;
 import java.util.Collection;
 import java.util.LinkedList;
 
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.HierarchyTermWrapper;
 
@@ -23,26 +23,38 @@ import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.HierarchyTermWra
  *
  */
 public class HierarchyParser {
-    public static Collection<HierarchyTermWrapper> parse(String response){
+    public static Collection<HierarchyTermWrapper> parse(String response) throws JsonProcessingException{
         LinkedList<HierarchyTermWrapper> wrapperList = new LinkedList<>();
+        JsonNode tree = null;
+        ObjectMapper mapper = new ObjectMapper();
+        JsonNode resultNode = null;
+        HierarchyTermWrapper childTerm = null;
         try {
-            JSONObject jsonResponse = new JSONObject(response);
-            JSONArray responseArray = ParserUtil.parseResults(jsonResponse);
-            HierarchyTermWrapper childTerm = null;
-            for(int i=0;i<responseArray.length();i++){
-                JSONObject jsonObject = responseArray.getJSONObject(i);
-                String label = ParserUtil.parseLabel(jsonObject);
-                String uri= ParserUtil.parseUri(jsonObject);
-                HierarchyTermWrapper hierarchyTermWrapper = new HierarchyTermWrapper(uri, label);
-                wrapperList.add(hierarchyTermWrapper);
-                if(childTerm!=null){
-                    childTerm.setParentTerm(hierarchyTermWrapper);
+            tree =  mapper.readTree(response);
+            if (tree != null) {
+                resultNode =ParserUtil.parseResults(tree);
+
+                for (int i = 0; i < resultNode.size(); i++) {
+                    JsonNode node = resultNode.get(i);
+                    String uri = ParserUtil.parseUri(node);
+                    String label = ParserUtil.parseLabel(node);
+                    HierarchyTermWrapper hierarchyTermWrapper = new HierarchyTermWrapper(uri, label, null);
+                    if (childTerm != null) {
+                        childTerm.setParentTerm(hierarchyTermWrapper);
+                    }
+                    childTerm = hierarchyTermWrapper;
+                    wrapperList.add(hierarchyTermWrapper);
                 }
-                childTerm = hierarchyTermWrapper;
+
             }
-        } catch (JSONException jsonException) {
-            jsonException.printStackTrace();
-        }
+         } catch (JsonProcessingException e1) {
+
+             throw e1;
+         }
+
+
+
+
         return wrapperList;
     }
 
index c9f5fbe56bbcf85f4d9b15ab2668a73e8d61ce54..986093952f37ec5171f8438de4b83b4b657561f0 100644 (file)
@@ -12,9 +12,10 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrapper;
 
@@ -24,19 +25,21 @@ import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrap
  *
  */
 public class OntologyTermParser {
-    public static Collection<OntologyTermWrapper> parse(String response, String terminology){
+    public static Collection<OntologyTermWrapper> parse(String response, String terminology) throws JsonMappingException, JsonProcessingException{
         List<OntologyTermWrapper> wrapperList = new ArrayList<>();
-        try {
-            JSONObject jsonResponse = new JSONObject(response);
-            JSONArray responseArray = ParserUtil.parseResults(jsonResponse);
-            for(int i=0;i<responseArray.length();i++){
-                JSONObject jsonObject = responseArray.getJSONObject(i);
-                String label = ParserUtil.parseLabel(jsonObject);
-                String uriString = ParserUtil.parseUri(jsonObject);
+
+        JsonNode tree = null;
+        ObjectMapper mapper = new ObjectMapper();
+        JsonNode resultNode = null;
+
+        tree =  mapper.readTree(response);
+        if (tree != null) {
+            resultNode =tree.get("results");
+            for (int i = 0; i < resultNode.size(); i++) {
+                String label = ParserUtil.parseLabel(resultNode.get(i));
+                String uriString = ParserUtil.parseUri(resultNode.get(i));
                 wrapperList.add(new OntologyTermWrapper(uriString, label, terminology));
             }
-        } catch (JSONException e) {
-            e.printStackTrace();
         }
         return wrapperList;
     }
index 12a42ece91d9fcc0757099a8652902e4099f9539..1bc0c50b6549cff3849089c1186bb0094cc5f9bc 100644 (file)
@@ -11,9 +11,9 @@ package eu.etaxonomy.taxeditor.view.webimport.termimport.parser;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.JsonNode;
 
 import eu.etaxonomy.taxeditor.view.webimport.termimport.requests.RequestTerm;
 import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrapper;
@@ -25,47 +25,50 @@ import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrap
  */
 public class ParserUtil {
 
-    public static JSONArray parseResults(JSONObject jsonObject) throws JSONException{
-        return jsonObject.getJSONArray("results");
+    public static JsonNode parseResults(JsonNode jsonObject) {
+        return jsonObject.get("results");
     }
 
-    public static String parseUri(JSONObject jsonObject) throws JSONException{
-        return jsonObject.getString("uri");
+    public static String parseUri(JsonNode jsonObject){
+        return jsonObject.get("uri").textValue();
     }
 
-    public static String parseLabel(JSONObject jsonObject) throws JSONException{
-        return jsonObject.getString("label");
+    public static String parseLabel(JsonNode jsonObject) {
+        return jsonObject.get("label").textValue();
     }
 
-    public static String parseDescription(JSONObject jsonObject) throws JSONException{
+    public static String parseDescription(JsonNode jsonObject) {
         String descriptionKey = "description";
         if(jsonObject.has(descriptionKey)){
-            return jsonObject.getString(descriptionKey);
+            return jsonObject.get(descriptionKey).textValue();
         }
         return null;
     }
 
-    public static List<String> parseSynonyms(JSONObject jsonObject) throws JSONException{
+    public static List<String> parseSynonyms(JsonNode jsonObject) {
         List<String> synonyms = new ArrayList<>();
         String synomymKey = "synonyms";
         if(jsonObject.has(synomymKey)){
-             JSONArray jsonArray = jsonObject.getJSONArray(synomymKey);
-             for(int i=0;i<jsonArray.length();i++){
-                 synonyms.add(jsonArray.getString(i));
+             JsonNode jsonArray = jsonObject.get(synomymKey);
+             for(int i=0;i<jsonArray.size();i++){
+                 //TODO: check whether this is correct!!!
+                 synonyms.add(jsonArray.get(i).textValue());
              }
         }
         return synonyms;
     }
 
-    public static String parseTerminology(JSONObject jsonObject) throws JSONException {
-        return jsonObject.getString("sourceTerminology");
+    public static String parseTerminology(JsonNode jsonObject){
+        return jsonObject.get("sourceTerminology").textValue();
     }
 
     /**
      * Loads and sets detail information for the given wrapper
      * @param wrapper the wrapper for which the detailed information will be loaded and set
+     * @throws JsonProcessingException
+     * @throws JsonMappingException
      */
-    public static void loadDetails(OntologyTermWrapper wrapper) {
+    public static void loadDetails(OntologyTermWrapper wrapper) throws JsonMappingException, JsonProcessingException {
         String request = new RequestTerm(wrapper.getUri(), wrapper.getSourceTerminology()).request();
         OntologyTermWrapper detailTerm = TermParser.parseSingleTerm(request);
         wrapper.setDescription(detailTerm.getDescription());
index 8bfa874d1da3208c8755d9c9f4cb2c0b216246c9..61fc73563dd6796523a02c9037ae4c8533748ee4 100644 (file)
@@ -12,11 +12,11 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
-import eu.etaxonomy.taxeditor.view.webimport.termimport.requests.RequestTerm;
 import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrapper;
 
 /**
@@ -25,23 +25,22 @@ import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrap
  *
  */
 public class SuggestParser {
-    public static Collection<OntologyTermWrapper> parse(String response){
+    public static Collection<OntologyTermWrapper> parse(String response) throws JsonMappingException, JsonProcessingException{
         List<OntologyTermWrapper> wrapperList = new ArrayList<>();
-        try {
-            JSONObject jsonResponse = new JSONObject(response);
-            JSONArray responseArray = ParserUtil.parseResults(jsonResponse);
-            for(int i=0;i<responseArray.length();i++){
-                JSONObject jsonObject = responseArray.getJSONObject(i);
-                String label = ParserUtil.parseLabel(jsonObject);
-                String uri= ParserUtil.parseUri(jsonObject);
-                String sourceTerminology = ParserUtil.parseTerminology(jsonObject);
-                String request = new RequestTerm(uri, sourceTerminology).request();
-                OntologyTermWrapper wrapper = new OntologyTermWrapper(uri, label, sourceTerminology);
-                wrapperList.add(wrapper);
-            }
-        } catch (JSONException jsonException) {
-            jsonException.printStackTrace();
+        ObjectMapper mapper = new ObjectMapper();
+
+        JsonNode tree =  mapper.readTree(response);
+        JsonNode resultNode = ParserUtil.parseResults(tree);
+        for(int i=0;i<resultNode.size();i++){
+            JsonNode jsonObject = resultNode.get(i);
+            String label = ParserUtil.parseLabel(jsonObject);
+            String uri= ParserUtil.parseUri(jsonObject);
+            String sourceTerminology = ParserUtil.parseTerminology(jsonObject);
+            //String request = new RequestTerm(uri, sourceTerminology).request();
+            OntologyTermWrapper wrapper = new OntologyTermWrapper(uri, label, sourceTerminology);
+            wrapperList.add(wrapper);
         }
+
         return wrapperList;
     }
 
index 36c13c83d8dc58ac9bd0101b07e7196dfc35eaa2..ff9d7d00d7e06482f257d64ae4bfc1de5b640381 100644 (file)
@@ -11,9 +11,10 @@ package eu.etaxonomy.taxeditor.view.webimport.termimport.parser;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrapper;
 
@@ -23,36 +24,36 @@ import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.OntologyTermWrap
  *
  */
 public class TermParser {
-    public static OntologyTermWrapper parseSingleTerm(String response){
-        try {
-            JSONObject jsonResponse = new JSONObject(response);
-            JSONArray responseArray = ParserUtil.parseResults(jsonResponse);
-            for(int i=0;i<responseArray.length();i++){
-                JSONObject jsonObject = responseArray.getJSONObject(i);
-                return createWrapper(jsonObject);
-            }
-        } catch (JSONException e) {
-            e.printStackTrace();
+    public static OntologyTermWrapper parseSingleTerm(String response) throws JsonMappingException, JsonProcessingException{
+        ObjectMapper mapper = new ObjectMapper();
+        JsonNode resultNode = null;
+
+        JsonNode tree = mapper.readTree(response);
+        JsonNode responseNode = ParserUtil.parseResults(tree);
+        for(int i=0;i<responseNode.size();i++){
+            JsonNode jsonObject = responseNode.get(i);
+            return createWrapper(jsonObject);
         }
+
         return null;
     }
 
-    public static List<OntologyTermWrapper> parse(String response){
+    public static List<OntologyTermWrapper> parse(String response) throws JsonMappingException, JsonProcessingException{
         List<OntologyTermWrapper> wrapperList = new ArrayList<>();
-        try {
-            JSONObject jsonResponse = new JSONObject(response);
-            JSONArray responseArray = ParserUtil.parseResults(jsonResponse);
-            for(int i=0;i<responseArray.length();i++){
-                JSONObject jsonObject = responseArray.getJSONObject(i);
-                wrapperList.add(createWrapper(jsonObject));
-            }
-        } catch (JSONException e) {
-            e.printStackTrace();
+        ObjectMapper mapper = new ObjectMapper();
+
+        JsonNode tree = mapper.readTree(response);
+
+        JsonNode resultNode = ParserUtil.parseResults(tree);
+        for(int i=0;i<resultNode.size();i++){
+            JsonNode jsonObject = resultNode.get(i);
+            wrapperList.add(createWrapper(jsonObject));
         }
+
         return wrapperList;
     }
 
-    private static OntologyTermWrapper createWrapper(JSONObject jsonObject) throws JSONException{
+    private static OntologyTermWrapper createWrapper(JsonNode jsonObject) {
         String description = ParserUtil.parseDescription(jsonObject);
         String label = ParserUtil.parseLabel(jsonObject);
         String uri= ParserUtil.parseUri(jsonObject);
index 1de37c16a504edd9d48b5aff528cc12ea3bd69b4..04ee0d98cacd1a46e1f97d68b2159043de680082 100644 (file)
@@ -12,9 +12,9 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.TerminologyWrapper;
 
@@ -24,18 +24,32 @@ import eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper.TerminologyWrapp
  *
  */
 public class TerminologyParser {
-    public static Collection<TerminologyWrapper> parse(String response) throws JSONException{
+    public static Collection<TerminologyWrapper> parse(String response) throws JsonProcessingException {
         List<TerminologyWrapper> wrapperList = new ArrayList<>();
-        JSONObject jsonResponse = new JSONObject(response);
-        JSONArray responseArray = jsonResponse.getJSONArray("results");
-        for(int i=0;i<responseArray.length();i++){
-            JSONObject jsonObject = responseArray.getJSONObject(i);
-            String name = jsonObject.getString("name");
-            String acronym = jsonObject.getString("acronym");
-            String description = ParserUtil.parseDescription(jsonObject);
-            String uri = ParserUtil.parseUri(jsonObject);
-            wrapperList.add(new TerminologyWrapper(name, acronym, description, uri));
+        JsonNode tree = null;
+        ObjectMapper mapper = new ObjectMapper();
+        JsonNode resultNode = null;
+        try {
+           tree =  mapper.readTree(response);
+           if (tree != null) {
+               resultNode =tree.get("results");
+
+               for (int i = 0; i < resultNode.size(); i++) {
+                   JsonNode node = resultNode.get(i);
+                   String name = node.get("name").textValue();
+                   String acronym = node.get("acronym").textValue();
+                   String description = ParserUtil.parseDescription(node);
+                   String uri = ParserUtil.parseUri(node);
+                   wrapperList.add(new TerminologyWrapper(name, acronym, description, uri));
+               }
+
+           }
+        } catch (JsonProcessingException e1) {
+            // TODO Auto-generated catch block
+            throw e1;
         }
+
+
         return wrapperList;
     }
 
index 4f8861f342796b9d73c06c53bcb26f715e1a6b90..145686fdb7640e64cd6fbb2cd347234cf0a5191e 100644 (file)
@@ -20,7 +20,6 @@ import java.util.List;
 /**
  * @author pplitzner
  * @since Apr 23, 2018
- *
  */
 public abstract class AbstractTerminologyServiceRequest {
 
@@ -89,6 +88,5 @@ public abstract class AbstractTerminologyServiceRequest {
         public String getValue() {
             return value;
         }
-
     }
-}
+}
\ No newline at end of file
index 7a1aab10142165e9de314853135251f7670f139f..176a6ab1d144fba9ae21568e793e031eb5cf5158 100644 (file)
@@ -16,8 +16,9 @@ package eu.etaxonomy.taxeditor.view.webimport.termimport.wrapper;
 public class HierarchyTermWrapper extends TermWrapper{
 
     private HierarchyTermWrapper parentTerm;
-    public HierarchyTermWrapper(String uri, String label) {
+    public HierarchyTermWrapper(String uri, String label, HierarchyTermWrapper parentTerm) {
         super(uri, label);
+        this.parentTerm = parentTerm;
     }
     public HierarchyTermWrapper getParentTerm() {
         return parentTerm;
diff --git a/eu.etaxonomy.taxeditor.store/src/main/resources/eu/etaxonomy/cdm/editorApplicationContext.xml b/eu.etaxonomy.taxeditor.store/src/main/resources/eu/etaxonomy/cdm/editorApplicationContext.xml
deleted file mode 100644 (file)
index b402e67..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<beans xmlns="http://www.springframework.org/schema/beans"\r
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
-  xmlns:context="http://www.springframework.org/schema/context"\r
-  xmlns:tx="http://www.springframework.org/schema/tx"\r
-  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd\r
-    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd\r
-    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">\r
-\r
-  <!-- Local application context and term initializer -->\r
-  <import resource="classpath:/eu/etaxonomy/cdm/localApplicationContext.xml"/>\r
-  \r
-  <!-- Remote application context and term initializer -->\r
-  <!--  <import resource="classpath:/eu/etaxonomy/cdm/remotingApplicationContext.xml"/> -->\r
-  \r
-</beans>\r
index 8c54e23c1e08b5345db545c75dab3740a6524a66..e0bf2dcddad1b5c4d552c61878bcbd8fbf446fe7 100644 (file)
@@ -1,20 +1,17 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.store;
 
-
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.name.INonViralName;
 import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.name.TaxonNameFactory;
@@ -30,30 +27,20 @@ public class NameProtectTitleCacheTest /*extends CdmIntegrationTest */{
 //     @SpringBeanByType
        @SuppressWarnings("unused")
        private CdmStore cdmStore;// = CdmStore.getDefault();
-       
-       
-       @SuppressWarnings("unused")
-       private ConversationHolder conversation;
 
        private INonViralName name;
-       
-       /**
-        * @throws java.lang.Exception
-        */
+
        @Before
        public void setUp() throws Exception {
-               
+
                (new DefaultTermInitializer()).initialize();
-               
+
                name = TaxonNameFactory.NewNonViralInstance(Rank.SPECIES());
-               
+
                name.setGenusOrUninomial("Joe");
                name.setSpecificEpithet("mama");
        }
-       
-       /**
-        * 
-        */
+
        @Test
        public void testProtectTitleCache(){
                Assert.assertTrue(name.isProtectedTitleCache() == false);
index 3d55b3595a4dd4cb3628e94966908d32d3c20dc3..542e13f93480eb4eda25015f025204d7a4cf8eb5 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.store.operations;
 
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -21,7 +20,6 @@ import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 /**
  * @author n.hoffmann
  * @created 15.04.2009
- * @version 1.0
  */
 public abstract class AbstractTaxeditorOperationTestBase {
 
@@ -34,4 +32,4 @@ public abstract class AbstractTaxeditorOperationTestBase {
 
        protected static AbstractPostTaxonOperation operation;
        protected static Taxon taxon;
-}
+}
\ No newline at end of file
similarity index 84%
rename from eu.etaxonomy.taxeditor.store/src/test/java/eu/etaxonomy/taxeditor/store/operations/RemotingTestUpdateOperation.java
rename to eu.etaxonomy.taxeditor.store/src/test/java/eu/etaxonomy/taxeditor/store/operations/TestUpdateOperation.java
index 1233bb086e19e5001e1df8e8f2eadf1d74cb8a2b..1ad4d95d597ca07ef57f410b8db627e3855d832a 100644 (file)
@@ -16,13 +16,13 @@ import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
 import eu.etaxonomy.cdm.api.service.ITestService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.dto.CdmEntityIdentifier;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
+import eu.etaxonomy.taxeditor.operation.CdmUpdateOperation;
 
 /**
  * @author cmathew
  * @date 26 Jun 2015
  */
-public class RemotingTestUpdateOperation extends RemotingCdmUpdateOperation {
+public class TestUpdateOperation extends CdmUpdateOperation {
 
     private static String LABEL = "Test Operation";
 
@@ -30,21 +30,21 @@ public class RemotingTestUpdateOperation extends RemotingCdmUpdateOperation {
     private Exception exception;
     private CdmEntityIdentifier cei;
 
-    public RemotingTestUpdateOperation(UpdateResult result,
+    public TestUpdateOperation(UpdateResult result,
             Object source,
             boolean async) {
         super(LABEL, Action.Update, source, async);
         this.result = result;
     }
 
-    public RemotingTestUpdateOperation(Exception exception,
+    public TestUpdateOperation(Exception exception,
             Object source,
             boolean async) {
         super(LABEL, Action.Update, source, async);
         this.exception = exception;
     }
 
-    public RemotingTestUpdateOperation(CdmEntityIdentifier cei,
+    public TestUpdateOperation(CdmEntityIdentifier cei,
             Object source,
             boolean async) {
         super(LABEL, Action.Update, source, async);
@@ -63,5 +63,4 @@ public class RemotingTestUpdateOperation extends RemotingCdmUpdateOperation {
         }
         return null;
     }
-
 }
index 97a41aecd542d976dcaaf856c685645511628e40..8d164f25daf0c6410cd63c397623b3252c5ecf66 100644 (file)
@@ -19,20 +19,19 @@ import java.util.LinkedHashMap;
 
 import org.junit.Test;
 
-import eu.etaxonomy.cdm.model.term.IEnumTerm;
-import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
-import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.cdm.model.name.RankClass;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
 import eu.etaxonomy.cdm.model.reference.ReferenceType;
+import eu.etaxonomy.cdm.model.term.IEnumTerm;
+import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 
 /**
  * @author pplitzner
  * @date 04.11.2013
- *
  */
 public class AbstractUtilityTest {
 
@@ -56,10 +55,6 @@ public class AbstractUtilityTest {
         check(orderedTerms, Arrays.asList(TermType.values()));
     }
 
-    /**
-     * @param orderedTerms
-     * @param expectedTerms
-     */
     private void check(LinkedHashMap<? extends IEnumTerm<?>, String> orderedTerms, Collection<? extends IEnumTerm<?>> expectedTerms) {
         assertFalse("Ordered term list is empty!", orderedTerms.isEmpty());
         assertEquals("Some terms got lost while ordering.", expectedTerms.size(), orderedTerms.size());
diff --git a/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/applicationContext-test.xml b/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/applicationContext-test.xml
deleted file mode 100644 (file)
index 8d105fc..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<beans xmlns="http://www.springframework.org/schema/beans"\r
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
-       xmlns:context="http://www.springframework.org/schema/context"\r
-       xmlns:tx="http://www.springframework.org/schema/tx"\r
-    xsi:schemaLocation="http://www.springframework.org/schema/beans \r
-    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd\r
-    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd\r
-    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">\r
-\r
-    <import resource="classpath:/eu/etaxonomy/cdm/services.xml"/> \r
-\r
-       <context:component-scan base-package="eu/etaxonomy/cdm/api"/>\r
-    \r
-    <!-- enable the configuration of transactional behavior based on annotations -->\r
-<!--    <tx:annotation-driven transaction-manager="transactionManager"/>      -->\r
-  \r
-\r
-    <bean id="dataSource" class="org.unitils.database.UnitilsDataSourceFactoryBean"/>\r
-    \r
-    <bean id="hibernateProperties" \r
-        class="org.springframework.beans.factory.config.PropertiesFactoryBean">\r
-        <property name="properties">\r
-            <props>\r
-                <prop key="hibernate.dialect">org.hibernate.dialect.HSQLCorrectedDialect</prop>\r
-                <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>\r
-                <!-- TODO trying to use a managed session context -->\r
-                <prop key="hibernate.current_session_context_class">managed</prop>\r
-                <prop key="hibernate.show_sql">false</prop>\r
-                <prop key="hibernate.format_sql">false</prop>\r
-                <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.FSDirectoryProvider</prop>\r
-                <prop key="hibernate.search.default.indexBase">./target/test-classes</prop>\r
-            </props>\r
-        </property>\r
-    </bean> \r
-    \r
-    <bean id="authenticationManager" class="org.springframework.security.providers.ProviderManager">\r
-        <property name="providers">\r
-            <list>\r
-                <bean class="org.springframework.security.providers.TestingAuthenticationProvider"/>\r
-                <ref local="daoAuthenticationProvider"/>\r
-            </list>\r
-        </property>\r
-    </bean>\r
-    \r
-    <bean id="daoAuthenticationProvider" class="org.springframework.security.providers.dao.DaoAuthenticationProvider">\r
-        <property name="userDetailsService" ref="userService"/>\r
-        <property name="saltSource" ref="saltSource"/>\r
-        <property name="passwordEncoder" ref="passwordEncoder"/>\r
-    </bean>\r
-    \r
-    <bean id="passwordEncoder" class="org.springframework.security.providers.encoding.Md5PasswordEncoder"/>\r
-    \r
-    <bean id="saltSource" class="org.springframework.security.providers.dao.salt.ReflectionSaltSource">\r
-        <property name="userPropertyToUse" value="getUsername"/>\r
-    </bean>\r
-    \r
-</beans>
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/cdm.datasources.xml b/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/cdm.datasources.xml
deleted file mode 100644 (file)
index ca7923e..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:context="http://www.springframework.org/schema/context"
-    xsi:schemaLocation="http://www.springframework.org/schema/beans
-    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-    http://www.springframework.org/schema/context
-    http://www.springframework.org/schema/context/spring-context-2.5.xsd">
-    
-    <bean id="defaultDataSource"\r
-               lazy-init="true"\r
-               class="eu.etaxonomy.cdm.database.LocalHsqldb"   \r
-               init-method="init"\r
-               destroy-method="destroy"\r
-        >\r
-        <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>\r
-        <property name="username" value="sa"/>\r
-        <property name="password" value=""/>\r
-        <property name="startServer" value="true"/>\r
-        <property name="silent" value="true"/>\r
-        <!-- property name="pureUrl" value="jdbc:hsqldb:hsql://localhost/"/-->\r
-        <!-- property name="dbName" value="cdm"/> -->\r
-        <!--  <property name="databasePath" value="C:\tmp\cdmDb\"/> -->\r
-    </bean>\r
-    \r
-    <bean id="defaultMySqlDataSource"  lazy-init="true" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
-        <property name="url" value="jdbc:mysql://192.168.2.10/cdm_build" />
-        <property name="username" value="edit" />
-        <property name="password" value="wp5" />
-    </bean>
-    <bean id="testSqlServer2000DataSource"  lazy-init="true"
-        class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
-        <property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
-        <property name="url" value="jdbc:microsoft:sqlserver://LAPTOPHP:1433;databaseName=cdmTest;SelectMethod=cursor" />
-        <property name="username" value="edit" />
-        <property name="password" value="wp5" />
-    </bean>
-    <bean id="testSqlServer2005DataSource"  lazy-init="true"\r
-        class="org.springframework.jdbc.datasource.DriverManagerDataSource" >\r
-        <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />\r
-        <property name="url" value="jdbc:sqlserver://LAPTOPHP:1433;databaseName=cdmTest;SelectMethod=cursor" />\r
-        <property name="username" value="edit" />\r
-        <property name="password" value="wp5" />\r
-    </bean>\r
-    <bean id="testPostgreDataSource" lazy-init="true" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
-        <property name="driverClassName" value="org.postgresql.Driver" />
-        <property name="url" value="jdbc:postgresql://192.168.1.17:5432/cdm_test" />
-        <property name="username" value="edit" />
-        <property name="password" value="schalke" />
-        
-    </bean>
-    <bean id="localMysqlDataSource"  lazy-init="true" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
-        <property name="url" value="jdbc:mysql://localhost/cdm" />
-        <property name="username" value="edit" />
-        <property name="password" value="wp5" />
-    </bean>
-
-    <bean id="rel1_1DataSource"  lazy-init="true" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
-        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
-        <property name="url" value="jdbc:mysql://192.168.2.10/cdm_1_1" />
-        <property name="username" value="edit" />
-        <property name="password" value="wp5" />
-    </bean>
-    
-</beans>
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/cdmfs.xml b/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/cdmfs.xml
deleted file mode 100644 (file)
index 9863f0d..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:context="http://www.springframework.org/schema/context"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans 
-    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
-    >
-
-    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
-        <property name="sessionFactory" ref="sessionFactory" />
-    </bean>
-
-       <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
-           <property name="namingStrategy">
-               <bean class="org.hibernate.cfg.DefaultComponentSafeNamingStrategy" />
-           </property>
-           
-<!--       <property name="entityInterceptor">
-               <bean class="eu.etaxonomy.cdm.persistence.hibernate.CdmHibernateInterceptor" />
-       </property>
-  -->      
-           <property name="configLocation" value="classpath:eu/etaxonomy/cdm/hibernate.cfg.xml"/>
-           <property  name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"/>
-           <property name="dataSource" ref="dataSource"/>
-           <property name="hibernateProperties" ref="hibernateProperties"/>
-       </bean>
-
-</beans>
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/database/TermsDataSet-with_auditing_info.xml b/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/database/TermsDataSet-with_auditing_info.xml
deleted file mode 100644 (file)
index 263d564..0000000
+++ /dev/null
@@ -1,6447 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>\r
-<dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="./schema/dataset.dtd">\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="1" CREATED="2009-01-28 17:07:03.0" UUID="ae787603-3070-4298-9ca6-4cbe73378122" URI="" ISO639_1="" ISO639_2="khi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="2" CREATED="2009-01-28 17:07:03.0" UUID="b40cc17a-b05e-4f7b-a3a1-cbf396b79c5e" URI="" ISO639_1="" ISO639_2="sai" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="3" CREATED="2009-01-28 17:07:03.0" UUID="45d05a7a-ee78-462c-a177-6fd743cf4d03" URI="" ISO639_1="ca" ISO639_2="cat" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="4" CREATED="2009-01-28 17:07:03.0" UUID="53fc1b5e-64c4-41ac-8a97-60507a1983fc" URI="" ISO639_1="" ISO639_2="pra" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="5" CREATED="2009-01-28 17:07:03.0" UUID="fb7421ea-d446-410f-8ef2-3cd125256463" URI="" ISO639_1="to" ISO639_2="ton" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="6" CREATED="2009-01-28 17:07:03.0" UUID="a29e944f-162f-46c1-bea9-3e472c5d5b48" URI="" ISO639_1="gl" ISO639_2="glg" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="7" CREATED="2009-01-28 17:07:03.0" UUID="c3017b5f-b1e0-4c8e-ad92-a92227f0230f" URI="" ISO639_1="" ISO639_2="tyv" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="8" CREATED="2009-01-28 17:07:03.0" UUID="09c912c2-06e0-45d5-911c-302447e24baa" URI="" ISO639_1="uk" ISO639_2="ukr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="9" CREATED="2009-01-28 17:07:03.0" UUID="f5199701-8265-492f-bbce-5d545642120d" URI="" ISO639_1="" ISO639_2="chk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="10" CREATED="2009-01-28 17:07:03.0" UUID="97b1d73a-2f45-4955-b6ee-2047326a8453" URI="" ISO639_1="" ISO639_2="rup" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="11" CREATED="2009-01-28 17:07:03.0" UUID="4f6854d1-f650-4278-9f9e-2c41d9866852" URI="" ISO639_1="" ISO639_2="alt" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="12" CREATED="2009-01-28 17:07:03.0" UUID="d051c901-fc8c-4a72-bffb-a9a7ca8f5cc4" URI="" ISO639_1="" ISO639_2="hil" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="13" CREATED="2009-01-28 17:07:03.0" UUID="ea9a2d74-f0cc-4271-93cd-f591db4efcb7" URI="" ISO639_1="" ISO639_2="jbo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="14" CREATED="2009-01-28 17:07:03.0" UUID="92f1ab72-f760-4a86-b7d6-0859c7961159" URI="" ISO639_1="" ISO639_2="mis" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="15" CREATED="2009-01-28 17:07:03.0" UUID="45e52b16-61b0-4b86-92ba-7f290dbb39b3" URI="" ISO639_1="da" ISO639_2="dan" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="16" CREATED="2009-01-28 17:07:03.0" UUID="f7c2ac83-079f-46c8-a2ca-e914e915d5a4" URI="" ISO639_1="" ISO639_2="tig" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="17" CREATED="2009-01-28 17:07:03.0" UUID="b8abe85d-b486-4951-a523-5278bda2aec1" URI="" ISO639_1="ss" ISO639_2="ssw" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="18" CREATED="2009-01-28 17:07:03.0" UUID="3499eab3-428c-48a5-9c1c-f951a2d3fa40" URI="" ISO639_1="" ISO639_2="kok" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="19" CREATED="2009-01-28 17:07:03.0" UUID="38060cd9-8d47-4a61-bf33-333583c8fef1" URI="" ISO639_1="eo" ISO639_2="epo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="20" CREATED="2009-01-28 17:07:03.0" UUID="2b024ede-442e-4915-9cce-9e61fa0f3574" URI="" ISO639_1="" ISO639_2="bin" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="21" CREATED="2009-01-28 17:07:03.0" UUID="82624381-8969-4d4b-a0d3-802d84dbc5b0" URI="" ISO639_1="" ISO639_2="yap" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="22" CREATED="2009-01-28 17:07:03.0" UUID="37230e36-55f9-4ba7-a191-703ab5a5e860" URI="" ISO639_1="" ISO639_2="kac" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="23" CREATED="2009-01-28 17:07:03.0" UUID="fdd6cb21-e42f-4fb4-a8c5-bb6bc0d0073b" URI="" ISO639_1="" ISO639_2="ilo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="24" CREATED="2009-01-28 17:07:03.0" UUID="64ebceaa-4aa8-48a2-ae9a-95c862c37a50" URI="" ISO639_1="" ISO639_2="got" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="25" CREATED="2009-01-28 17:07:03.0" UUID="e25fbf49-c4a1-4c98-944c-3999d3dc9b51" URI="" ISO639_1="" ISO639_2="ber" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="26" CREATED="2009-01-28 17:07:03.0" UUID="49cb27e4-bd94-422e-9a9a-26b5b05371d7" URI="" ISO639_1="" ISO639_2="gon" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="27" CREATED="2009-01-28 17:07:03.0" UUID="a3504321-79ed-4d5d-9cbb-9e354084055b" URI="" ISO639_1="kl" ISO639_2="kal" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="28" CREATED="2009-01-28 17:07:03.0" UUID="7ea5af43-3438-4d44-abd0-e9fa298e6049" URI="" ISO639_1="" ISO639_2="mag" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="29" CREATED="2009-01-28 17:07:03.0" UUID="1ea1a358-539a-4b2a-a5fe-2e184f272c6a" URI="" ISO639_1="" ISO639_2="arw" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="30" CREATED="2009-01-28 17:07:03.0" UUID="5e8ddd48-cc3f-48a8-9c1a-ec6e11409b17" URI="" ISO639_1="jv" ISO639_2="jav" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="31" CREATED="2009-01-28 17:07:03.0" UUID="00d6849c-fe18-4b60-98b2-403f376ba884" URI="" ISO639_1="" ISO639_2="arc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="32" CREATED="2009-01-28 17:07:03.0" UUID="7f8f18e9-dbc4-482e-a8cc-160d58823fd6" URI="" ISO639_1="kr" ISO639_2="kau" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="33" CREATED="2009-01-28 17:07:03.0" UUID="7d6068b3-5980-4e3e-82b0-58be20ea01b7" URI="" ISO639_1="" ISO639_2="luo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="34" CREATED="2009-01-28 17:07:03.0" UUID="7330bcfc-0b4c-4c96-b3f8-4585fde000f5" URI="" ISO639_1="" ISO639_2="grc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="35" CREATED="2009-01-28 17:07:03.0" UUID="cceeeeba-158f-4b18-916a-a329cb03414e" URI="" ISO639_1="" ISO639_2="cad" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="36" CREATED="2009-01-28 17:07:03.0" UUID="1f763527-0257-4991-b669-214c4c2a972d" URI="" ISO639_1="" ISO639_2="tem" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="37" CREATED="2009-01-28 17:07:03.0" UUID="08ac9207-e338-46cd-aef3-3e49b7b34df9" URI="" ISO639_1="is" ISO639_2="ice" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="38" CREATED="2009-01-28 17:07:03.0" UUID="fecbf0c7-fea9-465b-8a16-950517c5c0c4" URI="" ISO639_1="it" ISO639_2="ita" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="39" CREATED="2009-01-28 17:07:03.0" UUID="78dc9e98-f56a-4bca-b791-8fe159183858" URI="" ISO639_1="" ISO639_2="kar" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="40" CREATED="2009-01-28 17:07:03.0" UUID="e4bf2ec8-4c1a-4ece-9df1-4890a7f18457" URI="" ISO639_1="" ISO639_2="zza" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="41" CREATED="2009-01-28 17:07:03.0" UUID="39c5ae60-ace7-4525-a85b-47edb11f5de6" URI="" ISO639_1="" ISO639_2="doi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="42" CREATED="2009-01-28 17:07:03.0" UUID="da124f07-db02-47b9-b699-df08142a3d3c" URI="" ISO639_1="" ISO639_2="moh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="43" CREATED="2009-01-28 17:07:03.0" UUID="7c080971-7a7e-460a-a772-66790e91ac35" URI="" ISO639_1="lt" ISO639_2="lit" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="44" CREATED="2009-01-28 17:07:03.0" UUID="f5a3dd7e-d3ff-4db2-8213-5fb36faad4e6" URI="" ISO639_1="" ISO639_2="chm" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="45" CREATED="2009-01-28 17:07:03.0" UUID="2bf7a818-8b18-4693-91d0-6aa87808de79" URI="" ISO639_1="" ISO639_2="ypk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="46" CREATED="2009-01-28 17:07:03.0" UUID="beb5c17f-d561-40ca-8ed9-4a643ea10f63" URI="" ISO639_1="" ISO639_2="bua" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="47" CREATED="2009-01-28 17:07:03.0" UUID="93c45f3f-4bf9-4732-a1fe-da32d28cd4a2" URI="" ISO639_1="" ISO639_2="dar" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="48" CREATED="2009-01-28 17:07:03.0" UUID="8f78143c-854a-40b3-85e7-51d9f202c7b7" URI="" ISO639_1="" ISO639_2="lus" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="49" CREATED="2009-01-28 17:07:03.0" UUID="7e7f3bdb-3131-4428-a352-690f72196050" URI="" ISO639_1="io" ISO639_2="ido" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="50" CREATED="2009-01-28 17:07:03.0" UUID="f5977654-d71b-4ff1-96cb-d2130e978aef" URI="" ISO639_1="" ISO639_2="frr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="51" CREATED="2009-01-28 17:07:03.0" UUID="093412de-4e67-4413-9423-90e273408076" URI="" ISO639_1="km" ISO639_2="khm" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="52" CREATED="2009-01-28 17:07:03.0" UUID="89189a82-18ff-4385-aa92-200b12692760" URI="" ISO639_1="" ISO639_2="roa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="53" CREATED="2009-01-28 17:07:03.0" UUID="374814fe-1c3d-46aa-9a95-e8d5fe7108e8" URI="" ISO639_1="" ISO639_2="bra" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="54" CREATED="2009-01-28 17:07:03.0" UUID="01706d2f-e221-4ade-95f2-1942d050bb94" URI="" ISO639_1="" ISO639_2="kab" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="55" CREATED="2009-01-28 17:07:03.0" UUID="62ff33ff-a2e4-4cc0-bc77-477647dedec0" URI="" ISO639_1="" ISO639_2="krl" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="56" CREATED="2009-01-28 17:07:03.0" UUID="bce2b666-d77c-4f49-a3c6-7e5cebb6cb79" URI="" ISO639_1="iu" ISO639_2="iku" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="57" CREATED="2009-01-28 17:07:03.0" UUID="b8d0e46b-fc62-471c-aaee-e2580e60439b" URI="" ISO639_1="ne" ISO639_2="nep" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="58" CREATED="2009-01-28 17:07:03.0" UUID="ee8e984e-03d5-4aa7-aa52-95b014b2c7a2" URI="" ISO639_1="" ISO639_2="cpf" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="59" CREATED="2009-01-28 17:07:03.0" UUID="876ed782-f285-4395-b4d9-c8871a18e822" URI="" ISO639_1="" ISO639_2="bla" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="60" CREATED="2009-01-28 17:07:03.0" UUID="fa73c1f6-c1b1-4f8f-98a1-8bbd0aaf2f33" URI="" ISO639_1="" ISO639_2="mad" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="61" CREATED="2009-01-28 17:07:03.0" UUID="87f46e66-852a-442e-b6b1-e3cec6a398e6" URI="" ISO639_1="" ISO639_2="mdf" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="62" CREATED="2009-01-28 17:07:03.0" UUID="813810e4-96c9-43a5-9114-383506a33b46" URI="" ISO639_1="" ISO639_2="tlh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="63" CREATED="2009-01-28 17:07:03.0" UUID="f529fd4c-0d3f-481b-a35c-1bf26fff80da" URI="" ISO639_1="" ISO639_2="mic" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="64" CREATED="2009-01-28 17:07:03.0" UUID="adf29c75-6b22-4fe0-a0ce-d1c2c8259ead" URI="" ISO639_1="" ISO639_2="ota" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="65" CREATED="2009-01-28 17:07:03.0" UUID="27dab6b2-23c2-4101-bd6c-9980d09939d3" URI="" ISO639_1="" ISO639_2="arn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="66" CREATED="2009-01-28 17:07:03.0" UUID="99a4a641-f292-464e-8ef0-7480dd2e3d95" URI="" ISO639_1="" ISO639_2="kum" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="67" CREATED="2009-01-28 17:07:03.0" UUID="f42c6f52-1a3c-4965-8dfa-2c828463741c" URI="" ISO639_1="" ISO639_2="gez" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="68" CREATED="2009-01-28 17:07:03.0" UUID="8b4f894a-dac4-4a0a-957c-6ca9c5081672" URI="" ISO639_1="" ISO639_2="bnt" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="69" CREATED="2009-01-28 17:07:03.0" UUID="31244589-2ac5-4b61-be85-2cea16991204" URI="" ISO639_1="" ISO639_2="him" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="70" CREATED="2009-01-28 17:07:03.0" UUID="46328a2f-4042-4897-9340-009c3635adc7" URI="" ISO639_1="" ISO639_2="mak" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="71" CREATED="2009-01-28 17:07:03.0" UUID="dc4f5a15-8b94-47d4-bd3e-22c8b79e22af" URI="" ISO639_1="" ISO639_2="bik" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="72" CREATED="2009-01-28 17:07:03.0" UUID="555a247e-05d3-4bb1-b497-d4ecf3dea075" URI="" ISO639_1="" ISO639_2="mos" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="73" CREATED="2009-01-28 17:07:03.0" UUID="4fb5c849-a07a-4a5c-9886-4d957605d600" URI="" ISO639_1="" ISO639_2="bho" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="74" CREATED="2009-01-28 17:07:03.0" UUID="bc2b8d06-94f8-4ddb-a4ad-769105868b73" URI="" ISO639_1="" ISO639_2="frm" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="75" CREATED="2009-01-28 17:07:03.0" UUID="4aad4259-7541-40e3-9954-a36ec49497ce" URI="" ISO639_1="oc" ISO639_2="oci" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="76" CREATED="2009-01-28 17:07:03.0" UUID="4c7b08e5-1637-4b59-ad47-9c6a22e21eb1" URI="" ISO639_1="ti" ISO639_2="tir" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="77" CREATED="2009-01-28 17:07:03.0" UUID="091cc8f8-681c-4ce8-b9c4-d451fe13c024" URI="" ISO639_1="" ISO639_2="jpr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="78" CREATED="2009-01-28 17:07:03.0" UUID="cc6f53cb-5b8b-47a3-9faf-ba6dbde58941" URI="" ISO639_1="ps" ISO639_2="pus" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="79" CREATED="2009-01-28 17:07:03.0" UUID="01ea9821-6ccc-4547-bc0a-9bff15be7f98" URI="" ISO639_1="an" ISO639_2="arg" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="80" CREATED="2009-01-28 17:07:03.0" UUID="1b48a41b-cbf3-4041-b567-4782c854b41e" URI="" ISO639_1="el" ISO639_2="gre" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="81" CREATED="2009-01-28 17:07:03.0" UUID="66f7ed40-4391-4c81-9785-539ec7c79249" URI="" ISO639_1="kk" ISO639_2="kaz" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="82" CREATED="2009-01-28 17:07:03.0" UUID="efc8cc48-268c-4083-93cd-c8cf282c83b6" URI="" ISO639_1="za" ISO639_2="zha" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="83" CREATED="2009-01-28 17:07:03.0" UUID="6574b007-bc42-4ee2-9051-de3d2655578f" URI="" ISO639_1="" ISO639_2="crh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="84" CREATED="2009-01-28 17:07:03.0" UUID="8331f629-647d-4646-a413-e57c5f7e21a4" URI="" ISO639_1="" ISO639_2="sem" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="85" CREATED="2009-01-28 17:07:03.0" UUID="79c5e0f8-7abf-4ca0-9d35-59a2448b9fc8" URI="" ISO639_1="" ISO639_2="art" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="86" CREATED="2009-01-28 17:07:03.0" UUID="0b9fbbfa-b8e6-4d4d-a90d-a4988f6c3531" URI="" ISO639_1="lo" ISO639_2="lao" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="87" CREATED="2009-01-28 17:07:03.0" UUID="98468d65-43d7-41fc-b4b0-e1d1aacff950" URI="" ISO639_1="vi" ISO639_2="vie" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="88" CREATED="2009-01-28 17:07:03.0" UUID="53264953-1c1f-4314-a600-c8d399505dbb" URI="" ISO639_1="mr" ISO639_2="mar" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="89" CREATED="2009-01-28 17:07:03.0" UUID="591bb9ab-2e86-4583-b363-cbc8ed70be20" URI="" ISO639_1="" ISO639_2="sah" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="90" CREATED="2009-01-28 17:07:03.0" UUID="246fff28-776c-4ef3-a163-f43eb28cc348" URI="" ISO639_1="ve" ISO639_2="ven" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="91" CREATED="2009-01-28 17:07:03.0" UUID="45c36762-b9e2-4696-8924-500f9e50b198" URI="" ISO639_1="su" ISO639_2="sun" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="92" CREATED="2009-01-28 17:07:03.0" UUID="8688cf91-11fe-4395-a7f8-bf22017d99d8" URI="" ISO639_1="bm" ISO639_2="bam" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="93" CREATED="2009-01-28 17:07:03.0" UUID="b52f5fcf-16fe-4641-8e42-642d95c1da36" URI="" ISO639_1="kg" ISO639_2="kon" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="94" CREATED="2009-01-28 17:07:03.0" UUID="c52c53b4-26b1-4bfe-8da1-eb958561dc11" URI="" ISO639_1="" ISO639_2="map" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="95" CREATED="2009-01-28 17:07:03.0" UUID="28b0d5f1-d82b-4dc1-a778-f58331f48b3b" URI="" ISO639_1="" ISO639_2="tvl" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="96" CREATED="2009-01-28 17:07:03.0" UUID="16aac6c9-cefc-49d6-a8b9-c35f27b68c0d" URI="" ISO639_1="" ISO639_2="raj" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="97" CREATED="2009-01-28 17:07:03.0" UUID="d9ed469d-9a2d-42e2-b23d-a09cdd8b53c5" URI="" ISO639_1="eu" ISO639_2="baq" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="98" CREATED="2009-01-28 17:07:03.0" UUID="543a305e-1edb-4405-9c24-4305a187dc84" URI="" ISO639_1="ky" ISO639_2="kir" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="99" CREATED="2009-01-28 17:07:03.0" UUID="0888079f-587e-4c3b-af63-97990e27c368" URI="" ISO639_1="ab" ISO639_2="abk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="100" CREATED="2009-01-28 17:07:03.0" UUID="efae63c3-f627-47a4-9e2d-8d5924662d1f" URI="" ISO639_1="nb" ISO639_2="nob" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="101" CREATED="2009-01-28 17:07:03.0" UUID="07dfe9e0-8cbf-44fb-8722-397355b7c247" URI="" ISO639_1="te" ISO639_2="tel" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="102" CREATED="2009-01-28 17:07:03.0" UUID="ed2ea195-a502-4835-948a-8fa00ef6930d" URI="" ISO639_1="" ISO639_2="sad" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="103" CREATED="2009-01-28 17:07:03.0" UUID="e2141d42-40ea-4eb8-87c7-54faa88526d5" URI="" ISO639_1="sa" ISO639_2="san" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="104" CREATED="2009-01-28 17:07:03.0" UUID="e6000995-1f07-4dea-8cf6-aad23c8b513f" URI="" ISO639_1="" ISO639_2="krc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="105" CREATED="2009-01-28 17:07:03.0" UUID="706ce687-ceae-4664-b977-acbcf6a68241" URI="" ISO639_1="" ISO639_2="pap" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="106" CREATED="2009-01-28 17:07:03.0" UUID="fe362c53-8790-4bdf-9372-eb0e90e5b4aa" URI="" ISO639_1="" ISO639_2="tet" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="107" CREATED="2009-01-28 17:07:03.0" UUID="de64fb4d-9bb7-494f-973d-90a91338e3e2" URI="" ISO639_1="" ISO639_2="nah" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="108" CREATED="2009-01-28 17:07:03.0" UUID="8b0a01ec-7c13-4ab8-8fe8-49046a6b1595" URI="" ISO639_1="" ISO639_2="rar" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="109" CREATED="2009-01-28 17:07:03.0" UUID="32c5f396-e6dc-49c3-bba5-79faeacac765" URI="" ISO639_1="" ISO639_2="pal" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="110" CREATED="2009-01-28 17:07:03.0" UUID="fe22c65f-3bd7-491c-a067-c2ab111adf29" URI="" ISO639_1="mo" ISO639_2="mol" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="111" CREATED="2009-01-28 17:07:03.0" UUID="fe08a3f9-256c-4eb8-849f-867682d243d1" URI="" ISO639_1="" ISO639_2="zbl" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="112" CREATED="2009-01-28 17:07:03.0" UUID="2f57ca56-69fe-4713-88d2-2d0d3744bf81" URI="" ISO639_1="co" ISO639_2="cos" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="113" CREATED="2009-01-28 17:07:03.0" UUID="eca9d6fc-08fa-4c43-9fbb-2348baf75d77" URI="" ISO639_1="ii" ISO639_2="iii" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="114" CREATED="2009-01-28 17:07:03.0" UUID="d7e8d6f1-9ded-4984-a5e6-2cd87734cfa1" URI="" ISO639_1="av" ISO639_2="ava" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="115" CREATED="2009-01-28 17:07:03.0" UUID="548e5159-98ce-49a8-bcce-b83f77790005" URI="" ISO639_1="" ISO639_2="ira" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="116" CREATED="2009-01-28 17:07:03.0" UUID="4fed61b5-fef3-4e4c-8a45-360645a3b504" URI="" ISO639_1="" ISO639_2="elx" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="117" CREATED="2009-01-28 17:07:03.0" UUID="7f822594-8e97-456b-8e47-a421f557f222" URI="" ISO639_1="cr" ISO639_2="cre" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="118" CREATED="2009-01-28 17:07:03.0" UUID="514ab40c-1fa9-44ba-8af0-f432a20305fe" URI="" ISO639_1="cv" ISO639_2="chv" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="119" CREATED="2009-01-28 17:07:03.0" UUID="873e34fd-8f43-4df0-a8cc-03f0666262c2" URI="" ISO639_1="bn" ISO639_2="ben" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="120" CREATED="2009-01-28 17:07:03.0" UUID="cdba1ceb-868f-4672-9afe-0f63f30b60e8" URI="" ISO639_1="" ISO639_2="lun" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="121" CREATED="2009-01-28 17:07:03.0" UUID="928a8b3f-baaf-4106-a8b2-8611af982fbc" URI="" ISO639_1="" ISO639_2="kbd" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="122" CREATED="2009-01-28 17:07:03.0" UUID="c8f0c497-0328-4a68-b4b5-296da91875a6" URI="" ISO639_1="sm" ISO639_2="smo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="123" CREATED="2009-01-28 17:07:03.0" UUID="ce883d86-d6e9-427e-b79d-52b4df25d451" URI="" ISO639_1="ht" ISO639_2="hat" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="124" CREATED="2009-01-28 17:07:03.0" UUID="f86fb9c0-2557-4457-8c5f-85629361dfaa" URI="" ISO639_1="" ISO639_2="day" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="125" CREATED="2009-01-28 17:07:03.0" UUID="4c8f21cf-b84b-4ce2-a1e5-755e6c9762a7" URI="" ISO639_1="" ISO639_2="del" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="126" CREATED="2009-01-28 17:07:03.0" UUID="b2dd63be-9247-44ad-bf12-61c1f7066c46" URI="" ISO639_1="" ISO639_2="vai" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="127" CREATED="2009-01-28 17:07:03.0" UUID="193637cb-cfe6-4f6f-9e15-58d7d0e9edd9" URI="" ISO639_1="" ISO639_2="kpe" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="128" CREATED="2009-01-28 17:07:03.0" UUID="9965d79a-acf9-4921-a2c0-863b8c16c056" URI="" ISO639_1="nl" ISO639_2="dut" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="129" CREATED="2009-01-28 17:07:03.0" UUID="1f8d4fcb-e888-4ac6-8113-63fe7ea77180" URI="" ISO639_1="zu" ISO639_2="zul" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="130" CREATED="2009-01-28 17:07:03.0" UUID="0901686b-fcab-45df-ae09-b8bf86d64ce6" URI="" ISO639_1="" ISO639_2="egy" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="131" CREATED="2009-01-28 17:07:03.0" UUID="407cacc3-a6f5-452e-8984-8e68a701bee8" URI="" ISO639_1="" ISO639_2="ine" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="132" CREATED="2009-01-28 17:07:03.0" UUID="4bcaa01a-1290-4186-a40e-65978af53031" URI="" ISO639_1="" ISO639_2="sgn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="133" CREATED="2009-01-28 17:07:03.0" UUID="984b3d84-61f2-455a-9924-15f86f89dfb1" URI="" ISO639_1="" ISO639_2="gay" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="134" CREATED="2009-01-28 17:07:03.0" UUID="10b3b191-20bd-4f6b-818f-068c70fc6d8b" URI="" ISO639_1="" ISO639_2="ter" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="135" CREATED="2009-01-28 17:07:03.0" UUID="2b53c222-7752-4943-a366-35b9818f794c" URI="" ISO639_1="" ISO639_2="dum" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="136" CREATED="2009-01-28 17:07:03.0" UUID="a3a2fc60-9f74-45e0-a97a-6737576071ef" URI="" ISO639_1="" ISO639_2="enm" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="137" CREATED="2009-01-28 17:07:03.0" UUID="6355af54-4be2-40a3-a417-83921fb70dc7" URI="" ISO639_1="fj" ISO639_2="fij" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="138" CREATED="2009-01-28 17:07:03.0" UUID="3ffb59ff-d558-48f5-bec1-03fee76737f7" URI="" ISO639_1="" ISO639_2="dra" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="139" CREATED="2009-01-28 17:07:03.0" UUID="110474af-7886-4a36-9299-73871ce14efa" URI="" ISO639_1="kw" ISO639_2="cor" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="140" CREATED="2009-01-28 17:07:03.0" UUID="0ddc00b2-b3ef-4074-a2c7-4b969dcd8e8e" URI="" ISO639_1="" ISO639_2="gaa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="141" CREATED="2009-01-28 17:07:03.0" UUID="875dd186-fdfa-4b1e-af26-d03e736a8757" URI="" ISO639_1="" ISO639_2="cus" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="142" CREATED="2009-01-28 17:07:03.0" UUID="fb30387d-a91a-4586-a801-bd04ea4f9e47" URI="" ISO639_1="" ISO639_2="hsb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="143" CREATED="2009-01-28 17:07:03.0" UUID="47a2576b-44e8-4a2d-b85b-6f13dfa77467" URI="" ISO639_1="" ISO639_2="kam" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="144" CREATED="2009-01-28 17:07:03.0" UUID="0fb6df7f-a2c0-426f-baf6-9fe4fc6d622b" URI="" ISO639_1="" ISO639_2="mas" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="145" CREATED="2009-01-28 17:07:03.0" UUID="b7b756db-fec1-4fea-8b5d-75cadb3e5590" URI="" ISO639_1="vo" ISO639_2="vol" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="146" CREATED="2009-01-28 17:07:03.0" UUID="c23f0629-a4f6-45c7-b8c8-4916209af0dd" URI="" ISO639_1="mk" ISO639_2="mac" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="147" CREATED="2009-01-28 17:07:03.0" UUID="369e7731-be7e-40ef-96e9-3721813441fa" URI="" ISO639_1="sw" ISO639_2="swa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="148" CREATED="2009-01-28 17:07:03.0" UUID="01ae8ef1-6918-4d3b-9453-b51ce003002a" URI="" ISO639_1="" ISO639_2="mai" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="149" CREATED="2009-01-28 17:07:03.0" UUID="c054f189-c54c-4fb8-b797-72691ec42ec1" URI="" ISO639_1="" ISO639_2="bai" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="150" CREATED="2009-01-28 17:07:03.0" UUID="1a05e1fe-49d4-44bb-a143-70df32606124" URI="" ISO639_1="nv" ISO639_2="nav" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="151" CREATED="2009-01-28 17:07:03.0" UUID="04d495dc-449d-46b8-9cca-b108756773c0" URI="" ISO639_1="yi" ISO639_2="yid" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="152" CREATED="2009-01-28 17:07:03.0" UUID="eda7677e-2041-4c2b-b84b-43c88d21ef7b" URI="" ISO639_1="" ISO639_2="afh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="153" CREATED="2009-01-28 17:07:03.0" UUID="32f7628f-6142-46b2-bc6b-d1381de48eec" URI="" ISO639_1="" ISO639_2="mnc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="154" CREATED="2009-01-28 17:07:03.0" UUID="5731c457-580c-4543-a227-b0ca0c0b9d0e" URI="" ISO639_1="" ISO639_2="chb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="155" CREATED="2009-01-28 17:07:03.0" UUID="3af29601-772e-4e15-8f7e-65f31e4b5427" URI="" ISO639_1="" ISO639_2="man" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="156" CREATED="2009-01-28 17:07:03.0" UUID="8aa2fcb2-84fc-4418-87b2-23bf7f0ae783" URI="" ISO639_1="ty" ISO639_2="tah" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="157" CREATED="2009-01-28 17:07:03.0" UUID="595607e2-b8fc-4edc-8185-0e7b23491473" URI="" ISO639_1="" ISO639_2="zen" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="158" CREATED="2009-01-28 17:07:03.0" UUID="f805e450-16ce-4abc-8e79-c9599238b836" URI="" ISO639_1="" ISO639_2="pam" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="159" CREATED="2009-01-28 17:07:03.0" UUID="40704577-d65a-46de-8393-5aabc9a510e1" URI="" ISO639_1="" ISO639_2="din" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="160" CREATED="2009-01-28 17:07:03.0" UUID="ac588be1-1ec3-42ce-b8b5-c71d7519ece7" URI="" ISO639_1="" ISO639_2="sux" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="161" CREATED="2009-01-28 17:07:03.0" UUID="3241952f-d366-43c3-8817-57452c7a09e7" URI="" ISO639_1="" ISO639_2="ale" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="162" CREATED="2009-01-28 17:07:03.0" UUID="0c27960e-1ba6-4b56-8429-c44334251653" URI="" ISO639_1="ff" ISO639_2="ful" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="163" CREATED="2009-01-28 17:07:03.0" UUID="1a083800-0add-464e-8db3-618ec96c620b" URI="" ISO639_1="" ISO639_2="ady" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="164" CREATED="2009-01-28 17:07:03.0" UUID="36f105eb-466b-45e9-a182-3887736d5f86" URI="" ISO639_1="" ISO639_2="dak" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="165" CREATED="2009-01-28 17:07:03.0" UUID="76af0bce-e24e-4b71-9b6a-6234d89f447e" URI="" ISO639_1="ie" ISO639_2="ile" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="166" CREATED="2009-01-28 17:07:03.0" UUID="e431127a-da51-45bd-8b4e-d50068913097" URI="" ISO639_1="kj" ISO639_2="kua" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="167" CREATED="2009-01-28 17:07:03.0" UUID="c5d539de-0c8b-44cd-86e3-965a85a58892" URI="" ISO639_1="" ISO639_2="sio" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="168" CREATED="2009-01-28 17:07:03.0" UUID="73f52d44-2fef-496a-ba6f-1315b1bb814e" URI="" ISO639_1="kv" ISO639_2="kom" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="169" CREATED="2009-01-28 17:07:03.0" UUID="47071c5a-9f49-4aa1-9a35-49e320b875a2" URI="" ISO639_1="" ISO639_2="osa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="170" CREATED="2009-01-28 17:07:03.0" UUID="78e9cc09-7f4f-4d3f-91d5-a2062ce91e8b" URI="" ISO639_1="" ISO639_2="smj" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="171" CREATED="2009-01-28 17:07:03.0" UUID="4824b8e7-c283-43c2-ac98-d986e0e12893" URI="" ISO639_1="" ISO639_2="mwr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="172" CREATED="2009-01-28 17:07:03.0" UUID="e17273b1-3c4e-4816-91df-c0117cfc2b85" URI="" ISO639_1="fa" ISO639_2="per" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="173" CREATED="2009-01-28 17:07:03.0" UUID="70c2402e-390b-4b4d-bfd4-582ed08e4af7" URI="" ISO639_1="" ISO639_2="snk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="174" CREATED="2009-01-28 17:07:03.0" UUID="a3161d26-b1bb-4efe-943c-96d1eb1d1984" URI="" ISO639_1="" ISO639_2="nic" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="175" CREATED="2009-01-28 17:07:03.0" UUID="40d9eb34-361f-42d9-a6b3-70a512608bd3" URI="" ISO639_1="gn" ISO639_2="grn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="176" CREATED="2009-01-28 17:07:03.0" UUID="3eb63458-aa52-41d6-8abc-173ad217d7e2" URI="" ISO639_1="na" ISO639_2="nau" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="177" CREATED="2009-01-28 17:07:03.0" UUID="dc20e27e-c0ed-4dcd-8bb7-ebf7aa67fb16" URI="" ISO639_1="" ISO639_2="nzi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="178" CREATED="2009-01-28 17:07:03.0" UUID="28a0ebd6-d0d4-41d7-a1e8-fd006141076f" URI="" ISO639_1="" ISO639_2="was" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="179" CREATED="2009-01-28 17:07:03.0" UUID="12c36e0d-39d1-441c-8b39-87ad034fdf2f" URI="" ISO639_1="" ISO639_2="sms" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="180" CREATED="2009-01-28 17:07:03.0" UUID="852da1de-8083-4047-a056-2dc1c9beb815" URI="" ISO639_1="" ISO639_2="mga" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="181" CREATED="2009-01-28 17:07:03.0" UUID="9a463924-a311-44f3-82e1-88bd4a9e664d" URI="" ISO639_1="" ISO639_2="pon" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="182" CREATED="2009-01-28 17:07:03.0" UUID="5017f3a8-3035-4731-8249-e371ee583142" URI="" ISO639_1="" ISO639_2="sal" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="183" CREATED="2009-01-28 17:07:03.0" UUID="1f3440d4-0a36-4a04-9694-259a64275934" URI="" ISO639_1="" ISO639_2="gwi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="184" CREATED="2009-01-28 17:07:03.0" UUID="24d342fe-8800-4284-af6d-7431be07112c" URI="" ISO639_1="" ISO639_2="rap" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="185" CREATED="2009-01-28 17:07:03.0" UUID="7bebf196-0b7a-4d9b-92c6-a698b9407b7e" URI="" ISO639_1="" ISO639_2="ain" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="186" CREATED="2009-01-28 17:07:03.0" UUID="cdd10fa8-e4c9-4eab-9f53-34227846c1e0" URI="" ISO639_1="" ISO639_2="kaa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="187" CREATED="2009-01-28 17:07:03.0" UUID="5f08f9a9-81f7-4613-935a-2be7713f8428" URI="" ISO639_1="" ISO639_2="akk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="188" CREATED="2009-01-28 17:07:03.0" UUID="e4fd3d5d-7715-4736-b4db-73ac8b129ddf" URI="" ISO639_1="" ISO639_2="fiu" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="189" CREATED="2009-01-28 17:07:03.0" UUID="682508f8-414a-4958-a89d-3abea3da1852" URI="" ISO639_1="li" ISO639_2="lim" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="190" CREATED="2009-01-28 17:07:03.0" UUID="f87a2743-0344-4515-a5aa-145966f7ed6f" URI="" ISO639_1="" ISO639_2="mdr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="191" CREATED="2009-01-28 17:07:03.0" UUID="fb85de23-0e3c-4042-b56b-71ec3c7566cf" URI="" ISO639_1="" ISO639_2="zxx" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="192" CREATED="2009-01-28 17:07:03.0" UUID="53fa6337-d66c-4db5-89cd-d42555414b32" URI="" ISO639_1="" ISO639_2="kaw" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="193" CREATED="2009-01-28 17:07:03.0" UUID="69e1325e-5afb-4ffb-b446-1c9e20bb5ea1" URI="" ISO639_1="si" ISO639_2="sin" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="194" CREATED="2009-01-28 17:07:03.0" UUID="960cbb52-0a61-4273-ae61-09d982c48f40" URI="" ISO639_1="mh" ISO639_2="mah" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="195" CREATED="2009-01-28 17:07:03.0" UUID="d8330a9e-05fb-4e89-871c-daa8d13be847" URI="" ISO639_1="" ISO639_2="lad" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="196" CREATED="2009-01-28 17:07:03.0" UUID="64e01a12-06d5-44a4-8a83-52c7762e3d92" URI="" ISO639_1="fo" ISO639_2="fao" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="197" CREATED="2009-01-28 17:07:03.0" UUID="40af687c-7706-459b-aa86-d4a5d7d27a14" URI="" ISO639_1="" ISO639_2="war" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="198" CREATED="2009-01-28 17:07:03.0" UUID="668645f4-f35f-4d1a-8343-cec4bc9d54b6" URI="" ISO639_1="" ISO639_2="tut" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="199" CREATED="2009-01-28 17:07:03.0" UUID="71923e7c-ee28-4ca9-91ac-5c1a066d3293" URI="" ISO639_1="" ISO639_2="sus" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="200" CREATED="2009-01-28 17:07:03.0" UUID="df2a640f-461a-4152-927e-9e55aa8fad27" URI="" ISO639_1="" ISO639_2="nyn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="201" CREATED="2009-01-28 17:07:03.0" UUID="ab1ad6e6-3ad8-4aa0-9fa5-e817240ce215" URI="" ISO639_1="nr" ISO639_2="nbl" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="202" CREATED="2009-01-28 17:07:03.0" UUID="73b8dfb4-971c-4b93-9009-75ae79dc1cba" URI="" ISO639_1="" ISO639_2="ijo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="203" CREATED="2009-01-28 17:07:03.0" UUID="2feb1694-8fd2-4746-b1d0-8f8c6233be58" URI="" ISO639_1="" ISO639_2="mun" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="204" CREATED="2009-01-28 17:07:03.0" UUID="5bc5c0dc-47cf-426b-bd81-743dc55ca0e5" URI="" ISO639_1="" ISO639_2="ath" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="205" CREATED="2009-01-28 17:07:03.0" UUID="6ab9eb02-55d9-42f5-8b50-c7dfba9a19d7" URI="" ISO639_1="ae" ISO639_2="ave" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="206" CREATED="2009-01-28 17:07:03.0" UUID="7e575cba-a1dd-4773-b712-b4dc031554ab" URI="" ISO639_1="" ISO639_2="sas" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="207" CREATED="2009-01-28 17:07:03.0" UUID="e7d9f5c7-5fe0-424e-9935-ba61a0edf7c1" URI="" ISO639_1="" ISO639_2="syc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="208" CREATED="2009-01-28 17:07:03.0" UUID="d8bcbc07-f7af-439c-8ad9-89aada5898fb" URI="" ISO639_1="" ISO639_2="apa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="209" CREATED="2009-01-28 17:07:03.0" UUID="b7ef8288-c37b-436f-a144-e4e50d66f919" URI="" ISO639_1="ha" ISO639_2="hau" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="210" CREATED="2009-01-28 17:07:03.0" UUID="5c74671f-2e73-469d-9818-d1f098b200d4" URI="" ISO639_1="" ISO639_2="nds" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="211" CREATED="2009-01-28 17:07:03.0" UUID="fd8b1e12-cdd0-487c-9f47-9e97711ee37f" URI="" ISO639_1="" ISO639_2="tog" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="212" CREATED="2009-01-28 17:07:03.0" UUID="fb78fb2e-2c98-461c-9b7c-9cc08f85a221" URI="" ISO639_1="dv" ISO639_2="div" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="213" CREATED="2009-01-28 17:07:03.0" UUID="a5c36bf0-26b6-4474-9bd7-4867c38ab047" URI="" ISO639_1="" ISO639_2="wen" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="214" CREATED="2009-01-28 17:07:03.0" UUID="f67971e9-49bb-4d85-9bc8-e6a1ea0d950e" URI="" ISO639_1="sc" ISO639_2="srd" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="215" CREATED="2009-01-28 17:07:03.0" UUID="ecfa8b2e-2517-4974-8431-b64b67fa5cda" URI="" ISO639_1="sq" ISO639_2="alb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="216" CREATED="2009-01-28 17:07:03.0" UUID="3c483fd1-07b7-4144-8b27-bba27a03e96e" URI="" ISO639_1="" ISO639_2="ban" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="217" CREATED="2009-01-28 17:07:03.0" UUID="63dc5012-8072-4cb8-81dd-05558ba6679a" URI="" ISO639_1="" ISO639_2="tum" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="218" CREATED="2009-01-28 17:07:03.0" UUID="c212eff2-5f02-4127-9e39-0e1daa82c075" URI="" ISO639_1="mt" ISO639_2="mlt" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="219" CREATED="2009-01-28 17:07:03.0" UUID="0a1d9d1d-135d-4575-b172-669b51673c39" URI="" ISO639_1="hi" ISO639_2="hin" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="220" CREATED="2009-01-28 17:07:03.0" UUID="15c94e31-6bd2-4a42-92a7-59ec7fe2eb93" URI="" ISO639_1="" ISO639_2="ace" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="221" CREATED="2009-01-28 17:07:03.0" UUID="ecd35102-7cdd-4809-9261-4aa272d8051e" URI="" ISO639_1="he" ISO639_2="heb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="222" CREATED="2009-01-28 17:07:03.0" UUID="11659dd0-9feb-447d-8144-c4c18f834450" URI="" ISO639_1="ga" ISO639_2="gle" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="223" CREATED="2009-01-28 17:07:03.0" UUID="c8e3e73c-fb9b-44e2-8bb3-7c91cd423b40" URI="" ISO639_1="" ISO639_2="chn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="224" CREATED="2009-01-28 17:07:03.0" UUID="5ff32317-1ddb-43f3-b5e2-42a63efb90c7" URI="" ISO639_1="" ISO639_2="sco" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="225" CREATED="2009-01-28 17:07:03.0" UUID="1ea2f3c9-dde4-4e1e-a9fc-675dc378091c" URI="" ISO639_1="no" ISO639_2="nor" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="226" CREATED="2009-01-28 17:07:03.0" UUID="fb9c601e-26ea-4944-8925-5dea6feb1a34" URI="" ISO639_1="" ISO639_2="tai" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="227" CREATED="2009-01-28 17:07:03.0" UUID="50a69d8b-d82e-4a71-afad-60dfcc41a5a7" URI="" ISO639_1="" ISO639_2="kha" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="228" CREATED="2009-01-28 17:07:03.0" UUID="5b34bd0a-270c-4348-8ab0-a53c938bf90b" URI="" ISO639_1="or" ISO639_2="ori" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="229" CREATED="2009-01-28 17:07:03.0" UUID="64ea9354-cbf8-40de-9f6e-387d24896f50" URI="" ISO639_1="ru" ISO639_2="rus" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="230" CREATED="2009-01-28 17:07:03.0" UUID="2fc29072-908d-4bd3-b12f-cd2587ab8d75" URI="" ISO639_1="az" ISO639_2="aze" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="231" CREATED="2009-01-28 17:07:03.0" UUID="7d54e491-bda0-4b10-9cf8-285e020782ad" URI="" ISO639_1="" ISO639_2="ach" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="232" CREATED="2009-01-28 17:07:03.0" UUID="7eed96ab-e0ca-48c3-801f-023fe79097a3" URI="" ISO639_1="lg" ISO639_2="lug" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="233" CREATED="2009-01-28 17:07:03.0" UUID="c2c08339-2405-4d7d-bd25-cbe01fb7ce09" URI="" ISO639_1="pt" ISO639_2="por" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="234" CREATED="2009-01-28 17:07:03.0" UUID="f8fb14ee-eb4e-49fa-b439-ed5deac59daa" URI="" ISO639_1="" ISO639_2="gba" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="235" CREATED="2009-01-28 17:07:03.0" UUID="05ce99f2-2c2f-4ee4-b471-32f3afda2afc" URI="" ISO639_1="" ISO639_2="uga" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="236" CREATED="2009-01-28 17:07:03.0" UUID="e8661eba-132c-4876-ac37-226db379ce4e" URI="" ISO639_1="" ISO639_2="tsi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="237" CREATED="2009-01-28 17:07:03.0" UUID="0057bec5-a596-4cbd-9876-d23cf71fee60" URI="" ISO639_1="mg" ISO639_2="mlg" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="238" CREATED="2009-01-28 17:07:03.0" UUID="511d8125-f5e6-445d-aee2-6327375238be" URI="" ISO639_1="es" ISO639_2="spa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="239" CREATED="2009-01-28 17:07:03.0" UUID="032dba38-a378-4ab4-a00b-a94fb1020f53" URI="" ISO639_1="" ISO639_2="smn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="240" CREATED="2009-01-28 17:07:03.0" UUID="7a0fde13-26e9-4382-a5c9-5640fc2b3334" URI="" ISO639_1="hy" ISO639_2="arm" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="241" CREATED="2009-01-28 17:07:03.0" UUID="af13a51b-3d91-4978-80db-985e4f9aefdd" URI="" ISO639_1="" ISO639_2="cop" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="242" CREATED="2009-01-28 17:07:03.0" UUID="384d5bef-e085-4408-9c9c-73499c735ecf" URI="" ISO639_1="ig" ISO639_2="ibo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="243" CREATED="2009-01-28 17:07:03.0" UUID="a7b014f9-683b-46c4-8365-b08d7a9a5759" URI="" ISO639_1="ho" ISO639_2="hmo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="244" CREATED="2009-01-28 17:07:03.0" UUID="6720fbd6-7668-418e-8d48-a1bfe2f56ac9" URI="" ISO639_1="bh" ISO639_2="bih" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="245" CREATED="2009-01-28 17:07:03.0" UUID="6503a6bb-497c-4712-b18d-38c8898c3b77" URI="" ISO639_1="" ISO639_2="grb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="246" CREATED="2009-01-28 17:07:03.0" UUID="bbfffd3e-eada-4c2d-8824-b426cdd82ee6" URI="" ISO639_1="" ISO639_2="dua" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="247" CREATED="2009-01-28 17:07:03.0" UUID="d1c3e5ef-31f0-42b8-8220-65e667fef638" URI="" ISO639_1="" ISO639_2="bej" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="248" CREATED="2009-01-28 17:07:03.0" UUID="26fb67ac-42d8-4aa7-a8c6-47aaf827d7d7" URI="" ISO639_1="xh" ISO639_2="xho" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="249" CREATED="2009-01-28 17:07:03.0" UUID="99267f5f-a2cc-4e4a-a0ae-e98c76034781" URI="" ISO639_1="" ISO639_2="tiv" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="250" CREATED="2009-01-28 17:07:03.0" UUID="ddaa93d0-3ad1-47f2-920d-c07120c96950" URI="" ISO639_1="" ISO639_2="wal" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="251" CREATED="2009-01-28 17:07:03.0" UUID="296a223d-1705-4504-aff2-8cbc56ee9187" URI="" ISO639_1="" ISO639_2="crp" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="252" CREATED="2009-01-28 17:07:03.0" UUID="34f22b78-1cfe-4f4f-a1c0-e57ea7d47ee5" URI="" ISO639_1="" ISO639_2="lam" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="253" CREATED="2009-01-28 17:07:03.0" UUID="3234653f-e10d-48a5-ade7-cd628e75fbe8" URI="" ISO639_1="" ISO639_2="srr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="254" CREATED="2009-01-28 17:07:03.0" UUID="83ea3620-caf2-4b85-8eb3-97428a73142c" URI="" ISO639_1="" ISO639_2="inh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="255" CREATED="2009-01-28 17:07:03.0" UUID="6b7505cc-4a1e-47be-8374-8612deaba8e7" URI="" ISO639_1="ch" ISO639_2="cha" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="256" CREATED="2009-01-28 17:07:03.0" UUID="2097879c-db7a-4674-a459-4a4ef3c15b54" URI="" ISO639_1="" ISO639_2="jrb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="257" CREATED="2009-01-28 17:07:03.0" UUID="6a32c3a0-11b7-450c-8da6-f06ed18d17d3" URI="" ISO639_1="" ISO639_2="dgr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="258" CREATED="2009-01-28 17:07:03.0" UUID="e2769990-9f04-45fc-974b-ef4d8f77ec86" URI="" ISO639_1="" ISO639_2="den" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="259" CREATED="2009-01-28 17:07:03.0" UUID="643df0b5-5c66-4c27-b5bb-a4f4b170c8c9" URI="" ISO639_1="" ISO639_2="und" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="260" CREATED="2009-01-28 17:07:03.0" UUID="4fddcfa6-7b46-45ca-a20f-eb406f89eaae" URI="" ISO639_1="tw" ISO639_2="twi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="261" CREATED="2009-01-28 17:07:03.0" UUID="b1d7880d-b45d-436b-8459-805089763b14" URI="" ISO639_1="" ISO639_2="zap" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="262" CREATED="2009-01-28 17:07:03.0" UUID="93261622-1e2a-42a3-b10d-eb3f19262ba3" URI="" ISO639_1="mn" ISO639_2="mon" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="263" CREATED="2009-01-28 17:07:03.0" UUID="aaae2afe-0a27-4aac-a53c-c0efdb9b00f9" URI="" ISO639_1="" ISO639_2="nwc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="264" CREATED="2009-01-28 17:07:03.0" UUID="088a4d6a-e048-4299-be2c-15425b2827cf" URI="" ISO639_1="" ISO639_2="goh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="265" CREATED="2009-01-28 17:07:03.0" UUID="d482a3d5-5a01-458a-aa6d-da17fa4bd90f" URI="" ISO639_1="kn" ISO639_2="kan" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="266" CREATED="2009-01-28 17:07:03.0" UUID="efe01e0d-8c64-4613-b1dd-b696cb809bc3" URI="" ISO639_1="as" ISO639_2="asm" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="267" CREATED="2009-01-28 17:07:03.0" UUID="27bd4b8b-07d0-425c-a843-61588c140f68" URI="" ISO639_1="" ISO639_2="fro" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="268" CREATED="2009-01-28 17:07:03.0" UUID="3fdca387-f1b0-4ec1-808f-1bc3dc482194" URI="" ISO639_1="pl" ISO639_2="pol" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="269" CREATED="2009-01-28 17:07:03.0" UUID="55b079b1-be19-43fc-8827-cb71b373862f" URI="" ISO639_1="" ISO639_2="ada" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="270" CREATED="2009-01-28 17:07:03.0" UUID="9da86f92-895b-4c9a-bec3-9591d002b278" URI="" ISO639_1="" ISO639_2="nog" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="271" CREATED="2009-01-28 17:07:03.0" UUID="1753ee27-b780-4844-bcb3-bb0d834721aa" URI="" ISO639_1="pa" ISO639_2="pan" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="272" CREATED="2009-01-28 17:07:03.0" UUID="7527cedc-8a0b-4199-9b0f-da1c98b5884e" URI="" ISO639_1="" ISO639_2="sat" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="273" CREATED="2009-01-28 17:07:03.0" UUID="ba70c6aa-0d9f-4bae-b2a2-afca2c33bcb1" URI="" ISO639_1="" ISO639_2="vot" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="274" CREATED="2009-01-28 17:07:03.0" UUID="04b151e3-c3db-467b-a9ec-f175ab3a52c4" URI="" ISO639_1="rm" ISO639_2="roh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="275" CREATED="2009-01-28 17:07:03.0" UUID="0532c7c2-5c49-4730-ba7d-0512036a36ac" URI="" ISO639_1="" ISO639_2="hit" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="276" CREATED="2009-01-28 17:07:03.0" UUID="fb64b07c-c079-4fda-a803-212a0beca61b" URI="" ISO639_1="ka" ISO639_2="geo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="277" CREATED="2009-01-28 17:07:03.0" UUID="627d5b24-121d-4d97-b531-d4ff26ea9f54" URI="" ISO639_1="" ISO639_2="efi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="278" CREATED="2009-01-28 17:07:03.0" UUID="d494cb91-b5df-4f7a-98fd-7257cec13213" URI="" ISO639_1="tk" ISO639_2="tuk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="279" CREATED="2009-01-28 17:07:03.0" UUID="3b3fd5bd-009a-401a-8136-9a6c0c2705d0" URI="" ISO639_1="" ISO639_2="cho" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="280" CREATED="2009-01-28 17:07:03.0" UUID="a03f2fe0-9a5b-4498-a45d-d52c5ae8034a" URI="" ISO639_1="" ISO639_2="ast" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="281" CREATED="2009-01-28 17:07:03.0" UUID="008bde55-5aad-4d9c-98be-29d2cae5ec4c" URI="" ISO639_1="" ISO639_2="bad" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="282" CREATED="2009-01-28 17:07:03.0" UUID="d37af6b4-3740-4190-800c-0e28bb0c10bf" URI="" ISO639_1="" ISO639_2="gmh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="283" CREATED="2009-01-28 17:07:03.0" UUID="0cb43888-e619-4e80-9beb-190884d50ea7" URI="" ISO639_1="uz" ISO639_2="uzb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="284" CREATED="2009-01-28 17:07:03.0" UUID="5f2f0f6e-82ff-4c67-918a-a433ecaa2f04" URI="" ISO639_1="" ISO639_2="fat" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="285" CREATED="2009-01-28 17:07:03.0" UUID="015a6c3b-5d22-40de-bccd-2d737978b1c2" URI="" ISO639_1="ml" ISO639_2="mal" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="286" CREATED="2009-01-28 17:07:03.0" UUID="4e826395-2eae-4a2e-8d7d-ba9cbd16e2a3" URI="" ISO639_1="" ISO639_2="pro" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="287" CREATED="2009-01-28 17:07:03.0" UUID="b11d3bd9-daab-4399-b289-e6f0e2a0ec29" URI="" ISO639_1="ee" ISO639_2="ewe" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="288" CREATED="2009-01-28 17:07:03.0" UUID="aa6d4890-5725-4ac6-bf42-3eb827b24fc9" URI="" ISO639_1="qu" ISO639_2="que" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="289" CREATED="2009-01-28 17:07:03.0" UUID="4bde6eea-75b8-4fd1-9b8f-59221a953487" URI="" ISO639_1="" ISO639_2="bem" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="290" CREATED="2009-01-28 17:07:03.0" UUID="4dd4d7bf-2e9e-4b2e-8165-5d160d32980b" URI="" ISO639_1="lb" ISO639_2="ltz" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="291" CREATED="2009-01-28 17:07:03.0" UUID="e7e7f3c6-68b4-42aa-a7ce-e3748ecd504e" URI="" ISO639_1="bs" ISO639_2="bos" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="292" CREATED="2009-01-28 17:07:03.0" UUID="038ea17e-064a-42f2-9062-fbc679746023" URI="" ISO639_1="" ISO639_2="sla" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="293" CREATED="2009-01-28 17:07:03.0" UUID="0daa9618-b0d8-4363-8790-ece21928e665" URI="" ISO639_1="oj" ISO639_2="oji" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="294" CREATED="2009-01-28 17:07:03.0" UUID="f0e386ec-b0c5-4d57-bff9-e9b6c72b3122" URI="" ISO639_1="wo" ISO639_2="wol" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="295" CREATED="2009-01-28 17:07:03.0" UUID="82c34ba6-a4ff-448b-a195-f56b31d6d824" URI="" ISO639_1="" ISO639_2="csb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="296" CREATED="2009-01-28 17:07:03.0" UUID="a9fc2782-5b2a-466f-b9c3-64d9ca6614c4" URI="" ISO639_1="zh" ISO639_2="chi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="297" CREATED="2009-01-28 17:07:03.0" UUID="b5d99800-b40b-4e3d-ada9-610475ffa68b" URI="" ISO639_1="gd" ISO639_2="gla" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="298" CREATED="2009-01-28 17:07:03.0" UUID="638c12eb-3954-4bf4-a008-6177a2f880e1" URI="" ISO639_1="ms" ISO639_2="may" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="299" CREATED="2009-01-28 17:07:03.0" UUID="9ad544c7-f8d7-4bea-9476-26d982917ec8" URI="" ISO639_1="" ISO639_2="son" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="300" CREATED="2009-01-28 17:07:03.0" UUID="5d2452c1-2cee-45d7-b952-a5401b20b9f5" URI="" ISO639_1="ik" ISO639_2="ipk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="301" CREATED="2009-01-28 17:07:03.0" UUID="e4326d01-381b-4024-a748-995e26bb0362" URI="" ISO639_1="" ISO639_2="oto" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="302" CREATED="2009-01-28 17:07:03.0" UUID="2ee4a0f9-2a46-429c-aec7-fc10c2567da1" URI="" ISO639_1="" ISO639_2="mus" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="303" CREATED="2009-01-28 17:07:03.0" UUID="71950910-41a0-40a9-8c48-3ac16773e352" URI="" ISO639_1="" ISO639_2="nyo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="304" CREATED="2009-01-28 17:07:03.0" UUID="076909b8-88f0-4341-921a-380a9f24c63b" URI="" ISO639_1="" ISO639_2="cmc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="305" CREATED="2009-01-28 17:07:03.0" UUID="845634a3-153e-4534-8362-ff087210b625" URI="" ISO639_1="hz" ISO639_2="her" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="306" CREATED="2009-01-28 17:07:03.0" UUID="0beb31ca-2479-47c7-b557-bd44dc620f16" URI="" ISO639_1="" ISO639_2="frs" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="307" CREATED="2009-01-28 17:07:03.0" UUID="55f20809-946a-424c-8eda-f14b0e8fc6c0" URI="" ISO639_1="" ISO639_2="lah" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="308" CREATED="2009-01-28 17:07:03.0" UUID="35a5f90e-ea2d-4bf4-8a09-7b00a35b61bb" URI="" ISO639_1="" ISO639_2="cpp" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="309" CREATED="2009-01-28 17:07:03.0" UUID="3d1d88e7-172b-440a-b763-da26a4a11d39" URI="" ISO639_1="" ISO639_2="inc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="310" CREATED="2009-01-28 17:07:03.0" UUID="8b061029-05a6-4fb4-b630-8a04d69cb54f" URI="" ISO639_1="" ISO639_2="peo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="311" CREATED="2009-01-28 17:07:03.0" UUID="a49330bb-a505-4778-9d81-251e2d5ee627" URI="" ISO639_1="ts" ISO639_2="tso" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="312" CREATED="2009-01-28 17:07:03.0" UUID="18f56fec-fa36-4317-853b-0b574df05efc" URI="" ISO639_1="" ISO639_2="ewo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="313" CREATED="2009-01-28 17:07:03.0" UUID="c3c6cdef-a514-4e55-8628-b8d3e67cd781" URI="" ISO639_1="" ISO639_2="kho" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="314" CREATED="2009-01-28 17:07:03.0" UUID="353409b1-30f1-4d34-b1c0-cf024d49c69e" URI="" ISO639_1="" ISO639_2="awa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="315" CREATED="2009-01-28 17:07:03.0" UUID="d8ce3c47-243b-4a09-835b-01918829a2e7" URI="" ISO639_1="" ISO639_2="zun" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="316" CREATED="2009-01-28 17:07:03.0" UUID="531e06fd-798c-4700-afe6-2d8a01c5ec46" URI="" ISO639_1="sr" ISO639_2="scc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="317" CREATED="2009-01-28 17:07:03.0" UUID="a00fc918-4d32-4974-94ed-076b1fec9798" URI="" ISO639_1="ln" ISO639_2="lin" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="318" CREATED="2009-01-28 17:07:03.0" UUID="1b171828-16da-45ea-bfd9-5bf236481920" URI="" ISO639_1="fy" ISO639_2="fry" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="319" CREATED="2009-01-28 17:07:03.0" UUID="62528d73-3100-4814-8579-84b1825ae320" URI="" ISO639_1="" ISO639_2="min" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="320" CREATED="2009-01-28 17:07:03.0" UUID="c8a8a134-32bc-48c0-829f-1dd811866888" URI="" ISO639_1="" ISO639_2="niu" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="321" CREATED="2009-01-28 17:07:03.0" UUID="ec2a7b15-ce28-4465-b1b3-5e045db869d3" URI="" ISO639_1="" ISO639_2="tpi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="322" CREATED="2009-01-28 17:07:03.0" UUID="6dbc6679-c2bb-43bb-9c22-c1c4097c14f0" URI="" ISO639_1="be" ISO639_2="bel" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="323" CREATED="2009-01-28 17:07:03.0" UUID="d311117f-45aa-4dd6-8ecb-12a9fc5654d4" URI="" ISO639_1="" ISO639_2="men" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="324" CREATED="2009-01-28 17:07:03.0" UUID="c82767ce-1623-4e86-a999-3f9baff8ace4" URI="" ISO639_1="" ISO639_2="fil" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="325" CREATED="2009-01-28 17:07:03.0" UUID="15f73328-e7ad-4a6b-a31e-6477bd978e87" URI="" ISO639_1="" ISO639_2="cai" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="326" CREATED="2009-01-28 17:07:03.0" UUID="86521056-865a-4cc4-9eeb-fbce391a20b9" URI="" ISO639_1="" ISO639_2="yao" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="327" CREATED="2009-01-28 17:07:03.0" UUID="4606abdf-6dbe-4bfe-b3da-a1fa08f2f1e2" URI="" ISO639_1="fi" ISO639_2="fin" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="328" CREATED="2009-01-28 17:07:03.0" UUID="5591a708-17c7-40c8-9d2c-d3ad20150e45" URI="" ISO639_1="" ISO639_2="phi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="329" CREATED="2009-01-28 17:07:03.0" UUID="fa367cfb-8aad-42fb-8a19-cd6582e58fd4" URI="" ISO639_1="id" ISO639_2="ind" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="330" CREATED="2009-01-28 17:07:03.0" UUID="fc81a52e-6e94-4f97-83dd-f179208a6592" URI="" ISO639_1="" ISO639_2="hmn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="331" CREATED="2009-01-28 17:07:03.0" UUID="97e85881-0009-4b4b-a8dc-3c83eddb4440" URI="" ISO639_1="" ISO639_2="ssa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="332" CREATED="2009-01-28 17:07:03.0" UUID="61cb4280-42d1-4fa0-92bf-fe7cf02c66d3" URI="" ISO639_1="" ISO639_2="fon" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="333" CREATED="2009-01-28 17:07:03.0" UUID="6d50329c-f53e-48c7-808c-562ddd5998bb" URI="" ISO639_1="nd" ISO639_2="nde" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="334" CREATED="2009-01-28 17:07:03.0" UUID="9ed0f57a-5af3-433a-bf38-808e2cf4103b" URI="" ISO639_1="" ISO639_2="xal" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="335" CREATED="2009-01-28 17:07:03.0" UUID="c462c732-aa55-423b-96a9-c43bf10d53b3" URI="" ISO639_1="ak" ISO639_2="aka" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="336" CREATED="2009-01-28 17:07:03.0" UUID="f6dfb41f-c6c1-4d21-a51c-0fbd7cee2dff" URI="" ISO639_1="" ISO639_2="dsb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="337" CREATED="2009-01-28 17:07:03.0" UUID="b56ddf7a-975e-4d18-91c4-5952c0f5465e" URI="" ISO639_1="" ISO639_2="pag" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="338" CREATED="2009-01-28 17:07:03.0" UUID="e9f02ab1-d578-44fd-ad8e-addd938e2132" URI="" ISO639_1="" ISO639_2="kru" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="339" CREATED="2009-01-28 17:07:03.0" UUID="f817b594-98a7-49a2-a712-94b1148a4340" URI="" ISO639_1="hu" ISO639_2="hun" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="340" CREATED="2009-01-28 17:07:03.0" UUID="569d40d8-5c04-4b0a-8606-61fd91d498b5" URI="" ISO639_1="ce" ISO639_2="che" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="341" CREATED="2009-01-28 17:07:03.0" UUID="7b4ab3d4-0575-4038-840d-e15caeeedd66" URI="" ISO639_1="ro" ISO639_2="rum" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="342" CREATED="2009-01-28 17:07:03.0" UUID="86dff8de-2732-4b40-82a4-814897ea2714" URI="" ISO639_1="" ISO639_2="sam" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="343" CREATED="2009-01-28 17:07:03.0" UUID="35ef668e-daea-45a7-909b-2e2ac08eff46" URI="" ISO639_1="" ISO639_2="haw" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="344" CREATED="2009-01-28 17:07:03.0" UUID="922703d9-b4c3-4643-9503-42e6b7f0fc62" URI="" ISO639_1="" ISO639_2="lui" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="345" CREATED="2009-01-28 17:07:03.0" UUID="5d81b61c-7891-4423-8f8f-5b1d89b28e42" URI="" ISO639_1="" ISO639_2="nia" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="346" CREATED="2009-01-28 17:07:03.0" UUID="173784fb-62ce-4741-b214-53cb5d297411" URI="" ISO639_1="lv" ISO639_2="lav" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="347" CREATED="2009-01-28 17:07:03.0" UUID="364ffc64-7248-4ad6-acdd-35daded04819" URI="" ISO639_1="" ISO639_2="bal" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="348" CREATED="2009-01-28 17:07:03.0" UUID="bfbc8359-711d-430e-bfba-5e96c3a24fbb" URI="" ISO639_1="" ISO639_2="hup" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="349" CREATED="2009-01-28 17:07:03.0" UUID="d1131746-e58b-4e80-a865-f5182c9c3073" URI="" ISO639_1="de" ISO639_2="ger" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="350" CREATED="2009-01-28 17:07:03.0" UUID="f6d6297f-00c4-4833-8f7b-001d2c3418e5" URI="" ISO639_1="" ISO639_2="cau" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="351" CREATED="2009-01-28 17:07:03.0" UUID="0a3dc1c3-cade-473d-ac58-2777fc31078d" URI="" ISO639_1="" ISO639_2="chy" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="352" CREATED="2009-01-28 17:07:03.0" UUID="160a5b6c-87f5-4422-9bda-78cd404c179e" URI="" ISO639_1="la" ISO639_2="lat" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="353" CREATED="2009-01-28 17:07:03.0" UUID="ca1321fb-4b3d-4e55-ade9-78a26ed71930" URI="" ISO639_1="" ISO639_2="mkh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="354" CREATED="2009-01-28 17:07:03.0" UUID="14056109-b3df-45a2-a3bb-7f6760ce692d" URI="" ISO639_1="" ISO639_2="aus" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="355" CREATED="2009-01-28 17:07:03.0" UUID="c30ccf66-224c-4d65-8cde-77ea91df433c" URI="" ISO639_1="cy" ISO639_2="wel" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="356" CREATED="2009-01-28 17:07:03.0" UUID="4fb12988-754d-430e-9840-561a258bb3e9" URI="" ISO639_1="et" ISO639_2="est" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="357" CREATED="2009-01-28 17:07:03.0" UUID="4b826c59-54ec-42a2-8789-67dcffd5c8fb" URI="" ISO639_1="" ISO639_2="lua" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="358" CREATED="2009-01-28 17:07:03.0" UUID="abc32d6e-f8cd-4218-8921-8713160cb0a4" URI="" ISO639_1="nn" ISO639_2="nno" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="359" CREATED="2009-01-28 17:07:03.0" UUID="3f53b130-6da7-45a2-8bb1-cb7d53f59d1d" URI="" ISO639_1="" ISO639_2="nap" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="360" CREATED="2009-01-28 17:07:03.0" UUID="e8e3a155-5306-4f71-898f-07eda08ed975" URI="" ISO639_1="" ISO639_2="udm" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="361" CREATED="2009-01-28 17:07:03.0" UUID="2af255f1-52bb-41ae-986f-9a6b71e0ddc4" URI="" ISO639_1="rn" ISO639_2="run" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="362" CREATED="2009-01-28 17:07:03.0" UUID="63c28016-658e-47dd-88b5-2cd3f4a040bc" URI="" ISO639_1="" ISO639_2="suk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="363" CREATED="2009-01-28 17:07:03.0" UUID="47f02bfd-d79c-41a4-be9b-43aa9e278f66" URI="" ISO639_1="" ISO639_2="scn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="364" CREATED="2009-01-28 17:07:03.0" UUID="dc5a1a59-7b4e-41b8-9aa6-182eca2d8778" URI="" ISO639_1="" ISO639_2="nso" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="365" CREATED="2009-01-28 17:07:03.0" UUID="f85f8fcd-eb10-41bd-b296-22bb4aa25147" URI="" ISO639_1="" ISO639_2="afa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="366" CREATED="2009-01-28 17:07:03.0" UUID="29cc1f21-8945-47e6-8d23-bfa1878d3bf0" URI="" ISO639_1="" ISO639_2="nub" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="367" CREATED="2009-01-28 17:07:03.0" UUID="4c2cfc13-efbb-4aa1-88b5-960adc8c29a0" URI="" ISO639_1="" ISO639_2="chg" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="368" CREATED="2009-01-28 17:07:03.0" UUID="9e433e6b-044e-49d0-8b87-87af9e249e04" URI="" ISO639_1="" ISO639_2="ang" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="369" CREATED="2009-01-28 17:07:03.0" UUID="b3ad88e2-0080-466f-9bf4-b01ba4122563" URI="" ISO639_1="aa" ISO639_2="aar" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="370" CREATED="2009-01-28 17:07:03.0" UUID="f763355e-8b02-4df2-a5f1-9120071c77cd" URI="" ISO639_1="" ISO639_2="tkl" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="371" CREATED="2009-01-28 17:07:03.0" UUID="e1997c20-90c7-4b7a-a7c3-b75f9cff6aeb" URI="" ISO639_1="cu" ISO639_2="chu" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="372" CREATED="2009-01-28 17:07:03.0" UUID="005f5fa5-ed4b-445f-9b8a-16662485462d" URI="" ISO639_1="" ISO639_2="non" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="373" CREATED="2009-01-28 17:07:03.0" UUID="1a4d87e6-ac4c-43ec-a4fb-452a19347684" URI="" ISO639_1="am" ISO639_2="amh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="374" CREATED="2009-01-28 17:07:03.0" UUID="db9d12b2-ef5a-4756-88f9-b79cd9b64a01" URI="" ISO639_1="hr" ISO639_2="scr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="375" CREATED="2009-01-28 17:07:03.0" UUID="73d9c324-fbc2-47b7-a4be-8f0f43485a82" URI="" ISO639_1="" ISO639_2="tup" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="376" CREATED="2009-01-28 17:07:03.0" UUID="59729403-2378-4697-b390-ac41ecb72380" URI="" ISO639_1="" ISO639_2="sog" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="377" CREATED="2009-01-28 17:07:03.0" UUID="bce6190e-f45b-43bf-bc99-ca527b1d2598" URI="" ISO639_1="" ISO639_2="bug" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="378" CREATED="2009-01-28 17:07:03.0" UUID="b604349f-2bc0-44f5-92dd-a66dba3fe055" URI="" ISO639_1="af" ISO639_2="afr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="379" CREATED="2009-01-28 17:07:03.0" UUID="7cafd5d8-b61d-4942-b9c9-c2dcadefb22c" URI="" ISO639_1="br" ISO639_2="bre" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="380" CREATED="2009-01-28 17:07:03.0" UUID="86b14ab7-2989-4448-b23b-0c6185281732" URI="" ISO639_1="" ISO639_2="anp" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="381" CREATED="2009-01-28 17:07:03.0" UUID="ed994d78-c442-4ea8-aede-8723a2bee717" URI="" ISO639_1="ki" ISO639_2="kik" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="382" CREATED="2009-01-28 17:07:03.0" UUID="2d318a92-1e48-458e-b0cd-28165ee95cde" URI="" ISO639_1="" ISO639_2="alg" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="383" CREATED="2009-01-28 17:07:03.0" UUID="8b589844-cd06-47f6-88cf-b4f8afa4ace7" URI="" ISO639_1="tn" ISO639_2="tsn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="384" CREATED="2009-01-28 17:07:03.0" UUID="7759a1d8-a5ea-454a-8c93-1dcfaae8cc21" URI="" ISO639_1="fr" ISO639_2="fre" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="385" CREATED="2009-01-28 17:07:03.0" UUID="4e184daa-9ee2-4c0e-842d-038f1c0b1280" URI="" ISO639_1="tt" ISO639_2="tat" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="386" CREATED="2009-01-28 17:07:03.0" UUID="2cf61318-c2ef-4aaf-b9bc-5317c291d8fa" URI="" ISO639_1="ng" ISO639_2="ndo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="387" CREATED="2009-01-28 17:07:03.0" UUID="bd5b4edb-271d-4b3c-b22c-9d53cbc5a829" URI="" ISO639_1="" ISO639_2="nym" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="388" CREATED="2009-01-28 17:07:03.0" UUID="1e50c9f4-4261-465c-a7c7-191ec49596ff" URI="" ISO639_1="sl" ISO639_2="slv" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="389" CREATED="2009-01-28 17:07:03.0" UUID="f75a6211-3022-4600-8053-278c85676f34" URI="" ISO639_1="tg" ISO639_2="tgk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="390" CREATED="2009-01-28 17:07:03.0" UUID="72235dce-b0f2-4bbe-a400-f236cadeb86e" URI="" ISO639_1="ia" ISO639_2="ina" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="391" CREATED="2009-01-28 17:07:03.0" UUID="c7bef5c5-6fb6-4fd2-b464-fed4f052adcb" URI="" ISO639_1="" ISO639_2="hai" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="392" CREATED="2009-01-28 17:07:03.0" UUID="6b8f25c2-ddb7-4b65-8722-ffbe992cf2ce" URI="" ISO639_1="se" ISO639_2="sme" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="393" CREATED="2009-01-28 17:07:03.0" UUID="d32011e1-faf8-4310-80b1-a79476a8cecc" URI="" ISO639_1="" ISO639_2="gem" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="394" CREATED="2009-01-28 17:07:03.0" UUID="0d21e928-75d8-4eef-a5dd-8ef53b93a1aa" URI="" ISO639_1="wa" ISO639_2="wln" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="395" CREATED="2009-01-28 17:07:03.0" UUID="4c6285d7-befc-4329-b27f-3a213969c9cf" URI="" ISO639_1="" ISO639_2="btk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="396" CREATED="2009-01-28 17:07:03.0" UUID="465c09ba-cbce-4dab-a449-1c05094f4d2b" URI="" ISO639_1="" ISO639_2="iro" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="397" CREATED="2009-01-28 17:07:03.0" UUID="52cc1adb-b715-4a2a-8aaf-8d32fddd3958" URI="" ISO639_1="" ISO639_2="srn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="398" CREATED="2009-01-28 17:07:03.0" UUID="d4876784-4fc9-4c56-8a72-7519186ce98c" URI="" ISO639_1="ks" ISO639_2="kas" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="399" CREATED="2009-01-28 17:07:03.0" UUID="4d3ec2eb-536f-4aab-81c5-34e37a3edbba" URI="" ISO639_1="ar" ISO639_2="ara" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="400" CREATED="2009-01-28 17:07:03.0" UUID="b4c105cb-a53e-4734-acd8-3128ba76451b" URI="" ISO639_1="" ISO639_2="kmb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="401" CREATED="2009-01-28 17:07:03.0" UUID="394994b3-576a-484d-a57f-e207deece4c8" URI="" ISO639_1="" ISO639_2="ceb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="402" CREATED="2009-01-28 17:07:03.0" UUID="cc5c315b-096c-4fc3-a81f-7d404378576c" URI="" ISO639_1="" ISO639_2="mni" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="403" CREATED="2009-01-28 17:07:03.0" UUID="d4541a74-becc-4ba6-874c-510ee0d0a29f" URI="" ISO639_1="sv" ISO639_2="swe" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="404" CREATED="2009-01-28 17:07:03.0" UUID="45ee4d82-3561-4095-bae0-c054383c651f" URI="" ISO639_1="" ISO639_2="bas" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="405" CREATED="2009-01-28 17:07:03.0" UUID="6c081f57-acbf-4eb6-826e-8d32b5b42fe4" URI="" ISO639_1="" ISO639_2="kos" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="406" CREATED="2009-01-28 17:07:03.0" UUID="e9f8cdb7-6819-44e8-95d3-e2d0690c3523" URI="" ISO639_1="en" ISO639_2="eng" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="407" CREATED="2009-01-28 17:07:03.0" UUID="72859b96-61b9-4400-8489-392ceb529b89" URI="" ISO639_1="pi" ISO639_2="pli" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="408" CREATED="2009-01-28 17:07:03.0" UUID="ba95f29b-f11c-4d79-9973-6de75087c7b3" URI="" ISO639_1="cs" ISO639_2="cze" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="409" CREATED="2009-01-28 17:07:03.0" UUID="e72b4d06-a496-4e55-8c5d-093594ab8da2" URI="" ISO639_1="" ISO639_2="iba" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="410" CREATED="2009-01-28 17:07:03.0" UUID="49698678-dc5e-45d8-afb2-09f57d27e176" URI="" ISO639_1="" ISO639_2="bat" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="411" CREATED="2009-01-28 17:07:03.0" UUID="35985d42-51bb-41b7-83a9-58845d499f8b" URI="" ISO639_1="so" ISO639_2="som" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="412" CREATED="2009-01-28 17:07:03.0" UUID="17c38fb4-2acc-4cfc-a0d1-83772410c161" URI="" ISO639_1="" ISO639_2="myn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="413" CREATED="2009-01-28 17:07:03.0" UUID="17c29acf-96d3-484c-8285-2861fdbdb2f3" URI="" ISO639_1="ny" ISO639_2="nya" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="414" CREATED="2009-01-28 17:07:03.0" UUID="ecf81f98-177d-49a6-ad0f-f6d89944c76b" URI="" ISO639_1="tr" ISO639_2="tur" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="415" CREATED="2009-01-28 17:07:03.0" UUID="f3964fe0-7625-431f-8155-b646d1671b44" URI="" ISO639_1="" ISO639_2="car" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="416" CREATED="2009-01-28 17:07:03.0" UUID="617cb541-33a5-43ee-85fa-01823c1f1007" URI="" ISO639_1="" ISO639_2="chr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="417" CREATED="2009-01-28 17:07:03.0" UUID="4783aea1-46c0-40b3-ad02-c13157c7817d" URI="" ISO639_1="" ISO639_2="lez" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="418" CREATED="2009-01-28 17:07:03.0" UUID="a50a5d26-8786-4549-99c1-b4280fd713a1" URI="" ISO639_1="" ISO639_2="gor" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="419" CREATED="2009-01-28 17:07:03.0" UUID="1ea8fb85-19c9-48db-9ac6-5f21df1fd4c3" URI="" ISO639_1="sd" ISO639_2="snd" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="420" CREATED="2009-01-28 17:07:03.0" UUID="4441b4e1-382c-4a1e-86a4-aba93d20f6f3" URI="" ISO639_1="ur" ISO639_2="urd" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="421" CREATED="2009-01-28 17:07:03.0" UUID="0107ae7d-d244-4352-ba4d-d2969c55d17e" URI="" ISO639_1="" ISO639_2="wak" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="422" CREATED="2009-01-28 17:07:03.0" UUID="f8adeec5-80e3-4945-a1c8-2e7f0ca6ffd7" URI="" ISO639_1="" ISO639_2="nqo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="423" CREATED="2009-01-28 17:07:03.0" UUID="6778c7fb-c195-4dc1-ae3f-164201314e51" URI="" ISO639_1="ja" ISO639_2="jpn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="424" CREATED="2009-01-28 17:07:03.0" UUID="052b0c83-456b-4592-b0c7-58318dbdb34a" URI="" ISO639_1="" ISO639_2="mul" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="425" CREATED="2009-01-28 17:07:03.0" UUID="e8a2f6b2-8f34-4514-8771-5a3ec93d2468" URI="" ISO639_1="" ISO639_2="gsw" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="426" CREATED="2009-01-28 17:07:03.0" UUID="67f01415-52d8-4a86-86eb-484fdb0606b8" URI="" ISO639_1="" ISO639_2="eka" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="427" CREATED="2009-01-28 17:07:03.0" UUID="e7a347b4-a38c-4c67-87aa-89db702d9b1b" URI="" ISO639_1="yo" ISO639_2="yor" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="428" CREATED="2009-01-28 17:07:03.0" UUID="5b96e532-8fc7-418e-a051-887b857e93c0" URI="" ISO639_1="" ISO639_2="umb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="429" CREATED="2009-01-28 17:07:03.0" UUID="0f6f42da-defe-4c6d-88d5-878339ba80f5" URI="" ISO639_1="bo" ISO639_2="tib" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="430" CREATED="2009-01-28 17:07:03.0" UUID="65cb508a-c974-4417-8509-f199c0e074b9" URI="" ISO639_1="" ISO639_2="fur" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="431" CREATED="2009-01-28 17:07:03.0" UUID="dad6f73d-69fb-4006-8626-51710ab3a6b6" URI="" ISO639_1="" ISO639_2="nai" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="432" CREATED="2009-01-28 17:07:03.0" UUID="ebcccf8d-5516-470f-a80c-f74440c000a0" URI="" ISO639_1="" ISO639_2="shn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="433" CREATED="2009-01-28 17:07:03.0" UUID="c999f0da-0bb9-465b-ad52-8b48354cb591" URI="" ISO639_1="ko" ISO639_2="kor" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="434" CREATED="2009-01-28 17:07:03.0" UUID="9d967232-e64f-44ee-8d18-f254b798d02d" URI="" ISO639_1="" ISO639_2="syr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="435" CREATED="2009-01-28 17:07:03.0" UUID="afbcfec6-22c4-4ec2-ad00-fb6381251076" URI="" ISO639_1="" ISO639_2="kut" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="436" CREATED="2009-01-28 17:07:03.0" UUID="87f48d86-aa28-4080-b9da-186167eb3959" URI="" ISO639_1="ta" ISO639_2="tam" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="437" CREATED="2009-01-28 17:07:03.0" UUID="32e8a660-ad9d-4402-ac2a-7c2c545a94f6" URI="" ISO639_1="" ISO639_2="byn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="438" CREATED="2009-01-28 17:07:03.0" UUID="3e1f5c2e-0103-4bfe-8aa6-e6d01c965539" URI="" ISO639_1="" ISO639_2="sit" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="439" CREATED="2009-01-28 17:07:03.0" UUID="2d69695f-a114-4415-b6e8-5248bba8853c" URI="" ISO639_1="" ISO639_2="mwl" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="440" CREATED="2009-01-28 17:07:03.0" UUID="b5dc41c7-250d-47d3-aa85-7a7c6b880cb8" URI="" ISO639_1="" ISO639_2="phn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="441" CREATED="2009-01-28 17:07:03.0" UUID="26f8dcaa-50c5-47b1-b6c3-f2490dd80c78" URI="" ISO639_1="" ISO639_2="sma" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="442" CREATED="2009-01-28 17:07:03.0" UUID="2eee09b8-57eb-4087-9538-7bf4e8312594" URI="" ISO639_1="my" ISO639_2="bur" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="443" CREATED="2009-01-28 17:07:03.0" UUID="ddb2fe99-1841-49ac-9686-0149771f0887" URI="" ISO639_1="" ISO639_2="cel" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="444" CREATED="2009-01-28 17:07:03.0" UUID="14a934a5-de0c-4371-80f1-def859437bfb" URI="" ISO639_1="" ISO639_2="kro" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="445" CREATED="2009-01-28 17:07:03.0" UUID="3f362e1d-eb8f-40dd-afb5-3884224bbd48" URI="" ISO639_1="" ISO639_2="new" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="446" CREATED="2009-01-28 17:07:03.0" UUID="0ba49b92-7d15-48de-a1de-74e3170b2da7" URI="" ISO639_1="" ISO639_2="znd" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="447" CREATED="2009-01-28 17:07:03.0" UUID="a27c3cb8-8913-45f9-99a3-f3770a258f70" URI="" ISO639_1="gv" ISO639_2="glv" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="448" CREATED="2009-01-28 17:07:03.0" UUID="ded2f739-586d-42ea-a1b1-5ed3e877d1be" URI="" ISO639_1="" ISO639_2="lol" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="449" CREATED="2009-01-28 17:07:03.0" UUID="3b54c94b-e6c5-4072-91c8-bfe383279a9e" URI="" ISO639_1="om" ISO639_2="orm" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="450" CREATED="2009-01-28 17:07:03.0" UUID="a63a0463-5d91-46fc-b62e-be4308178b64" URI="" ISO639_1="ay" ISO639_2="aym" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="451" CREATED="2009-01-28 17:07:03.0" UUID="a9641a51-0502-4798-acc5-2daeb81cc3a2" URI="" ISO639_1="sg" ISO639_2="sag" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="452" CREATED="2009-01-28 17:07:03.0" UUID="ac6431db-b89f-445e-8b4c-c9835142bce7" URI="" ISO639_1="" ISO639_2="dyu" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="453" CREATED="2009-01-28 17:07:03.0" UUID="d42c76ea-e92b-45f0-9e54-430d3519c037" URI="" ISO639_1="sn" ISO639_2="sna" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="454" CREATED="2009-01-28 17:07:03.0" UUID="b8a83111-4a2f-4ca4-a27c-fc0d75585963" URI="" ISO639_1="sk" ISO639_2="slo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="455" CREATED="2009-01-28 17:07:03.0" UUID="225123e7-aa55-41b4-bf14-ab9ef9fb7795" URI="" ISO639_1="" ISO639_2="rom" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="456" CREATED="2009-01-28 17:07:03.0" UUID="b20fa600-5b9b-4714-8dcd-51275a6e1ab0" URI="" ISO639_1="" ISO639_2="gil" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="457" CREATED="2009-01-28 17:07:03.0" UUID="1dd1794d-5868-4224-80c7-d17e0078eca8" URI="" ISO639_1="th" ISO639_2="tha" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="458" CREATED="2009-01-28 17:07:03.0" UUID="6a3409a6-4804-4b6f-9efb-179003523e11" URI="" ISO639_1="bg" ISO639_2="bul" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="459" CREATED="2009-01-28 17:07:03.0" UUID="b049c1c1-ddb5-48f3-ad7a-c6aeb1cb1432" URI="" ISO639_1="dz" ISO639_2="dzo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="460" CREATED="2009-01-28 17:07:03.0" UUID="e19c2fc4-75d1-4071-92bb-cde6a8b7383e" URI="" ISO639_1="" ISO639_2="paa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="461" CREATED="2009-01-28 17:07:03.0" UUID="fefaa178-65ff-4add-bddf-c89be78fa5a8" URI="" ISO639_1="" ISO639_2="fan" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="462" CREATED="2009-01-28 17:07:03.0" UUID="f998ead1-6619-4993-8c11-e41d6119d31a" URI="" ISO639_1="ba" ISO639_2="bak" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="463" CREATED="2009-01-28 17:07:03.0" UUID="e446caca-0588-41f1-8b28-637ee9c8aad2" URI="" ISO639_1="" ISO639_2="pau" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="464" CREATED="2009-01-28 17:07:03.0" UUID="02b6e82c-b223-4af3-9ced-eee857094245" URI="" ISO639_1="" ISO639_2="tli" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="465" CREATED="2009-01-28 17:07:03.0" UUID="ce15d514-c62d-4adb-b6f5-0096f9934d58" URI="" ISO639_1="" ISO639_2="tmh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="466" CREATED="2009-01-28 17:07:03.0" UUID="7131c3ae-33e2-4983-b7d9-1d7bfb481f6b" URI="" ISO639_1="" ISO639_2="mno" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="467" CREATED="2009-01-28 17:07:03.0" UUID="94130a17-38e2-4c60-993a-355fdd9bd8a1" URI="" ISO639_1="" ISO639_2="sel" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="468" CREATED="2009-01-28 17:07:03.0" UUID="c2412f89-94ec-4cec-b75b-218d6202138e" URI="" ISO639_1="" ISO639_2="cpe" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="469" CREATED="2009-01-28 17:07:03.0" UUID="55f1b4e0-fd9d-4849-a11c-5262b2e91a87" URI="" ISO639_1="ug" ISO639_2="uig" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="470" CREATED="2009-01-28 17:07:03.0" UUID="9b315a1e-f772-4f3f-839c-3fe1f4cb1d67" URI="" ISO639_1="os" ISO639_2="oss" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="471" CREATED="2009-01-28 17:07:03.0" UUID="d8968f2e-e383-43d7-913b-d6f35ff9a587" URI="" ISO639_1="" ISO639_2="smi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="472" CREATED="2009-01-28 17:07:03.0" UUID="a70f310b-1922-4d48-991f-b3aa63f30832" URI="" ISO639_1="" ISO639_2="sga" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="473" CREATED="2009-01-28 17:07:03.0" UUID="bd7ce28f-6e88-4075-b1b5-2420a94233e6" URI="" ISO639_1="" ISO639_2="sid" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="474" CREATED="2009-01-28 17:07:03.0" UUID="867fbe26-e8be-49db-b751-6e8da681a37a" URI="" ISO639_1="mi" ISO639_2="mao" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="475" CREATED="2009-01-28 17:07:03.0" UUID="4b8ae63d-0078-4454-95a6-2248c025d8a5" URI="" ISO639_1="" ISO639_2="arp" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="476" CREATED="2009-01-28 17:07:03.0" UUID="53c05614-2669-4c30-93aa-217c19848eb8" URI="" ISO639_1="rw" ISO639_2="kin" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="477" CREATED="2009-01-28 17:07:03.0" UUID="fb7e9746-1bc6-4384-802d-7784b8b301fa" URI="" ISO639_1="st" ISO639_2="sot" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="478" CREATED="2009-01-28 17:07:03.0" UUID="ca1e1cc3-ffe7-449e-8077-564b746d8526" URI="" ISO639_1="tl" ISO639_2="tgl" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="479" CREATED="2009-01-28 17:07:03.0" UUID="13ef4b98-3a37-4bed-9bee-96d3a10eed02" URI="" ISO639_1="" ISO639_2="chp" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="480" CREATED="2009-01-28 17:07:03.0" UUID="176c9e51-4106-4ac4-a3e8-19eff0969147" URI="" ISO639_1="ku" ISO639_2="kur" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="481" CREATED="2009-01-28 17:07:03.0" UUID="4f0d316e-df44-4f6b-b318-cc8539db9895" URI="" ISO639_1="" ISO639_2="loz" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="482" CREATED="2009-01-28 17:07:03.0" UUID="84633f7a-7dc6-41bf-a5c3-2882e691c974" URI="" ISO639_1="bi" ISO639_2="bis" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="483" CREATED="2009-01-28 17:07:03.0" UUID="2a2da196-a57b-480c-a6c9-0f97f66d1ee1" URI="" ISO639_1="lu" ISO639_2="lub" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="484" CREATED="2009-01-28 17:07:03.0" UUID="929c554c-03be-4327-86e1-8175b01a8995" URI="" ISO639_1="gu" ISO639_2="guj" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="485" CREATED="2009-01-28 17:07:03.0" UUID="a78f236f-8fbf-4788-86ed-80fecc3e0fe6" URI="" ISO639_1="" ISO639_2="myv" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="486" CREATED="2009-01-28 17:07:04.0" UUID="c57adcff-5213-45f0-a5f0-97a9f5c0f1fe" URI="" ORDERINDEX="9" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="487" CREATED="2009-01-28 17:07:04.0" UUID="a2afdb9a-04a0-434c-9e75-d07dbeb86526" URI="" ORDERINDEX="8" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="488" CREATED="2009-01-28 17:07:04.0" UUID="12b861c9-c922-498c-8b1a-62afc26d19e3" URI="" ORDERINDEX="7" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="489" CREATED="2009-01-28 17:07:04.0" UUID="71fd9ab7-9b07-4eb6-8e54-c519aff56728" URI="" ORDERINDEX="6" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="490" CREATED="2009-01-28 17:07:04.0" UUID="81d8aca3-ddd7-4537-9f2b-5327c95b6e28" URI="" ORDERINDEX="5" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="491" CREATED="2009-01-28 17:07:04.0" UUID="f8039275-d2c0-4753-a1ab-0336642a1499" URI="" ORDERINDEX="4" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="492" CREATED="2009-01-28 17:07:04.0" UUID="7f4f4f89-3b4c-475d-929f-144109bd8457" URI="" ORDERINDEX="3" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="493" CREATED="2009-01-28 17:07:04.0" UUID="c204c529-d8d2-458f-b939-96f0ebd2cbe8" URI="" ORDERINDEX="2" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="494" CREATED="2009-01-28 17:07:04.0" UUID="3b69f979-408c-4080-b573-0ad78a315610" URI="" ORDERINDEX="1" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="495" CREATED="2009-01-28 17:07:04.0" UUID="aa96ca19-46ab-4114-a494-96886eb7108a" URI="" ORDERINDEX="249" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="496" CREATED="2009-01-28 17:07:04.0" UUID="aa96ca19-46ab-c953-a494-96886eb7108a" URI="" ORDERINDEX="248" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="497" CREATED="2009-01-28 17:07:04.0" UUID="d4cf6c57-892c-c953-a494-96886eb7108a" URI="" ORDERINDEX="247" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="498" CREATED="2009-01-28 17:07:04.0" UUID="d4cf6c57-892c-4114-bf57-96886eb7108a" URI="" ORDERINDEX="246" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="499" CREATED="2009-01-28 17:07:04.0" UUID="aa96ca19-892c-4114-a494-d4b287f76fab" URI="" ORDERINDEX="245" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="500" CREATED="2009-01-28 17:07:04.0" UUID="aa96ca19-892c-4114-af29-d4b287f76fab" URI="" ORDERINDEX="244" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="501" CREATED="2009-01-28 17:07:04.0" UUID="36aea55c-892c-4114-af29-d4b287f76fab" URI="" ORDERINDEX="243" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="502" CREATED="2009-01-28 17:07:04.0" UUID="36aea55c-892c-6365-af29-e4842f13eb4c" URI="" ORDERINDEX="242" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="503" CREATED="2009-01-28 17:07:04.0" UUID="36aea55c-46ab-6365-af29-e4842f13eb4c" URI="" ORDERINDEX="241" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="504" CREATED="2009-01-28 17:07:04.0" UUID="aa96ca19-46ab-6365-af29-e4842f13eb4c" URI="" ORDERINDEX="240" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="505" CREATED="2009-01-28 17:07:04.0" UUID="aa96ca19-46ab-40ad-a494-e4842f13eb4c" URI="" ORDERINDEX="239" ISO3166_A2="ZW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="506" CREATED="2009-01-28 17:07:04.0" UUID="90318040-d346-4c8f-be69-fa8ade0b12d9" URI="" ORDERINDEX="238" ISO3166_A2="ZM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="507" CREATED="2009-01-28 17:07:04.0" UUID="713e1840-ff18-4a96-bc32-3da2b048c77d" URI="" ORDERINDEX="237" ISO3166_A2="YE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="508" CREATED="2009-01-28 17:07:04.0" UUID="fa9e1eb4-ee4c-4b13-82dd-ec42a8b7e627" URI="" ORDERINDEX="236" ISO3166_A2="EH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="509" CREATED="2009-01-28 17:07:04.0" UUID="b4844963-f140-41b3-935d-58fd14df5878" URI="" ORDERINDEX="235" ISO3166_A2="WF" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="510" CREATED="2009-01-28 17:07:04.0" UUID="f9295319-572e-4c3d-9962-176a7802750b" URI="" ORDERINDEX="234" ISO3166_A2="VN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="511" CREATED="2009-01-28 17:07:04.0" UUID="e8099497-0e51-41ca-85d7-d23b730d9c1a" URI="" ORDERINDEX="233" ISO3166_A2="VE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="512" CREATED="2009-01-28 17:07:04.0" UUID="b4e16ad0-3cb7-4809-a5ae-9a143595c2a4" URI="" ORDERINDEX="232" ISO3166_A2="VU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="513" CREATED="2009-01-28 17:07:04.0" UUID="86ebc56d-8b06-4bb1-a0f9-b15626c02fbd" URI="" ORDERINDEX="231" ISO3166_A2="UZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="514" CREATED="2009-01-28 17:07:04.0" UUID="baf46f00-7b05-4d88-b1cf-ce922f3ba262" URI="" ORDERINDEX="230" ISO3166_A2="UY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="515" CREATED="2009-01-28 17:07:04.0" UUID="d9dacd9e-dd04-4641-957a-589bdb9fe5fb" URI="" ORDERINDEX="229" ISO3166_A2="US" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="516" CREATED="2009-01-28 17:07:04.0" UUID="4e88114b-e278-4816-ba7d-7bc17098c407" URI="" ORDERINDEX="228" ISO3166_A2="UM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="517" CREATED="2009-01-28 17:07:04.0" UUID="5364e352-926f-4e07-9abb-2deea19346ec" URI="" ORDERINDEX="227" ISO3166_A2="GB" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="518" CREATED="2009-01-28 17:07:04.0" UUID="a5b5e8ce-66c8-4ca0-a31b-473c90876108" URI="" ORDERINDEX="226" ISO3166_A2="AE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="519" CREATED="2009-01-28 17:07:04.0" UUID="c44e49c7-a447-466d-ae4f-d290ab03ff18" URI="" ORDERINDEX="225" ISO3166_A2="UA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="520" CREATED="2009-01-28 17:07:04.0" UUID="e74c11af-3a4e-4d13-9c2a-2e57d2954111" URI="" ORDERINDEX="224" ISO3166_A2="UG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="521" CREATED="2009-01-28 17:07:04.0" UUID="b5f9a299-41ea-414b-83d5-91518f64a481" URI="" ORDERINDEX="223" ISO3166_A2="VI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="522" CREATED="2009-01-28 17:07:04.0" UUID="30745e37-22c6-4b92-b955-85cb23f0526f" URI="" ORDERINDEX="222" ISO3166_A2="TV" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="523" CREATED="2009-01-28 17:07:04.0" UUID="d6c83f2f-5130-477a-994e-daa08b70352f" URI="" ORDERINDEX="221" ISO3166_A2="TC" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="524" CREATED="2009-01-28 17:07:04.0" UUID="442c0439-cf39-4c5a-96de-a99fe1a476cf" URI="" ORDERINDEX="220" ISO3166_A2="TM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="525" CREATED="2009-01-28 17:07:04.0" UUID="f7c15c55-d0b3-4eda-8961-582d5071df78" URI="" ORDERINDEX="219" ISO3166_A2="TR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="526" CREATED="2009-01-28 17:07:04.0" UUID="e121e4d7-e1aa-4f2e-9b9e-33f5109460d7" URI="" ORDERINDEX="218" ISO3166_A2="TN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="527" CREATED="2009-01-28 17:07:04.0" UUID="20ed7f03-1263-47fd-a4df-26fab6daae75" URI="" ORDERINDEX="217" ISO3166_A2="TT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="528" CREATED="2009-01-28 17:07:04.0" UUID="0abdcd01-09ff-42a8-b8ba-10458dca5ba9" URI="" ORDERINDEX="216" ISO3166_A2="TO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="529" CREATED="2009-01-28 17:07:04.0" UUID="b301d428-6936-4538-b5d3-778534b779e6" URI="" ORDERINDEX="215" ISO3166_A2="TK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="530" CREATED="2009-01-28 17:07:04.0" UUID="75f15dd5-9998-4937-9a2c-b440798a6695" URI="" ORDERINDEX="214" ISO3166_A2="TG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="531" CREATED="2009-01-28 17:07:04.0" UUID="77f9e6b5-a363-454c-996b-34aec2f10f99" URI="" ORDERINDEX="213" ISO3166_A2="TL" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="532" CREATED="2009-01-28 17:07:04.0" UUID="6c35d8b5-a75b-4f17-8869-04cad4535bd8" URI="" ORDERINDEX="212" ISO3166_A2="TH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="533" CREATED="2009-01-28 17:07:04.0" UUID="8a519200-784a-495a-b0da-b3277913b880" URI="" ORDERINDEX="211" ISO3166_A2="TZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="534" CREATED="2009-01-28 17:07:04.0" UUID="b78e4b96-6095-4316-bc4c-6bdec5593622" URI="" ORDERINDEX="210" ISO3166_A2="TJ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="535" CREATED="2009-01-28 17:07:04.0" UUID="0fffb0e5-81b9-40be-be69-9aff204f51c4" URI="" ORDERINDEX="209" ISO3166_A2="TW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="536" CREATED="2009-01-28 17:07:04.0" UUID="f92c3ca4-3468-40b6-b387-d4677fca86d9" URI="" ORDERINDEX="208" ISO3166_A2="SY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="537" CREATED="2009-01-28 17:07:04.0" UUID="dd79f943-8237-4710-bc5f-acc1ea1a2dd8" URI="" ORDERINDEX="207" ISO3166_A2="CH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="538" CREATED="2009-01-28 17:07:04.0" UUID="8272e206-cb6f-499c-a1d9-7c581f5947c5" URI="" ORDERINDEX="206" ISO3166_A2="SE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="539" CREATED="2009-01-28 17:07:04.0" UUID="bb006073-0088-4adf-9482-01e598bc3fd3" URI="" ORDERINDEX="205" ISO3166_A2="SZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="540" CREATED="2009-01-28 17:07:04.0" UUID="e47f9fe5-54c7-4c61-8c74-abc514749e41" URI="" ORDERINDEX="204" ISO3166_A2="SJ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="541" CREATED="2009-01-28 17:07:04.0" UUID="6268a5c7-df0e-4230-8681-966798383dc4" URI="" ORDERINDEX="203" ISO3166_A2="SR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="542" CREATED="2009-01-28 17:07:04.0" UUID="a47a922b-fa61-4164-8f6d-7cf2ba33ca8c" URI="" ORDERINDEX="202" ISO3166_A2="SD" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="543" CREATED="2009-01-28 17:07:04.0" UUID="c7e74d0e-5c0d-4e3f-a19b-e072abbf0b92" URI="" ORDERINDEX="201" ISO3166_A2="LK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="544" CREATED="2009-01-28 17:07:04.0" UUID="e4d6474b-d903-4850-b51e-389f546b7601" URI="" ORDERINDEX="200" ISO3166_A2="ES" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="545" CREATED="2009-01-28 17:07:04.0" UUID="bf34dad1-63d1-4859-8818-da369616c470" URI="" ORDERINDEX="199" ISO3166_A2="GS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="546" CREATED="2009-01-28 17:07:04.0" UUID="508c9fcb-1b6c-4225-8e31-262a4df64a85" URI="" ORDERINDEX="198" ISO3166_A2="ZA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="547" CREATED="2009-01-28 17:07:04.0" UUID="e8591331-3b75-4569-90a6-4aca1d1d9a53" URI="" ORDERINDEX="197" ISO3166_A2="SO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="548" CREATED="2009-01-28 17:07:04.0" UUID="fc915f15-b2cf-40a7-8268-7c1f2744295a" URI="" ORDERINDEX="196" ISO3166_A2="SB" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="549" CREATED="2009-01-28 17:07:04.0" UUID="526b3fb4-08fc-4238-aa8b-e3217fae7214" URI="" ORDERINDEX="195" ISO3166_A2="SI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="550" CREATED="2009-01-28 17:07:04.0" UUID="0349b9b5-865d-46ea-9750-ab71962d5106" URI="" ORDERINDEX="194" ISO3166_A2="SK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="551" CREATED="2009-01-28 17:07:04.0" UUID="e063b480-c834-4e39-b7a9-74fc578c637b" URI="" ORDERINDEX="193" ISO3166_A2="SG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="552" CREATED="2009-01-28 17:07:04.0" UUID="88e731a7-5c80-4f29-8cf0-54acf70d6277" URI="" ORDERINDEX="192" ISO3166_A2="SL" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="553" CREATED="2009-01-28 17:07:04.0" UUID="3bb44fb7-0976-4e3d-94b9-439763b53711" URI="" ORDERINDEX="191" ISO3166_A2="SC" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="554" CREATED="2009-01-28 17:07:04.0" UUID="94430436-eb97-4048-bf57-270c42b73fd3" URI="" ORDERINDEX="190" ISO3166_A2="CS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="555" CREATED="2009-01-28 17:07:04.0" UUID="e106a448-1205-4515-96f4-758e98176342" URI="" ORDERINDEX="189" ISO3166_A2="SN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="556" CREATED="2009-01-28 17:07:04.0" UUID="62fe4794-7fb0-4520-9493-b9150436393e" URI="" ORDERINDEX="188" ISO3166_A2="SA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="557" CREATED="2009-01-28 17:07:04.0" UUID="a5369890-7a96-46bf-b91c-2c47d86660dd" URI="" ORDERINDEX="187" ISO3166_A2="ST" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="558" CREATED="2009-01-28 17:07:04.0" UUID="e0c3ad69-a078-424f-a7d4-81025d190c91" URI="" ORDERINDEX="186" ISO3166_A2="SM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="559" CREATED="2009-01-28 17:07:04.0" UUID="7ad3f6bd-5e8a-467b-a481-1a523066b0e7" URI="" ORDERINDEX="185" ISO3166_A2="WS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="560" CREATED="2009-01-28 17:07:04.0" UUID="dfe67a34-6a3a-4a56-8f90-3c007360f105" URI="" ORDERINDEX="184" ISO3166_A2="VC" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="561" CREATED="2009-01-28 17:07:04.0" UUID="34f97908-18c5-4f67-b411-1b905161a330" URI="" ORDERINDEX="183" ISO3166_A2="PM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="562" CREATED="2009-01-28 17:07:04.0" UUID="a3a55f1c-ea50-43df-b141-e8543eb20ebb" URI="" ORDERINDEX="182" ISO3166_A2="LC" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="563" CREATED="2009-01-28 17:07:04.0" UUID="777d19e2-d5e8-48e2-9a0f-cd95097e4e75" URI="" ORDERINDEX="181" ISO3166_A2="KN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="564" CREATED="2009-01-28 17:07:04.0" UUID="626ec513-fddb-41f3-ab36-2ae2190a1bc1" URI="" ORDERINDEX="180" ISO3166_A2="SH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="565" CREATED="2009-01-28 17:07:04.0" UUID="27c2cc85-7c54-4356-b713-836c15f2da4e" URI="" ORDERINDEX="179" ISO3166_A2="RW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="566" CREATED="2009-01-28 17:07:04.0" UUID="504292b5-053a-4c6a-a690-db031ac02fc0" URI="" ORDERINDEX="178" ISO3166_A2="RU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="567" CREATED="2009-01-28 17:07:04.0" UUID="7d7c8221-4123-4ba2-88ef-25e7f10aafbc" URI="" ORDERINDEX="177" ISO3166_A2="RO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="568" CREATED="2009-01-28 17:07:04.0" UUID="d85d98f6-3f09-44b0-a39b-0e2b6bf4746c" URI="" ORDERINDEX="176" ISO3166_A2="RE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="569" CREATED="2009-01-28 17:07:04.0" UUID="710d68a7-4a02-4d70-bbc8-22b904893429" URI="" ORDERINDEX="175" ISO3166_A2="QA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="570" CREATED="2009-01-28 17:07:04.0" UUID="6471bdcc-b4cc-4a07-b946-dd15be7eec41" URI="" ORDERINDEX="174" ISO3166_A2="PR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="571" CREATED="2009-01-28 17:07:04.0" UUID="f47bd6f5-c82b-4932-81ce-40345748536b" URI="" ORDERINDEX="173" ISO3166_A2="PT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="572" CREATED="2009-01-28 17:07:04.0" UUID="579f8a7a-7fa5-4783-a8ec-cdc527781411" URI="" ORDERINDEX="172" ISO3166_A2="PL" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="573" CREATED="2009-01-28 17:07:04.0" UUID="c3abd7ab-c953-4c0c-8bc1-e32f4a49775a" URI="" ORDERINDEX="171" ISO3166_A2="PN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="574" CREATED="2009-01-28 17:07:04.0" UUID="8547697c-d80f-4531-b092-4c9fde373d7b" URI="" ORDERINDEX="170" ISO3166_A2="PH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="575" CREATED="2009-01-28 17:07:04.0" UUID="e4d92c3e-0f91-41d8-b10e-58c78b4c55ea" URI="" ORDERINDEX="169" ISO3166_A2="PE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="576" CREATED="2009-01-28 17:07:04.0" UUID="e99f321f-664a-4a4b-90a9-1bdc98ea35f6" URI="" ORDERINDEX="168" ISO3166_A2="PY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="577" CREATED="2009-01-28 17:07:04.0" UUID="3bc710b1-8b46-48e3-bdcd-54f64ca018cc" URI="" ORDERINDEX="167" ISO3166_A2="PG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="578" CREATED="2009-01-28 17:07:04.0" UUID="fd2ac965-bdb4-484a-9e4a-250f26aad030" URI="" ORDERINDEX="166" ISO3166_A2="PA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="579" CREATED="2009-01-28 17:07:04.0" UUID="41f45c19-6910-470e-86fb-a3f426b8ca9c" URI="" ORDERINDEX="165" ISO3166_A2="PS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="580" CREATED="2009-01-28 17:07:04.0" UUID="02f4bc12-bc36-447b-b08c-e74e8fe25678" URI="" ORDERINDEX="164" ISO3166_A2="PW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="581" CREATED="2009-01-28 17:07:04.0" UUID="d42712ec-45aa-4811-9029-d38e5a607345" URI="" ORDERINDEX="163" ISO3166_A2="PK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="582" CREATED="2009-01-28 17:07:04.0" UUID="36f43aca-3302-4abd-a7e3-f65ff050a087" URI="" ORDERINDEX="162" ISO3166_A2="OM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="583" CREATED="2009-01-28 17:07:04.0" UUID="e136efdf-82bb-4528-be5c-881acd8315cb" URI="" ORDERINDEX="161" ISO3166_A2="NO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="584" CREATED="2009-01-28 17:07:04.0" UUID="43471298-1133-473e-b9b3-9152c5955177" URI="" ORDERINDEX="160" ISO3166_A2="MP" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="585" CREATED="2009-01-28 17:07:04.0" UUID="3d5afd71-90d7-459f-ade1-c8b65cbc7fe1" URI="" ORDERINDEX="159" ISO3166_A2="NF" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="586" CREATED="2009-01-28 17:07:04.0" UUID="e804fe1d-8246-481b-a293-d3c0b71d6abd" URI="" ORDERINDEX="158" ISO3166_A2="NU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="587" CREATED="2009-01-28 17:07:04.0" UUID="6dae052c-7477-485a-9d2c-63760991f9d8" URI="" ORDERINDEX="157" ISO3166_A2="NG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="588" CREATED="2009-01-28 17:07:04.0" UUID="1804792f-cccd-4f14-9e63-5c241bfd8429" URI="" ORDERINDEX="156" ISO3166_A2="NE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="589" CREATED="2009-01-28 17:07:04.0" UUID="290da724-674d-4c99-8630-cb237162ae0a" URI="" ORDERINDEX="155" ISO3166_A2="NI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="590" CREATED="2009-01-28 17:07:04.0" UUID="322c12c9-7b5a-4343-9861-23c93bbe62b4" URI="" ORDERINDEX="154" ISO3166_A2="NZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="591" CREATED="2009-01-28 17:07:04.0" UUID="587f11ed-27de-4751-9d04-b04f13f3f67c" URI="" ORDERINDEX="153" ISO3166_A2="NC" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="592" CREATED="2009-01-28 17:07:04.0" UUID="5880f989-f10d-4a9c-aae8-4e6c7b212dd8" URI="" ORDERINDEX="152" ISO3166_A2="NL" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="593" CREATED="2009-01-28 17:07:04.0" UUID="802d28f4-442f-47da-8e16-eb08d4de21b4" URI="" ORDERINDEX="151" ISO3166_A2="AN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="594" CREATED="2009-01-28 17:07:04.0" UUID="fa46cd94-68f9-4d0d-98a2-27dc6589658f" URI="" ORDERINDEX="150" ISO3166_A2="NP" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="595" CREATED="2009-01-28 17:07:04.0" UUID="35d8c1ce-a2e9-43d6-9afe-582278a53d34" URI="" ORDERINDEX="149" ISO3166_A2="NR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="596" CREATED="2009-01-28 17:07:04.0" UUID="2c361180-c71c-4de0-8a98-0ff5a71bccaa" URI="" ORDERINDEX="148" ISO3166_A2="NA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="597" CREATED="2009-01-28 17:07:04.0" UUID="fd07e660-b3d6-46e7-bf7d-ec984e573c60" URI="" ORDERINDEX="147" ISO3166_A2="MM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="598" CREATED="2009-01-28 17:07:04.0" UUID="9f2b714e-6159-401b-9108-5d0b9413f6c8" URI="" ORDERINDEX="146" ISO3166_A2="MZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="599" CREATED="2009-01-28 17:07:04.0" UUID="d9c048d5-3220-439d-8af4-2a8ec3036e5b" URI="" ORDERINDEX="145" ISO3166_A2="MA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="600" CREATED="2009-01-28 17:07:04.0" UUID="cd64d76f-6f2b-4e44-8d31-a2765100257b" URI="" ORDERINDEX="144" ISO3166_A2="MS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="601" CREATED="2009-01-28 17:07:04.0" UUID="8b7ebb83-9998-4efd-b97c-f1b7d3a7151f" URI="" ORDERINDEX="143" ISO3166_A2="MN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="602" CREATED="2009-01-28 17:07:04.0" UUID="4ef4c6cb-e02c-41a3-8d5f-74e8ae09ca71" URI="" ORDERINDEX="142" ISO3166_A2="MC" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="603" CREATED="2009-01-28 17:07:04.0" UUID="500f43b9-47c4-4c2a-af58-80adbc40c5f3" URI="" ORDERINDEX="141" ISO3166_A2="MD" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="604" CREATED="2009-01-28 17:07:04.0" UUID="70a91b6f-f196-4051-afdb-4e9aeaca490d" URI="" ORDERINDEX="140" ISO3166_A2="FM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="605" CREATED="2009-01-28 17:07:04.0" UUID="4ba4809b-3fa8-496d-a74d-80843a4740c8" URI="" ORDERINDEX="139" ISO3166_A2="MX" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="606" CREATED="2009-01-28 17:07:04.0" UUID="48116e69-19a9-4169-9952-4ca46c586fa2" URI="" ORDERINDEX="138" ISO3166_A2="YT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="607" CREATED="2009-01-28 17:07:04.0" UUID="719daa07-1dce-4473-8c40-b0efd644028c" URI="" ORDERINDEX="137" ISO3166_A2="MU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="608" CREATED="2009-01-28 17:07:04.0" UUID="dfd0aaf0-4a73-4d41-a6d7-9cdfd01f4c40" URI="" ORDERINDEX="136" ISO3166_A2="MR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="609" CREATED="2009-01-28 17:07:04.0" UUID="93ec114a-0486-4325-bef8-d1b5dea89419" URI="" ORDERINDEX="135" ISO3166_A2="MQ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="610" CREATED="2009-01-28 17:07:04.0" UUID="2c507bb4-de73-4e3f-98ce-26bd2b0c016a" URI="" ORDERINDEX="134" ISO3166_A2="MH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="611" CREATED="2009-01-28 17:07:04.0" UUID="0ee9727a-36cb-40cb-9e65-cd4646c09d63" URI="" ORDERINDEX="133" ISO3166_A2="MT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="612" CREATED="2009-01-28 17:07:04.0" UUID="2e201266-8535-4437-8870-a1d63745ec3d" URI="" ORDERINDEX="132" ISO3166_A2="ML" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="613" CREATED="2009-01-28 17:07:04.0" UUID="5b932d64-3ca6-4691-881f-8b48bd2f3f15" URI="" ORDERINDEX="131" ISO3166_A2="MV" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="614" CREATED="2009-01-28 17:07:04.0" UUID="5650de95-a90c-45c1-92bf-85d9b91911dd" URI="" ORDERINDEX="130" ISO3166_A2="MY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="615" CREATED="2009-01-28 17:07:04.0" UUID="61b41230-6365-433f-9454-5fea029f0e02" URI="" ORDERINDEX="129" ISO3166_A2="MW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="616" CREATED="2009-01-28 17:07:04.0" UUID="116be5e1-861e-4283-8689-f527a923b9d3" URI="" ORDERINDEX="128" ISO3166_A2="MG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="617" CREATED="2009-01-28 17:07:04.0" UUID="1cf135bb-cac7-4ba9-82dc-319ee41984c5" URI="" ORDERINDEX="127" ISO3166_A2="MK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="618" CREATED="2009-01-28 17:07:04.0" UUID="927f5ae3-8d26-4794-9e5d-95cf9e0dfd03" URI="" ORDERINDEX="126" ISO3166_A2="MO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="619" CREATED="2009-01-28 17:07:04.0" UUID="5c481573-3d28-4c2c-87e1-acee4ccc64f1" URI="" ORDERINDEX="125" ISO3166_A2="LU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="620" CREATED="2009-01-28 17:07:04.0" UUID="3a2a0f69-92b1-45ab-baa8-47cf48e7272b" URI="" ORDERINDEX="124" ISO3166_A2="LT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="621" CREATED="2009-01-28 17:07:04.0" UUID="1bb6cf13-1286-40c8-bff8-1a18ef65e213" URI="" ORDERINDEX="123" ISO3166_A2="LI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="622" CREATED="2009-01-28 17:07:04.0" UUID="b9115908-2937-45e3-8fb3-009136b013af" URI="" ORDERINDEX="122" ISO3166_A2="LY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="623" CREATED="2009-01-28 17:07:04.0" UUID="f40126ab-4cbe-409e-8f61-8911280e0857" URI="" ORDERINDEX="121" ISO3166_A2="LR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="624" CREATED="2009-01-28 17:07:04.0" UUID="fbbbc46c-ed8f-45f5-87bc-062a7ee7ffdf" URI="" ORDERINDEX="120" ISO3166_A2="LS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="625" CREATED="2009-01-28 17:07:04.0" UUID="425b9cd2-0056-484a-9f77-5449215c65ba" URI="" ORDERINDEX="119" ISO3166_A2="LB" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="626" CREATED="2009-01-28 17:07:04.0" UUID="c24a316c-cec1-47c2-a777-296ce67ce11a" URI="" ORDERINDEX="118" ISO3166_A2="LV" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="627" CREATED="2009-01-28 17:07:04.0" UUID="83b736b4-5049-4301-b370-ba19e7aa0403" URI="" ORDERINDEX="117" ISO3166_A2="LA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="628" CREATED="2009-01-28 17:07:04.0" UUID="fc3cb838-98f0-46b4-a5fe-5efafc121e95" URI="" ORDERINDEX="116" ISO3166_A2="KG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="629" CREATED="2009-01-28 17:07:04.0" UUID="00451db7-4f5a-4e5d-a6fe-955a8af306a0" URI="" ORDERINDEX="115" ISO3166_A2="KW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="630" CREATED="2009-01-28 17:07:04.0" UUID="f81e0bbb-8984-431e-9962-de590a989fd3" URI="" ORDERINDEX="114" ISO3166_A2="KR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="631" CREATED="2009-01-28 17:07:04.0" UUID="0f2068a7-e284-417d-87ec-691c1e64c13c" URI="" ORDERINDEX="113" ISO3166_A2="KP" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="632" CREATED="2009-01-28 17:07:04.0" UUID="d46f42ec-a520-49d8-ac87-cc8bccc91516" URI="" ORDERINDEX="112" ISO3166_A2="KI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="633" CREATED="2009-01-28 17:07:04.0" UUID="9410b793-43fa-4205-bd24-5f92d392667f" URI="" ORDERINDEX="111" ISO3166_A2="KE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="634" CREATED="2009-01-28 17:07:04.0" UUID="3047567d-997d-491a-b0bc-d4b287f76fab" URI="" ORDERINDEX="110" ISO3166_A2="KZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="635" CREATED="2009-01-28 17:07:04.0" UUID="533b9709-1f97-43e6-8e12-68e116675c64" URI="" ORDERINDEX="109" ISO3166_A2="JO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="636" CREATED="2009-01-28 17:07:04.0" UUID="a8be059a-6f1a-45aa-8019-f6bc3b81c691" URI="" ORDERINDEX="108" ISO3166_A2="JP" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="637" CREATED="2009-01-28 17:07:04.0" UUID="528bede6-26db-47e6-b6cb-32f77ab5fef7" URI="" ORDERINDEX="107" ISO3166_A2="JM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="638" CREATED="2009-01-28 17:07:04.0" UUID="9404a588-503b-4033-acf5-ee4a47337ed0" URI="" ORDERINDEX="106" ISO3166_A2="IT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="639" CREATED="2009-01-28 17:07:04.0" UUID="4c61dc3f-978d-4df9-9bd9-65089ee01dae" URI="" ORDERINDEX="105" ISO3166_A2="IL" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="640" CREATED="2009-01-28 17:07:04.0" UUID="376f61f8-6234-4e61-bc5e-d0d76393cfa0" URI="" ORDERINDEX="104" ISO3166_A2="IE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="641" CREATED="2009-01-28 17:07:04.0" UUID="daf3de07-b1b8-47fa-8207-7e237ea30b7f" URI="" ORDERINDEX="103" ISO3166_A2="IQ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="642" CREATED="2009-01-28 17:07:04.0" UUID="14f148e0-a9cf-428d-a244-a9917aae974d" URI="" ORDERINDEX="102" ISO3166_A2="IR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="643" CREATED="2009-01-28 17:07:04.0" UUID="96eb663a-61b1-4a44-9017-0c4b1ea024d6" URI="" ORDERINDEX="101" ISO3166_A2="ID" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="644" CREATED="2009-01-28 17:07:04.0" UUID="a0b872f9-fc04-440d-ace3-edce8ea75e0b" URI="" ORDERINDEX="100" ISO3166_A2="IN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="645" CREATED="2009-01-28 17:07:04.0" UUID="c7bf91f8-024c-4c04-9c0b-856a27b2d0ca" URI="" ORDERINDEX="99" ISO3166_A2="IS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="646" CREATED="2009-01-28 17:07:04.0" UUID="4d8b56d0-ab74-437f-98e0-3b88ebaa8c89" URI="" ORDERINDEX="98" ISO3166_A2="HU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="647" CREATED="2009-01-28 17:07:04.0" UUID="a3acb45e-39ec-476b-bff2-7ff7e0383f7e" URI="" ORDERINDEX="97" ISO3166_A2="HR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="648" CREATED="2009-01-28 17:07:04.0" UUID="5aa1c98c-9efd-443f-9c10-708f175d5cea" URI="" ORDERINDEX="96" ISO3166_A2="HK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="649" CREATED="2009-01-28 17:07:04.0" UUID="c6684b89-3ea6-4922-9148-d74ff3ee33fd" URI="" ORDERINDEX="95" ISO3166_A2="HN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="650" CREATED="2009-01-28 17:07:04.0" UUID="afebd310-0c8d-4601-b025-a06a1d195035" URI="" ORDERINDEX="94" ISO3166_A2="VA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="651" CREATED="2009-01-28 17:07:04.0" UUID="646a16d4-4a1f-47a0-a475-a19c605e04e0" URI="" ORDERINDEX="93" ISO3166_A2="HM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="652" CREATED="2009-01-28 17:07:04.0" UUID="f1071b42-0247-4c4d-92a5-8bdf18099c50" URI="" ORDERINDEX="92" ISO3166_A2="HT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="653" CREATED="2009-01-28 17:07:04.0" UUID="9cbe3428-0cfe-420e-a88e-eac196a16a37" URI="" ORDERINDEX="91" ISO3166_A2="GY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="654" CREATED="2009-01-28 17:07:04.0" UUID="2dbf1dc1-7428-4284-9090-8785a30f4e71" URI="" ORDERINDEX="90" ISO3166_A2="GW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="655" CREATED="2009-01-28 17:07:04.0" UUID="1b3cf756-b0c2-4e14-88af-d260b937d01f" URI="" ORDERINDEX="89" ISO3166_A2="GN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="656" CREATED="2009-01-28 17:07:04.0" UUID="54040dec-6f42-48cc-93d8-8b283b23e530" URI="" ORDERINDEX="88" ISO3166_A2="GT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="657" CREATED="2009-01-28 17:07:04.0" UUID="264c71d7-91ef-4a5e-9ae6-49aac2a6ba3a" URI="" ORDERINDEX="87" ISO3166_A2="GU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="658" CREATED="2009-01-28 17:07:04.0" UUID="2559330d-f79b-4273-b6db-e47abce1de6c" URI="" ORDERINDEX="86" ISO3166_A2="GP" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="659" CREATED="2009-01-28 17:07:04.0" UUID="dda637e3-7742-4faf-bc05-e5d2c2d86a52" URI="" ORDERINDEX="85" ISO3166_A2="GD" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="660" CREATED="2009-01-28 17:07:04.0" UUID="34bbe398-e0da-40bd-b16b-34a2e9fd3cc2" URI="" ORDERINDEX="84" ISO3166_A2="GL" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="661" CREATED="2009-01-28 17:07:04.0" UUID="5b7c78d1-f068-4c4d-b2c9-9ac075b7169a" URI="" ORDERINDEX="83" ISO3166_A2="GR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="662" CREATED="2009-01-28 17:07:04.0" UUID="46764ae0-2d8d-461e-89d0-a1953edef02f" URI="" ORDERINDEX="82" ISO3166_A2="GI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="663" CREATED="2009-01-28 17:07:04.0" UUID="d4cf6c57-98ee-43b8-8d92-b510371dd151" URI="" ORDERINDEX="81" ISO3166_A2="GH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="664" CREATED="2009-01-28 17:07:04.0" UUID="cbe7ce69-2952-4309-85dd-0d7d4a4830a1" URI="" ORDERINDEX="80" ISO3166_A2="DE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="665" CREATED="2009-01-28 17:07:04.0" UUID="af3f8bd9-1f5e-42cf-a0cc-f9199ab1bb89" URI="" ORDERINDEX="79" ISO3166_A2="GE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="666" CREATED="2009-01-28 17:07:04.0" UUID="3dcc7fea-7785-4254-9947-f724e27a76fc" URI="" ORDERINDEX="78" ISO3166_A2="GM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="667" CREATED="2009-01-28 17:07:04.0" UUID="d285a9f8-4349-4428-a848-c9aa45c4c8ab" URI="" ORDERINDEX="77" ISO3166_A2="GA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="668" CREATED="2009-01-28 17:07:04.0" UUID="590663d7-1b7e-4088-9407-2a589eb73fd4" URI="" ORDERINDEX="76" ISO3166_A2="TF" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="669" CREATED="2009-01-28 17:07:04.0" UUID="7dadc5d4-d4e8-4ad6-bfa4-e8498a706778" URI="" ORDERINDEX="75" ISO3166_A2="PF" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="670" CREATED="2009-01-28 17:07:04.0" UUID="38ba5ec2-913b-4894-a5bf-d55f3bd9d7a0" URI="" ORDERINDEX="74" ISO3166_A2="GF" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="671" CREATED="2009-01-28 17:07:04.0" UUID="4c49d9d3-6bc3-481a-93c6-c8156cba25fe" URI="" ORDERINDEX="73" ISO3166_A2="FR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="672" CREATED="2009-01-28 17:07:04.0" UUID="47bbb4b3-6f18-46f9-9eb6-6ec92c41fe84" URI="" ORDERINDEX="72" ISO3166_A2="FI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="673" CREATED="2009-01-28 17:07:04.0" UUID="8a83a1e5-b648-4cea-86cd-7affaea817a7" URI="" ORDERINDEX="71" ISO3166_A2="FJ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="674" CREATED="2009-01-28 17:07:04.0" UUID="8c667c52-70b6-447a-b4f2-dfa2d759d5f6" URI="" ORDERINDEX="70" ISO3166_A2="FK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="675" CREATED="2009-01-28 17:07:04.0" UUID="0b2933ea-cee6-4611-b52b-09d6fcdbcf9d" URI="" ORDERINDEX="69" ISO3166_A2="FO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="676" CREATED="2009-01-28 17:07:04.0" UUID="8866fa09-8ee2-4957-ad86-4e622085ef40" URI="" ORDERINDEX="68" ISO3166_A2="ET" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="677" CREATED="2009-01-28 17:07:04.0" UUID="b442614f-5bfa-4583-b87b-7c7c856015f1" URI="" ORDERINDEX="67" ISO3166_A2="EE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="678" CREATED="2009-01-28 17:07:04.0" UUID="8394a73d-a0c6-481c-8e86-e05705891fac" URI="" ORDERINDEX="66" ISO3166_A2="ER" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="679" CREATED="2009-01-28 17:07:04.0" UUID="7d0cee2b-086a-465e-afc3-0216bff7fd19" URI="" ORDERINDEX="65" ISO3166_A2="GQ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="680" CREATED="2009-01-28 17:07:04.0" UUID="2706e84c-a57d-40ab-aee4-dce25fe89211" URI="" ORDERINDEX="64" ISO3166_A2="SV" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="681" CREATED="2009-01-28 17:07:04.0" UUID="3c4a2a5a-d3d7-4c82-a28f-2feaa7050c04" URI="" ORDERINDEX="63" ISO3166_A2="EG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="682" CREATED="2009-01-28 17:07:04.0" UUID="e396160a-3554-4da8-ad40-cd7137c021d7" URI="" ORDERINDEX="62" ISO3166_A2="EC" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="683" CREATED="2009-01-28 17:07:04.0" UUID="1c2084e4-38cc-41d1-9d33-0360fed7c55d" URI="" ORDERINDEX="61" ISO3166_A2="DO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="684" CREATED="2009-01-28 17:07:04.0" UUID="c8ef3805-69dd-4e84-ab69-c813252910dd" URI="" ORDERINDEX="60" ISO3166_A2="DM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="685" CREATED="2009-01-28 17:07:04.0" UUID="8c80ca2b-e6e6-46bc-9f35-978a1a078a55" URI="" ORDERINDEX="59" ISO3166_A2="DJ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="686" CREATED="2009-01-28 17:07:04.0" UUID="dbf70b64-a47e-4339-ae07-828f9ff2b7d8" URI="" ORDERINDEX="58" ISO3166_A2="DK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="687" CREATED="2009-01-28 17:07:04.0" UUID="56ee8c08-506d-4c27-9c31-db5344356ea3" URI="" ORDERINDEX="57" ISO3166_A2="CZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="688" CREATED="2009-01-28 17:07:04.0" UUID="4b13d6b8-7eca-4d42-8172-f2018051ca19" URI="" ORDERINDEX="56" ISO3166_A2="CY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="689" CREATED="2009-01-28 17:07:04.0" UUID="229f0575-9035-4738-8741-f131cad59107" URI="" ORDERINDEX="55" ISO3166_A2="CU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="690" CREATED="2009-01-28 17:07:04.0" UUID="5a6673d7-1580-4470-974c-b36c4584247f" URI="" ORDERINDEX="54" ISO3166_A2="CI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="691" CREATED="2009-01-28 17:07:04.0" UUID="aca508c7-2d49-4760-83cb-93b6ccce6751" URI="" ORDERINDEX="53" ISO3166_A2="CR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="692" CREATED="2009-01-28 17:07:04.0" UUID="72f5df8d-ff1c-44af-9444-e368d770f36f" URI="" ORDERINDEX="52" ISO3166_A2="CK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="693" CREATED="2009-01-28 17:07:04.0" UUID="5c0a6d1d-f5c1-4c92-b3cd-9a1c0cd0d9dc" URI="" ORDERINDEX="51" ISO3166_A2="CG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="694" CREATED="2009-01-28 17:07:04.0" UUID="5a70a5b8-7264-48f1-b552-6fde52ae43f7" URI="" ORDERINDEX="50" ISO3166_A2="CD" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="695" CREATED="2009-01-28 17:07:04.0" UUID="3b52601e-e85f-415c-bc36-acc45717107f" URI="" ORDERINDEX="49" ISO3166_A2="KM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="696" CREATED="2009-01-28 17:07:04.0" UUID="cd334393-328c-4fb7-9600-bdca44c224d6" URI="" ORDERINDEX="48" ISO3166_A2="CO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="697" CREATED="2009-01-28 17:07:04.0" UUID="0994e57b-a0fa-4597-9098-8815235e9053" URI="" ORDERINDEX="47" ISO3166_A2="CC" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="698" CREATED="2009-01-28 17:07:04.0" UUID="e785a72e-2b51-42b9-bea0-888924906b3e" URI="" ORDERINDEX="46" ISO3166_A2="CX" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="699" CREATED="2009-01-28 17:07:04.0" UUID="e0ed33bb-4afe-4994-81f3-b5f91655ff62" URI="" ORDERINDEX="45" ISO3166_A2="CN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="700" CREATED="2009-01-28 17:07:04.0" UUID="9c41644f-4946-4586-b2a4-c8ec33dbe68b" URI="" ORDERINDEX="44" ISO3166_A2="CL" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="701" CREATED="2009-01-28 17:07:04.0" UUID="d1ea5922-6bd2-4c63-b49a-259207c584a4" URI="" ORDERINDEX="43" ISO3166_A2="TD" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="702" CREATED="2009-01-28 17:07:04.0" UUID="40d7ffa6-11cc-417c-adf7-f4acc03cca20" URI="" ORDERINDEX="42" ISO3166_A2="CF" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="703" CREATED="2009-01-28 17:07:04.0" UUID="23264b59-fcc9-47a0-9f69-30a98757c121" URI="" ORDERINDEX="41" ISO3166_A2="KY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="704" CREATED="2009-01-28 17:07:04.0" UUID="083ff0fc-9eea-4f1b-80c0-f203bd2890b8" URI="" ORDERINDEX="40" ISO3166_A2="CV" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="705" CREATED="2009-01-28 17:07:04.0" UUID="5dc3dc6f-3816-44b3-b661-a4cf1528bae7" URI="" ORDERINDEX="39" ISO3166_A2="CA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="706" CREATED="2009-01-28 17:07:04.0" UUID="30ba95a0-a951-46a0-aa67-e539475d4386" URI="" ORDERINDEX="38" ISO3166_A2="CM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="707" CREATED="2009-01-28 17:07:04.0" UUID="485a4988-a3dd-43b8-9c18-e0351618056a" URI="" ORDERINDEX="37" ISO3166_A2="KH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="708" CREATED="2009-01-28 17:07:04.0" UUID="0d584b61-15b9-41fa-8cec-242f1f094417" URI="" ORDERINDEX="36" ISO3166_A2="BI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="709" CREATED="2009-01-28 17:07:04.0" UUID="c4b22384-e26f-4a44-b641-64208f72ea25" URI="" ORDERINDEX="35" ISO3166_A2="BF" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="710" CREATED="2009-01-28 17:07:04.0" UUID="51ddedf0-4646-46ba-9840-ab5513eec455" URI="" ORDERINDEX="34" ISO3166_A2="BG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="711" CREATED="2009-01-28 17:07:04.0" UUID="7e6247b5-4145-454b-ad51-b60809a8a939" URI="" ORDERINDEX="33" ISO3166_A2="BN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="712" CREATED="2009-01-28 17:07:04.0" UUID="5b71a5a2-0551-4563-b0aa-8aa259b90979" URI="" ORDERINDEX="32" ISO3166_A2="VG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="713" CREATED="2009-01-28 17:07:04.0" UUID="996f912c-971f-40cb-88a4-1575226415b9" URI="" ORDERINDEX="31" ISO3166_A2="IO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="714" CREATED="2009-01-28 17:07:04.0" UUID="dccbe7f8-d5e3-48e5-bcbb-96886eb7108a" URI="" ORDERINDEX="30" ISO3166_A2="BR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="715" CREATED="2009-01-28 17:07:04.0" UUID="65fa17a7-efa7-4be5-9d51-8b261c5217b7" URI="" ORDERINDEX="29" ISO3166_A2="BV" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="716" CREATED="2009-01-28 17:07:04.0" UUID="e00464af-d38e-4cd5-b5fe-50b27eace4ee" URI="" ORDERINDEX="28" ISO3166_A2="BW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="717" CREATED="2009-01-28 17:07:04.0" UUID="368be113-c0f2-444c-939c-65b544d19702" URI="" ORDERINDEX="27" ISO3166_A2="BA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="718" CREATED="2009-01-28 17:07:04.0" UUID="8a18a774-0072-4678-8746-43de9ee066c4" URI="" ORDERINDEX="26" ISO3166_A2="BO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="719" CREATED="2009-01-28 17:07:04.0" UUID="35d9b61f-15d6-453d-8b01-8c786da241b3" URI="" ORDERINDEX="25" ISO3166_A2="BT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="720" CREATED="2009-01-28 17:07:04.0" UUID="88f4017e-27dc-4828-a2d7-0cf0637f1a7b" URI="" ORDERINDEX="24" ISO3166_A2="BM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="721" CREATED="2009-01-28 17:07:04.0" UUID="e6875306-892c-43d0-9aaa-9ac26e5d6551" URI="" ORDERINDEX="23" ISO3166_A2="BJ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="722" CREATED="2009-01-28 17:07:04.0" UUID="6c3eeed7-00eb-4aa3-8e3c-2d8bc25f3338" URI="" ORDERINDEX="22" ISO3166_A2="BZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="723" CREATED="2009-01-28 17:07:04.0" UUID="fa27fe27-4966-4381-a341-3535f2b4309e" URI="" ORDERINDEX="21" ISO3166_A2="BE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="724" CREATED="2009-01-28 17:07:04.0" UUID="66872923-5ae7-48be-b669-d9a2b7e4663c" URI="" ORDERINDEX="20" ISO3166_A2="BY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="725" CREATED="2009-01-28 17:07:04.0" UUID="c870ad88-4393-4e76-a37d-39656c5d7ff2" URI="" ORDERINDEX="19" ISO3166_A2="BB" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="726" CREATED="2009-01-28 17:07:04.0" UUID="89752d76-d03a-46e1-9763-cc089f8a8e53" URI="" ORDERINDEX="18" ISO3166_A2="BD" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="727" CREATED="2009-01-28 17:07:04.0" UUID="7f7e8c06-a804-4efa-b02f-7679f929a760" URI="" ORDERINDEX="17" ISO3166_A2="BH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="728" CREATED="2009-01-28 17:07:04.0" UUID="8b6851bf-b82e-4114-a99f-9b40ce0f3b2c" URI="" ORDERINDEX="16" ISO3166_A2="BS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="729" CREATED="2009-01-28 17:07:04.0" UUID="5189a180-f4ef-4a8a-9e90-36977c351960" URI="" ORDERINDEX="15" ISO3166_A2="AZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="730" CREATED="2009-01-28 17:07:04.0" UUID="dfeb9102-7101-41cb-9449-bf5eae83cb5b" URI="" ORDERINDEX="14" ISO3166_A2="AT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="731" CREATED="2009-01-28 17:07:04.0" UUID="c22658e2-b1a9-4f4c-9ccd-affe0255efc8" URI="" ORDERINDEX="13" ISO3166_A2="AU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="732" CREATED="2009-01-28 17:07:04.0" UUID="f5a9fc99-52d5-4a54-9859-edede22cb39d" URI="" ORDERINDEX="12" ISO3166_A2="AW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="733" CREATED="2009-01-28 17:07:04.0" UUID="7c685229-ce21-4dfd-a2c7-0932003f14ef" URI="" ORDERINDEX="11" ISO3166_A2="AM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="734" CREATED="2009-01-28 17:07:04.0" UUID="ee0a4820-914d-424c-8133-57efb3028741" URI="" ORDERINDEX="10" ISO3166_A2="AR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="735" CREATED="2009-01-28 17:07:04.0" UUID="fe425b94-f0e2-4e20-9e08-f28d53016347" URI="" ORDERINDEX="9" ISO3166_A2="AG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="736" CREATED="2009-01-28 17:07:04.0" UUID="36aea55c-5d4c-4015-bb70-f15d9280c805" URI="" ORDERINDEX="8" ISO3166_A2="AQ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="737" CREATED="2009-01-28 17:07:04.0" UUID="4a3b7f0d-0ff5-4691-a232-a2dc43ad4c56" URI="" ORDERINDEX="7" ISO3166_A2="AI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="738" CREATED="2009-01-28 17:07:04.0" UUID="c48ca5e4-154a-46d6-af29-f722486bedba" URI="" ORDERINDEX="6" ISO3166_A2="AO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="739" CREATED="2009-01-28 17:07:04.0" UUID="7efd738f-33a1-4969-9d49-552571ffe935" URI="" ORDERINDEX="5" ISO3166_A2="AD" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="740" CREATED="2009-01-28 17:07:04.0" UUID="4a071803-88aa-4367-9707-bb1f24ad4386" URI="" ORDERINDEX="4" ISO3166_A2="AS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="741" CREATED="2009-01-28 17:07:04.0" UUID="a14b38ac-e963-4c1a-85c2-de1f17f8c72a" URI="" ORDERINDEX="3" ISO3166_A2="DZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="742" CREATED="2009-01-28 17:07:04.0" UUID="238a6a93-8857-4fd6-af9e-6437c90817ac" URI="" ORDERINDEX="2" ISO3166_A2="AL" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="743" CREATED="2009-01-28 17:07:04.0" UUID="974ce01a-5bce-4be8-b728-a46869354960" URI="" ORDERINDEX="1" ISO3166_A2="AF" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="744" CREATED="2009-01-28 17:07:04.0" UUID="5c4d6755-2cf6-44ca-9220-cccf8881700b" URI="" ORDERINDEX="62" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="745" CREATED="2009-01-28 17:07:04.0" UUID="5e98415b-dc6e-440b-95d6-ea33dbb39ad0" URI="" ORDERINDEX="61" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="746" CREATED="2009-01-28 17:07:04.0" UUID="d763e7d3-e7de-4bb1-9d75-225ca6948659" URI="" ORDERINDEX="60" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="747" CREATED="2009-01-28 17:07:04.0" UUID="6b4063bc-f934-4796-9bf3-0ef3aea5c1cb" URI="" ORDERINDEX="59" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="748" CREATED="2009-01-28 17:07:04.0" UUID="08dcb4ff-ac58-48a3-93af-efb3d836ac84" URI="" ORDERINDEX="58" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="749" CREATED="2009-01-28 17:07:04.0" UUID="49bdf74a-2170-40ed-8be2-887a0db517bf" URI="" ORDERINDEX="57" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="750" CREATED="2009-01-28 17:07:04.0" UUID="ead9a1f5-dfd4-4de2-9121-70a47accb10b" URI="" ORDERINDEX="56" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="751" CREATED="2009-01-28 17:07:04.0" UUID="eb75c27d-e154-4570-9d96-227b2df60474" URI="" ORDERINDEX="55" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="752" CREATED="2009-01-28 17:07:04.0" UUID="1c8ac389-4349-4ae0-87be-7239f6635068" URI="" ORDERINDEX="54" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="753" CREATED="2009-01-28 17:07:04.0" UUID="47cfc5b0-0fb7-4ceb-b61d-e1dd8de8b569" URI="" ORDERINDEX="53" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="754" CREATED="2009-01-28 17:07:04.0" UUID="bed20aee-2f5a-4635-9c02-eff06246d067" URI="" ORDERINDEX="52" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="755" CREATED="2009-01-28 17:07:04.0" UUID="0461281e-458a-47b9-8d41-19a3d39356d5" URI="" ORDERINDEX="51" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="756" CREATED="2009-01-28 17:07:04.0" UUID="2cc740c9-cebb-43c8-9b06-1bef79e6a56a" URI="" ORDERINDEX="50" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="757" CREATED="2009-01-28 17:07:04.0" UUID="bff22f84-553a-4429-a4e7-c4b3796c3a18" URI="" ORDERINDEX="49" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="758" CREATED="2009-01-28 17:07:04.0" UUID="9a83862a-7aee-480c-a98d-4bceaf8712ca" URI="" ORDERINDEX="48" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="759" CREATED="2009-01-28 17:07:04.0" UUID="2f4f4303-a099-47e3-9048-d749d735423b" URI="" ORDERINDEX="47" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="760" CREATED="2009-01-28 17:07:04.0" UUID="a3a364cb-1a92-43fc-a717-3c44980a0991" URI="" ORDERINDEX="46" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="761" CREATED="2009-01-28 17:07:04.0" UUID="d5feb6a5-af5c-45ef-9878-bb4f36aaf490" URI="" ORDERINDEX="45" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="762" CREATED="2009-01-28 17:07:04.0" UUID="f28ebc9e-bd50-4194-9af1-42f5cb971a2c" URI="" ORDERINDEX="44" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="763" CREATED="2009-01-28 17:07:04.0" UUID="462a7819-8b00-4190-8313-88b5be81fad5" URI="" ORDERINDEX="43" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="764" CREATED="2009-01-28 17:07:04.0" UUID="72c248b9-027d-4402-b375-dd4f0850c9ad" URI="" ORDERINDEX="42" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="765" CREATED="2009-01-28 17:07:04.0" UUID="b301f787-f319-4ccc-a10f-b4ed3b99a86d" URI="" ORDERINDEX="41" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="766" CREATED="2009-01-28 17:07:04.0" UUID="41bcc6ac-37d3-4fd4-bb80-3cc5b04298b9" URI="" ORDERINDEX="40" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="767" CREATED="2009-01-28 17:07:04.0" UUID="1ecae058-4217-4f75-9c27-6d8ba099ac7a" URI="" ORDERINDEX="39" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="768" CREATED="2009-01-28 17:07:04.0" UUID="80c9a263-f4db-4a13-b6c2-b7fec1aa1200" URI="" ORDERINDEX="38" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="769" CREATED="2009-01-28 17:07:04.0" UUID="d7381ecf-48f8-429b-9c54-f461656978cd" URI="" ORDERINDEX="37" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="770" CREATED="2009-01-28 17:07:04.0" UUID="d20f5b61-d463-4448-8f8a-c1ff1f262f59" URI="" ORDERINDEX="36" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="771" CREATED="2009-01-28 17:07:04.0" UUID="3edff68f-8527-49b5-bf91-7e4398bb975c" URI="" ORDERINDEX="35" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="772" CREATED="2009-01-28 17:07:04.0" UUID="a9972969-82cd-4d54-b693-a096422f13fa" URI="" ORDERINDEX="34" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="773" CREATED="2009-01-28 17:07:04.0" UUID="78786e16-2a70-48af-a608-494023b91904" URI="" ORDERINDEX="33" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="774" CREATED="2009-01-28 17:07:04.0" UUID="1b11c34c-48a8-4efa-98d5-84f7f66ef43a" URI="" ORDERINDEX="32" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="775" CREATED="2009-01-28 17:07:04.0" UUID="1fdc0b93-c354-441a-8406-091e0303ff5c" URI="" ORDERINDEX="31" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="776" CREATED="2009-01-28 17:07:04.0" UUID="1ec02e8f-f2b7-4c65-af9f-b436b34c79a3" URI="" ORDERINDEX="30" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="777" CREATED="2009-01-28 17:07:04.0" UUID="ae41ecc5-5165-4126-9d24-79939ae5d822" URI="" ORDERINDEX="29" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="778" CREATED="2009-01-28 17:07:04.0" UUID="4aa6890b-0363-4899-8d7c-ee0cb78e6166" URI="" ORDERINDEX="28" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="779" CREATED="2009-01-28 17:07:04.0" UUID="11e94828-8c61-499b-87d6-1de35ce2c51c" URI="" ORDERINDEX="27" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="780" CREATED="2009-01-28 17:07:04.0" UUID="c3f2e3bb-6eef-4a26-9fb7-b14f4c8c5e4f" URI="" ORDERINDEX="26" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="781" CREATED="2009-01-28 17:07:04.0" UUID="862526ee-7592-4760-a23a-4ff3641541c5" URI="" ORDERINDEX="25" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="782" CREATED="2009-01-28 17:07:04.0" UUID="af5f2481-3192-403f-ae65-7c957a0f02b6" URI="" ORDERINDEX="24" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="783" CREATED="2009-01-28 17:07:04.0" UUID="2cfa510a-dcea-4a03-b66a-b1528f9b0796" URI="" ORDERINDEX="23" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="784" CREATED="2009-01-28 17:07:04.0" UUID="84099182-a6f5-47d7-8586-33c9e9955a10" URI="" ORDERINDEX="22" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="785" CREATED="2009-01-28 17:07:04.0" UUID="768ad378-fa85-42ab-b668-763225832f57" URI="" ORDERINDEX="21" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="786" CREATED="2009-01-28 17:07:04.0" UUID="b0785a65-c1c1-4eb4-88c7-dbd3df5aaad1" URI="" ORDERINDEX="20" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="787" CREATED="2009-01-28 17:07:04.0" UUID="c8c67a22-301a-4219-b882-4a49121232ff" URI="" ORDERINDEX="19" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="788" CREATED="2009-01-28 17:07:04.0" UUID="ad23cfda-879a-4021-8629-c54d27caf717" URI="" ORDERINDEX="18" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="789" CREATED="2009-01-28 17:07:04.0" UUID="8cb26733-e2f5-46cb-ab5c-f99254f877aa" URI="" ORDERINDEX="17" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="790" CREATED="2009-01-28 17:07:04.0" UUID="f23d14c4-1d34-4ee6-8b4e-eee2eb9a3daf" URI="" ORDERINDEX="16" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="791" CREATED="2009-01-28 17:07:04.0" UUID="e65b4e1a-21ec-428d-9b9f-e87721ab967c" URI="" ORDERINDEX="15" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="792" CREATED="2009-01-28 17:07:04.0" UUID="c0ede273-be52-4dee-b411-66ee08d30c94" URI="" ORDERINDEX="14" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="793" CREATED="2009-01-28 17:07:04.0" UUID="931c840f-7a6b-4d76-ad38-bfdd77d7b2e8" URI="" ORDERINDEX="13" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="794" CREATED="2009-01-28 17:07:04.0" UUID="7e56f5cc-123a-4fd1-8cbb-6fd80358b581" URI="" ORDERINDEX="12" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="795" CREATED="2009-01-28 17:07:04.0" UUID="a735a48f-4fc8-49a7-ae0c-6a984f658131" URI="" ORDERINDEX="11" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="796" CREATED="2009-01-28 17:07:04.0" UUID="1701de3a-7693-42a5-a2d3-42697f944190" URI="" ORDERINDEX="10" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="797" CREATED="2009-01-28 17:07:04.0" UUID="23a9b6ff-9408-49c9-bd9e-7a2ca5ab4725" URI="" ORDERINDEX="9" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="798" CREATED="2009-01-28 17:07:04.0" UUID="773430d2-76b4-438c-b817-97a543a33287" URI="" ORDERINDEX="8" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="799" CREATED="2009-01-28 17:07:04.0" UUID="0d0cecb1-e254-4607-b210-6801e7ecbb04" URI="" ORDERINDEX="7" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="800" CREATED="2009-01-28 17:07:04.0" UUID="1e37930c-86cf-44f6-90fd-7822928df260" URI="" ORDERINDEX="6" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="801" CREATED="2009-01-28 17:07:04.0" UUID="a71bd9d8-f3ab-4083-afb5-d89315d71655" URI="" ORDERINDEX="5" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="802" CREATED="2009-01-28 17:07:04.0" UUID="fbe7109d-66b3-498c-a697-c6c49c686162" URI="" ORDERINDEX="4" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="803" CREATED="2009-01-28 17:07:04.0" UUID="64223610-7625-4cfd-83ad-b797bf7f0edd" URI="" ORDERINDEX="3" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="804" CREATED="2009-01-28 17:07:04.0" UUID="ffca6ec8-8b88-417b-a6a0-f7c992aac19b" URI="" ORDERINDEX="2" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="805" CREATED="2009-01-28 17:07:04.0" UUID="ac470211-1586-4b24-95ca-1038050b618d" URI="" ORDERINDEX="1" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="806" CREATED="2009-01-28 17:07:04.0" UUID="b7807acc-f559-474e-ad4a-e7a41e085e34" URI="" ORDERINDEX="16" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="807" CREATED="2009-01-28 17:07:04.0" UUID="643513d0-32f5-46ba-840b-d9b9caf8160f" URI="" ORDERINDEX="15" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="808" CREATED="2009-01-28 17:07:04.0" UUID="95b90696-e103-4bc0-b60b-c594983fb566" URI="" ORDERINDEX="14" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="809" CREATED="2009-01-28 17:07:04.0" UUID="7244bc51-14d8-41a6-9524-7dc5303bba29" URI="" ORDERINDEX="13" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="810" CREATED="2009-01-28 17:07:04.0" UUID="f3b60bdb-4638-4ca9-a0c7-36e77d8459bb" URI="" ORDERINDEX="12" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="811" CREATED="2009-01-28 17:07:04.0" UUID="8d2fed1f-242e-4bcf-bbd7-e85133e479dc" URI="" ORDERINDEX="11" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="812" CREATED="2009-01-28 17:07:04.0" UUID="01d91053-7004-4984-aa0d-9f4de59d6205" URI="" ORDERINDEX="10" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="813" CREATED="2009-01-28 17:07:04.0" UUID="eb7df2e5-d9a7-479d-970c-c6f2b0a761d7" URI="" ORDERINDEX="9" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="814" CREATED="2009-01-28 17:07:04.0" UUID="0c39e2a5-2fe0-4d4f-819a-f609b5340339" URI="" ORDERINDEX="8" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="815" CREATED="2009-01-28 17:07:04.0" UUID="93ef8257-0a08-47bb-9b36-542417ae7560" URI="" ORDERINDEX="7" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="816" CREATED="2009-01-28 17:07:04.0" UUID="7afc2f4f-f70a-4aa5-80a5-87764f746bde" URI="" ORDERINDEX="6" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="817" CREATED="2009-01-28 17:07:04.0" UUID="7a1a8a53-78f4-4fc0-89f7-782e94992d08" URI="" ORDERINDEX="5" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="818" CREATED="2009-01-28 17:07:04.0" UUID="989a2715-71d5-4fbe-aa9a-db9168353744" URI="" ORDERINDEX="4" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="819" CREATED="2009-01-28 17:07:04.0" UUID="26e13359-8f77-4e40-a85a-56c01782fce0" URI="" ORDERINDEX="3" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="820" CREATED="2009-01-28 17:07:04.0" UUID="05002d46-083e-4b27-8731-2e7c28a8825c" URI="" ORDERINDEX="2" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="821" CREATED="2009-01-28 17:07:04.0" UUID="a407dbc7-e60c-46ff-be11-eddf4c5a970d" URI="" ORDERINDEX="1" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="822" CREATED="2009-01-28 17:07:04.0" UUID="92a76bd0-6ea8-493f-98e0-4be0b98c092f" URI="" ORDERINDEX="24" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="823" CREATED="2009-01-28 17:07:04.0" UUID="a5055d80-dbba-4660-b091-a1835d59fe7c" URI="" ORDERINDEX="23" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="824" CREATED="2009-01-28 17:07:04.0" UUID="bd036217-5499-4ccd-8f4c-72e06158db93" URI="" ORDERINDEX="22" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="825" CREATED="2009-01-28 17:07:04.0" UUID="a277507e-ad93-4978-9419-077eb889c951" URI="" ORDERINDEX="21" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="826" CREATED="2009-01-28 17:07:04.0" UUID="f858e619-7b7f-4225-913b-880a2143ec83" URI="" ORDERINDEX="20" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="827" CREATED="2009-01-28 17:07:04.0" UUID="e0d733a8-7777-4b27-99a3-05ab50e9f312" URI="" ORDERINDEX="19" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="828" CREATED="2009-01-28 17:07:04.0" UUID="b09d4f51-8a77-442a-bbce-e7832aaf46b7" URI="" ORDERINDEX="18" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="829" CREATED="2009-01-28 17:07:04.0" UUID="1afe55c4-76aa-46c0-afce-4dc07f512733" URI="" ORDERINDEX="17" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="830" CREATED="2009-01-28 17:07:04.0" UUID="6330f719-e2bc-485f-892b-9f882058a966" URI="" ORDERINDEX="16" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="831" CREATED="2009-01-28 17:07:04.0" UUID="248e44c2-5436-4526-a352-f7467ecebd56" URI="" ORDERINDEX="15" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="832" CREATED="2009-01-28 17:07:04.0" UUID="34a7d383-988b-4117-b8c0-52b947f8c711" URI="" ORDERINDEX="14" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="833" CREATED="2009-01-28 17:07:04.0" UUID="643ee07f-026c-426c-b838-c778c8613383" URI="" ORDERINDEX="13" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="834" CREATED="2009-01-28 17:07:04.0" UUID="05fcb68f-af60-4851-b912-892512058897" URI="" ORDERINDEX="12" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="835" CREATED="2009-01-28 17:07:04.0" UUID="3b8a8519-420f-4dfa-b050-b410cc257961" URI="" ORDERINDEX="11" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="836" CREATED="2009-01-28 17:07:04.0" UUID="51a3613c-b53b-4561-b0cd-9163d91c15aa" URI="" ORDERINDEX="10" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="837" CREATED="2009-01-28 17:07:04.0" UUID="02f82bc5-1066-454b-a023-11967cba9092" URI="" ORDERINDEX="9" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="838" CREATED="2009-01-28 17:07:04.0" UUID="82bab006-5aed-4301-93ec-980deb30cbb1" URI="" ORDERINDEX="8" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="839" CREATED="2009-01-28 17:07:04.0" UUID="04338fdd-c12a-402f-a1ca-68b4bf0be042" URI="" ORDERINDEX="7" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="840" CREATED="2009-01-28 17:07:04.0" UUID="48107cc8-7a5b-482e-b438-efbba050b851" URI="" ORDERINDEX="6" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="841" CREATED="2009-01-28 17:07:04.0" UUID="6890483a-c6ba-4ae1-9ab1-9fbaa5736ce9" URI="" ORDERINDEX="5" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="842" CREATED="2009-01-28 17:07:04.0" UUID="b7c544cf-a375-4145-9d3e-4b97f3f18108" URI="" ORDERINDEX="4" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="843" CREATED="2009-01-28 17:07:04.0" UUID="24955174-aa5c-4e71-a2fd-3efc79e885db" URI="" ORDERINDEX="3" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="844" CREATED="2009-01-28 17:07:04.0" UUID="0ffeb39e-872e-4c0f-85ba-a4150d9f9e7d" URI="" ORDERINDEX="2" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="845" CREATED="2009-01-28 17:07:04.0" UUID="90f5012b-705b-4488-b4c6-002d2bc5198e" URI="" ORDERINDEX="1" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="SynonymType" ID="846" CREATED="2009-01-28 17:07:04.0" UUID="4c1e2c59-ca55-41ac-9a82-676894976084" URI="" ORDERINDEX="3" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="7"/>\r
-  <DEFINEDTERMBASE DTYPE="SynonymType" ID="847" CREATED="2009-01-28 17:07:04.0" UUID="294313a9-5617-4ed5-ae2d-c57599907cb2" URI="" ORDERINDEX="2" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="7"/>\r
-  <DEFINEDTERMBASE DTYPE="SynonymType" ID="848" CREATED="2009-01-28 17:07:04.0" UUID="1afa5429-095a-48da-8877-836fa4fe709e" URI="" ORDERINDEX="1" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="7"/>\r
-  <DEFINEDTERMBASE DTYPE="HybridRelationshipType" ID="849" CREATED="2009-01-28 17:07:04.0" UUID="8b7324c5-cc6c-4109-b708-d49b187815c4" URI="" ORDERINDEX="4" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="8"/>\r
-  <DEFINEDTERMBASE DTYPE="HybridRelationshipType" ID="850" CREATED="2009-01-28 17:07:04.0" UUID="189a3ed9-6860-4943-8be8-a1f60133be2a" URI="" ORDERINDEX="3" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="8"/>\r
-  <DEFINEDTERMBASE DTYPE="HybridRelationshipType" ID="851" CREATED="2009-01-28 17:07:04.0" UUID="0485fc3d-4755-4f53-8832-b82774484c43" URI="" ORDERINDEX="2" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="8"/>\r
-  <DEFINEDTERMBASE DTYPE="HybridRelationshipType" ID="852" CREATED="2009-01-28 17:07:04.0" UUID="83ae9e56-18f2-46b6-b211-45cdee775bf3" URI="" ORDERINDEX="1" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="8"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="853" CREATED="2009-01-28 17:07:04.0" UUID="1dab357f-2e12-4511-97a4-e5153589e6a6" URI="" ORDERINDEX="10" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="854" CREATED="2009-01-28 17:07:04.0" UUID="a25ee4c1-863a-4dab-9499-290bf9b89639" URI="" ORDERINDEX="9" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="855" CREATED="2009-01-28 17:07:04.0" UUID="a176c9ad-b4c2-4c57-addd-90373f8270eb" URI="" ORDERINDEX="8" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="856" CREATED="2009-01-28 17:07:04.0" UUID="e6439f95-bcac-4ebb-a8b5-69fa5ce79e6a" URI="" ORDERINDEX="7" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="857" CREATED="2009-01-28 17:07:04.0" UUID="71c67c38-d162-445b-b0c2-7aba56106696" URI="" ORDERINDEX="6" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="858" CREATED="2009-01-28 17:07:04.0" UUID="25792738-98de-4762-bac1-8c156faded4a" URI="" ORDERINDEX="5" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="859" CREATED="2009-01-28 17:07:04.0" UUID="049c6358-1094-4765-9fae-c9972a0e7780" URI="" ORDERINDEX="4" SYMMETRIC="true" TRANSITIVE="true" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="860" CREATED="2009-01-28 17:07:04.0" UUID="2990a884-3302-4c8b-90b2-dfd31aaa2778" URI="" ORDERINDEX="3" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="861" CREATED="2009-01-28 17:07:04.0" UUID="80f06f65-58e0-4209-b811-cb40ad7220a6" URI="" ORDERINDEX="2" SYMMETRIC="false" TRANSITIVE="true" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="862" CREATED="2009-01-28 17:07:04.0" UUID="eeaea868-c4c1-497f-b9fe-52c9fc4aca53" URI="" ORDERINDEX="1" SYMMETRIC="true" TRANSITIVE="true" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="863" CREATED="2009-01-28 17:07:04.0" UUID="831fcd88-e5c9-49e0-b06e-bbb67d1c05c9" URI="" ORDERINDEX="27" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="864" CREATED="2009-01-28 17:07:04.0" UUID="6c16c33b-cfc5-4a00-92bd-a9f9e448f389" URI="" ORDERINDEX="26" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="865" CREATED="2009-01-28 17:07:04.0" UUID="89dffa4e-e004-4d42-b0d1-ae1827529e43" URI="" ORDERINDEX="25" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="866" CREATED="2009-01-28 17:07:04.0" UUID="b7153c89-cc6c-4f8c-bf74-216f10feac46" URI="" ORDERINDEX="24" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="867" CREATED="2009-01-28 17:07:04.0" UUID="6fabef72-5264-44f1-bfc0-8e2e141375f2" URI="" ORDERINDEX="23" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="868" CREATED="2009-01-28 17:07:04.0" UUID="623ecdeb-ff1f-471d-a8dc-0d75b2fe8d94" URI="" ORDERINDEX="22" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="869" CREATED="2009-01-28 17:07:04.0" UUID="ecd2382b-3d94-4169-9dd2-2c4ea1d24605" URI="" ORDERINDEX="21" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="870" CREATED="2009-01-28 17:07:04.0" UUID="43d8492c-8bd5-4f38-a633-f1ad910a34dd" URI="" ORDERINDEX="20" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="871" CREATED="2009-01-28 17:07:04.0" UUID="d5c6953d-aa53-46f8-aafc-ebc6428ad5d0" URI="" ORDERINDEX="19" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="872" CREATED="2009-01-28 17:07:04.0" UUID="6ee440bc-fd3d-4da2-ad85-906d35a94731" URI="" ORDERINDEX="18" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="873" CREATED="2009-01-28 17:07:04.0" UUID="758e6cf3-05a0-49ed-9496-d8c4a9fd02ae" URI="" ORDERINDEX="17" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="874" CREATED="2009-01-28 17:07:04.0" UUID="4535a63c-4a3f-4d69-9350-7bf02e2c23be" URI="" ORDERINDEX="16" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="875" CREATED="2009-01-28 17:07:04.0" UUID="0e5099bb-87c0-400e-abdc-bcfed5b5eece" URI="" ORDERINDEX="15" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="876" CREATED="2009-01-28 17:07:04.0" UUID="43466aa9-e431-4f37-8bca-febfd9f63716" URI="" ORDERINDEX="14" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="877" CREATED="2009-01-28 17:07:04.0" UUID="2d923b1a-6c0f-414c-ac9b-bbc502e18078" URI="" ORDERINDEX="13" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="878" CREATED="2009-01-28 17:07:04.0" UUID="f1ec567b-3c73-436b-8625-b4fd53588abb" URI="" ORDERINDEX="12" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="879" CREATED="2009-01-28 17:07:04.0" UUID="78355cfa-5200-432f-8e00-82b97afad0ed" URI="" ORDERINDEX="11" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="880" CREATED="2009-01-28 17:07:04.0" UUID="2046a0fd-4fd6-45a1-b707-2b91547f3ec7" URI="" ORDERINDEX="10" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="881" CREATED="2009-01-28 17:07:04.0" UUID="0170cd83-93ad-43c2-9ad1-7ac879300e2f" URI="" ORDERINDEX="9" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="882" CREATED="2009-01-28 17:07:04.0" UUID="c3ed5089-6779-4051-bb24-f5ea0eca80d5" URI="" ORDERINDEX="8" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="883" CREATED="2009-01-28 17:07:04.0" UUID="b55cb3a2-6e20-4ca3-95bc-12b59d3235b0" URI="" ORDERINDEX="7" SYMMETRIC="false" TRANSITIVE="true" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="884" CREATED="2009-01-28 17:07:04.0" UUID="0501c385-cab1-4fbe-b945-fc747419bb13" URI="" ORDERINDEX="6" SYMMETRIC="false" TRANSITIVE="true" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="885" CREATED="2009-01-28 17:07:04.0" UUID="60974c98-64ab-4574-bb5c-c110f6db634d" URI="" ORDERINDEX="5" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="886" CREATED="2009-01-28 17:07:04.0" UUID="a8f03491-2ad6-4fae-a04c-2a4c117a2e9b" URI="" ORDERINDEX="4" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="887" CREATED="2009-01-28 17:07:04.0" UUID="605b1d01-f2b1-4544-b2e0-6f08def3d6ed" URI="" ORDERINDEX="3" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="888" CREATED="2009-01-28 17:07:04.0" UUID="1ed87175-59dd-437e-959e-0d71583d8417" URI="" ORDERINDEX="2" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="889" CREATED="2009-01-28 17:07:04.0" UUID="d13fecdf-eb44-4dd7-9244-26679c05df1c" URI="" ORDERINDEX="1" SYMMETRIC="false" TRANSITIVE="true" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="MarkerType" ID="890" CREATED="2009-01-28 17:07:04.0" UUID="b4b1b2ab-89a8-4ce6-8110-d60b8b1bc433" URI="" VOCABULARY_ID="11"/>\r
-  <DEFINEDTERMBASE DTYPE="MarkerType" ID="891" CREATED="2009-01-28 17:07:04.0" UUID="b51325c8-05fe-421a-832b-d86fc249ef6e" URI="" VOCABULARY_ID="11"/>\r
-  <DEFINEDTERMBASE DTYPE="MarkerType" ID="892" CREATED="2009-01-28 17:07:04.0" UUID="96878790-4ceb-42a2-9738-a2242079b679" URI="" VOCABULARY_ID="11"/>\r
-  <DEFINEDTERMBASE DTYPE="MarkerType" ID="893" CREATED="2009-01-28 17:07:04.0" UUID="34204192-b41d-4857-a1d4-28992bef2a2a" URI="" VOCABULARY_ID="11"/>\r
-  <DEFINEDTERMBASE DTYPE="AnnotationType" ID="894" CREATED="2009-01-28 17:07:04.0" UUID="6a5f9ea4-1bdd-4906-89ad-6e669f982d69" URI="" VOCABULARY_ID="12"/>\r
-  <DEFINEDTERMBASE DTYPE="AnnotationType" ID="895" CREATED="2009-01-28 17:07:04.0" UUID="e780d5fd-abfc-4025-938a-46deb751d808" URI="" VOCABULARY_ID="12"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaType" ID="896" CREATED="2009-01-28 17:07:04.0" UUID="1799f581-f425-40d6-a4db-ec2c638c0e92" URI="" VOCABULARY_ID="13"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaType" ID="897" CREATED="2009-01-28 17:07:04.0" UUID="cc33167c-d366-4030-b984-6b14e4f5fd22" URI="" VOCABULARY_ID="13"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="898" CREATED="2009-01-28 17:07:04.0" UUID="79db63a4-1563-461e-8e41-48f5722feca4" URI="" ORDERINDEX="9" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="899" CREATED="2009-01-28 17:07:04.0" UUID="f127b4d2-f6bc-4019-9c87-ee3f4de1f094" URI="" ORDERINDEX="8" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="900" CREATED="2009-01-28 17:07:04.0" UUID="401d48b4-9f09-4354-be0f-c2138444f72d" URI="" ORDERINDEX="7" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="901" CREATED="2009-01-28 17:07:04.0" UUID="08aa6127-8ebc-4120-8411-a468a7257e02" URI="" ORDERINDEX="6" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="902" CREATED="2009-01-28 17:07:04.0" UUID="340b9050-a65d-4dd4-9523-bc10f977bc68" URI="" ORDERINDEX="5" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="903" CREATED="2009-01-28 17:07:04.0" UUID="160ff2c8-9bfc-49c2-9afd-049c21a91695" URI="" ORDERINDEX="4" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="904" CREATED="2009-01-28 17:07:04.0" UUID="25b563b6-6a6c-401b-b090-c9498886c50b" URI="" ORDERINDEX="3" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="905" CREATED="2009-01-28 17:07:04.0" UUID="38efa5fd-d7f0-451c-9de9-e6cce41e2225" URI="" ORDERINDEX="2" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="906" CREATED="2009-01-28 17:07:04.0" UUID="cd7771b2-7427-4a01-9057-7d7a897dddaf" URI="" ORDERINDEX="1" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="912" CREATED="2009-01-28 17:07:04.0" UUID="5deff505-1a32-4817-9a74-50e6936fd630" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="913" CREATED="2009-01-28 17:07:04.0" UUID="a7786d3e-7c58-4141-8416-346d4c80c4a2" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="914" CREATED="2009-01-28 17:07:04.0" UUID="99b2842f-9aa7-42fa-bd5f-7285311e0101" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="915" CREATED="2009-01-28 17:07:04.0" UUID="1e87d9c3-0844-4a03-9686-773e2ccb3ab6" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="916" CREATED="2009-01-28 17:07:04.0" UUID="a677f827-22b9-4205-bb37-11cb48dd9106" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="917" CREATED="2009-01-28 17:07:04.0" UUID="489bf358-b78a-45e2-a691-f9f3f10446ce" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="918" CREATED="2009-01-28 17:07:04.0" UUID="86bd920d-f8c5-48b9-af1d-03f63c31de5c" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="919" CREATED="2009-01-28 17:07:04.0" UUID="4518fc20-2492-47de-b345-777d2b83c9cf" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="920" CREATED="2009-01-28 17:07:04.0" UUID="d3c4cbb6-0025-4322-886b-cd0156753a25" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="921" CREATED="2009-01-28 17:07:04.0" UUID="e5374d39-b210-47c7-bec1-bee05b5f1cb6" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="922" CREATED="2009-01-28 17:07:04.0" UUID="aa923827-d333-4cf5-9a5f-438ae0a4746b" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="923" CREATED="2009-01-28 17:07:04.0" UUID="9fc9d10c-ba50-49ee-b174-ce83fc3f80c6" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="true" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="924" CREATED="2009-01-28 17:07:04.0" UUID="d43d8501-ceab-4caa-9e51-e87138528fac" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="925" CREATED="2009-01-28 17:07:04.0" UUID="9832e24f-b670-43b4-ac7c-20a7261a1d8c" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="926" CREATED="2009-01-28 17:07:04.0" UUID="e75255ca-8ff4-4905-baad-f842927fe1d3" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="927" CREATED="2009-01-28 17:07:04.0" UUID="cb2eab09-6d9d-4e43-8ad2-873f23400930" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="928" CREATED="2009-01-28 17:07:04.0" UUID="dd653d48-355c-4aec-a4e7-724f6eb29f8d" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="929" CREATED="2009-01-28 17:07:04.0" UUID="e28965b2-a367-48c5-b954-8afc8ac2c69b" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="930" CREATED="2009-01-28 17:07:04.0" UUID="84193b2c-327f-4cce-90ef-c8da18fd5bb5" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="931" CREATED="2009-01-28 17:07:04.0" UUID="555a46bc-211a-476f-a022-c472970d6f8b" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="932" CREATED="2009-01-28 17:07:04.0" UUID="7f1fd111-fc52-49f0-9e75-d0097f576b2d" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="933" CREATED="2009-01-28 17:07:04.0" UUID="fc810911-51f0-4a46-ab97-6562fe263ae5" URI="" SUPPORTSCOMMONTAXONNAME="true" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="934" CREATED="2009-01-28 17:07:04.0" UUID="89d3b005-9876-4923-89d9-60eb75b9583b" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="935" CREATED="2009-01-28 17:07:04.0" UUID="7c0c7571-a864-47c1-891d-01f59000dae1" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="936" CREATED="2009-01-28 17:07:04.0" UUID="9087cdcd-8b08-4082-a1de-34c9ba9fb493" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="937" CREATED="2009-01-28 17:07:04.0" UUID="910307f1-dc3c-452c-a6dd-af5ac7cd365c" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="938" CREATED="2009-01-28 17:07:05.0" UUID="4cc60186-d723-4ff6-913a-5dd8d293a92a" URI="" ORDERINDEX="1039" PARTOF_ID="1547" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="939" CREATED="2009-01-28 17:07:05.0" UUID="597b7676-a24d-4eaf-b7a9-dec4a2ecc712" URI="" ORDERINDEX="1038" PARTOF_ID="1548" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="940" CREATED="2009-01-28 17:07:05.0" UUID="023f83b8-dc99-4ac0-80b7-79fe2678518f" URI="" ORDERINDEX="1037" PARTOF_ID="1549" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="941" CREATED="2009-01-28 17:07:05.0" UUID="0e4a1319-6c7d-48a6-af08-0d972542e3e2" URI="" ORDERINDEX="1036" PARTOF_ID="1550" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="942" CREATED="2009-01-28 17:07:05.0" UUID="7d8e85ca-fc06-4a4b-9bb7-06d4b42c15f6" URI="" ORDERINDEX="1035" PARTOF_ID="1551" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="943" CREATED="2009-01-28 17:07:05.0" UUID="dc59ecd3-0051-4e81-84a2-9fd459861011" URI="" ORDERINDEX="1034" PARTOF_ID="1551" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="944" CREATED="2009-01-28 17:07:05.0" UUID="d18168ff-f59d-4209-8b23-bd3abeda1325" URI="" ORDERINDEX="1033" PARTOF_ID="1551" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="945" CREATED="2009-01-28 17:07:05.0" UUID="7dff4ac4-6c16-4834-9922-93f5af568833" URI="" ORDERINDEX="1032" PARTOF_ID="1551" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="946" CREATED="2009-01-28 17:07:05.0" UUID="5b8e22d1-2438-4433-8853-fac9768aea58" URI="" ORDERINDEX="1031" PARTOF_ID="1551" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="947" CREATED="2009-01-28 17:07:05.0" UUID="7d7e1b3b-77c0-4033-9fd0-3caa6370d8a9" URI="" ORDERINDEX="1030" PARTOF_ID="1551" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="948" CREATED="2009-01-28 17:07:05.0" UUID="156f41e9-7f2d-4c56-ace5-db9581e35b7e" URI="" ORDERINDEX="1029" PARTOF_ID="1551" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="949" CREATED="2009-01-28 17:07:05.0" UUID="e4fd740f-2401-4744-aa51-38b66848221c" URI="" ORDERINDEX="1028" PARTOF_ID="1552" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="950" CREATED="2009-01-28 17:07:05.0" UUID="a2a90c7d-905a-408f-afc2-9ee9165667df" URI="" ORDERINDEX="1027" PARTOF_ID="1552" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="951" CREATED="2009-01-28 17:07:05.0" UUID="2b8feedf-6fd4-4763-9f92-2f1dfd04c4b2" URI="" ORDERINDEX="1026" PARTOF_ID="1553" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="952" CREATED="2009-01-28 17:07:05.0" UUID="932cacfd-e349-4448-8269-ff6b06c260ee" URI="" ORDERINDEX="1025" PARTOF_ID="1554" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="953" CREATED="2009-01-28 17:07:05.0" UUID="cc136338-64d2-4d20-bd45-d40fc92909a7" URI="" ORDERINDEX="1024" PARTOF_ID="1555" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="954" CREATED="2009-01-28 17:07:05.0" UUID="eec1ea9a-67fd-4ad5-a241-6cf73a02434c" URI="" ORDERINDEX="1023" PARTOF_ID="1556" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="955" CREATED="2009-01-28 17:07:05.0" UUID="b171a390-4b69-4e57-89bf-8d334368aa70" URI="" ORDERINDEX="1022" PARTOF_ID="1557" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="956" CREATED="2009-01-28 17:07:05.0" UUID="f5e1293c-477f-4989-a51a-5573ebdf2163" URI="" ORDERINDEX="1021" PARTOF_ID="1558" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="957" CREATED="2009-01-28 17:07:05.0" UUID="74ff3c89-304c-4ca7-8e57-bda96cc64788" URI="" ORDERINDEX="1020" PARTOF_ID="1559" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="958" CREATED="2009-01-28 17:07:05.0" UUID="3d4c2754-2000-44f6-a0a8-0d9672cba17f" URI="" ORDERINDEX="1019" PARTOF_ID="1560" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="959" CREATED="2009-01-28 17:07:05.0" UUID="31468b28-6e4a-4810-a9a9-73ee02916f3c" URI="" ORDERINDEX="1018" PARTOF_ID="1560" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="960" CREATED="2009-01-28 17:07:05.0" UUID="dfb9ea63-1947-4f42-b60e-0b3469e43e8c" URI="" ORDERINDEX="1017" PARTOF_ID="1560" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="961" CREATED="2009-01-28 17:07:05.0" UUID="d91f8b52-afb4-4a05-9a2b-0091c1a2964e" URI="" ORDERINDEX="1016" PARTOF_ID="1560" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="962" CREATED="2009-01-28 17:07:05.0" UUID="70933eef-4cb9-403c-95cd-314d38d99a8e" URI="" ORDERINDEX="1015" PARTOF_ID="1560" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="963" CREATED="2009-01-28 17:07:05.0" UUID="9095452e-59f7-4608-af53-341e5f400d2a" URI="" ORDERINDEX="1014" PARTOF_ID="1560" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="964" CREATED="2009-01-28 17:07:05.0" UUID="b8d5a12f-e7e7-4c19-b64c-ead0fdc97b4e" URI="" ORDERINDEX="1013" PARTOF_ID="1561" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="965" CREATED="2009-01-28 17:07:05.0" UUID="c90618b9-167d-49ec-9724-259029fa00c7" URI="" ORDERINDEX="1012" PARTOF_ID="1561" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="966" CREATED="2009-01-28 17:07:05.0" UUID="de8b64ce-3a33-4135-a850-cf109f1d48bd" URI="" ORDERINDEX="1011" PARTOF_ID="1561" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="967" CREATED="2009-01-28 17:07:05.0" UUID="6bd2baf4-972a-467f-b6fa-8b89aee1f61a" URI="" ORDERINDEX="1010" PARTOF_ID="1562" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="968" CREATED="2009-01-28 17:07:05.0" UUID="97ac40c6-ee0e-4482-88da-8de66a73401b" URI="" ORDERINDEX="1009" PARTOF_ID="1563" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="969" CREATED="2009-01-28 17:07:05.0" UUID="63904a7f-67ca-458b-86b3-9b5a7e68923a" URI="" ORDERINDEX="1008" PARTOF_ID="1563" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="970" CREATED="2009-01-28 17:07:05.0" UUID="dbc6bfc1-ede6-4620-84d5-890907c252e0" URI="" ORDERINDEX="1007" PARTOF_ID="1564" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="971" CREATED="2009-01-28 17:07:05.0" UUID="7fcf37f8-b846-4fff-a2d7-266483dfc70c" URI="" ORDERINDEX="1006" PARTOF_ID="1565" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="972" CREATED="2009-01-28 17:07:05.0" UUID="f688e0c1-7245-4b78-9fff-be767a5bb232" URI="" ORDERINDEX="1005" PARTOF_ID="1566" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="973" CREATED="2009-01-28 17:07:05.0" UUID="24153857-fdf0-4d1d-adb0-b42ac71a992a" URI="" ORDERINDEX="1004" PARTOF_ID="1567" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="974" CREATED="2009-01-28 17:07:05.0" UUID="e7d392e6-5e48-4485-b18c-25fb140d3e1f" URI="" ORDERINDEX="1003" PARTOF_ID="1568" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="975" CREATED="2009-01-28 17:07:05.0" UUID="fbb8ab2c-d526-472f-b557-c96cc03bc37c" URI="" ORDERINDEX="1002" PARTOF_ID="1569" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="976" CREATED="2009-01-28 17:07:05.0" UUID="519eb6b6-bed7-405c-9c5e-dd9f621be288" URI="" ORDERINDEX="1001" PARTOF_ID="1570" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="977" CREATED="2009-01-28 17:07:05.0" UUID="216d17b2-9b14-4ee5-bfda-6e82a573b704" URI="" ORDERINDEX="1000" PARTOF_ID="1571" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="978" CREATED="2009-01-28 17:07:05.0" UUID="0e049bd9-c6ce-4e17-85fa-83c61ff90621" URI="" ORDERINDEX="999" PARTOF_ID="1572" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="979" CREATED="2009-01-28 17:07:05.0" UUID="5608de8e-f327-49d3-9a04-0ac0405d34ad" URI="" ORDERINDEX="998" PARTOF_ID="1573" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="980" CREATED="2009-01-28 17:07:05.0" UUID="1388a0b4-1833-48d1-94a0-73351999eebc" URI="" ORDERINDEX="997" PARTOF_ID="1574" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="981" CREATED="2009-01-28 17:07:05.0" UUID="1fd7ecde-8ecd-4cd3-b180-bb44db1fab1e" URI="" ORDERINDEX="996" PARTOF_ID="1575" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="982" CREATED="2009-01-28 17:07:05.0" UUID="91ce37ea-8af3-42e1-873d-902583539bdf" URI="" ORDERINDEX="995" PARTOF_ID="1576" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="983" CREATED="2009-01-28 17:07:05.0" UUID="79870854-1fef-43fb-9eb5-19faecf600d3" URI="" ORDERINDEX="994" PARTOF_ID="1577" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="984" CREATED="2009-01-28 17:07:05.0" UUID="ddac03eb-c533-4fd2-a83d-28d9dce0864d" URI="" ORDERINDEX="993" PARTOF_ID="1577" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="985" CREATED="2009-01-28 17:07:05.0" UUID="c87a4681-f30e-459a-b633-b3cf66822017" URI="" ORDERINDEX="992" PARTOF_ID="1578" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="986" CREATED="2009-01-28 17:07:05.0" UUID="ff5b262e-f7e3-468b-a5e0-a15e86af5c1d" URI="" ORDERINDEX="991" PARTOF_ID="1579" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="987" CREATED="2009-01-28 17:07:05.0" UUID="b5f4b104-2732-4126-8bd7-b55fb3198a29" URI="" ORDERINDEX="990" PARTOF_ID="1580" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="988" CREATED="2009-01-28 17:07:05.0" UUID="a577d31f-aae1-4aa8-aebc-2a1282b011f8" URI="" ORDERINDEX="989" PARTOF_ID="1580" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="989" CREATED="2009-01-28 17:07:05.0" UUID="d82a9d1e-e16a-4612-9507-94757ec66227" URI="" ORDERINDEX="988" PARTOF_ID="1580" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="990" CREATED="2009-01-28 17:07:05.0" UUID="7ef2a035-7ac4-44c8-aa40-84adb96041e3" URI="" ORDERINDEX="987" PARTOF_ID="1580" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="991" CREATED="2009-01-28 17:07:05.0" UUID="0b87994a-c9dd-4dff-8d38-1a11abdad2ae" URI="" ORDERINDEX="986" PARTOF_ID="1581" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="992" CREATED="2009-01-28 17:07:05.0" UUID="e642ec34-2f94-4ccb-b830-e0278982919a" URI="" ORDERINDEX="985" PARTOF_ID="1582" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="993" CREATED="2009-01-28 17:07:05.0" UUID="60a9219e-136e-4ac1-92a3-1b889e473c53" URI="" ORDERINDEX="984" PARTOF_ID="1583" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="994" CREATED="2009-01-28 17:07:05.0" UUID="c58cbd17-e60e-4adf-a970-2d37f3fedb77" URI="" ORDERINDEX="983" PARTOF_ID="1584" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="995" CREATED="2009-01-28 17:07:05.0" UUID="b7ea03d2-a7f0-44bf-995f-c5a0e352480a" URI="" ORDERINDEX="982" PARTOF_ID="1585" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="996" CREATED="2009-01-28 17:07:05.0" UUID="ceeabdbc-bf13-494a-869a-d476956b8b60" URI="" ORDERINDEX="981" PARTOF_ID="1586" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="997" CREATED="2009-01-28 17:07:05.0" UUID="f981d953-a271-4e39-ade7-c89e41e550be" URI="" ORDERINDEX="980" PARTOF_ID="1587" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="998" CREATED="2009-01-28 17:07:05.0" UUID="d96d2d70-1959-45b4-90e5-692b0bc8468c" URI="" ORDERINDEX="979" PARTOF_ID="1588" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="999" CREATED="2009-01-28 17:07:05.0" UUID="acf51c02-d09e-4f57-8ee7-4ea82949f6a2" URI="" ORDERINDEX="978" PARTOF_ID="1589" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1000" CREATED="2009-01-28 17:07:05.0" UUID="c1e3819c-9c05-4559-b6de-a4d792c9edc1" URI="" ORDERINDEX="977" PARTOF_ID="1590" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1001" CREATED="2009-01-28 17:07:05.0" UUID="5fa5df7b-f0f3-461c-9f29-11d40b183109" URI="" ORDERINDEX="976" PARTOF_ID="1590" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1002" CREATED="2009-01-28 17:07:05.0" UUID="c7293bdb-28dc-429a-aa66-2732e0d12d1f" URI="" ORDERINDEX="975" PARTOF_ID="1590" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1003" CREATED="2009-01-28 17:07:05.0" UUID="e93c18ac-ed8b-4b2f-8e22-6aa9bf03b1e5" URI="" ORDERINDEX="974" PARTOF_ID="1591" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1004" CREATED="2009-01-28 17:07:05.0" UUID="f18f0d78-d2fb-4e24-86d5-783067a25291" URI="" ORDERINDEX="973" PARTOF_ID="1592" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1005" CREATED="2009-01-28 17:07:05.0" UUID="9806016c-be9c-4d35-ae67-d45abba590be" URI="" ORDERINDEX="972" PARTOF_ID="1593" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1006" CREATED="2009-01-28 17:07:05.0" UUID="a5353ceb-adac-43e2-80b7-785a383da5c9" URI="" ORDERINDEX="971" PARTOF_ID="1594" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1007" CREATED="2009-01-28 17:07:05.0" UUID="b71f5f89-708d-4010-a1f3-107671105abe" URI="" ORDERINDEX="970" PARTOF_ID="1595" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1008" CREATED="2009-01-28 17:07:05.0" UUID="3ade1654-2d18-4dca-be14-f5c7647f7bc4" URI="" ORDERINDEX="969" PARTOF_ID="1596" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1009" CREATED="2009-01-28 17:07:05.0" UUID="68d8c6e8-7666-414e-9579-b1604592694d" URI="" ORDERINDEX="968" PARTOF_ID="1597" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1010" CREATED="2009-01-28 17:07:05.0" UUID="c3c37338-5f1f-447c-8948-bf20ce98f1f8" URI="" ORDERINDEX="967" PARTOF_ID="1597" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1011" CREATED="2009-01-28 17:07:05.0" UUID="204ca32d-74c7-4288-ab0c-3013d24d92e1" URI="" ORDERINDEX="966" PARTOF_ID="1597" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1012" CREATED="2009-01-28 17:07:05.0" UUID="6f85062e-1a30-4cbe-9c3a-96e3cd68ca61" URI="" ORDERINDEX="965" PARTOF_ID="1597" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1013" CREATED="2009-01-28 17:07:05.0" UUID="17ce9ce4-ca6e-4c13-b858-5f23a89c2eb7" URI="" ORDERINDEX="964" PARTOF_ID="1597" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1014" CREATED="2009-01-28 17:07:05.0" UUID="532a0762-7d64-4667-8590-5380ae39974c" URI="" ORDERINDEX="963" PARTOF_ID="1597" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1015" CREATED="2009-01-28 17:07:05.0" UUID="48da1791-103c-4505-bb69-cc780bdbac2d" URI="" ORDERINDEX="962" PARTOF_ID="1597" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1016" CREATED="2009-01-28 17:07:05.0" UUID="e293eda7-9bc3-4d2d-86bb-224f8f2f7e4a" URI="" ORDERINDEX="961" PARTOF_ID="1598" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1017" CREATED="2009-01-28 17:07:05.0" UUID="0f422108-51d2-4dc9-b11b-03fc430a8994" URI="" ORDERINDEX="960" PARTOF_ID="1599" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1018" CREATED="2009-01-28 17:07:05.0" UUID="06153999-40d8-4298-8ae1-0bb148e4b5a4" URI="" ORDERINDEX="959" PARTOF_ID="1600" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1019" CREATED="2009-01-28 17:07:05.0" UUID="17f23bcb-9dfb-46ed-aaee-742426008957" URI="" ORDERINDEX="958" PARTOF_ID="1601" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1020" CREATED="2009-01-28 17:07:05.0" UUID="3e9fce6c-9f4b-42af-92b4-0a81e598c004" URI="" ORDERINDEX="957" PARTOF_ID="1602" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1021" CREATED="2009-01-28 17:07:05.0" UUID="0d353eb2-2fd8-4843-ba1f-c6873e703869" URI="" ORDERINDEX="956" PARTOF_ID="1603" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1022" CREATED="2009-01-28 17:07:05.0" UUID="1acae55b-f2ad-491d-8367-8ca76a3228e9" URI="" ORDERINDEX="955" PARTOF_ID="1604" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1023" CREATED="2009-01-28 17:07:05.0" UUID="bffeb089-afaf-4f04-b134-39cae5a45881" URI="" ORDERINDEX="954" PARTOF_ID="1605" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1024" CREATED="2009-01-28 17:07:05.0" UUID="78cf3647-af9f-4aff-a326-72dce23adae3" URI="" ORDERINDEX="953" PARTOF_ID="1605" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1025" CREATED="2009-01-28 17:07:05.0" UUID="d9dadba7-eefd-42dc-99d0-7001b0316ea4" URI="" ORDERINDEX="952" PARTOF_ID="1605" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1026" CREATED="2009-01-28 17:07:05.0" UUID="faa8e353-60b2-4775-99eb-9873f5216490" URI="" ORDERINDEX="951" PARTOF_ID="1606" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1027" CREATED="2009-01-28 17:07:05.0" UUID="1e3af172-ad4b-4a4e-af30-ac4491b23b01" URI="" ORDERINDEX="950" PARTOF_ID="1607" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1028" CREATED="2009-01-28 17:07:05.0" UUID="4395d5e0-64e2-4309-a2ec-b1240919c34d" URI="" ORDERINDEX="949" PARTOF_ID="1608" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1029" CREATED="2009-01-28 17:07:05.0" UUID="bfc07508-8ee2-413f-841e-d44a0c09e010" URI="" ORDERINDEX="948" PARTOF_ID="1609" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1030" CREATED="2009-01-28 17:07:05.0" UUID="1db7ec41-05b3-4964-8da3-6d2d91332fc7" URI="" ORDERINDEX="947" PARTOF_ID="1610" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1031" CREATED="2009-01-28 17:07:05.0" UUID="97cc1d7f-18fa-4c77-b880-5d1ce07710da" URI="" ORDERINDEX="946" PARTOF_ID="1611" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1032" CREATED="2009-01-28 17:07:05.0" UUID="b5be639a-1ec5-4be3-81e4-0f769a3a785c" URI="" ORDERINDEX="945" PARTOF_ID="1612" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1033" CREATED="2009-01-28 17:07:05.0" UUID="dd22e5da-092c-4610-816c-bc6c3ad91620" URI="" ORDERINDEX="944" PARTOF_ID="1613" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1034" CREATED="2009-01-28 17:07:05.0" UUID="0113409c-7dd8-4601-b261-61d0ba43795d" URI="" ORDERINDEX="943" PARTOF_ID="1614" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1035" CREATED="2009-01-28 17:07:05.0" UUID="fba94126-08ec-4a91-95d4-de10f2b27f03" URI="" ORDERINDEX="942" PARTOF_ID="1614" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1036" CREATED="2009-01-28 17:07:05.0" UUID="095b8b6d-44c5-4d46-9b18-99d8caf396ba" URI="" ORDERINDEX="941" PARTOF_ID="1614" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1037" CREATED="2009-01-28 17:07:05.0" UUID="176373e5-435f-40ac-8d8f-bf2b4963a9a6" URI="" ORDERINDEX="940" PARTOF_ID="1615" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1038" CREATED="2009-01-28 17:07:05.0" UUID="e61558d4-7bcf-43ca-aa40-7ec7ffb74c1f" URI="" ORDERINDEX="939" PARTOF_ID="1616" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1039" CREATED="2009-01-28 17:07:05.0" UUID="6969efec-5333-491c-9499-8db5ee2918ed" URI="" ORDERINDEX="938" PARTOF_ID="1616" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1040" CREATED="2009-01-28 17:07:05.0" UUID="e2707cb9-8929-435a-8c61-1c10c7889d9a" URI="" ORDERINDEX="937" PARTOF_ID="1617" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1041" CREATED="2009-01-28 17:07:05.0" UUID="c92577a8-51a3-459d-9ab0-41c5edeca450" URI="" ORDERINDEX="936" PARTOF_ID="1618" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1042" CREATED="2009-01-28 17:07:05.0" UUID="b7fa88cd-05bf-4abe-8b90-5dbf38465b28" URI="" ORDERINDEX="935" PARTOF_ID="1619" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1043" CREATED="2009-01-28 17:07:05.0" UUID="3aca2f99-dbdb-4ade-a336-17a8b537607b" URI="" ORDERINDEX="934" PARTOF_ID="1620" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1044" CREATED="2009-01-28 17:07:05.0" UUID="f991f85c-bcc7-497b-9868-1ab18c72b194" URI="" ORDERINDEX="933" PARTOF_ID="1621" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1045" CREATED="2009-01-28 17:07:05.0" UUID="4194946a-0642-47d7-80cc-f17701c87f73" URI="" ORDERINDEX="932" PARTOF_ID="1621" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1046" CREATED="2009-01-28 17:07:05.0" UUID="8ad99980-84cf-4ff7-b244-c2208c53841e" URI="" ORDERINDEX="931" PARTOF_ID="1622" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1047" CREATED="2009-01-28 17:07:05.0" UUID="8b8ba8f2-e9d1-4561-a030-dda45611e7fd" URI="" ORDERINDEX="930" PARTOF_ID="1623" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1048" CREATED="2009-01-28 17:07:05.0" UUID="ecfc254e-ae37-42f6-a338-e8098d89cbac" URI="" ORDERINDEX="929" PARTOF_ID="1624" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1049" CREATED="2009-01-28 17:07:05.0" UUID="688c1e74-c207-4b08-8fba-f36289bb1f71" URI="" ORDERINDEX="928" PARTOF_ID="1625" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1050" CREATED="2009-01-28 17:07:05.0" UUID="023aaa47-04da-4d61-989f-5c9230f67bec" URI="" ORDERINDEX="927" PARTOF_ID="1626" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1051" CREATED="2009-01-28 17:07:05.0" UUID="f2b53289-c139-4aa5-8c7f-56b0a129c295" URI="" ORDERINDEX="926" PARTOF_ID="1627" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1052" CREATED="2009-01-28 17:07:05.0" UUID="544c29d6-dfc2-4434-8493-d976eb1da751" URI="" ORDERINDEX="925" PARTOF_ID="1628" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1053" CREATED="2009-01-28 17:07:05.0" UUID="085f5edc-986f-4283-b787-dc8f870add81" URI="" ORDERINDEX="924" PARTOF_ID="1628" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1054" CREATED="2009-01-28 17:07:05.0" UUID="86aaf6ea-8349-4190-9c71-7f7f99bf7ca9" URI="" ORDERINDEX="923" PARTOF_ID="1629" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1055" CREATED="2009-01-28 17:07:05.0" UUID="fd3ce6ee-65e6-46a7-a59f-e4b283477ce4" URI="" ORDERINDEX="922" PARTOF_ID="1630" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1056" CREATED="2009-01-28 17:07:05.0" UUID="df0cbba2-e1e2-46f2-abad-71fe13521df8" URI="" ORDERINDEX="921" PARTOF_ID="1631" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1057" CREATED="2009-01-28 17:07:05.0" UUID="758b3088-c93d-4625-9500-afe5ec5cfa23" URI="" ORDERINDEX="920" PARTOF_ID="1632" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1058" CREATED="2009-01-28 17:07:05.0" UUID="c2014fa0-f86a-4924-964e-f6693a39a88e" URI="" ORDERINDEX="919" PARTOF_ID="1633" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1059" CREATED="2009-01-28 17:07:05.0" UUID="58045c98-4614-4ee7-a311-900bbf77a39e" URI="" ORDERINDEX="918" PARTOF_ID="1634" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1060" CREATED="2009-01-28 17:07:05.0" UUID="fdcd45a4-495e-40cd-bb06-1944ca4e635a" URI="" ORDERINDEX="917" PARTOF_ID="1634" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1061" CREATED="2009-01-28 17:07:05.0" UUID="0ec14c42-9f9c-483f-8bac-49c042f4aac2" URI="" ORDERINDEX="916" PARTOF_ID="1635" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1062" CREATED="2009-01-28 17:07:05.0" UUID="35ee7d91-0e7f-402b-af1c-8b35f993de4b" URI="" ORDERINDEX="915" PARTOF_ID="1636" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1063" CREATED="2009-01-28 17:07:05.0" UUID="0bd7203a-4d11-45c5-abe4-c35ed0698a52" URI="" ORDERINDEX="914" PARTOF_ID="1637" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1064" CREATED="2009-01-28 17:07:05.0" UUID="76237f64-c306-4dd5-bff9-f9589507cbc7" URI="" ORDERINDEX="913" PARTOF_ID="1638" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1065" CREATED="2009-01-28 17:07:05.0" UUID="54c211a3-6767-434f-8176-81099d9ac6b0" URI="" ORDERINDEX="912" PARTOF_ID="1639" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1066" CREATED="2009-01-28 17:07:05.0" UUID="d3f6ae29-1f97-4a95-b0ce-6e65cb2fe788" URI="" ORDERINDEX="911" PARTOF_ID="1640" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1067" CREATED="2009-01-28 17:07:05.0" UUID="d0cd49af-1bfc-4deb-97e5-c02b0735f684" URI="" ORDERINDEX="910" PARTOF_ID="1641" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1068" CREATED="2009-01-28 17:07:05.0" UUID="fb4016ae-f667-4662-b3cd-c99aee263a36" URI="" ORDERINDEX="909" PARTOF_ID="1642" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1069" CREATED="2009-01-28 17:07:05.0" UUID="3fc9befa-8bcf-4cdd-adc6-a8fd0046ad94" URI="" ORDERINDEX="908" PARTOF_ID="1643" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1070" CREATED="2009-01-28 17:07:05.0" UUID="e9ef0836-b09f-46d6-8d85-655d2a5d06ea" URI="" ORDERINDEX="907" PARTOF_ID="1644" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1071" CREATED="2009-01-28 17:07:05.0" UUID="836fa04b-e2d7-4749-97f3-46b05f17b7c0" URI="" ORDERINDEX="906" PARTOF_ID="1645" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1072" CREATED="2009-01-28 17:07:05.0" UUID="0746cd53-e1fe-4d5e-928c-5a04885c7b3e" URI="" ORDERINDEX="905" PARTOF_ID="1646" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1073" CREATED="2009-01-28 17:07:05.0" UUID="a8fb3a37-57a2-4c3e-b4a7-1df394bda83c" URI="" ORDERINDEX="904" PARTOF_ID="1647" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1074" CREATED="2009-01-28 17:07:05.0" UUID="12ff3212-0a5c-4621-aa96-559bf91b38c0" URI="" ORDERINDEX="903" PARTOF_ID="1647" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1075" CREATED="2009-01-28 17:07:05.0" UUID="44de1584-e6ed-4a0f-951e-2e7405180d45" URI="" ORDERINDEX="902" PARTOF_ID="1648" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1076" CREATED="2009-01-28 17:07:05.0" UUID="72486bfa-a330-42c2-8620-20bb6e2d0379" URI="" ORDERINDEX="901" PARTOF_ID="1649" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1077" CREATED="2009-01-28 17:07:05.0" UUID="a4841cd4-4bad-4930-a0c6-61197b15832b" URI="" ORDERINDEX="900" PARTOF_ID="1650" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1078" CREATED="2009-01-28 17:07:05.0" UUID="8284f453-33b7-457d-acf8-61981112aa26" URI="" ORDERINDEX="899" PARTOF_ID="1651" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1079" CREATED="2009-01-28 17:07:05.0" UUID="59152e23-5202-47c0-8897-6ecf021a2240" URI="" ORDERINDEX="898" PARTOF_ID="1652" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1080" CREATED="2009-01-28 17:07:05.0" UUID="02ab5796-bdfd-40c1-bf48-79d7f9b54c0b" URI="" ORDERINDEX="897" PARTOF_ID="1653" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1081" CREATED="2009-01-28 17:07:05.0" UUID="9dee4b0d-d864-4b6f-bd41-39a1ea7c56c3" URI="" ORDERINDEX="896" PARTOF_ID="1654" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1082" CREATED="2009-01-28 17:07:05.0" UUID="d58447cc-7425-43f1-b1a6-221dd5591e13" URI="" ORDERINDEX="895" PARTOF_ID="1655" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1083" CREATED="2009-01-28 17:07:05.0" UUID="2f071a87-ed8d-41ab-bc6c-4a2e86fa33b6" URI="" ORDERINDEX="894" PARTOF_ID="1656" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1084" CREATED="2009-01-28 17:07:05.0" UUID="4365bc4c-8edf-4827-a727-3e3dc2a48c99" URI="" ORDERINDEX="893" PARTOF_ID="1657" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1085" CREATED="2009-01-28 17:07:05.0" UUID="de12ce18-4f5e-49b8-92d6-d6ca633084af" URI="" ORDERINDEX="892" PARTOF_ID="1658" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1086" CREATED="2009-01-28 17:07:04.0" UUID="077b8b6c-f1fa-4e43-abce-eb2c0942f215" URI="" ORDERINDEX="891" PARTOF_ID="1659" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1087" CREATED="2009-01-28 17:07:04.0" UUID="620b8ef7-d129-44a4-aeab-9b82b58988e7" URI="" ORDERINDEX="890" PARTOF_ID="1660" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1088" CREATED="2009-01-28 17:07:04.0" UUID="8cf6a459-8803-48a3-a7d6-e840681bb604" URI="" ORDERINDEX="889" PARTOF_ID="1660" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1089" CREATED="2009-01-28 17:07:04.0" UUID="5a80fd55-5fe7-44d9-bdf4-13633d81f270" URI="" ORDERINDEX="888" PARTOF_ID="1661" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1090" CREATED="2009-01-28 17:07:04.0" UUID="c8ba946f-6401-4b77-ac70-04a30d8ea65d" URI="" ORDERINDEX="887" PARTOF_ID="1662" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1091" CREATED="2009-01-28 17:07:04.0" UUID="979889b5-ff89-41f6-96bb-27c44cf764a3" URI="" ORDERINDEX="886" PARTOF_ID="1663" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1092" CREATED="2009-01-28 17:07:04.0" UUID="3c4f004b-51d2-488e-9d04-8c393cdba220" URI="" ORDERINDEX="885" PARTOF_ID="1664" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1093" CREATED="2009-01-28 17:07:04.0" UUID="54beb9ec-857c-4149-b38d-db30e257515d" URI="" ORDERINDEX="884" PARTOF_ID="1665" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1094" CREATED="2009-01-28 17:07:04.0" UUID="8e842dc3-6d31-4d65-a250-63a495d9c46f" URI="" ORDERINDEX="883" PARTOF_ID="1666" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1095" CREATED="2009-01-28 17:07:04.0" UUID="e8cd281f-eba5-4529-b496-bb7d04221d73" URI="" ORDERINDEX="882" PARTOF_ID="1667" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1096" CREATED="2009-01-28 17:07:04.0" UUID="3ef48a2a-4ef5-4807-ab05-9559c5305ab8" URI="" ORDERINDEX="881" PARTOF_ID="1668" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1097" CREATED="2009-01-28 17:07:04.0" UUID="3add1095-b6a9-43f5-9ce8-2797b4db328b" URI="" ORDERINDEX="880" PARTOF_ID="1669" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1098" CREATED="2009-01-28 17:07:04.0" UUID="33ae2ea4-4472-41f8-92d0-b2d22c045dbc" URI="" ORDERINDEX="879" PARTOF_ID="1670" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1099" CREATED="2009-01-28 17:07:04.0" UUID="bfdc923e-b808-40bf-b22a-fad59cfe3517" URI="" ORDERINDEX="878" PARTOF_ID="1671" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1100" CREATED="2009-01-28 17:07:04.0" UUID="71a7806f-9b2b-4b1f-92ef-7b104424e4df" URI="" ORDERINDEX="877" PARTOF_ID="1672" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1101" CREATED="2009-01-28 17:07:04.0" UUID="f3bc6a47-5caf-410d-b418-8a48f3632c38" URI="" ORDERINDEX="876" PARTOF_ID="1673" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1102" CREATED="2009-01-28 17:07:04.0" UUID="52627b21-09d0-49ee-995b-773bcd2d2736" URI="" ORDERINDEX="875" PARTOF_ID="1674" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1103" CREATED="2009-01-28 17:07:04.0" UUID="bf3ee613-1c24-4cb9-9adc-4d06f9dcae33" URI="" ORDERINDEX="874" PARTOF_ID="1675" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1104" CREATED="2009-01-28 17:07:04.0" UUID="0145c796-4ebf-4398-bad6-614a264515b4" URI="" ORDERINDEX="873" PARTOF_ID="1676" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1105" CREATED="2009-01-28 17:07:04.0" UUID="f1a7f887-741a-427c-bbbc-4c13a8c26659" URI="" ORDERINDEX="872" PARTOF_ID="1676" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1106" CREATED="2009-01-28 17:07:04.0" UUID="4d84243b-2b9c-4de9-8510-f78875cfab41" URI="" ORDERINDEX="871" PARTOF_ID="1677" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1107" CREATED="2009-01-28 17:07:04.0" UUID="c316be0e-7711-4ede-b542-290ae3b8b986" URI="" ORDERINDEX="870" PARTOF_ID="1678" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1108" CREATED="2009-01-28 17:07:04.0" UUID="9e31a2ec-c729-4908-93fb-056321e79e34" URI="" ORDERINDEX="869" PARTOF_ID="1679" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1109" CREATED="2009-01-28 17:07:04.0" UUID="178cc276-24c8-4b9b-9afa-02431a1bec6c" URI="" ORDERINDEX="868" PARTOF_ID="1680" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1110" CREATED="2009-01-28 17:07:04.0" UUID="471a9abf-8230-4e75-b2ec-f12ce14736ee" URI="" ORDERINDEX="867" PARTOF_ID="1681" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1111" CREATED="2009-01-28 17:07:04.0" UUID="ab26e107-d801-46a3-9433-7f13f767a65b" URI="" ORDERINDEX="866" PARTOF_ID="1681" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1112" CREATED="2009-01-28 17:07:04.0" UUID="e6914731-7bb6-4cdc-bd20-5f9830f921a9" URI="" ORDERINDEX="865" PARTOF_ID="1682" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1113" CREATED="2009-01-28 17:07:04.0" UUID="0e5b9e48-f7c9-42ed-8baa-32cec6f13fb4" URI="" ORDERINDEX="864" PARTOF_ID="1683" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1114" CREATED="2009-01-28 17:07:04.0" UUID="57d16bae-777b-4bbb-a3b9-02b340239571" URI="" ORDERINDEX="863" PARTOF_ID="1684" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1115" CREATED="2009-01-28 17:07:04.0" UUID="db3d6a93-5ffa-4803-8004-9cfe08c5ce44" URI="" ORDERINDEX="862" PARTOF_ID="1685" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1116" CREATED="2009-01-28 17:07:04.0" UUID="4a3532c5-9d47-4d1d-ae56-2555384058e1" URI="" ORDERINDEX="861" PARTOF_ID="1686" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1117" CREATED="2009-01-28 17:07:04.0" UUID="521f5c71-6c4c-490b-a042-eeca1f68ceeb" URI="" ORDERINDEX="860" PARTOF_ID="1686" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1118" CREATED="2009-01-28 17:07:04.0" UUID="00fcf611-abaf-449a-a70b-79a5762e0736" URI="" ORDERINDEX="859" PARTOF_ID="1687" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1119" CREATED="2009-01-28 17:07:04.0" UUID="bb7c7af5-78ef-4197-b504-67ff1587a43d" URI="" ORDERINDEX="858" PARTOF_ID="1688" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1120" CREATED="2009-01-28 17:07:04.0" UUID="7e7a213d-f8d2-4220-98ca-247ca9ab68fa" URI="" ORDERINDEX="857" PARTOF_ID="1689" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1121" CREATED="2009-01-28 17:07:04.0" UUID="8f19cf83-7a19-42c6-8876-4d628fe24671" URI="" ORDERINDEX="856" PARTOF_ID="1690" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1122" CREATED="2009-01-28 17:07:04.0" UUID="15bc6921-9726-49c1-978a-f927c6966ea7" URI="" ORDERINDEX="855" PARTOF_ID="1690" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1123" CREATED="2009-01-28 17:07:04.0" UUID="97c96422-31c6-4b12-b820-31818e30673d" URI="" ORDERINDEX="854" PARTOF_ID="1691" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1124" CREATED="2009-01-28 17:07:04.0" UUID="2e33a45c-c121-47e6-bd9b-cabf3d930598" URI="" ORDERINDEX="853" PARTOF_ID="1691" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1125" CREATED="2009-01-28 17:07:04.0" UUID="35be6728-3c0f-4aa6-aa2c-8e4d9e60b8fe" URI="" ORDERINDEX="852" PARTOF_ID="1692" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1126" CREATED="2009-01-28 17:07:04.0" UUID="f1d92cb8-9bb1-48d8-b395-eafa6d4162c3" URI="" ORDERINDEX="851" PARTOF_ID="1693" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1127" CREATED="2009-01-28 17:07:04.0" UUID="aca8b819-54a8-4ee4-8e22-f9839df98975" URI="" ORDERINDEX="850" PARTOF_ID="1694" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1128" CREATED="2009-01-28 17:07:04.0" UUID="8567fe51-9c84-4f57-94ee-c7f9f2ce7e3a" URI="" ORDERINDEX="849" PARTOF_ID="1695" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1129" CREATED="2009-01-28 17:07:04.0" UUID="2286d950-3f8b-4e53-9d9d-cf0c448c6f5f" URI="" ORDERINDEX="848" PARTOF_ID="1696" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1130" CREATED="2009-01-28 17:07:04.0" UUID="ec8a2502-84f0-4d70-aa55-a663475f5c6b" URI="" ORDERINDEX="847" PARTOF_ID="1697" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1131" CREATED="2009-01-28 17:07:04.0" UUID="22cd14fa-fa0d-4859-b8d6-b583befecb89" URI="" ORDERINDEX="846" PARTOF_ID="1697" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1132" CREATED="2009-01-28 17:07:04.0" UUID="d9548675-9a6d-4f5b-9efc-d8e499971be6" URI="" ORDERINDEX="845" PARTOF_ID="1697" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1133" CREATED="2009-01-28 17:07:04.0" UUID="48d3d918-8591-4117-a32c-56403761db7d" URI="" ORDERINDEX="844" PARTOF_ID="1697" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1134" CREATED="2009-01-28 17:07:04.0" UUID="37dcfe51-6e78-4fa5-9d03-a0d97273bb51" URI="" ORDERINDEX="843" PARTOF_ID="1697" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1135" CREATED="2009-01-28 17:07:04.0" UUID="3bff72cd-fef9-45f6-9bdc-d16c31210427" URI="" ORDERINDEX="842" PARTOF_ID="1697" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1136" CREATED="2009-01-28 17:07:04.0" UUID="57588bf4-3157-4fd5-bf6a-369b59a33fc6" URI="" ORDERINDEX="841" PARTOF_ID="1697" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1137" CREATED="2009-01-28 17:07:04.0" UUID="d60d5797-61b2-422a-a87c-66e577474ea2" URI="" ORDERINDEX="840" PARTOF_ID="1697" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1138" CREATED="2009-01-28 17:07:04.0" UUID="1338a3d3-10c3-47ee-ab71-3c64c4ab2c78" URI="" ORDERINDEX="839" PARTOF_ID="1698" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1139" CREATED="2009-01-28 17:07:04.0" UUID="c0f8789f-6c3f-4af8-8391-ad990fb40965" URI="" ORDERINDEX="838" PARTOF_ID="1699" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1140" CREATED="2009-01-28 17:07:04.0" UUID="a7efd881-26d3-4d51-8eb7-ead43374c9f4" URI="" ORDERINDEX="837" PARTOF_ID="1700" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1141" CREATED="2009-01-28 17:07:04.0" UUID="550bb42c-37e2-4223-a00b-607348d8d5bb" URI="" ORDERINDEX="836" PARTOF_ID="1701" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1142" CREATED="2009-01-28 17:07:04.0" UUID="c9139aa6-a098-483e-be35-39c65f8d56ea" URI="" ORDERINDEX="835" PARTOF_ID="1702" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1143" CREATED="2009-01-28 17:07:04.0" UUID="fc6ff9e5-0e21-4109-aea9-832ec8aebaf3" URI="" ORDERINDEX="834" PARTOF_ID="1703" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1144" CREATED="2009-01-28 17:07:04.0" UUID="1519ea7d-d7e4-48aa-9f24-00bbd744ea31" URI="" ORDERINDEX="833" PARTOF_ID="1704" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1145" CREATED="2009-01-28 17:07:04.0" UUID="536476da-d49c-4c90-885c-1aaf6ef033e3" URI="" ORDERINDEX="832" PARTOF_ID="1704" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1146" CREATED="2009-01-28 17:07:04.0" UUID="e1b3c800-dde0-465e-acd8-7a155b88728b" URI="" ORDERINDEX="831" PARTOF_ID="1704" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1147" CREATED="2009-01-28 17:07:04.0" UUID="3a88bbee-1381-4ce6-a921-8e75d3eccaa6" URI="" ORDERINDEX="830" PARTOF_ID="1704" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1148" CREATED="2009-01-28 17:07:04.0" UUID="47d81f12-741e-4ffe-aaa9-1fee6b2b4463" URI="" ORDERINDEX="829" PARTOF_ID="1704" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1149" CREATED="2009-01-28 17:07:04.0" UUID="c17bdb19-2c0d-4745-b0c7-f234a38e039d" URI="" ORDERINDEX="828" PARTOF_ID="1705" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1150" CREATED="2009-01-28 17:07:04.0" UUID="bb3838e9-8815-42e7-9471-3f43cb014194" URI="" ORDERINDEX="827" PARTOF_ID="1705" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1151" CREATED="2009-01-28 17:07:04.0" UUID="3a30f064-6491-41cd-872a-2fec5017c2dd" URI="" ORDERINDEX="826" PARTOF_ID="1705" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1152" CREATED="2009-01-28 17:07:04.0" UUID="2b07b916-ff4c-4c73-b6df-7c893852c33b" URI="" ORDERINDEX="825" PARTOF_ID="1705" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1153" CREATED="2009-01-28 17:07:04.0" UUID="b1b2d3b2-fe30-47e4-96c3-e109dd39473b" URI="" ORDERINDEX="824" PARTOF_ID="1705" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1154" CREATED="2009-01-28 17:07:04.0" UUID="b2ea91ed-c667-4fd2-81ac-9df65c394cc4" URI="" ORDERINDEX="823" PARTOF_ID="1705" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1155" CREATED="2009-01-28 17:07:04.0" UUID="68718c56-846c-4994-ae7d-1f5cbb5c33bc" URI="" ORDERINDEX="822" PARTOF_ID="1706" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1156" CREATED="2009-01-28 17:07:04.0" UUID="6e1e23de-b355-417b-8ca7-fa7ddd387a92" URI="" ORDERINDEX="821" PARTOF_ID="1706" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1157" CREATED="2009-01-28 17:07:04.0" UUID="ead11f6e-743e-4fc7-859c-d78acae4e88d" URI="" ORDERINDEX="820" PARTOF_ID="1706" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1158" CREATED="2009-01-28 17:07:04.0" UUID="5c143c06-c456-4dc1-9ce9-7745d255c237" URI="" ORDERINDEX="819" PARTOF_ID="1706" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1159" CREATED="2009-01-28 17:07:04.0" UUID="6dfaa758-e76c-48cc-9c8b-08800defc8a4" URI="" ORDERINDEX="818" PARTOF_ID="1707" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1160" CREATED="2009-01-28 17:07:04.0" UUID="7d07cc5e-1a0d-4b6d-b747-4797a664d744" URI="" ORDERINDEX="817" PARTOF_ID="1707" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1161" CREATED="2009-01-28 17:07:04.0" UUID="7f3f2d42-a712-4747-8344-1e99467ef434" URI="" ORDERINDEX="816" PARTOF_ID="1707" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1162" CREATED="2009-01-28 17:07:04.0" UUID="de72ef9f-98ed-4f36-80e6-f830ec7622ca" URI="" ORDERINDEX="815" PARTOF_ID="1708" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1163" CREATED="2009-01-28 17:07:04.0" UUID="6af99608-01a6-490d-95f5-36a41bc0059f" URI="" ORDERINDEX="814" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1164" CREATED="2009-01-28 17:07:04.0" UUID="9c6bc35f-2da8-419f-a7bf-08317e8ae0cb" URI="" ORDERINDEX="813" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1165" CREATED="2009-01-28 17:07:04.0" UUID="8d400ef1-b3a2-4abb-806c-58f442a20587" URI="" ORDERINDEX="812" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1166" CREATED="2009-01-28 17:07:04.0" UUID="55bd3283-0fcc-4875-b47c-6182a7b1fdc9" URI="" ORDERINDEX="811" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1167" CREATED="2009-01-28 17:07:04.0" UUID="fd6cd489-ac26-48e7-86be-93defbd2957b" URI="" ORDERINDEX="810" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1168" CREATED="2009-01-28 17:07:04.0" UUID="28c68418-3220-418f-b48a-323ac65aa749" URI="" ORDERINDEX="809" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1169" CREATED="2009-01-28 17:07:04.0" UUID="a50f3b86-2ea1-4ab3-a29b-e17859ef7bef" URI="" ORDERINDEX="808" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1170" CREATED="2009-01-28 17:07:04.0" UUID="81ac3077-c182-4acc-9136-62dc8caaee00" URI="" ORDERINDEX="807" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1171" CREATED="2009-01-28 17:07:04.0" UUID="4fa2b3d9-4bc5-405a-8c81-33cfd3b64181" URI="" ORDERINDEX="806" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1172" CREATED="2009-01-28 17:07:04.0" UUID="d4e5a892-b9d1-499d-af26-cdc4aaadfdee" URI="" ORDERINDEX="805" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1173" CREATED="2009-01-28 17:07:04.0" UUID="ed5dd795-2869-4d22-aee4-00de70b27f5a" URI="" ORDERINDEX="804" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1174" CREATED="2009-01-28 17:07:04.0" UUID="9e6a77a5-1b7c-4b2f-a6ef-e1ea8bdd5d6d" URI="" ORDERINDEX="803" PARTOF_ID="1710" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1175" CREATED="2009-01-28 17:07:04.0" UUID="72ad92cb-64b7-4e71-a8a3-9a07157e9ab2" URI="" ORDERINDEX="802" PARTOF_ID="1710" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1176" CREATED="2009-01-28 17:07:04.0" UUID="d7a02375-0f0a-4bf6-9b70-b3c6e01cf1a4" URI="" ORDERINDEX="801" PARTOF_ID="1710" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1177" CREATED="2009-01-28 17:07:04.0" UUID="006d80e0-d30c-4151-97c6-1551bfc4ee6a" URI="" ORDERINDEX="800" PARTOF_ID="1710" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1178" CREATED="2009-01-28 17:07:04.0" UUID="565751f1-613e-4ddc-bfbb-4b54f2267971" URI="" ORDERINDEX="799" PARTOF_ID="1710" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1179" CREATED="2009-01-28 17:07:04.0" UUID="e4f11abe-181d-4c15-b37a-28cec84d5622" URI="" ORDERINDEX="798" PARTOF_ID="1711" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1180" CREATED="2009-01-28 17:07:04.0" UUID="0e78f84c-2830-49ee-bd03-0e605ed7220f" URI="" ORDERINDEX="797" PARTOF_ID="1712" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1181" CREATED="2009-01-28 17:07:04.0" UUID="dbd3c366-9bb8-4f38-8b52-a2f208af02ce" URI="" ORDERINDEX="796" PARTOF_ID="1713" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1182" CREATED="2009-01-28 17:07:04.0" UUID="a270a0a7-4f1b-43db-9ebe-b71968ee3013" URI="" ORDERINDEX="795" PARTOF_ID="1714" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1183" CREATED="2009-01-28 17:07:04.0" UUID="fd6c8607-20c1-436b-bd62-a425b0d7b4fd" URI="" ORDERINDEX="794" PARTOF_ID="1715" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1184" CREATED="2009-01-28 17:07:04.0" UUID="eb68f63a-c660-490e-9c2f-d8e161cf703b" URI="" ORDERINDEX="793" PARTOF_ID="1716" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1185" CREATED="2009-01-28 17:07:04.0" UUID="2fa7b7f4-6427-49d8-87e7-107c15367df6" URI="" ORDERINDEX="792" PARTOF_ID="1717" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1186" CREATED="2009-01-28 17:07:04.0" UUID="aa220148-96c0-4580-a8ff-f0ecf6a66aa8" URI="" ORDERINDEX="791" PARTOF_ID="1717" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1187" CREATED="2009-01-28 17:07:04.0" UUID="80f83d1a-3f0a-4ffd-9e72-91271472ad72" URI="" ORDERINDEX="790" PARTOF_ID="1718" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1188" CREATED="2009-01-28 17:07:04.0" UUID="2bdda236-f695-4a46-b4c5-a1041b428a85" URI="" ORDERINDEX="789" PARTOF_ID="1719" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1189" CREATED="2009-01-28 17:07:04.0" UUID="62868cfb-b94b-40fe-9128-8d4620d36619" URI="" ORDERINDEX="788" PARTOF_ID="1720" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1190" CREATED="2009-01-28 17:07:04.0" UUID="3bd32d2a-b3b8-440e-8afb-e6bd2b00c887" URI="" ORDERINDEX="787" PARTOF_ID="1720" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1191" CREATED="2009-01-28 17:07:04.0" UUID="b7124d3b-fa04-4651-9267-6a2ad2a503bc" URI="" ORDERINDEX="786" PARTOF_ID="1721" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1192" CREATED="2009-01-28 17:07:04.0" UUID="0ac8fc74-a081-45e5-b96d-aad367b5f48b" URI="" ORDERINDEX="785" PARTOF_ID="1722" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1193" CREATED="2009-01-28 17:07:04.0" UUID="b0ba9c44-74a9-41e6-b896-3b4492b5c6b0" URI="" ORDERINDEX="784" PARTOF_ID="1723" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1194" CREATED="2009-01-28 17:07:04.0" UUID="5863702c-ac74-41c4-83ff-ba446140034c" URI="" ORDERINDEX="783" PARTOF_ID="1724" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1195" CREATED="2009-01-28 17:07:04.0" UUID="9f95af33-ae9e-4031-92f7-9f79d22eecf2" URI="" ORDERINDEX="782" PARTOF_ID="1724" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1196" CREATED="2009-01-28 17:07:04.0" UUID="a216d4de-6a7e-4173-ade7-59fd3a96f111" URI="" ORDERINDEX="781" PARTOF_ID="1725" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1197" CREATED="2009-01-28 17:07:04.0" UUID="8d0e548d-2bfd-4c1d-a0ab-2c89de3145fe" URI="" ORDERINDEX="780" PARTOF_ID="1726" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1198" CREATED="2009-01-28 17:07:04.0" UUID="fe01c101-9f13-4a4a-810a-1739da4bdc85" URI="" ORDERINDEX="779" PARTOF_ID="1727" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1199" CREATED="2009-01-28 17:07:04.0" UUID="342c8ac5-153a-4654-af25-1c829e27affa" URI="" ORDERINDEX="778" PARTOF_ID="1728" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1200" CREATED="2009-01-28 17:07:04.0" UUID="92b82e06-06f6-4f32-a2ec-f8820ba5e23f" URI="" ORDERINDEX="777" PARTOF_ID="1729" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1201" CREATED="2009-01-28 17:07:04.0" UUID="7b9c3af8-4821-451b-ad7e-84eff39d1316" URI="" ORDERINDEX="776" PARTOF_ID="1730" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1202" CREATED="2009-01-28 17:07:04.0" UUID="ec823c51-f92c-4d55-8c34-322c58b7c11b" URI="" ORDERINDEX="775" PARTOF_ID="1731" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1203" CREATED="2009-01-28 17:07:04.0" UUID="7d8b6b44-1010-4cb6-8ccc-1e3148c9f6a7" URI="" ORDERINDEX="774" PARTOF_ID="1732" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1204" CREATED="2009-01-28 17:07:04.0" UUID="63a0bcf3-ae45-4e54-8cd7-8f37b1745319" URI="" ORDERINDEX="773" PARTOF_ID="1733" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1205" CREATED="2009-01-28 17:07:04.0" UUID="94a49266-6be8-457d-8fab-50c8c9a27d65" URI="" ORDERINDEX="772" PARTOF_ID="1734" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1206" CREATED="2009-01-28 17:07:04.0" UUID="b7605e8e-a102-465e-9143-864d3512ff9c" URI="" ORDERINDEX="771" PARTOF_ID="1735" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1207" CREATED="2009-01-28 17:07:04.0" UUID="a7e70b81-0202-4147-b189-f37a6eb1dfb6" URI="" ORDERINDEX="770" PARTOF_ID="1736" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1208" CREATED="2009-01-28 17:07:04.0" UUID="6a0598a7-5460-4c78-bf2f-91ebb688e431" URI="" ORDERINDEX="769" PARTOF_ID="1737" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1209" CREATED="2009-01-28 17:07:04.0" UUID="300fac4e-e2bd-42e6-88c6-26c14cb053e0" URI="" ORDERINDEX="768" PARTOF_ID="1738" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1210" CREATED="2009-01-28 17:07:04.0" UUID="0a248a86-bf96-4af5-b95a-b84aae5a59b7" URI="" ORDERINDEX="767" PARTOF_ID="1739" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1211" CREATED="2009-01-28 17:07:04.0" UUID="d2c7fdb0-4542-4a56-84a0-e2ab9818a145" URI="" ORDERINDEX="766" PARTOF_ID="1740" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1212" CREATED="2009-01-28 17:07:04.0" UUID="f2b95c95-199c-4627-ab18-3659b03033b8" URI="" ORDERINDEX="765" PARTOF_ID="1740" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1213" CREATED="2009-01-28 17:07:04.0" UUID="3cc15dc7-bc55-4a9b-85af-e1eb733ad845" URI="" ORDERINDEX="764" PARTOF_ID="1740" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1214" CREATED="2009-01-28 17:07:04.0" UUID="b7660ed9-e18b-4014-b0bf-efe0684ea878" URI="" ORDERINDEX="763" PARTOF_ID="1741" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1215" CREATED="2009-01-28 17:07:04.0" UUID="6e72bebe-6709-4054-be0d-90bcdcffe272" URI="" ORDERINDEX="762" PARTOF_ID="1742" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1216" CREATED="2009-01-28 17:07:04.0" UUID="34fd6efd-9061-48c5-946b-bd114a418723" URI="" ORDERINDEX="761" PARTOF_ID="1742" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1217" CREATED="2009-01-28 17:07:04.0" UUID="aa782397-e924-4189-b771-35df76f770c2" URI="" ORDERINDEX="760" PARTOF_ID="1743" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1218" CREATED="2009-01-28 17:07:04.0" UUID="cc6a1ace-bd07-4e38-80d5-5b7d1d9067fd" URI="" ORDERINDEX="759" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1219" CREATED="2009-01-28 17:07:04.0" UUID="aa936910-fa3d-4139-9ab4-a82b7e8988d1" URI="" ORDERINDEX="758" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1220" CREATED="2009-01-28 17:07:04.0" UUID="e294e779-8bdf-4c2e-8d78-46abd05453ca" URI="" ORDERINDEX="757" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1221" CREATED="2009-01-28 17:07:04.0" UUID="570bef0e-fbf4-47bc-801d-2245d592168f" URI="" ORDERINDEX="756" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1222" CREATED="2009-01-28 17:07:04.0" UUID="5528904f-f645-42a0-9602-13a65c7073ad" URI="" ORDERINDEX="755" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1223" CREATED="2009-01-28 17:07:04.0" UUID="5608fea2-e246-4455-bb39-fd8c55ea411d" URI="" ORDERINDEX="754" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1224" CREATED="2009-01-28 17:07:04.0" UUID="9a51f2c5-3269-41c0-8fba-faaee4271bb5" URI="" ORDERINDEX="753" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1225" CREATED="2009-01-28 17:07:04.0" UUID="e7bb3a9d-2313-42ea-8929-a704bdda09ab" URI="" ORDERINDEX="752" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1226" CREATED="2009-01-28 17:07:04.0" UUID="070afba6-c7e1-4acc-9139-ebbdca9cd73f" URI="" ORDERINDEX="751" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1227" CREATED="2009-01-28 17:07:04.0" UUID="1d3fa83d-a348-4b47-b2fc-3105e476aca5" URI="" ORDERINDEX="750" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1228" CREATED="2009-01-28 17:07:04.0" UUID="e062678f-23ba-4bad-bc46-c40e704422c4" URI="" ORDERINDEX="749" PARTOF_ID="1745" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1229" CREATED="2009-01-28 17:07:04.0" UUID="8b943f73-8988-43a8-88ba-3b048eea2827" URI="" ORDERINDEX="748" PARTOF_ID="1746" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1230" CREATED="2009-01-28 17:07:04.0" UUID="aa80988d-a00b-4cf3-8c63-feb52ac85a81" URI="" ORDERINDEX="747" PARTOF_ID="1747" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1231" CREATED="2009-01-28 17:07:04.0" UUID="2173fe0b-311b-440e-b4df-26acd1c70ca7" URI="" ORDERINDEX="746" PARTOF_ID="1747" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1232" CREATED="2009-01-28 17:07:04.0" UUID="fc6dfd5e-43cf-47c5-a2a1-bad849a452f9" URI="" ORDERINDEX="745" PARTOF_ID="1748" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1233" CREATED="2009-01-28 17:07:04.0" UUID="bd72f665-a9d0-4928-a293-bbb1d7f31fdf" URI="" ORDERINDEX="744" PARTOF_ID="1749" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1234" CREATED="2009-01-28 17:07:04.0" UUID="928fc96c-6ea8-4679-943c-37bdad233324" URI="" ORDERINDEX="743" PARTOF_ID="1750" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1235" CREATED="2009-01-28 17:07:04.0" UUID="dd5fb4eb-cf48-489f-9786-71600fd7517e" URI="" ORDERINDEX="742" PARTOF_ID="1751" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1236" CREATED="2009-01-28 17:07:04.0" UUID="df1b04c7-f978-4ad4-8bbf-618aed7e44a9" URI="" ORDERINDEX="741" PARTOF_ID="1752" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1237" CREATED="2009-01-28 17:07:04.0" UUID="5150bbcf-0c6f-4010-973a-e9856bcfc396" URI="" ORDERINDEX="740" PARTOF_ID="1753" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1238" CREATED="2009-01-28 17:07:04.0" UUID="31b3c605-0f49-4d73-b018-c86e4ca4de50" URI="" ORDERINDEX="739" PARTOF_ID="1754" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1239" CREATED="2009-01-28 17:07:04.0" UUID="f3253f0d-05ce-41d7-ae5a-10fa60c7f547" URI="" ORDERINDEX="738" PARTOF_ID="1755" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1240" CREATED="2009-01-28 17:07:04.0" UUID="ce577904-25e7-4172-b15d-eb5e7469167f" URI="" ORDERINDEX="737" PARTOF_ID="1756" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1241" CREATED="2009-01-28 17:07:04.0" UUID="b69b568c-b8b5-49f3-8d1e-84a737d928ab" URI="" ORDERINDEX="736" PARTOF_ID="1757" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1242" CREATED="2009-01-28 17:07:04.0" UUID="59f4887a-6724-42b5-af22-c9e7b009891f" URI="" ORDERINDEX="735" PARTOF_ID="1758" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1243" CREATED="2009-01-28 17:07:04.0" UUID="dd63dd30-16a9-46c4-a6a9-67dc83eaf2aa" URI="" ORDERINDEX="734" PARTOF_ID="1758" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1244" CREATED="2009-01-28 17:07:04.0" UUID="84af6761-0b47-4ff6-bf66-7b03287ac0cf" URI="" ORDERINDEX="733" PARTOF_ID="1759" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1245" CREATED="2009-01-28 17:07:04.0" UUID="18e391d2-3a8c-4efd-83e5-605dc178b7eb" URI="" ORDERINDEX="732" PARTOF_ID="1760" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1246" CREATED="2009-01-28 17:07:04.0" UUID="a7a53d93-6a43-4c0c-b9c5-f832f125c5bf" URI="" ORDERINDEX="731" PARTOF_ID="1761" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1247" CREATED="2009-01-28 17:07:04.0" UUID="742abf05-8d1c-4939-b97d-927b17341415" URI="" ORDERINDEX="730" PARTOF_ID="1762" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1248" CREATED="2009-01-28 17:07:04.0" UUID="8452f319-86c9-4065-88e4-7adf66e945fd" URI="" ORDERINDEX="729" PARTOF_ID="1763" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1249" CREATED="2009-01-28 17:07:04.0" UUID="2cc9b611-f48a-4a21-b28c-f0a580b6bf06" URI="" ORDERINDEX="728" PARTOF_ID="1764" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1250" CREATED="2009-01-28 17:07:04.0" UUID="e1120ec1-7ee1-475e-b880-f66631666f7a" URI="" ORDERINDEX="727" PARTOF_ID="1765" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1251" CREATED="2009-01-28 17:07:04.0" UUID="0cf7c7c4-fa55-41e2-8c25-b9a5fede449b" URI="" ORDERINDEX="726" PARTOF_ID="1766" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1252" CREATED="2009-01-28 17:07:04.0" UUID="9fd8ad23-d932-4cdc-8822-029685073c5c" URI="" ORDERINDEX="725" PARTOF_ID="1767" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1253" CREATED="2009-01-28 17:07:04.0" UUID="36b93871-0bee-4380-b47e-56a843ce6aa3" URI="" ORDERINDEX="724" PARTOF_ID="1768" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1254" CREATED="2009-01-28 17:07:04.0" UUID="494fb115-9cf0-4e34-9fed-612b64e3224e" URI="" ORDERINDEX="723" PARTOF_ID="1769" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1255" CREATED="2009-01-28 17:07:04.0" UUID="264f2319-0749-47b8-9a39-17c2a57189d0" URI="" ORDERINDEX="722" PARTOF_ID="1769" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1256" CREATED="2009-01-28 17:07:04.0" UUID="11192c4f-e0c9-4f28-8c6d-064c9f694bb0" URI="" ORDERINDEX="721" PARTOF_ID="1769" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1257" CREATED="2009-01-28 17:07:04.0" UUID="72a3ca2e-6c7d-451e-aa15-c7cd0e86a370" URI="" ORDERINDEX="720" PARTOF_ID="1769" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1258" CREATED="2009-01-28 17:07:04.0" UUID="6c30ac35-c486-4e72-a48b-4987585c9fde" URI="" ORDERINDEX="719" PARTOF_ID="1770" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1259" CREATED="2009-01-28 17:07:04.0" UUID="c36d5a55-033c-4f34-bbea-d435304ceeba" URI="" ORDERINDEX="718" PARTOF_ID="1771" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1260" CREATED="2009-01-28 17:07:04.0" UUID="0fcb6ed1-fb5f-4360-9ced-1fac46bdc8bb" URI="" ORDERINDEX="717" PARTOF_ID="1772" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1261" CREATED="2009-01-28 17:07:04.0" UUID="a97d4f6b-7f86-4125-b3ff-f7c3ceb0f495" URI="" ORDERINDEX="716" PARTOF_ID="1772" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1262" CREATED="2009-01-28 17:07:04.0" UUID="d9ef6446-b38f-4176-874c-b90b7fe0458b" URI="" ORDERINDEX="715" PARTOF_ID="1772" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1263" CREATED="2009-01-28 17:07:04.0" UUID="497a208e-9337-4708-9f3a-17efef2f33a8" URI="" ORDERINDEX="714" PARTOF_ID="1773" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1264" CREATED="2009-01-28 17:07:04.0" UUID="f46d2d84-0387-41dd-9e77-28f9d7d06f16" URI="" ORDERINDEX="713" PARTOF_ID="1774" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1265" CREATED="2009-01-28 17:07:04.0" UUID="bb16684c-0638-4831-99df-f9a2dd7b7e6b" URI="" ORDERINDEX="712" PARTOF_ID="1775" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1266" CREATED="2009-01-28 17:07:04.0" UUID="419e3ef7-c1dc-47af-83f7-2b05c9ebae4c" URI="" ORDERINDEX="711" PARTOF_ID="1776" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1267" CREATED="2009-01-28 17:07:04.0" UUID="a2e12f91-a168-492e-aaaf-22aae4cd2397" URI="" ORDERINDEX="710" PARTOF_ID="1776" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1268" CREATED="2009-01-28 17:07:04.0" UUID="6e7245aa-e3cd-4251-90ee-a3f85aede88e" URI="" ORDERINDEX="709" PARTOF_ID="1777" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1269" CREATED="2009-01-28 17:07:04.0" UUID="6ef83660-69ed-477c-b2ef-639852b104b1" URI="" ORDERINDEX="708" PARTOF_ID="1778" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1270" CREATED="2009-01-28 17:07:04.0" UUID="b287bb04-2d21-405b-bc93-bd207b38bd36" URI="" ORDERINDEX="707" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1271" CREATED="2009-01-28 17:07:04.0" UUID="7a97e38a-1e5d-4e6d-91d2-ec9f6364cc4c" URI="" ORDERINDEX="706" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1272" CREATED="2009-01-28 17:07:04.0" UUID="54444bfd-cdc4-4043-9ebf-14d2b141395f" URI="" ORDERINDEX="705" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1273" CREATED="2009-01-28 17:07:04.0" UUID="a4fb4d07-4c7a-4ce6-a928-131d0a34db17" URI="" ORDERINDEX="704" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1274" CREATED="2009-01-28 17:07:04.0" UUID="0e1f785c-dfff-4137-86bd-5c4047894d8e" URI="" ORDERINDEX="703" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1275" CREATED="2009-01-28 17:07:04.0" UUID="94ede15d-c1b6-466e-af32-19dbdf090da3" URI="" ORDERINDEX="702" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1276" CREATED="2009-01-28 17:07:04.0" UUID="c11458c6-81d4-4cb9-b800-74097c655cc8" URI="" ORDERINDEX="701" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1277" CREATED="2009-01-28 17:07:04.0" UUID="ed5512f2-f762-422d-aaf5-57aa813a22df" URI="" ORDERINDEX="700" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1278" CREATED="2009-01-28 17:07:04.0" UUID="f84c153b-360b-472d-a641-806c4200af35" URI="" ORDERINDEX="699" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1279" CREATED="2009-01-28 17:07:04.0" UUID="1fdd0e8a-0f7c-440a-9982-b5d97eb98f5f" URI="" ORDERINDEX="698" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1280" CREATED="2009-01-28 17:07:04.0" UUID="c2662a7d-e26a-447e-a130-22b39bef2f80" URI="" ORDERINDEX="697" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1281" CREATED="2009-01-28 17:07:04.0" UUID="f82fcc4b-1e50-4cd3-ace5-6c3bffdfb251" URI="" ORDERINDEX="696" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1282" CREATED="2009-01-28 17:07:04.0" UUID="ba304903-cad7-45e9-9955-501a7aa3fb54" URI="" ORDERINDEX="695" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1283" CREATED="2009-01-28 17:07:04.0" UUID="0bf52a90-8f06-4881-b90b-c940522e264c" URI="" ORDERINDEX="694" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1284" CREATED="2009-01-28 17:07:04.0" UUID="4fed0fd3-8648-4104-88dc-b1133b5b5227" URI="" ORDERINDEX="693" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1285" CREATED="2009-01-28 17:07:04.0" UUID="ca200baf-24bd-4dfe-bdc9-4cd2869f0cea" URI="" ORDERINDEX="692" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1286" CREATED="2009-01-28 17:07:04.0" UUID="8a858374-81e4-4585-ae5f-4cd618400fd9" URI="" ORDERINDEX="691" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1287" CREATED="2009-01-28 17:07:04.0" UUID="ae4e8d1a-4495-4d6e-bfbb-e28256349d85" URI="" ORDERINDEX="690" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1288" CREATED="2009-01-28 17:07:04.0" UUID="e81dffef-c1db-4c3d-8dbb-dec57dc40eab" URI="" ORDERINDEX="689" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1289" CREATED="2009-01-28 17:07:04.0" UUID="f52dc5be-6b3c-440a-9089-f3eaeed5c857" URI="" ORDERINDEX="688" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1290" CREATED="2009-01-28 17:07:04.0" UUID="66a7b6f2-da99-47b2-a603-eb6ddae91d50" URI="" ORDERINDEX="687" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1291" CREATED="2009-01-28 17:07:04.0" UUID="d5106e1d-40dc-405e-ab8a-5a854ebd1f86" URI="" ORDERINDEX="686" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1292" CREATED="2009-01-28 17:07:04.0" UUID="104d84f7-716c-44a2-a174-60c01ce0f9af" URI="" ORDERINDEX="685" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1293" CREATED="2009-01-28 17:07:04.0" UUID="042ab3ee-9bcc-4925-88cf-35137e029b86" URI="" ORDERINDEX="684" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1294" CREATED="2009-01-28 17:07:04.0" UUID="d8d51792-9a41-44f8-bffb-f22ebaef3754" URI="" ORDERINDEX="683" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1295" CREATED="2009-01-28 17:07:04.0" UUID="a9931f3e-e059-4b32-a666-23c10c714407" URI="" ORDERINDEX="682" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1296" CREATED="2009-01-28 17:07:04.0" UUID="9acf4863-3eac-4859-aea8-dc79134b33a8" URI="" ORDERINDEX="681" PARTOF_ID="1780" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1297" CREATED="2009-01-28 17:07:04.0" UUID="3887f38f-ae38-4ed8-b2a9-41f6b78a2d43" URI="" ORDERINDEX="680" PARTOF_ID="1781" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1298" CREATED="2009-01-28 17:07:04.0" UUID="993ec1df-8c6b-4f75-a66c-738ce9d71957" URI="" ORDERINDEX="679" PARTOF_ID="1782" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1299" CREATED="2009-01-28 17:07:04.0" UUID="6f8dc312-e77e-4935-8a76-f24969bc7078" URI="" ORDERINDEX="678" PARTOF_ID="1783" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1300" CREATED="2009-01-28 17:07:04.0" UUID="d3d2765d-d059-4713-9123-baf8ca074a32" URI="" ORDERINDEX="677" PARTOF_ID="1784" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1301" CREATED="2009-01-28 17:07:04.0" UUID="3fea8c26-1fab-4b57-a89b-ec7ef2e532d2" URI="" ORDERINDEX="676" PARTOF_ID="1785" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1302" CREATED="2009-01-28 17:07:04.0" UUID="c605878a-8b5f-454e-abfd-c2f9c77002ec" URI="" ORDERINDEX="675" PARTOF_ID="1786" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1303" CREATED="2009-01-28 17:07:04.0" UUID="d3cb6808-e47d-4d10-a339-c9a93684d342" URI="" ORDERINDEX="674" PARTOF_ID="1787" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1304" CREATED="2009-01-28 17:07:04.0" UUID="3cc53cea-2323-4914-a663-0611c0636f13" URI="" ORDERINDEX="673" PARTOF_ID="1787" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1305" CREATED="2009-01-28 17:07:04.0" UUID="b5ccde93-c0fb-4b4c-a3b1-2a87829e84da" URI="" ORDERINDEX="672" PARTOF_ID="1787" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1306" CREATED="2009-01-28 17:07:04.0" UUID="62e2f64a-d0dd-4a9b-9214-59ca95ffac30" URI="" ORDERINDEX="671" PARTOF_ID="1788" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1307" CREATED="2009-01-28 17:07:04.0" UUID="d6af812a-d9fd-46ab-91ca-595c2cdacfa0" URI="" ORDERINDEX="670" PARTOF_ID="1788" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1308" CREATED="2009-01-28 17:07:04.0" UUID="97ab4587-7677-4cb2-b198-0ea99a25a694" URI="" ORDERINDEX="669" PARTOF_ID="1789" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1309" CREATED="2009-01-28 17:07:04.0" UUID="1e8c8b3b-b91a-4b4e-b445-9a5ac606b502" URI="" ORDERINDEX="668" PARTOF_ID="1790" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1310" CREATED="2009-01-28 17:07:04.0" UUID="ae6f3667-5ee6-42b0-8af9-da33af7e22a4" URI="" ORDERINDEX="667" PARTOF_ID="1791" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1311" CREATED="2009-01-28 17:07:04.0" UUID="78a1681f-cbcd-4d5c-ad1c-b4b1dc30e9cb" URI="" ORDERINDEX="666" PARTOF_ID="1792" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1312" CREATED="2009-01-28 17:07:04.0" UUID="ed84cd13-29d1-4348-bd36-ef4cb2d3b9a6" URI="" ORDERINDEX="665" PARTOF_ID="1792" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1313" CREATED="2009-01-28 17:07:04.0" UUID="e21b5be6-1492-4123-abfe-d45fd5136b25" URI="" ORDERINDEX="664" PARTOF_ID="1792" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1314" CREATED="2009-01-28 17:07:04.0" UUID="60a7d818-1910-4a95-9620-8d83592f9bd8" URI="" ORDERINDEX="663" PARTOF_ID="1793" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1315" CREATED="2009-01-28 17:07:04.0" UUID="b7fc1c91-c4a3-487d-937e-cc8f763b717a" URI="" ORDERINDEX="662" PARTOF_ID="1794" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1316" CREATED="2009-01-28 17:07:04.0" UUID="3a27e7e5-16ea-47db-b783-9f9e60bbd2d4" URI="" ORDERINDEX="661" PARTOF_ID="1795" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1317" CREATED="2009-01-28 17:07:04.0" UUID="7dd4d6fb-ecd3-43c6-a7ef-1921162d107c" URI="" ORDERINDEX="660" PARTOF_ID="1796" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1318" CREATED="2009-01-28 17:07:04.0" UUID="632ccb5f-6864-4f2d-a764-5e963cab6de9" URI="" ORDERINDEX="659" PARTOF_ID="1797" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1319" CREATED="2009-01-28 17:07:04.0" UUID="7987d14f-5346-4a6c-98ca-b739ccc1470b" URI="" ORDERINDEX="658" PARTOF_ID="1798" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1320" CREATED="2009-01-28 17:07:04.0" UUID="c64e07cc-0a58-44b3-ac91-c216d1b91c1f" URI="" ORDERINDEX="657" PARTOF_ID="1799" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1321" CREATED="2009-01-28 17:07:04.0" UUID="d73cc73e-5e7e-43b5-9e15-d791b4f86f2f" URI="" ORDERINDEX="656" PARTOF_ID="1799" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1322" CREATED="2009-01-28 17:07:04.0" UUID="47023991-ff3f-499b-903b-97f9d9d9aaa9" URI="" ORDERINDEX="655" PARTOF_ID="1799" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1323" CREATED="2009-01-28 17:07:04.0" UUID="5df6d614-b1f7-41b1-b430-b74692f5abd6" URI="" ORDERINDEX="654" PARTOF_ID="1799" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1324" CREATED="2009-01-28 17:07:04.0" UUID="2dabc6d7-7e2a-4adc-9c9c-7244d4099fd5" URI="" ORDERINDEX="653" PARTOF_ID="1800" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1325" CREATED="2009-01-28 17:07:04.0" UUID="bdec0502-18da-47fa-b101-74fb3e2fa52a" URI="" ORDERINDEX="652" PARTOF_ID="1801" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1326" CREATED="2009-01-28 17:07:04.0" UUID="92389b5b-067c-4c8f-a5b7-2bf4ab5df860" URI="" ORDERINDEX="651" PARTOF_ID="1802" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1327" CREATED="2009-01-28 17:07:04.0" UUID="3489394e-a20c-4e24-93c8-869d54f522ca" URI="" ORDERINDEX="650" PARTOF_ID="1803" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1328" CREATED="2009-01-28 17:07:04.0" UUID="dd5be3e5-e7ff-48be-b1f3-32f93996bd38" URI="" ORDERINDEX="649" PARTOF_ID="1804" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1329" CREATED="2009-01-28 17:07:04.0" UUID="0e3306bd-6f2d-4f31-be3f-7c97648352a9" URI="" ORDERINDEX="648" PARTOF_ID="1805" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1330" CREATED="2009-01-28 17:07:04.0" UUID="d4d02666-40a0-45c3-894b-482f64b54f69" URI="" ORDERINDEX="647" PARTOF_ID="1806" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1331" CREATED="2009-01-28 17:07:04.0" UUID="41c5129a-3465-42cc-b016-59ab9ffad71a" URI="" ORDERINDEX="646" PARTOF_ID="1806" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1332" CREATED="2009-01-28 17:07:04.0" UUID="7be07113-7c04-4fb2-9e63-6759bcc39a7a" URI="" ORDERINDEX="645" PARTOF_ID="1806" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1333" CREATED="2009-01-28 17:07:04.0" UUID="08eb9360-bdfc-42cc-9c35-655cdc018f58" URI="" ORDERINDEX="644" PARTOF_ID="1807" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1334" CREATED="2009-01-28 17:07:04.0" UUID="c21e91c8-ba91-45ac-81fd-cd13452911d1" URI="" ORDERINDEX="643" PARTOF_ID="1808" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1335" CREATED="2009-01-28 17:07:04.0" UUID="f71525d8-0913-4a5c-97f1-a8374a8843da" URI="" ORDERINDEX="642" PARTOF_ID="1809" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1336" CREATED="2009-01-28 17:07:04.0" UUID="de779b91-732f-4aee-ace6-5647b1787509" URI="" ORDERINDEX="641" PARTOF_ID="1810" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1337" CREATED="2009-01-28 17:07:04.0" UUID="e2af7b11-9179-4cac-ba35-65e8ec9053ae" URI="" ORDERINDEX="640" PARTOF_ID="1811" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1338" CREATED="2009-01-28 17:07:04.0" UUID="44a6ee56-767a-463f-b8ad-e924f0d2f3e5" URI="" ORDERINDEX="639" PARTOF_ID="1812" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1339" CREATED="2009-01-28 17:07:04.0" UUID="001304b9-c267-4dcc-be52-16bbd936ea1f" URI="" ORDERINDEX="638" PARTOF_ID="1813" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1340" CREATED="2009-01-28 17:07:04.0" UUID="a561767e-348c-46cd-9942-264d41fb67b7" URI="" ORDERINDEX="637" PARTOF_ID="1814" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1341" CREATED="2009-01-28 17:07:04.0" UUID="df21cb0e-ac98-4534-a603-0b18ba6059d4" URI="" ORDERINDEX="636" PARTOF_ID="1815" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1342" CREATED="2009-01-28 17:07:04.0" UUID="c086fb8d-ee90-404d-8bca-9412aaa6b0d9" URI="" ORDERINDEX="635" PARTOF_ID="1816" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1343" CREATED="2009-01-28 17:07:04.0" UUID="6ac84372-1882-4bc0-8154-8674ba925f10" URI="" ORDERINDEX="634" PARTOF_ID="1816" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1344" CREATED="2009-01-28 17:07:04.0" UUID="6a91ae3b-14af-4de6-8a12-be93bbd9166a" URI="" ORDERINDEX="633" PARTOF_ID="1816" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1345" CREATED="2009-01-28 17:07:04.0" UUID="babf2ddb-eba1-488a-bea8-21b098ddb315" URI="" ORDERINDEX="632" PARTOF_ID="1816" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1346" CREATED="2009-01-28 17:07:04.0" UUID="6e2fd22b-7fcd-40d1-bc6f-cdc593b182ac" URI="" ORDERINDEX="631" PARTOF_ID="1817" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1347" CREATED="2009-01-28 17:07:04.0" UUID="4545d099-32e6-44f8-bce9-8c29df82cde7" URI="" ORDERINDEX="630" PARTOF_ID="1818" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1348" CREATED="2009-01-28 17:07:04.0" UUID="80b8d861-0e07-489d-9977-970a7e6d832a" URI="" ORDERINDEX="629" PARTOF_ID="1819" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1349" CREATED="2009-01-28 17:07:04.0" UUID="352c212b-c0bc-4294-b87e-c3d8fdbed724" URI="" ORDERINDEX="628" PARTOF_ID="1820" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1350" CREATED="2009-01-28 17:07:04.0" UUID="5efab129-f8dc-4029-bdc3-5fbe3aaf71dc" URI="" ORDERINDEX="627" PARTOF_ID="1821" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1351" CREATED="2009-01-28 17:07:04.0" UUID="f8265093-496d-4e00-b732-460f0ee2fca5" URI="" ORDERINDEX="626" PARTOF_ID="1822" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1352" CREATED="2009-01-28 17:07:04.0" UUID="f8ea3076-0f5c-46aa-a8a3-2669e9ccc522" URI="" ORDERINDEX="625" PARTOF_ID="1823" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1353" CREATED="2009-01-28 17:07:04.0" UUID="f818c97e-fd61-42fe-9d75-d433f8cb349c" URI="" ORDERINDEX="624" PARTOF_ID="1824" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1354" CREATED="2009-01-28 17:07:04.0" UUID="2040cd9f-3fb0-4b47-8984-5a72fbfbcad9" URI="" ORDERINDEX="623" PARTOF_ID="1825" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1355" CREATED="2009-01-28 17:07:04.0" UUID="d4170b17-ebe4-4fb4-b5b1-3b8da07ae683" URI="" ORDERINDEX="622" PARTOF_ID="1826" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1356" CREATED="2009-01-28 17:07:04.0" UUID="cd9612b2-1a27-4895-966c-59fcfe7c49d2" URI="" ORDERINDEX="621" PARTOF_ID="1826" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1357" CREATED="2009-01-28 17:07:04.0" UUID="9d447b51-e363-4dde-ae40-84c55679983c" URI="" ORDERINDEX="620" PARTOF_ID="1827" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1358" CREATED="2009-01-28 17:07:04.0" UUID="c5773847-3eb1-4a6a-ab97-30ea78651205" URI="" ORDERINDEX="619" PARTOF_ID="1828" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1359" CREATED="2009-01-28 17:07:04.0" UUID="66ce6bb4-b48e-483b-aed1-62646e9c80b8" URI="" ORDERINDEX="618" PARTOF_ID="1829" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1360" CREATED="2009-01-28 17:07:04.0" UUID="de4e0b06-a751-4dfa-b838-504204213780" URI="" ORDERINDEX="617" PARTOF_ID="1830" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1361" CREATED="2009-01-28 17:07:04.0" UUID="94d17555-90d0-43b6-92fa-a4ec0f776833" URI="" ORDERINDEX="616" PARTOF_ID="1831" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1362" CREATED="2009-01-28 17:07:04.0" UUID="c2c92549-0f3d-4f96-9950-6503bf1d45e1" URI="" ORDERINDEX="615" PARTOF_ID="1832" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1363" CREATED="2009-01-28 17:07:04.0" UUID="387ee427-88af-4791-8357-335b8d75839f" URI="" ORDERINDEX="614" PARTOF_ID="1833" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1364" CREATED="2009-01-28 17:07:04.0" UUID="98cd8286-032a-49db-8034-0d52aa6be72d" URI="" ORDERINDEX="613" PARTOF_ID="1833" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1365" CREATED="2009-01-28 17:07:04.0" UUID="1a6e7f6b-824d-40e0-846c-895855640500" URI="" ORDERINDEX="612" PARTOF_ID="1834" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1366" CREATED="2009-01-28 17:07:04.0" UUID="b3cf874d-745b-4574-8887-6c2cbe8e6188" URI="" ORDERINDEX="611" PARTOF_ID="1835" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1367" CREATED="2009-01-28 17:07:04.0" UUID="70fb4828-7756-4f13-8813-4da957f6c424" URI="" ORDERINDEX="610" PARTOF_ID="1835" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1368" CREATED="2009-01-28 17:07:04.0" UUID="2466ddca-9662-42ea-97ea-85b0405f8155" URI="" ORDERINDEX="609" PARTOF_ID="1835" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1369" CREATED="2009-01-28 17:07:04.0" UUID="f0775631-b985-48f9-847c-990f6d921c46" URI="" ORDERINDEX="608" PARTOF_ID="1836" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1370" CREATED="2009-01-28 17:07:04.0" UUID="3af035d9-de46-42a6-af98-37b8bfcb5768" URI="" ORDERINDEX="607" PARTOF_ID="1836" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1371" CREATED="2009-01-28 17:07:04.0" UUID="70cf656c-21c0-4c67-a737-2331539d430f" URI="" ORDERINDEX="606" PARTOF_ID="1836" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1372" CREATED="2009-01-28 17:07:04.0" UUID="c839afa6-1db2-4b48-9d79-250fcfed9f89" URI="" ORDERINDEX="605" PARTOF_ID="1837" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1373" CREATED="2009-01-28 17:07:04.0" UUID="a7570889-39a4-4bb8-b28f-77bd153d44fa" URI="" ORDERINDEX="604" PARTOF_ID="1838" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1374" CREATED="2009-01-28 17:07:04.0" UUID="318423a0-3cd7-47f4-8452-2eca950092b3" URI="" ORDERINDEX="603" PARTOF_ID="1839" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1375" CREATED="2009-01-28 17:07:04.0" UUID="67acff9a-257d-469c-8b17-607fdbceaa2e" URI="" ORDERINDEX="602" PARTOF_ID="1840" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1376" CREATED="2009-01-28 17:07:04.0" UUID="99fe5d0f-56c9-4e18-b429-0971b8f12b25" URI="" ORDERINDEX="601" PARTOF_ID="1841" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1377" CREATED="2009-01-28 17:07:04.0" UUID="0a57ef70-bea5-40cb-a8e7-481478da5d06" URI="" ORDERINDEX="600" PARTOF_ID="1841" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1378" CREATED="2009-01-28 17:07:04.0" UUID="1320f903-d644-40b9-8ee2-275dfa384ad1" URI="" ORDERINDEX="599" PARTOF_ID="1842" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1379" CREATED="2009-01-28 17:07:04.0" UUID="336518de-0645-4454-b730-dd7099d00fdd" URI="" ORDERINDEX="598" PARTOF_ID="1843" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1380" CREATED="2009-01-28 17:07:04.0" UUID="275bb1e9-72de-4345-a7f6-c2e473ad850b" URI="" ORDERINDEX="597" PARTOF_ID="1844" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1381" CREATED="2009-01-28 17:07:04.0" UUID="6db5c74f-a5d3-423d-a678-7112be81f963" URI="" ORDERINDEX="596" PARTOF_ID="1845" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1382" CREATED="2009-01-28 17:07:04.0" UUID="0a6165e5-31e5-4323-9d92-b25821194fcd" URI="" ORDERINDEX="595" PARTOF_ID="1846" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1383" CREATED="2009-01-28 17:07:04.0" UUID="2f978481-3921-4173-8fe7-4b51c84e6649" URI="" ORDERINDEX="594" PARTOF_ID="1846" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1384" CREATED="2009-01-28 17:07:04.0" UUID="9a63d984-b405-4bc0-8e08-dbb79109782d" URI="" ORDERINDEX="593" PARTOF_ID="1846" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1385" CREATED="2009-01-28 17:07:04.0" UUID="5ea2ef41-e327-4d59-9c92-760d9073646e" URI="" ORDERINDEX="592" PARTOF_ID="1847" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1386" CREATED="2009-01-28 17:07:04.0" UUID="3307fceb-69ff-4a20-88be-6d34ae89409d" URI="" ORDERINDEX="591" PARTOF_ID="1847" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1387" CREATED="2009-01-28 17:07:04.0" UUID="beac5efa-f57e-47ea-8772-7f9541fa8765" URI="" ORDERINDEX="590" PARTOF_ID="1847" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1388" CREATED="2009-01-28 17:07:04.0" UUID="eca8bb03-8336-4396-8e0b-2d98c5a62a32" URI="" ORDERINDEX="589" PARTOF_ID="1848" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1389" CREATED="2009-01-28 17:07:04.0" UUID="b9c97d9c-8cf9-408e-a391-8d6cb0ba72a3" URI="" ORDERINDEX="588" PARTOF_ID="1849" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1390" CREATED="2009-01-28 17:07:04.0" UUID="a94636e2-6490-4011-9bfa-efa3a3af0972" URI="" ORDERINDEX="587" PARTOF_ID="1849" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1391" CREATED="2009-01-28 17:07:04.0" UUID="b43a3d93-f3ad-427b-a462-7500d8a615e9" URI="" ORDERINDEX="586" PARTOF_ID="1849" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1392" CREATED="2009-01-28 17:07:04.0" UUID="dc6dd81a-cdb5-4c5c-9275-319ec6c535fd" URI="" ORDERINDEX="585" PARTOF_ID="1849" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1393" CREATED="2009-01-28 17:07:04.0" UUID="9be63577-5283-4bcb-9739-c0f560594d54" URI="" ORDERINDEX="584" PARTOF_ID="1849" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1394" CREATED="2009-01-28 17:07:04.0" UUID="51f7efdb-4632-4628-a395-6cc57047453e" URI="" ORDERINDEX="583" PARTOF_ID="1849" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1395" CREATED="2009-01-28 17:07:04.0" UUID="18573a20-1b4d-41a7-995d-7ac2f68abff7" URI="" ORDERINDEX="582" PARTOF_ID="1849" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1396" CREATED="2009-01-28 17:07:04.0" UUID="89843ff7-05f0-455e-b97f-b22312964255" URI="" ORDERINDEX="581" PARTOF_ID="1850" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1397" CREATED="2009-01-28 17:07:04.0" UUID="96433579-0c5f-4d67-9857-dd6ab34895c0" URI="" ORDERINDEX="580" PARTOF_ID="1851" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1398" CREATED="2009-01-28 17:07:04.0" UUID="fce7c291-a555-434d-a8e0-e06140bbaecf" URI="" ORDERINDEX="579" PARTOF_ID="1852" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1399" CREATED="2009-01-28 17:07:04.0" UUID="a3252a2b-1210-466b-8683-472fda15d50c" URI="" ORDERINDEX="578" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1400" CREATED="2009-01-28 17:07:04.0" UUID="21162d82-eacf-4a45-99d8-19a32badad8e" URI="" ORDERINDEX="577" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1401" CREATED="2009-01-28 17:07:04.0" UUID="f2a0c8a0-b869-463d-8db1-942b73f7df64" URI="" ORDERINDEX="576" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1402" CREATED="2009-01-28 17:07:04.0" UUID="70877ae8-f708-4624-9caa-db789f5d26c2" URI="" ORDERINDEX="575" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1403" CREATED="2009-01-28 17:07:04.0" UUID="a40f5ee5-a595-46de-8b93-506cc61a30d7" URI="" ORDERINDEX="574" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1404" CREATED="2009-01-28 17:07:04.0" UUID="a7cf6e57-c704-4d96-9c6d-3fb1eaf474e3" URI="" ORDERINDEX="573" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1405" CREATED="2009-01-28 17:07:04.0" UUID="4292f645-5741-49af-a747-38b36e91ff8d" URI="" ORDERINDEX="572" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1406" CREATED="2009-01-28 17:07:04.0" UUID="de638bfb-9703-491c-a66f-0113846a56b8" URI="" ORDERINDEX="571" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1407" CREATED="2009-01-28 17:07:04.0" UUID="f0463996-504b-4398-a3bd-21b5afc9a736" URI="" ORDERINDEX="570" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1408" CREATED="2009-01-28 17:07:04.0" UUID="76f0b8a6-edc1-43c4-8fc8-fbfbca101fee" URI="" ORDERINDEX="569" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1409" CREATED="2009-01-28 17:07:04.0" UUID="0a662d74-ecb7-4bb0-a458-2442612f4df5" URI="" ORDERINDEX="568" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1410" CREATED="2009-01-28 17:07:04.0" UUID="599579c2-1e1a-4668-8bd6-1dabce3282d9" URI="" ORDERINDEX="567" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1411" CREATED="2009-01-28 17:07:04.0" UUID="b1650734-9e24-4409-9dd3-8cb5f206d0ca" URI="" ORDERINDEX="566" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1412" CREATED="2009-01-28 17:07:04.0" UUID="5ce6089a-9212-4cbc-b42c-5b1197043c86" URI="" ORDERINDEX="565" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1413" CREATED="2009-01-28 17:07:04.0" UUID="88dda871-eef1-4e00-b96d-7490703de84d" URI="" ORDERINDEX="564" PARTOF_ID="1854" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1414" CREATED="2009-01-28 17:07:04.0" UUID="7b1cec1a-739e-437b-bf7b-bfde1b71828f" URI="" ORDERINDEX="563" PARTOF_ID="1855" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1415" CREATED="2009-01-28 17:07:04.0" UUID="a0fac021-61c4-44d2-ac7e-d4d9a5c7927d" URI="" ORDERINDEX="562" PARTOF_ID="1855" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1416" CREATED="2009-01-28 17:07:04.0" UUID="97ee7fee-940a-48fd-8d3a-42edb21b7591" URI="" ORDERINDEX="561" PARTOF_ID="1855" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1417" CREATED="2009-01-28 17:07:04.0" UUID="96471c82-c993-4609-a272-f4bb7df1158f" URI="" ORDERINDEX="560" PARTOF_ID="1855" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1418" CREATED="2009-01-28 17:07:04.0" UUID="2982aae9-e60f-4aed-ada1-29968277af2d" URI="" ORDERINDEX="559" PARTOF_ID="1855" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1419" CREATED="2009-01-28 17:07:04.0" UUID="ea148213-215b-4548-a393-f472b39dc6fd" URI="" ORDERINDEX="558" PARTOF_ID="1855" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1420" CREATED="2009-01-28 17:07:04.0" UUID="0dd6f4f6-2d38-41fa-8ae1-6689bae0638a" URI="" ORDERINDEX="557" PARTOF_ID="1855" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1421" CREATED="2009-01-28 17:07:04.0" UUID="a6cabaff-16b5-4207-878a-a4bf70260e83" URI="" ORDERINDEX="556" PARTOF_ID="1856" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1422" CREATED="2009-01-28 17:07:04.0" UUID="ac40926b-a478-48bb-8719-13119b3b2bcd" URI="" ORDERINDEX="555" PARTOF_ID="1856" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1423" CREATED="2009-01-28 17:07:04.0" UUID="93840e4a-d5de-468d-a35a-629430192791" URI="" ORDERINDEX="554" PARTOF_ID="1856" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1424" CREATED="2009-01-28 17:07:04.0" UUID="629f51dd-27a1-49ac-9253-fa5ca793fdf0" URI="" ORDERINDEX="553" PARTOF_ID="1857" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1425" CREATED="2009-01-28 17:07:04.0" UUID="b393d5ec-4865-45b0-b688-22d88bac137b" URI="" ORDERINDEX="552" PARTOF_ID="1857" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1426" CREATED="2009-01-28 17:07:04.0" UUID="62d6672c-13a4-4df8-b40d-f996e9d8e6b0" URI="" ORDERINDEX="551" PARTOF_ID="1858" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1427" CREATED="2009-01-28 17:07:04.0" UUID="eedbd7df-cfa9-4506-91bc-8ab052183462" URI="" ORDERINDEX="550" PARTOF_ID="1859" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1428" CREATED="2009-01-28 17:07:04.0" UUID="cbabc112-bc00-402a-81ee-57e945b6c298" URI="" ORDERINDEX="549" PARTOF_ID="1859" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1429" CREATED="2009-01-28 17:07:04.0" UUID="f40ef648-3dbc-4f2e-b0a9-cb526dd88c80" URI="" ORDERINDEX="548" PARTOF_ID="1859" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1430" CREATED="2009-01-28 17:07:04.0" UUID="78afe8a9-fcaa-4f2a-8ad9-718f10e9881f" URI="" ORDERINDEX="547" PARTOF_ID="1859" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1431" CREATED="2009-01-28 17:07:04.0" UUID="fd0c336a-5081-444d-b8b2-6111ef74e26b" URI="" ORDERINDEX="546" PARTOF_ID="1859" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1432" CREATED="2009-01-28 17:07:04.0" UUID="0e64f21a-8ea7-40aa-8513-63606447a546" URI="" ORDERINDEX="545" PARTOF_ID="1860" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1433" CREATED="2009-01-28 17:07:04.0" UUID="ddeadead-dd96-4a27-9289-b6fc197bdf08" URI="" ORDERINDEX="544" PARTOF_ID="1861" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1434" CREATED="2009-01-28 17:07:04.0" UUID="192d277b-7559-4bb5-b212-a4d64810d973" URI="" ORDERINDEX="543" PARTOF_ID="1862" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1435" CREATED="2009-01-28 17:07:04.0" UUID="b4432cd1-630c-49fb-a191-271823f4f0d2" URI="" ORDERINDEX="542" PARTOF_ID="1863" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1436" CREATED="2009-01-28 17:07:04.0" UUID="175a2a3d-dd30-4992-adad-8c8966b911fd" URI="" ORDERINDEX="541" PARTOF_ID="1864" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1437" CREATED="2009-01-28 17:07:04.0" UUID="9b303a72-5147-4c03-8758-ee4dab1249ef" URI="" ORDERINDEX="540" PARTOF_ID="1865" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1438" CREATED="2009-01-28 17:07:04.0" UUID="aed8e86e-8a54-46e8-98ec-0dc41c52859b" URI="" ORDERINDEX="539" PARTOF_ID="1866" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1439" CREATED="2009-01-28 17:07:04.0" UUID="2e81bb7d-c7f2-4cf9-a580-4ec8caaebba6" URI="" ORDERINDEX="538" PARTOF_ID="1867" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1440" CREATED="2009-01-28 17:07:04.0" UUID="57feaa67-3a87-4462-939b-3ff0e5fb87fa" URI="" ORDERINDEX="537" PARTOF_ID="1867" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1441" CREATED="2009-01-28 17:07:04.0" UUID="a755293a-e0af-4b73-bcc5-83327553ad51" URI="" ORDERINDEX="536" PARTOF_ID="1867" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1442" CREATED="2009-01-28 17:07:04.0" UUID="3c2e1e30-cd13-4d4b-aba5-444d000005cd" URI="" ORDERINDEX="535" PARTOF_ID="1868" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1443" CREATED="2009-01-28 17:07:04.0" UUID="0a6e5446-aefc-46ed-9808-5e6fb651ab45" URI="" ORDERINDEX="534" PARTOF_ID="1868" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1444" CREATED="2009-01-28 17:07:04.0" UUID="2b24d78c-c296-491c-a089-60d6fd25f769" URI="" ORDERINDEX="533" PARTOF_ID="1868" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1445" CREATED="2009-01-28 17:07:04.0" UUID="66301e48-a27b-444e-b1b5-ce99f2ab1feb" URI="" ORDERINDEX="532" PARTOF_ID="1868" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1446" CREATED="2009-01-28 17:07:04.0" UUID="62b94eee-3620-46b3-a118-8899c0d32cb8" URI="" ORDERINDEX="531" PARTOF_ID="1868" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1447" CREATED="2009-01-28 17:07:04.0" UUID="e98b37bc-5ead-4782-a561-163b14c0b6e8" URI="" ORDERINDEX="530" PARTOF_ID="1868" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1448" CREATED="2009-01-28 17:07:04.0" UUID="40987986-0481-4ea4-93e8-ea7266a74d35" URI="" ORDERINDEX="529" PARTOF_ID="1868" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1449" CREATED="2009-01-28 17:07:04.0" UUID="895e278b-51b9-4aa3-9529-15ff1cd3f205" URI="" ORDERINDEX="528" PARTOF_ID="1869" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1450" CREATED="2009-01-28 17:07:04.0" UUID="0c00b73c-7b40-48e8-ad8e-d627a250e664" URI="" ORDERINDEX="527" PARTOF_ID="1869" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1451" CREATED="2009-01-28 17:07:04.0" UUID="ed329818-e45c-4dfc-b116-3dad8c3cb923" URI="" ORDERINDEX="526" PARTOF_ID="1869" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1452" CREATED="2009-01-28 17:07:04.0" UUID="60999bdf-79e6-4bc5-ab77-6f3477187f75" URI="" ORDERINDEX="525" PARTOF_ID="1869" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1453" CREATED="2009-01-28 17:07:04.0" UUID="0d6fe90f-7f2e-4ac8-8e6b-ea543145a645" URI="" ORDERINDEX="524" PARTOF_ID="1869" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1454" CREATED="2009-01-28 17:07:04.0" UUID="b34d164e-ff7c-4cd9-9d4b-b34832837113" URI="" ORDERINDEX="523" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1455" CREATED="2009-01-28 17:07:04.0" UUID="51cb58ce-6070-41fc-bb7c-e866e9fab336" URI="" ORDERINDEX="522" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1456" CREATED="2009-01-28 17:07:04.0" UUID="5e72c1cc-fe4c-492e-927f-b1b1c4eb8235" URI="" ORDERINDEX="521" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1457" CREATED="2009-01-28 17:07:04.0" UUID="961744da-44de-4325-b051-96ece1e6d0d3" URI="" ORDERINDEX="520" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1458" CREATED="2009-01-28 17:07:04.0" UUID="6e1a0fbd-f8df-453a-bde3-2d7f75ea144b" URI="" ORDERINDEX="519" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1459" CREATED="2009-01-28 17:07:04.0" UUID="39bc4948-c03f-4a93-b54f-35d2aeedde06" URI="" ORDERINDEX="518" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1460" CREATED="2009-01-28 17:07:04.0" UUID="5b62e196-c4b3-4a67-b2f1-26bdb66dfda2" URI="" ORDERINDEX="517" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1461" CREATED="2009-01-28 17:07:04.0" UUID="39ad67bf-2b32-4831-99fd-0e669b3f78ca" URI="" ORDERINDEX="516" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1462" CREATED="2009-01-28 17:07:04.0" UUID="fded854f-ed57-46ce-a664-e6d5173c6478" URI="" ORDERINDEX="515" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1463" CREATED="2009-01-28 17:07:04.0" UUID="7876b019-46c4-425d-8d0c-1e57b4145e41" URI="" ORDERINDEX="514" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1464" CREATED="2009-01-28 17:07:04.0" UUID="00b3e39f-5359-4b0b-80ef-1ca94da03aa2" URI="" ORDERINDEX="513" PARTOF_ID="1871" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1465" CREATED="2009-01-28 17:07:04.0" UUID="bc51f7d2-776a-4ee1-9ff3-28e19cec10a7" URI="" ORDERINDEX="512" PARTOF_ID="1871" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1466" CREATED="2009-01-28 17:07:04.0" UUID="0b51b937-6b73-4b71-892d-f01d467060e1" URI="" ORDERINDEX="511" PARTOF_ID="1871" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1467" CREATED="2009-01-28 17:07:04.0" UUID="2a37be56-a42c-4a9a-ae03-fd89eac4bac1" URI="" ORDERINDEX="510" PARTOF_ID="1871" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1468" CREATED="2009-01-28 17:07:04.0" UUID="d97c5986-3e62-4c30-8f4d-df6dd4074764" URI="" ORDERINDEX="509" PARTOF_ID="1872" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1469" CREATED="2009-01-28 17:07:04.0" UUID="776d3bd4-a64e-4259-a3e6-540caab9a891" URI="" ORDERINDEX="508" PARTOF_ID="1873" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1470" CREATED="2009-01-28 17:07:04.0" UUID="3c8c5292-df45-472d-98e0-8e48a5328227" URI="" ORDERINDEX="507" PARTOF_ID="1874" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1471" CREATED="2009-01-28 17:07:04.0" UUID="2698d951-e48f-4869-8c79-1bc59db07cc4" URI="" ORDERINDEX="506" PARTOF_ID="1875" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1472" CREATED="2009-01-28 17:07:04.0" UUID="4dac21e1-61f5-45a7-8899-04e2f50dd5a3" URI="" ORDERINDEX="505" PARTOF_ID="1876" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1473" CREATED="2009-01-28 17:07:04.0" UUID="1e326747-f911-49ca-97e1-315cced55696" URI="" ORDERINDEX="504" PARTOF_ID="1877" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1474" CREATED="2009-01-28 17:07:04.0" UUID="bd44128d-ddf6-4b89-af1c-bfef6bafd155" URI="" ORDERINDEX="503" PARTOF_ID="1878" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1475" CREATED="2009-01-28 17:07:04.0" UUID="8d34b675-7de1-4623-a16a-1e0ca989df0c" URI="" ORDERINDEX="502" PARTOF_ID="1878" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1476" CREATED="2009-01-28 17:07:04.0" UUID="05c6bce3-2e55-48cb-a414-707e936066d1" URI="" ORDERINDEX="501" PARTOF_ID="1878" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1477" CREATED="2009-01-28 17:07:04.0" UUID="ca033ec6-5bd5-487a-b0f6-f363d429afa8" URI="" ORDERINDEX="500" PARTOF_ID="1878" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1478" CREATED="2009-01-28 17:07:04.0" UUID="64501083-0924-4dc3-be80-d281fa700804" URI="" ORDERINDEX="499" PARTOF_ID="1879" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1479" CREATED="2009-01-28 17:07:04.0" UUID="1e3433be-5490-463c-b988-d340603e8440" URI="" ORDERINDEX="498" PARTOF_ID="1880" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1480" CREATED="2009-01-28 17:07:04.0" UUID="50dd15a9-af27-475d-a224-23a21104bf23" URI="" ORDERINDEX="497" PARTOF_ID="1881" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1481" CREATED="2009-01-28 17:07:04.0" UUID="b788c4c4-52a7-45ec-9589-07887d88f5c6" URI="" ORDERINDEX="496" PARTOF_ID="1881" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1482" CREATED="2009-01-28 17:07:04.0" UUID="72bc25f9-5f20-4ad9-8734-ad38044b2897" URI="" ORDERINDEX="495" PARTOF_ID="1881" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1483" CREATED="2009-01-28 17:07:04.0" UUID="caef95f0-536f-493b-bcc5-2ecf478ef4aa" URI="" ORDERINDEX="494" PARTOF_ID="1881" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1484" CREATED="2009-01-28 17:07:04.0" UUID="9b33d3db-f112-4332-aadd-af490d18e4f5" URI="" ORDERINDEX="493" PARTOF_ID="1882" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1485" CREATED="2009-01-28 17:07:04.0" UUID="6fd49a11-1f31-4e7b-abfc-4890b23a9fcf" URI="" ORDERINDEX="492" PARTOF_ID="1883" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1486" CREATED="2009-01-28 17:07:04.0" UUID="d9a11144-447c-4e72-b75f-9daeb254e7c4" URI="" ORDERINDEX="491" PARTOF_ID="1884" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1487" CREATED="2009-01-28 17:07:04.0" UUID="afa00cef-9ac1-49f9-aca4-ffb01f5f634a" URI="" ORDERINDEX="490" PARTOF_ID="1885" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1488" CREATED="2009-01-28 17:07:04.0" UUID="72afac75-ab5f-4f62-80b1-e5880dcf53f7" URI="" ORDERINDEX="489" PARTOF_ID="1885" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1489" CREATED="2009-01-28 17:07:04.0" UUID="99c9fe8e-cdbb-46db-8e77-3cb4a95bb30d" URI="" ORDERINDEX="488" PARTOF_ID="1886" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1490" CREATED="2009-01-28 17:07:04.0" UUID="bf4dbc7d-2cc9-411d-abdc-d50cba248607" URI="" ORDERINDEX="487" PARTOF_ID="1887" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1491" CREATED="2009-01-28 17:07:04.0" UUID="f69009bf-be76-4d4f-a601-25dbe52c73ec" URI="" ORDERINDEX="486" PARTOF_ID="1888" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1492" CREATED="2009-01-28 17:07:04.0" UUID="bd621ff5-cb83-43de-adcb-600cb64e9c7f" URI="" ORDERINDEX="485" PARTOF_ID="1889" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1493" CREATED="2009-01-28 17:07:04.0" UUID="1a79eb1b-734d-42d0-9887-a6fea70ab556" URI="" ORDERINDEX="484" PARTOF_ID="1890" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1494" CREATED="2009-01-28 17:07:04.0" UUID="a17d5d28-db7b-4e7e-ab49-d24e0a8682d7" URI="" ORDERINDEX="483" PARTOF_ID="1891" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1495" CREATED="2009-01-28 17:07:04.0" UUID="1167d228-e7ff-4702-960a-578118fd6ceb" URI="" ORDERINDEX="482" PARTOF_ID="1892" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1496" CREATED="2009-01-28 17:07:04.0" UUID="f7659257-587d-4c9e-802b-150f3849f76a" URI="" ORDERINDEX="481" PARTOF_ID="1892" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1497" CREATED="2009-01-28 17:07:04.0" UUID="2a939b1b-e6aa-468e-a7f9-31ce3bc316d0" URI="" ORDERINDEX="480" PARTOF_ID="1893" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1498" CREATED="2009-01-28 17:07:04.0" UUID="f6046475-d928-4e87-8140-2435b642f2d7" URI="" ORDERINDEX="479" PARTOF_ID="1894" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1499" CREATED="2009-01-28 17:07:04.0" UUID="e6023624-a003-4791-a8c8-ad015215b15c" URI="" ORDERINDEX="478" PARTOF_ID="1894" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1500" CREATED="2009-01-28 17:07:04.0" UUID="5b8034e3-3225-41e8-8ed1-7b4f2713f8db" URI="" ORDERINDEX="477" PARTOF_ID="1894" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1501" CREATED="2009-01-28 17:07:04.0" UUID="6b76fe81-1fdc-4765-b3fc-7d6387417e9a" URI="" ORDERINDEX="476" PARTOF_ID="1894" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1502" CREATED="2009-01-28 17:07:04.0" UUID="113297af-2d4a-4201-a262-cddf0dd13202" URI="" ORDERINDEX="475" PARTOF_ID="1894" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1503" CREATED="2009-01-28 17:07:04.0" UUID="3f63e888-87bd-4ac7-8233-55e4f19bc67e" URI="" ORDERINDEX="474" PARTOF_ID="1894" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1504" CREATED="2009-01-28 17:07:04.0" UUID="d8e8fb07-ca32-4f6e-99b2-7323d8e1ef32" URI="" ORDERINDEX="473" PARTOF_ID="1895" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1505" CREATED="2009-01-28 17:07:04.0" UUID="da4e0179-a2f1-42a9-9b81-a77e705c6c5c" URI="" ORDERINDEX="472" PARTOF_ID="1896" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1506" CREATED="2009-01-28 17:07:04.0" UUID="d1a32a01-9395-4952-a754-eeae34ab1dd7" URI="" ORDERINDEX="471" PARTOF_ID="1897" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1507" CREATED="2009-01-28 17:07:04.0" UUID="9aaf0819-6f2c-4a10-bd1a-ea5f0764c878" URI="" ORDERINDEX="470" PARTOF_ID="1898" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1508" CREATED="2009-01-28 17:07:04.0" UUID="757cb232-f714-4ed0-af91-aaf1f24d71e5" URI="" ORDERINDEX="469" PARTOF_ID="1899" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1509" CREATED="2009-01-28 17:07:04.0" UUID="7210d9dd-304c-4577-881a-02c73f153d7b" URI="" ORDERINDEX="468" PARTOF_ID="1900" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1510" CREATED="2009-01-28 17:07:04.0" UUID="0c4d8f41-9621-4912-a446-228b395ff78c" URI="" ORDERINDEX="467" PARTOF_ID="1901" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1511" CREATED="2009-01-28 17:07:04.0" UUID="36d86e81-0288-468e-ab7e-dd63d0b0a574" URI="" ORDERINDEX="466" PARTOF_ID="1902" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1512" CREATED="2009-01-28 17:07:04.0" UUID="fed827ac-2946-4066-a08c-d542fd8634af" URI="" ORDERINDEX="465" PARTOF_ID="1903" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1513" CREATED="2009-01-28 17:07:04.0" UUID="770a5811-2b6e-4053-9ac5-35985c37a2d2" URI="" ORDERINDEX="464" PARTOF_ID="1903" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1514" CREATED="2009-01-28 17:07:04.0" UUID="e8359d12-7331-445b-a015-d1a69684c172" URI="" ORDERINDEX="463" PARTOF_ID="1904" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1515" CREATED="2009-01-28 17:07:04.0" UUID="f553a336-03b4-499f-a0d3-5ac4d84a968c" URI="" ORDERINDEX="462" PARTOF_ID="1905" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1516" CREATED="2009-01-28 17:07:04.0" UUID="13a03777-9e38-4e86-8ed2-a70f9b9279c3" URI="" ORDERINDEX="461" PARTOF_ID="1906" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1517" CREATED="2009-01-28 17:07:04.0" UUID="c88a09f1-e3f9-46ba-8541-84f956131932" URI="" ORDERINDEX="460" PARTOF_ID="1907" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1518" CREATED="2009-01-28 17:07:04.0" UUID="b9ca970c-f676-40f4-8cbb-bd431b42a077" URI="" ORDERINDEX="459" PARTOF_ID="1908" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1519" CREATED="2009-01-28 17:07:04.0" UUID="c97096ec-d32f-4106-920a-45f69e359199" URI="" ORDERINDEX="458" PARTOF_ID="1909" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1520" CREATED="2009-01-28 17:07:04.0" UUID="3eb214c4-31a9-49c4-8163-a3a5e4d468a0" URI="" ORDERINDEX="457" PARTOF_ID="1910" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1521" CREATED="2009-01-28 17:07:04.0" UUID="d332b58c-d30d-4cac-8982-8ab8885e6355" URI="" ORDERINDEX="456" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1522" CREATED="2009-01-28 17:07:04.0" UUID="639c2a60-7858-4eaf-9e79-f90b29a1882a" URI="" ORDERINDEX="455" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1523" CREATED="2009-01-28 17:07:04.0" UUID="2245ce8c-b3f5-4a01-96d9-f93ea9927b2a" URI="" ORDERINDEX="454" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1524" CREATED="2009-01-28 17:07:04.0" UUID="4b530f04-5fc9-438e-909a-acc32cfd7986" URI="" ORDERINDEX="453" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1525" CREATED="2009-01-28 17:07:04.0" UUID="30dcfd8e-fd7b-4254-984b-107b8a60c57d" URI="" ORDERINDEX="452" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1526" CREATED="2009-01-28 17:07:04.0" UUID="901360e8-5b48-480a-831b-e3393d4198a8" URI="" ORDERINDEX="451" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1527" CREATED="2009-01-28 17:07:04.0" UUID="104bc6db-9d96-4249-a277-ca21289af3c6" URI="" ORDERINDEX="450" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1528" CREATED="2009-01-28 17:07:04.0" UUID="e38f2205-3e06-4b58-9c19-ca80903e7fbd" URI="" ORDERINDEX="449" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1529" CREATED="2009-01-28 17:07:04.0" UUID="44b8a99f-344f-4c1e-8299-9cbad6fb4043" URI="" ORDERINDEX="448" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1530" CREATED="2009-01-28 17:07:04.0" UUID="b42abd5a-5181-4342-a9fb-cd6193d668fa" URI="" ORDERINDEX="447" PARTOF_ID="1912" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1531" CREATED="2009-01-28 17:07:04.0" UUID="75ed8ca6-0b99-4f11-a5ab-766bd819d819" URI="" ORDERINDEX="446" PARTOF_ID="1912" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1532" CREATED="2009-01-28 17:07:04.0" UUID="53a83e7f-fb6a-437b-beab-47c389b68a41" URI="" ORDERINDEX="445" PARTOF_ID="1912" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1533" CREATED="2009-01-28 17:07:04.0" UUID="84d9dfd7-1c32-433b-8f30-a07fd3f61f57" URI="" ORDERINDEX="444" PARTOF_ID="1912" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1534" CREATED="2009-01-28 17:07:04.0" UUID="3a2a0a1e-f820-4f77-a2db-69d822eccda9" URI="" ORDERINDEX="443" PARTOF_ID="1912" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1535" CREATED="2009-01-28 17:07:04.0" UUID="9adc826c-ef68-403c-930b-d67027a6e253" URI="" ORDERINDEX="442" PARTOF_ID="1912" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1536" CREATED="2009-01-28 17:07:04.0" UUID="e614e0b6-e09c-4802-b4dc-9186a3bbab2d" URI="" ORDERINDEX="441" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1537" CREATED="2009-01-28 17:07:04.0" UUID="b7eac6d2-22b0-4ca1-b139-0b377dbf877c" URI="" ORDERINDEX="440" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1538" CREATED="2009-01-28 17:07:04.0" UUID="a12e56d3-e968-4c18-ba1e-feba731b071f" URI="" ORDERINDEX="439" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1539" CREATED="2009-01-28 17:07:04.0" UUID="8bd874ce-36f4-4c96-b1bc-00084bbb7793" URI="" ORDERINDEX="438" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1540" CREATED="2009-01-28 17:07:04.0" UUID="356f5e7e-f8e5-4ff0-adc8-ff3ceed8b871" URI="" ORDERINDEX="437" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1541" CREATED="2009-01-28 17:07:04.0" UUID="69394eb2-c2f1-4433-8fcc-daabcf70a7d5" URI="" ORDERINDEX="436" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1542" CREATED="2009-01-28 17:07:04.0" UUID="7f93e700-4e9f-4894-abe1-ffcbd5327bce" URI="" ORDERINDEX="435" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1543" CREATED="2009-01-28 17:07:04.0" UUID="72f8db6a-0472-45c4-acff-adf8563a0772" URI="" ORDERINDEX="434" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1544" CREATED="2009-01-28 17:07:04.0" UUID="c6af30b9-99b3-4a98-adfb-97444ce96e8b" URI="" ORDERINDEX="433" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1545" CREATED="2009-01-28 17:07:04.0" UUID="019fc551-10dc-43c2-9c5b-ca52a2d09e86" URI="" ORDERINDEX="432" PARTOF_ID="1914" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1546" CREATED="2009-01-28 17:07:04.0" UUID="0103dfde-e203-40d7-bec8-bb484ae75bdf" URI="" ORDERINDEX="431" PARTOF_ID="1915" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1547" CREATED="2009-01-28 17:07:04.0" UUID="5b63e02e-2e96-4acc-86a9-ded2a0359f4b" URI="" ORDERINDEX="430" PARTOF_ID="1956" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1548" CREATED="2009-01-28 17:07:04.0" UUID="997ca9ce-29cb-4d9c-b9ca-b1ab98968785" URI="" ORDERINDEX="429" PARTOF_ID="1956" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1549" CREATED="2009-01-28 17:07:04.0" UUID="91db183a-a8c3-45dc-8cc9-2b8c2a6c183d" URI="" ORDERINDEX="428" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1550" CREATED="2009-01-28 17:07:04.0" UUID="26b4e43d-3756-4b28-872b-8ef1d65168a8" URI="" ORDERINDEX="427" PARTOF_ID="1933" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1551" CREATED="2009-01-28 17:07:04.0" UUID="705df0b8-452a-4868-bf12-bdc4dcde018a" URI="" ORDERINDEX="426" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1552" CREATED="2009-01-28 17:07:04.0" UUID="d2c3f9e5-3c36-4a42-9e97-48927f63c1f4" URI="" ORDERINDEX="425" PARTOF_ID="1947" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1553" CREATED="2009-01-28 17:07:04.0" UUID="258f6e7c-6acb-4ccd-b312-748e0502d758" URI="" ORDERINDEX="424" PARTOF_ID="1952" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1554" CREATED="2009-01-28 17:07:04.0" UUID="474ea264-4a0c-4e47-b2e3-b7d69161a887" URI="" ORDERINDEX="423" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1555" CREATED="2009-01-28 17:07:04.0" UUID="c75e0ede-5a11-486d-bbd5-1aad2afc1c53" URI="" ORDERINDEX="422" PARTOF_ID="1930" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1556" CREATED="2009-01-28 17:07:04.0" UUID="8f1802cf-8c21-4951-8460-68f23117a7a8" URI="" ORDERINDEX="421" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1557" CREATED="2009-01-28 17:07:04.0" UUID="183869b8-7143-492e-abec-fc9aa585cb2e" URI="" ORDERINDEX="420" PARTOF_ID="1952" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1558" CREATED="2009-01-28 17:07:04.0" UUID="2a3887f9-739d-4969-8a05-be5dff943654" URI="" ORDERINDEX="419" PARTOF_ID="1962" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1559" CREATED="2009-01-28 17:07:04.0" UUID="739fa687-ccc0-4ecd-b30e-216c1d0ae8c0" URI="" ORDERINDEX="418" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1560" CREATED="2009-01-28 17:07:04.0" UUID="8b56d6ca-77a5-436f-9839-888e4f0611ea" URI="" ORDERINDEX="417" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1561" CREATED="2009-01-28 17:07:04.0" UUID="bd730c6b-5659-445d-9b26-3a662186b1b5" URI="" ORDERINDEX="416" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1562" CREATED="2009-01-28 17:07:04.0" UUID="16939d8c-587d-4277-be04-26502fe61b28" URI="" ORDERINDEX="415" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1563" CREATED="2009-01-28 17:07:04.0" UUID="cb709a6b-604a-4dcc-9ed4-7410750a3fb6" URI="" ORDERINDEX="414" PARTOF_ID="1939" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1564" CREATED="2009-01-28 17:07:04.0" UUID="fcaa778d-12d7-4e35-9bad-05a05d80f563" URI="" ORDERINDEX="413" PARTOF_ID="1930" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1565" CREATED="2009-01-28 17:07:04.0" UUID="b8810d5d-152f-47df-b570-83a84a37bad6" URI="" ORDERINDEX="412" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1566" CREATED="2009-01-28 17:07:04.0" UUID="36d57602-8107-458c-a097-5f37ff49881e" URI="" ORDERINDEX="411" PARTOF_ID="1935" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1567" CREATED="2009-01-28 17:07:04.0" UUID="3a6df9f1-d33b-4fe7-a150-db130a038654" URI="" ORDERINDEX="410" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1568" CREATED="2009-01-28 17:07:04.0" UUID="9f97925d-be79-48e5-ab65-25d0bc27503c" URI="" ORDERINDEX="409" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1569" CREATED="2009-01-28 17:07:04.0" UUID="ce26e090-99b0-407f-a177-3fbc316638f0" URI="" ORDERINDEX="408" PARTOF_ID="1942" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1570" CREATED="2009-01-28 17:07:04.0" UUID="62f519dc-d315-425d-9053-319a055c1468" URI="" ORDERINDEX="407" PARTOF_ID="1939" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1571" CREATED="2009-01-28 17:07:04.0" UUID="889993e0-507b-48c6-bc40-8bb2dd943960" URI="" ORDERINDEX="406" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1572" CREATED="2009-01-28 17:07:04.0" UUID="a9a80485-407a-495d-9701-2bfff3025b37" URI="" ORDERINDEX="405" PARTOF_ID="1921" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1573" CREATED="2009-01-28 17:07:04.0" UUID="205587f2-6d1b-4507-8d06-3588375b0cf2" URI="" ORDERINDEX="404" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1574" CREATED="2009-01-28 17:07:04.0" UUID="42fb1397-83df-4fe0-a313-a04845ce378c" URI="" ORDERINDEX="403" PARTOF_ID="1950" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1575" CREATED="2009-01-28 17:07:04.0" UUID="86d51169-ef60-4717-b4ec-c1522ebd4bb9" URI="" ORDERINDEX="402" PARTOF_ID="1927" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1576" CREATED="2009-01-28 17:07:04.0" UUID="4b8f9064-f413-41f5-8399-8a8530fea981" URI="" ORDERINDEX="401" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1577" CREATED="2009-01-28 17:07:04.0" UUID="670977b8-9833-4ab4-8f68-15a5cb5f38d9" URI="" ORDERINDEX="400" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1578" CREATED="2009-01-28 17:07:04.0" UUID="e06b10c6-1cb6-4654-94b0-49878cf88a6a" URI="" ORDERINDEX="399" PARTOF_ID="1957" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1579" CREATED="2009-01-28 17:07:04.0" UUID="90b1b04c-7604-4bdf-b648-963e933b85f8" URI="" ORDERINDEX="398" PARTOF_ID="1950" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1580" CREATED="2009-01-28 17:07:04.0" UUID="3d190a52-47b9-450d-b2b8-15bd9995c8e5" URI="" ORDERINDEX="397" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1581" CREATED="2009-01-28 17:07:04.0" UUID="b59ea7bf-6907-4275-9984-4a9b7621cae9" URI="" ORDERINDEX="396" PARTOF_ID="1952" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1582" CREATED="2009-01-28 17:07:04.0" UUID="df5a43be-4dbd-4585-889d-916dc4eb085c" URI="" ORDERINDEX="395" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1583" CREATED="2009-01-28 17:07:04.0" UUID="48219cbc-82ab-447f-8a67-e97408736c23" URI="" ORDERINDEX="394" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1584" CREATED="2009-01-28 17:07:04.0" UUID="73d5c7bf-deb8-4152-b55c-5414db2c4261" URI="" ORDERINDEX="393" PARTOF_ID="1962" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1585" CREATED="2009-01-28 17:07:04.0" UUID="0cc0f22f-df09-48d2-a2e0-27911df17c8b" URI="" ORDERINDEX="392" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1586" CREATED="2009-01-28 17:07:04.0" UUID="332abf62-47ab-43f1-a12a-3e320f4a8a6d" URI="" ORDERINDEX="391" PARTOF_ID="1936" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1587" CREATED="2009-01-28 17:07:04.0" UUID="8ae1077d-ce28-4602-909a-227686b680e1" URI="" ORDERINDEX="390" PARTOF_ID="1936" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1588" CREATED="2009-01-28 17:07:04.0" UUID="a356333f-e25a-4fdd-8d69-154c24307a36" URI="" ORDERINDEX="389" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1589" CREATED="2009-01-28 17:07:04.0" UUID="a3a4d577-ff17-4548-b766-c0b3579cde1c" URI="" ORDERINDEX="388" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1590" CREATED="2009-01-28 17:07:04.0" UUID="24ffcae2-2090-4106-8da6-f49a21a951de" URI="" ORDERINDEX="387" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1591" CREATED="2009-01-28 17:07:04.0" UUID="39983171-9173-48ac-9564-9d30c189b90f" URI="" ORDERINDEX="386" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1592" CREATED="2009-01-28 17:07:04.0" UUID="bfca42eb-4fae-4233-996d-ffff6b60bf15" URI="" ORDERINDEX="385" PARTOF_ID="1950" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1593" CREATED="2009-01-28 17:07:04.0" UUID="da8aac48-9795-4767-a1a0-323160158892" URI="" ORDERINDEX="384" PARTOF_ID="1942" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1594" CREATED="2009-01-28 17:07:04.0" UUID="6d90e6d7-9f3d-48ee-8dc5-0fa0e2e102e0" URI="" ORDERINDEX="383" PARTOF_ID="1926" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1595" CREATED="2009-01-28 17:07:04.0" UUID="d1a6df1e-7e01-4ef8-9e34-295bd59037de" URI="" ORDERINDEX="382" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1596" CREATED="2009-01-28 17:07:04.0" UUID="1cda9cee-21be-4a99-a983-520a749d7118" URI="" ORDERINDEX="381" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1597" CREATED="2009-01-28 17:07:04.0" UUID="ac7a6544-3f4b-463b-a19d-eea0a484da93" URI="" ORDERINDEX="380" PARTOF_ID="1949" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1598" CREATED="2009-01-28 17:07:04.0" UUID="952ea175-c3f4-4ae9-b09a-029ba81ee923" URI="" ORDERINDEX="379" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1599" CREATED="2009-01-28 17:07:04.0" UUID="4baeb0f7-7893-4edb-8c9b-7c0f225bf868" URI="" ORDERINDEX="378" PARTOF_ID="1939" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1600" CREATED="2009-01-28 17:07:04.0" UUID="caf1697c-10d1-4d51-ac62-a977171ec56e" URI="" ORDERINDEX="377" PARTOF_ID="1957" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1601" CREATED="2009-01-28 17:07:04.0" UUID="eed9dbda-ed03-41d5-9322-94f985de97ee" URI="" ORDERINDEX="376" PARTOF_ID="1944" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1602" CREATED="2009-01-28 17:07:04.0" UUID="5d49cc9a-3a8d-44a3-a851-6cf0e8ca154b" URI="" ORDERINDEX="375" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1603" CREATED="2009-01-28 17:07:04.0" UUID="df9fc338-1564-4517-8e39-43087bc068f2" URI="" ORDERINDEX="374" PARTOF_ID="1966" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1604" CREATED="2009-01-28 17:07:04.0" UUID="289074c4-a7a9-4cb3-b74a-78ad2bc6fbce" URI="" ORDERINDEX="373" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1605" CREATED="2009-01-28 17:07:04.0" UUID="7ad3ccea-3cee-4046-b496-e694a2109fd9" URI="" ORDERINDEX="372" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1606" CREATED="2009-01-28 17:07:04.0" UUID="34c3c6fc-e6e0-44b9-8886-157c992e9485" URI="" ORDERINDEX="371" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1607" CREATED="2009-01-28 17:07:04.0" UUID="ff18c8ac-970f-4a90-a6a8-27859dbc6218" URI="" ORDERINDEX="370" PARTOF_ID="1921" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1608" CREATED="2009-01-28 17:07:04.0" UUID="d7bbe237-0bae-4ef0-b8fb-332a90eee92c" URI="" ORDERINDEX="369" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1609" CREATED="2009-01-28 17:07:04.0" UUID="b42f9b9e-afe1-4d62-a3a9-6b53599f2f60" URI="" ORDERINDEX="368" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1610" CREATED="2009-01-28 17:07:04.0" UUID="08c2d94a-0cc2-4b6b-8184-a1c1b899b805" URI="" ORDERINDEX="367" PARTOF_ID="1958" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1611" CREATED="2009-01-28 17:07:04.0" UUID="7145cc3e-0893-442d-b56e-9c74f62ce430" URI="" ORDERINDEX="366" PARTOF_ID="1954" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1612" CREATED="2009-01-28 17:07:04.0" UUID="bf83496e-9a97-4215-839a-3df00e06916e" URI="" ORDERINDEX="365" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1613" CREATED="2009-01-28 17:07:04.0" UUID="3a78d641-42c2-4041-919d-fe3601de6356" URI="" ORDERINDEX="364" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1614" CREATED="2009-01-28 17:07:04.0" UUID="4774d040-9901-4eed-aaa5-8b18dcd568bc" URI="" ORDERINDEX="363" PARTOF_ID="1965" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1615" CREATED="2009-01-28 17:07:04.0" UUID="15b4c85f-6e38-403e-a5d4-69cdc00230ea" URI="" ORDERINDEX="362" PARTOF_ID="1958" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1616" CREATED="2009-01-28 17:07:04.0" UUID="4cf239da-1215-4689-8cb9-495a2735cb0a" URI="" ORDERINDEX="361" PARTOF_ID="1940" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1617" CREATED="2009-01-28 17:07:04.0" UUID="d8a1ea81-78db-46db-a27d-d8eb64bf7e41" URI="" ORDERINDEX="360" PARTOF_ID="1958" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1618" CREATED="2009-01-28 17:07:04.0" UUID="c28b59c7-f65d-469e-9d53-6fce34b35e6e" URI="" ORDERINDEX="359" PARTOF_ID="1939" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1619" CREATED="2009-01-28 17:07:04.0" UUID="7720f433-5f3f-469a-b49b-b4e409064455" URI="" ORDERINDEX="358" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1620" CREATED="2009-01-28 17:07:04.0" UUID="ea7c2f1b-9d95-4129-b84f-9653e51e3da8" URI="" ORDERINDEX="357" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1621" CREATED="2009-01-28 17:07:04.0" UUID="4750f5f8-e7af-46d8-b497-2b68199366ba" URI="" ORDERINDEX="356" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1622" CREATED="2009-01-28 17:07:04.0" UUID="dda86ec7-b0fc-44b9-89a9-fd14762796bf" URI="" ORDERINDEX="355" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1623" CREATED="2009-01-28 17:07:04.0" UUID="89392d7c-251e-4160-8518-6f91d86e5010" URI="" ORDERINDEX="354" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1624" CREATED="2009-01-28 17:07:04.0" UUID="4a95dae4-c8a8-42e8-ba12-540d402e360f" URI="" ORDERINDEX="353" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1625" CREATED="2009-01-28 17:07:04.0" UUID="f3cde575-de0d-49f9-9615-6717526458ba" URI="" ORDERINDEX="352" PARTOF_ID="1961" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1626" CREATED="2009-01-28 17:07:04.0" UUID="9ca35d05-ec92-41fe-ba42-ec6828ff6848" URI="" ORDERINDEX="351" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1627" CREATED="2009-01-28 17:07:04.0" UUID="353f7509-cc51-4c47-b46a-15819bca9323" URI="" ORDERINDEX="350" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1628" CREATED="2009-01-28 17:07:04.0" UUID="ef6cd955-105b-442c-95b0-6637545baaa5" URI="" ORDERINDEX="349" PARTOF_ID="1942" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1629" CREATED="2009-01-28 17:07:04.0" UUID="67f0df67-8161-448b-9188-058b57d37c9d" URI="" ORDERINDEX="348" PARTOF_ID="1936" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1630" CREATED="2009-01-28 17:07:04.0" UUID="3dc78d7b-6cd8-4790-891d-e8d6ffa497bb" URI="" ORDERINDEX="347" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1631" CREATED="2009-01-28 17:07:04.0" UUID="7af350e4-7e8a-49b7-a728-3dfb3a7347ac" URI="" ORDERINDEX="346" PARTOF_ID="1947" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1632" CREATED="2009-01-28 17:07:04.0" UUID="7dfafd0c-5b59-45f1-a2d2-0757e555e530" URI="" ORDERINDEX="345" PARTOF_ID="1932" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1633" CREATED="2009-01-28 17:07:04.0" UUID="43bf5a60-eafc-440d-83e0-7dce0961aba8" URI="" ORDERINDEX="344" PARTOF_ID="1965" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1634" CREATED="2009-01-28 17:07:04.0" UUID="1762ef94-4195-4068-8703-4d11e244653f" URI="" ORDERINDEX="343" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1635" CREATED="2009-01-28 17:07:04.0" UUID="37622300-94ec-4438-8e65-09d299fb7ef3" URI="" ORDERINDEX="342" PARTOF_ID="1951" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1636" CREATED="2009-01-28 17:07:04.0" UUID="50d2716e-328c-4fe1-9e9b-c3ed6ce60bb5" URI="" ORDERINDEX="341" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1637" CREATED="2009-01-28 17:07:04.0" UUID="d145aa3f-857c-4b6e-b691-ce8d172f37d9" URI="" ORDERINDEX="340" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1638" CREATED="2009-01-28 17:07:04.0" UUID="8957c768-ee18-410d-9c43-c55cb799e205" URI="" ORDERINDEX="339" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1639" CREATED="2009-01-28 17:07:04.0" UUID="9169948b-c465-47b6-8acf-c9c3b0a6fff8" URI="" ORDERINDEX="338" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1640" CREATED="2009-01-28 17:07:04.0" UUID="d06f68f8-5a20-4a93-88e0-09f533f3613f" URI="" ORDERINDEX="337" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1641" CREATED="2009-01-28 17:07:04.0" UUID="27be3967-faa0-45b2-a182-6bb19ace908b" URI="" ORDERINDEX="336" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1642" CREATED="2009-01-28 17:07:04.0" UUID="5120891c-0493-4b0d-8319-f6442765ec3b" URI="" ORDERINDEX="335" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1643" CREATED="2009-01-28 17:07:04.0" UUID="4f10f141-b2bf-4d11-b018-9ed973b32729" URI="" ORDERINDEX="334" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1644" CREATED="2009-01-28 17:07:04.0" UUID="beaff32e-3e14-4b21-8d70-5b6930077299" URI="" ORDERINDEX="333" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1645" CREATED="2009-01-28 17:07:04.0" UUID="24fd734c-aeb2-464f-bc25-db1d09e62084" URI="" ORDERINDEX="332" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1646" CREATED="2009-01-28 17:07:04.0" UUID="c72bf61f-5446-455c-bd73-652ce4ddf1b9" URI="" ORDERINDEX="331" PARTOF_ID="1931" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1647" CREATED="2009-01-28 17:07:04.0" UUID="857bec6a-b361-495b-abf1-f99cce2587c4" URI="" ORDERINDEX="330" PARTOF_ID="1939" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1648" CREATED="2009-01-28 17:07:04.0" UUID="4d9400b1-de4e-495b-8a04-9468e34b0610" URI="" ORDERINDEX="329" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1649" CREATED="2009-01-28 17:07:04.0" UUID="51b66943-c7b6-4b0f-8252-92e02eb5957f" URI="" ORDERINDEX="328" PARTOF_ID="1951" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1650" CREATED="2009-01-28 17:07:04.0" UUID="3a22e22e-a68e-4215-8b7d-be3e39cfafa4" URI="" ORDERINDEX="327" PARTOF_ID="1965" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1651" CREATED="2009-01-28 17:07:04.0" UUID="587b53b3-c12d-411c-aa58-1f8ab1c19987" URI="" ORDERINDEX="326" PARTOF_ID="1966" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1652" CREATED="2009-01-28 17:07:04.0" UUID="717549a3-1f67-4408-8c59-42724e6d8c0f" URI="" ORDERINDEX="325" PARTOF_ID="1936" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1653" CREATED="2009-01-28 17:07:04.0" UUID="adf502c8-d5ba-4f07-a65b-115c3b8f4c21" URI="" ORDERINDEX="324" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1654" CREATED="2009-01-28 17:07:04.0" UUID="a5a7e2f3-5c24-4b9c-b6ba-110b62896c95" URI="" ORDERINDEX="323" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1655" CREATED="2009-01-28 17:07:04.0" UUID="eb69081d-1147-48a1-84e4-b96339a29492" URI="" ORDERINDEX="322" PARTOF_ID="1920" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1656" CREATED="2009-01-28 17:07:04.0" UUID="57343e24-9bf9-4ce6-aed5-27d563139d36" URI="" ORDERINDEX="321" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1657" CREATED="2009-01-28 17:07:04.0" UUID="2ad64695-b454-49af-8b48-92f891175cba" URI="" ORDERINDEX="320" PARTOF_ID="1931" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1658" CREATED="2009-01-28 17:07:04.0" UUID="97d0d28f-977e-41bd-a3b9-f788baaed364" URI="" ORDERINDEX="319" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1659" CREATED="2009-01-28 17:07:04.0" UUID="07aced24-02ed-4e0b-80f0-b20b83fd6561" URI="" ORDERINDEX="318" PARTOF_ID="1923" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1660" CREATED="2009-01-28 17:07:04.0" UUID="a6249157-4b39-49d2-9689-0778aec024c4" URI="" ORDERINDEX="317" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1661" CREATED="2009-01-28 17:07:04.0" UUID="de7db6b3-7d4f-47a5-8bb8-9fa93a760672" URI="" ORDERINDEX="316" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1662" CREATED="2009-01-28 17:07:04.0" UUID="f634bb85-3c54-4ee5-815c-da689d840a57" URI="" ORDERINDEX="315" PARTOF_ID="1930" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1663" CREATED="2009-01-28 17:07:04.0" UUID="2842bcb3-9ce5-473f-b155-2d7519b3bb65" URI="" ORDERINDEX="314" PARTOF_ID="1931" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1664" CREATED="2009-01-28 17:07:04.0" UUID="b3dd0577-35c4-4915-a965-7c696dc9b83c" URI="" ORDERINDEX="313" PARTOF_ID="1947" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1665" CREATED="2009-01-28 17:07:04.0" UUID="56e84e9c-9229-4286-b30c-5c5e68c8a144" URI="" ORDERINDEX="312" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1666" CREATED="2009-01-28 17:07:04.0" UUID="461ba6ca-4246-4fb9-bcd4-af7c965ae777" URI="" ORDERINDEX="311" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1667" CREATED="2009-01-28 17:07:04.0" UUID="178f0de3-54bf-4469-a8d4-8e1974be8611" URI="" ORDERINDEX="310" PARTOF_ID="1944" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1668" CREATED="2009-01-28 17:07:04.0" UUID="27f18891-4c9c-4e72-98a0-b3a90d8f0060" URI="" ORDERINDEX="309" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1669" CREATED="2009-01-28 17:07:04.0" UUID="7f285f4c-a7e7-4021-98dd-1413930675a1" URI="" ORDERINDEX="308" PARTOF_ID="1938" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1670" CREATED="2009-01-28 17:07:04.0" UUID="df68a983-a1ac-42f7-886d-9335c681430c" URI="" ORDERINDEX="307" PARTOF_ID="1938" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1671" CREATED="2009-01-28 17:07:04.0" UUID="0392fb7c-2028-40db-8372-4621a425fe3c" URI="" ORDERINDEX="306" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1672" CREATED="2009-01-28 17:07:04.0" UUID="86b0de03-5b68-454b-b7db-d20e6a7b0f20" URI="" ORDERINDEX="305" PARTOF_ID="1933" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1673" CREATED="2009-01-28 17:07:04.0" UUID="3a0a1cc3-8a71-43fb-86fc-0c92ddba73fc" URI="" ORDERINDEX="304" PARTOF_ID="1926" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1674" CREATED="2009-01-28 17:07:04.0" UUID="ab3974aa-b195-4af7-8f19-b1049231ed4f" URI="" ORDERINDEX="303" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1675" CREATED="2009-01-28 17:07:04.0" UUID="36d4ef65-64d3-4733-8085-9daeba3b1aed" URI="" ORDERINDEX="302" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1676" CREATED="2009-01-28 17:07:04.0" UUID="b5abcf7d-796f-431a-bf93-b771693ccdcf" URI="" ORDERINDEX="301" PARTOF_ID="1940" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1677" CREATED="2009-01-28 17:07:04.0" UUID="e9d6e328-6209-4d1f-94f0-61fd8592c09c" URI="" ORDERINDEX="300" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1678" CREATED="2009-01-28 17:07:04.0" UUID="0936c6be-e397-4793-b47b-e08d992ba5d3" URI="" ORDERINDEX="299" PARTOF_ID="1933" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1679" CREATED="2009-01-28 17:07:04.0" UUID="ec2ae973-99e6-44ba-8417-e01e729e5dab" URI="" ORDERINDEX="298" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1680" CREATED="2009-01-28 17:07:04.0" UUID="d1c88525-0110-4f9d-a639-5b4d0009b393" URI="" ORDERINDEX="297" PARTOF_ID="1939" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1681" CREATED="2009-01-28 17:07:04.0" UUID="e8c18809-0ccf-4c68-9528-9925db6c55e7" URI="" ORDERINDEX="296" PARTOF_ID="1939" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1682" CREATED="2009-01-28 17:07:04.0" UUID="7662bec4-dc55-4483-8f37-a78d93cc8224" URI="" ORDERINDEX="295" PARTOF_ID="1931" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1683" CREATED="2009-01-28 17:07:04.0" UUID="01176406-0e8f-4a43-a6e2-346f6769cd60" URI="" ORDERINDEX="294" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1684" CREATED="2009-01-28 17:07:04.0" UUID="4b2396e7-6e3d-41f8-b782-247a95d4b761" URI="" ORDERINDEX="293" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1685" CREATED="2009-01-28 17:07:04.0" UUID="7a4d50ba-1b53-4ed7-8453-5ae17919df86" URI="" ORDERINDEX="292" PARTOF_ID="1944" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1686" CREATED="2009-01-28 17:07:04.0" UUID="5bce0bb4-a584-4e3a-bfd9-7aa876e1ef44" URI="" ORDERINDEX="291" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1687" CREATED="2009-01-28 17:07:04.0" UUID="0cff1981-6dbb-418b-b5e5-b427e338f2c3" URI="" ORDERINDEX="290" PARTOF_ID="1923" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1688" CREATED="2009-01-28 17:07:04.0" UUID="2fd151ae-c0c5-4653-95ef-42c4addf088b" URI="" ORDERINDEX="289" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1689" CREATED="2009-01-28 17:07:04.0" UUID="36cc02ea-68fc-4024-879b-df2ad7e1d500" URI="" ORDERINDEX="288" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1690" CREATED="2009-01-28 17:07:04.0" UUID="61e4dc79-5847-4859-8f63-fa602de5743c" URI="" ORDERINDEX="287" PARTOF_ID="1931" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1691" CREATED="2009-01-28 17:07:04.0" UUID="c35e4381-1646-4632-ab6f-40c80127b490" URI="" ORDERINDEX="286" PARTOF_ID="1939" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1692" CREATED="2009-01-28 17:07:04.0" UUID="9bac52d4-5a10-4927-b630-b51273b9943b" URI="" ORDERINDEX="285" PARTOF_ID="1927" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1693" CREATED="2009-01-28 17:07:04.0" UUID="2ef12677-0d38-4ed9-a57a-f61a968f7a63" URI="" ORDERINDEX="284" PARTOF_ID="1966" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1694" CREATED="2009-01-28 17:07:04.0" UUID="145cb777-fd41-4ed5-b163-550784840bf7" URI="" ORDERINDEX="283" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1695" CREATED="2009-01-28 17:07:04.0" UUID="70b98a5c-4785-4925-9325-ec92610b9117" URI="" ORDERINDEX="282" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1696" CREATED="2009-01-28 17:07:04.0" UUID="891381d8-cdd2-49b2-86dd-02eeaf47dc7b" URI="" ORDERINDEX="281" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1697" CREATED="2009-01-28 17:07:04.0" UUID="08ba6204-b699-4b91-8e16-424ed62dcc84" URI="" ORDERINDEX="280" PARTOF_ID="1949" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1698" CREATED="2009-01-28 17:07:04.0" UUID="e301f2a0-2a7c-4b6a-bd86-df15ba340a5d" URI="" ORDERINDEX="279" PARTOF_ID="1942" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1699" CREATED="2009-01-28 17:07:04.0" UUID="7a3946b0-104c-4cd2-af95-b24a4ce6d686" URI="" ORDERINDEX="278" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1700" CREATED="2009-01-28 17:07:04.0" UUID="28369e9a-251e-4735-b9b8-4271b1321808" URI="" ORDERINDEX="277" PARTOF_ID="1931" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1701" CREATED="2009-01-28 17:07:04.0" UUID="da51d835-bdb4-46bd-b994-5bb9a33ff5e7" URI="" ORDERINDEX="276" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1702" CREATED="2009-01-28 17:07:04.0" UUID="642bfe17-30c1-420c-be51-665af6a07bff" URI="" ORDERINDEX="275" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1703" CREATED="2009-01-28 17:07:04.0" UUID="e631e1d6-bdc4-4ece-a2b5-33b1eb22b069" URI="" ORDERINDEX="274" PARTOF_ID="1942" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1704" CREATED="2009-01-28 17:07:04.0" UUID="602303d7-93ee-4375-9095-477aad95268a" URI="" ORDERINDEX="273" PARTOF_ID="1924" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1705" CREATED="2009-01-28 17:07:04.0" UUID="5c95c7c9-29cd-4e8a-85c6-cb9ac2060dde" URI="" ORDERINDEX="272" PARTOF_ID="1924" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1706" CREATED="2009-01-28 17:07:04.0" UUID="757b5d76-1d1d-4542-9c99-fa1640dce066" URI="" ORDERINDEX="271" PARTOF_ID="1924" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1707" CREATED="2009-01-28 17:07:04.0" UUID="adac7ea3-9960-411b-af26-246fa85ea19c" URI="" ORDERINDEX="270" PARTOF_ID="1924" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1708" CREATED="2009-01-28 17:07:04.0" UUID="7d3e6e07-245d-4201-a525-10802cda6dfe" URI="" ORDERINDEX="269" PARTOF_ID="1924" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1709" CREATED="2009-01-28 17:07:04.0" UUID="bf85121c-a686-46be-ba88-f400b37b3b25" URI="" ORDERINDEX="268" PARTOF_ID="1924" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1710" CREATED="2009-01-28 17:07:04.0" UUID="ebeb5340-2838-4b72-99b1-616e8160d0ca" URI="" ORDERINDEX="267" PARTOF_ID="1924" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1711" CREATED="2009-01-28 17:07:04.0" UUID="548abebd-9668-481e-a2c5-a93a600fedb9" URI="" ORDERINDEX="266" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1712" CREATED="2009-01-28 17:07:04.0" UUID="0249d5ed-e960-4efa-b66d-5f2bd15f7b1b" URI="" ORDERINDEX="265" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1713" CREATED="2009-01-28 17:07:04.0" UUID="3c90742c-f8bf-4344-9f23-2e3b73aee064" URI="" ORDERINDEX="264" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1714" CREATED="2009-01-28 17:07:04.0" UUID="72fe14e6-5631-4079-ac95-3d62fe1c3aab" URI="" ORDERINDEX="263" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1715" CREATED="2009-01-28 17:07:04.0" UUID="e4836aef-cb88-4782-8c41-aefc270a2502" URI="" ORDERINDEX="262" PARTOF_ID="1935" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1716" CREATED="2009-01-28 17:07:04.0" UUID="77e49b33-ce39-48e8-bef5-eaa16091f2ef" URI="" ORDERINDEX="261" PARTOF_ID="1936" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1717" CREATED="2009-01-28 17:07:04.0" UUID="4f854b84-2d93-4b0d-a40d-9e05be7cbae1" URI="" ORDERINDEX="260" PARTOF_ID="1935" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1718" CREATED="2009-01-28 17:07:04.0" UUID="7a391925-b331-4ffe-8bf5-ba5b2439a177" URI="" ORDERINDEX="259" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1719" CREATED="2009-01-28 17:07:04.0" UUID="9ebd353e-0ab6-4185-9a9f-af92e7d11567" URI="" ORDERINDEX="258" PARTOF_ID="1956" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1720" CREATED="2009-01-28 17:07:04.0" UUID="85f6595b-c739-4a00-87a6-06dbf591d5f5" URI="" ORDERINDEX="257" PARTOF_ID="1962" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1721" CREATED="2009-01-28 17:07:04.0" UUID="6b678353-a83e-44e1-92b0-c31433208f2e" URI="" ORDERINDEX="256" PARTOF_ID="1945" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1722" CREATED="2009-01-28 17:07:04.0" UUID="fef7aa18-e35b-4ec4-8ba3-ed44033a38d4" URI="" ORDERINDEX="255" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1723" CREATED="2009-01-28 17:07:04.0" UUID="e8d3d3c6-c6e7-4dc6-b44a-77be24c97c42" URI="" ORDERINDEX="254" PARTOF_ID="1930" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1724" CREATED="2009-01-28 17:07:04.0" UUID="7047b137-84f4-46b5-8b71-4469e3d75545" URI="" ORDERINDEX="253" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1725" CREATED="2009-01-28 17:07:04.0" UUID="a09998ce-f3a8-4496-947e-518466697e99" URI="" ORDERINDEX="252" PARTOF_ID="1956" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1726" CREATED="2009-01-28 17:07:04.0" UUID="29e6f3e7-ffa7-403a-8051-7d18e67e7a45" URI="" ORDERINDEX="251" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1727" CREATED="2009-01-28 17:07:04.0" UUID="03d1211d-d056-46c1-998f-c2514826eafd" URI="" ORDERINDEX="250" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1728" CREATED="2009-01-28 17:07:04.0" UUID="68fd0c55-a9e2-4184-ab52-9d1702b02bb7" URI="" ORDERINDEX="249" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1729" CREATED="2009-01-28 17:07:04.0" UUID="cd604ba0-d10b-44ac-acd9-7ec4d5370d5e" URI="" ORDERINDEX="248" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1730" CREATED="2009-01-28 17:07:04.0" UUID="c7377fb4-abb1-4afd-96fb-111cac62c8f3" URI="" ORDERINDEX="247" PARTOF_ID="1961" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1731" CREATED="2009-01-28 17:07:04.0" UUID="7442406d-0bed-4d0d-a959-b16d81c3e161" URI="" ORDERINDEX="246" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1732" CREATED="2009-01-28 17:07:04.0" UUID="41d2ddce-22bb-4e06-a58a-377239113436" URI="" ORDERINDEX="245" PARTOF_ID="1935" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1733" CREATED="2009-01-28 17:07:04.0" UUID="4340ff7b-d1ba-4d0e-8857-3cf460886615" URI="" ORDERINDEX="244" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1734" CREATED="2009-01-28 17:07:04.0" UUID="81837e67-e449-4434-b088-fa849c434344" URI="" ORDERINDEX="243" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1735" CREATED="2009-01-28 17:07:04.0" UUID="7173ffcc-d91b-4c15-a563-b1c69342945f" URI="" ORDERINDEX="242" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1736" CREATED="2009-01-28 17:07:04.0" UUID="8082a407-d26a-4f8f-b5ca-2d3fb00b5086" URI="" ORDERINDEX="241" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1737" CREATED="2009-01-28 17:07:04.0" UUID="af20dad3-d152-4b50-b862-60c01da19aa5" URI="" ORDERINDEX="240" PARTOF_ID="1932" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1738" CREATED="2009-01-28 17:07:04.0" UUID="df0584e0-e291-4bbb-8f31-5dec7f8f8c11" URI="" ORDERINDEX="239" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1739" CREATED="2009-01-28 17:07:04.0" UUID="f9516ee3-c0d5-4d7c-bdb2-18629044c015" URI="" ORDERINDEX="238" PARTOF_ID="1951" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1740" CREATED="2009-01-28 17:07:04.0" UUID="2ddb5919-9b24-4429-b1b5-5b109ce32916" URI="" ORDERINDEX="237" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1741" CREATED="2009-01-28 17:07:04.0" UUID="ceaadd5d-0a56-4297-a583-a887d104bb68" URI="" ORDERINDEX="236" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1742" CREATED="2009-01-28 17:07:04.0" UUID="c2537c9b-5f5f-4e49-975b-9098aa696232" URI="" ORDERINDEX="235" PARTOF_ID="1936" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1743" CREATED="2009-01-28 17:07:04.0" UUID="ec62407d-d0e1-4885-aa58-947ea319ce4c" URI="" ORDERINDEX="234" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1744" CREATED="2009-01-28 17:07:04.0" UUID="3429522d-f0c1-47ee-a2ed-5e7b11027b6a" URI="" ORDERINDEX="233" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1745" CREATED="2009-01-28 17:07:04.0" UUID="ce0b678a-f762-4e81-af58-0bce22604dec" URI="" ORDERINDEX="232" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1746" CREATED="2009-01-28 17:07:04.0" UUID="5de71808-0572-4513-ac0f-f21216132b99" URI="" ORDERINDEX="231" PARTOF_ID="1962" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1747" CREATED="2009-01-28 17:07:04.0" UUID="3cdf4b9f-ab0d-475c-a8ad-abaf50b6bc51" URI="" ORDERINDEX="230" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1748" CREATED="2009-01-28 17:07:04.0" UUID="af7dc765-068d-4748-8dbd-f0dbf606285e" URI="" ORDERINDEX="229" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1749" CREATED="2009-01-28 17:07:04.0" UUID="db3cb12f-d198-47f5-9ccf-da63e5325787" URI="" ORDERINDEX="228" PARTOF_ID="1942" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1750" CREATED="2009-01-28 17:07:04.0" UUID="6828f3aa-613f-413d-b1f5-5f742b3ced2c" URI="" ORDERINDEX="227" PARTOF_ID="1931" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1751" CREATED="2009-01-28 17:07:04.0" UUID="7697395d-bece-4d42-b5a9-af6d7e29875d" URI="" ORDERINDEX="226" PARTOF_ID="1944" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1752" CREATED="2009-01-28 17:07:04.0" UUID="7161a2d8-cb8f-4dc5-9521-44daf5dc0a64" URI="" ORDERINDEX="225" PARTOF_ID="1947" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1753" CREATED="2009-01-28 17:07:04.0" UUID="b69dc332-a200-4185-90d6-56dee024f179" URI="" ORDERINDEX="224" PARTOF_ID="1951" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1754" CREATED="2009-01-28 17:07:04.0" UUID="b839ad86-c11d-4e2b-b94c-5b8e56ec0190" URI="" ORDERINDEX="223" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1755" CREATED="2009-01-28 17:07:04.0" UUID="690bd6d6-1132-4428-8bd4-a260c8b402b5" URI="" ORDERINDEX="222" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1756" CREATED="2009-01-28 17:07:04.0" UUID="eb0ecf71-52c9-420d-8b04-bd5f619a606c" URI="" ORDERINDEX="221" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1757" CREATED="2009-01-28 17:07:04.0" UUID="05eb3ea9-cc10-4704-9b77-17ce57dca797" URI="" ORDERINDEX="220" PARTOF_ID="1952" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1758" CREATED="2009-01-28 17:07:04.0" UUID="09dc1f07-569c-4101-8ff1-0ae1e9046cfe" URI="" ORDERINDEX="219" PARTOF_ID="1944" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1759" CREATED="2009-01-28 17:07:04.0" UUID="722f6cba-f21a-4f4d-8151-173d3377fa04" URI="" ORDERINDEX="218" PARTOF_ID="1951" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1760" CREATED="2009-01-28 17:07:04.0" UUID="c0f1305e-95b1-4501-9bc9-90c5c3b800b5" URI="" ORDERINDEX="217" PARTOF_ID="1950" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1761" CREATED="2009-01-28 17:07:04.0" UUID="815a67da-1a22-45d3-bef3-65333795b509" URI="" ORDERINDEX="216" PARTOF_ID="1938" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1762" CREATED="2009-01-28 17:07:04.0" UUID="a7947714-fb33-4aca-80ce-f418f8b89f55" URI="" ORDERINDEX="215" PARTOF_ID="1957" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1763" CREATED="2009-01-28 17:07:04.0" UUID="ae1a9ce9-8d54-48c8-bdc8-4ad49df5e2b5" URI="" ORDERINDEX="214" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1764" CREATED="2009-01-28 17:07:04.0" UUID="8c815ecb-c0ac-49dc-bf9a-6af9fded206f" URI="" ORDERINDEX="213" PARTOF_ID="1950" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1765" CREATED="2009-01-28 17:07:04.0" UUID="57aa7e14-0e06-45ba-87b1-5f78c022134e" URI="" ORDERINDEX="212" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1766" CREATED="2009-01-28 17:07:04.0" UUID="c39e7ff9-2b52-4e54-82c4-de836ab94f32" URI="" ORDERINDEX="211" PARTOF_ID="1951" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1767" CREATED="2009-01-28 17:07:04.0" UUID="863a2c93-af7d-46fa-b8ec-9b081c972caa" URI="" ORDERINDEX="210" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1768" CREATED="2009-01-28 17:07:04.0" UUID="32708172-de90-418a-8637-1b29ca8ff22b" URI="" ORDERINDEX="209" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1769" CREATED="2009-01-28 17:07:04.0" UUID="5446b13f-0cdd-4f60-9f17-444606f7678d" URI="" ORDERINDEX="208" PARTOF_ID="1944" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1770" CREATED="2009-01-28 17:07:04.0" UUID="6e72dede-e94b-4051-bf96-348add8135e6" URI="" ORDERINDEX="207" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1771" CREATED="2009-01-28 17:07:04.0" UUID="c9c406ee-0747-45b0-bbe7-e3045d468b5d" URI="" ORDERINDEX="206" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1772" CREATED="2009-01-28 17:07:04.0" UUID="16444bc5-a042-4cd8-9d81-0eefd7925894" URI="" ORDERINDEX="205" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1773" CREATED="2009-01-28 17:07:04.0" UUID="9e765dbf-aebb-47af-a193-a849f9daa63b" URI="" ORDERINDEX="204" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1774" CREATED="2009-01-28 17:07:04.0" UUID="33a2472d-d86b-45b1-83c0-e4cd78fb4915" URI="" ORDERINDEX="203" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1775" CREATED="2009-01-28 17:07:04.0" UUID="18f7a5a9-739a-44bd-925c-68609d1c1835" URI="" ORDERINDEX="202" PARTOF_ID="1952" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1776" CREATED="2009-01-28 17:07:04.0" UUID="a9eead79-a85b-462b-a292-c0fb2929a3e5" URI="" ORDERINDEX="201" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1777" CREATED="2009-01-28 17:07:04.0" UUID="e480fd06-ec60-4a0f-81fd-faf832b06715" URI="" ORDERINDEX="200" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1778" CREATED="2009-01-28 17:07:04.0" UUID="51a2af3d-7a01-41a8-be18-7896eaf147ff" URI="" ORDERINDEX="199" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1779" CREATED="2009-01-28 17:07:04.0" UUID="235ff30d-2a25-4e96-b155-0fc0d08ec685" URI="" ORDERINDEX="198" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1780" CREATED="2009-01-28 17:07:04.0" UUID="3864694a-e0d7-40f5-b9db-0eecde047e9e" URI="" ORDERINDEX="197" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1781" CREATED="2009-01-28 17:07:04.0" UUID="307e943a-1e0b-48e8-b4e1-34ebd67a1efe" URI="" ORDERINDEX="196" PARTOF_ID="1930" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1782" CREATED="2009-01-28 17:07:04.0" UUID="836cae07-03f0-4c1e-ac67-86c6f6457ac9" URI="" ORDERINDEX="195" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1783" CREATED="2009-01-28 17:07:04.0" UUID="93ab78d4-4c7e-4316-84f1-4dccbc70d71f" URI="" ORDERINDEX="194" PARTOF_ID="1966" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1784" CREATED="2009-01-28 17:07:04.0" UUID="4e22114e-2990-429d-83af-252d428a11e8" URI="" ORDERINDEX="193" PARTOF_ID="1923" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1785" CREATED="2009-01-28 17:07:04.0" UUID="e6e00b4e-5417-46aa-b2ed-b123e4a94fc7" URI="" ORDERINDEX="192" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1786" CREATED="2009-01-28 17:07:04.0" UUID="37f6aaf2-a6bb-4f4c-a4ad-aa25074babbf" URI="" ORDERINDEX="191" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1787" CREATED="2009-01-28 17:07:04.0" UUID="bda3f9fb-30cf-43fd-8d17-5e4d69545ed5" URI="" ORDERINDEX="190" PARTOF_ID="1934" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1788" CREATED="2009-01-28 17:07:04.0" UUID="460e57fa-9465-47bd-bf6e-c46dd29d6cdd" URI="" ORDERINDEX="189" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1789" CREATED="2009-01-28 17:07:04.0" UUID="4faf248e-8a45-42c8-b5f3-94b34b4e3794" URI="" ORDERINDEX="188" PARTOF_ID="1921" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1790" CREATED="2009-01-28 17:07:04.0" UUID="a742ebff-609b-4168-a85b-1825f4da98b4" URI="" ORDERINDEX="187" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1791" CREATED="2009-01-28 17:07:04.0" UUID="baa26afa-8dac-4a7b-b5b9-fca460ac3958" URI="" ORDERINDEX="186" PARTOF_ID="1923" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1792" CREATED="2009-01-28 17:07:04.0" UUID="8f2551f2-67fa-46fc-8a81-1de160171798" URI="" ORDERINDEX="185" PARTOF_ID="1947" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1793" CREATED="2009-01-28 17:07:04.0" UUID="65c9b84e-dd19-4842-816a-e4e7a4b5143f" URI="" ORDERINDEX="184" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1794" CREATED="2009-01-28 17:07:04.0" UUID="efdb3684-9f82-4d9d-ae83-f262a4156be2" URI="" ORDERINDEX="183" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1795" CREATED="2009-01-28 17:07:04.0" UUID="f089837d-5d85-4e3c-8324-7111ae020b1d" URI="" ORDERINDEX="182" PARTOF_ID="1933" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1796" CREATED="2009-01-28 17:07:04.0" UUID="5f551283-af06-40cb-9f3f-3cccfb39d31b" URI="" ORDERINDEX="181" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1797" CREATED="2009-01-28 17:07:04.0" UUID="e724a05c-c53c-427c-b42c-32ca323d13f9" URI="" ORDERINDEX="180" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1798" CREATED="2009-01-28 17:07:04.0" UUID="36f2a8a1-af75-4dd2-8376-a4535c6bb697" URI="" ORDERINDEX="179" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1799" CREATED="2009-01-28 17:07:04.0" UUID="404795df-e4c2-4c01-944c-2b8f7a900595" URI="" ORDERINDEX="178" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1800" CREATED="2009-01-28 17:07:04.0" UUID="7b7c2db5-aa44-4302-bdec-6556fd74b0b9" URI="" ORDERINDEX="177" PARTOF_ID="1966" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1801" CREATED="2009-01-28 17:07:04.0" UUID="5b8e5984-02da-47b3-b76a-3dec7abb75d4" URI="" ORDERINDEX="176" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1802" CREATED="2009-01-28 17:07:04.0" UUID="7147ccee-4f7c-40b7-a406-63174617fbf8" URI="" ORDERINDEX="175" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1803" CREATED="2009-01-28 17:07:04.0" UUID="108b8834-f38c-478c-9e5a-19e0926baaeb" URI="" ORDERINDEX="174" PARTOF_ID="1920" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1804" CREATED="2009-01-28 17:07:04.0" UUID="1ec3e5c2-bdd8-4656-aa8a-282966667c68" URI="" ORDERINDEX="173" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1805" CREATED="2009-01-28 17:07:04.0" UUID="84255b9c-ebd8-4f25-a18e-fb1e9343d5ba" URI="" ORDERINDEX="172" PARTOF_ID="1921" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1806" CREATED="2009-01-28 17:07:04.0" UUID="37529096-5d47-4926-8682-4fa8311d0ef4" URI="" ORDERINDEX="171" PARTOF_ID="1965" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1807" CREATED="2009-01-28 17:07:04.0" UUID="54e966a4-9a64-451c-9329-e2a45080f365" URI="" ORDERINDEX="170" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1808" CREATED="2009-01-28 17:07:04.0" UUID="67fb45d0-3a51-48ba-875a-7694fb566f28" URI="" ORDERINDEX="169" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1809" CREATED="2009-01-28 17:07:04.0" UUID="bd2d1a58-6e2f-4501-8d94-4b01615cf8d2" URI="" ORDERINDEX="168" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1810" CREATED="2009-01-28 17:07:04.0" UUID="09db7449-0d4a-4aed-911f-f88a5c57f93f" URI="" ORDERINDEX="167" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1811" CREATED="2009-01-28 17:07:04.0" UUID="5f0cfd48-9afd-4704-8e5e-e58b377a5302" URI="" ORDERINDEX="166" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1812" CREATED="2009-01-28 17:07:04.0" UUID="66305c99-ffe4-4ecc-8d2e-8d1efe38c9ea" URI="" ORDERINDEX="165" PARTOF_ID="1958" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1813" CREATED="2009-01-28 17:07:04.0" UUID="44651d37-9ad2-430a-be6b-3e7359f2da8a" URI="" ORDERINDEX="164" PARTOF_ID="1958" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1814" CREATED="2009-01-28 17:07:04.0" UUID="ccc35725-3334-4256-a0be-afc30df943f3" URI="" ORDERINDEX="163" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1815" CREATED="2009-01-28 17:07:04.0" UUID="76604a11-1668-480f-9f29-498ff1b205fa" URI="" ORDERINDEX="162" PARTOF_ID="1923" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1816" CREATED="2009-01-28 17:07:04.0" UUID="edd055d7-76ea-4185-94da-3b44c4e03bd4" URI="" ORDERINDEX="161" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1817" CREATED="2009-01-28 17:07:04.0" UUID="9587540f-c501-47ad-b5bc-48e4c18eede4" URI="" ORDERINDEX="160" PARTOF_ID="1962" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1818" CREATED="2009-01-28 17:07:04.0" UUID="6de5f860-b77b-4a61-bbfe-b6718108cea0" URI="" ORDERINDEX="159" PARTOF_ID="1920" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1819" CREATED="2009-01-28 17:07:04.0" UUID="2288924d-3380-43b4-9787-143953c3d505" URI="" ORDERINDEX="158" PARTOF_ID="1936" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1820" CREATED="2009-01-28 17:07:04.0" UUID="3f0f9e9a-c65f-41c3-9f50-88393d43b48b" URI="" ORDERINDEX="157" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1821" CREATED="2009-01-28 17:07:04.0" UUID="edf5e728-8e45-434d-ad82-50b39e2af896" URI="" ORDERINDEX="156" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1822" CREATED="2009-01-28 17:07:04.0" UUID="54d5b1d5-295a-4206-beaf-f56b1b3385a1" URI="" ORDERINDEX="155" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1823" CREATED="2009-01-28 17:07:04.0" UUID="04ec3382-0431-4430-afe8-1fc1c8ce38da" URI="" ORDERINDEX="154" PARTOF_ID="1958" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1824" CREATED="2009-01-28 17:07:04.0" UUID="2f755c36-e953-4f4a-bf9d-3128ec03ace8" URI="" ORDERINDEX="153" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1825" CREATED="2009-01-28 17:07:04.0" UUID="104ef871-3d5a-4e22-8ab3-05a4adec4641" URI="" ORDERINDEX="152" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1826" CREATED="2009-01-28 17:07:04.0" UUID="234d24aa-963d-441e-afdc-a1cca6e85787" URI="" ORDERINDEX="151" PARTOF_ID="1966" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1827" CREATED="2009-01-28 17:07:04.0" UUID="da4cce9a-439b-4cc4-8073-85dc75bae169" URI="" ORDERINDEX="150" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1828" CREATED="2009-01-28 17:07:04.0" UUID="dccd00ae-9112-4c80-9591-09bd7ff7d4fd" URI="" ORDERINDEX="149" PARTOF_ID="1961" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1829" CREATED="2009-01-28 17:07:04.0" UUID="12c3e2c6-432e-4087-bfe2-07c29df03c47" URI="" ORDERINDEX="148" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1830" CREATED="2009-01-28 17:07:04.0" UUID="aadc5ca0-cf8e-48e5-a12e-8d34e6c7e4cb" URI="" ORDERINDEX="147" PARTOF_ID="1938" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1831" CREATED="2009-01-28 17:07:04.0" UUID="96886299-b8f5-4a44-abd7-3ee47c68bbe3" URI="" ORDERINDEX="146" PARTOF_ID="1952" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1832" CREATED="2009-01-28 17:07:04.0" UUID="c6582f9f-a0bb-4f76-a8c3-0562b78e723d" URI="" ORDERINDEX="145" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1833" CREATED="2009-01-28 17:07:04.0" UUID="e37f35fc-53df-41f6-a510-af9cefd5e921" URI="" ORDERINDEX="144" PARTOF_ID="1935" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1834" CREATED="2009-01-28 17:07:04.0" UUID="546fc561-10b0-41f4-995f-cc1fe9fd8164" URI="" ORDERINDEX="143" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1835" CREATED="2009-01-28 17:07:04.0" UUID="c755ce8e-3ad3-4e0e-bbff-7d108a933c58" URI="" ORDERINDEX="142" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1836" CREATED="2009-01-28 17:07:04.0" UUID="8068a150-c71c-4e67-9e26-70c714bf6615" URI="" ORDERINDEX="141" PARTOF_ID="1923" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1837" CREATED="2009-01-28 17:07:04.0" UUID="bd243fa3-cd56-45c7-a445-1553e6e5e14d" URI="" ORDERINDEX="140" PARTOF_ID="1923" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1838" CREATED="2009-01-28 17:07:04.0" UUID="91aaed46-a4a9-47dd-9bb7-8d254b3963cb" URI="" ORDERINDEX="139" PARTOF_ID="1965" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1839" CREATED="2009-01-28 17:07:04.0" UUID="c8f06fd3-616a-4d44-b57e-0a49a4d4c609" URI="" ORDERINDEX="138" PARTOF_ID="1936" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1840" CREATED="2009-01-28 17:07:04.0" UUID="da2f536b-6104-40b6-b198-b803118a1314" URI="" ORDERINDEX="137" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1841" CREATED="2009-01-28 17:07:04.0" UUID="3a02ef4b-f5df-4bd4-93c5-2ec4a24a8852" URI="" ORDERINDEX="136" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1842" CREATED="2009-01-28 17:07:04.0" UUID="da98e966-4250-46ac-8624-c91dc05338dc" URI="" ORDERINDEX="135" PARTOF_ID="1930" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1843" CREATED="2009-01-28 17:07:04.0" UUID="792e48a0-9b18-487a-b6da-33cbbb265873" URI="" ORDERINDEX="134" PARTOF_ID="1961" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1844" CREATED="2009-01-28 17:07:04.0" UUID="df0da18b-bb19-4e4a-a0af-eab75abde998" URI="" ORDERINDEX="133" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1845" CREATED="2009-01-28 17:07:04.0" UUID="62c845f8-3d65-413b-a311-5bc9d6789a03" URI="" ORDERINDEX="132" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1846" CREATED="2009-01-28 17:07:04.0" UUID="df168714-503f-4fd9-8813-01f23417c0c2" URI="" ORDERINDEX="131" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1847" CREATED="2009-01-28 17:07:04.0" UUID="03e4f2d6-3b1b-4b0c-8d64-ac81e02d6f1f" URI="" ORDERINDEX="130" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1848" CREATED="2009-01-28 17:07:04.0" UUID="8e7961af-b0bd-4959-8084-917e0e8e9b9a" URI="" ORDERINDEX="129" PARTOF_ID="1920" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1849" CREATED="2009-01-28 17:07:04.0" UUID="c0d9eb53-dccf-4963-b0d7-49c93cc9061b" URI="" ORDERINDEX="128" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1850" CREATED="2009-01-28 17:07:04.0" UUID="f17f271c-f95b-4db9-aa1f-31db1b99d79c" URI="" ORDERINDEX="127" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1851" CREATED="2009-01-28 17:07:04.0" UUID="7f8d9b4d-a1d3-4b74-9fa9-de45fd154db4" URI="" ORDERINDEX="126" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1852" CREATED="2009-01-28 17:07:04.0" UUID="e626ea99-8e46-49c6-8c1a-96b234dffd47" URI="" ORDERINDEX="125" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1853" CREATED="2009-01-28 17:07:04.0" UUID="e9be3140-41ed-4f3b-85d2-883bee63b4a7" URI="" ORDERINDEX="124" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1854" CREATED="2009-01-28 17:07:04.0" UUID="4b95d239-1c7d-45bd-87d0-c2db25f4d0b8" URI="" ORDERINDEX="123" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1855" CREATED="2009-01-28 17:07:04.0" UUID="8d75b680-9d66-4e82-b20a-9435ac4eeab5" URI="" ORDERINDEX="122" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1856" CREATED="2009-01-28 17:07:04.0" UUID="357360e8-2631-4f93-bc07-71e589cab7bb" URI="" ORDERINDEX="121" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1857" CREATED="2009-01-28 17:07:04.0" UUID="719429fb-8f31-4bec-875e-ca5df76490ad" URI="" ORDERINDEX="120" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1858" CREATED="2009-01-28 17:07:04.0" UUID="16977fc9-9309-4609-9776-13df4a12282e" URI="" ORDERINDEX="119" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1859" CREATED="2009-01-28 17:07:04.0" UUID="273e6b4f-22cf-442e-a19d-c0f9b1859e83" URI="" ORDERINDEX="118" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1860" CREATED="2009-01-28 17:07:04.0" UUID="f92224d9-1754-4422-853e-e2bb5d981612" URI="" ORDERINDEX="117" PARTOF_ID="1958" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1861" CREATED="2009-01-28 17:07:04.0" UUID="e2db82b4-45b7-4800-bc9c-708ef616495b" URI="" ORDERINDEX="116" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1862" CREATED="2009-01-28 17:07:04.0" UUID="6d7a5e91-765e-4edd-8c25-71052cb0dcda" URI="" ORDERINDEX="115" PARTOF_ID="1942" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1863" CREATED="2009-01-28 17:07:04.0" UUID="efb2c2c5-c71a-4214-99e1-ff4b1ad68980" URI="" ORDERINDEX="114" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1864" CREATED="2009-01-28 17:07:04.0" UUID="d569d6e0-5006-4636-b6f6-094e29dd8c52" URI="" ORDERINDEX="113" PARTOF_ID="1927" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1865" CREATED="2009-01-28 17:07:04.0" UUID="23e88955-3ee2-4d42-93ec-bd21f271e491" URI="" ORDERINDEX="112" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1866" CREATED="2009-01-28 17:07:04.0" UUID="e34ba389-b603-4590-bd11-95e3715456e2" URI="" ORDERINDEX="111" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1867" CREATED="2009-01-28 17:07:04.0" UUID="0e875804-b2e6-4dbe-941d-927d3539dd12" URI="" ORDERINDEX="110" PARTOF_ID="1919" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1868" CREATED="2009-01-28 17:07:04.0" UUID="50e0c0a8-d601-48a5-b6f7-ac1972a2bd8e" URI="" ORDERINDEX="109" PARTOF_ID="1919" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1869" CREATED="2009-01-28 17:07:04.0" UUID="897e8a36-1201-44dc-aeea-7e11ce4599cb" URI="" ORDERINDEX="108" PARTOF_ID="1919" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1870" CREATED="2009-01-28 17:07:04.0" UUID="223be2d6-a7bb-4616-b0b6-3656cdd936c7" URI="" ORDERINDEX="107" PARTOF_ID="1919" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1871" CREATED="2009-01-28 17:07:04.0" UUID="72e32463-9fd7-40d4-8c32-5901cb7a8425" URI="" ORDERINDEX="106" PARTOF_ID="1919" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1872" CREATED="2009-01-28 17:07:04.0" UUID="66be1451-ffa9-4c71-84ae-fa6ff6c52df0" URI="" ORDERINDEX="105" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1873" CREATED="2009-01-28 17:07:04.0" UUID="6ca10d3d-50fe-4eb0-9027-4638178c7275" URI="" ORDERINDEX="104" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1874" CREATED="2009-01-28 17:07:04.0" UUID="ecc89b7e-7425-4719-8704-f48a171fc5a9" URI="" ORDERINDEX="103" PARTOF_ID="1952" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1875" CREATED="2009-01-28 17:07:04.0" UUID="6e961fee-a1f9-43f8-bd2c-9d7cefc0f3af" URI="" ORDERINDEX="102" PARTOF_ID="1932" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1876" CREATED="2009-01-28 17:07:04.0" UUID="83512b5e-f591-4e70-9138-865ad9684475" URI="" ORDERINDEX="101" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1877" CREATED="2009-01-28 17:07:04.0" UUID="fb4ab229-0054-43eb-a897-ef9b78c3c006" URI="" ORDERINDEX="100" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1878" CREATED="2009-01-28 17:07:04.0" UUID="e615e7e6-5b64-4903-b794-816baab689b3" URI="" ORDERINDEX="99" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1879" CREATED="2009-01-28 17:07:04.0" UUID="5c993136-e6e8-4cb7-8628-5a3dc72e685d" URI="" ORDERINDEX="98" PARTOF_ID="1920" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1880" CREATED="2009-01-28 17:07:04.0" UUID="e4c75529-237f-4e74-bf7d-31888c35b40c" URI="" ORDERINDEX="97" PARTOF_ID="1923" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1881" CREATED="2009-01-28 17:07:04.0" UUID="3c3fcc8a-9ea9-45c4-b929-b4cd3a269171" URI="" ORDERINDEX="96" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1882" CREATED="2009-01-28 17:07:04.0" UUID="7c015a65-7cd0-49f5-8cc8-0832b56edf61" URI="" ORDERINDEX="95" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1883" CREATED="2009-01-28 17:07:04.0" UUID="dc3ff939-0271-40f0-b77f-c3dc911e8d5b" URI="" ORDERINDEX="94" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1884" CREATED="2009-01-28 17:07:04.0" UUID="020043d9-33ee-4ed2-8411-7e744a28a8d9" URI="" ORDERINDEX="93" PARTOF_ID="1940" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1885" CREATED="2009-01-28 17:07:04.0" UUID="948264a0-fd65-4423-8a0a-2bf063a3995d" URI="" ORDERINDEX="92" PARTOF_ID="1966" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1886" CREATED="2009-01-28 17:07:04.0" UUID="a58940b2-d7e9-4a99-b255-d3eee930f2b4" URI="" ORDERINDEX="91" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1887" CREATED="2009-01-28 17:07:04.0" UUID="6ddb07e2-e227-4111-8138-7d321530f0b2" URI="" ORDERINDEX="90" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1888" CREATED="2009-01-28 17:07:04.0" UUID="6b8ee963-f7f6-4173-bda2-0dc1492edac1" URI="" ORDERINDEX="89" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1889" CREATED="2009-01-28 17:07:04.0" UUID="a17bc439-3ee0-4bd0-83b8-8ec975bebb60" URI="" ORDERINDEX="88" PARTOF_ID="1965" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1890" CREATED="2009-01-28 17:07:04.0" UUID="d9ebede1-ebe7-4b50-bb95-315e93fa7802" URI="" ORDERINDEX="87" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1891" CREATED="2009-01-28 17:07:04.0" UUID="4d176728-ada1-41f3-8b2c-123b8bf133e4" URI="" ORDERINDEX="86" PARTOF_ID="1961" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1892" CREATED="2009-01-28 17:07:04.0" UUID="2f10ca0f-92bc-465b-a7da-dabd94f92e2a" URI="" ORDERINDEX="85" PARTOF_ID="1966" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1893" CREATED="2009-01-28 17:07:04.0" UUID="f7754519-6799-4dd8-bccf-d48370c6dc30" URI="" ORDERINDEX="84" PARTOF_ID="1938" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1894" CREATED="2009-01-28 17:07:04.0" UUID="bac86590-6107-4bb5-b947-780a918b19a1" URI="" ORDERINDEX="83" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1895" CREATED="2009-01-28 17:07:04.0" UUID="dba9e336-a2b8-4332-baff-ef6fb592a30e" URI="" ORDERINDEX="82" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1896" CREATED="2009-01-28 17:07:04.0" UUID="72a08d3b-d333-4cb3-841e-c339a1e15172" URI="" ORDERINDEX="81" PARTOF_ID="1933" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1897" CREATED="2009-01-28 17:07:04.0" UUID="c1a294af-54b1-43ac-8699-49ff1a166a08" URI="" ORDERINDEX="80" PARTOF_ID="1954" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1898" CREATED="2009-01-28 17:07:04.0" UUID="747ebd42-2c2a-4db5-8a70-bc1d7a3026ab" URI="" ORDERINDEX="79" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1899" CREATED="2009-01-28 17:07:04.0" UUID="ebb5d419-66f5-47d8-aa84-7d986a3d9dc8" URI="" ORDERINDEX="78" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1900" CREATED="2009-01-28 17:07:04.0" UUID="9d3579a2-8bc6-4c72-904e-2961a6f84de1" URI="" ORDERINDEX="77" PARTOF_ID="1927" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1901" CREATED="2009-01-28 17:07:04.0" UUID="4f147ab5-9667-4406-a537-4ded4c4ccd63" URI="" ORDERINDEX="76" PARTOF_ID="1916" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1902" CREATED="2009-01-28 17:07:04.0" UUID="bac38903-3c49-4004-8566-50e684196b47" URI="" ORDERINDEX="75" PARTOF_ID="1956" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1903" CREATED="2009-01-28 17:07:04.0" UUID="6af14e8b-2e1e-4012-980c-9bfe59ddb59d" URI="" ORDERINDEX="74" PARTOF_ID="1942" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1904" CREATED="2009-01-28 17:07:04.0" UUID="fe4be234-5bbb-48ee-87c5-f0d893a34889" URI="" ORDERINDEX="73" PARTOF_ID="1951" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1905" CREATED="2009-01-28 17:07:04.0" UUID="50b79b3c-41b2-4be3-a1cd-e7d360abfbec" URI="" ORDERINDEX="72" PARTOF_ID="1933" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1906" CREATED="2009-01-28 17:07:04.0" UUID="8cfc1722-e1e8-49d3-95a7-9879de6de490" URI="" ORDERINDEX="71" PARTOF_ID="1952" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1907" CREATED="2009-01-28 17:07:04.0" UUID="73755400-0105-416c-b2f4-b10e3c55b0ec" URI="" ORDERINDEX="70" PARTOF_ID="1962" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1908" CREATED="2009-01-28 17:07:04.0" UUID="4f890bf8-36e8-444a-92db-59976740ac61" URI="" ORDERINDEX="69" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1909" CREATED="2009-01-28 17:07:04.0" UUID="4fdd8662-7635-4401-94e5-6a457a8593bb" URI="" ORDERINDEX="68" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1910" CREATED="2009-01-28 17:07:04.0" UUID="e097b877-517c-4308-9f4c-a6bfa928238d" URI="" ORDERINDEX="67" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1911" CREATED="2009-01-28 17:07:04.0" UUID="2cac2091-77d0-4a0d-a202-609cb64b096b" URI="" ORDERINDEX="66" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1912" CREATED="2009-01-28 17:07:04.0" UUID="707c485f-dcad-41a5-bc8b-7c81d5249c9f" URI="" ORDERINDEX="65" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1913" CREATED="2009-01-28 17:07:04.0" UUID="00ae742b-f8b1-4f24-8dd7-57c157676734" URI="" ORDERINDEX="64" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1914" CREATED="2009-01-28 17:07:04.0" UUID="122977c7-d5e3-4d26-a658-162ce805d1a8" URI="" ORDERINDEX="63" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1915" CREATED="2009-01-28 17:07:04.0" UUID="c31dadb8-0cda-4a6a-b7ec-2787d8a25c67" URI="" ORDERINDEX="62" PARTOF_ID="1932" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1916" CREATED="2009-01-28 17:07:04.0" UUID="0670bfb2-5bb2-4bc5-8486-1eacc85a87b0" URI="" ORDERINDEX="61" PARTOF_ID="1968" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1917" CREATED="2009-01-28 17:07:04.0" UUID="09714b3f-a0d1-479e-914e-3a207c9e1b19" URI="" ORDERINDEX="60" PARTOF_ID="1968" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1918" CREATED="2009-01-28 17:07:04.0" UUID="87964033-5404-42ac-8f18-09baa388c14e" URI="" ORDERINDEX="59" PARTOF_ID="1969" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1919" CREATED="2009-01-28 17:07:04.0" UUID="85067b09-9bdf-4cb1-9ec6-95cf884aba63" URI="" ORDERINDEX="58" PARTOF_ID="1969" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1920" CREATED="2009-01-28 17:07:04.0" UUID="f25135c1-f77c-46a7-ac4f-7bad9446cfef" URI="" ORDERINDEX="57" PARTOF_ID="1969" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1921" CREATED="2009-01-28 17:07:04.0" UUID="97df9967-f9d0-4153-ab27-83abf7e508fd" URI="" ORDERINDEX="56" PARTOF_ID="1969" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1922" CREATED="2009-01-28 17:07:04.0" UUID="b5ef1405-89f6-455b-adb1-01dfbff84663" URI="" ORDERINDEX="55" PARTOF_ID="1969" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1923" CREATED="2009-01-28 17:07:04.0" UUID="38128f22-3908-44aa-8c5d-cdc9570f29f0" URI="" ORDERINDEX="54" PARTOF_ID="1969" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1924" CREATED="2009-01-28 17:07:04.0" UUID="a4243f05-52b0-4c2f-8e2c-7650a1c5d8b0" URI="" ORDERINDEX="53" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1925" CREATED="2009-01-28 17:07:04.0" UUID="f1911c44-8925-4a8a-b25e-8d2379ac7195" URI="" ORDERINDEX="52" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1926" CREATED="2009-01-28 17:07:04.0" UUID="8c7f2488-5b40-414e-b8de-e854755c69c4" URI="" ORDERINDEX="51" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1927" CREATED="2009-01-28 17:07:04.0" UUID="32e8f7dd-76be-480e-8ff9-32ffd0be20eb" URI="" ORDERINDEX="50" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1928" CREATED="2009-01-28 17:07:04.0" UUID="b6ed282f-76d1-44e3-aafb-2025fbaa001f" URI="" ORDERINDEX="49" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1929" CREATED="2009-01-28 17:07:04.0" UUID="617ded5e-6b96-487a-b706-3fffc81104d9" URI="" ORDERINDEX="48" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1930" CREATED="2009-01-28 17:07:04.0" UUID="d264452e-995b-4e23-a11e-b55b22e43f19" URI="" ORDERINDEX="47" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1931" CREATED="2009-01-28 17:07:04.0" UUID="56674a86-81bd-4bba-90a0-a73b95ca9a0a" URI="" ORDERINDEX="46" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1932" CREATED="2009-01-28 17:07:04.0" UUID="519b890b-6b7d-4bfe-8112-6a80bd55102b" URI="" ORDERINDEX="45" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1933" CREATED="2009-01-28 17:07:04.0" UUID="09bc05d8-badb-4788-b1d8-47bd16fb475b" URI="" ORDERINDEX="44" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1934" CREATED="2009-01-28 17:07:04.0" UUID="ee23fe88-8ee2-47bf-a628-8f88a6e134e0" URI="" ORDERINDEX="43" PARTOF_ID="1971" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1935" CREATED="2009-01-28 17:07:04.0" UUID="6a20ac07-161d-410c-9bca-87be8392306d" URI="" ORDERINDEX="42" PARTOF_ID="1971" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1936" CREATED="2009-01-28 17:07:04.0" UUID="aa33248e-2a35-443c-923a-bf6a813fa9f7" URI="" ORDERINDEX="41" PARTOF_ID="1971" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1937" CREATED="2009-01-28 17:07:04.0" UUID="9f38ea6f-8f82-4697-9603-7877865caaac" URI="" ORDERINDEX="40" PARTOF_ID="1971" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1938" CREATED="2009-01-28 17:07:04.0" UUID="cfc163fb-54e5-48a7-ab14-cc982323f0c5" URI="" ORDERINDEX="39" PARTOF_ID="1972" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1939" CREATED="2009-01-28 17:07:04.0" UUID="37cc7b35-a580-47a2-aedf-bd06a5afe8e5" URI="" ORDERINDEX="38" PARTOF_ID="1972" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1940" CREATED="2009-01-28 17:07:04.0" UUID="173e9075-85c9-433d-9115-dc87d61d21f4" URI="" ORDERINDEX="37" PARTOF_ID="1973" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1941" CREATED="2009-01-28 17:07:04.0" UUID="07cd4677-f025-4bd3-80f6-7762056740ba" URI="" ORDERINDEX="36" PARTOF_ID="1973" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1942" CREATED="2009-01-28 17:07:04.0" UUID="4739866e-3919-4d76-875e-585d45be8c88" URI="" ORDERINDEX="35" PARTOF_ID="1973" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1943" CREATED="2009-01-28 17:07:04.0" UUID="7ceb3526-3fe2-4d4b-8b7c-e0a267b1a9a0" URI="" ORDERINDEX="34" PARTOF_ID="1973" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1944" CREATED="2009-01-28 17:07:04.0" UUID="a883b11e-7ec4-486d-8ee3-2844a0bf1535" URI="" ORDERINDEX="33" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1945" CREATED="2009-01-28 17:07:04.0" UUID="3dfa2c8d-5c09-44b1-8ee9-c5b0dad3c56f" URI="" ORDERINDEX="32" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1946" CREATED="2009-01-28 17:07:04.0" UUID="16183741-4d45-48f4-a367-710b6ce82fee" URI="" ORDERINDEX="31" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1947" CREATED="2009-01-28 17:07:04.0" UUID="4b35ae1c-4f54-4818-a4c5-8323a3aea5fc" URI="" ORDERINDEX="30" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1948" CREATED="2009-01-28 17:07:04.0" UUID="a8c5b44e-21ec-4d40-b847-cd1884968c92" URI="" ORDERINDEX="29" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1949" CREATED="2009-01-28 17:07:04.0" UUID="f998eeb4-b105-4875-ae32-0de41cf389e4" URI="" ORDERINDEX="28" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1950" CREATED="2009-01-28 17:07:04.0" UUID="0cd59844-44e3-430c-9986-49edd1c338be" URI="" ORDERINDEX="27" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1951" CREATED="2009-01-28 17:07:04.0" UUID="ff2bb4b1-4190-4f04-b556-7c64bed0140a" URI="" ORDERINDEX="26" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1952" CREATED="2009-01-28 17:07:04.0" UUID="6692581b-fa7a-4b13-ae39-b1a673d0b252" URI="" ORDERINDEX="25" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1953" CREATED="2009-01-28 17:07:04.0" UUID="b68c6158-96ff-4ef9-8fe6-d27cc4809d25" URI="" ORDERINDEX="24" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1954" CREATED="2009-01-28 17:07:04.0" UUID="06f367c2-e657-4894-8427-d164343dbd75" URI="" ORDERINDEX="23" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1955" CREATED="2009-01-28 17:07:04.0" UUID="a1081898-e631-40b5-a225-fc24809adf8c" URI="" ORDERINDEX="22" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1956" CREATED="2009-01-28 17:07:04.0" UUID="e4f41a32-a056-4628-94f2-23b3ad821135" URI="" ORDERINDEX="21" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1957" CREATED="2009-01-28 17:07:04.0" UUID="4b2e7043-640e-4bf4-8436-7436ed1f7137" URI="" ORDERINDEX="20" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1958" CREATED="2009-01-28 17:07:04.0" UUID="b49bf097-5b36-47ff-8d8f-640bb14bdab2" URI="" ORDERINDEX="19" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1959" CREATED="2009-01-28 17:07:04.0" UUID="1f29eaea-ef04-40ee-96bd-f2f433c78c8c" URI="" ORDERINDEX="18" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1960" CREATED="2009-01-28 17:07:04.0" UUID="931164ad-ec16-4133-afab-bdef25d67636" URI="" ORDERINDEX="17" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1961" CREATED="2009-01-28 17:07:04.0" UUID="521ba4f9-0d74-4ec0-addc-fab9d72dca07" URI="" ORDERINDEX="16" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1962" CREATED="2009-01-28 17:07:04.0" UUID="0a4bf6d1-52d6-4eff-b5d9-0b3c270291f1" URI="" ORDERINDEX="15" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1963" CREATED="2009-01-28 17:07:04.0" UUID="4f1abfb5-b166-47cf-a5bb-b0e6588f5389" URI="" ORDERINDEX="14" PARTOF_ID="1976" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1964" CREATED="2009-01-28 17:07:04.0" UUID="5f3059a8-a4fc-434c-b6f2-292919967553" URI="" ORDERINDEX="13" PARTOF_ID="1976" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1965" CREATED="2009-01-28 17:07:04.0" UUID="6e980d6d-5748-4535-ad7a-95d35542910d" URI="" ORDERINDEX="12" PARTOF_ID="1976" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1966" CREATED="2009-01-28 17:07:04.0" UUID="d292f237-da3d-408b-93a1-3257a8c80b97" URI="" ORDERINDEX="11" PARTOF_ID="1976" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1967" CREATED="2009-01-28 17:07:04.0" UUID="22524ba2-6e57-4b71-89ab-89fc50fba6b4" URI="" ORDERINDEX="10" PARTOF_ID="1976" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1968" CREATED="2009-01-28 17:07:04.0" UUID="791b3aa0-54dd-4bed-9b68-56b4680aad0c" URI="" ORDERINDEX="9" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1969" CREATED="2009-01-28 17:07:04.0" UUID="6310b3ba-96f4-4855-bb5b-326e7af188ea" URI="" ORDERINDEX="8" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1970" CREATED="2009-01-28 17:07:04.0" UUID="2757e726-d897-4546-93bd-7951d203bf6f" URI="" ORDERINDEX="7" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1971" CREATED="2009-01-28 17:07:04.0" UUID="d7fa4cbf-b5cf-4d0a-bc3c-db8706657dfd" URI="" ORDERINDEX="6" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1972" CREATED="2009-01-28 17:07:04.0" UUID="1319898d-e0f4-4d95-a043-ba838ee7c652" URI="" ORDERINDEX="5" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1973" CREATED="2009-01-28 17:07:04.0" UUID="3ed00d6a-a186-48ff-bed2-860c9481ff7d" URI="" ORDERINDEX="4" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1974" CREATED="2009-01-28 17:07:04.0" UUID="e63e4a1a-b51b-4efa-bf99-c4a389d4aab3" URI="" ORDERINDEX="3" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1975" CREATED="2009-01-28 17:07:04.0" UUID="9444016a-b334-4772-8795-ed4019552087" URI="" ORDERINDEX="2" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1976" CREATED="2009-01-28 17:07:04.0" UUID="e860871c-3a14-4ef2-9367-bbd92586c95b" URI="" ORDERINDEX="1" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1977" CREATED="2009-01-28 17:07:06.0" UUID="c3ee7048-15b7-4be1-b687-9ce9c1a669d6" URI="" ORDERINDEX="18" DEFAULTCOLOR="77ed6f" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1978" CREATED="2009-01-28 17:07:06.0" UUID="fac8c347-8262-44a1-b0a4-db4de451c021" URI="" ORDERINDEX="17" DEFAULTCOLOR="555555" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1979" CREATED="2009-01-28 17:07:06.0" UUID="826239f7-45b7-42b5-857c-c1f852cfad6b" URI="" ORDERINDEX="16" DEFAULTCOLOR="ffed3f" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1980" CREATED="2009-01-28 17:07:06.0" UUID="e191e89a-a751-4b0c-b883-7f1de70915c9" URI="" ORDERINDEX="15" DEFAULTCOLOR="ff0d6f" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1981" CREATED="2009-01-28 17:07:06.0" UUID="42946bd6-9c22-45ad-a910-7427e8f60bfd" URI="" ORDERINDEX="14" DEFAULTCOLOR="ffed61" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1982" CREATED="2009-01-28 17:07:06.0" UUID="da159544-b0dd-4599-a9c9-640826af8c17" URI="" ORDERINDEX="13" DEFAULTCOLOR="afed6f" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1983" CREATED="2009-01-28 17:07:06.0" UUID="0c54761e-4887-4788-9dfa-7190c88746e3" URI="" ORDERINDEX="12" DEFAULTCOLOR="ffed6f" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1984" CREATED="2009-01-28 17:07:06.0" UUID="2522c527-e488-45d4-87df-a5a5ef0fdbbd" URI="" ORDERINDEX="11" DEFAULTCOLOR="ccebc5" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1985" CREATED="2009-01-28 17:07:06.0" UUID="83eb0aa0-1a45-495a-a3ca-bf6958b74366" URI="" ORDERINDEX="10" DEFAULTCOLOR="bc80bd" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1986" CREATED="2009-01-28 17:07:06.0" UUID="643cf9d1-a5f1-4622-9837-82ef961e880b" URI="" ORDERINDEX="9" DEFAULTCOLOR="d9d9d9" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1987" CREATED="2009-01-28 17:07:06.0" UUID="b47f1679-0d0c-4ea7-a2e4-80709ea791c6" URI="" ORDERINDEX="8" DEFAULTCOLOR="fccde5" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1988" CREATED="2009-01-28 17:07:06.0" UUID="9eb99fe6-59e2-4445-8e6a-478365bd0fa9" URI="" ORDERINDEX="7" DEFAULTCOLOR="b3de69" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1989" CREATED="2009-01-28 17:07:06.0" UUID="4ba212ef-041e-418d-9d43-2ebb191b61d8" URI="" ORDERINDEX="6" DEFAULTCOLOR="fdb462" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1990" CREATED="2009-01-28 17:07:06.0" UUID="310373bf-7df4-4d02-8cb3-bcc7448805fc" URI="" ORDERINDEX="5" DEFAULTCOLOR="80b1d3" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1991" CREATED="2009-01-28 17:07:06.0" UUID="8ad9e9df-49cd-4b6a-880b-51ec4de4ce32" URI="" ORDERINDEX="4" DEFAULTCOLOR="fb8072" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1992" CREATED="2009-01-28 17:07:06.0" UUID="925662c1-bb10-459a-8c53-da5a738ac770" URI="" ORDERINDEX="3" DEFAULTCOLOR="bebada" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1993" CREATED="2009-01-28 17:07:06.0" UUID="ddeac4f2-d8fa-43b8-ad7e-ca13abdd32c7" URI="" ORDERINDEX="2" DEFAULTCOLOR="ffffb3" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1994" CREATED="2009-01-28 17:07:06.0" UUID="cef81d25-501c-48d8-bbea-542ec50de2c2" URI="" ORDERINDEX="1" DEFAULTCOLOR="8dd3c7" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="AbsenceTerm" ID="1995" CREATED="2009-01-28 17:07:06.0" UUID="59709861-f7d9-41f9-bb21-92559cedd598" URI="" ORDERINDEX="1" DEFAULTCOLOR="FFFFFF" VOCABULARY_ID="19"/>\r
-  <DEFINEDTERMBASE DTYPE="Sex" ID="1996" CREATED="2009-01-28 17:07:06.0" UUID="b4cfe0cb-b35c-4f97-9b6b-2b3c096ea2c0" URI="" ORDERINDEX="2" VOCABULARY_ID="20"/>\r
-  <DEFINEDTERMBASE DTYPE="Sex" ID="1997" CREATED="2009-01-28 17:07:06.0" UUID="600a5212-cc02-431d-8a80-2bf595bd1eab" URI="" ORDERINDEX="1" VOCABULARY_ID="20"/>\r
-  <DEFINEDTERMBASE DTYPE="DerivationEventType" ID="1998" CREATED="2009-01-28 17:07:06.0" UUID="1cb2bd40-5c9c-459b-89c7-4d9c2fca7432" URI="" VOCABULARY_ID="21"/>\r
-  <DEFINEDTERMBASE DTYPE="DerivationEventType" ID="1999" CREATED="2009-01-28 17:07:06.0" UUID="661e7292-6bcb-495d-a3cc-140024ae3471" URI="" VOCABULARY_ID="21"/>\r
-  <DEFINEDTERMBASE DTYPE="DerivationEventType" ID="2000" CREATED="2009-01-28 17:07:06.0" UUID="9dc1df08-1f31-4008-a4e2-1ddf7c9115da" URI="" VOCABULARY_ID="21"/>\r
-  <DEFINEDTERMBASE DTYPE="DerivationEventType" ID="2001" CREATED="2009-01-28 17:07:06.0" UUID="f9f957b6-88c0-4531-9a7f-b5fb1c9daf66" URI="" VOCABULARY_ID="21"/>\r
-  <DEFINEDTERMBASE DTYPE="DerivationEventType" ID="2002" CREATED="2009-01-28 17:07:06.0" UUID="aa79baac-165d-47ad-9e80-52a03776d8ae" URI="" VOCABULARY_ID="21"/>\r
-  <DEFINEDTERMBASE DTYPE="DerivationEventType" ID="2003" CREATED="2009-01-28 17:07:06.0" UUID="8f54c7cc-eb5e-4652-a6e4-3a4ba429b327" URI="" VOCABULARY_ID="21"/>\r
-  <DEFINEDTERMBASE DTYPE="DerivationEventType" ID="2004" CREATED="2009-01-28 17:07:06.0" UUID="3c7c0929-0528-493e-9e5f-15e0d9585fa1" URI="" VOCABULARY_ID="21"/>\r
-  <DEFINEDTERMBASE DTYPE="DerivationEventType" ID="2005" CREATED="2009-01-28 17:07:06.0" UUID="a4a8e4ce-0e58-462a-be67-a7f567d96da1" URI="" VOCABULARY_ID="21"/>\r
-  <DEFINEDTERMBASE DTYPE="StatisticalMeasure" ID="2006" CREATED="2009-01-28 17:07:06.0" UUID="8955815b-7d21-4149-b1b7-d37af3c2046c" URI="" VOCABULARY_ID="24"/>\r
-  <DEFINEDTERMBASE DTYPE="StatisticalMeasure" ID="2007" CREATED="2009-01-28 17:07:06.0" UUID="571f86ca-a44c-4484-9981-11fd82138a7a" URI="" VOCABULARY_ID="24"/>\r
-  <DEFINEDTERMBASE DTYPE="StatisticalMeasure" ID="2008" CREATED="2009-01-28 17:07:06.0" UUID="264c3979-d551-4795-9e25-24c6b533fbb1" URI="" VOCABULARY_ID="24"/>\r
-  <DEFINEDTERMBASE DTYPE="StatisticalMeasure" ID="2009" CREATED="2009-01-28 17:07:06.0" UUID="9eff88ba-b8e7-4631-9e55-a50bd16ba79d" URI="" VOCABULARY_ID="24"/>\r
-  <DEFINEDTERMBASE DTYPE="StatisticalMeasure" ID="2010" CREATED="2009-01-28 17:07:06.0" UUID="9ee4397e-3496-4fe1-9114-afc7d7bdc652" URI="" VOCABULARY_ID="24"/>\r
-  <DEFINEDTERMBASE DTYPE="StatisticalMeasure" ID="2011" CREATED="2009-01-28 17:07:06.0" UUID="8372a89a-35ad-4755-a881-7edae6c37c8f" URI="" VOCABULARY_ID="24"/>\r
-  <DEFINEDTERMBASE DTYPE="StatisticalMeasure" ID="2012" CREATED="2009-01-28 17:07:06.0" UUID="4d22cf5e-89ff-4de3-a9ae-12dbeda3faba" URI="" VOCABULARY_ID="24"/>\r
-  <DEFINEDTERMBASE DTYPE="StatisticalMeasure" ID="2013" CREATED="2009-01-28 17:07:06.0" UUID="2c8b42e5-154c-42bd-a301-03b483275dd6" URI="" VOCABULARY_ID="24"/>\r
-  <DEFINEDTERMBASE DTYPE="RightsType" ID="2014" CREATED="2009-01-28 17:07:06.0" UUID="67c0d47e-8985-1014-8845-c84599f9992c" URI="" VOCABULARY_ID="25"/>\r
-  <DEFINEDTERMBASE DTYPE="RightsType" ID="2015" CREATED="2009-01-28 17:07:06.0" UUID="a50b4def-b3ac-4508-b50a-e0f249e3a1d7" URI="" VOCABULARY_ID="25"/>\r
-  <DEFINEDTERMBASE DTYPE="RightsType" ID="2016" CREATED="2009-01-28 17:07:06.0" UUID="d1ef838e-b195-4f28-b8eb-0d3be080bd37" URI="" VOCABULARY_ID="25"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="505" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="506" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="507" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="508" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="509" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="510" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="511" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="512" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="513" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="514" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="515" CONTINENTS_ID="490"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="516" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="517" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="518" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="519" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="520" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="521" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="522" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="523" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="524" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="525" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="525" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="526" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="527" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="528" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="529" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="530" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="531" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="532" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="533" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="534" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="535" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="536" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="537" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="538" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="539" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="540" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="541" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="542" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="543" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="544" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="545" CONTINENTS_ID="489"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="546" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="547" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="548" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="549" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="550" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="551" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="552" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="553" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="554" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="555" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="556" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="557" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="558" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="559" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="560" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="561" CONTINENTS_ID="490"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="562" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="563" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="564" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="565" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="566" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="566" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="567" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="568" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="569" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="570" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="571" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="572" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="573" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="574" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="575" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="576" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="577" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="578" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="579" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="580" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="581" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="582" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="583" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="584" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="585" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="586" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="587" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="588" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="589" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="590" CONTINENTS_ID="487"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="591" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="592" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="593" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="594" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="595" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="596" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="597" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="598" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="599" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="600" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="601" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="602" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="603" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="604" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="605" CONTINENTS_ID="490"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="606" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="607" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="608" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="609" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="610" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="611" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="612" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="613" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="614" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="615" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="616" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="617" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="618" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="619" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="620" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="621" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="622" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="623" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="624" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="625" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="626" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="627" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="628" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="629" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="630" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="631" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="632" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="633" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="634" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="635" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="636" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="637" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="638" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="639" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="640" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="641" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="642" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="643" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="644" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="645" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="646" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="647" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="648" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="649" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="650" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="651" CONTINENTS_ID="489"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="652" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="653" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="654" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="655" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="656" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="657" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="658" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="659" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="660" CONTINENTS_ID="490"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="661" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="662" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="663" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="664" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="665" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="666" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="667" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="668" CONTINENTS_ID="489"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="668" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="669" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="670" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="671" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="672" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="673" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="674" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="675" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="676" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="677" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="678" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="679" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="680" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="681" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="682" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="683" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="684" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="685" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="686" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="687" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="688" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="689" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="690" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="691" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="692" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="693" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="694" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="695" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="696" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="697" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="698" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="699" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="700" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="701" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="702" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="703" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="704" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="705" CONTINENTS_ID="490"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="706" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="707" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="708" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="709" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="710" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="711" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="712" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="713" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="714" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="715" CONTINENTS_ID="489"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="716" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="717" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="718" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="719" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="720" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="721" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="722" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="723" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="724" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="725" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="726" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="727" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="728" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="729" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="730" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="731" CONTINENTS_ID="487"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="732" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="733" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="734" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="735" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="736" CONTINENTS_ID="489"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="737" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="738" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="739" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="740" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="741" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="742" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="743" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1" REPRESENTATIONS_ID="2"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2" REPRESENTATIONS_ID="3"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="3" REPRESENTATIONS_ID="4"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="4" REPRESENTATIONS_ID="5"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="5" REPRESENTATIONS_ID="6"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="6" REPRESENTATIONS_ID="7"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="7" REPRESENTATIONS_ID="8"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="8" REPRESENTATIONS_ID="9"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="9" REPRESENTATIONS_ID="10"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="10" REPRESENTATIONS_ID="11"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="11" REPRESENTATIONS_ID="12"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="12" REPRESENTATIONS_ID="13"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="13" REPRESENTATIONS_ID="14"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="14" REPRESENTATIONS_ID="15"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="15" REPRESENTATIONS_ID="16"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="16" REPRESENTATIONS_ID="17"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="17" REPRESENTATIONS_ID="18"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="18" REPRESENTATIONS_ID="19"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="19" REPRESENTATIONS_ID="20"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="20" REPRESENTATIONS_ID="21"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="21" REPRESENTATIONS_ID="22"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="22" REPRESENTATIONS_ID="23"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="23" REPRESENTATIONS_ID="24"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="24" REPRESENTATIONS_ID="25"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="25" REPRESENTATIONS_ID="26"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="26" REPRESENTATIONS_ID="27"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="27" REPRESENTATIONS_ID="28"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="28" REPRESENTATIONS_ID="29"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="29" REPRESENTATIONS_ID="30"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="30" REPRESENTATIONS_ID="31"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="31" REPRESENTATIONS_ID="32"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="32" REPRESENTATIONS_ID="33"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="33" REPRESENTATIONS_ID="34"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="34" REPRESENTATIONS_ID="35"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="35" REPRESENTATIONS_ID="36"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="36" REPRESENTATIONS_ID="37"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="37" REPRESENTATIONS_ID="38"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="38" REPRESENTATIONS_ID="39"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="39" REPRESENTATIONS_ID="40"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="40" REPRESENTATIONS_ID="41"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="41" REPRESENTATIONS_ID="42"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="42" REPRESENTATIONS_ID="43"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="43" REPRESENTATIONS_ID="44"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="44" REPRESENTATIONS_ID="45"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="45" REPRESENTATIONS_ID="46"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="46" REPRESENTATIONS_ID="47"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="47" REPRESENTATIONS_ID="48"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="48" REPRESENTATIONS_ID="49"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="49" REPRESENTATIONS_ID="50"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="50" REPRESENTATIONS_ID="51"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="51" REPRESENTATIONS_ID="52"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="52" REPRESENTATIONS_ID="53"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="53" REPRESENTATIONS_ID="54"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="54" REPRESENTATIONS_ID="55"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="55" REPRESENTATIONS_ID="56"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="56" REPRESENTATIONS_ID="57"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="57" REPRESENTATIONS_ID="58"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="58" REPRESENTATIONS_ID="59"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="59" REPRESENTATIONS_ID="60"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="60" REPRESENTATIONS_ID="61"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="61" REPRESENTATIONS_ID="62"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="62" REPRESENTATIONS_ID="63"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="63" REPRESENTATIONS_ID="64"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="64" REPRESENTATIONS_ID="65"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="65" REPRESENTATIONS_ID="66"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="66" REPRESENTATIONS_ID="67"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="67" REPRESENTATIONS_ID="68"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="68" REPRESENTATIONS_ID="69"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="69" REPRESENTATIONS_ID="70"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="70" REPRESENTATIONS_ID="71"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="71" REPRESENTATIONS_ID="72"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="72" REPRESENTATIONS_ID="73"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="73" REPRESENTATIONS_ID="74"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="74" REPRESENTATIONS_ID="75"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="75" REPRESENTATIONS_ID="76"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="76" REPRESENTATIONS_ID="77"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="77" REPRESENTATIONS_ID="78"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="78" REPRESENTATIONS_ID="79"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="79" REPRESENTATIONS_ID="80"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="80" REPRESENTATIONS_ID="81"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="81" REPRESENTATIONS_ID="82"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="82" REPRESENTATIONS_ID="83"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="83" REPRESENTATIONS_ID="84"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="84" REPRESENTATIONS_ID="85"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="85" REPRESENTATIONS_ID="86"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="86" REPRESENTATIONS_ID="87"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="87" REPRESENTATIONS_ID="88"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="88" REPRESENTATIONS_ID="89"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="89" REPRESENTATIONS_ID="90"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="90" REPRESENTATIONS_ID="91"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="91" REPRESENTATIONS_ID="92"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="92" REPRESENTATIONS_ID="93"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="93" REPRESENTATIONS_ID="94"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="94" REPRESENTATIONS_ID="95"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="95" REPRESENTATIONS_ID="96"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="96" REPRESENTATIONS_ID="97"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="97" REPRESENTATIONS_ID="98"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="98" REPRESENTATIONS_ID="99"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="99" REPRESENTATIONS_ID="100"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="100" REPRESENTATIONS_ID="101"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="101" REPRESENTATIONS_ID="102"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="102" REPRESENTATIONS_ID="103"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="103" REPRESENTATIONS_ID="104"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="104" REPRESENTATIONS_ID="105"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="105" REPRESENTATIONS_ID="106"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="106" REPRESENTATIONS_ID="107"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="107" REPRESENTATIONS_ID="108"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="108" REPRESENTATIONS_ID="109"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="109" REPRESENTATIONS_ID="110"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="110" REPRESENTATIONS_ID="111"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="111" REPRESENTATIONS_ID="112"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="112" REPRESENTATIONS_ID="113"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="113" REPRESENTATIONS_ID="114"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="114" REPRESENTATIONS_ID="115"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="115" REPRESENTATIONS_ID="116"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="116" REPRESENTATIONS_ID="117"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="117" REPRESENTATIONS_ID="118"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="118" REPRESENTATIONS_ID="119"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="119" REPRESENTATIONS_ID="120"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="120" REPRESENTATIONS_ID="121"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="121" REPRESENTATIONS_ID="122"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="122" REPRESENTATIONS_ID="123"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="123" REPRESENTATIONS_ID="124"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="124" REPRESENTATIONS_ID="125"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="125" REPRESENTATIONS_ID="126"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="126" REPRESENTATIONS_ID="127"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="127" REPRESENTATIONS_ID="128"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="128" REPRESENTATIONS_ID="129"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="129" REPRESENTATIONS_ID="130"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="130" REPRESENTATIONS_ID="131"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="131" REPRESENTATIONS_ID="132"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="132" REPRESENTATIONS_ID="133"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="133" REPRESENTATIONS_ID="134"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="134" REPRESENTATIONS_ID="135"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="135" REPRESENTATIONS_ID="136"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="136" REPRESENTATIONS_ID="137"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="137" REPRESENTATIONS_ID="138"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="138" REPRESENTATIONS_ID="139"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="139" REPRESENTATIONS_ID="140"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="140" REPRESENTATIONS_ID="141"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="141" REPRESENTATIONS_ID="142"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="142" REPRESENTATIONS_ID="143"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="143" REPRESENTATIONS_ID="144"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="144" REPRESENTATIONS_ID="145"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="145" REPRESENTATIONS_ID="146"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="146" REPRESENTATIONS_ID="147"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="147" REPRESENTATIONS_ID="148"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="148" REPRESENTATIONS_ID="149"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="149" REPRESENTATIONS_ID="150"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="150" REPRESENTATIONS_ID="151"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="151" REPRESENTATIONS_ID="152"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="152" REPRESENTATIONS_ID="153"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="153" REPRESENTATIONS_ID="154"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="154" REPRESENTATIONS_ID="155"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="155" REPRESENTATIONS_ID="156"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="156" REPRESENTATIONS_ID="157"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="157" REPRESENTATIONS_ID="158"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="158" REPRESENTATIONS_ID="159"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="159" REPRESENTATIONS_ID="160"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="160" REPRESENTATIONS_ID="161"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="161" REPRESENTATIONS_ID="162"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="162" REPRESENTATIONS_ID="163"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="163" REPRESENTATIONS_ID="164"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="164" REPRESENTATIONS_ID="165"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="165" REPRESENTATIONS_ID="166"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="166" REPRESENTATIONS_ID="167"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="167" REPRESENTATIONS_ID="168"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="168" REPRESENTATIONS_ID="169"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="169" REPRESENTATIONS_ID="170"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="170" REPRESENTATIONS_ID="171"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="171" REPRESENTATIONS_ID="172"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="172" REPRESENTATIONS_ID="173"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="173" REPRESENTATIONS_ID="174"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="174" REPRESENTATIONS_ID="175"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="175" REPRESENTATIONS_ID="176"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="176" REPRESENTATIONS_ID="177"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="177" REPRESENTATIONS_ID="178"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="178" REPRESENTATIONS_ID="179"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="179" REPRESENTATIONS_ID="180"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="180" REPRESENTATIONS_ID="181"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="181" REPRESENTATIONS_ID="182"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="182" REPRESENTATIONS_ID="183"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="183" REPRESENTATIONS_ID="184"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="184" REPRESENTATIONS_ID="185"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="185" REPRESENTATIONS_ID="186"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="186" REPRESENTATIONS_ID="187"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="187" REPRESENTATIONS_ID="188"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="188" REPRESENTATIONS_ID="189"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="189" REPRESENTATIONS_ID="190"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="190" REPRESENTATIONS_ID="191"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="191" REPRESENTATIONS_ID="192"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="192" REPRESENTATIONS_ID="193"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="193" REPRESENTATIONS_ID="194"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="194" REPRESENTATIONS_ID="195"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="195" REPRESENTATIONS_ID="196"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="196" REPRESENTATIONS_ID="197"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="197" REPRESENTATIONS_ID="198"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="198" REPRESENTATIONS_ID="199"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="199" REPRESENTATIONS_ID="200"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="200" REPRESENTATIONS_ID="201"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="201" REPRESENTATIONS_ID="202"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="202" REPRESENTATIONS_ID="203"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="203" REPRESENTATIONS_ID="204"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="204" REPRESENTATIONS_ID="205"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="205" REPRESENTATIONS_ID="206"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="206" REPRESENTATIONS_ID="207"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="207" REPRESENTATIONS_ID="208"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="208" REPRESENTATIONS_ID="209"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="209" REPRESENTATIONS_ID="210"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="210" REPRESENTATIONS_ID="211"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="211" REPRESENTATIONS_ID="212"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="212" REPRESENTATIONS_ID="213"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="213" REPRESENTATIONS_ID="214"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="214" REPRESENTATIONS_ID="215"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="215" REPRESENTATIONS_ID="216"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="216" REPRESENTATIONS_ID="217"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="217" REPRESENTATIONS_ID="218"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="218" REPRESENTATIONS_ID="219"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="219" REPRESENTATIONS_ID="220"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="220" REPRESENTATIONS_ID="221"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="221" REPRESENTATIONS_ID="222"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="222" REPRESENTATIONS_ID="223"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="223" REPRESENTATIONS_ID="224"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="224" REPRESENTATIONS_ID="225"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="225" REPRESENTATIONS_ID="226"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="226" REPRESENTATIONS_ID="227"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="227" REPRESENTATIONS_ID="228"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="228" REPRESENTATIONS_ID="229"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="229" REPRESENTATIONS_ID="230"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="230" REPRESENTATIONS_ID="231"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="231" REPRESENTATIONS_ID="232"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="232" REPRESENTATIONS_ID="233"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="233" REPRESENTATIONS_ID="234"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="234" REPRESENTATIONS_ID="235"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="235" REPRESENTATIONS_ID="236"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="236" REPRESENTATIONS_ID="237"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="237" REPRESENTATIONS_ID="238"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="238" REPRESENTATIONS_ID="239"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="239" REPRESENTATIONS_ID="240"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="240" REPRESENTATIONS_ID="241"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="241" REPRESENTATIONS_ID="242"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="242" REPRESENTATIONS_ID="243"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="243" REPRESENTATIONS_ID="244"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="244" REPRESENTATIONS_ID="245"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="245" REPRESENTATIONS_ID="246"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="246" REPRESENTATIONS_ID="247"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="247" REPRESENTATIONS_ID="248"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="248" REPRESENTATIONS_ID="249"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="249" REPRESENTATIONS_ID="250"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="250" REPRESENTATIONS_ID="251"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="251" REPRESENTATIONS_ID="252"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="252" REPRESENTATIONS_ID="253"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="253" REPRESENTATIONS_ID="254"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="254" REPRESENTATIONS_ID="255"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="255" REPRESENTATIONS_ID="256"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="256" REPRESENTATIONS_ID="257"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="257" REPRESENTATIONS_ID="258"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="258" REPRESENTATIONS_ID="259"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="259" REPRESENTATIONS_ID="260"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="260" REPRESENTATIONS_ID="261"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="261" REPRESENTATIONS_ID="262"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="262" REPRESENTATIONS_ID="263"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="263" REPRESENTATIONS_ID="264"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="264" REPRESENTATIONS_ID="265"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="265" REPRESENTATIONS_ID="266"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="266" REPRESENTATIONS_ID="267"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="267" REPRESENTATIONS_ID="268"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="268" REPRESENTATIONS_ID="269"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="269" REPRESENTATIONS_ID="270"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="270" REPRESENTATIONS_ID="271"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="271" REPRESENTATIONS_ID="272"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="272" REPRESENTATIONS_ID="273"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="273" REPRESENTATIONS_ID="274"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="274" REPRESENTATIONS_ID="275"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="275" REPRESENTATIONS_ID="276"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="276" REPRESENTATIONS_ID="277"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="277" REPRESENTATIONS_ID="278"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="278" REPRESENTATIONS_ID="279"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="279" REPRESENTATIONS_ID="280"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="280" REPRESENTATIONS_ID="281"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="281" REPRESENTATIONS_ID="282"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="282" REPRESENTATIONS_ID="283"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="283" REPRESENTATIONS_ID="284"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="284" REPRESENTATIONS_ID="285"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="285" REPRESENTATIONS_ID="286"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="286" REPRESENTATIONS_ID="287"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="287" REPRESENTATIONS_ID="288"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="288" REPRESENTATIONS_ID="289"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="289" REPRESENTATIONS_ID="290"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="290" REPRESENTATIONS_ID="291"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="291" REPRESENTATIONS_ID="292"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="292" REPRESENTATIONS_ID="293"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="293" REPRESENTATIONS_ID="294"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="294" REPRESENTATIONS_ID="295"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="295" REPRESENTATIONS_ID="296"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="296" REPRESENTATIONS_ID="297"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="297" REPRESENTATIONS_ID="298"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="298" REPRESENTATIONS_ID="299"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="299" REPRESENTATIONS_ID="300"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="300" REPRESENTATIONS_ID="301"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="301" REPRESENTATIONS_ID="302"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="302" REPRESENTATIONS_ID="303"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="303" REPRESENTATIONS_ID="304"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="304" REPRESENTATIONS_ID="305"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="305" REPRESENTATIONS_ID="306"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="306" REPRESENTATIONS_ID="307"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="307" REPRESENTATIONS_ID="308"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="308" REPRESENTATIONS_ID="309"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="309" REPRESENTATIONS_ID="310"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="310" REPRESENTATIONS_ID="311"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="311" REPRESENTATIONS_ID="312"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="312" REPRESENTATIONS_ID="313"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="313" REPRESENTATIONS_ID="314"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="314" REPRESENTATIONS_ID="315"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="315" REPRESENTATIONS_ID="316"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="316" REPRESENTATIONS_ID="317"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="317" REPRESENTATIONS_ID="318"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="318" REPRESENTATIONS_ID="319"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="319" REPRESENTATIONS_ID="320"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="320" REPRESENTATIONS_ID="321"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="321" REPRESENTATIONS_ID="322"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="322" REPRESENTATIONS_ID="323"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="323" REPRESENTATIONS_ID="324"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="324" REPRESENTATIONS_ID="325"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="325" REPRESENTATIONS_ID="326"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="326" REPRESENTATIONS_ID="327"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="327" REPRESENTATIONS_ID="328"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="328" REPRESENTATIONS_ID="329"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="329" REPRESENTATIONS_ID="330"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="330" REPRESENTATIONS_ID="331"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="331" REPRESENTATIONS_ID="332"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="332" REPRESENTATIONS_ID="333"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="333" REPRESENTATIONS_ID="334"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="334" REPRESENTATIONS_ID="335"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="335" REPRESENTATIONS_ID="336"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="336" REPRESENTATIONS_ID="337"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="337" REPRESENTATIONS_ID="338"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="338" REPRESENTATIONS_ID="339"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="339" REPRESENTATIONS_ID="340"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="340" REPRESENTATIONS_ID="341"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="341" REPRESENTATIONS_ID="342"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="342" REPRESENTATIONS_ID="343"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="343" REPRESENTATIONS_ID="344"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="344" REPRESENTATIONS_ID="345"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="345" REPRESENTATIONS_ID="346"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="346" REPRESENTATIONS_ID="347"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="347" REPRESENTATIONS_ID="348"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="348" REPRESENTATIONS_ID="349"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="349" REPRESENTATIONS_ID="350"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="350" REPRESENTATIONS_ID="351"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="351" REPRESENTATIONS_ID="352"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="352" REPRESENTATIONS_ID="353"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="353" REPRESENTATIONS_ID="354"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="354" REPRESENTATIONS_ID="355"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="355" REPRESENTATIONS_ID="356"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="356" REPRESENTATIONS_ID="357"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="357" REPRESENTATIONS_ID="358"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="358" REPRESENTATIONS_ID="359"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="359" REPRESENTATIONS_ID="360"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="360" REPRESENTATIONS_ID="361"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="361" REPRESENTATIONS_ID="362"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="362" REPRESENTATIONS_ID="363"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="363" REPRESENTATIONS_ID="364"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="364" REPRESENTATIONS_ID="365"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="365" REPRESENTATIONS_ID="366"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="366" REPRESENTATIONS_ID="367"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="367" REPRESENTATIONS_ID="368"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="368" REPRESENTATIONS_ID="369"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="369" REPRESENTATIONS_ID="370"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="370" REPRESENTATIONS_ID="371"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="371" REPRESENTATIONS_ID="372"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="372" REPRESENTATIONS_ID="373"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="373" REPRESENTATIONS_ID="374"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="374" REPRESENTATIONS_ID="375"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="375" REPRESENTATIONS_ID="376"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="376" REPRESENTATIONS_ID="377"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="377" REPRESENTATIONS_ID="378"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="378" REPRESENTATIONS_ID="379"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="379" REPRESENTATIONS_ID="380"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="380" REPRESENTATIONS_ID="381"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="381" REPRESENTATIONS_ID="382"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="382" REPRESENTATIONS_ID="383"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="383" REPRESENTATIONS_ID="384"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="384" REPRESENTATIONS_ID="385"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="385" REPRESENTATIONS_ID="386"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="386" REPRESENTATIONS_ID="387"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="387" REPRESENTATIONS_ID="388"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="388" REPRESENTATIONS_ID="389"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="389" REPRESENTATIONS_ID="390"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="390" REPRESENTATIONS_ID="391"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="391" REPRESENTATIONS_ID="392"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="392" REPRESENTATIONS_ID="393"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="393" REPRESENTATIONS_ID="394"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="394" REPRESENTATIONS_ID="395"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="395" REPRESENTATIONS_ID="396"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="396" REPRESENTATIONS_ID="397"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="397" REPRESENTATIONS_ID="398"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="398" REPRESENTATIONS_ID="399"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="399" REPRESENTATIONS_ID="400"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="400" REPRESENTATIONS_ID="401"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="401" REPRESENTATIONS_ID="402"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="402" REPRESENTATIONS_ID="403"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="403" REPRESENTATIONS_ID="404"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="404" REPRESENTATIONS_ID="405"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="405" REPRESENTATIONS_ID="406"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="406" REPRESENTATIONS_ID="407"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="407" REPRESENTATIONS_ID="408"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="408" REPRESENTATIONS_ID="409"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="409" REPRESENTATIONS_ID="410"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="410" REPRESENTATIONS_ID="411"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="411" REPRESENTATIONS_ID="412"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="412" REPRESENTATIONS_ID="413"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="413" REPRESENTATIONS_ID="414"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="414" REPRESENTATIONS_ID="415"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="415" REPRESENTATIONS_ID="416"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="416" REPRESENTATIONS_ID="417"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="417" REPRESENTATIONS_ID="418"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="418" REPRESENTATIONS_ID="419"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="419" REPRESENTATIONS_ID="420"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="420" REPRESENTATIONS_ID="421"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="421" REPRESENTATIONS_ID="422"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="422" REPRESENTATIONS_ID="423"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="423" REPRESENTATIONS_ID="424"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="424" REPRESENTATIONS_ID="425"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="425" REPRESENTATIONS_ID="426"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="426" REPRESENTATIONS_ID="427"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="427" REPRESENTATIONS_ID="428"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="428" REPRESENTATIONS_ID="429"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="429" REPRESENTATIONS_ID="430"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="430" REPRESENTATIONS_ID="431"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="431" REPRESENTATIONS_ID="432"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="432" REPRESENTATIONS_ID="433"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="433" REPRESENTATIONS_ID="434"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="434" REPRESENTATIONS_ID="435"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="435" REPRESENTATIONS_ID="436"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="436" REPRESENTATIONS_ID="437"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="437" REPRESENTATIONS_ID="438"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="438" REPRESENTATIONS_ID="439"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="439" REPRESENTATIONS_ID="440"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="440" REPRESENTATIONS_ID="441"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="441" REPRESENTATIONS_ID="442"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="442" REPRESENTATIONS_ID="443"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="443" REPRESENTATIONS_ID="444"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="444" REPRESENTATIONS_ID="445"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="445" REPRESENTATIONS_ID="446"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="446" REPRESENTATIONS_ID="447"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="447" REPRESENTATIONS_ID="448"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="448" REPRESENTATIONS_ID="449"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="449" REPRESENTATIONS_ID="450"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="450" REPRESENTATIONS_ID="451"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="451" REPRESENTATIONS_ID="452"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="452" REPRESENTATIONS_ID="453"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="453" REPRESENTATIONS_ID="454"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="454" REPRESENTATIONS_ID="455"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="455" REPRESENTATIONS_ID="456"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="456" REPRESENTATIONS_ID="457"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="457" REPRESENTATIONS_ID="458"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="458" REPRESENTATIONS_ID="459"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="459" REPRESENTATIONS_ID="460"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="460" REPRESENTATIONS_ID="461"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="461" REPRESENTATIONS_ID="462"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="462" REPRESENTATIONS_ID="463"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="463" REPRESENTATIONS_ID="464"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="464" REPRESENTATIONS_ID="465"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="465" REPRESENTATIONS_ID="466"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="466" REPRESENTATIONS_ID="467"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="467" REPRESENTATIONS_ID="468"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="468" REPRESENTATIONS_ID="469"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="469" REPRESENTATIONS_ID="470"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="470" REPRESENTATIONS_ID="471"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="471" REPRESENTATIONS_ID="472"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="472" REPRESENTATIONS_ID="473"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="473" REPRESENTATIONS_ID="474"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="474" REPRESENTATIONS_ID="475"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="475" REPRESENTATIONS_ID="476"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="476" REPRESENTATIONS_ID="477"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="477" REPRESENTATIONS_ID="478"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="478" REPRESENTATIONS_ID="479"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="479" REPRESENTATIONS_ID="480"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="480" REPRESENTATIONS_ID="481"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="481" REPRESENTATIONS_ID="482"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="482" REPRESENTATIONS_ID="483"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="483" REPRESENTATIONS_ID="484"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="484" REPRESENTATIONS_ID="485"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="485" REPRESENTATIONS_ID="486"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="486" REPRESENTATIONS_ID="488"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="487" REPRESENTATIONS_ID="489"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="488" REPRESENTATIONS_ID="490"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="489" REPRESENTATIONS_ID="491"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="490" REPRESENTATIONS_ID="492"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="491" REPRESENTATIONS_ID="493"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="492" REPRESENTATIONS_ID="494"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="493" REPRESENTATIONS_ID="495"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="494" REPRESENTATIONS_ID="496"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="495" REPRESENTATIONS_ID="498"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="496" REPRESENTATIONS_ID="499"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="497" REPRESENTATIONS_ID="500"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="498" REPRESENTATIONS_ID="501"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="499" REPRESENTATIONS_ID="502"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="500" REPRESENTATIONS_ID="503"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="501" REPRESENTATIONS_ID="504"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="502" REPRESENTATIONS_ID="505"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="503" REPRESENTATIONS_ID="506"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="504" REPRESENTATIONS_ID="507"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="505" REPRESENTATIONS_ID="508"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="506" REPRESENTATIONS_ID="509"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="507" REPRESENTATIONS_ID="510"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="508" REPRESENTATIONS_ID="511"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="509" REPRESENTATIONS_ID="512"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="510" REPRESENTATIONS_ID="513"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="511" REPRESENTATIONS_ID="514"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="512" REPRESENTATIONS_ID="515"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="513" REPRESENTATIONS_ID="516"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="514" REPRESENTATIONS_ID="517"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="515" REPRESENTATIONS_ID="518"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="516" REPRESENTATIONS_ID="519"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="517" REPRESENTATIONS_ID="520"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="518" REPRESENTATIONS_ID="521"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="519" REPRESENTATIONS_ID="522"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="520" REPRESENTATIONS_ID="523"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="521" REPRESENTATIONS_ID="524"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="522" REPRESENTATIONS_ID="525"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="523" REPRESENTATIONS_ID="526"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="524" REPRESENTATIONS_ID="527"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="525" REPRESENTATIONS_ID="528"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="526" REPRESENTATIONS_ID="529"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="527" REPRESENTATIONS_ID="530"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="528" REPRESENTATIONS_ID="531"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="529" REPRESENTATIONS_ID="532"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="530" REPRESENTATIONS_ID="533"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="531" REPRESENTATIONS_ID="534"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="532" REPRESENTATIONS_ID="535"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="533" REPRESENTATIONS_ID="536"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="534" REPRESENTATIONS_ID="537"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="535" REPRESENTATIONS_ID="538"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="536" REPRESENTATIONS_ID="539"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="537" REPRESENTATIONS_ID="540"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="538" REPRESENTATIONS_ID="541"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="539" REPRESENTATIONS_ID="542"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="540" REPRESENTATIONS_ID="543"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="541" REPRESENTATIONS_ID="544"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="542" REPRESENTATIONS_ID="545"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="543" REPRESENTATIONS_ID="546"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="544" REPRESENTATIONS_ID="547"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="545" REPRESENTATIONS_ID="548"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="546" REPRESENTATIONS_ID="549"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="547" REPRESENTATIONS_ID="550"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="548" REPRESENTATIONS_ID="551"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="549" REPRESENTATIONS_ID="552"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="550" REPRESENTATIONS_ID="553"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="551" REPRESENTATIONS_ID="554"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="552" REPRESENTATIONS_ID="555"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="553" REPRESENTATIONS_ID="556"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="554" REPRESENTATIONS_ID="557"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="555" REPRESENTATIONS_ID="558"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="556" REPRESENTATIONS_ID="559"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="557" REPRESENTATIONS_ID="560"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="558" REPRESENTATIONS_ID="561"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="559" REPRESENTATIONS_ID="562"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="560" REPRESENTATIONS_ID="563"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="561" REPRESENTATIONS_ID="564"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="562" REPRESENTATIONS_ID="565"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="563" REPRESENTATIONS_ID="566"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="564" REPRESENTATIONS_ID="567"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="565" REPRESENTATIONS_ID="568"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="566" REPRESENTATIONS_ID="569"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="567" REPRESENTATIONS_ID="570"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="568" REPRESENTATIONS_ID="571"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="569" REPRESENTATIONS_ID="572"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="570" REPRESENTATIONS_ID="573"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="571" REPRESENTATIONS_ID="574"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="572" REPRESENTATIONS_ID="575"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="573" REPRESENTATIONS_ID="576"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="574" REPRESENTATIONS_ID="577"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="575" REPRESENTATIONS_ID="578"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="576" REPRESENTATIONS_ID="579"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="577" REPRESENTATIONS_ID="580"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="578" REPRESENTATIONS_ID="581"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="579" REPRESENTATIONS_ID="582"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="580" REPRESENTATIONS_ID="583"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="581" REPRESENTATIONS_ID="584"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="582" REPRESENTATIONS_ID="585"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="583" REPRESENTATIONS_ID="586"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="584" REPRESENTATIONS_ID="587"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="585" REPRESENTATIONS_ID="588"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="586" REPRESENTATIONS_ID="589"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="587" REPRESENTATIONS_ID="590"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="588" REPRESENTATIONS_ID="591"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="589" REPRESENTATIONS_ID="592"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="590" REPRESENTATIONS_ID="593"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="591" REPRESENTATIONS_ID="594"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="592" REPRESENTATIONS_ID="595"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="593" REPRESENTATIONS_ID="596"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="594" REPRESENTATIONS_ID="597"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="595" REPRESENTATIONS_ID="598"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="596" REPRESENTATIONS_ID="599"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="597" REPRESENTATIONS_ID="600"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="598" REPRESENTATIONS_ID="601"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="599" REPRESENTATIONS_ID="602"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="600" REPRESENTATIONS_ID="603"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="601" REPRESENTATIONS_ID="604"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="602" REPRESENTATIONS_ID="605"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="603" REPRESENTATIONS_ID="606"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="604" REPRESENTATIONS_ID="607"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="605" REPRESENTATIONS_ID="608"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="606" REPRESENTATIONS_ID="609"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="607" REPRESENTATIONS_ID="610"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="608" REPRESENTATIONS_ID="611"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="609" REPRESENTATIONS_ID="612"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="610" REPRESENTATIONS_ID="613"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="611" REPRESENTATIONS_ID="614"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="612" REPRESENTATIONS_ID="615"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="613" REPRESENTATIONS_ID="616"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="614" REPRESENTATIONS_ID="617"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="615" REPRESENTATIONS_ID="618"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="616" REPRESENTATIONS_ID="619"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="617" REPRESENTATIONS_ID="620"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="618" REPRESENTATIONS_ID="621"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="619" REPRESENTATIONS_ID="622"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="620" REPRESENTATIONS_ID="623"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="621" REPRESENTATIONS_ID="624"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="622" REPRESENTATIONS_ID="625"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="623" REPRESENTATIONS_ID="626"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="624" REPRESENTATIONS_ID="627"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="625" REPRESENTATIONS_ID="628"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="626" REPRESENTATIONS_ID="629"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="627" REPRESENTATIONS_ID="630"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="628" REPRESENTATIONS_ID="631"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="629" REPRESENTATIONS_ID="632"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="630" REPRESENTATIONS_ID="633"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="631" REPRESENTATIONS_ID="634"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="632" REPRESENTATIONS_ID="635"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="633" REPRESENTATIONS_ID="636"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="634" REPRESENTATIONS_ID="637"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="635" REPRESENTATIONS_ID="638"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="636" REPRESENTATIONS_ID="639"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="637" REPRESENTATIONS_ID="640"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="638" REPRESENTATIONS_ID="641"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="639" REPRESENTATIONS_ID="642"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="640" REPRESENTATIONS_ID="643"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="641" REPRESENTATIONS_ID="644"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="642" REPRESENTATIONS_ID="645"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="643" REPRESENTATIONS_ID="646"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="644" REPRESENTATIONS_ID="647"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="645" REPRESENTATIONS_ID="648"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="646" REPRESENTATIONS_ID="649"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="647" REPRESENTATIONS_ID="650"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="648" REPRESENTATIONS_ID="651"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="649" REPRESENTATIONS_ID="652"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="650" REPRESENTATIONS_ID="653"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="651" REPRESENTATIONS_ID="654"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="652" REPRESENTATIONS_ID="655"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="653" REPRESENTATIONS_ID="656"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="654" REPRESENTATIONS_ID="657"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="655" REPRESENTATIONS_ID="658"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="656" REPRESENTATIONS_ID="659"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="657" REPRESENTATIONS_ID="660"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="658" REPRESENTATIONS_ID="661"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="659" REPRESENTATIONS_ID="662"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="660" REPRESENTATIONS_ID="663"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="661" REPRESENTATIONS_ID="664"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="662" REPRESENTATIONS_ID="665"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="663" REPRESENTATIONS_ID="666"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="664" REPRESENTATIONS_ID="667"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="665" REPRESENTATIONS_ID="668"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="666" REPRESENTATIONS_ID="669"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="667" REPRESENTATIONS_ID="670"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="668" REPRESENTATIONS_ID="671"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="669" REPRESENTATIONS_ID="672"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="670" REPRESENTATIONS_ID="673"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="671" REPRESENTATIONS_ID="674"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="672" REPRESENTATIONS_ID="675"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="673" REPRESENTATIONS_ID="676"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="674" REPRESENTATIONS_ID="677"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="675" REPRESENTATIONS_ID="678"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="676" REPRESENTATIONS_ID="679"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="677" REPRESENTATIONS_ID="680"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="678" REPRESENTATIONS_ID="681"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="679" REPRESENTATIONS_ID="682"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="680" REPRESENTATIONS_ID="683"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="681" REPRESENTATIONS_ID="684"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="682" REPRESENTATIONS_ID="685"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="683" REPRESENTATIONS_ID="686"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="684" REPRESENTATIONS_ID="687"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="685" REPRESENTATIONS_ID="688"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="686" REPRESENTATIONS_ID="689"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="687" REPRESENTATIONS_ID="690"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="688" REPRESENTATIONS_ID="691"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="689" REPRESENTATIONS_ID="692"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="690" REPRESENTATIONS_ID="693"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="691" REPRESENTATIONS_ID="694"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="692" REPRESENTATIONS_ID="695"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="693" REPRESENTATIONS_ID="696"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="694" REPRESENTATIONS_ID="697"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="695" REPRESENTATIONS_ID="698"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="696" REPRESENTATIONS_ID="699"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="697" REPRESENTATIONS_ID="700"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="698" REPRESENTATIONS_ID="701"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="699" REPRESENTATIONS_ID="702"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="700" REPRESENTATIONS_ID="703"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="701" REPRESENTATIONS_ID="704"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="702" REPRESENTATIONS_ID="705"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="703" REPRESENTATIONS_ID="706"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="704" REPRESENTATIONS_ID="707"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="705" REPRESENTATIONS_ID="708"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="706" REPRESENTATIONS_ID="709"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="707" REPRESENTATIONS_ID="710"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="708" REPRESENTATIONS_ID="711"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="709" REPRESENTATIONS_ID="712"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="710" REPRESENTATIONS_ID="713"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="711" REPRESENTATIONS_ID="714"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="712" REPRESENTATIONS_ID="715"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="713" REPRESENTATIONS_ID="716"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="714" REPRESENTATIONS_ID="717"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="715" REPRESENTATIONS_ID="718"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="716" REPRESENTATIONS_ID="719"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="717" REPRESENTATIONS_ID="720"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="718" REPRESENTATIONS_ID="721"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="719" REPRESENTATIONS_ID="722"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="720" REPRESENTATIONS_ID="723"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="721" REPRESENTATIONS_ID="724"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="722" REPRESENTATIONS_ID="725"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="723" REPRESENTATIONS_ID="726"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="724" REPRESENTATIONS_ID="727"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="725" REPRESENTATIONS_ID="728"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="726" REPRESENTATIONS_ID="729"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="727" REPRESENTATIONS_ID="730"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="728" REPRESENTATIONS_ID="731"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="729" REPRESENTATIONS_ID="732"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="730" REPRESENTATIONS_ID="733"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="731" REPRESENTATIONS_ID="734"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="732" REPRESENTATIONS_ID="735"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="733" REPRESENTATIONS_ID="736"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="734" REPRESENTATIONS_ID="737"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="735" REPRESENTATIONS_ID="738"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="736" REPRESENTATIONS_ID="739"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="737" REPRESENTATIONS_ID="740"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="738" REPRESENTATIONS_ID="741"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="739" REPRESENTATIONS_ID="742"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="740" REPRESENTATIONS_ID="743"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="741" REPRESENTATIONS_ID="744"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="742" REPRESENTATIONS_ID="745"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="743" REPRESENTATIONS_ID="746"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="744" REPRESENTATIONS_ID="748"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="745" REPRESENTATIONS_ID="749"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="746" REPRESENTATIONS_ID="750"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="747" REPRESENTATIONS_ID="751"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="748" REPRESENTATIONS_ID="752"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="749" REPRESENTATIONS_ID="753"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="750" REPRESENTATIONS_ID="754"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="751" REPRESENTATIONS_ID="755"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="752" REPRESENTATIONS_ID="756"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="753" REPRESENTATIONS_ID="757"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="754" REPRESENTATIONS_ID="758"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="755" REPRESENTATIONS_ID="759"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="756" REPRESENTATIONS_ID="760"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="757" REPRESENTATIONS_ID="761"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="758" REPRESENTATIONS_ID="762"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="759" REPRESENTATIONS_ID="763"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="760" REPRESENTATIONS_ID="764"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="761" REPRESENTATIONS_ID="765"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="762" REPRESENTATIONS_ID="766"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="763" REPRESENTATIONS_ID="767"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="764" REPRESENTATIONS_ID="768"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="765" REPRESENTATIONS_ID="769"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="766" REPRESENTATIONS_ID="770"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="767" REPRESENTATIONS_ID="771"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="768" REPRESENTATIONS_ID="772"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="769" REPRESENTATIONS_ID="773"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="770" REPRESENTATIONS_ID="774"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="771" REPRESENTATIONS_ID="775"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="772" REPRESENTATIONS_ID="776"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="773" REPRESENTATIONS_ID="777"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="774" REPRESENTATIONS_ID="778"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="775" REPRESENTATIONS_ID="779"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="776" REPRESENTATIONS_ID="780"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="777" REPRESENTATIONS_ID="781"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="778" REPRESENTATIONS_ID="782"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="779" REPRESENTATIONS_ID="783"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="780" REPRESENTATIONS_ID="784"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="781" REPRESENTATIONS_ID="785"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="782" REPRESENTATIONS_ID="786"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="783" REPRESENTATIONS_ID="787"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="784" REPRESENTATIONS_ID="788"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="785" REPRESENTATIONS_ID="789"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="786" REPRESENTATIONS_ID="790"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="787" REPRESENTATIONS_ID="791"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="788" REPRESENTATIONS_ID="792"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="789" REPRESENTATIONS_ID="793"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="790" REPRESENTATIONS_ID="794"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="791" REPRESENTATIONS_ID="795"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="792" REPRESENTATIONS_ID="796"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="793" REPRESENTATIONS_ID="797"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="794" REPRESENTATIONS_ID="798"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="795" REPRESENTATIONS_ID="799"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="796" REPRESENTATIONS_ID="800"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="797" REPRESENTATIONS_ID="801"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="798" REPRESENTATIONS_ID="802"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="799" REPRESENTATIONS_ID="803"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="800" REPRESENTATIONS_ID="804"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="801" REPRESENTATIONS_ID="805"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="802" REPRESENTATIONS_ID="806"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="803" REPRESENTATIONS_ID="807"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="804" REPRESENTATIONS_ID="808"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="805" REPRESENTATIONS_ID="809"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="806" REPRESENTATIONS_ID="811"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="807" REPRESENTATIONS_ID="812"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="808" REPRESENTATIONS_ID="813"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="809" REPRESENTATIONS_ID="814"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="810" REPRESENTATIONS_ID="815"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="811" REPRESENTATIONS_ID="816"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="812" REPRESENTATIONS_ID="817"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="813" REPRESENTATIONS_ID="818"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="814" REPRESENTATIONS_ID="819"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="815" REPRESENTATIONS_ID="820"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="816" REPRESENTATIONS_ID="821"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="817" REPRESENTATIONS_ID="822"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="818" REPRESENTATIONS_ID="823"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="819" REPRESENTATIONS_ID="824"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="820" REPRESENTATIONS_ID="825"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="821" REPRESENTATIONS_ID="826"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="822" REPRESENTATIONS_ID="828"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="823" REPRESENTATIONS_ID="829"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="824" REPRESENTATIONS_ID="830"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="825" REPRESENTATIONS_ID="831"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="826" REPRESENTATIONS_ID="832"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="827" REPRESENTATIONS_ID="833"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="828" REPRESENTATIONS_ID="834"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="829" REPRESENTATIONS_ID="835"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="830" REPRESENTATIONS_ID="836"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="831" REPRESENTATIONS_ID="837"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="832" REPRESENTATIONS_ID="838"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="833" REPRESENTATIONS_ID="839"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="834" REPRESENTATIONS_ID="840"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="835" REPRESENTATIONS_ID="841"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="836" REPRESENTATIONS_ID="842"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="837" REPRESENTATIONS_ID="843"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="838" REPRESENTATIONS_ID="844"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="839" REPRESENTATIONS_ID="845"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="840" REPRESENTATIONS_ID="846"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="841" REPRESENTATIONS_ID="847"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="842" REPRESENTATIONS_ID="848"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="843" REPRESENTATIONS_ID="849"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="844" REPRESENTATIONS_ID="850"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="845" REPRESENTATIONS_ID="851"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="846" REPRESENTATIONS_ID="853"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="847" REPRESENTATIONS_ID="855"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="848" REPRESENTATIONS_ID="857"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="849" REPRESENTATIONS_ID="860"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="850" REPRESENTATIONS_ID="862"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="851" REPRESENTATIONS_ID="864"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="852" REPRESENTATIONS_ID="866"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="853" REPRESENTATIONS_ID="869"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="854" REPRESENTATIONS_ID="871"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="855" REPRESENTATIONS_ID="873"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="856" REPRESENTATIONS_ID="875"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="857" REPRESENTATIONS_ID="877"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="858" REPRESENTATIONS_ID="879"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="859" REPRESENTATIONS_ID="881"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="860" REPRESENTATIONS_ID="883"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="861" REPRESENTATIONS_ID="885"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="862" REPRESENTATIONS_ID="887"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="863" REPRESENTATIONS_ID="890"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="864" REPRESENTATIONS_ID="892"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="865" REPRESENTATIONS_ID="894"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="866" REPRESENTATIONS_ID="896"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="867" REPRESENTATIONS_ID="898"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="868" REPRESENTATIONS_ID="900"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="869" REPRESENTATIONS_ID="902"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="870" REPRESENTATIONS_ID="904"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="871" REPRESENTATIONS_ID="906"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="872" REPRESENTATIONS_ID="908"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="873" REPRESENTATIONS_ID="910"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="874" REPRESENTATIONS_ID="912"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="875" REPRESENTATIONS_ID="914"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="876" REPRESENTATIONS_ID="916"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="877" REPRESENTATIONS_ID="918"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="878" REPRESENTATIONS_ID="920"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="879" REPRESENTATIONS_ID="922"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="880" REPRESENTATIONS_ID="924"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="881" REPRESENTATIONS_ID="926"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="882" REPRESENTATIONS_ID="928"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="883" REPRESENTATIONS_ID="930"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="884" REPRESENTATIONS_ID="932"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="885" REPRESENTATIONS_ID="934"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="886" REPRESENTATIONS_ID="936"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="887" REPRESENTATIONS_ID="938"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="888" REPRESENTATIONS_ID="940"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="889" REPRESENTATIONS_ID="942"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="890" REPRESENTATIONS_ID="945"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="891" REPRESENTATIONS_ID="946"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="892" REPRESENTATIONS_ID="947"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="893" REPRESENTATIONS_ID="948"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="894" REPRESENTATIONS_ID="950"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="895" REPRESENTATIONS_ID="951"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="896" REPRESENTATIONS_ID="953"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="897" REPRESENTATIONS_ID="954"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="898" REPRESENTATIONS_ID="956"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="899" REPRESENTATIONS_ID="957"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="900" REPRESENTATIONS_ID="958"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="901" REPRESENTATIONS_ID="959"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="902" REPRESENTATIONS_ID="960"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="903" REPRESENTATIONS_ID="961"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="904" REPRESENTATIONS_ID="962"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="905" REPRESENTATIONS_ID="963"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="906" REPRESENTATIONS_ID="964"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="912" REPRESENTATIONS_ID="972"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="913" REPRESENTATIONS_ID="973"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="914" REPRESENTATIONS_ID="974"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="915" REPRESENTATIONS_ID="975"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="916" REPRESENTATIONS_ID="976"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="917" REPRESENTATIONS_ID="977"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="918" REPRESENTATIONS_ID="978"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="919" REPRESENTATIONS_ID="979"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="920" REPRESENTATIONS_ID="980"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="921" REPRESENTATIONS_ID="981"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="922" REPRESENTATIONS_ID="982"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="923" REPRESENTATIONS_ID="983"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="924" REPRESENTATIONS_ID="984"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="925" REPRESENTATIONS_ID="985"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="926" REPRESENTATIONS_ID="986"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="927" REPRESENTATIONS_ID="987"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="928" REPRESENTATIONS_ID="988"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="929" REPRESENTATIONS_ID="989"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="930" REPRESENTATIONS_ID="990"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="931" REPRESENTATIONS_ID="991"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="932" REPRESENTATIONS_ID="992"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="933" REPRESENTATIONS_ID="993"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="934" REPRESENTATIONS_ID="994"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="935" REPRESENTATIONS_ID="995"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="936" REPRESENTATIONS_ID="996"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="937" REPRESENTATIONS_ID="997"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="938" REPRESENTATIONS_ID="999"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="939" REPRESENTATIONS_ID="1000"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="940" REPRESENTATIONS_ID="1001"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="941" REPRESENTATIONS_ID="1002"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="942" REPRESENTATIONS_ID="1003"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="943" REPRESENTATIONS_ID="1004"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="944" REPRESENTATIONS_ID="1005"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="945" REPRESENTATIONS_ID="1006"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="946" REPRESENTATIONS_ID="1007"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="947" REPRESENTATIONS_ID="1008"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="948" REPRESENTATIONS_ID="1009"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="949" REPRESENTATIONS_ID="1010"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="950" REPRESENTATIONS_ID="1011"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="951" REPRESENTATIONS_ID="1012"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="952" REPRESENTATIONS_ID="1013"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="953" REPRESENTATIONS_ID="1014"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="954" REPRESENTATIONS_ID="1015"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="955" REPRESENTATIONS_ID="1016"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="956" REPRESENTATIONS_ID="1017"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="957" REPRESENTATIONS_ID="1018"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="958" REPRESENTATIONS_ID="1019"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="959" REPRESENTATIONS_ID="1020"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="960" REPRESENTATIONS_ID="1021"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="961" REPRESENTATIONS_ID="1022"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="962" REPRESENTATIONS_ID="1023"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="963" REPRESENTATIONS_ID="1024"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="964" REPRESENTATIONS_ID="1025"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="965" REPRESENTATIONS_ID="1026"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="966" REPRESENTATIONS_ID="1027"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="967" REPRESENTATIONS_ID="1028"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="968" REPRESENTATIONS_ID="1029"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="969" REPRESENTATIONS_ID="1030"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="970" REPRESENTATIONS_ID="1031"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="971" REPRESENTATIONS_ID="1032"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="972" REPRESENTATIONS_ID="1033"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="973" REPRESENTATIONS_ID="1034"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="974" REPRESENTATIONS_ID="1035"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="975" REPRESENTATIONS_ID="1036"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="976" REPRESENTATIONS_ID="1037"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="977" REPRESENTATIONS_ID="1038"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="978" REPRESENTATIONS_ID="1039"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="979" REPRESENTATIONS_ID="1040"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="980" REPRESENTATIONS_ID="1041"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="981" REPRESENTATIONS_ID="1042"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="982" REPRESENTATIONS_ID="1043"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="983" REPRESENTATIONS_ID="1044"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="984" REPRESENTATIONS_ID="1045"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="985" REPRESENTATIONS_ID="1046"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="986" REPRESENTATIONS_ID="1047"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="987" REPRESENTATIONS_ID="1048"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="988" REPRESENTATIONS_ID="1049"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="989" REPRESENTATIONS_ID="1050"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="990" REPRESENTATIONS_ID="1051"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="991" REPRESENTATIONS_ID="1052"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="992" REPRESENTATIONS_ID="1053"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="993" REPRESENTATIONS_ID="1054"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="994" REPRESENTATIONS_ID="1055"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="995" REPRESENTATIONS_ID="1056"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="996" REPRESENTATIONS_ID="1057"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="997" REPRESENTATIONS_ID="1058"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="998" REPRESENTATIONS_ID="1059"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="999" REPRESENTATIONS_ID="1060"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1000" REPRESENTATIONS_ID="1061"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1001" REPRESENTATIONS_ID="1062"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1002" REPRESENTATIONS_ID="1063"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1003" REPRESENTATIONS_ID="1064"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1004" REPRESENTATIONS_ID="1065"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1005" REPRESENTATIONS_ID="1066"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1006" REPRESENTATIONS_ID="1067"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1007" REPRESENTATIONS_ID="1068"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1008" REPRESENTATIONS_ID="1069"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1009" REPRESENTATIONS_ID="1070"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1010" REPRESENTATIONS_ID="1071"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1011" REPRESENTATIONS_ID="1072"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1012" REPRESENTATIONS_ID="1073"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1013" REPRESENTATIONS_ID="1074"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1014" REPRESENTATIONS_ID="1075"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1015" REPRESENTATIONS_ID="1076"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1016" REPRESENTATIONS_ID="1077"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1017" REPRESENTATIONS_ID="1078"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1018" REPRESENTATIONS_ID="1079"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1019" REPRESENTATIONS_ID="1080"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1020" REPRESENTATIONS_ID="1081"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1021" REPRESENTATIONS_ID="1082"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1022" REPRESENTATIONS_ID="1083"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1023" REPRESENTATIONS_ID="1084"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1024" REPRESENTATIONS_ID="1085"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1025" REPRESENTATIONS_ID="1086"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1026" REPRESENTATIONS_ID="1087"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1027" REPRESENTATIONS_ID="1088"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1028" REPRESENTATIONS_ID="1089"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1029" REPRESENTATIONS_ID="1090"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1030" REPRESENTATIONS_ID="1091"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1031" REPRESENTATIONS_ID="1092"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1032" REPRESENTATIONS_ID="1093"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1033" REPRESENTATIONS_ID="1094"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1034" REPRESENTATIONS_ID="1095"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1035" REPRESENTATIONS_ID="1096"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1036" REPRESENTATIONS_ID="1097"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1037" REPRESENTATIONS_ID="1098"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1038" REPRESENTATIONS_ID="1099"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1039" REPRESENTATIONS_ID="1100"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1040" REPRESENTATIONS_ID="1101"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1041" REPRESENTATIONS_ID="1102"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1042" REPRESENTATIONS_ID="1103"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1043" REPRESENTATIONS_ID="1104"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1044" REPRESENTATIONS_ID="1105"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1045" REPRESENTATIONS_ID="1106"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1046" REPRESENTATIONS_ID="1107"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1047" REPRESENTATIONS_ID="1108"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1048" REPRESENTATIONS_ID="1109"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1049" REPRESENTATIONS_ID="1110"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1050" REPRESENTATIONS_ID="1111"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1051" REPRESENTATIONS_ID="1112"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1052" REPRESENTATIONS_ID="1113"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1053" REPRESENTATIONS_ID="1114"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1054" REPRESENTATIONS_ID="1115"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1055" REPRESENTATIONS_ID="1116"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1056" REPRESENTATIONS_ID="1117"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1057" REPRESENTATIONS_ID="1118"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1058" REPRESENTATIONS_ID="1119"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1059" REPRESENTATIONS_ID="1120"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1060" REPRESENTATIONS_ID="1121"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1061" REPRESENTATIONS_ID="1122"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1062" REPRESENTATIONS_ID="1123"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1063" REPRESENTATIONS_ID="1124"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1064" REPRESENTATIONS_ID="1125"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1065" REPRESENTATIONS_ID="1126"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1066" REPRESENTATIONS_ID="1127"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1067" REPRESENTATIONS_ID="1128"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1068" REPRESENTATIONS_ID="1129"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1069" REPRESENTATIONS_ID="1130"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1070" REPRESENTATIONS_ID="1131"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1071" REPRESENTATIONS_ID="1132"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1072" REPRESENTATIONS_ID="1133"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1073" REPRESENTATIONS_ID="1134"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1074" REPRESENTATIONS_ID="1135"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1075" REPRESENTATIONS_ID="1136"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1076" REPRESENTATIONS_ID="1137"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1077" REPRESENTATIONS_ID="1138"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1078" REPRESENTATIONS_ID="1139"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1079" REPRESENTATIONS_ID="1140"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1080" REPRESENTATIONS_ID="1141"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1081" REPRESENTATIONS_ID="1142"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1082" REPRESENTATIONS_ID="1143"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1083" REPRESENTATIONS_ID="1144"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1084" REPRESENTATIONS_ID="1145"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1085" REPRESENTATIONS_ID="1146"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1086" REPRESENTATIONS_ID="1147"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1087" REPRESENTATIONS_ID="1148"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1088" REPRESENTATIONS_ID="1149"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1089" REPRESENTATIONS_ID="1150"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1090" REPRESENTATIONS_ID="1151"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1091" REPRESENTATIONS_ID="1152"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1092" REPRESENTATIONS_ID="1153"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1093" REPRESENTATIONS_ID="1154"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1094" REPRESENTATIONS_ID="1155"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1095" REPRESENTATIONS_ID="1156"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1096" REPRESENTATIONS_ID="1157"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1097" REPRESENTATIONS_ID="1158"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1098" REPRESENTATIONS_ID="1159"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1099" REPRESENTATIONS_ID="1160"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1100" REPRESENTATIONS_ID="1161"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1101" REPRESENTATIONS_ID="1162"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1102" REPRESENTATIONS_ID="1163"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1103" REPRESENTATIONS_ID="1164"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1104" REPRESENTATIONS_ID="1165"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1105" REPRESENTATIONS_ID="1166"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1106" REPRESENTATIONS_ID="1167"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1107" REPRESENTATIONS_ID="1168"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1108" REPRESENTATIONS_ID="1169"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1109" REPRESENTATIONS_ID="1170"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1110" REPRESENTATIONS_ID="1171"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1111" REPRESENTATIONS_ID="1172"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1112" REPRESENTATIONS_ID="1173"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1113" REPRESENTATIONS_ID="1174"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1114" REPRESENTATIONS_ID="1175"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1115" REPRESENTATIONS_ID="1176"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1116" REPRESENTATIONS_ID="1177"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1117" REPRESENTATIONS_ID="1178"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1118" REPRESENTATIONS_ID="1179"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1119" REPRESENTATIONS_ID="1180"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1120" REPRESENTATIONS_ID="1181"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1121" REPRESENTATIONS_ID="1182"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1122" REPRESENTATIONS_ID="1183"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1123" REPRESENTATIONS_ID="1184"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1124" REPRESENTATIONS_ID="1185"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1125" REPRESENTATIONS_ID="1186"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1126" REPRESENTATIONS_ID="1187"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1127" REPRESENTATIONS_ID="1188"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1128" REPRESENTATIONS_ID="1189"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1129" REPRESENTATIONS_ID="1190"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1130" REPRESENTATIONS_ID="1191"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1131" REPRESENTATIONS_ID="1192"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1132" REPRESENTATIONS_ID="1193"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1133" REPRESENTATIONS_ID="1194"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1134" REPRESENTATIONS_ID="1195"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1135" REPRESENTATIONS_ID="1196"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1136" REPRESENTATIONS_ID="1197"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1137" REPRESENTATIONS_ID="1198"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1138" REPRESENTATIONS_ID="1199"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1139" REPRESENTATIONS_ID="1200"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1140" REPRESENTATIONS_ID="1201"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1141" REPRESENTATIONS_ID="1202"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1142" REPRESENTATIONS_ID="1203"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1143" REPRESENTATIONS_ID="1204"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1144" REPRESENTATIONS_ID="1205"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1145" REPRESENTATIONS_ID="1206"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1146" REPRESENTATIONS_ID="1207"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1147" REPRESENTATIONS_ID="1208"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1148" REPRESENTATIONS_ID="1209"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1149" REPRESENTATIONS_ID="1210"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1150" REPRESENTATIONS_ID="1211"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1151" REPRESENTATIONS_ID="1212"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1152" REPRESENTATIONS_ID="1213"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1153" REPRESENTATIONS_ID="1214"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1154" REPRESENTATIONS_ID="1215"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1155" REPRESENTATIONS_ID="1216"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1156" REPRESENTATIONS_ID="1217"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1157" REPRESENTATIONS_ID="1218"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1158" REPRESENTATIONS_ID="1219"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1159" REPRESENTATIONS_ID="1220"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1160" REPRESENTATIONS_ID="1221"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1161" REPRESENTATIONS_ID="1222"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1162" REPRESENTATIONS_ID="1223"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1163" REPRESENTATIONS_ID="1224"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1164" REPRESENTATIONS_ID="1225"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1165" REPRESENTATIONS_ID="1226"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1166" REPRESENTATIONS_ID="1227"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1167" REPRESENTATIONS_ID="1228"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1168" REPRESENTATIONS_ID="1229"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1169" REPRESENTATIONS_ID="1230"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1170" REPRESENTATIONS_ID="1231"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1171" REPRESENTATIONS_ID="1232"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1172" REPRESENTATIONS_ID="1233"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1173" REPRESENTATIONS_ID="1234"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1174" REPRESENTATIONS_ID="1235"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1175" REPRESENTATIONS_ID="1236"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1176" REPRESENTATIONS_ID="1237"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1177" REPRESENTATIONS_ID="1238"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1178" REPRESENTATIONS_ID="1239"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1179" REPRESENTATIONS_ID="1240"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1180" REPRESENTATIONS_ID="1241"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1181" REPRESENTATIONS_ID="1242"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1182" REPRESENTATIONS_ID="1243"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1183" REPRESENTATIONS_ID="1244"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1184" REPRESENTATIONS_ID="1245"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1185" REPRESENTATIONS_ID="1246"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1186" REPRESENTATIONS_ID="1247"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1187" REPRESENTATIONS_ID="1248"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1188" REPRESENTATIONS_ID="1249"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1189" REPRESENTATIONS_ID="1250"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1190" REPRESENTATIONS_ID="1251"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1191" REPRESENTATIONS_ID="1252"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1192" REPRESENTATIONS_ID="1253"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1193" REPRESENTATIONS_ID="1254"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1194" REPRESENTATIONS_ID="1255"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1195" REPRESENTATIONS_ID="1256"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1196" REPRESENTATIONS_ID="1257"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1197" REPRESENTATIONS_ID="1258"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1198" REPRESENTATIONS_ID="1259"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1199" REPRESENTATIONS_ID="1260"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1200" REPRESENTATIONS_ID="1261"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1201" REPRESENTATIONS_ID="1262"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1202" REPRESENTATIONS_ID="1263"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1203" REPRESENTATIONS_ID="1264"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1204" REPRESENTATIONS_ID="1265"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1205" REPRESENTATIONS_ID="1266"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1206" REPRESENTATIONS_ID="1267"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1207" REPRESENTATIONS_ID="1268"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1208" REPRESENTATIONS_ID="1269"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1209" REPRESENTATIONS_ID="1270"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1210" REPRESENTATIONS_ID="1271"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1211" REPRESENTATIONS_ID="1272"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1212" REPRESENTATIONS_ID="1273"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1213" REPRESENTATIONS_ID="1274"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1214" REPRESENTATIONS_ID="1275"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1215" REPRESENTATIONS_ID="1276"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1216" REPRESENTATIONS_ID="1277"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1217" REPRESENTATIONS_ID="1278"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1218" REPRESENTATIONS_ID="1279"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1219" REPRESENTATIONS_ID="1280"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1220" REPRESENTATIONS_ID="1281"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1221" REPRESENTATIONS_ID="1282"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1222" REPRESENTATIONS_ID="1283"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1223" REPRESENTATIONS_ID="1284"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1224" REPRESENTATIONS_ID="1285"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1225" REPRESENTATIONS_ID="1286"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1226" REPRESENTATIONS_ID="1287"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1227" REPRESENTATIONS_ID="1288"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1228" REPRESENTATIONS_ID="1289"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1229" REPRESENTATIONS_ID="1290"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1230" REPRESENTATIONS_ID="1291"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1231" REPRESENTATIONS_ID="1292"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1232" REPRESENTATIONS_ID="1293"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1233" REPRESENTATIONS_ID="1294"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1234" REPRESENTATIONS_ID="1295"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1235" REPRESENTATIONS_ID="1296"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1236" REPRESENTATIONS_ID="1297"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1237" REPRESENTATIONS_ID="1298"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1238" REPRESENTATIONS_ID="1299"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1239" REPRESENTATIONS_ID="1300"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1240" REPRESENTATIONS_ID="1301"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1241" REPRESENTATIONS_ID="1302"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1242" REPRESENTATIONS_ID="1303"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1243" REPRESENTATIONS_ID="1304"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1244" REPRESENTATIONS_ID="1305"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1245" REPRESENTATIONS_ID="1306"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1246" REPRESENTATIONS_ID="1307"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1247" REPRESENTATIONS_ID="1308"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1248" REPRESENTATIONS_ID="1309"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1249" REPRESENTATIONS_ID="1310"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1250" REPRESENTATIONS_ID="1311"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1251" REPRESENTATIONS_ID="1312"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1252" REPRESENTATIONS_ID="1313"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1253" REPRESENTATIONS_ID="1314"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1254" REPRESENTATIONS_ID="1315"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1255" REPRESENTATIONS_ID="1316"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1256" REPRESENTATIONS_ID="1317"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1257" REPRESENTATIONS_ID="1318"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1258" REPRESENTATIONS_ID="1319"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1259" REPRESENTATIONS_ID="1320"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1260" REPRESENTATIONS_ID="1321"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1261" REPRESENTATIONS_ID="1322"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1262" REPRESENTATIONS_ID="1323"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1263" REPRESENTATIONS_ID="1324"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1264" REPRESENTATIONS_ID="1325"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1265" REPRESENTATIONS_ID="1326"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1266" REPRESENTATIONS_ID="1327"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1267" REPRESENTATIONS_ID="1328"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1268" REPRESENTATIONS_ID="1329"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1269" REPRESENTATIONS_ID="1330"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1270" REPRESENTATIONS_ID="1331"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1271" REPRESENTATIONS_ID="1332"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1272" REPRESENTATIONS_ID="1333"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1273" REPRESENTATIONS_ID="1334"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1274" REPRESENTATIONS_ID="1335"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1275" REPRESENTATIONS_ID="1336"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1276" REPRESENTATIONS_ID="1337"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1277" REPRESENTATIONS_ID="1338"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1278" REPRESENTATIONS_ID="1339"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1279" REPRESENTATIONS_ID="1340"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1280" REPRESENTATIONS_ID="1341"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1281" REPRESENTATIONS_ID="1342"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1282" REPRESENTATIONS_ID="1343"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1283" REPRESENTATIONS_ID="1344"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1284" REPRESENTATIONS_ID="1345"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1285" REPRESENTATIONS_ID="1346"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1286" REPRESENTATIONS_ID="1347"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1287" REPRESENTATIONS_ID="1348"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1288" REPRESENTATIONS_ID="1349"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1289" REPRESENTATIONS_ID="1350"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1290" REPRESENTATIONS_ID="1351"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1291" REPRESENTATIONS_ID="1352"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1292" REPRESENTATIONS_ID="1353"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1293" REPRESENTATIONS_ID="1354"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1294" REPRESENTATIONS_ID="1355"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1295" REPRESENTATIONS_ID="1356"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1296" REPRESENTATIONS_ID="1357"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1297" REPRESENTATIONS_ID="1358"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1298" REPRESENTATIONS_ID="1359"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1299" REPRESENTATIONS_ID="1360"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1300" REPRESENTATIONS_ID="1361"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1301" REPRESENTATIONS_ID="1362"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1302" REPRESENTATIONS_ID="1363"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1303" REPRESENTATIONS_ID="1364"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1304" REPRESENTATIONS_ID="1365"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1305" REPRESENTATIONS_ID="1366"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1306" REPRESENTATIONS_ID="1367"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1307" REPRESENTATIONS_ID="1368"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1308" REPRESENTATIONS_ID="1369"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1309" REPRESENTATIONS_ID="1370"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1310" REPRESENTATIONS_ID="1371"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1311" REPRESENTATIONS_ID="1372"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1312" REPRESENTATIONS_ID="1373"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1313" REPRESENTATIONS_ID="1374"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1314" REPRESENTATIONS_ID="1375"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1315" REPRESENTATIONS_ID="1376"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1316" REPRESENTATIONS_ID="1377"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1317" REPRESENTATIONS_ID="1378"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1318" REPRESENTATIONS_ID="1379"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1319" REPRESENTATIONS_ID="1380"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1320" REPRESENTATIONS_ID="1381"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1321" REPRESENTATIONS_ID="1382"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1322" REPRESENTATIONS_ID="1383"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1323" REPRESENTATIONS_ID="1384"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1324" REPRESENTATIONS_ID="1385"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1325" REPRESENTATIONS_ID="1386"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1326" REPRESENTATIONS_ID="1387"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1327" REPRESENTATIONS_ID="1388"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1328" REPRESENTATIONS_ID="1389"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1329" REPRESENTATIONS_ID="1390"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1330" REPRESENTATIONS_ID="1391"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1331" REPRESENTATIONS_ID="1392"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1332" REPRESENTATIONS_ID="1393"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1333" REPRESENTATIONS_ID="1394"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1334" REPRESENTATIONS_ID="1395"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1335" REPRESENTATIONS_ID="1396"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1336" REPRESENTATIONS_ID="1397"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1337" REPRESENTATIONS_ID="1398"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1338" REPRESENTATIONS_ID="1399"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1339" REPRESENTATIONS_ID="1400"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1340" REPRESENTATIONS_ID="1401"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1341" REPRESENTATIONS_ID="1402"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1342" REPRESENTATIONS_ID="1403"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1343" REPRESENTATIONS_ID="1404"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1344" REPRESENTATIONS_ID="1405"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1345" REPRESENTATIONS_ID="1406"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1346" REPRESENTATIONS_ID="1407"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1347" REPRESENTATIONS_ID="1408"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1348" REPRESENTATIONS_ID="1409"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1349" REPRESENTATIONS_ID="1410"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1350" REPRESENTATIONS_ID="1411"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1351" REPRESENTATIONS_ID="1412"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1352" REPRESENTATIONS_ID="1413"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1353" REPRESENTATIONS_ID="1414"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1354" REPRESENTATIONS_ID="1415"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1355" REPRESENTATIONS_ID="1416"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1356" REPRESENTATIONS_ID="1417"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1357" REPRESENTATIONS_ID="1418"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1358" REPRESENTATIONS_ID="1419"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1359" REPRESENTATIONS_ID="1420"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1360" REPRESENTATIONS_ID="1421"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1361" REPRESENTATIONS_ID="1422"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1362" REPRESENTATIONS_ID="1423"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1363" REPRESENTATIONS_ID="1424"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1364" REPRESENTATIONS_ID="1425"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1365" REPRESENTATIONS_ID="1426"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1366" REPRESENTATIONS_ID="1427"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1367" REPRESENTATIONS_ID="1428"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1368" REPRESENTATIONS_ID="1429"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1369" REPRESENTATIONS_ID="1430"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1370" REPRESENTATIONS_ID="1431"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1371" REPRESENTATIONS_ID="1432"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1372" REPRESENTATIONS_ID="1433"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1373" REPRESENTATIONS_ID="1434"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1374" REPRESENTATIONS_ID="1435"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1375" REPRESENTATIONS_ID="1436"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1376" REPRESENTATIONS_ID="1437"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1377" REPRESENTATIONS_ID="1438"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1378" REPRESENTATIONS_ID="1439"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1379" REPRESENTATIONS_ID="1440"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1380" REPRESENTATIONS_ID="1441"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1381" REPRESENTATIONS_ID="1442"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1382" REPRESENTATIONS_ID="1443"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1383" REPRESENTATIONS_ID="1444"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1384" REPRESENTATIONS_ID="1445"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1385" REPRESENTATIONS_ID="1446"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1386" REPRESENTATIONS_ID="1447"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1387" REPRESENTATIONS_ID="1448"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1388" REPRESENTATIONS_ID="1449"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1389" REPRESENTATIONS_ID="1450"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1390" REPRESENTATIONS_ID="1451"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1391" REPRESENTATIONS_ID="1452"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1392" REPRESENTATIONS_ID="1453"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1393" REPRESENTATIONS_ID="1454"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1394" REPRESENTATIONS_ID="1455"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1395" REPRESENTATIONS_ID="1456"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1396" REPRESENTATIONS_ID="1457"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1397" REPRESENTATIONS_ID="1458"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1398" REPRESENTATIONS_ID="1459"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1399" REPRESENTATIONS_ID="1460"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1400" REPRESENTATIONS_ID="1461"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1401" REPRESENTATIONS_ID="1462"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1402" REPRESENTATIONS_ID="1463"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1403" REPRESENTATIONS_ID="1464"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1404" REPRESENTATIONS_ID="1465"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1405" REPRESENTATIONS_ID="1466"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1406" REPRESENTATIONS_ID="1467"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1407" REPRESENTATIONS_ID="1468"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1408" REPRESENTATIONS_ID="1469"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1409" REPRESENTATIONS_ID="1470"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1410" REPRESENTATIONS_ID="1471"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1411" REPRESENTATIONS_ID="1472"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1412" REPRESENTATIONS_ID="1473"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1413" REPRESENTATIONS_ID="1474"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1414" REPRESENTATIONS_ID="1475"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1415" REPRESENTATIONS_ID="1476"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1416" REPRESENTATIONS_ID="1477"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1417" REPRESENTATIONS_ID="1478"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1418" REPRESENTATIONS_ID="1479"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1419" REPRESENTATIONS_ID="1480"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1420" REPRESENTATIONS_ID="1481"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1421" REPRESENTATIONS_ID="1482"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1422" REPRESENTATIONS_ID="1483"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1423" REPRESENTATIONS_ID="1484"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1424" REPRESENTATIONS_ID="1485"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1425" REPRESENTATIONS_ID="1486"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1426" REPRESENTATIONS_ID="1487"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1427" REPRESENTATIONS_ID="1488"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1428" REPRESENTATIONS_ID="1489"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1429" REPRESENTATIONS_ID="1490"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1430" REPRESENTATIONS_ID="1491"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1431" REPRESENTATIONS_ID="1492"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1432" REPRESENTATIONS_ID="1493"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1433" REPRESENTATIONS_ID="1494"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1434" REPRESENTATIONS_ID="1495"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1435" REPRESENTATIONS_ID="1496"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1436" REPRESENTATIONS_ID="1497"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1437" REPRESENTATIONS_ID="1498"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1438" REPRESENTATIONS_ID="1499"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1439" REPRESENTATIONS_ID="1500"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1440" REPRESENTATIONS_ID="1501"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1441" REPRESENTATIONS_ID="1502"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1442" REPRESENTATIONS_ID="1503"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1443" REPRESENTATIONS_ID="1504"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1444" REPRESENTATIONS_ID="1505"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1445" REPRESENTATIONS_ID="1506"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1446" REPRESENTATIONS_ID="1507"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1447" REPRESENTATIONS_ID="1508"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1448" REPRESENTATIONS_ID="1509"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1449" REPRESENTATIONS_ID="1510"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1450" REPRESENTATIONS_ID="1511"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1451" REPRESENTATIONS_ID="1512"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1452" REPRESENTATIONS_ID="1513"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1453" REPRESENTATIONS_ID="1514"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1454" REPRESENTATIONS_ID="1515"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1455" REPRESENTATIONS_ID="1516"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1456" REPRESENTATIONS_ID="1517"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1457" REPRESENTATIONS_ID="1518"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1458" REPRESENTATIONS_ID="1519"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1459" REPRESENTATIONS_ID="1520"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1460" REPRESENTATIONS_ID="1521"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1461" REPRESENTATIONS_ID="1522"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1462" REPRESENTATIONS_ID="1523"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1463" REPRESENTATIONS_ID="1524"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1464" REPRESENTATIONS_ID="1525"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1465" REPRESENTATIONS_ID="1526"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1466" REPRESENTATIONS_ID="1527"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1467" REPRESENTATIONS_ID="1528"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1468" REPRESENTATIONS_ID="1529"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1469" REPRESENTATIONS_ID="1530"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1470" REPRESENTATIONS_ID="1531"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1471" REPRESENTATIONS_ID="1532"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1472" REPRESENTATIONS_ID="1533"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1473" REPRESENTATIONS_ID="1534"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1474" REPRESENTATIONS_ID="1535"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1475" REPRESENTATIONS_ID="1536"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1476" REPRESENTATIONS_ID="1537"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1477" REPRESENTATIONS_ID="1538"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1478" REPRESENTATIONS_ID="1539"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1479" REPRESENTATIONS_ID="1540"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1480" REPRESENTATIONS_ID="1541"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1481" REPRESENTATIONS_ID="1542"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1482" REPRESENTATIONS_ID="1543"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1483" REPRESENTATIONS_ID="1544"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1484" REPRESENTATIONS_ID="1545"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1485" REPRESENTATIONS_ID="1546"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1486" REPRESENTATIONS_ID="1547"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1487" REPRESENTATIONS_ID="1548"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1488" REPRESENTATIONS_ID="1549"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1489" REPRESENTATIONS_ID="1550"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1490" REPRESENTATIONS_ID="1551"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1491" REPRESENTATIONS_ID="1552"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1492" REPRESENTATIONS_ID="1553"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1493" REPRESENTATIONS_ID="1554"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1494" REPRESENTATIONS_ID="1555"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1495" REPRESENTATIONS_ID="1556"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1496" REPRESENTATIONS_ID="1557"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1497" REPRESENTATIONS_ID="1558"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1498" REPRESENTATIONS_ID="1559"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1499" REPRESENTATIONS_ID="1560"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1500" REPRESENTATIONS_ID="1561"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1501" REPRESENTATIONS_ID="1562"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1502" REPRESENTATIONS_ID="1563"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1503" REPRESENTATIONS_ID="1564"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1504" REPRESENTATIONS_ID="1565"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1505" REPRESENTATIONS_ID="1566"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1506" REPRESENTATIONS_ID="1567"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1507" REPRESENTATIONS_ID="1568"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1508" REPRESENTATIONS_ID="1569"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1509" REPRESENTATIONS_ID="1570"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1510" REPRESENTATIONS_ID="1571"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1511" REPRESENTATIONS_ID="1572"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1512" REPRESENTATIONS_ID="1573"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1513" REPRESENTATIONS_ID="1574"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1514" REPRESENTATIONS_ID="1575"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1515" REPRESENTATIONS_ID="1576"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1516" REPRESENTATIONS_ID="1577"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1517" REPRESENTATIONS_ID="1578"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1518" REPRESENTATIONS_ID="1579"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1519" REPRESENTATIONS_ID="1580"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1520" REPRESENTATIONS_ID="1581"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1521" REPRESENTATIONS_ID="1582"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1522" REPRESENTATIONS_ID="1583"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1523" REPRESENTATIONS_ID="1584"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1524" REPRESENTATIONS_ID="1585"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1525" REPRESENTATIONS_ID="1586"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1526" REPRESENTATIONS_ID="1587"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1527" REPRESENTATIONS_ID="1588"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1528" REPRESENTATIONS_ID="1589"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1529" REPRESENTATIONS_ID="1590"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1530" REPRESENTATIONS_ID="1591"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1531" REPRESENTATIONS_ID="1592"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1532" REPRESENTATIONS_ID="1593"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1533" REPRESENTATIONS_ID="1594"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1534" REPRESENTATIONS_ID="1595"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1535" REPRESENTATIONS_ID="1596"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1536" REPRESENTATIONS_ID="1597"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1537" REPRESENTATIONS_ID="1598"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1538" REPRESENTATIONS_ID="1599"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1539" REPRESENTATIONS_ID="1600"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1540" REPRESENTATIONS_ID="1601"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1541" REPRESENTATIONS_ID="1602"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1542" REPRESENTATIONS_ID="1603"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1543" REPRESENTATIONS_ID="1604"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1544" REPRESENTATIONS_ID="1605"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1545" REPRESENTATIONS_ID="1606"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1546" REPRESENTATIONS_ID="1607"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1547" REPRESENTATIONS_ID="1608"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1548" REPRESENTATIONS_ID="1609"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1549" REPRESENTATIONS_ID="1610"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1550" REPRESENTATIONS_ID="1611"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1551" REPRESENTATIONS_ID="1612"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1552" REPRESENTATIONS_ID="1613"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1553" REPRESENTATIONS_ID="1614"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1554" REPRESENTATIONS_ID="1615"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1555" REPRESENTATIONS_ID="1616"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1556" REPRESENTATIONS_ID="1617"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1557" REPRESENTATIONS_ID="1618"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1558" REPRESENTATIONS_ID="1619"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1559" REPRESENTATIONS_ID="1620"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1560" REPRESENTATIONS_ID="1621"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1561" REPRESENTATIONS_ID="1622"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1562" REPRESENTATIONS_ID="1623"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1563" REPRESENTATIONS_ID="1624"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1564" REPRESENTATIONS_ID="1625"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1565" REPRESENTATIONS_ID="1626"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1566" REPRESENTATIONS_ID="1627"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1567" REPRESENTATIONS_ID="1628"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1568" REPRESENTATIONS_ID="1629"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1569" REPRESENTATIONS_ID="1630"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1570" REPRESENTATIONS_ID="1631"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1571" REPRESENTATIONS_ID="1632"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1572" REPRESENTATIONS_ID="1633"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1573" REPRESENTATIONS_ID="1634"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1574" REPRESENTATIONS_ID="1635"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1575" REPRESENTATIONS_ID="1636"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1576" REPRESENTATIONS_ID="1637"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1577" REPRESENTATIONS_ID="1638"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1578" REPRESENTATIONS_ID="1639"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1579" REPRESENTATIONS_ID="1640"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1580" REPRESENTATIONS_ID="1641"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1581" REPRESENTATIONS_ID="1642"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1582" REPRESENTATIONS_ID="1643"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1583" REPRESENTATIONS_ID="1644"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1584" REPRESENTATIONS_ID="1645"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1585" REPRESENTATIONS_ID="1646"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1586" REPRESENTATIONS_ID="1647"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1587" REPRESENTATIONS_ID="1648"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1588" REPRESENTATIONS_ID="1649"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1589" REPRESENTATIONS_ID="1650"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1590" REPRESENTATIONS_ID="1651"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1591" REPRESENTATIONS_ID="1652"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1592" REPRESENTATIONS_ID="1653"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1593" REPRESENTATIONS_ID="1654"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1594" REPRESENTATIONS_ID="1655"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1595" REPRESENTATIONS_ID="1656"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1596" REPRESENTATIONS_ID="1657"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1597" REPRESENTATIONS_ID="1658"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1598" REPRESENTATIONS_ID="1659"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1599" REPRESENTATIONS_ID="1660"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1600" REPRESENTATIONS_ID="1661"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1601" REPRESENTATIONS_ID="1662"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1602" REPRESENTATIONS_ID="1663"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1603" REPRESENTATIONS_ID="1664"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1604" REPRESENTATIONS_ID="1665"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1605" REPRESENTATIONS_ID="1666"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1606" REPRESENTATIONS_ID="1667"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1607" REPRESENTATIONS_ID="1668"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1608" REPRESENTATIONS_ID="1669"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1609" REPRESENTATIONS_ID="1670"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1610" REPRESENTATIONS_ID="1671"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1611" REPRESENTATIONS_ID="1672"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1612" REPRESENTATIONS_ID="1673"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1613" REPRESENTATIONS_ID="1674"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1614" REPRESENTATIONS_ID="1675"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1615" REPRESENTATIONS_ID="1676"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1616" REPRESENTATIONS_ID="1677"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1617" REPRESENTATIONS_ID="1678"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1618" REPRESENTATIONS_ID="1679"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1619" REPRESENTATIONS_ID="1680"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1620" REPRESENTATIONS_ID="1681"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1621" REPRESENTATIONS_ID="1682"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1622" REPRESENTATIONS_ID="1683"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1623" REPRESENTATIONS_ID="1684"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1624" REPRESENTATIONS_ID="1685"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1625" REPRESENTATIONS_ID="1686"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1626" REPRESENTATIONS_ID="1687"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1627" REPRESENTATIONS_ID="1688"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1628" REPRESENTATIONS_ID="1689"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1629" REPRESENTATIONS_ID="1690"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1630" REPRESENTATIONS_ID="1691"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1631" REPRESENTATIONS_ID="1692"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1632" REPRESENTATIONS_ID="1693"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1633" REPRESENTATIONS_ID="1694"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1634" REPRESENTATIONS_ID="1695"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1635" REPRESENTATIONS_ID="1696"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1636" REPRESENTATIONS_ID="1697"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1637" REPRESENTATIONS_ID="1698"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1638" REPRESENTATIONS_ID="1699"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1639" REPRESENTATIONS_ID="1700"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1640" REPRESENTATIONS_ID="1701"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1641" REPRESENTATIONS_ID="1702"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1642" REPRESENTATIONS_ID="1703"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1643" REPRESENTATIONS_ID="1704"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1644" REPRESENTATIONS_ID="1705"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1645" REPRESENTATIONS_ID="1706"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1646" REPRESENTATIONS_ID="1707"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1647" REPRESENTATIONS_ID="1708"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1648" REPRESENTATIONS_ID="1709"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1649" REPRESENTATIONS_ID="1710"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1650" REPRESENTATIONS_ID="1711"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1651" REPRESENTATIONS_ID="1712"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1652" REPRESENTATIONS_ID="1713"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1653" REPRESENTATIONS_ID="1714"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1654" REPRESENTATIONS_ID="1715"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1655" REPRESENTATIONS_ID="1716"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1656" REPRESENTATIONS_ID="1717"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1657" REPRESENTATIONS_ID="1718"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1658" REPRESENTATIONS_ID="1719"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1659" REPRESENTATIONS_ID="1720"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1660" REPRESENTATIONS_ID="1721"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1661" REPRESENTATIONS_ID="1722"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1662" REPRESENTATIONS_ID="1723"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1663" REPRESENTATIONS_ID="1724"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1664" REPRESENTATIONS_ID="1725"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1665" REPRESENTATIONS_ID="1726"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1666" REPRESENTATIONS_ID="1727"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1667" REPRESENTATIONS_ID="1728"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1668" REPRESENTATIONS_ID="1729"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1669" REPRESENTATIONS_ID="1730"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1670" REPRESENTATIONS_ID="1731"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1671" REPRESENTATIONS_ID="1732"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1672" REPRESENTATIONS_ID="1733"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1673" REPRESENTATIONS_ID="1734"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1674" REPRESENTATIONS_ID="1735"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1675" REPRESENTATIONS_ID="1736"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1676" REPRESENTATIONS_ID="1737"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1677" REPRESENTATIONS_ID="1738"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1678" REPRESENTATIONS_ID="1739"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1679" REPRESENTATIONS_ID="1740"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1680" REPRESENTATIONS_ID="1741"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1681" REPRESENTATIONS_ID="1742"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1682" REPRESENTATIONS_ID="1743"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1683" REPRESENTATIONS_ID="1744"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1684" REPRESENTATIONS_ID="1745"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1685" REPRESENTATIONS_ID="1746"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1686" REPRESENTATIONS_ID="1747"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1687" REPRESENTATIONS_ID="1748"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1688" REPRESENTATIONS_ID="1749"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1689" REPRESENTATIONS_ID="1750"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1690" REPRESENTATIONS_ID="1751"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1691" REPRESENTATIONS_ID="1752"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1692" REPRESENTATIONS_ID="1753"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1693" REPRESENTATIONS_ID="1754"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1694" REPRESENTATIONS_ID="1755"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1695" REPRESENTATIONS_ID="1756"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1696" REPRESENTATIONS_ID="1757"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1697" REPRESENTATIONS_ID="1758"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1698" REPRESENTATIONS_ID="1759"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1699" REPRESENTATIONS_ID="1760"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1700" REPRESENTATIONS_ID="1761"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1701" REPRESENTATIONS_ID="1762"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1702" REPRESENTATIONS_ID="1763"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1703" REPRESENTATIONS_ID="1764"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1704" REPRESENTATIONS_ID="1765"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1705" REPRESENTATIONS_ID="1766"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1706" REPRESENTATIONS_ID="1767"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1707" REPRESENTATIONS_ID="1768"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1708" REPRESENTATIONS_ID="1769"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1709" REPRESENTATIONS_ID="1770"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1710" REPRESENTATIONS_ID="1771"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1711" REPRESENTATIONS_ID="1772"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1712" REPRESENTATIONS_ID="1773"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1713" REPRESENTATIONS_ID="1774"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1714" REPRESENTATIONS_ID="1775"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1715" REPRESENTATIONS_ID="1776"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1716" REPRESENTATIONS_ID="1777"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1717" REPRESENTATIONS_ID="1778"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1718" REPRESENTATIONS_ID="1779"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1719" REPRESENTATIONS_ID="1780"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1720" REPRESENTATIONS_ID="1781"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1721" REPRESENTATIONS_ID="1782"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1722" REPRESENTATIONS_ID="1783"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1723" REPRESENTATIONS_ID="1784"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1724" REPRESENTATIONS_ID="1785"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1725" REPRESENTATIONS_ID="1786"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1726" REPRESENTATIONS_ID="1787"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1727" REPRESENTATIONS_ID="1788"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1728" REPRESENTATIONS_ID="1789"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1729" REPRESENTATIONS_ID="1790"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1730" REPRESENTATIONS_ID="1791"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1731" REPRESENTATIONS_ID="1792"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1732" REPRESENTATIONS_ID="1793"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1733" REPRESENTATIONS_ID="1794"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1734" REPRESENTATIONS_ID="1795"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1735" REPRESENTATIONS_ID="1796"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1736" REPRESENTATIONS_ID="1797"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1737" REPRESENTATIONS_ID="1798"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1738" REPRESENTATIONS_ID="1799"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1739" REPRESENTATIONS_ID="1800"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1740" REPRESENTATIONS_ID="1801"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1741" REPRESENTATIONS_ID="1802"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1742" REPRESENTATIONS_ID="1803"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1743" REPRESENTATIONS_ID="1804"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1744" REPRESENTATIONS_ID="1805"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1745" REPRESENTATIONS_ID="1806"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1746" REPRESENTATIONS_ID="1807"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1747" REPRESENTATIONS_ID="1808"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1748" REPRESENTATIONS_ID="1809"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1749" REPRESENTATIONS_ID="1810"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1750" REPRESENTATIONS_ID="1811"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1751" REPRESENTATIONS_ID="1812"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1752" REPRESENTATIONS_ID="1813"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1753" REPRESENTATIONS_ID="1814"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1754" REPRESENTATIONS_ID="1815"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1755" REPRESENTATIONS_ID="1816"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1756" REPRESENTATIONS_ID="1817"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1757" REPRESENTATIONS_ID="1818"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1758" REPRESENTATIONS_ID="1819"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1759" REPRESENTATIONS_ID="1820"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1760" REPRESENTATIONS_ID="1821"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1761" REPRESENTATIONS_ID="1822"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1762" REPRESENTATIONS_ID="1823"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1763" REPRESENTATIONS_ID="1824"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1764" REPRESENTATIONS_ID="1825"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1765" REPRESENTATIONS_ID="1826"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1766" REPRESENTATIONS_ID="1827"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1767" REPRESENTATIONS_ID="1828"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1768" REPRESENTATIONS_ID="1829"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1769" REPRESENTATIONS_ID="1830"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1770" REPRESENTATIONS_ID="1831"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1771" REPRESENTATIONS_ID="1832"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1772" REPRESENTATIONS_ID="1833"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1773" REPRESENTATIONS_ID="1834"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1774" REPRESENTATIONS_ID="1835"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1775" REPRESENTATIONS_ID="1836"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1776" REPRESENTATIONS_ID="1837"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1777" REPRESENTATIONS_ID="1838"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1778" REPRESENTATIONS_ID="1839"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1779" REPRESENTATIONS_ID="1840"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1780" REPRESENTATIONS_ID="1841"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1781" REPRESENTATIONS_ID="1842"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1782" REPRESENTATIONS_ID="1843"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1783" REPRESENTATIONS_ID="1844"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1784" REPRESENTATIONS_ID="1845"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1785" REPRESENTATIONS_ID="1846"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1786" REPRESENTATIONS_ID="1847"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1787" REPRESENTATIONS_ID="1848"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1788" REPRESENTATIONS_ID="1849"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1789" REPRESENTATIONS_ID="1850"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1790" REPRESENTATIONS_ID="1851"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1791" REPRESENTATIONS_ID="1852"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1792" REPRESENTATIONS_ID="1853"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1793" REPRESENTATIONS_ID="1854"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1794" REPRESENTATIONS_ID="1855"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1795" REPRESENTATIONS_ID="1856"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1796" REPRESENTATIONS_ID="1857"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1797" REPRESENTATIONS_ID="1858"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1798" REPRESENTATIONS_ID="1859"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1799" REPRESENTATIONS_ID="1860"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1800" REPRESENTATIONS_ID="1861"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1801" REPRESENTATIONS_ID="1862"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1802" REPRESENTATIONS_ID="1863"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1803" REPRESENTATIONS_ID="1864"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1804" REPRESENTATIONS_ID="1865"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1805" REPRESENTATIONS_ID="1866"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1806" REPRESENTATIONS_ID="1867"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1807" REPRESENTATIONS_ID="1868"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1808" REPRESENTATIONS_ID="1869"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1809" REPRESENTATIONS_ID="1870"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1810" REPRESENTATIONS_ID="1871"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1811" REPRESENTATIONS_ID="1872"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1812" REPRESENTATIONS_ID="1873"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1813" REPRESENTATIONS_ID="1874"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1814" REPRESENTATIONS_ID="1875"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1815" REPRESENTATIONS_ID="1876"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1816" REPRESENTATIONS_ID="1877"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1817" REPRESENTATIONS_ID="1878"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1818" REPRESENTATIONS_ID="1879"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1819" REPRESENTATIONS_ID="1880"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1820" REPRESENTATIONS_ID="1881"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1821" REPRESENTATIONS_ID="1882"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1822" REPRESENTATIONS_ID="1883"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1823" REPRESENTATIONS_ID="1884"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1824" REPRESENTATIONS_ID="1885"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1825" REPRESENTATIONS_ID="1886"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1826" REPRESENTATIONS_ID="1887"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1827" REPRESENTATIONS_ID="1888"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1828" REPRESENTATIONS_ID="1889"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1829" REPRESENTATIONS_ID="1890"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1830" REPRESENTATIONS_ID="1891"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1831" REPRESENTATIONS_ID="1892"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1832" REPRESENTATIONS_ID="1893"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1833" REPRESENTATIONS_ID="1894"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1834" REPRESENTATIONS_ID="1895"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1835" REPRESENTATIONS_ID="1896"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1836" REPRESENTATIONS_ID="1897"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1837" REPRESENTATIONS_ID="1898"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1838" REPRESENTATIONS_ID="1899"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1839" REPRESENTATIONS_ID="1900"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1840" REPRESENTATIONS_ID="1901"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1841" REPRESENTATIONS_ID="1902"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1842" REPRESENTATIONS_ID="1903"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1843" REPRESENTATIONS_ID="1904"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1844" REPRESENTATIONS_ID="1905"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1845" REPRESENTATIONS_ID="1906"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1846" REPRESENTATIONS_ID="1907"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1847" REPRESENTATIONS_ID="1908"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1848" REPRESENTATIONS_ID="1909"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1849" REPRESENTATIONS_ID="1910"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1850" REPRESENTATIONS_ID="1911"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1851" REPRESENTATIONS_ID="1912"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1852" REPRESENTATIONS_ID="1913"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1853" REPRESENTATIONS_ID="1914"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1854" REPRESENTATIONS_ID="1915"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1855" REPRESENTATIONS_ID="1916"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1856" REPRESENTATIONS_ID="1917"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1857" REPRESENTATIONS_ID="1918"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1858" REPRESENTATIONS_ID="1919"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1859" REPRESENTATIONS_ID="1920"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1860" REPRESENTATIONS_ID="1921"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1861" REPRESENTATIONS_ID="1922"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1862" REPRESENTATIONS_ID="1923"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1863" REPRESENTATIONS_ID="1924"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1864" REPRESENTATIONS_ID="1925"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1865" REPRESENTATIONS_ID="1926"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1866" REPRESENTATIONS_ID="1927"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1867" REPRESENTATIONS_ID="1928"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1868" REPRESENTATIONS_ID="1929"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1869" REPRESENTATIONS_ID="1930"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1870" REPRESENTATIONS_ID="1931"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1871" REPRESENTATIONS_ID="1932"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1872" REPRESENTATIONS_ID="1933"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1873" REPRESENTATIONS_ID="1934"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1874" REPRESENTATIONS_ID="1935"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1875" REPRESENTATIONS_ID="1936"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1876" REPRESENTATIONS_ID="1937"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1877" REPRESENTATIONS_ID="1938"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1878" REPRESENTATIONS_ID="1939"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1879" REPRESENTATIONS_ID="1940"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1880" REPRESENTATIONS_ID="1941"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1881" REPRESENTATIONS_ID="1942"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1882" REPRESENTATIONS_ID="1943"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1883" REPRESENTATIONS_ID="1944"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1884" REPRESENTATIONS_ID="1945"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1885" REPRESENTATIONS_ID="1946"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1886" REPRESENTATIONS_ID="1947"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1887" REPRESENTATIONS_ID="1948"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1888" REPRESENTATIONS_ID="1949"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1889" REPRESENTATIONS_ID="1950"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1890" REPRESENTATIONS_ID="1951"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1891" REPRESENTATIONS_ID="1952"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1892" REPRESENTATIONS_ID="1953"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1893" REPRESENTATIONS_ID="1954"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1894" REPRESENTATIONS_ID="1955"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1895" REPRESENTATIONS_ID="1956"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1896" REPRESENTATIONS_ID="1957"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1897" REPRESENTATIONS_ID="1958"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1898" REPRESENTATIONS_ID="1959"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1899" REPRESENTATIONS_ID="1960"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1900" REPRESENTATIONS_ID="1961"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1901" REPRESENTATIONS_ID="1962"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1902" REPRESENTATIONS_ID="1963"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1903" REPRESENTATIONS_ID="1964"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1904" REPRESENTATIONS_ID="1965"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1905" REPRESENTATIONS_ID="1966"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1906" REPRESENTATIONS_ID="1967"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1907" REPRESENTATIONS_ID="1968"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1908" REPRESENTATIONS_ID="1969"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1909" REPRESENTATIONS_ID="1970"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1910" REPRESENTATIONS_ID="1971"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1911" REPRESENTATIONS_ID="1972"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1912" REPRESENTATIONS_ID="1973"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1913" REPRESENTATIONS_ID="1974"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1914" REPRESENTATIONS_ID="1975"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1915" REPRESENTATIONS_ID="1976"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1916" REPRESENTATIONS_ID="1977"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1917" REPRESENTATIONS_ID="1978"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1918" REPRESENTATIONS_ID="1979"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1919" REPRESENTATIONS_ID="1980"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1920" REPRESENTATIONS_ID="1981"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1921" REPRESENTATIONS_ID="1982"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1922" REPRESENTATIONS_ID="1983"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1923" REPRESENTATIONS_ID="1984"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1924" REPRESENTATIONS_ID="1985"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1925" REPRESENTATIONS_ID="1986"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1926" REPRESENTATIONS_ID="1987"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1927" REPRESENTATIONS_ID="1988"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1928" REPRESENTATIONS_ID="1989"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1929" REPRESENTATIONS_ID="1990"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1930" REPRESENTATIONS_ID="1991"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1931" REPRESENTATIONS_ID="1992"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1932" REPRESENTATIONS_ID="1993"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1933" REPRESENTATIONS_ID="1994"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1934" REPRESENTATIONS_ID="1995"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1935" REPRESENTATIONS_ID="1996"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1936" REPRESENTATIONS_ID="1997"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1937" REPRESENTATIONS_ID="1998"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1938" REPRESENTATIONS_ID="1999"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1939" REPRESENTATIONS_ID="2000"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1940" REPRESENTATIONS_ID="2001"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1941" REPRESENTATIONS_ID="2002"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1942" REPRESENTATIONS_ID="2003"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1943" REPRESENTATIONS_ID="2004"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1944" REPRESENTATIONS_ID="2005"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1945" REPRESENTATIONS_ID="2006"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1946" REPRESENTATIONS_ID="2007"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1947" REPRESENTATIONS_ID="2008"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1948" REPRESENTATIONS_ID="2009"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1949" REPRESENTATIONS_ID="2010"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1950" REPRESENTATIONS_ID="2011"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1951" REPRESENTATIONS_ID="2012"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1952" REPRESENTATIONS_ID="2013"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1953" REPRESENTATIONS_ID="2014"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1954" REPRESENTATIONS_ID="2015"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1955" REPRESENTATIONS_ID="2016"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1956" REPRESENTATIONS_ID="2017"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1957" REPRESENTATIONS_ID="2018"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1958" REPRESENTATIONS_ID="2019"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1959" REPRESENTATIONS_ID="2020"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1960" REPRESENTATIONS_ID="2021"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1961" REPRESENTATIONS_ID="2022"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1962" REPRESENTATIONS_ID="2023"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1963" REPRESENTATIONS_ID="2024"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1964" REPRESENTATIONS_ID="2025"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1965" REPRESENTATIONS_ID="2026"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1966" REPRESENTATIONS_ID="2027"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1967" REPRESENTATIONS_ID="2028"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1968" REPRESENTATIONS_ID="2029"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1969" REPRESENTATIONS_ID="2030"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1970" REPRESENTATIONS_ID="2031"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1971" REPRESENTATIONS_ID="2032"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1972" REPRESENTATIONS_ID="2033"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1973" REPRESENTATIONS_ID="2034"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1974" REPRESENTATIONS_ID="2035"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1975" REPRESENTATIONS_ID="2036"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1976" REPRESENTATIONS_ID="2037"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1977" REPRESENTATIONS_ID="2039"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1978" REPRESENTATIONS_ID="2040"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1979" REPRESENTATIONS_ID="2041"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1980" REPRESENTATIONS_ID="2042"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1981" REPRESENTATIONS_ID="2043"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1982" REPRESENTATIONS_ID="2044"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1983" REPRESENTATIONS_ID="2045"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1984" REPRESENTATIONS_ID="2046"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1985" REPRESENTATIONS_ID="2047"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1986" REPRESENTATIONS_ID="2048"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1987" REPRESENTATIONS_ID="2049"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1988" REPRESENTATIONS_ID="2050"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1989" REPRESENTATIONS_ID="2051"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1990" REPRESENTATIONS_ID="2052"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1991" REPRESENTATIONS_ID="2053"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1992" REPRESENTATIONS_ID="2054"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1993" REPRESENTATIONS_ID="2055"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1994" REPRESENTATIONS_ID="2056"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1995" REPRESENTATIONS_ID="2058"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1996" REPRESENTATIONS_ID="2060"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1997" REPRESENTATIONS_ID="2061"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1998" REPRESENTATIONS_ID="2063"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1999" REPRESENTATIONS_ID="2064"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2000" REPRESENTATIONS_ID="2065"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2001" REPRESENTATIONS_ID="2066"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2002" REPRESENTATIONS_ID="2067"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2003" REPRESENTATIONS_ID="2068"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2004" REPRESENTATIONS_ID="2069"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2005" REPRESENTATIONS_ID="2070"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2006" REPRESENTATIONS_ID="2074"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2007" REPRESENTATIONS_ID="2075"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2008" REPRESENTATIONS_ID="2076"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2009" REPRESENTATIONS_ID="2077"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2010" REPRESENTATIONS_ID="2078"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2011" REPRESENTATIONS_ID="2079"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2012" REPRESENTATIONS_ID="2080"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2013" REPRESENTATIONS_ID="2081"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2014" REPRESENTATIONS_ID="2083"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2015" REPRESENTATIONS_ID="2084"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2016" REPRESENTATIONS_ID="2085"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="846" INVERSEREPRESENTATIONS_ID="854"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="847" INVERSEREPRESENTATIONS_ID="856"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="848" INVERSEREPRESENTATIONS_ID="858"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="849" INVERSEREPRESENTATIONS_ID="861"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="850" INVERSEREPRESENTATIONS_ID="863"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="851" INVERSEREPRESENTATIONS_ID="865"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="852" INVERSEREPRESENTATIONS_ID="867"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="853" INVERSEREPRESENTATIONS_ID="870"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="854" INVERSEREPRESENTATIONS_ID="872"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="855" INVERSEREPRESENTATIONS_ID="874"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="856" INVERSEREPRESENTATIONS_ID="876"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="857" INVERSEREPRESENTATIONS_ID="878"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="858" INVERSEREPRESENTATIONS_ID="880"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="859" INVERSEREPRESENTATIONS_ID="882"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="860" INVERSEREPRESENTATIONS_ID="884"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="861" INVERSEREPRESENTATIONS_ID="886"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="862" INVERSEREPRESENTATIONS_ID="888"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="863" INVERSEREPRESENTATIONS_ID="891"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="864" INVERSEREPRESENTATIONS_ID="893"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="865" INVERSEREPRESENTATIONS_ID="895"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="866" INVERSEREPRESENTATIONS_ID="897"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="867" INVERSEREPRESENTATIONS_ID="899"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="868" INVERSEREPRESENTATIONS_ID="901"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="869" INVERSEREPRESENTATIONS_ID="903"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="870" INVERSEREPRESENTATIONS_ID="905"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="871" INVERSEREPRESENTATIONS_ID="907"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="872" INVERSEREPRESENTATIONS_ID="909"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="873" INVERSEREPRESENTATIONS_ID="911"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="874" INVERSEREPRESENTATIONS_ID="913"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="875" INVERSEREPRESENTATIONS_ID="915"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="876" INVERSEREPRESENTATIONS_ID="917"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="877" INVERSEREPRESENTATIONS_ID="919"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="878" INVERSEREPRESENTATIONS_ID="921"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="879" INVERSEREPRESENTATIONS_ID="923"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="880" INVERSEREPRESENTATIONS_ID="925"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="881" INVERSEREPRESENTATIONS_ID="927"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="882" INVERSEREPRESENTATIONS_ID="929"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="883" INVERSEREPRESENTATIONS_ID="931"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="884" INVERSEREPRESENTATIONS_ID="933"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="885" INVERSEREPRESENTATIONS_ID="935"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="886" INVERSEREPRESENTATIONS_ID="937"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="887" INVERSEREPRESENTATIONS_ID="939"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="888" INVERSEREPRESENTATIONS_ID="941"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="889" INVERSEREPRESENTATIONS_ID="943"/>\r
-  <REPRESENTATION ID="1" CREATED="2009-01-28 17:07:03.0" UUID="e354b82b-4ed8-4303-ad28-08888d9e682c" TEXT="eu.etaxonomy.cdm.model.common.Language" LABEL="Language"/>\r
-  <REPRESENTATION ID="2" CREATED="2009-01-28 17:07:03.0" UUID="af97e497-8c89-43d9-a7b0-98784927d20d" TEXT="Khoisan (Other)" ABBREVIATEDLABEL="khi" LABEL="khi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="3" CREATED="2009-01-28 17:07:03.0" UUID="f8ab0489-4683-4a81-83fb-ece3a470b982" TEXT="South American Indian (Other)" ABBREVIATEDLABEL="sai" LABEL="sai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="4" CREATED="2009-01-28 17:07:03.0" UUID="8c18e448-55fd-414a-b8e1-f7ee90fc594d" TEXT="Catalan; Valencian" ABBREVIATEDLABEL="cat" LABEL="cat"/>\r
-  <REPRESENTATION ID="5" CREATED="2009-01-28 17:07:03.0" UUID="e138ab0b-8f8a-4dc2-a02d-ddde4a027e34" TEXT="Prakrit languages" ABBREVIATEDLABEL="pra" LABEL="pra" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="6" CREATED="2009-01-28 17:07:03.0" UUID="315a90f3-2b30-4929-ba96-80f6c14a272b" TEXT="Tonga (Tonga Islands)" ABBREVIATEDLABEL="ton" LABEL="ton" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="7" CREATED="2009-01-28 17:07:03.0" UUID="b78950ff-9551-410b-b95a-c2436a8fc3c6" TEXT="Galician" ABBREVIATEDLABEL="glg" LABEL="glg" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="8" CREATED="2009-01-28 17:07:03.0" UUID="10aef5aa-788e-4cb4-8d41-db97a4230896" TEXT="Tuvinian" ABBREVIATEDLABEL="tyv" LABEL="tyv" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="9" CREATED="2009-01-28 17:07:03.0" UUID="09ca8ef4-8abc-4548-b362-f3bdcc9b5bba" TEXT="Ukrainian" ABBREVIATEDLABEL="ukr" LABEL="ukr" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="10" CREATED="2009-01-28 17:07:03.0" UUID="13800e9d-a5f1-4330-9b33-fc5ff9f43847" TEXT="Chuukese" ABBREVIATEDLABEL="chk" LABEL="chk"/>\r
-  <REPRESENTATION ID="11" CREATED="2009-01-28 17:07:03.0" UUID="fc358e2f-0712-467e-ba6a-093c4c499ca1" TEXT="Aromanian; Arumanian; Macedo-Romanian" ABBREVIATEDLABEL="rup" LABEL="rup" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="12" CREATED="2009-01-28 17:07:03.0" UUID="80be2f04-bee2-498b-8517-7e8ae2be93e9" TEXT="Southern Altai" ABBREVIATEDLABEL="alt" LABEL="alt"/>\r
-  <REPRESENTATION ID="13" CREATED="2009-01-28 17:07:03.0" UUID="a01941cf-9094-4e94-80ca-b5e0a6df9953" TEXT="Hiligaynon" ABBREVIATEDLABEL="hil" LABEL="hil" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="14" CREATED="2009-01-28 17:07:03.0" UUID="7ce4913f-0438-4dd9-ad95-8fe09c4defa3" TEXT="Lojban" ABBREVIATEDLABEL="jbo" LABEL="jbo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="15" CREATED="2009-01-28 17:07:03.0" UUID="3bf23f85-46ff-47ca-b95e-a633490af338" TEXT="Uncoded languages" ABBREVIATEDLABEL="mis" LABEL="mis" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="16" CREATED="2009-01-28 17:07:03.0" UUID="55b53ee5-1a6a-4920-9d40-997beaf2bf80" TEXT="Danish" ABBREVIATEDLABEL="dan" LABEL="dan"/>\r
-  <REPRESENTATION ID="17" CREATED="2009-01-28 17:07:03.0" UUID="64f88e59-8b9c-4a2b-bf64-d93f9d453bbf" TEXT="Tigre" ABBREVIATEDLABEL="tig" LABEL="tig" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="18" CREATED="2009-01-28 17:07:03.0" UUID="98fccc3d-448b-42ee-aa43-51c8469dae3d" TEXT="Swati" ABBREVIATEDLABEL="ssw" LABEL="ssw" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="19" CREATED="2009-01-28 17:07:03.0" UUID="cde830bc-4e31-4ad5-9dc1-c0f3c756d754" TEXT="Konkani" ABBREVIATEDLABEL="kok" LABEL="kok" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="20" CREATED="2009-01-28 17:07:03.0" UUID="bbd20711-3ddc-4d7c-b2ad-6b458417d7e2" TEXT="Esperanto" ABBREVIATEDLABEL="epo" LABEL="epo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="21" CREATED="2009-01-28 17:07:03.0" UUID="d0ca0263-da98-400b-b87e-9d406b6a801f" TEXT="Bini; Edo" ABBREVIATEDLABEL="bin" LABEL="bin"/>\r
-  <REPRESENTATION ID="22" CREATED="2009-01-28 17:07:03.0" UUID="5817e90e-d264-4544-a26d-ec608f01bc05" TEXT="Yapese" ABBREVIATEDLABEL="yap" LABEL="yap" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="23" CREATED="2009-01-28 17:07:03.0" UUID="1a30f72f-dbff-4f93-90a8-0c5455543327" TEXT="Kachin; Jingpho" ABBREVIATEDLABEL="kac" LABEL="kac" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="24" CREATED="2009-01-28 17:07:03.0" UUID="4b567060-ec56-474d-9f10-e47b735bbb7f" TEXT="Iloko" ABBREVIATEDLABEL="ilo" LABEL="ilo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="25" CREATED="2009-01-28 17:07:03.0" UUID="cb073acf-bb7e-4f8a-8f5c-cc7542c46b66" TEXT="Gothic" ABBREVIATEDLABEL="got" LABEL="got" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="26" CREATED="2009-01-28 17:07:03.0" UUID="cefabbd0-6fee-4966-96b7-c48ff61ff0b8" TEXT="Berber (Other)" ABBREVIATEDLABEL="ber" LABEL="ber"/>\r
-  <REPRESENTATION ID="27" CREATED="2009-01-28 17:07:03.0" UUID="6602ab4d-076d-4f6d-9b1d-bb76e3efd4a8" TEXT="Gondi" ABBREVIATEDLABEL="gon" LABEL="gon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="28" CREATED="2009-01-28 17:07:03.0" UUID="3edc8bab-e785-4709-854b-43f7dd9afde7" TEXT="Kalaallisut; Greenlandic" ABBREVIATEDLABEL="kal" LABEL="kal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="29" CREATED="2009-01-28 17:07:03.0" UUID="daf31aa1-f6f1-4a22-9757-16d01d85c6e7" TEXT="Magahi" ABBREVIATEDLABEL="mag" LABEL="mag" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="30" CREATED="2009-01-28 17:07:03.0" UUID="261e1013-685d-4b68-97fd-5e0a46995f0e" TEXT="Arawak" ABBREVIATEDLABEL="arw" LABEL="arw"/>\r
-  <REPRESENTATION ID="31" CREATED="2009-01-28 17:07:03.0" UUID="7492c96e-7d20-410c-af97-60ada47c1193" TEXT="Javanese" ABBREVIATEDLABEL="jav" LABEL="jav" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="32" CREATED="2009-01-28 17:07:03.0" UUID="b17f64ad-0150-464f-83ee-3a5cdf252eeb" TEXT="Official Aramaic (700-300 BCE); Imperial Aramaic (700-300 BCE)" ABBREVIATEDLABEL="arc" LABEL="arc"/>\r
-  <REPRESENTATION ID="33" CREATED="2009-01-28 17:07:03.0" UUID="13f59ae4-9e84-4ed8-8383-228c235326a6" TEXT="Kanuri" ABBREVIATEDLABEL="kau" LABEL="kau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="34" CREATED="2009-01-28 17:07:03.0" UUID="42b85ecb-fd24-419b-99c8-f0143ab38fcc" TEXT="Luo (Kenya and Tanzania)" ABBREVIATEDLABEL="luo" LABEL="luo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="35" CREATED="2009-01-28 17:07:03.0" UUID="9793d3e1-67af-4715-be6b-d34a0411812a" TEXT="Greek, Ancient (to 1453)" ABBREVIATEDLABEL="grc" LABEL="grc" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="36" CREATED="2009-01-28 17:07:03.0" UUID="14337d96-7303-4851-b139-f25576d4f109" TEXT="Caddo" ABBREVIATEDLABEL="cad" LABEL="cad"/>\r
-  <REPRESENTATION ID="37" CREATED="2009-01-28 17:07:03.0" UUID="714e3c19-8ad5-4696-a245-68adda497acf" TEXT="Timne" ABBREVIATEDLABEL="tem" LABEL="tem" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="38" CREATED="2009-01-28 17:07:03.0" UUID="588ae600-13cf-4025-82e0-33ae73d83fb3" TEXT="Icelandic" ABBREVIATEDLABEL="ice" LABEL="ice" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="39" CREATED="2009-01-28 17:07:03.0" UUID="df9f3308-847e-484f-af8b-10b0040deeef" TEXT="Italian" ABBREVIATEDLABEL="ita" LABEL="ita" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="40" CREATED="2009-01-28 17:07:03.0" UUID="3b6274a3-9e37-40c8-8a87-f0c28d94c493" TEXT="Karen languages" ABBREVIATEDLABEL="kar" LABEL="kar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="41" CREATED="2009-01-28 17:07:03.0" UUID="f0f98241-ac52-4478-bdf4-6554d97722fe" TEXT="Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki" ABBREVIATEDLABEL="zza" LABEL="zza" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="42" CREATED="2009-01-28 17:07:03.0" UUID="e0639fd7-3aab-426c-9477-67197e7148e7" TEXT="Dogri" ABBREVIATEDLABEL="doi" LABEL="doi"/>\r
-  <REPRESENTATION ID="43" CREATED="2009-01-28 17:07:03.0" UUID="9e485d02-1ebe-44f6-bdfa-204e0e7e346d" TEXT="Mohawk" ABBREVIATEDLABEL="moh" LABEL="moh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="44" CREATED="2009-01-28 17:07:03.0" UUID="0ea22063-b5fd-4a15-8ff9-313b8216f121" TEXT="Lithuanian" ABBREVIATEDLABEL="lit" LABEL="lit" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="45" CREATED="2009-01-28 17:07:03.0" UUID="c451b4f6-2437-45ad-bd3a-4fd03c88c92c" TEXT="Mari" ABBREVIATEDLABEL="chm" LABEL="chm"/>\r
-  <REPRESENTATION ID="46" CREATED="2009-01-28 17:07:03.0" UUID="c37f3f3f-33e3-495d-9fde-8f874ff13f64" TEXT="Yupik languages" ABBREVIATEDLABEL="ypk" LABEL="ypk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="47" CREATED="2009-01-28 17:07:03.0" UUID="41a4c00a-18d1-4f66-965d-1bac7d1811bd" TEXT="Buriat" ABBREVIATEDLABEL="bua" LABEL="bua"/>\r
-  <REPRESENTATION ID="48" CREATED="2009-01-28 17:07:03.0" UUID="ce82b840-b6fe-40c7-a42b-b808dbd33b62" TEXT="Dargwa" ABBREVIATEDLABEL="dar" LABEL="dar"/>\r
-  <REPRESENTATION ID="49" CREATED="2009-01-28 17:07:03.0" UUID="06310022-b41a-4069-9f1f-edfc3d88550c" TEXT="Lushai" ABBREVIATEDLABEL="lus" LABEL="lus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="50" CREATED="2009-01-28 17:07:03.0" UUID="f2c89510-d54a-40a7-8438-e08885f68005" TEXT="Ido" ABBREVIATEDLABEL="ido" LABEL="ido" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="51" CREATED="2009-01-28 17:07:03.0" UUID="65acf794-6d24-42d7-b971-7fe568d40767" TEXT="Northern Frisian" ABBREVIATEDLABEL="frr" LABEL="frr" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="52" CREATED="2009-01-28 17:07:03.0" UUID="89cca780-a43c-455d-90d5-2af6315983c5" TEXT="Central Khmer" ABBREVIATEDLABEL="khm" LABEL="khm" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="53" CREATED="2009-01-28 17:07:03.0" UUID="cf0d757e-0e76-450d-be0e-f774361df5e6" TEXT="Romance (Other)" ABBREVIATEDLABEL="roa" LABEL="roa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="54" CREATED="2009-01-28 17:07:03.0" UUID="70077244-ed30-4c34-a41f-264e6c3eea89" TEXT="Braj" ABBREVIATEDLABEL="bra" LABEL="bra"/>\r
-  <REPRESENTATION ID="55" CREATED="2009-01-28 17:07:03.0" UUID="5a268f80-f687-45ca-9a93-322198f8487b" TEXT="Kabyle" ABBREVIATEDLABEL="kab" LABEL="kab" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="56" CREATED="2009-01-28 17:07:03.0" UUID="0ac5ef36-48c4-4c78-a426-4ddd6a30119e" TEXT="Karelian" ABBREVIATEDLABEL="krl" LABEL="krl" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="57" CREATED="2009-01-28 17:07:03.0" UUID="d8133ba3-4b10-4e86-846f-6d84a72fe0f3" TEXT="Inuktitut" ABBREVIATEDLABEL="iku" LABEL="iku" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="58" CREATED="2009-01-28 17:07:03.0" UUID="f2ad1a3c-4a78-42fa-8a1b-6b3cbb8a9473" TEXT="Nepali" ABBREVIATEDLABEL="nep" LABEL="nep" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="59" CREATED="2009-01-28 17:07:03.0" UUID="a8059281-6c39-4c48-8190-6ceb1083197a" TEXT="Creoles and pidgins, French-based (Other)" ABBREVIATEDLABEL="cpf" LABEL="cpf"/>\r
-  <REPRESENTATION ID="60" CREATED="2009-01-28 17:07:03.0" UUID="3111b1e8-c8f3-4932-9eaf-29529eb2e235" TEXT="Siksika" ABBREVIATEDLABEL="bla" LABEL="bla"/>\r
-  <REPRESENTATION ID="61" CREATED="2009-01-28 17:07:03.0" UUID="1e928351-fdb9-4dbc-b186-76d15d4b0e7d" TEXT="Madurese" ABBREVIATEDLABEL="mad" LABEL="mad" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="62" CREATED="2009-01-28 17:07:03.0" UUID="c7b1c420-1f36-47d9-b141-9d18444a58a7" TEXT="Moksha" ABBREVIATEDLABEL="mdf" LABEL="mdf" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="63" CREATED="2009-01-28 17:07:03.0" UUID="b1eaaa32-9915-4873-8b93-308f72761be6" TEXT="Klingon; tlhIngan-Hol" ABBREVIATEDLABEL="tlh" LABEL="tlh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="64" CREATED="2009-01-28 17:07:03.0" UUID="d13c3e8b-7c6d-4a0d-9fd4-1dfe90132373" TEXT="Mi&apos;kmaq; Micmac" ABBREVIATEDLABEL="mic" LABEL="mic" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="65" CREATED="2009-01-28 17:07:03.0" UUID="6089632a-d7a2-467a-8b7f-d17407d8d874" TEXT="Turkish, Ottoman (1500-1928)" ABBREVIATEDLABEL="ota" LABEL="ota" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="66" CREATED="2009-01-28 17:07:03.0" UUID="fb9dda66-9922-429d-896f-e2eed4dd3864" TEXT="Mapudungun; Mapuche" ABBREVIATEDLABEL="arn" LABEL="arn"/>\r
-  <REPRESENTATION ID="67" CREATED="2009-01-28 17:07:03.0" UUID="024fde7d-3cfd-4e00-9423-3048e4c0317b" TEXT="Kumyk" ABBREVIATEDLABEL="kum" LABEL="kum" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="68" CREATED="2009-01-28 17:07:03.0" UUID="4c6efd11-e0fe-49f4-9c8b-03413b32bb69" TEXT="Geez" ABBREVIATEDLABEL="gez" LABEL="gez" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="69" CREATED="2009-01-28 17:07:03.0" UUID="d40eec4e-a4e2-4145-8039-d6ee901d589f" TEXT="Bantu (Other)" ABBREVIATEDLABEL="bnt" LABEL="bnt"/>\r
-  <REPRESENTATION ID="70" CREATED="2009-01-28 17:07:03.0" UUID="583ef87e-254e-4e6f-8727-cdd70429092c" TEXT="Himachali" ABBREVIATEDLABEL="him" LABEL="him" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="71" CREATED="2009-01-28 17:07:03.0" UUID="31063485-6dbd-41b6-8d86-3f3a2e143875" TEXT="Makasar" ABBREVIATEDLABEL="mak" LABEL="mak" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="72" CREATED="2009-01-28 17:07:03.0" UUID="897b7888-25ee-4313-b3ed-260f8ef6f068" TEXT="Bikol" ABBREVIATEDLABEL="bik" LABEL="bik"/>\r
-  <REPRESENTATION ID="73" CREATED="2009-01-28 17:07:03.0" UUID="dbd64180-cc16-4c38-a190-cf95fb14cc26" TEXT="Mossi" ABBREVIATEDLABEL="mos" LABEL="mos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="74" CREATED="2009-01-28 17:07:03.0" UUID="5421e1a5-b734-46f1-8033-4cec7b743993" TEXT="Bhojpuri" ABBREVIATEDLABEL="bho" LABEL="bho"/>\r
-  <REPRESENTATION ID="75" CREATED="2009-01-28 17:07:03.0" UUID="c44172e6-99b7-4610-8d79-e232db9ae660" TEXT="French, Middle (ca.1400-1600)" ABBREVIATEDLABEL="frm" LABEL="frm" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="76" CREATED="2009-01-28 17:07:03.0" UUID="d5508535-09a3-4f50-898b-7cf1214b94d3" TEXT="Occitan (post 1500); Provençal" ABBREVIATEDLABEL="oci" LABEL="oci" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="77" CREATED="2009-01-28 17:07:03.0" UUID="0163836b-7d2a-440c-bc25-fef808fa5964" TEXT="Tigrinya" ABBREVIATEDLABEL="tir" LABEL="tir" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="78" CREATED="2009-01-28 17:07:03.0" UUID="548729e4-7e50-4434-ad03-0de593de42ec" TEXT="Judeo-Persian" ABBREVIATEDLABEL="jpr" LABEL="jpr" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="79" CREATED="2009-01-28 17:07:03.0" UUID="82dde4bd-2162-4515-bd82-60aa217041e9" TEXT="Pushto" ABBREVIATEDLABEL="pus" LABEL="pus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="80" CREATED="2009-01-28 17:07:03.0" UUID="fe6b1436-9dbf-40ca-a054-7e61f968eb80" TEXT="Aragonese" ABBREVIATEDLABEL="arg" LABEL="arg"/>\r
-  <REPRESENTATION ID="81" CREATED="2009-01-28 17:07:03.0" UUID="91497c8a-f681-4ac6-8a71-53250892ad04" TEXT="Greek, Modern (1453-)" ABBREVIATEDLABEL="gre" LABEL="gre" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="82" CREATED="2009-01-28 17:07:03.0" UUID="499ea967-8a8c-48eb-9074-169ea22067ab" TEXT="Kazakh" ABBREVIATEDLABEL="kaz" LABEL="kaz" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="83" CREATED="2009-01-28 17:07:03.0" UUID="218671ed-79d3-4670-8479-a7923bbba7a5" TEXT="Zhuang; Chuang" ABBREVIATEDLABEL="zha" LABEL="zha" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="84" CREATED="2009-01-28 17:07:03.0" UUID="eca66b5f-9850-4258-968d-d0af047df6df" TEXT="Crimean Tatar; Crimean Turkish" ABBREVIATEDLABEL="crh" LABEL="crh"/>\r
-  <REPRESENTATION ID="85" CREATED="2009-01-28 17:07:03.0" UUID="307e2831-26c2-4937-89d5-de870aacfb8b" TEXT="Semitic (Other)" ABBREVIATEDLABEL="sem" LABEL="sem" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="86" CREATED="2009-01-28 17:07:03.0" UUID="800d367e-5bc4-4c8c-acf5-8fbe5cb982db" TEXT="Artificial (Other)" ABBREVIATEDLABEL="art" LABEL="art"/>\r
-  <REPRESENTATION ID="87" CREATED="2009-01-28 17:07:03.0" UUID="c107f6cd-73ee-4f25-a72c-348dee2fab0d" TEXT="Lao" ABBREVIATEDLABEL="lao" LABEL="lao" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="88" CREATED="2009-01-28 17:07:03.0" UUID="332f22ab-6920-4032-8d75-57a63cfc84f7" TEXT="Vietnamese" ABBREVIATEDLABEL="vie" LABEL="vie" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="89" CREATED="2009-01-28 17:07:03.0" UUID="907c34dd-bc6b-4761-b9dd-22affda4594d" TEXT="Marathi" ABBREVIATEDLABEL="mar" LABEL="mar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="90" CREATED="2009-01-28 17:07:03.0" UUID="50ef8dce-3e3e-4ce7-90f5-5cfcbd6936a0" TEXT="Yakut" ABBREVIATEDLABEL="sah" LABEL="sah" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="91" CREATED="2009-01-28 17:07:03.0" UUID="d6b082ec-61be-4566-8e33-c1a26528e7ef" TEXT="Venda" ABBREVIATEDLABEL="ven" LABEL="ven" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="92" CREATED="2009-01-28 17:07:03.0" UUID="32c33b92-d3f7-4527-b520-93f9d840c9d7" TEXT="Sundanese" ABBREVIATEDLABEL="sun" LABEL="sun" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="93" CREATED="2009-01-28 17:07:03.0" UUID="fe1c1ee3-98c2-4ad7-8f94-a71d0f4dd160" TEXT="Bambara" ABBREVIATEDLABEL="bam" LABEL="bam"/>\r
-  <REPRESENTATION ID="94" CREATED="2009-01-28 17:07:03.0" UUID="dd196264-c9ed-4886-921d-94ee877e4d98" TEXT="Kongo" ABBREVIATEDLABEL="kon" LABEL="kon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="95" CREATED="2009-01-28 17:07:03.0" UUID="4013901e-6ea4-4764-a07d-450566592048" TEXT="Austronesian (Other)" ABBREVIATEDLABEL="map" LABEL="map" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="96" CREATED="2009-01-28 17:07:03.0" UUID="5659e92e-1235-43a5-9f80-964c5246d263" TEXT="Tuvalu" ABBREVIATEDLABEL="tvl" LABEL="tvl" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="97" CREATED="2009-01-28 17:07:03.0" UUID="c0163a72-c4ae-40f7-9f59-a41d0fa0695d" TEXT="Rajasthani" ABBREVIATEDLABEL="raj" LABEL="raj" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="98" CREATED="2009-01-28 17:07:03.0" UUID="b3fd08ba-dbcb-46fe-9ed7-e5a9fb3d00da" TEXT="Basque" ABBREVIATEDLABEL="baq" LABEL="baq"/>\r
-  <REPRESENTATION ID="99" CREATED="2009-01-28 17:07:03.0" UUID="040cdbd7-2a9b-4397-899e-08f29b5e3665" TEXT="Kirghiz; Kyrgyz" ABBREVIATEDLABEL="kir" LABEL="kir" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="100" CREATED="2009-01-28 17:07:03.0" UUID="848d5418-d536-419b-a08c-6129f8ff36f5" TEXT="Abkhazian" ABBREVIATEDLABEL="abk" LABEL="abk"/>\r
-  <REPRESENTATION ID="101" CREATED="2009-01-28 17:07:03.0" UUID="70377587-d456-456d-b9ee-1937257d2cb8" TEXT="BokmÃ¥l, Norwegian; Norwegian BokmÃ¥l" ABBREVIATEDLABEL="nob" LABEL="nob" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="102" CREATED="2009-01-28 17:07:03.0" UUID="cf0a772c-4257-4ca3-b7c4-8218d34d52f4" TEXT="Telugu" ABBREVIATEDLABEL="tel" LABEL="tel" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="103" CREATED="2009-01-28 17:07:03.0" UUID="32d4f27f-5fc5-4148-a513-c4d0fb8dd8e6" TEXT="Sandawe" ABBREVIATEDLABEL="sad" LABEL="sad" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="104" CREATED="2009-01-28 17:07:03.0" UUID="2ae16eb9-b7e6-4591-ace5-26f304457e9d" TEXT="Sanskrit" ABBREVIATEDLABEL="san" LABEL="san" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="105" CREATED="2009-01-28 17:07:03.0" UUID="1cf215a0-7586-4245-8992-d8321bf3ab5d" TEXT="Karachay-Balkar" ABBREVIATEDLABEL="krc" LABEL="krc" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="106" CREATED="2009-01-28 17:07:03.0" UUID="e2c9c2fc-7c5a-481d-be9a-276f84baa021" TEXT="Papiamento" ABBREVIATEDLABEL="pap" LABEL="pap" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="107" CREATED="2009-01-28 17:07:03.0" UUID="e8d885be-7cef-4440-80cd-600da1025ff9" TEXT="Tetum" ABBREVIATEDLABEL="tet" LABEL="tet" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="108" CREATED="2009-01-28 17:07:03.0" UUID="4f2562f6-e602-4315-9abf-2224345b78de" TEXT="Nahuatl languages" ABBREVIATEDLABEL="nah" LABEL="nah" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="109" CREATED="2009-01-28 17:07:03.0" UUID="e9cb9370-1f52-407d-ae3b-99199b76de61" TEXT="Rarotongan; Cook Islands Maori" ABBREVIATEDLABEL="rar" LABEL="rar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="110" CREATED="2009-01-28 17:07:03.0" UUID="33a1e46f-93cb-434d-8aee-f7eee6a24e94" TEXT="Pahlavi" ABBREVIATEDLABEL="pal" LABEL="pal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="111" CREATED="2009-01-28 17:07:03.0" UUID="c4cebd64-8c4a-4a4f-bb9c-df7dd3e7d257" TEXT="Moldavian" ABBREVIATEDLABEL="mol" LABEL="mol" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="112" CREATED="2009-01-28 17:07:03.0" UUID="0a9eed53-603b-4075-83b6-70623a4e0180" TEXT="Blissymbols; Blissymbolics; Bliss" ABBREVIATEDLABEL="zbl" LABEL="zbl" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="113" CREATED="2009-01-28 17:07:03.0" UUID="21b46ad8-7544-46bf-826a-4694ee46ce1f" TEXT="Corsican" ABBREVIATEDLABEL="cos" LABEL="cos"/>\r
-  <REPRESENTATION ID="114" CREATED="2009-01-28 17:07:03.0" UUID="814809ae-3198-4eab-ad1f-ee1a9d6938ad" TEXT="Sichuan Yi; Nuosu" ABBREVIATEDLABEL="iii" LABEL="iii" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="115" CREATED="2009-01-28 17:07:03.0" UUID="ba443123-5f9a-4fcc-ba71-158a44588566" TEXT="Avaric" ABBREVIATEDLABEL="ava" LABEL="ava"/>\r
-  <REPRESENTATION ID="116" CREATED="2009-01-28 17:07:03.0" UUID="8bf38c7e-93aa-4213-a4a1-db8e322a15e4" TEXT="Iranian (Other)" ABBREVIATEDLABEL="ira" LABEL="ira" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="117" CREATED="2009-01-28 17:07:03.0" UUID="4a8cfa3c-83b7-4b6d-92a3-b3483d2f4972" TEXT="Elamite" ABBREVIATEDLABEL="elx" LABEL="elx"/>\r
-  <REPRESENTATION ID="118" CREATED="2009-01-28 17:07:03.0" UUID="3e1e22d0-5784-4a1d-8334-bba32e2d3118" TEXT="Cree" ABBREVIATEDLABEL="cre" LABEL="cre"/>\r
-  <REPRESENTATION ID="119" CREATED="2009-01-28 17:07:03.0" UUID="92990628-6ec6-4610-b4c1-01e1920600f3" TEXT="Chuvash" ABBREVIATEDLABEL="chv" LABEL="chv"/>\r
-  <REPRESENTATION ID="120" CREATED="2009-01-28 17:07:03.0" UUID="732c7009-e3a0-42a7-a302-d33cb74bf087" TEXT="Bengali" ABBREVIATEDLABEL="ben" LABEL="ben"/>\r
-  <REPRESENTATION ID="121" CREATED="2009-01-28 17:07:03.0" UUID="25d29514-425d-4e4d-8f11-8c744dd355a9" TEXT="Lunda" ABBREVIATEDLABEL="lun" LABEL="lun" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="122" CREATED="2009-01-28 17:07:03.0" UUID="ba33499e-2f8d-4f36-8a4a-5d9b8df7ea6f" TEXT="Kabardian" ABBREVIATEDLABEL="kbd" LABEL="kbd" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="123" CREATED="2009-01-28 17:07:03.0" UUID="70bacd35-7c75-4f4b-9107-0415e304fe25" TEXT="Samoan" ABBREVIATEDLABEL="smo" LABEL="smo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="124" CREATED="2009-01-28 17:07:03.0" UUID="9395cb0a-54a2-4019-9c9c-56c00ad8f241" TEXT="Haitian; Haitian Creole" ABBREVIATEDLABEL="hat" LABEL="hat" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="125" CREATED="2009-01-28 17:07:03.0" UUID="3c7bf688-3bcd-43ff-bd76-a824be059228" TEXT="Land Dayak languages" ABBREVIATEDLABEL="day" LABEL="day"/>\r
-  <REPRESENTATION ID="126" CREATED="2009-01-28 17:07:03.0" UUID="4b9d11e7-2f1e-4fd6-a3c7-ee7aaa7e7377" TEXT="Delaware" ABBREVIATEDLABEL="del" LABEL="del"/>\r
-  <REPRESENTATION ID="127" CREATED="2009-01-28 17:07:03.0" UUID="4db60904-ea10-4dd2-8aff-44415eb2623a" TEXT="Vai" ABBREVIATEDLABEL="vai" LABEL="vai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="128" CREATED="2009-01-28 17:07:03.0" UUID="a8806284-295e-4dc5-bde7-11a77feaba0c" TEXT="Kpelle" ABBREVIATEDLABEL="kpe" LABEL="kpe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="129" CREATED="2009-01-28 17:07:03.0" UUID="5f341aa2-6fb1-4ef8-a243-f18a8354f3e6" TEXT="Dutch; Flemish" ABBREVIATEDLABEL="dut" LABEL="dut"/>\r
-  <REPRESENTATION ID="130" CREATED="2009-01-28 17:07:03.0" UUID="487d9bac-c446-4829-9666-2e89becef898" TEXT="Zulu" ABBREVIATEDLABEL="zul" LABEL="zul" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="131" CREATED="2009-01-28 17:07:03.0" UUID="29e807a9-6bfb-4f61-b67a-fc85fd4d8f68" TEXT="Egyptian (Ancient)" ABBREVIATEDLABEL="egy" LABEL="egy"/>\r
-  <REPRESENTATION ID="132" CREATED="2009-01-28 17:07:03.0" UUID="732222cd-b4b3-4855-adfa-50eb68c87603" TEXT="Indo-European (Other)" ABBREVIATEDLABEL="ine" LABEL="ine" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="133" CREATED="2009-01-28 17:07:03.0" UUID="2a41f680-0ecb-4f96-842b-040910c94e00" TEXT="Sign Languages" ABBREVIATEDLABEL="sgn" LABEL="sgn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="134" CREATED="2009-01-28 17:07:03.0" UUID="016fb169-3266-4122-b912-0c7840a229b7" TEXT="Gayo" ABBREVIATEDLABEL="gay" LABEL="gay" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="135" CREATED="2009-01-28 17:07:03.0" UUID="4bbfdbbb-83d1-4b00-b7d2-f5a17f00757d" TEXT="Tereno" ABBREVIATEDLABEL="ter" LABEL="ter" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="136" CREATED="2009-01-28 17:07:03.0" UUID="36bd41a8-93ff-4b01-b14a-0fb4644b18db" TEXT="Dutch, Middle (ca.1050-1350)" ABBREVIATEDLABEL="dum" LABEL="dum"/>\r
-  <REPRESENTATION ID="137" CREATED="2009-01-28 17:07:03.0" UUID="7d153b05-eac8-4c40-8824-d8bf39fb944b" TEXT="English, Middle (1100-1500)" ABBREVIATEDLABEL="enm" LABEL="enm" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="138" CREATED="2009-01-28 17:07:03.0" UUID="a3ceb30d-c6a1-4d09-a594-0cdbef14d13c" TEXT="Fijian" ABBREVIATEDLABEL="fij" LABEL="fij" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="139" CREATED="2009-01-28 17:07:03.0" UUID="34ae0409-54df-4ac6-9550-378fcbe031a2" TEXT="Dravidian (Other)" ABBREVIATEDLABEL="dra" LABEL="dra"/>\r
-  <REPRESENTATION ID="140" CREATED="2009-01-28 17:07:03.0" UUID="8d00f839-aaf2-4094-83ea-52cc92fef553" TEXT="Cornish" ABBREVIATEDLABEL="cor" LABEL="cor"/>\r
-  <REPRESENTATION ID="141" CREATED="2009-01-28 17:07:03.0" UUID="c92fa61f-60d3-4fff-aab8-b3fb22a277ea" TEXT="Ga" ABBREVIATEDLABEL="gaa" LABEL="gaa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="142" CREATED="2009-01-28 17:07:03.0" UUID="f0c12312-349f-4b04-ab22-a3a6e57eec36" TEXT="Cushitic (Other)" ABBREVIATEDLABEL="cus" LABEL="cus"/>\r
-  <REPRESENTATION ID="143" CREATED="2009-01-28 17:07:03.0" UUID="45d8ff40-ccbf-4829-adbc-8dbc99fa7a97" TEXT="Upper Sorbian" ABBREVIATEDLABEL="hsb" LABEL="hsb" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="144" CREATED="2009-01-28 17:07:03.0" UUID="a2d69a18-cae2-49ae-bc47-74b73158ec8d" TEXT="Kamba" ABBREVIATEDLABEL="kam" LABEL="kam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="145" CREATED="2009-01-28 17:07:03.0" UUID="fc710569-a6c0-4b63-884d-574a40278877" TEXT="Masai" ABBREVIATEDLABEL="mas" LABEL="mas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="146" CREATED="2009-01-28 17:07:03.0" UUID="6bd2a608-0a61-4669-bc9b-f007d9af1c58" TEXT="Volapük" ABBREVIATEDLABEL="vol" LABEL="vol" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="147" CREATED="2009-01-28 17:07:03.0" UUID="ecb1f7bd-444e-4adc-bc33-74c6204e92fb" TEXT="Macedonian" ABBREVIATEDLABEL="mac" LABEL="mac" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="148" CREATED="2009-01-28 17:07:03.0" UUID="8605dfdf-c8b0-4dd0-b25d-f6bee30d0eac" TEXT="Swahili" ABBREVIATEDLABEL="swa" LABEL="swa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="149" CREATED="2009-01-28 17:07:03.0" UUID="748eadec-74a9-4832-bd7e-5c865c608303" TEXT="Maithili" ABBREVIATEDLABEL="mai" LABEL="mai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="150" CREATED="2009-01-28 17:07:03.0" UUID="8fc79b25-af4a-43b6-930f-ae313a9cce2f" TEXT="Bamileke languages" ABBREVIATEDLABEL="bai" LABEL="bai"/>\r
-  <REPRESENTATION ID="151" CREATED="2009-01-28 17:07:03.0" UUID="d950437d-2f9f-4bbc-8694-6d927afbfdc6" TEXT="Navajo; Navaho" ABBREVIATEDLABEL="nav" LABEL="nav" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="152" CREATED="2009-01-28 17:07:03.0" UUID="07be510c-064e-4626-92dd-3269f45388d1" TEXT="Yiddish" ABBREVIATEDLABEL="yid" LABEL="yid" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="153" CREATED="2009-01-28 17:07:03.0" UUID="d7662e53-d52d-4048-b06f-1e04fd174c73" TEXT="Afrihili" ABBREVIATEDLABEL="afh" LABEL="afh"/>\r
-  <REPRESENTATION ID="154" CREATED="2009-01-28 17:07:03.0" UUID="f0283026-e739-4d13-b1c7-5f3d86dd6835" TEXT="Manchu" ABBREVIATEDLABEL="mnc" LABEL="mnc" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="155" CREATED="2009-01-28 17:07:03.0" UUID="fc2ed2d8-5425-47ce-aa05-2ba223516f01" TEXT="Chibcha" ABBREVIATEDLABEL="chb" LABEL="chb"/>\r
-  <REPRESENTATION ID="156" CREATED="2009-01-28 17:07:03.0" UUID="17df2d78-c21e-40af-b77c-191a5b254405" TEXT="Mandingo" ABBREVIATEDLABEL="man" LABEL="man" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="157" CREATED="2009-01-28 17:07:03.0" UUID="107302b8-8329-4490-9516-de3043c099b2" TEXT="Tahitian" ABBREVIATEDLABEL="tah" LABEL="tah" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="158" CREATED="2009-01-28 17:07:03.0" UUID="39765496-4749-427f-b7e2-215dad637672" TEXT="Zenaga" ABBREVIATEDLABEL="zen" LABEL="zen" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="159" CREATED="2009-01-28 17:07:03.0" UUID="bb18842d-6120-4862-946c-c0df2543ff00" TEXT="Pampanga; Kapampangan" ABBREVIATEDLABEL="pam" LABEL="pam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="160" CREATED="2009-01-28 17:07:03.0" UUID="50f044ad-1b1d-47a9-93b3-182d3e44aafc" TEXT="Dinka" ABBREVIATEDLABEL="din" LABEL="din"/>\r
-  <REPRESENTATION ID="161" CREATED="2009-01-28 17:07:03.0" UUID="c5b2d2e4-32fd-4322-aed2-c1d5e79d74a7" TEXT="Sumerian" ABBREVIATEDLABEL="sux" LABEL="sux" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="162" CREATED="2009-01-28 17:07:03.0" UUID="74e78c7b-cb41-4e95-8f8b-84fe61fba881" TEXT="Aleut" ABBREVIATEDLABEL="ale" LABEL="ale"/>\r
-  <REPRESENTATION ID="163" CREATED="2009-01-28 17:07:03.0" UUID="e61e11b8-5624-4494-96c1-04c10eccc3d6" TEXT="Fulah" ABBREVIATEDLABEL="ful" LABEL="ful" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="164" CREATED="2009-01-28 17:07:03.0" UUID="8601e71d-d4fd-48c5-9681-1cb5691ab505" TEXT="Adyghe; Adygei" ABBREVIATEDLABEL="ady" LABEL="ady"/>\r
-  <REPRESENTATION ID="165" CREATED="2009-01-28 17:07:03.0" UUID="1f1dd43a-ff7e-4ff6-9004-c1b54f96dd1e" TEXT="Dakota" ABBREVIATEDLABEL="dak" LABEL="dak"/>\r
-  <REPRESENTATION ID="166" CREATED="2009-01-28 17:07:03.0" UUID="fb1dc20e-5ede-44ad-ab55-6776527200b4" TEXT="Interlingue; Occidental" ABBREVIATEDLABEL="ile" LABEL="ile" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="167" CREATED="2009-01-28 17:07:03.0" UUID="ccdd9e4b-7a29-43bd-a095-85b9160bcddd" TEXT="Kuanyama; Kwanyama" ABBREVIATEDLABEL="kua" LABEL="kua" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="168" CREATED="2009-01-28 17:07:03.0" UUID="d30b7338-a754-40f0-a090-c22cb348652c" TEXT="Siouan languages" ABBREVIATEDLABEL="sio" LABEL="sio" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="169" CREATED="2009-01-28 17:07:03.0" UUID="1bdc9bfd-d2cc-404d-9db2-71188c7a1d5b" TEXT="Komi" ABBREVIATEDLABEL="kom" LABEL="kom" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="170" CREATED="2009-01-28 17:07:03.0" UUID="c8137329-186c-407d-b19d-8f167a9b99a0" TEXT="Osage" ABBREVIATEDLABEL="osa" LABEL="osa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="171" CREATED="2009-01-28 17:07:03.0" UUID="cafdf2fa-27b9-4ae9-82a9-9b9600328f81" TEXT="Lule Sami" ABBREVIATEDLABEL="smj" LABEL="smj" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="172" CREATED="2009-01-28 17:07:03.0" UUID="f30ffca6-6dd0-4aa7-a2b8-4fe3bf48a53b" TEXT="Marwari" ABBREVIATEDLABEL="mwr" LABEL="mwr" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="173" CREATED="2009-01-28 17:07:03.0" UUID="5e49c608-0f78-40f9-988d-ab9c40c7ad4d" TEXT="Persian" ABBREVIATEDLABEL="per" LABEL="per" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="174" CREATED="2009-01-28 17:07:03.0" UUID="17335dce-2ddf-401d-8700-b32f9861a28f" TEXT="Soninke" ABBREVIATEDLABEL="snk" LABEL="snk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="175" CREATED="2009-01-28 17:07:03.0" UUID="45ffc554-4950-4b5d-99b2-7cf44eb2406a" TEXT="Niger-Kordofanian (Other)" ABBREVIATEDLABEL="nic" LABEL="nic" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="176" CREATED="2009-01-28 17:07:03.0" UUID="7ee23338-f7f8-4158-bc58-050ed863c7fb" TEXT="Guarani" ABBREVIATEDLABEL="grn" LABEL="grn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="177" CREATED="2009-01-28 17:07:03.0" UUID="cd5a0be4-4c69-4e1f-9ccf-453240e0ccb1" TEXT="Nauru" ABBREVIATEDLABEL="nau" LABEL="nau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="178" CREATED="2009-01-28 17:07:03.0" UUID="e754705b-d6ce-42e9-9dbc-0f5c33f71276" TEXT="Nzima" ABBREVIATEDLABEL="nzi" LABEL="nzi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="179" CREATED="2009-01-28 17:07:03.0" UUID="ab728e2c-fbbe-4bf0-8105-9e5224f95c61" TEXT="Washo" ABBREVIATEDLABEL="was" LABEL="was" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="180" CREATED="2009-01-28 17:07:03.0" UUID="b104634f-1ecf-49ce-8016-b4b6f63f175d" TEXT="Skolt Sami" ABBREVIATEDLABEL="sms" LABEL="sms" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="181" CREATED="2009-01-28 17:07:03.0" UUID="45e3cdd2-9d48-446e-9515-65c7df9f4039" TEXT="Irish, Middle (900-1200)" ABBREVIATEDLABEL="mga" LABEL="mga" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="182" CREATED="2009-01-28 17:07:03.0" UUID="5ca11e8c-03a0-4e4e-ad75-4112d8ef115e" TEXT="Pohnpeian" ABBREVIATEDLABEL="pon" LABEL="pon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="183" CREATED="2009-01-28 17:07:03.0" UUID="69c8b564-7b26-468f-8793-d260cb89c8cc" TEXT="Salishan languages" ABBREVIATEDLABEL="sal" LABEL="sal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="184" CREATED="2009-01-28 17:07:03.0" UUID="c73a8201-fe14-40be-b434-28f93dbb16d6" TEXT="Gwich&apos;in" ABBREVIATEDLABEL="gwi" LABEL="gwi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="185" CREATED="2009-01-28 17:07:03.0" UUID="100fa46d-bbd6-4e6c-b157-3f811dd40a9e" TEXT="Rapanui" ABBREVIATEDLABEL="rap" LABEL="rap" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="186" CREATED="2009-01-28 17:07:03.0" UUID="f74e5b57-5bd7-4c35-898d-25c65935e7ef" TEXT="Ainu" ABBREVIATEDLABEL="ain" LABEL="ain"/>\r
-  <REPRESENTATION ID="187" CREATED="2009-01-28 17:07:03.0" UUID="7fb87697-e6d4-43da-8045-1c90dc5fd5dd" TEXT="Kara-Kalpak" ABBREVIATEDLABEL="kaa" LABEL="kaa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="188" CREATED="2009-01-28 17:07:03.0" UUID="86d0854a-3803-4b6d-9387-6a30324e7b58" TEXT="Akkadian" ABBREVIATEDLABEL="akk" LABEL="akk"/>\r
-  <REPRESENTATION ID="189" CREATED="2009-01-28 17:07:03.0" UUID="c2f0ef2c-c5a3-4fc7-93c6-8dcbab0c3466" TEXT="Finno-Ugrian (Other)" ABBREVIATEDLABEL="fiu" LABEL="fiu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="190" CREATED="2009-01-28 17:07:03.0" UUID="0bcb2302-2aac-4222-b301-856244be54b6" TEXT="Limburgan; Limburger; Limburgish" ABBREVIATEDLABEL="lim" LABEL="lim" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="191" CREATED="2009-01-28 17:07:03.0" UUID="0ec83e58-6882-459c-b041-abf9d6950ee3" TEXT="Mandar" ABBREVIATEDLABEL="mdr" LABEL="mdr" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="192" CREATED="2009-01-28 17:07:03.0" UUID="41de0fa0-d355-4a6c-9b93-943bca78160d" TEXT="No linguistic content" ABBREVIATEDLABEL="zxx" LABEL="zxx" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="193" CREATED="2009-01-28 17:07:03.0" UUID="c8a7ebe5-ec4e-438f-9eec-971d703991ca" TEXT="Kawi" ABBREVIATEDLABEL="kaw" LABEL="kaw" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="194" CREATED="2009-01-28 17:07:03.0" UUID="1474274e-5abf-4962-b222-feeb9b22d2d2" TEXT="Sinhala; Sinhalese" ABBREVIATEDLABEL="sin" LABEL="sin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="195" CREATED="2009-01-28 17:07:03.0" UUID="54da70a5-d382-4d27-a21f-b5328b26d2bb" TEXT="Marshallese" ABBREVIATEDLABEL="mah" LABEL="mah" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="196" CREATED="2009-01-28 17:07:03.0" UUID="b148cd7b-e89c-400b-b608-f6ad9722e1b6" TEXT="Ladino" ABBREVIATEDLABEL="lad" LABEL="lad" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="197" CREATED="2009-01-28 17:07:03.0" UUID="4e780440-28ba-4ba0-a8f5-7cf2eef40308" TEXT="Faroese" ABBREVIATEDLABEL="fao" LABEL="fao" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="198" CREATED="2009-01-28 17:07:03.0" UUID="49276cb5-025a-4a82-bf45-c4e2d1f37790" TEXT="Waray" ABBREVIATEDLABEL="war" LABEL="war" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="199" CREATED="2009-01-28 17:07:03.0" UUID="84ab4816-b7e5-4faf-8ed3-93bf0ea05363" TEXT="Altaic (Other)" ABBREVIATEDLABEL="tut" LABEL="tut" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="200" CREATED="2009-01-28 17:07:03.0" UUID="b2906095-2cd8-489f-a332-2b5624a7e66d" TEXT="Susu" ABBREVIATEDLABEL="sus" LABEL="sus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="201" CREATED="2009-01-28 17:07:03.0" UUID="ed57759e-7e93-4f60-affb-7f75872a2681" TEXT="Nyankole" ABBREVIATEDLABEL="nyn" LABEL="nyn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="202" CREATED="2009-01-28 17:07:03.0" UUID="8a5d0e56-a82f-4ab4-a29a-a7fda5a98e27" TEXT="Ndebele, South; South Ndebele" ABBREVIATEDLABEL="nbl" LABEL="nbl" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="203" CREATED="2009-01-28 17:07:03.0" UUID="7feb11d9-78f5-43f5-97b1-00bad0d96790" TEXT="Ijo languages" ABBREVIATEDLABEL="ijo" LABEL="ijo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="204" CREATED="2009-01-28 17:07:03.0" UUID="a38acebe-f714-4431-91d2-b5299d602e66" TEXT="Munda languages" ABBREVIATEDLABEL="mun" LABEL="mun" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="205" CREATED="2009-01-28 17:07:03.0" UUID="236d80af-c45d-43de-9843-4f4dc15c76f1" TEXT="Athapascan languages" ABBREVIATEDLABEL="ath" LABEL="ath"/>\r
-  <REPRESENTATION ID="206" CREATED="2009-01-28 17:07:03.0" UUID="fa50d9eb-b9ed-4508-9a5f-50136d86df99" TEXT="Avestan" ABBREVIATEDLABEL="ave" LABEL="ave"/>\r
-  <REPRESENTATION ID="207" CREATED="2009-01-28 17:07:03.0" UUID="418410c4-6687-4982-b556-df40c3f4a45b" TEXT="Sasak" ABBREVIATEDLABEL="sas" LABEL="sas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="208" CREATED="2009-01-28 17:07:03.0" UUID="231a5996-7a56-406c-8c66-5a23fc6d1424" TEXT="Classical Syriac" ABBREVIATEDLABEL="syc" LABEL="syc" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="209" CREATED="2009-01-28 17:07:03.0" UUID="eac0e0ee-94cf-4063-9cd4-2abc26394f88" TEXT="Apache languages" ABBREVIATEDLABEL="apa" LABEL="apa"/>\r
-  <REPRESENTATION ID="210" CREATED="2009-01-28 17:07:03.0" UUID="460074b1-dd21-40e4-853c-a6289620da5b" TEXT="Hausa" ABBREVIATEDLABEL="hau" LABEL="hau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="211" CREATED="2009-01-28 17:07:03.0" UUID="6d1825e2-7c09-4c6a-b995-f2f11eff5db3" TEXT="Low German; Low Saxon; German, Low; Saxon, Low" ABBREVIATEDLABEL="nds" LABEL="nds" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="212" CREATED="2009-01-28 17:07:03.0" UUID="fa46b935-5e17-4e6d-adb3-108886c4ffb9" TEXT="Tonga (Nyasa)" ABBREVIATEDLABEL="tog" LABEL="tog" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="213" CREATED="2009-01-28 17:07:03.0" UUID="702d696c-bab7-414c-8992-9ea17ecd36a0" TEXT="Divehi; Dhivehi; Maldivian" ABBREVIATEDLABEL="div" LABEL="div"/>\r
-  <REPRESENTATION ID="214" CREATED="2009-01-28 17:07:03.0" UUID="10279fbd-f0eb-4a7d-88ef-5fa5c40180c1" TEXT="Sorbian languages" ABBREVIATEDLABEL="wen" LABEL="wen" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="215" CREATED="2009-01-28 17:07:03.0" UUID="0a845ad5-21fe-4895-9661-ebdeae854a8f" TEXT="Sardinian" ABBREVIATEDLABEL="srd" LABEL="srd" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="216" CREATED="2009-01-28 17:07:03.0" UUID="0ece17f1-741f-4691-b25f-67f03202389f" TEXT="Albanian" ABBREVIATEDLABEL="alb" LABEL="alb"/>\r
-  <REPRESENTATION ID="217" CREATED="2009-01-28 17:07:03.0" UUID="838ba646-1d01-4800-b8f0-4d2683c23aa5" TEXT="Balinese" ABBREVIATEDLABEL="ban" LABEL="ban"/>\r
-  <REPRESENTATION ID="218" CREATED="2009-01-28 17:07:03.0" UUID="a576af61-782d-4bf6-9693-53d87d1cb09e" TEXT="Tumbuka" ABBREVIATEDLABEL="tum" LABEL="tum" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="219" CREATED="2009-01-28 17:07:03.0" UUID="25a0ef8e-28ea-4fa6-8d12-fca4e65661f6" TEXT="Maltese" ABBREVIATEDLABEL="mlt" LABEL="mlt" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="220" CREATED="2009-01-28 17:07:03.0" UUID="d521739f-a211-4cbb-8c5f-36440f49bc7c" TEXT="Hindi" ABBREVIATEDLABEL="hin" LABEL="hin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="221" CREATED="2009-01-28 17:07:03.0" UUID="c974d880-4fdb-46d4-bf37-d0f303081e36" TEXT="Achinese" ABBREVIATEDLABEL="ace" LABEL="ace"/>\r
-  <REPRESENTATION ID="222" CREATED="2009-01-28 17:07:03.0" UUID="04f8bba2-2774-427d-8dbb-a19915f80fdd" TEXT="Hebrew" ABBREVIATEDLABEL="heb" LABEL="heb" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="223" CREATED="2009-01-28 17:07:03.0" UUID="f928fdb6-677f-4537-9bca-04bfd3feb6a4" TEXT="Irish" ABBREVIATEDLABEL="gle" LABEL="gle" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="224" CREATED="2009-01-28 17:07:03.0" UUID="f2e334eb-fe26-4607-8a06-554887cef581" TEXT="Chinook jargon" ABBREVIATEDLABEL="chn" LABEL="chn"/>\r
-  <REPRESENTATION ID="225" CREATED="2009-01-28 17:07:03.0" UUID="4f16b1f5-293c-4892-9d2b-808c9cf5273c" TEXT="Scots" ABBREVIATEDLABEL="sco" LABEL="sco" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="226" CREATED="2009-01-28 17:07:03.0" UUID="5f9e6efb-a489-49f9-a8c1-22d5af366d92" TEXT="Norwegian" ABBREVIATEDLABEL="nor" LABEL="nor" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="227" CREATED="2009-01-28 17:07:03.0" UUID="a5b4de5e-e433-4f48-8273-15f1fdb347d3" TEXT="Tai (Other)" ABBREVIATEDLABEL="tai" LABEL="tai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="228" CREATED="2009-01-28 17:07:03.0" UUID="15dcedce-c676-4e71-b809-088ceb5ccb54" TEXT="Khasi" ABBREVIATEDLABEL="kha" LABEL="kha" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="229" CREATED="2009-01-28 17:07:03.0" UUID="edf44d46-bd82-41df-af43-4cf4cfbe770b" TEXT="Oriya" ABBREVIATEDLABEL="ori" LABEL="ori" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="230" CREATED="2009-01-28 17:07:03.0" UUID="75975b17-fcb1-4509-a786-831b5939fcf2" TEXT="Russian" ABBREVIATEDLABEL="rus" LABEL="rus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="231" CREATED="2009-01-28 17:07:03.0" UUID="08afeb64-1714-402f-bbec-a317155bc2da" TEXT="Azerbaijani" ABBREVIATEDLABEL="aze" LABEL="aze"/>\r
-  <REPRESENTATION ID="232" CREATED="2009-01-28 17:07:03.0" UUID="83f7e833-e075-4406-a22f-bde05de35818" TEXT="Acoli" ABBREVIATEDLABEL="ach" LABEL="ach"/>\r
-  <REPRESENTATION ID="233" CREATED="2009-01-28 17:07:03.0" UUID="6b527bc5-5a4a-4096-a28f-1e94464dbe7f" TEXT="Ganda" ABBREVIATEDLABEL="lug" LABEL="lug" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="234" CREATED="2009-01-28 17:07:03.0" UUID="a3533dcd-ab61-4ee1-bd54-7d1fc95a444f" TEXT="Portuguese" ABBREVIATEDLABEL="por" LABEL="por" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="235" CREATED="2009-01-28 17:07:03.0" UUID="b7678b5a-0bcf-4cde-93b2-6cdb9ed755b8" TEXT="Gbaya" ABBREVIATEDLABEL="gba" LABEL="gba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="236" CREATED="2009-01-28 17:07:03.0" UUID="56cd166c-bcc0-4cdf-8f05-94b9e34c99fe" TEXT="Ugaritic" ABBREVIATEDLABEL="uga" LABEL="uga" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="237" CREATED="2009-01-28 17:07:03.0" UUID="cb17b20f-2c92-41c3-9b8d-48045117d529" TEXT="Tsimshian" ABBREVIATEDLABEL="tsi" LABEL="tsi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="238" CREATED="2009-01-28 17:07:03.0" UUID="9d3db9cb-3641-43f7-90a9-f16d9fe1488d" TEXT="Malagasy" ABBREVIATEDLABEL="mlg" LABEL="mlg" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="239" CREATED="2009-01-28 17:07:03.0" UUID="02119a59-658c-4a79-9c29-fbcabaee3463" TEXT="Spanish; Castilian" ABBREVIATEDLABEL="spa" LABEL="spa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="240" CREATED="2009-01-28 17:07:03.0" UUID="51a36617-19e9-4744-8731-54c1f2f5d2f3" TEXT="Inari Sami" ABBREVIATEDLABEL="smn" LABEL="smn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="241" CREATED="2009-01-28 17:07:03.0" UUID="0ff2fe83-473a-4474-9318-6ceb3b84d054" TEXT="Armenian" ABBREVIATEDLABEL="arm" LABEL="arm"/>\r
-  <REPRESENTATION ID="242" CREATED="2009-01-28 17:07:03.0" UUID="7bb77bcb-d77f-4024-99c2-52c52b38cb5e" TEXT="Coptic" ABBREVIATEDLABEL="cop" LABEL="cop"/>\r
-  <REPRESENTATION ID="243" CREATED="2009-01-28 17:07:03.0" UUID="474e3e03-4b85-4065-90e6-d0b469e6b52e" TEXT="Igbo" ABBREVIATEDLABEL="ibo" LABEL="ibo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="244" CREATED="2009-01-28 17:07:03.0" UUID="c8698e8d-50f2-4a1b-a641-02153679e7e2" TEXT="Hiri Motu" ABBREVIATEDLABEL="hmo" LABEL="hmo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="245" CREATED="2009-01-28 17:07:03.0" UUID="868604d3-0d5a-42ec-ad75-0085dd05ff96" TEXT="Bihari" ABBREVIATEDLABEL="bih" LABEL="bih"/>\r
-  <REPRESENTATION ID="246" CREATED="2009-01-28 17:07:03.0" UUID="ac2555fd-5354-4023-b47b-893df1a510ca" TEXT="Grebo" ABBREVIATEDLABEL="grb" LABEL="grb" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="247" CREATED="2009-01-28 17:07:03.0" UUID="0047a62c-4ff7-47db-a36f-962392524213" TEXT="Duala" ABBREVIATEDLABEL="dua" LABEL="dua"/>\r
-  <REPRESENTATION ID="248" CREATED="2009-01-28 17:07:03.0" UUID="573f34a0-5b5b-4109-a3c2-f4c64ce4c41e" TEXT="Beja; Bedawiyet" ABBREVIATEDLABEL="bej" LABEL="bej"/>\r
-  <REPRESENTATION ID="249" CREATED="2009-01-28 17:07:03.0" UUID="655006c5-07f4-4ff3-ae8e-57d8ad0b64ba" TEXT="Xhosa" ABBREVIATEDLABEL="xho" LABEL="xho" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="250" CREATED="2009-01-28 17:07:03.0" UUID="3aab0971-9f9b-446a-a3e5-f00ed9ae2bcd" TEXT="Tiv" ABBREVIATEDLABEL="tiv" LABEL="tiv" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="251" CREATED="2009-01-28 17:07:03.0" UUID="bb953dfb-8cfa-41d5-ae40-2758a3826f31" TEXT="Walamo" ABBREVIATEDLABEL="wal" LABEL="wal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="252" CREATED="2009-01-28 17:07:03.0" UUID="8a41c5d8-ed42-4ecc-b54a-b128650ee462" TEXT="Creoles and pidgins (Other)" ABBREVIATEDLABEL="crp" LABEL="crp"/>\r
-  <REPRESENTATION ID="253" CREATED="2009-01-28 17:07:03.0" UUID="70ed0df5-4faa-42eb-9baa-d40f9adb8c56" TEXT="Lamba" ABBREVIATEDLABEL="lam" LABEL="lam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="254" CREATED="2009-01-28 17:07:03.0" UUID="37219b43-72c0-482a-9dbb-6f1f0b2cf724" TEXT="Serer" ABBREVIATEDLABEL="srr" LABEL="srr" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="255" CREATED="2009-01-28 17:07:03.0" UUID="536aac51-7aed-482a-a4a5-25d12d5d1271" TEXT="Ingush" ABBREVIATEDLABEL="inh" LABEL="inh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="256" CREATED="2009-01-28 17:07:03.0" UUID="fe1161e4-de3b-4253-b98d-621239662ad8" TEXT="Chamorro" ABBREVIATEDLABEL="cha" LABEL="cha"/>\r
-  <REPRESENTATION ID="257" CREATED="2009-01-28 17:07:03.0" UUID="8472d4a4-9dd2-4fc4-865d-f0c607ece391" TEXT="Judeo-Arabic" ABBREVIATEDLABEL="jrb" LABEL="jrb" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="258" CREATED="2009-01-28 17:07:03.0" UUID="3d158ef0-780f-476b-a01a-d8d39a10182a" TEXT="Dogrib" ABBREVIATEDLABEL="dgr" LABEL="dgr"/>\r
-  <REPRESENTATION ID="259" CREATED="2009-01-28 17:07:03.0" UUID="f23b8c9c-3a55-44bb-ada3-1da22b2e7f6a" TEXT="Slave (Athapascan)" ABBREVIATEDLABEL="den" LABEL="den"/>\r
-  <REPRESENTATION ID="260" CREATED="2009-01-28 17:07:03.0" UUID="2b133917-7743-4d33-881c-43597316c46f" TEXT="Undetermined" ABBREVIATEDLABEL="und" LABEL="und" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="261" CREATED="2009-01-28 17:07:03.0" UUID="a8b5e112-ae3b-43ec-a447-293def163144" TEXT="Twi" ABBREVIATEDLABEL="twi" LABEL="twi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="262" CREATED="2009-01-28 17:07:03.0" UUID="06c2e84d-c8d2-420a-b7f2-8a414165739f" TEXT="Zapotec" ABBREVIATEDLABEL="zap" LABEL="zap" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="263" CREATED="2009-01-28 17:07:03.0" UUID="58e87ad9-1bf3-49e7-97b3-7ebc0762e37a" TEXT="Mongolian" ABBREVIATEDLABEL="mon" LABEL="mon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="264" CREATED="2009-01-28 17:07:03.0" UUID="fac67f34-163a-46cd-86ac-45f136e1a7c8" TEXT="Classical Newari; Old Newari; Classical Nepal Bhasa" ABBREVIATEDLABEL="nwc" LABEL="nwc" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="265" CREATED="2009-01-28 17:07:03.0" UUID="5487d606-8dee-40e6-be18-22a511e62e36" TEXT="German, Old High (ca.750-1050)" ABBREVIATEDLABEL="goh" LABEL="goh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="266" CREATED="2009-01-28 17:07:03.0" UUID="8bb3cc5c-449e-4e67-99d8-d37b7ebf996d" TEXT="Kannada" ABBREVIATEDLABEL="kan" LABEL="kan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="267" CREATED="2009-01-28 17:07:03.0" UUID="153a9ba4-82b2-45c8-bf6b-ef50bb386a77" TEXT="Assamese" ABBREVIATEDLABEL="asm" LABEL="asm"/>\r
-  <REPRESENTATION ID="268" CREATED="2009-01-28 17:07:03.0" UUID="5a7365bf-55d8-48d6-810e-7725ac6c3591" TEXT="French, Old (842-ca.1400)" ABBREVIATEDLABEL="fro" LABEL="fro" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="269" CREATED="2009-01-28 17:07:03.0" UUID="419f8202-e037-4964-8ab9-e874e57542f2" TEXT="Polish" ABBREVIATEDLABEL="pol" LABEL="pol" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="270" CREATED="2009-01-28 17:07:03.0" UUID="6ec63138-0451-40ba-8a93-b3211b1cb096" TEXT="Adangme" ABBREVIATEDLABEL="ada" LABEL="ada"/>\r
-  <REPRESENTATION ID="271" CREATED="2009-01-28 17:07:03.0" UUID="891aa787-dfbc-449e-9493-c5f7e0790521" TEXT="Nogai" ABBREVIATEDLABEL="nog" LABEL="nog" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="272" CREATED="2009-01-28 17:07:03.0" UUID="bc0d2496-8de7-4d30-9904-175e60fae619" TEXT="Panjabi; Punjabi" ABBREVIATEDLABEL="pan" LABEL="pan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="273" CREATED="2009-01-28 17:07:03.0" UUID="e5851129-fb43-466e-8578-efc7671e1a7c" TEXT="Santali" ABBREVIATEDLABEL="sat" LABEL="sat" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="274" CREATED="2009-01-28 17:07:03.0" UUID="b31b0858-83ac-4b29-9d92-c3b55857dda3" TEXT="Votic" ABBREVIATEDLABEL="vot" LABEL="vot" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="275" CREATED="2009-01-28 17:07:03.0" UUID="ae31c295-752d-4869-a407-b0e9d30b9cbf" TEXT="Romansh" ABBREVIATEDLABEL="roh" LABEL="roh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="276" CREATED="2009-01-28 17:07:03.0" UUID="2a6c33e6-c7f3-4c05-9a4e-1648232b8795" TEXT="Hittite" ABBREVIATEDLABEL="hit" LABEL="hit" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="277" CREATED="2009-01-28 17:07:03.0" UUID="4c51aee8-d296-4760-9afa-0a9af3bc6d62" TEXT="Georgian" ABBREVIATEDLABEL="geo" LABEL="geo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="278" CREATED="2009-01-28 17:07:03.0" UUID="a6ea8221-a201-4289-8bd9-033b6430eae2" TEXT="Efik" ABBREVIATEDLABEL="efi" LABEL="efi"/>\r
-  <REPRESENTATION ID="279" CREATED="2009-01-28 17:07:03.0" UUID="f88c5800-3e65-4e61-a962-7ee0502e2a46" TEXT="Turkmen" ABBREVIATEDLABEL="tuk" LABEL="tuk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="280" CREATED="2009-01-28 17:07:03.0" UUID="863857ac-2ffc-41f4-b402-20a6646806ec" TEXT="Choctaw" ABBREVIATEDLABEL="cho" LABEL="cho"/>\r
-  <REPRESENTATION ID="281" CREATED="2009-01-28 17:07:03.0" UUID="caa98a8c-1980-47fb-b357-21619fbf721a" TEXT="Asturian; Bable; Leonese; Asturleonese" ABBREVIATEDLABEL="ast" LABEL="ast"/>\r
-  <REPRESENTATION ID="282" CREATED="2009-01-28 17:07:03.0" UUID="da477252-74dd-40c5-bd46-7ccdb52c6fc6" TEXT="Banda languages" ABBREVIATEDLABEL="bad" LABEL="bad"/>\r
-  <REPRESENTATION ID="283" CREATED="2009-01-28 17:07:03.0" UUID="1f8d1b61-c5e6-4096-b556-d45d2030b707" TEXT="German, Middle High (ca.1050-1500)" ABBREVIATEDLABEL="gmh" LABEL="gmh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="284" CREATED="2009-01-28 17:07:03.0" UUID="fcfa1b6f-041a-4abb-8d6c-5366b3490636" TEXT="Uzbek" ABBREVIATEDLABEL="uzb" LABEL="uzb" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="285" CREATED="2009-01-28 17:07:03.0" UUID="659d64bc-69a7-45a5-9e65-e15fb5edbbcd" TEXT="Fanti" ABBREVIATEDLABEL="fat" LABEL="fat" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="286" CREATED="2009-01-28 17:07:03.0" UUID="08db67eb-6783-4703-abd7-470d3835694e" TEXT="Malayalam" ABBREVIATEDLABEL="mal" LABEL="mal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="287" CREATED="2009-01-28 17:07:03.0" UUID="c07d8bdc-3a57-4cf4-831e-e1c4e1e57989" TEXT="Provençal, Old (to 1500)" ABBREVIATEDLABEL="pro" LABEL="pro" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="288" CREATED="2009-01-28 17:07:03.0" UUID="63682b8a-52bf-45c0-a2e2-2259d54b4afd" TEXT="Ewe" ABBREVIATEDLABEL="ewe" LABEL="ewe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="289" CREATED="2009-01-28 17:07:03.0" UUID="93093b83-c2d6-4353-b146-0f04784ed534" TEXT="Quechua" ABBREVIATEDLABEL="que" LABEL="que" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="290" CREATED="2009-01-28 17:07:03.0" UUID="4a741d76-ae44-4600-90f6-5b879c3f3991" TEXT="Bemba" ABBREVIATEDLABEL="bem" LABEL="bem"/>\r
-  <REPRESENTATION ID="291" CREATED="2009-01-28 17:07:03.0" UUID="a106bd72-9c4c-4773-a1aa-4e788421140e" TEXT="Luxembourgish; Letzeburgesch" ABBREVIATEDLABEL="ltz" LABEL="ltz" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="292" CREATED="2009-01-28 17:07:03.0" UUID="9541be15-e271-4f57-b48e-0f764cf3fc92" TEXT="Bosnian" ABBREVIATEDLABEL="bos" LABEL="bos"/>\r
-  <REPRESENTATION ID="293" CREATED="2009-01-28 17:07:03.0" UUID="c86d1a78-667d-4c8a-bad7-0eb210b9ecaf" TEXT="Slavic (Other)" ABBREVIATEDLABEL="sla" LABEL="sla" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="294" CREATED="2009-01-28 17:07:03.0" UUID="b9f8caf0-5ce1-47df-b08e-5f76bcdf705a" TEXT="Ojibwa" ABBREVIATEDLABEL="oji" LABEL="oji" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="295" CREATED="2009-01-28 17:07:03.0" UUID="cb2397d7-42c6-4628-a798-52ce4a3f8570" TEXT="Wolof" ABBREVIATEDLABEL="wol" LABEL="wol" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="296" CREATED="2009-01-28 17:07:03.0" UUID="739fac3b-8cd0-4b1b-b027-57849a561fa6" TEXT="Kashubian" ABBREVIATEDLABEL="csb" LABEL="csb"/>\r
-  <REPRESENTATION ID="297" CREATED="2009-01-28 17:07:03.0" UUID="a0dba0f7-bc0f-477a-b5c5-af70eebb759f" TEXT="Chinese" ABBREVIATEDLABEL="chi" LABEL="chi"/>\r
-  <REPRESENTATION ID="298" CREATED="2009-01-28 17:07:03.0" UUID="b2465e5f-97e3-4fb9-b5db-4dc23718805e" TEXT="Gaelic; Scottish Gaelic" ABBREVIATEDLABEL="gla" LABEL="gla" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="299" CREATED="2009-01-28 17:07:03.0" UUID="461a18c2-ffb7-4c52-9166-838a1ae609b0" TEXT="Malay" ABBREVIATEDLABEL="may" LABEL="may" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="300" CREATED="2009-01-28 17:07:03.0" UUID="f0e6b1ef-975f-44ee-9e63-ef3e3e48a7fd" TEXT="Songhai languages" ABBREVIATEDLABEL="son" LABEL="son" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="301" CREATED="2009-01-28 17:07:03.0" UUID="65405ac0-c425-4a4c-ad16-021cf026e78a" TEXT="Inupiaq" ABBREVIATEDLABEL="ipk" LABEL="ipk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="302" CREATED="2009-01-28 17:07:03.0" UUID="8dc38659-fc07-44e4-8523-acfc34c55d7d" TEXT="Otomian languages" ABBREVIATEDLABEL="oto" LABEL="oto" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="303" CREATED="2009-01-28 17:07:03.0" UUID="b7774f32-7f0f-4758-8389-04cc436263fe" TEXT="Creek" ABBREVIATEDLABEL="mus" LABEL="mus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="304" CREATED="2009-01-28 17:07:03.0" UUID="ef47d5b2-1f66-4af4-8e95-5af84949b42e" TEXT="Nyoro" ABBREVIATEDLABEL="nyo" LABEL="nyo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="305" CREATED="2009-01-28 17:07:03.0" UUID="ff86b01f-02a8-4223-9901-2a95c6a45163" TEXT="Chamic languages" ABBREVIATEDLABEL="cmc" LABEL="cmc"/>\r
-  <REPRESENTATION ID="306" CREATED="2009-01-28 17:07:03.0" UUID="155f188e-b287-4bfc-a036-aac32e0ab3b9" TEXT="Herero" ABBREVIATEDLABEL="her" LABEL="her" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="307" CREATED="2009-01-28 17:07:03.0" UUID="73f41915-e638-4eb0-914a-bd0340af0f6e" TEXT="Eastern Frisian" ABBREVIATEDLABEL="frs" LABEL="frs" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="308" CREATED="2009-01-28 17:07:03.0" UUID="a0b4833f-8353-4086-9d8d-d81b4b56a695" TEXT="Lahnda" ABBREVIATEDLABEL="lah" LABEL="lah" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="309" CREATED="2009-01-28 17:07:03.0" UUID="c68bdfe0-db1c-4cc1-9cd7-17930a79fc8a" TEXT="Creoles and pidgins, Portuguese-based (Other)" ABBREVIATEDLABEL="cpp" LABEL="cpp"/>\r
-  <REPRESENTATION ID="310" CREATED="2009-01-28 17:07:03.0" UUID="a9b85d6c-ec03-4a74-8dbd-c3084ec106e3" TEXT="Indic (Other)" ABBREVIATEDLABEL="inc" LABEL="inc" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="311" CREATED="2009-01-28 17:07:03.0" UUID="0ef79785-4e7d-4720-a1de-49a4b25293d8" TEXT="Persian, Old (ca.600-400 B.C.)" ABBREVIATEDLABEL="peo" LABEL="peo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="312" CREATED="2009-01-28 17:07:03.0" UUID="bddd41a3-8f6a-4d8a-957d-c7fb60394a77" TEXT="Tsonga" ABBREVIATEDLABEL="tso" LABEL="tso" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="313" CREATED="2009-01-28 17:07:03.0" UUID="a6187f33-7665-406d-86c7-661d588575b0" TEXT="Ewondo" ABBREVIATEDLABEL="ewo" LABEL="ewo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="314" CREATED="2009-01-28 17:07:03.0" UUID="29ff74ee-401a-4748-9d4f-991803f689ef" TEXT="Khotanese" ABBREVIATEDLABEL="kho" LABEL="kho" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="315" CREATED="2009-01-28 17:07:03.0" UUID="9b5dc1e9-f96a-4d86-b7e1-14d9c4130a4a" TEXT="Awadhi" ABBREVIATEDLABEL="awa" LABEL="awa"/>\r
-  <REPRESENTATION ID="316" CREATED="2009-01-28 17:07:03.0" UUID="5f6ec699-48c6-471f-a047-0c4e8eea631d" TEXT="Zuni" ABBREVIATEDLABEL="zun" LABEL="zun" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="317" CREATED="2009-01-28 17:07:03.0" UUID="9c83520c-a926-42ba-affa-83316d6180e2" TEXT="Serbian" ABBREVIATEDLABEL="scc" LABEL="scc" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="318" CREATED="2009-01-28 17:07:03.0" UUID="06caca4c-26b9-47db-9cf1-3e18361a822e" TEXT="Lingala" ABBREVIATEDLABEL="lin" LABEL="lin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="319" CREATED="2009-01-28 17:07:03.0" UUID="0f904f47-6d83-4786-8d0c-7f42e21f5f5e" TEXT="Western Frisian" ABBREVIATEDLABEL="fry" LABEL="fry" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="320" CREATED="2009-01-28 17:07:03.0" UUID="8883ef92-4091-4835-a8f5-6aec67d981d3" TEXT="Minangkabau" ABBREVIATEDLABEL="min" LABEL="min" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="321" CREATED="2009-01-28 17:07:03.0" UUID="dd1c9a10-14cc-440b-9a38-193a1006b1ca" TEXT="Niuean" ABBREVIATEDLABEL="niu" LABEL="niu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="322" CREATED="2009-01-28 17:07:03.0" UUID="02691ef6-11d5-4b8c-a9d3-d2dfa888403b" TEXT="Tok Pisin" ABBREVIATEDLABEL="tpi" LABEL="tpi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="323" CREATED="2009-01-28 17:07:03.0" UUID="f987c001-f97f-49a7-848e-dac7271baabc" TEXT="Belarusian" ABBREVIATEDLABEL="bel" LABEL="bel"/>\r
-  <REPRESENTATION ID="324" CREATED="2009-01-28 17:07:03.0" UUID="40fe76d9-74ae-41cc-920d-541b6391c74e" TEXT="Mende" ABBREVIATEDLABEL="men" LABEL="men" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="325" CREATED="2009-01-28 17:07:03.0" UUID="8c83e5a2-812e-4eb0-afd3-cc02a9546d19" TEXT="Filipino; Pilipino" ABBREVIATEDLABEL="fil" LABEL="fil" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="326" CREATED="2009-01-28 17:07:03.0" UUID="6633795f-e4b2-440f-9fde-3bd744d5cf60" TEXT="Central American Indian (Other)" ABBREVIATEDLABEL="cai" LABEL="cai"/>\r
-  <REPRESENTATION ID="327" CREATED="2009-01-28 17:07:03.0" UUID="208cf2d2-931c-4ffb-bd7d-0c9e305589cb" TEXT="Yao" ABBREVIATEDLABEL="yao" LABEL="yao" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="328" CREATED="2009-01-28 17:07:03.0" UUID="6946b6f6-e0eb-4501-9f0a-4aba10975f96" TEXT="Finnish" ABBREVIATEDLABEL="fin" LABEL="fin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="329" CREATED="2009-01-28 17:07:03.0" UUID="5fac0ca3-e888-4a55-9115-ad2fb91a9922" TEXT="Philippine (Other)" ABBREVIATEDLABEL="phi" LABEL="phi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="330" CREATED="2009-01-28 17:07:03.0" UUID="c6050567-6c8a-44dc-9ad8-db300e81284b" TEXT="Indonesian" ABBREVIATEDLABEL="ind" LABEL="ind" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="331" CREATED="2009-01-28 17:07:03.0" UUID="7a0f8f0d-0b9b-4795-b3cb-cf96db72cc3d" TEXT="Hmong" ABBREVIATEDLABEL="hmn" LABEL="hmn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="332" CREATED="2009-01-28 17:07:03.0" UUID="6df11613-168f-4b00-bc49-4b756809f6a7" TEXT="Nilo-Saharan (Other)" ABBREVIATEDLABEL="ssa" LABEL="ssa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="333" CREATED="2009-01-28 17:07:03.0" UUID="6e8847bb-baef-4a8a-a875-f4b563080d81" TEXT="Fon" ABBREVIATEDLABEL="fon" LABEL="fon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="334" CREATED="2009-01-28 17:07:03.0" UUID="0a4b75b7-bcb9-482b-9eb7-1606ce1bac9c" TEXT="Ndebele, North; North Ndebele" ABBREVIATEDLABEL="nde" LABEL="nde" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="335" CREATED="2009-01-28 17:07:03.0" UUID="3ffce664-0251-486d-9a3c-de756e8eae2e" TEXT="Kalmyk; Oirat" ABBREVIATEDLABEL="xal" LABEL="xal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="336" CREATED="2009-01-28 17:07:03.0" UUID="94f4ccd5-0fac-4198-869a-39ce7c2d29e0" TEXT="Akan" ABBREVIATEDLABEL="aka" LABEL="aka"/>\r
-  <REPRESENTATION ID="337" CREATED="2009-01-28 17:07:03.0" UUID="def33d40-f570-483d-a0f6-24c5f1bd2799" TEXT="Lower Sorbian" ABBREVIATEDLABEL="dsb" LABEL="dsb"/>\r
-  <REPRESENTATION ID="338" CREATED="2009-01-28 17:07:03.0" UUID="f631e661-db83-4ced-a79d-41efd529b4fd" TEXT="Pangasinan" ABBREVIATEDLABEL="pag" LABEL="pag" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="339" CREATED="2009-01-28 17:07:03.0" UUID="09814772-3b2a-4848-b860-49cd91357ca9" TEXT="Kurukh" ABBREVIATEDLABEL="kru" LABEL="kru" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="340" CREATED="2009-01-28 17:07:03.0" UUID="7349b9fb-db17-4d59-a71c-cd09bfc41d6a" TEXT="Hungarian" ABBREVIATEDLABEL="hun" LABEL="hun" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="341" CREATED="2009-01-28 17:07:03.0" UUID="75cb611f-98fb-4cb1-8cdf-195825cd0bc6" TEXT="Chechen" ABBREVIATEDLABEL="che" LABEL="che"/>\r
-  <REPRESENTATION ID="342" CREATED="2009-01-28 17:07:03.0" UUID="60533705-85c3-4e5b-978a-d9a56812ac65" TEXT="Romanian" ABBREVIATEDLABEL="rum" LABEL="rum" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="343" CREATED="2009-01-28 17:07:03.0" UUID="56bf5228-9aad-41a9-b3be-599a735cadce" TEXT="Samaritan Aramaic" ABBREVIATEDLABEL="sam" LABEL="sam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="344" CREATED="2009-01-28 17:07:03.0" UUID="12782e63-97a5-4f63-9b50-dc8bd2fcfafa" TEXT="Hawaiian" ABBREVIATEDLABEL="haw" LABEL="haw" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="345" CREATED="2009-01-28 17:07:03.0" UUID="8d9444ca-7aa1-464a-b1b5-17200cf77937" TEXT="Luiseno" ABBREVIATEDLABEL="lui" LABEL="lui" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="346" CREATED="2009-01-28 17:07:03.0" UUID="3fdc0000-4af1-47ed-8259-b3deaf2483d9" TEXT="Nias" ABBREVIATEDLABEL="nia" LABEL="nia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="347" CREATED="2009-01-28 17:07:03.0" UUID="33e6a332-5f38-4986-9e26-f0d4de7de2d4" TEXT="Latvian" ABBREVIATEDLABEL="lav" LABEL="lav" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="348" CREATED="2009-01-28 17:07:03.0" UUID="93131442-3b78-4e14-930a-4c80b25830e2" TEXT="Baluchi" ABBREVIATEDLABEL="bal" LABEL="bal"/>\r
-  <REPRESENTATION ID="349" CREATED="2009-01-28 17:07:03.0" UUID="60bf32b8-a1ed-4770-9b6e-59eeb7b0361a" TEXT="Hupa" ABBREVIATEDLABEL="hup" LABEL="hup" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="350" CREATED="2009-01-28 17:07:03.0" UUID="fe665a6d-226f-41a7-837d-d87c37bcd08b" TEXT="German" ABBREVIATEDLABEL="ger" LABEL="ger" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="351" CREATED="2009-01-28 17:07:03.0" UUID="f8835e92-dc8f-41f4-8ba2-ac41049f9c3b" TEXT="Caucasian (Other)" ABBREVIATEDLABEL="cau" LABEL="cau"/>\r
-  <REPRESENTATION ID="352" CREATED="2009-01-28 17:07:03.0" UUID="e65f254f-f5ac-4f01-ab35-c10dd030c254" TEXT="Cheyenne" ABBREVIATEDLABEL="chy" LABEL="chy"/>\r
-  <REPRESENTATION ID="353" CREATED="2009-01-28 17:07:03.0" UUID="fe51edcb-c527-48e8-bef2-7accabbd30fb" TEXT="Latin" ABBREVIATEDLABEL="lat" LABEL="lat" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="354" CREATED="2009-01-28 17:07:03.0" UUID="ded72ae6-f838-49df-897f-1da646861532" TEXT="Mon-Khmer (Other)" ABBREVIATEDLABEL="mkh" LABEL="mkh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="355" CREATED="2009-01-28 17:07:03.0" UUID="0d3ae7ea-282b-4d97-9d7c-7e5227170d62" TEXT="Australian languages" ABBREVIATEDLABEL="aus" LABEL="aus"/>\r
-  <REPRESENTATION ID="356" CREATED="2009-01-28 17:07:03.0" UUID="cd167727-b070-41cf-a900-7dbbbee84c52" TEXT="Welsh" ABBREVIATEDLABEL="wel" LABEL="wel" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="357" CREATED="2009-01-28 17:07:03.0" UUID="efbc9b2c-92d0-4413-b57e-7a51dc71b610" TEXT="Estonian" ABBREVIATEDLABEL="est" LABEL="est" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="358" CREATED="2009-01-28 17:07:03.0" UUID="74a8f5de-3c2a-469e-9761-076c7887e68c" TEXT="Luba-Lulua" ABBREVIATEDLABEL="lua" LABEL="lua" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="359" CREATED="2009-01-28 17:07:03.0" UUID="26573a67-f233-4701-8204-b98bbdfca6c6" TEXT="Norwegian Nynorsk; Nynorsk, Norwegian" ABBREVIATEDLABEL="nno" LABEL="nno" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="360" CREATED="2009-01-28 17:07:03.0" UUID="7b271296-91cc-4ef5-92d2-cc4f66293c48" TEXT="Neapolitan" ABBREVIATEDLABEL="nap" LABEL="nap" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="361" CREATED="2009-01-28 17:07:03.0" UUID="14be81b9-3821-4a6b-8391-10f65ef50f6c" TEXT="Udmurt" ABBREVIATEDLABEL="udm" LABEL="udm" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="362" CREATED="2009-01-28 17:07:03.0" UUID="6cdfe902-3343-4092-a512-e59d17556671" TEXT="Rundi" ABBREVIATEDLABEL="run" LABEL="run" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="363" CREATED="2009-01-28 17:07:03.0" UUID="d4aff07f-8d58-42d8-a324-883df973acbc" TEXT="Sukuma" ABBREVIATEDLABEL="suk" LABEL="suk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="364" CREATED="2009-01-28 17:07:03.0" UUID="678ea8ef-1c4e-4211-bedd-eb7789491c8a" TEXT="Sicilian" ABBREVIATEDLABEL="scn" LABEL="scn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="365" CREATED="2009-01-28 17:07:03.0" UUID="4d82d905-1ead-4d3b-8568-b56ee446a943" TEXT="Pedi; Sepedi; Northern Sotho" ABBREVIATEDLABEL="nso" LABEL="nso" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="366" CREATED="2009-01-28 17:07:03.0" UUID="3a80f231-ad63-4fc5-adc0-8b0244b66f8e" TEXT="Afro-Asiatic (Other)" ABBREVIATEDLABEL="afa" LABEL="afa"/>\r
-  <REPRESENTATION ID="367" CREATED="2009-01-28 17:07:03.0" UUID="8f37ee2f-af36-43af-b900-e9d802784daa" TEXT="Nubian languages" ABBREVIATEDLABEL="nub" LABEL="nub" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="368" CREATED="2009-01-28 17:07:03.0" UUID="b6efcc02-aee7-455f-89fc-58aacca8b565" TEXT="Chagatai" ABBREVIATEDLABEL="chg" LABEL="chg"/>\r
-  <REPRESENTATION ID="369" CREATED="2009-01-28 17:07:03.0" UUID="f8c3b912-c8b3-45af-bd1a-be06dd3ca85c" TEXT="English, Old (ca.450-1100)" ABBREVIATEDLABEL="ang" LABEL="ang"/>\r
-  <REPRESENTATION ID="370" CREATED="2009-01-28 17:07:03.0" UUID="4f730f26-a5cd-4a0a-8bf0-b965fa237489" TEXT="Afar" ABBREVIATEDLABEL="aar" LABEL="aar"/>\r
-  <REPRESENTATION ID="371" CREATED="2009-01-28 17:07:03.0" UUID="3d41bbf2-72ef-4065-8d70-1140ab6196c4" TEXT="Tokelau" ABBREVIATEDLABEL="tkl" LABEL="tkl" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="372" CREATED="2009-01-28 17:07:03.0" UUID="ef30d464-5de5-4ddd-b0cd-9166f2febaa0" TEXT="Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic" ABBREVIATEDLABEL="chu" LABEL="chu"/>\r
-  <REPRESENTATION ID="373" CREATED="2009-01-28 17:07:03.0" UUID="8363d63f-9dd8-4be3-adb5-d653bc9ff44f" TEXT="Norse, Old" ABBREVIATEDLABEL="non" LABEL="non" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="374" CREATED="2009-01-28 17:07:03.0" UUID="8f5e116e-2ba9-4eef-83a5-87968fbbdbe6" TEXT="Amharic" ABBREVIATEDLABEL="amh" LABEL="amh"/>\r
-  <REPRESENTATION ID="375" CREATED="2009-01-28 17:07:03.0" UUID="1b25f38e-f9e7-471a-9a90-20743a99caf5" TEXT="Croatian" ABBREVIATEDLABEL="scr" LABEL="scr" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="376" CREATED="2009-01-28 17:07:03.0" UUID="f4c2ca9b-64a2-43df-ba8d-1f41887c6780" TEXT="Tupi languages" ABBREVIATEDLABEL="tup" LABEL="tup" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="377" CREATED="2009-01-28 17:07:03.0" UUID="bee36062-3fa2-42de-8879-b83a04b4c464" TEXT="Sogdian" ABBREVIATEDLABEL="sog" LABEL="sog" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="378" CREATED="2009-01-28 17:07:03.0" UUID="6e320a6f-a925-444a-99b5-3b7c223b026d" TEXT="Buginese" ABBREVIATEDLABEL="bug" LABEL="bug"/>\r
-  <REPRESENTATION ID="379" CREATED="2009-01-28 17:07:03.0" UUID="ba18874e-1b35-48e3-a9c8-da072452b664" TEXT="Afrikaans" ABBREVIATEDLABEL="afr" LABEL="afr"/>\r
-  <REPRESENTATION ID="380" CREATED="2009-01-28 17:07:03.0" UUID="92a422c6-c72f-4df7-9304-61f3789ed147" TEXT="Breton" ABBREVIATEDLABEL="bre" LABEL="bre"/>\r
-  <REPRESENTATION ID="381" CREATED="2009-01-28 17:07:03.0" UUID="64c86654-6bd5-4946-b357-f73740e959f3" TEXT="Angika" ABBREVIATEDLABEL="anp" LABEL="anp"/>\r
-  <REPRESENTATION ID="382" CREATED="2009-01-28 17:07:03.0" UUID="e4c013a0-3ed7-4be9-808b-a17b6e3e7308" TEXT="Kikuyu; Gikuyu" ABBREVIATEDLABEL="kik" LABEL="kik" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="383" CREATED="2009-01-28 17:07:03.0" UUID="67a5c2e9-b373-44cc-b837-a21eea99e86f" TEXT="Algonquian languages" ABBREVIATEDLABEL="alg" LABEL="alg"/>\r
-  <REPRESENTATION ID="384" CREATED="2009-01-28 17:07:03.0" UUID="2d2a819c-e60b-4786-a0b5-7ebc5d8c06fe" TEXT="Tswana" ABBREVIATEDLABEL="tsn" LABEL="tsn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="385" CREATED="2009-01-28 17:07:03.0" UUID="df1c83fa-ec70-4a6c-8adf-74f35ab6d915" TEXT="French" ABBREVIATEDLABEL="fre" LABEL="fre" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="386" CREATED="2009-01-28 17:07:03.0" UUID="20b0dc59-5ebb-46d2-b04b-6c2ec5e3a124" TEXT="Tatar" ABBREVIATEDLABEL="tat" LABEL="tat" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="387" CREATED="2009-01-28 17:07:03.0" UUID="a02ebdfa-0b9b-4604-9f7c-20765c70788a" TEXT="Ndonga" ABBREVIATEDLABEL="ndo" LABEL="ndo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="388" CREATED="2009-01-28 17:07:03.0" UUID="6c502818-2d2c-4c3f-bf90-ba9d710a08b6" TEXT="Nyamwezi" ABBREVIATEDLABEL="nym" LABEL="nym" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="389" CREATED="2009-01-28 17:07:03.0" UUID="10f3ddd0-5142-4fb1-bcea-9d210bffc189" TEXT="Slovenian" ABBREVIATEDLABEL="slv" LABEL="slv" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="390" CREATED="2009-01-28 17:07:03.0" UUID="8a9ff301-9bfd-44bf-9102-d7d07761f590" TEXT="Tajik" ABBREVIATEDLABEL="tgk" LABEL="tgk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="391" CREATED="2009-01-28 17:07:03.0" UUID="bfac85a3-4e2a-45e3-8a4a-a1a7b0733b6d" TEXT="Interlingua (International Auxiliary Language Association)" ABBREVIATEDLABEL="ina" LABEL="ina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="392" CREATED="2009-01-28 17:07:03.0" UUID="98c3e643-679b-44e5-a34d-3658953d1496" TEXT="Haida" ABBREVIATEDLABEL="hai" LABEL="hai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="393" CREATED="2009-01-28 17:07:03.0" UUID="c71b3223-58c6-4829-8420-ccb3ebd3bcaa" TEXT="Northern Sami" ABBREVIATEDLABEL="sme" LABEL="sme" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="394" CREATED="2009-01-28 17:07:03.0" UUID="7f76dc61-96ca-42e2-8d3b-6eb2fe05a1f4" TEXT="Germanic (Other)" ABBREVIATEDLABEL="gem" LABEL="gem" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="395" CREATED="2009-01-28 17:07:03.0" UUID="a0efa073-bf87-44c0-9f63-2f89e0ccb551" TEXT="Walloon" ABBREVIATEDLABEL="wln" LABEL="wln" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="396" CREATED="2009-01-28 17:07:03.0" UUID="a9b74d50-5dba-475a-88f6-98bcd90a2b36" TEXT="Batak languages" ABBREVIATEDLABEL="btk" LABEL="btk"/>\r
-  <REPRESENTATION ID="397" CREATED="2009-01-28 17:07:03.0" UUID="f086794b-0536-40d7-8174-70031640d24f" TEXT="Iroquoian languages" ABBREVIATEDLABEL="iro" LABEL="iro" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="398" CREATED="2009-01-28 17:07:03.0" UUID="fbd7d836-73ec-4a5c-a56e-9e9ea3febc7c" TEXT="Sranan Tongo" ABBREVIATEDLABEL="srn" LABEL="srn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="399" CREATED="2009-01-28 17:07:03.0" UUID="a5b921a5-9c11-4ab1-872a-c4a240418ebe" TEXT="Kashmiri" ABBREVIATEDLABEL="kas" LABEL="kas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="400" CREATED="2009-01-28 17:07:03.0" UUID="2213caf0-fead-4404-81c6-4e39927f7744" TEXT="Arabic" ABBREVIATEDLABEL="ara" LABEL="ara"/>\r
-  <REPRESENTATION ID="401" CREATED="2009-01-28 17:07:03.0" UUID="b161f8dc-0a9c-4ef1-bbbc-636ee00db374" TEXT="Kimbundu" ABBREVIATEDLABEL="kmb" LABEL="kmb" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="402" CREATED="2009-01-28 17:07:03.0" UUID="81c5eb7a-9b5d-4276-9f13-446ee36bf788" TEXT="Cebuano" ABBREVIATEDLABEL="ceb" LABEL="ceb"/>\r
-  <REPRESENTATION ID="403" CREATED="2009-01-28 17:07:03.0" UUID="5dc539fb-82c7-415f-84f1-7246acc4ee0a" TEXT="Manipuri" ABBREVIATEDLABEL="mni" LABEL="mni" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="404" CREATED="2009-01-28 17:07:03.0" UUID="69f3d284-0d64-41e5-b658-189c32f9b0f0" TEXT="Swedish" ABBREVIATEDLABEL="swe" LABEL="swe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="405" CREATED="2009-01-28 17:07:03.0" UUID="6793220a-c1c9-4ed2-a7b3-666861fd635a" TEXT="Basa" ABBREVIATEDLABEL="bas" LABEL="bas"/>\r
-  <REPRESENTATION ID="406" CREATED="2009-01-28 17:07:03.0" UUID="f0bc2479-3d83-4630-9c64-885a43a51a7d" TEXT="Kosraean" ABBREVIATEDLABEL="kos" LABEL="kos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="407" CREATED="2009-01-28 17:07:03.0" UUID="9e41af83-648e-4df7-a361-def3d758b806" TEXT="English" ABBREVIATEDLABEL="eng" LABEL="eng" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="408" CREATED="2009-01-28 17:07:03.0" UUID="04b8a154-f697-4d14-919b-890be4ac40d5" TEXT="Pali" ABBREVIATEDLABEL="pli" LABEL="pli" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="409" CREATED="2009-01-28 17:07:03.0" UUID="c0ca60bc-eea4-4135-8477-bebb2c9e341f" TEXT="Czech" ABBREVIATEDLABEL="cze" LABEL="cze"/>\r
-  <REPRESENTATION ID="410" CREATED="2009-01-28 17:07:03.0" UUID="e8cab2f0-7f7a-41f3-968a-90766d1d65fd" TEXT="Iban" ABBREVIATEDLABEL="iba" LABEL="iba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="411" CREATED="2009-01-28 17:07:03.0" UUID="d8cae468-dc2d-45f3-83c9-3619f814106d" TEXT="Baltic (Other)" ABBREVIATEDLABEL="bat" LABEL="bat"/>\r
-  <REPRESENTATION ID="412" CREATED="2009-01-28 17:07:03.0" UUID="4ab98c49-9404-43c1-a5b8-351e7a097965" TEXT="Somali" ABBREVIATEDLABEL="som" LABEL="som" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="413" CREATED="2009-01-28 17:07:03.0" UUID="62ad1abc-0c00-4381-80bb-bbee0c18f8bf" TEXT="Mayan languages" ABBREVIATEDLABEL="myn" LABEL="myn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="414" CREATED="2009-01-28 17:07:03.0" UUID="8130a716-41c3-435d-8d50-41bf01953825" TEXT="Chichewa; Chewa; Nyanja" ABBREVIATEDLABEL="nya" LABEL="nya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="415" CREATED="2009-01-28 17:07:03.0" UUID="884e12c8-2f1d-4369-b0d2-40f35b5ca440" TEXT="Turkish" ABBREVIATEDLABEL="tur" LABEL="tur" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="416" CREATED="2009-01-28 17:07:03.0" UUID="c9e14645-dac1-40b8-9441-2085645262e1" TEXT="Galibi Carib" ABBREVIATEDLABEL="car" LABEL="car"/>\r
-  <REPRESENTATION ID="417" CREATED="2009-01-28 17:07:03.0" UUID="9f31da12-49ee-4aff-8737-25877a051c1c" TEXT="Cherokee" ABBREVIATEDLABEL="chr" LABEL="chr"/>\r
-  <REPRESENTATION ID="418" CREATED="2009-01-28 17:07:03.0" UUID="2009daa8-4bb5-42aa-b0d5-0c04cd967f71" TEXT="Lezghian" ABBREVIATEDLABEL="lez" LABEL="lez" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="419" CREATED="2009-01-28 17:07:03.0" UUID="ad4540df-74de-444b-9c0b-2016f7ebeb7d" TEXT="Gorontalo" ABBREVIATEDLABEL="gor" LABEL="gor" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="420" CREATED="2009-01-28 17:07:03.0" UUID="2bc5d471-fe8a-4d7f-b352-fd47790fc58c" TEXT="Sindhi" ABBREVIATEDLABEL="snd" LABEL="snd" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="421" CREATED="2009-01-28 17:07:03.0" UUID="6d7b032c-6f79-447a-80f3-30e2fb487a37" TEXT="Urdu" ABBREVIATEDLABEL="urd" LABEL="urd" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="422" CREATED="2009-01-28 17:07:03.0" UUID="c915492a-867f-4400-a2eb-2c566d244f55" TEXT="Wakashan languages" ABBREVIATEDLABEL="wak" LABEL="wak" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="423" CREATED="2009-01-28 17:07:03.0" UUID="c9d13f33-6300-4f02-adb9-f77d71d4e296" TEXT="N&apos;Ko" ABBREVIATEDLABEL="nqo" LABEL="nqo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="424" CREATED="2009-01-28 17:07:03.0" UUID="9bbe829a-1695-4c5b-83f9-ee0ef0e8f89f" TEXT="Japanese" ABBREVIATEDLABEL="jpn" LABEL="jpn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="425" CREATED="2009-01-28 17:07:03.0" UUID="43f21a36-2ac3-485c-ad9c-c65e998904c1" TEXT="Multiple languages" ABBREVIATEDLABEL="mul" LABEL="mul" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="426" CREATED="2009-01-28 17:07:03.0" UUID="d033927d-f142-431c-a7d6-d38d01ad6ec2" TEXT="Swiss German; Alemannic" ABBREVIATEDLABEL="gsw" LABEL="gsw" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="427" CREATED="2009-01-28 17:07:03.0" UUID="e15547f0-d044-4406-bc64-e1c6baf3604a" TEXT="Ekajuk" ABBREVIATEDLABEL="eka" LABEL="eka"/>\r
-  <REPRESENTATION ID="428" CREATED="2009-01-28 17:07:03.0" UUID="99cdcb38-ab4f-465e-8d81-8499f3c1b6bd" TEXT="Yoruba" ABBREVIATEDLABEL="yor" LABEL="yor" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="429" CREATED="2009-01-28 17:07:03.0" UUID="b826e463-2cfc-40ff-8f86-ce133d85497f" TEXT="Umbundu" ABBREVIATEDLABEL="umb" LABEL="umb" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="430" CREATED="2009-01-28 17:07:03.0" UUID="5e252af3-f19d-4688-83d9-871c75318c93" TEXT="Tibetan" ABBREVIATEDLABEL="tib" LABEL="tib" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="431" CREATED="2009-01-28 17:07:03.0" UUID="1638a17f-3461-44b8-bc3f-a347f226f4dd" TEXT="Friulian" ABBREVIATEDLABEL="fur" LABEL="fur" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="432" CREATED="2009-01-28 17:07:03.0" UUID="2aa1271f-858e-4f70-8cef-26d980959c69" TEXT="North American Indian" ABBREVIATEDLABEL="nai" LABEL="nai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="433" CREATED="2009-01-28 17:07:03.0" UUID="fb0cf033-2d32-4504-9155-ab941f115b26" TEXT="Shan" ABBREVIATEDLABEL="shn" LABEL="shn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="434" CREATED="2009-01-28 17:07:03.0" UUID="80805175-a906-4bda-b97c-3057860fb99d" TEXT="Korean" ABBREVIATEDLABEL="kor" LABEL="kor" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="435" CREATED="2009-01-28 17:07:03.0" UUID="a503fdae-cb8d-4e83-9ea6-82f085d2b536" TEXT="Syriac" ABBREVIATEDLABEL="syr" LABEL="syr" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="436" CREATED="2009-01-28 17:07:03.0" UUID="61f17ee2-5b03-45fd-90f5-b0bf2abbbd8a" TEXT="Kutenai" ABBREVIATEDLABEL="kut" LABEL="kut" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="437" CREATED="2009-01-28 17:07:03.0" UUID="182c7628-1af6-4ef4-8cbe-ede610d1a1e6" TEXT="Tamil" ABBREVIATEDLABEL="tam" LABEL="tam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="438" CREATED="2009-01-28 17:07:03.0" UUID="069603ab-30af-47a7-b5ed-cd32de9e55aa" TEXT="Blin; Bilin" ABBREVIATEDLABEL="byn" LABEL="byn"/>\r
-  <REPRESENTATION ID="439" CREATED="2009-01-28 17:07:03.0" UUID="db7c77d3-69fd-4c16-ac79-325d24b75210" TEXT="Sino-Tibetan (Other)" ABBREVIATEDLABEL="sit" LABEL="sit" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="440" CREATED="2009-01-28 17:07:03.0" UUID="d2062d61-0eeb-4240-a8a2-3b6f78be2be5" TEXT="Mirandese" ABBREVIATEDLABEL="mwl" LABEL="mwl" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="441" CREATED="2009-01-28 17:07:03.0" UUID="590da468-f9b9-4a67-a849-80e5f8b49d60" TEXT="Phoenician" ABBREVIATEDLABEL="phn" LABEL="phn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="442" CREATED="2009-01-28 17:07:03.0" UUID="7fec74b4-188d-493b-891f-53b7eca4b9c9" TEXT="Southern Sami" ABBREVIATEDLABEL="sma" LABEL="sma" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="443" CREATED="2009-01-28 17:07:03.0" UUID="6f6bbe33-4b07-43e5-adf2-c0a7df45149f" TEXT="Burmese" ABBREVIATEDLABEL="bur" LABEL="bur"/>\r
-  <REPRESENTATION ID="444" CREATED="2009-01-28 17:07:03.0" UUID="3e8deb8c-7ed3-47bf-9a5f-dde15d9566f1" TEXT="Celtic (Other)" ABBREVIATEDLABEL="cel" LABEL="cel"/>\r
-  <REPRESENTATION ID="445" CREATED="2009-01-28 17:07:03.0" UUID="5d18727a-b7b4-4bc7-b197-068164b3edb2" TEXT="Kru languages" ABBREVIATEDLABEL="kro" LABEL="kro" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="446" CREATED="2009-01-28 17:07:03.0" UUID="fceffcc9-972b-45d2-bade-06ce03749bf5" TEXT="Nepal Bhasa; Newari" ABBREVIATEDLABEL="new" LABEL="new" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="447" CREATED="2009-01-28 17:07:03.0" UUID="7425bc24-e299-40eb-b842-bfb54983bcea" TEXT="Zande languages" ABBREVIATEDLABEL="znd" LABEL="znd" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="448" CREATED="2009-01-28 17:07:03.0" UUID="26776108-2db5-491a-97bb-0312b0a25f79" TEXT="Manx" ABBREVIATEDLABEL="glv" LABEL="glv" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="449" CREATED="2009-01-28 17:07:03.0" UUID="aee5cc1a-6bac-439b-ad09-ffca32e0206f" TEXT="Mongo" ABBREVIATEDLABEL="lol" LABEL="lol" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="450" CREATED="2009-01-28 17:07:03.0" UUID="ba5c710e-9660-48a6-9649-1008be5f692e" TEXT="Oromo" ABBREVIATEDLABEL="orm" LABEL="orm" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="451" CREATED="2009-01-28 17:07:03.0" UUID="4ed55141-968e-4a1b-a055-177db044221e" TEXT="Aymara" ABBREVIATEDLABEL="aym" LABEL="aym"/>\r
-  <REPRESENTATION ID="452" CREATED="2009-01-28 17:07:03.0" UUID="279a377b-d66c-408c-bc8c-24064c8ec020" TEXT="Sango" ABBREVIATEDLABEL="sag" LABEL="sag" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="453" CREATED="2009-01-28 17:07:03.0" UUID="b83d0b40-de62-40fd-ab66-4ec7c54f3967" TEXT="Dyula" ABBREVIATEDLABEL="dyu" LABEL="dyu"/>\r
-  <REPRESENTATION ID="454" CREATED="2009-01-28 17:07:03.0" UUID="5adb52b5-8d98-4ced-861f-263971f6eeb5" TEXT="Shona" ABBREVIATEDLABEL="sna" LABEL="sna" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="455" CREATED="2009-01-28 17:07:03.0" UUID="a13ce313-6f56-4f6f-a431-52a5735c7529" TEXT="Slovak" ABBREVIATEDLABEL="slo" LABEL="slo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="456" CREATED="2009-01-28 17:07:03.0" UUID="19959505-a2c9-47f4-ab28-de4e0eeac4cf" TEXT="Romany" ABBREVIATEDLABEL="rom" LABEL="rom" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="457" CREATED="2009-01-28 17:07:03.0" UUID="d0018793-d6dc-4a14-b7d1-b6408f8a6bd6" TEXT="Gilbertese" ABBREVIATEDLABEL="gil" LABEL="gil" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="458" CREATED="2009-01-28 17:07:03.0" UUID="b3d0847a-ee9a-4b3f-bcf2-b55850a75207" TEXT="Thai" ABBREVIATEDLABEL="tha" LABEL="tha" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="459" CREATED="2009-01-28 17:07:03.0" UUID="591688a2-17ce-4c75-aff2-d827724622b2" TEXT="Bulgarian" ABBREVIATEDLABEL="bul" LABEL="bul"/>\r
-  <REPRESENTATION ID="460" CREATED="2009-01-28 17:07:03.0" UUID="c8b7caf0-d06e-4fc0-bf10-f74b3346ac3e" TEXT="Dzongkha" ABBREVIATEDLABEL="dzo" LABEL="dzo"/>\r
-  <REPRESENTATION ID="461" CREATED="2009-01-28 17:07:03.0" UUID="70eae71e-1d09-43b6-a3db-b751c2cd16e7" TEXT="Papuan (Other)" ABBREVIATEDLABEL="paa" LABEL="paa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="462" CREATED="2009-01-28 17:07:03.0" UUID="27695937-6c3f-45cb-9204-fa419a91e3bb" TEXT="Fang" ABBREVIATEDLABEL="fan" LABEL="fan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="463" CREATED="2009-01-28 17:07:03.0" UUID="faddf8f3-8109-439d-b72d-151414ecf817" TEXT="Bashkir" ABBREVIATEDLABEL="bak" LABEL="bak"/>\r
-  <REPRESENTATION ID="464" CREATED="2009-01-28 17:07:03.0" UUID="6a2a0dd6-3e84-4e0b-843a-be0e7f39ae3b" TEXT="Palauan" ABBREVIATEDLABEL="pau" LABEL="pau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="465" CREATED="2009-01-28 17:07:03.0" UUID="ef6899a8-5a2a-4c54-8181-5a212969faa8" TEXT="Tlingit" ABBREVIATEDLABEL="tli" LABEL="tli" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="466" CREATED="2009-01-28 17:07:03.0" UUID="61f7f342-853b-4a6f-b1f8-b35adbfe1c8b" TEXT="Tamashek" ABBREVIATEDLABEL="tmh" LABEL="tmh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="467" CREATED="2009-01-28 17:07:03.0" UUID="19f3efee-3c13-4c90-82fc-57a969b51120" TEXT="Manobo languages" ABBREVIATEDLABEL="mno" LABEL="mno" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="468" CREATED="2009-01-28 17:07:03.0" UUID="db6dc13a-1434-4be3-b6c3-94c7d6e37ef8" TEXT="Selkup" ABBREVIATEDLABEL="sel" LABEL="sel" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="469" CREATED="2009-01-28 17:07:03.0" UUID="34599c35-6982-4c76-9386-8fbdbe1d0435" TEXT="Creoles and pidgins, English based (Other)" ABBREVIATEDLABEL="cpe" LABEL="cpe"/>\r
-  <REPRESENTATION ID="470" CREATED="2009-01-28 17:07:03.0" UUID="087928fe-8577-4666-848b-2f7fc6732a8c" TEXT="Uighur; Uyghur" ABBREVIATEDLABEL="uig" LABEL="uig" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="471" CREATED="2009-01-28 17:07:03.0" UUID="feef7e6e-0557-41d1-b20b-82f97bff1a5f" TEXT="Ossetian; Ossetic" ABBREVIATEDLABEL="oss" LABEL="oss" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="472" CREATED="2009-01-28 17:07:03.0" UUID="1ce2bc3e-5302-4108-b242-c304455eeef9" TEXT="Sami languages (Other)" ABBREVIATEDLABEL="smi" LABEL="smi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="473" CREATED="2009-01-28 17:07:03.0" UUID="b631b0dd-f8de-4414-bfb2-2dd599c2b65b" TEXT="Irish, Old (to 900)" ABBREVIATEDLABEL="sga" LABEL="sga" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="474" CREATED="2009-01-28 17:07:03.0" UUID="c8014118-df81-4392-9e0e-17a73b6a8a35" TEXT="Sidamo" ABBREVIATEDLABEL="sid" LABEL="sid" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="475" CREATED="2009-01-28 17:07:03.0" UUID="2ac13825-9ece-4b4c-acd4-11e2e5073b74" TEXT="Maori" ABBREVIATEDLABEL="mao" LABEL="mao" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="476" CREATED="2009-01-28 17:07:03.0" UUID="13b534d6-84a1-43a2-bca0-97c8cfdbee65" TEXT="Arapaho" ABBREVIATEDLABEL="arp" LABEL="arp"/>\r
-  <REPRESENTATION ID="477" CREATED="2009-01-28 17:07:03.0" UUID="6244a4e3-d850-4809-b5e9-9438649db061" TEXT="Kinyarwanda" ABBREVIATEDLABEL="kin" LABEL="kin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="478" CREATED="2009-01-28 17:07:03.0" UUID="23e86a09-7457-470b-bf1d-550be236ab65" TEXT="Sotho, Southern" ABBREVIATEDLABEL="sot" LABEL="sot" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="479" CREATED="2009-01-28 17:07:03.0" UUID="72446896-d849-44b3-bdd6-82850026c22c" TEXT="Tagalog" ABBREVIATEDLABEL="tgl" LABEL="tgl" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="480" CREATED="2009-01-28 17:07:03.0" UUID="b9bb8ef1-0df3-4785-b5b6-4ad19bb79c20" TEXT="Chipewyan; Dene Suline" ABBREVIATEDLABEL="chp" LABEL="chp"/>\r
-  <REPRESENTATION ID="481" CREATED="2009-01-28 17:07:03.0" UUID="58056ac1-ed57-443e-9065-c8156aaa2efc" TEXT="Kurdish" ABBREVIATEDLABEL="kur" LABEL="kur" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="482" CREATED="2009-01-28 17:07:03.0" UUID="a1bdb347-b107-44bf-9f1a-487591ecd1b5" TEXT="Lozi" ABBREVIATEDLABEL="loz" LABEL="loz" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="483" CREATED="2009-01-28 17:07:03.0" UUID="401d661e-86d8-455e-9d96-e40b4c0a8f91" TEXT="Bislama" ABBREVIATEDLABEL="bis" LABEL="bis"/>\r
-  <REPRESENTATION ID="484" CREATED="2009-01-28 17:07:03.0" UUID="830dd1b1-c7c0-45ce-8b90-91ba7e80d957" TEXT="Luba-Katanga" ABBREVIATEDLABEL="lub" LABEL="lub" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="485" CREATED="2009-01-28 17:07:03.0" UUID="a8664ba9-1b11-4a2d-91e4-5bb7544601cd" TEXT="Gujarati" ABBREVIATEDLABEL="guj" LABEL="guj" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="486" CREATED="2009-01-28 17:07:03.0" UUID="c7f1a240-0c4b-41be-aafc-b47979e10f42" TEXT="Erzya" ABBREVIATEDLABEL="myv" LABEL="myv" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="487" CREATED="2009-01-28 17:07:04.0" UUID="23d52ac4-50ab-4caa-bc3a-98d6ad777ff2" TEXT="eu.etaxonomy.cdm.model.location.Continent" LABEL="Continent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="488" CREATED="2009-01-28 17:07:04.0" UUID="575e2adb-d7d9-40f0-9a4e-517620b5088a" TEXT="Pacific" ABBREVIATEDLABEL="" LABEL="Pacific" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="489" CREATED="2009-01-28 17:07:04.0" UUID="f1011e44-a2a2-4598-a8ea-79f2b993a4f2" TEXT="Australasia" ABBREVIATEDLABEL="" LABEL="Australasia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="490" CREATED="2009-01-28 17:07:04.0" UUID="e8e814f9-50cd-4c5a-8eab-eb26dad83e11" TEXT="South America" ABBREVIATEDLABEL="" LABEL="S.America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="491" CREATED="2009-01-28 17:07:04.0" UUID="c6bf0a47-4676-4ea1-b214-fa518b690282" TEXT="Antarctica" ABBREVIATEDLABEL="" LABEL="Antarctica" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="492" CREATED="2009-01-28 17:07:04.0" UUID="f1a50040-fe55-4f60-8618-cf7e856e7177" TEXT="North America" ABBREVIATEDLABEL="" LABEL="N.America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="493" CREATED="2009-01-28 17:07:04.0" UUID="a10c0e15-6188-4238-92a7-9349255682f5" TEXT="Asia Tropical" ABBREVIATEDLABEL="" LABEL="Asia.Tropical" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="494" CREATED="2009-01-28 17:07:04.0" UUID="03e174a3-9415-4489-b125-53beead0ff8b" TEXT="Asia Temperate" ABBREVIATEDLABEL="" LABEL="Asia.Temperate" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="495" CREATED="2009-01-28 17:07:04.0" UUID="c6326b7b-679f-4e9c-ab48-3f5558bc5492" TEXT="Africa" ABBREVIATEDLABEL="" LABEL="Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="496" CREATED="2009-01-28 17:07:04.0" UUID="2fcf4180-7aa6-444c-8a53-b90045f95c58" TEXT="Europe" ABBREVIATEDLABEL="" LABEL="Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="497" CREATED="2009-01-28 17:07:04.0" UUID="bd8b2760-1327-48f0-9dbc-77d018a8b0f6" TEXT="eu.etaxonomy.cdm.model.location.WaterbodyOrCountry" LABEL="WaterbodyOrCountry" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="498" CREATED="2009-01-28 17:07:04.0" UUID="e61ba6a6-3f09-4320-8176-63279f4ec839" TEXT="Persian Gulf" ABBREVIATEDLABEL="" LABEL="PEG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="499" CREATED="2009-01-28 17:07:04.0" UUID="6908aff9-959a-4930-a40b-cdbd01aa4440" TEXT="Red Sea" ABBREVIATEDLABEL="" LABEL="RES" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="500" CREATED="2009-01-28 17:07:04.0" UUID="21dd622c-bc34-4f54-8073-95389ac7ff35" TEXT="Caspian Sea" ABBREVIATEDLABEL="" LABEL="CAS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="501" CREATED="2009-01-28 17:07:04.0" UUID="cd31eb64-d20a-42a2-a1f1-0992417c24ea" TEXT="Black Sea" ABBREVIATEDLABEL="" LABEL="BLS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="502" CREATED="2009-01-28 17:07:04.0" UUID="ad2aa7e9-689f-4fe9-a954-848b8dcaf8f9" TEXT="Mediterranean Sea" ABBREVIATEDLABEL="" LABEL="MES" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="503" CREATED="2009-01-28 17:07:04.0" UUID="a52a01bf-b807-4e9d-849e-943ec789f0ce" TEXT="Southern Ocean" ABBREVIATEDLABEL="" LABEL="SOO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="504" CREATED="2009-01-28 17:07:04.0" UUID="4dfa17b3-ee00-4c06-87ac-c561ee9d3b24" TEXT="Indian Ocean" ABBREVIATEDLABEL="" LABEL="INO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="505" CREATED="2009-01-28 17:07:04.0" UUID="869342af-2038-4415-95e5-97b3e820169a" TEXT="Pacific Ocean" ABBREVIATEDLABEL="" LABEL="PAO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="506" CREATED="2009-01-28 17:07:04.0" UUID="ef4416c7-c3f4-465a-8623-1ef1cc079f8c" TEXT="Atlantic Ocean" ABBREVIATEDLABEL="" LABEL="ATO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="507" CREATED="2009-01-28 17:07:04.0" UUID="d38ddf26-516d-4a94-8102-85397fac235f" TEXT="Arctic Ocean" ABBREVIATEDLABEL="" LABEL="ARO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="508" CREATED="2009-01-28 17:07:04.0" UUID="1efb82b6-38d6-44f3-a510-748d3193dea7" TEXT="Zimbabwe" ABBREVIATEDLABEL="ZW" LABEL="ZWE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="509" CREATED="2009-01-28 17:07:04.0" UUID="bccbeb39-ba9e-40c0-8c66-3748801f6b46" TEXT="Zambia, Republic of" ABBREVIATEDLABEL="ZM" LABEL="ZMB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="510" CREATED="2009-01-28 17:07:04.0" UUID="2b395856-97c3-4fe2-8030-adf62a6fc1f5" TEXT="Yemen" ABBREVIATEDLABEL="YE" LABEL="YEM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="511" CREATED="2009-01-28 17:07:04.0" UUID="f54694d1-b9a3-4547-98e3-0def989a27c4" TEXT="Western Sahara" ABBREVIATEDLABEL="EH" LABEL="ESH" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="512" CREATED="2009-01-28 17:07:04.0" UUID="a59484b1-b615-4406-8be2-999721c44d42" TEXT="Wallis and Futuna Islands" ABBREVIATEDLABEL="WF" LABEL="WLF" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="513" CREATED="2009-01-28 17:07:04.0" UUID="56636792-7993-4101-8d4e-7cff2cc77e0d" TEXT="Viet Nam, Socialist Republic of" ABBREVIATEDLABEL="VN" LABEL="VNM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="514" CREATED="2009-01-28 17:07:04.0" UUID="430495ff-2327-43ab-a27b-b3b3a4360702" TEXT="Venezuela, Bolivarian Republic of" ABBREVIATEDLABEL="VE" LABEL="VEN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="515" CREATED="2009-01-28 17:07:04.0" UUID="0d3a3985-d7ad-4a6c-9c25-5b6fbee84ae9" TEXT="Vanuatu" ABBREVIATEDLABEL="VU" LABEL="VUT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="516" CREATED="2009-01-28 17:07:04.0" UUID="3ca50903-b5f9-413c-bac7-cd1ded0191d0" TEXT="Uzbekistan" ABBREVIATEDLABEL="UZ" LABEL="UZB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="517" CREATED="2009-01-28 17:07:04.0" UUID="e22af71d-be5e-494e-bf1f-1dd9d6dadfef" TEXT="Uruguay, Eastern Republic of" ABBREVIATEDLABEL="UY" LABEL="URY" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="518" CREATED="2009-01-28 17:07:04.0" UUID="8f814293-9bee-40d9-94b4-154812f12fa9" TEXT="United States of America" ABBREVIATEDLABEL="US" LABEL="USA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="519" CREATED="2009-01-28 17:07:04.0" UUID="172bb38d-9901-477f-8aee-08cccec57b73" TEXT="United States Minor Outlying Islands" ABBREVIATEDLABEL="UM" LABEL="UMI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="520" CREATED="2009-01-28 17:07:04.0" UUID="d8299209-d05d-4e0f-a96a-84967924bec7" TEXT="United Kingdom of Great Britain &amp; N. Ireland" ABBREVIATEDLABEL="GB" LABEL="GBR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="521" CREATED="2009-01-28 17:07:04.0" UUID="1e7f7dd8-cb5b-4002-87da-4f772f3b23db" TEXT="United Arab Emirates" ABBREVIATEDLABEL="AE" LABEL="ARE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="522" CREATED="2009-01-28 17:07:04.0" UUID="b45832ce-0d6d-4eca-83e8-df92df9314f4" TEXT="Ukraine" ABBREVIATEDLABEL="UA" LABEL="UKR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="523" CREATED="2009-01-28 17:07:04.0" UUID="c5363333-0bac-4400-8d1a-8c486bf07fa3" TEXT="Uganda, Republic of" ABBREVIATEDLABEL="UG" LABEL="UGA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="524" CREATED="2009-01-28 17:07:04.0" UUID="1ac2948e-2a0d-4539-8559-b32083dad255" TEXT="US Virgin Islands" ABBREVIATEDLABEL="VI" LABEL="VIR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="525" CREATED="2009-01-28 17:07:04.0" UUID="f4f0e498-c4de-43ea-9a31-68c2757d73da" TEXT="Tuvalu" ABBREVIATEDLABEL="TV" LABEL="TUV" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="526" CREATED="2009-01-28 17:07:04.0" UUID="cbe475f7-73b6-45a0-b760-cf506c9f9a20" TEXT="Turks and Caicos Islands" ABBREVIATEDLABEL="TC" LABEL="TCA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="527" CREATED="2009-01-28 17:07:04.0" UUID="70122c5d-d50c-419a-a7e2-f5fc72ecb020" TEXT="Turkmenistan" ABBREVIATEDLABEL="TM" LABEL="TKM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="528" CREATED="2009-01-28 17:07:04.0" UUID="16074b9f-52a5-490a-a788-f71047858016" TEXT="Turkey, Republic of" ABBREVIATEDLABEL="TR" LABEL="TUR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="529" CREATED="2009-01-28 17:07:04.0" UUID="ad7add6e-3107-433b-8ddf-5942a8bc17da" TEXT="Tunisia, Republic of" ABBREVIATEDLABEL="TN" LABEL="TUN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="530" CREATED="2009-01-28 17:07:04.0" UUID="6148d89f-cd51-439f-8356-287ddd58f685" TEXT="Trinidad and Tobago, Republic of" ABBREVIATEDLABEL="TT" LABEL="TTO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="531" CREATED="2009-01-28 17:07:04.0" UUID="707064e8-b662-485a-919b-f25271dda9c7" TEXT="Tonga, Kingdom of" ABBREVIATEDLABEL="TO" LABEL="TON" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="532" CREATED="2009-01-28 17:07:04.0" UUID="f83b5975-a4d8-4d60-aa4b-75a7d0cbd3dd" TEXT="Tokelau (Tokelau Islands)" ABBREVIATEDLABEL="TK" LABEL="TKL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="533" CREATED="2009-01-28 17:07:04.0" UUID="2e3bf71a-71ed-417c-89e2-d20afb7a57ae" TEXT="Togo, Togolese Republic" ABBREVIATEDLABEL="TG" LABEL="TGO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="534" CREATED="2009-01-28 17:07:04.0" UUID="aec389f1-6b87-4a17-b7aa-46dd13c61aab" TEXT="Timor-Leste, Democratic Republic of" ABBREVIATEDLABEL="TL" LABEL="TLS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="535" CREATED="2009-01-28 17:07:04.0" UUID="d462bef3-3d75-4ad8-bc2d-277420cb3267" TEXT="Thailand, Kingdom of" ABBREVIATEDLABEL="TH" LABEL="THA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="536" CREATED="2009-01-28 17:07:04.0" UUID="17c94f2f-1f75-49a6-aa7b-a9a92c777927" TEXT="Tanzania, United Republic of" ABBREVIATEDLABEL="TZ" LABEL="TZA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="537" CREATED="2009-01-28 17:07:04.0" UUID="3f1ad3d4-3d94-4ab6-80f3-c0e88235e432" TEXT="Tajikistan" ABBREVIATEDLABEL="TJ" LABEL="TJK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="538" CREATED="2009-01-28 17:07:04.0" UUID="ffd71437-dc94-4f20-85d0-b5d3968b3aed" TEXT="Taiwan, Province of China" ABBREVIATEDLABEL="TW" LABEL="TWN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="539" CREATED="2009-01-28 17:07:04.0" UUID="f7a623e3-345c-4b07-a6f6-43ffd7ef930e" TEXT="Syrian Arab Republic" ABBREVIATEDLABEL="SY" LABEL="SYR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="540" CREATED="2009-01-28 17:07:04.0" UUID="4805ef0e-4573-4292-85a0-8c309b7dcc5d" TEXT="Switzerland, Swiss Confederation" ABBREVIATEDLABEL="CH" LABEL="CHE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="541" CREATED="2009-01-28 17:07:04.0" UUID="1d6784b1-0fac-42e0-87fb-cbf0d26c31ca" TEXT="Sweden, Kingdom of" ABBREVIATEDLABEL="SE" LABEL="SWE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="542" CREATED="2009-01-28 17:07:04.0" UUID="40dfac1e-f46a-4eeb-99d8-109c876d5422" TEXT="Swaziland, Kingdom of" ABBREVIATEDLABEL="SZ" LABEL="SWZ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="543" CREATED="2009-01-28 17:07:04.0" UUID="c8488444-d598-45e3-b933-0fbcb680d55a" TEXT="Svalbard &amp; Jan Mayen Islands" ABBREVIATEDLABEL="SJ" LABEL="SJM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="544" CREATED="2009-01-28 17:07:04.0" UUID="1805f809-ff21-4df6-9d71-b7c9c4c1bfae" TEXT="Suriname, Republic of" ABBREVIATEDLABEL="SR" LABEL="SUR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="545" CREATED="2009-01-28 17:07:04.0" UUID="beef7ea6-dd25-4b29-8e73-5c5e1e200993" TEXT="Sudan, Democratic Republic of the" ABBREVIATEDLABEL="SD" LABEL="SDN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="546" CREATED="2009-01-28 17:07:04.0" UUID="13115adb-4300-4318-8d3a-852126d964da" TEXT="Sri Lanka, Democratic Socialist Republic of" ABBREVIATEDLABEL="LK" LABEL="LKA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="547" CREATED="2009-01-28 17:07:04.0" UUID="da319187-fdbb-475e-81ed-2ed86b9fb221" TEXT="Spain, Spanish State" ABBREVIATEDLABEL="ES" LABEL="ESP" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="548" CREATED="2009-01-28 17:07:04.0" UUID="40958f58-7583-4641-84b7-5d469f011d20" TEXT="South Georgia and the South Sandwich Islands" ABBREVIATEDLABEL="GS" LABEL="SGS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="549" CREATED="2009-01-28 17:07:04.0" UUID="38b09e38-9b8f-415d-a72d-9cf880e015cc" TEXT="South Africa, Republic of" ABBREVIATEDLABEL="ZA" LABEL="ZAF" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="550" CREATED="2009-01-28 17:07:04.0" UUID="755951cd-b5e2-4a1d-9b6c-a7a00c996b7b" TEXT="Somalia, Somali Republic" ABBREVIATEDLABEL="SO" LABEL="SOM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="551" CREATED="2009-01-28 17:07:04.0" UUID="549ece34-abdf-44c8-8767-9a65fb9836d0" TEXT="Solomon Islands" ABBREVIATEDLABEL="SB" LABEL="SLB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="552" CREATED="2009-01-28 17:07:04.0" UUID="196ad737-9708-40ec-8525-1a9357cf6dcc" TEXT="Slovenia" ABBREVIATEDLABEL="SI" LABEL="SVN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="553" CREATED="2009-01-28 17:07:04.0" UUID="56898a44-aabd-4482-8fae-8b8e99af14d9" TEXT="Slovakia (Slovak Republic)" ABBREVIATEDLABEL="SK" LABEL="SVK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="554" CREATED="2009-01-28 17:07:04.0" UUID="57eaeb12-359f-45c7-a440-8de71a94aa21" TEXT="Singapore, Republic of" ABBREVIATEDLABEL="SG" LABEL="SGP" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="555" CREATED="2009-01-28 17:07:04.0" UUID="15109967-88f9-458e-a94f-3b62c8300dac" TEXT="Sierra Leone, Republic of" ABBREVIATEDLABEL="SL" LABEL="SLE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="556" CREATED="2009-01-28 17:07:04.0" UUID="963f2964-fe7d-4f44-b2ee-d1d46e08a94a" TEXT="Seychelles, Republic of" ABBREVIATEDLABEL="SC" LABEL="SYC" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="557" CREATED="2009-01-28 17:07:04.0" UUID="510dc97f-6fea-4914-86f5-e931bde4830b" TEXT="Serbia and Montenegro" ABBREVIATEDLABEL="CS" LABEL="SCG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="558" CREATED="2009-01-28 17:07:04.0" UUID="4568a660-99d7-4155-8e49-df388e3d15a2" TEXT="Senegal, Republic of" ABBREVIATEDLABEL="SN" LABEL="SEN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="559" CREATED="2009-01-28 17:07:04.0" UUID="3d03c150-4598-482b-8077-04f635f8557b" TEXT="Saudi Arabia, Kingdom of" ABBREVIATEDLABEL="SA" LABEL="SAU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="560" CREATED="2009-01-28 17:07:04.0" UUID="a7821fb7-d418-4a94-9a85-8e5562d0ef07" TEXT="Sao Tome and Principe, Democratic Republic of" ABBREVIATEDLABEL="ST" LABEL="STP" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="561" CREATED="2009-01-28 17:07:04.0" UUID="91613c8f-f6ed-4591-a393-a07e20eea3d7" TEXT="San Marino, Republic of" ABBREVIATEDLABEL="SM" LABEL="SMR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="562" CREATED="2009-01-28 17:07:04.0" UUID="f5610b8d-b880-4d16-a1e5-96ce45d5b331" TEXT="Samoa, Independent State of" ABBREVIATEDLABEL="WS" LABEL="WSM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="563" CREATED="2009-01-28 17:07:04.0" UUID="7d081a2b-b28a-4434-bbfd-3be335796e9f" TEXT="St. Vincent and the Grenadines" ABBREVIATEDLABEL="VC" LABEL="VCT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="564" CREATED="2009-01-28 17:07:04.0" UUID="f99cb30a-11a0-419d-89f3-270e71396569" TEXT="St. Pierre and Miquelon" ABBREVIATEDLABEL="PM" LABEL="SPM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="565" CREATED="2009-01-28 17:07:04.0" UUID="06969a6f-b7ee-4d0f-b535-a316030d7123" TEXT="St. Lucia" ABBREVIATEDLABEL="LC" LABEL="LCA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="566" CREATED="2009-01-28 17:07:04.0" UUID="aec2b12c-25a4-4267-97f0-2da84cbbec51" TEXT="St. Kitts and Nevis" ABBREVIATEDLABEL="KN" LABEL="KNA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="567" CREATED="2009-01-28 17:07:04.0" UUID="4f385bc6-4b4e-4f40-ab3a-0c32583e2136" TEXT="St. Helena" ABBREVIATEDLABEL="SH" LABEL="SHN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="568" CREATED="2009-01-28 17:07:04.0" UUID="165c1efc-2fd3-408b-b7c4-31495cbf6a39" TEXT="Rwanda, Rwandese Republic" ABBREVIATEDLABEL="RW" LABEL="RWA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="569" CREATED="2009-01-28 17:07:04.0" UUID="24500849-930d-424d-98c6-d4976d00ef44" TEXT="Russian Federation" ABBREVIATEDLABEL="RU" LABEL="RUS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="570" CREATED="2009-01-28 17:07:04.0" UUID="d8d1654f-6a59-4068-b855-b959e234ba67" TEXT="Romania, Socialist Republic of" ABBREVIATEDLABEL="RO" LABEL="ROU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="571" CREATED="2009-01-28 17:07:04.0" UUID="00b2f879-c862-40ed-a102-b01949e5011b" TEXT="Reunion" ABBREVIATEDLABEL="RE" LABEL="REU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="572" CREATED="2009-01-28 17:07:04.0" UUID="59932814-5ed2-41e4-b0ae-fe2425b9943d" TEXT="Qatar, State of" ABBREVIATEDLABEL="QA" LABEL="QAT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="573" CREATED="2009-01-28 17:07:04.0" UUID="c720a11e-c077-41a9-bbcd-c492182e7719" TEXT="Puerto Rico" ABBREVIATEDLABEL="PR" LABEL="PRI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="574" CREATED="2009-01-28 17:07:04.0" UUID="1cb58b77-de26-442b-9176-46fafdcbe9d6" TEXT="Portugal, Portuguese Republic" ABBREVIATEDLABEL="PT" LABEL="PRT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="575" CREATED="2009-01-28 17:07:04.0" UUID="4e64f8a7-0607-4262-bfc0-bea21cc8dc71" TEXT="Poland, Polish People&apos;s Republic" ABBREVIATEDLABEL="PL" LABEL="POL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="576" CREATED="2009-01-28 17:07:04.0" UUID="06e91b35-4600-4643-8871-6b46c70eb26b" TEXT="Pitcairn Island" ABBREVIATEDLABEL="PN" LABEL="PCN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="577" CREATED="2009-01-28 17:07:04.0" UUID="52ab2c43-8610-439f-a83d-62b72a19c375" TEXT="Philippines, Republic of the" ABBREVIATEDLABEL="PH" LABEL="PHL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="578" CREATED="2009-01-28 17:07:04.0" UUID="8cad4d45-a512-4667-b70f-92e18ca83c77" TEXT="Peru, Republic of" ABBREVIATEDLABEL="PE" LABEL="PER" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="579" CREATED="2009-01-28 17:07:04.0" UUID="fd39b77e-fb10-4be2-b12b-2e414a228149" TEXT="Paraguay, Republic of" ABBREVIATEDLABEL="PY" LABEL="PRY" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="580" CREATED="2009-01-28 17:07:04.0" UUID="c7fc92f9-85d9-4aef-bf5b-d6c05e890c0b" TEXT="Papua New Guinea" ABBREVIATEDLABEL="PG" LABEL="PNG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="581" CREATED="2009-01-28 17:07:04.0" UUID="98341e23-8606-49f5-87f0-aa6990c7bc7c" TEXT="Panama, Republic of" ABBREVIATEDLABEL="PA" LABEL="PAN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="582" CREATED="2009-01-28 17:07:04.0" UUID="cf5ee05e-4baf-4b80-9310-dd131fdf403e" TEXT="Palestinian Territory, Occupied" ABBREVIATEDLABEL="PS" LABEL="PSE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="583" CREATED="2009-01-28 17:07:04.0" UUID="0d856a68-75b9-4ec9-bc5f-603bfaf2a11f" TEXT="Palau" ABBREVIATEDLABEL="PW" LABEL="PLW" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="584" CREATED="2009-01-28 17:07:04.0" UUID="af325d23-9f2c-4b61-971e-95676c399adc" TEXT="Pakistan, Islamic Republic of" ABBREVIATEDLABEL="PK" LABEL="PAK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="585" CREATED="2009-01-28 17:07:04.0" UUID="264cbad2-b33f-4a6f-b554-45b4902aae16" TEXT="Oman, Sultanate of" ABBREVIATEDLABEL="OM" LABEL="OMN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="586" CREATED="2009-01-28 17:07:04.0" UUID="9b4a869b-1fe7-4c5a-9a5a-047d86d6c456" TEXT="Norway, Kingdom of" ABBREVIATEDLABEL="NO" LABEL="NOR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="587" CREATED="2009-01-28 17:07:04.0" UUID="47a57426-ad62-4338-aee6-7cce75187d65" TEXT="Northern Mariana Islands" ABBREVIATEDLABEL="MP" LABEL="MNP" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="588" CREATED="2009-01-28 17:07:04.0" UUID="aef87802-60a0-426b-84f4-8b8afb993d3c" TEXT="Norfolk Island" ABBREVIATEDLABEL="NF" LABEL="NFK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="589" CREATED="2009-01-28 17:07:04.0" UUID="6fe1a778-41d4-4345-abe2-ab3b9fd51a89" TEXT="Niue, Republic of" ABBREVIATEDLABEL="NU" LABEL="NIU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="590" CREATED="2009-01-28 17:07:04.0" UUID="85d517b6-cc0c-4e50-ab83-9316c5c7c056" TEXT="Nigeria, Federal Republic of" ABBREVIATEDLABEL="NG" LABEL="NGA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="591" CREATED="2009-01-28 17:07:04.0" UUID="440fb9c8-db0b-426b-8eb2-ef315744d0ac" TEXT="Niger, Republic of the" ABBREVIATEDLABEL="NE" LABEL="NER" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="592" CREATED="2009-01-28 17:07:04.0" UUID="ed9bbd20-5d22-4519-9f81-e7b091b8ad6c" TEXT="Nicaragua, Republic of" ABBREVIATEDLABEL="NI" LABEL="NIC" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="593" CREATED="2009-01-28 17:07:04.0" UUID="cf15a890-ac54-4b27-bd3d-9a33b4c69c70" TEXT="New Zealand" ABBREVIATEDLABEL="NZ" LABEL="NZL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="594" CREATED="2009-01-28 17:07:04.0" UUID="723428e8-2cab-40fd-8acd-98e2f707419d" TEXT="New Caledonia" ABBREVIATEDLABEL="NC" LABEL="NCL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="595" CREATED="2009-01-28 17:07:04.0" UUID="b8a6f2b0-4900-4f0b-8785-248b4ca2c6ef" TEXT="Netherlands, Kingdom of the" ABBREVIATEDLABEL="NL" LABEL="NLD" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="596" CREATED="2009-01-28 17:07:04.0" UUID="89e8b673-1ca3-4e16-af18-50b0a32e79a0" TEXT="Netherlands Antilles" ABBREVIATEDLABEL="AN" LABEL="ANT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="597" CREATED="2009-01-28 17:07:04.0" UUID="50652692-36f9-42c0-b61e-da354113fcd8" TEXT="Nepal, Kingdom of" ABBREVIATEDLABEL="NP" LABEL="NPL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="598" CREATED="2009-01-28 17:07:04.0" UUID="bce2c73f-99f8-453a-b482-c7483cb3ada5" TEXT="Nauru, Republic of" ABBREVIATEDLABEL="NR" LABEL="NRU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="599" CREATED="2009-01-28 17:07:04.0" UUID="2808cefa-0263-483e-b957-cabac363813a" TEXT="Namibia" ABBREVIATEDLABEL="NA" LABEL="NAM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="600" CREATED="2009-01-28 17:07:04.0" UUID="b7448c21-47b3-496d-a658-d09cc915ea44" TEXT="Myanmar" ABBREVIATEDLABEL="MM" LABEL="MMR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="601" CREATED="2009-01-28 17:07:04.0" UUID="a4c98ae3-6076-47ce-aa6a-eca704c781da" TEXT="Mozambique, People&apos;s Republic of" ABBREVIATEDLABEL="MZ" LABEL="MOZ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="602" CREATED="2009-01-28 17:07:04.0" UUID="83cd211a-841e-4377-9cb5-13765c6588fe" TEXT="Morocco, Kingdom of" ABBREVIATEDLABEL="MA" LABEL="MAR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="603" CREATED="2009-01-28 17:07:04.0" UUID="ac61a7a8-1415-48ce-a79f-2d150553c9c3" TEXT="Montserrat" ABBREVIATEDLABEL="MS" LABEL="MSR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="604" CREATED="2009-01-28 17:07:04.0" UUID="d9ae1dac-0f18-4187-9557-7c347c64bb74" TEXT="Mongolia, Mongolian People&apos;s Republic" ABBREVIATEDLABEL="MN" LABEL="MNG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="605" CREATED="2009-01-28 17:07:04.0" UUID="4a4530ef-7f29-4c32-9dce-b24b695355be" TEXT="Monaco, Principality of" ABBREVIATEDLABEL="MC" LABEL="MCO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="606" CREATED="2009-01-28 17:07:04.0" UUID="9284b165-d221-43b4-8745-8ff35b578b49" TEXT="Moldova, Republic of" ABBREVIATEDLABEL="MD" LABEL="MDA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="607" CREATED="2009-01-28 17:07:04.0" UUID="6806fd60-a9c3-4c1d-abde-e19643b33d3b" TEXT="Micronesia, Federated States of" ABBREVIATEDLABEL="FM" LABEL="FSM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="608" CREATED="2009-01-28 17:07:04.0" UUID="6b28cd35-05ba-437e-b192-4678b2e74879" TEXT="Mexico, United Mexican States" ABBREVIATEDLABEL="MX" LABEL="MEX" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="609" CREATED="2009-01-28 17:07:04.0" UUID="5f11574e-0c7e-49ac-aa80-e8386a5fe9e0" TEXT="Mayotte" ABBREVIATEDLABEL="YT" LABEL="MYT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="610" CREATED="2009-01-28 17:07:04.0" UUID="043462e4-efaa-4831-8b24-5d3bd5c16e71" TEXT="Mauritius" ABBREVIATEDLABEL="MU" LABEL="MUS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="611" CREATED="2009-01-28 17:07:04.0" UUID="28052ea4-3266-4f2a-a9b1-64f488700eb3" TEXT="Mauritania, Islamic Republic of" ABBREVIATEDLABEL="MR" LABEL="MRT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="612" CREATED="2009-01-28 17:07:04.0" UUID="7a53715b-5abd-4fb9-9fe3-ecb6762ca326" TEXT="Martinique" ABBREVIATEDLABEL="MQ" LABEL="MTQ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="613" CREATED="2009-01-28 17:07:04.0" UUID="65191005-5d57-4b0f-9774-9c3af7bf75cc" TEXT="Marshall Islands" ABBREVIATEDLABEL="MH" LABEL="MHL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="614" CREATED="2009-01-28 17:07:04.0" UUID="303c06cf-7be7-42c2-88a1-1cd3ece1cc2b" TEXT="Malta, Republic of" ABBREVIATEDLABEL="MT" LABEL="MLT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="615" CREATED="2009-01-28 17:07:04.0" UUID="143809c1-f169-4aa5-b1ce-017622043345" TEXT="Mali, Republic of" ABBREVIATEDLABEL="ML" LABEL="MLI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="616" CREATED="2009-01-28 17:07:04.0" UUID="2a62107a-d26a-47b1-bbc3-b7bd7e592a05" TEXT="Maldives, Republic of" ABBREVIATEDLABEL="MV" LABEL="MDV" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="617" CREATED="2009-01-28 17:07:04.0" UUID="52bb86a0-d4d8-468d-b654-163406b67da6" TEXT="Malaysia" ABBREVIATEDLABEL="MY" LABEL="MYS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="618" CREATED="2009-01-28 17:07:04.0" UUID="0510d34f-97f7-40dd-a052-9ab1d4f8b18f" TEXT="Malawi, Republic of" ABBREVIATEDLABEL="MW" LABEL="MWI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="619" CREATED="2009-01-28 17:07:04.0" UUID="8f086445-3cf6-441d-a854-ed716c7c6b91" TEXT="Madagascar, Republic of" ABBREVIATEDLABEL="MG" LABEL="MDG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="620" CREATED="2009-01-28 17:07:04.0" UUID="f1c4ee55-5315-4880-9550-fce931818a50" TEXT="Macedonia, the former Yugoslav Republic of" ABBREVIATEDLABEL="MK" LABEL="MKD" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="621" CREATED="2009-01-28 17:07:04.0" UUID="b9b0c16a-275b-484d-b136-dadf3fb92fee" TEXT="Macao, Special Administrative Region of China" ABBREVIATEDLABEL="MO" LABEL="MAC" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="622" CREATED="2009-01-28 17:07:04.0" UUID="a7918f18-db0b-413a-8f6e-2f2228c8811b" TEXT="Luxembourg, Grand Duchy of" ABBREVIATEDLABEL="LU" LABEL="LUX" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="623" CREATED="2009-01-28 17:07:04.0" UUID="1273d467-f30e-46c3-a581-7e0cf3adc8b1" TEXT="Lithuania" ABBREVIATEDLABEL="LT" LABEL="LTU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="624" CREATED="2009-01-28 17:07:04.0" UUID="30783970-e3af-4c3c-a6a2-8f9cfae66ff0" TEXT="Liechtenstein, Principality of" ABBREVIATEDLABEL="LI" LABEL="LIE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="625" CREATED="2009-01-28 17:07:04.0" UUID="0faa763d-304f-4ce8-8f0d-be8ff4b882da" TEXT="Libyan Arab Jamahiriya" ABBREVIATEDLABEL="LY" LABEL="LBY" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="626" CREATED="2009-01-28 17:07:04.0" UUID="50b535e7-04d8-450e-ba6c-c091c99d7ccd" TEXT="Liberia, Republic of" ABBREVIATEDLABEL="LR" LABEL="LBR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="627" CREATED="2009-01-28 17:07:04.0" UUID="5e3c6893-6760-4884-9055-866cb0996fef" TEXT="Lesotho, Kingdom of" ABBREVIATEDLABEL="LS" LABEL="LSO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="628" CREATED="2009-01-28 17:07:04.0" UUID="5623b951-9b22-48a3-866c-7262ab22b564" TEXT="Lebanon, Lebanese Republic" ABBREVIATEDLABEL="LB" LABEL="LBN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="629" CREATED="2009-01-28 17:07:04.0" UUID="0d0e0f09-b31c-4fea-97d6-b7d4eeb0216c" TEXT="Latvia" ABBREVIATEDLABEL="LV" LABEL="LVA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="630" CREATED="2009-01-28 17:07:04.0" UUID="b7f27e45-6a58-498b-aca5-ce707ea4d9ff" TEXT="Lao People&apos;s Democratic Republic" ABBREVIATEDLABEL="LA" LABEL="LAO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="631" CREATED="2009-01-28 17:07:04.0" UUID="c1c61b72-2e13-4f9f-be06-26f7b3e6bd6a" TEXT="Kyrgyz Republic" ABBREVIATEDLABEL="KG" LABEL="KGZ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="632" CREATED="2009-01-28 17:07:04.0" UUID="2b595a26-b7a8-4d32-8ff9-e0b1eea30d81" TEXT="Kuwait, State of" ABBREVIATEDLABEL="KW" LABEL="KWT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="633" CREATED="2009-01-28 17:07:04.0" UUID="d3502cf3-2f39-427d-b909-1d46f9510d0f" TEXT="Korea, Republic of" ABBREVIATEDLABEL="KR" LABEL="KOR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="634" CREATED="2009-01-28 17:07:04.0" UUID="32242f87-6444-4cb0-a1bf-44450ec9b1bb" TEXT="Korea, Democratic People&apos;s Republic of" ABBREVIATEDLABEL="KP" LABEL="PRK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="635" CREATED="2009-01-28 17:07:04.0" UUID="73af0a7d-ddfa-4bf8-bdcb-b0eddc87bcde" TEXT="Kiribati, Republic of" ABBREVIATEDLABEL="KI" LABEL="KIR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="636" CREATED="2009-01-28 17:07:04.0" UUID="a5771e66-eee8-4fb9-9b99-e8725af83986" TEXT="Kenya, Republic of" ABBREVIATEDLABEL="KE" LABEL="KEN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="637" CREATED="2009-01-28 17:07:04.0" UUID="63e62347-be1a-4153-b54b-0252c7f63034" TEXT="Kazakhstan, Republic of" ABBREVIATEDLABEL="KZ" LABEL="KAZ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="638" CREATED="2009-01-28 17:07:04.0" UUID="b4d6aa0d-af25-4755-8f3d-e656ddb84ed6" TEXT="Jordan, Hashemite Kingdom of" ABBREVIATEDLABEL="JO" LABEL="JOR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="639" CREATED="2009-01-28 17:07:04.0" UUID="754c8297-3a8c-4897-8435-f8db86a3dffc" TEXT="Japan" ABBREVIATEDLABEL="JP" LABEL="JPN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="640" CREATED="2009-01-28 17:07:04.0" UUID="b0309527-edd9-4c0b-b457-bb0c6e9f79a9" TEXT="Jamaica" ABBREVIATEDLABEL="JM" LABEL="JAM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="641" CREATED="2009-01-28 17:07:04.0" UUID="6cc2cec0-c760-4de5-993a-9233693302af" TEXT="Italy, Italian Republic" ABBREVIATEDLABEL="IT" LABEL="ITA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="642" CREATED="2009-01-28 17:07:04.0" UUID="91ffc6fa-30c7-4a0f-8182-0347e96c728a" TEXT="Israel, State of" ABBREVIATEDLABEL="IL" LABEL="ISR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="643" CREATED="2009-01-28 17:07:04.0" UUID="be4fc33d-6b09-4652-b714-f5f8234281a2" TEXT="Ireland" ABBREVIATEDLABEL="IE" LABEL="IRL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="644" CREATED="2009-01-28 17:07:04.0" UUID="55521304-fd75-4dfd-8e0d-6e37b5221540" TEXT="Iraq, Republic of" ABBREVIATEDLABEL="IQ" LABEL="IRQ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="645" CREATED="2009-01-28 17:07:04.0" UUID="405d1998-acbb-48ad-8ab7-b6cbf47d2181" TEXT="Iran, Islamic Republic of" ABBREVIATEDLABEL="IR" LABEL="IRN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="646" CREATED="2009-01-28 17:07:04.0" UUID="ff3f93da-d548-413c-a240-16ed42d1f514" TEXT="Indonesia, Republic of" ABBREVIATEDLABEL="ID" LABEL="IDN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="647" CREATED="2009-01-28 17:07:04.0" UUID="8d986f5c-0459-4669-bea0-1c20f77b9a8a" TEXT="India, Republic of" ABBREVIATEDLABEL="IN" LABEL="IND" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="648" CREATED="2009-01-28 17:07:04.0" UUID="bca574c6-d108-445d-b34b-19d44ea3fc26" TEXT="Iceland, Republic of" ABBREVIATEDLABEL="IS" LABEL="ISL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="649" CREATED="2009-01-28 17:07:04.0" UUID="2834410d-d060-4bcc-83f7-2f03c28e32d6" TEXT="Hungary, Hungarian People&apos;s Republic" ABBREVIATEDLABEL="HU" LABEL="HUN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="650" CREATED="2009-01-28 17:07:04.0" UUID="ef79c92e-d700-4a09-b3f2-205d81f0d88f" TEXT="Hrvatska (Croatia)" ABBREVIATEDLABEL="HR" LABEL="HRV" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="651" CREATED="2009-01-28 17:07:04.0" UUID="cec6d8ab-7811-4454-a82e-4f54812b2872" TEXT="Hong Kong, Special Administrative Region of China" ABBREVIATEDLABEL="HK" LABEL="HKG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="652" CREATED="2009-01-28 17:07:04.0" UUID="a16e989b-49e7-43c4-b2e5-5a99b070ac84" TEXT="Honduras, Republic of" ABBREVIATEDLABEL="HN" LABEL="HND" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="653" CREATED="2009-01-28 17:07:04.0" UUID="53d64876-217d-450f-914c-2ae5d493651a" TEXT="Holy See (Vatican City State)" ABBREVIATEDLABEL="VA" LABEL="VAT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="654" CREATED="2009-01-28 17:07:04.0" UUID="8349dc2a-fd35-4a79-9484-e5819f06b7e8" TEXT="Heard and McDonald Islands" ABBREVIATEDLABEL="HM" LABEL="HMD" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="655" CREATED="2009-01-28 17:07:04.0" UUID="4261d607-c1a7-4321-b176-a6d38969e468" TEXT="Haiti, Republic of" ABBREVIATEDLABEL="HT" LABEL="HTI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="656" CREATED="2009-01-28 17:07:04.0" UUID="0f2c985c-d544-47e9-a8e0-1f65053937de" TEXT="Guyana, Republic of" ABBREVIATEDLABEL="GY" LABEL="GUY" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="657" CREATED="2009-01-28 17:07:04.0" UUID="71b60d82-2d45-46e2-a758-1e62368a811e" TEXT="Guinea-Bissau, Republic of" ABBREVIATEDLABEL="GW" LABEL="GNB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="658" CREATED="2009-01-28 17:07:04.0" UUID="94aaf65b-98a2-4386-a16f-89b35e530a6e" TEXT="Guinea, Revolutionary People&apos;s Rep&apos;c of" ABBREVIATEDLABEL="GN" LABEL="GIN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="659" CREATED="2009-01-28 17:07:04.0" UUID="ef990a5c-62da-47f0-8587-5cdf2219b30a" TEXT="Guatemala, Republic of" ABBREVIATEDLABEL="GT" LABEL="GTM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="660" CREATED="2009-01-28 17:07:04.0" UUID="81a33e46-4192-4356-9ea8-6dd3f8eb7208" TEXT="Guam" ABBREVIATEDLABEL="GU" LABEL="GUM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="661" CREATED="2009-01-28 17:07:04.0" UUID="7c003250-cd87-4754-a7c6-bb7bfef7bf3c" TEXT="Guadeloupe" ABBREVIATEDLABEL="GP" LABEL="GLP" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="662" CREATED="2009-01-28 17:07:04.0" UUID="81cada32-5b17-449e-adce-07396d31b387" TEXT="Grenada" ABBREVIATEDLABEL="GD" LABEL="GRD" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="663" CREATED="2009-01-28 17:07:04.0" UUID="8ee6dee8-5723-4d75-8032-56d217092470" TEXT="Greenland" ABBREVIATEDLABEL="GL" LABEL="GRL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="664" CREATED="2009-01-28 17:07:04.0" UUID="af1d0f3d-3381-41b8-b40c-a341cdef9a29" TEXT="Greece, Hellenic Republic" ABBREVIATEDLABEL="GR" LABEL="GRC" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="665" CREATED="2009-01-28 17:07:04.0" UUID="ffb7da9c-eaa0-41ad-b8a5-81c0d81b5c1e" TEXT="Gibraltar" ABBREVIATEDLABEL="GI" LABEL="GIB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="666" CREATED="2009-01-28 17:07:04.0" UUID="f374a14c-52c7-4ad2-901b-9001ba6e9b9d" TEXT="Ghana, Republic of" ABBREVIATEDLABEL="GH" LABEL="GHA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="667" CREATED="2009-01-28 17:07:04.0" UUID="69dc9be6-c712-4759-aaf7-9762f5b8c24a" TEXT="Germany" ABBREVIATEDLABEL="DE" LABEL="DEU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="668" CREATED="2009-01-28 17:07:04.0" UUID="f133be04-1696-46a6-83d5-8dfb69bc31f1" TEXT="Georgia" ABBREVIATEDLABEL="GE" LABEL="GEO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="669" CREATED="2009-01-28 17:07:04.0" UUID="2e35707f-4a2d-4aa9-9194-349bb4ba7f91" TEXT="Gambia, Republic of the" ABBREVIATEDLABEL="GM" LABEL="GMB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="670" CREATED="2009-01-28 17:07:04.0" UUID="0dac6829-557d-4a9b-a62d-254eb0f5c9bf" TEXT="Gabon, Gabonese Republic" ABBREVIATEDLABEL="GA" LABEL="GAB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="671" CREATED="2009-01-28 17:07:04.0" UUID="606f526d-3dc3-440a-8c4d-163d7fbd8f80" TEXT="French Southern Territories" ABBREVIATEDLABEL="TF" LABEL="ATF" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="672" CREATED="2009-01-28 17:07:04.0" UUID="e23e6979-e49f-4f5d-89ba-9a9d760fbab2" TEXT="French Polynesia" ABBREVIATEDLABEL="PF" LABEL="PYF" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="673" CREATED="2009-01-28 17:07:04.0" UUID="9a4ad944-2782-4d58-9400-1e2d60f25933" TEXT="French Guiana" ABBREVIATEDLABEL="GF" LABEL="GUF" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="674" CREATED="2009-01-28 17:07:04.0" UUID="a18429f5-5478-4009-98e5-27f194a0e698" TEXT="France, French Republic" ABBREVIATEDLABEL="FR" LABEL="FRA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="675" CREATED="2009-01-28 17:07:04.0" UUID="12ebddd2-722d-46f3-8065-2ca0c7653b29" TEXT="Finland, Republic of" ABBREVIATEDLABEL="FI" LABEL="FIN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="676" CREATED="2009-01-28 17:07:04.0" UUID="13a5612a-b4c5-4c25-9e25-9ca31092cef4" TEXT="Fiji, Republic of the Fiji Islands" ABBREVIATEDLABEL="FJ" LABEL="FJI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="677" CREATED="2009-01-28 17:07:04.0" UUID="3527a40a-0b59-4119-a32f-0c948c6a3d69" TEXT="Falkland Islands (Malvinas)" ABBREVIATEDLABEL="FK" LABEL="FLK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="678" CREATED="2009-01-28 17:07:04.0" UUID="eca8f267-c261-4e71-96ba-53039711bf9e" TEXT="Faeroe Islands" ABBREVIATEDLABEL="FO" LABEL="FRO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="679" CREATED="2009-01-28 17:07:04.0" UUID="ca1fe465-e852-4022-8cdd-8125e31fa818" TEXT="Ethiopia" ABBREVIATEDLABEL="ET" LABEL="ETH" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="680" CREATED="2009-01-28 17:07:04.0" UUID="7b6e18d7-5782-46eb-ba04-3a8e05470f18" TEXT="Estonia" ABBREVIATEDLABEL="EE" LABEL="EST" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="681" CREATED="2009-01-28 17:07:04.0" UUID="b980c57f-2463-4717-8a4a-2a16b06e7a08" TEXT="Eritrea" ABBREVIATEDLABEL="ER" LABEL="ERI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="682" CREATED="2009-01-28 17:07:04.0" UUID="bb8b81ad-42c0-484c-99d8-dc43f5eec2c9" TEXT="Equatorial Guinea, Republic of" ABBREVIATEDLABEL="GQ" LABEL="GNQ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="683" CREATED="2009-01-28 17:07:04.0" UUID="be691718-8810-40a3-be4f-ed654f1dce3c" TEXT="El Salvador, Republic of" ABBREVIATEDLABEL="SV" LABEL="SLV" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="684" CREATED="2009-01-28 17:07:04.0" UUID="788a5fe2-5e86-4055-acb5-fa5b0b180672" TEXT="Egypt, Arab Republic of" ABBREVIATEDLABEL="EG" LABEL="EGY" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="685" CREATED="2009-01-28 17:07:04.0" UUID="4ebf2ba5-f8cc-401c-8714-e52e04dc8d01" TEXT="Ecuador, Republic of" ABBREVIATEDLABEL="EC" LABEL="ECU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="686" CREATED="2009-01-28 17:07:04.0" UUID="e1120e95-746c-48c3-b2b0-457191069bd1" TEXT="Dominican Republic" ABBREVIATEDLABEL="DO" LABEL="DOM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="687" CREATED="2009-01-28 17:07:04.0" UUID="32f335e1-9ae0-4b3e-9759-d4aa36174d51" TEXT="Dominica, Commonwealth of" ABBREVIATEDLABEL="DM" LABEL="DMA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="688" CREATED="2009-01-28 17:07:04.0" UUID="4528ade8-4f95-4e1d-95d2-221b1cf7c0ad" TEXT="Djibouti, Republic of" ABBREVIATEDLABEL="DJ" LABEL="DJI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="689" CREATED="2009-01-28 17:07:04.0" UUID="e4b8e3d4-90c5-4b23-ade0-ac997ba52e04" TEXT="Denmark, Kingdom of" ABBREVIATEDLABEL="DK" LABEL="DNK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="690" CREATED="2009-01-28 17:07:04.0" UUID="b2b6bbc8-c3d4-4216-acfa-3900438ae5e4" TEXT="Czech Republic" ABBREVIATEDLABEL="CZ" LABEL="CZE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="691" CREATED="2009-01-28 17:07:04.0" UUID="c855569b-89bb-4d93-a554-1cc6f3b542e7" TEXT="Cyprus, Republic of" ABBREVIATEDLABEL="CY" LABEL="CYP" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="692" CREATED="2009-01-28 17:07:04.0" UUID="562d74f6-d600-46ef-9f1e-1a9789bfbbf2" TEXT="Cuba, Republic of" ABBREVIATEDLABEL="CU" LABEL="CUB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="693" CREATED="2009-01-28 17:07:04.0" UUID="02399f05-b730-445e-9f04-905cab9372b5" TEXT="Cote D&apos;Ivoire, Ivory Coast, Republic of the" ABBREVIATEDLABEL="CI" LABEL="CIV" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="694" CREATED="2009-01-28 17:07:04.0" UUID="7fe381a9-c616-49c4-a1f5-6e8dee2b2b09" TEXT="Costa Rica, Republic of" ABBREVIATEDLABEL="CR" LABEL="CRI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="695" CREATED="2009-01-28 17:07:04.0" UUID="229596c6-604c-42cc-b02a-39d281c7845c" TEXT="Cook Islands" ABBREVIATEDLABEL="CK" LABEL="COK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="696" CREATED="2009-01-28 17:07:04.0" UUID="8ca108a9-9a99-4ac3-9955-59b2afa559bb" TEXT="Congo, People&apos;s Republic of" ABBREVIATEDLABEL="CG" LABEL="COG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="697" CREATED="2009-01-28 17:07:04.0" UUID="3b0f34b5-5690-45a6-b92b-ebb2e310a4ce" TEXT="Congo, Democratic Republic of" ABBREVIATEDLABEL="CD" LABEL="COD" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="698" CREATED="2009-01-28 17:07:04.0" UUID="21767361-82c8-40d7-a632-f4b3e4ef6e17" TEXT="Comoros, Union of the" ABBREVIATEDLABEL="KM" LABEL="COM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="699" CREATED="2009-01-28 17:07:04.0" UUID="151275ee-ddd1-4c27-b1da-3decdd98c473" TEXT="Colombia, Republic of" ABBREVIATEDLABEL="CO" LABEL="COL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="700" CREATED="2009-01-28 17:07:04.0" UUID="806c1a3a-588b-40d0-a14e-c707bfd1c6d3" TEXT="Cocos (Keeling) Islands" ABBREVIATEDLABEL="CC" LABEL="CCK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="701" CREATED="2009-01-28 17:07:04.0" UUID="08c6ac7c-ab43-4e65-ae77-381bd9a55e12" TEXT="Christmas Island" ABBREVIATEDLABEL="CX" LABEL="CXR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="702" CREATED="2009-01-28 17:07:04.0" UUID="753ee954-dfec-49dc-b375-8096bc89c4c6" TEXT="China, People&apos;s Republic of" ABBREVIATEDLABEL="CN" LABEL="CHN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="703" CREATED="2009-01-28 17:07:04.0" UUID="2079e1fb-2886-4fbd-93da-5e4152713e98" TEXT="Chile, Republic of" ABBREVIATEDLABEL="CL" LABEL="CHL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="704" CREATED="2009-01-28 17:07:04.0" UUID="f33c817b-7673-4217-bd25-7b4462587c98" TEXT="Chad, Republic of" ABBREVIATEDLABEL="TD" LABEL="TCD" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="705" CREATED="2009-01-28 17:07:04.0" UUID="73233739-d0cd-4fc1-a732-a4bd87a97470" TEXT="Central African Republic" ABBREVIATEDLABEL="CF" LABEL="CAF" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="706" CREATED="2009-01-28 17:07:04.0" UUID="a4755147-f0cc-4a4a-9b8c-acfc3ce215fe" TEXT="Cayman Islands" ABBREVIATEDLABEL="KY" LABEL="CYM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="707" CREATED="2009-01-28 17:07:04.0" UUID="f7f69125-f975-4648-a28d-353523125c5a" TEXT="Cape Verde, Republic of" ABBREVIATEDLABEL="CV" LABEL="CPV" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="708" CREATED="2009-01-28 17:07:04.0" UUID="2ca6de1e-4229-4a78-8674-4fcc7e41c7c1" TEXT="Canada" ABBREVIATEDLABEL="CA" LABEL="CAN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="709" CREATED="2009-01-28 17:07:04.0" UUID="e68dd9cc-1372-49d9-a862-203411609215" TEXT="Cameroon, United Republic of" ABBREVIATEDLABEL="CM" LABEL="CMR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="710" CREATED="2009-01-28 17:07:04.0" UUID="6423f32e-2e4a-4cbe-88bc-0a46310fe4c9" TEXT="Cambodia, Kingdom of" ABBREVIATEDLABEL="KH" LABEL="KHM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="711" CREATED="2009-01-28 17:07:04.0" UUID="5a3020a6-9b09-420a-afa2-a98fb7a6e081" TEXT="Burundi, Republic of" ABBREVIATEDLABEL="BI" LABEL="BDI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="712" CREATED="2009-01-28 17:07:04.0" UUID="aacd8a77-d0b2-46e2-b9a3-a63f59a3f6b8" TEXT="Burkina Faso" ABBREVIATEDLABEL="BF" LABEL="BFA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="713" CREATED="2009-01-28 17:07:04.0" UUID="c7d078d6-91f5-4a6e-ba19-3f5791b52840" TEXT="Bulgaria, People&apos;s Republic of" ABBREVIATEDLABEL="BG" LABEL="BGR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="714" CREATED="2009-01-28 17:07:04.0" UUID="3b29dd2b-229f-4861-9ed6-8759aa1cb2aa" TEXT="Brunei Darussalam" ABBREVIATEDLABEL="BN" LABEL="BRN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="715" CREATED="2009-01-28 17:07:04.0" UUID="6218757d-1e31-439a-8249-9c7f40fe112f" TEXT="British Virgin Islands" ABBREVIATEDLABEL="VG" LABEL="VGB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="716" CREATED="2009-01-28 17:07:04.0" UUID="4387fe4f-3507-4e73-8329-45ab5e6a6355" TEXT="British Indian Ocean Territory (Chagos Archipelago)" ABBREVIATEDLABEL="IO" LABEL="IOT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="717" CREATED="2009-01-28 17:07:04.0" UUID="9ec39285-f2d1-4566-bd26-5d8b9500e394" TEXT="Brazil, Federative Republic of" ABBREVIATEDLABEL="BR" LABEL="BRA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="718" CREATED="2009-01-28 17:07:04.0" UUID="0c122eff-dfe4-4ba3-ba95-d365cb893c98" TEXT="Bouvet Island (Bouvetoya)" ABBREVIATEDLABEL="BV" LABEL="BVT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="719" CREATED="2009-01-28 17:07:04.0" UUID="9bda4025-e4af-4137-9362-84f917539c98" TEXT="Botswana, Republic of" ABBREVIATEDLABEL="BW" LABEL="BWA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="720" CREATED="2009-01-28 17:07:04.0" UUID="ff2b25c3-5dca-405f-b2ae-678329384837" TEXT="Bosnia and Herzegovina" ABBREVIATEDLABEL="BA" LABEL="BIH" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="721" CREATED="2009-01-28 17:07:04.0" UUID="1a2d9af9-9a47-491a-ac8c-c49d4834121a" TEXT="Bolivia, Republic of" ABBREVIATEDLABEL="BO" LABEL="BOL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="722" CREATED="2009-01-28 17:07:04.0" UUID="c7f0cd9c-d512-4f47-95b9-4ec471b75510" TEXT="Bhutan, Kingdom of" ABBREVIATEDLABEL="BT" LABEL="BTN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="723" CREATED="2009-01-28 17:07:04.0" UUID="cf9ddab7-72a2-4b21-8851-3fb1f5770feb" TEXT="Bermuda" ABBREVIATEDLABEL="BM" LABEL="BMU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="724" CREATED="2009-01-28 17:07:04.0" UUID="094782c0-07c3-4752-a2e1-1947d39ad261" TEXT="Benin, People&apos;s Republic of" ABBREVIATEDLABEL="BJ" LABEL="BEN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="725" CREATED="2009-01-28 17:07:04.0" UUID="a0094b17-ccb9-41ec-a305-2072fa2d5ce0" TEXT="Belize" ABBREVIATEDLABEL="BZ" LABEL="BLZ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="726" CREATED="2009-01-28 17:07:04.0" UUID="fd68bbf0-d275-4c7a-bc78-cec00d9b97c7" TEXT="Belgium, Kingdom of" ABBREVIATEDLABEL="BE" LABEL="BEL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="727" CREATED="2009-01-28 17:07:04.0" UUID="dddafbed-9677-405b-8155-6a19993fec73" TEXT="Belarus" ABBREVIATEDLABEL="BY" LABEL="BLR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="728" CREATED="2009-01-28 17:07:04.0" UUID="32de453e-0449-402f-a8ad-bd3b69f49892" TEXT="Barbados" ABBREVIATEDLABEL="BB" LABEL="BRB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="729" CREATED="2009-01-28 17:07:04.0" UUID="684869e6-cf8c-4f11-837c-5089a339f79e" TEXT="Bangladesh, People&apos;s Republic of" ABBREVIATEDLABEL="BD" LABEL="BGD" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="730" CREATED="2009-01-28 17:07:04.0" UUID="1324607b-ac9a-4a60-99a4-652a2ad5bf69" TEXT="Bahrain, Kingdom of" ABBREVIATEDLABEL="BH" LABEL="BHR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="731" CREATED="2009-01-28 17:07:04.0" UUID="2f9275b2-4419-40d6-8c28-537c779b9cda" TEXT="Bahamas, Commonwealth of the" ABBREVIATEDLABEL="BS" LABEL="BHS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="732" CREATED="2009-01-28 17:07:04.0" UUID="ac68db52-cf03-4f5f-91a1-db9701de9ad3" TEXT="Azerbaijan, Republic of" ABBREVIATEDLABEL="AZ" LABEL="AZE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="733" CREATED="2009-01-28 17:07:04.0" UUID="0a39146d-6670-47bc-b4fc-3bf3ee6da50e" TEXT="Austria, Republic of" ABBREVIATEDLABEL="AT" LABEL="AUT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="734" CREATED="2009-01-28 17:07:04.0" UUID="b9919135-be23-43ed-adfc-bb1de9bebe72" TEXT="Australia, Commonwealth of" ABBREVIATEDLABEL="AU" LABEL="AUS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="735" CREATED="2009-01-28 17:07:04.0" UUID="24fc5f8b-ef8b-49b3-ad25-70dd6413988e" TEXT="Aruba" ABBREVIATEDLABEL="AW" LABEL="ABW" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="736" CREATED="2009-01-28 17:07:04.0" UUID="5da48d9c-98ee-4827-a895-2c0bb27ec787" TEXT="Armenia" ABBREVIATEDLABEL="AM" LABEL="ARM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="737" CREATED="2009-01-28 17:07:04.0" UUID="32c9f22e-d4b0-4c48-a516-ed570c5fd42c" TEXT="Argentina, Argentine Republic" ABBREVIATEDLABEL="AR" LABEL="ARG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="738" CREATED="2009-01-28 17:07:04.0" UUID="355cd0ea-4604-4a84-8abe-ab35099027e3" TEXT="Antigua and Barbuda" ABBREVIATEDLABEL="AG" LABEL="ATG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="739" CREATED="2009-01-28 17:07:04.0" UUID="3195f1fd-3b06-457b-aba2-f7c3f90cdab7" TEXT="Antarctica (the territory South of 60 deg S)" ABBREVIATEDLABEL="AQ" LABEL="ATA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="740" CREATED="2009-01-28 17:07:04.0" UUID="aeaa9f71-b475-42fe-971b-afff04cc1e69" TEXT="Anguilla" ABBREVIATEDLABEL="AI" LABEL="AIA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="741" CREATED="2009-01-28 17:07:04.0" UUID="3cdbdaaa-eac8-46a8-bb5e-53c9b95f99bf" TEXT="Angola, Republic of" ABBREVIATEDLABEL="AO" LABEL="AGO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="742" CREATED="2009-01-28 17:07:04.0" UUID="381fdbac-dac6-4d1a-9981-f9e2930f2f77" TEXT="Andorra, Principality of" ABBREVIATEDLABEL="AD" LABEL="AND" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="743" CREATED="2009-01-28 17:07:04.0" UUID="03b83252-1cc5-4f92-aaea-359266f65b08" TEXT="American Samoa" ABBREVIATEDLABEL="AS" LABEL="ASM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="744" CREATED="2009-01-28 17:07:04.0" UUID="19491026-b6d4-4e95-8d5c-04b483e55bd8" TEXT="Algeria, People&apos;s Democratic Republic of" ABBREVIATEDLABEL="DZ" LABEL="DZA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="745" CREATED="2009-01-28 17:07:04.0" UUID="4548e332-9051-4e86-bf7d-9809cd8f8fc2" TEXT="Albania, People&apos;s Socialist Republic of" ABBREVIATEDLABEL="AL" LABEL="ALB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="746" CREATED="2009-01-28 17:07:04.0" UUID="f2509c99-7fa4-44c0-bd28-baa910898740" TEXT="Afghanistan" ABBREVIATEDLABEL="AF" LABEL="AFG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="747" CREATED="2009-01-28 17:07:04.0" UUID="4dd0767b-750c-4cbd-8669-65a6500cfc75" TEXT="eu.etaxonomy.cdm.model.name.Rank" LABEL="Rank" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="748" CREATED="2009-01-28 17:07:04.0" UUID="ec4b16ca-cb74-4b41-aef5-3e6de483c7f9" TEXT="" ABBREVIATEDLABEL="" LABEL="Unknown Rank" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="749" CREATED="2009-01-28 17:07:04.0" UUID="b2251096-13f4-4656-9a25-1dc2b0fee187" TEXT="" ABBREVIATEDLABEL="" LABEL="Cultivar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="750" CREATED="2009-01-28 17:07:04.0" UUID="ad7b6cc4-5339-49ad-aa31-a5dd24d7e6ed" TEXT="" ABBREVIATEDLABEL="" LABEL="Cultivar Group" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="751" CREATED="2009-01-28 17:07:04.0" UUID="4849b974-95c9-4404-b607-8a34ff2e420a" TEXT="" ABBREVIATEDLABEL="" LABEL="Graft Chimaera" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="752" CREATED="2009-01-28 17:07:04.0" UUID="c339d32c-cb25-4c2d-af23-3616bae9e36d" TEXT="" ABBREVIATEDLABEL="" LABEL="Grex" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="753" CREATED="2009-01-28 17:07:04.0" UUID="72cc356a-b0db-4f4d-927e-27330d4be54e" TEXT="" ABBREVIATEDLABEL="" LABEL="Denomination Class" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="754" CREATED="2009-01-28 17:07:04.0" UUID="c7219751-0623-4e10-a1b5-4ef8e2a6c4f1" TEXT="" ABBREVIATEDLABEL="" LABEL="Candidate" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="755" CREATED="2009-01-28 17:07:04.0" UUID="74340ed6-5991-4b88-a6d1-06a8a3614ee2" TEXT="" ABBREVIATEDLABEL="" LABEL="Infraspecific Taxon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="756" CREATED="2009-01-28 17:07:04.0" UUID="1c1f9af2-4e38-4ba1-a598-979f621c5af2" TEXT="" ABBREVIATEDLABEL="" LABEL="Subsubform" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="757" CREATED="2009-01-28 17:07:04.0" UUID="c8f3829d-06c9-4450-b930-e4b722ab72ad" TEXT="" ABBREVIATEDLABEL="" LABEL="Subform" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="758" CREATED="2009-01-28 17:07:04.0" UUID="99d914bc-ea75-4372-b697-97ff881c71a7" TEXT="" ABBREVIATEDLABEL="" LABEL="Special Form" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="759" CREATED="2009-01-28 17:07:04.0" UUID="a7782af1-31eb-469e-a8e1-a2090d8c6e0d" TEXT="" ABBREVIATEDLABEL="" LABEL="Form" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="760" CREATED="2009-01-28 17:07:04.0" UUID="a99ac503-e52b-4185-8006-c33c4847defd" TEXT="" ABBREVIATEDLABEL="" LABEL="Convar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="761" CREATED="2009-01-28 17:07:04.0" UUID="86a9316c-1a44-4146-afc8-9e3291c1e205" TEXT="" ABBREVIATEDLABEL="" LABEL="Subsubvariety" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="762" CREATED="2009-01-28 17:07:04.0" UUID="d8fb3d62-103b-4a13-80df-cec906f8db8e" TEXT="" ABBREVIATEDLABEL="" LABEL="Subvariety" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="763" CREATED="2009-01-28 17:07:04.0" UUID="dc53ed0f-19a7-44da-bd1a-33915d02d528" TEXT="" ABBREVIATEDLABEL="" LABEL="Patho Variety" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="764" CREATED="2009-01-28 17:07:04.0" UUID="de70602c-8b7f-4d24-ace1-8acf550c64f0" TEXT="" ABBREVIATEDLABEL="" LABEL="Bio Variety" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="765" CREATED="2009-01-28 17:07:04.0" UUID="d590e101-a05c-43b1-8fa4-e1ed737ba166" TEXT="" ABBREVIATEDLABEL="" LABEL="Variety" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="766" CREATED="2009-01-28 17:07:04.0" UUID="abe4bd83-17fe-4a53-a0b2-ba3821a44f22" TEXT="" ABBREVIATEDLABEL="" LABEL="Infraspecies" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="767" CREATED="2009-01-28 17:07:04.0" UUID="a952dfe3-6716-40ab-8758-6cfe10f3006f" TEXT="" ABBREVIATEDLABEL="" LABEL="Subspecies" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="768" CREATED="2009-01-28 17:07:04.0" UUID="8b9ae5e0-ebb2-470b-bf74-961f859a2ceb" TEXT="" ABBREVIATEDLABEL="" LABEL="Subspecific Aggregate" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="769" CREATED="2009-01-28 17:07:04.0" UUID="fef40811-7e10-464f-8c02-438eb93034cd" TEXT="" ABBREVIATEDLABEL="" LABEL="Species" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="770" CREATED="2009-01-28 17:07:04.0" UUID="54e16a27-c087-4ee3-9431-a81c83ddad43" TEXT="" ABBREVIATEDLABEL="" LABEL="Infrageneric Taxon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="771" CREATED="2009-01-28 17:07:04.0" UUID="7742e64c-bbc4-45a0-96df-b632e3855d28" TEXT="" ABBREVIATEDLABEL="" LABEL="Species Aggregate" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="772" CREATED="2009-01-28 17:07:04.0" UUID="7ab5c990-a1e9-4cad-8c55-460941e69f5b" TEXT="" ABBREVIATEDLABEL="" LABEL="Subseries" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="773" CREATED="2009-01-28 17:07:04.0" UUID="f45db118-0b8c-4d64-b8f1-cd997397f173" TEXT="" ABBREVIATEDLABEL="" LABEL="Series" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="774" CREATED="2009-01-28 17:07:04.0" UUID="7fb5da9d-7e3a-4742-bac9-4251e8326f42" TEXT="" ABBREVIATEDLABEL="" LABEL="Subsection" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="775" CREATED="2009-01-28 17:07:04.0" UUID="ff2aacfb-5b0f-47b8-9137-3ae60d82e244" TEXT="" ABBREVIATEDLABEL="" LABEL="Section" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="776" CREATED="2009-01-28 17:07:04.0" UUID="288e525e-9e7c-4f56-828f-fd5400b02604" TEXT="" ABBREVIATEDLABEL="" LABEL="Infragenus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="777" CREATED="2009-01-28 17:07:04.0" UUID="96549114-b3db-4b03-a620-5f733f1d5f98" TEXT="" ABBREVIATEDLABEL="" LABEL="Subgenus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="778" CREATED="2009-01-28 17:07:04.0" UUID="0a712ab7-1f7d-4d98-b0b9-3e291c996b57" TEXT="" ABBREVIATEDLABEL="" LABEL="Genus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="779" CREATED="2009-01-28 17:07:04.0" UUID="ac956652-f320-40e4-98fb-4da2de7eb213" TEXT="" ABBREVIATEDLABEL="" LABEL="Suprageneric Taxon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="780" CREATED="2009-01-28 17:07:04.0" UUID="632e4379-ca1e-49e4-91a3-3e425e9a849d" TEXT="" ABBREVIATEDLABEL="" LABEL="Infratribe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="781" CREATED="2009-01-28 17:07:04.0" UUID="bed84715-fa26-4f76-8d6f-e8a713fd46ed" TEXT="" ABBREVIATEDLABEL="" LABEL="Subtribe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="782" CREATED="2009-01-28 17:07:04.0" UUID="56b1a005-4dae-40bb-a111-3948d810216b" TEXT="" ABBREVIATEDLABEL="" LABEL="Tribe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="783" CREATED="2009-01-28 17:07:04.0" UUID="13d2aa1f-054b-47c9-b3de-2c49a78d0718" TEXT="" ABBREVIATEDLABEL="" LABEL="Supertribe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="784" CREATED="2009-01-28 17:07:04.0" UUID="8cbd49d2-116e-4909-8df8-bd4967d0f432" TEXT="" ABBREVIATEDLABEL="" LABEL="Infrafamily" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="785" CREATED="2009-01-28 17:07:04.0" UUID="3d781d18-6ced-46d6-b741-5b3c3be7d4dd" TEXT="" ABBREVIATEDLABEL="" LABEL="Subfamily" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="786" CREATED="2009-01-28 17:07:04.0" UUID="2c3f2653-2bd3-4ba5-8707-e5f256b8d9e7" TEXT="" ABBREVIATEDLABEL="" LABEL="Family" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="787" CREATED="2009-01-28 17:07:04.0" UUID="a68196b2-016d-4376-9993-006bfd84564b" TEXT="" ABBREVIATEDLABEL="" LABEL="Superfamily" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="788" CREATED="2009-01-28 17:07:04.0" UUID="86bb93aa-6b2e-4a25-8dea-5b5979b70c75" TEXT="" ABBREVIATEDLABEL="" LABEL="Infraorder" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="789" CREATED="2009-01-28 17:07:04.0" UUID="d734a6b2-45e5-43f7-97d0-e95d57dcaa53" TEXT="" ABBREVIATEDLABEL="" LABEL="Suborder" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="790" CREATED="2009-01-28 17:07:04.0" UUID="23e8b534-f27f-4fe8-aa5e-c1f7c437424e" TEXT="" ABBREVIATEDLABEL="" LABEL="Order" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="791" CREATED="2009-01-28 17:07:04.0" UUID="1cd5a673-b1ca-4af8-90dd-549051206dcd" TEXT="" ABBREVIATEDLABEL="" LABEL="Superorder" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="792" CREATED="2009-01-28 17:07:04.0" UUID="ad466c81-2c0b-4e3e-9d5d-dedc89fdaf25" TEXT="" ABBREVIATEDLABEL="" LABEL="Infraclass" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="793" CREATED="2009-01-28 17:07:04.0" UUID="cc444c04-96a8-4634-9dbb-c4bff1013079" TEXT="" ABBREVIATEDLABEL="" LABEL="Subclass" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="794" CREATED="2009-01-28 17:07:04.0" UUID="48b59716-3891-43de-af35-cb24e18e75cc" TEXT="" ABBREVIATEDLABEL="" LABEL="Class" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="795" CREATED="2009-01-28 17:07:04.0" UUID="e47c0ed3-3230-4131-ac22-fe088d3f7a40" TEXT="" ABBREVIATEDLABEL="" LABEL="Superclass" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="796" CREATED="2009-01-28 17:07:04.0" UUID="c019a2c6-5ac8-4cf9-987e-5e764ed322a9" TEXT="" ABBREVIATEDLABEL="" LABEL="Infradivision" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="797" CREATED="2009-01-28 17:07:04.0" UUID="d3997cb1-4291-42ab-a1fc-0f79fa8e9d66" TEXT="" ABBREVIATEDLABEL="" LABEL="Subdivision" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="798" CREATED="2009-01-28 17:07:04.0" UUID="700f61dd-6e3d-4355-92ca-a1842528fa76" TEXT="" ABBREVIATEDLABEL="" LABEL="Division" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="799" CREATED="2009-01-28 17:07:04.0" UUID="ccbfbeef-1827-4eed-b900-33df2e826717" TEXT="" ABBREVIATEDLABEL="" LABEL="Superdivision" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="800" CREATED="2009-01-28 17:07:04.0" UUID="301bb606-5783-4200-810b-e13c20df7113" TEXT="" ABBREVIATEDLABEL="" LABEL="Infraphylum" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="801" CREATED="2009-01-28 17:07:04.0" UUID="a1b000b3-5985-4c52-bba0-6952dbeb7ecd" TEXT="" ABBREVIATEDLABEL="" LABEL="Subphylum" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="802" CREATED="2009-01-28 17:07:04.0" UUID="fdea7225-e538-401a-89bd-6c6eb8771d5e" TEXT="" ABBREVIATEDLABEL="" LABEL="Phylum" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="803" CREATED="2009-01-28 17:07:04.0" UUID="223e3a1b-a207-4986-9912-bdb4da423fc6" TEXT="" ABBREVIATEDLABEL="" LABEL="Superphylum" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="804" CREATED="2009-01-28 17:07:04.0" UUID="93ae5508-f973-4f0a-8a35-e9cff3fd527e" TEXT="" ABBREVIATEDLABEL="" LABEL="Infrakingdom" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="805" CREATED="2009-01-28 17:07:04.0" UUID="8476148b-06bc-4bb7-9037-3f77ee9a6ee6" TEXT="" ABBREVIATEDLABEL="" LABEL="Subkingdom" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="806" CREATED="2009-01-28 17:07:04.0" UUID="b6d35538-5bb3-46d6-a30e-294c58079984" TEXT="" ABBREVIATEDLABEL="" LABEL="Kingdom" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="807" CREATED="2009-01-28 17:07:04.0" UUID="8a36f6ae-fd53-4c50-8bc1-88858e1d1c65" TEXT="" ABBREVIATEDLABEL="" LABEL="Super Kingdom" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="808" CREATED="2009-01-28 17:07:04.0" UUID="91dbd5fc-1753-4ca3-9fcb-99bf9aba544f" TEXT="" ABBREVIATEDLABEL="" LABEL="Domain" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="809" CREATED="2009-01-28 17:07:04.0" UUID="3b56cda8-d4ed-4486-b824-d3b51dab34f1" TEXT="" ABBREVIATEDLABEL="" LABEL="Empire" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="810" CREATED="2009-01-28 17:07:04.0" UUID="14433f58-3cbe-4172-835c-eb05520e9dff" TEXT="eu.etaxonomy.cdm.model.name.TypeDesignationStatus" LABEL="TypeDesignationStatus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="811" CREATED="2009-01-28 17:07:04.0" UUID="f87c785e-35e7-4e3b-a7c4-8a7172985f01" TEXT="" ABBREVIATEDLABEL="" LABEL="Phototype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="812" CREATED="2009-01-28 17:07:04.0" UUID="6bfb1f27-1937-4922-81aa-9c5b6016ac93" TEXT="" ABBREVIATEDLABEL="" LABEL="Iconotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="813" CREATED="2009-01-28 17:07:04.0" UUID="004e97dd-b1dd-4abb-9047-fbba6fd0c084" TEXT="" ABBREVIATEDLABEL="" LABEL="Isoepitype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="814" CREATED="2009-01-28 17:07:04.0" UUID="e2eee93b-1604-40f7-9d3c-af4dcdc19188" TEXT="" ABBREVIATEDLABEL="" LABEL="Paralectotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="815" CREATED="2009-01-28 17:07:04.0" UUID="84b8c46c-8fb6-47e1-b65f-99e666517a94" TEXT="" ABBREVIATEDLABEL="" LABEL="Syntype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="816" CREATED="2009-01-28 17:07:04.0" UUID="8addd3eb-e9da-4576-8bf4-a66c2f79452e" TEXT="" ABBREVIATEDLABEL="" LABEL="Second Step Neotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="817" CREATED="2009-01-28 17:07:04.0" UUID="0d334a22-5195-4bb3-97d2-53a175b09cbd" TEXT="" ABBREVIATEDLABEL="" LABEL="Second Step Lectotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="818" CREATED="2009-01-28 17:07:04.0" UUID="b8970c37-9bcc-4b5a-b5d4-9d0d10ba1553" TEXT="" ABBREVIATEDLABEL="" LABEL="Paratype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="819" CREATED="2009-01-28 17:07:04.0" UUID="dc121102-bf2c-4e0e-821c-7fba57441710" TEXT="" ABBREVIATEDLABEL="" LABEL="Paraneotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="820" CREATED="2009-01-28 17:07:04.0" UUID="483d10bd-570c-4cae-9dbf-84b88642c89d" TEXT="" ABBREVIATEDLABEL="" LABEL="Isotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="821" CREATED="2009-01-28 17:07:04.0" UUID="d121818c-86ee-4e48-957c-cb14a47638f3" TEXT="" ABBREVIATEDLABEL="" LABEL="Isoneotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="822" CREATED="2009-01-28 17:07:04.0" UUID="cdf42062-6e58-4dc5-80ac-970c6795945f" TEXT="" ABBREVIATEDLABEL="" LABEL="Isolectotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="823" CREATED="2009-01-28 17:07:04.0" UUID="33a5cb52-2465-4c6c-8b03-a6306e001a22" TEXT="" ABBREVIATEDLABEL="" LABEL="Epitype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="824" CREATED="2009-01-28 17:07:04.0" UUID="19ce8dd7-b871-4826-be63-c34ffdf04e05" TEXT="" ABBREVIATEDLABEL="" LABEL="Neotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="825" CREATED="2009-01-28 17:07:04.0" UUID="8a2b9449-d024-4efc-9f5f-7ce5f4796225" TEXT="" ABBREVIATEDLABEL="" LABEL="Lectotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="826" CREATED="2009-01-28 17:07:04.0" UUID="fe463569-4262-421c-b0bd-0cc2aa984b88" TEXT="" ABBREVIATEDLABEL="" LABEL="Holotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="827" CREATED="2009-01-28 17:07:04.0" UUID="e0935ede-744c-4ef9-af5c-085ee3948828" TEXT="eu.etaxonomy.cdm.model.name.NomenclaturalStatusType" LABEL="NomenclaturalStatusType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="828" CREATED="2009-01-28 17:07:04.0" UUID="68b8a3af-06d1-4fdc-acf0-b994061ff6a8" TEXT="Subnudum" ABBREVIATEDLABEL="nom. subnud." LABEL="Subnudum" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="829" CREATED="2009-01-28 17:07:04.0" UUID="b5d9ba47-1e47-41af-a56f-eebbf9816f57" TEXT="Opus Utique Oppr" ABBREVIATEDLABEL="opus. utique oppr." LABEL="Opus Utique Oppr" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="830" CREATED="2009-01-28 17:07:04.0" UUID="c28bb4c9-7b65-4a0c-9d0f-afce1285c98b" TEXT="Valid" ABBREVIATEDLABEL="nom. valid" LABEL="Valid" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="831" CREATED="2009-01-28 17:07:04.0" UUID="60f5ec6a-25c6-4cab-ab48-fbf6b7862157" TEXT="Provisional" ABBREVIATEDLABEL="nom. provis." LABEL="Provisional" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="832" CREATED="2009-01-28 17:07:04.0" UUID="f9ddb607-32b7-4dd3-a6cb-59ca3c37bdf1" TEXT="Combination Invalid" ABBREVIATEDLABEL="comb. inval." LABEL="Combination Invalid" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="833" CREATED="2009-01-28 17:07:04.0" UUID="a3af565e-2c12-4d9b-aa25-7aff75c0991d" TEXT="Nudum" ABBREVIATEDLABEL="nom. nud." LABEL="Nudum" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="834" CREATED="2009-01-28 17:07:04.0" UUID="84345b5d-a59c-4423-86c3-f3bfdb7a6581" TEXT="Invalid" ABBREVIATEDLABEL="nom. inval." LABEL="Invalid" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="835" CREATED="2009-01-28 17:07:04.0" UUID="5318b0ef-96dc-4896-8e13-cc6961a406d0" TEXT="Sanctioned" ABBREVIATEDLABEL="nom. sanct." LABEL="Sanctioned" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="836" CREATED="2009-01-28 17:07:04.0" UUID="bbb80672-9e0e-4cdf-b389-60b7757995f1" TEXT="Conserved" ABBREVIATEDLABEL="nom. cons." LABEL="Conserved" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="837" CREATED="2009-01-28 17:07:04.0" UUID="4ea86294-cfee-4494-b41b-5f16aa68cc88" TEXT="Rejected Prop" ABBREVIATEDLABEL="nom. rej. prop." LABEL="Rejected Prop" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="838" CREATED="2009-01-28 17:07:04.0" UUID="fe9039ec-215e-4339-bfd1-dfcfe9d4b0f4" TEXT="Orthography Conserved" ABBREVIATEDLABEL="nom. orth. cons." LABEL="Orthography Conserved" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="839" CREATED="2009-01-28 17:07:04.0" UUID="fe9ab05c-29fc-4f35-b7a1-ba29ce0e4526" TEXT="Utique Rejected Prop" ABBREVIATEDLABEL="nom. utique rej. prop." LABEL="Utique Rejected Prop" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="840" CREATED="2009-01-28 17:07:04.0" UUID="8a6e0583-bc96-44ab-93f9-d6523f355295" TEXT="Novum" ABBREVIATEDLABEL="nom. nov." LABEL="Novum" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="841" CREATED="2009-01-28 17:07:04.0" UUID="600987fa-4a6c-47d6-9160-62202cb07651" TEXT="Alternative" ABBREVIATEDLABEL="nom. altern." LABEL="Alternative" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="842" CREATED="2009-01-28 17:07:04.0" UUID="f9d20acb-9c47-4d86-9480-aceb3c040738" TEXT="Legitimate" ABBREVIATEDLABEL="nom. legit." LABEL="Legitimate" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="843" CREATED="2009-01-28 17:07:04.0" UUID="93075ef0-e1c9-46b6-8911-4eecca5f32bc" TEXT="Orthography Conserved Prop" ABBREVIATEDLABEL="nom. orth. cons. prop." LABEL="Orthography Conserved Prop" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="844" CREATED="2009-01-28 17:07:04.0" UUID="c9a57665-266a-4543-83a9-8b6c0787cf6e" TEXT="Conserved Prop" ABBREVIATEDLABEL="nom. cons. prop." LABEL="Conserved Prop" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="845" CREATED="2009-01-28 17:07:04.0" UUID="19ea45a1-5642-4172-84d0-393fb950f481" TEXT="Utique Rejected" ABBREVIATEDLABEL="nom. utique rej." LABEL="Utique Rejected" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="846" CREATED="2009-01-28 17:07:04.0" UUID="1c5ec4fc-2e68-45db-bcb5-a725e4c5ce7b" TEXT="Rejected" ABBREVIATEDLABEL="nom. rej." LABEL="Rejected" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="847" CREATED="2009-01-28 17:07:04.0" UUID="fbcaa4f9-0e2d-4c56-b8ea-ab241746def0" TEXT="Superfluous" ABBREVIATEDLABEL="nom. superfl." LABEL="Superfluous" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="848" CREATED="2009-01-28 17:07:04.0" UUID="edd5d0f4-5b6f-4a10-b1df-3f7c046b3e26" TEXT="Illegitimate" ABBREVIATEDLABEL="nom. illeg." LABEL="Illegitimate" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="849" CREATED="2009-01-28 17:07:04.0" UUID="28120238-a734-40c7-95d3-d88dde96da85" TEXT="Confusum" ABBREVIATEDLABEL="nom. confus." LABEL="Confusum" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="850" CREATED="2009-01-28 17:07:04.0" UUID="77935ab4-034d-4b8b-955c-d82d144ba68e" TEXT="Doubtful" ABBREVIATEDLABEL="nom. dub." LABEL="Doubtful" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="851" CREATED="2009-01-28 17:07:04.0" UUID="b26d9137-e9f3-4744-b756-d13db5792fc6" TEXT="Ambiguous" ABBREVIATEDLABEL="nom. ambig." LABEL="Ambiguous" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="852" CREATED="2009-01-28 17:07:04.0" UUID="6327d819-8ca7-49d0-98cf-a4844ad3f13f" TEXT="eu.etaxonomy.cdm.model.taxon.SynonymType" LABEL="SynonymType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="853" CREATED="2009-01-28 17:07:04.0" UUID="b29a14fd-2b0b-412a-a1a8-aad99a801ade" TEXT="" ABBREVIATEDLABEL="has heterotypic synonym" LABEL="heterotypic synonym of" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="854" CREATED="2009-01-28 17:07:04.0" UUID="81767ba2-2a26-44b6-8093-81ae1add0ea9" TEXT="" LABEL="has heterotypic synonym" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="855" CREATED="2009-01-28 17:07:04.0" UUID="7fcfa524-bd36-4040-858b-1ae25beda078" TEXT="" ABBREVIATEDLABEL="has homotypic synonym" LABEL="homotypic synonym of" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="856" CREATED="2009-01-28 17:07:04.0" UUID="e5bc8d8f-f081-430b-b6f2-8df427012837" TEXT="" LABEL="has homotypic synonym" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="857" CREATED="2009-01-28 17:07:04.0" UUID="db7263e7-3db0-410b-a03a-381c0ebb3caa" TEXT="" ABBREVIATEDLABEL="has synonym" LABEL="synonym of" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="858" CREATED="2009-01-28 17:07:04.0" UUID="79ed507c-6968-48f4-a69a-eefdfd5ae17f" TEXT="" LABEL="has synonym" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="859" CREATED="2009-01-28 17:07:04.0" UUID="ecd71fef-f211-4e8b-ad5c-cf6eb7e87643" TEXT="eu.etaxonomy.cdm.model.name.HybridRelationshipType" LABEL="HybridRelationshipType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="860" CREATED="2009-01-28 17:07:04.0" UUID="911009d9-a5bc-42d7-89f4-a75e49e5b535" TEXT="" ABBREVIATEDLABEL="Child" LABEL="Male Parent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="861" CREATED="2009-01-28 17:07:04.0" UUID="fcfef967-b1d8-4d66-a580-6ff5aeccd5a0" TEXT="" LABEL="Child" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="862" CREATED="2009-01-28 17:07:04.0" UUID="7299d15e-d998-4b7a-8978-784ab16480fc" TEXT="" ABBREVIATEDLABEL="Child" LABEL="Female Parent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="863" CREATED="2009-01-28 17:07:04.0" UUID="7c9d44a8-de06-488b-a526-8c9258e44395" TEXT="" LABEL="Child" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="864" CREATED="2009-01-28 17:07:04.0" UUID="b2348eb6-b3a4-4481-85cb-f7c96fa1df49" TEXT="" ABBREVIATEDLABEL="Child" LABEL="Second Parent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="865" CREATED="2009-01-28 17:07:04.0" UUID="9379bd67-6ee8-43f9-a5f9-e220b9eb1a5b" TEXT="" LABEL="Child" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="866" CREATED="2009-01-28 17:07:04.0" UUID="b134a0d4-724a-4c9c-a95b-4ce883b6ae83" TEXT="" ABBREVIATEDLABEL="Child" LABEL="First Parent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="867" CREATED="2009-01-28 17:07:04.0" UUID="d289cf76-6f3d-43fb-9ccb-22f471697f41" TEXT="" LABEL="Child" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="868" CREATED="2009-01-28 17:07:04.0" UUID="c84eabdd-f2a3-4bfe-8ed3-c9ffc4d27a04" TEXT="eu.etaxonomy.cdm.model.name.NameRelationshipType" LABEL="NameRelationshipType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="869" CREATED="2009-01-28 17:07:04.0" UUID="30908fdc-9764-4678-ba9e-fbee45cabd70" TEXT="" ABBREVIATEDLABEL="is new combination blocked by" LABEL="blocking name for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="870" CREATED="2009-01-28 17:07:04.0" UUID="f785d058-b9fc-4e61-a359-828842368160" TEXT="" LABEL="is new combination blocked by" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="871" CREATED="2009-01-28 17:07:04.0" UUID="35587246-b135-4650-bbf6-b04193ac9260" TEXT="" ABBREVIATEDLABEL="is later validating" LABEL="later validated by" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="872" CREATED="2009-01-28 17:07:04.0" UUID="6f6eac46-6190-4ba9-983f-58794c39c4e5" TEXT="" LABEL="is later validating" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="873" CREATED="2009-01-28 17:07:04.0" UUID="7f3d5566-625d-4d36-bb9c-bdaf22a2eaeb" TEXT="" ABBREVIATEDLABEL="is validating" LABEL="validated by" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="874" CREATED="2009-01-28 17:07:04.0" UUID="5df4f2b3-06b6-4dc3-9f50-a9cc37b224fe" TEXT="" LABEL="is validating" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="875" CREATED="2009-01-28 17:07:04.0" UUID="cadbb859-0786-4f6d-b419-37ce8e18a1c8" TEXT="" ABBREVIATEDLABEL="is rejected in favour of" LABEL="conserved against" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="876" CREATED="2009-01-28 17:07:04.0" UUID="93df2f8d-b6fe-4e88-bae8-04357951b304" TEXT="" LABEL="is rejected in favour of" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="877" CREATED="2009-01-28 17:07:04.0" UUID="bd7743bb-8860-4641-a39f-7bbf2ccc3ff6" TEXT="" ABBREVIATEDLABEL="is new name for" LABEL="replaced synonym for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="878" CREATED="2009-01-28 17:07:04.0" UUID="b7fdaf5a-de00-4a40-a52b-50282fd99d49" TEXT="" LABEL="is new name for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="879" CREATED="2009-01-28 17:07:04.0" UUID="9ac3331c-2143-4ba9-a38a-64b8654022e5" TEXT="" ABBREVIATEDLABEL="is new combination for" LABEL="basionym for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="880" CREATED="2009-01-28 17:07:04.0" UUID="853bcfcf-7e0d-4758-95ff-d24de2baf9ad" TEXT="" LABEL="is new combination for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="881" CREATED="2009-01-28 17:07:04.0" UUID="3f6ef855-dc84-4055-9c5b-9e02845a74f3" TEXT="" ABBREVIATEDLABEL="has alternative name" LABEL="alternative name for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="882" CREATED="2009-01-28 17:07:04.0" UUID="72737cc7-81b6-40db-85b4-754a5fb1d89b" TEXT="" LABEL="has alternative name" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="883" CREATED="2009-01-28 17:07:04.0" UUID="78925860-6938-4b8f-b716-8dcf882a3252" TEXT="" ABBREVIATEDLABEL="is treated as earlier homonym for" LABEL="treated as later homonym for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="884" CREATED="2009-01-28 17:07:04.0" UUID="521e900a-8bf0-4512-bd4e-1e02f564568d" TEXT="" LABEL="is treated as earlier homonym for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="885" CREATED="2009-01-28 17:07:04.0" UUID="1adf68d6-ffa6-4daf-8240-4d6bd0c42c18" TEXT="" ABBREVIATEDLABEL="is earlier homonym for" LABEL="later homonym for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="886" CREATED="2009-01-28 17:07:04.0" UUID="4ccbc717-8d79-4426-8d52-e42da8e00acf" TEXT="" LABEL="is earlier homonym for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="887" CREATED="2009-01-28 17:07:04.0" UUID="d693b98a-534b-4292-8f73-d6306c76f337" TEXT="" ABBREVIATEDLABEL="has orthographic variant" LABEL="orthographic variant for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="888" CREATED="2009-01-28 17:07:04.0" UUID="43960382-21c7-4998-ac08-3cdba1dd1f2a" TEXT="" LABEL="has orthographic variant" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="889" CREATED="2009-01-28 17:07:04.0" UUID="bed48364-2d3d-44da-a9ff-504cf108a3af" TEXT="eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType" LABEL="TaxonRelationshipType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="890" CREATED="2009-01-28 17:07:04.0" UUID="e6e1936f-8808-4596-b2d3-a2783f323c73" TEXT="" ABBREVIATEDLABEL="All Relationships" LABEL="All Relationships" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="891" CREATED="2009-01-28 17:07:04.0" UUID="2b9e3d54-641c-4879-b75a-8824ad2401a6" TEXT="" LABEL="All Relationships" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="892" CREATED="2009-01-28 17:07:04.0" UUID="19e8fd0d-005f-4a1f-8778-bcd51eaf4f1b" TEXT="" ABBREVIATEDLABEL="Not Congruent to" LABEL="Not Congruent to" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="893" CREATED="2009-01-28 17:07:04.0" UUID="036119d8-7978-4821-a300-6ed6a5549362" TEXT="" LABEL="Not Congruent to" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="894" CREATED="2009-01-28 17:07:04.0" UUID="298c6033-a9a9-47bb-8b7a-2901620581e8" TEXT="" ABBREVIATEDLABEL="Does Not Include" LABEL="Not Included in" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="895" CREATED="2009-01-28 17:07:04.0" UUID="40c5d5f8-a52d-4bbd-a043-d83ccc8bec3f" TEXT="" LABEL="Does Not Include" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="896" CREATED="2009-01-28 17:07:04.0" UUID="9071f1df-0c45-4bed-a363-ac62096d18be" TEXT="" ABBREVIATEDLABEL="Included in or Overlaps or Excludes" LABEL="Includes or Overlaps or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="897" CREATED="2009-01-28 17:07:04.0" UUID="a016dc2b-3b65-4b27-b5bb-4e33c3139e5d" TEXT="" LABEL="Included in or Overlaps or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="898" CREATED="2009-01-28 17:07:04.0" UUID="79a61ba3-13a0-4319-8c2b-1724383e5b16" TEXT="" ABBREVIATEDLABEL="Congruent to or Overlaps or Excludes" LABEL="Congruent to or Overlaps or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="899" CREATED="2009-01-28 17:07:04.0" UUID="01dfb89a-e135-4f61-a766-d891f954d7d3" TEXT="" LABEL="Congruent to or Overlaps or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="900" CREATED="2009-01-28 17:07:04.0" UUID="2a4c168a-67b9-4780-be28-5fb1e5812e9e" TEXT="" ABBREVIATEDLABEL="Overlaps or Excludes" LABEL="Overlaps or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="901" CREATED="2009-01-28 17:07:04.0" UUID="90e08c4e-500a-4078-8dd3-64e8e76ea292" TEXT="" LABEL="Overlaps or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="902" CREATED="2009-01-28 17:07:04.0" UUID="5c6ac42c-6be0-44d0-b1f4-a5edac1c1028" TEXT="" ABBREVIATEDLABEL="Does Not Overlap" LABEL="Does Not Overlap" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="903" CREATED="2009-01-28 17:07:04.0" UUID="98e3128a-b2af-4524-9266-a865b3d95081" TEXT="" LABEL="Does Not Overlap" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="904" CREATED="2009-01-28 17:07:04.0" UUID="70148200-052b-4748-b150-22008fbe6a84" TEXT="" ABBREVIATEDLABEL="Included in or Includes or Excludes" LABEL="Included in or Includes or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="905" CREATED="2009-01-28 17:07:04.0" UUID="e7cd2d82-4fb3-4d10-b3e0-261f08d4ca09" TEXT="" LABEL="Included in or Includes or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="906" CREATED="2009-01-28 17:07:04.0" UUID="a809f393-061f-4eda-88ae-a85e74c077d8" TEXT="" ABBREVIATEDLABEL="Congruent to or Included in or Excludes" LABEL="Congruent to or Includes or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="907" CREATED="2009-01-28 17:07:04.0" UUID="c17cb687-20fd-4583-8536-3c05a599f665" TEXT="" LABEL="Congruent to or Included in or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="908" CREATED="2009-01-28 17:07:04.0" UUID="f5ba6c33-cfbf-4183-9376-f4750e52ab66" TEXT="" ABBREVIATEDLABEL="Included in or Excludes" LABEL="Includes or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="909" CREATED="2009-01-28 17:07:04.0" UUID="205dcb7f-71d7-41b3-80b9-97f0d0c70ff6" TEXT="" LABEL="Included in or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="910" CREATED="2009-01-28 17:07:04.0" UUID="611e5759-f556-4280-800f-55e2d449e490" TEXT="" ABBREVIATEDLABEL="Congruent to or Excludes" LABEL="Congruent to or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="911" CREATED="2009-01-28 17:07:04.0" UUID="5de53ae2-66af-4cdc-945b-ac73ad575ad3" TEXT="" LABEL="Congruent to or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="912" CREATED="2009-01-28 17:07:04.0" UUID="bc2f99b3-fffc-453f-9fc4-9e5a86bab45b" TEXT="" ABBREVIATEDLABEL="Excludes" LABEL="Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="913" CREATED="2009-01-28 17:07:04.0" UUID="df003064-7034-49e5-b245-cef7cb333f37" TEXT="" LABEL="Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="914" CREATED="2009-01-28 17:07:04.0" UUID="1c0f2730-51a2-4117-a313-72b0f5d3953f" TEXT="" ABBREVIATEDLABEL="Does Not Exclude" LABEL="Does Not Exclude" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="915" CREATED="2009-01-28 17:07:04.0" UUID="9105023d-4a17-4251-b413-74ffa5ce59f3" TEXT="" LABEL="Does Not Exclude" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="916" CREATED="2009-01-28 17:07:04.0" UUID="8904f9be-d1cc-4efd-99b9-126896158ea0" TEXT="" ABBREVIATEDLABEL="Included in or Includes or Overlaps" LABEL="Included in or Includes or Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="917" CREATED="2009-01-28 17:07:04.0" UUID="b600aba1-0bbc-4dac-90a6-1bfdf95a84ea" TEXT="" LABEL="Included in or Includes or Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="918" CREATED="2009-01-28 17:07:04.0" UUID="8306f18f-755b-4b95-9920-a12f182ef8a0" TEXT="" ABBREVIATEDLABEL="Congruent to or Included in or Overlaps" LABEL="Congruent to or Includes or Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="919" CREATED="2009-01-28 17:07:04.0" UUID="0e3b64e3-6695-4477-917d-66df1daf9b98" TEXT="" LABEL="Congruent to or Included in or Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="920" CREATED="2009-01-28 17:07:04.0" UUID="fa9c8e37-5b9c-421d-b720-45e6a03135b3" TEXT="" ABBREVIATEDLABEL="Included in or Overlaps" LABEL="Includes or Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="921" CREATED="2009-01-28 17:07:04.0" UUID="bdda147c-2ffb-4b89-a1fa-c161417ba8e9" TEXT="" LABEL="Included in or Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="922" CREATED="2009-01-28 17:07:04.0" UUID="2d0c5eb3-3435-4dce-943c-53205fe12640" TEXT="" ABBREVIATEDLABEL="Congruent to or Overlaps" LABEL="Congruent to or Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="923" CREATED="2009-01-28 17:07:04.0" UUID="2e406255-7a52-4e70-aebd-6dc094222b2a" TEXT="" LABEL="Congruent to or Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="924" CREATED="2009-01-28 17:07:04.0" UUID="fe7322c6-aabf-4b90-bfd3-e06120e3d6d5" TEXT="" ABBREVIATEDLABEL="Overlaps" LABEL="Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="925" CREATED="2009-01-28 17:07:04.0" UUID="0695d667-0763-4954-898a-c68bf2d86524" TEXT="" LABEL="Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="926" CREATED="2009-01-28 17:07:04.0" UUID="5a35876a-6dd7-405f-b232-456286adb88f" TEXT="" ABBREVIATEDLABEL="Congruent to or Included in or Includes" LABEL="Congruent to or Included in or Includes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="927" CREATED="2009-01-28 17:07:04.0" UUID="6bd3b376-04ee-4d83-bf8b-206ffe83ecaf" TEXT="" LABEL="Congruent to or Included in or Includes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="928" CREATED="2009-01-28 17:07:04.0" UUID="122bdca0-bf2f-4ccb-9887-ee80f475675d" TEXT="" ABBREVIATEDLABEL="Included in or Includes" LABEL="Included in or Includes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="929" CREATED="2009-01-28 17:07:04.0" UUID="4038f915-c62d-4556-98ac-e22cda18d199" TEXT="" LABEL="Included in or Includes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="930" CREATED="2009-01-28 17:07:04.0" UUID="07f481db-a80b-4230-8676-f9901acf4cd7" TEXT="" ABBREVIATEDLABEL="Congruent to or Included in" LABEL="Congruent to or Includes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="931" CREATED="2009-01-28 17:07:04.0" UUID="feef5c35-9d0b-46dc-96ee-537fd0b79a5e" TEXT="" LABEL="Congruent to or Included in" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="932" CREATED="2009-01-28 17:07:04.0" UUID="7c0b51b1-53b0-447f-900c-221da66f2509" TEXT="" ABBREVIATEDLABEL="Included in" LABEL="Includes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="933" CREATED="2009-01-28 17:07:04.0" UUID="f96fb64d-77b2-4f5a-9d3c-02ac96a2b7ac" TEXT="" LABEL="Included in" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="934" CREATED="2009-01-28 17:07:04.0" UUID="94c7c9a8-f379-48e9-95cc-1f035f8027d3" TEXT="" ABBREVIATEDLABEL="Congruent to" LABEL="Congruent to" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="935" CREATED="2009-01-28 17:07:04.0" UUID="70eba982-1ebd-4dbe-a861-15e141036f65" TEXT="" LABEL="Congruent to" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="936" CREATED="2009-01-28 17:07:04.0" UUID="5b6598b1-e041-4e83-b6b8-b46572922807" TEXT="" ABBREVIATEDLABEL="Contradiction" LABEL="Contradiction" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="937" CREATED="2009-01-28 17:07:04.0" UUID="79c7bd46-e88c-40c0-afee-7b2b418b7516" TEXT="" LABEL="Contradiction" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="938" CREATED="2009-01-28 17:07:04.0" UUID="b4200179-ccda-448b-8a38-02ab79736ece" TEXT="" ABBREVIATEDLABEL="Has Invalid Designation" LABEL="Invalid Designation for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="939" CREATED="2009-01-28 17:07:04.0" UUID="3a710bd4-c1b0-4a4d-8587-224310e40e51" TEXT="" LABEL="Has Invalid Designation" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="940" CREATED="2009-01-28 17:07:04.0" UUID="cecd13a0-271b-4f41-b9a1-592ae2323b41" TEXT="" ABBREVIATEDLABEL="Has Misapplied Name" LABEL="Misapplied Name for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="941" CREATED="2009-01-28 17:07:04.0" UUID="5d6bb90b-cc37-435f-8e6b-8c6bcdc57f06" TEXT="" LABEL="Has Misapplied Name" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="942" CREATED="2009-01-28 17:07:04.0" UUID="3411172b-f2d0-4450-a8f9-1d1ebb05b229" TEXT="" ABBREVIATEDLABEL="Taxonomically Includes" LABEL="Taxonomically Included in" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="943" CREATED="2009-01-28 17:07:04.0" UUID="103cd692-1e80-49ad-a018-d5795201bb2b" TEXT="" LABEL="Taxonomically Includes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="944" CREATED="2009-01-28 17:07:04.0" UUID="314864b2-74cf-44e9-aee0-c18c1158cea2" TEXT="eu.etaxonomy.cdm.model.common.MarkerType" LABEL="MarkerType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="945" CREATED="2009-01-28 17:07:04.0" UUID="c7655a6a-1094-4409-aa6a-78a185801eb2" TEXT="" ABBREVIATEDLABEL="" LABEL="complete" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="946" CREATED="2009-01-28 17:07:04.0" UUID="778088b3-9a37-47e4-a0db-f558361bf9a7" TEXT="" ABBREVIATEDLABEL="" LABEL="is doubtful" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="947" CREATED="2009-01-28 17:07:04.0" UUID="210d4194-8029-4fd3-ad9f-6007e6dc634e" TEXT="" ABBREVIATEDLABEL="" LABEL="imported" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="948" CREATED="2009-01-28 17:07:04.0" UUID="a429dc88-f136-4457-96f8-16bd5fb20b4d" TEXT="" ABBREVIATEDLABEL="" LABEL="to be checked" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="949" CREATED="2009-01-28 17:07:04.0" UUID="18ab7618-cc05-4d87-a51b-29d7658142dd" TEXT="eu.etaxonomy.cdm.model.common.AnnotationType" LABEL="AnnotationType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="950" CREATED="2009-01-28 17:07:04.0" UUID="6e04dbed-7218-4d92-a9a2-d6f47cf5a189" TEXT="" ABBREVIATEDLABEL="" LABEL="technical" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="951" CREATED="2009-01-28 17:07:04.0" UUID="feba298f-cf82-4494-9298-ada87b160305" TEXT="" ABBREVIATEDLABEL="" LABEL="editorial" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="952" CREATED="2009-01-28 17:07:04.0" UUID="8304cfa7-bbb8-4d07-8d4f-68d76e30e369" TEXT="eu.etaxonomy.cdm.model.location.NamedAreaType" LABEL="NamedAreaType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="953" CREATED="2009-01-28 17:07:04.0" UUID="9a83bd0b-7913-4937-8c06-464a0709e596" TEXT="administration area" ABBREVIATEDLABEL="" LABEL="administration area" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="954" CREATED="2009-01-28 17:07:04.0" UUID="c1a19a91-2c80-4266-818d-5f4b9fc082b7" TEXT=" &quot;natural area" ABBREVIATEDLABEL="" LABEL="natural area" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="955" CREATED="2009-01-28 17:07:04.0" UUID="ddba8b4e-31b9-486d-95a4-ed81a1c64f46" TEXT="eu.etaxonomy.cdm.model.location.NamedAreaLevel" LABEL="NamedAreaLevel" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="956" CREATED="2009-01-28 17:07:04.0" UUID="32e8f949-8651-4f98-81cd-d6abbc02f170" TEXT="Country" ABBREVIATEDLABEL="" LABEL="Country" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="957" CREATED="2009-01-28 17:07:04.0" UUID="cc2ae272-ed76-4f6f-b201-f5f01f351dec" TEXT="Town" ABBREVIATEDLABEL="" LABEL="Town" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="958" CREATED="2009-01-28 17:07:04.0" UUID="c825616e-0018-475c-8f01-d2d60b421752" TEXT="Province" ABBREVIATEDLABEL="" LABEL="Province" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="959" CREATED="2009-01-28 17:07:04.0" UUID="8d58b6ff-0ef2-46f8-9b69-62e638109c73" TEXT="State" ABBREVIATEDLABEL="" LABEL="State" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="960" CREATED="2009-01-28 17:07:04.0" UUID="9aeeef20-bdbe-4165-b4d5-08d3ea8bd69e" TEXT="Nature Reserve" ABBREVIATEDLABEL="" LABEL="Nature Reserve" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="961" CREATED="2009-01-28 17:07:04.0" UUID="17d1c09b-6544-4177-9500-3f6a57c0fa3c" TEXT="TDWG Level 4" ABBREVIATEDLABEL="" LABEL="TDWG Level 4" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="962" CREATED="2009-01-28 17:07:04.0" UUID="52832a9e-bb27-450a-9698-1d0261ab7734" TEXT=" &quot;TDWG Level 3" ABBREVIATEDLABEL="" LABEL="TDWG Level 3" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="963" CREATED="2009-01-28 17:07:04.0" UUID="3c05a6f5-8799-4d36-85ee-135f01bee90c" TEXT="TDWG Level 2" ABBREVIATEDLABEL="" LABEL="TDWG Level 2" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="964" CREATED="2009-01-28 17:07:04.0" UUID="010f5578-5a9e-4d9c-94fe-2302a9e14dfd" TEXT=" &quot;TDWG Level 1" ABBREVIATEDLABEL="" LABEL="TDWG Level 1" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="965" CREATED="2009-01-28 17:07:04.0" UUID="1db3d6d4-a65b-4ee8-b5dd-0b1e9539de5b" TEXT="eu.etaxonomy.cdm.model.name.NomenclaturalCode" LABEL="NomenclaturalCode" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="966" CREATED="2009-01-28 17:07:04.0" UUID="4ba9790d-8749-48ec-89ce-3d104e3673a8" TEXT="ICNAFP" ABBREVIATEDLABEL="" LABEL="International Code of Botanical Nomenclature" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="967" CREATED="2009-01-28 17:07:04.0" UUID="42222d02-7af4-4eb9-87bb-020fe08ee1b8" TEXT="ICVCN" ABBREVIATEDLABEL="" LABEL="International Code of Virus Classification and Nomenclature" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="968" CREATED="2009-01-28 17:07:04.0" UUID="8c5d79e3-3ff6-4781-a298-71ea07fe7a85" TEXT="ICZN" ABBREVIATEDLABEL="" LABEL="International Code of Zoological Nomenclature" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="969" CREATED="2009-01-28 17:07:04.0" UUID="068331bf-a9da-4182-96b7-b9f7e8aa0238" TEXT="ICNCP" ABBREVIATEDLABEL="" LABEL="International Code of Nomenclature for Cultivated Plants" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="970" CREATED="2009-01-28 17:07:04.0" UUID="26603512-dacd-4dce-9b03-c41facf9a78d" TEXT="ICNB" ABBREVIATEDLABEL="" LABEL="International Code of Nomenclature of Bacteria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="971" CREATED="2009-01-28 17:07:04.0" UUID="0afbf4c4-1558-4a05-9884-ed5b9bd5e017" TEXT="eu.etaxonomy.cdm.model.description.Feature" LABEL="Feature" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="972" CREATED="2009-01-28 17:07:04.0" UUID="ca1788e3-9a44-4087-ba0a-9fe1bf1ecc04" TEXT="Occurrence" ABBREVIATEDLABEL="100000" LABEL="Occurrence" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="973" CREATED="2009-01-28 17:07:04.0" UUID="eb7f4830-1fce-4eae-8e5d-129dc630af36" TEXT="Phenology" ABBREVIATEDLABEL="100000" LABEL="Phenology" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="974" CREATED="2009-01-28 17:07:04.0" UUID="ceb3ad27-fac3-41d8-9ed8-75857281fafd" TEXT="Citation" ABBREVIATEDLABEL="100000" LABEL="Citation" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="975" CREATED="2009-01-28 17:07:04.0" UUID="99a99814-3800-4f29-833e-c18a623d668a" TEXT="Materials Methods" ABBREVIATEDLABEL="100000" LABEL="Materials Methods" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="976" CREATED="2009-01-28 17:07:04.0" UUID="4a1cf2e0-de3c-4b80-a211-79880959ff4b" TEXT="Key" ABBREVIATEDLABEL="100000" LABEL="Key" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="977" CREATED="2009-01-28 17:07:04.0" UUID="077abbc9-2bfc-49e8-99c5-808c3ba7f0aa" TEXT="Synopsis" ABBREVIATEDLABEL="100000" LABEL="Synopsis" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="978" CREATED="2009-01-28 17:07:04.0" UUID="28eec021-c820-43d1-8598-acb932c85902" TEXT="Abstract" ABBREVIATEDLABEL="100000" LABEL="Abstract" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="979" CREATED="2009-01-28 17:07:04.0" UUID="787d97ab-118b-4f39-8d58-21967c4ec74c" TEXT="Conservation" ABBREVIATEDLABEL="100000" LABEL="Conservation" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="980" CREATED="2009-01-28 17:07:04.0" UUID="e507b217-fd4d-4dc9-b2ab-5f10e36304d8" TEXT="Discussion" ABBREVIATEDLABEL="100000" LABEL="Discussion" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="981" CREATED="2009-01-28 17:07:04.0" UUID="9747e8a9-b519-48a5-b6ac-830d386575eb" TEXT="Uses" ABBREVIATEDLABEL="100000" LABEL="Uses" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="982" CREATED="2009-01-28 17:07:04.0" UUID="cd343aee-82ee-4662-8b14-9723e49a6e55" TEXT="Ecology" ABBREVIATEDLABEL="100000" LABEL="Ecology" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="983" CREATED="2009-01-28 17:07:04.0" UUID="71c18886-a17f-4f58-b9b3-28ed5d028727" TEXT="Distribution" ABBREVIATEDLABEL="101000" LABEL="Distribution" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="984" CREATED="2009-01-28 17:07:04.0" UUID="e7601fae-10ac-47d0-8f07-f41926893eeb" TEXT="Diagnosis" ABBREVIATEDLABEL="100000" LABEL="Diagnosis" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="985" CREATED="2009-01-28 17:07:04.0" UUID="a59a6cec-c7e1-4f3e-a636-7c7255fb8f47" TEXT="Biology And Ecology" ABBREVIATEDLABEL="100000" LABEL="Biology And Ecology" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="986" CREATED="2009-01-28 17:07:04.0" UUID="0e6afab0-8402-47f2-9928-4c285e2506b5" TEXT="Introduction" ABBREVIATEDLABEL="100000" LABEL="Introduction" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="987" CREATED="2009-01-28 17:07:04.0" UUID="eba11b8c-fd68-4a92-b626-e7f22d465cfb" TEXT="Additional Publication" ABBREVIATEDLABEL="100000" LABEL="Additional Publication" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="988" CREATED="2009-01-28 17:07:04.0" UUID="e3eeb927-2f00-4ad4-8c5d-7c741423f003" TEXT="Etymology" ABBREVIATEDLABEL="100000" LABEL="Etymology" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="989" CREATED="2009-01-28 17:07:04.0" UUID="82f3e499-ed88-42a4-8903-93e351dfbbeb" TEXT="Cultivation" ABBREVIATEDLABEL="100000" LABEL="Cultivation" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="990" CREATED="2009-01-28 17:07:04.0" UUID="44338141-5617-478e-8600-4d98cd6e0734" TEXT="Image" ABBREVIATEDLABEL="100000" LABEL="Image" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="991" CREATED="2009-01-28 17:07:04.0" UUID="6020976d-dabe-4627-8e4c-96350a2c1835" TEXT="Acknowledgments" ABBREVIATEDLABEL="100000" LABEL="Acknowledgments" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="992" CREATED="2009-01-28 17:07:04.0" UUID="0b143eb6-82dc-499a-a25f-f614d24b66e5" TEXT="Protolog" ABBREVIATEDLABEL="100000" LABEL="Protolog" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="993" CREATED="2009-01-28 17:07:04.0" UUID="996d7ef5-ce2b-4f6e-9cd2-58c8789852c7" TEXT="Common Name" ABBREVIATEDLABEL="100001" LABEL="Common Name" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="994" CREATED="2009-01-28 17:07:04.0" UUID="16326723-d84b-484a-9c7d-dea8562352d7" TEXT="Multiple" ABBREVIATEDLABEL="100000" LABEL="Multiple" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="995" CREATED="2009-01-28 17:07:04.0" UUID="4b15760c-dfba-4dd5-b5e6-ab417a07fea7" TEXT="Materials Examined" ABBREVIATEDLABEL="100000" LABEL="Materials Examined" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="996" CREATED="2009-01-28 17:07:04.0" UUID="506c54df-1af3-438b-8e8c-3978246e010d" TEXT="Description" ABBREVIATEDLABEL="100000" LABEL="Description" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="997" CREATED="2009-01-28 17:07:04.0" UUID="95180eae-7676-4eec-8438-f77c7a7b9696" TEXT="Unknown" ABBREVIATEDLABEL="100000" LABEL="Unknown Feature Type" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="998" CREATED="2009-01-28 17:07:04.0" UUID="c68464be-02b7-4f0b-9004-68a2c712883e" TEXT="eu.etaxonomy.cdm.model.location.NamedArea" LABEL="NamedArea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="999" CREATED="2009-01-28 17:07:05.0" UUID="4564a34f-41a1-441a-8cda-1db851645317" TEXT="Zimbabwe" ABBREVIATEDLABEL="ZIM-OO" LABEL="Zimbabwe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1000" CREATED="2009-01-28 17:07:05.0" UUID="75411f23-e809-4563-bea8-7d812eff0ac2" TEXT="Zambia" ABBREVIATEDLABEL="ZAM-OO" LABEL="Zambia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1001" CREATED="2009-01-28 17:07:05.0" UUID="f98e9703-4af6-42d8-8d5c-a59d6ab17a25" TEXT="Zaire" ABBREVIATEDLABEL="ZAI-OO" LABEL="Zaire" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1002" CREATED="2009-01-28 17:07:05.0" UUID="fcbb68c0-048a-4b33-8f7d-ea5b32131de8" TEXT="Yukon" ABBREVIATEDLABEL="YUK-OO" LABEL="Yukon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1003" CREATED="2009-01-28 17:07:05.0" UUID="6ea2a6b5-718f-4689-9f1f-b34114c5d0b1" TEXT="Slovenia" ABBREVIATEDLABEL="YUG-SL" LABEL="Slovenia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1004" CREATED="2009-01-28 17:07:05.0" UUID="7038cde3-b618-4c7f-bbad-04d6f6a83fe1" TEXT="Serbia" ABBREVIATEDLABEL="YUG-SE" LABEL="Serbia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1005" CREATED="2009-01-28 17:07:05.0" UUID="35fb03e8-2deb-4c1f-9869-192209cbf4f8" TEXT="Montenegro" ABBREVIATEDLABEL="YUG-MN" LABEL="Montenegro" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1006" CREATED="2009-01-28 17:07:05.0" UUID="851ca7d5-8b0e-479b-bc6e-21cf7e5f7658" TEXT="Macedonia" ABBREVIATEDLABEL="YUG-MA" LABEL="Macedonia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1007" CREATED="2009-01-28 17:07:05.0" UUID="3962cf9c-0ca5-43c2-b24d-c17f16fb8bb3" TEXT="Kosovo" ABBREVIATEDLABEL="YUG-KO" LABEL="Kosovo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1008" CREATED="2009-01-28 17:07:05.0" UUID="e2a30e01-5253-49c5-83f9-8ccdc381ad7b" TEXT="Croatia" ABBREVIATEDLABEL="YUG-CR" LABEL="Croatia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1009" CREATED="2009-01-28 17:07:05.0" UUID="59323252-e69a-494d-8d5f-4757fa8df008" TEXT="Bosnia-Herzegovina" ABBREVIATEDLABEL="YUG-BH" LABEL="Bosnia-Herzegovina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1010" CREATED="2009-01-28 17:07:05.0" UUID="0c0f519d-2895-46b5-b90a-e9500d2747ac" TEXT="South Yemen" ABBREVIATEDLABEL="YEM-SY" LABEL="South Yemen" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1011" CREATED="2009-01-28 17:07:05.0" UUID="0131d2cd-d092-4b2f-b3c6-290bce94fe73" TEXT="North Yemen" ABBREVIATEDLABEL="YEM-NY" LABEL="North Yemen" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1012" CREATED="2009-01-28 17:07:05.0" UUID="2bf83c13-b3e1-4e40-9f5f-7f97bd57b3f2" TEXT="Yakutskiya" ABBREVIATEDLABEL="YAK-OO" LABEL="Yakutskiya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1013" CREATED="2009-01-28 17:07:05.0" UUID="f933b460-9852-4a25-8944-e80720c8f118" TEXT="Christmas I." ABBREVIATEDLABEL="XMS-OO" LABEL="Christmas I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1014" CREATED="2009-01-28 17:07:05.0" UUID="175ac3b3-f99d-4c17-96d2-2de0af2bc55b" TEXT="Wyoming" ABBREVIATEDLABEL="WYO-OO" LABEL="Wyoming" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1015" CREATED="2009-01-28 17:07:05.0" UUID="d2789def-5777-43f0-9df9-df0cc275a349" TEXT="West Virginia" ABBREVIATEDLABEL="WVA-OO" LABEL="West Virginia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1016" CREATED="2009-01-28 17:07:05.0" UUID="cdf7a6cf-0d54-40d8-8706-715d0ca2f50b" TEXT="West Siberia" ABBREVIATEDLABEL="WSB-OO" LABEL="West Siberia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1017" CREATED="2009-01-28 17:07:05.0" UUID="8e34c5a4-62a9-4532-8f2d-94cbc3ba6583" TEXT="Western Sahara" ABBREVIATEDLABEL="WSA-OO" LABEL="Western Sahara" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1018" CREATED="2009-01-28 17:07:05.0" UUID="d6d7cedd-f1bf-4601-87a8-615241143fc9" TEXT="Wisconsin" ABBREVIATEDLABEL="WIS-OO" LABEL="Wisconsin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1019" CREATED="2009-01-28 17:07:05.0" UUID="a14ae3e8-573a-4557-8668-0192821436a9" TEXT="St.Vincent" ABBREVIATEDLABEL="WIN-SV" LABEL="St.Vincent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1020" CREATED="2009-01-28 17:07:05.0" UUID="9262c8e5-1ae0-4e46-af11-eb711c2912af" TEXT="St.Lucia" ABBREVIATEDLABEL="WIN-SL" LABEL="St.Lucia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1021" CREATED="2009-01-28 17:07:05.0" UUID="81eda180-bb8b-4dbe-8b26-94acca9e2b79" TEXT="Martinique" ABBREVIATEDLABEL="WIN-MA" LABEL="Martinique" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1022" CREATED="2009-01-28 17:07:05.0" UUID="0f060273-efce-4e3e-a92e-147119d80061" TEXT="Grenada" ABBREVIATEDLABEL="WIN-GR" LABEL="Grenada" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1023" CREATED="2009-01-28 17:07:05.0" UUID="f2f09984-2a9c-489f-9a8e-2f25f8e15538" TEXT="Dominica" ABBREVIATEDLABEL="WIN-DO" LABEL="Dominica" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1024" CREATED="2009-01-28 17:07:05.0" UUID="e44d8b7f-a50f-4ec9-8549-1ce03cd35982" TEXT="Barbados" ABBREVIATEDLABEL="WIN-BA" LABEL="Barbados" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1025" CREATED="2009-01-28 17:07:05.0" UUID="a81ccfc3-4aa8-4d1f-8b65-ad0d5a403881" TEXT="Uttaranchal" ABBREVIATEDLABEL="WHM-UT" LABEL="Uttaranchal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1026" CREATED="2009-01-28 17:07:05.0" UUID="ff4e98b2-b8c5-442a-963b-918850a3b96b" TEXT="Jammu-Kashmir" ABBREVIATEDLABEL="WHM-JK" LABEL="Jammu-Kashmir" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1027" CREATED="2009-01-28 17:07:05.0" UUID="951080c9-4e6e-491c-bcc8-5d376130ad5d" TEXT="Himachal Pradesh" ABBREVIATEDLABEL="WHM-HP" LABEL="Himachal Pradesh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1028" CREATED="2009-01-28 17:07:05.0" UUID="94f5e56b-be1b-4889-b144-8f748f80b26e" TEXT="District of Columbia" ABBREVIATEDLABEL="WDC-OO" LABEL="District of Columbia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1029" CREATED="2009-01-28 17:07:05.0" UUID="67efa692-179f-42ba-a903-4318c4d1a561" TEXT="Western Australia" ABBREVIATEDLABEL="WAU-WA" LABEL="Western Australia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1030" CREATED="2009-01-28 17:07:05.0" UUID="a4d08738-55a5-4b28-8316-e535a59663e1" TEXT="Ashmore-Cartier Is." ABBREVIATEDLABEL="WAU-AC" LABEL="Ashmore-Cartier Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1031" CREATED="2009-01-28 17:07:05.0" UUID="a5d2728d-58da-4742-922d-adfd67bc94f4" TEXT="Washington" ABBREVIATEDLABEL="WAS-OO" LABEL="Washington" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1032" CREATED="2009-01-28 17:07:05.0" UUID="44b8f89b-00d0-4c17-95f1-c335aa578c90" TEXT="Wallis-Futuna Is." ABBREVIATEDLABEL="WAL-OO" LABEL="Wallis-Futuna Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1033" CREATED="2009-01-28 17:07:05.0" UUID="0e56f7ac-9f0d-43c9-858f-88a990935b67" TEXT="Wake I." ABBREVIATEDLABEL="WAK-OO" LABEL="Wake I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1034" CREATED="2009-01-28 17:07:05.0" UUID="da6f4b02-bafa-456e-8b07-cd7fdc3badf8" TEXT="Virginia" ABBREVIATEDLABEL="VRG-OO" LABEL="Virginia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1035" CREATED="2009-01-28 17:07:05.0" UUID="dedd479b-b824-477f-8ddf-3e0ab29d03d2" TEXT="Venezuelan Antilles" ABBREVIATEDLABEL="VNA-OO" LABEL="Venezuelan Antilles" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1036" CREATED="2009-01-28 17:07:05.0" UUID="6a6d54d7-2801-4afd-adcc-0016e2cebbc8" TEXT="Vietnam" ABBREVIATEDLABEL="VIE-OO" LABEL="Vietnam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1037" CREATED="2009-01-28 17:07:05.0" UUID="ae5293af-bab0-4995-a378-3aa494075606" TEXT="Victoria" ABBREVIATEDLABEL="VIC-OO" LABEL="Victoria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1038" CREATED="2009-01-28 17:07:05.0" UUID="b0acf3d3-2f51-4a57-9b7d-19ed5906e885" TEXT="Vermont" ABBREVIATEDLABEL="VER-OO" LABEL="Vermont" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1039" CREATED="2009-01-28 17:07:05.0" UUID="edf70eba-a51c-46f1-b1dd-ca494ba7163d" TEXT="Venezuela" ABBREVIATEDLABEL="VEN-OO" LABEL="Venezuela" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1040" CREATED="2009-01-28 17:07:05.0" UUID="c6b7b31d-f9fb-484a-8a0a-d192af860080" TEXT="Vanuatu" ABBREVIATEDLABEL="VAN-OO" LABEL="Vanuatu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1041" CREATED="2009-01-28 17:07:05.0" UUID="ba2ddd9e-ef85-4a51-91bb-61b5d705ccee" TEXT="Uzbekistan" ABBREVIATEDLABEL="UZB-OO" LABEL="Uzbekistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1042" CREATED="2009-01-28 17:07:05.0" UUID="0898acaa-d9ed-4476-8391-a2b28c47b86e" TEXT="Utah" ABBREVIATEDLABEL="UTA-OO" LABEL="Utah" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1043" CREATED="2009-01-28 17:07:05.0" UUID="58ea937d-97b2-4823-ae60-2dc1303218f4" TEXT="Uruguay" ABBREVIATEDLABEL="URU-OO" LABEL="Uruguay" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1044" CREATED="2009-01-28 17:07:05.0" UUID="ce3aae91-f806-4d00-b579-ef0ba9b8222b" TEXT="Ukraine" ABBREVIATEDLABEL="UKR-UK" LABEL="Ukraine" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1045" CREATED="2009-01-28 17:07:05.0" UUID="38f16bc3-9344-4a78-a1a1-c6970c5387d5" TEXT="Moldova" ABBREVIATEDLABEL="UKR-MO" LABEL="Moldova" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1046" CREATED="2009-01-28 17:07:05.0" UUID="c505b85f-be20-44d3-8f3b-233dcdae0596" TEXT="Uganda" ABBREVIATEDLABEL="UGA-OO" LABEL="Uganda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1047" CREATED="2009-01-28 17:07:05.0" UUID="2fb89fc9-4b16-40af-8e2f-dc955408993a" TEXT="Tadzhikistan" ABBREVIATEDLABEL="TZK-OO" LABEL="Tadzhikistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1048" CREATED="2009-01-28 17:07:05.0" UUID="b050d5c6-c9cd-41e1-9859-66b6652b0d4f" TEXT="North-West Province" ABBREVIATEDLABEL="TVL-NW" LABEL="North-West Province" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1049" CREATED="2009-01-28 17:07:05.0" UUID="aba3de47-22fa-4f32-bb60-5d23c880bc5c" TEXT="Northern Province" ABBREVIATEDLABEL="TVL-NP" LABEL="Northern Province" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1050" CREATED="2009-01-28 17:07:05.0" UUID="5130521b-1615-40db-9fca-aa9d438debfb" TEXT="Mpumalanga" ABBREVIATEDLABEL="TVL-MP" LABEL="Mpumalanga" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1051" CREATED="2009-01-28 17:07:05.0" UUID="dc82f8e8-a94d-4c52-8842-8d0662859f44" TEXT="Gauteng" ABBREVIATEDLABEL="TVL-GA" LABEL="Gauteng" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1052" CREATED="2009-01-28 17:07:05.0" UUID="6c3f26a0-3156-4534-a734-c293302edfcf" TEXT="Tuva" ABBREVIATEDLABEL="TVA-OO" LABEL="Tuva" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1053" CREATED="2009-01-28 17:07:05.0" UUID="9ec6f5fc-6601-4086-ade2-958fd2c11864" TEXT="Tuvalu" ABBREVIATEDLABEL="TUV-OO" LABEL="Tuvalu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1054" CREATED="2009-01-28 17:07:05.0" UUID="de22e34e-a929-4950-b595-89ad0bc37c35" TEXT="Turkey" ABBREVIATEDLABEL="TUR-OO" LABEL="Turkey" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1055" CREATED="2009-01-28 17:07:05.0" UUID="34d7145d-a076-47af-b0ea-164abf6e5e3b" TEXT="Tunisia" ABBREVIATEDLABEL="TUN-OO" LABEL="Tunisia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1056" CREATED="2009-01-28 17:07:05.0" UUID="9afbbe6e-292a-42fc-8f17-ffa7d909636e" TEXT="Turkey-in-Europe" ABBREVIATEDLABEL="TUE-OO" LABEL="Turkey-in-Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1057" CREATED="2009-01-28 17:07:05.0" UUID="d9c35d72-d930-475c-aca7-a5778fa5183f" TEXT="Tubuai Is." ABBREVIATEDLABEL="TUB-OO" LABEL="Tubuai Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1058" CREATED="2009-01-28 17:07:05.0" UUID="865398dd-6c56-48fe-ba18-9b11517e40c9" TEXT="Tuamotu" ABBREVIATEDLABEL="TUA-OO" LABEL="Tuamotu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1059" CREATED="2009-01-28 17:07:05.0" UUID="8dd2ae1b-ba69-4112-9185-d4dcd3ce0777" TEXT="Trinidad-Tobago" ABBREVIATEDLABEL="TRT-OO" LABEL="Trinidad-Tobago" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1060" CREATED="2009-01-28 17:07:05.0" UUID="06486793-be90-4b75-ac0e-a04861ef15f1" TEXT="Tonga" ABBREVIATEDLABEL="TON-OO" LABEL="Tonga" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1061" CREATED="2009-01-28 17:07:05.0" UUID="89c5c222-37c5-4404-a571-aa5736e73a00" TEXT="Tokelau" ABBREVIATEDLABEL="TOK-TO" LABEL="Tokelau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1062" CREATED="2009-01-28 17:07:05.0" UUID="9dd3977c-89e3-4359-ab10-94ff68784b00" TEXT="Swains I." ABBREVIATEDLABEL="TOK-SW" LABEL="Swains I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1063" CREATED="2009-01-28 17:07:05.0" UUID="298fca62-93f0-4fb4-81b0-f091cc88e71c" TEXT="Manihiki Is." ABBREVIATEDLABEL="TOK-MA" LABEL="Manihiki Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1064" CREATED="2009-01-28 17:07:05.0" UUID="da274fd0-a2b1-4fef-aab9-a8d62fb36c5b" TEXT="Togo" ABBREVIATEDLABEL="TOG-OO" LABEL="Togo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1065" CREATED="2009-01-28 17:07:05.0" UUID="cf49e7b6-0185-48e5-9828-89460b697f8c" TEXT="Turkmenistan" ABBREVIATEDLABEL="TKM-OO" LABEL="Turkmenistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1066" CREATED="2009-01-28 17:07:05.0" UUID="166a7d71-5d04-4531-94ba-bd9090385d7f" TEXT="Thailand" ABBREVIATEDLABEL="THA-OO" LABEL="Thailand" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1067" CREATED="2009-01-28 17:07:05.0" UUID="61c9c149-f588-4bf6-bb6b-a794d1a8a304" TEXT="Texas" ABBREVIATEDLABEL="TEX-OO" LABEL="Texas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1068" CREATED="2009-01-28 17:07:05.0" UUID="51c7a0fb-e8cf-4582-bb05-b07da7e32a6a" TEXT="Tennessee" ABBREVIATEDLABEL="TEN-OO" LABEL="Tennessee" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1069" CREATED="2009-01-28 17:07:05.0" UUID="b51da22d-8cc5-491d-8b04-da7a8119d83d" TEXT="Tristan da Cunha" ABBREVIATEDLABEL="TDC-OO" LABEL="Tristan da Cunha" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1070" CREATED="2009-01-28 17:07:05.0" UUID="ceb78a2c-3670-417a-b81c-b86e3079ae68" TEXT="Nagorno Karabakh" ABBREVIATEDLABEL="TCS-NK" LABEL="Nagorno Karabakh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1071" CREATED="2009-01-28 17:07:05.0" UUID="b7266926-eb91-4e95-9b90-09671066bad1" TEXT="Nakhichevan" ABBREVIATEDLABEL="TCS-NA" LABEL="Nakhichevan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1072" CREATED="2009-01-28 17:07:05.0" UUID="cf6207a6-5d80-4b47-9d9b-a094f5f7ced5" TEXT="Georgia" ABBREVIATEDLABEL="TCS-GR" LABEL="Georgia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1073" CREATED="2009-01-28 17:07:05.0" UUID="554ab792-91fb-456f-9b46-219745d0ee2c" TEXT="Azerbaijan" ABBREVIATEDLABEL="TCS-AZ" LABEL="Azerbaijan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1074" CREATED="2009-01-28 17:07:05.0" UUID="496bed46-7402-45a6-99f8-ec1448e63318" TEXT="Armenia" ABBREVIATEDLABEL="TCS-AR" LABEL="Armenia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1075" CREATED="2009-01-28 17:07:05.0" UUID="fd79f47a-1967-4654-8399-2a1811bb223d" TEXT="Adzhariya" ABBREVIATEDLABEL="TCS-AD" LABEL="Adzhariya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1076" CREATED="2009-01-28 17:07:05.0" UUID="61002752-c2d2-4608-af22-991903edf7d3" TEXT="Abkhaziya" ABBREVIATEDLABEL="TCS-AB" LABEL="Abkhaziya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1077" CREATED="2009-01-28 17:07:05.0" UUID="e8197fce-2969-4fab-8b81-9fc8915e0452" TEXT="Turks-Caicos Is." ABBREVIATEDLABEL="TCI-OO" LABEL="Turks-Caicos Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1078" CREATED="2009-01-28 17:07:05.0" UUID="5945e561-4d05-4043-a745-a3a0f1177ea1" TEXT="Tasmania" ABBREVIATEDLABEL="TAS-OO" LABEL="Tasmania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1079" CREATED="2009-01-28 17:07:05.0" UUID="98474c7f-e844-47ac-98cc-d4e526432734" TEXT="Tanzania" ABBREVIATEDLABEL="TAN-OO" LABEL="Tanzania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1080" CREATED="2009-01-28 17:07:05.0" UUID="58c48486-3b92-4f4f-9094-d2f88340899a" TEXT="Taiwan" ABBREVIATEDLABEL="TAI-OO" LABEL="Taiwan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1081" CREATED="2009-01-28 17:07:05.0" UUID="3a49c0a1-a434-4ac5-b2ff-5c4a1b5cfa66" TEXT="Swaziland" ABBREVIATEDLABEL="SWZ-OO" LABEL="Swaziland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1082" CREATED="2009-01-28 17:07:05.0" UUID="dbcba341-47e7-4f9d-b399-ebeeaeb5616b" TEXT="Switzerland" ABBREVIATEDLABEL="SWI-OO" LABEL="Switzerland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1083" CREATED="2009-01-28 17:07:05.0" UUID="b71eeec1-a631-4566-bb64-bb31a301f860" TEXT="Sweden" ABBREVIATEDLABEL="SWE-OO" LABEL="Sweden" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1084" CREATED="2009-01-28 17:07:05.0" UUID="b99d3a83-16db-4897-a28a-d6a6be4172b5" TEXT="Nicaraguan Caribbean Is." ABBREVIATEDLABEL="SWC-NC" LABEL="Nicaraguan Caribbean Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1085" CREATED="2009-01-28 17:07:05.0" UUID="10ed65f0-3405-4675-a413-f6eab835f23f" TEXT="Honduran Caribbean Is." ABBREVIATEDLABEL="SWC-HC" LABEL="Honduran Caribbean Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1086" CREATED="2009-01-28 17:07:05.0" UUID="bc621f02-4fc4-4161-9f36-cdf881b8c4f8" TEXT="Colombian Caribbean Is." ABBREVIATEDLABEL="SWC-CC" LABEL="Colombian Caribbean Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1087" CREATED="2009-01-28 17:07:05.0" UUID="b5773b5d-b438-416e-a326-10830568095e" TEXT="Svalbard" ABBREVIATEDLABEL="SVA-OO" LABEL="Svalbard" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1088" CREATED="2009-01-28 17:07:05.0" UUID="af2c9336-fbef-4199-b8b6-1ecfea0c433b" TEXT="Surinam" ABBREVIATEDLABEL="SUR-OO" LABEL="Surinam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1089" CREATED="2009-01-28 17:07:05.0" UUID="df793a0b-4696-4b3f-b6f0-5720257f02ae" TEXT="Sumatera" ABBREVIATEDLABEL="SUM-OO" LABEL="Sumatera" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1090" CREATED="2009-01-28 17:07:05.0" UUID="da8b61e1-554e-4521-a96f-da3e1100f5d6" TEXT="Sulawesi" ABBREVIATEDLABEL="SUL-OO" LABEL="Sulawesi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1091" CREATED="2009-01-28 17:07:05.0" UUID="58f55d07-1bfc-49ef-8b50-ed3e490d7e10" TEXT="Sudan" ABBREVIATEDLABEL="SUD-OO" LABEL="Sudan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1092" CREATED="2009-01-28 17:07:05.0" UUID="027f1d3d-7b89-431c-8c7e-42362e2ca624" TEXT="St.Helena" ABBREVIATEDLABEL="STH-OO" LABEL="St.Helena" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1093" CREATED="2009-01-28 17:07:05.0" UUID="c7522614-c0df-4072-90eb-188bcf7d10ab" TEXT="South Sandwich Is." ABBREVIATEDLABEL="SSA-OO" LABEL="South Sandwich Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1094" CREATED="2009-01-28 17:07:05.0" UUID="83260543-dd82-4bd4-b950-6d6d1cb30caf" TEXT="Sri Lanka" ABBREVIATEDLABEL="SRL-OO" LABEL="Sri Lanka" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1095" CREATED="2009-01-28 17:07:05.0" UUID="e879daf2-3a1b-4e8d-8d4c-5f334750e432" TEXT="Spain" ABBREVIATEDLABEL="SPA-SP" LABEL="Spain" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1096" CREATED="2009-01-28 17:07:05.0" UUID="e0a757ac-c1df-49d9-9ddd-bad03ada422d" TEXT="Gilbraltar" ABBREVIATEDLABEL="SPA-GI" LABEL="Gilbraltar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1097" CREATED="2009-01-28 17:07:05.0" UUID="13c69d56-cb40-469c-8b84-c1f3e0681092" TEXT="Andorra" ABBREVIATEDLABEL="SPA-AN" LABEL="Andorra" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1098" CREATED="2009-01-28 17:07:05.0" UUID="7e2c7206-2e2c-45d9-98c5-725e14b78668" TEXT="Somalia" ABBREVIATEDLABEL="SOM-OO" LABEL="Somalia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1099" CREATED="2009-01-28 17:07:05.0" UUID="fa69589f-83b1-4252-b296-d6d83d6be76c" TEXT="South Solomons" ABBREVIATEDLABEL="SOL-SO" LABEL="South Solomons" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1100" CREATED="2009-01-28 17:07:05.0" UUID="ce595147-df20-4ad1-b0d8-dbacf1e42a20" TEXT="North Solomons" ABBREVIATEDLABEL="SOL-NO" LABEL="North Solomons" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1101" CREATED="2009-01-28 17:07:05.0" UUID="29986d91-dba7-4f62-afa1-bf7b93aa675d" TEXT="Socotra" ABBREVIATEDLABEL="SOC-OO" LABEL="Socotra" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1102" CREATED="2009-01-28 17:07:05.0" UUID="ad7105af-cd14-4bbc-9916-aaf01b9323c4" TEXT="South Australia" ABBREVIATEDLABEL="SOA-OO" LABEL="South Australia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1103" CREATED="2009-01-28 17:07:05.0" UUID="8e56c3f9-e88c-475d-a433-52812e8e6702" TEXT="Sinai" ABBREVIATEDLABEL="SIN-OO" LABEL="Sinai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1104" CREATED="2009-01-28 17:07:05.0" UUID="f651a716-61f2-483e-9637-90ca41f88050" TEXT="Sierra Leone" ABBREVIATEDLABEL="SIE-OO" LABEL="Sierra Leone" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1105" CREATED="2009-01-28 17:07:05.0" UUID="2d04f62e-4f42-4e9f-8816-340099cc91e1" TEXT="Sicilia" ABBREVIATEDLABEL="SIC-SI" LABEL="Sicilia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1106" CREATED="2009-01-28 17:07:05.0" UUID="342cf6d7-853f-4b07-82ec-148d0a858339" TEXT="Malta" ABBREVIATEDLABEL="SIC-MA" LABEL="Malta" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1107" CREATED="2009-01-28 17:07:05.0" UUID="d110b6ee-9af0-4e78-869b-5bd910a022fb" TEXT="South Georgia" ABBREVIATEDLABEL="SGE-OO" LABEL="South Georgia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1108" CREATED="2009-01-28 17:07:05.0" UUID="a8302282-eaaa-4ae5-8e7d-bbad054b526f" TEXT="Seychelles" ABBREVIATEDLABEL="SEY-OO" LABEL="Seychelles" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1109" CREATED="2009-01-28 17:07:05.0" UUID="7d3af4e0-a21a-4f5e-b915-7a4f5028552c" TEXT="Senegal" ABBREVIATEDLABEL="SEN-OO" LABEL="Senegal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1110" CREATED="2009-01-28 17:07:05.0" UUID="56d4cb18-8980-45a2-9e4e-1917aa4510e9" TEXT="Selvagens" ABBREVIATEDLABEL="SEL-OO" LABEL="Selvagens" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1111" CREATED="2009-01-28 17:07:05.0" UUID="b38e1c57-f93e-4637-bf81-2a32d084f3ca" TEXT="South Dakota" ABBREVIATEDLABEL="SDA-OO" LABEL="South Dakota" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1112" CREATED="2009-01-28 17:07:05.0" UUID="c6918c2f-8a57-4d03-b244-9a3268860808" TEXT="Santa Cruz Is." ABBREVIATEDLABEL="SCZ-OO" LABEL="Santa Cruz Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1113" CREATED="2009-01-28 17:07:05.0" UUID="65f8b933-c900-4ce6-a95e-56f1814fae8a" TEXT="Spratly Is." ABBREVIATEDLABEL="SCS-SI" LABEL="Spratly Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1114" CREATED="2009-01-28 17:07:05.0" UUID="c6cd0324-2ba0-40ee-a5d9-f776219c7976" TEXT="Paracel Is." ABBREVIATEDLABEL="SCS-PI" LABEL="Paracel Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1115" CREATED="2009-01-28 17:07:05.0" UUID="709afec7-7245-4f53-8da9-1445fecf8c8e" TEXT="Society Is." ABBREVIATEDLABEL="SCI-OO" LABEL="Society Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1116" CREATED="2009-01-28 17:07:05.0" UUID="0d7db94f-edbc-44a1-bae0-a0934aad157e" TEXT="South Carolina" ABBREVIATEDLABEL="SCA-OO" LABEL="South Carolina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1117" CREATED="2009-01-28 17:07:05.0" UUID="cc0ad8d4-29f3-47c8-b834-70d75985f751" TEXT="Saudi Arabia" ABBREVIATEDLABEL="SAU-OO" LABEL="Saudi Arabia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1118" CREATED="2009-01-28 17:07:05.0" UUID="2ab2ada9-be59-43f9-a833-ba242ad8cdda" TEXT="Saskatchewan" ABBREVIATEDLABEL="SAS-OO" LABEL="Saskatchewan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1119" CREATED="2009-01-28 17:07:05.0" UUID="9079317c-8b0e-49f3-ade7-ac041f8ffe9c" TEXT="Sardegna" ABBREVIATEDLABEL="SAR-OO" LABEL="Sardegna" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1120" CREATED="2009-01-28 17:07:05.0" UUID="962b8eec-4faf-4f82-82e9-fb945ccb2707" TEXT="Samoa" ABBREVIATEDLABEL="SAM-WS" LABEL="Samoa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1121" CREATED="2009-01-28 17:07:05.0" UUID="ad29cca6-5f87-4a0c-bc3c-ce9d918900f7" TEXT="American Samoa" ABBREVIATEDLABEL="SAM-AS" LABEL="American Samoa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1122" CREATED="2009-01-28 17:07:05.0" UUID="32321c6a-93df-4d37-aa0a-742510e67f89" TEXT="Sakhalin" ABBREVIATEDLABEL="SAK-OO" LABEL="Sakhalin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1123" CREATED="2009-01-28 17:07:05.0" UUID="2f874e2f-5741-4c98-9170-6f7893569c80" TEXT="Rwanda" ABBREVIATEDLABEL="RWA-OO" LABEL="Rwanda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1124" CREATED="2009-01-28 17:07:05.0" UUID="189cd137-86be-4be8-bf9e-b8f8c60fb2fa" TEXT="Northwest European Russia" ABBREVIATEDLABEL="RUW-OO" LABEL="Northwest European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1125" CREATED="2009-01-28 17:07:05.0" UUID="aecbffa3-a0ea-41ec-aa5b-b7b7d20620b6" TEXT="South European Russia" ABBREVIATEDLABEL="RUS-OO" LABEL="South European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1126" CREATED="2009-01-28 17:07:05.0" UUID="bfc0d80f-d1df-466b-8d9a-502314be73ea" TEXT="North European Russia" ABBREVIATEDLABEL="RUN-OO" LABEL="North European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1127" CREATED="2009-01-28 17:07:05.0" UUID="92e057d5-e758-468a-a281-cf4cc2fad910" TEXT="East European Russia" ABBREVIATEDLABEL="RUE-OO" LABEL="East European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1128" CREATED="2009-01-28 17:07:05.0" UUID="01ab7265-469a-40d5-a95f-ed98c6070f8c" TEXT="Central European Russia" ABBREVIATEDLABEL="RUC-OO" LABEL="Central European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1129" CREATED="2009-01-28 17:07:05.0" UUID="9d2e895c-7c94-4242-b561-5c5d5bdfe463" TEXT="Romania" ABBREVIATEDLABEL="ROM-OO" LABEL="Romania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1130" CREATED="2009-01-28 17:07:05.0" UUID="adb3f8e6-a253-4ab2-a075-cf2417bdf665" TEXT="Rodrigues" ABBREVIATEDLABEL="ROD-OO" LABEL="Rodrigues" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1131" CREATED="2009-01-28 17:07:05.0" UUID="b7fd9a61-8e2a-44ca-bba5-ccf44896789a" TEXT="Rhode I." ABBREVIATEDLABEL="RHO-OO" LABEL="Rhode I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1132" CREATED="2009-01-28 17:07:05.0" UUID="f7c886e5-554d-4161-a3a8-68d064036679" TEXT="Réunion" ABBREVIATEDLABEL="REU-OO" LABEL="Réunion" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1133" CREATED="2009-01-28 17:07:05.0" UUID="57afa6e6-5c2f-4802-8a6c-7a51d377b90f" TEXT="Québec" ABBREVIATEDLABEL="QUE-OO" LABEL="Québec" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1134" CREATED="2009-01-28 17:07:05.0" UUID="ee97a3e0-d5f5-47b3-8139-535391a499af" TEXT="Queensland" ABBREVIATEDLABEL="QLD-QU" LABEL="Queensland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1135" CREATED="2009-01-28 17:07:05.0" UUID="ab352e04-4829-4ec3-bc01-e93b8f486a1b" TEXT="Coral Sea Is. Territory" ABBREVIATEDLABEL="QLD-CS" LABEL="Coral Sea Is. Territory" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1136" CREATED="2009-01-28 17:07:05.0" UUID="8111803a-dfeb-4782-bb2f-8965153c01d0" TEXT="Puerto Rico" ABBREVIATEDLABEL="PUE-OO" LABEL="Puerto Rico" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1137" CREATED="2009-01-28 17:07:05.0" UUID="d7c37bec-c6f4-48ac-b539-11dc8d74d855" TEXT="Primorye" ABBREVIATEDLABEL="PRM-OO" LABEL="Primorye" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1138" CREATED="2009-01-28 17:07:05.0" UUID="079f7975-97e1-4840-b5f1-71b2ef3c33ae" TEXT="Portugal" ABBREVIATEDLABEL="POR-OO" LABEL="Portugal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1139" CREATED="2009-01-28 17:07:05.0" UUID="6c57ae5c-9801-42ae-b4bc-02fdb63954da" TEXT="Poland" ABBREVIATEDLABEL="POL-OO" LABEL="Poland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1140" CREATED="2009-01-28 17:07:05.0" UUID="6bae9a54-e653-4dd6-89de-eddb18594cd7" TEXT="Pitcairn Is." ABBREVIATEDLABEL="PIT-OO" LABEL="Pitcairn Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1141" CREATED="2009-01-28 17:07:05.0" UUID="9ed76c57-3d36-46d8-957f-867a8652ebef" TEXT="Phoenix Is." ABBREVIATEDLABEL="PHX-OO" LABEL="Phoenix Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1142" CREATED="2009-01-28 17:07:05.0" UUID="815fb7e9-f8e5-4a6f-85cb-87fb7c8a68bf" TEXT="Philippines" ABBREVIATEDLABEL="PHI-OO" LABEL="Philippines" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1143" CREATED="2009-01-28 17:07:05.0" UUID="d5b7a4b0-b04e-486a-8f2b-2bdd5a70e9fd" TEXT="Peru" ABBREVIATEDLABEL="PER-OO" LABEL="Peru" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1144" CREATED="2009-01-28 17:07:05.0" UUID="95f3112a-1460-49c5-af9f-45ae9e12976e" TEXT="Pennsylvania" ABBREVIATEDLABEL="PEN-OO" LABEL="Pennsylvania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1145" CREATED="2009-01-28 17:07:05.0" UUID="29cd093e-bd10-44e2-8147-cfc2ed321fdf" TEXT="Prince Edward I." ABBREVIATEDLABEL="PEI-OO" LABEL="Prince Edward I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1146" CREATED="2009-01-28 17:07:05.0" UUID="f02f43b9-3a8c-456a-8074-b8a46158d03f" TEXT="Paraguay" ABBREVIATEDLABEL="PAR-OO" LABEL="Paraguay" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1147" CREATED="2009-01-28 17:07:05.0" UUID="fdc2ad3e-9168-43cd-b07d-4ec4ced0cf3f" TEXT="Panamá" ABBREVIATEDLABEL="PAN-OO" LABEL="Panamá" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1148" CREATED="2009-01-28 17:07:04.0" UUID="2c2b0d73-d44d-4bbe-abef-55c0dc753996" TEXT="Jordan" ABBREVIATEDLABEL="PAL-JO" LABEL="Jordan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1149" CREATED="2009-01-28 17:07:04.0" UUID="ccb9ccd4-5434-4c97-9418-c82d861c2049" TEXT="Israel" ABBREVIATEDLABEL="PAL-IS" LABEL="Israel" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1150" CREATED="2009-01-28 17:07:04.0" UUID="1d1c879a-161f-4048-a21b-2d7a974bd21e" TEXT="Pakistan" ABBREVIATEDLABEL="PAK-OO" LABEL="Pakistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1151" CREATED="2009-01-28 17:07:04.0" UUID="9713f9d9-d165-412b-8422-932f27f2d37a" TEXT="Oregon" ABBREVIATEDLABEL="ORE-OO" LABEL="Oregon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1152" CREATED="2009-01-28 17:07:04.0" UUID="fe0e43bb-d91b-4230-b898-75d1e490ade6" TEXT="Ontario" ABBREVIATEDLABEL="ONT-OO" LABEL="Ontario" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1153" CREATED="2009-01-28 17:07:04.0" UUID="5a335b8a-af0b-4542-9101-4bf90e2ae233" TEXT="Oman" ABBREVIATEDLABEL="OMA-OO" LABEL="Oman" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1154" CREATED="2009-01-28 17:07:04.0" UUID="11b40aa7-46a6-4b56-a10a-1cd514bf57e0" TEXT="Oklahoma" ABBREVIATEDLABEL="OKL-OO" LABEL="Oklahoma" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1155" CREATED="2009-01-28 17:07:04.0" UUID="9dafa597-63fd-4d22-b380-e5c6157f6aa1" TEXT="Ohio" ABBREVIATEDLABEL="OHI-OO" LABEL="Ohio" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1156" CREATED="2009-01-28 17:07:04.0" UUID="fe8f248b-24c4-42ae-935f-63425f970082" TEXT="Ogasawara-shoto" ABBREVIATEDLABEL="OGA-OO" LABEL="Ogasawara-shoto" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1157" CREATED="2009-01-28 17:07:04.0" UUID="bc1c9de0-cee0-41e1-9e42-f6f1b8de6201" TEXT="Free State" ABBREVIATEDLABEL="OFS-OO" LABEL="Free State" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1158" CREATED="2009-01-28 17:07:04.0" UUID="2f7933ae-10a0-4f6f-a6de-38b0b6a3eedb" TEXT="New Zealand South" ABBREVIATEDLABEL="NZS-OO" LABEL="New Zealand South" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1159" CREATED="2009-01-28 17:07:04.0" UUID="3578be59-0ae5-47b1-922f-c3416bcf0fae" TEXT="New Zealand North" ABBREVIATEDLABEL="NZN-OO" LABEL="New Zealand North" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1160" CREATED="2009-01-28 17:07:04.0" UUID="6842f8fa-5a64-4390-9e1d-54c9d2344eab" TEXT="New York" ABBREVIATEDLABEL="NWY-OO" LABEL="New York" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1161" CREATED="2009-01-28 17:07:04.0" UUID="0d2a31ec-0c8c-4f66-b75e-9cc9d63ae237" TEXT="Northwest Territories" ABBREVIATEDLABEL="NWT-OO" LABEL="Northwest Territories" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1162" CREATED="2009-01-28 17:07:04.0" UUID="e5ddc2a1-dd62-475e-8115-e633c110df10" TEXT="New Mexico" ABBREVIATEDLABEL="NWM-OO" LABEL="New Mexico" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1163" CREATED="2009-01-28 17:07:04.0" UUID="e48b3b25-074d-4bd6-b324-52c0cb8d9cfe" TEXT="New Jersey" ABBREVIATEDLABEL="NWJ-OO" LABEL="New Jersey" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1164" CREATED="2009-01-28 17:07:04.0" UUID="df620a8b-f98b-4446-9151-ac5284f2eb85" TEXT="New Hampshire" ABBREVIATEDLABEL="NWH-OO" LABEL="New Hampshire" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1165" CREATED="2009-01-28 17:07:04.0" UUID="9de7a239-4809-465f-abcc-d0d7adff3a07" TEXT="Papua New Guinea" ABBREVIATEDLABEL="NWG-PN" LABEL="Papua New Guinea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1166" CREATED="2009-01-28 17:07:04.0" UUID="2690deae-eb88-40a5-9c4f-7321f5d3ccc3" TEXT="Irian Jaya" ABBREVIATEDLABEL="NWG-IJ" LABEL="Irian Jaya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1167" CREATED="2009-01-28 17:07:04.0" UUID="c85789e3-d455-4462-a39a-83b33f26f4ce" TEXT="New Caledonia" ABBREVIATEDLABEL="NWC-OO" LABEL="New Caledonia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1168" CREATED="2009-01-28 17:07:04.0" UUID="dd5f9374-7e61-4347-bb5c-1b0d52d12a21" TEXT="Nunavut" ABBREVIATEDLABEL="NUN-OO" LABEL="Nunavut" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1169" CREATED="2009-01-28 17:07:04.0" UUID="4c848412-4f15-46f2-b339-a6e7261baa8a" TEXT="Niue" ABBREVIATEDLABEL="NUE-OO" LABEL="Niue" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1170" CREATED="2009-01-28 17:07:04.0" UUID="906678d4-6a7d-437f-8834-61c71ddb2d9e" TEXT="Northern Territory" ABBREVIATEDLABEL="NTA-OO" LABEL="Northern Territory" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1171" CREATED="2009-01-28 17:07:04.0" UUID="a33db6d2-3983-4469-8344-8248bd2e6de3" TEXT="New South Wales" ABBREVIATEDLABEL="NSW-NS" LABEL="New South Wales" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1172" CREATED="2009-01-28 17:07:04.0" UUID="1cd334ae-4ab9-40d7-b9c6-2b92f62e2380" TEXT="Australian Capital Territory" ABBREVIATEDLABEL="NSW-CT" LABEL="Australian Capital Territory" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1173" CREATED="2009-01-28 17:07:04.0" UUID="283fa80a-115b-4a30-975e-d8b34b9ca18a" TEXT="Nova Scotia" ABBREVIATEDLABEL="NSC-OO" LABEL="Nova Scotia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1174" CREATED="2009-01-28 17:07:04.0" UUID="069c44a0-a108-49e5-a8ba-e1d8057dbb17" TEXT="Nauru" ABBREVIATEDLABEL="NRU-OO" LABEL="Nauru" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1175" CREATED="2009-01-28 17:07:04.0" UUID="9f363fc8-4c69-4d50-8436-0c07468b582e" TEXT="Norway" ABBREVIATEDLABEL="NOR-OO" LABEL="Norway" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1176" CREATED="2009-01-28 17:07:04.0" UUID="ff9af1e8-0f03-4235-af1a-7cb0e7001155" TEXT="Nansei-shoto" ABBREVIATEDLABEL="NNS-OO" LABEL="Nansei-shoto" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1177" CREATED="2009-01-28 17:07:04.0" UUID="4c8b7864-f2b0-420e-84b2-a9e8d32475ae" TEXT="Curaçao" ABBREVIATEDLABEL="NLA-CU" LABEL="Curaçao" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1178" CREATED="2009-01-28 17:07:04.0" UUID="0104df3d-7b3b-4e0c-a027-7a1f304c469f" TEXT="Bonaire" ABBREVIATEDLABEL="NLA-BO" LABEL="Bonaire" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1179" CREATED="2009-01-28 17:07:04.0" UUID="a18effcb-64d3-4a91-bc7a-d2c0c0213b19" TEXT="Nicaragua" ABBREVIATEDLABEL="NIC-OO" LABEL="Nicaragua" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1180" CREATED="2009-01-28 17:07:04.0" UUID="bda8a8d3-1863-4bfb-8b87-899ef44b0584" TEXT="Niger" ABBREVIATEDLABEL="NGR-OO" LABEL="Niger" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1181" CREATED="2009-01-28 17:07:04.0" UUID="5f5dbf35-fe60-4457-b3c1-bbd617585f7b" TEXT="Nigeria" ABBREVIATEDLABEL="NGA-OO" LABEL="Nigeria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1182" CREATED="2009-01-28 17:07:04.0" UUID="f5379475-f81f-4780-9f6e-5e64c9c31c01" TEXT="St.Pierre-Miquelon" ABBREVIATEDLABEL="NFL-SP" LABEL="St.Pierre-Miquelon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1183" CREATED="2009-01-28 17:07:04.0" UUID="e9bc6421-c9ff-4d41-b101-d7cd337c055e" TEXT="Newfoundland" ABBREVIATEDLABEL="NFL-NE" LABEL="Newfoundland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1184" CREATED="2009-01-28 17:07:04.0" UUID="a6fa2e97-68a2-49a9-9dca-d34fb12f6529" TEXT="Norfolk I." ABBREVIATEDLABEL="NFK-NI" LABEL="Norfolk I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1185" CREATED="2009-01-28 17:07:04.0" UUID="615ac2ba-d4af-44a6-911d-00eaad492655" TEXT="Lord Howe I." ABBREVIATEDLABEL="NFK-LH" LABEL="Lord Howe I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1186" CREATED="2009-01-28 17:07:04.0" UUID="4e28ee8e-8964-444c-9218-3f3404cbbe5d" TEXT="Nevada" ABBREVIATEDLABEL="NEV-OO" LABEL="Nevada" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1187" CREATED="2009-01-28 17:07:04.0" UUID="75faf6c3-a818-4fd5-a61d-b9bb26b11a19" TEXT="Netherlands" ABBREVIATEDLABEL="NET-OO" LABEL="Netherlands" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1188" CREATED="2009-01-28 17:07:04.0" UUID="7a37c297-155d-4661-9808-e872f9101a90" TEXT="Nepal" ABBREVIATEDLABEL="NEP-OO" LABEL="Nepal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1189" CREATED="2009-01-28 17:07:04.0" UUID="4015d061-cb5e-4073-9df8-2abedeacb2ef" TEXT="Nebraska" ABBREVIATEDLABEL="NEB-OO" LABEL="Nebraska" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1190" CREATED="2009-01-28 17:07:04.0" UUID="45c884ea-a18a-4f4f-a7b3-a9d77f0e6dd7" TEXT="North Dakota" ABBREVIATEDLABEL="NDA-OO" LABEL="North Dakota" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1191" CREATED="2009-01-28 17:07:04.0" UUID="8f7c53f3-2f52-426c-ac4b-34df0bdca409" TEXT="Stavropol" ABBREVIATEDLABEL="NCS-ST" LABEL="Stavropol" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1192" CREATED="2009-01-28 17:07:04.0" UUID="b859ad12-1206-4722-b858-06ac44d82de9" TEXT="Severo-Osetiya" ABBREVIATEDLABEL="NCS-SO" LABEL="Severo-Osetiya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1193" CREATED="2009-01-28 17:07:04.0" UUID="864f57bc-d56e-403a-aabb-2a17d3f00854" TEXT="Krasnodar" ABBREVIATEDLABEL="NCS-KR" LABEL="Krasnodar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1194" CREATED="2009-01-28 17:07:04.0" UUID="23cccbff-93ec-4e38-bb99-da499d6f9bb5" TEXT="Karacheyevo-Cherkessiya" ABBREVIATEDLABEL="NCS-KC" LABEL="Karacheyevo-Cherkessiya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1195" CREATED="2009-01-28 17:07:04.0" UUID="3a0c35a5-44a2-43b4-9c25-b386b0bb7c73" TEXT="Kabardino-Balkariya" ABBREVIATEDLABEL="NCS-KB" LABEL="Kabardino-Balkariya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1196" CREATED="2009-01-28 17:07:04.0" UUID="f421792e-3ae4-464b-ad98-9ce48ba850f6" TEXT="Ingushetiya" ABBREVIATEDLABEL="NCS-IN" LABEL="Ingushetiya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1197" CREATED="2009-01-28 17:07:04.0" UUID="94bbfa9d-c4f1-4c21-988c-3ca88d8849e5" TEXT="Dagestan" ABBREVIATEDLABEL="NCS-DA" LABEL="Dagestan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1198" CREATED="2009-01-28 17:07:04.0" UUID="b0c453c9-48e7-4f0c-9d22-35b6e8351e73" TEXT="Chechnya" ABBREVIATEDLABEL="NCS-CH" LABEL="Chechnya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1199" CREATED="2009-01-28 17:07:04.0" UUID="91aec9bb-638f-433c-bd5f-ba4a1eaf6b31" TEXT="Nicobar Is." ABBREVIATEDLABEL="NCB-OO" LABEL="Nicobar Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1200" CREATED="2009-01-28 17:07:04.0" UUID="5a3188b8-c6bf-4eed-b1a9-1d663525c934" TEXT="North Carolina" ABBREVIATEDLABEL="NCA-OO" LABEL="North Carolina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1201" CREATED="2009-01-28 17:07:04.0" UUID="52392f16-ea76-48bd-90e9-5d0d3894d9c3" TEXT="New Brunswick" ABBREVIATEDLABEL="NBR-OO" LABEL="New Brunswick" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1202" CREATED="2009-01-28 17:07:04.0" UUID="9dcae2a1-dbbd-47dc-aa38-810343043560" TEXT="KwaZulu-Natal" ABBREVIATEDLABEL="NAT-OO" LABEL="KwaZulu-Natal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1203" CREATED="2009-01-28 17:07:04.0" UUID="e265c511-ed2e-4a46-a3c3-9bd47fb87723" TEXT="Namibia" ABBREVIATEDLABEL="NAM-OO" LABEL="Namibia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1204" CREATED="2009-01-28 17:07:04.0" UUID="a9180a47-d848-458d-9351-8f7c40f9c4d0" TEXT="Myanmar" ABBREVIATEDLABEL="MYA-OO" LABEL="Myanmar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1205" CREATED="2009-01-28 17:07:04.0" UUID="4a2ceea2-3560-4b7d-9cac-9d3a73de8580" TEXT="Yucatán" ABBREVIATEDLABEL="MXT-YU" LABEL="Yucatán" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1206" CREATED="2009-01-28 17:07:04.0" UUID="609ca24d-3829-4908-b7a3-81747332dc37" TEXT="Tabasco" ABBREVIATEDLABEL="MXT-TB" LABEL="Tabasco" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1207" CREATED="2009-01-28 17:07:04.0" UUID="e1650a20-173f-4075-8b24-47288701aa5e" TEXT="Quintana Roo" ABBREVIATEDLABEL="MXT-QR" LABEL="Quintana Roo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1208" CREATED="2009-01-28 17:07:04.0" UUID="f306d225-c0b7-49bf-b87b-25974c42fc49" TEXT="Chiapas" ABBREVIATEDLABEL="MXT-CI" LABEL="Chiapas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1209" CREATED="2009-01-28 17:07:04.0" UUID="aa0a32f2-f5da-45e4-807c-aac8aceb997e" TEXT="Campeche" ABBREVIATEDLABEL="MXT-CA" LABEL="Campeche" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1210" CREATED="2009-01-28 17:07:04.0" UUID="b56e57a3-4e9b-4246-9db2-63a8e59743b5" TEXT="Oaxaca" ABBREVIATEDLABEL="MXS-OA" LABEL="Oaxaca" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1211" CREATED="2009-01-28 17:07:04.0" UUID="83844849-9814-4e07-8f96-04d073dcc955" TEXT="Nayarit" ABBREVIATEDLABEL="MXS-NA" LABEL="Nayarit" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1212" CREATED="2009-01-28 17:07:04.0" UUID="274add23-cb5c-49c2-9482-71293fd6bb79" TEXT="Michoacán" ABBREVIATEDLABEL="MXS-MI" LABEL="Michoacán" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1213" CREATED="2009-01-28 17:07:04.0" UUID="1c252c11-4f7a-46b5-93e4-bf55da86d18b" TEXT="Jalisco" ABBREVIATEDLABEL="MXS-JA" LABEL="Jalisco" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1214" CREATED="2009-01-28 17:07:04.0" UUID="d17d5fa7-0095-41ac-8096-5f969bea33c7" TEXT="Guerrero" ABBREVIATEDLABEL="MXS-GR" LABEL="Guerrero" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1215" CREATED="2009-01-28 17:07:04.0" UUID="28610ef9-c96f-4752-8ec2-918168225ae7" TEXT="Colima" ABBREVIATEDLABEL="MXS-CL" LABEL="Colima" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1216" CREATED="2009-01-28 17:07:04.0" UUID="3793105f-349b-4869-9e05-d4ed130289e6" TEXT="Sonora" ABBREVIATEDLABEL="MXN-SO" LABEL="Sonora" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1217" CREATED="2009-01-28 17:07:04.0" UUID="f7db02f2-c3d8-4d40-82e2-bf87ef1195b6" TEXT="Sinaloa" ABBREVIATEDLABEL="MXN-SI" LABEL="Sinaloa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1218" CREATED="2009-01-28 17:07:04.0" UUID="d5dc73a4-69cc-41fe-b098-26f5cf60e05e" TEXT="Baja California Sur" ABBREVIATEDLABEL="MXN-BS" LABEL="Baja California Sur" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1219" CREATED="2009-01-28 17:07:04.0" UUID="24fb113f-89b1-46bb-b5e6-fb5e7143ffea" TEXT="Baja California" ABBREVIATEDLABEL="MXN-BC" LABEL="Baja California" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1220" CREATED="2009-01-28 17:07:04.0" UUID="666a03c5-4ad5-4594-8886-91e83bd42a4f" TEXT="Revillagigedo Is." ABBREVIATEDLABEL="MXI-RG" LABEL="Revillagigedo Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1221" CREATED="2009-01-28 17:07:04.0" UUID="e9e97f18-be57-4b0a-8be8-2a2e50ff65bb" TEXT="Rocas Alijos" ABBREVIATEDLABEL="MXI-RA" LABEL="Rocas Alijos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1222" CREATED="2009-01-28 17:07:04.0" UUID="9176abcb-cb5c-489e-b6db-6eb23d36b599" TEXT="Guadalupe I." ABBREVIATEDLABEL="MXI-GU" LABEL="Guadalupe I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1223" CREATED="2009-01-28 17:07:04.0" UUID="1074a5a0-9ac7-4579-95c6-9689269e438a" TEXT="Veracruz" ABBREVIATEDLABEL="MXG-VC" LABEL="Veracruz" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1224" CREATED="2009-01-28 17:07:04.0" UUID="390aad65-fc23-4687-bfdf-e1fd0ba717c1" TEXT="Zacatecas" ABBREVIATEDLABEL="MXE-ZA" LABEL="Zacatecas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1225" CREATED="2009-01-28 17:07:04.0" UUID="ff9040c7-33a6-417f-8395-00e843e91c84" TEXT="Tamaulipas" ABBREVIATEDLABEL="MXE-TA" LABEL="Tamaulipas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1226" CREATED="2009-01-28 17:07:04.0" UUID="94b4efe2-9e6d-4f2c-9809-745adbd38a68" TEXT="San Luis Potosí" ABBREVIATEDLABEL="MXE-SL" LABEL="San Luis Potosí" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1227" CREATED="2009-01-28 17:07:04.0" UUID="dff8c601-0fd4-423d-b656-9f420b5b604b" TEXT="Querétaro" ABBREVIATEDLABEL="MXE-QU" LABEL="Querétaro" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1228" CREATED="2009-01-28 17:07:04.0" UUID="c715a2ae-1d0a-4153-a66b-9c12aba58d94" TEXT="Nuevo León" ABBREVIATEDLABEL="MXE-NL" LABEL="Nuevo León" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1229" CREATED="2009-01-28 17:07:04.0" UUID="fd163a62-131d-4407-82b8-e4a431d85ced" TEXT="Hidalgo" ABBREVIATEDLABEL="MXE-HI" LABEL="Hidalgo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1230" CREATED="2009-01-28 17:07:04.0" UUID="ad369474-a8cf-43f1-8c3e-c4ddd1578446" TEXT="Guanajuato" ABBREVIATEDLABEL="MXE-GU" LABEL="Guanajuato" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1231" CREATED="2009-01-28 17:07:04.0" UUID="95adb387-8830-4860-9336-97198079fa17" TEXT="Durango" ABBREVIATEDLABEL="MXE-DU" LABEL="Durango" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1232" CREATED="2009-01-28 17:07:04.0" UUID="3a7df05c-fa62-4320-bd52-5834f8528c41" TEXT="Chihuahua" ABBREVIATEDLABEL="MXE-CU" LABEL="Chihuahua" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1233" CREATED="2009-01-28 17:07:04.0" UUID="e3512704-8b52-4134-ba4d-8bfb51197bd9" TEXT="Coahuila" ABBREVIATEDLABEL="MXE-CO" LABEL="Coahuila" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1234" CREATED="2009-01-28 17:07:04.0" UUID="862013c6-48fe-410c-b02e-2572834815c1" TEXT="Aguascalientes" ABBREVIATEDLABEL="MXE-AG" LABEL="Aguascalientes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1235" CREATED="2009-01-28 17:07:04.0" UUID="1af27085-70ff-46bb-a0ab-cb710f46fc46" TEXT="Tlaxcala" ABBREVIATEDLABEL="MXC-TL" LABEL="Tlaxcala" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1236" CREATED="2009-01-28 17:07:04.0" UUID="65b76b6f-7245-41f2-b9e0-45c5e9d4df92" TEXT="Puebla" ABBREVIATEDLABEL="MXC-PU" LABEL="Puebla" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1237" CREATED="2009-01-28 17:07:04.0" UUID="8653ef56-b38c-461a-9318-1856b22a86f1" TEXT="Morelos" ABBREVIATEDLABEL="MXC-MO" LABEL="Morelos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1238" CREATED="2009-01-28 17:07:04.0" UUID="11175d48-2b0a-4795-816f-6ecb0ad54f12" TEXT="México State" ABBREVIATEDLABEL="MXC-ME" LABEL="México State" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1239" CREATED="2009-01-28 17:07:04.0" UUID="94ea8e4a-33a7-48b8-98aa-1597222f1e7a" TEXT="Mexico Distrito Federal" ABBREVIATEDLABEL="MXC-DF" LABEL="Mexico Distrito Federal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1240" CREATED="2009-01-28 17:07:04.0" UUID="9aed0b80-f697-409f-bc9f-38a414737389" TEXT="Mauritania" ABBREVIATEDLABEL="MTN-OO" LABEL="Mauritania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1241" CREATED="2009-01-28 17:07:04.0" UUID="d7dcac90-af1e-4c28-858f-ecab0d9a81a2" TEXT="Missouri" ABBREVIATEDLABEL="MSO-OO" LABEL="Missouri" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1242" CREATED="2009-01-28 17:07:04.0" UUID="79bc549a-e8e1-476e-95fb-f4bc5983b540" TEXT="Mississippi" ABBREVIATEDLABEL="MSI-OO" LABEL="Mississippi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1243" CREATED="2009-01-28 17:07:04.0" UUID="a420d056-ce97-46b9-b6c5-84616b16a8c6" TEXT="Maryland" ABBREVIATEDLABEL="MRY-OO" LABEL="Maryland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1244" CREATED="2009-01-28 17:07:04.0" UUID="db85641f-ebc9-46b8-8c93-69bf5922244c" TEXT="Marshall Is." ABBREVIATEDLABEL="MRS-OO" LABEL="Marshall Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1245" CREATED="2009-01-28 17:07:04.0" UUID="3c83fbe5-5ec3-4c13-9802-defe521ef55d" TEXT="Marquesas" ABBREVIATEDLABEL="MRQ-OO" LABEL="Marquesas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1246" CREATED="2009-01-28 17:07:04.0" UUID="5487e4a1-a8c5-4b96-a4e4-276eb4f277bc" TEXT="Northern Marianas" ABBREVIATEDLABEL="MRN-NM" LABEL="Northern Marianas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1247" CREATED="2009-01-28 17:07:04.0" UUID="c2e47a9b-a90d-41bd-be93-a8ab00cc0900" TEXT="Guam" ABBREVIATEDLABEL="MRN-GU" LABEL="Guam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1248" CREATED="2009-01-28 17:07:04.0" UUID="1a3e7a70-4d29-4cbe-b461-d29961540e7e" TEXT="Marion-Prince Edward Is." ABBREVIATEDLABEL="MPE-OO" LABEL="Marion-Prince Edward Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1249" CREATED="2009-01-28 17:07:04.0" UUID="ee88fa13-4810-4a86-b414-7abaa93380f4" TEXT="Mozambique" ABBREVIATEDLABEL="MOZ-OO" LABEL="Mozambique" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1250" CREATED="2009-01-28 17:07:04.0" UUID="16deff64-8ec8-4b0b-848c-1d888f7882a1" TEXT="Spanish North African Territories" ABBREVIATEDLABEL="MOR-SP" LABEL="Spanish North African Territories" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1251" CREATED="2009-01-28 17:07:04.0" UUID="f88c40d0-51da-402f-b9cc-40f96f5714d2" TEXT="Morocco" ABBREVIATEDLABEL="MOR-MO" LABEL="Morocco" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1252" CREATED="2009-01-28 17:07:04.0" UUID="c5c7d46a-78d7-4f44-bae1-3fc79f3614c9" TEXT="Mongolia" ABBREVIATEDLABEL="MON-OO" LABEL="Mongolia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1253" CREATED="2009-01-28 17:07:04.0" UUID="a2b7a0c3-f713-4aac-a18b-4941df61b9fe" TEXT="Maluku" ABBREVIATEDLABEL="MOL-OO" LABEL="Maluku" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1254" CREATED="2009-01-28 17:07:04.0" UUID="0238a46e-6aa7-41a1-89e4-ffc0b4d63072" TEXT="Montana" ABBREVIATEDLABEL="MNT-OO" LABEL="Montana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1255" CREATED="2009-01-28 17:07:04.0" UUID="8883f9a9-2a23-43fb-9d80-60f25d6d6af4" TEXT="Singapore" ABBREVIATEDLABEL="MLY-SI" LABEL="Singapore" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1256" CREATED="2009-01-28 17:07:04.0" UUID="ef524ff1-c991-4201-94a1-fbe2afdde9ee" TEXT="Peninsular Malaysia" ABBREVIATEDLABEL="MLY-PM" LABEL="Peninsular Malaysia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1257" CREATED="2009-01-28 17:07:04.0" UUID="ee44fcb4-7e76-43c7-97eb-26b1ea37d9e2" TEXT="Malawi" ABBREVIATEDLABEL="MLW-OO" LABEL="Malawi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1258" CREATED="2009-01-28 17:07:04.0" UUID="85a6dd21-a48d-4d84-a4ea-5a4b3558ec8b" TEXT="Mali" ABBREVIATEDLABEL="MLI-OO" LABEL="Mali" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1259" CREATED="2009-01-28 17:07:04.0" UUID="8459c1e3-be56-49ef-b2c9-6164adac2dff" TEXT="Minnesota" ABBREVIATEDLABEL="MIN-OO" LABEL="Minnesota" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1260" CREATED="2009-01-28 17:07:04.0" UUID="4f976279-3026-449e-86a2-672b0b0df5a5" TEXT="Michigan" ABBREVIATEDLABEL="MIC-OO" LABEL="Michigan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1261" CREATED="2009-01-28 17:07:04.0" UUID="5adb9051-63c1-4105-8457-1cbfa2a7338a" TEXT="Maldives" ABBREVIATEDLABEL="MDV-OO" LABEL="Maldives" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1262" CREATED="2009-01-28 17:07:04.0" UUID="95dfb13a-adb9-418c-a344-ba2643b45590" TEXT="Madeira" ABBREVIATEDLABEL="MDR-OO" LABEL="Madeira" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1263" CREATED="2009-01-28 17:07:04.0" UUID="83bc1893-7e88-449f-8247-2ccb0ad26e96" TEXT="Madagascar" ABBREVIATEDLABEL="MDG-OO" LABEL="Madagascar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1264" CREATED="2009-01-28 17:07:04.0" UUID="250ed581-1bd5-47b1-b638-a7ebaa1a0cc0" TEXT="Marcus I." ABBREVIATEDLABEL="MCS-OO" LABEL="Marcus I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1265" CREATED="2009-01-28 17:07:04.0" UUID="37b6c523-7e06-406d-91f9-3d05ddebca4b" TEXT="Mozambique Channel Is." ABBREVIATEDLABEL="MCI-OO" LABEL="Mozambique Channel Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1266" CREATED="2009-01-28 17:07:04.0" UUID="d4653acb-1304-412d-8599-31646680fcaa" TEXT="Mauritius" ABBREVIATEDLABEL="MAU-OO" LABEL="Mauritius" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1267" CREATED="2009-01-28 17:07:04.0" UUID="1380d214-5443-4365-9beb-e9f9a7d7226a" TEXT="Masachusettes" ABBREVIATEDLABEL="MAS-OO" LABEL="Masachusettes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1268" CREATED="2009-01-28 17:07:04.0" UUID="086678ea-6cfc-485e-8cdc-4fb0e47683ee" TEXT="Macquarie Is." ABBREVIATEDLABEL="MAQ-OO" LABEL="Macquarie Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1269" CREATED="2009-01-28 17:07:04.0" UUID="47c8aa92-556c-45e0-85f4-c9b86b415dc2" TEXT="Manitoba" ABBREVIATEDLABEL="MAN-OO" LABEL="Manitoba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1270" CREATED="2009-01-28 17:07:04.0" UUID="a6a9c100-bf88-4287-83f1-34b4bebffeb0" TEXT="Maine" ABBREVIATEDLABEL="MAI-OO" LABEL="Maine" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1271" CREATED="2009-01-28 17:07:04.0" UUID="7eb42244-7521-4d69-a047-0016059b8f7a" TEXT="Magadan" ABBREVIATEDLABEL="MAG-OO" LABEL="Magadan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1272" CREATED="2009-01-28 17:07:04.0" UUID="e7eafa33-9ee0-4034-8a1f-e3e8ea0a343f" TEXT="Lesser Sunda Is." ABBREVIATEDLABEL="LSI-LS" LABEL="Lesser Sunda Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1273" CREATED="2009-01-28 17:07:04.0" UUID="6dea094b-3e4f-4cec-83fc-b05068e39ef7" TEXT="East Timor" ABBREVIATEDLABEL="LSI-ET" LABEL="East Timor" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1274" CREATED="2009-01-28 17:07:04.0" UUID="5a9d5ffa-e212-4cc2-b2c5-b77053df4d7b" TEXT="Bali" ABBREVIATEDLABEL="LSI-BA" LABEL="Bali" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1275" CREATED="2009-01-28 17:07:04.0" UUID="e3f16461-6a3d-4014-9be0-99bdb14b5dcd" TEXT="Louisiana" ABBREVIATEDLABEL="LOU-OO" LABEL="Louisiana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1276" CREATED="2009-01-28 17:07:04.0" UUID="67c631a6-9a19-4331-a212-93761a44016e" TEXT="U.S. Line Is." ABBREVIATEDLABEL="LIN-US" LABEL="U.S. Line Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1277" CREATED="2009-01-28 17:07:04.0" UUID="18b2a67a-8648-4a5a-af2c-fadb31b17dc9" TEXT="Kiribati Line Is." ABBREVIATEDLABEL="LIN-KI" LABEL="Kiribati Line Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1278" CREATED="2009-01-28 17:07:04.0" UUID="719c666a-15a7-4b65-ab30-70d1b87b9b73" TEXT="Lesotho" ABBREVIATEDLABEL="LES-OO" LABEL="Lesotho" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1279" CREATED="2009-01-28 17:07:04.0" UUID="840addb6-fbdc-424a-a55d-64b1951e88da" TEXT="Virgin Is." ABBREVIATEDLABEL="LEE-VI" LABEL="Virgin Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1280" CREATED="2009-01-28 17:07:04.0" UUID="44b18b3a-dd1b-478d-a82a-a354d74e8d6f" TEXT="St.Martin-St.Barthélémy" ABBREVIATEDLABEL="LEE-SM" LABEL="St.Martin-St.Barthélémy" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1281" CREATED="2009-01-28 17:07:04.0" UUID="104fd6e2-d20a-4b44-92e2-8759e5ac7142" TEXT="St.Kitts-Nevis" ABBREVIATEDLABEL="LEE-SK" LABEL="St.Kitts-Nevis" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1282" CREATED="2009-01-28 17:07:04.0" UUID="e300ccff-aff5-4a1a-b585-ba5084e222ce" TEXT="Netherlands Leeward Is." ABBREVIATEDLABEL="LEE-NL" LABEL="Netherlands Leeward Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1283" CREATED="2009-01-28 17:07:04.0" UUID="b1a422bf-fa84-4f97-9e3c-067639f3f531" TEXT="Montserrat" ABBREVIATEDLABEL="LEE-MO" LABEL="Montserrat" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1284" CREATED="2009-01-28 17:07:04.0" UUID="d7a850cb-02ee-4015-9231-59bb6a43da8e" TEXT="Guadeloupe" ABBREVIATEDLABEL="LEE-GU" LABEL="Guadeloupe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1285" CREATED="2009-01-28 17:07:04.0" UUID="3fbd1eac-be9c-445b-88d8-28b47b6d36f6" TEXT="British Virgin Is." ABBREVIATEDLABEL="LEE-BV" LABEL="British Virgin Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1286" CREATED="2009-01-28 17:07:04.0" UUID="50fd24cf-a02b-4e4d-9203-dcbe33348d06" TEXT="Aves I." ABBREVIATEDLABEL="LEE-AV" LABEL="Aves I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1287" CREATED="2009-01-28 17:07:04.0" UUID="233114db-5a71-4866-ac88-ba0a9aed89f1" TEXT="Anguilla" ABBREVIATEDLABEL="LEE-AG" LABEL="Anguilla" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1288" CREATED="2009-01-28 17:07:04.0" UUID="a235e23b-603f-4358-beaf-7e412319db62" TEXT="Antigua-Barbuda" ABBREVIATEDLABEL="LEE-AB" LABEL="Antigua-Barbuda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1289" CREATED="2009-01-28 17:07:04.0" UUID="be3e99a3-01ec-40f7-81e8-2245699d1817" TEXT="Laccadive Is." ABBREVIATEDLABEL="LDV-OO" LABEL="Laccadive Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1290" CREATED="2009-01-28 17:07:04.0" UUID="6ae2e354-9725-447f-8a00-6948f71b8d79" TEXT="Libya" ABBREVIATEDLABEL="LBY-OO" LABEL="Libya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1291" CREATED="2009-01-28 17:07:04.0" UUID="63700e30-7e99-49ca-8f5f-ddca244e7d96" TEXT="Syria" ABBREVIATEDLABEL="LBS-SY" LABEL="Syria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1292" CREATED="2009-01-28 17:07:04.0" UUID="fd2b4641-487c-4135-ae2e-09a111144f17" TEXT="Lebanon" ABBREVIATEDLABEL="LBS-LB" LABEL="Lebanon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1293" CREATED="2009-01-28 17:07:04.0" UUID="e5fbdadd-b0e4-420e-9cba-ed301633d08d" TEXT="Liberia" ABBREVIATEDLABEL="LBR-OO" LABEL="Liberia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1294" CREATED="2009-01-28 17:07:04.0" UUID="a31ba6b4-1182-4fb1-92da-60a6401efef1" TEXT="Laos" ABBREVIATEDLABEL="LAO-OO" LABEL="Laos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1295" CREATED="2009-01-28 17:07:04.0" UUID="aa56d7b4-bde4-4020-91ab-0a01f3dfd0f6" TEXT="Labrador" ABBREVIATEDLABEL="LAB-OO" LABEL="Labrador" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1296" CREATED="2009-01-28 17:07:04.0" UUID="417b479d-4427-49be-9e96-f5ed8afb57cd" TEXT="Kazan-retto" ABBREVIATEDLABEL="KZN-OO" LABEL="Kazan-retto" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1297" CREATED="2009-01-28 17:07:04.0" UUID="b6d49ec0-8d78-4ced-b26b-78c190559ac8" TEXT="Kuwait" ABBREVIATEDLABEL="KUW-OO" LABEL="Kuwait" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1298" CREATED="2009-01-28 17:07:04.0" UUID="0e211443-2fdd-4e74-acbc-7dbd98dc614c" TEXT="Kuril Is." ABBREVIATEDLABEL="KUR-OO" LABEL="Kuril Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1299" CREATED="2009-01-28 17:07:04.0" UUID="be23e1c6-1714-478e-a17b-3ecdc11d706c" TEXT="Kentucky" ABBREVIATEDLABEL="KTY-OO" LABEL="Kentucky" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1300" CREATED="2009-01-28 17:07:04.0" UUID="70b144ce-bd9b-4d60-82dd-bde739c56727" TEXT="Krym" ABBREVIATEDLABEL="KRY-OO" LABEL="Krym" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1301" CREATED="2009-01-28 17:07:04.0" UUID="b0bebc79-2e2b-4f4a-816c-829b2ba7df01" TEXT="Kriti" ABBREVIATEDLABEL="KRI-OO" LABEL="Kriti" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1302" CREATED="2009-01-28 17:07:04.0" UUID="11520f68-3ba0-4b3b-afbf-c9a9ff19c4af" TEXT="Krasnoyarsk" ABBREVIATEDLABEL="KRA-OO" LABEL="Krasnoyarsk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1303" CREATED="2009-01-28 17:07:04.0" UUID="3ae60f5f-ea23-4256-a5d2-92775a664ee9" TEXT="South Korea" ABBREVIATEDLABEL="KOR-SK" LABEL="South Korea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1304" CREATED="2009-01-28 17:07:04.0" UUID="cf56519c-b2fb-4927-be82-241eca8be834" TEXT="North Korea" ABBREVIATEDLABEL="KOR-NK" LABEL="North Korea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1305" CREATED="2009-01-28 17:07:04.0" UUID="6e13ca41-a430-4f4c-b3ea-510fb4b9b166" TEXT="Khabarovsk" ABBREVIATEDLABEL="KHA-OO" LABEL="Khabarovsk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1306" CREATED="2009-01-28 17:07:04.0" UUID="281f23aa-b9ff-44d0-b45e-a90502644d86" TEXT="Kirgizistan" ABBREVIATEDLABEL="KGZ-OO" LABEL="Kirgizistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1307" CREATED="2009-01-28 17:07:04.0" UUID="dfec0dad-5dd2-4c2c-8b7e-215df9fdd279" TEXT="Kermadec Is." ABBREVIATEDLABEL="KER-OO" LABEL="Kermadec Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1308" CREATED="2009-01-28 17:07:04.0" UUID="55d7f43a-bd40-4256-8720-e2363c847759" TEXT="Kenya" ABBREVIATEDLABEL="KEN-OO" LABEL="Kenya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1309" CREATED="2009-01-28 17:07:04.0" UUID="e4656106-d0ad-4678-8ec5-f5b417f522ec" TEXT="Kerguelen" ABBREVIATEDLABEL="KEG-OO" LABEL="Kerguelen" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1310" CREATED="2009-01-28 17:07:04.0" UUID="72693137-1343-4036-a48d-27b16cc4ccb2" TEXT="Kazakhstan" ABBREVIATEDLABEL="KAZ-OO" LABEL="Kazakhstan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1311" CREATED="2009-01-28 17:07:04.0" UUID="9a28d0bf-7c83-4538-be8a-ca089cd02af4" TEXT="Kansas" ABBREVIATEDLABEL="KAN-OO" LABEL="Kansas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1312" CREATED="2009-01-28 17:07:04.0" UUID="4b1e7d64-ef0c-4d5c-b74b-dd0b7073a827" TEXT="Kamchatka" ABBREVIATEDLABEL="KAM-OO" LABEL="Kamchatka" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1313" CREATED="2009-01-28 17:07:04.0" UUID="0ac99b59-5482-4639-8ab5-4c936a88f8b7" TEXT="Juan Fernández Is." ABBREVIATEDLABEL="JNF-OO" LABEL="Juan Fernández Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1314" CREATED="2009-01-28 17:07:04.0" UUID="910e7fa6-ab32-4fbb-8273-4829b0227fb8" TEXT="Jawa" ABBREVIATEDLABEL="JAW-OO" LABEL="Jawa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1315" CREATED="2009-01-28 17:07:04.0" UUID="2ef8f4d6-f07e-4cc1-8e5f-bfe41bd992a0" TEXT="Shikoku" ABBREVIATEDLABEL="JAP-SH" LABEL="Shikoku" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1316" CREATED="2009-01-28 17:07:04.0" UUID="fe0e07ed-50b8-4bcc-aaad-eea945ba6f3b" TEXT="Kyushu" ABBREVIATEDLABEL="JAP-KY" LABEL="Kyushu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1317" CREATED="2009-01-28 17:07:04.0" UUID="2d38f0b3-9311-485e-b242-7b5bcecbc807" TEXT="Honshu" ABBREVIATEDLABEL="JAP-HN" LABEL="Honshu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1318" CREATED="2009-01-28 17:07:04.0" UUID="cf66ee3b-aeba-4fb7-adb3-c0a0dfc1d336" TEXT="Hokkaido" ABBREVIATEDLABEL="JAP-HK" LABEL="Hokkaido" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1319" CREATED="2009-01-28 17:07:04.0" UUID="0dfca5a2-5442-4f45-8ddb-ccbea2d30202" TEXT="Jamaica" ABBREVIATEDLABEL="JAM-OO" LABEL="Jamaica" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1320" CREATED="2009-01-28 17:07:04.0" UUID="146be72f-c13d-45dc-987f-628386f8d9c8" TEXT="Ivory Coast" ABBREVIATEDLABEL="IVO-OO" LABEL="Ivory Coast" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1321" CREATED="2009-01-28 17:07:04.0" UUID="6b8e4c4a-87b7-4c78-8db5-39167024ae60" TEXT="Vatican City" ABBREVIATEDLABEL="ITA-VC" LABEL="Vatican City" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1322" CREATED="2009-01-28 17:07:04.0" UUID="6aee9dc9-c1bf-4c1e-94d7-e9e7e04fae18" TEXT="San Marino" ABBREVIATEDLABEL="ITA-SM" LABEL="San Marino" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1323" CREATED="2009-01-28 17:07:04.0" UUID="b423d236-2829-4a9d-9c0b-2f2a207377ca" TEXT="Italy" ABBREVIATEDLABEL="ITA-IT" LABEL="Italy" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1324" CREATED="2009-01-28 17:07:04.0" UUID="1f8dbf0c-3c59-49f0-8095-f21d7103557e" TEXT="Iraq" ABBREVIATEDLABEL="IRQ-OO" LABEL="Iraq" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1325" CREATED="2009-01-28 17:07:04.0" UUID="1c66da10-68dc-4f2b-8a34-38611f6e7ca2" TEXT="Iran" ABBREVIATEDLABEL="IRN-OO" LABEL="Iran" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1326" CREATED="2009-01-28 17:07:04.0" UUID="3050d30d-659e-4f41-b1b4-c1d7eeced48b" TEXT="Irkutsk" ABBREVIATEDLABEL="IRK-OO" LABEL="Irkutsk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1327" CREATED="2009-01-28 17:07:04.0" UUID="68b6fb67-4d52-4dc3-8516-86b489edd253" TEXT="Northern Ireland" ABBREVIATEDLABEL="IRE-NI" LABEL="Northern Ireland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1328" CREATED="2009-01-28 17:07:04.0" UUID="4acf2b6e-455f-4cf2-ad80-12336483f79b" TEXT="Ireland" ABBREVIATEDLABEL="IRE-IR" LABEL="Ireland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1329" CREATED="2009-01-28 17:07:04.0" UUID="ea28d3b1-2277-4455-a7d0-c75ace45cd8c" TEXT="Iowa" ABBREVIATEDLABEL="IOW-OO" LABEL="Iowa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1330" CREATED="2009-01-28 17:07:04.0" UUID="305c4c3b-73f0-43ea-9dcc-bc5d2dbec342" TEXT="Indiana" ABBREVIATEDLABEL="INI-OO" LABEL="Indiana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1331" CREATED="2009-01-28 17:07:04.0" UUID="b9eca024-14c4-48cd-a7cb-fe4c815e573d" TEXT="Yanam" ABBREVIATEDLABEL="IND-YA" LABEL="Yanam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1332" CREATED="2009-01-28 17:07:04.0" UUID="0ab920cb-df4a-479a-a025-178eb4187892" TEXT="West Bengal" ABBREVIATEDLABEL="IND-WB" LABEL="West Bengal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1333" CREATED="2009-01-28 17:07:04.0" UUID="49b6d0f1-b6e8-48d4-866c-559c7a19b21f" TEXT="Uttar Pradesh" ABBREVIATEDLABEL="IND-UP" LABEL="Uttar Pradesh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1334" CREATED="2009-01-28 17:07:04.0" UUID="8a3f77c3-1a91-4d51-9477-06620a3f0029" TEXT="Tamil Nadu" ABBREVIATEDLABEL="IND-TN" LABEL="Tamil Nadu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1335" CREATED="2009-01-28 17:07:04.0" UUID="a662fcfd-2339-499d-a604-33553e4d2182" TEXT="Rajasthan" ABBREVIATEDLABEL="IND-RA" LABEL="Rajasthan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1336" CREATED="2009-01-28 17:07:04.0" UUID="a6c59c2f-567a-4591-92a9-4384775d15e3" TEXT="Punjab" ABBREVIATEDLABEL="IND-PU" LABEL="Punjab" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1337" CREATED="2009-01-28 17:07:04.0" UUID="d883ddc0-4090-479c-975e-b05604acb47e" TEXT="Pondicherry" ABBREVIATEDLABEL="IND-PO" LABEL="Pondicherry" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1338" CREATED="2009-01-28 17:07:04.0" UUID="bc6d6085-9533-44df-85f2-3c218a601f03" TEXT="Orissa" ABBREVIATEDLABEL="IND-OR" LABEL="Orissa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1339" CREATED="2009-01-28 17:07:04.0" UUID="5cf8de17-9d0e-4e1b-8dd3-c2e0bbd30a9d" TEXT="Maharashtra" ABBREVIATEDLABEL="IND-MR" LABEL="Maharashtra" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1340" CREATED="2009-01-28 17:07:04.0" UUID="723d486d-f76b-4e33-8e84-6c72af376812" TEXT="Madhya Pradesh" ABBREVIATEDLABEL="IND-MP" LABEL="Madhya Pradesh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1341" CREATED="2009-01-28 17:07:04.0" UUID="eda6a5b0-a223-4a6a-ac5b-adbdac65da35" TEXT="Mahé" ABBREVIATEDLABEL="IND-MH" LABEL="Mahé" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1342" CREATED="2009-01-28 17:07:04.0" UUID="9a3aeb41-5eb4-4ba1-a1e3-0a4dc82edb7f" TEXT="Karnataka" ABBREVIATEDLABEL="IND-KT" LABEL="Karnataka" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1343" CREATED="2009-01-28 17:07:04.0" UUID="47aad0f3-25af-4599-8a2a-5f9c53f9d435" TEXT="Karaikal" ABBREVIATEDLABEL="IND-KL" LABEL="Karaikal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1344" CREATED="2009-01-28 17:07:04.0" UUID="4eb30b03-426a-4198-a208-7c79a2798f2a" TEXT="Kerala" ABBREVIATEDLABEL="IND-KE" LABEL="Kerala" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1345" CREATED="2009-01-28 17:07:04.0" UUID="65b2cc94-24ff-4bf5-b057-9b886a0356dc" TEXT="Jharkhand" ABBREVIATEDLABEL="IND-JK" LABEL="Jharkhand" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1346" CREATED="2009-01-28 17:07:04.0" UUID="bd292b3f-9700-4ac6-8bd2-35010354cc58" TEXT="Haryana" ABBREVIATEDLABEL="IND-HA" LABEL="Haryana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1347" CREATED="2009-01-28 17:07:04.0" UUID="e50ab641-ab91-40d8-bbd7-b5b23cb110d0" TEXT="Gujarat" ABBREVIATEDLABEL="IND-GU" LABEL="Gujarat" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1348" CREATED="2009-01-28 17:07:04.0" UUID="42a02bde-fa58-4da3-afd0-43a784d5341a" TEXT="Goa" ABBREVIATEDLABEL="IND-GO" LABEL="Goa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1349" CREATED="2009-01-28 17:07:04.0" UUID="a237025c-29ee-4b80-bb95-5301e2f80d6e" TEXT="Daman" ABBREVIATEDLABEL="IND-DM" LABEL="Daman" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1350" CREATED="2009-01-28 17:07:04.0" UUID="447bb7ec-510f-44a2-b019-8783c1475369" TEXT="Diu" ABBREVIATEDLABEL="IND-DI" LABEL="Diu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1351" CREATED="2009-01-28 17:07:04.0" UUID="0677183f-aa3c-46ab-94e2-c90246d135c3" TEXT="Delhi" ABBREVIATEDLABEL="IND-DE" LABEL="Delhi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1352" CREATED="2009-01-28 17:07:04.0" UUID="21fa71a7-d1a3-4032-8a49-7743109bb8bc" TEXT="Dadra-Nagar-Haveli" ABBREVIATEDLABEL="IND-DD" LABEL="Dadra-Nagar-Haveli" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1353" CREATED="2009-01-28 17:07:04.0" UUID="e6799278-0097-4840-9b69-ee7421b0f7a0" TEXT="Chattisgarh" ABBREVIATEDLABEL="IND-CT" LABEL="Chattisgarh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1354" CREATED="2009-01-28 17:07:04.0" UUID="a292235c-43d4-44b4-92dd-4bacff6f12ce" TEXT="Chandigarh" ABBREVIATEDLABEL="IND-CH" LABEL="Chandigarh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1355" CREATED="2009-01-28 17:07:04.0" UUID="1654e409-2fba-4c12-b3e7-0a4ba5acb43c" TEXT="Bihar" ABBREVIATEDLABEL="IND-BI" LABEL="Bihar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1356" CREATED="2009-01-28 17:07:04.0" UUID="f242e8f6-5f60-499d-a342-b60e648b10c7" TEXT="Andhra Pradesh" ABBREVIATEDLABEL="IND-AP" LABEL="Andhra Pradesh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1357" CREATED="2009-01-28 17:07:04.0" UUID="b0b1f9b7-ad3d-4814-8fe1-d53c6295c618" TEXT="Illinois" ABBREVIATEDLABEL="ILL-OO" LABEL="Illinois" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1358" CREATED="2009-01-28 17:07:04.0" UUID="144e13ad-28dd-40ce-87f9-1481407b3c14" TEXT="Idaho" ABBREVIATEDLABEL="IDA-OO" LABEL="Idaho" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1359" CREATED="2009-01-28 17:07:04.0" UUID="75b9a684-37a7-4240-85f8-c6a898d017b3" TEXT="Iceland" ABBREVIATEDLABEL="ICE-OO" LABEL="Iceland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1360" CREATED="2009-01-28 17:07:04.0" UUID="2aa03206-1389-46c7-a61b-9614917434df" TEXT="Hungary" ABBREVIATEDLABEL="HUN-OO" LABEL="Hungary" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1361" CREATED="2009-01-28 17:07:04.0" UUID="1b3b21c2-de63-4b07-a6f9-786584c1314f" TEXT="Honduras" ABBREVIATEDLABEL="HON-OO" LABEL="Honduras" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1362" CREATED="2009-01-28 17:07:04.0" UUID="067d493d-7ec9-4aad-9eb1-dfb5ada1e818" TEXT="Heard-McDonald Is." ABBREVIATEDLABEL="HMD-OO" LABEL="Heard-McDonald Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1363" CREATED="2009-01-28 17:07:04.0" UUID="f9220221-9114-4376-a198-0963378044ca" TEXT="Howland-Baker Is." ABBREVIATEDLABEL="HBI-OO" LABEL="Howland-Baker Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1364" CREATED="2009-01-28 17:07:04.0" UUID="9518104c-5ca9-44e0-b252-a561cd4bfd0d" TEXT="Midway Is." ABBREVIATEDLABEL="HAW-MI" LABEL="Midway Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1365" CREATED="2009-01-28 17:07:04.0" UUID="b431b58b-417f-45fd-a9f2-760712bf9ab9" TEXT="Johnston I." ABBREVIATEDLABEL="HAW-JI" LABEL="Johnston I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1366" CREATED="2009-01-28 17:07:04.0" UUID="aaecfbaa-cbed-4a15-9407-c1f6fb63ca35" TEXT="Hawaiian Is." ABBREVIATEDLABEL="HAW-HI" LABEL="Hawaiian Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1367" CREATED="2009-01-28 17:07:04.0" UUID="3f445c6e-a9d8-4076-8467-319ae55bfa9d" TEXT="Navassa I." ABBREVIATEDLABEL="HAI-NI" LABEL="Navassa I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1368" CREATED="2009-01-28 17:07:04.0" UUID="9ab72340-6895-43a9-be87-089eb5941380" TEXT="Haiti" ABBREVIATEDLABEL="HAI-HA" LABEL="Haiti" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1369" CREATED="2009-01-28 17:07:04.0" UUID="73810b2c-3f03-4d73-b548-446ad86ac3f7" TEXT="Guyana" ABBREVIATEDLABEL="GUY-OO" LABEL="Guyana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1370" CREATED="2009-01-28 17:07:04.0" UUID="d8f5ba48-72af-40c0-b621-c30a7d6656af" TEXT="Guinea" ABBREVIATEDLABEL="GUI-OO" LABEL="Guinea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1371" CREATED="2009-01-28 17:07:04.0" UUID="4f7b8c07-d74d-4dd3-a608-1240c97a955b" TEXT="Guatemala" ABBREVIATEDLABEL="GUA-OO" LABEL="Guatemala" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1372" CREATED="2009-01-28 17:07:04.0" UUID="00748df4-4d46-4c94-a9ee-c22d70fac14b" TEXT="United Arab Emirates" ABBREVIATEDLABEL="GST-UA" LABEL="United Arab Emirates" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1373" CREATED="2009-01-28 17:07:04.0" UUID="95841f07-6e4b-492d-8c00-2fd5bb30fff4" TEXT="Qatar" ABBREVIATEDLABEL="GST-QA" LABEL="Qatar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1374" CREATED="2009-01-28 17:07:04.0" UUID="0fdc1bb7-08bd-499d-9d6c-d96b710a62fd" TEXT="Bahrain" ABBREVIATEDLABEL="GST-BA" LABEL="Bahrain" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1375" CREATED="2009-01-28 17:07:04.0" UUID="8e451209-793f-4158-86d4-c3f61a68db04" TEXT="Greece" ABBREVIATEDLABEL="GRC-OO" LABEL="Greece" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1376" CREATED="2009-01-28 17:07:04.0" UUID="17e4ee97-c103-4dec-8dec-81d24c2bfeff" TEXT="Great Britain" ABBREVIATEDLABEL="GRB-OO" LABEL="Great Britain" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1377" CREATED="2009-01-28 17:07:04.0" UUID="c73f63ff-f704-4de5-9328-404941fd1571" TEXT="Greenland" ABBREVIATEDLABEL="GNL-OO" LABEL="Greenland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1378" CREATED="2009-01-28 17:07:04.0" UUID="04715bb6-8675-43a7-9b33-26aa14181680" TEXT="Guinea-Bissau" ABBREVIATEDLABEL="GNB-OO" LABEL="Guinea-Bissau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1379" CREATED="2009-01-28 17:07:04.0" UUID="cce046de-3dd5-48ab-8b46-6a838ccf6a34" TEXT="Gilbert Is." ABBREVIATEDLABEL="GIL-OO" LABEL="Gilbert Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1380" CREATED="2009-01-28 17:07:04.0" UUID="12d89413-93ad-4cf1-8bca-10224cc2ea02" TEXT="Ghana" ABBREVIATEDLABEL="GHA-OO" LABEL="Ghana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1381" CREATED="2009-01-28 17:07:04.0" UUID="9d1745cb-8b21-4bea-9e25-0cd78ad21bca" TEXT="São Tomé" ABBREVIATEDLABEL="GGI-ST" LABEL="São Tomé" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1382" CREATED="2009-01-28 17:07:04.0" UUID="099574fa-3e37-4349-897d-894edd2509c7" TEXT="Principe" ABBREVIATEDLABEL="GGI-PR" LABEL="Principe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1383" CREATED="2009-01-28 17:07:04.0" UUID="d93f1ef8-9cd8-4378-be30-77f6409fe534" TEXT="Bioko" ABBREVIATEDLABEL="GGI-BI" LABEL="Bioko" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1384" CREATED="2009-01-28 17:07:04.0" UUID="a553d4ce-05c6-4a0d-af29-298c4cf6bd73" TEXT="Annobón" ABBREVIATEDLABEL="GGI-AN" LABEL="Annobón" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1385" CREATED="2009-01-28 17:07:04.0" UUID="be2f50c4-3894-4398-b5b3-54022785250e" TEXT="Germany" ABBREVIATEDLABEL="GER-OO" LABEL="Germany" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1386" CREATED="2009-01-28 17:07:04.0" UUID="e01886f0-c2ea-4ebd-8b75-e35fdee96dab" TEXT="Georgia" ABBREVIATEDLABEL="GEO-OO" LABEL="Georgia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1387" CREATED="2009-01-28 17:07:04.0" UUID="003efb68-76fc-42e7-9bfd-78071636c49b" TEXT="Gambia, The" ABBREVIATEDLABEL="GAM-OO" LABEL="Gambia, The" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1388" CREATED="2009-01-28 17:07:04.0" UUID="a545af5d-87d5-496f-b4da-e556fbcc73ed" TEXT="Galápagos" ABBREVIATEDLABEL="GAL-OO" LABEL="Galápagos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1389" CREATED="2009-01-28 17:07:04.0" UUID="7bddd61f-40f3-4899-8c21-36f35f2c1112" TEXT="Gabon" ABBREVIATEDLABEL="GAB-OO" LABEL="Gabon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1390" CREATED="2009-01-28 17:07:04.0" UUID="401744da-fdd2-4cef-af41-6f48fd132ca8" TEXT="French Guiana" ABBREVIATEDLABEL="FRG-OO" LABEL="French Guiana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1391" CREATED="2009-01-28 17:07:04.0" UUID="a6599956-8139-4bc4-acf5-c81b1e78e365" TEXT="Monaco" ABBREVIATEDLABEL="FRA-MO" LABEL="Monaco" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1392" CREATED="2009-01-28 17:07:04.0" UUID="df17b813-5cf4-4ea5-95b7-9e268bb67b2a" TEXT="France" ABBREVIATEDLABEL="FRA-FR" LABEL="France" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1393" CREATED="2009-01-28 17:07:04.0" UUID="e3f20706-4eb0-4372-a693-aeaec0b4ff18" TEXT="Channel Is." ABBREVIATEDLABEL="FRA-CI" LABEL="Channel Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1394" CREATED="2009-01-28 17:07:04.0" UUID="3bac1e2f-d33b-4b84-ab55-49357fc4814e" TEXT="Føroyar" ABBREVIATEDLABEL="FOR-OO" LABEL="Føroyar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1395" CREATED="2009-01-28 17:07:04.0" UUID="3ce8873f-665c-45c3-8782-b4b68d48e277" TEXT="Florida" ABBREVIATEDLABEL="FLA-OO" LABEL="Florida" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1396" CREATED="2009-01-28 17:07:04.0" UUID="69ca49b4-49ca-4abf-b277-5e161685a2ef" TEXT="Finland" ABBREVIATEDLABEL="FIN-OO" LABEL="Finland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1397" CREATED="2009-01-28 17:07:04.0" UUID="b15bd930-f1dd-469b-9724-dadfd0599578" TEXT="Fiji" ABBREVIATEDLABEL="FIJ-OO" LABEL="Fiji" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1398" CREATED="2009-01-28 17:07:04.0" UUID="07490733-d380-4813-afe6-0b0221a58a68" TEXT="Falkland Is." ABBREVIATEDLABEL="FAL-OO" LABEL="Falkland Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1399" CREATED="2009-01-28 17:07:04.0" UUID="5964e389-8d2f-41e8-a9e7-d567c7c10bd4" TEXT="Ethiopia" ABBREVIATEDLABEL="ETH-OO" LABEL="Ethiopia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1400" CREATED="2009-01-28 17:07:04.0" UUID="ed3f86ab-48a5-41fc-a9d5-c74c9992a5b4" TEXT="Eritrea" ABBREVIATEDLABEL="ERI-OO" LABEL="Eritrea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1401" CREATED="2009-01-28 17:07:04.0" UUID="cd520819-af76-4c29-9914-1a403e8a2830" TEXT="Equatorial Guinea" ABBREVIATEDLABEL="EQG-OO" LABEL="Equatorial Guinea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1402" CREATED="2009-01-28 17:07:04.0" UUID="40bc21a1-485c-49ce-91f2-80718ce625ee" TEXT="El Salvador" ABBREVIATEDLABEL="ELS-OO" LABEL="El Salvador" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1403" CREATED="2009-01-28 17:07:04.0" UUID="7907cdfb-dc24-4f49-928d-fec9dd4c85fd" TEXT="Sikkim" ABBREVIATEDLABEL="EHM-SI" LABEL="Sikkim" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1404" CREATED="2009-01-28 17:07:04.0" UUID="0bfab947-5c46-4f80-822c-521ea3dc67a8" TEXT="Darjiling" ABBREVIATEDLABEL="EHM-DJ" LABEL="Darjiling" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1405" CREATED="2009-01-28 17:07:04.0" UUID="63e16131-36c5-420a-8d7d-6db42590dcbd" TEXT="Bhutan" ABBREVIATEDLABEL="EHM-BH" LABEL="Bhutan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1406" CREATED="2009-01-28 17:07:04.0" UUID="0a377f0f-f6aa-4b98-9cbd-6407a7744216" TEXT="Arunachal Pradesh" ABBREVIATEDLABEL="EHM-AP" LABEL="Arunachal Pradesh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1407" CREATED="2009-01-28 17:07:04.0" UUID="11e58c3a-f0d2-407c-aef4-f83b240bacab" TEXT="Egypt" ABBREVIATEDLABEL="EGY-OO" LABEL="Egypt" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1408" CREATED="2009-01-28 17:07:04.0" UUID="4c32e384-f55d-4a9e-af78-b7ba66b45891" TEXT="Ecuador" ABBREVIATEDLABEL="ECU-OO" LABEL="Ecuador" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1409" CREATED="2009-01-28 17:07:04.0" UUID="bf2df5ac-ff40-472b-a561-55a3259b7803" TEXT="Easter Is." ABBREVIATEDLABEL="EAS-OO" LABEL="Easter Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1410" CREATED="2009-01-28 17:07:04.0" UUID="fcc5935a-2a72-4f46-b601-d4a90d282cae" TEXT="East Aegean Is." ABBREVIATEDLABEL="EAI-OO" LABEL="East Aegean Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1411" CREATED="2009-01-28 17:07:04.0" UUID="e8dca4e0-3834-47e4-a5fd-feb4b71a4a96" TEXT="Desventurados Is." ABBREVIATEDLABEL="DSV-OO" LABEL="Desventurados Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1412" CREATED="2009-01-28 17:07:04.0" UUID="c1acda8f-122a-4ba4-bc97-99c32bf4d3f8" TEXT="Dominican Republic" ABBREVIATEDLABEL="DOM-OO" LABEL="Dominican Republic" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1413" CREATED="2009-01-28 17:07:04.0" UUID="21aaf90a-1e30-4c5d-90a7-8cf055b85656" TEXT="Djibouti" ABBREVIATEDLABEL="DJI-OO" LABEL="Djibouti" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1414" CREATED="2009-01-28 17:07:04.0" UUID="dd1067a0-fa6b-46fb-95b6-5c474eed6987" TEXT="Denmark" ABBREVIATEDLABEL="DEN-OO" LABEL="Denmark" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1415" CREATED="2009-01-28 17:07:04.0" UUID="50527729-3912-4f0c-a5f7-98fa827d2052" TEXT="Delaware" ABBREVIATEDLABEL="DEL-OO" LABEL="Delaware" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1416" CREATED="2009-01-28 17:07:04.0" UUID="16bd13b1-64e9-4de5-8e49-6585b0bd9d66" TEXT="Slovakia" ABBREVIATEDLABEL="CZE-SK" LABEL="Slovakia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1417" CREATED="2009-01-28 17:07:04.0" UUID="d4ecaa19-e0ff-4d2f-a34d-fc7a7252a3ca" TEXT="Czech Republic" ABBREVIATEDLABEL="CZE-CZ" LABEL="Czech Republic" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1418" CREATED="2009-01-28 17:07:04.0" UUID="e31c9dae-df0a-485e-b0bd-6681afa306ad" TEXT="Cyprus" ABBREVIATEDLABEL="CYP-OO" LABEL="Cyprus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1419" CREATED="2009-01-28 17:07:04.0" UUID="60867b96-f310-40c8-af2a-d380579a77bc" TEXT="Cape Verde" ABBREVIATEDLABEL="CVI-OO" LABEL="Cape Verde" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1420" CREATED="2009-01-28 17:07:04.0" UUID="4e9ece67-b2c1-4bbf-a9eb-2851e2434367" TEXT="Cuba" ABBREVIATEDLABEL="CUB-OO" LABEL="Cuba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1421" CREATED="2009-01-28 17:07:04.0" UUID="90a2d9b2-ff0a-404d-bde0-25b305640cee" TEXT="Chatham Is." ABBREVIATEDLABEL="CTM-OO" LABEL="Chatham Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1422" CREATED="2009-01-28 17:07:04.0" UUID="277e9b6e-69b3-4066-80cd-eb9c3db429f1" TEXT="Chita" ABBREVIATEDLABEL="CTA-OO" LABEL="Chita" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1423" CREATED="2009-01-28 17:07:04.0" UUID="ea0d2d17-ccb0-4402-b3d2-495b85cd04ab" TEXT="Crozet Is." ABBREVIATEDLABEL="CRZ-OO" LABEL="Crozet Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1424" CREATED="2009-01-28 17:07:04.0" UUID="a58a7eb2-ec41-4a99-a788-bca3fcaff2ce" TEXT="Palau" ABBREVIATEDLABEL="CRL-PA" LABEL="Palau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1425" CREATED="2009-01-28 17:07:04.0" UUID="472f9524-098d-4a5a-b901-f4d7b6231a77" TEXT="Micronesia Federated States" ABBREVIATEDLABEL="CRL-MF" LABEL="Micronesia Federated States" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1426" CREATED="2009-01-28 17:07:04.0" UUID="7a782ab7-7608-42c8-ae8e-713c693f243e" TEXT="Caprivi Strip" ABBREVIATEDLABEL="CPV-OO" LABEL="Caprivi Strip" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1427" CREATED="2009-01-28 17:07:04.0" UUID="26b75237-2041-4de4-aff3-7d72c65a8a53" TEXT="Western Cape Province" ABBREVIATEDLABEL="CPP-WC" LABEL="Western Cape Province" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1428" CREATED="2009-01-28 17:07:04.0" UUID="b275ce11-63a4-4f7d-845f-83b1dfeb2462" TEXT="Northern Cape Province" ABBREVIATEDLABEL="CPP-NC" LABEL="Northern Cape Province" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1429" CREATED="2009-01-28 17:07:04.0" UUID="09c3f2a2-ab6d-4177-93e6-20c16e2d0b5f" TEXT="Eastern Cape Province" ABBREVIATEDLABEL="CPP-EC" LABEL="Eastern Cape Province" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1430" CREATED="2009-01-28 17:07:04.0" UUID="58a0e339-20ce-4b47-a28a-16b25d8e1814" TEXT="Malpelo I." ABBREVIATEDLABEL="CPI-MA" LABEL="Malpelo I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1431" CREATED="2009-01-28 17:07:04.0" UUID="3966cf12-7d1e-4a23-ab9b-8a212f2600df" TEXT="Cocos I." ABBREVIATEDLABEL="CPI-CO" LABEL="Cocos I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1432" CREATED="2009-01-28 17:07:04.0" UUID="472b671a-d6a0-4684-a466-69aa8bdd5ce7" TEXT="Clipperton I." ABBREVIATEDLABEL="CPI-CL" LABEL="Clipperton I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1433" CREATED="2009-01-28 17:07:04.0" UUID="5e16a30b-1215-4a3f-a81d-13e84473652f" TEXT="Costa Rica" ABBREVIATEDLABEL="COS-OO" LABEL="Costa Rica" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1434" CREATED="2009-01-28 17:07:04.0" UUID="2e15e0a3-02b2-4793-8453-4b194d6e8074" TEXT="Corse" ABBREVIATEDLABEL="COR-OO" LABEL="Corse" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1435" CREATED="2009-01-28 17:07:04.0" UUID="ac015ccc-85ed-413c-b186-195295cdd76f" TEXT="Cook Is." ABBREVIATEDLABEL="COO-OO" LABEL="Cook Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1436" CREATED="2009-01-28 17:07:04.0" UUID="4d8dc34f-9503-4669-b4f6-1e5d6a34f7b7" TEXT="Congo" ABBREVIATEDLABEL="CON-OO" LABEL="Congo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1437" CREATED="2009-01-28 17:07:04.0" UUID="4b781405-f5af-41f7-9246-ea70dcfb5043" TEXT="Mayotte" ABBREVIATEDLABEL="COM-MA" LABEL="Mayotte" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1438" CREATED="2009-01-28 17:07:04.0" UUID="4c04ac1c-4075-417f-a5c9-e5d3ab42fd80" TEXT="Comoros" ABBREVIATEDLABEL="COM-CO" LABEL="Comoros" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1439" CREATED="2009-01-28 17:07:04.0" UUID="8c1fa941-5f46-4f02-aded-1d0ba382609e" TEXT="Colorado" ABBREVIATEDLABEL="COL-OO" LABEL="Colorado" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1440" CREATED="2009-01-28 17:07:04.0" UUID="ef7177fd-f245-48be-82f3-c1cfbbc5705e" TEXT="Canary Is." ABBREVIATEDLABEL="CNY-OO" LABEL="Canary Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1441" CREATED="2009-01-28 17:07:04.0" UUID="d7a3a7b4-ee7f-4eaa-91a2-eca78fcfeacf" TEXT="Connecticut" ABBREVIATEDLABEL="CNT-OO" LABEL="Connecticut" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1442" CREATED="2009-01-28 17:07:04.0" UUID="86970990-a843-481c-b2f0-3ca03d14f559" TEXT="Cameroon" ABBREVIATEDLABEL="CMN-OO" LABEL="Cameroon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1443" CREATED="2009-01-28 17:07:04.0" UUID="3b86981c-5a68-40be-bca1-4246bf1239b6" TEXT="Magellanes" ABBREVIATEDLABEL="CLS-MG" LABEL="Magellanes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1444" CREATED="2009-01-28 17:07:04.0" UUID="1acb784c-9c57-47be-893a-9a8d30f3ceb4" TEXT="Los Lagos" ABBREVIATEDLABEL="CLS-LL" LABEL="Los Lagos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1445" CREATED="2009-01-28 17:07:04.0" UUID="86d4aa93-3f28-4576-b09b-63a1aacc6471" TEXT="Aisén" ABBREVIATEDLABEL="CLS-AI" LABEL="Aisén" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1446" CREATED="2009-01-28 17:07:04.0" UUID="c0d89042-6401-4f78-8639-fd9f10209069" TEXT="Tarapaca" ABBREVIATEDLABEL="CLN-TA" LABEL="Tarapaca" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1447" CREATED="2009-01-28 17:07:04.0" UUID="0f9e3a5e-a109-4a07-b492-bb18facc2ace" TEXT="Atacama" ABBREVIATEDLABEL="CLN-AT" LABEL="Atacama" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1448" CREATED="2009-01-28 17:07:04.0" UUID="64f612cf-37c1-4b3e-a88c-cd01a808b978" TEXT="Antofagasta" ABBREVIATEDLABEL="CLN-AN" LABEL="Antofagasta" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1449" CREATED="2009-01-28 17:07:04.0" UUID="e5f901f1-e9ae-4698-bc60-dd8359a2b9aa" TEXT="Colombia" ABBREVIATEDLABEL="CLM-OO" LABEL="Colombia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1450" CREATED="2009-01-28 17:07:04.0" UUID="070cf6dd-60b7-4d31-9ebd-ec006db7640f" TEXT="Valparaíso" ABBREVIATEDLABEL="CLC-VA" LABEL="Valparaíso" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1451" CREATED="2009-01-28 17:07:04.0" UUID="652dab36-d701-4eea-bb3e-626921777a56" TEXT="Santiago" ABBREVIATEDLABEL="CLC-SA" LABEL="Santiago" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1452" CREATED="2009-01-28 17:07:04.0" UUID="67e8aa6e-9ebb-4cf4-a154-2742d38582a9" TEXT="O&apos;Higgins" ABBREVIATEDLABEL="CLC-OH" LABEL="O&apos;Higgins" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1453" CREATED="2009-01-28 17:07:04.0" UUID="e635e030-2f06-48cc-a98c-217e9ea93251" TEXT="Maule" ABBREVIATEDLABEL="CLC-MA" LABEL="Maule" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1454" CREATED="2009-01-28 17:07:04.0" UUID="574eb0fa-b223-4ca7-b245-4ea38c6d1d51" TEXT="La Araucania" ABBREVIATEDLABEL="CLC-LA" LABEL="La Araucania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1455" CREATED="2009-01-28 17:07:04.0" UUID="1be2456e-55cb-41b4-94d9-a66f11e77fc5" TEXT="Coquimbo" ABBREVIATEDLABEL="CLC-CO" LABEL="Coquimbo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1456" CREATED="2009-01-28 17:07:04.0" UUID="765815f5-128a-4966-b0de-8118b0c88a87" TEXT="Biobío" ABBREVIATEDLABEL="CLC-BI" LABEL="Biobío" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1457" CREATED="2009-01-28 17:07:04.0" UUID="3a382776-82b1-4757-9bfd-ab65cfce6392" TEXT="Cocos (Keeling) Is." ABBREVIATEDLABEL="CKI-OO" LABEL="Cocos (Keeling) Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1458" CREATED="2009-01-28 17:07:04.0" UUID="919598a6-6e53-4bef-8ec3-f36ee8be14a3" TEXT="Xinjiang" ABBREVIATEDLABEL="CHX-OO" LABEL="Xinjiang" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1459" CREATED="2009-01-28 17:07:04.0" UUID="a5fd3125-7174-493c-8c03-c051105952f6" TEXT="Tibet" ABBREVIATEDLABEL="CHT-OO" LABEL="Tibet" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1460" CREATED="2009-01-28 17:07:04.0" UUID="949632d1-67c2-43fa-b9de-00911dff34d2" TEXT="Zhejiang" ABBREVIATEDLABEL="CHS-ZJ" LABEL="Zhejiang" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1461" CREATED="2009-01-28 17:07:04.0" UUID="3b45f91d-170d-4e7f-9aee-e39cbac0bda7" TEXT="Shanghai" ABBREVIATEDLABEL="CHS-SH" LABEL="Shanghai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1462" CREATED="2009-01-28 17:07:04.0" UUID="c50c5bcc-3641-4a2d-b2d5-01d124cfd7d5" TEXT="Ma-tsu-Pai-chúan" ABBREVIATEDLABEL="CHS-MP" LABEL="Ma-tsu-Pai-chúan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1463" CREATED="2009-01-28 17:07:04.0" UUID="35c73981-17b2-4f7d-8299-9b55f5dcc1d7" TEXT="Macau" ABBREVIATEDLABEL="CHS-MA" LABEL="Macau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1464" CREATED="2009-01-28 17:07:04.0" UUID="ff6ca33a-484b-49d1-af50-0aa252e5ca52" TEXT="Kin-Men" ABBREVIATEDLABEL="CHS-KI" LABEL="Kin-Men" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1465" CREATED="2009-01-28 17:07:04.0" UUID="871514df-7599-4aa3-9eae-1d4c93eeb1b5" TEXT="Jiangxi" ABBREVIATEDLABEL="CHS-JX" LABEL="Jiangxi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1466" CREATED="2009-01-28 17:07:04.0" UUID="07c5190e-b482-42cd-ae06-4b75adb0be9d" TEXT="Jiangsu" ABBREVIATEDLABEL="CHS-JS" LABEL="Jiangsu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1467" CREATED="2009-01-28 17:07:04.0" UUID="7712905c-4107-4936-8c23-a4973e71e15a" TEXT="Hunan" ABBREVIATEDLABEL="CHS-HN" LABEL="Hunan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1468" CREATED="2009-01-28 17:07:04.0" UUID="d9a7e656-729a-4c40-8d97-e027c41d0e2a" TEXT="Hong Kong" ABBREVIATEDLABEL="CHS-HK" LABEL="Hong Kong" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1469" CREATED="2009-01-28 17:07:04.0" UUID="08aeafeb-9499-412a-8863-f2b70f111f1f" TEXT="Henan" ABBREVIATEDLABEL="CHS-HE" LABEL="Henan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1470" CREATED="2009-01-28 17:07:04.0" UUID="4fe75b31-9979-4847-9188-910d15f47357" TEXT="Guangxi" ABBREVIATEDLABEL="CHS-GX" LABEL="Guangxi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1471" CREATED="2009-01-28 17:07:04.0" UUID="3f22c64e-930c-4f81-bb39-2ad2087e1af7" TEXT="Guangdong" ABBREVIATEDLABEL="CHS-GD" LABEL="Guangdong" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1472" CREATED="2009-01-28 17:07:04.0" UUID="e60c935a-b315-4bff-ba27-9e95f0d62932" TEXT="Fujian" ABBREVIATEDLABEL="CHS-FJ" LABEL="Fujian" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1473" CREATED="2009-01-28 17:07:04.0" UUID="7d0513ac-4c27-4a7b-885a-a1a1edfb8724" TEXT="Anhui" ABBREVIATEDLABEL="CHS-AH" LABEL="Anhui" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1474" CREATED="2009-01-28 17:07:04.0" UUID="574dda06-a48b-410b-b368-a9db0ab447db" TEXT="Qinghai" ABBREVIATEDLABEL="CHQ-OO" LABEL="Qinghai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1475" CREATED="2009-01-28 17:07:04.0" UUID="21a0b0e4-1e86-4be4-9e41-6d914909bc2b" TEXT="Tianjin" ABBREVIATEDLABEL="CHN-TJ" LABEL="Tianjin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1476" CREATED="2009-01-28 17:07:04.0" UUID="7c0567e3-ffe2-4c3d-9554-e03ec7eeaca2" TEXT="Shanxi" ABBREVIATEDLABEL="CHN-SX" LABEL="Shanxi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1477" CREATED="2009-01-28 17:07:04.0" UUID="09898f09-810f-475d-8908-e6f4491e0497" TEXT="Shandong" ABBREVIATEDLABEL="CHN-SD" LABEL="Shandong" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1478" CREATED="2009-01-28 17:07:04.0" UUID="45b616e1-cc3b-402b-8ea5-4064a5f2b85a" TEXT="Shaanxi" ABBREVIATEDLABEL="CHN-SA" LABEL="Shaanxi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1479" CREATED="2009-01-28 17:07:04.0" UUID="bc7e06ed-eabd-493e-9a90-cde109c68c9e" TEXT="Hebei" ABBREVIATEDLABEL="CHN-HB" LABEL="Hebei" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1480" CREATED="2009-01-28 17:07:04.0" UUID="2518a128-e6b2-4361-bd83-f92e731324bd" TEXT="Gansu" ABBREVIATEDLABEL="CHN-GS" LABEL="Gansu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1481" CREATED="2009-01-28 17:07:04.0" UUID="09c6aa7a-71dd-4550-bad6-712e850ad8ba" TEXT="Beijing" ABBREVIATEDLABEL="CHN-BJ" LABEL="Beijing" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1482" CREATED="2009-01-28 17:07:04.0" UUID="3adaa10d-f9b5-49e0-bec7-295cfe36cc27" TEXT="Liaoning" ABBREVIATEDLABEL="CHM-LN" LABEL="Liaoning" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1483" CREATED="2009-01-28 17:07:04.0" UUID="f6141c33-506e-47e5-93ca-ed50c473e557" TEXT="Jilin" ABBREVIATEDLABEL="CHM-JL" LABEL="Jilin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1484" CREATED="2009-01-28 17:07:04.0" UUID="ddfbd97e-d8c6-43ba-8677-7fe3af4dd69b" TEXT="Heilongjiang" ABBREVIATEDLABEL="CHM-HJ" LABEL="Heilongjiang" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1485" CREATED="2009-01-28 17:07:04.0" UUID="47232a62-166a-453d-98ca-574ad765388f" TEXT="Ningxia" ABBREVIATEDLABEL="CHI-NX" LABEL="Ningxia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1486" CREATED="2009-01-28 17:07:04.0" UUID="306120aa-aa30-4d68-a119-7ef5bbc4367c" TEXT="Nei Mongol" ABBREVIATEDLABEL="CHI-NM" LABEL="Nei Mongol" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1487" CREATED="2009-01-28 17:07:04.0" UUID="1ec0a39f-5f95-43a1-baa0-e1431d942a44" TEXT="Hainan" ABBREVIATEDLABEL="CHH-OO" LABEL="Hainan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1488" CREATED="2009-01-28 17:07:04.0" UUID="3ce1eba0-56f7-466b-9503-a7baaf7271a4" TEXT="Yunnan" ABBREVIATEDLABEL="CHC-YN" LABEL="Yunnan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1489" CREATED="2009-01-28 17:07:04.0" UUID="a74c92e8-a6ac-4b5a-aa93-7bc17349565e" TEXT="Sichuan" ABBREVIATEDLABEL="CHC-SC" LABEL="Sichuan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1490" CREATED="2009-01-28 17:07:04.0" UUID="7dc8c5e2-6e62-4663-b43d-7725bc5b83ba" TEXT="Hubei" ABBREVIATEDLABEL="CHC-HU" LABEL="Hubei" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1491" CREATED="2009-01-28 17:07:04.0" UUID="eec620cf-cc51-40cc-bf80-3e97fb3ccee2" TEXT="Guizhou" ABBREVIATEDLABEL="CHC-GZ" LABEL="Guizhou" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1492" CREATED="2009-01-28 17:07:04.0" UUID="3408ec7b-1e36-4427-9d89-25b44947e1a1" TEXT="Chongqing" ABBREVIATEDLABEL="CHC-CQ" LABEL="Chongqing" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1493" CREATED="2009-01-28 17:07:04.0" UUID="efe603ba-cd1b-453b-808a-33051eda9c6a" TEXT="Chad" ABBREVIATEDLABEL="CHA-OO" LABEL="Chad" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1494" CREATED="2009-01-28 17:07:04.0" UUID="f46e2187-7ae2-4833-ba6f-25cbbc61def4" TEXT="Chagos Archipelago" ABBREVIATEDLABEL="CGS-OO" LABEL="Chagos Archipelago" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1495" CREATED="2009-01-28 17:07:04.0" UUID="a3a5bbb8-2194-4935-b759-c83cfcea4bae" TEXT="Cambodia" ABBREVIATEDLABEL="CBD-OO" LABEL="Cambodia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1496" CREATED="2009-01-28 17:07:04.0" UUID="aba21647-4c33-4199-84a1-f32ea107761d" TEXT="Cayman Is." ABBREVIATEDLABEL="CAY-OO" LABEL="Cayman Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1497" CREATED="2009-01-28 17:07:04.0" UUID="9cdb7811-48bd-4352-af7b-8f4c7223d759" TEXT="California" ABBREVIATEDLABEL="CAL-OO" LABEL="California" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1498" CREATED="2009-01-28 17:07:04.0" UUID="237523fb-4239-4518-a6fc-859f13f32734" TEXT="Central African Republic" ABBREVIATEDLABEL="CAF-OO" LABEL="Central African Republic" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1499" CREATED="2009-01-28 17:07:04.0" UUID="d2d218c2-9376-467c-b9d6-efff726178c3" TEXT="Cabinda" ABBREVIATEDLABEL="CAB-OO" LABEL="Cabinda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1500" CREATED="2009-01-28 17:07:04.0" UUID="05371604-d8b5-4503-a3dc-263d958bbffd" TEXT="Santa Catarina" ABBREVIATEDLABEL="BZS-SC" LABEL="Santa Catarina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1501" CREATED="2009-01-28 17:07:04.0" UUID="eb6e5600-a4ae-4916-8e50-20bb8cc73a11" TEXT="Rio Grande do Sul" ABBREVIATEDLABEL="BZS-RS" LABEL="Rio Grande do Sul" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1502" CREATED="2009-01-28 17:07:04.0" UUID="30cb515b-8fdf-4a3d-94a3-3406f6a97124" TEXT="Paraná" ABBREVIATEDLABEL="BZS-PR" LABEL="Paraná" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1503" CREATED="2009-01-28 17:07:04.0" UUID="f6ff93bf-4c26-4a54-a78e-45c675942586" TEXT="Tocantins" ABBREVIATEDLABEL="BZN-TO" LABEL="Tocantins" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1504" CREATED="2009-01-28 17:07:04.0" UUID="bf8d5b05-0b1a-48e8-af74-87d6a26e86a9" TEXT="Rondônia" ABBREVIATEDLABEL="BZN-RO" LABEL="Rondônia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1505" CREATED="2009-01-28 17:07:04.0" UUID="3c40815c-c3d3-430a-98d0-55c4cb3bb2f9" TEXT="Roraima" ABBREVIATEDLABEL="BZN-RM" LABEL="Roraima" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1506" CREATED="2009-01-28 17:07:04.0" UUID="29746ef1-d963-4ecd-ac51-2075a397e996" TEXT="Pará" ABBREVIATEDLABEL="BZN-PA" LABEL="Pará" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1507" CREATED="2009-01-28 17:07:04.0" UUID="2fe81783-d380-4403-8592-f7c27c85b70c" TEXT="Amapá" ABBREVIATEDLABEL="BZN-AP" LABEL="Amapá" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1508" CREATED="2009-01-28 17:07:04.0" UUID="e8d4027f-d428-4b89-a773-564e8e40f8ab" TEXT="Amazonas" ABBREVIATEDLABEL="BZN-AM" LABEL="Amazonas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1509" CREATED="2009-01-28 17:07:04.0" UUID="2b3cf5a6-6748-468e-9beb-6565d825ff58" TEXT="Acre" ABBREVIATEDLABEL="BZN-AC" LABEL="Acre" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1510" CREATED="2009-01-28 17:07:04.0" UUID="c8dd4bf4-9be2-4b94-aeb9-feace8bff75a" TEXT="Trindade" ABBREVIATEDLABEL="BZL-TR" LABEL="Trindade" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1511" CREATED="2009-01-28 17:07:04.0" UUID="5e160a13-863a-4d3c-8777-8f4abc95c484" TEXT="São Paulo" ABBREVIATEDLABEL="BZL-SP" LABEL="São Paulo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1512" CREATED="2009-01-28 17:07:04.0" UUID="44bfdd07-fb01-4563-aadb-3703901129b2" TEXT="Rio de Janeiro" ABBREVIATEDLABEL="BZL-RJ" LABEL="Rio de Janeiro" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1513" CREATED="2009-01-28 17:07:04.0" UUID="6ff32022-d42e-4278-8a60-2cd131514ca8" TEXT="Minas Gerais" ABBREVIATEDLABEL="BZL-MG" LABEL="Minas Gerais" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1514" CREATED="2009-01-28 17:07:04.0" UUID="24bd9f18-5f3c-4393-a3ce-ae38b565206f" TEXT="Espirito Santo" ABBREVIATEDLABEL="BZL-ES" LABEL="Espirito Santo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1515" CREATED="2009-01-28 17:07:04.0" UUID="51a121ca-f90a-4512-a939-c553d48b185f" TEXT="Sergipe" ABBREVIATEDLABEL="BZE-SE" LABEL="Sergipe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1516" CREATED="2009-01-28 17:07:04.0" UUID="cae814b0-e8bb-4395-ad4d-3efdb33a7da9" TEXT="Rio Grande do Norte" ABBREVIATEDLABEL="BZE-RN" LABEL="Rio Grande do Norte" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1517" CREATED="2009-01-28 17:07:04.0" UUID="9d530ccb-4e97-4b63-9b72-09b9838f889d" TEXT="Piauí" ABBREVIATEDLABEL="BZE-PI" LABEL="Piauí" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1518" CREATED="2009-01-28 17:07:04.0" UUID="f4ff7d02-1172-4ef2-9c4d-adf8e686a01c" TEXT="Pernambuco" ABBREVIATEDLABEL="BZE-PE" LABEL="Pernambuco" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1519" CREATED="2009-01-28 17:07:04.0" UUID="ba07e77a-69f5-4b50-82f3-391505c84afb" TEXT="Paraíba" ABBREVIATEDLABEL="BZE-PB" LABEL="Paraíba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1520" CREATED="2009-01-28 17:07:04.0" UUID="d4c69ec5-3cbb-4d11-9142-2d6337a36b9c" TEXT="Maranhao" ABBREVIATEDLABEL="BZE-MA" LABEL="Maranhao" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1521" CREATED="2009-01-28 17:07:04.0" UUID="21c80fed-a304-41bd-8e04-27700b0828f6" TEXT="Fernando de Noronha" ABBREVIATEDLABEL="BZE-FN" LABEL="Fernando de Noronha" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1522" CREATED="2009-01-28 17:07:04.0" UUID="fef50108-30e5-49cd-bee6-251fcb35c03f" TEXT="Ceará" ABBREVIATEDLABEL="BZE-CE" LABEL="Ceará" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1523" CREATED="2009-01-28 17:07:04.0" UUID="8af0bdc2-33eb-44e3-88ed-239da7b198e5" TEXT="Bahia" ABBREVIATEDLABEL="BZE-BA" LABEL="Bahia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1524" CREATED="2009-01-28 17:07:04.0" UUID="84e2e9c4-5454-4559-831e-ce0410a439ec" TEXT="Alagoas" ABBREVIATEDLABEL="BZE-AL" LABEL="Alagoas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1525" CREATED="2009-01-28 17:07:04.0" UUID="23e2cc89-8ef1-4202-8877-9dd2a6590487" TEXT="Mato Grosso" ABBREVIATEDLABEL="BZC-MT" LABEL="Mato Grosso" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1526" CREATED="2009-01-28 17:07:04.0" UUID="8324030a-8bd7-4f5c-82c2-ab50fa4cdffc" TEXT="Mato Grosso do Sul" ABBREVIATEDLABEL="BZC-MS" LABEL="Mato Grosso do Sul" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1527" CREATED="2009-01-28 17:07:04.0" UUID="1fe7b28a-dbeb-4c96-96d2-75c285b593fb" TEXT="Goiás" ABBREVIATEDLABEL="BZC-GO" LABEL="Goiás" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1528" CREATED="2009-01-28 17:07:04.0" UUID="a979d4ba-fccb-46be-b996-9d36f4559a47" TEXT="Brazilia Distrito Federal" ABBREVIATEDLABEL="BZC-DF" LABEL="Brazilia Distrito Federal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1529" CREATED="2009-01-28 17:07:04.0" UUID="347d067a-0b73-4a08-beeb-36fcd4c11768" TEXT="Burundi" ABBREVIATEDLABEL="BUR-OO" LABEL="Burundi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1530" CREATED="2009-01-28 17:07:04.0" UUID="9cb2f763-338c-4374-b3a9-fe23bff48cca" TEXT="Bulgaria" ABBREVIATEDLABEL="BUL-OO" LABEL="Bulgaria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1531" CREATED="2009-01-28 17:07:04.0" UUID="8af1ce1c-7614-4b63-8399-7683b7719d4a" TEXT="Buryatiya" ABBREVIATEDLABEL="BRY-OO" LABEL="Buryatiya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1532" CREATED="2009-01-28 17:07:04.0" UUID="053ce190-9583-4caf-9633-748d7fed84e0" TEXT="British Columbia" ABBREVIATEDLABEL="BRC-OO" LABEL="British Columbia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1533" CREATED="2009-01-28 17:07:04.0" UUID="af5cb62e-049e-493e-ad2e-8301326ec86e" TEXT="Bouvet I." ABBREVIATEDLABEL="BOU-OO" LABEL="Bouvet I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1534" CREATED="2009-01-28 17:07:04.0" UUID="0fd0badb-ef12-4dd7-8e84-7af68641a163" TEXT="Botswana" ABBREVIATEDLABEL="BOT-OO" LABEL="Botswana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1535" CREATED="2009-01-28 17:07:04.0" UUID="f1f9e2aa-d18c-4e16-8b20-eeb8b23bc6a4" TEXT="Sarawak" ABBREVIATEDLABEL="BOR-SR" LABEL="Sarawak" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1536" CREATED="2009-01-28 17:07:04.0" UUID="0e5a4e49-7c07-4564-af80-a38d3a42a25c" TEXT="Sabah" ABBREVIATEDLABEL="BOR-SB" LABEL="Sabah" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1537" CREATED="2009-01-28 17:07:04.0" UUID="79404955-22b4-46a4-9d2a-b1c276ddb790" TEXT="Kalimantan" ABBREVIATEDLABEL="BOR-KA" LABEL="Kalimantan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1538" CREATED="2009-01-28 17:07:04.0" UUID="e44b042d-bcf1-457a-93e2-b29a18d6eedd" TEXT="Brunei" ABBREVIATEDLABEL="BOR-BR" LABEL="Brunei" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1539" CREATED="2009-01-28 17:07:04.0" UUID="75429bc3-6954-4c97-9c6b-4c64a02e9a56" TEXT="Bolivia" ABBREVIATEDLABEL="BOL-OO" LABEL="Bolivia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1540" CREATED="2009-01-28 17:07:04.0" UUID="a112bcae-3aa7-41fe-aa23-2d6dbb3455f1" TEXT="Belize" ABBREVIATEDLABEL="BLZ-OO" LABEL="Belize" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1541" CREATED="2009-01-28 17:07:04.0" UUID="9f0d544a-6ef6-4641-817c-e7517ca50e04" TEXT="Lithuania" ABBREVIATEDLABEL="BLT-LI" LABEL="Lithuania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1542" CREATED="2009-01-28 17:07:04.0" UUID="42fdde87-ff84-4bee-9194-73f84e315fcf" TEXT="Latvia" ABBREVIATEDLABEL="BLT-LA" LABEL="Latvia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1543" CREATED="2009-01-28 17:07:04.0" UUID="4ca247e2-121d-4954-b9c0-7c6d8c578361" TEXT="Kaliningrad" ABBREVIATEDLABEL="BLT-KA" LABEL="Kaliningrad" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1544" CREATED="2009-01-28 17:07:04.0" UUID="0e7f253e-ae9c-465d-b014-7e7e5ddbd184" TEXT="Estonia" ABBREVIATEDLABEL="BLT-ES" LABEL="Estonia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1545" CREATED="2009-01-28 17:07:04.0" UUID="3b0d7d37-eb19-4bba-bf66-2088969ff690" TEXT="Belarus" ABBREVIATEDLABEL="BLR-OO" LABEL="Belarus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1546" CREATED="2009-01-28 17:07:04.0" UUID="a342409d-fc26-4759-9977-ede3717f1dcd" TEXT="Burkina" ABBREVIATEDLABEL="BKN-OO" LABEL="Burkina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1547" CREATED="2009-01-28 17:07:04.0" UUID="983f433e-7a44-45ed-b3c6-7d34cce2cae5" TEXT="Bismarck Archipelago" ABBREVIATEDLABEL="BIS-OO" LABEL="Bismarck Archipelago" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1548" CREATED="2009-01-28 17:07:04.0" UUID="40cd1d33-651b-41ae-8b71-877fd67cddd9" TEXT="Luxembourg" ABBREVIATEDLABEL="BGM-LU" LABEL="Luxembourg" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1549" CREATED="2009-01-28 17:07:04.0" UUID="da1b4bb9-8903-404f-ac07-cab80e26fc1f" TEXT="Belgium" ABBREVIATEDLABEL="BGM-BE" LABEL="Belgium" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1550" CREATED="2009-01-28 17:07:04.0" UUID="737732ee-efd1-4829-ac06-82aa03d0a9cb" TEXT="Bermuda" ABBREVIATEDLABEL="BER-OO" LABEL="Bermuda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1551" CREATED="2009-01-28 17:07:04.0" UUID="06f04b32-48b4-4ff9-b8a5-0e84e15d1ffa" TEXT="Benin" ABBREVIATEDLABEL="BEN-OO" LABEL="Benin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1552" CREATED="2009-01-28 17:07:04.0" UUID="da02f8f4-baf1-4b73-a3e5-665eed20ad44" TEXT="Bangladesh" ABBREVIATEDLABEL="BAN-OO" LABEL="Bangladesh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1553" CREATED="2009-01-28 17:07:04.0" UUID="7060b6cb-32ff-460f-90a8-57afefbcaa79" TEXT="Baleares" ABBREVIATEDLABEL="BAL-OO" LABEL="Baleares" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1554" CREATED="2009-01-28 17:07:04.0" UUID="1da72ce3-28b9-4b37-be03-afc87e0f7a79" TEXT="Bahamas" ABBREVIATEDLABEL="BAH-OO" LABEL="Bahamas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1555" CREATED="2009-01-28 17:07:04.0" UUID="169f1940-53ea-4707-97af-716f774e120a" TEXT="Açôres" ABBREVIATEDLABEL="AZO-OO" LABEL="Açôres" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1556" CREATED="2009-01-28 17:07:04.0" UUID="1b90aa77-9b3d-497e-8260-4a30681c68bf" TEXT="Liechtenstein" ABBREVIATEDLABEL="AUT-LI" LABEL="Liechtenstein" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1557" CREATED="2009-01-28 17:07:04.0" UUID="9ddf7d32-c93e-4085-a591-d132afcdbe69" TEXT="Austria" ABBREVIATEDLABEL="AUT-AU" LABEL="Austria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1558" CREATED="2009-01-28 17:07:04.0" UUID="d6fe0ea8-da22-4742-b6c6-91f042516be5" TEXT="Antipodean Is." ABBREVIATEDLABEL="ATP-OO" LABEL="Antipodean Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1559" CREATED="2009-01-28 17:07:04.0" UUID="3921fe32-3221-49d8-bb8a-15a7aa050418" TEXT="Tripura" ABBREVIATEDLABEL="ASS-TR" LABEL="Tripura" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1560" CREATED="2009-01-28 17:07:04.0" UUID="ff3f94ac-a933-45f5-b783-e376ea3f0e85" TEXT="Nagaland" ABBREVIATEDLABEL="ASS-NA" LABEL="Nagaland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1561" CREATED="2009-01-28 17:07:04.0" UUID="cc57344f-62d1-44b9-b4a7-434f65d5d6db" TEXT="Mizoram" ABBREVIATEDLABEL="ASS-MI" LABEL="Mizoram" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1562" CREATED="2009-01-28 17:07:04.0" UUID="024beeb7-1c85-4716-a72a-3243ac496370" TEXT="Meghalaya" ABBREVIATEDLABEL="ASS-ME" LABEL="Meghalaya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1563" CREATED="2009-01-28 17:07:04.0" UUID="f7b784ff-8fd5-42cb-b8a5-9fc2992854d3" TEXT="Manipur" ABBREVIATEDLABEL="ASS-MA" LABEL="Manipur" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1564" CREATED="2009-01-28 17:07:04.0" UUID="a85e049e-a71c-4d8f-97f9-6b892355da21" TEXT="Assam" ABBREVIATEDLABEL="ASS-AS" LABEL="Assam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1565" CREATED="2009-01-28 17:07:04.0" UUID="d69c87d2-625f-4151-8f52-3886d044bbdf" TEXT="Amsterdam-St.Paul Is." ABBREVIATEDLABEL="ASP-OO" LABEL="Amsterdam-St.Paul Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1566" CREATED="2009-01-28 17:07:04.0" UUID="9c172760-a304-4255-a71e-403c18dc59d9" TEXT="Alaska" ABBREVIATEDLABEL="ASK-OO" LABEL="Alaska" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1567" CREATED="2009-01-28 17:07:04.0" UUID="67eca822-6eff-4473-90cf-fc1136de9e7e" TEXT="Ascension" ABBREVIATEDLABEL="ASC-OO" LABEL="Ascension" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1568" CREATED="2009-01-28 17:07:04.0" UUID="c1ed36a3-40b9-4609-828d-8ded66a46f1c" TEXT="Aruba" ABBREVIATEDLABEL="ARU-OO" LABEL="Aruba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1569" CREATED="2009-01-28 17:07:04.0" UUID="3d556ee4-a92b-4940-bff7-db8c94d0828b" TEXT="Arkansas" ABBREVIATEDLABEL="ARK-OO" LABEL="Arkansas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1570" CREATED="2009-01-28 17:07:04.0" UUID="2177ac69-e27d-483c-bcf6-975d0de5c793" TEXT="Arizona" ABBREVIATEDLABEL="ARI-OO" LABEL="Arizona" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1571" CREATED="2009-01-28 17:07:04.0" UUID="7cdd010a-0829-4479-8f51-364ba1b9b2e5" TEXT="Antarctica" ABBREVIATEDLABEL="ANT-OO" LABEL="Antarctica" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1572" CREATED="2009-01-28 17:07:04.0" UUID="c4e1c1ae-100e-417f-8d5e-9eaf11819e50" TEXT="Angola" ABBREVIATEDLABEL="ANG-OO" LABEL="Angola" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1573" CREATED="2009-01-28 17:07:04.0" UUID="f78e78db-8318-434d-bb33-15da56f1c182" TEXT="Coco Is." ABBREVIATEDLABEL="AND-CO" LABEL="Coco Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1574" CREATED="2009-01-28 17:07:04.0" UUID="0fcaa114-a550-4e5f-ac47-423c9b9756d0" TEXT="Andaman Is." ABBREVIATEDLABEL="AND-AN" LABEL="Andaman Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1575" CREATED="2009-01-28 17:07:04.0" UUID="426e9136-c613-44d9-8912-22862e7bd9f5" TEXT="Amur" ABBREVIATEDLABEL="AMU-OO" LABEL="Amur" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1576" CREATED="2009-01-28 17:07:04.0" UUID="d4e1aa3a-aafb-47d2-8405-11ad83f51a11" TEXT="Aleutian Is." ABBREVIATEDLABEL="ALU-OO" LABEL="Aleutian Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1577" CREATED="2009-01-28 17:07:04.0" UUID="02994f78-f105-4c41-9a15-2cf9746ecbc1" TEXT="Altay" ABBREVIATEDLABEL="ALT-OO" LABEL="Altay" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1578" CREATED="2009-01-28 17:07:04.0" UUID="b3123b52-e1eb-4332-8c8c-2565db5ae0c9" TEXT="Algeria" ABBREVIATEDLABEL="ALG-OO" LABEL="Algeria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1579" CREATED="2009-01-28 17:07:04.0" UUID="b191f711-984c-49d1-a09c-104c24e33be4" TEXT="Aldabra" ABBREVIATEDLABEL="ALD-OO" LABEL="Aldabra" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1580" CREATED="2009-01-28 17:07:04.0" UUID="727e3ca3-8319-4523-bb6b-99dae607d02c" TEXT="Albania" ABBREVIATEDLABEL="ALB-OO" LABEL="Albania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1581" CREATED="2009-01-28 17:07:04.0" UUID="9421a5f3-bfae-47c3-9776-28e11de2f4e6" TEXT="Alabama" ABBREVIATEDLABEL="ALA-OO" LABEL="Alabama" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1582" CREATED="2009-01-28 17:07:04.0" UUID="32af92e1-3a6b-45e3-b682-ebbc4e3f2acf" TEXT="Tucuman" ABBREVIATEDLABEL="AGW-TU" LABEL="Tucuman" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1583" CREATED="2009-01-28 17:07:04.0" UUID="1b9ef45a-f01c-40f3-b733-d194f1fd138b" TEXT="San Luis" ABBREVIATEDLABEL="AGW-SL" LABEL="San Luis" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1584" CREATED="2009-01-28 17:07:04.0" UUID="00a88205-e7c1-40e0-b908-70f23038fc53" TEXT="San Juan" ABBREVIATEDLABEL="AGW-SJ" LABEL="San Juan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1585" CREATED="2009-01-28 17:07:04.0" UUID="001cf819-93fa-4671-9f3a-10a590a604ef" TEXT="Santiago del Estero" ABBREVIATEDLABEL="AGW-SE" LABEL="Santiago del Estero" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1586" CREATED="2009-01-28 17:07:04.0" UUID="d678cc0d-a411-4c70-a8a2-3ae42902c16b" TEXT="Salta" ABBREVIATEDLABEL="AGW-SA" LABEL="Salta" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1587" CREATED="2009-01-28 17:07:04.0" UUID="0addda3d-7c81-4886-b92f-1bf465e548ff" TEXT="Mendoza" ABBREVIATEDLABEL="AGW-ME" LABEL="Mendoza" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1588" CREATED="2009-01-28 17:07:04.0" UUID="962c2e22-5f41-4a11-96f0-cb8c8d5030fc" TEXT="La Rioja" ABBREVIATEDLABEL="AGW-LR" LABEL="La Rioja" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1589" CREATED="2009-01-28 17:07:04.0" UUID="960278f4-2776-479e-8ade-b60edf7a1a58" TEXT="Jujuy" ABBREVIATEDLABEL="AGW-JU" LABEL="Jujuy" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1590" CREATED="2009-01-28 17:07:04.0" UUID="07f407e8-566b-456b-bff6-206d72fe10bd" TEXT="Catamarca" ABBREVIATEDLABEL="AGW-CA" LABEL="Catamarca" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1591" CREATED="2009-01-28 17:07:04.0" UUID="e5264271-13f5-4e12-b04a-e0ce5f506aa0" TEXT="Tierra del Fuego (Argentina)" ABBREVIATEDLABEL="AGS-TF" LABEL="Tierra del Fuego (Argentina)" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1592" CREATED="2009-01-28 17:07:04.0" UUID="ff44c5dd-8ac3-4be3-8cf9-8cb4add52a9b" TEXT="Santa Fé" ABBREVIATEDLABEL="AGS-SF" LABEL="Santa Fé" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1593" CREATED="2009-01-28 17:07:04.0" UUID="39d1a8a4-d44e-45c8-b1ab-3f67d47f9a2c" TEXT="Santa Cruz" ABBREVIATEDLABEL="AGS-SC" LABEL="Santa Cruz" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1594" CREATED="2009-01-28 17:07:04.0" UUID="92476bb7-9372-44c1-a0d5-a1dcb20224b8" TEXT="Rio Negro" ABBREVIATEDLABEL="AGS-RN" LABEL="Rio Negro" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1595" CREATED="2009-01-28 17:07:04.0" UUID="03de2504-e6c2-426f-b073-555de64c7a37" TEXT="Neuquén" ABBREVIATEDLABEL="AGS-NE" LABEL="Neuquén" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1596" CREATED="2009-01-28 17:07:04.0" UUID="f579e00b-0fa3-4b36-a517-13a2daeda4d2" TEXT="Chubut" ABBREVIATEDLABEL="AGS-CB" LABEL="Chubut" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1597" CREATED="2009-01-28 17:07:04.0" UUID="2426c7ad-a5c9-4efb-b88b-49f81082b880" TEXT="Misiones" ABBREVIATEDLABEL="AGE-MI" LABEL="Misiones" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1598" CREATED="2009-01-28 17:07:04.0" UUID="df1e5b3f-1521-474c-9609-c3eaf7f48dfa" TEXT="La Pampa" ABBREVIATEDLABEL="AGE-LP" LABEL="La Pampa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1599" CREATED="2009-01-28 17:07:04.0" UUID="ed22aace-0af8-4863-8b77-ff71b5aa998c" TEXT="Formosa" ABBREVIATEDLABEL="AGE-FO" LABEL="Formosa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1600" CREATED="2009-01-28 17:07:04.0" UUID="d97f9022-c0ee-455a-9f7b-1b99b76673b1" TEXT="Entre Ríos" ABBREVIATEDLABEL="AGE-ER" LABEL="Entre Ríos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1601" CREATED="2009-01-28 17:07:04.0" UUID="12ddb8e3-b1bc-449b-bcb7-25b901d672ab" TEXT="Argentina Distrito Federal" ABBREVIATEDLABEL="AGE-DF" LABEL="Argentina Distrito Federal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1602" CREATED="2009-01-28 17:07:04.0" UUID="ebbd557b-7d3d-403f-84e6-d9d705a902de" TEXT="Córdoba" ABBREVIATEDLABEL="AGE-CO" LABEL="Córdoba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1603" CREATED="2009-01-28 17:07:04.0" UUID="c4b2805e-2a0c-4ca5-83d2-266dc8958aa1" TEXT="Corrientes" ABBREVIATEDLABEL="AGE-CN" LABEL="Corrientes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1604" CREATED="2009-01-28 17:07:04.0" UUID="fc1fec46-db17-4ce1-9782-5e59c163d41a" TEXT="Chaco" ABBREVIATEDLABEL="AGE-CH" LABEL="Chaco" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1605" CREATED="2009-01-28 17:07:04.0" UUID="382ad85d-df8d-487a-9def-fdaec1294b69" TEXT="Buenos Aires" ABBREVIATEDLABEL="AGE-BA" LABEL="Buenos Aires" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1606" CREATED="2009-01-28 17:07:04.0" UUID="f405416d-8396-4dc5-9e98-786d221fcad9" TEXT="Afghanistan" ABBREVIATEDLABEL="AFG-OO" LABEL="Afghanistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1607" CREATED="2009-01-28 17:07:04.0" UUID="4e7fbb5e-4fa5-4a6f-81ee-3e28da2ca0f6" TEXT="Alberta" ABBREVIATEDLABEL="ABT-OO" LABEL="Alberta" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1608" CREATED="2009-01-28 17:07:04.0" UUID="04b127e3-c30f-42f5-a4f5-8ddeb80bcec7" TEXT="Zimbabwe" ABBREVIATEDLABEL="ZIM" LABEL="Zimbabwe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1609" CREATED="2009-01-28 17:07:04.0" UUID="7956b534-4584-4d11-8bab-462e88b62360" TEXT="Zambia" ABBREVIATEDLABEL="ZAM" LABEL="Zambia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1610" CREATED="2009-01-28 17:07:04.0" UUID="a9c2d7c4-a2dc-4335-8111-90534822fd10" TEXT="Zaire" ABBREVIATEDLABEL="ZAI" LABEL="Zaire" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1611" CREATED="2009-01-28 17:07:04.0" UUID="cf79fa82-d058-43be-9f82-d3a917cced1a" TEXT="Yukon" ABBREVIATEDLABEL="YUK" LABEL="Yukon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1612" CREATED="2009-01-28 17:07:04.0" UUID="372ac4f5-3b7c-4bb6-829e-01fcfdffc16b" TEXT="Yugoslavia" ABBREVIATEDLABEL="YUG" LABEL="Yugoslavia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1613" CREATED="2009-01-28 17:07:04.0" UUID="201865cd-b705-4e6c-96a0-bce3f291cc2b" TEXT="Yemen" ABBREVIATEDLABEL="YEM" LABEL="Yemen" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1614" CREATED="2009-01-28 17:07:04.0" UUID="39a8e99b-3c07-4689-b0c4-6cb64b5f35eb" TEXT="Yakutskiya" ABBREVIATEDLABEL="YAK" LABEL="Yakutskiya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1615" CREATED="2009-01-28 17:07:04.0" UUID="f66a7a5b-258f-4e6b-9994-df6f37aa5f21" TEXT="Christmas I." ABBREVIATEDLABEL="XMS" LABEL="Christmas I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1616" CREATED="2009-01-28 17:07:04.0" UUID="2d33f5a6-bd8f-4f87-8345-f17e07a81a97" TEXT="Wyoming" ABBREVIATEDLABEL="WYO" LABEL="Wyoming" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1617" CREATED="2009-01-28 17:07:04.0" UUID="5511e63f-02ce-4e36-9b45-1ac4a02aacba" TEXT="West Virginia" ABBREVIATEDLABEL="WVA" LABEL="West Virginia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1618" CREATED="2009-01-28 17:07:04.0" UUID="26ae1d01-8cdf-4e38-a00e-d7a2071e6ae0" TEXT="West Siberia" ABBREVIATEDLABEL="WSB" LABEL="West Siberia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1619" CREATED="2009-01-28 17:07:04.0" UUID="bdf521bc-d689-486b-8853-c8f81f824931" TEXT="Western Sahara" ABBREVIATEDLABEL="WSA" LABEL="Western Sahara" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1620" CREATED="2009-01-28 17:07:04.0" UUID="35b5c6c6-f94f-40ca-9da1-33142d698d05" TEXT="Wisconsin" ABBREVIATEDLABEL="WIS" LABEL="Wisconsin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1621" CREATED="2009-01-28 17:07:04.0" UUID="0261cefd-c8c2-4feb-bdf5-680649029860" TEXT="Windward Is." ABBREVIATEDLABEL="WIN" LABEL="Windward Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1622" CREATED="2009-01-28 17:07:04.0" UUID="9087a8b6-69a0-41f8-b37a-e75236bf6aa5" TEXT="West Himalaya" ABBREVIATEDLABEL="WHM" LABEL="West Himalaya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1623" CREATED="2009-01-28 17:07:04.0" UUID="c79c19d4-82fc-4d44-a193-4527370cc338" TEXT="District of Columbia" ABBREVIATEDLABEL="WDC" LABEL="District of Columbia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1624" CREATED="2009-01-28 17:07:04.0" UUID="59852649-1fe0-49e9-8abb-b7aa5f250ba4" TEXT="Western Australia" ABBREVIATEDLABEL="WAU" LABEL="Western Australia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1625" CREATED="2009-01-28 17:07:04.0" UUID="7cff92ac-8277-48bf-a401-b8bd115e7c77" TEXT="Washington" ABBREVIATEDLABEL="WAS" LABEL="Washington" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1626" CREATED="2009-01-28 17:07:04.0" UUID="bebcc24a-4fd5-4196-8712-38d193d6002b" TEXT="Wallis-Futuna Is." ABBREVIATEDLABEL="WAL" LABEL="Wallis-Futuna Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1627" CREATED="2009-01-28 17:07:04.0" UUID="7d968108-9340-49ab-bc03-cf0e1025b780" TEXT="Wake I." ABBREVIATEDLABEL="WAK" LABEL="Wake I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1628" CREATED="2009-01-28 17:07:04.0" UUID="fabb75b4-f3ec-4066-b6a1-afb7ee1296b0" TEXT="Virginia" ABBREVIATEDLABEL="VRG" LABEL="Virginia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1629" CREATED="2009-01-28 17:07:04.0" UUID="639b9f7a-8b9c-49de-b061-c7224c038d66" TEXT="Venezuelan Antilles" ABBREVIATEDLABEL="VNA" LABEL="Venezuelan Antilles" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1630" CREATED="2009-01-28 17:07:04.0" UUID="e1cc2de7-47d4-4d83-b141-0c1a38bd0dac" TEXT="Vietnam" ABBREVIATEDLABEL="VIE" LABEL="Vietnam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1631" CREATED="2009-01-28 17:07:04.0" UUID="8bd3daf8-b922-47cf-b642-69227ffe2d6d" TEXT="Victoria" ABBREVIATEDLABEL="VIC" LABEL="Victoria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1632" CREATED="2009-01-28 17:07:04.0" UUID="f11a141f-f095-4947-aa72-4dc9a37040a7" TEXT="Vermont" ABBREVIATEDLABEL="VER" LABEL="Vermont" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1633" CREATED="2009-01-28 17:07:04.0" UUID="1bfc0b0c-7aea-4ec9-91f6-37002772e4bf" TEXT="Venezuela" ABBREVIATEDLABEL="VEN" LABEL="Venezuela" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1634" CREATED="2009-01-28 17:07:04.0" UUID="cad655c6-cccb-4fce-a1e3-1c05fcd31165" TEXT="Vanuatu" ABBREVIATEDLABEL="VAN" LABEL="Vanuatu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1635" CREATED="2009-01-28 17:07:04.0" UUID="0a7ddbae-a41b-4223-811a-3633cfdd3a98" TEXT="Uzbekistan" ABBREVIATEDLABEL="UZB" LABEL="Uzbekistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1636" CREATED="2009-01-28 17:07:04.0" UUID="63aae3da-f040-4907-afec-b84edd4828ec" TEXT="Utah" ABBREVIATEDLABEL="UTA" LABEL="Utah" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1637" CREATED="2009-01-28 17:07:04.0" UUID="c10b15f6-7ff9-4620-868d-6500d4d2cfc3" TEXT="Uruguay" ABBREVIATEDLABEL="URU" LABEL="Uruguay" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1638" CREATED="2009-01-28 17:07:04.0" UUID="f65c5251-7848-4450-82ed-db9a0c30d0e1" TEXT="Ukraine" ABBREVIATEDLABEL="UKR" LABEL="Ukraine" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1639" CREATED="2009-01-28 17:07:04.0" UUID="1f994597-4158-4751-ad81-23356759b9a4" TEXT="Uganda" ABBREVIATEDLABEL="UGA" LABEL="Uganda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1640" CREATED="2009-01-28 17:07:04.0" UUID="03c2499b-cb01-4a16-b0c1-055adb05b02c" TEXT="Tadzhikistan" ABBREVIATEDLABEL="TZK" LABEL="Tadzhikistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1641" CREATED="2009-01-28 17:07:04.0" UUID="6a6b66d7-47e2-4450-9158-846834fff94c" TEXT="Northern Provinces" ABBREVIATEDLABEL="TVL" LABEL="Northern Provinces" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1642" CREATED="2009-01-28 17:07:04.0" UUID="5c9b2f24-f419-48df-9bc0-2bf1f6890f7c" TEXT="Tuva" ABBREVIATEDLABEL="TVA" LABEL="Tuva" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1643" CREATED="2009-01-28 17:07:04.0" UUID="beb5f04c-9d75-47d8-8768-83b1f7d90eb6" TEXT="Tuvalu" ABBREVIATEDLABEL="TUV" LABEL="Tuvalu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1644" CREATED="2009-01-28 17:07:04.0" UUID="6ea011ff-276e-44e1-b364-fff28848a52b" TEXT="Turkey" ABBREVIATEDLABEL="TUR" LABEL="Turkey" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1645" CREATED="2009-01-28 17:07:04.0" UUID="27a707c8-8170-418e-812b-3ed1bea9c6cb" TEXT="Tunisia" ABBREVIATEDLABEL="TUN" LABEL="Tunisia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1646" CREATED="2009-01-28 17:07:04.0" UUID="0406dcab-928e-4831-9b04-19c6f47e70a0" TEXT="Turkey-in-Europe" ABBREVIATEDLABEL="TUE" LABEL="Turkey-in-Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1647" CREATED="2009-01-28 17:07:04.0" UUID="6d2ad48b-f54a-4a79-8a8b-734e3ef44ce5" TEXT="Tubuai Is." ABBREVIATEDLABEL="TUB" LABEL="Tubuai Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1648" CREATED="2009-01-28 17:07:04.0" UUID="f1d1b394-1105-45f0-b30a-0a02f9b99ab7" TEXT="Tuamotu" ABBREVIATEDLABEL="TUA" LABEL="Tuamotu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1649" CREATED="2009-01-28 17:07:04.0" UUID="0f63be49-5caf-43d2-b7e4-88f9964c7a17" TEXT="Trinidad-Tobago" ABBREVIATEDLABEL="TRT" LABEL="Trinidad-Tobago" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1650" CREATED="2009-01-28 17:07:04.0" UUID="dd858c52-7617-4edd-a557-48d53c305f33" TEXT="Tonga" ABBREVIATEDLABEL="TON" LABEL="Tonga" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1651" CREATED="2009-01-28 17:07:04.0" UUID="404a50e6-e06f-414d-b84e-2d6635426e44" TEXT="Tokelau-Manihiki" ABBREVIATEDLABEL="TOK" LABEL="Tokelau-Manihiki" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1652" CREATED="2009-01-28 17:07:04.0" UUID="ae993666-f274-46f1-a5fc-b7e5e519061b" TEXT="Togo" ABBREVIATEDLABEL="TOG" LABEL="Togo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1653" CREATED="2009-01-28 17:07:04.0" UUID="efb4faf0-742e-4133-9f97-cd928e117094" TEXT="Turkmenistan" ABBREVIATEDLABEL="TKM" LABEL="Turkmenistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1654" CREATED="2009-01-28 17:07:04.0" UUID="f1dcba2d-ff9f-479c-bc73-1f185275d31b" TEXT="Thailand" ABBREVIATEDLABEL="THA" LABEL="Thailand" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1655" CREATED="2009-01-28 17:07:04.0" UUID="bdf3a573-74fa-41a1-9bbb-4299f620340b" TEXT="Texas" ABBREVIATEDLABEL="TEX" LABEL="Texas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1656" CREATED="2009-01-28 17:07:04.0" UUID="a4678d75-ad03-44a1-bf1c-59db3861850a" TEXT="Tennessee" ABBREVIATEDLABEL="TEN" LABEL="Tennessee" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1657" CREATED="2009-01-28 17:07:04.0" UUID="d135bcb5-4514-4cb1-83e4-fcd8fddaebda" TEXT="Tristan da Cunha" ABBREVIATEDLABEL="TDC" LABEL="Tristan da Cunha" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1658" CREATED="2009-01-28 17:07:04.0" UUID="6323cc2a-086a-4efc-a500-f2062f8ad62b" TEXT="Transcaucasus" ABBREVIATEDLABEL="TCS" LABEL="Transcaucasus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1659" CREATED="2009-01-28 17:07:04.0" UUID="e391a659-d719-48ff-947f-e7174ee3eda4" TEXT="Turks-Caicos Is." ABBREVIATEDLABEL="TCI" LABEL="Turks-Caicos Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1660" CREATED="2009-01-28 17:07:04.0" UUID="335cf53b-ecbf-450a-a167-56701c12b749" TEXT="Tasmania" ABBREVIATEDLABEL="TAS" LABEL="Tasmania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1661" CREATED="2009-01-28 17:07:04.0" UUID="335a08d1-2ff5-43aa-84bc-aac19f77cf2d" TEXT="Tanzania" ABBREVIATEDLABEL="TAN" LABEL="Tanzania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1662" CREATED="2009-01-28 17:07:04.0" UUID="f1bca77f-31c0-4a13-8061-6a1b1b07c793" TEXT="Taiwan" ABBREVIATEDLABEL="TAI" LABEL="Taiwan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1663" CREATED="2009-01-28 17:07:04.0" UUID="47581d81-2720-4c90-b669-b5c912385165" TEXT="Swaziland" ABBREVIATEDLABEL="SWZ" LABEL="Swaziland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1664" CREATED="2009-01-28 17:07:04.0" UUID="3e4de56b-2075-4318-bd95-7e24162b734d" TEXT="Switzerland" ABBREVIATEDLABEL="SWI" LABEL="Switzerland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1665" CREATED="2009-01-28 17:07:04.0" UUID="df1be255-b46c-407a-8cab-1b12a1eeeb5f" TEXT="Sweden" ABBREVIATEDLABEL="SWE" LABEL="Sweden" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1666" CREATED="2009-01-28 17:07:04.0" UUID="e153ba3d-548e-4d3f-b342-90f06471b2f9" TEXT="Southwest Caribbean" ABBREVIATEDLABEL="SWC" LABEL="Southwest Caribbean" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1667" CREATED="2009-01-28 17:07:04.0" UUID="71217233-33a9-4fda-9b24-d44a936581d9" TEXT="Svalbard" ABBREVIATEDLABEL="SVA" LABEL="Svalbard" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1668" CREATED="2009-01-28 17:07:04.0" UUID="5e56653f-0486-4a94-81b8-3f16060f6a54" TEXT="Suriname" ABBREVIATEDLABEL="SUR" LABEL="Suriname" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1669" CREATED="2009-01-28 17:07:04.0" UUID="a2b535f1-1971-426e-8c1f-e9978fa87027" TEXT="Sumatera" ABBREVIATEDLABEL="SUM" LABEL="Sumatera" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1670" CREATED="2009-01-28 17:07:04.0" UUID="02ba5ad1-f8e9-4452-8ca7-189ed4ceff8f" TEXT="Sulawesi" ABBREVIATEDLABEL="SUL" LABEL="Sulawesi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1671" CREATED="2009-01-28 17:07:04.0" UUID="124f622d-83d6-4aa8-9cf4-2e94ff658d0b" TEXT="Sudan" ABBREVIATEDLABEL="SUD" LABEL="Sudan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1672" CREATED="2009-01-28 17:07:04.0" UUID="ecfaa881-81ff-4f13-aa11-651b77080032" TEXT="St.Helena" ABBREVIATEDLABEL="STH" LABEL="St.Helena" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1673" CREATED="2009-01-28 17:07:04.0" UUID="4a029c69-fb09-4029-9f81-d3a83f3ee496" TEXT="South Sandwich Is." ABBREVIATEDLABEL="SSA" LABEL="South Sandwich Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1674" CREATED="2009-01-28 17:07:04.0" UUID="88c90698-e987-4fa1-8c03-d31850fc77e4" TEXT="Sri Lanka" ABBREVIATEDLABEL="SRL" LABEL="Sri Lanka" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1675" CREATED="2009-01-28 17:07:04.0" UUID="cd722d73-4069-4cc8-a602-47b956c1fed1" TEXT="Spain" ABBREVIATEDLABEL="SPA" LABEL="Spain" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1676" CREATED="2009-01-28 17:07:04.0" UUID="da68d248-4a9f-463c-826d-3bcb2a231a68" TEXT="Somalia" ABBREVIATEDLABEL="SOM" LABEL="Somalia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1677" CREATED="2009-01-28 17:07:04.0" UUID="a26a7da0-d821-4b31-8d50-95dbf8feb581" TEXT="Solomon Is." ABBREVIATEDLABEL="SOL" LABEL="Solomon Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1678" CREATED="2009-01-28 17:07:04.0" UUID="3773eb3d-7809-47e8-912a-97f18c86b7c3" TEXT="Socotra" ABBREVIATEDLABEL="SOC" LABEL="Socotra" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1679" CREATED="2009-01-28 17:07:04.0" UUID="287399dc-c508-4288-ac83-55d45eaef0e2" TEXT="South Australia" ABBREVIATEDLABEL="SOA" LABEL="South Australia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1680" CREATED="2009-01-28 17:07:04.0" UUID="656a86c9-cde5-4aac-b991-d26f7fcb43bf" TEXT="Sinai" ABBREVIATEDLABEL="SIN" LABEL="Sinai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1681" CREATED="2009-01-28 17:07:04.0" UUID="cfbcddf3-a8c9-48df-911c-03fffddd8443" TEXT="Sierra Leone" ABBREVIATEDLABEL="SIE" LABEL="Sierra Leone" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1682" CREATED="2009-01-28 17:07:04.0" UUID="bfb0cdf1-3f1e-4948-b396-dc476513b3cf" TEXT="Sicilia" ABBREVIATEDLABEL="SIC" LABEL="Sicilia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1683" CREATED="2009-01-28 17:07:04.0" UUID="456ff636-76a5-45a0-bf61-609fbd546e54" TEXT="South Georgia" ABBREVIATEDLABEL="SGE" LABEL="South Georgia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1684" CREATED="2009-01-28 17:07:04.0" UUID="a6ffde3a-2851-4d10-97d6-9fcb5af12f07" TEXT="Seychelles" ABBREVIATEDLABEL="SEY" LABEL="Seychelles" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1685" CREATED="2009-01-28 17:07:04.0" UUID="8a44f29f-8b3c-4ca3-b022-a7d22e0bc581" TEXT="Senegal" ABBREVIATEDLABEL="SEN" LABEL="Senegal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1686" CREATED="2009-01-28 17:07:04.0" UUID="adf3deb3-c52f-404f-bdae-2c0cb0037492" TEXT="Selvagens" ABBREVIATEDLABEL="SEL" LABEL="Selvagens" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1687" CREATED="2009-01-28 17:07:04.0" UUID="37c6f0e3-534b-4fde-87c6-bda344d75ad1" TEXT="South Dakota" ABBREVIATEDLABEL="SDA" LABEL="South Dakota" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1688" CREATED="2009-01-28 17:07:04.0" UUID="1b2444dd-745c-4a45-834f-7831f98de843" TEXT="Santa Cruz Is." ABBREVIATEDLABEL="SCZ" LABEL="Santa Cruz Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1689" CREATED="2009-01-28 17:07:04.0" UUID="0d05c56f-2ae2-4c77-b0fe-65df225c7306" TEXT="South China Sea" ABBREVIATEDLABEL="SCS" LABEL="South China Sea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1690" CREATED="2009-01-28 17:07:04.0" UUID="30f30732-07ee-4979-a9d6-e50cb314efbe" TEXT="Society Is." ABBREVIATEDLABEL="SCI" LABEL="Society Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1691" CREATED="2009-01-28 17:07:04.0" UUID="f6c8b660-a8ff-40ca-a766-7bf7d7ee0392" TEXT="South Carolina" ABBREVIATEDLABEL="SCA" LABEL="South Carolina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1692" CREATED="2009-01-28 17:07:04.0" UUID="7276c06a-5208-4b9f-88d6-723bd3db3fbe" TEXT="Saudi Arabia" ABBREVIATEDLABEL="SAU" LABEL="Saudi Arabia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1693" CREATED="2009-01-28 17:07:04.0" UUID="b641ea25-d751-43c2-bf57-56d2d8fa5bfb" TEXT="Saskatchewan" ABBREVIATEDLABEL="SAS" LABEL="Saskatchewan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1694" CREATED="2009-01-28 17:07:04.0" UUID="afaffa81-8d2c-4dd9-b023-03526d11962c" TEXT="Sardegna" ABBREVIATEDLABEL="SAR" LABEL="Sardegna" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1695" CREATED="2009-01-28 17:07:04.0" UUID="a5e3da03-64b5-457b-90a6-bc41057f4f1f" TEXT="Samoa" ABBREVIATEDLABEL="SAM" LABEL="Samoa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1696" CREATED="2009-01-28 17:07:04.0" UUID="3d1eb785-fb83-49c3-b84c-af6a816213bc" TEXT="Sakhalin" ABBREVIATEDLABEL="SAK" LABEL="Sakhalin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1697" CREATED="2009-01-28 17:07:04.0" UUID="c00ee021-46f9-4f6b-bc16-3c84d368cc7c" TEXT="Rwanda" ABBREVIATEDLABEL="RWA" LABEL="Rwanda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1698" CREATED="2009-01-28 17:07:04.0" UUID="30f40504-1b43-4d84-8d62-65c63e853f19" TEXT="Northwest European Russia" ABBREVIATEDLABEL="RUW" LABEL="Northwest European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1699" CREATED="2009-01-28 17:07:04.0" UUID="e10684f3-e427-48fd-af2f-07fb4da9ef07" TEXT="South European Russia" ABBREVIATEDLABEL="RUS" LABEL="South European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1700" CREATED="2009-01-28 17:07:04.0" UUID="253f0b99-2503-406b-8d71-e747d44deed8" TEXT="North European Russia" ABBREVIATEDLABEL="RUN" LABEL="North European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1701" CREATED="2009-01-28 17:07:04.0" UUID="485c15f7-38f6-4356-a810-333d02b3af58" TEXT="East European Russia" ABBREVIATEDLABEL="RUE" LABEL="East European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1702" CREATED="2009-01-28 17:07:04.0" UUID="6f1af6ed-e959-4da5-95d0-65cb9567fa52" TEXT="Central European Russia" ABBREVIATEDLABEL="RUC" LABEL="Central European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1703" CREATED="2009-01-28 17:07:04.0" UUID="4912c201-4b17-41e0-9f10-ecd65b4dbe02" TEXT="Romania" ABBREVIATEDLABEL="ROM" LABEL="Romania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1704" CREATED="2009-01-28 17:07:04.0" UUID="5475120b-ee04-44e1-b060-fabb2ec338af" TEXT="Rodrigues" ABBREVIATEDLABEL="ROD" LABEL="Rodrigues" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1705" CREATED="2009-01-28 17:07:04.0" UUID="ef2febc3-f8ac-4597-bf80-72e1f3aff50d" TEXT="Rhode I." ABBREVIATEDLABEL="RHO" LABEL="Rhode I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1706" CREATED="2009-01-28 17:07:04.0" UUID="0a9e4345-3acf-431e-bab4-5409a9f284dc" TEXT="Réunion" ABBREVIATEDLABEL="REU" LABEL="Réunion" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1707" CREATED="2009-01-28 17:07:04.0" UUID="db16379e-57a8-4975-bb02-145bc61fa4de" TEXT="Québec" ABBREVIATEDLABEL="QUE" LABEL="Québec" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1708" CREATED="2009-01-28 17:07:04.0" UUID="94e8e1a5-633e-480f-8b92-e5135ecd7b5a" TEXT="Queensland" ABBREVIATEDLABEL="QLD" LABEL="Queensland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1709" CREATED="2009-01-28 17:07:04.0" UUID="cc9d9927-be07-4da0-8f98-07ef15ca7fbb" TEXT="Puerto Rico" ABBREVIATEDLABEL="PUE" LABEL="Puerto Rico" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1710" CREATED="2009-01-28 17:07:04.0" UUID="b9c8ad6f-fd02-4080-a2fd-79dae69b21e6" TEXT="Primorye" ABBREVIATEDLABEL="PRM" LABEL="Primorye" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1711" CREATED="2009-01-28 17:07:04.0" UUID="8028ce28-d24e-4c12-a92d-edc71c18718b" TEXT="Portugal" ABBREVIATEDLABEL="POR" LABEL="Portugal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1712" CREATED="2009-01-28 17:07:04.0" UUID="068fbd9c-cdc9-4d81-af68-c88eb98a9ea0" TEXT="Poland" ABBREVIATEDLABEL="POL" LABEL="Poland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1713" CREATED="2009-01-28 17:07:04.0" UUID="aedd82ac-631a-484e-af72-7e03a58b9876" TEXT="Pitcairn Is." ABBREVIATEDLABEL="PIT" LABEL="Pitcairn Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1714" CREATED="2009-01-28 17:07:04.0" UUID="c04c8886-e14a-4a98-9f76-0fbc0048e66b" TEXT="Phoenix Is." ABBREVIATEDLABEL="PHX" LABEL="Phoenix Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1715" CREATED="2009-01-28 17:07:04.0" UUID="00397358-3299-4234-ae5b-a8c831f387d4" TEXT="Philippines" ABBREVIATEDLABEL="PHI" LABEL="Philippines" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1716" CREATED="2009-01-28 17:07:04.0" UUID="a6d5ff3e-4ed8-490c-b1da-a27a5c304c38" TEXT="Peru" ABBREVIATEDLABEL="PER" LABEL="Peru" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1717" CREATED="2009-01-28 17:07:04.0" UUID="d2d2bc25-230e-4907-9f49-50d22eb711dd" TEXT="Pennsylvania" ABBREVIATEDLABEL="PEN" LABEL="Pennsylvania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1718" CREATED="2009-01-28 17:07:04.0" UUID="f8ff6a7f-694e-4a65-8cd5-48f85cf4894f" TEXT="Prince Edward I." ABBREVIATEDLABEL="PEI" LABEL="Prince Edward I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1719" CREATED="2009-01-28 17:07:04.0" UUID="df2aa34b-4fc6-4d1d-aff8-90ca392a5038" TEXT="Paraguay" ABBREVIATEDLABEL="PAR" LABEL="Paraguay" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1720" CREATED="2009-01-28 17:07:04.0" UUID="89135f13-a986-487a-bec5-5debe3b366aa" TEXT="Panamá" ABBREVIATEDLABEL="PAN" LABEL="Panamá" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1721" CREATED="2009-01-28 17:07:04.0" UUID="753b1161-4ee9-4976-a1e2-2e9aadaff1af" TEXT="Palestine" ABBREVIATEDLABEL="PAL" LABEL="Palestine" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1722" CREATED="2009-01-28 17:07:04.0" UUID="f67754b6-0a59-4c8c-a9cb-1419b4f4d39b" TEXT="Pakistan" ABBREVIATEDLABEL="PAK" LABEL="Pakistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1723" CREATED="2009-01-28 17:07:04.0" UUID="73d539c5-6783-4a0d-aadc-c45c7f482e78" TEXT="Oregon" ABBREVIATEDLABEL="ORE" LABEL="Oregon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1724" CREATED="2009-01-28 17:07:04.0" UUID="b1882c24-a665-4214-9404-721a2c0b5a48" TEXT="Ontario" ABBREVIATEDLABEL="ONT" LABEL="Ontario" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1725" CREATED="2009-01-28 17:07:04.0" UUID="45edf6f0-633a-4c86-bb8c-26f7d3cda5e9" TEXT="Oman" ABBREVIATEDLABEL="OMA" LABEL="Oman" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1726" CREATED="2009-01-28 17:07:04.0" UUID="8d7783c6-40a1-415d-b50a-0c7d188caf55" TEXT="Oklahoma" ABBREVIATEDLABEL="OKL" LABEL="Oklahoma" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1727" CREATED="2009-01-28 17:07:04.0" UUID="b3423a58-11f5-4928-bc0b-6589ee6213c0" TEXT="Ohio" ABBREVIATEDLABEL="OHI" LABEL="Ohio" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1728" CREATED="2009-01-28 17:07:04.0" UUID="ac4b755d-1dff-4f9b-8764-2178f3417c68" TEXT="Ogasawara-shoto" ABBREVIATEDLABEL="OGA" LABEL="Ogasawara-shoto" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1729" CREATED="2009-01-28 17:07:04.0" UUID="fcf8e97b-9751-4268-9a90-c703e5c5e264" TEXT="Free State" ABBREVIATEDLABEL="OFS" LABEL="Free State" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1730" CREATED="2009-01-28 17:07:04.0" UUID="2902aba7-bc87-4fcc-9c8a-759fab4c2d8b" TEXT="New Zealand South" ABBREVIATEDLABEL="NZS" LABEL="New Zealand South" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1731" CREATED="2009-01-28 17:07:04.0" UUID="d5ed03ae-5753-4202-a0d2-8d8879f2bcfb" TEXT="New Zealand North" ABBREVIATEDLABEL="NZN" LABEL="New Zealand North" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1732" CREATED="2009-01-28 17:07:04.0" UUID="ba7835d5-bac6-4f7f-ae14-ecf338666453" TEXT="New York" ABBREVIATEDLABEL="NWY" LABEL="New York" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1733" CREATED="2009-01-28 17:07:04.0" UUID="39b87822-121e-4f17-a76d-1bae760dfa83" TEXT="Northwest Territories" ABBREVIATEDLABEL="NWT" LABEL="Northwest Territories" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1734" CREATED="2009-01-28 17:07:04.0" UUID="f48f8fc2-dd36-498f-b8ff-5d8214186afd" TEXT="New Mexico" ABBREVIATEDLABEL="NWM" LABEL="New Mexico" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1735" CREATED="2009-01-28 17:07:04.0" UUID="3cc3094e-cd51-4613-9e46-b3e4d986b858" TEXT="New Jersey" ABBREVIATEDLABEL="NWJ" LABEL="New Jersey" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1736" CREATED="2009-01-28 17:07:04.0" UUID="28e1ac81-35aa-4e56-8c6e-bcde017cad0f" TEXT="New Hampshire" ABBREVIATEDLABEL="NWH" LABEL="New Hampshire" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1737" CREATED="2009-01-28 17:07:04.0" UUID="1bd2d736-ca21-448b-8ffb-2d911278ab30" TEXT="New Guinea" ABBREVIATEDLABEL="NWG" LABEL="New Guinea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1738" CREATED="2009-01-28 17:07:04.0" UUID="fd516e51-d2d0-44bd-b863-4351f253ec0b" TEXT="New Caledonia" ABBREVIATEDLABEL="NWC" LABEL="New Caledonia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1739" CREATED="2009-01-28 17:07:04.0" UUID="cfed86b4-3d4b-4d4d-b629-1e842d51317b" TEXT="Nunavut" ABBREVIATEDLABEL="NUN" LABEL="Nunavut" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1740" CREATED="2009-01-28 17:07:04.0" UUID="c59401fa-5c5a-4bd3-a08e-8df3dce7c907" TEXT="Niue" ABBREVIATEDLABEL="NUE" LABEL="Niue" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1741" CREATED="2009-01-28 17:07:04.0" UUID="8eeb0dfc-ffd9-4cdd-a06b-c808ae6c6379" TEXT="Northern Territory" ABBREVIATEDLABEL="NTA" LABEL="Northern Territory" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1742" CREATED="2009-01-28 17:07:04.0" UUID="3258dcf1-b2a0-4be9-822e-e06a00aa916e" TEXT="New South Wales" ABBREVIATEDLABEL="NSW" LABEL="New South Wales" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1743" CREATED="2009-01-28 17:07:04.0" UUID="2e2be626-c172-496d-aa00-15b83077b181" TEXT="Nova Scotia" ABBREVIATEDLABEL="NSC" LABEL="Nova Scotia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1744" CREATED="2009-01-28 17:07:04.0" UUID="32579b77-a9da-4bdd-99fe-b88fc09fae6b" TEXT="Nauru" ABBREVIATEDLABEL="NRU" LABEL="Nauru" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1745" CREATED="2009-01-28 17:07:04.0" UUID="c9750999-bfb7-4253-82be-10d853840a76" TEXT="Norway" ABBREVIATEDLABEL="NOR" LABEL="Norway" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1746" CREATED="2009-01-28 17:07:04.0" UUID="6ed84f26-a8b8-46a7-9997-b215eed27d68" TEXT="Nansei-shoto" ABBREVIATEDLABEL="NNS" LABEL="Nansei-shoto" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1747" CREATED="2009-01-28 17:07:04.0" UUID="8f450800-f9f1-4e7f-990a-71bebb7e2961" TEXT="Netherlands Antilles" ABBREVIATEDLABEL="NLA" LABEL="Netherlands Antilles" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1748" CREATED="2009-01-28 17:07:04.0" UUID="f4201be6-d02f-4679-8613-e1770b8ca92f" TEXT="Nicaragua" ABBREVIATEDLABEL="NIC" LABEL="Nicaragua" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1749" CREATED="2009-01-28 17:07:04.0" UUID="6b0bbe26-78c6-4d91-ac86-a7758ccbef2d" TEXT="Niger" ABBREVIATEDLABEL="NGR" LABEL="Niger" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1750" CREATED="2009-01-28 17:07:04.0" UUID="2f9b2676-e439-42f1-b3b6-ca3a11560b70" TEXT="Nigeria" ABBREVIATEDLABEL="NGA" LABEL="Nigeria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1751" CREATED="2009-01-28 17:07:04.0" UUID="fc01de7b-634c-4748-9768-845724ce505f" TEXT="Newfoundland" ABBREVIATEDLABEL="NFL" LABEL="Newfoundland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1752" CREATED="2009-01-28 17:07:04.0" UUID="b36f9c7b-b43b-4355-b543-79f32824d147" TEXT="Norfolk Is." ABBREVIATEDLABEL="NFK" LABEL="Norfolk Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1753" CREATED="2009-01-28 17:07:04.0" UUID="273919f2-30b5-44d6-acd7-10726e2389b0" TEXT="Nevada" ABBREVIATEDLABEL="NEV" LABEL="Nevada" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1754" CREATED="2009-01-28 17:07:04.0" UUID="611856aa-99c7-46f5-824b-ee9710657261" TEXT="Netherlands" ABBREVIATEDLABEL="NET" LABEL="Netherlands" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1755" CREATED="2009-01-28 17:07:04.0" UUID="656e63ea-773b-4259-bf21-3f88a03fd90a" TEXT="Nepal" ABBREVIATEDLABEL="NEP" LABEL="Nepal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1756" CREATED="2009-01-28 17:07:04.0" UUID="670c990e-762e-4e21-9cee-80024f23d8d7" TEXT="Nebraska" ABBREVIATEDLABEL="NEB" LABEL="Nebraska" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1757" CREATED="2009-01-28 17:07:04.0" UUID="78022c59-3222-4e15-b59a-a673fc0fc7ac" TEXT="North Dakota" ABBREVIATEDLABEL="NDA" LABEL="North Dakota" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1758" CREATED="2009-01-28 17:07:04.0" UUID="066a37e3-cb0a-4eab-aff4-241e0d8febb8" TEXT="North Caucasus" ABBREVIATEDLABEL="NCS" LABEL="North Caucasus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1759" CREATED="2009-01-28 17:07:04.0" UUID="f576f5dc-5ff9-4f48-99e9-9825cd2e22eb" TEXT="Nicobar Is." ABBREVIATEDLABEL="NCB" LABEL="Nicobar Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1760" CREATED="2009-01-28 17:07:04.0" UUID="899456dc-5b5e-4d14-a8e2-21fc53eb6b10" TEXT="North Carolina" ABBREVIATEDLABEL="NCA" LABEL="North Carolina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1761" CREATED="2009-01-28 17:07:04.0" UUID="a1711451-b072-47b0-ad40-113ca4763ed7" TEXT="New Brunswick" ABBREVIATEDLABEL="NBR" LABEL="New Brunswick" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1762" CREATED="2009-01-28 17:07:04.0" UUID="3a8d92a8-a0f0-4f4a-bf89-81606b9df761" TEXT="KwaZulu-Natal" ABBREVIATEDLABEL="NAT" LABEL="KwaZulu-Natal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1763" CREATED="2009-01-28 17:07:04.0" UUID="4927a320-f54b-43ff-a926-1be6d1eab898" TEXT="Namibia" ABBREVIATEDLABEL="NAM" LABEL="Namibia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1764" CREATED="2009-01-28 17:07:04.0" UUID="e1e52cf3-e891-4825-a283-bcd7dabecab0" TEXT="Myanmar" ABBREVIATEDLABEL="MYA" LABEL="Myanmar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1765" CREATED="2009-01-28 17:07:04.0" UUID="33b67bca-cd28-451d-b897-ca91f3fe7b36" TEXT="Mexico Southeast" ABBREVIATEDLABEL="MXT" LABEL="Mexico Southeast" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1766" CREATED="2009-01-28 17:07:04.0" UUID="4c782a7a-9733-466b-9157-cee617024657" TEXT="Mexico Southwest" ABBREVIATEDLABEL="MXS" LABEL="Mexico Southwest" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1767" CREATED="2009-01-28 17:07:04.0" UUID="0c9c992e-7484-43f5-8e33-324ee5492ad4" TEXT="Mexico Northwest" ABBREVIATEDLABEL="MXN" LABEL="Mexico Northwest" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1768" CREATED="2009-01-28 17:07:04.0" UUID="d3382e93-7f42-4ac5-8c0f-307340246e6a" TEXT="Mexican Pacific Is." ABBREVIATEDLABEL="MXI" LABEL="Mexican Pacific Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1769" CREATED="2009-01-28 17:07:04.0" UUID="9a7fc5da-43d9-4b8a-b96c-8c5d4ea3071a" TEXT="Mexico Gulf" ABBREVIATEDLABEL="MXG" LABEL="Mexico Gulf" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1770" CREATED="2009-01-28 17:07:04.0" UUID="4cae45ba-1aee-48f2-9dc5-f8180065f854" TEXT="Mexico Northeast" ABBREVIATEDLABEL="MXE" LABEL="Mexico Northeast" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1771" CREATED="2009-01-28 17:07:04.0" UUID="6f374f41-a759-4ff1-b233-7948a68e607a" TEXT="Mexico Central" ABBREVIATEDLABEL="MXC" LABEL="Mexico Central" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1772" CREATED="2009-01-28 17:07:04.0" UUID="dc71b760-71ea-4992-a200-63e323d2f85b" TEXT="Mauritania" ABBREVIATEDLABEL="MTN" LABEL="Mauritania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1773" CREATED="2009-01-28 17:07:04.0" UUID="4e3adcf9-5694-4ff0-be88-9dd46c79371b" TEXT="Missouri" ABBREVIATEDLABEL="MSO" LABEL="Missouri" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1774" CREATED="2009-01-28 17:07:04.0" UUID="dde187b4-71e2-4a8d-90b3-488499a17bb7" TEXT="Mississippi" ABBREVIATEDLABEL="MSI" LABEL="Mississippi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1775" CREATED="2009-01-28 17:07:04.0" UUID="117b0e41-1cfb-4dec-9e5c-e5f504fca445" TEXT="Maryland" ABBREVIATEDLABEL="MRY" LABEL="Maryland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1776" CREATED="2009-01-28 17:07:04.0" UUID="6976c932-0b9d-40d1-97d8-b1ef39224c63" TEXT="Marshall Is." ABBREVIATEDLABEL="MRS" LABEL="Marshall Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1777" CREATED="2009-01-28 17:07:04.0" UUID="743a9773-677f-445a-aef2-4402ccf791d1" TEXT="Marquesas" ABBREVIATEDLABEL="MRQ" LABEL="Marquesas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1778" CREATED="2009-01-28 17:07:04.0" UUID="1a849e4b-03d2-4c9d-83d1-3de8a20f13d4" TEXT="Marianas" ABBREVIATEDLABEL="MRN" LABEL="Marianas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1779" CREATED="2009-01-28 17:07:04.0" UUID="7db4d6e6-a77e-46e0-9af8-d255b98dbace" TEXT="Marion-Prince Edward Is." ABBREVIATEDLABEL="MPE" LABEL="Marion-Prince Edward Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1780" CREATED="2009-01-28 17:07:04.0" UUID="7deb75c3-b921-40de-9292-4cd988a7db9a" TEXT="Mozambique" ABBREVIATEDLABEL="MOZ" LABEL="Mozambique" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1781" CREATED="2009-01-28 17:07:04.0" UUID="7bd6f1f4-5dcd-4ad8-930b-ec2237ecfb15" TEXT="Morocco" ABBREVIATEDLABEL="MOR" LABEL="Morocco" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1782" CREATED="2009-01-28 17:07:04.0" UUID="73582aa6-53b3-4f02-bf00-260a41dcc881" TEXT="Mongolia" ABBREVIATEDLABEL="MON" LABEL="Mongolia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1783" CREATED="2009-01-28 17:07:04.0" UUID="815be445-be5a-408d-b923-e58e4a81068c" TEXT="Maluku" ABBREVIATEDLABEL="MOL" LABEL="Maluku" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1784" CREATED="2009-01-28 17:07:04.0" UUID="78fbfe72-2a40-4ab7-ba31-c4d3d10194cf" TEXT="Montana" ABBREVIATEDLABEL="MNT" LABEL="Montana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1785" CREATED="2009-01-28 17:07:04.0" UUID="5a01bf13-3689-4a45-b6c0-4515b88289b5" TEXT="Malaya" ABBREVIATEDLABEL="MLY" LABEL="Malaya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1786" CREATED="2009-01-28 17:07:04.0" UUID="065bebeb-53e3-482f-8821-9e16cb8e391e" TEXT="Malawi" ABBREVIATEDLABEL="MLW" LABEL="Malawi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1787" CREATED="2009-01-28 17:07:04.0" UUID="bb447458-703b-48c9-83b3-d3e9cac4244a" TEXT="Mali" ABBREVIATEDLABEL="MLI" LABEL="Mali" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1788" CREATED="2009-01-28 17:07:04.0" UUID="ae4f3b94-25fb-4888-8195-b98c1c4faa1c" TEXT="Minnesota" ABBREVIATEDLABEL="MIN" LABEL="Minnesota" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1789" CREATED="2009-01-28 17:07:04.0" UUID="7bbbd9bd-82d4-4b5a-adf7-f8ae17534a88" TEXT="Michigan" ABBREVIATEDLABEL="MIC" LABEL="Michigan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1790" CREATED="2009-01-28 17:07:04.0" UUID="4aa24968-e601-4a3f-b675-46c59197617c" TEXT="Maldives" ABBREVIATEDLABEL="MDV" LABEL="Maldives" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1791" CREATED="2009-01-28 17:07:04.0" UUID="6582dfa0-58b0-46cc-a0f8-4c10dea65ef5" TEXT="Madeira" ABBREVIATEDLABEL="MDR" LABEL="Madeira" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1792" CREATED="2009-01-28 17:07:04.0" UUID="717de2ac-2f02-427f-a7ae-61cbb9f27f62" TEXT="Madagascar" ABBREVIATEDLABEL="MDG" LABEL="Madagascar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1793" CREATED="2009-01-28 17:07:04.0" UUID="8c916711-e315-42c3-9f94-22a267e32ad6" TEXT="Marcus I." ABBREVIATEDLABEL="MCS" LABEL="Marcus I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1794" CREATED="2009-01-28 17:07:04.0" UUID="04f1c323-0d6f-4609-a5be-aa03d223cb8f" TEXT="Mozambique Channel Is." ABBREVIATEDLABEL="MCI" LABEL="Mozambique Channel Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1795" CREATED="2009-01-28 17:07:04.0" UUID="72214dec-a131-4d85-b64d-ffa385ad72db" TEXT="Mauritius" ABBREVIATEDLABEL="MAU" LABEL="Mauritius" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1796" CREATED="2009-01-28 17:07:04.0" UUID="72e6685b-5ee5-4049-bb5f-1db0ca87eedd" TEXT="Massachusetts" ABBREVIATEDLABEL="MAS" LABEL="Massachusetts" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1797" CREATED="2009-01-28 17:07:04.0" UUID="aeaff946-33b4-4f12-bb44-07a843458f8f" TEXT="Macquarie Is." ABBREVIATEDLABEL="MAQ" LABEL="Macquarie Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1798" CREATED="2009-01-28 17:07:04.0" UUID="94b67071-6e99-47e3-979e-f41338255837" TEXT="Manitoba" ABBREVIATEDLABEL="MAN" LABEL="Manitoba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1799" CREATED="2009-01-28 17:07:04.0" UUID="f110db67-76ff-4650-89bd-0e7f871a5eb2" TEXT="Maine" ABBREVIATEDLABEL="MAI" LABEL="Maine" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1800" CREATED="2009-01-28 17:07:04.0" UUID="ff301562-24e4-4c79-b405-37f776275fdd" TEXT="Magadan" ABBREVIATEDLABEL="MAG" LABEL="Magadan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1801" CREATED="2009-01-28 17:07:04.0" UUID="d10c4563-d19b-4f05-8176-3601b56715df" TEXT="Lesser Sunda Is." ABBREVIATEDLABEL="LSI" LABEL="Lesser Sunda Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1802" CREATED="2009-01-28 17:07:04.0" UUID="f94b0e41-bfbf-40fa-90cc-a5faa65e0bc0" TEXT="Louisiana" ABBREVIATEDLABEL="LOU" LABEL="Louisiana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1803" CREATED="2009-01-28 17:07:04.0" UUID="2359d5cf-ecf0-48c5-91c5-c5d8d4d1300c" TEXT="Line Is." ABBREVIATEDLABEL="LIN" LABEL="Line Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1804" CREATED="2009-01-28 17:07:04.0" UUID="1d5b8a2f-faae-4ad8-b9fb-ba40a8026bc0" TEXT="Lesotho" ABBREVIATEDLABEL="LES" LABEL="Lesotho" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1805" CREATED="2009-01-28 17:07:04.0" UUID="69f73638-c4ff-4c19-950d-ef6427af895c" TEXT="Leeward Is." ABBREVIATEDLABEL="LEE" LABEL="Leeward Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1806" CREATED="2009-01-28 17:07:04.0" UUID="ec864984-f3b2-43da-b918-59f4f7f9b9ce" TEXT="Laccadive Is." ABBREVIATEDLABEL="LDV" LABEL="Laccadive Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1807" CREATED="2009-01-28 17:07:04.0" UUID="cf56ef4f-0f0c-4c7f-9582-fdb33650a92a" TEXT="Libya" ABBREVIATEDLABEL="LBY" LABEL="Libya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1808" CREATED="2009-01-28 17:07:04.0" UUID="8a115806-4f78-4196-8fe2-11ef4307a5a4" TEXT="Lebanon-Syria" ABBREVIATEDLABEL="LBS" LABEL="Lebanon-Syria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1809" CREATED="2009-01-28 17:07:04.0" UUID="dcd60080-ba02-4794-9a79-45a3df77001b" TEXT="Liberia" ABBREVIATEDLABEL="LBR" LABEL="Liberia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1810" CREATED="2009-01-28 17:07:04.0" UUID="bef87c7e-cc1c-4ef7-9c4d-0e70cadd47bb" TEXT="Laos" ABBREVIATEDLABEL="LAO" LABEL="Laos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1811" CREATED="2009-01-28 17:07:04.0" UUID="f8a2a06a-23c3-4b98-a425-8e57bacc4f2d" TEXT="Labrador" ABBREVIATEDLABEL="LAB" LABEL="Labrador" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1812" CREATED="2009-01-28 17:07:04.0" UUID="fc528c48-860c-496e-98a0-9cc498b15726" TEXT="Kazan-retto" ABBREVIATEDLABEL="KZN" LABEL="Kazan-retto" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1813" CREATED="2009-01-28 17:07:04.0" UUID="cb448515-1b2c-47e0-bcf8-4dfd84a0c9b2" TEXT="Kuwait" ABBREVIATEDLABEL="KUW" LABEL="Kuwait" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1814" CREATED="2009-01-28 17:07:04.0" UUID="bb8e64f3-103e-4589-b752-0a8634822880" TEXT="Kuril Is." ABBREVIATEDLABEL="KUR" LABEL="Kuril Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1815" CREATED="2009-01-28 17:07:04.0" UUID="045484a7-a103-491e-8937-426a23977db9" TEXT="Kentucky" ABBREVIATEDLABEL="KTY" LABEL="Kentucky" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1816" CREATED="2009-01-28 17:07:04.0" UUID="51e6818c-0cb3-4fa9-975e-c595cdc95751" TEXT="Krym" ABBREVIATEDLABEL="KRY" LABEL="Krym" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1817" CREATED="2009-01-28 17:07:04.0" UUID="e56d9f2d-79ef-418b-ae93-94d414cd8b97" TEXT="Kriti" ABBREVIATEDLABEL="KRI" LABEL="Kriti" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1818" CREATED="2009-01-28 17:07:04.0" UUID="17ec317a-6476-41b6-87fc-634311d9ac0a" TEXT="Krasnoyarsk" ABBREVIATEDLABEL="KRA" LABEL="Krasnoyarsk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1819" CREATED="2009-01-28 17:07:04.0" UUID="23777142-c6b2-4cf2-a5f1-83ba2e5dcffe" TEXT="Korea" ABBREVIATEDLABEL="KOR" LABEL="Korea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1820" CREATED="2009-01-28 17:07:04.0" UUID="0a79deb1-d7f1-456a-a4aa-261669cfd99c" TEXT="Khabarovsk" ABBREVIATEDLABEL="KHA" LABEL="Khabarovsk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1821" CREATED="2009-01-28 17:07:04.0" UUID="f3a7cca5-85a5-4494-b811-657d9662513a" TEXT="Kirgizistan" ABBREVIATEDLABEL="KGZ" LABEL="Kirgizistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1822" CREATED="2009-01-28 17:07:04.0" UUID="87f6e830-ef83-4171-90c6-eb002bd0e81c" TEXT="Kermadec Is." ABBREVIATEDLABEL="KER" LABEL="Kermadec Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1823" CREATED="2009-01-28 17:07:04.0" UUID="31b9faf0-e99a-4907-b521-e0bfae49d4ec" TEXT="Kenya" ABBREVIATEDLABEL="KEN" LABEL="Kenya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1824" CREATED="2009-01-28 17:07:04.0" UUID="504cd85c-d4e6-4892-9199-4069aaf16257" TEXT="Kerguelen" ABBREVIATEDLABEL="KEG" LABEL="Kerguelen" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1825" CREATED="2009-01-28 17:07:04.0" UUID="e2831e46-2af9-47db-a26a-be7afa657dfd" TEXT="Kazakhstan" ABBREVIATEDLABEL="KAZ" LABEL="Kazakhstan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1826" CREATED="2009-01-28 17:07:04.0" UUID="792d71da-f7b2-45f3-b60f-4b73e6710179" TEXT="Kansas" ABBREVIATEDLABEL="KAN" LABEL="Kansas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1827" CREATED="2009-01-28 17:07:04.0" UUID="4bde806d-b053-4b5c-b012-6ff3ec2b5d39" TEXT="Kamchatka" ABBREVIATEDLABEL="KAM" LABEL="Kamchatka" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1828" CREATED="2009-01-28 17:07:04.0" UUID="71d3b6d4-a66a-457d-8960-e908664b6698" TEXT="Juan Fernández Is." ABBREVIATEDLABEL="JNF" LABEL="Juan Fernández Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1829" CREATED="2009-01-28 17:07:04.0" UUID="15136023-a0f5-4a9e-b6d7-a23b28a83f37" TEXT="Jawa" ABBREVIATEDLABEL="JAW" LABEL="Jawa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1830" CREATED="2009-01-28 17:07:04.0" UUID="2f54dea5-2834-4328-8329-bcffa94f3a3f" TEXT="Japan" ABBREVIATEDLABEL="JAP" LABEL="Japan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1831" CREATED="2009-01-28 17:07:04.0" UUID="fb7f87d4-03dd-4c4a-8022-4fa000b5a39f" TEXT="Jamaica" ABBREVIATEDLABEL="JAM" LABEL="Jamaica" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1832" CREATED="2009-01-28 17:07:04.0" UUID="4de2b75b-ebc2-4185-9994-b1eddb508636" TEXT="Ivory Coast" ABBREVIATEDLABEL="IVO" LABEL="Ivory Coast" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1833" CREATED="2009-01-28 17:07:04.0" UUID="bdd5f7b8-f29a-4de3-a886-e53be99c962d" TEXT="Italy" ABBREVIATEDLABEL="ITA" LABEL="Italy" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1834" CREATED="2009-01-28 17:07:04.0" UUID="d8efba08-f926-4b43-858f-136065b8e88a" TEXT="Iraq" ABBREVIATEDLABEL="IRQ" LABEL="Iraq" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1835" CREATED="2009-01-28 17:07:04.0" UUID="415375bb-3e19-47dd-b439-b0c646f36023" TEXT="Iran" ABBREVIATEDLABEL="IRN" LABEL="Iran" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1836" CREATED="2009-01-28 17:07:04.0" UUID="21e044e4-f71b-43cf-98b3-b75af961ce21" TEXT="Irkutsk" ABBREVIATEDLABEL="IRK" LABEL="Irkutsk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1837" CREATED="2009-01-28 17:07:04.0" UUID="03636b82-ce68-4149-ae49-6c9187a7072f" TEXT="Ireland" ABBREVIATEDLABEL="IRE" LABEL="Ireland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1838" CREATED="2009-01-28 17:07:04.0" UUID="83665c02-218a-4227-8b09-03e0646243e6" TEXT="Iowa" ABBREVIATEDLABEL="IOW" LABEL="Iowa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1839" CREATED="2009-01-28 17:07:04.0" UUID="6d70c13f-57f7-42bd-9d3d-c67a69fbf604" TEXT="Indiana" ABBREVIATEDLABEL="INI" LABEL="Indiana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1840" CREATED="2009-01-28 17:07:04.0" UUID="236fdb10-9d13-4eb2-8592-1f99dc6b1210" TEXT="India" ABBREVIATEDLABEL="IND" LABEL="India" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1841" CREATED="2009-01-28 17:07:04.0" UUID="6b81a6f3-0ee5-40f0-9130-55d7bea82833" TEXT="Illinois" ABBREVIATEDLABEL="ILL" LABEL="Illinois" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1842" CREATED="2009-01-28 17:07:04.0" UUID="b653fd83-2a6f-4d9e-b80f-d5c04e53204f" TEXT="Idaho" ABBREVIATEDLABEL="IDA" LABEL="Idaho" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1843" CREATED="2009-01-28 17:07:04.0" UUID="1d9b4b24-eda9-4fd6-b968-0feccd9b1534" TEXT="Iceland" ABBREVIATEDLABEL="ICE" LABEL="Iceland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1844" CREATED="2009-01-28 17:07:04.0" UUID="a5e8f908-3ec7-40dc-a9cb-a38bd22af89b" TEXT="Hungary" ABBREVIATEDLABEL="HUN" LABEL="Hungary" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1845" CREATED="2009-01-28 17:07:04.0" UUID="1e0b43f6-47ee-4b33-ac12-2413216d76aa" TEXT="Honduras" ABBREVIATEDLABEL="HON" LABEL="Honduras" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1846" CREATED="2009-01-28 17:07:04.0" UUID="70024418-c40d-41ba-b161-5db67156c84f" TEXT="Heard-McDonald Is." ABBREVIATEDLABEL="HMD" LABEL="Heard-McDonald Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1847" CREATED="2009-01-28 17:07:04.0" UUID="af767376-7e90-4799-afd2-d5860c4c9388" TEXT="Howland-Baker Is." ABBREVIATEDLABEL="HBI" LABEL="Howland-Baker Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1848" CREATED="2009-01-28 17:07:04.0" UUID="f96c8e08-bf4d-4ed3-b49f-acbecdf8f20c" TEXT="Hawaii" ABBREVIATEDLABEL="HAW" LABEL="Hawaii" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1849" CREATED="2009-01-28 17:07:04.0" UUID="56f952d4-d52f-45cb-82b8-cb3ef78376da" TEXT="Haiti" ABBREVIATEDLABEL="HAI" LABEL="Haiti" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1850" CREATED="2009-01-28 17:07:04.0" UUID="bbc1a564-ddef-4be6-9101-7d5db6169a93" TEXT="Guyana" ABBREVIATEDLABEL="GUY" LABEL="Guyana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1851" CREATED="2009-01-28 17:07:04.0" UUID="229ff862-2dac-4202-82d6-58fe3e854394" TEXT="Guinea" ABBREVIATEDLABEL="GUI" LABEL="Guinea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1852" CREATED="2009-01-28 17:07:04.0" UUID="507178c7-24e1-4c5c-960a-66c65ccc9fbc" TEXT="Guatemala" ABBREVIATEDLABEL="GUA" LABEL="Guatemala" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1853" CREATED="2009-01-28 17:07:04.0" UUID="6a9a3ab3-2065-4984-963e-d81dea70f645" TEXT="Gulf States" ABBREVIATEDLABEL="GST" LABEL="Gulf States" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1854" CREATED="2009-01-28 17:07:04.0" UUID="57e7cb8e-3a24-42fd-ad5f-ebb6c1afdff1" TEXT="Greece" ABBREVIATEDLABEL="GRC" LABEL="Greece" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1855" CREATED="2009-01-28 17:07:04.0" UUID="67b7621a-4505-4e19-9d10-7450d9b5fb6e" TEXT="Great Britain" ABBREVIATEDLABEL="GRB" LABEL="Great Britain" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1856" CREATED="2009-01-28 17:07:04.0" UUID="afae6011-8e2f-46c7-ad14-41e4ec2313ea" TEXT="Greenland" ABBREVIATEDLABEL="GNL" LABEL="Greenland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1857" CREATED="2009-01-28 17:07:04.0" UUID="77c7bf69-e10d-491a-863f-2dbcda90a32a" TEXT="Guinea-Bissau" ABBREVIATEDLABEL="GNB" LABEL="Guinea-Bissau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1858" CREATED="2009-01-28 17:07:04.0" UUID="b1339663-b946-43cb-be02-7bd0baa89e7d" TEXT="Gilbert Is." ABBREVIATEDLABEL="GIL" LABEL="Gilbert Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1859" CREATED="2009-01-28 17:07:04.0" UUID="1ead52b4-169d-4279-8096-1bf77e28b7fc" TEXT="Ghana" ABBREVIATEDLABEL="GHA" LABEL="Ghana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1860" CREATED="2009-01-28 17:07:04.0" UUID="df3bb7f7-2bb2-47e0-a17e-987cbdcdd224" TEXT="Gulf of Guinea Is." ABBREVIATEDLABEL="GGI" LABEL="Gulf of Guinea Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1861" CREATED="2009-01-28 17:07:04.0" UUID="000cb44d-7b4e-418e-91ce-1b19372f690d" TEXT="Germany" ABBREVIATEDLABEL="GER" LABEL="Germany" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1862" CREATED="2009-01-28 17:07:04.0" UUID="88c1f1a1-fb64-4902-89ee-5d14c978edaf" TEXT="Georgia" ABBREVIATEDLABEL="GEO" LABEL="Georgia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1863" CREATED="2009-01-28 17:07:04.0" UUID="99a711dc-eb24-4159-9a2d-833c7a83ffe2" TEXT="Gambia, The" ABBREVIATEDLABEL="GAM" LABEL="Gambia, The" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1864" CREATED="2009-01-28 17:07:04.0" UUID="443f05ff-9370-4e60-890d-436cf600499f" TEXT="Galápagos" ABBREVIATEDLABEL="GAL" LABEL="Galápagos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1865" CREATED="2009-01-28 17:07:04.0" UUID="79addac5-85e5-486a-9d12-3d8cb8351bad" TEXT="Gabon" ABBREVIATEDLABEL="GAB" LABEL="Gabon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1866" CREATED="2009-01-28 17:07:04.0" UUID="0dfda26a-c9e0-4308-9b49-f211f607801f" TEXT="French Guiana" ABBREVIATEDLABEL="FRG" LABEL="French Guiana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1867" CREATED="2009-01-28 17:07:04.0" UUID="15e00909-88f6-4ef2-980e-2559785fec38" TEXT="France" ABBREVIATEDLABEL="FRA" LABEL="France" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1868" CREATED="2009-01-28 17:07:04.0" UUID="95730947-e581-48ec-8f09-3c9ea8e1fe20" TEXT="Føroyar" ABBREVIATEDLABEL="FOR" LABEL="Føroyar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1869" CREATED="2009-01-28 17:07:04.0" UUID="683bd0ac-6bbc-40ca-a8e8-c733710128c9" TEXT="Florida" ABBREVIATEDLABEL="FLA" LABEL="Florida" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1870" CREATED="2009-01-28 17:07:04.0" UUID="5bff2aae-b6e3-43ec-8295-5fdbcd7161cc" TEXT="Finland" ABBREVIATEDLABEL="FIN" LABEL="Finland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1871" CREATED="2009-01-28 17:07:04.0" UUID="b9a48b83-e90d-4f65-a3b2-4c68b17ac684" TEXT="Fiji" ABBREVIATEDLABEL="FIJ" LABEL="Fiji" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1872" CREATED="2009-01-28 17:07:04.0" UUID="c1794960-97a1-4f7c-893e-023930a4745e" TEXT="Falkland Is." ABBREVIATEDLABEL="FAL" LABEL="Falkland Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1873" CREATED="2009-01-28 17:07:04.0" UUID="58179fc8-3380-40f3-9aa5-980b3bf856fe" TEXT="Ethiopia" ABBREVIATEDLABEL="ETH" LABEL="Ethiopia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1874" CREATED="2009-01-28 17:07:04.0" UUID="219f030e-7ad7-43c7-8ac7-9ffde648af76" TEXT="Eritrea" ABBREVIATEDLABEL="ERI" LABEL="Eritrea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1875" CREATED="2009-01-28 17:07:04.0" UUID="cedb67ae-8785-45eb-9c53-beb7198e13e3" TEXT="Equatorial Guinea" ABBREVIATEDLABEL="EQG" LABEL="Equatorial Guinea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1876" CREATED="2009-01-28 17:07:04.0" UUID="f729d9b1-c133-42ec-bbe7-0948f63b2479" TEXT="El Salvador" ABBREVIATEDLABEL="ELS" LABEL="El Salvador" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1877" CREATED="2009-01-28 17:07:04.0" UUID="aeb01fc8-79ad-4b54-bd20-78b77db10306" TEXT="East Himalaya" ABBREVIATEDLABEL="EHM" LABEL="East Himalaya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1878" CREATED="2009-01-28 17:07:04.0" UUID="782d4ad3-232f-45a7-8139-1d22ad7c9a7e" TEXT="Egypt" ABBREVIATEDLABEL="EGY" LABEL="Egypt" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1879" CREATED="2009-01-28 17:07:04.0" UUID="e75de565-053b-477b-93f7-8af8dea1aebf" TEXT="Ecuador" ABBREVIATEDLABEL="ECU" LABEL="Ecuador" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1880" CREATED="2009-01-28 17:07:04.0" UUID="c17593b7-656f-44bc-b0be-bbe7125961dd" TEXT="Easter Is." ABBREVIATEDLABEL="EAS" LABEL="Easter Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1881" CREATED="2009-01-28 17:07:04.0" UUID="a89e3e9d-130f-4eab-99b7-9f6b41a0d92d" TEXT="East Aegean Is." ABBREVIATEDLABEL="EAI" LABEL="East Aegean Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1882" CREATED="2009-01-28 17:07:04.0" UUID="e948ef9c-d87e-4551-bede-21679170d4c8" TEXT="Desventurados Is." ABBREVIATEDLABEL="DSV" LABEL="Desventurados Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1883" CREATED="2009-01-28 17:07:04.0" UUID="73cb1471-e25d-4a7e-8b21-0bd26c40e1e3" TEXT="Dominican Republic" ABBREVIATEDLABEL="DOM" LABEL="Dominican Republic" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1884" CREATED="2009-01-28 17:07:04.0" UUID="e810844f-6a0b-4c11-9a02-bd38c0b4f06d" TEXT="Djibouti" ABBREVIATEDLABEL="DJI" LABEL="Djibouti" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1885" CREATED="2009-01-28 17:07:04.0" UUID="1227fd0c-0efa-48f3-94b6-e9fd047455d2" TEXT="Denmark" ABBREVIATEDLABEL="DEN" LABEL="Denmark" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1886" CREATED="2009-01-28 17:07:04.0" UUID="7c599ca7-6f04-4bd0-a16d-9296fbef151d" TEXT="Delaware" ABBREVIATEDLABEL="DEL" LABEL="Delaware" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1887" CREATED="2009-01-28 17:07:04.0" UUID="6f62156d-1d08-4807-9587-acabc2791d79" TEXT="Czechoslovakia" ABBREVIATEDLABEL="CZE" LABEL="Czechoslovakia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1888" CREATED="2009-01-28 17:07:04.0" UUID="1794ac6e-bc72-49c4-94ae-f570460ed080" TEXT="Cyprus" ABBREVIATEDLABEL="CYP" LABEL="Cyprus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1889" CREATED="2009-01-28 17:07:04.0" UUID="a261b624-d732-42d7-975d-36065f177bcd" TEXT="Cape Verde" ABBREVIATEDLABEL="CVI" LABEL="Cape Verde" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1890" CREATED="2009-01-28 17:07:04.0" UUID="28be14ef-04dc-46b6-88cf-3bb057644a71" TEXT="Cuba" ABBREVIATEDLABEL="CUB" LABEL="Cuba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1891" CREATED="2009-01-28 17:07:04.0" UUID="b933f05c-9022-429f-a89e-a2b2b0a8b3f8" TEXT="Chatham Is." ABBREVIATEDLABEL="CTM" LABEL="Chatham Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1892" CREATED="2009-01-28 17:07:04.0" UUID="7f35afa1-b5fd-456c-9052-93c7ce91ff7c" TEXT="Chita" ABBREVIATEDLABEL="CTA" LABEL="Chita" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1893" CREATED="2009-01-28 17:07:04.0" UUID="5eddb941-14d5-48aa-bec6-922880c8ef6a" TEXT="Crozet Is." ABBREVIATEDLABEL="CRZ" LABEL="Crozet Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1894" CREATED="2009-01-28 17:07:04.0" UUID="4b003b75-9498-4b3a-8da2-6ee2cdd441eb" TEXT="Caroline Is." ABBREVIATEDLABEL="CRL" LABEL="Caroline Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1895" CREATED="2009-01-28 17:07:04.0" UUID="0154a3ee-0118-4cea-9198-91bfb512dcb0" TEXT="Caprivi Strip" ABBREVIATEDLABEL="CPV" LABEL="Caprivi Strip" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1896" CREATED="2009-01-28 17:07:04.0" UUID="9ecae3d5-0841-4fd0-ad75-9b3af0c8b8cf" TEXT="Cape Provinces" ABBREVIATEDLABEL="CPP" LABEL="Cape Provinces" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1897" CREATED="2009-01-28 17:07:04.0" UUID="5fe9a9f6-d224-4e68-a84c-1220369d0908" TEXT="Central American Pacific Is." ABBREVIATEDLABEL="CPI" LABEL="Central American Pacific Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1898" CREATED="2009-01-28 17:07:04.0" UUID="410a9f06-c532-4f27-b79b-3ceb23d3c407" TEXT="Costa Rica" ABBREVIATEDLABEL="COS" LABEL="Costa Rica" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1899" CREATED="2009-01-28 17:07:04.0" UUID="8f568c56-3176-46b2-a7b5-f67dfe452eaa" TEXT="Corse" ABBREVIATEDLABEL="COR" LABEL="Corse" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1900" CREATED="2009-01-28 17:07:04.0" UUID="a286b329-3de6-4395-baed-f3e07bdb7544" TEXT="Cook Is." ABBREVIATEDLABEL="COO" LABEL="Cook Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1901" CREATED="2009-01-28 17:07:04.0" UUID="bf2ec9fd-630f-46a5-aa29-9672cc2188b6" TEXT="Congo" ABBREVIATEDLABEL="CON" LABEL="Congo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1902" CREATED="2009-01-28 17:07:04.0" UUID="8ee842d8-84fd-4cd6-aa74-bc2bc630e071" TEXT="Comoros" ABBREVIATEDLABEL="COM" LABEL="Comoros" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1903" CREATED="2009-01-28 17:07:04.0" UUID="1eb8e19c-209c-4d6d-9428-1b19419dcdbc" TEXT="Colorado" ABBREVIATEDLABEL="COL" LABEL="Colorado" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1904" CREATED="2009-01-28 17:07:04.0" UUID="3e4722ab-be1c-4a25-bbf2-600dd71c8097" TEXT="Canary Is." ABBREVIATEDLABEL="CNY" LABEL="Canary Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1905" CREATED="2009-01-28 17:07:04.0" UUID="19a1e304-1608-487f-8151-afd371d42bcc" TEXT="Connecticut" ABBREVIATEDLABEL="CNT" LABEL="Connecticut" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1906" CREATED="2009-01-28 17:07:04.0" UUID="5a161a98-e200-4786-b477-e37e8fe21369" TEXT="Cameroon" ABBREVIATEDLABEL="CMN" LABEL="Cameroon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1907" CREATED="2009-01-28 17:07:04.0" UUID="31f1f61b-0ce7-44a0-a29a-c73e6fbeafaa" TEXT="Chile South" ABBREVIATEDLABEL="CLS" LABEL="Chile South" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1908" CREATED="2009-01-28 17:07:04.0" UUID="50eef45c-6de9-4e08-82e9-36867def9630" TEXT="Chile North" ABBREVIATEDLABEL="CLN" LABEL="Chile North" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1909" CREATED="2009-01-28 17:07:04.0" UUID="dd4940de-f8f1-4bda-b1fd-d795a7d81b92" TEXT="Colombia" ABBREVIATEDLABEL="CLM" LABEL="Colombia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1910" CREATED="2009-01-28 17:07:04.0" UUID="4f154b4d-c6d2-4da9-a015-fe6312f0616a" TEXT="Chile Central" ABBREVIATEDLABEL="CLC" LABEL="Chile Central" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1911" CREATED="2009-01-28 17:07:04.0" UUID="76384b54-afa0-4b20-a926-b8f21133c7f9" TEXT="Cocos (Keeling) Is." ABBREVIATEDLABEL="CKI" LABEL="Cocos (Keeling) Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1912" CREATED="2009-01-28 17:07:04.0" UUID="70f6f84c-da6c-4809-9af2-4591e15ce00f" TEXT="Xinjiang" ABBREVIATEDLABEL="CHX" LABEL="Xinjiang" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1913" CREATED="2009-01-28 17:07:04.0" UUID="6eae88ff-edb0-4172-981f-a0a5d5c9b79e" TEXT="Tibet" ABBREVIATEDLABEL="CHT" LABEL="Tibet" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1914" CREATED="2009-01-28 17:07:04.0" UUID="b663999c-30fc-4b31-af11-2b9714fd1d60" TEXT="China Southeast" ABBREVIATEDLABEL="CHS" LABEL="China Southeast" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1915" CREATED="2009-01-28 17:07:04.0" UUID="00fac4f1-09a0-4415-b4d0-2dc7dbc37e9b" TEXT="Qinghai" ABBREVIATEDLABEL="CHQ" LABEL="Qinghai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1916" CREATED="2009-01-28 17:07:04.0" UUID="d8ebf145-8f21-441e-bd3f-d719a1f38403" TEXT="China North-Central" ABBREVIATEDLABEL="CHN" LABEL="China North-Central" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1917" CREATED="2009-01-28 17:07:04.0" UUID="efb3ce2f-0a61-4f97-81de-b5a53d3ce053" TEXT="Manchuria" ABBREVIATEDLABEL="CHM" LABEL="Manchuria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1918" CREATED="2009-01-28 17:07:04.0" UUID="8c1569b5-ba29-44d6-a76d-ed7c8c7dc621" TEXT="Inner Mongolia" ABBREVIATEDLABEL="CHI" LABEL="Inner Mongolia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1919" CREATED="2009-01-28 17:07:04.0" UUID="ca0fb300-f3cc-4beb-b2d5-5cee0fb2b7ee" TEXT="Hainan" ABBREVIATEDLABEL="CHH" LABEL="Hainan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1920" CREATED="2009-01-28 17:07:04.0" UUID="68cd8fd6-c07c-4937-a453-92290b333e8f" TEXT="China South-Central" ABBREVIATEDLABEL="CHC" LABEL="China South-Central" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1921" CREATED="2009-01-28 17:07:04.0" UUID="44df1cdf-0ce4-4c61-ad5c-3fcd5aef18ef" TEXT="Chad" ABBREVIATEDLABEL="CHA" LABEL="Chad" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1922" CREATED="2009-01-28 17:07:04.0" UUID="74991e89-501b-423a-af98-7e8d764a925c" TEXT="Chagos Archipelago" ABBREVIATEDLABEL="CGS" LABEL="Chagos Archipelago" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1923" CREATED="2009-01-28 17:07:04.0" UUID="c7025858-90fe-48fa-a7b0-208ca9ae9683" TEXT="Cambodia" ABBREVIATEDLABEL="CBD" LABEL="Cambodia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1924" CREATED="2009-01-28 17:07:04.0" UUID="cb523758-ef38-46bf-96b4-4b1794b2d771" TEXT="Cayman Is." ABBREVIATEDLABEL="CAY" LABEL="Cayman Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1925" CREATED="2009-01-28 17:07:04.0" UUID="59a7c456-1eea-44bf-8dd0-28973ea11379" TEXT="California" ABBREVIATEDLABEL="CAL" LABEL="California" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1926" CREATED="2009-01-28 17:07:04.0" UUID="7c4d000f-22e6-4e39-becf-f6188242853d" TEXT="Central African Republic" ABBREVIATEDLABEL="CAF" LABEL="Central African Republic" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1927" CREATED="2009-01-28 17:07:04.0" UUID="16eecf8c-35c8-4d04-9deb-20b53276d95f" TEXT="Cabinda" ABBREVIATEDLABEL="CAB" LABEL="Cabinda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1928" CREATED="2009-01-28 17:07:04.0" UUID="cd7f48ee-7388-46f2-8b33-9b61908672cc" TEXT="Brazil South" ABBREVIATEDLABEL="BZS" LABEL="Brazil South" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1929" CREATED="2009-01-28 17:07:04.0" UUID="2c8ef356-96c9-412f-9216-9fc9935255a4" TEXT="Brazil North" ABBREVIATEDLABEL="BZN" LABEL="Brazil North" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1930" CREATED="2009-01-28 17:07:04.0" UUID="db2b938e-4380-4e0b-b272-55a2defc470e" TEXT="Brazil Southeast" ABBREVIATEDLABEL="BZL" LABEL="Brazil Southeast" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1931" CREATED="2009-01-28 17:07:04.0" UUID="183c7a98-4fcf-4853-bf21-8e0ff7e0a1da" TEXT="Brazil Northeast" ABBREVIATEDLABEL="BZE" LABEL="Brazil Northeast" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1932" CREATED="2009-01-28 17:07:04.0" UUID="814bbb45-fa08-4c5e-bc09-5dac9e8ede17" TEXT="Brazil West-Central" ABBREVIATEDLABEL="BZC" LABEL="Brazil West-Central" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1933" CREATED="2009-01-28 17:07:04.0" UUID="73098163-cf92-4224-8f57-ae45d6fb4d79" TEXT="Burundi" ABBREVIATEDLABEL="BUR" LABEL="Burundi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1934" CREATED="2009-01-28 17:07:04.0" UUID="9775e1a7-bfbc-4373-ae78-a257182505a0" TEXT="Bulgaria" ABBREVIATEDLABEL="BUL" LABEL="Bulgaria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1935" CREATED="2009-01-28 17:07:04.0" UUID="62360e78-23c2-4e21-a992-85e52b1bbf50" TEXT="Buryatiya" ABBREVIATEDLABEL="BRY" LABEL="Buryatiya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1936" CREATED="2009-01-28 17:07:04.0" UUID="ffa17374-1a85-4c3d-8828-0967575012ca" TEXT="British Columbia" ABBREVIATEDLABEL="BRC" LABEL="British Columbia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1937" CREATED="2009-01-28 17:07:04.0" UUID="d51d8d8b-330c-43fb-9f86-5b2bfc81dcb0" TEXT="Bouvet I." ABBREVIATEDLABEL="BOU" LABEL="Bouvet I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1938" CREATED="2009-01-28 17:07:04.0" UUID="e849d575-7266-4c55-897f-2b569db8afc2" TEXT="Botswana" ABBREVIATEDLABEL="BOT" LABEL="Botswana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1939" CREATED="2009-01-28 17:07:04.0" UUID="8268c25a-0fa8-410f-ab1c-b102b1929206" TEXT="Borneo" ABBREVIATEDLABEL="BOR" LABEL="Borneo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1940" CREATED="2009-01-28 17:07:04.0" UUID="e7b52e8e-3dba-4b9f-9d89-4403ffb20855" TEXT="Bolivia" ABBREVIATEDLABEL="BOL" LABEL="Bolivia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1941" CREATED="2009-01-28 17:07:04.0" UUID="9f18c292-e71f-4427-8172-fc3fcff55411" TEXT="Belize" ABBREVIATEDLABEL="BLZ" LABEL="Belize" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1942" CREATED="2009-01-28 17:07:04.0" UUID="9afdaeb1-40c4-4c41-b090-7ce8dcd4b93d" TEXT="Baltic States" ABBREVIATEDLABEL="BLT" LABEL="Baltic States" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1943" CREATED="2009-01-28 17:07:04.0" UUID="e1d9dcae-f3ab-48aa-a5b5-b1ad3a8064a1" TEXT="Belarus" ABBREVIATEDLABEL="BLR" LABEL="Belarus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1944" CREATED="2009-01-28 17:07:04.0" UUID="a1f3b9e1-1c1e-43fb-9f9c-cbc6657c661b" TEXT="Burkina" ABBREVIATEDLABEL="BKN" LABEL="Burkina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1945" CREATED="2009-01-28 17:07:04.0" UUID="33751e00-9438-4286-a082-cafdacedbc65" TEXT="Bismarck Archipelago" ABBREVIATEDLABEL="BIS" LABEL="Bismarck Archipelago" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1946" CREATED="2009-01-28 17:07:04.0" UUID="b7f2886f-44ec-4bb5-b21c-4d539a74e95f" TEXT="Belgium" ABBREVIATEDLABEL="BGM" LABEL="Belgium" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1947" CREATED="2009-01-28 17:07:04.0" UUID="df276736-946c-43b9-97fb-f6aa140c968a" TEXT="Bermuda" ABBREVIATEDLABEL="BER" LABEL="Bermuda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1948" CREATED="2009-01-28 17:07:04.0" UUID="f29738fa-3e44-48f0-97d7-500b3321ea9f" TEXT="Benin" ABBREVIATEDLABEL="BEN" LABEL="Benin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1949" CREATED="2009-01-28 17:07:04.0" UUID="064d1847-bf76-4844-9182-7650d4d71755" TEXT="Bangladesh" ABBREVIATEDLABEL="BAN" LABEL="Bangladesh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1950" CREATED="2009-01-28 17:07:04.0" UUID="41f0c9a1-1715-4bc6-910e-ab51a8928414" TEXT="Baleares" ABBREVIATEDLABEL="BAL" LABEL="Baleares" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1951" CREATED="2009-01-28 17:07:04.0" UUID="96bb2337-8818-49d3-b833-288913507ac7" TEXT="Bahamas" ABBREVIATEDLABEL="BAH" LABEL="Bahamas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1952" CREATED="2009-01-28 17:07:04.0" UUID="96e65ad5-3d68-4799-9b49-6f54d90eb01b" TEXT="Azores" ABBREVIATEDLABEL="AZO" LABEL="Azores" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1953" CREATED="2009-01-28 17:07:04.0" UUID="29710acc-d55a-4fda-9b6c-a3c000cd44b6" TEXT="Austria" ABBREVIATEDLABEL="AUT" LABEL="Austria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1954" CREATED="2009-01-28 17:07:04.0" UUID="aa147cbf-af78-4a2f-8c31-e65d8e7be436" TEXT="Antipodean Is." ABBREVIATEDLABEL="ATP" LABEL="Antipodean Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1955" CREATED="2009-01-28 17:07:04.0" UUID="818af1bd-826a-498e-bb4c-768d11bde35c" TEXT="Assam" ABBREVIATEDLABEL="ASS" LABEL="Assam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1956" CREATED="2009-01-28 17:07:04.0" UUID="12ffb227-98ab-4e8c-8879-a359df9162d1" TEXT="Amsterdam-St.Paul Is." ABBREVIATEDLABEL="ASP" LABEL="Amsterdam-St.Paul Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1957" CREATED="2009-01-28 17:07:04.0" UUID="65f40d6c-e83b-4768-ab57-aaf82550771e" TEXT="Alaska" ABBREVIATEDLABEL="ASK" LABEL="Alaska" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1958" CREATED="2009-01-28 17:07:04.0" UUID="8cde87df-d2f3-441c-8daa-067b5e4541c8" TEXT="Ascension" ABBREVIATEDLABEL="ASC" LABEL="Ascension" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1959" CREATED="2009-01-28 17:07:04.0" UUID="c1a3506f-69ee-4df5-b09a-f04b275f9306" TEXT="Aruba" ABBREVIATEDLABEL="ARU" LABEL="Aruba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1960" CREATED="2009-01-28 17:07:04.0" UUID="a1d4125f-6854-44cd-ae2b-e6d75f63037d" TEXT="Arkansas" ABBREVIATEDLABEL="ARK" LABEL="Arkansas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1961" CREATED="2009-01-28 17:07:04.0" UUID="b2b5918a-59f3-4240-bb5c-4bcebc723007" TEXT="Arizona" ABBREVIATEDLABEL="ARI" LABEL="Arizona" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1962" CREATED="2009-01-28 17:07:04.0" UUID="905e20e8-cdb4-44db-b690-b87d37e9f554" TEXT="Antarctica" ABBREVIATEDLABEL="ANT" LABEL="Antarctica" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1963" CREATED="2009-01-28 17:07:04.0" UUID="c0143cc5-7b95-43f8-acc2-fdceaf807428" TEXT="Angola" ABBREVIATEDLABEL="ANG" LABEL="Angola" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1964" CREATED="2009-01-28 17:07:04.0" UUID="8fb59b64-eef1-419f-90ec-32052a80c3c6" TEXT="Andaman Is." ABBREVIATEDLABEL="AND" LABEL="Andaman Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1965" CREATED="2009-01-28 17:07:04.0" UUID="4d87632f-b174-498d-a3bb-b10bce0ecff9" TEXT="Amur" ABBREVIATEDLABEL="AMU" LABEL="Amur" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1966" CREATED="2009-01-28 17:07:04.0" UUID="f5bd9144-5f45-4516-aba9-6d3eb2e688b3" TEXT="Aleutian Is." ABBREVIATEDLABEL="ALU" LABEL="Aleutian Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1967" CREATED="2009-01-28 17:07:04.0" UUID="f58d80db-9dc8-4bde-b579-e1c243c94cc3" TEXT="Altay" ABBREVIATEDLABEL="ALT" LABEL="Altay" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1968" CREATED="2009-01-28 17:07:04.0" UUID="5f4ddba8-6d40-4cba-8f75-56957db6dd2c" TEXT="Algeria" ABBREVIATEDLABEL="ALG" LABEL="Algeria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1969" CREATED="2009-01-28 17:07:04.0" UUID="03724563-65a2-4420-963f-d4b1baa41741" TEXT="Aldabra" ABBREVIATEDLABEL="ALD" LABEL="Aldabra" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1970" CREATED="2009-01-28 17:07:04.0" UUID="e22dd7c2-e886-4b79-8789-1c476da563cb" TEXT="Albania" ABBREVIATEDLABEL="ALB" LABEL="Albania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1971" CREATED="2009-01-28 17:07:04.0" UUID="8adc9cb5-8f49-4f9e-b7d7-1dd6dba22541" TEXT="Alabama" ABBREVIATEDLABEL="ALA" LABEL="Alabama" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1972" CREATED="2009-01-28 17:07:04.0" UUID="8ead5d5a-ab74-401a-a1e4-c05cfcd855a3" TEXT="Argentina Northwest" ABBREVIATEDLABEL="AGW" LABEL="Argentina Northwest" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1973" CREATED="2009-01-28 17:07:04.0" UUID="012bbf6f-0b32-4a63-8ae0-e928902dd0c6" TEXT="Argentina South" ABBREVIATEDLABEL="AGS" LABEL="Argentina South" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1974" CREATED="2009-01-28 17:07:04.0" UUID="99342bd9-d2ff-44ed-9f0f-b8d88865454c" TEXT="Argentina Northeast" ABBREVIATEDLABEL="AGE" LABEL="Argentina Northeast" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1975" CREATED="2009-01-28 17:07:04.0" UUID="c9dfed8d-2538-4417-9fae-5911c428b4c4" TEXT="Afghanistan" ABBREVIATEDLABEL="AFG" LABEL="Afghanistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1976" CREATED="2009-01-28 17:07:04.0" UUID="8347fd8a-4eb5-441a-8cf1-f242db4e5b61" TEXT="Alberta" ABBREVIATEDLABEL="ABT" LABEL="Alberta" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1977" CREATED="2009-01-28 17:07:04.0" UUID="ccad69c3-3e46-4138-b48a-778e29917427" TEXT="Antarctic Continent" ABBREVIATEDLABEL="91" LABEL="Antarctic Continent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1978" CREATED="2009-01-28 17:07:04.0" UUID="c2c3dc61-2390-479c-ab6b-f1cb2e78875b" TEXT="Subantarctic Islands" ABBREVIATEDLABEL="90" LABEL="Subantarctic Islands" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1979" CREATED="2009-01-28 17:07:04.0" UUID="24b75758-4dc1-4562-a27a-6c5a3a221594" TEXT="Southern South America" ABBREVIATEDLABEL="85" LABEL="Southern South America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1980" CREATED="2009-01-28 17:07:04.0" UUID="c648f569-44fe-495b-8581-08dbe31d5cee" TEXT="Brazil" ABBREVIATEDLABEL="84" LABEL="Brazil" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1981" CREATED="2009-01-28 17:07:04.0" UUID="4b8f0105-53e8-4438-874b-593c039c543a" TEXT="Western South America" ABBREVIATEDLABEL="83" LABEL="Western South America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1982" CREATED="2009-01-28 17:07:04.0" UUID="971d338b-e07b-45da-b13d-3d3ff747ca92" TEXT="Northern South America" ABBREVIATEDLABEL="82" LABEL="Northern South America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1983" CREATED="2009-01-28 17:07:04.0" UUID="260c9e6c-faba-4037-88a7-71af7832dba6" TEXT="Caribbean" ABBREVIATEDLABEL="81" LABEL="Caribbean" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1984" CREATED="2009-01-28 17:07:04.0" UUID="a057d562-c3bf-4b63-b489-bc4b663cf66b" TEXT="Central America" ABBREVIATEDLABEL="80" LABEL="Central America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1985" CREATED="2009-01-28 17:07:04.0" UUID="cfe46a56-8983-4f42-836f-1b87abcb5628" TEXT="Mexico" ABBREVIATEDLABEL="79" LABEL="Mexico" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1986" CREATED="2009-01-28 17:07:04.0" UUID="6916629f-b15f-4f35-86e1-2ccd2268da70" TEXT="Southeastern U.S.A." ABBREVIATEDLABEL="78" LABEL="Southeastern U.S.A." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1987" CREATED="2009-01-28 17:07:04.0" UUID="9f101792-b20b-486d-87d5-e44f3f4519cc" TEXT="South-Central U.S.A." ABBREVIATEDLABEL="77" LABEL="South-Central U.S.A." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1988" CREATED="2009-01-28 17:07:04.0" UUID="ca5e37b8-7c97-4314-9e3c-a8ce6a97f252" TEXT="Southwestern U.S.A." ABBREVIATEDLABEL="76" LABEL="Southwestern U.S.A." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1989" CREATED="2009-01-28 17:07:04.0" UUID="c93c49bd-7937-4888-b4ef-24addce67b87" TEXT="Northeastern U.S.A." ABBREVIATEDLABEL="75" LABEL="Northeastern U.S.A." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1990" CREATED="2009-01-28 17:07:04.0" UUID="738ab1f2-6e1d-472e-ad86-2faeee713b98" TEXT="North-Central U.S.A." ABBREVIATEDLABEL="74" LABEL="North-Central U.S.A." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1991" CREATED="2009-01-28 17:07:04.0" UUID="d93e22e9-682d-4d2f-bef5-cc56280fab7f" TEXT="Northwestern U.S.A." ABBREVIATEDLABEL="73" LABEL="Northwestern U.S.A." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1992" CREATED="2009-01-28 17:07:04.0" UUID="ccddf33e-4fd0-469e-8fa8-645ed6b47b5c" TEXT="Eastern Canada" ABBREVIATEDLABEL="72" LABEL="Eastern Canada" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1993" CREATED="2009-01-28 17:07:04.0" UUID="affb0bf7-16dd-41a3-b517-1b7c05ff3c42" TEXT="Western Canada" ABBREVIATEDLABEL="71" LABEL="Western Canada" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1994" CREATED="2009-01-28 17:07:04.0" UUID="2a3ed8da-a673-4fe5-b7d2-d8132ceeceae" TEXT="Subarctic America" ABBREVIATEDLABEL="70" LABEL="Subarctic America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1995" CREATED="2009-01-28 17:07:04.0" UUID="25d500b3-c6ed-4eae-8369-f0f5ff71e0a4" TEXT="North-Central Pacific" ABBREVIATEDLABEL="63" LABEL="North-Central Pacific" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1996" CREATED="2009-01-28 17:07:04.0" UUID="63cf4742-0b2d-4ab9-92df-88e813f1b6a1" TEXT="Northwestern Pacific" ABBREVIATEDLABEL="62" LABEL="Northwestern Pacific" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1997" CREATED="2009-01-28 17:07:04.0" UUID="1d5399da-c3ee-4c79-9de4-c8dafea9a34b" TEXT="South-Central Pacific" ABBREVIATEDLABEL="61" LABEL="South-Central Pacific" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1998" CREATED="2009-01-28 17:07:04.0" UUID="7ec5bdf3-beca-47bc-b677-2b1fac4a3f39" TEXT="Southwestern Pacific" ABBREVIATEDLABEL="60" LABEL="Southwestern Pacific" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1999" CREATED="2009-01-28 17:07:04.0" UUID="abca5959-921f-4831-b33f-e16d8f56ae03" TEXT="New Zealand" ABBREVIATEDLABEL="51" LABEL="New Zealand" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2000" CREATED="2009-01-28 17:07:04.0" UUID="390e80d3-9833-4086-bb48-1ee01067ae74" TEXT="Australia" ABBREVIATEDLABEL="50" LABEL="Australia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2001" CREATED="2009-01-28 17:07:04.0" UUID="29a8345f-68a1-4667-be74-d4e0a03177b0" TEXT="Papuasia" ABBREVIATEDLABEL="43" LABEL="Papuasia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2002" CREATED="2009-01-28 17:07:04.0" UUID="4b287e13-d2cf-465f-a04b-ccd615bb1b39" TEXT="Malesia" ABBREVIATEDLABEL="42" LABEL="Malesia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2003" CREATED="2009-01-28 17:07:04.0" UUID="1de5329a-4893-44d1-9d3a-7233025a7788" TEXT="Indo-China" ABBREVIATEDLABEL="41" LABEL="Indo-China" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2004" CREATED="2009-01-28 17:07:04.0" UUID="8496bff1-c2da-46a9-b087-30e86b919bcd" TEXT="Indian Subcontinent" ABBREVIATEDLABEL="40" LABEL="Indian Subcontinent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2005" CREATED="2009-01-28 17:07:04.0" UUID="066cbf94-f4bf-439b-8b1c-6711ff22e6e6" TEXT="Eastern Asia" ABBREVIATEDLABEL="38" LABEL="Eastern Asia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2006" CREATED="2009-01-28 17:07:04.0" UUID="a2c6b9a3-5373-4249-9782-61a8749253fb" TEXT="Mongolia" ABBREVIATEDLABEL="37" LABEL="Mongolia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2007" CREATED="2009-01-28 17:07:04.0" UUID="e5e1d779-3f1d-4319-91e0-24493a323a5d" TEXT="China" ABBREVIATEDLABEL="36" LABEL="China" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2008" CREATED="2009-01-28 17:07:04.0" UUID="5d2fc0f0-f8b7-4751-95d9-b98bfe9b77b9" TEXT="Arabian Peninsula" ABBREVIATEDLABEL="35" LABEL="Arabian Peninsula" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2009" CREATED="2009-01-28 17:07:04.0" UUID="2a45d1ad-edc7-441f-966c-4fd6ba23c9d7" TEXT="Western Asia" ABBREVIATEDLABEL="34" LABEL="Western Asia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2010" CREATED="2009-01-28 17:07:04.0" UUID="e13cbf3f-2232-4444-8151-55df64cb88c1" TEXT="Caucasus" ABBREVIATEDLABEL="33" LABEL="Caucasus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2011" CREATED="2009-01-28 17:07:04.0" UUID="0f14af86-5baa-49d4-9ee0-efe535ead132" TEXT="Middle Asia" ABBREVIATEDLABEL="32" LABEL="Middle Asia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2012" CREATED="2009-01-28 17:07:04.0" UUID="9e240f60-db8c-492b-9ed0-caea41162ca5" TEXT="Russian Far East" ABBREVIATEDLABEL="31" LABEL="Russian Far East" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2013" CREATED="2009-01-28 17:07:04.0" UUID="7ba3fc23-c928-4288-ab41-c2740a648439" TEXT="Siberia" ABBREVIATEDLABEL="30" LABEL="Siberia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2014" CREATED="2009-01-28 17:07:04.0" UUID="76070580-aaa8-48ca-ac70-45331188fec8" TEXT="Western Indian Ocean" ABBREVIATEDLABEL="29" LABEL="Western Indian Ocean" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2015" CREATED="2009-01-28 17:07:04.0" UUID="c066223f-7690-45a1-9cdd-f6611a913b97" TEXT="Middle Atlantic Ocean" ABBREVIATEDLABEL="28" LABEL="Middle Atlantic Ocean" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2016" CREATED="2009-01-28 17:07:04.0" UUID="a7006220-e7a5-4e15-9d4a-c91c9c12f492" TEXT="Southern Africa" ABBREVIATEDLABEL="27" LABEL="Southern Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2017" CREATED="2009-01-28 17:07:04.0" UUID="781e272f-a434-4e83-b134-66977b011dbc" TEXT="South Tropical Africa" ABBREVIATEDLABEL="26" LABEL="South Tropical Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2018" CREATED="2009-01-28 17:07:04.0" UUID="58c5dde5-39ff-4ac6-ad53-8f894b232f1d" TEXT="East Tropical Africa" ABBREVIATEDLABEL="25" LABEL="East Tropical Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2019" CREATED="2009-01-28 17:07:04.0" UUID="803b33f8-542b-4cf9-aa6a-91cc416f8b12" TEXT="Northeast Tropical Africa" ABBREVIATEDLABEL="24" LABEL="Northeast Tropical Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2020" CREATED="2009-01-28 17:07:04.0" UUID="34b7477f-1b97-41d6-ba21-9b3f64ea0d7a" TEXT="West-Central Tropical Africa" ABBREVIATEDLABEL="23" LABEL="West-Central Tropical Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2021" CREATED="2009-01-28 17:07:04.0" UUID="717b84ef-686d-40af-b0a4-c79b4535610a" TEXT="West Tropical Africa" ABBREVIATEDLABEL="22" LABEL="West Tropical Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2022" CREATED="2009-01-28 17:07:04.0" UUID="6c2d579d-66a4-4caa-9d3d-f9c95a5a0078" TEXT="Macaronesia" ABBREVIATEDLABEL="21" LABEL="Macaronesia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2023" CREATED="2009-01-28 17:07:04.0" UUID="b45ea90f-fb52-4b9f-9897-66ca8c30c806" TEXT="Northern Africa" ABBREVIATEDLABEL="20" LABEL="Northern Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2024" CREATED="2009-01-28 17:07:04.0" UUID="519e5628-495b-423d-8d62-594a6f36520c" TEXT="Eastern Europe" ABBREVIATEDLABEL="14" LABEL="Eastern Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2025" CREATED="2009-01-28 17:07:04.0" UUID="59632122-db22-4425-aaa7-8e03e138083e" TEXT="Southeastern Europe" ABBREVIATEDLABEL="13" LABEL="Southeastern Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2026" CREATED="2009-01-28 17:07:04.0" UUID="02d2a641-365a-47c1-a7c6-d364acf70463" TEXT="Southwestern Europe" ABBREVIATEDLABEL="12" LABEL="Southwestern Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2027" CREATED="2009-01-28 17:07:04.0" UUID="19fade52-1b65-4db2-881d-49c15492a696" TEXT="Middle Europe" ABBREVIATEDLABEL="11" LABEL="Middle Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2028" CREATED="2009-01-28 17:07:04.0" UUID="4e8a1da5-d978-4865-b8b5-24e9d516e024" TEXT="Northern Europe" ABBREVIATEDLABEL="10" LABEL="Northern Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2029" CREATED="2009-01-28 17:07:04.0" UUID="4136a52a-ad17-4bac-8a3e-5f1974b607ee" TEXT="Antarctic" ABBREVIATEDLABEL="9" LABEL="Antarctic" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2030" CREATED="2009-01-28 17:07:04.0" UUID="11472879-1255-4f37-b5b3-cfb0619bc61e" TEXT="Southern America" ABBREVIATEDLABEL="8" LABEL="Southern America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2031" CREATED="2009-01-28 17:07:04.0" UUID="49656a4f-df0e-4a37-97f2-cf19a6e05c60" TEXT="Northern America" ABBREVIATEDLABEL="7" LABEL="Northern America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2032" CREATED="2009-01-28 17:07:04.0" UUID="fab5077c-f240-4885-849a-8e18fb617296" TEXT="Pacific" ABBREVIATEDLABEL="6" LABEL="Pacific" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2033" CREATED="2009-01-28 17:07:04.0" UUID="0bb79131-d872-49e2-a354-602975407c6d" TEXT="Australasia" ABBREVIATEDLABEL="5" LABEL="Australasia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2034" CREATED="2009-01-28 17:07:04.0" UUID="fa8f29e2-1b9c-4f43-bdca-fbb99017e843" TEXT="Asia-Tropical" ABBREVIATEDLABEL="4" LABEL="Asia-Tropical" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2035" CREATED="2009-01-28 17:07:04.0" UUID="355acfe5-fda1-4dba-9799-b8099a1e4aa3" TEXT="Asia-Temperate" ABBREVIATEDLABEL="3" LABEL="Asia-Temperate" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2036" CREATED="2009-01-28 17:07:04.0" UUID="954851fc-2d30-4b38-8486-71d0fab6c90f" TEXT="Africa" ABBREVIATEDLABEL="2" LABEL="Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2037" CREATED="2009-01-28 17:07:04.0" UUID="1acf6721-110c-4114-a940-11c71525c0de" TEXT="Europe" ABBREVIATEDLABEL="1" LABEL="Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2038" CREATED="2009-01-28 17:07:06.0" UUID="d1dd71c7-7832-45d1-a74d-6339093522e1" TEXT="eu.etaxonomy.cdm.model.description.PresenceTerm" LABEL="PresenceTerm" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2039" CREATED="2009-01-28 17:07:06.0" UUID="13143e8b-d44b-4afb-b14f-56efc0e8616b" TEXT="endemic for the relevant area" ABBREVIATEDLABEL="e" LABEL="endemic for the relevant area" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2040" CREATED="2009-01-28 17:07:06.0" UUID="99905124-cf94-426e-b994-233b862fbabf" TEXT="introduced: cultivated" ABBREVIATEDLABEL="ic" LABEL="introduced: cultivated" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2041" CREATED="2009-01-28 17:07:06.0" UUID="e5eb017b-64ae-457b-bc62-b68a0b8ac7c9" TEXT="introduced: reported in error" ABBREVIATEDLABEL="if" LABEL="introduced: reported in error" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2042" CREATED="2009-01-28 17:07:06.0" UUID="2a3ca576-35e7-42c5-9537-c1ac34bc0ac2" TEXT="introduced: naturalized" ABBREVIATEDLABEL="in" LABEL="introduced: naturalized" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2043" CREATED="2009-01-28 17:07:06.0" UUID="39de26c8-ec2c-4b1b-958c-1ee57b54c415" TEXT="introduced: adventitious (casual)" ABBREVIATEDLABEL="id" LABEL="introduced: adventitious (casual)" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2044" CREATED="2009-01-28 17:07:06.0" UUID="e0aa8417-c64c-4e07-88f3-ceb04ef9c53e" TEXT="introduced: uncertain degree of naturalisation" ABBREVIATEDLABEL="ip" LABEL="introduced: uncertain degree of naturalisation" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2045" CREATED="2009-01-28 17:07:06.0" UUID="7de33d54-ff52-4c9e-88a2-b9c196d0893e" TEXT="introduced: doubtfully introduced (perhaps cultivated only)" ABBREVIATEDLABEL="id" LABEL="introduced: doubtfully introduced (perhaps cultivated only)" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2046" CREATED="2009-01-28 17:07:06.0" UUID="aeccde77-184c-4dcb-8bd0-4daa703e93c9" TEXT="introduced: formerly introduced" ABBREVIATEDLABEL="ie" LABEL="introduced: formerly introduced" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2047" CREATED="2009-01-28 17:07:06.0" UUID="b4d34d7b-ac7b-406a-b32d-f10d927b682b" TEXT="introduced: presence questionable" ABBREVIATEDLABEL="iq" LABEL="introduced: presence questionable" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2048" CREATED="2009-01-28 17:07:06.0" UUID="33d2ee96-3fb9-474f-b6ac-e18a6a389daa" TEXT="introduced" ABBREVIATEDLABEL="i" LABEL="introduced" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2049" CREATED="2009-01-28 17:07:06.0" UUID="87e50715-bcfc-4390-b3f4-85354d102731" TEXT="cultivated: reported in error" ABBREVIATEDLABEL="cf" LABEL="cultivated: reported in error" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2050" CREATED="2009-01-28 17:07:06.0" UUID="313665e4-b871-4fc5-9137-29015febc793" TEXT="cultivated" ABBREVIATEDLABEL="c" LABEL="cultivated" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2051" CREATED="2009-01-28 17:07:06.0" UUID="2d1fd31f-b5f2-4216-af6f-b6d489951cc7" TEXT="native: reported in error" ABBREVIATEDLABEL="nf" LABEL="native: reported in error" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2052" CREATED="2009-01-28 17:07:06.0" UUID="0804ab42-4ed4-420b-97cb-2d0c9a8eb602" TEXT="native: doubtfully native" ABBREVIATEDLABEL="nd" LABEL="native: doubtfully native" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2053" CREATED="2009-01-28 17:07:06.0" UUID="6b5ec2da-b6f7-4769-aa4e-d5b172761e17" TEXT="native: formerly native" ABBREVIATEDLABEL="ne" LABEL="native: formerly native" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2054" CREATED="2009-01-28 17:07:06.0" UUID="fa63c84a-e009-4ed7-b34a-67c54887650c" TEXT="native: presence questionable" ABBREVIATEDLABEL="nq" LABEL="native: presence questionable" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2055" CREATED="2009-01-28 17:07:06.0" UUID="6b070a2e-7dff-40e9-8817-7f5d90f7c18d" TEXT="native" ABBREVIATEDLABEL="n" LABEL="native" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2056" CREATED="2009-01-28 17:07:06.0" UUID="ab69e335-ef60-4cd0-933a-c7843166161c" TEXT="present" ABBREVIATEDLABEL="p" LABEL="present" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2057" CREATED="2009-01-28 17:07:06.0" UUID="4ac523aa-3ba5-42c9-8771-647df62d76ec" TEXT="eu.etaxonomy.cdm.model.description.AbsenceTerm" LABEL="AbsenceTerm" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2058" CREATED="2009-01-28 17:07:06.0" UUID="3ba4ed3b-e4fb-44c2-8379-5a691a18fe38" TEXT="absent" ABBREVIATEDLABEL="a" LABEL="absent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2059" CREATED="2009-01-28 17:07:06.0" UUID="4c145eea-8f75-4d31-b3cd-54620f0545bd" TEXT="eu.etaxonomy.cdm.model.description.Sex" LABEL="Sex" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2060" CREATED="2009-01-28 17:07:06.0" UUID="9fcf9283-d741-4b76-b242-e815f4b88bab" TEXT="female" ABBREVIATEDLABEL="f" LABEL="female" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2061" CREATED="2009-01-28 17:07:06.0" UUID="e14fa30d-5fd7-4033-9a68-7bbb63b84bdd" TEXT="male" ABBREVIATEDLABEL="m" LABEL="male" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2062" CREATED="2009-01-28 17:07:06.0" UUID="9c1c20d6-b116-4a64-a3f9-c3f038be7b80" TEXT="eu.etaxonomy.cdm.model.occurrence.DerivationEventType" LABEL="DerivationEventType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2063" CREATED="2009-01-28 17:07:06.0" UUID="d316b108-0982-4705-b7f0-b90321832dd6" TEXT="gathering in-situ" ABBREVIATEDLABEL="" LABEL="gathering in-situ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2064" CREATED="2009-01-28 17:07:06.0" UUID="8608b246-8b55-4627-8452-60f3ffdc03b9" TEXT=" &quot;duplicate segregation" ABBREVIATEDLABEL="" LABEL="duplicate segregation" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2065" CREATED="2009-01-28 17:07:06.0" UUID="f4d768e1-b52e-4a0e-998f-f1a5c228c18f" TEXT="tissue sampling" ABBREVIATEDLABEL="" LABEL="tissue sampling" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2066" CREATED="2009-01-28 17:07:06.0" UUID="0f86c871-7d6a-4770-8d99-575d9aa60cd1" TEXT=" &quot;dna extraction" ABBREVIATEDLABEL="" LABEL="dna extraction" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2067" CREATED="2009-01-28 17:07:06.0" UUID="25eb807d-8b3c-4f06-81a0-f751a7e891ca" TEXT=" &quot;sexual reproduction" ABBREVIATEDLABEL="" LABEL="sexual reproduction" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2068" CREATED="2009-01-28 17:07:06.0" UUID="98c44da3-0f2e-4c6f-926f-2a6d3d7a1d9d" TEXT="duplicate" ABBREVIATEDLABEL="" LABEL="duplicate" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2069" CREATED="2009-01-28 17:07:06.0" UUID="8ab32f75-1c03-4659-9aab-722c97b315a0" TEXT=" &quot;accessioning" ABBREVIATEDLABEL="" LABEL="accessioning" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2070" CREATED="2009-01-28 17:07:06.0" UUID="7a3c0c72-88b3-41ba-a955-72e17696497e" TEXT=" &quot;vegetative propagation" ABBREVIATEDLABEL="" LABEL="vegetative propagation" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2071" CREATED="2009-01-28 17:07:06.0" UUID="b650a1b0-2196-47ed-b998-27ed3ee2d663" TEXT="eu.etaxonomy.cdm.model.occurrence.PreservationMethod" LABEL="PreservationMethod" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2072" CREATED="2009-01-28 17:07:06.0" UUID="e3d475ee-00ce-4963-acc1-001b8c703284" TEXT="eu.etaxonomy.cdm.model.occurrence.DeterminationModifier" LABEL="DeterminationModifier" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2073" CREATED="2009-01-28 17:07:06.0" UUID="f4942c21-ef04-4e2c-a390-2aa8cf1e1ef2" TEXT="eu.etaxonomy.cdm.model.description.StatisticalMeasure" LABEL="StatisticalMeasure" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2074" CREATED="2009-01-28 17:07:06.0" UUID="fe5801b3-5396-48a5-8aad-386f4f8a9e1e" TEXT="" ABBREVIATEDLABEL="" LABEL="Max" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2075" CREATED="2009-01-28 17:07:06.0" UUID="70bf7727-8632-4c81-96c8-367001e3b84d" TEXT="" ABBREVIATEDLABEL="" LABEL="SampleSize" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2076" CREATED="2009-01-28 17:07:06.0" UUID="60f47628-8be9-4b3f-b256-49b5c074af13" TEXT="" ABBREVIATEDLABEL="" LABEL="Average" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2077" CREATED="2009-01-28 17:07:06.0" UUID="ccce5efa-d2cb-47f8-bbc3-fa171da508dc" TEXT="" ABBREVIATEDLABEL="" LABEL="TypicalUpperBoundary" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2078" CREATED="2009-01-28 17:07:06.0" UUID="11fb208e-bc3e-417a-afac-2c6416e60a46" TEXT="" ABBREVIATEDLABEL="" LABEL="StandardDeviation" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2079" CREATED="2009-01-28 17:07:06.0" UUID="236963d0-f863-4faf-b463-9a4723133635" TEXT="" ABBREVIATEDLABEL="" LABEL="TypicalLowerBoundary" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2080" CREATED="2009-01-28 17:07:06.0" UUID="b3f49565-fd20-4c66-a25b-35009e4ff16a" TEXT="" ABBREVIATEDLABEL="" LABEL="Variance" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2081" CREATED="2009-01-28 17:07:06.0" UUID="1dca8240-f5d0-427b-8379-ee6d4f40d719" TEXT="" ABBREVIATEDLABEL="" LABEL="Min" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2082" CREATED="2009-01-28 17:07:06.0" UUID="7dc2410e-834f-4d21-a12f-d2439a96fd03" TEXT="eu.etaxonomy.cdm.model.media.RightsType" LABEL="RightsTerm" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2083" CREATED="2009-01-28 17:07:06.0" UUID="ec1d903d-4c14-43f9-84e2-c4d3e47d8cd0" TEXT="" ABBREVIATEDLABEL="" LABEL="license" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2084" CREATED="2009-01-28 17:07:06.0" UUID="faa0537a-0740-47c6-8c93-d7aac8697e32" TEXT="" ABBREVIATEDLABEL="" LABEL="access rights" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2085" CREATED="2009-01-28 17:07:06.0" UUID="2827e22f-340d-45fe-94ee-544e2b22d585" TEXT="" ABBREVIATEDLABEL="" LABEL="copyright" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION_ANNOTATION/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="1" CREATED="2009-01-28 17:07:03.0" UUID="45ac7043-7f5e-4f37-92f2-3874aaaef2de" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.common.Language"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="2" CREATED="2009-01-28 17:07:04.0" UUID="e72cbcb6-58f8-4201-9774-15d0c6abc128" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.location.Continent"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="3" CREATED="2009-01-28 17:07:04.0" UUID="006b1870-7347-4624-990f-e5ed78484a1a" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.location.WaterbodyOrCountry"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="4" CREATED="2009-01-28 17:07:04.0" UUID="ef0d1ce1-26e3-4e83-b47b-ca74eed40b1b" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.name.Rank"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="5" CREATED="2009-01-28 17:07:04.0" UUID="ab177bd7-d3c8-4e58-a388-226fff6ba3c2" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.name.TypeDesignationStatus"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="6" CREATED="2009-01-28 17:07:04.0" UUID="bb28cdca-2f8a-4f11-9c21-517e9ae87f1f" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.name.NomenclaturalStatusType"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="7" CREATED="2009-01-28 17:07:04.0" UUID="48917fde-d083-4659-b07d-413db843bd50" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.taxon.SynonymType"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="8" CREATED="2009-01-28 17:07:04.0" UUID="fc4abe52-9c25-4cfa-a682-8615bf4bbf07" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.name.HybridRelationshipType"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="9" CREATED="2009-01-28 17:07:04.0" UUID="6878cb82-c1a4-4613-b012-7e73b413c8cd" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.name.NameRelationshipType"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="10" CREATED="2009-01-28 17:07:04.0" UUID="15db0cf7-7afc-4a86-a7d4-221c73b0c9ac" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="11" CREATED="2009-01-28 17:07:04.0" UUID="19dffff7-e142-429c-a420-5d28e4ebe305" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.common.MarkerType"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="12" CREATED="2009-01-28 17:07:04.0" UUID="ca04609b-1ba0-4d31-9c2e-aa8eb2f4e62d" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.common.AnnotationType"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="13" CREATED="2009-01-28 17:07:04.0" UUID="e51d52d6-965b-4f7d-900f-4ba9c6f5dd33" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.location.NamedAreaType"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="14" CREATED="2009-01-28 17:07:04.0" UUID="49034253-27c8-4219-97e8-f8d987d3d122" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.location.NamedAreaLevel"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="15" CREATED="2009-01-28 17:07:04.0" UUID="fa032b1a-1ad2-4fb0-a1d9-3016399a80fa" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.name.NomenclaturalCode"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="16" CREATED="2009-01-28 17:07:04.0" UUID="b187d555-f06f-4d65-9e53-da7c93f8eaa8" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.description.Feature"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="17" CREATED="2009-01-28 17:07:04.0" UUID="1fb40504-d1d7-44b0-9731-374fbe6cac77" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.location.NamedArea"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="18" CREATED="2009-01-28 17:07:06.0" UUID="adbbbe15-c4d3-47b7-80a8-c7d104e53a05" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.description.PresenceTerm"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="19" CREATED="2009-01-28 17:07:06.0" UUID="5cd438c8-a8a1-4958-842e-169e83e2ceee" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.description.AbsenceTerm"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="20" CREATED="2009-01-28 17:07:06.0" UUID="9718b7dd-8bc0-4cad-be57-3c54d4d432fe" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.description.Sex"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="21" CREATED="2009-01-28 17:07:06.0" UUID="398b50bb-348e-4fe0-a7f5-a75afd846d1f" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.occurrence.DerivationEventType"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="22" CREATED="2009-01-28 17:07:06.0" UUID="a7dc20c9-e6b3-459e-8f05-8d6d8fceb465" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.occurrence.PreservationMethod"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="23" CREATED="2009-01-28 17:07:06.0" UUID="fe87ea8d-6e0a-4e5d-b0da-0ab8ea67ca77" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.occurrence.DeterminationModifier"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="24" CREATED="2009-01-28 17:07:06.0" UUID="066cc62e-7213-495e-a020-97a1233bc037" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.description.StatisticalMeasure"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="25" CREATED="2009-01-28 17:07:06.0" UUID="8627c526-73af-44d9-902c-11c1f11b60b4" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.media.RightsType"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="1" REPRESENTATIONS_ID="1"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="2" REPRESENTATIONS_ID="487"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="3" REPRESENTATIONS_ID="497"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="4" REPRESENTATIONS_ID="747"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="5" REPRESENTATIONS_ID="810"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="6" REPRESENTATIONS_ID="827"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="7" REPRESENTATIONS_ID="852"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="8" REPRESENTATIONS_ID="859"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="9" REPRESENTATIONS_ID="868"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="10" REPRESENTATIONS_ID="889"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="11" REPRESENTATIONS_ID="944"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="12" REPRESENTATIONS_ID="949"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="13" REPRESENTATIONS_ID="952"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="14" REPRESENTATIONS_ID="955"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="15" REPRESENTATIONS_ID="965"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="16" REPRESENTATIONS_ID="971"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="17" REPRESENTATIONS_ID="998"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="18" REPRESENTATIONS_ID="2038"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="19" REPRESENTATIONS_ID="2057"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="20" REPRESENTATIONS_ID="2059"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="21" REPRESENTATIONS_ID="2062"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="22" REPRESENTATIONS_ID="2071"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="23" REPRESENTATIONS_ID="2072"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="24" REPRESENTATIONS_ID="2073"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="25" REPRESENTATIONS_ID="2082"/>\r
-</dataset>\r
diff --git a/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/database/TermsDataSet.xml b/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/database/TermsDataSet.xml
deleted file mode 100644 (file)
index 5b0e3cf..0000000
+++ /dev/null
@@ -1,6447 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>\r
-<dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="./schema/dataset.dtd">\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="1" CREATED="2009-01-28 17:07:03.0" UUID="ae787603-3070-4298-9ca6-4cbe73378122" URI="" ISO639_1="" ISO639_2="khi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="2" CREATED="2009-01-28 17:07:03.0" UUID="b40cc17a-b05e-4f7b-a3a1-cbf396b79c5e" URI="" ISO639_1="" ISO639_2="sai" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="3" CREATED="2009-01-28 17:07:03.0" UUID="45d05a7a-ee78-462c-a177-6fd743cf4d03" URI="" ISO639_1="ca" ISO639_2="cat" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="4" CREATED="2009-01-28 17:07:03.0" UUID="53fc1b5e-64c4-41ac-8a97-60507a1983fc" URI="" ISO639_1="" ISO639_2="pra" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="5" CREATED="2009-01-28 17:07:03.0" UUID="fb7421ea-d446-410f-8ef2-3cd125256463" URI="" ISO639_1="to" ISO639_2="ton" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="6" CREATED="2009-01-28 17:07:03.0" UUID="a29e944f-162f-46c1-bea9-3e472c5d5b48" URI="" ISO639_1="gl" ISO639_2="glg" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="7" CREATED="2009-01-28 17:07:03.0" UUID="c3017b5f-b1e0-4c8e-ad92-a92227f0230f" URI="" ISO639_1="" ISO639_2="tyv" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="8" CREATED="2009-01-28 17:07:03.0" UUID="09c912c2-06e0-45d5-911c-302447e24baa" URI="" ISO639_1="uk" ISO639_2="ukr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="9" CREATED="2009-01-28 17:07:03.0" UUID="f5199701-8265-492f-bbce-5d545642120d" URI="" ISO639_1="" ISO639_2="chk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="10" CREATED="2009-01-28 17:07:03.0" UUID="97b1d73a-2f45-4955-b6ee-2047326a8453" URI="" ISO639_1="" ISO639_2="rup" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="11" CREATED="2009-01-28 17:07:03.0" UUID="4f6854d1-f650-4278-9f9e-2c41d9866852" URI="" ISO639_1="" ISO639_2="alt" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="12" CREATED="2009-01-28 17:07:03.0" UUID="d051c901-fc8c-4a72-bffb-a9a7ca8f5cc4" URI="" ISO639_1="" ISO639_2="hil" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="13" CREATED="2009-01-28 17:07:03.0" UUID="ea9a2d74-f0cc-4271-93cd-f591db4efcb7" URI="" ISO639_1="" ISO639_2="jbo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="14" CREATED="2009-01-28 17:07:03.0" UUID="92f1ab72-f760-4a86-b7d6-0859c7961159" URI="" ISO639_1="" ISO639_2="mis" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="15" CREATED="2009-01-28 17:07:03.0" UUID="45e52b16-61b0-4b86-92ba-7f290dbb39b3" URI="" ISO639_1="da" ISO639_2="dan" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="16" CREATED="2009-01-28 17:07:03.0" UUID="f7c2ac83-079f-46c8-a2ca-e914e915d5a4" URI="" ISO639_1="" ISO639_2="tig" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="17" CREATED="2009-01-28 17:07:03.0" UUID="b8abe85d-b486-4951-a523-5278bda2aec1" URI="" ISO639_1="ss" ISO639_2="ssw" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="18" CREATED="2009-01-28 17:07:03.0" UUID="3499eab3-428c-48a5-9c1c-f951a2d3fa40" URI="" ISO639_1="" ISO639_2="kok" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="19" CREATED="2009-01-28 17:07:03.0" UUID="38060cd9-8d47-4a61-bf33-333583c8fef1" URI="" ISO639_1="eo" ISO639_2="epo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="20" CREATED="2009-01-28 17:07:03.0" UUID="2b024ede-442e-4915-9cce-9e61fa0f3574" URI="" ISO639_1="" ISO639_2="bin" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="21" CREATED="2009-01-28 17:07:03.0" UUID="82624381-8969-4d4b-a0d3-802d84dbc5b0" URI="" ISO639_1="" ISO639_2="yap" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="22" CREATED="2009-01-28 17:07:03.0" UUID="37230e36-55f9-4ba7-a191-703ab5a5e860" URI="" ISO639_1="" ISO639_2="kac" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="23" CREATED="2009-01-28 17:07:03.0" UUID="fdd6cb21-e42f-4fb4-a8c5-bb6bc0d0073b" URI="" ISO639_1="" ISO639_2="ilo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="24" CREATED="2009-01-28 17:07:03.0" UUID="64ebceaa-4aa8-48a2-ae9a-95c862c37a50" URI="" ISO639_1="" ISO639_2="got" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="25" CREATED="2009-01-28 17:07:03.0" UUID="e25fbf49-c4a1-4c98-944c-3999d3dc9b51" URI="" ISO639_1="" ISO639_2="ber" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="26" CREATED="2009-01-28 17:07:03.0" UUID="49cb27e4-bd94-422e-9a9a-26b5b05371d7" URI="" ISO639_1="" ISO639_2="gon" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="27" CREATED="2009-01-28 17:07:03.0" UUID="a3504321-79ed-4d5d-9cbb-9e354084055b" URI="" ISO639_1="kl" ISO639_2="kal" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="28" CREATED="2009-01-28 17:07:03.0" UUID="7ea5af43-3438-4d44-abd0-e9fa298e6049" URI="" ISO639_1="" ISO639_2="mag" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="29" CREATED="2009-01-28 17:07:03.0" UUID="1ea1a358-539a-4b2a-a5fe-2e184f272c6a" URI="" ISO639_1="" ISO639_2="arw" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="30" CREATED="2009-01-28 17:07:03.0" UUID="5e8ddd48-cc3f-48a8-9c1a-ec6e11409b17" URI="" ISO639_1="jv" ISO639_2="jav" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="31" CREATED="2009-01-28 17:07:03.0" UUID="00d6849c-fe18-4b60-98b2-403f376ba884" URI="" ISO639_1="" ISO639_2="arc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="32" CREATED="2009-01-28 17:07:03.0" UUID="7f8f18e9-dbc4-482e-a8cc-160d58823fd6" URI="" ISO639_1="kr" ISO639_2="kau" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="33" CREATED="2009-01-28 17:07:03.0" UUID="7d6068b3-5980-4e3e-82b0-58be20ea01b7" URI="" ISO639_1="" ISO639_2="luo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="34" CREATED="2009-01-28 17:07:03.0" UUID="7330bcfc-0b4c-4c96-b3f8-4585fde000f5" URI="" ISO639_1="" ISO639_2="grc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="35" CREATED="2009-01-28 17:07:03.0" UUID="cceeeeba-158f-4b18-916a-a329cb03414e" URI="" ISO639_1="" ISO639_2="cad" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="36" CREATED="2009-01-28 17:07:03.0" UUID="1f763527-0257-4991-b669-214c4c2a972d" URI="" ISO639_1="" ISO639_2="tem" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="37" CREATED="2009-01-28 17:07:03.0" UUID="08ac9207-e338-46cd-aef3-3e49b7b34df9" URI="" ISO639_1="is" ISO639_2="ice" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="38" CREATED="2009-01-28 17:07:03.0" UUID="fecbf0c7-fea9-465b-8a16-950517c5c0c4" URI="" ISO639_1="it" ISO639_2="ita" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="39" CREATED="2009-01-28 17:07:03.0" UUID="78dc9e98-f56a-4bca-b791-8fe159183858" URI="" ISO639_1="" ISO639_2="kar" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="40" CREATED="2009-01-28 17:07:03.0" UUID="e4bf2ec8-4c1a-4ece-9df1-4890a7f18457" URI="" ISO639_1="" ISO639_2="zza" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="41" CREATED="2009-01-28 17:07:03.0" UUID="39c5ae60-ace7-4525-a85b-47edb11f5de6" URI="" ISO639_1="" ISO639_2="doi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="42" CREATED="2009-01-28 17:07:03.0" UUID="da124f07-db02-47b9-b699-df08142a3d3c" URI="" ISO639_1="" ISO639_2="moh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="43" CREATED="2009-01-28 17:07:03.0" UUID="7c080971-7a7e-460a-a772-66790e91ac35" URI="" ISO639_1="lt" ISO639_2="lit" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="44" CREATED="2009-01-28 17:07:03.0" UUID="f5a3dd7e-d3ff-4db2-8213-5fb36faad4e6" URI="" ISO639_1="" ISO639_2="chm" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="45" CREATED="2009-01-28 17:07:03.0" UUID="2bf7a818-8b18-4693-91d0-6aa87808de79" URI="" ISO639_1="" ISO639_2="ypk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="46" CREATED="2009-01-28 17:07:03.0" UUID="beb5c17f-d561-40ca-8ed9-4a643ea10f63" URI="" ISO639_1="" ISO639_2="bua" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="47" CREATED="2009-01-28 17:07:03.0" UUID="93c45f3f-4bf9-4732-a1fe-da32d28cd4a2" URI="" ISO639_1="" ISO639_2="dar" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="48" CREATED="2009-01-28 17:07:03.0" UUID="8f78143c-854a-40b3-85e7-51d9f202c7b7" URI="" ISO639_1="" ISO639_2="lus" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="49" CREATED="2009-01-28 17:07:03.0" UUID="7e7f3bdb-3131-4428-a352-690f72196050" URI="" ISO639_1="io" ISO639_2="ido" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="50" CREATED="2009-01-28 17:07:03.0" UUID="f5977654-d71b-4ff1-96cb-d2130e978aef" URI="" ISO639_1="" ISO639_2="frr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="51" CREATED="2009-01-28 17:07:03.0" UUID="093412de-4e67-4413-9423-90e273408076" URI="" ISO639_1="km" ISO639_2="khm" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="52" CREATED="2009-01-28 17:07:03.0" UUID="89189a82-18ff-4385-aa92-200b12692760" URI="" ISO639_1="" ISO639_2="roa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="53" CREATED="2009-01-28 17:07:03.0" UUID="374814fe-1c3d-46aa-9a95-e8d5fe7108e8" URI="" ISO639_1="" ISO639_2="bra" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="54" CREATED="2009-01-28 17:07:03.0" UUID="01706d2f-e221-4ade-95f2-1942d050bb94" URI="" ISO639_1="" ISO639_2="kab" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="55" CREATED="2009-01-28 17:07:03.0" UUID="62ff33ff-a2e4-4cc0-bc77-477647dedec0" URI="" ISO639_1="" ISO639_2="krl" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="56" CREATED="2009-01-28 17:07:03.0" UUID="bce2b666-d77c-4f49-a3c6-7e5cebb6cb79" URI="" ISO639_1="iu" ISO639_2="iku" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="57" CREATED="2009-01-28 17:07:03.0" UUID="b8d0e46b-fc62-471c-aaee-e2580e60439b" URI="" ISO639_1="ne" ISO639_2="nep" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="58" CREATED="2009-01-28 17:07:03.0" UUID="ee8e984e-03d5-4aa7-aa52-95b014b2c7a2" URI="" ISO639_1="" ISO639_2="cpf" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="59" CREATED="2009-01-28 17:07:03.0" UUID="876ed782-f285-4395-b4d9-c8871a18e822" URI="" ISO639_1="" ISO639_2="bla" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="60" CREATED="2009-01-28 17:07:03.0" UUID="fa73c1f6-c1b1-4f8f-98a1-8bbd0aaf2f33" URI="" ISO639_1="" ISO639_2="mad" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="61" CREATED="2009-01-28 17:07:03.0" UUID="87f46e66-852a-442e-b6b1-e3cec6a398e6" URI="" ISO639_1="" ISO639_2="mdf" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="62" CREATED="2009-01-28 17:07:03.0" UUID="813810e4-96c9-43a5-9114-383506a33b46" URI="" ISO639_1="" ISO639_2="tlh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="63" CREATED="2009-01-28 17:07:03.0" UUID="f529fd4c-0d3f-481b-a35c-1bf26fff80da" URI="" ISO639_1="" ISO639_2="mic" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="64" CREATED="2009-01-28 17:07:03.0" UUID="adf29c75-6b22-4fe0-a0ce-d1c2c8259ead" URI="" ISO639_1="" ISO639_2="ota" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="65" CREATED="2009-01-28 17:07:03.0" UUID="27dab6b2-23c2-4101-bd6c-9980d09939d3" URI="" ISO639_1="" ISO639_2="arn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="66" CREATED="2009-01-28 17:07:03.0" UUID="99a4a641-f292-464e-8ef0-7480dd2e3d95" URI="" ISO639_1="" ISO639_2="kum" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="67" CREATED="2009-01-28 17:07:03.0" UUID="f42c6f52-1a3c-4965-8dfa-2c828463741c" URI="" ISO639_1="" ISO639_2="gez" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="68" CREATED="2009-01-28 17:07:03.0" UUID="8b4f894a-dac4-4a0a-957c-6ca9c5081672" URI="" ISO639_1="" ISO639_2="bnt" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="69" CREATED="2009-01-28 17:07:03.0" UUID="31244589-2ac5-4b61-be85-2cea16991204" URI="" ISO639_1="" ISO639_2="him" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="70" CREATED="2009-01-28 17:07:03.0" UUID="46328a2f-4042-4897-9340-009c3635adc7" URI="" ISO639_1="" ISO639_2="mak" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="71" CREATED="2009-01-28 17:07:03.0" UUID="dc4f5a15-8b94-47d4-bd3e-22c8b79e22af" URI="" ISO639_1="" ISO639_2="bik" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="72" CREATED="2009-01-28 17:07:03.0" UUID="555a247e-05d3-4bb1-b497-d4ecf3dea075" URI="" ISO639_1="" ISO639_2="mos" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="73" CREATED="2009-01-28 17:07:03.0" UUID="4fb5c849-a07a-4a5c-9886-4d957605d600" URI="" ISO639_1="" ISO639_2="bho" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="74" CREATED="2009-01-28 17:07:03.0" UUID="bc2b8d06-94f8-4ddb-a4ad-769105868b73" URI="" ISO639_1="" ISO639_2="frm" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="75" CREATED="2009-01-28 17:07:03.0" UUID="4aad4259-7541-40e3-9954-a36ec49497ce" URI="" ISO639_1="oc" ISO639_2="oci" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="76" CREATED="2009-01-28 17:07:03.0" UUID="4c7b08e5-1637-4b59-ad47-9c6a22e21eb1" URI="" ISO639_1="ti" ISO639_2="tir" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="77" CREATED="2009-01-28 17:07:03.0" UUID="091cc8f8-681c-4ce8-b9c4-d451fe13c024" URI="" ISO639_1="" ISO639_2="jpr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="78" CREATED="2009-01-28 17:07:03.0" UUID="cc6f53cb-5b8b-47a3-9faf-ba6dbde58941" URI="" ISO639_1="ps" ISO639_2="pus" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="79" CREATED="2009-01-28 17:07:03.0" UUID="01ea9821-6ccc-4547-bc0a-9bff15be7f98" URI="" ISO639_1="an" ISO639_2="arg" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="80" CREATED="2009-01-28 17:07:03.0" UUID="1b48a41b-cbf3-4041-b567-4782c854b41e" URI="" ISO639_1="el" ISO639_2="gre" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="81" CREATED="2009-01-28 17:07:03.0" UUID="66f7ed40-4391-4c81-9785-539ec7c79249" URI="" ISO639_1="kk" ISO639_2="kaz" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="82" CREATED="2009-01-28 17:07:03.0" UUID="efc8cc48-268c-4083-93cd-c8cf282c83b6" URI="" ISO639_1="za" ISO639_2="zha" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="83" CREATED="2009-01-28 17:07:03.0" UUID="6574b007-bc42-4ee2-9051-de3d2655578f" URI="" ISO639_1="" ISO639_2="crh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="84" CREATED="2009-01-28 17:07:03.0" UUID="8331f629-647d-4646-a413-e57c5f7e21a4" URI="" ISO639_1="" ISO639_2="sem" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="85" CREATED="2009-01-28 17:07:03.0" UUID="79c5e0f8-7abf-4ca0-9d35-59a2448b9fc8" URI="" ISO639_1="" ISO639_2="art" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="86" CREATED="2009-01-28 17:07:03.0" UUID="0b9fbbfa-b8e6-4d4d-a90d-a4988f6c3531" URI="" ISO639_1="lo" ISO639_2="lao" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="87" CREATED="2009-01-28 17:07:03.0" UUID="98468d65-43d7-41fc-b4b0-e1d1aacff950" URI="" ISO639_1="vi" ISO639_2="vie" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="88" CREATED="2009-01-28 17:07:03.0" UUID="53264953-1c1f-4314-a600-c8d399505dbb" URI="" ISO639_1="mr" ISO639_2="mar" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="89" CREATED="2009-01-28 17:07:03.0" UUID="591bb9ab-2e86-4583-b363-cbc8ed70be20" URI="" ISO639_1="" ISO639_2="sah" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="90" CREATED="2009-01-28 17:07:03.0" UUID="246fff28-776c-4ef3-a163-f43eb28cc348" URI="" ISO639_1="ve" ISO639_2="ven" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="91" CREATED="2009-01-28 17:07:03.0" UUID="45c36762-b9e2-4696-8924-500f9e50b198" URI="" ISO639_1="su" ISO639_2="sun" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="92" CREATED="2009-01-28 17:07:03.0" UUID="8688cf91-11fe-4395-a7f8-bf22017d99d8" URI="" ISO639_1="bm" ISO639_2="bam" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="93" CREATED="2009-01-28 17:07:03.0" UUID="b52f5fcf-16fe-4641-8e42-642d95c1da36" URI="" ISO639_1="kg" ISO639_2="kon" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="94" CREATED="2009-01-28 17:07:03.0" UUID="c52c53b4-26b1-4bfe-8da1-eb958561dc11" URI="" ISO639_1="" ISO639_2="map" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="95" CREATED="2009-01-28 17:07:03.0" UUID="28b0d5f1-d82b-4dc1-a778-f58331f48b3b" URI="" ISO639_1="" ISO639_2="tvl" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="96" CREATED="2009-01-28 17:07:03.0" UUID="16aac6c9-cefc-49d6-a8b9-c35f27b68c0d" URI="" ISO639_1="" ISO639_2="raj" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="97" CREATED="2009-01-28 17:07:03.0" UUID="d9ed469d-9a2d-42e2-b23d-a09cdd8b53c5" URI="" ISO639_1="eu" ISO639_2="baq" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="98" CREATED="2009-01-28 17:07:03.0" UUID="543a305e-1edb-4405-9c24-4305a187dc84" URI="" ISO639_1="ky" ISO639_2="kir" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="99" CREATED="2009-01-28 17:07:03.0" UUID="0888079f-587e-4c3b-af63-97990e27c368" URI="" ISO639_1="ab" ISO639_2="abk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="100" CREATED="2009-01-28 17:07:03.0" UUID="efae63c3-f627-47a4-9e2d-8d5924662d1f" URI="" ISO639_1="nb" ISO639_2="nob" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="101" CREATED="2009-01-28 17:07:03.0" UUID="07dfe9e0-8cbf-44fb-8722-397355b7c247" URI="" ISO639_1="te" ISO639_2="tel" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="102" CREATED="2009-01-28 17:07:03.0" UUID="ed2ea195-a502-4835-948a-8fa00ef6930d" URI="" ISO639_1="" ISO639_2="sad" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="103" CREATED="2009-01-28 17:07:03.0" UUID="e2141d42-40ea-4eb8-87c7-54faa88526d5" URI="" ISO639_1="sa" ISO639_2="san" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="104" CREATED="2009-01-28 17:07:03.0" UUID="e6000995-1f07-4dea-8cf6-aad23c8b513f" URI="" ISO639_1="" ISO639_2="krc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="105" CREATED="2009-01-28 17:07:03.0" UUID="706ce687-ceae-4664-b977-acbcf6a68241" URI="" ISO639_1="" ISO639_2="pap" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="106" CREATED="2009-01-28 17:07:03.0" UUID="fe362c53-8790-4bdf-9372-eb0e90e5b4aa" URI="" ISO639_1="" ISO639_2="tet" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="107" CREATED="2009-01-28 17:07:03.0" UUID="de64fb4d-9bb7-494f-973d-90a91338e3e2" URI="" ISO639_1="" ISO639_2="nah" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="108" CREATED="2009-01-28 17:07:03.0" UUID="8b0a01ec-7c13-4ab8-8fe8-49046a6b1595" URI="" ISO639_1="" ISO639_2="rar" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="109" CREATED="2009-01-28 17:07:03.0" UUID="32c5f396-e6dc-49c3-bba5-79faeacac765" URI="" ISO639_1="" ISO639_2="pal" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="110" CREATED="2009-01-28 17:07:03.0" UUID="fe22c65f-3bd7-491c-a067-c2ab111adf29" URI="" ISO639_1="mo" ISO639_2="mol" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="111" CREATED="2009-01-28 17:07:03.0" UUID="fe08a3f9-256c-4eb8-849f-867682d243d1" URI="" ISO639_1="" ISO639_2="zbl" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="112" CREATED="2009-01-28 17:07:03.0" UUID="2f57ca56-69fe-4713-88d2-2d0d3744bf81" URI="" ISO639_1="co" ISO639_2="cos" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="113" CREATED="2009-01-28 17:07:03.0" UUID="eca9d6fc-08fa-4c43-9fbb-2348baf75d77" URI="" ISO639_1="ii" ISO639_2="iii" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="114" CREATED="2009-01-28 17:07:03.0" UUID="d7e8d6f1-9ded-4984-a5e6-2cd87734cfa1" URI="" ISO639_1="av" ISO639_2="ava" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="115" CREATED="2009-01-28 17:07:03.0" UUID="548e5159-98ce-49a8-bcce-b83f77790005" URI="" ISO639_1="" ISO639_2="ira" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="116" CREATED="2009-01-28 17:07:03.0" UUID="4fed61b5-fef3-4e4c-8a45-360645a3b504" URI="" ISO639_1="" ISO639_2="elx" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="117" CREATED="2009-01-28 17:07:03.0" UUID="7f822594-8e97-456b-8e47-a421f557f222" URI="" ISO639_1="cr" ISO639_2="cre" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="118" CREATED="2009-01-28 17:07:03.0" UUID="514ab40c-1fa9-44ba-8af0-f432a20305fe" URI="" ISO639_1="cv" ISO639_2="chv" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="119" CREATED="2009-01-28 17:07:03.0" UUID="873e34fd-8f43-4df0-a8cc-03f0666262c2" URI="" ISO639_1="bn" ISO639_2="ben" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="120" CREATED="2009-01-28 17:07:03.0" UUID="cdba1ceb-868f-4672-9afe-0f63f30b60e8" URI="" ISO639_1="" ISO639_2="lun" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="121" CREATED="2009-01-28 17:07:03.0" UUID="928a8b3f-baaf-4106-a8b2-8611af982fbc" URI="" ISO639_1="" ISO639_2="kbd" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="122" CREATED="2009-01-28 17:07:03.0" UUID="c8f0c497-0328-4a68-b4b5-296da91875a6" URI="" ISO639_1="sm" ISO639_2="smo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="123" CREATED="2009-01-28 17:07:03.0" UUID="ce883d86-d6e9-427e-b79d-52b4df25d451" URI="" ISO639_1="ht" ISO639_2="hat" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="124" CREATED="2009-01-28 17:07:03.0" UUID="f86fb9c0-2557-4457-8c5f-85629361dfaa" URI="" ISO639_1="" ISO639_2="day" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="125" CREATED="2009-01-28 17:07:03.0" UUID="4c8f21cf-b84b-4ce2-a1e5-755e6c9762a7" URI="" ISO639_1="" ISO639_2="del" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="126" CREATED="2009-01-28 17:07:03.0" UUID="b2dd63be-9247-44ad-bf12-61c1f7066c46" URI="" ISO639_1="" ISO639_2="vai" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="127" CREATED="2009-01-28 17:07:03.0" UUID="193637cb-cfe6-4f6f-9e15-58d7d0e9edd9" URI="" ISO639_1="" ISO639_2="kpe" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="128" CREATED="2009-01-28 17:07:03.0" UUID="9965d79a-acf9-4921-a2c0-863b8c16c056" URI="" ISO639_1="nl" ISO639_2="dut" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="129" CREATED="2009-01-28 17:07:03.0" UUID="1f8d4fcb-e888-4ac6-8113-63fe7ea77180" URI="" ISO639_1="zu" ISO639_2="zul" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="130" CREATED="2009-01-28 17:07:03.0" UUID="0901686b-fcab-45df-ae09-b8bf86d64ce6" URI="" ISO639_1="" ISO639_2="egy" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="131" CREATED="2009-01-28 17:07:03.0" UUID="407cacc3-a6f5-452e-8984-8e68a701bee8" URI="" ISO639_1="" ISO639_2="ine" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="132" CREATED="2009-01-28 17:07:03.0" UUID="4bcaa01a-1290-4186-a40e-65978af53031" URI="" ISO639_1="" ISO639_2="sgn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="133" CREATED="2009-01-28 17:07:03.0" UUID="984b3d84-61f2-455a-9924-15f86f89dfb1" URI="" ISO639_1="" ISO639_2="gay" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="134" CREATED="2009-01-28 17:07:03.0" UUID="10b3b191-20bd-4f6b-818f-068c70fc6d8b" URI="" ISO639_1="" ISO639_2="ter" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="135" CREATED="2009-01-28 17:07:03.0" UUID="2b53c222-7752-4943-a366-35b9818f794c" URI="" ISO639_1="" ISO639_2="dum" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="136" CREATED="2009-01-28 17:07:03.0" UUID="a3a2fc60-9f74-45e0-a97a-6737576071ef" URI="" ISO639_1="" ISO639_2="enm" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="137" CREATED="2009-01-28 17:07:03.0" UUID="6355af54-4be2-40a3-a417-83921fb70dc7" URI="" ISO639_1="fj" ISO639_2="fij" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="138" CREATED="2009-01-28 17:07:03.0" UUID="3ffb59ff-d558-48f5-bec1-03fee76737f7" URI="" ISO639_1="" ISO639_2="dra" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="139" CREATED="2009-01-28 17:07:03.0" UUID="110474af-7886-4a36-9299-73871ce14efa" URI="" ISO639_1="kw" ISO639_2="cor" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="140" CREATED="2009-01-28 17:07:03.0" UUID="0ddc00b2-b3ef-4074-a2c7-4b969dcd8e8e" URI="" ISO639_1="" ISO639_2="gaa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="141" CREATED="2009-01-28 17:07:03.0" UUID="875dd186-fdfa-4b1e-af26-d03e736a8757" URI="" ISO639_1="" ISO639_2="cus" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="142" CREATED="2009-01-28 17:07:03.0" UUID="fb30387d-a91a-4586-a801-bd04ea4f9e47" URI="" ISO639_1="" ISO639_2="hsb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="143" CREATED="2009-01-28 17:07:03.0" UUID="47a2576b-44e8-4a2d-b85b-6f13dfa77467" URI="" ISO639_1="" ISO639_2="kam" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="144" CREATED="2009-01-28 17:07:03.0" UUID="0fb6df7f-a2c0-426f-baf6-9fe4fc6d622b" URI="" ISO639_1="" ISO639_2="mas" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="145" CREATED="2009-01-28 17:07:03.0" UUID="b7b756db-fec1-4fea-8b5d-75cadb3e5590" URI="" ISO639_1="vo" ISO639_2="vol" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="146" CREATED="2009-01-28 17:07:03.0" UUID="c23f0629-a4f6-45c7-b8c8-4916209af0dd" URI="" ISO639_1="mk" ISO639_2="mac" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="147" CREATED="2009-01-28 17:07:03.0" UUID="369e7731-be7e-40ef-96e9-3721813441fa" URI="" ISO639_1="sw" ISO639_2="swa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="148" CREATED="2009-01-28 17:07:03.0" UUID="01ae8ef1-6918-4d3b-9453-b51ce003002a" URI="" ISO639_1="" ISO639_2="mai" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="149" CREATED="2009-01-28 17:07:03.0" UUID="c054f189-c54c-4fb8-b797-72691ec42ec1" URI="" ISO639_1="" ISO639_2="bai" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="150" CREATED="2009-01-28 17:07:03.0" UUID="1a05e1fe-49d4-44bb-a143-70df32606124" URI="" ISO639_1="nv" ISO639_2="nav" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="151" CREATED="2009-01-28 17:07:03.0" UUID="04d495dc-449d-46b8-9cca-b108756773c0" URI="" ISO639_1="yi" ISO639_2="yid" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="152" CREATED="2009-01-28 17:07:03.0" UUID="eda7677e-2041-4c2b-b84b-43c88d21ef7b" URI="" ISO639_1="" ISO639_2="afh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="153" CREATED="2009-01-28 17:07:03.0" UUID="32f7628f-6142-46b2-bc6b-d1381de48eec" URI="" ISO639_1="" ISO639_2="mnc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="154" CREATED="2009-01-28 17:07:03.0" UUID="5731c457-580c-4543-a227-b0ca0c0b9d0e" URI="" ISO639_1="" ISO639_2="chb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="155" CREATED="2009-01-28 17:07:03.0" UUID="3af29601-772e-4e15-8f7e-65f31e4b5427" URI="" ISO639_1="" ISO639_2="man" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="156" CREATED="2009-01-28 17:07:03.0" UUID="8aa2fcb2-84fc-4418-87b2-23bf7f0ae783" URI="" ISO639_1="ty" ISO639_2="tah" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="157" CREATED="2009-01-28 17:07:03.0" UUID="595607e2-b8fc-4edc-8185-0e7b23491473" URI="" ISO639_1="" ISO639_2="zen" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="158" CREATED="2009-01-28 17:07:03.0" UUID="f805e450-16ce-4abc-8e79-c9599238b836" URI="" ISO639_1="" ISO639_2="pam" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="159" CREATED="2009-01-28 17:07:03.0" UUID="40704577-d65a-46de-8393-5aabc9a510e1" URI="" ISO639_1="" ISO639_2="din" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="160" CREATED="2009-01-28 17:07:03.0" UUID="ac588be1-1ec3-42ce-b8b5-c71d7519ece7" URI="" ISO639_1="" ISO639_2="sux" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="161" CREATED="2009-01-28 17:07:03.0" UUID="3241952f-d366-43c3-8817-57452c7a09e7" URI="" ISO639_1="" ISO639_2="ale" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="162" CREATED="2009-01-28 17:07:03.0" UUID="0c27960e-1ba6-4b56-8429-c44334251653" URI="" ISO639_1="ff" ISO639_2="ful" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="163" CREATED="2009-01-28 17:07:03.0" UUID="1a083800-0add-464e-8db3-618ec96c620b" URI="" ISO639_1="" ISO639_2="ady" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="164" CREATED="2009-01-28 17:07:03.0" UUID="36f105eb-466b-45e9-a182-3887736d5f86" URI="" ISO639_1="" ISO639_2="dak" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="165" CREATED="2009-01-28 17:07:03.0" UUID="76af0bce-e24e-4b71-9b6a-6234d89f447e" URI="" ISO639_1="ie" ISO639_2="ile" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="166" CREATED="2009-01-28 17:07:03.0" UUID="e431127a-da51-45bd-8b4e-d50068913097" URI="" ISO639_1="kj" ISO639_2="kua" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="167" CREATED="2009-01-28 17:07:03.0" UUID="c5d539de-0c8b-44cd-86e3-965a85a58892" URI="" ISO639_1="" ISO639_2="sio" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="168" CREATED="2009-01-28 17:07:03.0" UUID="73f52d44-2fef-496a-ba6f-1315b1bb814e" URI="" ISO639_1="kv" ISO639_2="kom" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="169" CREATED="2009-01-28 17:07:03.0" UUID="47071c5a-9f49-4aa1-9a35-49e320b875a2" URI="" ISO639_1="" ISO639_2="osa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="170" CREATED="2009-01-28 17:07:03.0" UUID="78e9cc09-7f4f-4d3f-91d5-a2062ce91e8b" URI="" ISO639_1="" ISO639_2="smj" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="171" CREATED="2009-01-28 17:07:03.0" UUID="4824b8e7-c283-43c2-ac98-d986e0e12893" URI="" ISO639_1="" ISO639_2="mwr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="172" CREATED="2009-01-28 17:07:03.0" UUID="e17273b1-3c4e-4816-91df-c0117cfc2b85" URI="" ISO639_1="fa" ISO639_2="per" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="173" CREATED="2009-01-28 17:07:03.0" UUID="70c2402e-390b-4b4d-bfd4-582ed08e4af7" URI="" ISO639_1="" ISO639_2="snk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="174" CREATED="2009-01-28 17:07:03.0" UUID="a3161d26-b1bb-4efe-943c-96d1eb1d1984" URI="" ISO639_1="" ISO639_2="nic" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="175" CREATED="2009-01-28 17:07:03.0" UUID="40d9eb34-361f-42d9-a6b3-70a512608bd3" URI="" ISO639_1="gn" ISO639_2="grn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="176" CREATED="2009-01-28 17:07:03.0" UUID="3eb63458-aa52-41d6-8abc-173ad217d7e2" URI="" ISO639_1="na" ISO639_2="nau" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="177" CREATED="2009-01-28 17:07:03.0" UUID="dc20e27e-c0ed-4dcd-8bb7-ebf7aa67fb16" URI="" ISO639_1="" ISO639_2="nzi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="178" CREATED="2009-01-28 17:07:03.0" UUID="28a0ebd6-d0d4-41d7-a1e8-fd006141076f" URI="" ISO639_1="" ISO639_2="was" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="179" CREATED="2009-01-28 17:07:03.0" UUID="12c36e0d-39d1-441c-8b39-87ad034fdf2f" URI="" ISO639_1="" ISO639_2="sms" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="180" CREATED="2009-01-28 17:07:03.0" UUID="852da1de-8083-4047-a056-2dc1c9beb815" URI="" ISO639_1="" ISO639_2="mga" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="181" CREATED="2009-01-28 17:07:03.0" UUID="9a463924-a311-44f3-82e1-88bd4a9e664d" URI="" ISO639_1="" ISO639_2="pon" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="182" CREATED="2009-01-28 17:07:03.0" UUID="5017f3a8-3035-4731-8249-e371ee583142" URI="" ISO639_1="" ISO639_2="sal" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="183" CREATED="2009-01-28 17:07:03.0" UUID="1f3440d4-0a36-4a04-9694-259a64275934" URI="" ISO639_1="" ISO639_2="gwi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="184" CREATED="2009-01-28 17:07:03.0" UUID="24d342fe-8800-4284-af6d-7431be07112c" URI="" ISO639_1="" ISO639_2="rap" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="185" CREATED="2009-01-28 17:07:03.0" UUID="7bebf196-0b7a-4d9b-92c6-a698b9407b7e" URI="" ISO639_1="" ISO639_2="ain" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="186" CREATED="2009-01-28 17:07:03.0" UUID="cdd10fa8-e4c9-4eab-9f53-34227846c1e0" URI="" ISO639_1="" ISO639_2="kaa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="187" CREATED="2009-01-28 17:07:03.0" UUID="5f08f9a9-81f7-4613-935a-2be7713f8428" URI="" ISO639_1="" ISO639_2="akk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="188" CREATED="2009-01-28 17:07:03.0" UUID="e4fd3d5d-7715-4736-b4db-73ac8b129ddf" URI="" ISO639_1="" ISO639_2="fiu" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="189" CREATED="2009-01-28 17:07:03.0" UUID="682508f8-414a-4958-a89d-3abea3da1852" URI="" ISO639_1="li" ISO639_2="lim" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="190" CREATED="2009-01-28 17:07:03.0" UUID="f87a2743-0344-4515-a5aa-145966f7ed6f" URI="" ISO639_1="" ISO639_2="mdr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="191" CREATED="2009-01-28 17:07:03.0" UUID="fb85de23-0e3c-4042-b56b-71ec3c7566cf" URI="" ISO639_1="" ISO639_2="zxx" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="192" CREATED="2009-01-28 17:07:03.0" UUID="53fa6337-d66c-4db5-89cd-d42555414b32" URI="" ISO639_1="" ISO639_2="kaw" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="193" CREATED="2009-01-28 17:07:03.0" UUID="69e1325e-5afb-4ffb-b446-1c9e20bb5ea1" URI="" ISO639_1="si" ISO639_2="sin" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="194" CREATED="2009-01-28 17:07:03.0" UUID="960cbb52-0a61-4273-ae61-09d982c48f40" URI="" ISO639_1="mh" ISO639_2="mah" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="195" CREATED="2009-01-28 17:07:03.0" UUID="d8330a9e-05fb-4e89-871c-daa8d13be847" URI="" ISO639_1="" ISO639_2="lad" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="196" CREATED="2009-01-28 17:07:03.0" UUID="64e01a12-06d5-44a4-8a83-52c7762e3d92" URI="" ISO639_1="fo" ISO639_2="fao" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="197" CREATED="2009-01-28 17:07:03.0" UUID="40af687c-7706-459b-aa86-d4a5d7d27a14" URI="" ISO639_1="" ISO639_2="war" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="198" CREATED="2009-01-28 17:07:03.0" UUID="668645f4-f35f-4d1a-8343-cec4bc9d54b6" URI="" ISO639_1="" ISO639_2="tut" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="199" CREATED="2009-01-28 17:07:03.0" UUID="71923e7c-ee28-4ca9-91ac-5c1a066d3293" URI="" ISO639_1="" ISO639_2="sus" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="200" CREATED="2009-01-28 17:07:03.0" UUID="df2a640f-461a-4152-927e-9e55aa8fad27" URI="" ISO639_1="" ISO639_2="nyn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="201" CREATED="2009-01-28 17:07:03.0" UUID="ab1ad6e6-3ad8-4aa0-9fa5-e817240ce215" URI="" ISO639_1="nr" ISO639_2="nbl" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="202" CREATED="2009-01-28 17:07:03.0" UUID="73b8dfb4-971c-4b93-9009-75ae79dc1cba" URI="" ISO639_1="" ISO639_2="ijo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="203" CREATED="2009-01-28 17:07:03.0" UUID="2feb1694-8fd2-4746-b1d0-8f8c6233be58" URI="" ISO639_1="" ISO639_2="mun" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="204" CREATED="2009-01-28 17:07:03.0" UUID="5bc5c0dc-47cf-426b-bd81-743dc55ca0e5" URI="" ISO639_1="" ISO639_2="ath" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="205" CREATED="2009-01-28 17:07:03.0" UUID="6ab9eb02-55d9-42f5-8b50-c7dfba9a19d7" URI="" ISO639_1="ae" ISO639_2="ave" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="206" CREATED="2009-01-28 17:07:03.0" UUID="7e575cba-a1dd-4773-b712-b4dc031554ab" URI="" ISO639_1="" ISO639_2="sas" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="207" CREATED="2009-01-28 17:07:03.0" UUID="e7d9f5c7-5fe0-424e-9935-ba61a0edf7c1" URI="" ISO639_1="" ISO639_2="syc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="208" CREATED="2009-01-28 17:07:03.0" UUID="d8bcbc07-f7af-439c-8ad9-89aada5898fb" URI="" ISO639_1="" ISO639_2="apa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="209" CREATED="2009-01-28 17:07:03.0" UUID="b7ef8288-c37b-436f-a144-e4e50d66f919" URI="" ISO639_1="ha" ISO639_2="hau" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="210" CREATED="2009-01-28 17:07:03.0" UUID="5c74671f-2e73-469d-9818-d1f098b200d4" URI="" ISO639_1="" ISO639_2="nds" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="211" CREATED="2009-01-28 17:07:03.0" UUID="fd8b1e12-cdd0-487c-9f47-9e97711ee37f" URI="" ISO639_1="" ISO639_2="tog" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="212" CREATED="2009-01-28 17:07:03.0" UUID="fb78fb2e-2c98-461c-9b7c-9cc08f85a221" URI="" ISO639_1="dv" ISO639_2="div" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="213" CREATED="2009-01-28 17:07:03.0" UUID="a5c36bf0-26b6-4474-9bd7-4867c38ab047" URI="" ISO639_1="" ISO639_2="wen" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="214" CREATED="2009-01-28 17:07:03.0" UUID="f67971e9-49bb-4d85-9bc8-e6a1ea0d950e" URI="" ISO639_1="sc" ISO639_2="srd" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="215" CREATED="2009-01-28 17:07:03.0" UUID="ecfa8b2e-2517-4974-8431-b64b67fa5cda" URI="" ISO639_1="sq" ISO639_2="alb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="216" CREATED="2009-01-28 17:07:03.0" UUID="3c483fd1-07b7-4144-8b27-bba27a03e96e" URI="" ISO639_1="" ISO639_2="ban" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="217" CREATED="2009-01-28 17:07:03.0" UUID="63dc5012-8072-4cb8-81dd-05558ba6679a" URI="" ISO639_1="" ISO639_2="tum" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="218" CREATED="2009-01-28 17:07:03.0" UUID="c212eff2-5f02-4127-9e39-0e1daa82c075" URI="" ISO639_1="mt" ISO639_2="mlt" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="219" CREATED="2009-01-28 17:07:03.0" UUID="0a1d9d1d-135d-4575-b172-669b51673c39" URI="" ISO639_1="hi" ISO639_2="hin" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="220" CREATED="2009-01-28 17:07:03.0" UUID="15c94e31-6bd2-4a42-92a7-59ec7fe2eb93" URI="" ISO639_1="" ISO639_2="ace" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="221" CREATED="2009-01-28 17:07:03.0" UUID="ecd35102-7cdd-4809-9261-4aa272d8051e" URI="" ISO639_1="he" ISO639_2="heb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="222" CREATED="2009-01-28 17:07:03.0" UUID="11659dd0-9feb-447d-8144-c4c18f834450" URI="" ISO639_1="ga" ISO639_2="gle" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="223" CREATED="2009-01-28 17:07:03.0" UUID="c8e3e73c-fb9b-44e2-8bb3-7c91cd423b40" URI="" ISO639_1="" ISO639_2="chn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="224" CREATED="2009-01-28 17:07:03.0" UUID="5ff32317-1ddb-43f3-b5e2-42a63efb90c7" URI="" ISO639_1="" ISO639_2="sco" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="225" CREATED="2009-01-28 17:07:03.0" UUID="1ea2f3c9-dde4-4e1e-a9fc-675dc378091c" URI="" ISO639_1="no" ISO639_2="nor" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="226" CREATED="2009-01-28 17:07:03.0" UUID="fb9c601e-26ea-4944-8925-5dea6feb1a34" URI="" ISO639_1="" ISO639_2="tai" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="227" CREATED="2009-01-28 17:07:03.0" UUID="50a69d8b-d82e-4a71-afad-60dfcc41a5a7" URI="" ISO639_1="" ISO639_2="kha" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="228" CREATED="2009-01-28 17:07:03.0" UUID="5b34bd0a-270c-4348-8ab0-a53c938bf90b" URI="" ISO639_1="or" ISO639_2="ori" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="229" CREATED="2009-01-28 17:07:03.0" UUID="64ea9354-cbf8-40de-9f6e-387d24896f50" URI="" ISO639_1="ru" ISO639_2="rus" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="230" CREATED="2009-01-28 17:07:03.0" UUID="2fc29072-908d-4bd3-b12f-cd2587ab8d75" URI="" ISO639_1="az" ISO639_2="aze" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="231" CREATED="2009-01-28 17:07:03.0" UUID="7d54e491-bda0-4b10-9cf8-285e020782ad" URI="" ISO639_1="" ISO639_2="ach" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="232" CREATED="2009-01-28 17:07:03.0" UUID="7eed96ab-e0ca-48c3-801f-023fe79097a3" URI="" ISO639_1="lg" ISO639_2="lug" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="233" CREATED="2009-01-28 17:07:03.0" UUID="c2c08339-2405-4d7d-bd25-cbe01fb7ce09" URI="" ISO639_1="pt" ISO639_2="por" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="234" CREATED="2009-01-28 17:07:03.0" UUID="f8fb14ee-eb4e-49fa-b439-ed5deac59daa" URI="" ISO639_1="" ISO639_2="gba" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="235" CREATED="2009-01-28 17:07:03.0" UUID="05ce99f2-2c2f-4ee4-b471-32f3afda2afc" URI="" ISO639_1="" ISO639_2="uga" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="236" CREATED="2009-01-28 17:07:03.0" UUID="e8661eba-132c-4876-ac37-226db379ce4e" URI="" ISO639_1="" ISO639_2="tsi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="237" CREATED="2009-01-28 17:07:03.0" UUID="0057bec5-a596-4cbd-9876-d23cf71fee60" URI="" ISO639_1="mg" ISO639_2="mlg" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="238" CREATED="2009-01-28 17:07:03.0" UUID="511d8125-f5e6-445d-aee2-6327375238be" URI="" ISO639_1="es" ISO639_2="spa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="239" CREATED="2009-01-28 17:07:03.0" UUID="032dba38-a378-4ab4-a00b-a94fb1020f53" URI="" ISO639_1="" ISO639_2="smn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="240" CREATED="2009-01-28 17:07:03.0" UUID="7a0fde13-26e9-4382-a5c9-5640fc2b3334" URI="" ISO639_1="hy" ISO639_2="arm" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="241" CREATED="2009-01-28 17:07:03.0" UUID="af13a51b-3d91-4978-80db-985e4f9aefdd" URI="" ISO639_1="" ISO639_2="cop" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="242" CREATED="2009-01-28 17:07:03.0" UUID="384d5bef-e085-4408-9c9c-73499c735ecf" URI="" ISO639_1="ig" ISO639_2="ibo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="243" CREATED="2009-01-28 17:07:03.0" UUID="a7b014f9-683b-46c4-8365-b08d7a9a5759" URI="" ISO639_1="ho" ISO639_2="hmo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="244" CREATED="2009-01-28 17:07:03.0" UUID="6720fbd6-7668-418e-8d48-a1bfe2f56ac9" URI="" ISO639_1="bh" ISO639_2="bih" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="245" CREATED="2009-01-28 17:07:03.0" UUID="6503a6bb-497c-4712-b18d-38c8898c3b77" URI="" ISO639_1="" ISO639_2="grb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="246" CREATED="2009-01-28 17:07:03.0" UUID="bbfffd3e-eada-4c2d-8824-b426cdd82ee6" URI="" ISO639_1="" ISO639_2="dua" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="247" CREATED="2009-01-28 17:07:03.0" UUID="d1c3e5ef-31f0-42b8-8220-65e667fef638" URI="" ISO639_1="" ISO639_2="bej" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="248" CREATED="2009-01-28 17:07:03.0" UUID="26fb67ac-42d8-4aa7-a8c6-47aaf827d7d7" URI="" ISO639_1="xh" ISO639_2="xho" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="249" CREATED="2009-01-28 17:07:03.0" UUID="99267f5f-a2cc-4e4a-a0ae-e98c76034781" URI="" ISO639_1="" ISO639_2="tiv" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="250" CREATED="2009-01-28 17:07:03.0" UUID="ddaa93d0-3ad1-47f2-920d-c07120c96950" URI="" ISO639_1="" ISO639_2="wal" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="251" CREATED="2009-01-28 17:07:03.0" UUID="296a223d-1705-4504-aff2-8cbc56ee9187" URI="" ISO639_1="" ISO639_2="crp" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="252" CREATED="2009-01-28 17:07:03.0" UUID="34f22b78-1cfe-4f4f-a1c0-e57ea7d47ee5" URI="" ISO639_1="" ISO639_2="lam" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="253" CREATED="2009-01-28 17:07:03.0" UUID="3234653f-e10d-48a5-ade7-cd628e75fbe8" URI="" ISO639_1="" ISO639_2="srr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="254" CREATED="2009-01-28 17:07:03.0" UUID="83ea3620-caf2-4b85-8eb3-97428a73142c" URI="" ISO639_1="" ISO639_2="inh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="255" CREATED="2009-01-28 17:07:03.0" UUID="6b7505cc-4a1e-47be-8374-8612deaba8e7" URI="" ISO639_1="ch" ISO639_2="cha" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="256" CREATED="2009-01-28 17:07:03.0" UUID="2097879c-db7a-4674-a459-4a4ef3c15b54" URI="" ISO639_1="" ISO639_2="jrb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="257" CREATED="2009-01-28 17:07:03.0" UUID="6a32c3a0-11b7-450c-8da6-f06ed18d17d3" URI="" ISO639_1="" ISO639_2="dgr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="258" CREATED="2009-01-28 17:07:03.0" UUID="e2769990-9f04-45fc-974b-ef4d8f77ec86" URI="" ISO639_1="" ISO639_2="den" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="259" CREATED="2009-01-28 17:07:03.0" UUID="643df0b5-5c66-4c27-b5bb-a4f4b170c8c9" URI="" ISO639_1="" ISO639_2="und" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="260" CREATED="2009-01-28 17:07:03.0" UUID="4fddcfa6-7b46-45ca-a20f-eb406f89eaae" URI="" ISO639_1="tw" ISO639_2="twi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="261" CREATED="2009-01-28 17:07:03.0" UUID="b1d7880d-b45d-436b-8459-805089763b14" URI="" ISO639_1="" ISO639_2="zap" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="262" CREATED="2009-01-28 17:07:03.0" UUID="93261622-1e2a-42a3-b10d-eb3f19262ba3" URI="" ISO639_1="mn" ISO639_2="mon" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="263" CREATED="2009-01-28 17:07:03.0" UUID="aaae2afe-0a27-4aac-a53c-c0efdb9b00f9" URI="" ISO639_1="" ISO639_2="nwc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="264" CREATED="2009-01-28 17:07:03.0" UUID="088a4d6a-e048-4299-be2c-15425b2827cf" URI="" ISO639_1="" ISO639_2="goh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="265" CREATED="2009-01-28 17:07:03.0" UUID="d482a3d5-5a01-458a-aa6d-da17fa4bd90f" URI="" ISO639_1="kn" ISO639_2="kan" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="266" CREATED="2009-01-28 17:07:03.0" UUID="efe01e0d-8c64-4613-b1dd-b696cb809bc3" URI="" ISO639_1="as" ISO639_2="asm" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="267" CREATED="2009-01-28 17:07:03.0" UUID="27bd4b8b-07d0-425c-a843-61588c140f68" URI="" ISO639_1="" ISO639_2="fro" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="268" CREATED="2009-01-28 17:07:03.0" UUID="3fdca387-f1b0-4ec1-808f-1bc3dc482194" URI="" ISO639_1="pl" ISO639_2="pol" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="269" CREATED="2009-01-28 17:07:03.0" UUID="55b079b1-be19-43fc-8827-cb71b373862f" URI="" ISO639_1="" ISO639_2="ada" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="270" CREATED="2009-01-28 17:07:03.0" UUID="9da86f92-895b-4c9a-bec3-9591d002b278" URI="" ISO639_1="" ISO639_2="nog" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="271" CREATED="2009-01-28 17:07:03.0" UUID="1753ee27-b780-4844-bcb3-bb0d834721aa" URI="" ISO639_1="pa" ISO639_2="pan" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="272" CREATED="2009-01-28 17:07:03.0" UUID="7527cedc-8a0b-4199-9b0f-da1c98b5884e" URI="" ISO639_1="" ISO639_2="sat" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="273" CREATED="2009-01-28 17:07:03.0" UUID="ba70c6aa-0d9f-4bae-b2a2-afca2c33bcb1" URI="" ISO639_1="" ISO639_2="vot" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="274" CREATED="2009-01-28 17:07:03.0" UUID="04b151e3-c3db-467b-a9ec-f175ab3a52c4" URI="" ISO639_1="rm" ISO639_2="roh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="275" CREATED="2009-01-28 17:07:03.0" UUID="0532c7c2-5c49-4730-ba7d-0512036a36ac" URI="" ISO639_1="" ISO639_2="hit" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="276" CREATED="2009-01-28 17:07:03.0" UUID="fb64b07c-c079-4fda-a803-212a0beca61b" URI="" ISO639_1="ka" ISO639_2="geo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="277" CREATED="2009-01-28 17:07:03.0" UUID="627d5b24-121d-4d97-b531-d4ff26ea9f54" URI="" ISO639_1="" ISO639_2="efi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="278" CREATED="2009-01-28 17:07:03.0" UUID="d494cb91-b5df-4f7a-98fd-7257cec13213" URI="" ISO639_1="tk" ISO639_2="tuk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="279" CREATED="2009-01-28 17:07:03.0" UUID="3b3fd5bd-009a-401a-8136-9a6c0c2705d0" URI="" ISO639_1="" ISO639_2="cho" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="280" CREATED="2009-01-28 17:07:03.0" UUID="a03f2fe0-9a5b-4498-a45d-d52c5ae8034a" URI="" ISO639_1="" ISO639_2="ast" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="281" CREATED="2009-01-28 17:07:03.0" UUID="008bde55-5aad-4d9c-98be-29d2cae5ec4c" URI="" ISO639_1="" ISO639_2="bad" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="282" CREATED="2009-01-28 17:07:03.0" UUID="d37af6b4-3740-4190-800c-0e28bb0c10bf" URI="" ISO639_1="" ISO639_2="gmh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="283" CREATED="2009-01-28 17:07:03.0" UUID="0cb43888-e619-4e80-9beb-190884d50ea7" URI="" ISO639_1="uz" ISO639_2="uzb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="284" CREATED="2009-01-28 17:07:03.0" UUID="5f2f0f6e-82ff-4c67-918a-a433ecaa2f04" URI="" ISO639_1="" ISO639_2="fat" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="285" CREATED="2009-01-28 17:07:03.0" UUID="015a6c3b-5d22-40de-bccd-2d737978b1c2" URI="" ISO639_1="ml" ISO639_2="mal" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="286" CREATED="2009-01-28 17:07:03.0" UUID="4e826395-2eae-4a2e-8d7d-ba9cbd16e2a3" URI="" ISO639_1="" ISO639_2="pro" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="287" CREATED="2009-01-28 17:07:03.0" UUID="b11d3bd9-daab-4399-b289-e6f0e2a0ec29" URI="" ISO639_1="ee" ISO639_2="ewe" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="288" CREATED="2009-01-28 17:07:03.0" UUID="aa6d4890-5725-4ac6-bf42-3eb827b24fc9" URI="" ISO639_1="qu" ISO639_2="que" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="289" CREATED="2009-01-28 17:07:03.0" UUID="4bde6eea-75b8-4fd1-9b8f-59221a953487" URI="" ISO639_1="" ISO639_2="bem" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="290" CREATED="2009-01-28 17:07:03.0" UUID="4dd4d7bf-2e9e-4b2e-8165-5d160d32980b" URI="" ISO639_1="lb" ISO639_2="ltz" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="291" CREATED="2009-01-28 17:07:03.0" UUID="e7e7f3c6-68b4-42aa-a7ce-e3748ecd504e" URI="" ISO639_1="bs" ISO639_2="bos" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="292" CREATED="2009-01-28 17:07:03.0" UUID="038ea17e-064a-42f2-9062-fbc679746023" URI="" ISO639_1="" ISO639_2="sla" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="293" CREATED="2009-01-28 17:07:03.0" UUID="0daa9618-b0d8-4363-8790-ece21928e665" URI="" ISO639_1="oj" ISO639_2="oji" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="294" CREATED="2009-01-28 17:07:03.0" UUID="f0e386ec-b0c5-4d57-bff9-e9b6c72b3122" URI="" ISO639_1="wo" ISO639_2="wol" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="295" CREATED="2009-01-28 17:07:03.0" UUID="82c34ba6-a4ff-448b-a195-f56b31d6d824" URI="" ISO639_1="" ISO639_2="csb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="296" CREATED="2009-01-28 17:07:03.0" UUID="a9fc2782-5b2a-466f-b9c3-64d9ca6614c4" URI="" ISO639_1="zh" ISO639_2="chi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="297" CREATED="2009-01-28 17:07:03.0" UUID="b5d99800-b40b-4e3d-ada9-610475ffa68b" URI="" ISO639_1="gd" ISO639_2="gla" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="298" CREATED="2009-01-28 17:07:03.0" UUID="638c12eb-3954-4bf4-a008-6177a2f880e1" URI="" ISO639_1="ms" ISO639_2="may" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="299" CREATED="2009-01-28 17:07:03.0" UUID="9ad544c7-f8d7-4bea-9476-26d982917ec8" URI="" ISO639_1="" ISO639_2="son" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="300" CREATED="2009-01-28 17:07:03.0" UUID="5d2452c1-2cee-45d7-b952-a5401b20b9f5" URI="" ISO639_1="ik" ISO639_2="ipk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="301" CREATED="2009-01-28 17:07:03.0" UUID="e4326d01-381b-4024-a748-995e26bb0362" URI="" ISO639_1="" ISO639_2="oto" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="302" CREATED="2009-01-28 17:07:03.0" UUID="2ee4a0f9-2a46-429c-aec7-fc10c2567da1" URI="" ISO639_1="" ISO639_2="mus" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="303" CREATED="2009-01-28 17:07:03.0" UUID="71950910-41a0-40a9-8c48-3ac16773e352" URI="" ISO639_1="" ISO639_2="nyo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="304" CREATED="2009-01-28 17:07:03.0" UUID="076909b8-88f0-4341-921a-380a9f24c63b" URI="" ISO639_1="" ISO639_2="cmc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="305" CREATED="2009-01-28 17:07:03.0" UUID="845634a3-153e-4534-8362-ff087210b625" URI="" ISO639_1="hz" ISO639_2="her" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="306" CREATED="2009-01-28 17:07:03.0" UUID="0beb31ca-2479-47c7-b557-bd44dc620f16" URI="" ISO639_1="" ISO639_2="frs" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="307" CREATED="2009-01-28 17:07:03.0" UUID="55f20809-946a-424c-8eda-f14b0e8fc6c0" URI="" ISO639_1="" ISO639_2="lah" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="308" CREATED="2009-01-28 17:07:03.0" UUID="35a5f90e-ea2d-4bf4-8a09-7b00a35b61bb" URI="" ISO639_1="" ISO639_2="cpp" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="309" CREATED="2009-01-28 17:07:03.0" UUID="3d1d88e7-172b-440a-b763-da26a4a11d39" URI="" ISO639_1="" ISO639_2="inc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="310" CREATED="2009-01-28 17:07:03.0" UUID="8b061029-05a6-4fb4-b630-8a04d69cb54f" URI="" ISO639_1="" ISO639_2="peo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="311" CREATED="2009-01-28 17:07:03.0" UUID="a49330bb-a505-4778-9d81-251e2d5ee627" URI="" ISO639_1="ts" ISO639_2="tso" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="312" CREATED="2009-01-28 17:07:03.0" UUID="18f56fec-fa36-4317-853b-0b574df05efc" URI="" ISO639_1="" ISO639_2="ewo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="313" CREATED="2009-01-28 17:07:03.0" UUID="c3c6cdef-a514-4e55-8628-b8d3e67cd781" URI="" ISO639_1="" ISO639_2="kho" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="314" CREATED="2009-01-28 17:07:03.0" UUID="353409b1-30f1-4d34-b1c0-cf024d49c69e" URI="" ISO639_1="" ISO639_2="awa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="315" CREATED="2009-01-28 17:07:03.0" UUID="d8ce3c47-243b-4a09-835b-01918829a2e7" URI="" ISO639_1="" ISO639_2="zun" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="316" CREATED="2009-01-28 17:07:03.0" UUID="531e06fd-798c-4700-afe6-2d8a01c5ec46" URI="" ISO639_1="sr" ISO639_2="scc" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="317" CREATED="2009-01-28 17:07:03.0" UUID="a00fc918-4d32-4974-94ed-076b1fec9798" URI="" ISO639_1="ln" ISO639_2="lin" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="318" CREATED="2009-01-28 17:07:03.0" UUID="1b171828-16da-45ea-bfd9-5bf236481920" URI="" ISO639_1="fy" ISO639_2="fry" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="319" CREATED="2009-01-28 17:07:03.0" UUID="62528d73-3100-4814-8579-84b1825ae320" URI="" ISO639_1="" ISO639_2="min" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="320" CREATED="2009-01-28 17:07:03.0" UUID="c8a8a134-32bc-48c0-829f-1dd811866888" URI="" ISO639_1="" ISO639_2="niu" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="321" CREATED="2009-01-28 17:07:03.0" UUID="ec2a7b15-ce28-4465-b1b3-5e045db869d3" URI="" ISO639_1="" ISO639_2="tpi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="322" CREATED="2009-01-28 17:07:03.0" UUID="6dbc6679-c2bb-43bb-9c22-c1c4097c14f0" URI="" ISO639_1="be" ISO639_2="bel" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="323" CREATED="2009-01-28 17:07:03.0" UUID="d311117f-45aa-4dd6-8ecb-12a9fc5654d4" URI="" ISO639_1="" ISO639_2="men" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="324" CREATED="2009-01-28 17:07:03.0" UUID="c82767ce-1623-4e86-a999-3f9baff8ace4" URI="" ISO639_1="" ISO639_2="fil" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="325" CREATED="2009-01-28 17:07:03.0" UUID="15f73328-e7ad-4a6b-a31e-6477bd978e87" URI="" ISO639_1="" ISO639_2="cai" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="326" CREATED="2009-01-28 17:07:03.0" UUID="86521056-865a-4cc4-9eeb-fbce391a20b9" URI="" ISO639_1="" ISO639_2="yao" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="327" CREATED="2009-01-28 17:07:03.0" UUID="4606abdf-6dbe-4bfe-b3da-a1fa08f2f1e2" URI="" ISO639_1="fi" ISO639_2="fin" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="328" CREATED="2009-01-28 17:07:03.0" UUID="5591a708-17c7-40c8-9d2c-d3ad20150e45" URI="" ISO639_1="" ISO639_2="phi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="329" CREATED="2009-01-28 17:07:03.0" UUID="fa367cfb-8aad-42fb-8a19-cd6582e58fd4" URI="" ISO639_1="id" ISO639_2="ind" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="330" CREATED="2009-01-28 17:07:03.0" UUID="fc81a52e-6e94-4f97-83dd-f179208a6592" URI="" ISO639_1="" ISO639_2="hmn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="331" CREATED="2009-01-28 17:07:03.0" UUID="97e85881-0009-4b4b-a8dc-3c83eddb4440" URI="" ISO639_1="" ISO639_2="ssa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="332" CREATED="2009-01-28 17:07:03.0" UUID="61cb4280-42d1-4fa0-92bf-fe7cf02c66d3" URI="" ISO639_1="" ISO639_2="fon" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="333" CREATED="2009-01-28 17:07:03.0" UUID="6d50329c-f53e-48c7-808c-562ddd5998bb" URI="" ISO639_1="nd" ISO639_2="nde" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="334" CREATED="2009-01-28 17:07:03.0" UUID="9ed0f57a-5af3-433a-bf38-808e2cf4103b" URI="" ISO639_1="" ISO639_2="xal" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="335" CREATED="2009-01-28 17:07:03.0" UUID="c462c732-aa55-423b-96a9-c43bf10d53b3" URI="" ISO639_1="ak" ISO639_2="aka" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="336" CREATED="2009-01-28 17:07:03.0" UUID="f6dfb41f-c6c1-4d21-a51c-0fbd7cee2dff" URI="" ISO639_1="" ISO639_2="dsb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="337" CREATED="2009-01-28 17:07:03.0" UUID="b56ddf7a-975e-4d18-91c4-5952c0f5465e" URI="" ISO639_1="" ISO639_2="pag" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="338" CREATED="2009-01-28 17:07:03.0" UUID="e9f02ab1-d578-44fd-ad8e-addd938e2132" URI="" ISO639_1="" ISO639_2="kru" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="339" CREATED="2009-01-28 17:07:03.0" UUID="f817b594-98a7-49a2-a712-94b1148a4340" URI="" ISO639_1="hu" ISO639_2="hun" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="340" CREATED="2009-01-28 17:07:03.0" UUID="569d40d8-5c04-4b0a-8606-61fd91d498b5" URI="" ISO639_1="ce" ISO639_2="che" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="341" CREATED="2009-01-28 17:07:03.0" UUID="7b4ab3d4-0575-4038-840d-e15caeeedd66" URI="" ISO639_1="ro" ISO639_2="rum" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="342" CREATED="2009-01-28 17:07:03.0" UUID="86dff8de-2732-4b40-82a4-814897ea2714" URI="" ISO639_1="" ISO639_2="sam" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="343" CREATED="2009-01-28 17:07:03.0" UUID="35ef668e-daea-45a7-909b-2e2ac08eff46" URI="" ISO639_1="" ISO639_2="haw" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="344" CREATED="2009-01-28 17:07:03.0" UUID="922703d9-b4c3-4643-9503-42e6b7f0fc62" URI="" ISO639_1="" ISO639_2="lui" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="345" CREATED="2009-01-28 17:07:03.0" UUID="5d81b61c-7891-4423-8f8f-5b1d89b28e42" URI="" ISO639_1="" ISO639_2="nia" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="346" CREATED="2009-01-28 17:07:03.0" UUID="173784fb-62ce-4741-b214-53cb5d297411" URI="" ISO639_1="lv" ISO639_2="lav" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="347" CREATED="2009-01-28 17:07:03.0" UUID="364ffc64-7248-4ad6-acdd-35daded04819" URI="" ISO639_1="" ISO639_2="bal" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="348" CREATED="2009-01-28 17:07:03.0" UUID="bfbc8359-711d-430e-bfba-5e96c3a24fbb" URI="" ISO639_1="" ISO639_2="hup" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="349" CREATED="2009-01-28 17:07:03.0" UUID="d1131746-e58b-4e80-a865-f5182c9c3073" URI="" ISO639_1="de" ISO639_2="ger" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="350" CREATED="2009-01-28 17:07:03.0" UUID="f6d6297f-00c4-4833-8f7b-001d2c3418e5" URI="" ISO639_1="" ISO639_2="cau" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="351" CREATED="2009-01-28 17:07:03.0" UUID="0a3dc1c3-cade-473d-ac58-2777fc31078d" URI="" ISO639_1="" ISO639_2="chy" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="352" CREATED="2009-01-28 17:07:03.0" UUID="160a5b6c-87f5-4422-9bda-78cd404c179e" URI="" ISO639_1="la" ISO639_2="lat" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="353" CREATED="2009-01-28 17:07:03.0" UUID="ca1321fb-4b3d-4e55-ade9-78a26ed71930" URI="" ISO639_1="" ISO639_2="mkh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="354" CREATED="2009-01-28 17:07:03.0" UUID="14056109-b3df-45a2-a3bb-7f6760ce692d" URI="" ISO639_1="" ISO639_2="aus" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="355" CREATED="2009-01-28 17:07:03.0" UUID="c30ccf66-224c-4d65-8cde-77ea91df433c" URI="" ISO639_1="cy" ISO639_2="wel" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="356" CREATED="2009-01-28 17:07:03.0" UUID="4fb12988-754d-430e-9840-561a258bb3e9" URI="" ISO639_1="et" ISO639_2="est" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="357" CREATED="2009-01-28 17:07:03.0" UUID="4b826c59-54ec-42a2-8789-67dcffd5c8fb" URI="" ISO639_1="" ISO639_2="lua" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="358" CREATED="2009-01-28 17:07:03.0" UUID="abc32d6e-f8cd-4218-8921-8713160cb0a4" URI="" ISO639_1="nn" ISO639_2="nno" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="359" CREATED="2009-01-28 17:07:03.0" UUID="3f53b130-6da7-45a2-8bb1-cb7d53f59d1d" URI="" ISO639_1="" ISO639_2="nap" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="360" CREATED="2009-01-28 17:07:03.0" UUID="e8e3a155-5306-4f71-898f-07eda08ed975" URI="" ISO639_1="" ISO639_2="udm" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="361" CREATED="2009-01-28 17:07:03.0" UUID="2af255f1-52bb-41ae-986f-9a6b71e0ddc4" URI="" ISO639_1="rn" ISO639_2="run" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="362" CREATED="2009-01-28 17:07:03.0" UUID="63c28016-658e-47dd-88b5-2cd3f4a040bc" URI="" ISO639_1="" ISO639_2="suk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="363" CREATED="2009-01-28 17:07:03.0" UUID="47f02bfd-d79c-41a4-be9b-43aa9e278f66" URI="" ISO639_1="" ISO639_2="scn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="364" CREATED="2009-01-28 17:07:03.0" UUID="dc5a1a59-7b4e-41b8-9aa6-182eca2d8778" URI="" ISO639_1="" ISO639_2="nso" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="365" CREATED="2009-01-28 17:07:03.0" UUID="f85f8fcd-eb10-41bd-b296-22bb4aa25147" URI="" ISO639_1="" ISO639_2="afa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="366" CREATED="2009-01-28 17:07:03.0" UUID="29cc1f21-8945-47e6-8d23-bfa1878d3bf0" URI="" ISO639_1="" ISO639_2="nub" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="367" CREATED="2009-01-28 17:07:03.0" UUID="4c2cfc13-efbb-4aa1-88b5-960adc8c29a0" URI="" ISO639_1="" ISO639_2="chg" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="368" CREATED="2009-01-28 17:07:03.0" UUID="9e433e6b-044e-49d0-8b87-87af9e249e04" URI="" ISO639_1="" ISO639_2="ang" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="369" CREATED="2009-01-28 17:07:03.0" UUID="b3ad88e2-0080-466f-9bf4-b01ba4122563" URI="" ISO639_1="aa" ISO639_2="aar" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="370" CREATED="2009-01-28 17:07:03.0" UUID="f763355e-8b02-4df2-a5f1-9120071c77cd" URI="" ISO639_1="" ISO639_2="tkl" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="371" CREATED="2009-01-28 17:07:03.0" UUID="e1997c20-90c7-4b7a-a7c3-b75f9cff6aeb" URI="" ISO639_1="cu" ISO639_2="chu" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="372" CREATED="2009-01-28 17:07:03.0" UUID="005f5fa5-ed4b-445f-9b8a-16662485462d" URI="" ISO639_1="" ISO639_2="non" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="373" CREATED="2009-01-28 17:07:03.0" UUID="1a4d87e6-ac4c-43ec-a4fb-452a19347684" URI="" ISO639_1="am" ISO639_2="amh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="374" CREATED="2009-01-28 17:07:03.0" UUID="db9d12b2-ef5a-4756-88f9-b79cd9b64a01" URI="" ISO639_1="hr" ISO639_2="scr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="375" CREATED="2009-01-28 17:07:03.0" UUID="73d9c324-fbc2-47b7-a4be-8f0f43485a82" URI="" ISO639_1="" ISO639_2="tup" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="376" CREATED="2009-01-28 17:07:03.0" UUID="59729403-2378-4697-b390-ac41ecb72380" URI="" ISO639_1="" ISO639_2="sog" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="377" CREATED="2009-01-28 17:07:03.0" UUID="bce6190e-f45b-43bf-bc99-ca527b1d2598" URI="" ISO639_1="" ISO639_2="bug" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="378" CREATED="2009-01-28 17:07:03.0" UUID="b604349f-2bc0-44f5-92dd-a66dba3fe055" URI="" ISO639_1="af" ISO639_2="afr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="379" CREATED="2009-01-28 17:07:03.0" UUID="7cafd5d8-b61d-4942-b9c9-c2dcadefb22c" URI="" ISO639_1="br" ISO639_2="bre" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="380" CREATED="2009-01-28 17:07:03.0" UUID="86b14ab7-2989-4448-b23b-0c6185281732" URI="" ISO639_1="" ISO639_2="anp" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="381" CREATED="2009-01-28 17:07:03.0" UUID="ed994d78-c442-4ea8-aede-8723a2bee717" URI="" ISO639_1="ki" ISO639_2="kik" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="382" CREATED="2009-01-28 17:07:03.0" UUID="2d318a92-1e48-458e-b0cd-28165ee95cde" URI="" ISO639_1="" ISO639_2="alg" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="383" CREATED="2009-01-28 17:07:03.0" UUID="8b589844-cd06-47f6-88cf-b4f8afa4ace7" URI="" ISO639_1="tn" ISO639_2="tsn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="384" CREATED="2009-01-28 17:07:03.0" UUID="7759a1d8-a5ea-454a-8c93-1dcfaae8cc21" URI="" ISO639_1="fr" ISO639_2="fre" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="385" CREATED="2009-01-28 17:07:03.0" UUID="4e184daa-9ee2-4c0e-842d-038f1c0b1280" URI="" ISO639_1="tt" ISO639_2="tat" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="386" CREATED="2009-01-28 17:07:03.0" UUID="2cf61318-c2ef-4aaf-b9bc-5317c291d8fa" URI="" ISO639_1="ng" ISO639_2="ndo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="387" CREATED="2009-01-28 17:07:03.0" UUID="bd5b4edb-271d-4b3c-b22c-9d53cbc5a829" URI="" ISO639_1="" ISO639_2="nym" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="388" CREATED="2009-01-28 17:07:03.0" UUID="1e50c9f4-4261-465c-a7c7-191ec49596ff" URI="" ISO639_1="sl" ISO639_2="slv" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="389" CREATED="2009-01-28 17:07:03.0" UUID="f75a6211-3022-4600-8053-278c85676f34" URI="" ISO639_1="tg" ISO639_2="tgk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="390" CREATED="2009-01-28 17:07:03.0" UUID="72235dce-b0f2-4bbe-a400-f236cadeb86e" URI="" ISO639_1="ia" ISO639_2="ina" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="391" CREATED="2009-01-28 17:07:03.0" UUID="c7bef5c5-6fb6-4fd2-b464-fed4f052adcb" URI="" ISO639_1="" ISO639_2="hai" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="392" CREATED="2009-01-28 17:07:03.0" UUID="6b8f25c2-ddb7-4b65-8722-ffbe992cf2ce" URI="" ISO639_1="se" ISO639_2="sme" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="393" CREATED="2009-01-28 17:07:03.0" UUID="d32011e1-faf8-4310-80b1-a79476a8cecc" URI="" ISO639_1="" ISO639_2="gem" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="394" CREATED="2009-01-28 17:07:03.0" UUID="0d21e928-75d8-4eef-a5dd-8ef53b93a1aa" URI="" ISO639_1="wa" ISO639_2="wln" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="395" CREATED="2009-01-28 17:07:03.0" UUID="4c6285d7-befc-4329-b27f-3a213969c9cf" URI="" ISO639_1="" ISO639_2="btk" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="396" CREATED="2009-01-28 17:07:03.0" UUID="465c09ba-cbce-4dab-a449-1c05094f4d2b" URI="" ISO639_1="" ISO639_2="iro" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="397" CREATED="2009-01-28 17:07:03.0" UUID="52cc1adb-b715-4a2a-8aaf-8d32fddd3958" URI="" ISO639_1="" ISO639_2="srn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="398" CREATED="2009-01-28 17:07:03.0" UUID="d4876784-4fc9-4c56-8a72-7519186ce98c" URI="" ISO639_1="ks" ISO639_2="kas" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="399" CREATED="2009-01-28 17:07:03.0" UUID="4d3ec2eb-536f-4aab-81c5-34e37a3edbba" URI="" ISO639_1="ar" ISO639_2="ara" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="400" CREATED="2009-01-28 17:07:03.0" UUID="b4c105cb-a53e-4734-acd8-3128ba76451b" URI="" ISO639_1="" ISO639_2="kmb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="401" CREATED="2009-01-28 17:07:03.0" UUID="394994b3-576a-484d-a57f-e207deece4c8" URI="" ISO639_1="" ISO639_2="ceb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="402" CREATED="2009-01-28 17:07:03.0" UUID="cc5c315b-096c-4fc3-a81f-7d404378576c" URI="" ISO639_1="" ISO639_2="mni" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="403" CREATED="2009-01-28 17:07:03.0" UUID="d4541a74-becc-4ba6-874c-510ee0d0a29f" URI="" ISO639_1="sv" ISO639_2="swe" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="404" CREATED="2009-01-28 17:07:03.0" UUID="45ee4d82-3561-4095-bae0-c054383c651f" URI="" ISO639_1="" ISO639_2="bas" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="405" CREATED="2009-01-28 17:07:03.0" UUID="6c081f57-acbf-4eb6-826e-8d32b5b42fe4" URI="" ISO639_1="" ISO639_2="kos" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="406" CREATED="2009-01-28 17:07:03.0" UUID="e9f8cdb7-6819-44e8-95d3-e2d0690c3523" URI="" ISO639_1="en" ISO639_2="eng" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="407" CREATED="2009-01-28 17:07:03.0" UUID="72859b96-61b9-4400-8489-392ceb529b89" URI="" ISO639_1="pi" ISO639_2="pli" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="408" CREATED="2009-01-28 17:07:03.0" UUID="ba95f29b-f11c-4d79-9973-6de75087c7b3" URI="" ISO639_1="cs" ISO639_2="cze" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="409" CREATED="2009-01-28 17:07:03.0" UUID="e72b4d06-a496-4e55-8c5d-093594ab8da2" URI="" ISO639_1="" ISO639_2="iba" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="410" CREATED="2009-01-28 17:07:03.0" UUID="49698678-dc5e-45d8-afb2-09f57d27e176" URI="" ISO639_1="" ISO639_2="bat" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="411" CREATED="2009-01-28 17:07:03.0" UUID="35985d42-51bb-41b7-83a9-58845d499f8b" URI="" ISO639_1="so" ISO639_2="som" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="412" CREATED="2009-01-28 17:07:03.0" UUID="17c38fb4-2acc-4cfc-a0d1-83772410c161" URI="" ISO639_1="" ISO639_2="myn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="413" CREATED="2009-01-28 17:07:03.0" UUID="17c29acf-96d3-484c-8285-2861fdbdb2f3" URI="" ISO639_1="ny" ISO639_2="nya" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="414" CREATED="2009-01-28 17:07:03.0" UUID="ecf81f98-177d-49a6-ad0f-f6d89944c76b" URI="" ISO639_1="tr" ISO639_2="tur" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="415" CREATED="2009-01-28 17:07:03.0" UUID="f3964fe0-7625-431f-8155-b646d1671b44" URI="" ISO639_1="" ISO639_2="car" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="416" CREATED="2009-01-28 17:07:03.0" UUID="617cb541-33a5-43ee-85fa-01823c1f1007" URI="" ISO639_1="" ISO639_2="chr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="417" CREATED="2009-01-28 17:07:03.0" UUID="4783aea1-46c0-40b3-ad02-c13157c7817d" URI="" ISO639_1="" ISO639_2="lez" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="418" CREATED="2009-01-28 17:07:03.0" UUID="a50a5d26-8786-4549-99c1-b4280fd713a1" URI="" ISO639_1="" ISO639_2="gor" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="419" CREATED="2009-01-28 17:07:03.0" UUID="1ea8fb85-19c9-48db-9ac6-5f21df1fd4c3" URI="" ISO639_1="sd" ISO639_2="snd" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="420" CREATED="2009-01-28 17:07:03.0" UUID="4441b4e1-382c-4a1e-86a4-aba93d20f6f3" URI="" ISO639_1="ur" ISO639_2="urd" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="421" CREATED="2009-01-28 17:07:03.0" UUID="0107ae7d-d244-4352-ba4d-d2969c55d17e" URI="" ISO639_1="" ISO639_2="wak" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="422" CREATED="2009-01-28 17:07:03.0" UUID="f8adeec5-80e3-4945-a1c8-2e7f0ca6ffd7" URI="" ISO639_1="" ISO639_2="nqo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="423" CREATED="2009-01-28 17:07:03.0" UUID="6778c7fb-c195-4dc1-ae3f-164201314e51" URI="" ISO639_1="ja" ISO639_2="jpn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="424" CREATED="2009-01-28 17:07:03.0" UUID="052b0c83-456b-4592-b0c7-58318dbdb34a" URI="" ISO639_1="" ISO639_2="mul" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="425" CREATED="2009-01-28 17:07:03.0" UUID="e8a2f6b2-8f34-4514-8771-5a3ec93d2468" URI="" ISO639_1="" ISO639_2="gsw" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="426" CREATED="2009-01-28 17:07:03.0" UUID="67f01415-52d8-4a86-86eb-484fdb0606b8" URI="" ISO639_1="" ISO639_2="eka" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="427" CREATED="2009-01-28 17:07:03.0" UUID="e7a347b4-a38c-4c67-87aa-89db702d9b1b" URI="" ISO639_1="yo" ISO639_2="yor" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="428" CREATED="2009-01-28 17:07:03.0" UUID="5b96e532-8fc7-418e-a051-887b857e93c0" URI="" ISO639_1="" ISO639_2="umb" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="429" CREATED="2009-01-28 17:07:03.0" UUID="0f6f42da-defe-4c6d-88d5-878339ba80f5" URI="" ISO639_1="bo" ISO639_2="tib" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="430" CREATED="2009-01-28 17:07:03.0" UUID="65cb508a-c974-4417-8509-f199c0e074b9" URI="" ISO639_1="" ISO639_2="fur" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="431" CREATED="2009-01-28 17:07:03.0" UUID="dad6f73d-69fb-4006-8626-51710ab3a6b6" URI="" ISO639_1="" ISO639_2="nai" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="432" CREATED="2009-01-28 17:07:03.0" UUID="ebcccf8d-5516-470f-a80c-f74440c000a0" URI="" ISO639_1="" ISO639_2="shn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="433" CREATED="2009-01-28 17:07:03.0" UUID="c999f0da-0bb9-465b-ad52-8b48354cb591" URI="" ISO639_1="ko" ISO639_2="kor" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="434" CREATED="2009-01-28 17:07:03.0" UUID="9d967232-e64f-44ee-8d18-f254b798d02d" URI="" ISO639_1="" ISO639_2="syr" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="435" CREATED="2009-01-28 17:07:03.0" UUID="afbcfec6-22c4-4ec2-ad00-fb6381251076" URI="" ISO639_1="" ISO639_2="kut" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="436" CREATED="2009-01-28 17:07:03.0" UUID="87f48d86-aa28-4080-b9da-186167eb3959" URI="" ISO639_1="ta" ISO639_2="tam" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="437" CREATED="2009-01-28 17:07:03.0" UUID="32e8a660-ad9d-4402-ac2a-7c2c545a94f6" URI="" ISO639_1="" ISO639_2="byn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="438" CREATED="2009-01-28 17:07:03.0" UUID="3e1f5c2e-0103-4bfe-8aa6-e6d01c965539" URI="" ISO639_1="" ISO639_2="sit" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="439" CREATED="2009-01-28 17:07:03.0" UUID="2d69695f-a114-4415-b6e8-5248bba8853c" URI="" ISO639_1="" ISO639_2="mwl" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="440" CREATED="2009-01-28 17:07:03.0" UUID="b5dc41c7-250d-47d3-aa85-7a7c6b880cb8" URI="" ISO639_1="" ISO639_2="phn" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="441" CREATED="2009-01-28 17:07:03.0" UUID="26f8dcaa-50c5-47b1-b6c3-f2490dd80c78" URI="" ISO639_1="" ISO639_2="sma" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="442" CREATED="2009-01-28 17:07:03.0" UUID="2eee09b8-57eb-4087-9538-7bf4e8312594" URI="" ISO639_1="my" ISO639_2="bur" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="443" CREATED="2009-01-28 17:07:03.0" UUID="ddb2fe99-1841-49ac-9686-0149771f0887" URI="" ISO639_1="" ISO639_2="cel" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="444" CREATED="2009-01-28 17:07:03.0" UUID="14a934a5-de0c-4371-80f1-def859437bfb" URI="" ISO639_1="" ISO639_2="kro" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="445" CREATED="2009-01-28 17:07:03.0" UUID="3f362e1d-eb8f-40dd-afb5-3884224bbd48" URI="" ISO639_1="" ISO639_2="new" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="446" CREATED="2009-01-28 17:07:03.0" UUID="0ba49b92-7d15-48de-a1de-74e3170b2da7" URI="" ISO639_1="" ISO639_2="znd" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="447" CREATED="2009-01-28 17:07:03.0" UUID="a27c3cb8-8913-45f9-99a3-f3770a258f70" URI="" ISO639_1="gv" ISO639_2="glv" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="448" CREATED="2009-01-28 17:07:03.0" UUID="ded2f739-586d-42ea-a1b1-5ed3e877d1be" URI="" ISO639_1="" ISO639_2="lol" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="449" CREATED="2009-01-28 17:07:03.0" UUID="3b54c94b-e6c5-4072-91c8-bfe383279a9e" URI="" ISO639_1="om" ISO639_2="orm" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="450" CREATED="2009-01-28 17:07:03.0" UUID="a63a0463-5d91-46fc-b62e-be4308178b64" URI="" ISO639_1="ay" ISO639_2="aym" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="451" CREATED="2009-01-28 17:07:03.0" UUID="a9641a51-0502-4798-acc5-2daeb81cc3a2" URI="" ISO639_1="sg" ISO639_2="sag" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="452" CREATED="2009-01-28 17:07:03.0" UUID="ac6431db-b89f-445e-8b4c-c9835142bce7" URI="" ISO639_1="" ISO639_2="dyu" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="453" CREATED="2009-01-28 17:07:03.0" UUID="d42c76ea-e92b-45f0-9e54-430d3519c037" URI="" ISO639_1="sn" ISO639_2="sna" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="454" CREATED="2009-01-28 17:07:03.0" UUID="b8a83111-4a2f-4ca4-a27c-fc0d75585963" URI="" ISO639_1="sk" ISO639_2="slo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="455" CREATED="2009-01-28 17:07:03.0" UUID="225123e7-aa55-41b4-bf14-ab9ef9fb7795" URI="" ISO639_1="" ISO639_2="rom" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="456" CREATED="2009-01-28 17:07:03.0" UUID="b20fa600-5b9b-4714-8dcd-51275a6e1ab0" URI="" ISO639_1="" ISO639_2="gil" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="457" CREATED="2009-01-28 17:07:03.0" UUID="1dd1794d-5868-4224-80c7-d17e0078eca8" URI="" ISO639_1="th" ISO639_2="tha" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="458" CREATED="2009-01-28 17:07:03.0" UUID="6a3409a6-4804-4b6f-9efb-179003523e11" URI="" ISO639_1="bg" ISO639_2="bul" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="459" CREATED="2009-01-28 17:07:03.0" UUID="b049c1c1-ddb5-48f3-ad7a-c6aeb1cb1432" URI="" ISO639_1="dz" ISO639_2="dzo" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="460" CREATED="2009-01-28 17:07:03.0" UUID="e19c2fc4-75d1-4071-92bb-cde6a8b7383e" URI="" ISO639_1="" ISO639_2="paa" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="461" CREATED="2009-01-28 17:07:03.0" UUID="fefaa178-65ff-4add-bddf-c89be78fa5a8" URI="" ISO639_1="" ISO639_2="fan" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="462" CREATED="2009-01-28 17:07:03.0" UUID="f998ead1-6619-4993-8c11-e41d6119d31a" URI="" ISO639_1="ba" ISO639_2="bak" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="463" CREATED="2009-01-28 17:07:03.0" UUID="e446caca-0588-41f1-8b28-637ee9c8aad2" URI="" ISO639_1="" ISO639_2="pau" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="464" CREATED="2009-01-28 17:07:03.0" UUID="02b6e82c-b223-4af3-9ced-eee857094245" URI="" ISO639_1="" ISO639_2="tli" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="465" CREATED="2009-01-28 17:07:03.0" UUID="ce15d514-c62d-4adb-b6f5-0096f9934d58" URI="" ISO639_1="" ISO639_2="tmh" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="466" CREATED="2009-01-28 17:07:03.0" UUID="7131c3ae-33e2-4983-b7d9-1d7bfb481f6b" URI="" ISO639_1="" ISO639_2="mno" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="467" CREATED="2009-01-28 17:07:03.0" UUID="94130a17-38e2-4c60-993a-355fdd9bd8a1" URI="" ISO639_1="" ISO639_2="sel" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="468" CREATED="2009-01-28 17:07:03.0" UUID="c2412f89-94ec-4cec-b75b-218d6202138e" URI="" ISO639_1="" ISO639_2="cpe" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="469" CREATED="2009-01-28 17:07:03.0" UUID="55f1b4e0-fd9d-4849-a11c-5262b2e91a87" URI="" ISO639_1="ug" ISO639_2="uig" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="470" CREATED="2009-01-28 17:07:03.0" UUID="9b315a1e-f772-4f3f-839c-3fe1f4cb1d67" URI="" ISO639_1="os" ISO639_2="oss" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="471" CREATED="2009-01-28 17:07:03.0" UUID="d8968f2e-e383-43d7-913b-d6f35ff9a587" URI="" ISO639_1="" ISO639_2="smi" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="472" CREATED="2009-01-28 17:07:03.0" UUID="a70f310b-1922-4d48-991f-b3aa63f30832" URI="" ISO639_1="" ISO639_2="sga" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="473" CREATED="2009-01-28 17:07:03.0" UUID="bd7ce28f-6e88-4075-b1b5-2420a94233e6" URI="" ISO639_1="" ISO639_2="sid" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="474" CREATED="2009-01-28 17:07:03.0" UUID="867fbe26-e8be-49db-b751-6e8da681a37a" URI="" ISO639_1="mi" ISO639_2="mao" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="475" CREATED="2009-01-28 17:07:03.0" UUID="4b8ae63d-0078-4454-95a6-2248c025d8a5" URI="" ISO639_1="" ISO639_2="arp" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="476" CREATED="2009-01-28 17:07:03.0" UUID="53c05614-2669-4c30-93aa-217c19848eb8" URI="" ISO639_1="rw" ISO639_2="kin" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="477" CREATED="2009-01-28 17:07:03.0" UUID="fb7e9746-1bc6-4384-802d-7784b8b301fa" URI="" ISO639_1="st" ISO639_2="sot" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="478" CREATED="2009-01-28 17:07:03.0" UUID="ca1e1cc3-ffe7-449e-8077-564b746d8526" URI="" ISO639_1="tl" ISO639_2="tgl" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="479" CREATED="2009-01-28 17:07:03.0" UUID="13ef4b98-3a37-4bed-9bee-96d3a10eed02" URI="" ISO639_1="" ISO639_2="chp" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="480" CREATED="2009-01-28 17:07:03.0" UUID="176c9e51-4106-4ac4-a3e8-19eff0969147" URI="" ISO639_1="ku" ISO639_2="kur" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="481" CREATED="2009-01-28 17:07:03.0" UUID="4f0d316e-df44-4f6b-b318-cc8539db9895" URI="" ISO639_1="" ISO639_2="loz" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="482" CREATED="2009-01-28 17:07:03.0" UUID="84633f7a-7dc6-41bf-a5c3-2882e691c974" URI="" ISO639_1="bi" ISO639_2="bis" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="483" CREATED="2009-01-28 17:07:03.0" UUID="2a2da196-a57b-480c-a6c9-0f97f66d1ee1" URI="" ISO639_1="lu" ISO639_2="lub" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="484" CREATED="2009-01-28 17:07:03.0" UUID="929c554c-03be-4327-86e1-8175b01a8995" URI="" ISO639_1="gu" ISO639_2="guj" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Language" ID="485" CREATED="2009-01-28 17:07:03.0" UUID="a78f236f-8fbf-4788-86ed-80fecc3e0fe6" URI="" ISO639_1="" ISO639_2="myv" VOCABULARY_ID="1"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="486" CREATED="2009-01-28 17:07:04.0" UUID="c57adcff-5213-45f0-a5f0-97a9f5c0f1fe" URI="" ORDERINDEX="9" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="487" CREATED="2009-01-28 17:07:04.0" UUID="a2afdb9a-04a0-434c-9e75-d07dbeb86526" URI="" ORDERINDEX="8" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="488" CREATED="2009-01-28 17:07:04.0" UUID="12b861c9-c922-498c-8b1a-62afc26d19e3" URI="" ORDERINDEX="7" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="489" CREATED="2009-01-28 17:07:04.0" UUID="71fd9ab7-9b07-4eb6-8e54-c519aff56728" URI="" ORDERINDEX="6" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="490" CREATED="2009-01-28 17:07:04.0" UUID="81d8aca3-ddd7-4537-9f2b-5327c95b6e28" URI="" ORDERINDEX="5" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="491" CREATED="2009-01-28 17:07:04.0" UUID="f8039275-d2c0-4753-a1ab-0336642a1499" URI="" ORDERINDEX="4" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="492" CREATED="2009-01-28 17:07:04.0" UUID="7f4f4f89-3b4c-475d-929f-144109bd8457" URI="" ORDERINDEX="3" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="493" CREATED="2009-01-28 17:07:04.0" UUID="c204c529-d8d2-458f-b939-96f0ebd2cbe8" URI="" ORDERINDEX="2" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="Continent" ID="494" CREATED="2009-01-28 17:07:04.0" UUID="3b69f979-408c-4080-b573-0ad78a315610" URI="" ORDERINDEX="1" VOCABULARY_ID="2"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="495" CREATED="2009-01-28 17:07:04.0" UUID="aa96ca19-46ab-4114-a494-96886eb7108a" URI="" ORDERINDEX="249" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="496" CREATED="2009-01-28 17:07:04.0" UUID="aa96ca19-46ab-c953-a494-96886eb7108a" URI="" ORDERINDEX="248" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="497" CREATED="2009-01-28 17:07:04.0" UUID="d4cf6c57-892c-c953-a494-96886eb7108a" URI="" ORDERINDEX="247" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="498" CREATED="2009-01-28 17:07:04.0" UUID="d4cf6c57-892c-4114-bf57-96886eb7108a" URI="" ORDERINDEX="246" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="499" CREATED="2009-01-28 17:07:04.0" UUID="aa96ca19-892c-4114-a494-d4b287f76fab" URI="" ORDERINDEX="245" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="500" CREATED="2009-01-28 17:07:04.0" UUID="aa96ca19-892c-4114-af29-d4b287f76fab" URI="" ORDERINDEX="244" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="501" CREATED="2009-01-28 17:07:04.0" UUID="36aea55c-892c-4114-af29-d4b287f76fab" URI="" ORDERINDEX="243" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="502" CREATED="2009-01-28 17:07:04.0" UUID="36aea55c-892c-6365-af29-e4842f13eb4c" URI="" ORDERINDEX="242" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="503" CREATED="2009-01-28 17:07:04.0" UUID="36aea55c-46ab-6365-af29-e4842f13eb4c" URI="" ORDERINDEX="241" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="504" CREATED="2009-01-28 17:07:04.0" UUID="aa96ca19-46ab-6365-af29-e4842f13eb4c" URI="" ORDERINDEX="240" ISO3166_A2="" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="505" CREATED="2009-01-28 17:07:04.0" UUID="aa96ca19-46ab-40ad-a494-e4842f13eb4c" URI="" ORDERINDEX="239" ISO3166_A2="ZW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="506" CREATED="2009-01-28 17:07:04.0" UUID="90318040-d346-4c8f-be69-fa8ade0b12d9" URI="" ORDERINDEX="238" ISO3166_A2="ZM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="507" CREATED="2009-01-28 17:07:04.0" UUID="713e1840-ff18-4a96-bc32-3da2b048c77d" URI="" ORDERINDEX="237" ISO3166_A2="YE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="508" CREATED="2009-01-28 17:07:04.0" UUID="fa9e1eb4-ee4c-4b13-82dd-ec42a8b7e627" URI="" ORDERINDEX="236" ISO3166_A2="EH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="509" CREATED="2009-01-28 17:07:04.0" UUID="b4844963-f140-41b3-935d-58fd14df5878" URI="" ORDERINDEX="235" ISO3166_A2="WF" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="510" CREATED="2009-01-28 17:07:04.0" UUID="f9295319-572e-4c3d-9962-176a7802750b" URI="" ORDERINDEX="234" ISO3166_A2="VN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="511" CREATED="2009-01-28 17:07:04.0" UUID="e8099497-0e51-41ca-85d7-d23b730d9c1a" URI="" ORDERINDEX="233" ISO3166_A2="VE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="512" CREATED="2009-01-28 17:07:04.0" UUID="b4e16ad0-3cb7-4809-a5ae-9a143595c2a4" URI="" ORDERINDEX="232" ISO3166_A2="VU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="513" CREATED="2009-01-28 17:07:04.0" UUID="86ebc56d-8b06-4bb1-a0f9-b15626c02fbd" URI="" ORDERINDEX="231" ISO3166_A2="UZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="514" CREATED="2009-01-28 17:07:04.0" UUID="baf46f00-7b05-4d88-b1cf-ce922f3ba262" URI="" ORDERINDEX="230" ISO3166_A2="UY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="515" CREATED="2009-01-28 17:07:04.0" UUID="d9dacd9e-dd04-4641-957a-589bdb9fe5fb" URI="" ORDERINDEX="229" ISO3166_A2="US" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="516" CREATED="2009-01-28 17:07:04.0" UUID="4e88114b-e278-4816-ba7d-7bc17098c407" URI="" ORDERINDEX="228" ISO3166_A2="UM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="517" CREATED="2009-01-28 17:07:04.0" UUID="5364e352-926f-4e07-9abb-2deea19346ec" URI="" ORDERINDEX="227" ISO3166_A2="GB" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="518" CREATED="2009-01-28 17:07:04.0" UUID="a5b5e8ce-66c8-4ca0-a31b-473c90876108" URI="" ORDERINDEX="226" ISO3166_A2="AE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="519" CREATED="2009-01-28 17:07:04.0" UUID="c44e49c7-a447-466d-ae4f-d290ab03ff18" URI="" ORDERINDEX="225" ISO3166_A2="UA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="520" CREATED="2009-01-28 17:07:04.0" UUID="e74c11af-3a4e-4d13-9c2a-2e57d2954111" URI="" ORDERINDEX="224" ISO3166_A2="UG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="521" CREATED="2009-01-28 17:07:04.0" UUID="b5f9a299-41ea-414b-83d5-91518f64a481" URI="" ORDERINDEX="223" ISO3166_A2="VI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="522" CREATED="2009-01-28 17:07:04.0" UUID="30745e37-22c6-4b92-b955-85cb23f0526f" URI="" ORDERINDEX="222" ISO3166_A2="TV" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="523" CREATED="2009-01-28 17:07:04.0" UUID="d6c83f2f-5130-477a-994e-daa08b70352f" URI="" ORDERINDEX="221" ISO3166_A2="TC" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="524" CREATED="2009-01-28 17:07:04.0" UUID="442c0439-cf39-4c5a-96de-a99fe1a476cf" URI="" ORDERINDEX="220" ISO3166_A2="TM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="525" CREATED="2009-01-28 17:07:04.0" UUID="f7c15c55-d0b3-4eda-8961-582d5071df78" URI="" ORDERINDEX="219" ISO3166_A2="TR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="526" CREATED="2009-01-28 17:07:04.0" UUID="e121e4d7-e1aa-4f2e-9b9e-33f5109460d7" URI="" ORDERINDEX="218" ISO3166_A2="TN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="527" CREATED="2009-01-28 17:07:04.0" UUID="20ed7f03-1263-47fd-a4df-26fab6daae75" URI="" ORDERINDEX="217" ISO3166_A2="TT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="528" CREATED="2009-01-28 17:07:04.0" UUID="0abdcd01-09ff-42a8-b8ba-10458dca5ba9" URI="" ORDERINDEX="216" ISO3166_A2="TO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="529" CREATED="2009-01-28 17:07:04.0" UUID="b301d428-6936-4538-b5d3-778534b779e6" URI="" ORDERINDEX="215" ISO3166_A2="TK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="530" CREATED="2009-01-28 17:07:04.0" UUID="75f15dd5-9998-4937-9a2c-b440798a6695" URI="" ORDERINDEX="214" ISO3166_A2="TG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="531" CREATED="2009-01-28 17:07:04.0" UUID="77f9e6b5-a363-454c-996b-34aec2f10f99" URI="" ORDERINDEX="213" ISO3166_A2="TL" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="532" CREATED="2009-01-28 17:07:04.0" UUID="6c35d8b5-a75b-4f17-8869-04cad4535bd8" URI="" ORDERINDEX="212" ISO3166_A2="TH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="533" CREATED="2009-01-28 17:07:04.0" UUID="8a519200-784a-495a-b0da-b3277913b880" URI="" ORDERINDEX="211" ISO3166_A2="TZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="534" CREATED="2009-01-28 17:07:04.0" UUID="b78e4b96-6095-4316-bc4c-6bdec5593622" URI="" ORDERINDEX="210" ISO3166_A2="TJ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="535" CREATED="2009-01-28 17:07:04.0" UUID="0fffb0e5-81b9-40be-be69-9aff204f51c4" URI="" ORDERINDEX="209" ISO3166_A2="TW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="536" CREATED="2009-01-28 17:07:04.0" UUID="f92c3ca4-3468-40b6-b387-d4677fca86d9" URI="" ORDERINDEX="208" ISO3166_A2="SY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="537" CREATED="2009-01-28 17:07:04.0" UUID="dd79f943-8237-4710-bc5f-acc1ea1a2dd8" URI="" ORDERINDEX="207" ISO3166_A2="CH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="538" CREATED="2009-01-28 17:07:04.0" UUID="8272e206-cb6f-499c-a1d9-7c581f5947c5" URI="" ORDERINDEX="206" ISO3166_A2="SE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="539" CREATED="2009-01-28 17:07:04.0" UUID="bb006073-0088-4adf-9482-01e598bc3fd3" URI="" ORDERINDEX="205" ISO3166_A2="SZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="540" CREATED="2009-01-28 17:07:04.0" UUID="e47f9fe5-54c7-4c61-8c74-abc514749e41" URI="" ORDERINDEX="204" ISO3166_A2="SJ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="541" CREATED="2009-01-28 17:07:04.0" UUID="6268a5c7-df0e-4230-8681-966798383dc4" URI="" ORDERINDEX="203" ISO3166_A2="SR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="542" CREATED="2009-01-28 17:07:04.0" UUID="a47a922b-fa61-4164-8f6d-7cf2ba33ca8c" URI="" ORDERINDEX="202" ISO3166_A2="SD" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="543" CREATED="2009-01-28 17:07:04.0" UUID="c7e74d0e-5c0d-4e3f-a19b-e072abbf0b92" URI="" ORDERINDEX="201" ISO3166_A2="LK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="544" CREATED="2009-01-28 17:07:04.0" UUID="e4d6474b-d903-4850-b51e-389f546b7601" URI="" ORDERINDEX="200" ISO3166_A2="ES" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="545" CREATED="2009-01-28 17:07:04.0" UUID="bf34dad1-63d1-4859-8818-da369616c470" URI="" ORDERINDEX="199" ISO3166_A2="GS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="546" CREATED="2009-01-28 17:07:04.0" UUID="508c9fcb-1b6c-4225-8e31-262a4df64a85" URI="" ORDERINDEX="198" ISO3166_A2="ZA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="547" CREATED="2009-01-28 17:07:04.0" UUID="e8591331-3b75-4569-90a6-4aca1d1d9a53" URI="" ORDERINDEX="197" ISO3166_A2="SO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="548" CREATED="2009-01-28 17:07:04.0" UUID="fc915f15-b2cf-40a7-8268-7c1f2744295a" URI="" ORDERINDEX="196" ISO3166_A2="SB" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="549" CREATED="2009-01-28 17:07:04.0" UUID="526b3fb4-08fc-4238-aa8b-e3217fae7214" URI="" ORDERINDEX="195" ISO3166_A2="SI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="550" CREATED="2009-01-28 17:07:04.0" UUID="0349b9b5-865d-46ea-9750-ab71962d5106" URI="" ORDERINDEX="194" ISO3166_A2="SK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="551" CREATED="2009-01-28 17:07:04.0" UUID="e063b480-c834-4e39-b7a9-74fc578c637b" URI="" ORDERINDEX="193" ISO3166_A2="SG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="552" CREATED="2009-01-28 17:07:04.0" UUID="88e731a7-5c80-4f29-8cf0-54acf70d6277" URI="" ORDERINDEX="192" ISO3166_A2="SL" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="553" CREATED="2009-01-28 17:07:04.0" UUID="3bb44fb7-0976-4e3d-94b9-439763b53711" URI="" ORDERINDEX="191" ISO3166_A2="SC" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="554" CREATED="2009-01-28 17:07:04.0" UUID="94430436-eb97-4048-bf57-270c42b73fd3" URI="" ORDERINDEX="190" ISO3166_A2="CS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="555" CREATED="2009-01-28 17:07:04.0" UUID="e106a448-1205-4515-96f4-758e98176342" URI="" ORDERINDEX="189" ISO3166_A2="SN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="556" CREATED="2009-01-28 17:07:04.0" UUID="62fe4794-7fb0-4520-9493-b9150436393e" URI="" ORDERINDEX="188" ISO3166_A2="SA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="557" CREATED="2009-01-28 17:07:04.0" UUID="a5369890-7a96-46bf-b91c-2c47d86660dd" URI="" ORDERINDEX="187" ISO3166_A2="ST" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="558" CREATED="2009-01-28 17:07:04.0" UUID="e0c3ad69-a078-424f-a7d4-81025d190c91" URI="" ORDERINDEX="186" ISO3166_A2="SM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="559" CREATED="2009-01-28 17:07:04.0" UUID="7ad3f6bd-5e8a-467b-a481-1a523066b0e7" URI="" ORDERINDEX="185" ISO3166_A2="WS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="560" CREATED="2009-01-28 17:07:04.0" UUID="dfe67a34-6a3a-4a56-8f90-3c007360f105" URI="" ORDERINDEX="184" ISO3166_A2="VC" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="561" CREATED="2009-01-28 17:07:04.0" UUID="34f97908-18c5-4f67-b411-1b905161a330" URI="" ORDERINDEX="183" ISO3166_A2="PM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="562" CREATED="2009-01-28 17:07:04.0" UUID="a3a55f1c-ea50-43df-b141-e8543eb20ebb" URI="" ORDERINDEX="182" ISO3166_A2="LC" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="563" CREATED="2009-01-28 17:07:04.0" UUID="777d19e2-d5e8-48e2-9a0f-cd95097e4e75" URI="" ORDERINDEX="181" ISO3166_A2="KN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="564" CREATED="2009-01-28 17:07:04.0" UUID="626ec513-fddb-41f3-ab36-2ae2190a1bc1" URI="" ORDERINDEX="180" ISO3166_A2="SH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="565" CREATED="2009-01-28 17:07:04.0" UUID="27c2cc85-7c54-4356-b713-836c15f2da4e" URI="" ORDERINDEX="179" ISO3166_A2="RW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="566" CREATED="2009-01-28 17:07:04.0" UUID="504292b5-053a-4c6a-a690-db031ac02fc0" URI="" ORDERINDEX="178" ISO3166_A2="RU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="567" CREATED="2009-01-28 17:07:04.0" UUID="7d7c8221-4123-4ba2-88ef-25e7f10aafbc" URI="" ORDERINDEX="177" ISO3166_A2="RO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="568" CREATED="2009-01-28 17:07:04.0" UUID="d85d98f6-3f09-44b0-a39b-0e2b6bf4746c" URI="" ORDERINDEX="176" ISO3166_A2="RE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="569" CREATED="2009-01-28 17:07:04.0" UUID="710d68a7-4a02-4d70-bbc8-22b904893429" URI="" ORDERINDEX="175" ISO3166_A2="QA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="570" CREATED="2009-01-28 17:07:04.0" UUID="6471bdcc-b4cc-4a07-b946-dd15be7eec41" URI="" ORDERINDEX="174" ISO3166_A2="PR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="571" CREATED="2009-01-28 17:07:04.0" UUID="f47bd6f5-c82b-4932-81ce-40345748536b" URI="" ORDERINDEX="173" ISO3166_A2="PT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="572" CREATED="2009-01-28 17:07:04.0" UUID="579f8a7a-7fa5-4783-a8ec-cdc527781411" URI="" ORDERINDEX="172" ISO3166_A2="PL" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="573" CREATED="2009-01-28 17:07:04.0" UUID="c3abd7ab-c953-4c0c-8bc1-e32f4a49775a" URI="" ORDERINDEX="171" ISO3166_A2="PN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="574" CREATED="2009-01-28 17:07:04.0" UUID="8547697c-d80f-4531-b092-4c9fde373d7b" URI="" ORDERINDEX="170" ISO3166_A2="PH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="575" CREATED="2009-01-28 17:07:04.0" UUID="e4d92c3e-0f91-41d8-b10e-58c78b4c55ea" URI="" ORDERINDEX="169" ISO3166_A2="PE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="576" CREATED="2009-01-28 17:07:04.0" UUID="e99f321f-664a-4a4b-90a9-1bdc98ea35f6" URI="" ORDERINDEX="168" ISO3166_A2="PY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="577" CREATED="2009-01-28 17:07:04.0" UUID="3bc710b1-8b46-48e3-bdcd-54f64ca018cc" URI="" ORDERINDEX="167" ISO3166_A2="PG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="578" CREATED="2009-01-28 17:07:04.0" UUID="fd2ac965-bdb4-484a-9e4a-250f26aad030" URI="" ORDERINDEX="166" ISO3166_A2="PA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="579" CREATED="2009-01-28 17:07:04.0" UUID="41f45c19-6910-470e-86fb-a3f426b8ca9c" URI="" ORDERINDEX="165" ISO3166_A2="PS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="580" CREATED="2009-01-28 17:07:04.0" UUID="02f4bc12-bc36-447b-b08c-e74e8fe25678" URI="" ORDERINDEX="164" ISO3166_A2="PW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="581" CREATED="2009-01-28 17:07:04.0" UUID="d42712ec-45aa-4811-9029-d38e5a607345" URI="" ORDERINDEX="163" ISO3166_A2="PK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="582" CREATED="2009-01-28 17:07:04.0" UUID="36f43aca-3302-4abd-a7e3-f65ff050a087" URI="" ORDERINDEX="162" ISO3166_A2="OM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="583" CREATED="2009-01-28 17:07:04.0" UUID="e136efdf-82bb-4528-be5c-881acd8315cb" URI="" ORDERINDEX="161" ISO3166_A2="NO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="584" CREATED="2009-01-28 17:07:04.0" UUID="43471298-1133-473e-b9b3-9152c5955177" URI="" ORDERINDEX="160" ISO3166_A2="MP" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="585" CREATED="2009-01-28 17:07:04.0" UUID="3d5afd71-90d7-459f-ade1-c8b65cbc7fe1" URI="" ORDERINDEX="159" ISO3166_A2="NF" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="586" CREATED="2009-01-28 17:07:04.0" UUID="e804fe1d-8246-481b-a293-d3c0b71d6abd" URI="" ORDERINDEX="158" ISO3166_A2="NU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="587" CREATED="2009-01-28 17:07:04.0" UUID="6dae052c-7477-485a-9d2c-63760991f9d8" URI="" ORDERINDEX="157" ISO3166_A2="NG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="588" CREATED="2009-01-28 17:07:04.0" UUID="1804792f-cccd-4f14-9e63-5c241bfd8429" URI="" ORDERINDEX="156" ISO3166_A2="NE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="589" CREATED="2009-01-28 17:07:04.0" UUID="290da724-674d-4c99-8630-cb237162ae0a" URI="" ORDERINDEX="155" ISO3166_A2="NI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="590" CREATED="2009-01-28 17:07:04.0" UUID="322c12c9-7b5a-4343-9861-23c93bbe62b4" URI="" ORDERINDEX="154" ISO3166_A2="NZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="591" CREATED="2009-01-28 17:07:04.0" UUID="587f11ed-27de-4751-9d04-b04f13f3f67c" URI="" ORDERINDEX="153" ISO3166_A2="NC" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="592" CREATED="2009-01-28 17:07:04.0" UUID="5880f989-f10d-4a9c-aae8-4e6c7b212dd8" URI="" ORDERINDEX="152" ISO3166_A2="NL" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="593" CREATED="2009-01-28 17:07:04.0" UUID="802d28f4-442f-47da-8e16-eb08d4de21b4" URI="" ORDERINDEX="151" ISO3166_A2="AN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="594" CREATED="2009-01-28 17:07:04.0" UUID="fa46cd94-68f9-4d0d-98a2-27dc6589658f" URI="" ORDERINDEX="150" ISO3166_A2="NP" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="595" CREATED="2009-01-28 17:07:04.0" UUID="35d8c1ce-a2e9-43d6-9afe-582278a53d34" URI="" ORDERINDEX="149" ISO3166_A2="NR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="596" CREATED="2009-01-28 17:07:04.0" UUID="2c361180-c71c-4de0-8a98-0ff5a71bccaa" URI="" ORDERINDEX="148" ISO3166_A2="NA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="597" CREATED="2009-01-28 17:07:04.0" UUID="fd07e660-b3d6-46e7-bf7d-ec984e573c60" URI="" ORDERINDEX="147" ISO3166_A2="MM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="598" CREATED="2009-01-28 17:07:04.0" UUID="9f2b714e-6159-401b-9108-5d0b9413f6c8" URI="" ORDERINDEX="146" ISO3166_A2="MZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="599" CREATED="2009-01-28 17:07:04.0" UUID="d9c048d5-3220-439d-8af4-2a8ec3036e5b" URI="" ORDERINDEX="145" ISO3166_A2="MA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="600" CREATED="2009-01-28 17:07:04.0" UUID="cd64d76f-6f2b-4e44-8d31-a2765100257b" URI="" ORDERINDEX="144" ISO3166_A2="MS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="601" CREATED="2009-01-28 17:07:04.0" UUID="8b7ebb83-9998-4efd-b97c-f1b7d3a7151f" URI="" ORDERINDEX="143" ISO3166_A2="MN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="602" CREATED="2009-01-28 17:07:04.0" UUID="4ef4c6cb-e02c-41a3-8d5f-74e8ae09ca71" URI="" ORDERINDEX="142" ISO3166_A2="MC" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="603" CREATED="2009-01-28 17:07:04.0" UUID="500f43b9-47c4-4c2a-af58-80adbc40c5f3" URI="" ORDERINDEX="141" ISO3166_A2="MD" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="604" CREATED="2009-01-28 17:07:04.0" UUID="70a91b6f-f196-4051-afdb-4e9aeaca490d" URI="" ORDERINDEX="140" ISO3166_A2="FM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="605" CREATED="2009-01-28 17:07:04.0" UUID="4ba4809b-3fa8-496d-a74d-80843a4740c8" URI="" ORDERINDEX="139" ISO3166_A2="MX" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="606" CREATED="2009-01-28 17:07:04.0" UUID="48116e69-19a9-4169-9952-4ca46c586fa2" URI="" ORDERINDEX="138" ISO3166_A2="YT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="607" CREATED="2009-01-28 17:07:04.0" UUID="719daa07-1dce-4473-8c40-b0efd644028c" URI="" ORDERINDEX="137" ISO3166_A2="MU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="608" CREATED="2009-01-28 17:07:04.0" UUID="dfd0aaf0-4a73-4d41-a6d7-9cdfd01f4c40" URI="" ORDERINDEX="136" ISO3166_A2="MR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="609" CREATED="2009-01-28 17:07:04.0" UUID="93ec114a-0486-4325-bef8-d1b5dea89419" URI="" ORDERINDEX="135" ISO3166_A2="MQ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="610" CREATED="2009-01-28 17:07:04.0" UUID="2c507bb4-de73-4e3f-98ce-26bd2b0c016a" URI="" ORDERINDEX="134" ISO3166_A2="MH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="611" CREATED="2009-01-28 17:07:04.0" UUID="0ee9727a-36cb-40cb-9e65-cd4646c09d63" URI="" ORDERINDEX="133" ISO3166_A2="MT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="612" CREATED="2009-01-28 17:07:04.0" UUID="2e201266-8535-4437-8870-a1d63745ec3d" URI="" ORDERINDEX="132" ISO3166_A2="ML" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="613" CREATED="2009-01-28 17:07:04.0" UUID="5b932d64-3ca6-4691-881f-8b48bd2f3f15" URI="" ORDERINDEX="131" ISO3166_A2="MV" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="614" CREATED="2009-01-28 17:07:04.0" UUID="5650de95-a90c-45c1-92bf-85d9b91911dd" URI="" ORDERINDEX="130" ISO3166_A2="MY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="615" CREATED="2009-01-28 17:07:04.0" UUID="61b41230-6365-433f-9454-5fea029f0e02" URI="" ORDERINDEX="129" ISO3166_A2="MW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="616" CREATED="2009-01-28 17:07:04.0" UUID="116be5e1-861e-4283-8689-f527a923b9d3" URI="" ORDERINDEX="128" ISO3166_A2="MG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="617" CREATED="2009-01-28 17:07:04.0" UUID="1cf135bb-cac7-4ba9-82dc-319ee41984c5" URI="" ORDERINDEX="127" ISO3166_A2="MK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="618" CREATED="2009-01-28 17:07:04.0" UUID="927f5ae3-8d26-4794-9e5d-95cf9e0dfd03" URI="" ORDERINDEX="126" ISO3166_A2="MO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="619" CREATED="2009-01-28 17:07:04.0" UUID="5c481573-3d28-4c2c-87e1-acee4ccc64f1" URI="" ORDERINDEX="125" ISO3166_A2="LU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="620" CREATED="2009-01-28 17:07:04.0" UUID="3a2a0f69-92b1-45ab-baa8-47cf48e7272b" URI="" ORDERINDEX="124" ISO3166_A2="LT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="621" CREATED="2009-01-28 17:07:04.0" UUID="1bb6cf13-1286-40c8-bff8-1a18ef65e213" URI="" ORDERINDEX="123" ISO3166_A2="LI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="622" CREATED="2009-01-28 17:07:04.0" UUID="b9115908-2937-45e3-8fb3-009136b013af" URI="" ORDERINDEX="122" ISO3166_A2="LY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="623" CREATED="2009-01-28 17:07:04.0" UUID="f40126ab-4cbe-409e-8f61-8911280e0857" URI="" ORDERINDEX="121" ISO3166_A2="LR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="624" CREATED="2009-01-28 17:07:04.0" UUID="fbbbc46c-ed8f-45f5-87bc-062a7ee7ffdf" URI="" ORDERINDEX="120" ISO3166_A2="LS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="625" CREATED="2009-01-28 17:07:04.0" UUID="425b9cd2-0056-484a-9f77-5449215c65ba" URI="" ORDERINDEX="119" ISO3166_A2="LB" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="626" CREATED="2009-01-28 17:07:04.0" UUID="c24a316c-cec1-47c2-a777-296ce67ce11a" URI="" ORDERINDEX="118" ISO3166_A2="LV" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="627" CREATED="2009-01-28 17:07:04.0" UUID="83b736b4-5049-4301-b370-ba19e7aa0403" URI="" ORDERINDEX="117" ISO3166_A2="LA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="628" CREATED="2009-01-28 17:07:04.0" UUID="fc3cb838-98f0-46b4-a5fe-5efafc121e95" URI="" ORDERINDEX="116" ISO3166_A2="KG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="629" CREATED="2009-01-28 17:07:04.0" UUID="00451db7-4f5a-4e5d-a6fe-955a8af306a0" URI="" ORDERINDEX="115" ISO3166_A2="KW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="630" CREATED="2009-01-28 17:07:04.0" UUID="f81e0bbb-8984-431e-9962-de590a989fd3" URI="" ORDERINDEX="114" ISO3166_A2="KR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="631" CREATED="2009-01-28 17:07:04.0" UUID="0f2068a7-e284-417d-87ec-691c1e64c13c" URI="" ORDERINDEX="113" ISO3166_A2="KP" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="632" CREATED="2009-01-28 17:07:04.0" UUID="d46f42ec-a520-49d8-ac87-cc8bccc91516" URI="" ORDERINDEX="112" ISO3166_A2="KI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="633" CREATED="2009-01-28 17:07:04.0" UUID="9410b793-43fa-4205-bd24-5f92d392667f" URI="" ORDERINDEX="111" ISO3166_A2="KE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="634" CREATED="2009-01-28 17:07:04.0" UUID="3047567d-997d-491a-b0bc-d4b287f76fab" URI="" ORDERINDEX="110" ISO3166_A2="KZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="635" CREATED="2009-01-28 17:07:04.0" UUID="533b9709-1f97-43e6-8e12-68e116675c64" URI="" ORDERINDEX="109" ISO3166_A2="JO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="636" CREATED="2009-01-28 17:07:04.0" UUID="a8be059a-6f1a-45aa-8019-f6bc3b81c691" URI="" ORDERINDEX="108" ISO3166_A2="JP" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="637" CREATED="2009-01-28 17:07:04.0" UUID="528bede6-26db-47e6-b6cb-32f77ab5fef7" URI="" ORDERINDEX="107" ISO3166_A2="JM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="638" CREATED="2009-01-28 17:07:04.0" UUID="9404a588-503b-4033-acf5-ee4a47337ed0" URI="" ORDERINDEX="106" ISO3166_A2="IT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="639" CREATED="2009-01-28 17:07:04.0" UUID="4c61dc3f-978d-4df9-9bd9-65089ee01dae" URI="" ORDERINDEX="105" ISO3166_A2="IL" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="640" CREATED="2009-01-28 17:07:04.0" UUID="376f61f8-6234-4e61-bc5e-d0d76393cfa0" URI="" ORDERINDEX="104" ISO3166_A2="IE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="641" CREATED="2009-01-28 17:07:04.0" UUID="daf3de07-b1b8-47fa-8207-7e237ea30b7f" URI="" ORDERINDEX="103" ISO3166_A2="IQ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="642" CREATED="2009-01-28 17:07:04.0" UUID="14f148e0-a9cf-428d-a244-a9917aae974d" URI="" ORDERINDEX="102" ISO3166_A2="IR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="643" CREATED="2009-01-28 17:07:04.0" UUID="96eb663a-61b1-4a44-9017-0c4b1ea024d6" URI="" ORDERINDEX="101" ISO3166_A2="ID" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="644" CREATED="2009-01-28 17:07:04.0" UUID="a0b872f9-fc04-440d-ace3-edce8ea75e0b" URI="" ORDERINDEX="100" ISO3166_A2="IN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="645" CREATED="2009-01-28 17:07:04.0" UUID="c7bf91f8-024c-4c04-9c0b-856a27b2d0ca" URI="" ORDERINDEX="99" ISO3166_A2="IS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="646" CREATED="2009-01-28 17:07:04.0" UUID="4d8b56d0-ab74-437f-98e0-3b88ebaa8c89" URI="" ORDERINDEX="98" ISO3166_A2="HU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="647" CREATED="2009-01-28 17:07:04.0" UUID="a3acb45e-39ec-476b-bff2-7ff7e0383f7e" URI="" ORDERINDEX="97" ISO3166_A2="HR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="648" CREATED="2009-01-28 17:07:04.0" UUID="5aa1c98c-9efd-443f-9c10-708f175d5cea" URI="" ORDERINDEX="96" ISO3166_A2="HK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="649" CREATED="2009-01-28 17:07:04.0" UUID="c6684b89-3ea6-4922-9148-d74ff3ee33fd" URI="" ORDERINDEX="95" ISO3166_A2="HN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="650" CREATED="2009-01-28 17:07:04.0" UUID="afebd310-0c8d-4601-b025-a06a1d195035" URI="" ORDERINDEX="94" ISO3166_A2="VA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="651" CREATED="2009-01-28 17:07:04.0" UUID="646a16d4-4a1f-47a0-a475-a19c605e04e0" URI="" ORDERINDEX="93" ISO3166_A2="HM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="652" CREATED="2009-01-28 17:07:04.0" UUID="f1071b42-0247-4c4d-92a5-8bdf18099c50" URI="" ORDERINDEX="92" ISO3166_A2="HT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="653" CREATED="2009-01-28 17:07:04.0" UUID="9cbe3428-0cfe-420e-a88e-eac196a16a37" URI="" ORDERINDEX="91" ISO3166_A2="GY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="654" CREATED="2009-01-28 17:07:04.0" UUID="2dbf1dc1-7428-4284-9090-8785a30f4e71" URI="" ORDERINDEX="90" ISO3166_A2="GW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="655" CREATED="2009-01-28 17:07:04.0" UUID="1b3cf756-b0c2-4e14-88af-d260b937d01f" URI="" ORDERINDEX="89" ISO3166_A2="GN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="656" CREATED="2009-01-28 17:07:04.0" UUID="54040dec-6f42-48cc-93d8-8b283b23e530" URI="" ORDERINDEX="88" ISO3166_A2="GT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="657" CREATED="2009-01-28 17:07:04.0" UUID="264c71d7-91ef-4a5e-9ae6-49aac2a6ba3a" URI="" ORDERINDEX="87" ISO3166_A2="GU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="658" CREATED="2009-01-28 17:07:04.0" UUID="2559330d-f79b-4273-b6db-e47abce1de6c" URI="" ORDERINDEX="86" ISO3166_A2="GP" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="659" CREATED="2009-01-28 17:07:04.0" UUID="dda637e3-7742-4faf-bc05-e5d2c2d86a52" URI="" ORDERINDEX="85" ISO3166_A2="GD" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="660" CREATED="2009-01-28 17:07:04.0" UUID="34bbe398-e0da-40bd-b16b-34a2e9fd3cc2" URI="" ORDERINDEX="84" ISO3166_A2="GL" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="661" CREATED="2009-01-28 17:07:04.0" UUID="5b7c78d1-f068-4c4d-b2c9-9ac075b7169a" URI="" ORDERINDEX="83" ISO3166_A2="GR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="662" CREATED="2009-01-28 17:07:04.0" UUID="46764ae0-2d8d-461e-89d0-a1953edef02f" URI="" ORDERINDEX="82" ISO3166_A2="GI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="663" CREATED="2009-01-28 17:07:04.0" UUID="d4cf6c57-98ee-43b8-8d92-b510371dd151" URI="" ORDERINDEX="81" ISO3166_A2="GH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="664" CREATED="2009-01-28 17:07:04.0" UUID="cbe7ce69-2952-4309-85dd-0d7d4a4830a1" URI="" ORDERINDEX="80" ISO3166_A2="DE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="665" CREATED="2009-01-28 17:07:04.0" UUID="af3f8bd9-1f5e-42cf-a0cc-f9199ab1bb89" URI="" ORDERINDEX="79" ISO3166_A2="GE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="666" CREATED="2009-01-28 17:07:04.0" UUID="3dcc7fea-7785-4254-9947-f724e27a76fc" URI="" ORDERINDEX="78" ISO3166_A2="GM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="667" CREATED="2009-01-28 17:07:04.0" UUID="d285a9f8-4349-4428-a848-c9aa45c4c8ab" URI="" ORDERINDEX="77" ISO3166_A2="GA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="668" CREATED="2009-01-28 17:07:04.0" UUID="590663d7-1b7e-4088-9407-2a589eb73fd4" URI="" ORDERINDEX="76" ISO3166_A2="TF" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="669" CREATED="2009-01-28 17:07:04.0" UUID="7dadc5d4-d4e8-4ad6-bfa4-e8498a706778" URI="" ORDERINDEX="75" ISO3166_A2="PF" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="670" CREATED="2009-01-28 17:07:04.0" UUID="38ba5ec2-913b-4894-a5bf-d55f3bd9d7a0" URI="" ORDERINDEX="74" ISO3166_A2="GF" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="671" CREATED="2009-01-28 17:07:04.0" UUID="4c49d9d3-6bc3-481a-93c6-c8156cba25fe" URI="" ORDERINDEX="73" ISO3166_A2="FR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="672" CREATED="2009-01-28 17:07:04.0" UUID="47bbb4b3-6f18-46f9-9eb6-6ec92c41fe84" URI="" ORDERINDEX="72" ISO3166_A2="FI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="673" CREATED="2009-01-28 17:07:04.0" UUID="8a83a1e5-b648-4cea-86cd-7affaea817a7" URI="" ORDERINDEX="71" ISO3166_A2="FJ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="674" CREATED="2009-01-28 17:07:04.0" UUID="8c667c52-70b6-447a-b4f2-dfa2d759d5f6" URI="" ORDERINDEX="70" ISO3166_A2="FK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="675" CREATED="2009-01-28 17:07:04.0" UUID="0b2933ea-cee6-4611-b52b-09d6fcdbcf9d" URI="" ORDERINDEX="69" ISO3166_A2="FO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="676" CREATED="2009-01-28 17:07:04.0" UUID="8866fa09-8ee2-4957-ad86-4e622085ef40" URI="" ORDERINDEX="68" ISO3166_A2="ET" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="677" CREATED="2009-01-28 17:07:04.0" UUID="b442614f-5bfa-4583-b87b-7c7c856015f1" URI="" ORDERINDEX="67" ISO3166_A2="EE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="678" CREATED="2009-01-28 17:07:04.0" UUID="8394a73d-a0c6-481c-8e86-e05705891fac" URI="" ORDERINDEX="66" ISO3166_A2="ER" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="679" CREATED="2009-01-28 17:07:04.0" UUID="7d0cee2b-086a-465e-afc3-0216bff7fd19" URI="" ORDERINDEX="65" ISO3166_A2="GQ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="680" CREATED="2009-01-28 17:07:04.0" UUID="2706e84c-a57d-40ab-aee4-dce25fe89211" URI="" ORDERINDEX="64" ISO3166_A2="SV" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="681" CREATED="2009-01-28 17:07:04.0" UUID="3c4a2a5a-d3d7-4c82-a28f-2feaa7050c04" URI="" ORDERINDEX="63" ISO3166_A2="EG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="682" CREATED="2009-01-28 17:07:04.0" UUID="e396160a-3554-4da8-ad40-cd7137c021d7" URI="" ORDERINDEX="62" ISO3166_A2="EC" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="683" CREATED="2009-01-28 17:07:04.0" UUID="1c2084e4-38cc-41d1-9d33-0360fed7c55d" URI="" ORDERINDEX="61" ISO3166_A2="DO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="684" CREATED="2009-01-28 17:07:04.0" UUID="c8ef3805-69dd-4e84-ab69-c813252910dd" URI="" ORDERINDEX="60" ISO3166_A2="DM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="685" CREATED="2009-01-28 17:07:04.0" UUID="8c80ca2b-e6e6-46bc-9f35-978a1a078a55" URI="" ORDERINDEX="59" ISO3166_A2="DJ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="686" CREATED="2009-01-28 17:07:04.0" UUID="dbf70b64-a47e-4339-ae07-828f9ff2b7d8" URI="" ORDERINDEX="58" ISO3166_A2="DK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="687" CREATED="2009-01-28 17:07:04.0" UUID="56ee8c08-506d-4c27-9c31-db5344356ea3" URI="" ORDERINDEX="57" ISO3166_A2="CZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="688" CREATED="2009-01-28 17:07:04.0" UUID="4b13d6b8-7eca-4d42-8172-f2018051ca19" URI="" ORDERINDEX="56" ISO3166_A2="CY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="689" CREATED="2009-01-28 17:07:04.0" UUID="229f0575-9035-4738-8741-f131cad59107" URI="" ORDERINDEX="55" ISO3166_A2="CU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="690" CREATED="2009-01-28 17:07:04.0" UUID="5a6673d7-1580-4470-974c-b36c4584247f" URI="" ORDERINDEX="54" ISO3166_A2="CI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="691" CREATED="2009-01-28 17:07:04.0" UUID="aca508c7-2d49-4760-83cb-93b6ccce6751" URI="" ORDERINDEX="53" ISO3166_A2="CR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="692" CREATED="2009-01-28 17:07:04.0" UUID="72f5df8d-ff1c-44af-9444-e368d770f36f" URI="" ORDERINDEX="52" ISO3166_A2="CK" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="693" CREATED="2009-01-28 17:07:04.0" UUID="5c0a6d1d-f5c1-4c92-b3cd-9a1c0cd0d9dc" URI="" ORDERINDEX="51" ISO3166_A2="CG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="694" CREATED="2009-01-28 17:07:04.0" UUID="5a70a5b8-7264-48f1-b552-6fde52ae43f7" URI="" ORDERINDEX="50" ISO3166_A2="CD" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="695" CREATED="2009-01-28 17:07:04.0" UUID="3b52601e-e85f-415c-bc36-acc45717107f" URI="" ORDERINDEX="49" ISO3166_A2="KM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="696" CREATED="2009-01-28 17:07:04.0" UUID="cd334393-328c-4fb7-9600-bdca44c224d6" URI="" ORDERINDEX="48" ISO3166_A2="CO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="697" CREATED="2009-01-28 17:07:04.0" UUID="0994e57b-a0fa-4597-9098-8815235e9053" URI="" ORDERINDEX="47" ISO3166_A2="CC" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="698" CREATED="2009-01-28 17:07:04.0" UUID="e785a72e-2b51-42b9-bea0-888924906b3e" URI="" ORDERINDEX="46" ISO3166_A2="CX" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="699" CREATED="2009-01-28 17:07:04.0" UUID="e0ed33bb-4afe-4994-81f3-b5f91655ff62" URI="" ORDERINDEX="45" ISO3166_A2="CN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="700" CREATED="2009-01-28 17:07:04.0" UUID="9c41644f-4946-4586-b2a4-c8ec33dbe68b" URI="" ORDERINDEX="44" ISO3166_A2="CL" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="701" CREATED="2009-01-28 17:07:04.0" UUID="d1ea5922-6bd2-4c63-b49a-259207c584a4" URI="" ORDERINDEX="43" ISO3166_A2="TD" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="702" CREATED="2009-01-28 17:07:04.0" UUID="40d7ffa6-11cc-417c-adf7-f4acc03cca20" URI="" ORDERINDEX="42" ISO3166_A2="CF" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="703" CREATED="2009-01-28 17:07:04.0" UUID="23264b59-fcc9-47a0-9f69-30a98757c121" URI="" ORDERINDEX="41" ISO3166_A2="KY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="704" CREATED="2009-01-28 17:07:04.0" UUID="083ff0fc-9eea-4f1b-80c0-f203bd2890b8" URI="" ORDERINDEX="40" ISO3166_A2="CV" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="705" CREATED="2009-01-28 17:07:04.0" UUID="5dc3dc6f-3816-44b3-b661-a4cf1528bae7" URI="" ORDERINDEX="39" ISO3166_A2="CA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="706" CREATED="2009-01-28 17:07:04.0" UUID="30ba95a0-a951-46a0-aa67-e539475d4386" URI="" ORDERINDEX="38" ISO3166_A2="CM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="707" CREATED="2009-01-28 17:07:04.0" UUID="485a4988-a3dd-43b8-9c18-e0351618056a" URI="" ORDERINDEX="37" ISO3166_A2="KH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="708" CREATED="2009-01-28 17:07:04.0" UUID="0d584b61-15b9-41fa-8cec-242f1f094417" URI="" ORDERINDEX="36" ISO3166_A2="BI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="709" CREATED="2009-01-28 17:07:04.0" UUID="c4b22384-e26f-4a44-b641-64208f72ea25" URI="" ORDERINDEX="35" ISO3166_A2="BF" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="710" CREATED="2009-01-28 17:07:04.0" UUID="51ddedf0-4646-46ba-9840-ab5513eec455" URI="" ORDERINDEX="34" ISO3166_A2="BG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="711" CREATED="2009-01-28 17:07:04.0" UUID="7e6247b5-4145-454b-ad51-b60809a8a939" URI="" ORDERINDEX="33" ISO3166_A2="BN" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="712" CREATED="2009-01-28 17:07:04.0" UUID="5b71a5a2-0551-4563-b0aa-8aa259b90979" URI="" ORDERINDEX="32" ISO3166_A2="VG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="713" CREATED="2009-01-28 17:07:04.0" UUID="996f912c-971f-40cb-88a4-1575226415b9" URI="" ORDERINDEX="31" ISO3166_A2="IO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="714" CREATED="2009-01-28 17:07:04.0" UUID="dccbe7f8-d5e3-48e5-bcbb-96886eb7108a" URI="" ORDERINDEX="30" ISO3166_A2="BR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="715" CREATED="2009-01-28 17:07:04.0" UUID="65fa17a7-efa7-4be5-9d51-8b261c5217b7" URI="" ORDERINDEX="29" ISO3166_A2="BV" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="716" CREATED="2009-01-28 17:07:04.0" UUID="e00464af-d38e-4cd5-b5fe-50b27eace4ee" URI="" ORDERINDEX="28" ISO3166_A2="BW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="717" CREATED="2009-01-28 17:07:04.0" UUID="368be113-c0f2-444c-939c-65b544d19702" URI="" ORDERINDEX="27" ISO3166_A2="BA" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="718" CREATED="2009-01-28 17:07:04.0" UUID="8a18a774-0072-4678-8746-43de9ee066c4" URI="" ORDERINDEX="26" ISO3166_A2="BO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="719" CREATED="2009-01-28 17:07:04.0" UUID="35d9b61f-15d6-453d-8b01-8c786da241b3" URI="" ORDERINDEX="25" ISO3166_A2="BT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="720" CREATED="2009-01-28 17:07:04.0" UUID="88f4017e-27dc-4828-a2d7-0cf0637f1a7b" URI="" ORDERINDEX="24" ISO3166_A2="BM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="721" CREATED="2009-01-28 17:07:04.0" UUID="e6875306-892c-43d0-9aaa-9ac26e5d6551" URI="" ORDERINDEX="23" ISO3166_A2="BJ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="722" CREATED="2009-01-28 17:07:04.0" UUID="6c3eeed7-00eb-4aa3-8e3c-2d8bc25f3338" URI="" ORDERINDEX="22" ISO3166_A2="BZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="723" CREATED="2009-01-28 17:07:04.0" UUID="fa27fe27-4966-4381-a341-3535f2b4309e" URI="" ORDERINDEX="21" ISO3166_A2="BE" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="724" CREATED="2009-01-28 17:07:04.0" UUID="66872923-5ae7-48be-b669-d9a2b7e4663c" URI="" ORDERINDEX="20" ISO3166_A2="BY" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="725" CREATED="2009-01-28 17:07:04.0" UUID="c870ad88-4393-4e76-a37d-39656c5d7ff2" URI="" ORDERINDEX="19" ISO3166_A2="BB" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="726" CREATED="2009-01-28 17:07:04.0" UUID="89752d76-d03a-46e1-9763-cc089f8a8e53" URI="" ORDERINDEX="18" ISO3166_A2="BD" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="727" CREATED="2009-01-28 17:07:04.0" UUID="7f7e8c06-a804-4efa-b02f-7679f929a760" URI="" ORDERINDEX="17" ISO3166_A2="BH" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="728" CREATED="2009-01-28 17:07:04.0" UUID="8b6851bf-b82e-4114-a99f-9b40ce0f3b2c" URI="" ORDERINDEX="16" ISO3166_A2="BS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="729" CREATED="2009-01-28 17:07:04.0" UUID="5189a180-f4ef-4a8a-9e90-36977c351960" URI="" ORDERINDEX="15" ISO3166_A2="AZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="730" CREATED="2009-01-28 17:07:04.0" UUID="dfeb9102-7101-41cb-9449-bf5eae83cb5b" URI="" ORDERINDEX="14" ISO3166_A2="AT" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="731" CREATED="2009-01-28 17:07:04.0" UUID="c22658e2-b1a9-4f4c-9ccd-affe0255efc8" URI="" ORDERINDEX="13" ISO3166_A2="AU" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="732" CREATED="2009-01-28 17:07:04.0" UUID="f5a9fc99-52d5-4a54-9859-edede22cb39d" URI="" ORDERINDEX="12" ISO3166_A2="AW" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="733" CREATED="2009-01-28 17:07:04.0" UUID="7c685229-ce21-4dfd-a2c7-0932003f14ef" URI="" ORDERINDEX="11" ISO3166_A2="AM" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="734" CREATED="2009-01-28 17:07:04.0" UUID="ee0a4820-914d-424c-8133-57efb3028741" URI="" ORDERINDEX="10" ISO3166_A2="AR" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="735" CREATED="2009-01-28 17:07:04.0" UUID="fe425b94-f0e2-4e20-9e08-f28d53016347" URI="" ORDERINDEX="9" ISO3166_A2="AG" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="736" CREATED="2009-01-28 17:07:04.0" UUID="36aea55c-5d4c-4015-bb70-f15d9280c805" URI="" ORDERINDEX="8" ISO3166_A2="AQ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="737" CREATED="2009-01-28 17:07:04.0" UUID="4a3b7f0d-0ff5-4691-a232-a2dc43ad4c56" URI="" ORDERINDEX="7" ISO3166_A2="AI" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="738" CREATED="2009-01-28 17:07:04.0" UUID="c48ca5e4-154a-46d6-af29-f722486bedba" URI="" ORDERINDEX="6" ISO3166_A2="AO" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="739" CREATED="2009-01-28 17:07:04.0" UUID="7efd738f-33a1-4969-9d49-552571ffe935" URI="" ORDERINDEX="5" ISO3166_A2="AD" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="740" CREATED="2009-01-28 17:07:04.0" UUID="4a071803-88aa-4367-9707-bb1f24ad4386" URI="" ORDERINDEX="4" ISO3166_A2="AS" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="741" CREATED="2009-01-28 17:07:04.0" UUID="a14b38ac-e963-4c1a-85c2-de1f17f8c72a" URI="" ORDERINDEX="3" ISO3166_A2="DZ" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="742" CREATED="2009-01-28 17:07:04.0" UUID="238a6a93-8857-4fd6-af9e-6437c90817ac" URI="" ORDERINDEX="2" ISO3166_A2="AL" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="WaterbodyOrCountry" ID="743" CREATED="2009-01-28 17:07:04.0" UUID="974ce01a-5bce-4be8-b728-a46869354960" URI="" ORDERINDEX="1" ISO3166_A2="AF" VOCABULARY_ID="3"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="744" CREATED="2009-01-28 17:07:04.0" UUID="5c4d6755-2cf6-44ca-9220-cccf8881700b" URI="" ORDERINDEX="62" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="745" CREATED="2009-01-28 17:07:04.0" UUID="5e98415b-dc6e-440b-95d6-ea33dbb39ad0" URI="" ORDERINDEX="61" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="746" CREATED="2009-01-28 17:07:04.0" UUID="d763e7d3-e7de-4bb1-9d75-225ca6948659" URI="" ORDERINDEX="60" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="747" CREATED="2009-01-28 17:07:04.0" UUID="6b4063bc-f934-4796-9bf3-0ef3aea5c1cb" URI="" ORDERINDEX="59" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="748" CREATED="2009-01-28 17:07:04.0" UUID="08dcb4ff-ac58-48a3-93af-efb3d836ac84" URI="" ORDERINDEX="58" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="749" CREATED="2009-01-28 17:07:04.0" UUID="49bdf74a-2170-40ed-8be2-887a0db517bf" URI="" ORDERINDEX="57" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="750" CREATED="2009-01-28 17:07:04.0" UUID="ead9a1f5-dfd4-4de2-9121-70a47accb10b" URI="" ORDERINDEX="56" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="751" CREATED="2009-01-28 17:07:04.0" UUID="eb75c27d-e154-4570-9d96-227b2df60474" URI="" ORDERINDEX="55" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="752" CREATED="2009-01-28 17:07:04.0" UUID="1c8ac389-4349-4ae0-87be-7239f6635068" URI="" ORDERINDEX="54" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="753" CREATED="2009-01-28 17:07:04.0" UUID="47cfc5b0-0fb7-4ceb-b61d-e1dd8de8b569" URI="" ORDERINDEX="53" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="754" CREATED="2009-01-28 17:07:04.0" UUID="bed20aee-2f5a-4635-9c02-eff06246d067" URI="" ORDERINDEX="52" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="755" CREATED="2009-01-28 17:07:04.0" UUID="0461281e-458a-47b9-8d41-19a3d39356d5" URI="" ORDERINDEX="51" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="756" CREATED="2009-01-28 17:07:04.0" UUID="2cc740c9-cebb-43c8-9b06-1bef79e6a56a" URI="" ORDERINDEX="50" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="757" CREATED="2009-01-28 17:07:04.0" UUID="bff22f84-553a-4429-a4e7-c4b3796c3a18" URI="" ORDERINDEX="49" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="758" CREATED="2009-01-28 17:07:04.0" UUID="9a83862a-7aee-480c-a98d-4bceaf8712ca" URI="" ORDERINDEX="48" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="759" CREATED="2009-01-28 17:07:04.0" UUID="2f4f4303-a099-47e3-9048-d749d735423b" URI="" ORDERINDEX="47" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="760" CREATED="2009-01-28 17:07:04.0" UUID="a3a364cb-1a92-43fc-a717-3c44980a0991" URI="" ORDERINDEX="46" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="761" CREATED="2009-01-28 17:07:04.0" UUID="d5feb6a5-af5c-45ef-9878-bb4f36aaf490" URI="" ORDERINDEX="45" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="762" CREATED="2009-01-28 17:07:04.0" UUID="f28ebc9e-bd50-4194-9af1-42f5cb971a2c" URI="" ORDERINDEX="44" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="763" CREATED="2009-01-28 17:07:04.0" UUID="462a7819-8b00-4190-8313-88b5be81fad5" URI="" ORDERINDEX="43" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="764" CREATED="2009-01-28 17:07:04.0" UUID="72c248b9-027d-4402-b375-dd4f0850c9ad" URI="" ORDERINDEX="42" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="765" CREATED="2009-01-28 17:07:04.0" UUID="b301f787-f319-4ccc-a10f-b4ed3b99a86d" URI="" ORDERINDEX="41" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="766" CREATED="2009-01-28 17:07:04.0" UUID="41bcc6ac-37d3-4fd4-bb80-3cc5b04298b9" URI="" ORDERINDEX="40" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="767" CREATED="2009-01-28 17:07:04.0" UUID="1ecae058-4217-4f75-9c27-6d8ba099ac7a" URI="" ORDERINDEX="39" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="768" CREATED="2009-01-28 17:07:04.0" UUID="80c9a263-f4db-4a13-b6c2-b7fec1aa1200" URI="" ORDERINDEX="38" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="769" CREATED="2009-01-28 17:07:04.0" UUID="d7381ecf-48f8-429b-9c54-f461656978cd" URI="" ORDERINDEX="37" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="770" CREATED="2009-01-28 17:07:04.0" UUID="d20f5b61-d463-4448-8f8a-c1ff1f262f59" URI="" ORDERINDEX="36" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="771" CREATED="2009-01-28 17:07:04.0" UUID="3edff68f-8527-49b5-bf91-7e4398bb975c" URI="" ORDERINDEX="35" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="772" CREATED="2009-01-28 17:07:04.0" UUID="a9972969-82cd-4d54-b693-a096422f13fa" URI="" ORDERINDEX="34" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="773" CREATED="2009-01-28 17:07:04.0" UUID="78786e16-2a70-48af-a608-494023b91904" URI="" ORDERINDEX="33" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="774" CREATED="2009-01-28 17:07:04.0" UUID="1b11c34c-48a8-4efa-98d5-84f7f66ef43a" URI="" ORDERINDEX="32" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="775" CREATED="2009-01-28 17:07:04.0" UUID="1fdc0b93-c354-441a-8406-091e0303ff5c" URI="" ORDERINDEX="31" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="776" CREATED="2009-01-28 17:07:04.0" UUID="1ec02e8f-f2b7-4c65-af9f-b436b34c79a3" URI="" ORDERINDEX="30" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="777" CREATED="2009-01-28 17:07:04.0" UUID="ae41ecc5-5165-4126-9d24-79939ae5d822" URI="" ORDERINDEX="29" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="778" CREATED="2009-01-28 17:07:04.0" UUID="4aa6890b-0363-4899-8d7c-ee0cb78e6166" URI="" ORDERINDEX="28" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="779" CREATED="2009-01-28 17:07:04.0" UUID="11e94828-8c61-499b-87d6-1de35ce2c51c" URI="" ORDERINDEX="27" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="780" CREATED="2009-01-28 17:07:04.0" UUID="c3f2e3bb-6eef-4a26-9fb7-b14f4c8c5e4f" URI="" ORDERINDEX="26" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="781" CREATED="2009-01-28 17:07:04.0" UUID="862526ee-7592-4760-a23a-4ff3641541c5" URI="" ORDERINDEX="25" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="782" CREATED="2009-01-28 17:07:04.0" UUID="af5f2481-3192-403f-ae65-7c957a0f02b6" URI="" ORDERINDEX="24" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="783" CREATED="2009-01-28 17:07:04.0" UUID="2cfa510a-dcea-4a03-b66a-b1528f9b0796" URI="" ORDERINDEX="23" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="784" CREATED="2009-01-28 17:07:04.0" UUID="84099182-a6f5-47d7-8586-33c9e9955a10" URI="" ORDERINDEX="22" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="785" CREATED="2009-01-28 17:07:04.0" UUID="768ad378-fa85-42ab-b668-763225832f57" URI="" ORDERINDEX="21" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="786" CREATED="2009-01-28 17:07:04.0" UUID="b0785a65-c1c1-4eb4-88c7-dbd3df5aaad1" URI="" ORDERINDEX="20" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="787" CREATED="2009-01-28 17:07:04.0" UUID="c8c67a22-301a-4219-b882-4a49121232ff" URI="" ORDERINDEX="19" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="788" CREATED="2009-01-28 17:07:04.0" UUID="ad23cfda-879a-4021-8629-c54d27caf717" URI="" ORDERINDEX="18" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="789" CREATED="2009-01-28 17:07:04.0" UUID="8cb26733-e2f5-46cb-ab5c-f99254f877aa" URI="" ORDERINDEX="17" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="790" CREATED="2009-01-28 17:07:04.0" UUID="f23d14c4-1d34-4ee6-8b4e-eee2eb9a3daf" URI="" ORDERINDEX="16" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="791" CREATED="2009-01-28 17:07:04.0" UUID="e65b4e1a-21ec-428d-9b9f-e87721ab967c" URI="" ORDERINDEX="15" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="792" CREATED="2009-01-28 17:07:04.0" UUID="c0ede273-be52-4dee-b411-66ee08d30c94" URI="" ORDERINDEX="14" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="793" CREATED="2009-01-28 17:07:04.0" UUID="931c840f-7a6b-4d76-ad38-bfdd77d7b2e8" URI="" ORDERINDEX="13" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="794" CREATED="2009-01-28 17:07:04.0" UUID="7e56f5cc-123a-4fd1-8cbb-6fd80358b581" URI="" ORDERINDEX="12" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="795" CREATED="2009-01-28 17:07:04.0" UUID="a735a48f-4fc8-49a7-ae0c-6a984f658131" URI="" ORDERINDEX="11" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="796" CREATED="2009-01-28 17:07:04.0" UUID="1701de3a-7693-42a5-a2d3-42697f944190" URI="" ORDERINDEX="10" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="797" CREATED="2009-01-28 17:07:04.0" UUID="23a9b6ff-9408-49c9-bd9e-7a2ca5ab4725" URI="" ORDERINDEX="9" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="798" CREATED="2009-01-28 17:07:04.0" UUID="773430d2-76b4-438c-b817-97a543a33287" URI="" ORDERINDEX="8" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="799" CREATED="2009-01-28 17:07:04.0" UUID="0d0cecb1-e254-4607-b210-6801e7ecbb04" URI="" ORDERINDEX="7" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="800" CREATED="2009-01-28 17:07:04.0" UUID="1e37930c-86cf-44f6-90fd-7822928df260" URI="" ORDERINDEX="6" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="801" CREATED="2009-01-28 17:07:04.0" UUID="a71bd9d8-f3ab-4083-afb5-d89315d71655" URI="" ORDERINDEX="5" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="802" CREATED="2009-01-28 17:07:04.0" UUID="fbe7109d-66b3-498c-a697-c6c49c686162" URI="" ORDERINDEX="4" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="803" CREATED="2009-01-28 17:07:04.0" UUID="64223610-7625-4cfd-83ad-b797bf7f0edd" URI="" ORDERINDEX="3" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="804" CREATED="2009-01-28 17:07:04.0" UUID="ffca6ec8-8b88-417b-a6a0-f7c992aac19b" URI="" ORDERINDEX="2" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="Rank" ID="805" CREATED="2009-01-28 17:07:04.0" UUID="ac470211-1586-4b24-95ca-1038050b618d" URI="" ORDERINDEX="1" VOCABULARY_ID="4"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="806" CREATED="2009-01-28 17:07:04.0" UUID="b7807acc-f559-474e-ad4a-e7a41e085e34" URI="" ORDERINDEX="16" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="807" CREATED="2009-01-28 17:07:04.0" UUID="643513d0-32f5-46ba-840b-d9b9caf8160f" URI="" ORDERINDEX="15" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="808" CREATED="2009-01-28 17:07:04.0" UUID="95b90696-e103-4bc0-b60b-c594983fb566" URI="" ORDERINDEX="14" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="809" CREATED="2009-01-28 17:07:04.0" UUID="7244bc51-14d8-41a6-9524-7dc5303bba29" URI="" ORDERINDEX="13" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="810" CREATED="2009-01-28 17:07:04.0" UUID="f3b60bdb-4638-4ca9-a0c7-36e77d8459bb" URI="" ORDERINDEX="12" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="811" CREATED="2009-01-28 17:07:04.0" UUID="8d2fed1f-242e-4bcf-bbd7-e85133e479dc" URI="" ORDERINDEX="11" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="812" CREATED="2009-01-28 17:07:04.0" UUID="01d91053-7004-4984-aa0d-9f4de59d6205" URI="" ORDERINDEX="10" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="813" CREATED="2009-01-28 17:07:04.0" UUID="eb7df2e5-d9a7-479d-970c-c6f2b0a761d7" URI="" ORDERINDEX="9" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="814" CREATED="2009-01-28 17:07:04.0" UUID="0c39e2a5-2fe0-4d4f-819a-f609b5340339" URI="" ORDERINDEX="8" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="815" CREATED="2009-01-28 17:07:04.0" UUID="93ef8257-0a08-47bb-9b36-542417ae7560" URI="" ORDERINDEX="7" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="816" CREATED="2009-01-28 17:07:04.0" UUID="7afc2f4f-f70a-4aa5-80a5-87764f746bde" URI="" ORDERINDEX="6" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="817" CREATED="2009-01-28 17:07:04.0" UUID="7a1a8a53-78f4-4fc0-89f7-782e94992d08" URI="" ORDERINDEX="5" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="818" CREATED="2009-01-28 17:07:04.0" UUID="989a2715-71d5-4fbe-aa9a-db9168353744" URI="" ORDERINDEX="4" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="819" CREATED="2009-01-28 17:07:04.0" UUID="26e13359-8f77-4e40-a85a-56c01782fce0" URI="" ORDERINDEX="3" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="820" CREATED="2009-01-28 17:07:04.0" UUID="05002d46-083e-4b27-8731-2e7c28a8825c" URI="" ORDERINDEX="2" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="TypeDesignationStatus" ID="821" CREATED="2009-01-28 17:07:04.0" UUID="a407dbc7-e60c-46ff-be11-eddf4c5a970d" URI="" ORDERINDEX="1" VOCABULARY_ID="5"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="822" CREATED="2009-01-28 17:07:04.0" UUID="92a76bd0-6ea8-493f-98e0-4be0b98c092f" URI="" ORDERINDEX="24" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="823" CREATED="2009-01-28 17:07:04.0" UUID="a5055d80-dbba-4660-b091-a1835d59fe7c" URI="" ORDERINDEX="23" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="824" CREATED="2009-01-28 17:07:04.0" UUID="bd036217-5499-4ccd-8f4c-72e06158db93" URI="" ORDERINDEX="22" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="825" CREATED="2009-01-28 17:07:04.0" UUID="a277507e-ad93-4978-9419-077eb889c951" URI="" ORDERINDEX="21" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="826" CREATED="2009-01-28 17:07:04.0" UUID="f858e619-7b7f-4225-913b-880a2143ec83" URI="" ORDERINDEX="20" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="827" CREATED="2009-01-28 17:07:04.0" UUID="e0d733a8-7777-4b27-99a3-05ab50e9f312" URI="" ORDERINDEX="19" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="828" CREATED="2009-01-28 17:07:04.0" UUID="b09d4f51-8a77-442a-bbce-e7832aaf46b7" URI="" ORDERINDEX="18" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="829" CREATED="2009-01-28 17:07:04.0" UUID="1afe55c4-76aa-46c0-afce-4dc07f512733" URI="" ORDERINDEX="17" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="830" CREATED="2009-01-28 17:07:04.0" UUID="6330f719-e2bc-485f-892b-9f882058a966" URI="" ORDERINDEX="16" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="831" CREATED="2009-01-28 17:07:04.0" UUID="248e44c2-5436-4526-a352-f7467ecebd56" URI="" ORDERINDEX="15" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="832" CREATED="2009-01-28 17:07:04.0" UUID="34a7d383-988b-4117-b8c0-52b947f8c711" URI="" ORDERINDEX="14" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="833" CREATED="2009-01-28 17:07:04.0" UUID="643ee07f-026c-426c-b838-c778c8613383" URI="" ORDERINDEX="13" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="834" CREATED="2009-01-28 17:07:04.0" UUID="05fcb68f-af60-4851-b912-892512058897" URI="" ORDERINDEX="12" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="835" CREATED="2009-01-28 17:07:04.0" UUID="3b8a8519-420f-4dfa-b050-b410cc257961" URI="" ORDERINDEX="11" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="836" CREATED="2009-01-28 17:07:04.0" UUID="51a3613c-b53b-4561-b0cd-9163d91c15aa" URI="" ORDERINDEX="10" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="837" CREATED="2009-01-28 17:07:04.0" UUID="02f82bc5-1066-454b-a023-11967cba9092" URI="" ORDERINDEX="9" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="838" CREATED="2009-01-28 17:07:04.0" UUID="82bab006-5aed-4301-93ec-980deb30cbb1" URI="" ORDERINDEX="8" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="839" CREATED="2009-01-28 17:07:04.0" UUID="04338fdd-c12a-402f-a1ca-68b4bf0be042" URI="" ORDERINDEX="7" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="840" CREATED="2009-01-28 17:07:04.0" UUID="48107cc8-7a5b-482e-b438-efbba050b851" URI="" ORDERINDEX="6" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="841" CREATED="2009-01-28 17:07:04.0" UUID="6890483a-c6ba-4ae1-9ab1-9fbaa5736ce9" URI="" ORDERINDEX="5" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="842" CREATED="2009-01-28 17:07:04.0" UUID="b7c544cf-a375-4145-9d3e-4b97f3f18108" URI="" ORDERINDEX="4" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="843" CREATED="2009-01-28 17:07:04.0" UUID="24955174-aa5c-4e71-a2fd-3efc79e885db" URI="" ORDERINDEX="3" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="844" CREATED="2009-01-28 17:07:04.0" UUID="0ffeb39e-872e-4c0f-85ba-a4150d9f9e7d" URI="" ORDERINDEX="2" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="NomenclaturalStatusType" ID="845" CREATED="2009-01-28 17:07:04.0" UUID="90f5012b-705b-4488-b4c6-002d2bc5198e" URI="" ORDERINDEX="1" VOCABULARY_ID="6"/>\r
-  <DEFINEDTERMBASE DTYPE="SynonymType" ID="846" CREATED="2009-01-28 17:07:04.0" UUID="4c1e2c59-ca55-41ac-9a82-676894976084" URI="" ORDERINDEX="3" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="7"/>\r
-  <DEFINEDTERMBASE DTYPE="SynonymType" ID="847" CREATED="2009-01-28 17:07:04.0" UUID="294313a9-5617-4ed5-ae2d-c57599907cb2" URI="" ORDERINDEX="2" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="7"/>\r
-  <DEFINEDTERMBASE DTYPE="SynonymType" ID="848" CREATED="2009-01-28 17:07:04.0" UUID="1afa5429-095a-48da-8877-836fa4fe709e" URI="" ORDERINDEX="1" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="7"/>\r
-  <DEFINEDTERMBASE DTYPE="HybridRelationshipType" ID="849" CREATED="2009-01-28 17:07:04.0" UUID="8b7324c5-cc6c-4109-b708-d49b187815c4" URI="" ORDERINDEX="4" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="8"/>\r
-  <DEFINEDTERMBASE DTYPE="HybridRelationshipType" ID="850" CREATED="2009-01-28 17:07:04.0" UUID="189a3ed9-6860-4943-8be8-a1f60133be2a" URI="" ORDERINDEX="3" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="8"/>\r
-  <DEFINEDTERMBASE DTYPE="HybridRelationshipType" ID="851" CREATED="2009-01-28 17:07:04.0" UUID="0485fc3d-4755-4f53-8832-b82774484c43" URI="" ORDERINDEX="2" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="8"/>\r
-  <DEFINEDTERMBASE DTYPE="HybridRelationshipType" ID="852" CREATED="2009-01-28 17:07:04.0" UUID="83ae9e56-18f2-46b6-b211-45cdee775bf3" URI="" ORDERINDEX="1" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="8"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="853" CREATED="2009-01-28 17:07:04.0" UUID="1dab357f-2e12-4511-97a4-e5153589e6a6" URI="" ORDERINDEX="10" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="854" CREATED="2009-01-28 17:07:04.0" UUID="a25ee4c1-863a-4dab-9499-290bf9b89639" URI="" ORDERINDEX="9" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="855" CREATED="2009-01-28 17:07:04.0" UUID="a176c9ad-b4c2-4c57-addd-90373f8270eb" URI="" ORDERINDEX="8" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="856" CREATED="2009-01-28 17:07:04.0" UUID="e6439f95-bcac-4ebb-a8b5-69fa5ce79e6a" URI="" ORDERINDEX="7" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="857" CREATED="2009-01-28 17:07:04.0" UUID="71c67c38-d162-445b-b0c2-7aba56106696" URI="" ORDERINDEX="6" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="858" CREATED="2009-01-28 17:07:04.0" UUID="25792738-98de-4762-bac1-8c156faded4a" URI="" ORDERINDEX="5" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="859" CREATED="2009-01-28 17:07:04.0" UUID="049c6358-1094-4765-9fae-c9972a0e7780" URI="" ORDERINDEX="4" SYMMETRIC="true" TRANSITIVE="true" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="860" CREATED="2009-01-28 17:07:04.0" UUID="2990a884-3302-4c8b-90b2-dfd31aaa2778" URI="" ORDERINDEX="3" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="861" CREATED="2009-01-28 17:07:04.0" UUID="80f06f65-58e0-4209-b811-cb40ad7220a6" URI="" ORDERINDEX="2" SYMMETRIC="false" TRANSITIVE="true" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="NameRelationshipType" ID="862" CREATED="2009-01-28 17:07:04.0" UUID="eeaea868-c4c1-497f-b9fe-52c9fc4aca53" URI="" ORDERINDEX="1" SYMMETRIC="true" TRANSITIVE="true" VOCABULARY_ID="9"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="863" CREATED="2009-01-28 17:07:04.0" UUID="831fcd88-e5c9-49e0-b06e-bbb67d1c05c9" URI="" ORDERINDEX="27" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="864" CREATED="2009-01-28 17:07:04.0" UUID="6c16c33b-cfc5-4a00-92bd-a9f9e448f389" URI="" ORDERINDEX="26" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="865" CREATED="2009-01-28 17:07:04.0" UUID="89dffa4e-e004-4d42-b0d1-ae1827529e43" URI="" ORDERINDEX="25" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="866" CREATED="2009-01-28 17:07:04.0" UUID="b7153c89-cc6c-4f8c-bf74-216f10feac46" URI="" ORDERINDEX="24" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="867" CREATED="2009-01-28 17:07:04.0" UUID="6fabef72-5264-44f1-bfc0-8e2e141375f2" URI="" ORDERINDEX="23" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="868" CREATED="2009-01-28 17:07:04.0" UUID="623ecdeb-ff1f-471d-a8dc-0d75b2fe8d94" URI="" ORDERINDEX="22" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="869" CREATED="2009-01-28 17:07:04.0" UUID="ecd2382b-3d94-4169-9dd2-2c4ea1d24605" URI="" ORDERINDEX="21" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="870" CREATED="2009-01-28 17:07:04.0" UUID="43d8492c-8bd5-4f38-a633-f1ad910a34dd" URI="" ORDERINDEX="20" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="871" CREATED="2009-01-28 17:07:04.0" UUID="d5c6953d-aa53-46f8-aafc-ebc6428ad5d0" URI="" ORDERINDEX="19" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="872" CREATED="2009-01-28 17:07:04.0" UUID="6ee440bc-fd3d-4da2-ad85-906d35a94731" URI="" ORDERINDEX="18" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="873" CREATED="2009-01-28 17:07:04.0" UUID="758e6cf3-05a0-49ed-9496-d8c4a9fd02ae" URI="" ORDERINDEX="17" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="874" CREATED="2009-01-28 17:07:04.0" UUID="4535a63c-4a3f-4d69-9350-7bf02e2c23be" URI="" ORDERINDEX="16" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="875" CREATED="2009-01-28 17:07:04.0" UUID="0e5099bb-87c0-400e-abdc-bcfed5b5eece" URI="" ORDERINDEX="15" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="876" CREATED="2009-01-28 17:07:04.0" UUID="43466aa9-e431-4f37-8bca-febfd9f63716" URI="" ORDERINDEX="14" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="877" CREATED="2009-01-28 17:07:04.0" UUID="2d923b1a-6c0f-414c-ac9b-bbc502e18078" URI="" ORDERINDEX="13" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="878" CREATED="2009-01-28 17:07:04.0" UUID="f1ec567b-3c73-436b-8625-b4fd53588abb" URI="" ORDERINDEX="12" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="879" CREATED="2009-01-28 17:07:04.0" UUID="78355cfa-5200-432f-8e00-82b97afad0ed" URI="" ORDERINDEX="11" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="880" CREATED="2009-01-28 17:07:04.0" UUID="2046a0fd-4fd6-45a1-b707-2b91547f3ec7" URI="" ORDERINDEX="10" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="881" CREATED="2009-01-28 17:07:04.0" UUID="0170cd83-93ad-43c2-9ad1-7ac879300e2f" URI="" ORDERINDEX="9" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="882" CREATED="2009-01-28 17:07:04.0" UUID="c3ed5089-6779-4051-bb24-f5ea0eca80d5" URI="" ORDERINDEX="8" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="883" CREATED="2009-01-28 17:07:04.0" UUID="b55cb3a2-6e20-4ca3-95bc-12b59d3235b0" URI="" ORDERINDEX="7" SYMMETRIC="false" TRANSITIVE="true" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="884" CREATED="2009-01-28 17:07:04.0" UUID="0501c385-cab1-4fbe-b945-fc747419bb13" URI="" ORDERINDEX="6" SYMMETRIC="false" TRANSITIVE="true" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="885" CREATED="2009-01-28 17:07:04.0" UUID="60974c98-64ab-4574-bb5c-c110f6db634d" URI="" ORDERINDEX="5" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="886" CREATED="2009-01-28 17:07:04.0" UUID="a8f03491-2ad6-4fae-a04c-2a4c117a2e9b" URI="" ORDERINDEX="4" SYMMETRIC="true" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="887" CREATED="2009-01-28 17:07:04.0" UUID="605b1d01-f2b1-4544-b2e0-6f08def3d6ed" URI="" ORDERINDEX="3" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="888" CREATED="2009-01-28 17:07:04.0" UUID="1ed87175-59dd-437e-959e-0d71583d8417" URI="" ORDERINDEX="2" SYMMETRIC="false" TRANSITIVE="false" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="TaxonRelationshipType" ID="889" CREATED="2009-01-28 17:07:04.0" UUID="d13fecdf-eb44-4dd7-9244-26679c05df1c" URI="" ORDERINDEX="1" SYMMETRIC="false" TRANSITIVE="true" VOCABULARY_ID="10"/>\r
-  <DEFINEDTERMBASE DTYPE="MarkerType" ID="890" CREATED="2009-01-28 17:07:04.0" UUID="b4b1b2ab-89a8-4ce6-8110-d60b8b1bc433" URI="" VOCABULARY_ID="11"/>\r
-  <DEFINEDTERMBASE DTYPE="MarkerType" ID="891" CREATED="2009-01-28 17:07:04.0" UUID="b51325c8-05fe-421a-832b-d86fc249ef6e" URI="" VOCABULARY_ID="11"/>\r
-  <DEFINEDTERMBASE DTYPE="MarkerType" ID="892" CREATED="2009-01-28 17:07:04.0" UUID="96878790-4ceb-42a2-9738-a2242079b679" URI="" VOCABULARY_ID="11"/>\r
-  <DEFINEDTERMBASE DTYPE="MarkerType" ID="893" CREATED="2009-01-28 17:07:04.0" UUID="34204192-b41d-4857-a1d4-28992bef2a2a" URI="" VOCABULARY_ID="11"/>\r
-  <DEFINEDTERMBASE DTYPE="AnnotationType" ID="894" CREATED="2009-01-28 17:07:04.0" UUID="6a5f9ea4-1bdd-4906-89ad-6e669f982d69" URI="" VOCABULARY_ID="12"/>\r
-  <DEFINEDTERMBASE DTYPE="AnnotationType" ID="895" CREATED="2009-01-28 17:07:04.0" UUID="e780d5fd-abfc-4025-938a-46deb751d808" URI="" VOCABULARY_ID="12"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaType" ID="896" CREATED="2009-01-28 17:07:04.0" UUID="1799f581-f425-40d6-a4db-ec2c638c0e92" URI="" VOCABULARY_ID="13"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaType" ID="897" CREATED="2009-01-28 17:07:04.0" UUID="cc33167c-d366-4030-b984-6b14e4f5fd22" URI="" VOCABULARY_ID="13"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="898" CREATED="2009-01-28 17:07:04.0" UUID="79db63a4-1563-461e-8e41-48f5722feca4" URI="" ORDERINDEX="9" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="899" CREATED="2009-01-28 17:07:04.0" UUID="f127b4d2-f6bc-4019-9c87-ee3f4de1f094" URI="" ORDERINDEX="8" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="900" CREATED="2009-01-28 17:07:04.0" UUID="401d48b4-9f09-4354-be0f-c2138444f72d" URI="" ORDERINDEX="7" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="901" CREATED="2009-01-28 17:07:04.0" UUID="08aa6127-8ebc-4120-8411-a468a7257e02" URI="" ORDERINDEX="6" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="902" CREATED="2009-01-28 17:07:04.0" UUID="340b9050-a65d-4dd4-9523-bc10f977bc68" URI="" ORDERINDEX="5" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="903" CREATED="2009-01-28 17:07:04.0" UUID="160ff2c8-9bfc-49c2-9afd-049c21a91695" URI="" ORDERINDEX="4" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="904" CREATED="2009-01-28 17:07:04.0" UUID="25b563b6-6a6c-401b-b090-c9498886c50b" URI="" ORDERINDEX="3" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="905" CREATED="2009-01-28 17:07:04.0" UUID="38efa5fd-d7f0-451c-9de9-e6cce41e2225" URI="" ORDERINDEX="2" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="NamedAreaLevel" ID="906" CREATED="2009-01-28 17:07:04.0" UUID="cd7771b2-7427-4a01-9057-7d7a897dddaf" URI="" ORDERINDEX="1" VOCABULARY_ID="14"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="912" CREATED="2009-01-28 17:07:04.0" UUID="5deff505-1a32-4817-9a74-50e6936fd630" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="913" CREATED="2009-01-28 17:07:04.0" UUID="a7786d3e-7c58-4141-8416-346d4c80c4a2" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="914" CREATED="2009-01-28 17:07:04.0" UUID="99b2842f-9aa7-42fa-bd5f-7285311e0101" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="915" CREATED="2009-01-28 17:07:04.0" UUID="1e87d9c3-0844-4a03-9686-773e2ccb3ab6" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="916" CREATED="2009-01-28 17:07:04.0" UUID="a677f827-22b9-4205-bb37-11cb48dd9106" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="917" CREATED="2009-01-28 17:07:04.0" UUID="489bf358-b78a-45e2-a691-f9f3f10446ce" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="918" CREATED="2009-01-28 17:07:04.0" UUID="86bd920d-f8c5-48b9-af1d-03f63c31de5c" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="919" CREATED="2009-01-28 17:07:04.0" UUID="4518fc20-2492-47de-b345-777d2b83c9cf" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="920" CREATED="2009-01-28 17:07:04.0" UUID="d3c4cbb6-0025-4322-886b-cd0156753a25" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="921" CREATED="2009-01-28 17:07:04.0" UUID="e5374d39-b210-47c7-bec1-bee05b5f1cb6" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="922" CREATED="2009-01-28 17:07:04.0" UUID="aa923827-d333-4cf5-9a5f-438ae0a4746b" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="923" CREATED="2009-01-28 17:07:04.0" UUID="9fc9d10c-ba50-49ee-b174-ce83fc3f80c6" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="true" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="924" CREATED="2009-01-28 17:07:04.0" UUID="d43d8501-ceab-4caa-9e51-e87138528fac" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="925" CREATED="2009-01-28 17:07:04.0" UUID="9832e24f-b670-43b4-ac7c-20a7261a1d8c" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="926" CREATED="2009-01-28 17:07:04.0" UUID="e75255ca-8ff4-4905-baad-f842927fe1d3" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="927" CREATED="2009-01-28 17:07:04.0" UUID="cb2eab09-6d9d-4e43-8ad2-873f23400930" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="928" CREATED="2009-01-28 17:07:04.0" UUID="dd653d48-355c-4aec-a4e7-724f6eb29f8d" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="929" CREATED="2009-01-28 17:07:04.0" UUID="e28965b2-a367-48c5-b954-8afc8ac2c69b" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="930" CREATED="2009-01-28 17:07:04.0" UUID="84193b2c-327f-4cce-90ef-c8da18fd5bb5" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="931" CREATED="2009-01-28 17:07:04.0" UUID="555a46bc-211a-476f-a022-c472970d6f8b" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="932" CREATED="2009-01-28 17:07:04.0" UUID="7f1fd111-fc52-49f0-9e75-d0097f576b2d" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="933" CREATED="2009-01-28 17:07:04.0" UUID="fc810911-51f0-4a46-ab97-6562fe263ae5" URI="" SUPPORTSCOMMONTAXONNAME="true" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="934" CREATED="2009-01-28 17:07:04.0" UUID="89d3b005-9876-4923-89d9-60eb75b9583b" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="935" CREATED="2009-01-28 17:07:04.0" UUID="7c0c7571-a864-47c1-891d-01f59000dae1" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="936" CREATED="2009-01-28 17:07:04.0" UUID="9087cdcd-8b08-4082-a1de-34c9ba9fb493" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="Feature" ID="937" CREATED="2009-01-28 17:07:04.0" UUID="910307f1-dc3c-452c-a6dd-af5ac7cd365c" URI="" SUPPORTSCOMMONTAXONNAME="false" SUPPORTSDISTRIBUTION="false" SUPPORTSINDIVIDUALASSOCIATION="false" SUPPORTSQUANTITATIVEDATA="false" SUPPORTSTAXONINTERACTION="false" SUPPORTSTEXTDATA="true" VOCABULARY_ID="16"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="938" CREATED="2009-01-28 17:07:05.0" UUID="4cc60186-d723-4ff6-913a-5dd8d293a92a" URI="" ORDERINDEX="1039" PARTOF_ID="1547" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="939" CREATED="2009-01-28 17:07:05.0" UUID="597b7676-a24d-4eaf-b7a9-dec4a2ecc712" URI="" ORDERINDEX="1038" PARTOF_ID="1548" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="940" CREATED="2009-01-28 17:07:05.0" UUID="023f83b8-dc99-4ac0-80b7-79fe2678518f" URI="" ORDERINDEX="1037" PARTOF_ID="1549" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="941" CREATED="2009-01-28 17:07:05.0" UUID="0e4a1319-6c7d-48a6-af08-0d972542e3e2" URI="" ORDERINDEX="1036" PARTOF_ID="1550" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="942" CREATED="2009-01-28 17:07:05.0" UUID="7d8e85ca-fc06-4a4b-9bb7-06d4b42c15f6" URI="" ORDERINDEX="1035" PARTOF_ID="1551" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="943" CREATED="2009-01-28 17:07:05.0" UUID="dc59ecd3-0051-4e81-84a2-9fd459861011" URI="" ORDERINDEX="1034" PARTOF_ID="1551" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="944" CREATED="2009-01-28 17:07:05.0" UUID="d18168ff-f59d-4209-8b23-bd3abeda1325" URI="" ORDERINDEX="1033" PARTOF_ID="1551" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="945" CREATED="2009-01-28 17:07:05.0" UUID="7dff4ac4-6c16-4834-9922-93f5af568833" URI="" ORDERINDEX="1032" PARTOF_ID="1551" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="946" CREATED="2009-01-28 17:07:05.0" UUID="5b8e22d1-2438-4433-8853-fac9768aea58" URI="" ORDERINDEX="1031" PARTOF_ID="1551" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="947" CREATED="2009-01-28 17:07:05.0" UUID="7d7e1b3b-77c0-4033-9fd0-3caa6370d8a9" URI="" ORDERINDEX="1030" PARTOF_ID="1551" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="948" CREATED="2009-01-28 17:07:05.0" UUID="156f41e9-7f2d-4c56-ace5-db9581e35b7e" URI="" ORDERINDEX="1029" PARTOF_ID="1551" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="949" CREATED="2009-01-28 17:07:05.0" UUID="e4fd740f-2401-4744-aa51-38b66848221c" URI="" ORDERINDEX="1028" PARTOF_ID="1552" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="950" CREATED="2009-01-28 17:07:05.0" UUID="a2a90c7d-905a-408f-afc2-9ee9165667df" URI="" ORDERINDEX="1027" PARTOF_ID="1552" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="951" CREATED="2009-01-28 17:07:05.0" UUID="2b8feedf-6fd4-4763-9f92-2f1dfd04c4b2" URI="" ORDERINDEX="1026" PARTOF_ID="1553" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="952" CREATED="2009-01-28 17:07:05.0" UUID="932cacfd-e349-4448-8269-ff6b06c260ee" URI="" ORDERINDEX="1025" PARTOF_ID="1554" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="953" CREATED="2009-01-28 17:07:05.0" UUID="cc136338-64d2-4d20-bd45-d40fc92909a7" URI="" ORDERINDEX="1024" PARTOF_ID="1555" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="954" CREATED="2009-01-28 17:07:05.0" UUID="eec1ea9a-67fd-4ad5-a241-6cf73a02434c" URI="" ORDERINDEX="1023" PARTOF_ID="1556" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="955" CREATED="2009-01-28 17:07:05.0" UUID="b171a390-4b69-4e57-89bf-8d334368aa70" URI="" ORDERINDEX="1022" PARTOF_ID="1557" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="956" CREATED="2009-01-28 17:07:05.0" UUID="f5e1293c-477f-4989-a51a-5573ebdf2163" URI="" ORDERINDEX="1021" PARTOF_ID="1558" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="957" CREATED="2009-01-28 17:07:05.0" UUID="74ff3c89-304c-4ca7-8e57-bda96cc64788" URI="" ORDERINDEX="1020" PARTOF_ID="1559" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="958" CREATED="2009-01-28 17:07:05.0" UUID="3d4c2754-2000-44f6-a0a8-0d9672cba17f" URI="" ORDERINDEX="1019" PARTOF_ID="1560" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="959" CREATED="2009-01-28 17:07:05.0" UUID="31468b28-6e4a-4810-a9a9-73ee02916f3c" URI="" ORDERINDEX="1018" PARTOF_ID="1560" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="960" CREATED="2009-01-28 17:07:05.0" UUID="dfb9ea63-1947-4f42-b60e-0b3469e43e8c" URI="" ORDERINDEX="1017" PARTOF_ID="1560" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="961" CREATED="2009-01-28 17:07:05.0" UUID="d91f8b52-afb4-4a05-9a2b-0091c1a2964e" URI="" ORDERINDEX="1016" PARTOF_ID="1560" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="962" CREATED="2009-01-28 17:07:05.0" UUID="70933eef-4cb9-403c-95cd-314d38d99a8e" URI="" ORDERINDEX="1015" PARTOF_ID="1560" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="963" CREATED="2009-01-28 17:07:05.0" UUID="9095452e-59f7-4608-af53-341e5f400d2a" URI="" ORDERINDEX="1014" PARTOF_ID="1560" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="964" CREATED="2009-01-28 17:07:05.0" UUID="b8d5a12f-e7e7-4c19-b64c-ead0fdc97b4e" URI="" ORDERINDEX="1013" PARTOF_ID="1561" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="965" CREATED="2009-01-28 17:07:05.0" UUID="c90618b9-167d-49ec-9724-259029fa00c7" URI="" ORDERINDEX="1012" PARTOF_ID="1561" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="966" CREATED="2009-01-28 17:07:05.0" UUID="de8b64ce-3a33-4135-a850-cf109f1d48bd" URI="" ORDERINDEX="1011" PARTOF_ID="1561" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="967" CREATED="2009-01-28 17:07:05.0" UUID="6bd2baf4-972a-467f-b6fa-8b89aee1f61a" URI="" ORDERINDEX="1010" PARTOF_ID="1562" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="968" CREATED="2009-01-28 17:07:05.0" UUID="97ac40c6-ee0e-4482-88da-8de66a73401b" URI="" ORDERINDEX="1009" PARTOF_ID="1563" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="969" CREATED="2009-01-28 17:07:05.0" UUID="63904a7f-67ca-458b-86b3-9b5a7e68923a" URI="" ORDERINDEX="1008" PARTOF_ID="1563" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="970" CREATED="2009-01-28 17:07:05.0" UUID="dbc6bfc1-ede6-4620-84d5-890907c252e0" URI="" ORDERINDEX="1007" PARTOF_ID="1564" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="971" CREATED="2009-01-28 17:07:05.0" UUID="7fcf37f8-b846-4fff-a2d7-266483dfc70c" URI="" ORDERINDEX="1006" PARTOF_ID="1565" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="972" CREATED="2009-01-28 17:07:05.0" UUID="f688e0c1-7245-4b78-9fff-be767a5bb232" URI="" ORDERINDEX="1005" PARTOF_ID="1566" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="973" CREATED="2009-01-28 17:07:05.0" UUID="24153857-fdf0-4d1d-adb0-b42ac71a992a" URI="" ORDERINDEX="1004" PARTOF_ID="1567" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="974" CREATED="2009-01-28 17:07:05.0" UUID="e7d392e6-5e48-4485-b18c-25fb140d3e1f" URI="" ORDERINDEX="1003" PARTOF_ID="1568" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="975" CREATED="2009-01-28 17:07:05.0" UUID="fbb8ab2c-d526-472f-b557-c96cc03bc37c" URI="" ORDERINDEX="1002" PARTOF_ID="1569" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="976" CREATED="2009-01-28 17:07:05.0" UUID="519eb6b6-bed7-405c-9c5e-dd9f621be288" URI="" ORDERINDEX="1001" PARTOF_ID="1570" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="977" CREATED="2009-01-28 17:07:05.0" UUID="216d17b2-9b14-4ee5-bfda-6e82a573b704" URI="" ORDERINDEX="1000" PARTOF_ID="1571" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="978" CREATED="2009-01-28 17:07:05.0" UUID="0e049bd9-c6ce-4e17-85fa-83c61ff90621" URI="" ORDERINDEX="999" PARTOF_ID="1572" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="979" CREATED="2009-01-28 17:07:05.0" UUID="5608de8e-f327-49d3-9a04-0ac0405d34ad" URI="" ORDERINDEX="998" PARTOF_ID="1573" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="980" CREATED="2009-01-28 17:07:05.0" UUID="1388a0b4-1833-48d1-94a0-73351999eebc" URI="" ORDERINDEX="997" PARTOF_ID="1574" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="981" CREATED="2009-01-28 17:07:05.0" UUID="1fd7ecde-8ecd-4cd3-b180-bb44db1fab1e" URI="" ORDERINDEX="996" PARTOF_ID="1575" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="982" CREATED="2009-01-28 17:07:05.0" UUID="91ce37ea-8af3-42e1-873d-902583539bdf" URI="" ORDERINDEX="995" PARTOF_ID="1576" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="983" CREATED="2009-01-28 17:07:05.0" UUID="79870854-1fef-43fb-9eb5-19faecf600d3" URI="" ORDERINDEX="994" PARTOF_ID="1577" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="984" CREATED="2009-01-28 17:07:05.0" UUID="ddac03eb-c533-4fd2-a83d-28d9dce0864d" URI="" ORDERINDEX="993" PARTOF_ID="1577" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="985" CREATED="2009-01-28 17:07:05.0" UUID="c87a4681-f30e-459a-b633-b3cf66822017" URI="" ORDERINDEX="992" PARTOF_ID="1578" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="986" CREATED="2009-01-28 17:07:05.0" UUID="ff5b262e-f7e3-468b-a5e0-a15e86af5c1d" URI="" ORDERINDEX="991" PARTOF_ID="1579" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="987" CREATED="2009-01-28 17:07:05.0" UUID="b5f4b104-2732-4126-8bd7-b55fb3198a29" URI="" ORDERINDEX="990" PARTOF_ID="1580" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="988" CREATED="2009-01-28 17:07:05.0" UUID="a577d31f-aae1-4aa8-aebc-2a1282b011f8" URI="" ORDERINDEX="989" PARTOF_ID="1580" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="989" CREATED="2009-01-28 17:07:05.0" UUID="d82a9d1e-e16a-4612-9507-94757ec66227" URI="" ORDERINDEX="988" PARTOF_ID="1580" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="990" CREATED="2009-01-28 17:07:05.0" UUID="7ef2a035-7ac4-44c8-aa40-84adb96041e3" URI="" ORDERINDEX="987" PARTOF_ID="1580" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="991" CREATED="2009-01-28 17:07:05.0" UUID="0b87994a-c9dd-4dff-8d38-1a11abdad2ae" URI="" ORDERINDEX="986" PARTOF_ID="1581" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="992" CREATED="2009-01-28 17:07:05.0" UUID="e642ec34-2f94-4ccb-b830-e0278982919a" URI="" ORDERINDEX="985" PARTOF_ID="1582" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="993" CREATED="2009-01-28 17:07:05.0" UUID="60a9219e-136e-4ac1-92a3-1b889e473c53" URI="" ORDERINDEX="984" PARTOF_ID="1583" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="994" CREATED="2009-01-28 17:07:05.0" UUID="c58cbd17-e60e-4adf-a970-2d37f3fedb77" URI="" ORDERINDEX="983" PARTOF_ID="1584" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="995" CREATED="2009-01-28 17:07:05.0" UUID="b7ea03d2-a7f0-44bf-995f-c5a0e352480a" URI="" ORDERINDEX="982" PARTOF_ID="1585" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="996" CREATED="2009-01-28 17:07:05.0" UUID="ceeabdbc-bf13-494a-869a-d476956b8b60" URI="" ORDERINDEX="981" PARTOF_ID="1586" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="997" CREATED="2009-01-28 17:07:05.0" UUID="f981d953-a271-4e39-ade7-c89e41e550be" URI="" ORDERINDEX="980" PARTOF_ID="1587" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="998" CREATED="2009-01-28 17:07:05.0" UUID="d96d2d70-1959-45b4-90e5-692b0bc8468c" URI="" ORDERINDEX="979" PARTOF_ID="1588" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="999" CREATED="2009-01-28 17:07:05.0" UUID="acf51c02-d09e-4f57-8ee7-4ea82949f6a2" URI="" ORDERINDEX="978" PARTOF_ID="1589" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1000" CREATED="2009-01-28 17:07:05.0" UUID="c1e3819c-9c05-4559-b6de-a4d792c9edc1" URI="" ORDERINDEX="977" PARTOF_ID="1590" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1001" CREATED="2009-01-28 17:07:05.0" UUID="5fa5df7b-f0f3-461c-9f29-11d40b183109" URI="" ORDERINDEX="976" PARTOF_ID="1590" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1002" CREATED="2009-01-28 17:07:05.0" UUID="c7293bdb-28dc-429a-aa66-2732e0d12d1f" URI="" ORDERINDEX="975" PARTOF_ID="1590" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1003" CREATED="2009-01-28 17:07:05.0" UUID="e93c18ac-ed8b-4b2f-8e22-6aa9bf03b1e5" URI="" ORDERINDEX="974" PARTOF_ID="1591" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1004" CREATED="2009-01-28 17:07:05.0" UUID="f18f0d78-d2fb-4e24-86d5-783067a25291" URI="" ORDERINDEX="973" PARTOF_ID="1592" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1005" CREATED="2009-01-28 17:07:05.0" UUID="9806016c-be9c-4d35-ae67-d45abba590be" URI="" ORDERINDEX="972" PARTOF_ID="1593" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1006" CREATED="2009-01-28 17:07:05.0" UUID="a5353ceb-adac-43e2-80b7-785a383da5c9" URI="" ORDERINDEX="971" PARTOF_ID="1594" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1007" CREATED="2009-01-28 17:07:05.0" UUID="b71f5f89-708d-4010-a1f3-107671105abe" URI="" ORDERINDEX="970" PARTOF_ID="1595" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1008" CREATED="2009-01-28 17:07:05.0" UUID="3ade1654-2d18-4dca-be14-f5c7647f7bc4" URI="" ORDERINDEX="969" PARTOF_ID="1596" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1009" CREATED="2009-01-28 17:07:05.0" UUID="68d8c6e8-7666-414e-9579-b1604592694d" URI="" ORDERINDEX="968" PARTOF_ID="1597" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1010" CREATED="2009-01-28 17:07:05.0" UUID="c3c37338-5f1f-447c-8948-bf20ce98f1f8" URI="" ORDERINDEX="967" PARTOF_ID="1597" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1011" CREATED="2009-01-28 17:07:05.0" UUID="204ca32d-74c7-4288-ab0c-3013d24d92e1" URI="" ORDERINDEX="966" PARTOF_ID="1597" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1012" CREATED="2009-01-28 17:07:05.0" UUID="6f85062e-1a30-4cbe-9c3a-96e3cd68ca61" URI="" ORDERINDEX="965" PARTOF_ID="1597" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1013" CREATED="2009-01-28 17:07:05.0" UUID="17ce9ce4-ca6e-4c13-b858-5f23a89c2eb7" URI="" ORDERINDEX="964" PARTOF_ID="1597" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1014" CREATED="2009-01-28 17:07:05.0" UUID="532a0762-7d64-4667-8590-5380ae39974c" URI="" ORDERINDEX="963" PARTOF_ID="1597" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1015" CREATED="2009-01-28 17:07:05.0" UUID="48da1791-103c-4505-bb69-cc780bdbac2d" URI="" ORDERINDEX="962" PARTOF_ID="1597" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1016" CREATED="2009-01-28 17:07:05.0" UUID="e293eda7-9bc3-4d2d-86bb-224f8f2f7e4a" URI="" ORDERINDEX="961" PARTOF_ID="1598" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1017" CREATED="2009-01-28 17:07:05.0" UUID="0f422108-51d2-4dc9-b11b-03fc430a8994" URI="" ORDERINDEX="960" PARTOF_ID="1599" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1018" CREATED="2009-01-28 17:07:05.0" UUID="06153999-40d8-4298-8ae1-0bb148e4b5a4" URI="" ORDERINDEX="959" PARTOF_ID="1600" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1019" CREATED="2009-01-28 17:07:05.0" UUID="17f23bcb-9dfb-46ed-aaee-742426008957" URI="" ORDERINDEX="958" PARTOF_ID="1601" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1020" CREATED="2009-01-28 17:07:05.0" UUID="3e9fce6c-9f4b-42af-92b4-0a81e598c004" URI="" ORDERINDEX="957" PARTOF_ID="1602" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1021" CREATED="2009-01-28 17:07:05.0" UUID="0d353eb2-2fd8-4843-ba1f-c6873e703869" URI="" ORDERINDEX="956" PARTOF_ID="1603" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1022" CREATED="2009-01-28 17:07:05.0" UUID="1acae55b-f2ad-491d-8367-8ca76a3228e9" URI="" ORDERINDEX="955" PARTOF_ID="1604" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1023" CREATED="2009-01-28 17:07:05.0" UUID="bffeb089-afaf-4f04-b134-39cae5a45881" URI="" ORDERINDEX="954" PARTOF_ID="1605" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1024" CREATED="2009-01-28 17:07:05.0" UUID="78cf3647-af9f-4aff-a326-72dce23adae3" URI="" ORDERINDEX="953" PARTOF_ID="1605" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1025" CREATED="2009-01-28 17:07:05.0" UUID="d9dadba7-eefd-42dc-99d0-7001b0316ea4" URI="" ORDERINDEX="952" PARTOF_ID="1605" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1026" CREATED="2009-01-28 17:07:05.0" UUID="faa8e353-60b2-4775-99eb-9873f5216490" URI="" ORDERINDEX="951" PARTOF_ID="1606" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1027" CREATED="2009-01-28 17:07:05.0" UUID="1e3af172-ad4b-4a4e-af30-ac4491b23b01" URI="" ORDERINDEX="950" PARTOF_ID="1607" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1028" CREATED="2009-01-28 17:07:05.0" UUID="4395d5e0-64e2-4309-a2ec-b1240919c34d" URI="" ORDERINDEX="949" PARTOF_ID="1608" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1029" CREATED="2009-01-28 17:07:05.0" UUID="bfc07508-8ee2-413f-841e-d44a0c09e010" URI="" ORDERINDEX="948" PARTOF_ID="1609" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1030" CREATED="2009-01-28 17:07:05.0" UUID="1db7ec41-05b3-4964-8da3-6d2d91332fc7" URI="" ORDERINDEX="947" PARTOF_ID="1610" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1031" CREATED="2009-01-28 17:07:05.0" UUID="97cc1d7f-18fa-4c77-b880-5d1ce07710da" URI="" ORDERINDEX="946" PARTOF_ID="1611" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1032" CREATED="2009-01-28 17:07:05.0" UUID="b5be639a-1ec5-4be3-81e4-0f769a3a785c" URI="" ORDERINDEX="945" PARTOF_ID="1612" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1033" CREATED="2009-01-28 17:07:05.0" UUID="dd22e5da-092c-4610-816c-bc6c3ad91620" URI="" ORDERINDEX="944" PARTOF_ID="1613" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1034" CREATED="2009-01-28 17:07:05.0" UUID="0113409c-7dd8-4601-b261-61d0ba43795d" URI="" ORDERINDEX="943" PARTOF_ID="1614" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1035" CREATED="2009-01-28 17:07:05.0" UUID="fba94126-08ec-4a91-95d4-de10f2b27f03" URI="" ORDERINDEX="942" PARTOF_ID="1614" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1036" CREATED="2009-01-28 17:07:05.0" UUID="095b8b6d-44c5-4d46-9b18-99d8caf396ba" URI="" ORDERINDEX="941" PARTOF_ID="1614" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1037" CREATED="2009-01-28 17:07:05.0" UUID="176373e5-435f-40ac-8d8f-bf2b4963a9a6" URI="" ORDERINDEX="940" PARTOF_ID="1615" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1038" CREATED="2009-01-28 17:07:05.0" UUID="e61558d4-7bcf-43ca-aa40-7ec7ffb74c1f" URI="" ORDERINDEX="939" PARTOF_ID="1616" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1039" CREATED="2009-01-28 17:07:05.0" UUID="6969efec-5333-491c-9499-8db5ee2918ed" URI="" ORDERINDEX="938" PARTOF_ID="1616" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1040" CREATED="2009-01-28 17:07:05.0" UUID="e2707cb9-8929-435a-8c61-1c10c7889d9a" URI="" ORDERINDEX="937" PARTOF_ID="1617" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1041" CREATED="2009-01-28 17:07:05.0" UUID="c92577a8-51a3-459d-9ab0-41c5edeca450" URI="" ORDERINDEX="936" PARTOF_ID="1618" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1042" CREATED="2009-01-28 17:07:05.0" UUID="b7fa88cd-05bf-4abe-8b90-5dbf38465b28" URI="" ORDERINDEX="935" PARTOF_ID="1619" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1043" CREATED="2009-01-28 17:07:05.0" UUID="3aca2f99-dbdb-4ade-a336-17a8b537607b" URI="" ORDERINDEX="934" PARTOF_ID="1620" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1044" CREATED="2009-01-28 17:07:05.0" UUID="f991f85c-bcc7-497b-9868-1ab18c72b194" URI="" ORDERINDEX="933" PARTOF_ID="1621" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1045" CREATED="2009-01-28 17:07:05.0" UUID="4194946a-0642-47d7-80cc-f17701c87f73" URI="" ORDERINDEX="932" PARTOF_ID="1621" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1046" CREATED="2009-01-28 17:07:05.0" UUID="8ad99980-84cf-4ff7-b244-c2208c53841e" URI="" ORDERINDEX="931" PARTOF_ID="1622" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1047" CREATED="2009-01-28 17:07:05.0" UUID="8b8ba8f2-e9d1-4561-a030-dda45611e7fd" URI="" ORDERINDEX="930" PARTOF_ID="1623" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1048" CREATED="2009-01-28 17:07:05.0" UUID="ecfc254e-ae37-42f6-a338-e8098d89cbac" URI="" ORDERINDEX="929" PARTOF_ID="1624" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1049" CREATED="2009-01-28 17:07:05.0" UUID="688c1e74-c207-4b08-8fba-f36289bb1f71" URI="" ORDERINDEX="928" PARTOF_ID="1625" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1050" CREATED="2009-01-28 17:07:05.0" UUID="023aaa47-04da-4d61-989f-5c9230f67bec" URI="" ORDERINDEX="927" PARTOF_ID="1626" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1051" CREATED="2009-01-28 17:07:05.0" UUID="f2b53289-c139-4aa5-8c7f-56b0a129c295" URI="" ORDERINDEX="926" PARTOF_ID="1627" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1052" CREATED="2009-01-28 17:07:05.0" UUID="544c29d6-dfc2-4434-8493-d976eb1da751" URI="" ORDERINDEX="925" PARTOF_ID="1628" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1053" CREATED="2009-01-28 17:07:05.0" UUID="085f5edc-986f-4283-b787-dc8f870add81" URI="" ORDERINDEX="924" PARTOF_ID="1628" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1054" CREATED="2009-01-28 17:07:05.0" UUID="86aaf6ea-8349-4190-9c71-7f7f99bf7ca9" URI="" ORDERINDEX="923" PARTOF_ID="1629" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1055" CREATED="2009-01-28 17:07:05.0" UUID="fd3ce6ee-65e6-46a7-a59f-e4b283477ce4" URI="" ORDERINDEX="922" PARTOF_ID="1630" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1056" CREATED="2009-01-28 17:07:05.0" UUID="df0cbba2-e1e2-46f2-abad-71fe13521df8" URI="" ORDERINDEX="921" PARTOF_ID="1631" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1057" CREATED="2009-01-28 17:07:05.0" UUID="758b3088-c93d-4625-9500-afe5ec5cfa23" URI="" ORDERINDEX="920" PARTOF_ID="1632" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1058" CREATED="2009-01-28 17:07:05.0" UUID="c2014fa0-f86a-4924-964e-f6693a39a88e" URI="" ORDERINDEX="919" PARTOF_ID="1633" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1059" CREATED="2009-01-28 17:07:05.0" UUID="58045c98-4614-4ee7-a311-900bbf77a39e" URI="" ORDERINDEX="918" PARTOF_ID="1634" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1060" CREATED="2009-01-28 17:07:05.0" UUID="fdcd45a4-495e-40cd-bb06-1944ca4e635a" URI="" ORDERINDEX="917" PARTOF_ID="1634" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1061" CREATED="2009-01-28 17:07:05.0" UUID="0ec14c42-9f9c-483f-8bac-49c042f4aac2" URI="" ORDERINDEX="916" PARTOF_ID="1635" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1062" CREATED="2009-01-28 17:07:05.0" UUID="35ee7d91-0e7f-402b-af1c-8b35f993de4b" URI="" ORDERINDEX="915" PARTOF_ID="1636" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1063" CREATED="2009-01-28 17:07:05.0" UUID="0bd7203a-4d11-45c5-abe4-c35ed0698a52" URI="" ORDERINDEX="914" PARTOF_ID="1637" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1064" CREATED="2009-01-28 17:07:05.0" UUID="76237f64-c306-4dd5-bff9-f9589507cbc7" URI="" ORDERINDEX="913" PARTOF_ID="1638" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1065" CREATED="2009-01-28 17:07:05.0" UUID="54c211a3-6767-434f-8176-81099d9ac6b0" URI="" ORDERINDEX="912" PARTOF_ID="1639" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1066" CREATED="2009-01-28 17:07:05.0" UUID="d3f6ae29-1f97-4a95-b0ce-6e65cb2fe788" URI="" ORDERINDEX="911" PARTOF_ID="1640" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1067" CREATED="2009-01-28 17:07:05.0" UUID="d0cd49af-1bfc-4deb-97e5-c02b0735f684" URI="" ORDERINDEX="910" PARTOF_ID="1641" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1068" CREATED="2009-01-28 17:07:05.0" UUID="fb4016ae-f667-4662-b3cd-c99aee263a36" URI="" ORDERINDEX="909" PARTOF_ID="1642" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1069" CREATED="2009-01-28 17:07:05.0" UUID="3fc9befa-8bcf-4cdd-adc6-a8fd0046ad94" URI="" ORDERINDEX="908" PARTOF_ID="1643" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1070" CREATED="2009-01-28 17:07:05.0" UUID="e9ef0836-b09f-46d6-8d85-655d2a5d06ea" URI="" ORDERINDEX="907" PARTOF_ID="1644" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1071" CREATED="2009-01-28 17:07:05.0" UUID="836fa04b-e2d7-4749-97f3-46b05f17b7c0" URI="" ORDERINDEX="906" PARTOF_ID="1645" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1072" CREATED="2009-01-28 17:07:05.0" UUID="0746cd53-e1fe-4d5e-928c-5a04885c7b3e" URI="" ORDERINDEX="905" PARTOF_ID="1646" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1073" CREATED="2009-01-28 17:07:05.0" UUID="a8fb3a37-57a2-4c3e-b4a7-1df394bda83c" URI="" ORDERINDEX="904" PARTOF_ID="1647" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1074" CREATED="2009-01-28 17:07:05.0" UUID="12ff3212-0a5c-4621-aa96-559bf91b38c0" URI="" ORDERINDEX="903" PARTOF_ID="1647" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1075" CREATED="2009-01-28 17:07:05.0" UUID="44de1584-e6ed-4a0f-951e-2e7405180d45" URI="" ORDERINDEX="902" PARTOF_ID="1648" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1076" CREATED="2009-01-28 17:07:05.0" UUID="72486bfa-a330-42c2-8620-20bb6e2d0379" URI="" ORDERINDEX="901" PARTOF_ID="1649" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1077" CREATED="2009-01-28 17:07:05.0" UUID="a4841cd4-4bad-4930-a0c6-61197b15832b" URI="" ORDERINDEX="900" PARTOF_ID="1650" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1078" CREATED="2009-01-28 17:07:05.0" UUID="8284f453-33b7-457d-acf8-61981112aa26" URI="" ORDERINDEX="899" PARTOF_ID="1651" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1079" CREATED="2009-01-28 17:07:05.0" UUID="59152e23-5202-47c0-8897-6ecf021a2240" URI="" ORDERINDEX="898" PARTOF_ID="1652" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1080" CREATED="2009-01-28 17:07:05.0" UUID="02ab5796-bdfd-40c1-bf48-79d7f9b54c0b" URI="" ORDERINDEX="897" PARTOF_ID="1653" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1081" CREATED="2009-01-28 17:07:05.0" UUID="9dee4b0d-d864-4b6f-bd41-39a1ea7c56c3" URI="" ORDERINDEX="896" PARTOF_ID="1654" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1082" CREATED="2009-01-28 17:07:05.0" UUID="d58447cc-7425-43f1-b1a6-221dd5591e13" URI="" ORDERINDEX="895" PARTOF_ID="1655" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1083" CREATED="2009-01-28 17:07:05.0" UUID="2f071a87-ed8d-41ab-bc6c-4a2e86fa33b6" URI="" ORDERINDEX="894" PARTOF_ID="1656" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1084" CREATED="2009-01-28 17:07:05.0" UUID="4365bc4c-8edf-4827-a727-3e3dc2a48c99" URI="" ORDERINDEX="893" PARTOF_ID="1657" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1085" CREATED="2009-01-28 17:07:05.0" UUID="de12ce18-4f5e-49b8-92d6-d6ca633084af" URI="" ORDERINDEX="892" PARTOF_ID="1658" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1086" CREATED="2009-01-28 17:07:04.0" UUID="077b8b6c-f1fa-4e43-abce-eb2c0942f215" URI="" ORDERINDEX="891" PARTOF_ID="1659" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1087" CREATED="2009-01-28 17:07:04.0" UUID="620b8ef7-d129-44a4-aeab-9b82b58988e7" URI="" ORDERINDEX="890" PARTOF_ID="1660" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1088" CREATED="2009-01-28 17:07:04.0" UUID="8cf6a459-8803-48a3-a7d6-e840681bb604" URI="" ORDERINDEX="889" PARTOF_ID="1660" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1089" CREATED="2009-01-28 17:07:04.0" UUID="5a80fd55-5fe7-44d9-bdf4-13633d81f270" URI="" ORDERINDEX="888" PARTOF_ID="1661" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1090" CREATED="2009-01-28 17:07:04.0" UUID="c8ba946f-6401-4b77-ac70-04a30d8ea65d" URI="" ORDERINDEX="887" PARTOF_ID="1662" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1091" CREATED="2009-01-28 17:07:04.0" UUID="979889b5-ff89-41f6-96bb-27c44cf764a3" URI="" ORDERINDEX="886" PARTOF_ID="1663" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1092" CREATED="2009-01-28 17:07:04.0" UUID="3c4f004b-51d2-488e-9d04-8c393cdba220" URI="" ORDERINDEX="885" PARTOF_ID="1664" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1093" CREATED="2009-01-28 17:07:04.0" UUID="54beb9ec-857c-4149-b38d-db30e257515d" URI="" ORDERINDEX="884" PARTOF_ID="1665" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1094" CREATED="2009-01-28 17:07:04.0" UUID="8e842dc3-6d31-4d65-a250-63a495d9c46f" URI="" ORDERINDEX="883" PARTOF_ID="1666" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1095" CREATED="2009-01-28 17:07:04.0" UUID="e8cd281f-eba5-4529-b496-bb7d04221d73" URI="" ORDERINDEX="882" PARTOF_ID="1667" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1096" CREATED="2009-01-28 17:07:04.0" UUID="3ef48a2a-4ef5-4807-ab05-9559c5305ab8" URI="" ORDERINDEX="881" PARTOF_ID="1668" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1097" CREATED="2009-01-28 17:07:04.0" UUID="3add1095-b6a9-43f5-9ce8-2797b4db328b" URI="" ORDERINDEX="880" PARTOF_ID="1669" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1098" CREATED="2009-01-28 17:07:04.0" UUID="33ae2ea4-4472-41f8-92d0-b2d22c045dbc" URI="" ORDERINDEX="879" PARTOF_ID="1670" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1099" CREATED="2009-01-28 17:07:04.0" UUID="bfdc923e-b808-40bf-b22a-fad59cfe3517" URI="" ORDERINDEX="878" PARTOF_ID="1671" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1100" CREATED="2009-01-28 17:07:04.0" UUID="71a7806f-9b2b-4b1f-92ef-7b104424e4df" URI="" ORDERINDEX="877" PARTOF_ID="1672" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1101" CREATED="2009-01-28 17:07:04.0" UUID="f3bc6a47-5caf-410d-b418-8a48f3632c38" URI="" ORDERINDEX="876" PARTOF_ID="1673" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1102" CREATED="2009-01-28 17:07:04.0" UUID="52627b21-09d0-49ee-995b-773bcd2d2736" URI="" ORDERINDEX="875" PARTOF_ID="1674" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1103" CREATED="2009-01-28 17:07:04.0" UUID="bf3ee613-1c24-4cb9-9adc-4d06f9dcae33" URI="" ORDERINDEX="874" PARTOF_ID="1675" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1104" CREATED="2009-01-28 17:07:04.0" UUID="0145c796-4ebf-4398-bad6-614a264515b4" URI="" ORDERINDEX="873" PARTOF_ID="1676" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1105" CREATED="2009-01-28 17:07:04.0" UUID="f1a7f887-741a-427c-bbbc-4c13a8c26659" URI="" ORDERINDEX="872" PARTOF_ID="1676" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1106" CREATED="2009-01-28 17:07:04.0" UUID="4d84243b-2b9c-4de9-8510-f78875cfab41" URI="" ORDERINDEX="871" PARTOF_ID="1677" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1107" CREATED="2009-01-28 17:07:04.0" UUID="c316be0e-7711-4ede-b542-290ae3b8b986" URI="" ORDERINDEX="870" PARTOF_ID="1678" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1108" CREATED="2009-01-28 17:07:04.0" UUID="9e31a2ec-c729-4908-93fb-056321e79e34" URI="" ORDERINDEX="869" PARTOF_ID="1679" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1109" CREATED="2009-01-28 17:07:04.0" UUID="178cc276-24c8-4b9b-9afa-02431a1bec6c" URI="" ORDERINDEX="868" PARTOF_ID="1680" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1110" CREATED="2009-01-28 17:07:04.0" UUID="471a9abf-8230-4e75-b2ec-f12ce14736ee" URI="" ORDERINDEX="867" PARTOF_ID="1681" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1111" CREATED="2009-01-28 17:07:04.0" UUID="ab26e107-d801-46a3-9433-7f13f767a65b" URI="" ORDERINDEX="866" PARTOF_ID="1681" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1112" CREATED="2009-01-28 17:07:04.0" UUID="e6914731-7bb6-4cdc-bd20-5f9830f921a9" URI="" ORDERINDEX="865" PARTOF_ID="1682" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1113" CREATED="2009-01-28 17:07:04.0" UUID="0e5b9e48-f7c9-42ed-8baa-32cec6f13fb4" URI="" ORDERINDEX="864" PARTOF_ID="1683" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1114" CREATED="2009-01-28 17:07:04.0" UUID="57d16bae-777b-4bbb-a3b9-02b340239571" URI="" ORDERINDEX="863" PARTOF_ID="1684" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1115" CREATED="2009-01-28 17:07:04.0" UUID="db3d6a93-5ffa-4803-8004-9cfe08c5ce44" URI="" ORDERINDEX="862" PARTOF_ID="1685" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1116" CREATED="2009-01-28 17:07:04.0" UUID="4a3532c5-9d47-4d1d-ae56-2555384058e1" URI="" ORDERINDEX="861" PARTOF_ID="1686" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1117" CREATED="2009-01-28 17:07:04.0" UUID="521f5c71-6c4c-490b-a042-eeca1f68ceeb" URI="" ORDERINDEX="860" PARTOF_ID="1686" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1118" CREATED="2009-01-28 17:07:04.0" UUID="00fcf611-abaf-449a-a70b-79a5762e0736" URI="" ORDERINDEX="859" PARTOF_ID="1687" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1119" CREATED="2009-01-28 17:07:04.0" UUID="bb7c7af5-78ef-4197-b504-67ff1587a43d" URI="" ORDERINDEX="858" PARTOF_ID="1688" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1120" CREATED="2009-01-28 17:07:04.0" UUID="7e7a213d-f8d2-4220-98ca-247ca9ab68fa" URI="" ORDERINDEX="857" PARTOF_ID="1689" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1121" CREATED="2009-01-28 17:07:04.0" UUID="8f19cf83-7a19-42c6-8876-4d628fe24671" URI="" ORDERINDEX="856" PARTOF_ID="1690" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1122" CREATED="2009-01-28 17:07:04.0" UUID="15bc6921-9726-49c1-978a-f927c6966ea7" URI="" ORDERINDEX="855" PARTOF_ID="1690" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1123" CREATED="2009-01-28 17:07:04.0" UUID="97c96422-31c6-4b12-b820-31818e30673d" URI="" ORDERINDEX="854" PARTOF_ID="1691" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1124" CREATED="2009-01-28 17:07:04.0" UUID="2e33a45c-c121-47e6-bd9b-cabf3d930598" URI="" ORDERINDEX="853" PARTOF_ID="1691" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1125" CREATED="2009-01-28 17:07:04.0" UUID="35be6728-3c0f-4aa6-aa2c-8e4d9e60b8fe" URI="" ORDERINDEX="852" PARTOF_ID="1692" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1126" CREATED="2009-01-28 17:07:04.0" UUID="f1d92cb8-9bb1-48d8-b395-eafa6d4162c3" URI="" ORDERINDEX="851" PARTOF_ID="1693" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1127" CREATED="2009-01-28 17:07:04.0" UUID="aca8b819-54a8-4ee4-8e22-f9839df98975" URI="" ORDERINDEX="850" PARTOF_ID="1694" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1128" CREATED="2009-01-28 17:07:04.0" UUID="8567fe51-9c84-4f57-94ee-c7f9f2ce7e3a" URI="" ORDERINDEX="849" PARTOF_ID="1695" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1129" CREATED="2009-01-28 17:07:04.0" UUID="2286d950-3f8b-4e53-9d9d-cf0c448c6f5f" URI="" ORDERINDEX="848" PARTOF_ID="1696" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1130" CREATED="2009-01-28 17:07:04.0" UUID="ec8a2502-84f0-4d70-aa55-a663475f5c6b" URI="" ORDERINDEX="847" PARTOF_ID="1697" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1131" CREATED="2009-01-28 17:07:04.0" UUID="22cd14fa-fa0d-4859-b8d6-b583befecb89" URI="" ORDERINDEX="846" PARTOF_ID="1697" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1132" CREATED="2009-01-28 17:07:04.0" UUID="d9548675-9a6d-4f5b-9efc-d8e499971be6" URI="" ORDERINDEX="845" PARTOF_ID="1697" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1133" CREATED="2009-01-28 17:07:04.0" UUID="48d3d918-8591-4117-a32c-56403761db7d" URI="" ORDERINDEX="844" PARTOF_ID="1697" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1134" CREATED="2009-01-28 17:07:04.0" UUID="37dcfe51-6e78-4fa5-9d03-a0d97273bb51" URI="" ORDERINDEX="843" PARTOF_ID="1697" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1135" CREATED="2009-01-28 17:07:04.0" UUID="3bff72cd-fef9-45f6-9bdc-d16c31210427" URI="" ORDERINDEX="842" PARTOF_ID="1697" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1136" CREATED="2009-01-28 17:07:04.0" UUID="57588bf4-3157-4fd5-bf6a-369b59a33fc6" URI="" ORDERINDEX="841" PARTOF_ID="1697" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1137" CREATED="2009-01-28 17:07:04.0" UUID="d60d5797-61b2-422a-a87c-66e577474ea2" URI="" ORDERINDEX="840" PARTOF_ID="1697" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1138" CREATED="2009-01-28 17:07:04.0" UUID="1338a3d3-10c3-47ee-ab71-3c64c4ab2c78" URI="" ORDERINDEX="839" PARTOF_ID="1698" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1139" CREATED="2009-01-28 17:07:04.0" UUID="c0f8789f-6c3f-4af8-8391-ad990fb40965" URI="" ORDERINDEX="838" PARTOF_ID="1699" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1140" CREATED="2009-01-28 17:07:04.0" UUID="a7efd881-26d3-4d51-8eb7-ead43374c9f4" URI="" ORDERINDEX="837" PARTOF_ID="1700" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1141" CREATED="2009-01-28 17:07:04.0" UUID="550bb42c-37e2-4223-a00b-607348d8d5bb" URI="" ORDERINDEX="836" PARTOF_ID="1701" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1142" CREATED="2009-01-28 17:07:04.0" UUID="c9139aa6-a098-483e-be35-39c65f8d56ea" URI="" ORDERINDEX="835" PARTOF_ID="1702" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1143" CREATED="2009-01-28 17:07:04.0" UUID="fc6ff9e5-0e21-4109-aea9-832ec8aebaf3" URI="" ORDERINDEX="834" PARTOF_ID="1703" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1144" CREATED="2009-01-28 17:07:04.0" UUID="1519ea7d-d7e4-48aa-9f24-00bbd744ea31" URI="" ORDERINDEX="833" PARTOF_ID="1704" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1145" CREATED="2009-01-28 17:07:04.0" UUID="536476da-d49c-4c90-885c-1aaf6ef033e3" URI="" ORDERINDEX="832" PARTOF_ID="1704" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1146" CREATED="2009-01-28 17:07:04.0" UUID="e1b3c800-dde0-465e-acd8-7a155b88728b" URI="" ORDERINDEX="831" PARTOF_ID="1704" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1147" CREATED="2009-01-28 17:07:04.0" UUID="3a88bbee-1381-4ce6-a921-8e75d3eccaa6" URI="" ORDERINDEX="830" PARTOF_ID="1704" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1148" CREATED="2009-01-28 17:07:04.0" UUID="47d81f12-741e-4ffe-aaa9-1fee6b2b4463" URI="" ORDERINDEX="829" PARTOF_ID="1704" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1149" CREATED="2009-01-28 17:07:04.0" UUID="c17bdb19-2c0d-4745-b0c7-f234a38e039d" URI="" ORDERINDEX="828" PARTOF_ID="1705" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1150" CREATED="2009-01-28 17:07:04.0" UUID="bb3838e9-8815-42e7-9471-3f43cb014194" URI="" ORDERINDEX="827" PARTOF_ID="1705" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1151" CREATED="2009-01-28 17:07:04.0" UUID="3a30f064-6491-41cd-872a-2fec5017c2dd" URI="" ORDERINDEX="826" PARTOF_ID="1705" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1152" CREATED="2009-01-28 17:07:04.0" UUID="2b07b916-ff4c-4c73-b6df-7c893852c33b" URI="" ORDERINDEX="825" PARTOF_ID="1705" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1153" CREATED="2009-01-28 17:07:04.0" UUID="b1b2d3b2-fe30-47e4-96c3-e109dd39473b" URI="" ORDERINDEX="824" PARTOF_ID="1705" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1154" CREATED="2009-01-28 17:07:04.0" UUID="b2ea91ed-c667-4fd2-81ac-9df65c394cc4" URI="" ORDERINDEX="823" PARTOF_ID="1705" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1155" CREATED="2009-01-28 17:07:04.0" UUID="68718c56-846c-4994-ae7d-1f5cbb5c33bc" URI="" ORDERINDEX="822" PARTOF_ID="1706" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1156" CREATED="2009-01-28 17:07:04.0" UUID="6e1e23de-b355-417b-8ca7-fa7ddd387a92" URI="" ORDERINDEX="821" PARTOF_ID="1706" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1157" CREATED="2009-01-28 17:07:04.0" UUID="ead11f6e-743e-4fc7-859c-d78acae4e88d" URI="" ORDERINDEX="820" PARTOF_ID="1706" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1158" CREATED="2009-01-28 17:07:04.0" UUID="5c143c06-c456-4dc1-9ce9-7745d255c237" URI="" ORDERINDEX="819" PARTOF_ID="1706" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1159" CREATED="2009-01-28 17:07:04.0" UUID="6dfaa758-e76c-48cc-9c8b-08800defc8a4" URI="" ORDERINDEX="818" PARTOF_ID="1707" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1160" CREATED="2009-01-28 17:07:04.0" UUID="7d07cc5e-1a0d-4b6d-b747-4797a664d744" URI="" ORDERINDEX="817" PARTOF_ID="1707" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1161" CREATED="2009-01-28 17:07:04.0" UUID="7f3f2d42-a712-4747-8344-1e99467ef434" URI="" ORDERINDEX="816" PARTOF_ID="1707" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1162" CREATED="2009-01-28 17:07:04.0" UUID="de72ef9f-98ed-4f36-80e6-f830ec7622ca" URI="" ORDERINDEX="815" PARTOF_ID="1708" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1163" CREATED="2009-01-28 17:07:04.0" UUID="6af99608-01a6-490d-95f5-36a41bc0059f" URI="" ORDERINDEX="814" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1164" CREATED="2009-01-28 17:07:04.0" UUID="9c6bc35f-2da8-419f-a7bf-08317e8ae0cb" URI="" ORDERINDEX="813" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1165" CREATED="2009-01-28 17:07:04.0" UUID="8d400ef1-b3a2-4abb-806c-58f442a20587" URI="" ORDERINDEX="812" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1166" CREATED="2009-01-28 17:07:04.0" UUID="55bd3283-0fcc-4875-b47c-6182a7b1fdc9" URI="" ORDERINDEX="811" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1167" CREATED="2009-01-28 17:07:04.0" UUID="fd6cd489-ac26-48e7-86be-93defbd2957b" URI="" ORDERINDEX="810" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1168" CREATED="2009-01-28 17:07:04.0" UUID="28c68418-3220-418f-b48a-323ac65aa749" URI="" ORDERINDEX="809" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1169" CREATED="2009-01-28 17:07:04.0" UUID="a50f3b86-2ea1-4ab3-a29b-e17859ef7bef" URI="" ORDERINDEX="808" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1170" CREATED="2009-01-28 17:07:04.0" UUID="81ac3077-c182-4acc-9136-62dc8caaee00" URI="" ORDERINDEX="807" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1171" CREATED="2009-01-28 17:07:04.0" UUID="4fa2b3d9-4bc5-405a-8c81-33cfd3b64181" URI="" ORDERINDEX="806" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1172" CREATED="2009-01-28 17:07:04.0" UUID="d4e5a892-b9d1-499d-af26-cdc4aaadfdee" URI="" ORDERINDEX="805" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1173" CREATED="2009-01-28 17:07:04.0" UUID="ed5dd795-2869-4d22-aee4-00de70b27f5a" URI="" ORDERINDEX="804" PARTOF_ID="1709" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1174" CREATED="2009-01-28 17:07:04.0" UUID="9e6a77a5-1b7c-4b2f-a6ef-e1ea8bdd5d6d" URI="" ORDERINDEX="803" PARTOF_ID="1710" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1175" CREATED="2009-01-28 17:07:04.0" UUID="72ad92cb-64b7-4e71-a8a3-9a07157e9ab2" URI="" ORDERINDEX="802" PARTOF_ID="1710" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1176" CREATED="2009-01-28 17:07:04.0" UUID="d7a02375-0f0a-4bf6-9b70-b3c6e01cf1a4" URI="" ORDERINDEX="801" PARTOF_ID="1710" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1177" CREATED="2009-01-28 17:07:04.0" UUID="006d80e0-d30c-4151-97c6-1551bfc4ee6a" URI="" ORDERINDEX="800" PARTOF_ID="1710" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1178" CREATED="2009-01-28 17:07:04.0" UUID="565751f1-613e-4ddc-bfbb-4b54f2267971" URI="" ORDERINDEX="799" PARTOF_ID="1710" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1179" CREATED="2009-01-28 17:07:04.0" UUID="e4f11abe-181d-4c15-b37a-28cec84d5622" URI="" ORDERINDEX="798" PARTOF_ID="1711" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1180" CREATED="2009-01-28 17:07:04.0" UUID="0e78f84c-2830-49ee-bd03-0e605ed7220f" URI="" ORDERINDEX="797" PARTOF_ID="1712" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1181" CREATED="2009-01-28 17:07:04.0" UUID="dbd3c366-9bb8-4f38-8b52-a2f208af02ce" URI="" ORDERINDEX="796" PARTOF_ID="1713" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1182" CREATED="2009-01-28 17:07:04.0" UUID="a270a0a7-4f1b-43db-9ebe-b71968ee3013" URI="" ORDERINDEX="795" PARTOF_ID="1714" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1183" CREATED="2009-01-28 17:07:04.0" UUID="fd6c8607-20c1-436b-bd62-a425b0d7b4fd" URI="" ORDERINDEX="794" PARTOF_ID="1715" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1184" CREATED="2009-01-28 17:07:04.0" UUID="eb68f63a-c660-490e-9c2f-d8e161cf703b" URI="" ORDERINDEX="793" PARTOF_ID="1716" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1185" CREATED="2009-01-28 17:07:04.0" UUID="2fa7b7f4-6427-49d8-87e7-107c15367df6" URI="" ORDERINDEX="792" PARTOF_ID="1717" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1186" CREATED="2009-01-28 17:07:04.0" UUID="aa220148-96c0-4580-a8ff-f0ecf6a66aa8" URI="" ORDERINDEX="791" PARTOF_ID="1717" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1187" CREATED="2009-01-28 17:07:04.0" UUID="80f83d1a-3f0a-4ffd-9e72-91271472ad72" URI="" ORDERINDEX="790" PARTOF_ID="1718" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1188" CREATED="2009-01-28 17:07:04.0" UUID="2bdda236-f695-4a46-b4c5-a1041b428a85" URI="" ORDERINDEX="789" PARTOF_ID="1719" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1189" CREATED="2009-01-28 17:07:04.0" UUID="62868cfb-b94b-40fe-9128-8d4620d36619" URI="" ORDERINDEX="788" PARTOF_ID="1720" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1190" CREATED="2009-01-28 17:07:04.0" UUID="3bd32d2a-b3b8-440e-8afb-e6bd2b00c887" URI="" ORDERINDEX="787" PARTOF_ID="1720" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1191" CREATED="2009-01-28 17:07:04.0" UUID="b7124d3b-fa04-4651-9267-6a2ad2a503bc" URI="" ORDERINDEX="786" PARTOF_ID="1721" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1192" CREATED="2009-01-28 17:07:04.0" UUID="0ac8fc74-a081-45e5-b96d-aad367b5f48b" URI="" ORDERINDEX="785" PARTOF_ID="1722" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1193" CREATED="2009-01-28 17:07:04.0" UUID="b0ba9c44-74a9-41e6-b896-3b4492b5c6b0" URI="" ORDERINDEX="784" PARTOF_ID="1723" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1194" CREATED="2009-01-28 17:07:04.0" UUID="5863702c-ac74-41c4-83ff-ba446140034c" URI="" ORDERINDEX="783" PARTOF_ID="1724" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1195" CREATED="2009-01-28 17:07:04.0" UUID="9f95af33-ae9e-4031-92f7-9f79d22eecf2" URI="" ORDERINDEX="782" PARTOF_ID="1724" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1196" CREATED="2009-01-28 17:07:04.0" UUID="a216d4de-6a7e-4173-ade7-59fd3a96f111" URI="" ORDERINDEX="781" PARTOF_ID="1725" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1197" CREATED="2009-01-28 17:07:04.0" UUID="8d0e548d-2bfd-4c1d-a0ab-2c89de3145fe" URI="" ORDERINDEX="780" PARTOF_ID="1726" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1198" CREATED="2009-01-28 17:07:04.0" UUID="fe01c101-9f13-4a4a-810a-1739da4bdc85" URI="" ORDERINDEX="779" PARTOF_ID="1727" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1199" CREATED="2009-01-28 17:07:04.0" UUID="342c8ac5-153a-4654-af25-1c829e27affa" URI="" ORDERINDEX="778" PARTOF_ID="1728" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1200" CREATED="2009-01-28 17:07:04.0" UUID="92b82e06-06f6-4f32-a2ec-f8820ba5e23f" URI="" ORDERINDEX="777" PARTOF_ID="1729" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1201" CREATED="2009-01-28 17:07:04.0" UUID="7b9c3af8-4821-451b-ad7e-84eff39d1316" URI="" ORDERINDEX="776" PARTOF_ID="1730" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1202" CREATED="2009-01-28 17:07:04.0" UUID="ec823c51-f92c-4d55-8c34-322c58b7c11b" URI="" ORDERINDEX="775" PARTOF_ID="1731" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1203" CREATED="2009-01-28 17:07:04.0" UUID="7d8b6b44-1010-4cb6-8ccc-1e3148c9f6a7" URI="" ORDERINDEX="774" PARTOF_ID="1732" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1204" CREATED="2009-01-28 17:07:04.0" UUID="63a0bcf3-ae45-4e54-8cd7-8f37b1745319" URI="" ORDERINDEX="773" PARTOF_ID="1733" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1205" CREATED="2009-01-28 17:07:04.0" UUID="94a49266-6be8-457d-8fab-50c8c9a27d65" URI="" ORDERINDEX="772" PARTOF_ID="1734" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1206" CREATED="2009-01-28 17:07:04.0" UUID="b7605e8e-a102-465e-9143-864d3512ff9c" URI="" ORDERINDEX="771" PARTOF_ID="1735" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1207" CREATED="2009-01-28 17:07:04.0" UUID="a7e70b81-0202-4147-b189-f37a6eb1dfb6" URI="" ORDERINDEX="770" PARTOF_ID="1736" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1208" CREATED="2009-01-28 17:07:04.0" UUID="6a0598a7-5460-4c78-bf2f-91ebb688e431" URI="" ORDERINDEX="769" PARTOF_ID="1737" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1209" CREATED="2009-01-28 17:07:04.0" UUID="300fac4e-e2bd-42e6-88c6-26c14cb053e0" URI="" ORDERINDEX="768" PARTOF_ID="1738" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1210" CREATED="2009-01-28 17:07:04.0" UUID="0a248a86-bf96-4af5-b95a-b84aae5a59b7" URI="" ORDERINDEX="767" PARTOF_ID="1739" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1211" CREATED="2009-01-28 17:07:04.0" UUID="d2c7fdb0-4542-4a56-84a0-e2ab9818a145" URI="" ORDERINDEX="766" PARTOF_ID="1740" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1212" CREATED="2009-01-28 17:07:04.0" UUID="f2b95c95-199c-4627-ab18-3659b03033b8" URI="" ORDERINDEX="765" PARTOF_ID="1740" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1213" CREATED="2009-01-28 17:07:04.0" UUID="3cc15dc7-bc55-4a9b-85af-e1eb733ad845" URI="" ORDERINDEX="764" PARTOF_ID="1740" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1214" CREATED="2009-01-28 17:07:04.0" UUID="b7660ed9-e18b-4014-b0bf-efe0684ea878" URI="" ORDERINDEX="763" PARTOF_ID="1741" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1215" CREATED="2009-01-28 17:07:04.0" UUID="6e72bebe-6709-4054-be0d-90bcdcffe272" URI="" ORDERINDEX="762" PARTOF_ID="1742" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1216" CREATED="2009-01-28 17:07:04.0" UUID="34fd6efd-9061-48c5-946b-bd114a418723" URI="" ORDERINDEX="761" PARTOF_ID="1742" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1217" CREATED="2009-01-28 17:07:04.0" UUID="aa782397-e924-4189-b771-35df76f770c2" URI="" ORDERINDEX="760" PARTOF_ID="1743" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1218" CREATED="2009-01-28 17:07:04.0" UUID="cc6a1ace-bd07-4e38-80d5-5b7d1d9067fd" URI="" ORDERINDEX="759" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1219" CREATED="2009-01-28 17:07:04.0" UUID="aa936910-fa3d-4139-9ab4-a82b7e8988d1" URI="" ORDERINDEX="758" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1220" CREATED="2009-01-28 17:07:04.0" UUID="e294e779-8bdf-4c2e-8d78-46abd05453ca" URI="" ORDERINDEX="757" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1221" CREATED="2009-01-28 17:07:04.0" UUID="570bef0e-fbf4-47bc-801d-2245d592168f" URI="" ORDERINDEX="756" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1222" CREATED="2009-01-28 17:07:04.0" UUID="5528904f-f645-42a0-9602-13a65c7073ad" URI="" ORDERINDEX="755" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1223" CREATED="2009-01-28 17:07:04.0" UUID="5608fea2-e246-4455-bb39-fd8c55ea411d" URI="" ORDERINDEX="754" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1224" CREATED="2009-01-28 17:07:04.0" UUID="9a51f2c5-3269-41c0-8fba-faaee4271bb5" URI="" ORDERINDEX="753" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1225" CREATED="2009-01-28 17:07:04.0" UUID="e7bb3a9d-2313-42ea-8929-a704bdda09ab" URI="" ORDERINDEX="752" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1226" CREATED="2009-01-28 17:07:04.0" UUID="070afba6-c7e1-4acc-9139-ebbdca9cd73f" URI="" ORDERINDEX="751" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1227" CREATED="2009-01-28 17:07:04.0" UUID="1d3fa83d-a348-4b47-b2fc-3105e476aca5" URI="" ORDERINDEX="750" PARTOF_ID="1744" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1228" CREATED="2009-01-28 17:07:04.0" UUID="e062678f-23ba-4bad-bc46-c40e704422c4" URI="" ORDERINDEX="749" PARTOF_ID="1745" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1229" CREATED="2009-01-28 17:07:04.0" UUID="8b943f73-8988-43a8-88ba-3b048eea2827" URI="" ORDERINDEX="748" PARTOF_ID="1746" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1230" CREATED="2009-01-28 17:07:04.0" UUID="aa80988d-a00b-4cf3-8c63-feb52ac85a81" URI="" ORDERINDEX="747" PARTOF_ID="1747" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1231" CREATED="2009-01-28 17:07:04.0" UUID="2173fe0b-311b-440e-b4df-26acd1c70ca7" URI="" ORDERINDEX="746" PARTOF_ID="1747" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1232" CREATED="2009-01-28 17:07:04.0" UUID="fc6dfd5e-43cf-47c5-a2a1-bad849a452f9" URI="" ORDERINDEX="745" PARTOF_ID="1748" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1233" CREATED="2009-01-28 17:07:04.0" UUID="bd72f665-a9d0-4928-a293-bbb1d7f31fdf" URI="" ORDERINDEX="744" PARTOF_ID="1749" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1234" CREATED="2009-01-28 17:07:04.0" UUID="928fc96c-6ea8-4679-943c-37bdad233324" URI="" ORDERINDEX="743" PARTOF_ID="1750" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1235" CREATED="2009-01-28 17:07:04.0" UUID="dd5fb4eb-cf48-489f-9786-71600fd7517e" URI="" ORDERINDEX="742" PARTOF_ID="1751" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1236" CREATED="2009-01-28 17:07:04.0" UUID="df1b04c7-f978-4ad4-8bbf-618aed7e44a9" URI="" ORDERINDEX="741" PARTOF_ID="1752" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1237" CREATED="2009-01-28 17:07:04.0" UUID="5150bbcf-0c6f-4010-973a-e9856bcfc396" URI="" ORDERINDEX="740" PARTOF_ID="1753" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1238" CREATED="2009-01-28 17:07:04.0" UUID="31b3c605-0f49-4d73-b018-c86e4ca4de50" URI="" ORDERINDEX="739" PARTOF_ID="1754" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1239" CREATED="2009-01-28 17:07:04.0" UUID="f3253f0d-05ce-41d7-ae5a-10fa60c7f547" URI="" ORDERINDEX="738" PARTOF_ID="1755" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1240" CREATED="2009-01-28 17:07:04.0" UUID="ce577904-25e7-4172-b15d-eb5e7469167f" URI="" ORDERINDEX="737" PARTOF_ID="1756" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1241" CREATED="2009-01-28 17:07:04.0" UUID="b69b568c-b8b5-49f3-8d1e-84a737d928ab" URI="" ORDERINDEX="736" PARTOF_ID="1757" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1242" CREATED="2009-01-28 17:07:04.0" UUID="59f4887a-6724-42b5-af22-c9e7b009891f" URI="" ORDERINDEX="735" PARTOF_ID="1758" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1243" CREATED="2009-01-28 17:07:04.0" UUID="dd63dd30-16a9-46c4-a6a9-67dc83eaf2aa" URI="" ORDERINDEX="734" PARTOF_ID="1758" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1244" CREATED="2009-01-28 17:07:04.0" UUID="84af6761-0b47-4ff6-bf66-7b03287ac0cf" URI="" ORDERINDEX="733" PARTOF_ID="1759" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1245" CREATED="2009-01-28 17:07:04.0" UUID="18e391d2-3a8c-4efd-83e5-605dc178b7eb" URI="" ORDERINDEX="732" PARTOF_ID="1760" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1246" CREATED="2009-01-28 17:07:04.0" UUID="a7a53d93-6a43-4c0c-b9c5-f832f125c5bf" URI="" ORDERINDEX="731" PARTOF_ID="1761" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1247" CREATED="2009-01-28 17:07:04.0" UUID="742abf05-8d1c-4939-b97d-927b17341415" URI="" ORDERINDEX="730" PARTOF_ID="1762" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1248" CREATED="2009-01-28 17:07:04.0" UUID="8452f319-86c9-4065-88e4-7adf66e945fd" URI="" ORDERINDEX="729" PARTOF_ID="1763" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1249" CREATED="2009-01-28 17:07:04.0" UUID="2cc9b611-f48a-4a21-b28c-f0a580b6bf06" URI="" ORDERINDEX="728" PARTOF_ID="1764" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1250" CREATED="2009-01-28 17:07:04.0" UUID="e1120ec1-7ee1-475e-b880-f66631666f7a" URI="" ORDERINDEX="727" PARTOF_ID="1765" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1251" CREATED="2009-01-28 17:07:04.0" UUID="0cf7c7c4-fa55-41e2-8c25-b9a5fede449b" URI="" ORDERINDEX="726" PARTOF_ID="1766" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1252" CREATED="2009-01-28 17:07:04.0" UUID="9fd8ad23-d932-4cdc-8822-029685073c5c" URI="" ORDERINDEX="725" PARTOF_ID="1767" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1253" CREATED="2009-01-28 17:07:04.0" UUID="36b93871-0bee-4380-b47e-56a843ce6aa3" URI="" ORDERINDEX="724" PARTOF_ID="1768" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1254" CREATED="2009-01-28 17:07:04.0" UUID="494fb115-9cf0-4e34-9fed-612b64e3224e" URI="" ORDERINDEX="723" PARTOF_ID="1769" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1255" CREATED="2009-01-28 17:07:04.0" UUID="264f2319-0749-47b8-9a39-17c2a57189d0" URI="" ORDERINDEX="722" PARTOF_ID="1769" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1256" CREATED="2009-01-28 17:07:04.0" UUID="11192c4f-e0c9-4f28-8c6d-064c9f694bb0" URI="" ORDERINDEX="721" PARTOF_ID="1769" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1257" CREATED="2009-01-28 17:07:04.0" UUID="72a3ca2e-6c7d-451e-aa15-c7cd0e86a370" URI="" ORDERINDEX="720" PARTOF_ID="1769" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1258" CREATED="2009-01-28 17:07:04.0" UUID="6c30ac35-c486-4e72-a48b-4987585c9fde" URI="" ORDERINDEX="719" PARTOF_ID="1770" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1259" CREATED="2009-01-28 17:07:04.0" UUID="c36d5a55-033c-4f34-bbea-d435304ceeba" URI="" ORDERINDEX="718" PARTOF_ID="1771" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1260" CREATED="2009-01-28 17:07:04.0" UUID="0fcb6ed1-fb5f-4360-9ced-1fac46bdc8bb" URI="" ORDERINDEX="717" PARTOF_ID="1772" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1261" CREATED="2009-01-28 17:07:04.0" UUID="a97d4f6b-7f86-4125-b3ff-f7c3ceb0f495" URI="" ORDERINDEX="716" PARTOF_ID="1772" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1262" CREATED="2009-01-28 17:07:04.0" UUID="d9ef6446-b38f-4176-874c-b90b7fe0458b" URI="" ORDERINDEX="715" PARTOF_ID="1772" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1263" CREATED="2009-01-28 17:07:04.0" UUID="497a208e-9337-4708-9f3a-17efef2f33a8" URI="" ORDERINDEX="714" PARTOF_ID="1773" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1264" CREATED="2009-01-28 17:07:04.0" UUID="f46d2d84-0387-41dd-9e77-28f9d7d06f16" URI="" ORDERINDEX="713" PARTOF_ID="1774" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1265" CREATED="2009-01-28 17:07:04.0" UUID="bb16684c-0638-4831-99df-f9a2dd7b7e6b" URI="" ORDERINDEX="712" PARTOF_ID="1775" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1266" CREATED="2009-01-28 17:07:04.0" UUID="419e3ef7-c1dc-47af-83f7-2b05c9ebae4c" URI="" ORDERINDEX="711" PARTOF_ID="1776" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1267" CREATED="2009-01-28 17:07:04.0" UUID="a2e12f91-a168-492e-aaaf-22aae4cd2397" URI="" ORDERINDEX="710" PARTOF_ID="1776" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1268" CREATED="2009-01-28 17:07:04.0" UUID="6e7245aa-e3cd-4251-90ee-a3f85aede88e" URI="" ORDERINDEX="709" PARTOF_ID="1777" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1269" CREATED="2009-01-28 17:07:04.0" UUID="6ef83660-69ed-477c-b2ef-639852b104b1" URI="" ORDERINDEX="708" PARTOF_ID="1778" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1270" CREATED="2009-01-28 17:07:04.0" UUID="b287bb04-2d21-405b-bc93-bd207b38bd36" URI="" ORDERINDEX="707" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1271" CREATED="2009-01-28 17:07:04.0" UUID="7a97e38a-1e5d-4e6d-91d2-ec9f6364cc4c" URI="" ORDERINDEX="706" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1272" CREATED="2009-01-28 17:07:04.0" UUID="54444bfd-cdc4-4043-9ebf-14d2b141395f" URI="" ORDERINDEX="705" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1273" CREATED="2009-01-28 17:07:04.0" UUID="a4fb4d07-4c7a-4ce6-a928-131d0a34db17" URI="" ORDERINDEX="704" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1274" CREATED="2009-01-28 17:07:04.0" UUID="0e1f785c-dfff-4137-86bd-5c4047894d8e" URI="" ORDERINDEX="703" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1275" CREATED="2009-01-28 17:07:04.0" UUID="94ede15d-c1b6-466e-af32-19dbdf090da3" URI="" ORDERINDEX="702" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1276" CREATED="2009-01-28 17:07:04.0" UUID="c11458c6-81d4-4cb9-b800-74097c655cc8" URI="" ORDERINDEX="701" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1277" CREATED="2009-01-28 17:07:04.0" UUID="ed5512f2-f762-422d-aaf5-57aa813a22df" URI="" ORDERINDEX="700" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1278" CREATED="2009-01-28 17:07:04.0" UUID="f84c153b-360b-472d-a641-806c4200af35" URI="" ORDERINDEX="699" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1279" CREATED="2009-01-28 17:07:04.0" UUID="1fdd0e8a-0f7c-440a-9982-b5d97eb98f5f" URI="" ORDERINDEX="698" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1280" CREATED="2009-01-28 17:07:04.0" UUID="c2662a7d-e26a-447e-a130-22b39bef2f80" URI="" ORDERINDEX="697" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1281" CREATED="2009-01-28 17:07:04.0" UUID="f82fcc4b-1e50-4cd3-ace5-6c3bffdfb251" URI="" ORDERINDEX="696" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1282" CREATED="2009-01-28 17:07:04.0" UUID="ba304903-cad7-45e9-9955-501a7aa3fb54" URI="" ORDERINDEX="695" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1283" CREATED="2009-01-28 17:07:04.0" UUID="0bf52a90-8f06-4881-b90b-c940522e264c" URI="" ORDERINDEX="694" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1284" CREATED="2009-01-28 17:07:04.0" UUID="4fed0fd3-8648-4104-88dc-b1133b5b5227" URI="" ORDERINDEX="693" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1285" CREATED="2009-01-28 17:07:04.0" UUID="ca200baf-24bd-4dfe-bdc9-4cd2869f0cea" URI="" ORDERINDEX="692" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1286" CREATED="2009-01-28 17:07:04.0" UUID="8a858374-81e4-4585-ae5f-4cd618400fd9" URI="" ORDERINDEX="691" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1287" CREATED="2009-01-28 17:07:04.0" UUID="ae4e8d1a-4495-4d6e-bfbb-e28256349d85" URI="" ORDERINDEX="690" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1288" CREATED="2009-01-28 17:07:04.0" UUID="e81dffef-c1db-4c3d-8dbb-dec57dc40eab" URI="" ORDERINDEX="689" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1289" CREATED="2009-01-28 17:07:04.0" UUID="f52dc5be-6b3c-440a-9089-f3eaeed5c857" URI="" ORDERINDEX="688" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1290" CREATED="2009-01-28 17:07:04.0" UUID="66a7b6f2-da99-47b2-a603-eb6ddae91d50" URI="" ORDERINDEX="687" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1291" CREATED="2009-01-28 17:07:04.0" UUID="d5106e1d-40dc-405e-ab8a-5a854ebd1f86" URI="" ORDERINDEX="686" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1292" CREATED="2009-01-28 17:07:04.0" UUID="104d84f7-716c-44a2-a174-60c01ce0f9af" URI="" ORDERINDEX="685" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1293" CREATED="2009-01-28 17:07:04.0" UUID="042ab3ee-9bcc-4925-88cf-35137e029b86" URI="" ORDERINDEX="684" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1294" CREATED="2009-01-28 17:07:04.0" UUID="d8d51792-9a41-44f8-bffb-f22ebaef3754" URI="" ORDERINDEX="683" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1295" CREATED="2009-01-28 17:07:04.0" UUID="a9931f3e-e059-4b32-a666-23c10c714407" URI="" ORDERINDEX="682" PARTOF_ID="1779" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1296" CREATED="2009-01-28 17:07:04.0" UUID="9acf4863-3eac-4859-aea8-dc79134b33a8" URI="" ORDERINDEX="681" PARTOF_ID="1780" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1297" CREATED="2009-01-28 17:07:04.0" UUID="3887f38f-ae38-4ed8-b2a9-41f6b78a2d43" URI="" ORDERINDEX="680" PARTOF_ID="1781" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1298" CREATED="2009-01-28 17:07:04.0" UUID="993ec1df-8c6b-4f75-a66c-738ce9d71957" URI="" ORDERINDEX="679" PARTOF_ID="1782" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1299" CREATED="2009-01-28 17:07:04.0" UUID="6f8dc312-e77e-4935-8a76-f24969bc7078" URI="" ORDERINDEX="678" PARTOF_ID="1783" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1300" CREATED="2009-01-28 17:07:04.0" UUID="d3d2765d-d059-4713-9123-baf8ca074a32" URI="" ORDERINDEX="677" PARTOF_ID="1784" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1301" CREATED="2009-01-28 17:07:04.0" UUID="3fea8c26-1fab-4b57-a89b-ec7ef2e532d2" URI="" ORDERINDEX="676" PARTOF_ID="1785" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1302" CREATED="2009-01-28 17:07:04.0" UUID="c605878a-8b5f-454e-abfd-c2f9c77002ec" URI="" ORDERINDEX="675" PARTOF_ID="1786" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1303" CREATED="2009-01-28 17:07:04.0" UUID="d3cb6808-e47d-4d10-a339-c9a93684d342" URI="" ORDERINDEX="674" PARTOF_ID="1787" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1304" CREATED="2009-01-28 17:07:04.0" UUID="3cc53cea-2323-4914-a663-0611c0636f13" URI="" ORDERINDEX="673" PARTOF_ID="1787" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1305" CREATED="2009-01-28 17:07:04.0" UUID="b5ccde93-c0fb-4b4c-a3b1-2a87829e84da" URI="" ORDERINDEX="672" PARTOF_ID="1787" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1306" CREATED="2009-01-28 17:07:04.0" UUID="62e2f64a-d0dd-4a9b-9214-59ca95ffac30" URI="" ORDERINDEX="671" PARTOF_ID="1788" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1307" CREATED="2009-01-28 17:07:04.0" UUID="d6af812a-d9fd-46ab-91ca-595c2cdacfa0" URI="" ORDERINDEX="670" PARTOF_ID="1788" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1308" CREATED="2009-01-28 17:07:04.0" UUID="97ab4587-7677-4cb2-b198-0ea99a25a694" URI="" ORDERINDEX="669" PARTOF_ID="1789" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1309" CREATED="2009-01-28 17:07:04.0" UUID="1e8c8b3b-b91a-4b4e-b445-9a5ac606b502" URI="" ORDERINDEX="668" PARTOF_ID="1790" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1310" CREATED="2009-01-28 17:07:04.0" UUID="ae6f3667-5ee6-42b0-8af9-da33af7e22a4" URI="" ORDERINDEX="667" PARTOF_ID="1791" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1311" CREATED="2009-01-28 17:07:04.0" UUID="78a1681f-cbcd-4d5c-ad1c-b4b1dc30e9cb" URI="" ORDERINDEX="666" PARTOF_ID="1792" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1312" CREATED="2009-01-28 17:07:04.0" UUID="ed84cd13-29d1-4348-bd36-ef4cb2d3b9a6" URI="" ORDERINDEX="665" PARTOF_ID="1792" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1313" CREATED="2009-01-28 17:07:04.0" UUID="e21b5be6-1492-4123-abfe-d45fd5136b25" URI="" ORDERINDEX="664" PARTOF_ID="1792" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1314" CREATED="2009-01-28 17:07:04.0" UUID="60a7d818-1910-4a95-9620-8d83592f9bd8" URI="" ORDERINDEX="663" PARTOF_ID="1793" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1315" CREATED="2009-01-28 17:07:04.0" UUID="b7fc1c91-c4a3-487d-937e-cc8f763b717a" URI="" ORDERINDEX="662" PARTOF_ID="1794" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1316" CREATED="2009-01-28 17:07:04.0" UUID="3a27e7e5-16ea-47db-b783-9f9e60bbd2d4" URI="" ORDERINDEX="661" PARTOF_ID="1795" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1317" CREATED="2009-01-28 17:07:04.0" UUID="7dd4d6fb-ecd3-43c6-a7ef-1921162d107c" URI="" ORDERINDEX="660" PARTOF_ID="1796" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1318" CREATED="2009-01-28 17:07:04.0" UUID="632ccb5f-6864-4f2d-a764-5e963cab6de9" URI="" ORDERINDEX="659" PARTOF_ID="1797" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1319" CREATED="2009-01-28 17:07:04.0" UUID="7987d14f-5346-4a6c-98ca-b739ccc1470b" URI="" ORDERINDEX="658" PARTOF_ID="1798" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1320" CREATED="2009-01-28 17:07:04.0" UUID="c64e07cc-0a58-44b3-ac91-c216d1b91c1f" URI="" ORDERINDEX="657" PARTOF_ID="1799" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1321" CREATED="2009-01-28 17:07:04.0" UUID="d73cc73e-5e7e-43b5-9e15-d791b4f86f2f" URI="" ORDERINDEX="656" PARTOF_ID="1799" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1322" CREATED="2009-01-28 17:07:04.0" UUID="47023991-ff3f-499b-903b-97f9d9d9aaa9" URI="" ORDERINDEX="655" PARTOF_ID="1799" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1323" CREATED="2009-01-28 17:07:04.0" UUID="5df6d614-b1f7-41b1-b430-b74692f5abd6" URI="" ORDERINDEX="654" PARTOF_ID="1799" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1324" CREATED="2009-01-28 17:07:04.0" UUID="2dabc6d7-7e2a-4adc-9c9c-7244d4099fd5" URI="" ORDERINDEX="653" PARTOF_ID="1800" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1325" CREATED="2009-01-28 17:07:04.0" UUID="bdec0502-18da-47fa-b101-74fb3e2fa52a" URI="" ORDERINDEX="652" PARTOF_ID="1801" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1326" CREATED="2009-01-28 17:07:04.0" UUID="92389b5b-067c-4c8f-a5b7-2bf4ab5df860" URI="" ORDERINDEX="651" PARTOF_ID="1802" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1327" CREATED="2009-01-28 17:07:04.0" UUID="3489394e-a20c-4e24-93c8-869d54f522ca" URI="" ORDERINDEX="650" PARTOF_ID="1803" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1328" CREATED="2009-01-28 17:07:04.0" UUID="dd5be3e5-e7ff-48be-b1f3-32f93996bd38" URI="" ORDERINDEX="649" PARTOF_ID="1804" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1329" CREATED="2009-01-28 17:07:04.0" UUID="0e3306bd-6f2d-4f31-be3f-7c97648352a9" URI="" ORDERINDEX="648" PARTOF_ID="1805" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1330" CREATED="2009-01-28 17:07:04.0" UUID="d4d02666-40a0-45c3-894b-482f64b54f69" URI="" ORDERINDEX="647" PARTOF_ID="1806" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1331" CREATED="2009-01-28 17:07:04.0" UUID="41c5129a-3465-42cc-b016-59ab9ffad71a" URI="" ORDERINDEX="646" PARTOF_ID="1806" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1332" CREATED="2009-01-28 17:07:04.0" UUID="7be07113-7c04-4fb2-9e63-6759bcc39a7a" URI="" ORDERINDEX="645" PARTOF_ID="1806" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1333" CREATED="2009-01-28 17:07:04.0" UUID="08eb9360-bdfc-42cc-9c35-655cdc018f58" URI="" ORDERINDEX="644" PARTOF_ID="1807" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1334" CREATED="2009-01-28 17:07:04.0" UUID="c21e91c8-ba91-45ac-81fd-cd13452911d1" URI="" ORDERINDEX="643" PARTOF_ID="1808" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1335" CREATED="2009-01-28 17:07:04.0" UUID="f71525d8-0913-4a5c-97f1-a8374a8843da" URI="" ORDERINDEX="642" PARTOF_ID="1809" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1336" CREATED="2009-01-28 17:07:04.0" UUID="de779b91-732f-4aee-ace6-5647b1787509" URI="" ORDERINDEX="641" PARTOF_ID="1810" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1337" CREATED="2009-01-28 17:07:04.0" UUID="e2af7b11-9179-4cac-ba35-65e8ec9053ae" URI="" ORDERINDEX="640" PARTOF_ID="1811" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1338" CREATED="2009-01-28 17:07:04.0" UUID="44a6ee56-767a-463f-b8ad-e924f0d2f3e5" URI="" ORDERINDEX="639" PARTOF_ID="1812" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1339" CREATED="2009-01-28 17:07:04.0" UUID="001304b9-c267-4dcc-be52-16bbd936ea1f" URI="" ORDERINDEX="638" PARTOF_ID="1813" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1340" CREATED="2009-01-28 17:07:04.0" UUID="a561767e-348c-46cd-9942-264d41fb67b7" URI="" ORDERINDEX="637" PARTOF_ID="1814" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1341" CREATED="2009-01-28 17:07:04.0" UUID="df21cb0e-ac98-4534-a603-0b18ba6059d4" URI="" ORDERINDEX="636" PARTOF_ID="1815" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1342" CREATED="2009-01-28 17:07:04.0" UUID="c086fb8d-ee90-404d-8bca-9412aaa6b0d9" URI="" ORDERINDEX="635" PARTOF_ID="1816" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1343" CREATED="2009-01-28 17:07:04.0" UUID="6ac84372-1882-4bc0-8154-8674ba925f10" URI="" ORDERINDEX="634" PARTOF_ID="1816" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1344" CREATED="2009-01-28 17:07:04.0" UUID="6a91ae3b-14af-4de6-8a12-be93bbd9166a" URI="" ORDERINDEX="633" PARTOF_ID="1816" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1345" CREATED="2009-01-28 17:07:04.0" UUID="babf2ddb-eba1-488a-bea8-21b098ddb315" URI="" ORDERINDEX="632" PARTOF_ID="1816" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1346" CREATED="2009-01-28 17:07:04.0" UUID="6e2fd22b-7fcd-40d1-bc6f-cdc593b182ac" URI="" ORDERINDEX="631" PARTOF_ID="1817" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1347" CREATED="2009-01-28 17:07:04.0" UUID="4545d099-32e6-44f8-bce9-8c29df82cde7" URI="" ORDERINDEX="630" PARTOF_ID="1818" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1348" CREATED="2009-01-28 17:07:04.0" UUID="80b8d861-0e07-489d-9977-970a7e6d832a" URI="" ORDERINDEX="629" PARTOF_ID="1819" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1349" CREATED="2009-01-28 17:07:04.0" UUID="352c212b-c0bc-4294-b87e-c3d8fdbed724" URI="" ORDERINDEX="628" PARTOF_ID="1820" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1350" CREATED="2009-01-28 17:07:04.0" UUID="5efab129-f8dc-4029-bdc3-5fbe3aaf71dc" URI="" ORDERINDEX="627" PARTOF_ID="1821" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1351" CREATED="2009-01-28 17:07:04.0" UUID="f8265093-496d-4e00-b732-460f0ee2fca5" URI="" ORDERINDEX="626" PARTOF_ID="1822" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1352" CREATED="2009-01-28 17:07:04.0" UUID="f8ea3076-0f5c-46aa-a8a3-2669e9ccc522" URI="" ORDERINDEX="625" PARTOF_ID="1823" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1353" CREATED="2009-01-28 17:07:04.0" UUID="f818c97e-fd61-42fe-9d75-d433f8cb349c" URI="" ORDERINDEX="624" PARTOF_ID="1824" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1354" CREATED="2009-01-28 17:07:04.0" UUID="2040cd9f-3fb0-4b47-8984-5a72fbfbcad9" URI="" ORDERINDEX="623" PARTOF_ID="1825" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1355" CREATED="2009-01-28 17:07:04.0" UUID="d4170b17-ebe4-4fb4-b5b1-3b8da07ae683" URI="" ORDERINDEX="622" PARTOF_ID="1826" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1356" CREATED="2009-01-28 17:07:04.0" UUID="cd9612b2-1a27-4895-966c-59fcfe7c49d2" URI="" ORDERINDEX="621" PARTOF_ID="1826" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1357" CREATED="2009-01-28 17:07:04.0" UUID="9d447b51-e363-4dde-ae40-84c55679983c" URI="" ORDERINDEX="620" PARTOF_ID="1827" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1358" CREATED="2009-01-28 17:07:04.0" UUID="c5773847-3eb1-4a6a-ab97-30ea78651205" URI="" ORDERINDEX="619" PARTOF_ID="1828" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1359" CREATED="2009-01-28 17:07:04.0" UUID="66ce6bb4-b48e-483b-aed1-62646e9c80b8" URI="" ORDERINDEX="618" PARTOF_ID="1829" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1360" CREATED="2009-01-28 17:07:04.0" UUID="de4e0b06-a751-4dfa-b838-504204213780" URI="" ORDERINDEX="617" PARTOF_ID="1830" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1361" CREATED="2009-01-28 17:07:04.0" UUID="94d17555-90d0-43b6-92fa-a4ec0f776833" URI="" ORDERINDEX="616" PARTOF_ID="1831" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1362" CREATED="2009-01-28 17:07:04.0" UUID="c2c92549-0f3d-4f96-9950-6503bf1d45e1" URI="" ORDERINDEX="615" PARTOF_ID="1832" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1363" CREATED="2009-01-28 17:07:04.0" UUID="387ee427-88af-4791-8357-335b8d75839f" URI="" ORDERINDEX="614" PARTOF_ID="1833" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1364" CREATED="2009-01-28 17:07:04.0" UUID="98cd8286-032a-49db-8034-0d52aa6be72d" URI="" ORDERINDEX="613" PARTOF_ID="1833" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1365" CREATED="2009-01-28 17:07:04.0" UUID="1a6e7f6b-824d-40e0-846c-895855640500" URI="" ORDERINDEX="612" PARTOF_ID="1834" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1366" CREATED="2009-01-28 17:07:04.0" UUID="b3cf874d-745b-4574-8887-6c2cbe8e6188" URI="" ORDERINDEX="611" PARTOF_ID="1835" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1367" CREATED="2009-01-28 17:07:04.0" UUID="70fb4828-7756-4f13-8813-4da957f6c424" URI="" ORDERINDEX="610" PARTOF_ID="1835" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1368" CREATED="2009-01-28 17:07:04.0" UUID="2466ddca-9662-42ea-97ea-85b0405f8155" URI="" ORDERINDEX="609" PARTOF_ID="1835" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1369" CREATED="2009-01-28 17:07:04.0" UUID="f0775631-b985-48f9-847c-990f6d921c46" URI="" ORDERINDEX="608" PARTOF_ID="1836" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1370" CREATED="2009-01-28 17:07:04.0" UUID="3af035d9-de46-42a6-af98-37b8bfcb5768" URI="" ORDERINDEX="607" PARTOF_ID="1836" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1371" CREATED="2009-01-28 17:07:04.0" UUID="70cf656c-21c0-4c67-a737-2331539d430f" URI="" ORDERINDEX="606" PARTOF_ID="1836" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1372" CREATED="2009-01-28 17:07:04.0" UUID="c839afa6-1db2-4b48-9d79-250fcfed9f89" URI="" ORDERINDEX="605" PARTOF_ID="1837" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1373" CREATED="2009-01-28 17:07:04.0" UUID="a7570889-39a4-4bb8-b28f-77bd153d44fa" URI="" ORDERINDEX="604" PARTOF_ID="1838" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1374" CREATED="2009-01-28 17:07:04.0" UUID="318423a0-3cd7-47f4-8452-2eca950092b3" URI="" ORDERINDEX="603" PARTOF_ID="1839" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1375" CREATED="2009-01-28 17:07:04.0" UUID="67acff9a-257d-469c-8b17-607fdbceaa2e" URI="" ORDERINDEX="602" PARTOF_ID="1840" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1376" CREATED="2009-01-28 17:07:04.0" UUID="99fe5d0f-56c9-4e18-b429-0971b8f12b25" URI="" ORDERINDEX="601" PARTOF_ID="1841" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1377" CREATED="2009-01-28 17:07:04.0" UUID="0a57ef70-bea5-40cb-a8e7-481478da5d06" URI="" ORDERINDEX="600" PARTOF_ID="1841" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1378" CREATED="2009-01-28 17:07:04.0" UUID="1320f903-d644-40b9-8ee2-275dfa384ad1" URI="" ORDERINDEX="599" PARTOF_ID="1842" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1379" CREATED="2009-01-28 17:07:04.0" UUID="336518de-0645-4454-b730-dd7099d00fdd" URI="" ORDERINDEX="598" PARTOF_ID="1843" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1380" CREATED="2009-01-28 17:07:04.0" UUID="275bb1e9-72de-4345-a7f6-c2e473ad850b" URI="" ORDERINDEX="597" PARTOF_ID="1844" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1381" CREATED="2009-01-28 17:07:04.0" UUID="6db5c74f-a5d3-423d-a678-7112be81f963" URI="" ORDERINDEX="596" PARTOF_ID="1845" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1382" CREATED="2009-01-28 17:07:04.0" UUID="0a6165e5-31e5-4323-9d92-b25821194fcd" URI="" ORDERINDEX="595" PARTOF_ID="1846" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1383" CREATED="2009-01-28 17:07:04.0" UUID="2f978481-3921-4173-8fe7-4b51c84e6649" URI="" ORDERINDEX="594" PARTOF_ID="1846" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1384" CREATED="2009-01-28 17:07:04.0" UUID="9a63d984-b405-4bc0-8e08-dbb79109782d" URI="" ORDERINDEX="593" PARTOF_ID="1846" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1385" CREATED="2009-01-28 17:07:04.0" UUID="5ea2ef41-e327-4d59-9c92-760d9073646e" URI="" ORDERINDEX="592" PARTOF_ID="1847" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1386" CREATED="2009-01-28 17:07:04.0" UUID="3307fceb-69ff-4a20-88be-6d34ae89409d" URI="" ORDERINDEX="591" PARTOF_ID="1847" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1387" CREATED="2009-01-28 17:07:04.0" UUID="beac5efa-f57e-47ea-8772-7f9541fa8765" URI="" ORDERINDEX="590" PARTOF_ID="1847" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1388" CREATED="2009-01-28 17:07:04.0" UUID="eca8bb03-8336-4396-8e0b-2d98c5a62a32" URI="" ORDERINDEX="589" PARTOF_ID="1848" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1389" CREATED="2009-01-28 17:07:04.0" UUID="b9c97d9c-8cf9-408e-a391-8d6cb0ba72a3" URI="" ORDERINDEX="588" PARTOF_ID="1849" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1390" CREATED="2009-01-28 17:07:04.0" UUID="a94636e2-6490-4011-9bfa-efa3a3af0972" URI="" ORDERINDEX="587" PARTOF_ID="1849" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1391" CREATED="2009-01-28 17:07:04.0" UUID="b43a3d93-f3ad-427b-a462-7500d8a615e9" URI="" ORDERINDEX="586" PARTOF_ID="1849" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1392" CREATED="2009-01-28 17:07:04.0" UUID="dc6dd81a-cdb5-4c5c-9275-319ec6c535fd" URI="" ORDERINDEX="585" PARTOF_ID="1849" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1393" CREATED="2009-01-28 17:07:04.0" UUID="9be63577-5283-4bcb-9739-c0f560594d54" URI="" ORDERINDEX="584" PARTOF_ID="1849" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1394" CREATED="2009-01-28 17:07:04.0" UUID="51f7efdb-4632-4628-a395-6cc57047453e" URI="" ORDERINDEX="583" PARTOF_ID="1849" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1395" CREATED="2009-01-28 17:07:04.0" UUID="18573a20-1b4d-41a7-995d-7ac2f68abff7" URI="" ORDERINDEX="582" PARTOF_ID="1849" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1396" CREATED="2009-01-28 17:07:04.0" UUID="89843ff7-05f0-455e-b97f-b22312964255" URI="" ORDERINDEX="581" PARTOF_ID="1850" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1397" CREATED="2009-01-28 17:07:04.0" UUID="96433579-0c5f-4d67-9857-dd6ab34895c0" URI="" ORDERINDEX="580" PARTOF_ID="1851" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1398" CREATED="2009-01-28 17:07:04.0" UUID="fce7c291-a555-434d-a8e0-e06140bbaecf" URI="" ORDERINDEX="579" PARTOF_ID="1852" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1399" CREATED="2009-01-28 17:07:04.0" UUID="a3252a2b-1210-466b-8683-472fda15d50c" URI="" ORDERINDEX="578" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1400" CREATED="2009-01-28 17:07:04.0" UUID="21162d82-eacf-4a45-99d8-19a32badad8e" URI="" ORDERINDEX="577" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1401" CREATED="2009-01-28 17:07:04.0" UUID="f2a0c8a0-b869-463d-8db1-942b73f7df64" URI="" ORDERINDEX="576" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1402" CREATED="2009-01-28 17:07:04.0" UUID="70877ae8-f708-4624-9caa-db789f5d26c2" URI="" ORDERINDEX="575" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1403" CREATED="2009-01-28 17:07:04.0" UUID="a40f5ee5-a595-46de-8b93-506cc61a30d7" URI="" ORDERINDEX="574" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1404" CREATED="2009-01-28 17:07:04.0" UUID="a7cf6e57-c704-4d96-9c6d-3fb1eaf474e3" URI="" ORDERINDEX="573" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1405" CREATED="2009-01-28 17:07:04.0" UUID="4292f645-5741-49af-a747-38b36e91ff8d" URI="" ORDERINDEX="572" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1406" CREATED="2009-01-28 17:07:04.0" UUID="de638bfb-9703-491c-a66f-0113846a56b8" URI="" ORDERINDEX="571" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1407" CREATED="2009-01-28 17:07:04.0" UUID="f0463996-504b-4398-a3bd-21b5afc9a736" URI="" ORDERINDEX="570" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1408" CREATED="2009-01-28 17:07:04.0" UUID="76f0b8a6-edc1-43c4-8fc8-fbfbca101fee" URI="" ORDERINDEX="569" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1409" CREATED="2009-01-28 17:07:04.0" UUID="0a662d74-ecb7-4bb0-a458-2442612f4df5" URI="" ORDERINDEX="568" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1410" CREATED="2009-01-28 17:07:04.0" UUID="599579c2-1e1a-4668-8bd6-1dabce3282d9" URI="" ORDERINDEX="567" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1411" CREATED="2009-01-28 17:07:04.0" UUID="b1650734-9e24-4409-9dd3-8cb5f206d0ca" URI="" ORDERINDEX="566" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1412" CREATED="2009-01-28 17:07:04.0" UUID="5ce6089a-9212-4cbc-b42c-5b1197043c86" URI="" ORDERINDEX="565" PARTOF_ID="1853" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1413" CREATED="2009-01-28 17:07:04.0" UUID="88dda871-eef1-4e00-b96d-7490703de84d" URI="" ORDERINDEX="564" PARTOF_ID="1854" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1414" CREATED="2009-01-28 17:07:04.0" UUID="7b1cec1a-739e-437b-bf7b-bfde1b71828f" URI="" ORDERINDEX="563" PARTOF_ID="1855" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1415" CREATED="2009-01-28 17:07:04.0" UUID="a0fac021-61c4-44d2-ac7e-d4d9a5c7927d" URI="" ORDERINDEX="562" PARTOF_ID="1855" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1416" CREATED="2009-01-28 17:07:04.0" UUID="97ee7fee-940a-48fd-8d3a-42edb21b7591" URI="" ORDERINDEX="561" PARTOF_ID="1855" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1417" CREATED="2009-01-28 17:07:04.0" UUID="96471c82-c993-4609-a272-f4bb7df1158f" URI="" ORDERINDEX="560" PARTOF_ID="1855" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1418" CREATED="2009-01-28 17:07:04.0" UUID="2982aae9-e60f-4aed-ada1-29968277af2d" URI="" ORDERINDEX="559" PARTOF_ID="1855" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1419" CREATED="2009-01-28 17:07:04.0" UUID="ea148213-215b-4548-a393-f472b39dc6fd" URI="" ORDERINDEX="558" PARTOF_ID="1855" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1420" CREATED="2009-01-28 17:07:04.0" UUID="0dd6f4f6-2d38-41fa-8ae1-6689bae0638a" URI="" ORDERINDEX="557" PARTOF_ID="1855" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1421" CREATED="2009-01-28 17:07:04.0" UUID="a6cabaff-16b5-4207-878a-a4bf70260e83" URI="" ORDERINDEX="556" PARTOF_ID="1856" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1422" CREATED="2009-01-28 17:07:04.0" UUID="ac40926b-a478-48bb-8719-13119b3b2bcd" URI="" ORDERINDEX="555" PARTOF_ID="1856" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1423" CREATED="2009-01-28 17:07:04.0" UUID="93840e4a-d5de-468d-a35a-629430192791" URI="" ORDERINDEX="554" PARTOF_ID="1856" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1424" CREATED="2009-01-28 17:07:04.0" UUID="629f51dd-27a1-49ac-9253-fa5ca793fdf0" URI="" ORDERINDEX="553" PARTOF_ID="1857" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1425" CREATED="2009-01-28 17:07:04.0" UUID="b393d5ec-4865-45b0-b688-22d88bac137b" URI="" ORDERINDEX="552" PARTOF_ID="1857" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1426" CREATED="2009-01-28 17:07:04.0" UUID="62d6672c-13a4-4df8-b40d-f996e9d8e6b0" URI="" ORDERINDEX="551" PARTOF_ID="1858" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1427" CREATED="2009-01-28 17:07:04.0" UUID="eedbd7df-cfa9-4506-91bc-8ab052183462" URI="" ORDERINDEX="550" PARTOF_ID="1859" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1428" CREATED="2009-01-28 17:07:04.0" UUID="cbabc112-bc00-402a-81ee-57e945b6c298" URI="" ORDERINDEX="549" PARTOF_ID="1859" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1429" CREATED="2009-01-28 17:07:04.0" UUID="f40ef648-3dbc-4f2e-b0a9-cb526dd88c80" URI="" ORDERINDEX="548" PARTOF_ID="1859" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1430" CREATED="2009-01-28 17:07:04.0" UUID="78afe8a9-fcaa-4f2a-8ad9-718f10e9881f" URI="" ORDERINDEX="547" PARTOF_ID="1859" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1431" CREATED="2009-01-28 17:07:04.0" UUID="fd0c336a-5081-444d-b8b2-6111ef74e26b" URI="" ORDERINDEX="546" PARTOF_ID="1859" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1432" CREATED="2009-01-28 17:07:04.0" UUID="0e64f21a-8ea7-40aa-8513-63606447a546" URI="" ORDERINDEX="545" PARTOF_ID="1860" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1433" CREATED="2009-01-28 17:07:04.0" UUID="ddeadead-dd96-4a27-9289-b6fc197bdf08" URI="" ORDERINDEX="544" PARTOF_ID="1861" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1434" CREATED="2009-01-28 17:07:04.0" UUID="192d277b-7559-4bb5-b212-a4d64810d973" URI="" ORDERINDEX="543" PARTOF_ID="1862" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1435" CREATED="2009-01-28 17:07:04.0" UUID="b4432cd1-630c-49fb-a191-271823f4f0d2" URI="" ORDERINDEX="542" PARTOF_ID="1863" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1436" CREATED="2009-01-28 17:07:04.0" UUID="175a2a3d-dd30-4992-adad-8c8966b911fd" URI="" ORDERINDEX="541" PARTOF_ID="1864" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1437" CREATED="2009-01-28 17:07:04.0" UUID="9b303a72-5147-4c03-8758-ee4dab1249ef" URI="" ORDERINDEX="540" PARTOF_ID="1865" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1438" CREATED="2009-01-28 17:07:04.0" UUID="aed8e86e-8a54-46e8-98ec-0dc41c52859b" URI="" ORDERINDEX="539" PARTOF_ID="1866" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1439" CREATED="2009-01-28 17:07:04.0" UUID="2e81bb7d-c7f2-4cf9-a580-4ec8caaebba6" URI="" ORDERINDEX="538" PARTOF_ID="1867" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1440" CREATED="2009-01-28 17:07:04.0" UUID="57feaa67-3a87-4462-939b-3ff0e5fb87fa" URI="" ORDERINDEX="537" PARTOF_ID="1867" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1441" CREATED="2009-01-28 17:07:04.0" UUID="a755293a-e0af-4b73-bcc5-83327553ad51" URI="" ORDERINDEX="536" PARTOF_ID="1867" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1442" CREATED="2009-01-28 17:07:04.0" UUID="3c2e1e30-cd13-4d4b-aba5-444d000005cd" URI="" ORDERINDEX="535" PARTOF_ID="1868" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1443" CREATED="2009-01-28 17:07:04.0" UUID="0a6e5446-aefc-46ed-9808-5e6fb651ab45" URI="" ORDERINDEX="534" PARTOF_ID="1868" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1444" CREATED="2009-01-28 17:07:04.0" UUID="2b24d78c-c296-491c-a089-60d6fd25f769" URI="" ORDERINDEX="533" PARTOF_ID="1868" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1445" CREATED="2009-01-28 17:07:04.0" UUID="66301e48-a27b-444e-b1b5-ce99f2ab1feb" URI="" ORDERINDEX="532" PARTOF_ID="1868" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1446" CREATED="2009-01-28 17:07:04.0" UUID="62b94eee-3620-46b3-a118-8899c0d32cb8" URI="" ORDERINDEX="531" PARTOF_ID="1868" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1447" CREATED="2009-01-28 17:07:04.0" UUID="e98b37bc-5ead-4782-a561-163b14c0b6e8" URI="" ORDERINDEX="530" PARTOF_ID="1868" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1448" CREATED="2009-01-28 17:07:04.0" UUID="40987986-0481-4ea4-93e8-ea7266a74d35" URI="" ORDERINDEX="529" PARTOF_ID="1868" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1449" CREATED="2009-01-28 17:07:04.0" UUID="895e278b-51b9-4aa3-9529-15ff1cd3f205" URI="" ORDERINDEX="528" PARTOF_ID="1869" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1450" CREATED="2009-01-28 17:07:04.0" UUID="0c00b73c-7b40-48e8-ad8e-d627a250e664" URI="" ORDERINDEX="527" PARTOF_ID="1869" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1451" CREATED="2009-01-28 17:07:04.0" UUID="ed329818-e45c-4dfc-b116-3dad8c3cb923" URI="" ORDERINDEX="526" PARTOF_ID="1869" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1452" CREATED="2009-01-28 17:07:04.0" UUID="60999bdf-79e6-4bc5-ab77-6f3477187f75" URI="" ORDERINDEX="525" PARTOF_ID="1869" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1453" CREATED="2009-01-28 17:07:04.0" UUID="0d6fe90f-7f2e-4ac8-8e6b-ea543145a645" URI="" ORDERINDEX="524" PARTOF_ID="1869" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1454" CREATED="2009-01-28 17:07:04.0" UUID="b34d164e-ff7c-4cd9-9d4b-b34832837113" URI="" ORDERINDEX="523" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1455" CREATED="2009-01-28 17:07:04.0" UUID="51cb58ce-6070-41fc-bb7c-e866e9fab336" URI="" ORDERINDEX="522" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1456" CREATED="2009-01-28 17:07:04.0" UUID="5e72c1cc-fe4c-492e-927f-b1b1c4eb8235" URI="" ORDERINDEX="521" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1457" CREATED="2009-01-28 17:07:04.0" UUID="961744da-44de-4325-b051-96ece1e6d0d3" URI="" ORDERINDEX="520" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1458" CREATED="2009-01-28 17:07:04.0" UUID="6e1a0fbd-f8df-453a-bde3-2d7f75ea144b" URI="" ORDERINDEX="519" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1459" CREATED="2009-01-28 17:07:04.0" UUID="39bc4948-c03f-4a93-b54f-35d2aeedde06" URI="" ORDERINDEX="518" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1460" CREATED="2009-01-28 17:07:04.0" UUID="5b62e196-c4b3-4a67-b2f1-26bdb66dfda2" URI="" ORDERINDEX="517" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1461" CREATED="2009-01-28 17:07:04.0" UUID="39ad67bf-2b32-4831-99fd-0e669b3f78ca" URI="" ORDERINDEX="516" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1462" CREATED="2009-01-28 17:07:04.0" UUID="fded854f-ed57-46ce-a664-e6d5173c6478" URI="" ORDERINDEX="515" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1463" CREATED="2009-01-28 17:07:04.0" UUID="7876b019-46c4-425d-8d0c-1e57b4145e41" URI="" ORDERINDEX="514" PARTOF_ID="1870" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1464" CREATED="2009-01-28 17:07:04.0" UUID="00b3e39f-5359-4b0b-80ef-1ca94da03aa2" URI="" ORDERINDEX="513" PARTOF_ID="1871" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1465" CREATED="2009-01-28 17:07:04.0" UUID="bc51f7d2-776a-4ee1-9ff3-28e19cec10a7" URI="" ORDERINDEX="512" PARTOF_ID="1871" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1466" CREATED="2009-01-28 17:07:04.0" UUID="0b51b937-6b73-4b71-892d-f01d467060e1" URI="" ORDERINDEX="511" PARTOF_ID="1871" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1467" CREATED="2009-01-28 17:07:04.0" UUID="2a37be56-a42c-4a9a-ae03-fd89eac4bac1" URI="" ORDERINDEX="510" PARTOF_ID="1871" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1468" CREATED="2009-01-28 17:07:04.0" UUID="d97c5986-3e62-4c30-8f4d-df6dd4074764" URI="" ORDERINDEX="509" PARTOF_ID="1872" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1469" CREATED="2009-01-28 17:07:04.0" UUID="776d3bd4-a64e-4259-a3e6-540caab9a891" URI="" ORDERINDEX="508" PARTOF_ID="1873" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1470" CREATED="2009-01-28 17:07:04.0" UUID="3c8c5292-df45-472d-98e0-8e48a5328227" URI="" ORDERINDEX="507" PARTOF_ID="1874" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1471" CREATED="2009-01-28 17:07:04.0" UUID="2698d951-e48f-4869-8c79-1bc59db07cc4" URI="" ORDERINDEX="506" PARTOF_ID="1875" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1472" CREATED="2009-01-28 17:07:04.0" UUID="4dac21e1-61f5-45a7-8899-04e2f50dd5a3" URI="" ORDERINDEX="505" PARTOF_ID="1876" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1473" CREATED="2009-01-28 17:07:04.0" UUID="1e326747-f911-49ca-97e1-315cced55696" URI="" ORDERINDEX="504" PARTOF_ID="1877" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1474" CREATED="2009-01-28 17:07:04.0" UUID="bd44128d-ddf6-4b89-af1c-bfef6bafd155" URI="" ORDERINDEX="503" PARTOF_ID="1878" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1475" CREATED="2009-01-28 17:07:04.0" UUID="8d34b675-7de1-4623-a16a-1e0ca989df0c" URI="" ORDERINDEX="502" PARTOF_ID="1878" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1476" CREATED="2009-01-28 17:07:04.0" UUID="05c6bce3-2e55-48cb-a414-707e936066d1" URI="" ORDERINDEX="501" PARTOF_ID="1878" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1477" CREATED="2009-01-28 17:07:04.0" UUID="ca033ec6-5bd5-487a-b0f6-f363d429afa8" URI="" ORDERINDEX="500" PARTOF_ID="1878" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1478" CREATED="2009-01-28 17:07:04.0" UUID="64501083-0924-4dc3-be80-d281fa700804" URI="" ORDERINDEX="499" PARTOF_ID="1879" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1479" CREATED="2009-01-28 17:07:04.0" UUID="1e3433be-5490-463c-b988-d340603e8440" URI="" ORDERINDEX="498" PARTOF_ID="1880" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1480" CREATED="2009-01-28 17:07:04.0" UUID="50dd15a9-af27-475d-a224-23a21104bf23" URI="" ORDERINDEX="497" PARTOF_ID="1881" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1481" CREATED="2009-01-28 17:07:04.0" UUID="b788c4c4-52a7-45ec-9589-07887d88f5c6" URI="" ORDERINDEX="496" PARTOF_ID="1881" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1482" CREATED="2009-01-28 17:07:04.0" UUID="72bc25f9-5f20-4ad9-8734-ad38044b2897" URI="" ORDERINDEX="495" PARTOF_ID="1881" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1483" CREATED="2009-01-28 17:07:04.0" UUID="caef95f0-536f-493b-bcc5-2ecf478ef4aa" URI="" ORDERINDEX="494" PARTOF_ID="1881" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1484" CREATED="2009-01-28 17:07:04.0" UUID="9b33d3db-f112-4332-aadd-af490d18e4f5" URI="" ORDERINDEX="493" PARTOF_ID="1882" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1485" CREATED="2009-01-28 17:07:04.0" UUID="6fd49a11-1f31-4e7b-abfc-4890b23a9fcf" URI="" ORDERINDEX="492" PARTOF_ID="1883" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1486" CREATED="2009-01-28 17:07:04.0" UUID="d9a11144-447c-4e72-b75f-9daeb254e7c4" URI="" ORDERINDEX="491" PARTOF_ID="1884" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1487" CREATED="2009-01-28 17:07:04.0" UUID="afa00cef-9ac1-49f9-aca4-ffb01f5f634a" URI="" ORDERINDEX="490" PARTOF_ID="1885" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1488" CREATED="2009-01-28 17:07:04.0" UUID="72afac75-ab5f-4f62-80b1-e5880dcf53f7" URI="" ORDERINDEX="489" PARTOF_ID="1885" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1489" CREATED="2009-01-28 17:07:04.0" UUID="99c9fe8e-cdbb-46db-8e77-3cb4a95bb30d" URI="" ORDERINDEX="488" PARTOF_ID="1886" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1490" CREATED="2009-01-28 17:07:04.0" UUID="bf4dbc7d-2cc9-411d-abdc-d50cba248607" URI="" ORDERINDEX="487" PARTOF_ID="1887" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1491" CREATED="2009-01-28 17:07:04.0" UUID="f69009bf-be76-4d4f-a601-25dbe52c73ec" URI="" ORDERINDEX="486" PARTOF_ID="1888" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1492" CREATED="2009-01-28 17:07:04.0" UUID="bd621ff5-cb83-43de-adcb-600cb64e9c7f" URI="" ORDERINDEX="485" PARTOF_ID="1889" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1493" CREATED="2009-01-28 17:07:04.0" UUID="1a79eb1b-734d-42d0-9887-a6fea70ab556" URI="" ORDERINDEX="484" PARTOF_ID="1890" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1494" CREATED="2009-01-28 17:07:04.0" UUID="a17d5d28-db7b-4e7e-ab49-d24e0a8682d7" URI="" ORDERINDEX="483" PARTOF_ID="1891" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1495" CREATED="2009-01-28 17:07:04.0" UUID="1167d228-e7ff-4702-960a-578118fd6ceb" URI="" ORDERINDEX="482" PARTOF_ID="1892" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1496" CREATED="2009-01-28 17:07:04.0" UUID="f7659257-587d-4c9e-802b-150f3849f76a" URI="" ORDERINDEX="481" PARTOF_ID="1892" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1497" CREATED="2009-01-28 17:07:04.0" UUID="2a939b1b-e6aa-468e-a7f9-31ce3bc316d0" URI="" ORDERINDEX="480" PARTOF_ID="1893" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1498" CREATED="2009-01-28 17:07:04.0" UUID="f6046475-d928-4e87-8140-2435b642f2d7" URI="" ORDERINDEX="479" PARTOF_ID="1894" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1499" CREATED="2009-01-28 17:07:04.0" UUID="e6023624-a003-4791-a8c8-ad015215b15c" URI="" ORDERINDEX="478" PARTOF_ID="1894" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1500" CREATED="2009-01-28 17:07:04.0" UUID="5b8034e3-3225-41e8-8ed1-7b4f2713f8db" URI="" ORDERINDEX="477" PARTOF_ID="1894" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1501" CREATED="2009-01-28 17:07:04.0" UUID="6b76fe81-1fdc-4765-b3fc-7d6387417e9a" URI="" ORDERINDEX="476" PARTOF_ID="1894" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1502" CREATED="2009-01-28 17:07:04.0" UUID="113297af-2d4a-4201-a262-cddf0dd13202" URI="" ORDERINDEX="475" PARTOF_ID="1894" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1503" CREATED="2009-01-28 17:07:04.0" UUID="3f63e888-87bd-4ac7-8233-55e4f19bc67e" URI="" ORDERINDEX="474" PARTOF_ID="1894" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1504" CREATED="2009-01-28 17:07:04.0" UUID="d8e8fb07-ca32-4f6e-99b2-7323d8e1ef32" URI="" ORDERINDEX="473" PARTOF_ID="1895" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1505" CREATED="2009-01-28 17:07:04.0" UUID="da4e0179-a2f1-42a9-9b81-a77e705c6c5c" URI="" ORDERINDEX="472" PARTOF_ID="1896" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1506" CREATED="2009-01-28 17:07:04.0" UUID="d1a32a01-9395-4952-a754-eeae34ab1dd7" URI="" ORDERINDEX="471" PARTOF_ID="1897" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1507" CREATED="2009-01-28 17:07:04.0" UUID="9aaf0819-6f2c-4a10-bd1a-ea5f0764c878" URI="" ORDERINDEX="470" PARTOF_ID="1898" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1508" CREATED="2009-01-28 17:07:04.0" UUID="757cb232-f714-4ed0-af91-aaf1f24d71e5" URI="" ORDERINDEX="469" PARTOF_ID="1899" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1509" CREATED="2009-01-28 17:07:04.0" UUID="7210d9dd-304c-4577-881a-02c73f153d7b" URI="" ORDERINDEX="468" PARTOF_ID="1900" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1510" CREATED="2009-01-28 17:07:04.0" UUID="0c4d8f41-9621-4912-a446-228b395ff78c" URI="" ORDERINDEX="467" PARTOF_ID="1901" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1511" CREATED="2009-01-28 17:07:04.0" UUID="36d86e81-0288-468e-ab7e-dd63d0b0a574" URI="" ORDERINDEX="466" PARTOF_ID="1902" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1512" CREATED="2009-01-28 17:07:04.0" UUID="fed827ac-2946-4066-a08c-d542fd8634af" URI="" ORDERINDEX="465" PARTOF_ID="1903" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1513" CREATED="2009-01-28 17:07:04.0" UUID="770a5811-2b6e-4053-9ac5-35985c37a2d2" URI="" ORDERINDEX="464" PARTOF_ID="1903" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1514" CREATED="2009-01-28 17:07:04.0" UUID="e8359d12-7331-445b-a015-d1a69684c172" URI="" ORDERINDEX="463" PARTOF_ID="1904" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1515" CREATED="2009-01-28 17:07:04.0" UUID="f553a336-03b4-499f-a0d3-5ac4d84a968c" URI="" ORDERINDEX="462" PARTOF_ID="1905" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1516" CREATED="2009-01-28 17:07:04.0" UUID="13a03777-9e38-4e86-8ed2-a70f9b9279c3" URI="" ORDERINDEX="461" PARTOF_ID="1906" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1517" CREATED="2009-01-28 17:07:04.0" UUID="c88a09f1-e3f9-46ba-8541-84f956131932" URI="" ORDERINDEX="460" PARTOF_ID="1907" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1518" CREATED="2009-01-28 17:07:04.0" UUID="b9ca970c-f676-40f4-8cbb-bd431b42a077" URI="" ORDERINDEX="459" PARTOF_ID="1908" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1519" CREATED="2009-01-28 17:07:04.0" UUID="c97096ec-d32f-4106-920a-45f69e359199" URI="" ORDERINDEX="458" PARTOF_ID="1909" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1520" CREATED="2009-01-28 17:07:04.0" UUID="3eb214c4-31a9-49c4-8163-a3a5e4d468a0" URI="" ORDERINDEX="457" PARTOF_ID="1910" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1521" CREATED="2009-01-28 17:07:04.0" UUID="d332b58c-d30d-4cac-8982-8ab8885e6355" URI="" ORDERINDEX="456" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1522" CREATED="2009-01-28 17:07:04.0" UUID="639c2a60-7858-4eaf-9e79-f90b29a1882a" URI="" ORDERINDEX="455" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1523" CREATED="2009-01-28 17:07:04.0" UUID="2245ce8c-b3f5-4a01-96d9-f93ea9927b2a" URI="" ORDERINDEX="454" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1524" CREATED="2009-01-28 17:07:04.0" UUID="4b530f04-5fc9-438e-909a-acc32cfd7986" URI="" ORDERINDEX="453" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1525" CREATED="2009-01-28 17:07:04.0" UUID="30dcfd8e-fd7b-4254-984b-107b8a60c57d" URI="" ORDERINDEX="452" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1526" CREATED="2009-01-28 17:07:04.0" UUID="901360e8-5b48-480a-831b-e3393d4198a8" URI="" ORDERINDEX="451" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1527" CREATED="2009-01-28 17:07:04.0" UUID="104bc6db-9d96-4249-a277-ca21289af3c6" URI="" ORDERINDEX="450" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1528" CREATED="2009-01-28 17:07:04.0" UUID="e38f2205-3e06-4b58-9c19-ca80903e7fbd" URI="" ORDERINDEX="449" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1529" CREATED="2009-01-28 17:07:04.0" UUID="44b8a99f-344f-4c1e-8299-9cbad6fb4043" URI="" ORDERINDEX="448" PARTOF_ID="1911" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1530" CREATED="2009-01-28 17:07:04.0" UUID="b42abd5a-5181-4342-a9fb-cd6193d668fa" URI="" ORDERINDEX="447" PARTOF_ID="1912" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1531" CREATED="2009-01-28 17:07:04.0" UUID="75ed8ca6-0b99-4f11-a5ab-766bd819d819" URI="" ORDERINDEX="446" PARTOF_ID="1912" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1532" CREATED="2009-01-28 17:07:04.0" UUID="53a83e7f-fb6a-437b-beab-47c389b68a41" URI="" ORDERINDEX="445" PARTOF_ID="1912" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1533" CREATED="2009-01-28 17:07:04.0" UUID="84d9dfd7-1c32-433b-8f30-a07fd3f61f57" URI="" ORDERINDEX="444" PARTOF_ID="1912" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1534" CREATED="2009-01-28 17:07:04.0" UUID="3a2a0a1e-f820-4f77-a2db-69d822eccda9" URI="" ORDERINDEX="443" PARTOF_ID="1912" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1535" CREATED="2009-01-28 17:07:04.0" UUID="9adc826c-ef68-403c-930b-d67027a6e253" URI="" ORDERINDEX="442" PARTOF_ID="1912" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1536" CREATED="2009-01-28 17:07:04.0" UUID="e614e0b6-e09c-4802-b4dc-9186a3bbab2d" URI="" ORDERINDEX="441" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1537" CREATED="2009-01-28 17:07:04.0" UUID="b7eac6d2-22b0-4ca1-b139-0b377dbf877c" URI="" ORDERINDEX="440" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1538" CREATED="2009-01-28 17:07:04.0" UUID="a12e56d3-e968-4c18-ba1e-feba731b071f" URI="" ORDERINDEX="439" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1539" CREATED="2009-01-28 17:07:04.0" UUID="8bd874ce-36f4-4c96-b1bc-00084bbb7793" URI="" ORDERINDEX="438" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1540" CREATED="2009-01-28 17:07:04.0" UUID="356f5e7e-f8e5-4ff0-adc8-ff3ceed8b871" URI="" ORDERINDEX="437" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1541" CREATED="2009-01-28 17:07:04.0" UUID="69394eb2-c2f1-4433-8fcc-daabcf70a7d5" URI="" ORDERINDEX="436" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1542" CREATED="2009-01-28 17:07:04.0" UUID="7f93e700-4e9f-4894-abe1-ffcbd5327bce" URI="" ORDERINDEX="435" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1543" CREATED="2009-01-28 17:07:04.0" UUID="72f8db6a-0472-45c4-acff-adf8563a0772" URI="" ORDERINDEX="434" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1544" CREATED="2009-01-28 17:07:04.0" UUID="c6af30b9-99b3-4a98-adfb-97444ce96e8b" URI="" ORDERINDEX="433" PARTOF_ID="1913" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1545" CREATED="2009-01-28 17:07:04.0" UUID="019fc551-10dc-43c2-9c5b-ca52a2d09e86" URI="" ORDERINDEX="432" PARTOF_ID="1914" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1546" CREATED="2009-01-28 17:07:04.0" UUID="0103dfde-e203-40d7-bec8-bb484ae75bdf" URI="" ORDERINDEX="431" PARTOF_ID="1915" VOCABULARY_ID="17" LEVEL_ID="903"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1547" CREATED="2009-01-28 17:07:04.0" UUID="5b63e02e-2e96-4acc-86a9-ded2a0359f4b" URI="" ORDERINDEX="430" PARTOF_ID="1956" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1548" CREATED="2009-01-28 17:07:04.0" UUID="997ca9ce-29cb-4d9c-b9ca-b1ab98968785" URI="" ORDERINDEX="429" PARTOF_ID="1956" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1549" CREATED="2009-01-28 17:07:04.0" UUID="91db183a-a8c3-45dc-8cc9-2b8c2a6c183d" URI="" ORDERINDEX="428" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1550" CREATED="2009-01-28 17:07:04.0" UUID="26b4e43d-3756-4b28-872b-8ef1d65168a8" URI="" ORDERINDEX="427" PARTOF_ID="1933" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1551" CREATED="2009-01-28 17:07:04.0" UUID="705df0b8-452a-4868-bf12-bdc4dcde018a" URI="" ORDERINDEX="426" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1552" CREATED="2009-01-28 17:07:04.0" UUID="d2c3f9e5-3c36-4a42-9e97-48927f63c1f4" URI="" ORDERINDEX="425" PARTOF_ID="1947" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1553" CREATED="2009-01-28 17:07:04.0" UUID="258f6e7c-6acb-4ccd-b312-748e0502d758" URI="" ORDERINDEX="424" PARTOF_ID="1952" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1554" CREATED="2009-01-28 17:07:04.0" UUID="474ea264-4a0c-4e47-b2e3-b7d69161a887" URI="" ORDERINDEX="423" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1555" CREATED="2009-01-28 17:07:04.0" UUID="c75e0ede-5a11-486d-bbd5-1aad2afc1c53" URI="" ORDERINDEX="422" PARTOF_ID="1930" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1556" CREATED="2009-01-28 17:07:04.0" UUID="8f1802cf-8c21-4951-8460-68f23117a7a8" URI="" ORDERINDEX="421" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1557" CREATED="2009-01-28 17:07:04.0" UUID="183869b8-7143-492e-abec-fc9aa585cb2e" URI="" ORDERINDEX="420" PARTOF_ID="1952" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1558" CREATED="2009-01-28 17:07:04.0" UUID="2a3887f9-739d-4969-8a05-be5dff943654" URI="" ORDERINDEX="419" PARTOF_ID="1962" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1559" CREATED="2009-01-28 17:07:04.0" UUID="739fa687-ccc0-4ecd-b30e-216c1d0ae8c0" URI="" ORDERINDEX="418" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1560" CREATED="2009-01-28 17:07:04.0" UUID="8b56d6ca-77a5-436f-9839-888e4f0611ea" URI="" ORDERINDEX="417" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1561" CREATED="2009-01-28 17:07:04.0" UUID="bd730c6b-5659-445d-9b26-3a662186b1b5" URI="" ORDERINDEX="416" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1562" CREATED="2009-01-28 17:07:04.0" UUID="16939d8c-587d-4277-be04-26502fe61b28" URI="" ORDERINDEX="415" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1563" CREATED="2009-01-28 17:07:04.0" UUID="cb709a6b-604a-4dcc-9ed4-7410750a3fb6" URI="" ORDERINDEX="414" PARTOF_ID="1939" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1564" CREATED="2009-01-28 17:07:04.0" UUID="fcaa778d-12d7-4e35-9bad-05a05d80f563" URI="" ORDERINDEX="413" PARTOF_ID="1930" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1565" CREATED="2009-01-28 17:07:04.0" UUID="b8810d5d-152f-47df-b570-83a84a37bad6" URI="" ORDERINDEX="412" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1566" CREATED="2009-01-28 17:07:04.0" UUID="36d57602-8107-458c-a097-5f37ff49881e" URI="" ORDERINDEX="411" PARTOF_ID="1935" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1567" CREATED="2009-01-28 17:07:04.0" UUID="3a6df9f1-d33b-4fe7-a150-db130a038654" URI="" ORDERINDEX="410" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1568" CREATED="2009-01-28 17:07:04.0" UUID="9f97925d-be79-48e5-ab65-25d0bc27503c" URI="" ORDERINDEX="409" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1569" CREATED="2009-01-28 17:07:04.0" UUID="ce26e090-99b0-407f-a177-3fbc316638f0" URI="" ORDERINDEX="408" PARTOF_ID="1942" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1570" CREATED="2009-01-28 17:07:04.0" UUID="62f519dc-d315-425d-9053-319a055c1468" URI="" ORDERINDEX="407" PARTOF_ID="1939" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1571" CREATED="2009-01-28 17:07:04.0" UUID="889993e0-507b-48c6-bc40-8bb2dd943960" URI="" ORDERINDEX="406" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1572" CREATED="2009-01-28 17:07:04.0" UUID="a9a80485-407a-495d-9701-2bfff3025b37" URI="" ORDERINDEX="405" PARTOF_ID="1921" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1573" CREATED="2009-01-28 17:07:04.0" UUID="205587f2-6d1b-4507-8d06-3588375b0cf2" URI="" ORDERINDEX="404" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1574" CREATED="2009-01-28 17:07:04.0" UUID="42fb1397-83df-4fe0-a313-a04845ce378c" URI="" ORDERINDEX="403" PARTOF_ID="1950" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1575" CREATED="2009-01-28 17:07:04.0" UUID="86d51169-ef60-4717-b4ec-c1522ebd4bb9" URI="" ORDERINDEX="402" PARTOF_ID="1927" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1576" CREATED="2009-01-28 17:07:04.0" UUID="4b8f9064-f413-41f5-8399-8a8530fea981" URI="" ORDERINDEX="401" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1577" CREATED="2009-01-28 17:07:04.0" UUID="670977b8-9833-4ab4-8f68-15a5cb5f38d9" URI="" ORDERINDEX="400" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1578" CREATED="2009-01-28 17:07:04.0" UUID="e06b10c6-1cb6-4654-94b0-49878cf88a6a" URI="" ORDERINDEX="399" PARTOF_ID="1957" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1579" CREATED="2009-01-28 17:07:04.0" UUID="90b1b04c-7604-4bdf-b648-963e933b85f8" URI="" ORDERINDEX="398" PARTOF_ID="1950" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1580" CREATED="2009-01-28 17:07:04.0" UUID="3d190a52-47b9-450d-b2b8-15bd9995c8e5" URI="" ORDERINDEX="397" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1581" CREATED="2009-01-28 17:07:04.0" UUID="b59ea7bf-6907-4275-9984-4a9b7621cae9" URI="" ORDERINDEX="396" PARTOF_ID="1952" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1582" CREATED="2009-01-28 17:07:04.0" UUID="df5a43be-4dbd-4585-889d-916dc4eb085c" URI="" ORDERINDEX="395" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1583" CREATED="2009-01-28 17:07:04.0" UUID="48219cbc-82ab-447f-8a67-e97408736c23" URI="" ORDERINDEX="394" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1584" CREATED="2009-01-28 17:07:04.0" UUID="73d5c7bf-deb8-4152-b55c-5414db2c4261" URI="" ORDERINDEX="393" PARTOF_ID="1962" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1585" CREATED="2009-01-28 17:07:04.0" UUID="0cc0f22f-df09-48d2-a2e0-27911df17c8b" URI="" ORDERINDEX="392" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1586" CREATED="2009-01-28 17:07:04.0" UUID="332abf62-47ab-43f1-a12a-3e320f4a8a6d" URI="" ORDERINDEX="391" PARTOF_ID="1936" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1587" CREATED="2009-01-28 17:07:04.0" UUID="8ae1077d-ce28-4602-909a-227686b680e1" URI="" ORDERINDEX="390" PARTOF_ID="1936" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1588" CREATED="2009-01-28 17:07:04.0" UUID="a356333f-e25a-4fdd-8d69-154c24307a36" URI="" ORDERINDEX="389" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1589" CREATED="2009-01-28 17:07:04.0" UUID="a3a4d577-ff17-4548-b766-c0b3579cde1c" URI="" ORDERINDEX="388" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1590" CREATED="2009-01-28 17:07:04.0" UUID="24ffcae2-2090-4106-8da6-f49a21a951de" URI="" ORDERINDEX="387" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1591" CREATED="2009-01-28 17:07:04.0" UUID="39983171-9173-48ac-9564-9d30c189b90f" URI="" ORDERINDEX="386" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1592" CREATED="2009-01-28 17:07:04.0" UUID="bfca42eb-4fae-4233-996d-ffff6b60bf15" URI="" ORDERINDEX="385" PARTOF_ID="1950" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1593" CREATED="2009-01-28 17:07:04.0" UUID="da8aac48-9795-4767-a1a0-323160158892" URI="" ORDERINDEX="384" PARTOF_ID="1942" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1594" CREATED="2009-01-28 17:07:04.0" UUID="6d90e6d7-9f3d-48ee-8dc5-0fa0e2e102e0" URI="" ORDERINDEX="383" PARTOF_ID="1926" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1595" CREATED="2009-01-28 17:07:04.0" UUID="d1a6df1e-7e01-4ef8-9e34-295bd59037de" URI="" ORDERINDEX="382" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1596" CREATED="2009-01-28 17:07:04.0" UUID="1cda9cee-21be-4a99-a983-520a749d7118" URI="" ORDERINDEX="381" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1597" CREATED="2009-01-28 17:07:04.0" UUID="ac7a6544-3f4b-463b-a19d-eea0a484da93" URI="" ORDERINDEX="380" PARTOF_ID="1949" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1598" CREATED="2009-01-28 17:07:04.0" UUID="952ea175-c3f4-4ae9-b09a-029ba81ee923" URI="" ORDERINDEX="379" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1599" CREATED="2009-01-28 17:07:04.0" UUID="4baeb0f7-7893-4edb-8c9b-7c0f225bf868" URI="" ORDERINDEX="378" PARTOF_ID="1939" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1600" CREATED="2009-01-28 17:07:04.0" UUID="caf1697c-10d1-4d51-ac62-a977171ec56e" URI="" ORDERINDEX="377" PARTOF_ID="1957" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1601" CREATED="2009-01-28 17:07:04.0" UUID="eed9dbda-ed03-41d5-9322-94f985de97ee" URI="" ORDERINDEX="376" PARTOF_ID="1944" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1602" CREATED="2009-01-28 17:07:04.0" UUID="5d49cc9a-3a8d-44a3-a851-6cf0e8ca154b" URI="" ORDERINDEX="375" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1603" CREATED="2009-01-28 17:07:04.0" UUID="df9fc338-1564-4517-8e39-43087bc068f2" URI="" ORDERINDEX="374" PARTOF_ID="1966" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1604" CREATED="2009-01-28 17:07:04.0" UUID="289074c4-a7a9-4cb3-b74a-78ad2bc6fbce" URI="" ORDERINDEX="373" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1605" CREATED="2009-01-28 17:07:04.0" UUID="7ad3ccea-3cee-4046-b496-e694a2109fd9" URI="" ORDERINDEX="372" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1606" CREATED="2009-01-28 17:07:04.0" UUID="34c3c6fc-e6e0-44b9-8886-157c992e9485" URI="" ORDERINDEX="371" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1607" CREATED="2009-01-28 17:07:04.0" UUID="ff18c8ac-970f-4a90-a6a8-27859dbc6218" URI="" ORDERINDEX="370" PARTOF_ID="1921" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1608" CREATED="2009-01-28 17:07:04.0" UUID="d7bbe237-0bae-4ef0-b8fb-332a90eee92c" URI="" ORDERINDEX="369" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1609" CREATED="2009-01-28 17:07:04.0" UUID="b42f9b9e-afe1-4d62-a3a9-6b53599f2f60" URI="" ORDERINDEX="368" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1610" CREATED="2009-01-28 17:07:04.0" UUID="08c2d94a-0cc2-4b6b-8184-a1c1b899b805" URI="" ORDERINDEX="367" PARTOF_ID="1958" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1611" CREATED="2009-01-28 17:07:04.0" UUID="7145cc3e-0893-442d-b56e-9c74f62ce430" URI="" ORDERINDEX="366" PARTOF_ID="1954" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1612" CREATED="2009-01-28 17:07:04.0" UUID="bf83496e-9a97-4215-839a-3df00e06916e" URI="" ORDERINDEX="365" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1613" CREATED="2009-01-28 17:07:04.0" UUID="3a78d641-42c2-4041-919d-fe3601de6356" URI="" ORDERINDEX="364" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1614" CREATED="2009-01-28 17:07:04.0" UUID="4774d040-9901-4eed-aaa5-8b18dcd568bc" URI="" ORDERINDEX="363" PARTOF_ID="1965" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1615" CREATED="2009-01-28 17:07:04.0" UUID="15b4c85f-6e38-403e-a5d4-69cdc00230ea" URI="" ORDERINDEX="362" PARTOF_ID="1958" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1616" CREATED="2009-01-28 17:07:04.0" UUID="4cf239da-1215-4689-8cb9-495a2735cb0a" URI="" ORDERINDEX="361" PARTOF_ID="1940" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1617" CREATED="2009-01-28 17:07:04.0" UUID="d8a1ea81-78db-46db-a27d-d8eb64bf7e41" URI="" ORDERINDEX="360" PARTOF_ID="1958" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1618" CREATED="2009-01-28 17:07:04.0" UUID="c28b59c7-f65d-469e-9d53-6fce34b35e6e" URI="" ORDERINDEX="359" PARTOF_ID="1939" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1619" CREATED="2009-01-28 17:07:04.0" UUID="7720f433-5f3f-469a-b49b-b4e409064455" URI="" ORDERINDEX="358" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1620" CREATED="2009-01-28 17:07:04.0" UUID="ea7c2f1b-9d95-4129-b84f-9653e51e3da8" URI="" ORDERINDEX="357" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1621" CREATED="2009-01-28 17:07:04.0" UUID="4750f5f8-e7af-46d8-b497-2b68199366ba" URI="" ORDERINDEX="356" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1622" CREATED="2009-01-28 17:07:04.0" UUID="dda86ec7-b0fc-44b9-89a9-fd14762796bf" URI="" ORDERINDEX="355" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1623" CREATED="2009-01-28 17:07:04.0" UUID="89392d7c-251e-4160-8518-6f91d86e5010" URI="" ORDERINDEX="354" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1624" CREATED="2009-01-28 17:07:04.0" UUID="4a95dae4-c8a8-42e8-ba12-540d402e360f" URI="" ORDERINDEX="353" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1625" CREATED="2009-01-28 17:07:04.0" UUID="f3cde575-de0d-49f9-9615-6717526458ba" URI="" ORDERINDEX="352" PARTOF_ID="1961" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1626" CREATED="2009-01-28 17:07:04.0" UUID="9ca35d05-ec92-41fe-ba42-ec6828ff6848" URI="" ORDERINDEX="351" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1627" CREATED="2009-01-28 17:07:04.0" UUID="353f7509-cc51-4c47-b46a-15819bca9323" URI="" ORDERINDEX="350" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1628" CREATED="2009-01-28 17:07:04.0" UUID="ef6cd955-105b-442c-95b0-6637545baaa5" URI="" ORDERINDEX="349" PARTOF_ID="1942" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1629" CREATED="2009-01-28 17:07:04.0" UUID="67f0df67-8161-448b-9188-058b57d37c9d" URI="" ORDERINDEX="348" PARTOF_ID="1936" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1630" CREATED="2009-01-28 17:07:04.0" UUID="3dc78d7b-6cd8-4790-891d-e8d6ffa497bb" URI="" ORDERINDEX="347" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1631" CREATED="2009-01-28 17:07:04.0" UUID="7af350e4-7e8a-49b7-a728-3dfb3a7347ac" URI="" ORDERINDEX="346" PARTOF_ID="1947" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1632" CREATED="2009-01-28 17:07:04.0" UUID="7dfafd0c-5b59-45f1-a2d2-0757e555e530" URI="" ORDERINDEX="345" PARTOF_ID="1932" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1633" CREATED="2009-01-28 17:07:04.0" UUID="43bf5a60-eafc-440d-83e0-7dce0961aba8" URI="" ORDERINDEX="344" PARTOF_ID="1965" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1634" CREATED="2009-01-28 17:07:04.0" UUID="1762ef94-4195-4068-8703-4d11e244653f" URI="" ORDERINDEX="343" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1635" CREATED="2009-01-28 17:07:04.0" UUID="37622300-94ec-4438-8e65-09d299fb7ef3" URI="" ORDERINDEX="342" PARTOF_ID="1951" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1636" CREATED="2009-01-28 17:07:04.0" UUID="50d2716e-328c-4fe1-9e9b-c3ed6ce60bb5" URI="" ORDERINDEX="341" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1637" CREATED="2009-01-28 17:07:04.0" UUID="d145aa3f-857c-4b6e-b691-ce8d172f37d9" URI="" ORDERINDEX="340" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1638" CREATED="2009-01-28 17:07:04.0" UUID="8957c768-ee18-410d-9c43-c55cb799e205" URI="" ORDERINDEX="339" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1639" CREATED="2009-01-28 17:07:04.0" UUID="9169948b-c465-47b6-8acf-c9c3b0a6fff8" URI="" ORDERINDEX="338" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1640" CREATED="2009-01-28 17:07:04.0" UUID="d06f68f8-5a20-4a93-88e0-09f533f3613f" URI="" ORDERINDEX="337" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1641" CREATED="2009-01-28 17:07:04.0" UUID="27be3967-faa0-45b2-a182-6bb19ace908b" URI="" ORDERINDEX="336" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1642" CREATED="2009-01-28 17:07:04.0" UUID="5120891c-0493-4b0d-8319-f6442765ec3b" URI="" ORDERINDEX="335" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1643" CREATED="2009-01-28 17:07:04.0" UUID="4f10f141-b2bf-4d11-b018-9ed973b32729" URI="" ORDERINDEX="334" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1644" CREATED="2009-01-28 17:07:04.0" UUID="beaff32e-3e14-4b21-8d70-5b6930077299" URI="" ORDERINDEX="333" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1645" CREATED="2009-01-28 17:07:04.0" UUID="24fd734c-aeb2-464f-bc25-db1d09e62084" URI="" ORDERINDEX="332" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1646" CREATED="2009-01-28 17:07:04.0" UUID="c72bf61f-5446-455c-bd73-652ce4ddf1b9" URI="" ORDERINDEX="331" PARTOF_ID="1931" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1647" CREATED="2009-01-28 17:07:04.0" UUID="857bec6a-b361-495b-abf1-f99cce2587c4" URI="" ORDERINDEX="330" PARTOF_ID="1939" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1648" CREATED="2009-01-28 17:07:04.0" UUID="4d9400b1-de4e-495b-8a04-9468e34b0610" URI="" ORDERINDEX="329" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1649" CREATED="2009-01-28 17:07:04.0" UUID="51b66943-c7b6-4b0f-8252-92e02eb5957f" URI="" ORDERINDEX="328" PARTOF_ID="1951" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1650" CREATED="2009-01-28 17:07:04.0" UUID="3a22e22e-a68e-4215-8b7d-be3e39cfafa4" URI="" ORDERINDEX="327" PARTOF_ID="1965" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1651" CREATED="2009-01-28 17:07:04.0" UUID="587b53b3-c12d-411c-aa58-1f8ab1c19987" URI="" ORDERINDEX="326" PARTOF_ID="1966" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1652" CREATED="2009-01-28 17:07:04.0" UUID="717549a3-1f67-4408-8c59-42724e6d8c0f" URI="" ORDERINDEX="325" PARTOF_ID="1936" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1653" CREATED="2009-01-28 17:07:04.0" UUID="adf502c8-d5ba-4f07-a65b-115c3b8f4c21" URI="" ORDERINDEX="324" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1654" CREATED="2009-01-28 17:07:04.0" UUID="a5a7e2f3-5c24-4b9c-b6ba-110b62896c95" URI="" ORDERINDEX="323" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1655" CREATED="2009-01-28 17:07:04.0" UUID="eb69081d-1147-48a1-84e4-b96339a29492" URI="" ORDERINDEX="322" PARTOF_ID="1920" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1656" CREATED="2009-01-28 17:07:04.0" UUID="57343e24-9bf9-4ce6-aed5-27d563139d36" URI="" ORDERINDEX="321" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1657" CREATED="2009-01-28 17:07:04.0" UUID="2ad64695-b454-49af-8b48-92f891175cba" URI="" ORDERINDEX="320" PARTOF_ID="1931" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1658" CREATED="2009-01-28 17:07:04.0" UUID="97d0d28f-977e-41bd-a3b9-f788baaed364" URI="" ORDERINDEX="319" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1659" CREATED="2009-01-28 17:07:04.0" UUID="07aced24-02ed-4e0b-80f0-b20b83fd6561" URI="" ORDERINDEX="318" PARTOF_ID="1923" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1660" CREATED="2009-01-28 17:07:04.0" UUID="a6249157-4b39-49d2-9689-0778aec024c4" URI="" ORDERINDEX="317" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1661" CREATED="2009-01-28 17:07:04.0" UUID="de7db6b3-7d4f-47a5-8bb8-9fa93a760672" URI="" ORDERINDEX="316" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1662" CREATED="2009-01-28 17:07:04.0" UUID="f634bb85-3c54-4ee5-815c-da689d840a57" URI="" ORDERINDEX="315" PARTOF_ID="1930" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1663" CREATED="2009-01-28 17:07:04.0" UUID="2842bcb3-9ce5-473f-b155-2d7519b3bb65" URI="" ORDERINDEX="314" PARTOF_ID="1931" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1664" CREATED="2009-01-28 17:07:04.0" UUID="b3dd0577-35c4-4915-a965-7c696dc9b83c" URI="" ORDERINDEX="313" PARTOF_ID="1947" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1665" CREATED="2009-01-28 17:07:04.0" UUID="56e84e9c-9229-4286-b30c-5c5e68c8a144" URI="" ORDERINDEX="312" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1666" CREATED="2009-01-28 17:07:04.0" UUID="461ba6ca-4246-4fb9-bcd4-af7c965ae777" URI="" ORDERINDEX="311" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1667" CREATED="2009-01-28 17:07:04.0" UUID="178f0de3-54bf-4469-a8d4-8e1974be8611" URI="" ORDERINDEX="310" PARTOF_ID="1944" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1668" CREATED="2009-01-28 17:07:04.0" UUID="27f18891-4c9c-4e72-98a0-b3a90d8f0060" URI="" ORDERINDEX="309" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1669" CREATED="2009-01-28 17:07:04.0" UUID="7f285f4c-a7e7-4021-98dd-1413930675a1" URI="" ORDERINDEX="308" PARTOF_ID="1938" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1670" CREATED="2009-01-28 17:07:04.0" UUID="df68a983-a1ac-42f7-886d-9335c681430c" URI="" ORDERINDEX="307" PARTOF_ID="1938" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1671" CREATED="2009-01-28 17:07:04.0" UUID="0392fb7c-2028-40db-8372-4621a425fe3c" URI="" ORDERINDEX="306" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1672" CREATED="2009-01-28 17:07:04.0" UUID="86b0de03-5b68-454b-b7db-d20e6a7b0f20" URI="" ORDERINDEX="305" PARTOF_ID="1933" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1673" CREATED="2009-01-28 17:07:04.0" UUID="3a0a1cc3-8a71-43fb-86fc-0c92ddba73fc" URI="" ORDERINDEX="304" PARTOF_ID="1926" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1674" CREATED="2009-01-28 17:07:04.0" UUID="ab3974aa-b195-4af7-8f19-b1049231ed4f" URI="" ORDERINDEX="303" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1675" CREATED="2009-01-28 17:07:04.0" UUID="36d4ef65-64d3-4733-8085-9daeba3b1aed" URI="" ORDERINDEX="302" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1676" CREATED="2009-01-28 17:07:04.0" UUID="b5abcf7d-796f-431a-bf93-b771693ccdcf" URI="" ORDERINDEX="301" PARTOF_ID="1940" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1677" CREATED="2009-01-28 17:07:04.0" UUID="e9d6e328-6209-4d1f-94f0-61fd8592c09c" URI="" ORDERINDEX="300" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1678" CREATED="2009-01-28 17:07:04.0" UUID="0936c6be-e397-4793-b47b-e08d992ba5d3" URI="" ORDERINDEX="299" PARTOF_ID="1933" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1679" CREATED="2009-01-28 17:07:04.0" UUID="ec2ae973-99e6-44ba-8417-e01e729e5dab" URI="" ORDERINDEX="298" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1680" CREATED="2009-01-28 17:07:04.0" UUID="d1c88525-0110-4f9d-a639-5b4d0009b393" URI="" ORDERINDEX="297" PARTOF_ID="1939" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1681" CREATED="2009-01-28 17:07:04.0" UUID="e8c18809-0ccf-4c68-9528-9925db6c55e7" URI="" ORDERINDEX="296" PARTOF_ID="1939" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1682" CREATED="2009-01-28 17:07:04.0" UUID="7662bec4-dc55-4483-8f37-a78d93cc8224" URI="" ORDERINDEX="295" PARTOF_ID="1931" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1683" CREATED="2009-01-28 17:07:04.0" UUID="01176406-0e8f-4a43-a6e2-346f6769cd60" URI="" ORDERINDEX="294" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1684" CREATED="2009-01-28 17:07:04.0" UUID="4b2396e7-6e3d-41f8-b782-247a95d4b761" URI="" ORDERINDEX="293" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1685" CREATED="2009-01-28 17:07:04.0" UUID="7a4d50ba-1b53-4ed7-8453-5ae17919df86" URI="" ORDERINDEX="292" PARTOF_ID="1944" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1686" CREATED="2009-01-28 17:07:04.0" UUID="5bce0bb4-a584-4e3a-bfd9-7aa876e1ef44" URI="" ORDERINDEX="291" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1687" CREATED="2009-01-28 17:07:04.0" UUID="0cff1981-6dbb-418b-b5e5-b427e338f2c3" URI="" ORDERINDEX="290" PARTOF_ID="1923" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1688" CREATED="2009-01-28 17:07:04.0" UUID="2fd151ae-c0c5-4653-95ef-42c4addf088b" URI="" ORDERINDEX="289" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1689" CREATED="2009-01-28 17:07:04.0" UUID="36cc02ea-68fc-4024-879b-df2ad7e1d500" URI="" ORDERINDEX="288" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1690" CREATED="2009-01-28 17:07:04.0" UUID="61e4dc79-5847-4859-8f63-fa602de5743c" URI="" ORDERINDEX="287" PARTOF_ID="1931" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1691" CREATED="2009-01-28 17:07:04.0" UUID="c35e4381-1646-4632-ab6f-40c80127b490" URI="" ORDERINDEX="286" PARTOF_ID="1939" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1692" CREATED="2009-01-28 17:07:04.0" UUID="9bac52d4-5a10-4927-b630-b51273b9943b" URI="" ORDERINDEX="285" PARTOF_ID="1927" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1693" CREATED="2009-01-28 17:07:04.0" UUID="2ef12677-0d38-4ed9-a57a-f61a968f7a63" URI="" ORDERINDEX="284" PARTOF_ID="1966" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1694" CREATED="2009-01-28 17:07:04.0" UUID="145cb777-fd41-4ed5-b163-550784840bf7" URI="" ORDERINDEX="283" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1695" CREATED="2009-01-28 17:07:04.0" UUID="70b98a5c-4785-4925-9325-ec92610b9117" URI="" ORDERINDEX="282" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1696" CREATED="2009-01-28 17:07:04.0" UUID="891381d8-cdd2-49b2-86dd-02eeaf47dc7b" URI="" ORDERINDEX="281" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1697" CREATED="2009-01-28 17:07:04.0" UUID="08ba6204-b699-4b91-8e16-424ed62dcc84" URI="" ORDERINDEX="280" PARTOF_ID="1949" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1698" CREATED="2009-01-28 17:07:04.0" UUID="e301f2a0-2a7c-4b6a-bd86-df15ba340a5d" URI="" ORDERINDEX="279" PARTOF_ID="1942" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1699" CREATED="2009-01-28 17:07:04.0" UUID="7a3946b0-104c-4cd2-af95-b24a4ce6d686" URI="" ORDERINDEX="278" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1700" CREATED="2009-01-28 17:07:04.0" UUID="28369e9a-251e-4735-b9b8-4271b1321808" URI="" ORDERINDEX="277" PARTOF_ID="1931" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1701" CREATED="2009-01-28 17:07:04.0" UUID="da51d835-bdb4-46bd-b994-5bb9a33ff5e7" URI="" ORDERINDEX="276" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1702" CREATED="2009-01-28 17:07:04.0" UUID="642bfe17-30c1-420c-be51-665af6a07bff" URI="" ORDERINDEX="275" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1703" CREATED="2009-01-28 17:07:04.0" UUID="e631e1d6-bdc4-4ece-a2b5-33b1eb22b069" URI="" ORDERINDEX="274" PARTOF_ID="1942" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1704" CREATED="2009-01-28 17:07:04.0" UUID="602303d7-93ee-4375-9095-477aad95268a" URI="" ORDERINDEX="273" PARTOF_ID="1924" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1705" CREATED="2009-01-28 17:07:04.0" UUID="5c95c7c9-29cd-4e8a-85c6-cb9ac2060dde" URI="" ORDERINDEX="272" PARTOF_ID="1924" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1706" CREATED="2009-01-28 17:07:04.0" UUID="757b5d76-1d1d-4542-9c99-fa1640dce066" URI="" ORDERINDEX="271" PARTOF_ID="1924" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1707" CREATED="2009-01-28 17:07:04.0" UUID="adac7ea3-9960-411b-af26-246fa85ea19c" URI="" ORDERINDEX="270" PARTOF_ID="1924" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1708" CREATED="2009-01-28 17:07:04.0" UUID="7d3e6e07-245d-4201-a525-10802cda6dfe" URI="" ORDERINDEX="269" PARTOF_ID="1924" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1709" CREATED="2009-01-28 17:07:04.0" UUID="bf85121c-a686-46be-ba88-f400b37b3b25" URI="" ORDERINDEX="268" PARTOF_ID="1924" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1710" CREATED="2009-01-28 17:07:04.0" UUID="ebeb5340-2838-4b72-99b1-616e8160d0ca" URI="" ORDERINDEX="267" PARTOF_ID="1924" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1711" CREATED="2009-01-28 17:07:04.0" UUID="548abebd-9668-481e-a2c5-a93a600fedb9" URI="" ORDERINDEX="266" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1712" CREATED="2009-01-28 17:07:04.0" UUID="0249d5ed-e960-4efa-b66d-5f2bd15f7b1b" URI="" ORDERINDEX="265" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1713" CREATED="2009-01-28 17:07:04.0" UUID="3c90742c-f8bf-4344-9f23-2e3b73aee064" URI="" ORDERINDEX="264" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1714" CREATED="2009-01-28 17:07:04.0" UUID="72fe14e6-5631-4079-ac95-3d62fe1c3aab" URI="" ORDERINDEX="263" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1715" CREATED="2009-01-28 17:07:04.0" UUID="e4836aef-cb88-4782-8c41-aefc270a2502" URI="" ORDERINDEX="262" PARTOF_ID="1935" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1716" CREATED="2009-01-28 17:07:04.0" UUID="77e49b33-ce39-48e8-bef5-eaa16091f2ef" URI="" ORDERINDEX="261" PARTOF_ID="1936" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1717" CREATED="2009-01-28 17:07:04.0" UUID="4f854b84-2d93-4b0d-a40d-9e05be7cbae1" URI="" ORDERINDEX="260" PARTOF_ID="1935" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1718" CREATED="2009-01-28 17:07:04.0" UUID="7a391925-b331-4ffe-8bf5-ba5b2439a177" URI="" ORDERINDEX="259" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1719" CREATED="2009-01-28 17:07:04.0" UUID="9ebd353e-0ab6-4185-9a9f-af92e7d11567" URI="" ORDERINDEX="258" PARTOF_ID="1956" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1720" CREATED="2009-01-28 17:07:04.0" UUID="85f6595b-c739-4a00-87a6-06dbf591d5f5" URI="" ORDERINDEX="257" PARTOF_ID="1962" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1721" CREATED="2009-01-28 17:07:04.0" UUID="6b678353-a83e-44e1-92b0-c31433208f2e" URI="" ORDERINDEX="256" PARTOF_ID="1945" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1722" CREATED="2009-01-28 17:07:04.0" UUID="fef7aa18-e35b-4ec4-8ba3-ed44033a38d4" URI="" ORDERINDEX="255" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1723" CREATED="2009-01-28 17:07:04.0" UUID="e8d3d3c6-c6e7-4dc6-b44a-77be24c97c42" URI="" ORDERINDEX="254" PARTOF_ID="1930" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1724" CREATED="2009-01-28 17:07:04.0" UUID="7047b137-84f4-46b5-8b71-4469e3d75545" URI="" ORDERINDEX="253" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1725" CREATED="2009-01-28 17:07:04.0" UUID="a09998ce-f3a8-4496-947e-518466697e99" URI="" ORDERINDEX="252" PARTOF_ID="1956" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1726" CREATED="2009-01-28 17:07:04.0" UUID="29e6f3e7-ffa7-403a-8051-7d18e67e7a45" URI="" ORDERINDEX="251" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1727" CREATED="2009-01-28 17:07:04.0" UUID="03d1211d-d056-46c1-998f-c2514826eafd" URI="" ORDERINDEX="250" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1728" CREATED="2009-01-28 17:07:04.0" UUID="68fd0c55-a9e2-4184-ab52-9d1702b02bb7" URI="" ORDERINDEX="249" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1729" CREATED="2009-01-28 17:07:04.0" UUID="cd604ba0-d10b-44ac-acd9-7ec4d5370d5e" URI="" ORDERINDEX="248" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1730" CREATED="2009-01-28 17:07:04.0" UUID="c7377fb4-abb1-4afd-96fb-111cac62c8f3" URI="" ORDERINDEX="247" PARTOF_ID="1961" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1731" CREATED="2009-01-28 17:07:04.0" UUID="7442406d-0bed-4d0d-a959-b16d81c3e161" URI="" ORDERINDEX="246" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1732" CREATED="2009-01-28 17:07:04.0" UUID="41d2ddce-22bb-4e06-a58a-377239113436" URI="" ORDERINDEX="245" PARTOF_ID="1935" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1733" CREATED="2009-01-28 17:07:04.0" UUID="4340ff7b-d1ba-4d0e-8857-3cf460886615" URI="" ORDERINDEX="244" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1734" CREATED="2009-01-28 17:07:04.0" UUID="81837e67-e449-4434-b088-fa849c434344" URI="" ORDERINDEX="243" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1735" CREATED="2009-01-28 17:07:04.0" UUID="7173ffcc-d91b-4c15-a563-b1c69342945f" URI="" ORDERINDEX="242" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1736" CREATED="2009-01-28 17:07:04.0" UUID="8082a407-d26a-4f8f-b5ca-2d3fb00b5086" URI="" ORDERINDEX="241" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1737" CREATED="2009-01-28 17:07:04.0" UUID="af20dad3-d152-4b50-b862-60c01da19aa5" URI="" ORDERINDEX="240" PARTOF_ID="1932" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1738" CREATED="2009-01-28 17:07:04.0" UUID="df0584e0-e291-4bbb-8f31-5dec7f8f8c11" URI="" ORDERINDEX="239" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1739" CREATED="2009-01-28 17:07:04.0" UUID="f9516ee3-c0d5-4d7c-bdb2-18629044c015" URI="" ORDERINDEX="238" PARTOF_ID="1951" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1740" CREATED="2009-01-28 17:07:04.0" UUID="2ddb5919-9b24-4429-b1b5-5b109ce32916" URI="" ORDERINDEX="237" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1741" CREATED="2009-01-28 17:07:04.0" UUID="ceaadd5d-0a56-4297-a583-a887d104bb68" URI="" ORDERINDEX="236" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1742" CREATED="2009-01-28 17:07:04.0" UUID="c2537c9b-5f5f-4e49-975b-9098aa696232" URI="" ORDERINDEX="235" PARTOF_ID="1936" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1743" CREATED="2009-01-28 17:07:04.0" UUID="ec62407d-d0e1-4885-aa58-947ea319ce4c" URI="" ORDERINDEX="234" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1744" CREATED="2009-01-28 17:07:04.0" UUID="3429522d-f0c1-47ee-a2ed-5e7b11027b6a" URI="" ORDERINDEX="233" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1745" CREATED="2009-01-28 17:07:04.0" UUID="ce0b678a-f762-4e81-af58-0bce22604dec" URI="" ORDERINDEX="232" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1746" CREATED="2009-01-28 17:07:04.0" UUID="5de71808-0572-4513-ac0f-f21216132b99" URI="" ORDERINDEX="231" PARTOF_ID="1962" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1747" CREATED="2009-01-28 17:07:04.0" UUID="3cdf4b9f-ab0d-475c-a8ad-abaf50b6bc51" URI="" ORDERINDEX="230" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1748" CREATED="2009-01-28 17:07:04.0" UUID="af7dc765-068d-4748-8dbd-f0dbf606285e" URI="" ORDERINDEX="229" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1749" CREATED="2009-01-28 17:07:04.0" UUID="db3cb12f-d198-47f5-9ccf-da63e5325787" URI="" ORDERINDEX="228" PARTOF_ID="1942" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1750" CREATED="2009-01-28 17:07:04.0" UUID="6828f3aa-613f-413d-b1f5-5f742b3ced2c" URI="" ORDERINDEX="227" PARTOF_ID="1931" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1751" CREATED="2009-01-28 17:07:04.0" UUID="7697395d-bece-4d42-b5a9-af6d7e29875d" URI="" ORDERINDEX="226" PARTOF_ID="1944" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1752" CREATED="2009-01-28 17:07:04.0" UUID="7161a2d8-cb8f-4dc5-9521-44daf5dc0a64" URI="" ORDERINDEX="225" PARTOF_ID="1947" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1753" CREATED="2009-01-28 17:07:04.0" UUID="b69dc332-a200-4185-90d6-56dee024f179" URI="" ORDERINDEX="224" PARTOF_ID="1951" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1754" CREATED="2009-01-28 17:07:04.0" UUID="b839ad86-c11d-4e2b-b94c-5b8e56ec0190" URI="" ORDERINDEX="223" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1755" CREATED="2009-01-28 17:07:04.0" UUID="690bd6d6-1132-4428-8bd4-a260c8b402b5" URI="" ORDERINDEX="222" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1756" CREATED="2009-01-28 17:07:04.0" UUID="eb0ecf71-52c9-420d-8b04-bd5f619a606c" URI="" ORDERINDEX="221" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1757" CREATED="2009-01-28 17:07:04.0" UUID="05eb3ea9-cc10-4704-9b77-17ce57dca797" URI="" ORDERINDEX="220" PARTOF_ID="1952" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1758" CREATED="2009-01-28 17:07:04.0" UUID="09dc1f07-569c-4101-8ff1-0ae1e9046cfe" URI="" ORDERINDEX="219" PARTOF_ID="1944" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1759" CREATED="2009-01-28 17:07:04.0" UUID="722f6cba-f21a-4f4d-8151-173d3377fa04" URI="" ORDERINDEX="218" PARTOF_ID="1951" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1760" CREATED="2009-01-28 17:07:04.0" UUID="c0f1305e-95b1-4501-9bc9-90c5c3b800b5" URI="" ORDERINDEX="217" PARTOF_ID="1950" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1761" CREATED="2009-01-28 17:07:04.0" UUID="815a67da-1a22-45d3-bef3-65333795b509" URI="" ORDERINDEX="216" PARTOF_ID="1938" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1762" CREATED="2009-01-28 17:07:04.0" UUID="a7947714-fb33-4aca-80ce-f418f8b89f55" URI="" ORDERINDEX="215" PARTOF_ID="1957" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1763" CREATED="2009-01-28 17:07:04.0" UUID="ae1a9ce9-8d54-48c8-bdc8-4ad49df5e2b5" URI="" ORDERINDEX="214" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1764" CREATED="2009-01-28 17:07:04.0" UUID="8c815ecb-c0ac-49dc-bf9a-6af9fded206f" URI="" ORDERINDEX="213" PARTOF_ID="1950" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1765" CREATED="2009-01-28 17:07:04.0" UUID="57aa7e14-0e06-45ba-87b1-5f78c022134e" URI="" ORDERINDEX="212" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1766" CREATED="2009-01-28 17:07:04.0" UUID="c39e7ff9-2b52-4e54-82c4-de836ab94f32" URI="" ORDERINDEX="211" PARTOF_ID="1951" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1767" CREATED="2009-01-28 17:07:04.0" UUID="863a2c93-af7d-46fa-b8ec-9b081c972caa" URI="" ORDERINDEX="210" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1768" CREATED="2009-01-28 17:07:04.0" UUID="32708172-de90-418a-8637-1b29ca8ff22b" URI="" ORDERINDEX="209" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1769" CREATED="2009-01-28 17:07:04.0" UUID="5446b13f-0cdd-4f60-9f17-444606f7678d" URI="" ORDERINDEX="208" PARTOF_ID="1944" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1770" CREATED="2009-01-28 17:07:04.0" UUID="6e72dede-e94b-4051-bf96-348add8135e6" URI="" ORDERINDEX="207" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1771" CREATED="2009-01-28 17:07:04.0" UUID="c9c406ee-0747-45b0-bbe7-e3045d468b5d" URI="" ORDERINDEX="206" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1772" CREATED="2009-01-28 17:07:04.0" UUID="16444bc5-a042-4cd8-9d81-0eefd7925894" URI="" ORDERINDEX="205" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1773" CREATED="2009-01-28 17:07:04.0" UUID="9e765dbf-aebb-47af-a193-a849f9daa63b" URI="" ORDERINDEX="204" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1774" CREATED="2009-01-28 17:07:04.0" UUID="33a2472d-d86b-45b1-83c0-e4cd78fb4915" URI="" ORDERINDEX="203" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1775" CREATED="2009-01-28 17:07:04.0" UUID="18f7a5a9-739a-44bd-925c-68609d1c1835" URI="" ORDERINDEX="202" PARTOF_ID="1952" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1776" CREATED="2009-01-28 17:07:04.0" UUID="a9eead79-a85b-462b-a292-c0fb2929a3e5" URI="" ORDERINDEX="201" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1777" CREATED="2009-01-28 17:07:04.0" UUID="e480fd06-ec60-4a0f-81fd-faf832b06715" URI="" ORDERINDEX="200" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1778" CREATED="2009-01-28 17:07:04.0" UUID="51a2af3d-7a01-41a8-be18-7896eaf147ff" URI="" ORDERINDEX="199" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1779" CREATED="2009-01-28 17:07:04.0" UUID="235ff30d-2a25-4e96-b155-0fc0d08ec685" URI="" ORDERINDEX="198" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1780" CREATED="2009-01-28 17:07:04.0" UUID="3864694a-e0d7-40f5-b9db-0eecde047e9e" URI="" ORDERINDEX="197" PARTOF_ID="1929" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1781" CREATED="2009-01-28 17:07:04.0" UUID="307e943a-1e0b-48e8-b4e1-34ebd67a1efe" URI="" ORDERINDEX="196" PARTOF_ID="1930" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1782" CREATED="2009-01-28 17:07:04.0" UUID="836cae07-03f0-4c1e-ac67-86c6f6457ac9" URI="" ORDERINDEX="195" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1783" CREATED="2009-01-28 17:07:04.0" UUID="93ab78d4-4c7e-4316-84f1-4dccbc70d71f" URI="" ORDERINDEX="194" PARTOF_ID="1966" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1784" CREATED="2009-01-28 17:07:04.0" UUID="4e22114e-2990-429d-83af-252d428a11e8" URI="" ORDERINDEX="193" PARTOF_ID="1923" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1785" CREATED="2009-01-28 17:07:04.0" UUID="e6e00b4e-5417-46aa-b2ed-b123e4a94fc7" URI="" ORDERINDEX="192" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1786" CREATED="2009-01-28 17:07:04.0" UUID="37f6aaf2-a6bb-4f4c-a4ad-aa25074babbf" URI="" ORDERINDEX="191" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1787" CREATED="2009-01-28 17:07:04.0" UUID="bda3f9fb-30cf-43fd-8d17-5e4d69545ed5" URI="" ORDERINDEX="190" PARTOF_ID="1934" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1788" CREATED="2009-01-28 17:07:04.0" UUID="460e57fa-9465-47bd-bf6e-c46dd29d6cdd" URI="" ORDERINDEX="189" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1789" CREATED="2009-01-28 17:07:04.0" UUID="4faf248e-8a45-42c8-b5f3-94b34b4e3794" URI="" ORDERINDEX="188" PARTOF_ID="1921" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1790" CREATED="2009-01-28 17:07:04.0" UUID="a742ebff-609b-4168-a85b-1825f4da98b4" URI="" ORDERINDEX="187" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1791" CREATED="2009-01-28 17:07:04.0" UUID="baa26afa-8dac-4a7b-b5b9-fca460ac3958" URI="" ORDERINDEX="186" PARTOF_ID="1923" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1792" CREATED="2009-01-28 17:07:04.0" UUID="8f2551f2-67fa-46fc-8a81-1de160171798" URI="" ORDERINDEX="185" PARTOF_ID="1947" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1793" CREATED="2009-01-28 17:07:04.0" UUID="65c9b84e-dd19-4842-816a-e4e7a4b5143f" URI="" ORDERINDEX="184" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1794" CREATED="2009-01-28 17:07:04.0" UUID="efdb3684-9f82-4d9d-ae83-f262a4156be2" URI="" ORDERINDEX="183" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1795" CREATED="2009-01-28 17:07:04.0" UUID="f089837d-5d85-4e3c-8324-7111ae020b1d" URI="" ORDERINDEX="182" PARTOF_ID="1933" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1796" CREATED="2009-01-28 17:07:04.0" UUID="5f551283-af06-40cb-9f3f-3cccfb39d31b" URI="" ORDERINDEX="181" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1797" CREATED="2009-01-28 17:07:04.0" UUID="e724a05c-c53c-427c-b42c-32ca323d13f9" URI="" ORDERINDEX="180" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1798" CREATED="2009-01-28 17:07:04.0" UUID="36f2a8a1-af75-4dd2-8376-a4535c6bb697" URI="" ORDERINDEX="179" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1799" CREATED="2009-01-28 17:07:04.0" UUID="404795df-e4c2-4c01-944c-2b8f7a900595" URI="" ORDERINDEX="178" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1800" CREATED="2009-01-28 17:07:04.0" UUID="7b7c2db5-aa44-4302-bdec-6556fd74b0b9" URI="" ORDERINDEX="177" PARTOF_ID="1966" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1801" CREATED="2009-01-28 17:07:04.0" UUID="5b8e5984-02da-47b3-b76a-3dec7abb75d4" URI="" ORDERINDEX="176" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1802" CREATED="2009-01-28 17:07:04.0" UUID="7147ccee-4f7c-40b7-a406-63174617fbf8" URI="" ORDERINDEX="175" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1803" CREATED="2009-01-28 17:07:04.0" UUID="108b8834-f38c-478c-9e5a-19e0926baaeb" URI="" ORDERINDEX="174" PARTOF_ID="1920" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1804" CREATED="2009-01-28 17:07:04.0" UUID="1ec3e5c2-bdd8-4656-aa8a-282966667c68" URI="" ORDERINDEX="173" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1805" CREATED="2009-01-28 17:07:04.0" UUID="84255b9c-ebd8-4f25-a18e-fb1e9343d5ba" URI="" ORDERINDEX="172" PARTOF_ID="1921" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1806" CREATED="2009-01-28 17:07:04.0" UUID="37529096-5d47-4926-8682-4fa8311d0ef4" URI="" ORDERINDEX="171" PARTOF_ID="1965" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1807" CREATED="2009-01-28 17:07:04.0" UUID="54e966a4-9a64-451c-9329-e2a45080f365" URI="" ORDERINDEX="170" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1808" CREATED="2009-01-28 17:07:04.0" UUID="67fb45d0-3a51-48ba-875a-7694fb566f28" URI="" ORDERINDEX="169" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1809" CREATED="2009-01-28 17:07:04.0" UUID="bd2d1a58-6e2f-4501-8d94-4b01615cf8d2" URI="" ORDERINDEX="168" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1810" CREATED="2009-01-28 17:07:04.0" UUID="09db7449-0d4a-4aed-911f-f88a5c57f93f" URI="" ORDERINDEX="167" PARTOF_ID="1937" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1811" CREATED="2009-01-28 17:07:04.0" UUID="5f0cfd48-9afd-4704-8e5e-e58b377a5302" URI="" ORDERINDEX="166" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1812" CREATED="2009-01-28 17:07:04.0" UUID="66305c99-ffe4-4ecc-8d2e-8d1efe38c9ea" URI="" ORDERINDEX="165" PARTOF_ID="1958" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1813" CREATED="2009-01-28 17:07:04.0" UUID="44651d37-9ad2-430a-be6b-3e7359f2da8a" URI="" ORDERINDEX="164" PARTOF_ID="1958" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1814" CREATED="2009-01-28 17:07:04.0" UUID="ccc35725-3334-4256-a0be-afc30df943f3" URI="" ORDERINDEX="163" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1815" CREATED="2009-01-28 17:07:04.0" UUID="76604a11-1668-480f-9f29-498ff1b205fa" URI="" ORDERINDEX="162" PARTOF_ID="1923" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1816" CREATED="2009-01-28 17:07:04.0" UUID="edd055d7-76ea-4185-94da-3b44c4e03bd4" URI="" ORDERINDEX="161" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1817" CREATED="2009-01-28 17:07:04.0" UUID="9587540f-c501-47ad-b5bc-48e4c18eede4" URI="" ORDERINDEX="160" PARTOF_ID="1962" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1818" CREATED="2009-01-28 17:07:04.0" UUID="6de5f860-b77b-4a61-bbfe-b6718108cea0" URI="" ORDERINDEX="159" PARTOF_ID="1920" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1819" CREATED="2009-01-28 17:07:04.0" UUID="2288924d-3380-43b4-9787-143953c3d505" URI="" ORDERINDEX="158" PARTOF_ID="1936" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1820" CREATED="2009-01-28 17:07:04.0" UUID="3f0f9e9a-c65f-41c3-9f50-88393d43b48b" URI="" ORDERINDEX="157" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1821" CREATED="2009-01-28 17:07:04.0" UUID="edf5e728-8e45-434d-ad82-50b39e2af896" URI="" ORDERINDEX="156" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1822" CREATED="2009-01-28 17:07:04.0" UUID="54d5b1d5-295a-4206-beaf-f56b1b3385a1" URI="" ORDERINDEX="155" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1823" CREATED="2009-01-28 17:07:04.0" UUID="04ec3382-0431-4430-afe8-1fc1c8ce38da" URI="" ORDERINDEX="154" PARTOF_ID="1958" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1824" CREATED="2009-01-28 17:07:04.0" UUID="2f755c36-e953-4f4a-bf9d-3128ec03ace8" URI="" ORDERINDEX="153" PARTOF_ID="1967" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1825" CREATED="2009-01-28 17:07:04.0" UUID="104ef871-3d5a-4e22-8ab3-05a4adec4641" URI="" ORDERINDEX="152" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1826" CREATED="2009-01-28 17:07:04.0" UUID="234d24aa-963d-441e-afdc-a1cca6e85787" URI="" ORDERINDEX="151" PARTOF_ID="1966" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1827" CREATED="2009-01-28 17:07:04.0" UUID="da4cce9a-439b-4cc4-8073-85dc75bae169" URI="" ORDERINDEX="150" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1828" CREATED="2009-01-28 17:07:04.0" UUID="dccd00ae-9112-4c80-9591-09bd7ff7d4fd" URI="" ORDERINDEX="149" PARTOF_ID="1961" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1829" CREATED="2009-01-28 17:07:04.0" UUID="12c3e2c6-432e-4087-bfe2-07c29df03c47" URI="" ORDERINDEX="148" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1830" CREATED="2009-01-28 17:07:04.0" UUID="aadc5ca0-cf8e-48e5-a12e-8d34e6c7e4cb" URI="" ORDERINDEX="147" PARTOF_ID="1938" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1831" CREATED="2009-01-28 17:07:04.0" UUID="96886299-b8f5-4a44-abd7-3ee47c68bbe3" URI="" ORDERINDEX="146" PARTOF_ID="1952" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1832" CREATED="2009-01-28 17:07:04.0" UUID="c6582f9f-a0bb-4f76-a8c3-0562b78e723d" URI="" ORDERINDEX="145" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1833" CREATED="2009-01-28 17:07:04.0" UUID="e37f35fc-53df-41f6-a510-af9cefd5e921" URI="" ORDERINDEX="144" PARTOF_ID="1935" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1834" CREATED="2009-01-28 17:07:04.0" UUID="546fc561-10b0-41f4-995f-cc1fe9fd8164" URI="" ORDERINDEX="143" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1835" CREATED="2009-01-28 17:07:04.0" UUID="c755ce8e-3ad3-4e0e-bbff-7d108a933c58" URI="" ORDERINDEX="142" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1836" CREATED="2009-01-28 17:07:04.0" UUID="8068a150-c71c-4e67-9e26-70c714bf6615" URI="" ORDERINDEX="141" PARTOF_ID="1923" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1837" CREATED="2009-01-28 17:07:04.0" UUID="bd243fa3-cd56-45c7-a445-1553e6e5e14d" URI="" ORDERINDEX="140" PARTOF_ID="1923" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1838" CREATED="2009-01-28 17:07:04.0" UUID="91aaed46-a4a9-47dd-9bb7-8d254b3963cb" URI="" ORDERINDEX="139" PARTOF_ID="1965" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1839" CREATED="2009-01-28 17:07:04.0" UUID="c8f06fd3-616a-4d44-b57e-0a49a4d4c609" URI="" ORDERINDEX="138" PARTOF_ID="1936" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1840" CREATED="2009-01-28 17:07:04.0" UUID="da2f536b-6104-40b6-b198-b803118a1314" URI="" ORDERINDEX="137" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1841" CREATED="2009-01-28 17:07:04.0" UUID="3a02ef4b-f5df-4bd4-93c5-2ec4a24a8852" URI="" ORDERINDEX="136" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1842" CREATED="2009-01-28 17:07:04.0" UUID="da98e966-4250-46ac-8624-c91dc05338dc" URI="" ORDERINDEX="135" PARTOF_ID="1930" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1843" CREATED="2009-01-28 17:07:04.0" UUID="792e48a0-9b18-487a-b6da-33cbbb265873" URI="" ORDERINDEX="134" PARTOF_ID="1961" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1844" CREATED="2009-01-28 17:07:04.0" UUID="df0da18b-bb19-4e4a-a0af-eab75abde998" URI="" ORDERINDEX="133" PARTOF_ID="1928" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1845" CREATED="2009-01-28 17:07:04.0" UUID="62c845f8-3d65-413b-a311-5bc9d6789a03" URI="" ORDERINDEX="132" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1846" CREATED="2009-01-28 17:07:04.0" UUID="df168714-503f-4fd9-8813-01f23417c0c2" URI="" ORDERINDEX="131" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1847" CREATED="2009-01-28 17:07:04.0" UUID="03e4f2d6-3b1b-4b0c-8d64-ac81e02d6f1f" URI="" ORDERINDEX="130" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1848" CREATED="2009-01-28 17:07:04.0" UUID="8e7961af-b0bd-4959-8084-917e0e8e9b9a" URI="" ORDERINDEX="129" PARTOF_ID="1920" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1849" CREATED="2009-01-28 17:07:04.0" UUID="c0d9eb53-dccf-4963-b0d7-49c93cc9061b" URI="" ORDERINDEX="128" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1850" CREATED="2009-01-28 17:07:04.0" UUID="f17f271c-f95b-4db9-aa1f-31db1b99d79c" URI="" ORDERINDEX="127" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1851" CREATED="2009-01-28 17:07:04.0" UUID="7f8d9b4d-a1d3-4b74-9fa9-de45fd154db4" URI="" ORDERINDEX="126" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1852" CREATED="2009-01-28 17:07:04.0" UUID="e626ea99-8e46-49c6-8c1a-96b234dffd47" URI="" ORDERINDEX="125" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1853" CREATED="2009-01-28 17:07:04.0" UUID="e9be3140-41ed-4f3b-85d2-883bee63b4a7" URI="" ORDERINDEX="124" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1854" CREATED="2009-01-28 17:07:04.0" UUID="4b95d239-1c7d-45bd-87d0-c2db25f4d0b8" URI="" ORDERINDEX="123" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1855" CREATED="2009-01-28 17:07:04.0" UUID="8d75b680-9d66-4e82-b20a-9435ac4eeab5" URI="" ORDERINDEX="122" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1856" CREATED="2009-01-28 17:07:04.0" UUID="357360e8-2631-4f93-bc07-71e589cab7bb" URI="" ORDERINDEX="121" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1857" CREATED="2009-01-28 17:07:04.0" UUID="719429fb-8f31-4bec-875e-ca5df76490ad" URI="" ORDERINDEX="120" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1858" CREATED="2009-01-28 17:07:04.0" UUID="16977fc9-9309-4609-9776-13df4a12282e" URI="" ORDERINDEX="119" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1859" CREATED="2009-01-28 17:07:04.0" UUID="273e6b4f-22cf-442e-a19d-c0f9b1859e83" URI="" ORDERINDEX="118" PARTOF_ID="1946" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1860" CREATED="2009-01-28 17:07:04.0" UUID="f92224d9-1754-4422-853e-e2bb5d981612" URI="" ORDERINDEX="117" PARTOF_ID="1958" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1861" CREATED="2009-01-28 17:07:04.0" UUID="e2db82b4-45b7-4800-bc9c-708ef616495b" URI="" ORDERINDEX="116" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1862" CREATED="2009-01-28 17:07:04.0" UUID="6d7a5e91-765e-4edd-8c25-71052cb0dcda" URI="" ORDERINDEX="115" PARTOF_ID="1942" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1863" CREATED="2009-01-28 17:07:04.0" UUID="efb2c2c5-c71a-4214-99e1-ff4b1ad68980" URI="" ORDERINDEX="114" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1864" CREATED="2009-01-28 17:07:04.0" UUID="d569d6e0-5006-4636-b6f6-094e29dd8c52" URI="" ORDERINDEX="113" PARTOF_ID="1927" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1865" CREATED="2009-01-28 17:07:04.0" UUID="23e88955-3ee2-4d42-93ec-bd21f271e491" URI="" ORDERINDEX="112" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1866" CREATED="2009-01-28 17:07:04.0" UUID="e34ba389-b603-4590-bd11-95e3715456e2" URI="" ORDERINDEX="111" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1867" CREATED="2009-01-28 17:07:04.0" UUID="0e875804-b2e6-4dbe-941d-927d3539dd12" URI="" ORDERINDEX="110" PARTOF_ID="1919" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1868" CREATED="2009-01-28 17:07:04.0" UUID="50e0c0a8-d601-48a5-b6f7-ac1972a2bd8e" URI="" ORDERINDEX="109" PARTOF_ID="1919" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1869" CREATED="2009-01-28 17:07:04.0" UUID="897e8a36-1201-44dc-aeea-7e11ce4599cb" URI="" ORDERINDEX="108" PARTOF_ID="1919" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1870" CREATED="2009-01-28 17:07:04.0" UUID="223be2d6-a7bb-4616-b0b6-3656cdd936c7" URI="" ORDERINDEX="107" PARTOF_ID="1919" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1871" CREATED="2009-01-28 17:07:04.0" UUID="72e32463-9fd7-40d4-8c32-5901cb7a8425" URI="" ORDERINDEX="106" PARTOF_ID="1919" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1872" CREATED="2009-01-28 17:07:04.0" UUID="66be1451-ffa9-4c71-84ae-fa6ff6c52df0" URI="" ORDERINDEX="105" PARTOF_ID="1959" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1873" CREATED="2009-01-28 17:07:04.0" UUID="6ca10d3d-50fe-4eb0-9027-4638178c7275" URI="" ORDERINDEX="104" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1874" CREATED="2009-01-28 17:07:04.0" UUID="ecc89b7e-7425-4719-8704-f48a171fc5a9" URI="" ORDERINDEX="103" PARTOF_ID="1952" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1875" CREATED="2009-01-28 17:07:04.0" UUID="6e961fee-a1f9-43f8-bd2c-9d7cefc0f3af" URI="" ORDERINDEX="102" PARTOF_ID="1932" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1876" CREATED="2009-01-28 17:07:04.0" UUID="83512b5e-f591-4e70-9138-865ad9684475" URI="" ORDERINDEX="101" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1877" CREATED="2009-01-28 17:07:04.0" UUID="fb4ab229-0054-43eb-a897-ef9b78c3c006" URI="" ORDERINDEX="100" PARTOF_ID="1955" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1878" CREATED="2009-01-28 17:07:04.0" UUID="e615e7e6-5b64-4903-b794-816baab689b3" URI="" ORDERINDEX="99" PARTOF_ID="1941" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1879" CREATED="2009-01-28 17:07:04.0" UUID="5c993136-e6e8-4cb7-8628-5a3dc72e685d" URI="" ORDERINDEX="98" PARTOF_ID="1920" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1880" CREATED="2009-01-28 17:07:04.0" UUID="e4c75529-237f-4e74-bf7d-31888c35b40c" URI="" ORDERINDEX="97" PARTOF_ID="1923" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1881" CREATED="2009-01-28 17:07:04.0" UUID="3c3fcc8a-9ea9-45c4-b929-b4cd3a269171" URI="" ORDERINDEX="96" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1882" CREATED="2009-01-28 17:07:04.0" UUID="7c015a65-7cd0-49f5-8cc8-0832b56edf61" URI="" ORDERINDEX="95" PARTOF_ID="1963" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1883" CREATED="2009-01-28 17:07:04.0" UUID="dc3ff939-0271-40f0-b77f-c3dc911e8d5b" URI="" ORDERINDEX="94" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1884" CREATED="2009-01-28 17:07:04.0" UUID="020043d9-33ee-4ed2-8411-7e744a28a8d9" URI="" ORDERINDEX="93" PARTOF_ID="1940" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1885" CREATED="2009-01-28 17:07:04.0" UUID="948264a0-fd65-4423-8a0a-2bf063a3995d" URI="" ORDERINDEX="92" PARTOF_ID="1966" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1886" CREATED="2009-01-28 17:07:04.0" UUID="a58940b2-d7e9-4a99-b255-d3eee930f2b4" URI="" ORDERINDEX="91" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1887" CREATED="2009-01-28 17:07:04.0" UUID="6ddb07e2-e227-4111-8138-7d321530f0b2" URI="" ORDERINDEX="90" PARTOF_ID="1960" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1888" CREATED="2009-01-28 17:07:04.0" UUID="6b8ee963-f7f6-4173-bda2-0dc1492edac1" URI="" ORDERINDEX="89" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1889" CREATED="2009-01-28 17:07:04.0" UUID="a17bc439-3ee0-4bd0-83b8-8ec975bebb60" URI="" ORDERINDEX="88" PARTOF_ID="1965" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1890" CREATED="2009-01-28 17:07:04.0" UUID="d9ebede1-ebe7-4b50-bb95-315e93fa7802" URI="" ORDERINDEX="87" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1891" CREATED="2009-01-28 17:07:04.0" UUID="4d176728-ada1-41f3-8b2c-123b8bf133e4" URI="" ORDERINDEX="86" PARTOF_ID="1961" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1892" CREATED="2009-01-28 17:07:04.0" UUID="2f10ca0f-92bc-465b-a7da-dabd94f92e2a" URI="" ORDERINDEX="85" PARTOF_ID="1966" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1893" CREATED="2009-01-28 17:07:04.0" UUID="f7754519-6799-4dd8-bccf-d48370c6dc30" URI="" ORDERINDEX="84" PARTOF_ID="1938" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1894" CREATED="2009-01-28 17:07:04.0" UUID="bac86590-6107-4bb5-b947-780a918b19a1" URI="" ORDERINDEX="83" PARTOF_ID="1943" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1895" CREATED="2009-01-28 17:07:04.0" UUID="dba9e336-a2b8-4332-baff-ef6fb592a30e" URI="" ORDERINDEX="82" PARTOF_ID="1917" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1896" CREATED="2009-01-28 17:07:04.0" UUID="72a08d3b-d333-4cb3-841e-c339a1e15172" URI="" ORDERINDEX="81" PARTOF_ID="1933" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1897" CREATED="2009-01-28 17:07:04.0" UUID="c1a294af-54b1-43ac-8699-49ff1a166a08" URI="" ORDERINDEX="80" PARTOF_ID="1954" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1898" CREATED="2009-01-28 17:07:04.0" UUID="747ebd42-2c2a-4db5-8a70-bc1d7a3026ab" URI="" ORDERINDEX="79" PARTOF_ID="1922" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1899" CREATED="2009-01-28 17:07:04.0" UUID="ebb5d419-66f5-47d8-aa84-7d986a3d9dc8" URI="" ORDERINDEX="78" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1900" CREATED="2009-01-28 17:07:04.0" UUID="9d3579a2-8bc6-4c72-904e-2961a6f84de1" URI="" ORDERINDEX="77" PARTOF_ID="1927" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1901" CREATED="2009-01-28 17:07:04.0" UUID="4f147ab5-9667-4406-a537-4ded4c4ccd63" URI="" ORDERINDEX="76" PARTOF_ID="1916" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1902" CREATED="2009-01-28 17:07:04.0" UUID="bac38903-3c49-4004-8566-50e684196b47" URI="" ORDERINDEX="75" PARTOF_ID="1956" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1903" CREATED="2009-01-28 17:07:04.0" UUID="6af14e8b-2e1e-4012-980c-9bfe59ddb59d" URI="" ORDERINDEX="74" PARTOF_ID="1942" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1904" CREATED="2009-01-28 17:07:04.0" UUID="fe4be234-5bbb-48ee-87c5-f0d893a34889" URI="" ORDERINDEX="73" PARTOF_ID="1951" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1905" CREATED="2009-01-28 17:07:04.0" UUID="50b79b3c-41b2-4be3-a1cd-e7d360abfbec" URI="" ORDERINDEX="72" PARTOF_ID="1933" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1906" CREATED="2009-01-28 17:07:04.0" UUID="8cfc1722-e1e8-49d3-95a7-9879de6de490" URI="" ORDERINDEX="71" PARTOF_ID="1952" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1907" CREATED="2009-01-28 17:07:04.0" UUID="73755400-0105-416c-b2f4-b10e3c55b0ec" URI="" ORDERINDEX="70" PARTOF_ID="1962" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1908" CREATED="2009-01-28 17:07:04.0" UUID="4f890bf8-36e8-444a-92db-59976740ac61" URI="" ORDERINDEX="69" PARTOF_ID="1953" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1909" CREATED="2009-01-28 17:07:04.0" UUID="4fdd8662-7635-4401-94e5-6a457a8593bb" URI="" ORDERINDEX="68" PARTOF_ID="1964" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1910" CREATED="2009-01-28 17:07:04.0" UUID="e097b877-517c-4308-9f4c-a6bfa928238d" URI="" ORDERINDEX="67" PARTOF_ID="1925" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1911" CREATED="2009-01-28 17:07:04.0" UUID="2cac2091-77d0-4a0d-a202-609cb64b096b" URI="" ORDERINDEX="66" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1912" CREATED="2009-01-28 17:07:04.0" UUID="707c485f-dcad-41a5-bc8b-7c81d5249c9f" URI="" ORDERINDEX="65" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1913" CREATED="2009-01-28 17:07:04.0" UUID="00ae742b-f8b1-4f24-8dd7-57c157676734" URI="" ORDERINDEX="64" PARTOF_ID="1918" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1914" CREATED="2009-01-28 17:07:04.0" UUID="122977c7-d5e3-4d26-a658-162ce805d1a8" URI="" ORDERINDEX="63" PARTOF_ID="1948" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1915" CREATED="2009-01-28 17:07:04.0" UUID="c31dadb8-0cda-4a6a-b7ec-2787d8a25c67" URI="" ORDERINDEX="62" PARTOF_ID="1932" VOCABULARY_ID="17" LEVEL_ID="904"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1916" CREATED="2009-01-28 17:07:04.0" UUID="0670bfb2-5bb2-4bc5-8486-1eacc85a87b0" URI="" ORDERINDEX="61" PARTOF_ID="1968" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1917" CREATED="2009-01-28 17:07:04.0" UUID="09714b3f-a0d1-479e-914e-3a207c9e1b19" URI="" ORDERINDEX="60" PARTOF_ID="1968" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1918" CREATED="2009-01-28 17:07:04.0" UUID="87964033-5404-42ac-8f18-09baa388c14e" URI="" ORDERINDEX="59" PARTOF_ID="1969" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1919" CREATED="2009-01-28 17:07:04.0" UUID="85067b09-9bdf-4cb1-9ec6-95cf884aba63" URI="" ORDERINDEX="58" PARTOF_ID="1969" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1920" CREATED="2009-01-28 17:07:04.0" UUID="f25135c1-f77c-46a7-ac4f-7bad9446cfef" URI="" ORDERINDEX="57" PARTOF_ID="1969" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1921" CREATED="2009-01-28 17:07:04.0" UUID="97df9967-f9d0-4153-ab27-83abf7e508fd" URI="" ORDERINDEX="56" PARTOF_ID="1969" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1922" CREATED="2009-01-28 17:07:04.0" UUID="b5ef1405-89f6-455b-adb1-01dfbff84663" URI="" ORDERINDEX="55" PARTOF_ID="1969" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1923" CREATED="2009-01-28 17:07:04.0" UUID="38128f22-3908-44aa-8c5d-cdc9570f29f0" URI="" ORDERINDEX="54" PARTOF_ID="1969" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1924" CREATED="2009-01-28 17:07:04.0" UUID="a4243f05-52b0-4c2f-8e2c-7650a1c5d8b0" URI="" ORDERINDEX="53" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1925" CREATED="2009-01-28 17:07:04.0" UUID="f1911c44-8925-4a8a-b25e-8d2379ac7195" URI="" ORDERINDEX="52" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1926" CREATED="2009-01-28 17:07:04.0" UUID="8c7f2488-5b40-414e-b8de-e854755c69c4" URI="" ORDERINDEX="51" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1927" CREATED="2009-01-28 17:07:04.0" UUID="32e8f7dd-76be-480e-8ff9-32ffd0be20eb" URI="" ORDERINDEX="50" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1928" CREATED="2009-01-28 17:07:04.0" UUID="b6ed282f-76d1-44e3-aafb-2025fbaa001f" URI="" ORDERINDEX="49" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1929" CREATED="2009-01-28 17:07:04.0" UUID="617ded5e-6b96-487a-b706-3fffc81104d9" URI="" ORDERINDEX="48" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1930" CREATED="2009-01-28 17:07:04.0" UUID="d264452e-995b-4e23-a11e-b55b22e43f19" URI="" ORDERINDEX="47" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1931" CREATED="2009-01-28 17:07:04.0" UUID="56674a86-81bd-4bba-90a0-a73b95ca9a0a" URI="" ORDERINDEX="46" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1932" CREATED="2009-01-28 17:07:04.0" UUID="519b890b-6b7d-4bfe-8112-6a80bd55102b" URI="" ORDERINDEX="45" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1933" CREATED="2009-01-28 17:07:04.0" UUID="09bc05d8-badb-4788-b1d8-47bd16fb475b" URI="" ORDERINDEX="44" PARTOF_ID="1970" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1934" CREATED="2009-01-28 17:07:04.0" UUID="ee23fe88-8ee2-47bf-a628-8f88a6e134e0" URI="" ORDERINDEX="43" PARTOF_ID="1971" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1935" CREATED="2009-01-28 17:07:04.0" UUID="6a20ac07-161d-410c-9bca-87be8392306d" URI="" ORDERINDEX="42" PARTOF_ID="1971" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1936" CREATED="2009-01-28 17:07:04.0" UUID="aa33248e-2a35-443c-923a-bf6a813fa9f7" URI="" ORDERINDEX="41" PARTOF_ID="1971" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1937" CREATED="2009-01-28 17:07:04.0" UUID="9f38ea6f-8f82-4697-9603-7877865caaac" URI="" ORDERINDEX="40" PARTOF_ID="1971" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1938" CREATED="2009-01-28 17:07:04.0" UUID="cfc163fb-54e5-48a7-ab14-cc982323f0c5" URI="" ORDERINDEX="39" PARTOF_ID="1972" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1939" CREATED="2009-01-28 17:07:04.0" UUID="37cc7b35-a580-47a2-aedf-bd06a5afe8e5" URI="" ORDERINDEX="38" PARTOF_ID="1972" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1940" CREATED="2009-01-28 17:07:04.0" UUID="173e9075-85c9-433d-9115-dc87d61d21f4" URI="" ORDERINDEX="37" PARTOF_ID="1973" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1941" CREATED="2009-01-28 17:07:04.0" UUID="07cd4677-f025-4bd3-80f6-7762056740ba" URI="" ORDERINDEX="36" PARTOF_ID="1973" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1942" CREATED="2009-01-28 17:07:04.0" UUID="4739866e-3919-4d76-875e-585d45be8c88" URI="" ORDERINDEX="35" PARTOF_ID="1973" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1943" CREATED="2009-01-28 17:07:04.0" UUID="7ceb3526-3fe2-4d4b-8b7c-e0a267b1a9a0" URI="" ORDERINDEX="34" PARTOF_ID="1973" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1944" CREATED="2009-01-28 17:07:04.0" UUID="a883b11e-7ec4-486d-8ee3-2844a0bf1535" URI="" ORDERINDEX="33" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1945" CREATED="2009-01-28 17:07:04.0" UUID="3dfa2c8d-5c09-44b1-8ee9-c5b0dad3c56f" URI="" ORDERINDEX="32" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1946" CREATED="2009-01-28 17:07:04.0" UUID="16183741-4d45-48f4-a367-710b6ce82fee" URI="" ORDERINDEX="31" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1947" CREATED="2009-01-28 17:07:04.0" UUID="4b35ae1c-4f54-4818-a4c5-8323a3aea5fc" URI="" ORDERINDEX="30" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1948" CREATED="2009-01-28 17:07:04.0" UUID="a8c5b44e-21ec-4d40-b847-cd1884968c92" URI="" ORDERINDEX="29" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1949" CREATED="2009-01-28 17:07:04.0" UUID="f998eeb4-b105-4875-ae32-0de41cf389e4" URI="" ORDERINDEX="28" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1950" CREATED="2009-01-28 17:07:04.0" UUID="0cd59844-44e3-430c-9986-49edd1c338be" URI="" ORDERINDEX="27" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1951" CREATED="2009-01-28 17:07:04.0" UUID="ff2bb4b1-4190-4f04-b556-7c64bed0140a" URI="" ORDERINDEX="26" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1952" CREATED="2009-01-28 17:07:04.0" UUID="6692581b-fa7a-4b13-ae39-b1a673d0b252" URI="" ORDERINDEX="25" PARTOF_ID="1974" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1953" CREATED="2009-01-28 17:07:04.0" UUID="b68c6158-96ff-4ef9-8fe6-d27cc4809d25" URI="" ORDERINDEX="24" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1954" CREATED="2009-01-28 17:07:04.0" UUID="06f367c2-e657-4894-8427-d164343dbd75" URI="" ORDERINDEX="23" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1955" CREATED="2009-01-28 17:07:04.0" UUID="a1081898-e631-40b5-a225-fc24809adf8c" URI="" ORDERINDEX="22" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1956" CREATED="2009-01-28 17:07:04.0" UUID="e4f41a32-a056-4628-94f2-23b3ad821135" URI="" ORDERINDEX="21" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1957" CREATED="2009-01-28 17:07:04.0" UUID="4b2e7043-640e-4bf4-8436-7436ed1f7137" URI="" ORDERINDEX="20" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1958" CREATED="2009-01-28 17:07:04.0" UUID="b49bf097-5b36-47ff-8d8f-640bb14bdab2" URI="" ORDERINDEX="19" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1959" CREATED="2009-01-28 17:07:04.0" UUID="1f29eaea-ef04-40ee-96bd-f2f433c78c8c" URI="" ORDERINDEX="18" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1960" CREATED="2009-01-28 17:07:04.0" UUID="931164ad-ec16-4133-afab-bdef25d67636" URI="" ORDERINDEX="17" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1961" CREATED="2009-01-28 17:07:04.0" UUID="521ba4f9-0d74-4ec0-addc-fab9d72dca07" URI="" ORDERINDEX="16" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1962" CREATED="2009-01-28 17:07:04.0" UUID="0a4bf6d1-52d6-4eff-b5d9-0b3c270291f1" URI="" ORDERINDEX="15" PARTOF_ID="1975" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1963" CREATED="2009-01-28 17:07:04.0" UUID="4f1abfb5-b166-47cf-a5bb-b0e6588f5389" URI="" ORDERINDEX="14" PARTOF_ID="1976" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1964" CREATED="2009-01-28 17:07:04.0" UUID="5f3059a8-a4fc-434c-b6f2-292919967553" URI="" ORDERINDEX="13" PARTOF_ID="1976" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1965" CREATED="2009-01-28 17:07:04.0" UUID="6e980d6d-5748-4535-ad7a-95d35542910d" URI="" ORDERINDEX="12" PARTOF_ID="1976" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1966" CREATED="2009-01-28 17:07:04.0" UUID="d292f237-da3d-408b-93a1-3257a8c80b97" URI="" ORDERINDEX="11" PARTOF_ID="1976" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1967" CREATED="2009-01-28 17:07:04.0" UUID="22524ba2-6e57-4b71-89ab-89fc50fba6b4" URI="" ORDERINDEX="10" PARTOF_ID="1976" VOCABULARY_ID="17" LEVEL_ID="905"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1968" CREATED="2009-01-28 17:07:04.0" UUID="791b3aa0-54dd-4bed-9b68-56b4680aad0c" URI="" ORDERINDEX="9" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1969" CREATED="2009-01-28 17:07:04.0" UUID="6310b3ba-96f4-4855-bb5b-326e7af188ea" URI="" ORDERINDEX="8" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1970" CREATED="2009-01-28 17:07:04.0" UUID="2757e726-d897-4546-93bd-7951d203bf6f" URI="" ORDERINDEX="7" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1971" CREATED="2009-01-28 17:07:04.0" UUID="d7fa4cbf-b5cf-4d0a-bc3c-db8706657dfd" URI="" ORDERINDEX="6" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1972" CREATED="2009-01-28 17:07:04.0" UUID="1319898d-e0f4-4d95-a043-ba838ee7c652" URI="" ORDERINDEX="5" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1973" CREATED="2009-01-28 17:07:04.0" UUID="3ed00d6a-a186-48ff-bed2-860c9481ff7d" URI="" ORDERINDEX="4" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1974" CREATED="2009-01-28 17:07:04.0" UUID="e63e4a1a-b51b-4efa-bf99-c4a389d4aab3" URI="" ORDERINDEX="3" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1975" CREATED="2009-01-28 17:07:04.0" UUID="9444016a-b334-4772-8795-ed4019552087" URI="" ORDERINDEX="2" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="TdwgArea" ID="1976" CREATED="2009-01-28 17:07:04.0" UUID="e860871c-3a14-4ef2-9367-bbd92586c95b" URI="" ORDERINDEX="1" VOCABULARY_ID="17" LEVEL_ID="906"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1977" CREATED="2009-01-28 17:07:06.0" UUID="c3ee7048-15b7-4be1-b687-9ce9c1a669d6" URI="" ORDERINDEX="18" DEFAULTCOLOR="77ed6f" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1978" CREATED="2009-01-28 17:07:06.0" UUID="fac8c347-8262-44a1-b0a4-db4de451c021" URI="" ORDERINDEX="17" DEFAULTCOLOR="555555" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1979" CREATED="2009-01-28 17:07:06.0" UUID="826239f7-45b7-42b5-857c-c1f852cfad6b" URI="" ORDERINDEX="16" DEFAULTCOLOR="ffed3f" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1980" CREATED="2009-01-28 17:07:06.0" UUID="e191e89a-a751-4b0c-b883-7f1de70915c9" URI="" ORDERINDEX="15" DEFAULTCOLOR="ff0d6f" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1981" CREATED="2009-01-28 17:07:06.0" UUID="42946bd6-9c22-45ad-a910-7427e8f60bfd" URI="" ORDERINDEX="14" DEFAULTCOLOR="ffed61" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1982" CREATED="2009-01-28 17:07:06.0" UUID="da159544-b0dd-4599-a9c9-640826af8c17" URI="" ORDERINDEX="13" DEFAULTCOLOR="afed6f" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1983" CREATED="2009-01-28 17:07:06.0" UUID="0c54761e-4887-4788-9dfa-7190c88746e3" URI="" ORDERINDEX="12" DEFAULTCOLOR="ffed6f" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1984" CREATED="2009-01-28 17:07:06.0" UUID="2522c527-e488-45d4-87df-a5a5ef0fdbbd" URI="" ORDERINDEX="11" DEFAULTCOLOR="ccebc5" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1985" CREATED="2009-01-28 17:07:06.0" UUID="83eb0aa0-1a45-495a-a3ca-bf6958b74366" URI="" ORDERINDEX="10" DEFAULTCOLOR="bc80bd" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1986" CREATED="2009-01-28 17:07:06.0" UUID="643cf9d1-a5f1-4622-9837-82ef961e880b" URI="" ORDERINDEX="9" DEFAULTCOLOR="d9d9d9" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1987" CREATED="2009-01-28 17:07:06.0" UUID="b47f1679-0d0c-4ea7-a2e4-80709ea791c6" URI="" ORDERINDEX="8" DEFAULTCOLOR="fccde5" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1988" CREATED="2009-01-28 17:07:06.0" UUID="9eb99fe6-59e2-4445-8e6a-478365bd0fa9" URI="" ORDERINDEX="7" DEFAULTCOLOR="b3de69" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1989" CREATED="2009-01-28 17:07:06.0" UUID="4ba212ef-041e-418d-9d43-2ebb191b61d8" URI="" ORDERINDEX="6" DEFAULTCOLOR="fdb462" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1990" CREATED="2009-01-28 17:07:06.0" UUID="310373bf-7df4-4d02-8cb3-bcc7448805fc" URI="" ORDERINDEX="5" DEFAULTCOLOR="80b1d3" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1991" CREATED="2009-01-28 17:07:06.0" UUID="8ad9e9df-49cd-4b6a-880b-51ec4de4ce32" URI="" ORDERINDEX="4" DEFAULTCOLOR="fb8072" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1992" CREATED="2009-01-28 17:07:06.0" UUID="925662c1-bb10-459a-8c53-da5a738ac770" URI="" ORDERINDEX="3" DEFAULTCOLOR="bebada" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1993" CREATED="2009-01-28 17:07:06.0" UUID="ddeac4f2-d8fa-43b8-ad7e-ca13abdd32c7" URI="" ORDERINDEX="2" DEFAULTCOLOR="ffffb3" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="PresenceTerm" ID="1994" CREATED="2009-01-28 17:07:06.0" UUID="cef81d25-501c-48d8-bbea-542ec50de2c2" URI="" ORDERINDEX="1" DEFAULTCOLOR="8dd3c7" VOCABULARY_ID="18"/>\r
-  <DEFINEDTERMBASE DTYPE="AbsenceTerm" ID="1995" CREATED="2009-01-28 17:07:06.0" UUID="59709861-f7d9-41f9-bb21-92559cedd598" URI="" ORDERINDEX="1" DEFAULTCOLOR="FFFFFF" VOCABULARY_ID="19"/>\r
-  <DEFINEDTERMBASE DTYPE="Sex" ID="1996" CREATED="2009-01-28 17:07:06.0" UUID="b4cfe0cb-b35c-4f97-9b6b-2b3c096ea2c0" URI="" ORDERINDEX="2" VOCABULARY_ID="20"/>\r
-  <DEFINEDTERMBASE DTYPE="Sex" ID="1997" CREATED="2009-01-28 17:07:06.0" UUID="600a5212-cc02-431d-8a80-2bf595bd1eab" URI="" ORDERINDEX="1" VOCABULARY_ID="20"/>\r
-  <DEFINEDTERMBASE DTYPE="DerivationEventType" ID="1998" CREATED="2009-01-28 17:07:06.0" UUID="1cb2bd40-5c9c-459b-89c7-4d9c2fca7432" URI="" VOCABULARY_ID="21"/>\r
-  <DEFINEDTERMBASE DTYPE="DerivationEventType" ID="1999" CREATED="2009-01-28 17:07:06.0" UUID="661e7292-6bcb-495d-a3cc-140024ae3471" URI="" VOCABULARY_ID="21"/>\r
-  <DEFINEDTERMBASE DTYPE="DerivationEventType" ID="2000" CREATED="2009-01-28 17:07:06.0" UUID="9dc1df08-1f31-4008-a4e2-1ddf7c9115da" URI="" VOCABULARY_ID="21"/>\r
-  <DEFINEDTERMBASE DTYPE="DerivationEventType" ID="2001" CREATED="2009-01-28 17:07:06.0" UUID="f9f957b6-88c0-4531-9a7f-b5fb1c9daf66" URI="" VOCABULARY_ID="21"/>\r
-  <DEFINEDTERMBASE DTYPE="DerivationEventType" ID="2002" CREATED="2009-01-28 17:07:06.0" UUID="aa79baac-165d-47ad-9e80-52a03776d8ae" URI="" VOCABULARY_ID="21"/>\r
-  <DEFINEDTERMBASE DTYPE="DerivationEventType" ID="2003" CREATED="2009-01-28 17:07:06.0" UUID="8f54c7cc-eb5e-4652-a6e4-3a4ba429b327" URI="" VOCABULARY_ID="21"/>\r
-  <DEFINEDTERMBASE DTYPE="DerivationEventType" ID="2004" CREATED="2009-01-28 17:07:06.0" UUID="3c7c0929-0528-493e-9e5f-15e0d9585fa1" URI="" VOCABULARY_ID="21"/>\r
-  <DEFINEDTERMBASE DTYPE="DerivationEventType" ID="2005" CREATED="2009-01-28 17:07:06.0" UUID="a4a8e4ce-0e58-462a-be67-a7f567d96da1" URI="" VOCABULARY_ID="21"/>\r
-  <DEFINEDTERMBASE DTYPE="StatisticalMeasure" ID="2006" CREATED="2009-01-28 17:07:06.0" UUID="8955815b-7d21-4149-b1b7-d37af3c2046c" URI="" VOCABULARY_ID="24"/>\r
-  <DEFINEDTERMBASE DTYPE="StatisticalMeasure" ID="2007" CREATED="2009-01-28 17:07:06.0" UUID="571f86ca-a44c-4484-9981-11fd82138a7a" URI="" VOCABULARY_ID="24"/>\r
-  <DEFINEDTERMBASE DTYPE="StatisticalMeasure" ID="2008" CREATED="2009-01-28 17:07:06.0" UUID="264c3979-d551-4795-9e25-24c6b533fbb1" URI="" VOCABULARY_ID="24"/>\r
-  <DEFINEDTERMBASE DTYPE="StatisticalMeasure" ID="2009" CREATED="2009-01-28 17:07:06.0" UUID="9eff88ba-b8e7-4631-9e55-a50bd16ba79d" URI="" VOCABULARY_ID="24"/>\r
-  <DEFINEDTERMBASE DTYPE="StatisticalMeasure" ID="2010" CREATED="2009-01-28 17:07:06.0" UUID="9ee4397e-3496-4fe1-9114-afc7d7bdc652" URI="" VOCABULARY_ID="24"/>\r
-  <DEFINEDTERMBASE DTYPE="StatisticalMeasure" ID="2011" CREATED="2009-01-28 17:07:06.0" UUID="8372a89a-35ad-4755-a881-7edae6c37c8f" URI="" VOCABULARY_ID="24"/>\r
-  <DEFINEDTERMBASE DTYPE="StatisticalMeasure" ID="2012" CREATED="2009-01-28 17:07:06.0" UUID="4d22cf5e-89ff-4de3-a9ae-12dbeda3faba" URI="" VOCABULARY_ID="24"/>\r
-  <DEFINEDTERMBASE DTYPE="StatisticalMeasure" ID="2013" CREATED="2009-01-28 17:07:06.0" UUID="2c8b42e5-154c-42bd-a301-03b483275dd6" URI="" VOCABULARY_ID="24"/>\r
-  <DEFINEDTERMBASE DTYPE="RightsType" ID="2014" CREATED="2009-01-28 17:07:06.0" UUID="67c0d47e-8985-1014-8845-c84599f9992c" URI="" VOCABULARY_ID="25"/>\r
-  <DEFINEDTERMBASE DTYPE="RightsType" ID="2015" CREATED="2009-01-28 17:07:06.0" UUID="a50b4def-b3ac-4508-b50a-e0f249e3a1d7" URI="" VOCABULARY_ID="25"/>\r
-  <DEFINEDTERMBASE DTYPE="RightsType" ID="2016" CREATED="2009-01-28 17:07:06.0" UUID="d1ef838e-b195-4f28-b8eb-0d3be080bd37" URI="" VOCABULARY_ID="25"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="505" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="506" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="507" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="508" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="509" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="510" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="511" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="512" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="513" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="514" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="515" CONTINENTS_ID="490"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="516" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="517" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="518" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="519" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="520" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="521" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="522" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="523" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="524" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="525" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="525" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="526" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="527" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="528" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="529" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="530" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="531" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="532" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="533" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="534" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="535" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="536" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="537" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="538" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="539" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="540" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="541" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="542" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="543" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="544" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="545" CONTINENTS_ID="489"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="546" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="547" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="548" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="549" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="550" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="551" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="552" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="553" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="554" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="555" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="556" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="557" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="558" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="559" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="560" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="561" CONTINENTS_ID="490"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="562" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="563" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="564" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="565" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="566" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="566" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="567" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="568" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="569" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="570" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="571" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="572" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="573" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="574" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="575" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="576" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="577" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="578" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="579" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="580" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="581" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="582" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="583" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="584" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="585" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="586" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="587" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="588" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="589" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="590" CONTINENTS_ID="487"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="591" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="592" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="593" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="594" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="595" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="596" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="597" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="598" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="599" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="600" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="601" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="602" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="603" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="604" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="605" CONTINENTS_ID="490"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="606" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="607" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="608" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="609" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="610" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="611" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="612" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="613" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="614" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="615" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="616" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="617" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="618" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="619" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="620" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="621" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="622" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="623" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="624" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="625" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="626" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="627" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="628" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="629" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="630" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="631" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="632" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="633" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="634" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="635" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="636" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="637" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="638" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="639" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="640" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="641" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="642" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="643" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="644" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="645" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="646" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="647" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="648" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="649" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="650" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="651" CONTINENTS_ID="489"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="652" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="653" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="654" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="655" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="656" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="657" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="658" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="659" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="660" CONTINENTS_ID="490"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="661" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="662" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="663" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="664" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="665" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="666" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="667" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="668" CONTINENTS_ID="489"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="668" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="669" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="670" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="671" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="672" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="673" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="674" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="675" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="676" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="677" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="678" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="679" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="680" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="681" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="682" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="683" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="684" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="685" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="686" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="687" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="688" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="689" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="690" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="691" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="692" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="693" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="694" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="695" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="696" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="697" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="698" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="699" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="700" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="701" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="702" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="703" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="704" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="705" CONTINENTS_ID="490"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="706" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="707" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="708" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="709" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="710" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="711" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="712" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="713" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="714" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="715" CONTINENTS_ID="489"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="716" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="717" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="718" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="719" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="720" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="721" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="722" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="723" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="724" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="725" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="726" CONTINENTS_ID="491"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="727" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="728" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="729" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="730" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="731" CONTINENTS_ID="487"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="732" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="733" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="734" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="735" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="736" CONTINENTS_ID="489"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="737" CONTINENTS_ID="488"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="738" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="739" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="740" CONTINENTS_ID="486"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="741" CONTINENTS_ID="493"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="742" CONTINENTS_ID="494"/>\r
-  <DEFINEDTERMBASE_CONTINENT DEFINEDTERMBASE_ID="743" CONTINENTS_ID="492"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1" REPRESENTATIONS_ID="2"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2" REPRESENTATIONS_ID="3"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="3" REPRESENTATIONS_ID="4"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="4" REPRESENTATIONS_ID="5"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="5" REPRESENTATIONS_ID="6"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="6" REPRESENTATIONS_ID="7"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="7" REPRESENTATIONS_ID="8"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="8" REPRESENTATIONS_ID="9"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="9" REPRESENTATIONS_ID="10"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="10" REPRESENTATIONS_ID="11"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="11" REPRESENTATIONS_ID="12"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="12" REPRESENTATIONS_ID="13"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="13" REPRESENTATIONS_ID="14"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="14" REPRESENTATIONS_ID="15"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="15" REPRESENTATIONS_ID="16"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="16" REPRESENTATIONS_ID="17"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="17" REPRESENTATIONS_ID="18"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="18" REPRESENTATIONS_ID="19"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="19" REPRESENTATIONS_ID="20"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="20" REPRESENTATIONS_ID="21"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="21" REPRESENTATIONS_ID="22"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="22" REPRESENTATIONS_ID="23"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="23" REPRESENTATIONS_ID="24"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="24" REPRESENTATIONS_ID="25"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="25" REPRESENTATIONS_ID="26"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="26" REPRESENTATIONS_ID="27"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="27" REPRESENTATIONS_ID="28"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="28" REPRESENTATIONS_ID="29"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="29" REPRESENTATIONS_ID="30"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="30" REPRESENTATIONS_ID="31"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="31" REPRESENTATIONS_ID="32"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="32" REPRESENTATIONS_ID="33"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="33" REPRESENTATIONS_ID="34"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="34" REPRESENTATIONS_ID="35"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="35" REPRESENTATIONS_ID="36"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="36" REPRESENTATIONS_ID="37"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="37" REPRESENTATIONS_ID="38"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="38" REPRESENTATIONS_ID="39"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="39" REPRESENTATIONS_ID="40"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="40" REPRESENTATIONS_ID="41"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="41" REPRESENTATIONS_ID="42"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="42" REPRESENTATIONS_ID="43"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="43" REPRESENTATIONS_ID="44"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="44" REPRESENTATIONS_ID="45"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="45" REPRESENTATIONS_ID="46"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="46" REPRESENTATIONS_ID="47"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="47" REPRESENTATIONS_ID="48"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="48" REPRESENTATIONS_ID="49"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="49" REPRESENTATIONS_ID="50"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="50" REPRESENTATIONS_ID="51"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="51" REPRESENTATIONS_ID="52"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="52" REPRESENTATIONS_ID="53"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="53" REPRESENTATIONS_ID="54"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="54" REPRESENTATIONS_ID="55"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="55" REPRESENTATIONS_ID="56"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="56" REPRESENTATIONS_ID="57"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="57" REPRESENTATIONS_ID="58"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="58" REPRESENTATIONS_ID="59"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="59" REPRESENTATIONS_ID="60"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="60" REPRESENTATIONS_ID="61"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="61" REPRESENTATIONS_ID="62"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="62" REPRESENTATIONS_ID="63"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="63" REPRESENTATIONS_ID="64"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="64" REPRESENTATIONS_ID="65"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="65" REPRESENTATIONS_ID="66"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="66" REPRESENTATIONS_ID="67"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="67" REPRESENTATIONS_ID="68"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="68" REPRESENTATIONS_ID="69"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="69" REPRESENTATIONS_ID="70"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="70" REPRESENTATIONS_ID="71"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="71" REPRESENTATIONS_ID="72"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="72" REPRESENTATIONS_ID="73"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="73" REPRESENTATIONS_ID="74"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="74" REPRESENTATIONS_ID="75"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="75" REPRESENTATIONS_ID="76"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="76" REPRESENTATIONS_ID="77"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="77" REPRESENTATIONS_ID="78"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="78" REPRESENTATIONS_ID="79"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="79" REPRESENTATIONS_ID="80"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="80" REPRESENTATIONS_ID="81"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="81" REPRESENTATIONS_ID="82"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="82" REPRESENTATIONS_ID="83"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="83" REPRESENTATIONS_ID="84"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="84" REPRESENTATIONS_ID="85"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="85" REPRESENTATIONS_ID="86"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="86" REPRESENTATIONS_ID="87"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="87" REPRESENTATIONS_ID="88"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="88" REPRESENTATIONS_ID="89"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="89" REPRESENTATIONS_ID="90"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="90" REPRESENTATIONS_ID="91"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="91" REPRESENTATIONS_ID="92"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="92" REPRESENTATIONS_ID="93"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="93" REPRESENTATIONS_ID="94"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="94" REPRESENTATIONS_ID="95"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="95" REPRESENTATIONS_ID="96"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="96" REPRESENTATIONS_ID="97"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="97" REPRESENTATIONS_ID="98"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="98" REPRESENTATIONS_ID="99"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="99" REPRESENTATIONS_ID="100"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="100" REPRESENTATIONS_ID="101"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="101" REPRESENTATIONS_ID="102"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="102" REPRESENTATIONS_ID="103"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="103" REPRESENTATIONS_ID="104"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="104" REPRESENTATIONS_ID="105"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="105" REPRESENTATIONS_ID="106"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="106" REPRESENTATIONS_ID="107"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="107" REPRESENTATIONS_ID="108"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="108" REPRESENTATIONS_ID="109"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="109" REPRESENTATIONS_ID="110"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="110" REPRESENTATIONS_ID="111"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="111" REPRESENTATIONS_ID="112"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="112" REPRESENTATIONS_ID="113"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="113" REPRESENTATIONS_ID="114"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="114" REPRESENTATIONS_ID="115"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="115" REPRESENTATIONS_ID="116"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="116" REPRESENTATIONS_ID="117"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="117" REPRESENTATIONS_ID="118"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="118" REPRESENTATIONS_ID="119"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="119" REPRESENTATIONS_ID="120"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="120" REPRESENTATIONS_ID="121"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="121" REPRESENTATIONS_ID="122"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="122" REPRESENTATIONS_ID="123"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="123" REPRESENTATIONS_ID="124"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="124" REPRESENTATIONS_ID="125"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="125" REPRESENTATIONS_ID="126"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="126" REPRESENTATIONS_ID="127"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="127" REPRESENTATIONS_ID="128"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="128" REPRESENTATIONS_ID="129"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="129" REPRESENTATIONS_ID="130"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="130" REPRESENTATIONS_ID="131"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="131" REPRESENTATIONS_ID="132"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="132" REPRESENTATIONS_ID="133"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="133" REPRESENTATIONS_ID="134"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="134" REPRESENTATIONS_ID="135"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="135" REPRESENTATIONS_ID="136"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="136" REPRESENTATIONS_ID="137"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="137" REPRESENTATIONS_ID="138"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="138" REPRESENTATIONS_ID="139"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="139" REPRESENTATIONS_ID="140"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="140" REPRESENTATIONS_ID="141"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="141" REPRESENTATIONS_ID="142"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="142" REPRESENTATIONS_ID="143"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="143" REPRESENTATIONS_ID="144"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="144" REPRESENTATIONS_ID="145"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="145" REPRESENTATIONS_ID="146"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="146" REPRESENTATIONS_ID="147"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="147" REPRESENTATIONS_ID="148"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="148" REPRESENTATIONS_ID="149"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="149" REPRESENTATIONS_ID="150"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="150" REPRESENTATIONS_ID="151"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="151" REPRESENTATIONS_ID="152"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="152" REPRESENTATIONS_ID="153"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="153" REPRESENTATIONS_ID="154"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="154" REPRESENTATIONS_ID="155"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="155" REPRESENTATIONS_ID="156"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="156" REPRESENTATIONS_ID="157"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="157" REPRESENTATIONS_ID="158"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="158" REPRESENTATIONS_ID="159"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="159" REPRESENTATIONS_ID="160"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="160" REPRESENTATIONS_ID="161"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="161" REPRESENTATIONS_ID="162"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="162" REPRESENTATIONS_ID="163"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="163" REPRESENTATIONS_ID="164"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="164" REPRESENTATIONS_ID="165"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="165" REPRESENTATIONS_ID="166"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="166" REPRESENTATIONS_ID="167"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="167" REPRESENTATIONS_ID="168"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="168" REPRESENTATIONS_ID="169"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="169" REPRESENTATIONS_ID="170"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="170" REPRESENTATIONS_ID="171"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="171" REPRESENTATIONS_ID="172"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="172" REPRESENTATIONS_ID="173"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="173" REPRESENTATIONS_ID="174"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="174" REPRESENTATIONS_ID="175"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="175" REPRESENTATIONS_ID="176"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="176" REPRESENTATIONS_ID="177"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="177" REPRESENTATIONS_ID="178"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="178" REPRESENTATIONS_ID="179"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="179" REPRESENTATIONS_ID="180"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="180" REPRESENTATIONS_ID="181"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="181" REPRESENTATIONS_ID="182"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="182" REPRESENTATIONS_ID="183"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="183" REPRESENTATIONS_ID="184"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="184" REPRESENTATIONS_ID="185"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="185" REPRESENTATIONS_ID="186"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="186" REPRESENTATIONS_ID="187"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="187" REPRESENTATIONS_ID="188"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="188" REPRESENTATIONS_ID="189"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="189" REPRESENTATIONS_ID="190"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="190" REPRESENTATIONS_ID="191"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="191" REPRESENTATIONS_ID="192"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="192" REPRESENTATIONS_ID="193"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="193" REPRESENTATIONS_ID="194"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="194" REPRESENTATIONS_ID="195"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="195" REPRESENTATIONS_ID="196"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="196" REPRESENTATIONS_ID="197"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="197" REPRESENTATIONS_ID="198"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="198" REPRESENTATIONS_ID="199"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="199" REPRESENTATIONS_ID="200"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="200" REPRESENTATIONS_ID="201"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="201" REPRESENTATIONS_ID="202"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="202" REPRESENTATIONS_ID="203"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="203" REPRESENTATIONS_ID="204"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="204" REPRESENTATIONS_ID="205"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="205" REPRESENTATIONS_ID="206"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="206" REPRESENTATIONS_ID="207"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="207" REPRESENTATIONS_ID="208"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="208" REPRESENTATIONS_ID="209"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="209" REPRESENTATIONS_ID="210"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="210" REPRESENTATIONS_ID="211"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="211" REPRESENTATIONS_ID="212"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="212" REPRESENTATIONS_ID="213"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="213" REPRESENTATIONS_ID="214"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="214" REPRESENTATIONS_ID="215"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="215" REPRESENTATIONS_ID="216"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="216" REPRESENTATIONS_ID="217"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="217" REPRESENTATIONS_ID="218"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="218" REPRESENTATIONS_ID="219"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="219" REPRESENTATIONS_ID="220"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="220" REPRESENTATIONS_ID="221"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="221" REPRESENTATIONS_ID="222"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="222" REPRESENTATIONS_ID="223"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="223" REPRESENTATIONS_ID="224"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="224" REPRESENTATIONS_ID="225"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="225" REPRESENTATIONS_ID="226"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="226" REPRESENTATIONS_ID="227"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="227" REPRESENTATIONS_ID="228"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="228" REPRESENTATIONS_ID="229"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="229" REPRESENTATIONS_ID="230"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="230" REPRESENTATIONS_ID="231"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="231" REPRESENTATIONS_ID="232"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="232" REPRESENTATIONS_ID="233"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="233" REPRESENTATIONS_ID="234"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="234" REPRESENTATIONS_ID="235"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="235" REPRESENTATIONS_ID="236"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="236" REPRESENTATIONS_ID="237"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="237" REPRESENTATIONS_ID="238"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="238" REPRESENTATIONS_ID="239"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="239" REPRESENTATIONS_ID="240"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="240" REPRESENTATIONS_ID="241"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="241" REPRESENTATIONS_ID="242"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="242" REPRESENTATIONS_ID="243"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="243" REPRESENTATIONS_ID="244"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="244" REPRESENTATIONS_ID="245"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="245" REPRESENTATIONS_ID="246"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="246" REPRESENTATIONS_ID="247"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="247" REPRESENTATIONS_ID="248"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="248" REPRESENTATIONS_ID="249"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="249" REPRESENTATIONS_ID="250"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="250" REPRESENTATIONS_ID="251"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="251" REPRESENTATIONS_ID="252"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="252" REPRESENTATIONS_ID="253"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="253" REPRESENTATIONS_ID="254"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="254" REPRESENTATIONS_ID="255"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="255" REPRESENTATIONS_ID="256"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="256" REPRESENTATIONS_ID="257"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="257" REPRESENTATIONS_ID="258"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="258" REPRESENTATIONS_ID="259"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="259" REPRESENTATIONS_ID="260"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="260" REPRESENTATIONS_ID="261"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="261" REPRESENTATIONS_ID="262"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="262" REPRESENTATIONS_ID="263"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="263" REPRESENTATIONS_ID="264"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="264" REPRESENTATIONS_ID="265"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="265" REPRESENTATIONS_ID="266"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="266" REPRESENTATIONS_ID="267"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="267" REPRESENTATIONS_ID="268"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="268" REPRESENTATIONS_ID="269"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="269" REPRESENTATIONS_ID="270"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="270" REPRESENTATIONS_ID="271"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="271" REPRESENTATIONS_ID="272"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="272" REPRESENTATIONS_ID="273"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="273" REPRESENTATIONS_ID="274"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="274" REPRESENTATIONS_ID="275"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="275" REPRESENTATIONS_ID="276"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="276" REPRESENTATIONS_ID="277"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="277" REPRESENTATIONS_ID="278"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="278" REPRESENTATIONS_ID="279"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="279" REPRESENTATIONS_ID="280"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="280" REPRESENTATIONS_ID="281"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="281" REPRESENTATIONS_ID="282"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="282" REPRESENTATIONS_ID="283"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="283" REPRESENTATIONS_ID="284"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="284" REPRESENTATIONS_ID="285"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="285" REPRESENTATIONS_ID="286"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="286" REPRESENTATIONS_ID="287"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="287" REPRESENTATIONS_ID="288"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="288" REPRESENTATIONS_ID="289"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="289" REPRESENTATIONS_ID="290"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="290" REPRESENTATIONS_ID="291"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="291" REPRESENTATIONS_ID="292"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="292" REPRESENTATIONS_ID="293"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="293" REPRESENTATIONS_ID="294"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="294" REPRESENTATIONS_ID="295"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="295" REPRESENTATIONS_ID="296"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="296" REPRESENTATIONS_ID="297"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="297" REPRESENTATIONS_ID="298"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="298" REPRESENTATIONS_ID="299"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="299" REPRESENTATIONS_ID="300"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="300" REPRESENTATIONS_ID="301"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="301" REPRESENTATIONS_ID="302"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="302" REPRESENTATIONS_ID="303"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="303" REPRESENTATIONS_ID="304"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="304" REPRESENTATIONS_ID="305"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="305" REPRESENTATIONS_ID="306"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="306" REPRESENTATIONS_ID="307"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="307" REPRESENTATIONS_ID="308"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="308" REPRESENTATIONS_ID="309"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="309" REPRESENTATIONS_ID="310"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="310" REPRESENTATIONS_ID="311"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="311" REPRESENTATIONS_ID="312"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="312" REPRESENTATIONS_ID="313"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="313" REPRESENTATIONS_ID="314"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="314" REPRESENTATIONS_ID="315"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="315" REPRESENTATIONS_ID="316"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="316" REPRESENTATIONS_ID="317"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="317" REPRESENTATIONS_ID="318"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="318" REPRESENTATIONS_ID="319"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="319" REPRESENTATIONS_ID="320"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="320" REPRESENTATIONS_ID="321"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="321" REPRESENTATIONS_ID="322"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="322" REPRESENTATIONS_ID="323"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="323" REPRESENTATIONS_ID="324"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="324" REPRESENTATIONS_ID="325"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="325" REPRESENTATIONS_ID="326"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="326" REPRESENTATIONS_ID="327"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="327" REPRESENTATIONS_ID="328"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="328" REPRESENTATIONS_ID="329"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="329" REPRESENTATIONS_ID="330"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="330" REPRESENTATIONS_ID="331"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="331" REPRESENTATIONS_ID="332"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="332" REPRESENTATIONS_ID="333"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="333" REPRESENTATIONS_ID="334"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="334" REPRESENTATIONS_ID="335"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="335" REPRESENTATIONS_ID="336"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="336" REPRESENTATIONS_ID="337"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="337" REPRESENTATIONS_ID="338"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="338" REPRESENTATIONS_ID="339"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="339" REPRESENTATIONS_ID="340"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="340" REPRESENTATIONS_ID="341"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="341" REPRESENTATIONS_ID="342"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="342" REPRESENTATIONS_ID="343"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="343" REPRESENTATIONS_ID="344"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="344" REPRESENTATIONS_ID="345"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="345" REPRESENTATIONS_ID="346"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="346" REPRESENTATIONS_ID="347"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="347" REPRESENTATIONS_ID="348"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="348" REPRESENTATIONS_ID="349"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="349" REPRESENTATIONS_ID="350"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="350" REPRESENTATIONS_ID="351"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="351" REPRESENTATIONS_ID="352"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="352" REPRESENTATIONS_ID="353"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="353" REPRESENTATIONS_ID="354"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="354" REPRESENTATIONS_ID="355"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="355" REPRESENTATIONS_ID="356"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="356" REPRESENTATIONS_ID="357"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="357" REPRESENTATIONS_ID="358"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="358" REPRESENTATIONS_ID="359"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="359" REPRESENTATIONS_ID="360"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="360" REPRESENTATIONS_ID="361"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="361" REPRESENTATIONS_ID="362"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="362" REPRESENTATIONS_ID="363"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="363" REPRESENTATIONS_ID="364"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="364" REPRESENTATIONS_ID="365"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="365" REPRESENTATIONS_ID="366"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="366" REPRESENTATIONS_ID="367"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="367" REPRESENTATIONS_ID="368"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="368" REPRESENTATIONS_ID="369"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="369" REPRESENTATIONS_ID="370"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="370" REPRESENTATIONS_ID="371"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="371" REPRESENTATIONS_ID="372"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="372" REPRESENTATIONS_ID="373"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="373" REPRESENTATIONS_ID="374"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="374" REPRESENTATIONS_ID="375"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="375" REPRESENTATIONS_ID="376"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="376" REPRESENTATIONS_ID="377"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="377" REPRESENTATIONS_ID="378"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="378" REPRESENTATIONS_ID="379"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="379" REPRESENTATIONS_ID="380"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="380" REPRESENTATIONS_ID="381"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="381" REPRESENTATIONS_ID="382"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="382" REPRESENTATIONS_ID="383"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="383" REPRESENTATIONS_ID="384"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="384" REPRESENTATIONS_ID="385"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="385" REPRESENTATIONS_ID="386"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="386" REPRESENTATIONS_ID="387"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="387" REPRESENTATIONS_ID="388"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="388" REPRESENTATIONS_ID="389"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="389" REPRESENTATIONS_ID="390"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="390" REPRESENTATIONS_ID="391"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="391" REPRESENTATIONS_ID="392"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="392" REPRESENTATIONS_ID="393"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="393" REPRESENTATIONS_ID="394"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="394" REPRESENTATIONS_ID="395"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="395" REPRESENTATIONS_ID="396"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="396" REPRESENTATIONS_ID="397"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="397" REPRESENTATIONS_ID="398"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="398" REPRESENTATIONS_ID="399"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="399" REPRESENTATIONS_ID="400"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="400" REPRESENTATIONS_ID="401"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="401" REPRESENTATIONS_ID="402"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="402" REPRESENTATIONS_ID="403"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="403" REPRESENTATIONS_ID="404"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="404" REPRESENTATIONS_ID="405"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="405" REPRESENTATIONS_ID="406"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="406" REPRESENTATIONS_ID="407"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="407" REPRESENTATIONS_ID="408"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="408" REPRESENTATIONS_ID="409"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="409" REPRESENTATIONS_ID="410"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="410" REPRESENTATIONS_ID="411"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="411" REPRESENTATIONS_ID="412"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="412" REPRESENTATIONS_ID="413"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="413" REPRESENTATIONS_ID="414"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="414" REPRESENTATIONS_ID="415"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="415" REPRESENTATIONS_ID="416"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="416" REPRESENTATIONS_ID="417"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="417" REPRESENTATIONS_ID="418"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="418" REPRESENTATIONS_ID="419"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="419" REPRESENTATIONS_ID="420"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="420" REPRESENTATIONS_ID="421"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="421" REPRESENTATIONS_ID="422"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="422" REPRESENTATIONS_ID="423"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="423" REPRESENTATIONS_ID="424"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="424" REPRESENTATIONS_ID="425"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="425" REPRESENTATIONS_ID="426"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="426" REPRESENTATIONS_ID="427"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="427" REPRESENTATIONS_ID="428"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="428" REPRESENTATIONS_ID="429"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="429" REPRESENTATIONS_ID="430"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="430" REPRESENTATIONS_ID="431"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="431" REPRESENTATIONS_ID="432"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="432" REPRESENTATIONS_ID="433"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="433" REPRESENTATIONS_ID="434"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="434" REPRESENTATIONS_ID="435"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="435" REPRESENTATIONS_ID="436"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="436" REPRESENTATIONS_ID="437"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="437" REPRESENTATIONS_ID="438"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="438" REPRESENTATIONS_ID="439"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="439" REPRESENTATIONS_ID="440"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="440" REPRESENTATIONS_ID="441"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="441" REPRESENTATIONS_ID="442"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="442" REPRESENTATIONS_ID="443"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="443" REPRESENTATIONS_ID="444"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="444" REPRESENTATIONS_ID="445"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="445" REPRESENTATIONS_ID="446"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="446" REPRESENTATIONS_ID="447"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="447" REPRESENTATIONS_ID="448"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="448" REPRESENTATIONS_ID="449"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="449" REPRESENTATIONS_ID="450"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="450" REPRESENTATIONS_ID="451"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="451" REPRESENTATIONS_ID="452"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="452" REPRESENTATIONS_ID="453"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="453" REPRESENTATIONS_ID="454"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="454" REPRESENTATIONS_ID="455"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="455" REPRESENTATIONS_ID="456"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="456" REPRESENTATIONS_ID="457"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="457" REPRESENTATIONS_ID="458"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="458" REPRESENTATIONS_ID="459"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="459" REPRESENTATIONS_ID="460"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="460" REPRESENTATIONS_ID="461"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="461" REPRESENTATIONS_ID="462"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="462" REPRESENTATIONS_ID="463"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="463" REPRESENTATIONS_ID="464"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="464" REPRESENTATIONS_ID="465"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="465" REPRESENTATIONS_ID="466"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="466" REPRESENTATIONS_ID="467"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="467" REPRESENTATIONS_ID="468"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="468" REPRESENTATIONS_ID="469"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="469" REPRESENTATIONS_ID="470"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="470" REPRESENTATIONS_ID="471"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="471" REPRESENTATIONS_ID="472"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="472" REPRESENTATIONS_ID="473"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="473" REPRESENTATIONS_ID="474"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="474" REPRESENTATIONS_ID="475"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="475" REPRESENTATIONS_ID="476"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="476" REPRESENTATIONS_ID="477"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="477" REPRESENTATIONS_ID="478"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="478" REPRESENTATIONS_ID="479"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="479" REPRESENTATIONS_ID="480"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="480" REPRESENTATIONS_ID="481"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="481" REPRESENTATIONS_ID="482"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="482" REPRESENTATIONS_ID="483"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="483" REPRESENTATIONS_ID="484"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="484" REPRESENTATIONS_ID="485"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="485" REPRESENTATIONS_ID="486"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="486" REPRESENTATIONS_ID="488"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="487" REPRESENTATIONS_ID="489"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="488" REPRESENTATIONS_ID="490"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="489" REPRESENTATIONS_ID="491"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="490" REPRESENTATIONS_ID="492"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="491" REPRESENTATIONS_ID="493"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="492" REPRESENTATIONS_ID="494"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="493" REPRESENTATIONS_ID="495"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="494" REPRESENTATIONS_ID="496"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="495" REPRESENTATIONS_ID="498"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="496" REPRESENTATIONS_ID="499"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="497" REPRESENTATIONS_ID="500"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="498" REPRESENTATIONS_ID="501"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="499" REPRESENTATIONS_ID="502"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="500" REPRESENTATIONS_ID="503"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="501" REPRESENTATIONS_ID="504"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="502" REPRESENTATIONS_ID="505"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="503" REPRESENTATIONS_ID="506"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="504" REPRESENTATIONS_ID="507"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="505" REPRESENTATIONS_ID="508"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="506" REPRESENTATIONS_ID="509"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="507" REPRESENTATIONS_ID="510"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="508" REPRESENTATIONS_ID="511"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="509" REPRESENTATIONS_ID="512"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="510" REPRESENTATIONS_ID="513"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="511" REPRESENTATIONS_ID="514"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="512" REPRESENTATIONS_ID="515"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="513" REPRESENTATIONS_ID="516"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="514" REPRESENTATIONS_ID="517"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="515" REPRESENTATIONS_ID="518"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="516" REPRESENTATIONS_ID="519"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="517" REPRESENTATIONS_ID="520"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="518" REPRESENTATIONS_ID="521"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="519" REPRESENTATIONS_ID="522"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="520" REPRESENTATIONS_ID="523"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="521" REPRESENTATIONS_ID="524"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="522" REPRESENTATIONS_ID="525"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="523" REPRESENTATIONS_ID="526"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="524" REPRESENTATIONS_ID="527"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="525" REPRESENTATIONS_ID="528"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="526" REPRESENTATIONS_ID="529"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="527" REPRESENTATIONS_ID="530"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="528" REPRESENTATIONS_ID="531"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="529" REPRESENTATIONS_ID="532"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="530" REPRESENTATIONS_ID="533"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="531" REPRESENTATIONS_ID="534"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="532" REPRESENTATIONS_ID="535"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="533" REPRESENTATIONS_ID="536"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="534" REPRESENTATIONS_ID="537"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="535" REPRESENTATIONS_ID="538"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="536" REPRESENTATIONS_ID="539"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="537" REPRESENTATIONS_ID="540"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="538" REPRESENTATIONS_ID="541"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="539" REPRESENTATIONS_ID="542"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="540" REPRESENTATIONS_ID="543"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="541" REPRESENTATIONS_ID="544"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="542" REPRESENTATIONS_ID="545"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="543" REPRESENTATIONS_ID="546"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="544" REPRESENTATIONS_ID="547"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="545" REPRESENTATIONS_ID="548"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="546" REPRESENTATIONS_ID="549"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="547" REPRESENTATIONS_ID="550"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="548" REPRESENTATIONS_ID="551"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="549" REPRESENTATIONS_ID="552"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="550" REPRESENTATIONS_ID="553"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="551" REPRESENTATIONS_ID="554"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="552" REPRESENTATIONS_ID="555"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="553" REPRESENTATIONS_ID="556"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="554" REPRESENTATIONS_ID="557"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="555" REPRESENTATIONS_ID="558"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="556" REPRESENTATIONS_ID="559"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="557" REPRESENTATIONS_ID="560"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="558" REPRESENTATIONS_ID="561"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="559" REPRESENTATIONS_ID="562"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="560" REPRESENTATIONS_ID="563"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="561" REPRESENTATIONS_ID="564"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="562" REPRESENTATIONS_ID="565"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="563" REPRESENTATIONS_ID="566"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="564" REPRESENTATIONS_ID="567"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="565" REPRESENTATIONS_ID="568"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="566" REPRESENTATIONS_ID="569"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="567" REPRESENTATIONS_ID="570"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="568" REPRESENTATIONS_ID="571"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="569" REPRESENTATIONS_ID="572"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="570" REPRESENTATIONS_ID="573"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="571" REPRESENTATIONS_ID="574"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="572" REPRESENTATIONS_ID="575"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="573" REPRESENTATIONS_ID="576"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="574" REPRESENTATIONS_ID="577"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="575" REPRESENTATIONS_ID="578"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="576" REPRESENTATIONS_ID="579"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="577" REPRESENTATIONS_ID="580"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="578" REPRESENTATIONS_ID="581"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="579" REPRESENTATIONS_ID="582"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="580" REPRESENTATIONS_ID="583"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="581" REPRESENTATIONS_ID="584"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="582" REPRESENTATIONS_ID="585"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="583" REPRESENTATIONS_ID="586"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="584" REPRESENTATIONS_ID="587"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="585" REPRESENTATIONS_ID="588"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="586" REPRESENTATIONS_ID="589"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="587" REPRESENTATIONS_ID="590"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="588" REPRESENTATIONS_ID="591"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="589" REPRESENTATIONS_ID="592"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="590" REPRESENTATIONS_ID="593"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="591" REPRESENTATIONS_ID="594"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="592" REPRESENTATIONS_ID="595"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="593" REPRESENTATIONS_ID="596"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="594" REPRESENTATIONS_ID="597"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="595" REPRESENTATIONS_ID="598"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="596" REPRESENTATIONS_ID="599"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="597" REPRESENTATIONS_ID="600"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="598" REPRESENTATIONS_ID="601"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="599" REPRESENTATIONS_ID="602"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="600" REPRESENTATIONS_ID="603"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="601" REPRESENTATIONS_ID="604"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="602" REPRESENTATIONS_ID="605"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="603" REPRESENTATIONS_ID="606"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="604" REPRESENTATIONS_ID="607"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="605" REPRESENTATIONS_ID="608"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="606" REPRESENTATIONS_ID="609"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="607" REPRESENTATIONS_ID="610"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="608" REPRESENTATIONS_ID="611"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="609" REPRESENTATIONS_ID="612"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="610" REPRESENTATIONS_ID="613"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="611" REPRESENTATIONS_ID="614"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="612" REPRESENTATIONS_ID="615"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="613" REPRESENTATIONS_ID="616"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="614" REPRESENTATIONS_ID="617"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="615" REPRESENTATIONS_ID="618"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="616" REPRESENTATIONS_ID="619"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="617" REPRESENTATIONS_ID="620"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="618" REPRESENTATIONS_ID="621"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="619" REPRESENTATIONS_ID="622"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="620" REPRESENTATIONS_ID="623"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="621" REPRESENTATIONS_ID="624"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="622" REPRESENTATIONS_ID="625"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="623" REPRESENTATIONS_ID="626"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="624" REPRESENTATIONS_ID="627"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="625" REPRESENTATIONS_ID="628"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="626" REPRESENTATIONS_ID="629"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="627" REPRESENTATIONS_ID="630"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="628" REPRESENTATIONS_ID="631"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="629" REPRESENTATIONS_ID="632"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="630" REPRESENTATIONS_ID="633"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="631" REPRESENTATIONS_ID="634"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="632" REPRESENTATIONS_ID="635"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="633" REPRESENTATIONS_ID="636"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="634" REPRESENTATIONS_ID="637"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="635" REPRESENTATIONS_ID="638"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="636" REPRESENTATIONS_ID="639"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="637" REPRESENTATIONS_ID="640"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="638" REPRESENTATIONS_ID="641"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="639" REPRESENTATIONS_ID="642"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="640" REPRESENTATIONS_ID="643"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="641" REPRESENTATIONS_ID="644"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="642" REPRESENTATIONS_ID="645"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="643" REPRESENTATIONS_ID="646"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="644" REPRESENTATIONS_ID="647"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="645" REPRESENTATIONS_ID="648"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="646" REPRESENTATIONS_ID="649"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="647" REPRESENTATIONS_ID="650"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="648" REPRESENTATIONS_ID="651"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="649" REPRESENTATIONS_ID="652"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="650" REPRESENTATIONS_ID="653"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="651" REPRESENTATIONS_ID="654"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="652" REPRESENTATIONS_ID="655"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="653" REPRESENTATIONS_ID="656"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="654" REPRESENTATIONS_ID="657"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="655" REPRESENTATIONS_ID="658"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="656" REPRESENTATIONS_ID="659"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="657" REPRESENTATIONS_ID="660"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="658" REPRESENTATIONS_ID="661"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="659" REPRESENTATIONS_ID="662"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="660" REPRESENTATIONS_ID="663"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="661" REPRESENTATIONS_ID="664"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="662" REPRESENTATIONS_ID="665"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="663" REPRESENTATIONS_ID="666"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="664" REPRESENTATIONS_ID="667"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="665" REPRESENTATIONS_ID="668"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="666" REPRESENTATIONS_ID="669"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="667" REPRESENTATIONS_ID="670"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="668" REPRESENTATIONS_ID="671"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="669" REPRESENTATIONS_ID="672"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="670" REPRESENTATIONS_ID="673"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="671" REPRESENTATIONS_ID="674"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="672" REPRESENTATIONS_ID="675"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="673" REPRESENTATIONS_ID="676"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="674" REPRESENTATIONS_ID="677"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="675" REPRESENTATIONS_ID="678"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="676" REPRESENTATIONS_ID="679"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="677" REPRESENTATIONS_ID="680"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="678" REPRESENTATIONS_ID="681"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="679" REPRESENTATIONS_ID="682"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="680" REPRESENTATIONS_ID="683"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="681" REPRESENTATIONS_ID="684"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="682" REPRESENTATIONS_ID="685"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="683" REPRESENTATIONS_ID="686"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="684" REPRESENTATIONS_ID="687"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="685" REPRESENTATIONS_ID="688"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="686" REPRESENTATIONS_ID="689"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="687" REPRESENTATIONS_ID="690"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="688" REPRESENTATIONS_ID="691"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="689" REPRESENTATIONS_ID="692"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="690" REPRESENTATIONS_ID="693"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="691" REPRESENTATIONS_ID="694"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="692" REPRESENTATIONS_ID="695"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="693" REPRESENTATIONS_ID="696"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="694" REPRESENTATIONS_ID="697"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="695" REPRESENTATIONS_ID="698"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="696" REPRESENTATIONS_ID="699"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="697" REPRESENTATIONS_ID="700"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="698" REPRESENTATIONS_ID="701"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="699" REPRESENTATIONS_ID="702"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="700" REPRESENTATIONS_ID="703"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="701" REPRESENTATIONS_ID="704"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="702" REPRESENTATIONS_ID="705"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="703" REPRESENTATIONS_ID="706"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="704" REPRESENTATIONS_ID="707"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="705" REPRESENTATIONS_ID="708"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="706" REPRESENTATIONS_ID="709"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="707" REPRESENTATIONS_ID="710"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="708" REPRESENTATIONS_ID="711"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="709" REPRESENTATIONS_ID="712"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="710" REPRESENTATIONS_ID="713"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="711" REPRESENTATIONS_ID="714"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="712" REPRESENTATIONS_ID="715"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="713" REPRESENTATIONS_ID="716"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="714" REPRESENTATIONS_ID="717"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="715" REPRESENTATIONS_ID="718"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="716" REPRESENTATIONS_ID="719"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="717" REPRESENTATIONS_ID="720"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="718" REPRESENTATIONS_ID="721"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="719" REPRESENTATIONS_ID="722"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="720" REPRESENTATIONS_ID="723"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="721" REPRESENTATIONS_ID="724"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="722" REPRESENTATIONS_ID="725"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="723" REPRESENTATIONS_ID="726"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="724" REPRESENTATIONS_ID="727"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="725" REPRESENTATIONS_ID="728"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="726" REPRESENTATIONS_ID="729"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="727" REPRESENTATIONS_ID="730"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="728" REPRESENTATIONS_ID="731"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="729" REPRESENTATIONS_ID="732"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="730" REPRESENTATIONS_ID="733"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="731" REPRESENTATIONS_ID="734"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="732" REPRESENTATIONS_ID="735"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="733" REPRESENTATIONS_ID="736"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="734" REPRESENTATIONS_ID="737"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="735" REPRESENTATIONS_ID="738"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="736" REPRESENTATIONS_ID="739"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="737" REPRESENTATIONS_ID="740"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="738" REPRESENTATIONS_ID="741"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="739" REPRESENTATIONS_ID="742"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="740" REPRESENTATIONS_ID="743"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="741" REPRESENTATIONS_ID="744"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="742" REPRESENTATIONS_ID="745"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="743" REPRESENTATIONS_ID="746"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="744" REPRESENTATIONS_ID="748"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="745" REPRESENTATIONS_ID="749"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="746" REPRESENTATIONS_ID="750"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="747" REPRESENTATIONS_ID="751"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="748" REPRESENTATIONS_ID="752"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="749" REPRESENTATIONS_ID="753"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="750" REPRESENTATIONS_ID="754"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="751" REPRESENTATIONS_ID="755"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="752" REPRESENTATIONS_ID="756"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="753" REPRESENTATIONS_ID="757"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="754" REPRESENTATIONS_ID="758"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="755" REPRESENTATIONS_ID="759"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="756" REPRESENTATIONS_ID="760"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="757" REPRESENTATIONS_ID="761"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="758" REPRESENTATIONS_ID="762"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="759" REPRESENTATIONS_ID="763"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="760" REPRESENTATIONS_ID="764"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="761" REPRESENTATIONS_ID="765"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="762" REPRESENTATIONS_ID="766"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="763" REPRESENTATIONS_ID="767"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="764" REPRESENTATIONS_ID="768"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="765" REPRESENTATIONS_ID="769"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="766" REPRESENTATIONS_ID="770"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="767" REPRESENTATIONS_ID="771"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="768" REPRESENTATIONS_ID="772"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="769" REPRESENTATIONS_ID="773"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="770" REPRESENTATIONS_ID="774"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="771" REPRESENTATIONS_ID="775"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="772" REPRESENTATIONS_ID="776"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="773" REPRESENTATIONS_ID="777"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="774" REPRESENTATIONS_ID="778"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="775" REPRESENTATIONS_ID="779"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="776" REPRESENTATIONS_ID="780"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="777" REPRESENTATIONS_ID="781"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="778" REPRESENTATIONS_ID="782"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="779" REPRESENTATIONS_ID="783"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="780" REPRESENTATIONS_ID="784"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="781" REPRESENTATIONS_ID="785"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="782" REPRESENTATIONS_ID="786"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="783" REPRESENTATIONS_ID="787"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="784" REPRESENTATIONS_ID="788"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="785" REPRESENTATIONS_ID="789"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="786" REPRESENTATIONS_ID="790"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="787" REPRESENTATIONS_ID="791"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="788" REPRESENTATIONS_ID="792"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="789" REPRESENTATIONS_ID="793"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="790" REPRESENTATIONS_ID="794"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="791" REPRESENTATIONS_ID="795"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="792" REPRESENTATIONS_ID="796"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="793" REPRESENTATIONS_ID="797"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="794" REPRESENTATIONS_ID="798"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="795" REPRESENTATIONS_ID="799"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="796" REPRESENTATIONS_ID="800"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="797" REPRESENTATIONS_ID="801"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="798" REPRESENTATIONS_ID="802"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="799" REPRESENTATIONS_ID="803"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="800" REPRESENTATIONS_ID="804"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="801" REPRESENTATIONS_ID="805"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="802" REPRESENTATIONS_ID="806"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="803" REPRESENTATIONS_ID="807"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="804" REPRESENTATIONS_ID="808"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="805" REPRESENTATIONS_ID="809"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="806" REPRESENTATIONS_ID="811"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="807" REPRESENTATIONS_ID="812"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="808" REPRESENTATIONS_ID="813"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="809" REPRESENTATIONS_ID="814"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="810" REPRESENTATIONS_ID="815"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="811" REPRESENTATIONS_ID="816"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="812" REPRESENTATIONS_ID="817"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="813" REPRESENTATIONS_ID="818"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="814" REPRESENTATIONS_ID="819"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="815" REPRESENTATIONS_ID="820"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="816" REPRESENTATIONS_ID="821"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="817" REPRESENTATIONS_ID="822"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="818" REPRESENTATIONS_ID="823"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="819" REPRESENTATIONS_ID="824"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="820" REPRESENTATIONS_ID="825"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="821" REPRESENTATIONS_ID="826"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="822" REPRESENTATIONS_ID="828"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="823" REPRESENTATIONS_ID="829"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="824" REPRESENTATIONS_ID="830"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="825" REPRESENTATIONS_ID="831"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="826" REPRESENTATIONS_ID="832"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="827" REPRESENTATIONS_ID="833"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="828" REPRESENTATIONS_ID="834"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="829" REPRESENTATIONS_ID="835"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="830" REPRESENTATIONS_ID="836"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="831" REPRESENTATIONS_ID="837"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="832" REPRESENTATIONS_ID="838"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="833" REPRESENTATIONS_ID="839"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="834" REPRESENTATIONS_ID="840"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="835" REPRESENTATIONS_ID="841"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="836" REPRESENTATIONS_ID="842"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="837" REPRESENTATIONS_ID="843"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="838" REPRESENTATIONS_ID="844"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="839" REPRESENTATIONS_ID="845"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="840" REPRESENTATIONS_ID="846"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="841" REPRESENTATIONS_ID="847"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="842" REPRESENTATIONS_ID="848"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="843" REPRESENTATIONS_ID="849"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="844" REPRESENTATIONS_ID="850"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="845" REPRESENTATIONS_ID="851"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="846" REPRESENTATIONS_ID="853"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="847" REPRESENTATIONS_ID="855"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="848" REPRESENTATIONS_ID="857"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="849" REPRESENTATIONS_ID="860"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="850" REPRESENTATIONS_ID="862"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="851" REPRESENTATIONS_ID="864"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="852" REPRESENTATIONS_ID="866"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="853" REPRESENTATIONS_ID="869"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="854" REPRESENTATIONS_ID="871"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="855" REPRESENTATIONS_ID="873"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="856" REPRESENTATIONS_ID="875"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="857" REPRESENTATIONS_ID="877"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="858" REPRESENTATIONS_ID="879"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="859" REPRESENTATIONS_ID="881"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="860" REPRESENTATIONS_ID="883"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="861" REPRESENTATIONS_ID="885"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="862" REPRESENTATIONS_ID="887"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="863" REPRESENTATIONS_ID="890"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="864" REPRESENTATIONS_ID="892"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="865" REPRESENTATIONS_ID="894"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="866" REPRESENTATIONS_ID="896"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="867" REPRESENTATIONS_ID="898"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="868" REPRESENTATIONS_ID="900"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="869" REPRESENTATIONS_ID="902"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="870" REPRESENTATIONS_ID="904"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="871" REPRESENTATIONS_ID="906"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="872" REPRESENTATIONS_ID="908"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="873" REPRESENTATIONS_ID="910"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="874" REPRESENTATIONS_ID="912"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="875" REPRESENTATIONS_ID="914"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="876" REPRESENTATIONS_ID="916"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="877" REPRESENTATIONS_ID="918"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="878" REPRESENTATIONS_ID="920"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="879" REPRESENTATIONS_ID="922"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="880" REPRESENTATIONS_ID="924"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="881" REPRESENTATIONS_ID="926"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="882" REPRESENTATIONS_ID="928"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="883" REPRESENTATIONS_ID="930"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="884" REPRESENTATIONS_ID="932"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="885" REPRESENTATIONS_ID="934"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="886" REPRESENTATIONS_ID="936"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="887" REPRESENTATIONS_ID="938"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="888" REPRESENTATIONS_ID="940"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="889" REPRESENTATIONS_ID="942"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="890" REPRESENTATIONS_ID="945"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="891" REPRESENTATIONS_ID="946"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="892" REPRESENTATIONS_ID="947"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="893" REPRESENTATIONS_ID="948"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="894" REPRESENTATIONS_ID="950"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="895" REPRESENTATIONS_ID="951"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="896" REPRESENTATIONS_ID="953"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="897" REPRESENTATIONS_ID="954"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="898" REPRESENTATIONS_ID="956"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="899" REPRESENTATIONS_ID="957"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="900" REPRESENTATIONS_ID="958"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="901" REPRESENTATIONS_ID="959"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="902" REPRESENTATIONS_ID="960"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="903" REPRESENTATIONS_ID="961"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="904" REPRESENTATIONS_ID="962"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="905" REPRESENTATIONS_ID="963"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="906" REPRESENTATIONS_ID="964"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="912" REPRESENTATIONS_ID="972"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="913" REPRESENTATIONS_ID="973"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="914" REPRESENTATIONS_ID="974"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="915" REPRESENTATIONS_ID="975"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="916" REPRESENTATIONS_ID="976"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="917" REPRESENTATIONS_ID="977"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="918" REPRESENTATIONS_ID="978"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="919" REPRESENTATIONS_ID="979"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="920" REPRESENTATIONS_ID="980"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="921" REPRESENTATIONS_ID="981"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="922" REPRESENTATIONS_ID="982"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="923" REPRESENTATIONS_ID="983"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="924" REPRESENTATIONS_ID="984"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="925" REPRESENTATIONS_ID="985"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="926" REPRESENTATIONS_ID="986"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="927" REPRESENTATIONS_ID="987"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="928" REPRESENTATIONS_ID="988"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="929" REPRESENTATIONS_ID="989"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="930" REPRESENTATIONS_ID="990"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="931" REPRESENTATIONS_ID="991"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="932" REPRESENTATIONS_ID="992"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="933" REPRESENTATIONS_ID="993"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="934" REPRESENTATIONS_ID="994"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="935" REPRESENTATIONS_ID="995"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="936" REPRESENTATIONS_ID="996"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="937" REPRESENTATIONS_ID="997"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="938" REPRESENTATIONS_ID="999"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="939" REPRESENTATIONS_ID="1000"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="940" REPRESENTATIONS_ID="1001"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="941" REPRESENTATIONS_ID="1002"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="942" REPRESENTATIONS_ID="1003"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="943" REPRESENTATIONS_ID="1004"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="944" REPRESENTATIONS_ID="1005"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="945" REPRESENTATIONS_ID="1006"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="946" REPRESENTATIONS_ID="1007"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="947" REPRESENTATIONS_ID="1008"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="948" REPRESENTATIONS_ID="1009"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="949" REPRESENTATIONS_ID="1010"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="950" REPRESENTATIONS_ID="1011"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="951" REPRESENTATIONS_ID="1012"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="952" REPRESENTATIONS_ID="1013"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="953" REPRESENTATIONS_ID="1014"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="954" REPRESENTATIONS_ID="1015"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="955" REPRESENTATIONS_ID="1016"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="956" REPRESENTATIONS_ID="1017"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="957" REPRESENTATIONS_ID="1018"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="958" REPRESENTATIONS_ID="1019"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="959" REPRESENTATIONS_ID="1020"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="960" REPRESENTATIONS_ID="1021"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="961" REPRESENTATIONS_ID="1022"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="962" REPRESENTATIONS_ID="1023"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="963" REPRESENTATIONS_ID="1024"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="964" REPRESENTATIONS_ID="1025"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="965" REPRESENTATIONS_ID="1026"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="966" REPRESENTATIONS_ID="1027"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="967" REPRESENTATIONS_ID="1028"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="968" REPRESENTATIONS_ID="1029"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="969" REPRESENTATIONS_ID="1030"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="970" REPRESENTATIONS_ID="1031"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="971" REPRESENTATIONS_ID="1032"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="972" REPRESENTATIONS_ID="1033"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="973" REPRESENTATIONS_ID="1034"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="974" REPRESENTATIONS_ID="1035"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="975" REPRESENTATIONS_ID="1036"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="976" REPRESENTATIONS_ID="1037"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="977" REPRESENTATIONS_ID="1038"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="978" REPRESENTATIONS_ID="1039"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="979" REPRESENTATIONS_ID="1040"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="980" REPRESENTATIONS_ID="1041"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="981" REPRESENTATIONS_ID="1042"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="982" REPRESENTATIONS_ID="1043"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="983" REPRESENTATIONS_ID="1044"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="984" REPRESENTATIONS_ID="1045"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="985" REPRESENTATIONS_ID="1046"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="986" REPRESENTATIONS_ID="1047"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="987" REPRESENTATIONS_ID="1048"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="988" REPRESENTATIONS_ID="1049"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="989" REPRESENTATIONS_ID="1050"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="990" REPRESENTATIONS_ID="1051"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="991" REPRESENTATIONS_ID="1052"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="992" REPRESENTATIONS_ID="1053"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="993" REPRESENTATIONS_ID="1054"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="994" REPRESENTATIONS_ID="1055"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="995" REPRESENTATIONS_ID="1056"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="996" REPRESENTATIONS_ID="1057"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="997" REPRESENTATIONS_ID="1058"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="998" REPRESENTATIONS_ID="1059"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="999" REPRESENTATIONS_ID="1060"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1000" REPRESENTATIONS_ID="1061"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1001" REPRESENTATIONS_ID="1062"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1002" REPRESENTATIONS_ID="1063"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1003" REPRESENTATIONS_ID="1064"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1004" REPRESENTATIONS_ID="1065"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1005" REPRESENTATIONS_ID="1066"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1006" REPRESENTATIONS_ID="1067"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1007" REPRESENTATIONS_ID="1068"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1008" REPRESENTATIONS_ID="1069"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1009" REPRESENTATIONS_ID="1070"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1010" REPRESENTATIONS_ID="1071"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1011" REPRESENTATIONS_ID="1072"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1012" REPRESENTATIONS_ID="1073"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1013" REPRESENTATIONS_ID="1074"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1014" REPRESENTATIONS_ID="1075"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1015" REPRESENTATIONS_ID="1076"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1016" REPRESENTATIONS_ID="1077"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1017" REPRESENTATIONS_ID="1078"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1018" REPRESENTATIONS_ID="1079"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1019" REPRESENTATIONS_ID="1080"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1020" REPRESENTATIONS_ID="1081"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1021" REPRESENTATIONS_ID="1082"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1022" REPRESENTATIONS_ID="1083"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1023" REPRESENTATIONS_ID="1084"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1024" REPRESENTATIONS_ID="1085"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1025" REPRESENTATIONS_ID="1086"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1026" REPRESENTATIONS_ID="1087"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1027" REPRESENTATIONS_ID="1088"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1028" REPRESENTATIONS_ID="1089"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1029" REPRESENTATIONS_ID="1090"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1030" REPRESENTATIONS_ID="1091"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1031" REPRESENTATIONS_ID="1092"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1032" REPRESENTATIONS_ID="1093"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1033" REPRESENTATIONS_ID="1094"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1034" REPRESENTATIONS_ID="1095"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1035" REPRESENTATIONS_ID="1096"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1036" REPRESENTATIONS_ID="1097"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1037" REPRESENTATIONS_ID="1098"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1038" REPRESENTATIONS_ID="1099"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1039" REPRESENTATIONS_ID="1100"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1040" REPRESENTATIONS_ID="1101"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1041" REPRESENTATIONS_ID="1102"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1042" REPRESENTATIONS_ID="1103"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1043" REPRESENTATIONS_ID="1104"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1044" REPRESENTATIONS_ID="1105"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1045" REPRESENTATIONS_ID="1106"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1046" REPRESENTATIONS_ID="1107"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1047" REPRESENTATIONS_ID="1108"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1048" REPRESENTATIONS_ID="1109"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1049" REPRESENTATIONS_ID="1110"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1050" REPRESENTATIONS_ID="1111"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1051" REPRESENTATIONS_ID="1112"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1052" REPRESENTATIONS_ID="1113"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1053" REPRESENTATIONS_ID="1114"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1054" REPRESENTATIONS_ID="1115"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1055" REPRESENTATIONS_ID="1116"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1056" REPRESENTATIONS_ID="1117"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1057" REPRESENTATIONS_ID="1118"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1058" REPRESENTATIONS_ID="1119"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1059" REPRESENTATIONS_ID="1120"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1060" REPRESENTATIONS_ID="1121"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1061" REPRESENTATIONS_ID="1122"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1062" REPRESENTATIONS_ID="1123"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1063" REPRESENTATIONS_ID="1124"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1064" REPRESENTATIONS_ID="1125"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1065" REPRESENTATIONS_ID="1126"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1066" REPRESENTATIONS_ID="1127"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1067" REPRESENTATIONS_ID="1128"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1068" REPRESENTATIONS_ID="1129"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1069" REPRESENTATIONS_ID="1130"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1070" REPRESENTATIONS_ID="1131"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1071" REPRESENTATIONS_ID="1132"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1072" REPRESENTATIONS_ID="1133"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1073" REPRESENTATIONS_ID="1134"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1074" REPRESENTATIONS_ID="1135"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1075" REPRESENTATIONS_ID="1136"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1076" REPRESENTATIONS_ID="1137"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1077" REPRESENTATIONS_ID="1138"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1078" REPRESENTATIONS_ID="1139"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1079" REPRESENTATIONS_ID="1140"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1080" REPRESENTATIONS_ID="1141"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1081" REPRESENTATIONS_ID="1142"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1082" REPRESENTATIONS_ID="1143"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1083" REPRESENTATIONS_ID="1144"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1084" REPRESENTATIONS_ID="1145"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1085" REPRESENTATIONS_ID="1146"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1086" REPRESENTATIONS_ID="1147"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1087" REPRESENTATIONS_ID="1148"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1088" REPRESENTATIONS_ID="1149"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1089" REPRESENTATIONS_ID="1150"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1090" REPRESENTATIONS_ID="1151"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1091" REPRESENTATIONS_ID="1152"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1092" REPRESENTATIONS_ID="1153"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1093" REPRESENTATIONS_ID="1154"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1094" REPRESENTATIONS_ID="1155"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1095" REPRESENTATIONS_ID="1156"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1096" REPRESENTATIONS_ID="1157"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1097" REPRESENTATIONS_ID="1158"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1098" REPRESENTATIONS_ID="1159"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1099" REPRESENTATIONS_ID="1160"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1100" REPRESENTATIONS_ID="1161"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1101" REPRESENTATIONS_ID="1162"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1102" REPRESENTATIONS_ID="1163"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1103" REPRESENTATIONS_ID="1164"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1104" REPRESENTATIONS_ID="1165"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1105" REPRESENTATIONS_ID="1166"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1106" REPRESENTATIONS_ID="1167"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1107" REPRESENTATIONS_ID="1168"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1108" REPRESENTATIONS_ID="1169"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1109" REPRESENTATIONS_ID="1170"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1110" REPRESENTATIONS_ID="1171"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1111" REPRESENTATIONS_ID="1172"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1112" REPRESENTATIONS_ID="1173"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1113" REPRESENTATIONS_ID="1174"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1114" REPRESENTATIONS_ID="1175"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1115" REPRESENTATIONS_ID="1176"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1116" REPRESENTATIONS_ID="1177"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1117" REPRESENTATIONS_ID="1178"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1118" REPRESENTATIONS_ID="1179"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1119" REPRESENTATIONS_ID="1180"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1120" REPRESENTATIONS_ID="1181"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1121" REPRESENTATIONS_ID="1182"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1122" REPRESENTATIONS_ID="1183"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1123" REPRESENTATIONS_ID="1184"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1124" REPRESENTATIONS_ID="1185"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1125" REPRESENTATIONS_ID="1186"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1126" REPRESENTATIONS_ID="1187"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1127" REPRESENTATIONS_ID="1188"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1128" REPRESENTATIONS_ID="1189"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1129" REPRESENTATIONS_ID="1190"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1130" REPRESENTATIONS_ID="1191"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1131" REPRESENTATIONS_ID="1192"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1132" REPRESENTATIONS_ID="1193"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1133" REPRESENTATIONS_ID="1194"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1134" REPRESENTATIONS_ID="1195"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1135" REPRESENTATIONS_ID="1196"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1136" REPRESENTATIONS_ID="1197"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1137" REPRESENTATIONS_ID="1198"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1138" REPRESENTATIONS_ID="1199"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1139" REPRESENTATIONS_ID="1200"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1140" REPRESENTATIONS_ID="1201"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1141" REPRESENTATIONS_ID="1202"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1142" REPRESENTATIONS_ID="1203"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1143" REPRESENTATIONS_ID="1204"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1144" REPRESENTATIONS_ID="1205"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1145" REPRESENTATIONS_ID="1206"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1146" REPRESENTATIONS_ID="1207"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1147" REPRESENTATIONS_ID="1208"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1148" REPRESENTATIONS_ID="1209"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1149" REPRESENTATIONS_ID="1210"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1150" REPRESENTATIONS_ID="1211"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1151" REPRESENTATIONS_ID="1212"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1152" REPRESENTATIONS_ID="1213"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1153" REPRESENTATIONS_ID="1214"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1154" REPRESENTATIONS_ID="1215"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1155" REPRESENTATIONS_ID="1216"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1156" REPRESENTATIONS_ID="1217"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1157" REPRESENTATIONS_ID="1218"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1158" REPRESENTATIONS_ID="1219"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1159" REPRESENTATIONS_ID="1220"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1160" REPRESENTATIONS_ID="1221"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1161" REPRESENTATIONS_ID="1222"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1162" REPRESENTATIONS_ID="1223"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1163" REPRESENTATIONS_ID="1224"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1164" REPRESENTATIONS_ID="1225"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1165" REPRESENTATIONS_ID="1226"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1166" REPRESENTATIONS_ID="1227"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1167" REPRESENTATIONS_ID="1228"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1168" REPRESENTATIONS_ID="1229"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1169" REPRESENTATIONS_ID="1230"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1170" REPRESENTATIONS_ID="1231"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1171" REPRESENTATIONS_ID="1232"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1172" REPRESENTATIONS_ID="1233"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1173" REPRESENTATIONS_ID="1234"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1174" REPRESENTATIONS_ID="1235"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1175" REPRESENTATIONS_ID="1236"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1176" REPRESENTATIONS_ID="1237"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1177" REPRESENTATIONS_ID="1238"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1178" REPRESENTATIONS_ID="1239"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1179" REPRESENTATIONS_ID="1240"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1180" REPRESENTATIONS_ID="1241"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1181" REPRESENTATIONS_ID="1242"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1182" REPRESENTATIONS_ID="1243"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1183" REPRESENTATIONS_ID="1244"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1184" REPRESENTATIONS_ID="1245"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1185" REPRESENTATIONS_ID="1246"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1186" REPRESENTATIONS_ID="1247"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1187" REPRESENTATIONS_ID="1248"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1188" REPRESENTATIONS_ID="1249"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1189" REPRESENTATIONS_ID="1250"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1190" REPRESENTATIONS_ID="1251"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1191" REPRESENTATIONS_ID="1252"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1192" REPRESENTATIONS_ID="1253"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1193" REPRESENTATIONS_ID="1254"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1194" REPRESENTATIONS_ID="1255"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1195" REPRESENTATIONS_ID="1256"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1196" REPRESENTATIONS_ID="1257"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1197" REPRESENTATIONS_ID="1258"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1198" REPRESENTATIONS_ID="1259"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1199" REPRESENTATIONS_ID="1260"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1200" REPRESENTATIONS_ID="1261"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1201" REPRESENTATIONS_ID="1262"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1202" REPRESENTATIONS_ID="1263"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1203" REPRESENTATIONS_ID="1264"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1204" REPRESENTATIONS_ID="1265"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1205" REPRESENTATIONS_ID="1266"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1206" REPRESENTATIONS_ID="1267"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1207" REPRESENTATIONS_ID="1268"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1208" REPRESENTATIONS_ID="1269"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1209" REPRESENTATIONS_ID="1270"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1210" REPRESENTATIONS_ID="1271"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1211" REPRESENTATIONS_ID="1272"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1212" REPRESENTATIONS_ID="1273"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1213" REPRESENTATIONS_ID="1274"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1214" REPRESENTATIONS_ID="1275"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1215" REPRESENTATIONS_ID="1276"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1216" REPRESENTATIONS_ID="1277"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1217" REPRESENTATIONS_ID="1278"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1218" REPRESENTATIONS_ID="1279"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1219" REPRESENTATIONS_ID="1280"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1220" REPRESENTATIONS_ID="1281"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1221" REPRESENTATIONS_ID="1282"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1222" REPRESENTATIONS_ID="1283"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1223" REPRESENTATIONS_ID="1284"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1224" REPRESENTATIONS_ID="1285"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1225" REPRESENTATIONS_ID="1286"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1226" REPRESENTATIONS_ID="1287"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1227" REPRESENTATIONS_ID="1288"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1228" REPRESENTATIONS_ID="1289"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1229" REPRESENTATIONS_ID="1290"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1230" REPRESENTATIONS_ID="1291"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1231" REPRESENTATIONS_ID="1292"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1232" REPRESENTATIONS_ID="1293"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1233" REPRESENTATIONS_ID="1294"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1234" REPRESENTATIONS_ID="1295"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1235" REPRESENTATIONS_ID="1296"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1236" REPRESENTATIONS_ID="1297"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1237" REPRESENTATIONS_ID="1298"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1238" REPRESENTATIONS_ID="1299"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1239" REPRESENTATIONS_ID="1300"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1240" REPRESENTATIONS_ID="1301"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1241" REPRESENTATIONS_ID="1302"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1242" REPRESENTATIONS_ID="1303"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1243" REPRESENTATIONS_ID="1304"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1244" REPRESENTATIONS_ID="1305"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1245" REPRESENTATIONS_ID="1306"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1246" REPRESENTATIONS_ID="1307"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1247" REPRESENTATIONS_ID="1308"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1248" REPRESENTATIONS_ID="1309"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1249" REPRESENTATIONS_ID="1310"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1250" REPRESENTATIONS_ID="1311"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1251" REPRESENTATIONS_ID="1312"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1252" REPRESENTATIONS_ID="1313"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1253" REPRESENTATIONS_ID="1314"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1254" REPRESENTATIONS_ID="1315"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1255" REPRESENTATIONS_ID="1316"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1256" REPRESENTATIONS_ID="1317"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1257" REPRESENTATIONS_ID="1318"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1258" REPRESENTATIONS_ID="1319"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1259" REPRESENTATIONS_ID="1320"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1260" REPRESENTATIONS_ID="1321"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1261" REPRESENTATIONS_ID="1322"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1262" REPRESENTATIONS_ID="1323"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1263" REPRESENTATIONS_ID="1324"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1264" REPRESENTATIONS_ID="1325"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1265" REPRESENTATIONS_ID="1326"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1266" REPRESENTATIONS_ID="1327"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1267" REPRESENTATIONS_ID="1328"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1268" REPRESENTATIONS_ID="1329"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1269" REPRESENTATIONS_ID="1330"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1270" REPRESENTATIONS_ID="1331"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1271" REPRESENTATIONS_ID="1332"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1272" REPRESENTATIONS_ID="1333"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1273" REPRESENTATIONS_ID="1334"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1274" REPRESENTATIONS_ID="1335"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1275" REPRESENTATIONS_ID="1336"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1276" REPRESENTATIONS_ID="1337"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1277" REPRESENTATIONS_ID="1338"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1278" REPRESENTATIONS_ID="1339"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1279" REPRESENTATIONS_ID="1340"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1280" REPRESENTATIONS_ID="1341"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1281" REPRESENTATIONS_ID="1342"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1282" REPRESENTATIONS_ID="1343"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1283" REPRESENTATIONS_ID="1344"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1284" REPRESENTATIONS_ID="1345"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1285" REPRESENTATIONS_ID="1346"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1286" REPRESENTATIONS_ID="1347"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1287" REPRESENTATIONS_ID="1348"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1288" REPRESENTATIONS_ID="1349"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1289" REPRESENTATIONS_ID="1350"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1290" REPRESENTATIONS_ID="1351"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1291" REPRESENTATIONS_ID="1352"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1292" REPRESENTATIONS_ID="1353"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1293" REPRESENTATIONS_ID="1354"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1294" REPRESENTATIONS_ID="1355"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1295" REPRESENTATIONS_ID="1356"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1296" REPRESENTATIONS_ID="1357"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1297" REPRESENTATIONS_ID="1358"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1298" REPRESENTATIONS_ID="1359"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1299" REPRESENTATIONS_ID="1360"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1300" REPRESENTATIONS_ID="1361"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1301" REPRESENTATIONS_ID="1362"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1302" REPRESENTATIONS_ID="1363"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1303" REPRESENTATIONS_ID="1364"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1304" REPRESENTATIONS_ID="1365"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1305" REPRESENTATIONS_ID="1366"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1306" REPRESENTATIONS_ID="1367"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1307" REPRESENTATIONS_ID="1368"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1308" REPRESENTATIONS_ID="1369"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1309" REPRESENTATIONS_ID="1370"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1310" REPRESENTATIONS_ID="1371"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1311" REPRESENTATIONS_ID="1372"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1312" REPRESENTATIONS_ID="1373"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1313" REPRESENTATIONS_ID="1374"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1314" REPRESENTATIONS_ID="1375"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1315" REPRESENTATIONS_ID="1376"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1316" REPRESENTATIONS_ID="1377"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1317" REPRESENTATIONS_ID="1378"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1318" REPRESENTATIONS_ID="1379"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1319" REPRESENTATIONS_ID="1380"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1320" REPRESENTATIONS_ID="1381"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1321" REPRESENTATIONS_ID="1382"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1322" REPRESENTATIONS_ID="1383"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1323" REPRESENTATIONS_ID="1384"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1324" REPRESENTATIONS_ID="1385"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1325" REPRESENTATIONS_ID="1386"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1326" REPRESENTATIONS_ID="1387"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1327" REPRESENTATIONS_ID="1388"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1328" REPRESENTATIONS_ID="1389"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1329" REPRESENTATIONS_ID="1390"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1330" REPRESENTATIONS_ID="1391"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1331" REPRESENTATIONS_ID="1392"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1332" REPRESENTATIONS_ID="1393"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1333" REPRESENTATIONS_ID="1394"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1334" REPRESENTATIONS_ID="1395"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1335" REPRESENTATIONS_ID="1396"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1336" REPRESENTATIONS_ID="1397"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1337" REPRESENTATIONS_ID="1398"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1338" REPRESENTATIONS_ID="1399"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1339" REPRESENTATIONS_ID="1400"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1340" REPRESENTATIONS_ID="1401"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1341" REPRESENTATIONS_ID="1402"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1342" REPRESENTATIONS_ID="1403"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1343" REPRESENTATIONS_ID="1404"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1344" REPRESENTATIONS_ID="1405"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1345" REPRESENTATIONS_ID="1406"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1346" REPRESENTATIONS_ID="1407"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1347" REPRESENTATIONS_ID="1408"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1348" REPRESENTATIONS_ID="1409"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1349" REPRESENTATIONS_ID="1410"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1350" REPRESENTATIONS_ID="1411"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1351" REPRESENTATIONS_ID="1412"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1352" REPRESENTATIONS_ID="1413"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1353" REPRESENTATIONS_ID="1414"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1354" REPRESENTATIONS_ID="1415"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1355" REPRESENTATIONS_ID="1416"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1356" REPRESENTATIONS_ID="1417"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1357" REPRESENTATIONS_ID="1418"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1358" REPRESENTATIONS_ID="1419"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1359" REPRESENTATIONS_ID="1420"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1360" REPRESENTATIONS_ID="1421"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1361" REPRESENTATIONS_ID="1422"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1362" REPRESENTATIONS_ID="1423"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1363" REPRESENTATIONS_ID="1424"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1364" REPRESENTATIONS_ID="1425"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1365" REPRESENTATIONS_ID="1426"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1366" REPRESENTATIONS_ID="1427"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1367" REPRESENTATIONS_ID="1428"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1368" REPRESENTATIONS_ID="1429"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1369" REPRESENTATIONS_ID="1430"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1370" REPRESENTATIONS_ID="1431"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1371" REPRESENTATIONS_ID="1432"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1372" REPRESENTATIONS_ID="1433"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1373" REPRESENTATIONS_ID="1434"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1374" REPRESENTATIONS_ID="1435"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1375" REPRESENTATIONS_ID="1436"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1376" REPRESENTATIONS_ID="1437"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1377" REPRESENTATIONS_ID="1438"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1378" REPRESENTATIONS_ID="1439"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1379" REPRESENTATIONS_ID="1440"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1380" REPRESENTATIONS_ID="1441"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1381" REPRESENTATIONS_ID="1442"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1382" REPRESENTATIONS_ID="1443"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1383" REPRESENTATIONS_ID="1444"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1384" REPRESENTATIONS_ID="1445"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1385" REPRESENTATIONS_ID="1446"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1386" REPRESENTATIONS_ID="1447"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1387" REPRESENTATIONS_ID="1448"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1388" REPRESENTATIONS_ID="1449"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1389" REPRESENTATIONS_ID="1450"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1390" REPRESENTATIONS_ID="1451"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1391" REPRESENTATIONS_ID="1452"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1392" REPRESENTATIONS_ID="1453"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1393" REPRESENTATIONS_ID="1454"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1394" REPRESENTATIONS_ID="1455"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1395" REPRESENTATIONS_ID="1456"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1396" REPRESENTATIONS_ID="1457"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1397" REPRESENTATIONS_ID="1458"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1398" REPRESENTATIONS_ID="1459"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1399" REPRESENTATIONS_ID="1460"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1400" REPRESENTATIONS_ID="1461"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1401" REPRESENTATIONS_ID="1462"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1402" REPRESENTATIONS_ID="1463"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1403" REPRESENTATIONS_ID="1464"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1404" REPRESENTATIONS_ID="1465"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1405" REPRESENTATIONS_ID="1466"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1406" REPRESENTATIONS_ID="1467"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1407" REPRESENTATIONS_ID="1468"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1408" REPRESENTATIONS_ID="1469"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1409" REPRESENTATIONS_ID="1470"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1410" REPRESENTATIONS_ID="1471"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1411" REPRESENTATIONS_ID="1472"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1412" REPRESENTATIONS_ID="1473"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1413" REPRESENTATIONS_ID="1474"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1414" REPRESENTATIONS_ID="1475"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1415" REPRESENTATIONS_ID="1476"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1416" REPRESENTATIONS_ID="1477"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1417" REPRESENTATIONS_ID="1478"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1418" REPRESENTATIONS_ID="1479"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1419" REPRESENTATIONS_ID="1480"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1420" REPRESENTATIONS_ID="1481"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1421" REPRESENTATIONS_ID="1482"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1422" REPRESENTATIONS_ID="1483"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1423" REPRESENTATIONS_ID="1484"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1424" REPRESENTATIONS_ID="1485"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1425" REPRESENTATIONS_ID="1486"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1426" REPRESENTATIONS_ID="1487"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1427" REPRESENTATIONS_ID="1488"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1428" REPRESENTATIONS_ID="1489"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1429" REPRESENTATIONS_ID="1490"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1430" REPRESENTATIONS_ID="1491"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1431" REPRESENTATIONS_ID="1492"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1432" REPRESENTATIONS_ID="1493"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1433" REPRESENTATIONS_ID="1494"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1434" REPRESENTATIONS_ID="1495"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1435" REPRESENTATIONS_ID="1496"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1436" REPRESENTATIONS_ID="1497"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1437" REPRESENTATIONS_ID="1498"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1438" REPRESENTATIONS_ID="1499"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1439" REPRESENTATIONS_ID="1500"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1440" REPRESENTATIONS_ID="1501"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1441" REPRESENTATIONS_ID="1502"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1442" REPRESENTATIONS_ID="1503"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1443" REPRESENTATIONS_ID="1504"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1444" REPRESENTATIONS_ID="1505"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1445" REPRESENTATIONS_ID="1506"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1446" REPRESENTATIONS_ID="1507"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1447" REPRESENTATIONS_ID="1508"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1448" REPRESENTATIONS_ID="1509"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1449" REPRESENTATIONS_ID="1510"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1450" REPRESENTATIONS_ID="1511"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1451" REPRESENTATIONS_ID="1512"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1452" REPRESENTATIONS_ID="1513"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1453" REPRESENTATIONS_ID="1514"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1454" REPRESENTATIONS_ID="1515"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1455" REPRESENTATIONS_ID="1516"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1456" REPRESENTATIONS_ID="1517"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1457" REPRESENTATIONS_ID="1518"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1458" REPRESENTATIONS_ID="1519"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1459" REPRESENTATIONS_ID="1520"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1460" REPRESENTATIONS_ID="1521"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1461" REPRESENTATIONS_ID="1522"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1462" REPRESENTATIONS_ID="1523"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1463" REPRESENTATIONS_ID="1524"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1464" REPRESENTATIONS_ID="1525"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1465" REPRESENTATIONS_ID="1526"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1466" REPRESENTATIONS_ID="1527"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1467" REPRESENTATIONS_ID="1528"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1468" REPRESENTATIONS_ID="1529"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1469" REPRESENTATIONS_ID="1530"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1470" REPRESENTATIONS_ID="1531"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1471" REPRESENTATIONS_ID="1532"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1472" REPRESENTATIONS_ID="1533"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1473" REPRESENTATIONS_ID="1534"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1474" REPRESENTATIONS_ID="1535"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1475" REPRESENTATIONS_ID="1536"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1476" REPRESENTATIONS_ID="1537"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1477" REPRESENTATIONS_ID="1538"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1478" REPRESENTATIONS_ID="1539"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1479" REPRESENTATIONS_ID="1540"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1480" REPRESENTATIONS_ID="1541"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1481" REPRESENTATIONS_ID="1542"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1482" REPRESENTATIONS_ID="1543"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1483" REPRESENTATIONS_ID="1544"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1484" REPRESENTATIONS_ID="1545"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1485" REPRESENTATIONS_ID="1546"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1486" REPRESENTATIONS_ID="1547"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1487" REPRESENTATIONS_ID="1548"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1488" REPRESENTATIONS_ID="1549"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1489" REPRESENTATIONS_ID="1550"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1490" REPRESENTATIONS_ID="1551"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1491" REPRESENTATIONS_ID="1552"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1492" REPRESENTATIONS_ID="1553"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1493" REPRESENTATIONS_ID="1554"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1494" REPRESENTATIONS_ID="1555"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1495" REPRESENTATIONS_ID="1556"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1496" REPRESENTATIONS_ID="1557"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1497" REPRESENTATIONS_ID="1558"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1498" REPRESENTATIONS_ID="1559"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1499" REPRESENTATIONS_ID="1560"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1500" REPRESENTATIONS_ID="1561"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1501" REPRESENTATIONS_ID="1562"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1502" REPRESENTATIONS_ID="1563"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1503" REPRESENTATIONS_ID="1564"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1504" REPRESENTATIONS_ID="1565"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1505" REPRESENTATIONS_ID="1566"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1506" REPRESENTATIONS_ID="1567"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1507" REPRESENTATIONS_ID="1568"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1508" REPRESENTATIONS_ID="1569"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1509" REPRESENTATIONS_ID="1570"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1510" REPRESENTATIONS_ID="1571"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1511" REPRESENTATIONS_ID="1572"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1512" REPRESENTATIONS_ID="1573"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1513" REPRESENTATIONS_ID="1574"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1514" REPRESENTATIONS_ID="1575"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1515" REPRESENTATIONS_ID="1576"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1516" REPRESENTATIONS_ID="1577"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1517" REPRESENTATIONS_ID="1578"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1518" REPRESENTATIONS_ID="1579"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1519" REPRESENTATIONS_ID="1580"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1520" REPRESENTATIONS_ID="1581"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1521" REPRESENTATIONS_ID="1582"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1522" REPRESENTATIONS_ID="1583"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1523" REPRESENTATIONS_ID="1584"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1524" REPRESENTATIONS_ID="1585"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1525" REPRESENTATIONS_ID="1586"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1526" REPRESENTATIONS_ID="1587"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1527" REPRESENTATIONS_ID="1588"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1528" REPRESENTATIONS_ID="1589"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1529" REPRESENTATIONS_ID="1590"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1530" REPRESENTATIONS_ID="1591"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1531" REPRESENTATIONS_ID="1592"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1532" REPRESENTATIONS_ID="1593"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1533" REPRESENTATIONS_ID="1594"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1534" REPRESENTATIONS_ID="1595"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1535" REPRESENTATIONS_ID="1596"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1536" REPRESENTATIONS_ID="1597"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1537" REPRESENTATIONS_ID="1598"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1538" REPRESENTATIONS_ID="1599"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1539" REPRESENTATIONS_ID="1600"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1540" REPRESENTATIONS_ID="1601"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1541" REPRESENTATIONS_ID="1602"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1542" REPRESENTATIONS_ID="1603"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1543" REPRESENTATIONS_ID="1604"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1544" REPRESENTATIONS_ID="1605"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1545" REPRESENTATIONS_ID="1606"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1546" REPRESENTATIONS_ID="1607"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1547" REPRESENTATIONS_ID="1608"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1548" REPRESENTATIONS_ID="1609"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1549" REPRESENTATIONS_ID="1610"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1550" REPRESENTATIONS_ID="1611"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1551" REPRESENTATIONS_ID="1612"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1552" REPRESENTATIONS_ID="1613"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1553" REPRESENTATIONS_ID="1614"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1554" REPRESENTATIONS_ID="1615"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1555" REPRESENTATIONS_ID="1616"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1556" REPRESENTATIONS_ID="1617"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1557" REPRESENTATIONS_ID="1618"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1558" REPRESENTATIONS_ID="1619"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1559" REPRESENTATIONS_ID="1620"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1560" REPRESENTATIONS_ID="1621"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1561" REPRESENTATIONS_ID="1622"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1562" REPRESENTATIONS_ID="1623"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1563" REPRESENTATIONS_ID="1624"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1564" REPRESENTATIONS_ID="1625"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1565" REPRESENTATIONS_ID="1626"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1566" REPRESENTATIONS_ID="1627"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1567" REPRESENTATIONS_ID="1628"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1568" REPRESENTATIONS_ID="1629"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1569" REPRESENTATIONS_ID="1630"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1570" REPRESENTATIONS_ID="1631"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1571" REPRESENTATIONS_ID="1632"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1572" REPRESENTATIONS_ID="1633"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1573" REPRESENTATIONS_ID="1634"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1574" REPRESENTATIONS_ID="1635"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1575" REPRESENTATIONS_ID="1636"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1576" REPRESENTATIONS_ID="1637"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1577" REPRESENTATIONS_ID="1638"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1578" REPRESENTATIONS_ID="1639"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1579" REPRESENTATIONS_ID="1640"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1580" REPRESENTATIONS_ID="1641"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1581" REPRESENTATIONS_ID="1642"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1582" REPRESENTATIONS_ID="1643"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1583" REPRESENTATIONS_ID="1644"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1584" REPRESENTATIONS_ID="1645"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1585" REPRESENTATIONS_ID="1646"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1586" REPRESENTATIONS_ID="1647"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1587" REPRESENTATIONS_ID="1648"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1588" REPRESENTATIONS_ID="1649"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1589" REPRESENTATIONS_ID="1650"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1590" REPRESENTATIONS_ID="1651"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1591" REPRESENTATIONS_ID="1652"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1592" REPRESENTATIONS_ID="1653"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1593" REPRESENTATIONS_ID="1654"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1594" REPRESENTATIONS_ID="1655"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1595" REPRESENTATIONS_ID="1656"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1596" REPRESENTATIONS_ID="1657"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1597" REPRESENTATIONS_ID="1658"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1598" REPRESENTATIONS_ID="1659"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1599" REPRESENTATIONS_ID="1660"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1600" REPRESENTATIONS_ID="1661"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1601" REPRESENTATIONS_ID="1662"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1602" REPRESENTATIONS_ID="1663"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1603" REPRESENTATIONS_ID="1664"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1604" REPRESENTATIONS_ID="1665"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1605" REPRESENTATIONS_ID="1666"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1606" REPRESENTATIONS_ID="1667"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1607" REPRESENTATIONS_ID="1668"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1608" REPRESENTATIONS_ID="1669"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1609" REPRESENTATIONS_ID="1670"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1610" REPRESENTATIONS_ID="1671"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1611" REPRESENTATIONS_ID="1672"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1612" REPRESENTATIONS_ID="1673"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1613" REPRESENTATIONS_ID="1674"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1614" REPRESENTATIONS_ID="1675"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1615" REPRESENTATIONS_ID="1676"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1616" REPRESENTATIONS_ID="1677"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1617" REPRESENTATIONS_ID="1678"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1618" REPRESENTATIONS_ID="1679"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1619" REPRESENTATIONS_ID="1680"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1620" REPRESENTATIONS_ID="1681"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1621" REPRESENTATIONS_ID="1682"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1622" REPRESENTATIONS_ID="1683"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1623" REPRESENTATIONS_ID="1684"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1624" REPRESENTATIONS_ID="1685"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1625" REPRESENTATIONS_ID="1686"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1626" REPRESENTATIONS_ID="1687"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1627" REPRESENTATIONS_ID="1688"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1628" REPRESENTATIONS_ID="1689"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1629" REPRESENTATIONS_ID="1690"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1630" REPRESENTATIONS_ID="1691"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1631" REPRESENTATIONS_ID="1692"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1632" REPRESENTATIONS_ID="1693"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1633" REPRESENTATIONS_ID="1694"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1634" REPRESENTATIONS_ID="1695"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1635" REPRESENTATIONS_ID="1696"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1636" REPRESENTATIONS_ID="1697"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1637" REPRESENTATIONS_ID="1698"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1638" REPRESENTATIONS_ID="1699"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1639" REPRESENTATIONS_ID="1700"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1640" REPRESENTATIONS_ID="1701"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1641" REPRESENTATIONS_ID="1702"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1642" REPRESENTATIONS_ID="1703"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1643" REPRESENTATIONS_ID="1704"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1644" REPRESENTATIONS_ID="1705"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1645" REPRESENTATIONS_ID="1706"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1646" REPRESENTATIONS_ID="1707"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1647" REPRESENTATIONS_ID="1708"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1648" REPRESENTATIONS_ID="1709"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1649" REPRESENTATIONS_ID="1710"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1650" REPRESENTATIONS_ID="1711"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1651" REPRESENTATIONS_ID="1712"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1652" REPRESENTATIONS_ID="1713"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1653" REPRESENTATIONS_ID="1714"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1654" REPRESENTATIONS_ID="1715"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1655" REPRESENTATIONS_ID="1716"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1656" REPRESENTATIONS_ID="1717"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1657" REPRESENTATIONS_ID="1718"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1658" REPRESENTATIONS_ID="1719"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1659" REPRESENTATIONS_ID="1720"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1660" REPRESENTATIONS_ID="1721"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1661" REPRESENTATIONS_ID="1722"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1662" REPRESENTATIONS_ID="1723"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1663" REPRESENTATIONS_ID="1724"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1664" REPRESENTATIONS_ID="1725"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1665" REPRESENTATIONS_ID="1726"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1666" REPRESENTATIONS_ID="1727"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1667" REPRESENTATIONS_ID="1728"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1668" REPRESENTATIONS_ID="1729"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1669" REPRESENTATIONS_ID="1730"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1670" REPRESENTATIONS_ID="1731"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1671" REPRESENTATIONS_ID="1732"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1672" REPRESENTATIONS_ID="1733"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1673" REPRESENTATIONS_ID="1734"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1674" REPRESENTATIONS_ID="1735"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1675" REPRESENTATIONS_ID="1736"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1676" REPRESENTATIONS_ID="1737"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1677" REPRESENTATIONS_ID="1738"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1678" REPRESENTATIONS_ID="1739"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1679" REPRESENTATIONS_ID="1740"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1680" REPRESENTATIONS_ID="1741"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1681" REPRESENTATIONS_ID="1742"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1682" REPRESENTATIONS_ID="1743"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1683" REPRESENTATIONS_ID="1744"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1684" REPRESENTATIONS_ID="1745"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1685" REPRESENTATIONS_ID="1746"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1686" REPRESENTATIONS_ID="1747"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1687" REPRESENTATIONS_ID="1748"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1688" REPRESENTATIONS_ID="1749"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1689" REPRESENTATIONS_ID="1750"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1690" REPRESENTATIONS_ID="1751"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1691" REPRESENTATIONS_ID="1752"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1692" REPRESENTATIONS_ID="1753"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1693" REPRESENTATIONS_ID="1754"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1694" REPRESENTATIONS_ID="1755"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1695" REPRESENTATIONS_ID="1756"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1696" REPRESENTATIONS_ID="1757"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1697" REPRESENTATIONS_ID="1758"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1698" REPRESENTATIONS_ID="1759"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1699" REPRESENTATIONS_ID="1760"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1700" REPRESENTATIONS_ID="1761"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1701" REPRESENTATIONS_ID="1762"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1702" REPRESENTATIONS_ID="1763"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1703" REPRESENTATIONS_ID="1764"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1704" REPRESENTATIONS_ID="1765"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1705" REPRESENTATIONS_ID="1766"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1706" REPRESENTATIONS_ID="1767"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1707" REPRESENTATIONS_ID="1768"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1708" REPRESENTATIONS_ID="1769"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1709" REPRESENTATIONS_ID="1770"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1710" REPRESENTATIONS_ID="1771"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1711" REPRESENTATIONS_ID="1772"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1712" REPRESENTATIONS_ID="1773"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1713" REPRESENTATIONS_ID="1774"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1714" REPRESENTATIONS_ID="1775"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1715" REPRESENTATIONS_ID="1776"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1716" REPRESENTATIONS_ID="1777"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1717" REPRESENTATIONS_ID="1778"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1718" REPRESENTATIONS_ID="1779"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1719" REPRESENTATIONS_ID="1780"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1720" REPRESENTATIONS_ID="1781"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1721" REPRESENTATIONS_ID="1782"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1722" REPRESENTATIONS_ID="1783"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1723" REPRESENTATIONS_ID="1784"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1724" REPRESENTATIONS_ID="1785"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1725" REPRESENTATIONS_ID="1786"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1726" REPRESENTATIONS_ID="1787"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1727" REPRESENTATIONS_ID="1788"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1728" REPRESENTATIONS_ID="1789"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1729" REPRESENTATIONS_ID="1790"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1730" REPRESENTATIONS_ID="1791"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1731" REPRESENTATIONS_ID="1792"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1732" REPRESENTATIONS_ID="1793"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1733" REPRESENTATIONS_ID="1794"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1734" REPRESENTATIONS_ID="1795"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1735" REPRESENTATIONS_ID="1796"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1736" REPRESENTATIONS_ID="1797"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1737" REPRESENTATIONS_ID="1798"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1738" REPRESENTATIONS_ID="1799"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1739" REPRESENTATIONS_ID="1800"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1740" REPRESENTATIONS_ID="1801"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1741" REPRESENTATIONS_ID="1802"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1742" REPRESENTATIONS_ID="1803"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1743" REPRESENTATIONS_ID="1804"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1744" REPRESENTATIONS_ID="1805"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1745" REPRESENTATIONS_ID="1806"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1746" REPRESENTATIONS_ID="1807"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1747" REPRESENTATIONS_ID="1808"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1748" REPRESENTATIONS_ID="1809"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1749" REPRESENTATIONS_ID="1810"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1750" REPRESENTATIONS_ID="1811"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1751" REPRESENTATIONS_ID="1812"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1752" REPRESENTATIONS_ID="1813"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1753" REPRESENTATIONS_ID="1814"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1754" REPRESENTATIONS_ID="1815"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1755" REPRESENTATIONS_ID="1816"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1756" REPRESENTATIONS_ID="1817"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1757" REPRESENTATIONS_ID="1818"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1758" REPRESENTATIONS_ID="1819"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1759" REPRESENTATIONS_ID="1820"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1760" REPRESENTATIONS_ID="1821"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1761" REPRESENTATIONS_ID="1822"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1762" REPRESENTATIONS_ID="1823"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1763" REPRESENTATIONS_ID="1824"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1764" REPRESENTATIONS_ID="1825"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1765" REPRESENTATIONS_ID="1826"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1766" REPRESENTATIONS_ID="1827"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1767" REPRESENTATIONS_ID="1828"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1768" REPRESENTATIONS_ID="1829"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1769" REPRESENTATIONS_ID="1830"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1770" REPRESENTATIONS_ID="1831"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1771" REPRESENTATIONS_ID="1832"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1772" REPRESENTATIONS_ID="1833"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1773" REPRESENTATIONS_ID="1834"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1774" REPRESENTATIONS_ID="1835"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1775" REPRESENTATIONS_ID="1836"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1776" REPRESENTATIONS_ID="1837"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1777" REPRESENTATIONS_ID="1838"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1778" REPRESENTATIONS_ID="1839"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1779" REPRESENTATIONS_ID="1840"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1780" REPRESENTATIONS_ID="1841"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1781" REPRESENTATIONS_ID="1842"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1782" REPRESENTATIONS_ID="1843"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1783" REPRESENTATIONS_ID="1844"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1784" REPRESENTATIONS_ID="1845"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1785" REPRESENTATIONS_ID="1846"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1786" REPRESENTATIONS_ID="1847"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1787" REPRESENTATIONS_ID="1848"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1788" REPRESENTATIONS_ID="1849"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1789" REPRESENTATIONS_ID="1850"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1790" REPRESENTATIONS_ID="1851"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1791" REPRESENTATIONS_ID="1852"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1792" REPRESENTATIONS_ID="1853"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1793" REPRESENTATIONS_ID="1854"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1794" REPRESENTATIONS_ID="1855"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1795" REPRESENTATIONS_ID="1856"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1796" REPRESENTATIONS_ID="1857"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1797" REPRESENTATIONS_ID="1858"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1798" REPRESENTATIONS_ID="1859"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1799" REPRESENTATIONS_ID="1860"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1800" REPRESENTATIONS_ID="1861"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1801" REPRESENTATIONS_ID="1862"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1802" REPRESENTATIONS_ID="1863"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1803" REPRESENTATIONS_ID="1864"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1804" REPRESENTATIONS_ID="1865"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1805" REPRESENTATIONS_ID="1866"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1806" REPRESENTATIONS_ID="1867"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1807" REPRESENTATIONS_ID="1868"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1808" REPRESENTATIONS_ID="1869"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1809" REPRESENTATIONS_ID="1870"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1810" REPRESENTATIONS_ID="1871"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1811" REPRESENTATIONS_ID="1872"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1812" REPRESENTATIONS_ID="1873"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1813" REPRESENTATIONS_ID="1874"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1814" REPRESENTATIONS_ID="1875"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1815" REPRESENTATIONS_ID="1876"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1816" REPRESENTATIONS_ID="1877"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1817" REPRESENTATIONS_ID="1878"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1818" REPRESENTATIONS_ID="1879"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1819" REPRESENTATIONS_ID="1880"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1820" REPRESENTATIONS_ID="1881"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1821" REPRESENTATIONS_ID="1882"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1822" REPRESENTATIONS_ID="1883"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1823" REPRESENTATIONS_ID="1884"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1824" REPRESENTATIONS_ID="1885"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1825" REPRESENTATIONS_ID="1886"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1826" REPRESENTATIONS_ID="1887"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1827" REPRESENTATIONS_ID="1888"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1828" REPRESENTATIONS_ID="1889"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1829" REPRESENTATIONS_ID="1890"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1830" REPRESENTATIONS_ID="1891"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1831" REPRESENTATIONS_ID="1892"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1832" REPRESENTATIONS_ID="1893"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1833" REPRESENTATIONS_ID="1894"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1834" REPRESENTATIONS_ID="1895"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1835" REPRESENTATIONS_ID="1896"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1836" REPRESENTATIONS_ID="1897"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1837" REPRESENTATIONS_ID="1898"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1838" REPRESENTATIONS_ID="1899"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1839" REPRESENTATIONS_ID="1900"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1840" REPRESENTATIONS_ID="1901"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1841" REPRESENTATIONS_ID="1902"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1842" REPRESENTATIONS_ID="1903"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1843" REPRESENTATIONS_ID="1904"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1844" REPRESENTATIONS_ID="1905"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1845" REPRESENTATIONS_ID="1906"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1846" REPRESENTATIONS_ID="1907"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1847" REPRESENTATIONS_ID="1908"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1848" REPRESENTATIONS_ID="1909"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1849" REPRESENTATIONS_ID="1910"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1850" REPRESENTATIONS_ID="1911"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1851" REPRESENTATIONS_ID="1912"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1852" REPRESENTATIONS_ID="1913"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1853" REPRESENTATIONS_ID="1914"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1854" REPRESENTATIONS_ID="1915"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1855" REPRESENTATIONS_ID="1916"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1856" REPRESENTATIONS_ID="1917"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1857" REPRESENTATIONS_ID="1918"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1858" REPRESENTATIONS_ID="1919"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1859" REPRESENTATIONS_ID="1920"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1860" REPRESENTATIONS_ID="1921"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1861" REPRESENTATIONS_ID="1922"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1862" REPRESENTATIONS_ID="1923"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1863" REPRESENTATIONS_ID="1924"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1864" REPRESENTATIONS_ID="1925"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1865" REPRESENTATIONS_ID="1926"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1866" REPRESENTATIONS_ID="1927"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1867" REPRESENTATIONS_ID="1928"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1868" REPRESENTATIONS_ID="1929"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1869" REPRESENTATIONS_ID="1930"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1870" REPRESENTATIONS_ID="1931"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1871" REPRESENTATIONS_ID="1932"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1872" REPRESENTATIONS_ID="1933"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1873" REPRESENTATIONS_ID="1934"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1874" REPRESENTATIONS_ID="1935"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1875" REPRESENTATIONS_ID="1936"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1876" REPRESENTATIONS_ID="1937"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1877" REPRESENTATIONS_ID="1938"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1878" REPRESENTATIONS_ID="1939"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1879" REPRESENTATIONS_ID="1940"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1880" REPRESENTATIONS_ID="1941"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1881" REPRESENTATIONS_ID="1942"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1882" REPRESENTATIONS_ID="1943"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1883" REPRESENTATIONS_ID="1944"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1884" REPRESENTATIONS_ID="1945"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1885" REPRESENTATIONS_ID="1946"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1886" REPRESENTATIONS_ID="1947"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1887" REPRESENTATIONS_ID="1948"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1888" REPRESENTATIONS_ID="1949"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1889" REPRESENTATIONS_ID="1950"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1890" REPRESENTATIONS_ID="1951"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1891" REPRESENTATIONS_ID="1952"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1892" REPRESENTATIONS_ID="1953"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1893" REPRESENTATIONS_ID="1954"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1894" REPRESENTATIONS_ID="1955"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1895" REPRESENTATIONS_ID="1956"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1896" REPRESENTATIONS_ID="1957"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1897" REPRESENTATIONS_ID="1958"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1898" REPRESENTATIONS_ID="1959"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1899" REPRESENTATIONS_ID="1960"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1900" REPRESENTATIONS_ID="1961"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1901" REPRESENTATIONS_ID="1962"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1902" REPRESENTATIONS_ID="1963"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1903" REPRESENTATIONS_ID="1964"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1904" REPRESENTATIONS_ID="1965"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1905" REPRESENTATIONS_ID="1966"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1906" REPRESENTATIONS_ID="1967"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1907" REPRESENTATIONS_ID="1968"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1908" REPRESENTATIONS_ID="1969"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1909" REPRESENTATIONS_ID="1970"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1910" REPRESENTATIONS_ID="1971"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1911" REPRESENTATIONS_ID="1972"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1912" REPRESENTATIONS_ID="1973"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1913" REPRESENTATIONS_ID="1974"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1914" REPRESENTATIONS_ID="1975"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1915" REPRESENTATIONS_ID="1976"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1916" REPRESENTATIONS_ID="1977"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1917" REPRESENTATIONS_ID="1978"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1918" REPRESENTATIONS_ID="1979"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1919" REPRESENTATIONS_ID="1980"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1920" REPRESENTATIONS_ID="1981"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1921" REPRESENTATIONS_ID="1982"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1922" REPRESENTATIONS_ID="1983"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1923" REPRESENTATIONS_ID="1984"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1924" REPRESENTATIONS_ID="1985"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1925" REPRESENTATIONS_ID="1986"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1926" REPRESENTATIONS_ID="1987"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1927" REPRESENTATIONS_ID="1988"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1928" REPRESENTATIONS_ID="1989"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1929" REPRESENTATIONS_ID="1990"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1930" REPRESENTATIONS_ID="1991"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1931" REPRESENTATIONS_ID="1992"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1932" REPRESENTATIONS_ID="1993"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1933" REPRESENTATIONS_ID="1994"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1934" REPRESENTATIONS_ID="1995"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1935" REPRESENTATIONS_ID="1996"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1936" REPRESENTATIONS_ID="1997"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1937" REPRESENTATIONS_ID="1998"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1938" REPRESENTATIONS_ID="1999"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1939" REPRESENTATIONS_ID="2000"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1940" REPRESENTATIONS_ID="2001"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1941" REPRESENTATIONS_ID="2002"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1942" REPRESENTATIONS_ID="2003"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1943" REPRESENTATIONS_ID="2004"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1944" REPRESENTATIONS_ID="2005"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1945" REPRESENTATIONS_ID="2006"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1946" REPRESENTATIONS_ID="2007"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1947" REPRESENTATIONS_ID="2008"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1948" REPRESENTATIONS_ID="2009"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1949" REPRESENTATIONS_ID="2010"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1950" REPRESENTATIONS_ID="2011"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1951" REPRESENTATIONS_ID="2012"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1952" REPRESENTATIONS_ID="2013"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1953" REPRESENTATIONS_ID="2014"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1954" REPRESENTATIONS_ID="2015"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1955" REPRESENTATIONS_ID="2016"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1956" REPRESENTATIONS_ID="2017"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1957" REPRESENTATIONS_ID="2018"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1958" REPRESENTATIONS_ID="2019"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1959" REPRESENTATIONS_ID="2020"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1960" REPRESENTATIONS_ID="2021"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1961" REPRESENTATIONS_ID="2022"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1962" REPRESENTATIONS_ID="2023"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1963" REPRESENTATIONS_ID="2024"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1964" REPRESENTATIONS_ID="2025"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1965" REPRESENTATIONS_ID="2026"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1966" REPRESENTATIONS_ID="2027"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1967" REPRESENTATIONS_ID="2028"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1968" REPRESENTATIONS_ID="2029"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1969" REPRESENTATIONS_ID="2030"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1970" REPRESENTATIONS_ID="2031"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1971" REPRESENTATIONS_ID="2032"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1972" REPRESENTATIONS_ID="2033"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1973" REPRESENTATIONS_ID="2034"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1974" REPRESENTATIONS_ID="2035"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1975" REPRESENTATIONS_ID="2036"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1976" REPRESENTATIONS_ID="2037"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1977" REPRESENTATIONS_ID="2039"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1978" REPRESENTATIONS_ID="2040"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1979" REPRESENTATIONS_ID="2041"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1980" REPRESENTATIONS_ID="2042"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1981" REPRESENTATIONS_ID="2043"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1982" REPRESENTATIONS_ID="2044"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1983" REPRESENTATIONS_ID="2045"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1984" REPRESENTATIONS_ID="2046"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1985" REPRESENTATIONS_ID="2047"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1986" REPRESENTATIONS_ID="2048"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1987" REPRESENTATIONS_ID="2049"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1988" REPRESENTATIONS_ID="2050"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1989" REPRESENTATIONS_ID="2051"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1990" REPRESENTATIONS_ID="2052"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1991" REPRESENTATIONS_ID="2053"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1992" REPRESENTATIONS_ID="2054"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1993" REPRESENTATIONS_ID="2055"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1994" REPRESENTATIONS_ID="2056"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1995" REPRESENTATIONS_ID="2058"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1996" REPRESENTATIONS_ID="2060"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1997" REPRESENTATIONS_ID="2061"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1998" REPRESENTATIONS_ID="2063"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="1999" REPRESENTATIONS_ID="2064"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2000" REPRESENTATIONS_ID="2065"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2001" REPRESENTATIONS_ID="2066"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2002" REPRESENTATIONS_ID="2067"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2003" REPRESENTATIONS_ID="2068"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2004" REPRESENTATIONS_ID="2069"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2005" REPRESENTATIONS_ID="2070"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2006" REPRESENTATIONS_ID="2074"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2007" REPRESENTATIONS_ID="2075"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2008" REPRESENTATIONS_ID="2076"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2009" REPRESENTATIONS_ID="2077"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2010" REPRESENTATIONS_ID="2078"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2011" REPRESENTATIONS_ID="2079"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2012" REPRESENTATIONS_ID="2080"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2013" REPRESENTATIONS_ID="2081"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2014" REPRESENTATIONS_ID="2083"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2015" REPRESENTATIONS_ID="2084"/>\r
-  <DEFINEDTERMBASE_REPRESENTATION DEFINEDTERMBASE_ID="2016" REPRESENTATIONS_ID="2085"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="846" INVERSEREPRESENTATIONS_ID="854"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="847" INVERSEREPRESENTATIONS_ID="856"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="848" INVERSEREPRESENTATIONS_ID="858"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="849" INVERSEREPRESENTATIONS_ID="861"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="850" INVERSEREPRESENTATIONS_ID="863"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="851" INVERSEREPRESENTATIONS_ID="865"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="852" INVERSEREPRESENTATIONS_ID="867"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="853" INVERSEREPRESENTATIONS_ID="870"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="854" INVERSEREPRESENTATIONS_ID="872"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="855" INVERSEREPRESENTATIONS_ID="874"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="856" INVERSEREPRESENTATIONS_ID="876"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="857" INVERSEREPRESENTATIONS_ID="878"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="858" INVERSEREPRESENTATIONS_ID="880"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="859" INVERSEREPRESENTATIONS_ID="882"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="860" INVERSEREPRESENTATIONS_ID="884"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="861" INVERSEREPRESENTATIONS_ID="886"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="862" INVERSEREPRESENTATIONS_ID="888"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="863" INVERSEREPRESENTATIONS_ID="891"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="864" INVERSEREPRESENTATIONS_ID="893"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="865" INVERSEREPRESENTATIONS_ID="895"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="866" INVERSEREPRESENTATIONS_ID="897"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="867" INVERSEREPRESENTATIONS_ID="899"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="868" INVERSEREPRESENTATIONS_ID="901"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="869" INVERSEREPRESENTATIONS_ID="903"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="870" INVERSEREPRESENTATIONS_ID="905"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="871" INVERSEREPRESENTATIONS_ID="907"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="872" INVERSEREPRESENTATIONS_ID="909"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="873" INVERSEREPRESENTATIONS_ID="911"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="874" INVERSEREPRESENTATIONS_ID="913"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="875" INVERSEREPRESENTATIONS_ID="915"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="876" INVERSEREPRESENTATIONS_ID="917"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="877" INVERSEREPRESENTATIONS_ID="919"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="878" INVERSEREPRESENTATIONS_ID="921"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="879" INVERSEREPRESENTATIONS_ID="923"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="880" INVERSEREPRESENTATIONS_ID="925"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="881" INVERSEREPRESENTATIONS_ID="927"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="882" INVERSEREPRESENTATIONS_ID="929"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="883" INVERSEREPRESENTATIONS_ID="931"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="884" INVERSEREPRESENTATIONS_ID="933"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="885" INVERSEREPRESENTATIONS_ID="935"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="886" INVERSEREPRESENTATIONS_ID="937"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="887" INVERSEREPRESENTATIONS_ID="939"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="888" INVERSEREPRESENTATIONS_ID="941"/>\r
-  <RELATIONSHIPTERMBASE_INVERSEREPRESENTATION DEFINEDTERMBASE_ID="889" INVERSEREPRESENTATIONS_ID="943"/>\r
-  <REPRESENTATION ID="1" CREATED="2009-01-28 17:07:03.0" UUID="e354b82b-4ed8-4303-ad28-08888d9e682c" TEXT="eu.etaxonomy.cdm.model.common.Language" LABEL="Language"/>\r
-  <REPRESENTATION ID="2" CREATED="2009-01-28 17:07:03.0" UUID="af97e497-8c89-43d9-a7b0-98784927d20d" TEXT="Khoisan (Other)" ABBREVIATEDLABEL="khi" LABEL="khi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="3" CREATED="2009-01-28 17:07:03.0" UUID="f8ab0489-4683-4a81-83fb-ece3a470b982" TEXT="South American Indian (Other)" ABBREVIATEDLABEL="sai" LABEL="sai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="4" CREATED="2009-01-28 17:07:03.0" UUID="8c18e448-55fd-414a-b8e1-f7ee90fc594d" TEXT="Catalan; Valencian" ABBREVIATEDLABEL="cat" LABEL="cat"/>\r
-  <REPRESENTATION ID="5" CREATED="2009-01-28 17:07:03.0" UUID="e138ab0b-8f8a-4dc2-a02d-ddde4a027e34" TEXT="Prakrit languages" ABBREVIATEDLABEL="pra" LABEL="pra" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="6" CREATED="2009-01-28 17:07:03.0" UUID="315a90f3-2b30-4929-ba96-80f6c14a272b" TEXT="Tonga (Tonga Islands)" ABBREVIATEDLABEL="ton" LABEL="ton" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="7" CREATED="2009-01-28 17:07:03.0" UUID="b78950ff-9551-410b-b95a-c2436a8fc3c6" TEXT="Galician" ABBREVIATEDLABEL="glg" LABEL="glg" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="8" CREATED="2009-01-28 17:07:03.0" UUID="10aef5aa-788e-4cb4-8d41-db97a4230896" TEXT="Tuvinian" ABBREVIATEDLABEL="tyv" LABEL="tyv" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="9" CREATED="2009-01-28 17:07:03.0" UUID="09ca8ef4-8abc-4548-b362-f3bdcc9b5bba" TEXT="Ukrainian" ABBREVIATEDLABEL="ukr" LABEL="ukr" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="10" CREATED="2009-01-28 17:07:03.0" UUID="13800e9d-a5f1-4330-9b33-fc5ff9f43847" TEXT="Chuukese" ABBREVIATEDLABEL="chk" LABEL="chk"/>\r
-  <REPRESENTATION ID="11" CREATED="2009-01-28 17:07:03.0" UUID="fc358e2f-0712-467e-ba6a-093c4c499ca1" TEXT="Aromanian; Arumanian; Macedo-Romanian" ABBREVIATEDLABEL="rup" LABEL="rup" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="12" CREATED="2009-01-28 17:07:03.0" UUID="80be2f04-bee2-498b-8517-7e8ae2be93e9" TEXT="Southern Altai" ABBREVIATEDLABEL="alt" LABEL="alt"/>\r
-  <REPRESENTATION ID="13" CREATED="2009-01-28 17:07:03.0" UUID="a01941cf-9094-4e94-80ca-b5e0a6df9953" TEXT="Hiligaynon" ABBREVIATEDLABEL="hil" LABEL="hil" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="14" CREATED="2009-01-28 17:07:03.0" UUID="7ce4913f-0438-4dd9-ad95-8fe09c4defa3" TEXT="Lojban" ABBREVIATEDLABEL="jbo" LABEL="jbo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="15" CREATED="2009-01-28 17:07:03.0" UUID="3bf23f85-46ff-47ca-b95e-a633490af338" TEXT="Uncoded languages" ABBREVIATEDLABEL="mis" LABEL="mis" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="16" CREATED="2009-01-28 17:07:03.0" UUID="55b53ee5-1a6a-4920-9d40-997beaf2bf80" TEXT="Danish" ABBREVIATEDLABEL="dan" LABEL="dan"/>\r
-  <REPRESENTATION ID="17" CREATED="2009-01-28 17:07:03.0" UUID="64f88e59-8b9c-4a2b-bf64-d93f9d453bbf" TEXT="Tigre" ABBREVIATEDLABEL="tig" LABEL="tig" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="18" CREATED="2009-01-28 17:07:03.0" UUID="98fccc3d-448b-42ee-aa43-51c8469dae3d" TEXT="Swati" ABBREVIATEDLABEL="ssw" LABEL="ssw" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="19" CREATED="2009-01-28 17:07:03.0" UUID="cde830bc-4e31-4ad5-9dc1-c0f3c756d754" TEXT="Konkani" ABBREVIATEDLABEL="kok" LABEL="kok" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="20" CREATED="2009-01-28 17:07:03.0" UUID="bbd20711-3ddc-4d7c-b2ad-6b458417d7e2" TEXT="Esperanto" ABBREVIATEDLABEL="epo" LABEL="epo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="21" CREATED="2009-01-28 17:07:03.0" UUID="d0ca0263-da98-400b-b87e-9d406b6a801f" TEXT="Bini; Edo" ABBREVIATEDLABEL="bin" LABEL="bin"/>\r
-  <REPRESENTATION ID="22" CREATED="2009-01-28 17:07:03.0" UUID="5817e90e-d264-4544-a26d-ec608f01bc05" TEXT="Yapese" ABBREVIATEDLABEL="yap" LABEL="yap" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="23" CREATED="2009-01-28 17:07:03.0" UUID="1a30f72f-dbff-4f93-90a8-0c5455543327" TEXT="Kachin; Jingpho" ABBREVIATEDLABEL="kac" LABEL="kac" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="24" CREATED="2009-01-28 17:07:03.0" UUID="4b567060-ec56-474d-9f10-e47b735bbb7f" TEXT="Iloko" ABBREVIATEDLABEL="ilo" LABEL="ilo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="25" CREATED="2009-01-28 17:07:03.0" UUID="cb073acf-bb7e-4f8a-8f5c-cc7542c46b66" TEXT="Gothic" ABBREVIATEDLABEL="got" LABEL="got" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="26" CREATED="2009-01-28 17:07:03.0" UUID="cefabbd0-6fee-4966-96b7-c48ff61ff0b8" TEXT="Berber (Other)" ABBREVIATEDLABEL="ber" LABEL="ber"/>\r
-  <REPRESENTATION ID="27" CREATED="2009-01-28 17:07:03.0" UUID="6602ab4d-076d-4f6d-9b1d-bb76e3efd4a8" TEXT="Gondi" ABBREVIATEDLABEL="gon" LABEL="gon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="28" CREATED="2009-01-28 17:07:03.0" UUID="3edc8bab-e785-4709-854b-43f7dd9afde7" TEXT="Kalaallisut; Greenlandic" ABBREVIATEDLABEL="kal" LABEL="kal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="29" CREATED="2009-01-28 17:07:03.0" UUID="daf31aa1-f6f1-4a22-9757-16d01d85c6e7" TEXT="Magahi" ABBREVIATEDLABEL="mag" LABEL="mag" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="30" CREATED="2009-01-28 17:07:03.0" UUID="261e1013-685d-4b68-97fd-5e0a46995f0e" TEXT="Arawak" ABBREVIATEDLABEL="arw" LABEL="arw"/>\r
-  <REPRESENTATION ID="31" CREATED="2009-01-28 17:07:03.0" UUID="7492c96e-7d20-410c-af97-60ada47c1193" TEXT="Javanese" ABBREVIATEDLABEL="jav" LABEL="jav" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="32" CREATED="2009-01-28 17:07:03.0" UUID="b17f64ad-0150-464f-83ee-3a5cdf252eeb" TEXT="Official Aramaic (700-300 BCE); Imperial Aramaic (700-300 BCE)" ABBREVIATEDLABEL="arc" LABEL="arc"/>\r
-  <REPRESENTATION ID="33" CREATED="2009-01-28 17:07:03.0" UUID="13f59ae4-9e84-4ed8-8383-228c235326a6" TEXT="Kanuri" ABBREVIATEDLABEL="kau" LABEL="kau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="34" CREATED="2009-01-28 17:07:03.0" UUID="42b85ecb-fd24-419b-99c8-f0143ab38fcc" TEXT="Luo (Kenya and Tanzania)" ABBREVIATEDLABEL="luo" LABEL="luo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="35" CREATED="2009-01-28 17:07:03.0" UUID="9793d3e1-67af-4715-be6b-d34a0411812a" TEXT="Greek, Ancient (to 1453)" ABBREVIATEDLABEL="grc" LABEL="grc" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="36" CREATED="2009-01-28 17:07:03.0" UUID="14337d96-7303-4851-b139-f25576d4f109" TEXT="Caddo" ABBREVIATEDLABEL="cad" LABEL="cad"/>\r
-  <REPRESENTATION ID="37" CREATED="2009-01-28 17:07:03.0" UUID="714e3c19-8ad5-4696-a245-68adda497acf" TEXT="Timne" ABBREVIATEDLABEL="tem" LABEL="tem" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="38" CREATED="2009-01-28 17:07:03.0" UUID="588ae600-13cf-4025-82e0-33ae73d83fb3" TEXT="Icelandic" ABBREVIATEDLABEL="ice" LABEL="ice" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="39" CREATED="2009-01-28 17:07:03.0" UUID="df9f3308-847e-484f-af8b-10b0040deeef" TEXT="Italian" ABBREVIATEDLABEL="ita" LABEL="ita" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="40" CREATED="2009-01-28 17:07:03.0" UUID="3b6274a3-9e37-40c8-8a87-f0c28d94c493" TEXT="Karen languages" ABBREVIATEDLABEL="kar" LABEL="kar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="41" CREATED="2009-01-28 17:07:03.0" UUID="f0f98241-ac52-4478-bdf4-6554d97722fe" TEXT="Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki" ABBREVIATEDLABEL="zza" LABEL="zza" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="42" CREATED="2009-01-28 17:07:03.0" UUID="e0639fd7-3aab-426c-9477-67197e7148e7" TEXT="Dogri" ABBREVIATEDLABEL="doi" LABEL="doi"/>\r
-  <REPRESENTATION ID="43" CREATED="2009-01-28 17:07:03.0" UUID="9e485d02-1ebe-44f6-bdfa-204e0e7e346d" TEXT="Mohawk" ABBREVIATEDLABEL="moh" LABEL="moh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="44" CREATED="2009-01-28 17:07:03.0" UUID="0ea22063-b5fd-4a15-8ff9-313b8216f121" TEXT="Lithuanian" ABBREVIATEDLABEL="lit" LABEL="lit" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="45" CREATED="2009-01-28 17:07:03.0" UUID="c451b4f6-2437-45ad-bd3a-4fd03c88c92c" TEXT="Mari" ABBREVIATEDLABEL="chm" LABEL="chm"/>\r
-  <REPRESENTATION ID="46" CREATED="2009-01-28 17:07:03.0" UUID="c37f3f3f-33e3-495d-9fde-8f874ff13f64" TEXT="Yupik languages" ABBREVIATEDLABEL="ypk" LABEL="ypk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="47" CREATED="2009-01-28 17:07:03.0" UUID="41a4c00a-18d1-4f66-965d-1bac7d1811bd" TEXT="Buriat" ABBREVIATEDLABEL="bua" LABEL="bua"/>\r
-  <REPRESENTATION ID="48" CREATED="2009-01-28 17:07:03.0" UUID="ce82b840-b6fe-40c7-a42b-b808dbd33b62" TEXT="Dargwa" ABBREVIATEDLABEL="dar" LABEL="dar"/>\r
-  <REPRESENTATION ID="49" CREATED="2009-01-28 17:07:03.0" UUID="06310022-b41a-4069-9f1f-edfc3d88550c" TEXT="Lushai" ABBREVIATEDLABEL="lus" LABEL="lus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="50" CREATED="2009-01-28 17:07:03.0" UUID="f2c89510-d54a-40a7-8438-e08885f68005" TEXT="Ido" ABBREVIATEDLABEL="ido" LABEL="ido" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="51" CREATED="2009-01-28 17:07:03.0" UUID="65acf794-6d24-42d7-b971-7fe568d40767" TEXT="Northern Frisian" ABBREVIATEDLABEL="frr" LABEL="frr" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="52" CREATED="2009-01-28 17:07:03.0" UUID="89cca780-a43c-455d-90d5-2af6315983c5" TEXT="Central Khmer" ABBREVIATEDLABEL="khm" LABEL="khm" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="53" CREATED="2009-01-28 17:07:03.0" UUID="cf0d757e-0e76-450d-be0e-f774361df5e6" TEXT="Romance (Other)" ABBREVIATEDLABEL="roa" LABEL="roa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="54" CREATED="2009-01-28 17:07:03.0" UUID="70077244-ed30-4c34-a41f-264e6c3eea89" TEXT="Braj" ABBREVIATEDLABEL="bra" LABEL="bra"/>\r
-  <REPRESENTATION ID="55" CREATED="2009-01-28 17:07:03.0" UUID="5a268f80-f687-45ca-9a93-322198f8487b" TEXT="Kabyle" ABBREVIATEDLABEL="kab" LABEL="kab" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="56" CREATED="2009-01-28 17:07:03.0" UUID="0ac5ef36-48c4-4c78-a426-4ddd6a30119e" TEXT="Karelian" ABBREVIATEDLABEL="krl" LABEL="krl" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="57" CREATED="2009-01-28 17:07:03.0" UUID="d8133ba3-4b10-4e86-846f-6d84a72fe0f3" TEXT="Inuktitut" ABBREVIATEDLABEL="iku" LABEL="iku" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="58" CREATED="2009-01-28 17:07:03.0" UUID="f2ad1a3c-4a78-42fa-8a1b-6b3cbb8a9473" TEXT="Nepali" ABBREVIATEDLABEL="nep" LABEL="nep" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="59" CREATED="2009-01-28 17:07:03.0" UUID="a8059281-6c39-4c48-8190-6ceb1083197a" TEXT="Creoles and pidgins, French-based (Other)" ABBREVIATEDLABEL="cpf" LABEL="cpf"/>\r
-  <REPRESENTATION ID="60" CREATED="2009-01-28 17:07:03.0" UUID="3111b1e8-c8f3-4932-9eaf-29529eb2e235" TEXT="Siksika" ABBREVIATEDLABEL="bla" LABEL="bla"/>\r
-  <REPRESENTATION ID="61" CREATED="2009-01-28 17:07:03.0" UUID="1e928351-fdb9-4dbc-b186-76d15d4b0e7d" TEXT="Madurese" ABBREVIATEDLABEL="mad" LABEL="mad" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="62" CREATED="2009-01-28 17:07:03.0" UUID="c7b1c420-1f36-47d9-b141-9d18444a58a7" TEXT="Moksha" ABBREVIATEDLABEL="mdf" LABEL="mdf" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="63" CREATED="2009-01-28 17:07:03.0" UUID="b1eaaa32-9915-4873-8b93-308f72761be6" TEXT="Klingon; tlhIngan-Hol" ABBREVIATEDLABEL="tlh" LABEL="tlh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="64" CREATED="2009-01-28 17:07:03.0" UUID="d13c3e8b-7c6d-4a0d-9fd4-1dfe90132373" TEXT="Mi&apos;kmaq; Micmac" ABBREVIATEDLABEL="mic" LABEL="mic" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="65" CREATED="2009-01-28 17:07:03.0" UUID="6089632a-d7a2-467a-8b7f-d17407d8d874" TEXT="Turkish, Ottoman (1500-1928)" ABBREVIATEDLABEL="ota" LABEL="ota" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="66" CREATED="2009-01-28 17:07:03.0" UUID="fb9dda66-9922-429d-896f-e2eed4dd3864" TEXT="Mapudungun; Mapuche" ABBREVIATEDLABEL="arn" LABEL="arn"/>\r
-  <REPRESENTATION ID="67" CREATED="2009-01-28 17:07:03.0" UUID="024fde7d-3cfd-4e00-9423-3048e4c0317b" TEXT="Kumyk" ABBREVIATEDLABEL="kum" LABEL="kum" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="68" CREATED="2009-01-28 17:07:03.0" UUID="4c6efd11-e0fe-49f4-9c8b-03413b32bb69" TEXT="Geez" ABBREVIATEDLABEL="gez" LABEL="gez" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="69" CREATED="2009-01-28 17:07:03.0" UUID="d40eec4e-a4e2-4145-8039-d6ee901d589f" TEXT="Bantu (Other)" ABBREVIATEDLABEL="bnt" LABEL="bnt"/>\r
-  <REPRESENTATION ID="70" CREATED="2009-01-28 17:07:03.0" UUID="583ef87e-254e-4e6f-8727-cdd70429092c" TEXT="Himachali" ABBREVIATEDLABEL="him" LABEL="him" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="71" CREATED="2009-01-28 17:07:03.0" UUID="31063485-6dbd-41b6-8d86-3f3a2e143875" TEXT="Makasar" ABBREVIATEDLABEL="mak" LABEL="mak" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="72" CREATED="2009-01-28 17:07:03.0" UUID="897b7888-25ee-4313-b3ed-260f8ef6f068" TEXT="Bikol" ABBREVIATEDLABEL="bik" LABEL="bik"/>\r
-  <REPRESENTATION ID="73" CREATED="2009-01-28 17:07:03.0" UUID="dbd64180-cc16-4c38-a190-cf95fb14cc26" TEXT="Mossi" ABBREVIATEDLABEL="mos" LABEL="mos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="74" CREATED="2009-01-28 17:07:03.0" UUID="5421e1a5-b734-46f1-8033-4cec7b743993" TEXT="Bhojpuri" ABBREVIATEDLABEL="bho" LABEL="bho"/>\r
-  <REPRESENTATION ID="75" CREATED="2009-01-28 17:07:03.0" UUID="c44172e6-99b7-4610-8d79-e232db9ae660" TEXT="French, Middle (ca.1400-1600)" ABBREVIATEDLABEL="frm" LABEL="frm" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="76" CREATED="2009-01-28 17:07:03.0" UUID="d5508535-09a3-4f50-898b-7cf1214b94d3" TEXT="Occitan (post 1500); Provençal" ABBREVIATEDLABEL="oci" LABEL="oci" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="77" CREATED="2009-01-28 17:07:03.0" UUID="0163836b-7d2a-440c-bc25-fef808fa5964" TEXT="Tigrinya" ABBREVIATEDLABEL="tir" LABEL="tir" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="78" CREATED="2009-01-28 17:07:03.0" UUID="548729e4-7e50-4434-ad03-0de593de42ec" TEXT="Judeo-Persian" ABBREVIATEDLABEL="jpr" LABEL="jpr" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="79" CREATED="2009-01-28 17:07:03.0" UUID="82dde4bd-2162-4515-bd82-60aa217041e9" TEXT="Pushto" ABBREVIATEDLABEL="pus" LABEL="pus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="80" CREATED="2009-01-28 17:07:03.0" UUID="fe6b1436-9dbf-40ca-a054-7e61f968eb80" TEXT="Aragonese" ABBREVIATEDLABEL="arg" LABEL="arg"/>\r
-  <REPRESENTATION ID="81" CREATED="2009-01-28 17:07:03.0" UUID="91497c8a-f681-4ac6-8a71-53250892ad04" TEXT="Greek, Modern (1453-)" ABBREVIATEDLABEL="gre" LABEL="gre" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="82" CREATED="2009-01-28 17:07:03.0" UUID="499ea967-8a8c-48eb-9074-169ea22067ab" TEXT="Kazakh" ABBREVIATEDLABEL="kaz" LABEL="kaz" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="83" CREATED="2009-01-28 17:07:03.0" UUID="218671ed-79d3-4670-8479-a7923bbba7a5" TEXT="Zhuang; Chuang" ABBREVIATEDLABEL="zha" LABEL="zha" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="84" CREATED="2009-01-28 17:07:03.0" UUID="eca66b5f-9850-4258-968d-d0af047df6df" TEXT="Crimean Tatar; Crimean Turkish" ABBREVIATEDLABEL="crh" LABEL="crh"/>\r
-  <REPRESENTATION ID="85" CREATED="2009-01-28 17:07:03.0" UUID="307e2831-26c2-4937-89d5-de870aacfb8b" TEXT="Semitic (Other)" ABBREVIATEDLABEL="sem" LABEL="sem" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="86" CREATED="2009-01-28 17:07:03.0" UUID="800d367e-5bc4-4c8c-acf5-8fbe5cb982db" TEXT="Artificial (Other)" ABBREVIATEDLABEL="art" LABEL="art"/>\r
-  <REPRESENTATION ID="87" CREATED="2009-01-28 17:07:03.0" UUID="c107f6cd-73ee-4f25-a72c-348dee2fab0d" TEXT="Lao" ABBREVIATEDLABEL="lao" LABEL="lao" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="88" CREATED="2009-01-28 17:07:03.0" UUID="332f22ab-6920-4032-8d75-57a63cfc84f7" TEXT="Vietnamese" ABBREVIATEDLABEL="vie" LABEL="vie" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="89" CREATED="2009-01-28 17:07:03.0" UUID="907c34dd-bc6b-4761-b9dd-22affda4594d" TEXT="Marathi" ABBREVIATEDLABEL="mar" LABEL="mar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="90" CREATED="2009-01-28 17:07:03.0" UUID="50ef8dce-3e3e-4ce7-90f5-5cfcbd6936a0" TEXT="Yakut" ABBREVIATEDLABEL="sah" LABEL="sah" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="91" CREATED="2009-01-28 17:07:03.0" UUID="d6b082ec-61be-4566-8e33-c1a26528e7ef" TEXT="Venda" ABBREVIATEDLABEL="ven" LABEL="ven" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="92" CREATED="2009-01-28 17:07:03.0" UUID="32c33b92-d3f7-4527-b520-93f9d840c9d7" TEXT="Sundanese" ABBREVIATEDLABEL="sun" LABEL="sun" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="93" CREATED="2009-01-28 17:07:03.0" UUID="fe1c1ee3-98c2-4ad7-8f94-a71d0f4dd160" TEXT="Bambara" ABBREVIATEDLABEL="bam" LABEL="bam"/>\r
-  <REPRESENTATION ID="94" CREATED="2009-01-28 17:07:03.0" UUID="dd196264-c9ed-4886-921d-94ee877e4d98" TEXT="Kongo" ABBREVIATEDLABEL="kon" LABEL="kon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="95" CREATED="2009-01-28 17:07:03.0" UUID="4013901e-6ea4-4764-a07d-450566592048" TEXT="Austronesian (Other)" ABBREVIATEDLABEL="map" LABEL="map" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="96" CREATED="2009-01-28 17:07:03.0" UUID="5659e92e-1235-43a5-9f80-964c5246d263" TEXT="Tuvalu" ABBREVIATEDLABEL="tvl" LABEL="tvl" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="97" CREATED="2009-01-28 17:07:03.0" UUID="c0163a72-c4ae-40f7-9f59-a41d0fa0695d" TEXT="Rajasthani" ABBREVIATEDLABEL="raj" LABEL="raj" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="98" CREATED="2009-01-28 17:07:03.0" UUID="b3fd08ba-dbcb-46fe-9ed7-e5a9fb3d00da" TEXT="Basque" ABBREVIATEDLABEL="baq" LABEL="baq"/>\r
-  <REPRESENTATION ID="99" CREATED="2009-01-28 17:07:03.0" UUID="040cdbd7-2a9b-4397-899e-08f29b5e3665" TEXT="Kirghiz; Kyrgyz" ABBREVIATEDLABEL="kir" LABEL="kir" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="100" CREATED="2009-01-28 17:07:03.0" UUID="848d5418-d536-419b-a08c-6129f8ff36f5" TEXT="Abkhazian" ABBREVIATEDLABEL="abk" LABEL="abk"/>\r
-  <REPRESENTATION ID="101" CREATED="2009-01-28 17:07:03.0" UUID="70377587-d456-456d-b9ee-1937257d2cb8" TEXT="BokmÃ¥l, Norwegian; Norwegian BokmÃ¥l" ABBREVIATEDLABEL="nob" LABEL="nob" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="102" CREATED="2009-01-28 17:07:03.0" UUID="cf0a772c-4257-4ca3-b7c4-8218d34d52f4" TEXT="Telugu" ABBREVIATEDLABEL="tel" LABEL="tel" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="103" CREATED="2009-01-28 17:07:03.0" UUID="32d4f27f-5fc5-4148-a513-c4d0fb8dd8e6" TEXT="Sandawe" ABBREVIATEDLABEL="sad" LABEL="sad" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="104" CREATED="2009-01-28 17:07:03.0" UUID="2ae16eb9-b7e6-4591-ace5-26f304457e9d" TEXT="Sanskrit" ABBREVIATEDLABEL="san" LABEL="san" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="105" CREATED="2009-01-28 17:07:03.0" UUID="1cf215a0-7586-4245-8992-d8321bf3ab5d" TEXT="Karachay-Balkar" ABBREVIATEDLABEL="krc" LABEL="krc" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="106" CREATED="2009-01-28 17:07:03.0" UUID="e2c9c2fc-7c5a-481d-be9a-276f84baa021" TEXT="Papiamento" ABBREVIATEDLABEL="pap" LABEL="pap" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="107" CREATED="2009-01-28 17:07:03.0" UUID="e8d885be-7cef-4440-80cd-600da1025ff9" TEXT="Tetum" ABBREVIATEDLABEL="tet" LABEL="tet" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="108" CREATED="2009-01-28 17:07:03.0" UUID="4f2562f6-e602-4315-9abf-2224345b78de" TEXT="Nahuatl languages" ABBREVIATEDLABEL="nah" LABEL="nah" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="109" CREATED="2009-01-28 17:07:03.0" UUID="e9cb9370-1f52-407d-ae3b-99199b76de61" TEXT="Rarotongan; Cook Islands Maori" ABBREVIATEDLABEL="rar" LABEL="rar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="110" CREATED="2009-01-28 17:07:03.0" UUID="33a1e46f-93cb-434d-8aee-f7eee6a24e94" TEXT="Pahlavi" ABBREVIATEDLABEL="pal" LABEL="pal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="111" CREATED="2009-01-28 17:07:03.0" UUID="c4cebd64-8c4a-4a4f-bb9c-df7dd3e7d257" TEXT="Moldavian" ABBREVIATEDLABEL="mol" LABEL="mol" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="112" CREATED="2009-01-28 17:07:03.0" UUID="0a9eed53-603b-4075-83b6-70623a4e0180" TEXT="Blissymbols; Blissymbolics; Bliss" ABBREVIATEDLABEL="zbl" LABEL="zbl" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="113" CREATED="2009-01-28 17:07:03.0" UUID="21b46ad8-7544-46bf-826a-4694ee46ce1f" TEXT="Corsican" ABBREVIATEDLABEL="cos" LABEL="cos"/>\r
-  <REPRESENTATION ID="114" CREATED="2009-01-28 17:07:03.0" UUID="814809ae-3198-4eab-ad1f-ee1a9d6938ad" TEXT="Sichuan Yi; Nuosu" ABBREVIATEDLABEL="iii" LABEL="iii" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="115" CREATED="2009-01-28 17:07:03.0" UUID="ba443123-5f9a-4fcc-ba71-158a44588566" TEXT="Avaric" ABBREVIATEDLABEL="ava" LABEL="ava"/>\r
-  <REPRESENTATION ID="116" CREATED="2009-01-28 17:07:03.0" UUID="8bf38c7e-93aa-4213-a4a1-db8e322a15e4" TEXT="Iranian (Other)" ABBREVIATEDLABEL="ira" LABEL="ira" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="117" CREATED="2009-01-28 17:07:03.0" UUID="4a8cfa3c-83b7-4b6d-92a3-b3483d2f4972" TEXT="Elamite" ABBREVIATEDLABEL="elx" LABEL="elx"/>\r
-  <REPRESENTATION ID="118" CREATED="2009-01-28 17:07:03.0" UUID="3e1e22d0-5784-4a1d-8334-bba32e2d3118" TEXT="Cree" ABBREVIATEDLABEL="cre" LABEL="cre"/>\r
-  <REPRESENTATION ID="119" CREATED="2009-01-28 17:07:03.0" UUID="92990628-6ec6-4610-b4c1-01e1920600f3" TEXT="Chuvash" ABBREVIATEDLABEL="chv" LABEL="chv"/>\r
-  <REPRESENTATION ID="120" CREATED="2009-01-28 17:07:03.0" UUID="732c7009-e3a0-42a7-a302-d33cb74bf087" TEXT="Bengali" ABBREVIATEDLABEL="ben" LABEL="ben"/>\r
-  <REPRESENTATION ID="121" CREATED="2009-01-28 17:07:03.0" UUID="25d29514-425d-4e4d-8f11-8c744dd355a9" TEXT="Lunda" ABBREVIATEDLABEL="lun" LABEL="lun" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="122" CREATED="2009-01-28 17:07:03.0" UUID="ba33499e-2f8d-4f36-8a4a-5d9b8df7ea6f" TEXT="Kabardian" ABBREVIATEDLABEL="kbd" LABEL="kbd" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="123" CREATED="2009-01-28 17:07:03.0" UUID="70bacd35-7c75-4f4b-9107-0415e304fe25" TEXT="Samoan" ABBREVIATEDLABEL="smo" LABEL="smo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="124" CREATED="2009-01-28 17:07:03.0" UUID="9395cb0a-54a2-4019-9c9c-56c00ad8f241" TEXT="Haitian; Haitian Creole" ABBREVIATEDLABEL="hat" LABEL="hat" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="125" CREATED="2009-01-28 17:07:03.0" UUID="3c7bf688-3bcd-43ff-bd76-a824be059228" TEXT="Land Dayak languages" ABBREVIATEDLABEL="day" LABEL="day"/>\r
-  <REPRESENTATION ID="126" CREATED="2009-01-28 17:07:03.0" UUID="4b9d11e7-2f1e-4fd6-a3c7-ee7aaa7e7377" TEXT="Delaware" ABBREVIATEDLABEL="del" LABEL="del"/>\r
-  <REPRESENTATION ID="127" CREATED="2009-01-28 17:07:03.0" UUID="4db60904-ea10-4dd2-8aff-44415eb2623a" TEXT="Vai" ABBREVIATEDLABEL="vai" LABEL="vai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="128" CREATED="2009-01-28 17:07:03.0" UUID="a8806284-295e-4dc5-bde7-11a77feaba0c" TEXT="Kpelle" ABBREVIATEDLABEL="kpe" LABEL="kpe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="129" CREATED="2009-01-28 17:07:03.0" UUID="5f341aa2-6fb1-4ef8-a243-f18a8354f3e6" TEXT="Dutch; Flemish" ABBREVIATEDLABEL="dut" LABEL="dut"/>\r
-  <REPRESENTATION ID="130" CREATED="2009-01-28 17:07:03.0" UUID="487d9bac-c446-4829-9666-2e89becef898" TEXT="Zulu" ABBREVIATEDLABEL="zul" LABEL="zul" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="131" CREATED="2009-01-28 17:07:03.0" UUID="29e807a9-6bfb-4f61-b67a-fc85fd4d8f68" TEXT="Egyptian (Ancient)" ABBREVIATEDLABEL="egy" LABEL="egy"/>\r
-  <REPRESENTATION ID="132" CREATED="2009-01-28 17:07:03.0" UUID="732222cd-b4b3-4855-adfa-50eb68c87603" TEXT="Indo-European (Other)" ABBREVIATEDLABEL="ine" LABEL="ine" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="133" CREATED="2009-01-28 17:07:03.0" UUID="2a41f680-0ecb-4f96-842b-040910c94e00" TEXT="Sign Languages" ABBREVIATEDLABEL="sgn" LABEL="sgn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="134" CREATED="2009-01-28 17:07:03.0" UUID="016fb169-3266-4122-b912-0c7840a229b7" TEXT="Gayo" ABBREVIATEDLABEL="gay" LABEL="gay" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="135" CREATED="2009-01-28 17:07:03.0" UUID="4bbfdbbb-83d1-4b00-b7d2-f5a17f00757d" TEXT="Tereno" ABBREVIATEDLABEL="ter" LABEL="ter" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="136" CREATED="2009-01-28 17:07:03.0" UUID="36bd41a8-93ff-4b01-b14a-0fb4644b18db" TEXT="Dutch, Middle (ca.1050-1350)" ABBREVIATEDLABEL="dum" LABEL="dum"/>\r
-  <REPRESENTATION ID="137" CREATED="2009-01-28 17:07:03.0" UUID="7d153b05-eac8-4c40-8824-d8bf39fb944b" TEXT="English, Middle (1100-1500)" ABBREVIATEDLABEL="enm" LABEL="enm" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="138" CREATED="2009-01-28 17:07:03.0" UUID="a3ceb30d-c6a1-4d09-a594-0cdbef14d13c" TEXT="Fijian" ABBREVIATEDLABEL="fij" LABEL="fij" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="139" CREATED="2009-01-28 17:07:03.0" UUID="34ae0409-54df-4ac6-9550-378fcbe031a2" TEXT="Dravidian (Other)" ABBREVIATEDLABEL="dra" LABEL="dra"/>\r
-  <REPRESENTATION ID="140" CREATED="2009-01-28 17:07:03.0" UUID="8d00f839-aaf2-4094-83ea-52cc92fef553" TEXT="Cornish" ABBREVIATEDLABEL="cor" LABEL="cor"/>\r
-  <REPRESENTATION ID="141" CREATED="2009-01-28 17:07:03.0" UUID="c92fa61f-60d3-4fff-aab8-b3fb22a277ea" TEXT="Ga" ABBREVIATEDLABEL="gaa" LABEL="gaa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="142" CREATED="2009-01-28 17:07:03.0" UUID="f0c12312-349f-4b04-ab22-a3a6e57eec36" TEXT="Cushitic (Other)" ABBREVIATEDLABEL="cus" LABEL="cus"/>\r
-  <REPRESENTATION ID="143" CREATED="2009-01-28 17:07:03.0" UUID="45d8ff40-ccbf-4829-adbc-8dbc99fa7a97" TEXT="Upper Sorbian" ABBREVIATEDLABEL="hsb" LABEL="hsb" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="144" CREATED="2009-01-28 17:07:03.0" UUID="a2d69a18-cae2-49ae-bc47-74b73158ec8d" TEXT="Kamba" ABBREVIATEDLABEL="kam" LABEL="kam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="145" CREATED="2009-01-28 17:07:03.0" UUID="fc710569-a6c0-4b63-884d-574a40278877" TEXT="Masai" ABBREVIATEDLABEL="mas" LABEL="mas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="146" CREATED="2009-01-28 17:07:03.0" UUID="6bd2a608-0a61-4669-bc9b-f007d9af1c58" TEXT="Volapük" ABBREVIATEDLABEL="vol" LABEL="vol" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="147" CREATED="2009-01-28 17:07:03.0" UUID="ecb1f7bd-444e-4adc-bc33-74c6204e92fb" TEXT="Macedonian" ABBREVIATEDLABEL="mac" LABEL="mac" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="148" CREATED="2009-01-28 17:07:03.0" UUID="8605dfdf-c8b0-4dd0-b25d-f6bee30d0eac" TEXT="Swahili" ABBREVIATEDLABEL="swa" LABEL="swa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="149" CREATED="2009-01-28 17:07:03.0" UUID="748eadec-74a9-4832-bd7e-5c865c608303" TEXT="Maithili" ABBREVIATEDLABEL="mai" LABEL="mai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="150" CREATED="2009-01-28 17:07:03.0" UUID="8fc79b25-af4a-43b6-930f-ae313a9cce2f" TEXT="Bamileke languages" ABBREVIATEDLABEL="bai" LABEL="bai"/>\r
-  <REPRESENTATION ID="151" CREATED="2009-01-28 17:07:03.0" UUID="d950437d-2f9f-4bbc-8694-6d927afbfdc6" TEXT="Navajo; Navaho" ABBREVIATEDLABEL="nav" LABEL="nav" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="152" CREATED="2009-01-28 17:07:03.0" UUID="07be510c-064e-4626-92dd-3269f45388d1" TEXT="Yiddish" ABBREVIATEDLABEL="yid" LABEL="yid" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="153" CREATED="2009-01-28 17:07:03.0" UUID="d7662e53-d52d-4048-b06f-1e04fd174c73" TEXT="Afrihili" ABBREVIATEDLABEL="afh" LABEL="afh"/>\r
-  <REPRESENTATION ID="154" CREATED="2009-01-28 17:07:03.0" UUID="f0283026-e739-4d13-b1c7-5f3d86dd6835" TEXT="Manchu" ABBREVIATEDLABEL="mnc" LABEL="mnc" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="155" CREATED="2009-01-28 17:07:03.0" UUID="fc2ed2d8-5425-47ce-aa05-2ba223516f01" TEXT="Chibcha" ABBREVIATEDLABEL="chb" LABEL="chb"/>\r
-  <REPRESENTATION ID="156" CREATED="2009-01-28 17:07:03.0" UUID="17df2d78-c21e-40af-b77c-191a5b254405" TEXT="Mandingo" ABBREVIATEDLABEL="man" LABEL="man" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="157" CREATED="2009-01-28 17:07:03.0" UUID="107302b8-8329-4490-9516-de3043c099b2" TEXT="Tahitian" ABBREVIATEDLABEL="tah" LABEL="tah" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="158" CREATED="2009-01-28 17:07:03.0" UUID="39765496-4749-427f-b7e2-215dad637672" TEXT="Zenaga" ABBREVIATEDLABEL="zen" LABEL="zen" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="159" CREATED="2009-01-28 17:07:03.0" UUID="bb18842d-6120-4862-946c-c0df2543ff00" TEXT="Pampanga; Kapampangan" ABBREVIATEDLABEL="pam" LABEL="pam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="160" CREATED="2009-01-28 17:07:03.0" UUID="50f044ad-1b1d-47a9-93b3-182d3e44aafc" TEXT="Dinka" ABBREVIATEDLABEL="din" LABEL="din"/>\r
-  <REPRESENTATION ID="161" CREATED="2009-01-28 17:07:03.0" UUID="c5b2d2e4-32fd-4322-aed2-c1d5e79d74a7" TEXT="Sumerian" ABBREVIATEDLABEL="sux" LABEL="sux" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="162" CREATED="2009-01-28 17:07:03.0" UUID="74e78c7b-cb41-4e95-8f8b-84fe61fba881" TEXT="Aleut" ABBREVIATEDLABEL="ale" LABEL="ale"/>\r
-  <REPRESENTATION ID="163" CREATED="2009-01-28 17:07:03.0" UUID="e61e11b8-5624-4494-96c1-04c10eccc3d6" TEXT="Fulah" ABBREVIATEDLABEL="ful" LABEL="ful" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="164" CREATED="2009-01-28 17:07:03.0" UUID="8601e71d-d4fd-48c5-9681-1cb5691ab505" TEXT="Adyghe; Adygei" ABBREVIATEDLABEL="ady" LABEL="ady"/>\r
-  <REPRESENTATION ID="165" CREATED="2009-01-28 17:07:03.0" UUID="1f1dd43a-ff7e-4ff6-9004-c1b54f96dd1e" TEXT="Dakota" ABBREVIATEDLABEL="dak" LABEL="dak"/>\r
-  <REPRESENTATION ID="166" CREATED="2009-01-28 17:07:03.0" UUID="fb1dc20e-5ede-44ad-ab55-6776527200b4" TEXT="Interlingue; Occidental" ABBREVIATEDLABEL="ile" LABEL="ile" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="167" CREATED="2009-01-28 17:07:03.0" UUID="ccdd9e4b-7a29-43bd-a095-85b9160bcddd" TEXT="Kuanyama; Kwanyama" ABBREVIATEDLABEL="kua" LABEL="kua" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="168" CREATED="2009-01-28 17:07:03.0" UUID="d30b7338-a754-40f0-a090-c22cb348652c" TEXT="Siouan languages" ABBREVIATEDLABEL="sio" LABEL="sio" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="169" CREATED="2009-01-28 17:07:03.0" UUID="1bdc9bfd-d2cc-404d-9db2-71188c7a1d5b" TEXT="Komi" ABBREVIATEDLABEL="kom" LABEL="kom" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="170" CREATED="2009-01-28 17:07:03.0" UUID="c8137329-186c-407d-b19d-8f167a9b99a0" TEXT="Osage" ABBREVIATEDLABEL="osa" LABEL="osa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="171" CREATED="2009-01-28 17:07:03.0" UUID="cafdf2fa-27b9-4ae9-82a9-9b9600328f81" TEXT="Lule Sami" ABBREVIATEDLABEL="smj" LABEL="smj" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="172" CREATED="2009-01-28 17:07:03.0" UUID="f30ffca6-6dd0-4aa7-a2b8-4fe3bf48a53b" TEXT="Marwari" ABBREVIATEDLABEL="mwr" LABEL="mwr" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="173" CREATED="2009-01-28 17:07:03.0" UUID="5e49c608-0f78-40f9-988d-ab9c40c7ad4d" TEXT="Persian" ABBREVIATEDLABEL="per" LABEL="per" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="174" CREATED="2009-01-28 17:07:03.0" UUID="17335dce-2ddf-401d-8700-b32f9861a28f" TEXT="Soninke" ABBREVIATEDLABEL="snk" LABEL="snk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="175" CREATED="2009-01-28 17:07:03.0" UUID="45ffc554-4950-4b5d-99b2-7cf44eb2406a" TEXT="Niger-Kordofanian (Other)" ABBREVIATEDLABEL="nic" LABEL="nic" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="176" CREATED="2009-01-28 17:07:03.0" UUID="7ee23338-f7f8-4158-bc58-050ed863c7fb" TEXT="Guarani" ABBREVIATEDLABEL="grn" LABEL="grn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="177" CREATED="2009-01-28 17:07:03.0" UUID="cd5a0be4-4c69-4e1f-9ccf-453240e0ccb1" TEXT="Nauru" ABBREVIATEDLABEL="nau" LABEL="nau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="178" CREATED="2009-01-28 17:07:03.0" UUID="e754705b-d6ce-42e9-9dbc-0f5c33f71276" TEXT="Nzima" ABBREVIATEDLABEL="nzi" LABEL="nzi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="179" CREATED="2009-01-28 17:07:03.0" UUID="ab728e2c-fbbe-4bf0-8105-9e5224f95c61" TEXT="Washo" ABBREVIATEDLABEL="was" LABEL="was" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="180" CREATED="2009-01-28 17:07:03.0" UUID="b104634f-1ecf-49ce-8016-b4b6f63f175d" TEXT="Skolt Sami" ABBREVIATEDLABEL="sms" LABEL="sms" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="181" CREATED="2009-01-28 17:07:03.0" UUID="45e3cdd2-9d48-446e-9515-65c7df9f4039" TEXT="Irish, Middle (900-1200)" ABBREVIATEDLABEL="mga" LABEL="mga" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="182" CREATED="2009-01-28 17:07:03.0" UUID="5ca11e8c-03a0-4e4e-ad75-4112d8ef115e" TEXT="Pohnpeian" ABBREVIATEDLABEL="pon" LABEL="pon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="183" CREATED="2009-01-28 17:07:03.0" UUID="69c8b564-7b26-468f-8793-d260cb89c8cc" TEXT="Salishan languages" ABBREVIATEDLABEL="sal" LABEL="sal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="184" CREATED="2009-01-28 17:07:03.0" UUID="c73a8201-fe14-40be-b434-28f93dbb16d6" TEXT="Gwich&apos;in" ABBREVIATEDLABEL="gwi" LABEL="gwi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="185" CREATED="2009-01-28 17:07:03.0" UUID="100fa46d-bbd6-4e6c-b157-3f811dd40a9e" TEXT="Rapanui" ABBREVIATEDLABEL="rap" LABEL="rap" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="186" CREATED="2009-01-28 17:07:03.0" UUID="f74e5b57-5bd7-4c35-898d-25c65935e7ef" TEXT="Ainu" ABBREVIATEDLABEL="ain" LABEL="ain"/>\r
-  <REPRESENTATION ID="187" CREATED="2009-01-28 17:07:03.0" UUID="7fb87697-e6d4-43da-8045-1c90dc5fd5dd" TEXT="Kara-Kalpak" ABBREVIATEDLABEL="kaa" LABEL="kaa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="188" CREATED="2009-01-28 17:07:03.0" UUID="86d0854a-3803-4b6d-9387-6a30324e7b58" TEXT="Akkadian" ABBREVIATEDLABEL="akk" LABEL="akk"/>\r
-  <REPRESENTATION ID="189" CREATED="2009-01-28 17:07:03.0" UUID="c2f0ef2c-c5a3-4fc7-93c6-8dcbab0c3466" TEXT="Finno-Ugrian (Other)" ABBREVIATEDLABEL="fiu" LABEL="fiu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="190" CREATED="2009-01-28 17:07:03.0" UUID="0bcb2302-2aac-4222-b301-856244be54b6" TEXT="Limburgan; Limburger; Limburgish" ABBREVIATEDLABEL="lim" LABEL="lim" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="191" CREATED="2009-01-28 17:07:03.0" UUID="0ec83e58-6882-459c-b041-abf9d6950ee3" TEXT="Mandar" ABBREVIATEDLABEL="mdr" LABEL="mdr" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="192" CREATED="2009-01-28 17:07:03.0" UUID="41de0fa0-d355-4a6c-9b93-943bca78160d" TEXT="No linguistic content" ABBREVIATEDLABEL="zxx" LABEL="zxx" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="193" CREATED="2009-01-28 17:07:03.0" UUID="c8a7ebe5-ec4e-438f-9eec-971d703991ca" TEXT="Kawi" ABBREVIATEDLABEL="kaw" LABEL="kaw" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="194" CREATED="2009-01-28 17:07:03.0" UUID="1474274e-5abf-4962-b222-feeb9b22d2d2" TEXT="Sinhala; Sinhalese" ABBREVIATEDLABEL="sin" LABEL="sin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="195" CREATED="2009-01-28 17:07:03.0" UUID="54da70a5-d382-4d27-a21f-b5328b26d2bb" TEXT="Marshallese" ABBREVIATEDLABEL="mah" LABEL="mah" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="196" CREATED="2009-01-28 17:07:03.0" UUID="b148cd7b-e89c-400b-b608-f6ad9722e1b6" TEXT="Ladino" ABBREVIATEDLABEL="lad" LABEL="lad" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="197" CREATED="2009-01-28 17:07:03.0" UUID="4e780440-28ba-4ba0-a8f5-7cf2eef40308" TEXT="Faroese" ABBREVIATEDLABEL="fao" LABEL="fao" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="198" CREATED="2009-01-28 17:07:03.0" UUID="49276cb5-025a-4a82-bf45-c4e2d1f37790" TEXT="Waray" ABBREVIATEDLABEL="war" LABEL="war" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="199" CREATED="2009-01-28 17:07:03.0" UUID="84ab4816-b7e5-4faf-8ed3-93bf0ea05363" TEXT="Altaic (Other)" ABBREVIATEDLABEL="tut" LABEL="tut" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="200" CREATED="2009-01-28 17:07:03.0" UUID="b2906095-2cd8-489f-a332-2b5624a7e66d" TEXT="Susu" ABBREVIATEDLABEL="sus" LABEL="sus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="201" CREATED="2009-01-28 17:07:03.0" UUID="ed57759e-7e93-4f60-affb-7f75872a2681" TEXT="Nyankole" ABBREVIATEDLABEL="nyn" LABEL="nyn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="202" CREATED="2009-01-28 17:07:03.0" UUID="8a5d0e56-a82f-4ab4-a29a-a7fda5a98e27" TEXT="Ndebele, South; South Ndebele" ABBREVIATEDLABEL="nbl" LABEL="nbl" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="203" CREATED="2009-01-28 17:07:03.0" UUID="7feb11d9-78f5-43f5-97b1-00bad0d96790" TEXT="Ijo languages" ABBREVIATEDLABEL="ijo" LABEL="ijo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="204" CREATED="2009-01-28 17:07:03.0" UUID="a38acebe-f714-4431-91d2-b5299d602e66" TEXT="Munda languages" ABBREVIATEDLABEL="mun" LABEL="mun" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="205" CREATED="2009-01-28 17:07:03.0" UUID="236d80af-c45d-43de-9843-4f4dc15c76f1" TEXT="Athapascan languages" ABBREVIATEDLABEL="ath" LABEL="ath"/>\r
-  <REPRESENTATION ID="206" CREATED="2009-01-28 17:07:03.0" UUID="fa50d9eb-b9ed-4508-9a5f-50136d86df99" TEXT="Avestan" ABBREVIATEDLABEL="ave" LABEL="ave"/>\r
-  <REPRESENTATION ID="207" CREATED="2009-01-28 17:07:03.0" UUID="418410c4-6687-4982-b556-df40c3f4a45b" TEXT="Sasak" ABBREVIATEDLABEL="sas" LABEL="sas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="208" CREATED="2009-01-28 17:07:03.0" UUID="231a5996-7a56-406c-8c66-5a23fc6d1424" TEXT="Classical Syriac" ABBREVIATEDLABEL="syc" LABEL="syc" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="209" CREATED="2009-01-28 17:07:03.0" UUID="eac0e0ee-94cf-4063-9cd4-2abc26394f88" TEXT="Apache languages" ABBREVIATEDLABEL="apa" LABEL="apa"/>\r
-  <REPRESENTATION ID="210" CREATED="2009-01-28 17:07:03.0" UUID="460074b1-dd21-40e4-853c-a6289620da5b" TEXT="Hausa" ABBREVIATEDLABEL="hau" LABEL="hau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="211" CREATED="2009-01-28 17:07:03.0" UUID="6d1825e2-7c09-4c6a-b995-f2f11eff5db3" TEXT="Low German; Low Saxon; German, Low; Saxon, Low" ABBREVIATEDLABEL="nds" LABEL="nds" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="212" CREATED="2009-01-28 17:07:03.0" UUID="fa46b935-5e17-4e6d-adb3-108886c4ffb9" TEXT="Tonga (Nyasa)" ABBREVIATEDLABEL="tog" LABEL="tog" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="213" CREATED="2009-01-28 17:07:03.0" UUID="702d696c-bab7-414c-8992-9ea17ecd36a0" TEXT="Divehi; Dhivehi; Maldivian" ABBREVIATEDLABEL="div" LABEL="div"/>\r
-  <REPRESENTATION ID="214" CREATED="2009-01-28 17:07:03.0" UUID="10279fbd-f0eb-4a7d-88ef-5fa5c40180c1" TEXT="Sorbian languages" ABBREVIATEDLABEL="wen" LABEL="wen" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="215" CREATED="2009-01-28 17:07:03.0" UUID="0a845ad5-21fe-4895-9661-ebdeae854a8f" TEXT="Sardinian" ABBREVIATEDLABEL="srd" LABEL="srd" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="216" CREATED="2009-01-28 17:07:03.0" UUID="0ece17f1-741f-4691-b25f-67f03202389f" TEXT="Albanian" ABBREVIATEDLABEL="alb" LABEL="alb"/>\r
-  <REPRESENTATION ID="217" CREATED="2009-01-28 17:07:03.0" UUID="838ba646-1d01-4800-b8f0-4d2683c23aa5" TEXT="Balinese" ABBREVIATEDLABEL="ban" LABEL="ban"/>\r
-  <REPRESENTATION ID="218" CREATED="2009-01-28 17:07:03.0" UUID="a576af61-782d-4bf6-9693-53d87d1cb09e" TEXT="Tumbuka" ABBREVIATEDLABEL="tum" LABEL="tum" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="219" CREATED="2009-01-28 17:07:03.0" UUID="25a0ef8e-28ea-4fa6-8d12-fca4e65661f6" TEXT="Maltese" ABBREVIATEDLABEL="mlt" LABEL="mlt" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="220" CREATED="2009-01-28 17:07:03.0" UUID="d521739f-a211-4cbb-8c5f-36440f49bc7c" TEXT="Hindi" ABBREVIATEDLABEL="hin" LABEL="hin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="221" CREATED="2009-01-28 17:07:03.0" UUID="c974d880-4fdb-46d4-bf37-d0f303081e36" TEXT="Achinese" ABBREVIATEDLABEL="ace" LABEL="ace"/>\r
-  <REPRESENTATION ID="222" CREATED="2009-01-28 17:07:03.0" UUID="04f8bba2-2774-427d-8dbb-a19915f80fdd" TEXT="Hebrew" ABBREVIATEDLABEL="heb" LABEL="heb" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="223" CREATED="2009-01-28 17:07:03.0" UUID="f928fdb6-677f-4537-9bca-04bfd3feb6a4" TEXT="Irish" ABBREVIATEDLABEL="gle" LABEL="gle" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="224" CREATED="2009-01-28 17:07:03.0" UUID="f2e334eb-fe26-4607-8a06-554887cef581" TEXT="Chinook jargon" ABBREVIATEDLABEL="chn" LABEL="chn"/>\r
-  <REPRESENTATION ID="225" CREATED="2009-01-28 17:07:03.0" UUID="4f16b1f5-293c-4892-9d2b-808c9cf5273c" TEXT="Scots" ABBREVIATEDLABEL="sco" LABEL="sco" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="226" CREATED="2009-01-28 17:07:03.0" UUID="5f9e6efb-a489-49f9-a8c1-22d5af366d92" TEXT="Norwegian" ABBREVIATEDLABEL="nor" LABEL="nor" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="227" CREATED="2009-01-28 17:07:03.0" UUID="a5b4de5e-e433-4f48-8273-15f1fdb347d3" TEXT="Tai (Other)" ABBREVIATEDLABEL="tai" LABEL="tai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="228" CREATED="2009-01-28 17:07:03.0" UUID="15dcedce-c676-4e71-b809-088ceb5ccb54" TEXT="Khasi" ABBREVIATEDLABEL="kha" LABEL="kha" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="229" CREATED="2009-01-28 17:07:03.0" UUID="edf44d46-bd82-41df-af43-4cf4cfbe770b" TEXT="Oriya" ABBREVIATEDLABEL="ori" LABEL="ori" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="230" CREATED="2009-01-28 17:07:03.0" UUID="75975b17-fcb1-4509-a786-831b5939fcf2" TEXT="Russian" ABBREVIATEDLABEL="rus" LABEL="rus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="231" CREATED="2009-01-28 17:07:03.0" UUID="08afeb64-1714-402f-bbec-a317155bc2da" TEXT="Azerbaijani" ABBREVIATEDLABEL="aze" LABEL="aze"/>\r
-  <REPRESENTATION ID="232" CREATED="2009-01-28 17:07:03.0" UUID="83f7e833-e075-4406-a22f-bde05de35818" TEXT="Acoli" ABBREVIATEDLABEL="ach" LABEL="ach"/>\r
-  <REPRESENTATION ID="233" CREATED="2009-01-28 17:07:03.0" UUID="6b527bc5-5a4a-4096-a28f-1e94464dbe7f" TEXT="Ganda" ABBREVIATEDLABEL="lug" LABEL="lug" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="234" CREATED="2009-01-28 17:07:03.0" UUID="a3533dcd-ab61-4ee1-bd54-7d1fc95a444f" TEXT="Portuguese" ABBREVIATEDLABEL="por" LABEL="por" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="235" CREATED="2009-01-28 17:07:03.0" UUID="b7678b5a-0bcf-4cde-93b2-6cdb9ed755b8" TEXT="Gbaya" ABBREVIATEDLABEL="gba" LABEL="gba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="236" CREATED="2009-01-28 17:07:03.0" UUID="56cd166c-bcc0-4cdf-8f05-94b9e34c99fe" TEXT="Ugaritic" ABBREVIATEDLABEL="uga" LABEL="uga" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="237" CREATED="2009-01-28 17:07:03.0" UUID="cb17b20f-2c92-41c3-9b8d-48045117d529" TEXT="Tsimshian" ABBREVIATEDLABEL="tsi" LABEL="tsi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="238" CREATED="2009-01-28 17:07:03.0" UUID="9d3db9cb-3641-43f7-90a9-f16d9fe1488d" TEXT="Malagasy" ABBREVIATEDLABEL="mlg" LABEL="mlg" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="239" CREATED="2009-01-28 17:07:03.0" UUID="02119a59-658c-4a79-9c29-fbcabaee3463" TEXT="Spanish; Castilian" ABBREVIATEDLABEL="spa" LABEL="spa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="240" CREATED="2009-01-28 17:07:03.0" UUID="51a36617-19e9-4744-8731-54c1f2f5d2f3" TEXT="Inari Sami" ABBREVIATEDLABEL="smn" LABEL="smn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="241" CREATED="2009-01-28 17:07:03.0" UUID="0ff2fe83-473a-4474-9318-6ceb3b84d054" TEXT="Armenian" ABBREVIATEDLABEL="arm" LABEL="arm"/>\r
-  <REPRESENTATION ID="242" CREATED="2009-01-28 17:07:03.0" UUID="7bb77bcb-d77f-4024-99c2-52c52b38cb5e" TEXT="Coptic" ABBREVIATEDLABEL="cop" LABEL="cop"/>\r
-  <REPRESENTATION ID="243" CREATED="2009-01-28 17:07:03.0" UUID="474e3e03-4b85-4065-90e6-d0b469e6b52e" TEXT="Igbo" ABBREVIATEDLABEL="ibo" LABEL="ibo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="244" CREATED="2009-01-28 17:07:03.0" UUID="c8698e8d-50f2-4a1b-a641-02153679e7e2" TEXT="Hiri Motu" ABBREVIATEDLABEL="hmo" LABEL="hmo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="245" CREATED="2009-01-28 17:07:03.0" UUID="868604d3-0d5a-42ec-ad75-0085dd05ff96" TEXT="Bihari" ABBREVIATEDLABEL="bih" LABEL="bih"/>\r
-  <REPRESENTATION ID="246" CREATED="2009-01-28 17:07:03.0" UUID="ac2555fd-5354-4023-b47b-893df1a510ca" TEXT="Grebo" ABBREVIATEDLABEL="grb" LABEL="grb" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="247" CREATED="2009-01-28 17:07:03.0" UUID="0047a62c-4ff7-47db-a36f-962392524213" TEXT="Duala" ABBREVIATEDLABEL="dua" LABEL="dua"/>\r
-  <REPRESENTATION ID="248" CREATED="2009-01-28 17:07:03.0" UUID="573f34a0-5b5b-4109-a3c2-f4c64ce4c41e" TEXT="Beja; Bedawiyet" ABBREVIATEDLABEL="bej" LABEL="bej"/>\r
-  <REPRESENTATION ID="249" CREATED="2009-01-28 17:07:03.0" UUID="655006c5-07f4-4ff3-ae8e-57d8ad0b64ba" TEXT="Xhosa" ABBREVIATEDLABEL="xho" LABEL="xho" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="250" CREATED="2009-01-28 17:07:03.0" UUID="3aab0971-9f9b-446a-a3e5-f00ed9ae2bcd" TEXT="Tiv" ABBREVIATEDLABEL="tiv" LABEL="tiv" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="251" CREATED="2009-01-28 17:07:03.0" UUID="bb953dfb-8cfa-41d5-ae40-2758a3826f31" TEXT="Walamo" ABBREVIATEDLABEL="wal" LABEL="wal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="252" CREATED="2009-01-28 17:07:03.0" UUID="8a41c5d8-ed42-4ecc-b54a-b128650ee462" TEXT="Creoles and pidgins (Other)" ABBREVIATEDLABEL="crp" LABEL="crp"/>\r
-  <REPRESENTATION ID="253" CREATED="2009-01-28 17:07:03.0" UUID="70ed0df5-4faa-42eb-9baa-d40f9adb8c56" TEXT="Lamba" ABBREVIATEDLABEL="lam" LABEL="lam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="254" CREATED="2009-01-28 17:07:03.0" UUID="37219b43-72c0-482a-9dbb-6f1f0b2cf724" TEXT="Serer" ABBREVIATEDLABEL="srr" LABEL="srr" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="255" CREATED="2009-01-28 17:07:03.0" UUID="536aac51-7aed-482a-a4a5-25d12d5d1271" TEXT="Ingush" ABBREVIATEDLABEL="inh" LABEL="inh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="256" CREATED="2009-01-28 17:07:03.0" UUID="fe1161e4-de3b-4253-b98d-621239662ad8" TEXT="Chamorro" ABBREVIATEDLABEL="cha" LABEL="cha"/>\r
-  <REPRESENTATION ID="257" CREATED="2009-01-28 17:07:03.0" UUID="8472d4a4-9dd2-4fc4-865d-f0c607ece391" TEXT="Judeo-Arabic" ABBREVIATEDLABEL="jrb" LABEL="jrb" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="258" CREATED="2009-01-28 17:07:03.0" UUID="3d158ef0-780f-476b-a01a-d8d39a10182a" TEXT="Dogrib" ABBREVIATEDLABEL="dgr" LABEL="dgr"/>\r
-  <REPRESENTATION ID="259" CREATED="2009-01-28 17:07:03.0" UUID="f23b8c9c-3a55-44bb-ada3-1da22b2e7f6a" TEXT="Slave (Athapascan)" ABBREVIATEDLABEL="den" LABEL="den"/>\r
-  <REPRESENTATION ID="260" CREATED="2009-01-28 17:07:03.0" UUID="2b133917-7743-4d33-881c-43597316c46f" TEXT="Undetermined" ABBREVIATEDLABEL="und" LABEL="und" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="261" CREATED="2009-01-28 17:07:03.0" UUID="a8b5e112-ae3b-43ec-a447-293def163144" TEXT="Twi" ABBREVIATEDLABEL="twi" LABEL="twi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="262" CREATED="2009-01-28 17:07:03.0" UUID="06c2e84d-c8d2-420a-b7f2-8a414165739f" TEXT="Zapotec" ABBREVIATEDLABEL="zap" LABEL="zap" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="263" CREATED="2009-01-28 17:07:03.0" UUID="58e87ad9-1bf3-49e7-97b3-7ebc0762e37a" TEXT="Mongolian" ABBREVIATEDLABEL="mon" LABEL="mon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="264" CREATED="2009-01-28 17:07:03.0" UUID="fac67f34-163a-46cd-86ac-45f136e1a7c8" TEXT="Classical Newari; Old Newari; Classical Nepal Bhasa" ABBREVIATEDLABEL="nwc" LABEL="nwc" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="265" CREATED="2009-01-28 17:07:03.0" UUID="5487d606-8dee-40e6-be18-22a511e62e36" TEXT="German, Old High (ca.750-1050)" ABBREVIATEDLABEL="goh" LABEL="goh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="266" CREATED="2009-01-28 17:07:03.0" UUID="8bb3cc5c-449e-4e67-99d8-d37b7ebf996d" TEXT="Kannada" ABBREVIATEDLABEL="kan" LABEL="kan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="267" CREATED="2009-01-28 17:07:03.0" UUID="153a9ba4-82b2-45c8-bf6b-ef50bb386a77" TEXT="Assamese" ABBREVIATEDLABEL="asm" LABEL="asm"/>\r
-  <REPRESENTATION ID="268" CREATED="2009-01-28 17:07:03.0" UUID="5a7365bf-55d8-48d6-810e-7725ac6c3591" TEXT="French, Old (842-ca.1400)" ABBREVIATEDLABEL="fro" LABEL="fro" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="269" CREATED="2009-01-28 17:07:03.0" UUID="419f8202-e037-4964-8ab9-e874e57542f2" TEXT="Polish" ABBREVIATEDLABEL="pol" LABEL="pol" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="270" CREATED="2009-01-28 17:07:03.0" UUID="6ec63138-0451-40ba-8a93-b3211b1cb096" TEXT="Adangme" ABBREVIATEDLABEL="ada" LABEL="ada"/>\r
-  <REPRESENTATION ID="271" CREATED="2009-01-28 17:07:03.0" UUID="891aa787-dfbc-449e-9493-c5f7e0790521" TEXT="Nogai" ABBREVIATEDLABEL="nog" LABEL="nog" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="272" CREATED="2009-01-28 17:07:03.0" UUID="bc0d2496-8de7-4d30-9904-175e60fae619" TEXT="Panjabi; Punjabi" ABBREVIATEDLABEL="pan" LABEL="pan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="273" CREATED="2009-01-28 17:07:03.0" UUID="e5851129-fb43-466e-8578-efc7671e1a7c" TEXT="Santali" ABBREVIATEDLABEL="sat" LABEL="sat" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="274" CREATED="2009-01-28 17:07:03.0" UUID="b31b0858-83ac-4b29-9d92-c3b55857dda3" TEXT="Votic" ABBREVIATEDLABEL="vot" LABEL="vot" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="275" CREATED="2009-01-28 17:07:03.0" UUID="ae31c295-752d-4869-a407-b0e9d30b9cbf" TEXT="Romansh" ABBREVIATEDLABEL="roh" LABEL="roh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="276" CREATED="2009-01-28 17:07:03.0" UUID="2a6c33e6-c7f3-4c05-9a4e-1648232b8795" TEXT="Hittite" ABBREVIATEDLABEL="hit" LABEL="hit" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="277" CREATED="2009-01-28 17:07:03.0" UUID="4c51aee8-d296-4760-9afa-0a9af3bc6d62" TEXT="Georgian" ABBREVIATEDLABEL="geo" LABEL="geo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="278" CREATED="2009-01-28 17:07:03.0" UUID="a6ea8221-a201-4289-8bd9-033b6430eae2" TEXT="Efik" ABBREVIATEDLABEL="efi" LABEL="efi"/>\r
-  <REPRESENTATION ID="279" CREATED="2009-01-28 17:07:03.0" UUID="f88c5800-3e65-4e61-a962-7ee0502e2a46" TEXT="Turkmen" ABBREVIATEDLABEL="tuk" LABEL="tuk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="280" CREATED="2009-01-28 17:07:03.0" UUID="863857ac-2ffc-41f4-b402-20a6646806ec" TEXT="Choctaw" ABBREVIATEDLABEL="cho" LABEL="cho"/>\r
-  <REPRESENTATION ID="281" CREATED="2009-01-28 17:07:03.0" UUID="caa98a8c-1980-47fb-b357-21619fbf721a" TEXT="Asturian; Bable; Leonese; Asturleonese" ABBREVIATEDLABEL="ast" LABEL="ast"/>\r
-  <REPRESENTATION ID="282" CREATED="2009-01-28 17:07:03.0" UUID="da477252-74dd-40c5-bd46-7ccdb52c6fc6" TEXT="Banda languages" ABBREVIATEDLABEL="bad" LABEL="bad"/>\r
-  <REPRESENTATION ID="283" CREATED="2009-01-28 17:07:03.0" UUID="1f8d1b61-c5e6-4096-b556-d45d2030b707" TEXT="German, Middle High (ca.1050-1500)" ABBREVIATEDLABEL="gmh" LABEL="gmh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="284" CREATED="2009-01-28 17:07:03.0" UUID="fcfa1b6f-041a-4abb-8d6c-5366b3490636" TEXT="Uzbek" ABBREVIATEDLABEL="uzb" LABEL="uzb" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="285" CREATED="2009-01-28 17:07:03.0" UUID="659d64bc-69a7-45a5-9e65-e15fb5edbbcd" TEXT="Fanti" ABBREVIATEDLABEL="fat" LABEL="fat" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="286" CREATED="2009-01-28 17:07:03.0" UUID="08db67eb-6783-4703-abd7-470d3835694e" TEXT="Malayalam" ABBREVIATEDLABEL="mal" LABEL="mal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="287" CREATED="2009-01-28 17:07:03.0" UUID="c07d8bdc-3a57-4cf4-831e-e1c4e1e57989" TEXT="Provençal, Old (to 1500)" ABBREVIATEDLABEL="pro" LABEL="pro" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="288" CREATED="2009-01-28 17:07:03.0" UUID="63682b8a-52bf-45c0-a2e2-2259d54b4afd" TEXT="Ewe" ABBREVIATEDLABEL="ewe" LABEL="ewe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="289" CREATED="2009-01-28 17:07:03.0" UUID="93093b83-c2d6-4353-b146-0f04784ed534" TEXT="Quechua" ABBREVIATEDLABEL="que" LABEL="que" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="290" CREATED="2009-01-28 17:07:03.0" UUID="4a741d76-ae44-4600-90f6-5b879c3f3991" TEXT="Bemba" ABBREVIATEDLABEL="bem" LABEL="bem"/>\r
-  <REPRESENTATION ID="291" CREATED="2009-01-28 17:07:03.0" UUID="a106bd72-9c4c-4773-a1aa-4e788421140e" TEXT="Luxembourgish; Letzeburgesch" ABBREVIATEDLABEL="ltz" LABEL="ltz" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="292" CREATED="2009-01-28 17:07:03.0" UUID="9541be15-e271-4f57-b48e-0f764cf3fc92" TEXT="Bosnian" ABBREVIATEDLABEL="bos" LABEL="bos"/>\r
-  <REPRESENTATION ID="293" CREATED="2009-01-28 17:07:03.0" UUID="c86d1a78-667d-4c8a-bad7-0eb210b9ecaf" TEXT="Slavic (Other)" ABBREVIATEDLABEL="sla" LABEL="sla" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="294" CREATED="2009-01-28 17:07:03.0" UUID="b9f8caf0-5ce1-47df-b08e-5f76bcdf705a" TEXT="Ojibwa" ABBREVIATEDLABEL="oji" LABEL="oji" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="295" CREATED="2009-01-28 17:07:03.0" UUID="cb2397d7-42c6-4628-a798-52ce4a3f8570" TEXT="Wolof" ABBREVIATEDLABEL="wol" LABEL="wol" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="296" CREATED="2009-01-28 17:07:03.0" UUID="739fac3b-8cd0-4b1b-b027-57849a561fa6" TEXT="Kashubian" ABBREVIATEDLABEL="csb" LABEL="csb"/>\r
-  <REPRESENTATION ID="297" CREATED="2009-01-28 17:07:03.0" UUID="a0dba0f7-bc0f-477a-b5c5-af70eebb759f" TEXT="Chinese" ABBREVIATEDLABEL="chi" LABEL="chi"/>\r
-  <REPRESENTATION ID="298" CREATED="2009-01-28 17:07:03.0" UUID="b2465e5f-97e3-4fb9-b5db-4dc23718805e" TEXT="Gaelic; Scottish Gaelic" ABBREVIATEDLABEL="gla" LABEL="gla" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="299" CREATED="2009-01-28 17:07:03.0" UUID="461a18c2-ffb7-4c52-9166-838a1ae609b0" TEXT="Malay" ABBREVIATEDLABEL="may" LABEL="may" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="300" CREATED="2009-01-28 17:07:03.0" UUID="f0e6b1ef-975f-44ee-9e63-ef3e3e48a7fd" TEXT="Songhai languages" ABBREVIATEDLABEL="son" LABEL="son" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="301" CREATED="2009-01-28 17:07:03.0" UUID="65405ac0-c425-4a4c-ad16-021cf026e78a" TEXT="Inupiaq" ABBREVIATEDLABEL="ipk" LABEL="ipk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="302" CREATED="2009-01-28 17:07:03.0" UUID="8dc38659-fc07-44e4-8523-acfc34c55d7d" TEXT="Otomian languages" ABBREVIATEDLABEL="oto" LABEL="oto" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="303" CREATED="2009-01-28 17:07:03.0" UUID="b7774f32-7f0f-4758-8389-04cc436263fe" TEXT="Creek" ABBREVIATEDLABEL="mus" LABEL="mus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="304" CREATED="2009-01-28 17:07:03.0" UUID="ef47d5b2-1f66-4af4-8e95-5af84949b42e" TEXT="Nyoro" ABBREVIATEDLABEL="nyo" LABEL="nyo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="305" CREATED="2009-01-28 17:07:03.0" UUID="ff86b01f-02a8-4223-9901-2a95c6a45163" TEXT="Chamic languages" ABBREVIATEDLABEL="cmc" LABEL="cmc"/>\r
-  <REPRESENTATION ID="306" CREATED="2009-01-28 17:07:03.0" UUID="155f188e-b287-4bfc-a036-aac32e0ab3b9" TEXT="Herero" ABBREVIATEDLABEL="her" LABEL="her" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="307" CREATED="2009-01-28 17:07:03.0" UUID="73f41915-e638-4eb0-914a-bd0340af0f6e" TEXT="Eastern Frisian" ABBREVIATEDLABEL="frs" LABEL="frs" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="308" CREATED="2009-01-28 17:07:03.0" UUID="a0b4833f-8353-4086-9d8d-d81b4b56a695" TEXT="Lahnda" ABBREVIATEDLABEL="lah" LABEL="lah" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="309" CREATED="2009-01-28 17:07:03.0" UUID="c68bdfe0-db1c-4cc1-9cd7-17930a79fc8a" TEXT="Creoles and pidgins, Portuguese-based (Other)" ABBREVIATEDLABEL="cpp" LABEL="cpp"/>\r
-  <REPRESENTATION ID="310" CREATED="2009-01-28 17:07:03.0" UUID="a9b85d6c-ec03-4a74-8dbd-c3084ec106e3" TEXT="Indic (Other)" ABBREVIATEDLABEL="inc" LABEL="inc" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="311" CREATED="2009-01-28 17:07:03.0" UUID="0ef79785-4e7d-4720-a1de-49a4b25293d8" TEXT="Persian, Old (ca.600-400 B.C.)" ABBREVIATEDLABEL="peo" LABEL="peo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="312" CREATED="2009-01-28 17:07:03.0" UUID="bddd41a3-8f6a-4d8a-957d-c7fb60394a77" TEXT="Tsonga" ABBREVIATEDLABEL="tso" LABEL="tso" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="313" CREATED="2009-01-28 17:07:03.0" UUID="a6187f33-7665-406d-86c7-661d588575b0" TEXT="Ewondo" ABBREVIATEDLABEL="ewo" LABEL="ewo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="314" CREATED="2009-01-28 17:07:03.0" UUID="29ff74ee-401a-4748-9d4f-991803f689ef" TEXT="Khotanese" ABBREVIATEDLABEL="kho" LABEL="kho" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="315" CREATED="2009-01-28 17:07:03.0" UUID="9b5dc1e9-f96a-4d86-b7e1-14d9c4130a4a" TEXT="Awadhi" ABBREVIATEDLABEL="awa" LABEL="awa"/>\r
-  <REPRESENTATION ID="316" CREATED="2009-01-28 17:07:03.0" UUID="5f6ec699-48c6-471f-a047-0c4e8eea631d" TEXT="Zuni" ABBREVIATEDLABEL="zun" LABEL="zun" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="317" CREATED="2009-01-28 17:07:03.0" UUID="9c83520c-a926-42ba-affa-83316d6180e2" TEXT="Serbian" ABBREVIATEDLABEL="scc" LABEL="scc" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="318" CREATED="2009-01-28 17:07:03.0" UUID="06caca4c-26b9-47db-9cf1-3e18361a822e" TEXT="Lingala" ABBREVIATEDLABEL="lin" LABEL="lin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="319" CREATED="2009-01-28 17:07:03.0" UUID="0f904f47-6d83-4786-8d0c-7f42e21f5f5e" TEXT="Western Frisian" ABBREVIATEDLABEL="fry" LABEL="fry" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="320" CREATED="2009-01-28 17:07:03.0" UUID="8883ef92-4091-4835-a8f5-6aec67d981d3" TEXT="Minangkabau" ABBREVIATEDLABEL="min" LABEL="min" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="321" CREATED="2009-01-28 17:07:03.0" UUID="dd1c9a10-14cc-440b-9a38-193a1006b1ca" TEXT="Niuean" ABBREVIATEDLABEL="niu" LABEL="niu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="322" CREATED="2009-01-28 17:07:03.0" UUID="02691ef6-11d5-4b8c-a9d3-d2dfa888403b" TEXT="Tok Pisin" ABBREVIATEDLABEL="tpi" LABEL="tpi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="323" CREATED="2009-01-28 17:07:03.0" UUID="f987c001-f97f-49a7-848e-dac7271baabc" TEXT="Belarusian" ABBREVIATEDLABEL="bel" LABEL="bel"/>\r
-  <REPRESENTATION ID="324" CREATED="2009-01-28 17:07:03.0" UUID="40fe76d9-74ae-41cc-920d-541b6391c74e" TEXT="Mende" ABBREVIATEDLABEL="men" LABEL="men" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="325" CREATED="2009-01-28 17:07:03.0" UUID="8c83e5a2-812e-4eb0-afd3-cc02a9546d19" TEXT="Filipino; Pilipino" ABBREVIATEDLABEL="fil" LABEL="fil" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="326" CREATED="2009-01-28 17:07:03.0" UUID="6633795f-e4b2-440f-9fde-3bd744d5cf60" TEXT="Central American Indian (Other)" ABBREVIATEDLABEL="cai" LABEL="cai"/>\r
-  <REPRESENTATION ID="327" CREATED="2009-01-28 17:07:03.0" UUID="208cf2d2-931c-4ffb-bd7d-0c9e305589cb" TEXT="Yao" ABBREVIATEDLABEL="yao" LABEL="yao" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="328" CREATED="2009-01-28 17:07:03.0" UUID="6946b6f6-e0eb-4501-9f0a-4aba10975f96" TEXT="Finnish" ABBREVIATEDLABEL="fin" LABEL="fin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="329" CREATED="2009-01-28 17:07:03.0" UUID="5fac0ca3-e888-4a55-9115-ad2fb91a9922" TEXT="Philippine (Other)" ABBREVIATEDLABEL="phi" LABEL="phi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="330" CREATED="2009-01-28 17:07:03.0" UUID="c6050567-6c8a-44dc-9ad8-db300e81284b" TEXT="Indonesian" ABBREVIATEDLABEL="ind" LABEL="ind" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="331" CREATED="2009-01-28 17:07:03.0" UUID="7a0f8f0d-0b9b-4795-b3cb-cf96db72cc3d" TEXT="Hmong" ABBREVIATEDLABEL="hmn" LABEL="hmn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="332" CREATED="2009-01-28 17:07:03.0" UUID="6df11613-168f-4b00-bc49-4b756809f6a7" TEXT="Nilo-Saharan (Other)" ABBREVIATEDLABEL="ssa" LABEL="ssa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="333" CREATED="2009-01-28 17:07:03.0" UUID="6e8847bb-baef-4a8a-a875-f4b563080d81" TEXT="Fon" ABBREVIATEDLABEL="fon" LABEL="fon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="334" CREATED="2009-01-28 17:07:03.0" UUID="0a4b75b7-bcb9-482b-9eb7-1606ce1bac9c" TEXT="Ndebele, North; North Ndebele" ABBREVIATEDLABEL="nde" LABEL="nde" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="335" CREATED="2009-01-28 17:07:03.0" UUID="3ffce664-0251-486d-9a3c-de756e8eae2e" TEXT="Kalmyk; Oirat" ABBREVIATEDLABEL="xal" LABEL="xal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="336" CREATED="2009-01-28 17:07:03.0" UUID="94f4ccd5-0fac-4198-869a-39ce7c2d29e0" TEXT="Akan" ABBREVIATEDLABEL="aka" LABEL="aka"/>\r
-  <REPRESENTATION ID="337" CREATED="2009-01-28 17:07:03.0" UUID="def33d40-f570-483d-a0f6-24c5f1bd2799" TEXT="Lower Sorbian" ABBREVIATEDLABEL="dsb" LABEL="dsb"/>\r
-  <REPRESENTATION ID="338" CREATED="2009-01-28 17:07:03.0" UUID="f631e661-db83-4ced-a79d-41efd529b4fd" TEXT="Pangasinan" ABBREVIATEDLABEL="pag" LABEL="pag" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="339" CREATED="2009-01-28 17:07:03.0" UUID="09814772-3b2a-4848-b860-49cd91357ca9" TEXT="Kurukh" ABBREVIATEDLABEL="kru" LABEL="kru" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="340" CREATED="2009-01-28 17:07:03.0" UUID="7349b9fb-db17-4d59-a71c-cd09bfc41d6a" TEXT="Hungarian" ABBREVIATEDLABEL="hun" LABEL="hun" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="341" CREATED="2009-01-28 17:07:03.0" UUID="75cb611f-98fb-4cb1-8cdf-195825cd0bc6" TEXT="Chechen" ABBREVIATEDLABEL="che" LABEL="che"/>\r
-  <REPRESENTATION ID="342" CREATED="2009-01-28 17:07:03.0" UUID="60533705-85c3-4e5b-978a-d9a56812ac65" TEXT="Romanian" ABBREVIATEDLABEL="rum" LABEL="rum" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="343" CREATED="2009-01-28 17:07:03.0" UUID="56bf5228-9aad-41a9-b3be-599a735cadce" TEXT="Samaritan Aramaic" ABBREVIATEDLABEL="sam" LABEL="sam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="344" CREATED="2009-01-28 17:07:03.0" UUID="12782e63-97a5-4f63-9b50-dc8bd2fcfafa" TEXT="Hawaiian" ABBREVIATEDLABEL="haw" LABEL="haw" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="345" CREATED="2009-01-28 17:07:03.0" UUID="8d9444ca-7aa1-464a-b1b5-17200cf77937" TEXT="Luiseno" ABBREVIATEDLABEL="lui" LABEL="lui" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="346" CREATED="2009-01-28 17:07:03.0" UUID="3fdc0000-4af1-47ed-8259-b3deaf2483d9" TEXT="Nias" ABBREVIATEDLABEL="nia" LABEL="nia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="347" CREATED="2009-01-28 17:07:03.0" UUID="33e6a332-5f38-4986-9e26-f0d4de7de2d4" TEXT="Latvian" ABBREVIATEDLABEL="lav" LABEL="lav" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="348" CREATED="2009-01-28 17:07:03.0" UUID="93131442-3b78-4e14-930a-4c80b25830e2" TEXT="Baluchi" ABBREVIATEDLABEL="bal" LABEL="bal"/>\r
-  <REPRESENTATION ID="349" CREATED="2009-01-28 17:07:03.0" UUID="60bf32b8-a1ed-4770-9b6e-59eeb7b0361a" TEXT="Hupa" ABBREVIATEDLABEL="hup" LABEL="hup" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="350" CREATED="2009-01-28 17:07:03.0" UUID="fe665a6d-226f-41a7-837d-d87c37bcd08b" TEXT="German" ABBREVIATEDLABEL="ger" LABEL="ger" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="351" CREATED="2009-01-28 17:07:03.0" UUID="f8835e92-dc8f-41f4-8ba2-ac41049f9c3b" TEXT="Caucasian (Other)" ABBREVIATEDLABEL="cau" LABEL="cau"/>\r
-  <REPRESENTATION ID="352" CREATED="2009-01-28 17:07:03.0" UUID="e65f254f-f5ac-4f01-ab35-c10dd030c254" TEXT="Cheyenne" ABBREVIATEDLABEL="chy" LABEL="chy"/>\r
-  <REPRESENTATION ID="353" CREATED="2009-01-28 17:07:03.0" UUID="fe51edcb-c527-48e8-bef2-7accabbd30fb" TEXT="Latin" ABBREVIATEDLABEL="lat" LABEL="lat" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="354" CREATED="2009-01-28 17:07:03.0" UUID="ded72ae6-f838-49df-897f-1da646861532" TEXT="Mon-Khmer (Other)" ABBREVIATEDLABEL="mkh" LABEL="mkh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="355" CREATED="2009-01-28 17:07:03.0" UUID="0d3ae7ea-282b-4d97-9d7c-7e5227170d62" TEXT="Australian languages" ABBREVIATEDLABEL="aus" LABEL="aus"/>\r
-  <REPRESENTATION ID="356" CREATED="2009-01-28 17:07:03.0" UUID="cd167727-b070-41cf-a900-7dbbbee84c52" TEXT="Welsh" ABBREVIATEDLABEL="wel" LABEL="wel" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="357" CREATED="2009-01-28 17:07:03.0" UUID="efbc9b2c-92d0-4413-b57e-7a51dc71b610" TEXT="Estonian" ABBREVIATEDLABEL="est" LABEL="est" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="358" CREATED="2009-01-28 17:07:03.0" UUID="74a8f5de-3c2a-469e-9761-076c7887e68c" TEXT="Luba-Lulua" ABBREVIATEDLABEL="lua" LABEL="lua" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="359" CREATED="2009-01-28 17:07:03.0" UUID="26573a67-f233-4701-8204-b98bbdfca6c6" TEXT="Norwegian Nynorsk; Nynorsk, Norwegian" ABBREVIATEDLABEL="nno" LABEL="nno" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="360" CREATED="2009-01-28 17:07:03.0" UUID="7b271296-91cc-4ef5-92d2-cc4f66293c48" TEXT="Neapolitan" ABBREVIATEDLABEL="nap" LABEL="nap" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="361" CREATED="2009-01-28 17:07:03.0" UUID="14be81b9-3821-4a6b-8391-10f65ef50f6c" TEXT="Udmurt" ABBREVIATEDLABEL="udm" LABEL="udm" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="362" CREATED="2009-01-28 17:07:03.0" UUID="6cdfe902-3343-4092-a512-e59d17556671" TEXT="Rundi" ABBREVIATEDLABEL="run" LABEL="run" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="363" CREATED="2009-01-28 17:07:03.0" UUID="d4aff07f-8d58-42d8-a324-883df973acbc" TEXT="Sukuma" ABBREVIATEDLABEL="suk" LABEL="suk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="364" CREATED="2009-01-28 17:07:03.0" UUID="678ea8ef-1c4e-4211-bedd-eb7789491c8a" TEXT="Sicilian" ABBREVIATEDLABEL="scn" LABEL="scn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="365" CREATED="2009-01-28 17:07:03.0" UUID="4d82d905-1ead-4d3b-8568-b56ee446a943" TEXT="Pedi; Sepedi; Northern Sotho" ABBREVIATEDLABEL="nso" LABEL="nso" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="366" CREATED="2009-01-28 17:07:03.0" UUID="3a80f231-ad63-4fc5-adc0-8b0244b66f8e" TEXT="Afro-Asiatic (Other)" ABBREVIATEDLABEL="afa" LABEL="afa"/>\r
-  <REPRESENTATION ID="367" CREATED="2009-01-28 17:07:03.0" UUID="8f37ee2f-af36-43af-b900-e9d802784daa" TEXT="Nubian languages" ABBREVIATEDLABEL="nub" LABEL="nub" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="368" CREATED="2009-01-28 17:07:03.0" UUID="b6efcc02-aee7-455f-89fc-58aacca8b565" TEXT="Chagatai" ABBREVIATEDLABEL="chg" LABEL="chg"/>\r
-  <REPRESENTATION ID="369" CREATED="2009-01-28 17:07:03.0" UUID="f8c3b912-c8b3-45af-bd1a-be06dd3ca85c" TEXT="English, Old (ca.450-1100)" ABBREVIATEDLABEL="ang" LABEL="ang"/>\r
-  <REPRESENTATION ID="370" CREATED="2009-01-28 17:07:03.0" UUID="4f730f26-a5cd-4a0a-8bf0-b965fa237489" TEXT="Afar" ABBREVIATEDLABEL="aar" LABEL="aar"/>\r
-  <REPRESENTATION ID="371" CREATED="2009-01-28 17:07:03.0" UUID="3d41bbf2-72ef-4065-8d70-1140ab6196c4" TEXT="Tokelau" ABBREVIATEDLABEL="tkl" LABEL="tkl" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="372" CREATED="2009-01-28 17:07:03.0" UUID="ef30d464-5de5-4ddd-b0cd-9166f2febaa0" TEXT="Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic" ABBREVIATEDLABEL="chu" LABEL="chu"/>\r
-  <REPRESENTATION ID="373" CREATED="2009-01-28 17:07:03.0" UUID="8363d63f-9dd8-4be3-adb5-d653bc9ff44f" TEXT="Norse, Old" ABBREVIATEDLABEL="non" LABEL="non" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="374" CREATED="2009-01-28 17:07:03.0" UUID="8f5e116e-2ba9-4eef-83a5-87968fbbdbe6" TEXT="Amharic" ABBREVIATEDLABEL="amh" LABEL="amh"/>\r
-  <REPRESENTATION ID="375" CREATED="2009-01-28 17:07:03.0" UUID="1b25f38e-f9e7-471a-9a90-20743a99caf5" TEXT="Croatian" ABBREVIATEDLABEL="scr" LABEL="scr" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="376" CREATED="2009-01-28 17:07:03.0" UUID="f4c2ca9b-64a2-43df-ba8d-1f41887c6780" TEXT="Tupi languages" ABBREVIATEDLABEL="tup" LABEL="tup" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="377" CREATED="2009-01-28 17:07:03.0" UUID="bee36062-3fa2-42de-8879-b83a04b4c464" TEXT="Sogdian" ABBREVIATEDLABEL="sog" LABEL="sog" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="378" CREATED="2009-01-28 17:07:03.0" UUID="6e320a6f-a925-444a-99b5-3b7c223b026d" TEXT="Buginese" ABBREVIATEDLABEL="bug" LABEL="bug"/>\r
-  <REPRESENTATION ID="379" CREATED="2009-01-28 17:07:03.0" UUID="ba18874e-1b35-48e3-a9c8-da072452b664" TEXT="Afrikaans" ABBREVIATEDLABEL="afr" LABEL="afr"/>\r
-  <REPRESENTATION ID="380" CREATED="2009-01-28 17:07:03.0" UUID="92a422c6-c72f-4df7-9304-61f3789ed147" TEXT="Breton" ABBREVIATEDLABEL="bre" LABEL="bre"/>\r
-  <REPRESENTATION ID="381" CREATED="2009-01-28 17:07:03.0" UUID="64c86654-6bd5-4946-b357-f73740e959f3" TEXT="Angika" ABBREVIATEDLABEL="anp" LABEL="anp"/>\r
-  <REPRESENTATION ID="382" CREATED="2009-01-28 17:07:03.0" UUID="e4c013a0-3ed7-4be9-808b-a17b6e3e7308" TEXT="Kikuyu; Gikuyu" ABBREVIATEDLABEL="kik" LABEL="kik" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="383" CREATED="2009-01-28 17:07:03.0" UUID="67a5c2e9-b373-44cc-b837-a21eea99e86f" TEXT="Algonquian languages" ABBREVIATEDLABEL="alg" LABEL="alg"/>\r
-  <REPRESENTATION ID="384" CREATED="2009-01-28 17:07:03.0" UUID="2d2a819c-e60b-4786-a0b5-7ebc5d8c06fe" TEXT="Tswana" ABBREVIATEDLABEL="tsn" LABEL="tsn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="385" CREATED="2009-01-28 17:07:03.0" UUID="df1c83fa-ec70-4a6c-8adf-74f35ab6d915" TEXT="French" ABBREVIATEDLABEL="fre" LABEL="fre" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="386" CREATED="2009-01-28 17:07:03.0" UUID="20b0dc59-5ebb-46d2-b04b-6c2ec5e3a124" TEXT="Tatar" ABBREVIATEDLABEL="tat" LABEL="tat" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="387" CREATED="2009-01-28 17:07:03.0" UUID="a02ebdfa-0b9b-4604-9f7c-20765c70788a" TEXT="Ndonga" ABBREVIATEDLABEL="ndo" LABEL="ndo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="388" CREATED="2009-01-28 17:07:03.0" UUID="6c502818-2d2c-4c3f-bf90-ba9d710a08b6" TEXT="Nyamwezi" ABBREVIATEDLABEL="nym" LABEL="nym" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="389" CREATED="2009-01-28 17:07:03.0" UUID="10f3ddd0-5142-4fb1-bcea-9d210bffc189" TEXT="Slovenian" ABBREVIATEDLABEL="slv" LABEL="slv" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="390" CREATED="2009-01-28 17:07:03.0" UUID="8a9ff301-9bfd-44bf-9102-d7d07761f590" TEXT="Tajik" ABBREVIATEDLABEL="tgk" LABEL="tgk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="391" CREATED="2009-01-28 17:07:03.0" UUID="bfac85a3-4e2a-45e3-8a4a-a1a7b0733b6d" TEXT="Interlingua (International Auxiliary Language Association)" ABBREVIATEDLABEL="ina" LABEL="ina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="392" CREATED="2009-01-28 17:07:03.0" UUID="98c3e643-679b-44e5-a34d-3658953d1496" TEXT="Haida" ABBREVIATEDLABEL="hai" LABEL="hai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="393" CREATED="2009-01-28 17:07:03.0" UUID="c71b3223-58c6-4829-8420-ccb3ebd3bcaa" TEXT="Northern Sami" ABBREVIATEDLABEL="sme" LABEL="sme" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="394" CREATED="2009-01-28 17:07:03.0" UUID="7f76dc61-96ca-42e2-8d3b-6eb2fe05a1f4" TEXT="Germanic (Other)" ABBREVIATEDLABEL="gem" LABEL="gem" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="395" CREATED="2009-01-28 17:07:03.0" UUID="a0efa073-bf87-44c0-9f63-2f89e0ccb551" TEXT="Walloon" ABBREVIATEDLABEL="wln" LABEL="wln" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="396" CREATED="2009-01-28 17:07:03.0" UUID="a9b74d50-5dba-475a-88f6-98bcd90a2b36" TEXT="Batak languages" ABBREVIATEDLABEL="btk" LABEL="btk"/>\r
-  <REPRESENTATION ID="397" CREATED="2009-01-28 17:07:03.0" UUID="f086794b-0536-40d7-8174-70031640d24f" TEXT="Iroquoian languages" ABBREVIATEDLABEL="iro" LABEL="iro" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="398" CREATED="2009-01-28 17:07:03.0" UUID="fbd7d836-73ec-4a5c-a56e-9e9ea3febc7c" TEXT="Sranan Tongo" ABBREVIATEDLABEL="srn" LABEL="srn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="399" CREATED="2009-01-28 17:07:03.0" UUID="a5b921a5-9c11-4ab1-872a-c4a240418ebe" TEXT="Kashmiri" ABBREVIATEDLABEL="kas" LABEL="kas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="400" CREATED="2009-01-28 17:07:03.0" UUID="2213caf0-fead-4404-81c6-4e39927f7744" TEXT="Arabic" ABBREVIATEDLABEL="ara" LABEL="ara"/>\r
-  <REPRESENTATION ID="401" CREATED="2009-01-28 17:07:03.0" UUID="b161f8dc-0a9c-4ef1-bbbc-636ee00db374" TEXT="Kimbundu" ABBREVIATEDLABEL="kmb" LABEL="kmb" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="402" CREATED="2009-01-28 17:07:03.0" UUID="81c5eb7a-9b5d-4276-9f13-446ee36bf788" TEXT="Cebuano" ABBREVIATEDLABEL="ceb" LABEL="ceb"/>\r
-  <REPRESENTATION ID="403" CREATED="2009-01-28 17:07:03.0" UUID="5dc539fb-82c7-415f-84f1-7246acc4ee0a" TEXT="Manipuri" ABBREVIATEDLABEL="mni" LABEL="mni" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="404" CREATED="2009-01-28 17:07:03.0" UUID="69f3d284-0d64-41e5-b658-189c32f9b0f0" TEXT="Swedish" ABBREVIATEDLABEL="swe" LABEL="swe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="405" CREATED="2009-01-28 17:07:03.0" UUID="6793220a-c1c9-4ed2-a7b3-666861fd635a" TEXT="Basa" ABBREVIATEDLABEL="bas" LABEL="bas"/>\r
-  <REPRESENTATION ID="406" CREATED="2009-01-28 17:07:03.0" UUID="f0bc2479-3d83-4630-9c64-885a43a51a7d" TEXT="Kosraean" ABBREVIATEDLABEL="kos" LABEL="kos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="407" CREATED="2009-01-28 17:07:03.0" UUID="9e41af83-648e-4df7-a361-def3d758b806" TEXT="English" ABBREVIATEDLABEL="eng" LABEL="eng" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="408" CREATED="2009-01-28 17:07:03.0" UUID="04b8a154-f697-4d14-919b-890be4ac40d5" TEXT="Pali" ABBREVIATEDLABEL="pli" LABEL="pli" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="409" CREATED="2009-01-28 17:07:03.0" UUID="c0ca60bc-eea4-4135-8477-bebb2c9e341f" TEXT="Czech" ABBREVIATEDLABEL="cze" LABEL="cze"/>\r
-  <REPRESENTATION ID="410" CREATED="2009-01-28 17:07:03.0" UUID="e8cab2f0-7f7a-41f3-968a-90766d1d65fd" TEXT="Iban" ABBREVIATEDLABEL="iba" LABEL="iba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="411" CREATED="2009-01-28 17:07:03.0" UUID="d8cae468-dc2d-45f3-83c9-3619f814106d" TEXT="Baltic (Other)" ABBREVIATEDLABEL="bat" LABEL="bat"/>\r
-  <REPRESENTATION ID="412" CREATED="2009-01-28 17:07:03.0" UUID="4ab98c49-9404-43c1-a5b8-351e7a097965" TEXT="Somali" ABBREVIATEDLABEL="som" LABEL="som" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="413" CREATED="2009-01-28 17:07:03.0" UUID="62ad1abc-0c00-4381-80bb-bbee0c18f8bf" TEXT="Mayan languages" ABBREVIATEDLABEL="myn" LABEL="myn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="414" CREATED="2009-01-28 17:07:03.0" UUID="8130a716-41c3-435d-8d50-41bf01953825" TEXT="Chichewa; Chewa; Nyanja" ABBREVIATEDLABEL="nya" LABEL="nya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="415" CREATED="2009-01-28 17:07:03.0" UUID="884e12c8-2f1d-4369-b0d2-40f35b5ca440" TEXT="Turkish" ABBREVIATEDLABEL="tur" LABEL="tur" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="416" CREATED="2009-01-28 17:07:03.0" UUID="c9e14645-dac1-40b8-9441-2085645262e1" TEXT="Galibi Carib" ABBREVIATEDLABEL="car" LABEL="car"/>\r
-  <REPRESENTATION ID="417" CREATED="2009-01-28 17:07:03.0" UUID="9f31da12-49ee-4aff-8737-25877a051c1c" TEXT="Cherokee" ABBREVIATEDLABEL="chr" LABEL="chr"/>\r
-  <REPRESENTATION ID="418" CREATED="2009-01-28 17:07:03.0" UUID="2009daa8-4bb5-42aa-b0d5-0c04cd967f71" TEXT="Lezghian" ABBREVIATEDLABEL="lez" LABEL="lez" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="419" CREATED="2009-01-28 17:07:03.0" UUID="ad4540df-74de-444b-9c0b-2016f7ebeb7d" TEXT="Gorontalo" ABBREVIATEDLABEL="gor" LABEL="gor" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="420" CREATED="2009-01-28 17:07:03.0" UUID="2bc5d471-fe8a-4d7f-b352-fd47790fc58c" TEXT="Sindhi" ABBREVIATEDLABEL="snd" LABEL="snd" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="421" CREATED="2009-01-28 17:07:03.0" UUID="6d7b032c-6f79-447a-80f3-30e2fb487a37" TEXT="Urdu" ABBREVIATEDLABEL="urd" LABEL="urd" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="422" CREATED="2009-01-28 17:07:03.0" UUID="c915492a-867f-4400-a2eb-2c566d244f55" TEXT="Wakashan languages" ABBREVIATEDLABEL="wak" LABEL="wak" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="423" CREATED="2009-01-28 17:07:03.0" UUID="c9d13f33-6300-4f02-adb9-f77d71d4e296" TEXT="N&apos;Ko" ABBREVIATEDLABEL="nqo" LABEL="nqo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="424" CREATED="2009-01-28 17:07:03.0" UUID="9bbe829a-1695-4c5b-83f9-ee0ef0e8f89f" TEXT="Japanese" ABBREVIATEDLABEL="jpn" LABEL="jpn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="425" CREATED="2009-01-28 17:07:03.0" UUID="43f21a36-2ac3-485c-ad9c-c65e998904c1" TEXT="Multiple languages" ABBREVIATEDLABEL="mul" LABEL="mul" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="426" CREATED="2009-01-28 17:07:03.0" UUID="d033927d-f142-431c-a7d6-d38d01ad6ec2" TEXT="Swiss German; Alemannic" ABBREVIATEDLABEL="gsw" LABEL="gsw" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="427" CREATED="2009-01-28 17:07:03.0" UUID="e15547f0-d044-4406-bc64-e1c6baf3604a" TEXT="Ekajuk" ABBREVIATEDLABEL="eka" LABEL="eka"/>\r
-  <REPRESENTATION ID="428" CREATED="2009-01-28 17:07:03.0" UUID="99cdcb38-ab4f-465e-8d81-8499f3c1b6bd" TEXT="Yoruba" ABBREVIATEDLABEL="yor" LABEL="yor" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="429" CREATED="2009-01-28 17:07:03.0" UUID="b826e463-2cfc-40ff-8f86-ce133d85497f" TEXT="Umbundu" ABBREVIATEDLABEL="umb" LABEL="umb" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="430" CREATED="2009-01-28 17:07:03.0" UUID="5e252af3-f19d-4688-83d9-871c75318c93" TEXT="Tibetan" ABBREVIATEDLABEL="tib" LABEL="tib" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="431" CREATED="2009-01-28 17:07:03.0" UUID="1638a17f-3461-44b8-bc3f-a347f226f4dd" TEXT="Friulian" ABBREVIATEDLABEL="fur" LABEL="fur" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="432" CREATED="2009-01-28 17:07:03.0" UUID="2aa1271f-858e-4f70-8cef-26d980959c69" TEXT="North American Indian" ABBREVIATEDLABEL="nai" LABEL="nai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="433" CREATED="2009-01-28 17:07:03.0" UUID="fb0cf033-2d32-4504-9155-ab941f115b26" TEXT="Shan" ABBREVIATEDLABEL="shn" LABEL="shn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="434" CREATED="2009-01-28 17:07:03.0" UUID="80805175-a906-4bda-b97c-3057860fb99d" TEXT="Korean" ABBREVIATEDLABEL="kor" LABEL="kor" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="435" CREATED="2009-01-28 17:07:03.0" UUID="a503fdae-cb8d-4e83-9ea6-82f085d2b536" TEXT="Syriac" ABBREVIATEDLABEL="syr" LABEL="syr" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="436" CREATED="2009-01-28 17:07:03.0" UUID="61f17ee2-5b03-45fd-90f5-b0bf2abbbd8a" TEXT="Kutenai" ABBREVIATEDLABEL="kut" LABEL="kut" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="437" CREATED="2009-01-28 17:07:03.0" UUID="182c7628-1af6-4ef4-8cbe-ede610d1a1e6" TEXT="Tamil" ABBREVIATEDLABEL="tam" LABEL="tam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="438" CREATED="2009-01-28 17:07:03.0" UUID="069603ab-30af-47a7-b5ed-cd32de9e55aa" TEXT="Blin; Bilin" ABBREVIATEDLABEL="byn" LABEL="byn"/>\r
-  <REPRESENTATION ID="439" CREATED="2009-01-28 17:07:03.0" UUID="db7c77d3-69fd-4c16-ac79-325d24b75210" TEXT="Sino-Tibetan (Other)" ABBREVIATEDLABEL="sit" LABEL="sit" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="440" CREATED="2009-01-28 17:07:03.0" UUID="d2062d61-0eeb-4240-a8a2-3b6f78be2be5" TEXT="Mirandese" ABBREVIATEDLABEL="mwl" LABEL="mwl" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="441" CREATED="2009-01-28 17:07:03.0" UUID="590da468-f9b9-4a67-a849-80e5f8b49d60" TEXT="Phoenician" ABBREVIATEDLABEL="phn" LABEL="phn" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="442" CREATED="2009-01-28 17:07:03.0" UUID="7fec74b4-188d-493b-891f-53b7eca4b9c9" TEXT="Southern Sami" ABBREVIATEDLABEL="sma" LABEL="sma" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="443" CREATED="2009-01-28 17:07:03.0" UUID="6f6bbe33-4b07-43e5-adf2-c0a7df45149f" TEXT="Burmese" ABBREVIATEDLABEL="bur" LABEL="bur"/>\r
-  <REPRESENTATION ID="444" CREATED="2009-01-28 17:07:03.0" UUID="3e8deb8c-7ed3-47bf-9a5f-dde15d9566f1" TEXT="Celtic (Other)" ABBREVIATEDLABEL="cel" LABEL="cel"/>\r
-  <REPRESENTATION ID="445" CREATED="2009-01-28 17:07:03.0" UUID="5d18727a-b7b4-4bc7-b197-068164b3edb2" TEXT="Kru languages" ABBREVIATEDLABEL="kro" LABEL="kro" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="446" CREATED="2009-01-28 17:07:03.0" UUID="fceffcc9-972b-45d2-bade-06ce03749bf5" TEXT="Nepal Bhasa; Newari" ABBREVIATEDLABEL="new" LABEL="new" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="447" CREATED="2009-01-28 17:07:03.0" UUID="7425bc24-e299-40eb-b842-bfb54983bcea" TEXT="Zande languages" ABBREVIATEDLABEL="znd" LABEL="znd" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="448" CREATED="2009-01-28 17:07:03.0" UUID="26776108-2db5-491a-97bb-0312b0a25f79" TEXT="Manx" ABBREVIATEDLABEL="glv" LABEL="glv" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="449" CREATED="2009-01-28 17:07:03.0" UUID="aee5cc1a-6bac-439b-ad09-ffca32e0206f" TEXT="Mongo" ABBREVIATEDLABEL="lol" LABEL="lol" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="450" CREATED="2009-01-28 17:07:03.0" UUID="ba5c710e-9660-48a6-9649-1008be5f692e" TEXT="Oromo" ABBREVIATEDLABEL="orm" LABEL="orm" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="451" CREATED="2009-01-28 17:07:03.0" UUID="4ed55141-968e-4a1b-a055-177db044221e" TEXT="Aymara" ABBREVIATEDLABEL="aym" LABEL="aym"/>\r
-  <REPRESENTATION ID="452" CREATED="2009-01-28 17:07:03.0" UUID="279a377b-d66c-408c-bc8c-24064c8ec020" TEXT="Sango" ABBREVIATEDLABEL="sag" LABEL="sag" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="453" CREATED="2009-01-28 17:07:03.0" UUID="b83d0b40-de62-40fd-ab66-4ec7c54f3967" TEXT="Dyula" ABBREVIATEDLABEL="dyu" LABEL="dyu"/>\r
-  <REPRESENTATION ID="454" CREATED="2009-01-28 17:07:03.0" UUID="5adb52b5-8d98-4ced-861f-263971f6eeb5" TEXT="Shona" ABBREVIATEDLABEL="sna" LABEL="sna" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="455" CREATED="2009-01-28 17:07:03.0" UUID="a13ce313-6f56-4f6f-a431-52a5735c7529" TEXT="Slovak" ABBREVIATEDLABEL="slo" LABEL="slo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="456" CREATED="2009-01-28 17:07:03.0" UUID="19959505-a2c9-47f4-ab28-de4e0eeac4cf" TEXT="Romany" ABBREVIATEDLABEL="rom" LABEL="rom" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="457" CREATED="2009-01-28 17:07:03.0" UUID="d0018793-d6dc-4a14-b7d1-b6408f8a6bd6" TEXT="Gilbertese" ABBREVIATEDLABEL="gil" LABEL="gil" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="458" CREATED="2009-01-28 17:07:03.0" UUID="b3d0847a-ee9a-4b3f-bcf2-b55850a75207" TEXT="Thai" ABBREVIATEDLABEL="tha" LABEL="tha" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="459" CREATED="2009-01-28 17:07:03.0" UUID="591688a2-17ce-4c75-aff2-d827724622b2" TEXT="Bulgarian" ABBREVIATEDLABEL="bul" LABEL="bul"/>\r
-  <REPRESENTATION ID="460" CREATED="2009-01-28 17:07:03.0" UUID="c8b7caf0-d06e-4fc0-bf10-f74b3346ac3e" TEXT="Dzongkha" ABBREVIATEDLABEL="dzo" LABEL="dzo"/>\r
-  <REPRESENTATION ID="461" CREATED="2009-01-28 17:07:03.0" UUID="70eae71e-1d09-43b6-a3db-b751c2cd16e7" TEXT="Papuan (Other)" ABBREVIATEDLABEL="paa" LABEL="paa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="462" CREATED="2009-01-28 17:07:03.0" UUID="27695937-6c3f-45cb-9204-fa419a91e3bb" TEXT="Fang" ABBREVIATEDLABEL="fan" LABEL="fan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="463" CREATED="2009-01-28 17:07:03.0" UUID="faddf8f3-8109-439d-b72d-151414ecf817" TEXT="Bashkir" ABBREVIATEDLABEL="bak" LABEL="bak"/>\r
-  <REPRESENTATION ID="464" CREATED="2009-01-28 17:07:03.0" UUID="6a2a0dd6-3e84-4e0b-843a-be0e7f39ae3b" TEXT="Palauan" ABBREVIATEDLABEL="pau" LABEL="pau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="465" CREATED="2009-01-28 17:07:03.0" UUID="ef6899a8-5a2a-4c54-8181-5a212969faa8" TEXT="Tlingit" ABBREVIATEDLABEL="tli" LABEL="tli" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="466" CREATED="2009-01-28 17:07:03.0" UUID="61f7f342-853b-4a6f-b1f8-b35adbfe1c8b" TEXT="Tamashek" ABBREVIATEDLABEL="tmh" LABEL="tmh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="467" CREATED="2009-01-28 17:07:03.0" UUID="19f3efee-3c13-4c90-82fc-57a969b51120" TEXT="Manobo languages" ABBREVIATEDLABEL="mno" LABEL="mno" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="468" CREATED="2009-01-28 17:07:03.0" UUID="db6dc13a-1434-4be3-b6c3-94c7d6e37ef8" TEXT="Selkup" ABBREVIATEDLABEL="sel" LABEL="sel" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="469" CREATED="2009-01-28 17:07:03.0" UUID="34599c35-6982-4c76-9386-8fbdbe1d0435" TEXT="Creoles and pidgins, English based (Other)" ABBREVIATEDLABEL="cpe" LABEL="cpe"/>\r
-  <REPRESENTATION ID="470" CREATED="2009-01-28 17:07:03.0" UUID="087928fe-8577-4666-848b-2f7fc6732a8c" TEXT="Uighur; Uyghur" ABBREVIATEDLABEL="uig" LABEL="uig" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="471" CREATED="2009-01-28 17:07:03.0" UUID="feef7e6e-0557-41d1-b20b-82f97bff1a5f" TEXT="Ossetian; Ossetic" ABBREVIATEDLABEL="oss" LABEL="oss" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="472" CREATED="2009-01-28 17:07:03.0" UUID="1ce2bc3e-5302-4108-b242-c304455eeef9" TEXT="Sami languages (Other)" ABBREVIATEDLABEL="smi" LABEL="smi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="473" CREATED="2009-01-28 17:07:03.0" UUID="b631b0dd-f8de-4414-bfb2-2dd599c2b65b" TEXT="Irish, Old (to 900)" ABBREVIATEDLABEL="sga" LABEL="sga" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="474" CREATED="2009-01-28 17:07:03.0" UUID="c8014118-df81-4392-9e0e-17a73b6a8a35" TEXT="Sidamo" ABBREVIATEDLABEL="sid" LABEL="sid" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="475" CREATED="2009-01-28 17:07:03.0" UUID="2ac13825-9ece-4b4c-acd4-11e2e5073b74" TEXT="Maori" ABBREVIATEDLABEL="mao" LABEL="mao" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="476" CREATED="2009-01-28 17:07:03.0" UUID="13b534d6-84a1-43a2-bca0-97c8cfdbee65" TEXT="Arapaho" ABBREVIATEDLABEL="arp" LABEL="arp"/>\r
-  <REPRESENTATION ID="477" CREATED="2009-01-28 17:07:03.0" UUID="6244a4e3-d850-4809-b5e9-9438649db061" TEXT="Kinyarwanda" ABBREVIATEDLABEL="kin" LABEL="kin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="478" CREATED="2009-01-28 17:07:03.0" UUID="23e86a09-7457-470b-bf1d-550be236ab65" TEXT="Sotho, Southern" ABBREVIATEDLABEL="sot" LABEL="sot" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="479" CREATED="2009-01-28 17:07:03.0" UUID="72446896-d849-44b3-bdd6-82850026c22c" TEXT="Tagalog" ABBREVIATEDLABEL="tgl" LABEL="tgl" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="480" CREATED="2009-01-28 17:07:03.0" UUID="b9bb8ef1-0df3-4785-b5b6-4ad19bb79c20" TEXT="Chipewyan; Dene Suline" ABBREVIATEDLABEL="chp" LABEL="chp"/>\r
-  <REPRESENTATION ID="481" CREATED="2009-01-28 17:07:03.0" UUID="58056ac1-ed57-443e-9065-c8156aaa2efc" TEXT="Kurdish" ABBREVIATEDLABEL="kur" LABEL="kur" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="482" CREATED="2009-01-28 17:07:03.0" UUID="a1bdb347-b107-44bf-9f1a-487591ecd1b5" TEXT="Lozi" ABBREVIATEDLABEL="loz" LABEL="loz" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="483" CREATED="2009-01-28 17:07:03.0" UUID="401d661e-86d8-455e-9d96-e40b4c0a8f91" TEXT="Bislama" ABBREVIATEDLABEL="bis" LABEL="bis"/>\r
-  <REPRESENTATION ID="484" CREATED="2009-01-28 17:07:03.0" UUID="830dd1b1-c7c0-45ce-8b90-91ba7e80d957" TEXT="Luba-Katanga" ABBREVIATEDLABEL="lub" LABEL="lub" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="485" CREATED="2009-01-28 17:07:03.0" UUID="a8664ba9-1b11-4a2d-91e4-5bb7544601cd" TEXT="Gujarati" ABBREVIATEDLABEL="guj" LABEL="guj" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="486" CREATED="2009-01-28 17:07:03.0" UUID="c7f1a240-0c4b-41be-aafc-b47979e10f42" TEXT="Erzya" ABBREVIATEDLABEL="myv" LABEL="myv" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="487" CREATED="2009-01-28 17:07:04.0" UUID="23d52ac4-50ab-4caa-bc3a-98d6ad777ff2" TEXT="eu.etaxonomy.cdm.model.location.Continent" LABEL="Continent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="488" CREATED="2009-01-28 17:07:04.0" UUID="575e2adb-d7d9-40f0-9a4e-517620b5088a" TEXT="Pacific" ABBREVIATEDLABEL="" LABEL="Pacific" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="489" CREATED="2009-01-28 17:07:04.0" UUID="f1011e44-a2a2-4598-a8ea-79f2b993a4f2" TEXT="Australasia" ABBREVIATEDLABEL="" LABEL="Australasia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="490" CREATED="2009-01-28 17:07:04.0" UUID="e8e814f9-50cd-4c5a-8eab-eb26dad83e11" TEXT="South America" ABBREVIATEDLABEL="" LABEL="S.America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="491" CREATED="2009-01-28 17:07:04.0" UUID="c6bf0a47-4676-4ea1-b214-fa518b690282" TEXT="Antarctica" ABBREVIATEDLABEL="" LABEL="Antarctica" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="492" CREATED="2009-01-28 17:07:04.0" UUID="f1a50040-fe55-4f60-8618-cf7e856e7177" TEXT="North America" ABBREVIATEDLABEL="" LABEL="N.America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="493" CREATED="2009-01-28 17:07:04.0" UUID="a10c0e15-6188-4238-92a7-9349255682f5" TEXT="Asia Tropical" ABBREVIATEDLABEL="" LABEL="Asia.Tropical" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="494" CREATED="2009-01-28 17:07:04.0" UUID="03e174a3-9415-4489-b125-53beead0ff8b" TEXT="Asia Temperate" ABBREVIATEDLABEL="" LABEL="Asia.Temperate" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="495" CREATED="2009-01-28 17:07:04.0" UUID="c6326b7b-679f-4e9c-ab48-3f5558bc5492" TEXT="Africa" ABBREVIATEDLABEL="" LABEL="Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="496" CREATED="2009-01-28 17:07:04.0" UUID="2fcf4180-7aa6-444c-8a53-b90045f95c58" TEXT="Europe" ABBREVIATEDLABEL="" LABEL="Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="497" CREATED="2009-01-28 17:07:04.0" UUID="bd8b2760-1327-48f0-9dbc-77d018a8b0f6" TEXT="eu.etaxonomy.cdm.model.location.WaterbodyOrCountry" LABEL="WaterbodyOrCountry" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="498" CREATED="2009-01-28 17:07:04.0" UUID="e61ba6a6-3f09-4320-8176-63279f4ec839" TEXT="Persian Gulf" ABBREVIATEDLABEL="" LABEL="PEG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="499" CREATED="2009-01-28 17:07:04.0" UUID="6908aff9-959a-4930-a40b-cdbd01aa4440" TEXT="Red Sea" ABBREVIATEDLABEL="" LABEL="RES" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="500" CREATED="2009-01-28 17:07:04.0" UUID="21dd622c-bc34-4f54-8073-95389ac7ff35" TEXT="Caspian Sea" ABBREVIATEDLABEL="" LABEL="CAS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="501" CREATED="2009-01-28 17:07:04.0" UUID="cd31eb64-d20a-42a2-a1f1-0992417c24ea" TEXT="Black Sea" ABBREVIATEDLABEL="" LABEL="BLS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="502" CREATED="2009-01-28 17:07:04.0" UUID="ad2aa7e9-689f-4fe9-a954-848b8dcaf8f9" TEXT="Mediterranean Sea" ABBREVIATEDLABEL="" LABEL="MES" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="503" CREATED="2009-01-28 17:07:04.0" UUID="a52a01bf-b807-4e9d-849e-943ec789f0ce" TEXT="Southern Ocean" ABBREVIATEDLABEL="" LABEL="SOO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="504" CREATED="2009-01-28 17:07:04.0" UUID="4dfa17b3-ee00-4c06-87ac-c561ee9d3b24" TEXT="Indian Ocean" ABBREVIATEDLABEL="" LABEL="INO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="505" CREATED="2009-01-28 17:07:04.0" UUID="869342af-2038-4415-95e5-97b3e820169a" TEXT="Pacific Ocean" ABBREVIATEDLABEL="" LABEL="PAO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="506" CREATED="2009-01-28 17:07:04.0" UUID="ef4416c7-c3f4-465a-8623-1ef1cc079f8c" TEXT="Atlantic Ocean" ABBREVIATEDLABEL="" LABEL="ATO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="507" CREATED="2009-01-28 17:07:04.0" UUID="d38ddf26-516d-4a94-8102-85397fac235f" TEXT="Arctic Ocean" ABBREVIATEDLABEL="" LABEL="ARO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="508" CREATED="2009-01-28 17:07:04.0" UUID="1efb82b6-38d6-44f3-a510-748d3193dea7" TEXT="Zimbabwe" ABBREVIATEDLABEL="ZW" LABEL="ZWE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="509" CREATED="2009-01-28 17:07:04.0" UUID="bccbeb39-ba9e-40c0-8c66-3748801f6b46" TEXT="Zambia, Republic of" ABBREVIATEDLABEL="ZM" LABEL="ZMB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="510" CREATED="2009-01-28 17:07:04.0" UUID="2b395856-97c3-4fe2-8030-adf62a6fc1f5" TEXT="Yemen" ABBREVIATEDLABEL="YE" LABEL="YEM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="511" CREATED="2009-01-28 17:07:04.0" UUID="f54694d1-b9a3-4547-98e3-0def989a27c4" TEXT="Western Sahara" ABBREVIATEDLABEL="EH" LABEL="ESH" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="512" CREATED="2009-01-28 17:07:04.0" UUID="a59484b1-b615-4406-8be2-999721c44d42" TEXT="Wallis and Futuna Islands" ABBREVIATEDLABEL="WF" LABEL="WLF" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="513" CREATED="2009-01-28 17:07:04.0" UUID="56636792-7993-4101-8d4e-7cff2cc77e0d" TEXT="Viet Nam, Socialist Republic of" ABBREVIATEDLABEL="VN" LABEL="VNM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="514" CREATED="2009-01-28 17:07:04.0" UUID="430495ff-2327-43ab-a27b-b3b3a4360702" TEXT="Venezuela, Bolivarian Republic of" ABBREVIATEDLABEL="VE" LABEL="VEN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="515" CREATED="2009-01-28 17:07:04.0" UUID="0d3a3985-d7ad-4a6c-9c25-5b6fbee84ae9" TEXT="Vanuatu" ABBREVIATEDLABEL="VU" LABEL="VUT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="516" CREATED="2009-01-28 17:07:04.0" UUID="3ca50903-b5f9-413c-bac7-cd1ded0191d0" TEXT="Uzbekistan" ABBREVIATEDLABEL="UZ" LABEL="UZB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="517" CREATED="2009-01-28 17:07:04.0" UUID="e22af71d-be5e-494e-bf1f-1dd9d6dadfef" TEXT="Uruguay, Eastern Republic of" ABBREVIATEDLABEL="UY" LABEL="URY" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="518" CREATED="2009-01-28 17:07:04.0" UUID="8f814293-9bee-40d9-94b4-154812f12fa9" TEXT="United States of America" ABBREVIATEDLABEL="US" LABEL="USA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="519" CREATED="2009-01-28 17:07:04.0" UUID="172bb38d-9901-477f-8aee-08cccec57b73" TEXT="United States Minor Outlying Islands" ABBREVIATEDLABEL="UM" LABEL="UMI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="520" CREATED="2009-01-28 17:07:04.0" UUID="d8299209-d05d-4e0f-a96a-84967924bec7" TEXT="United Kingdom of Great Britain &amp; N. Ireland" ABBREVIATEDLABEL="GB" LABEL="GBR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="521" CREATED="2009-01-28 17:07:04.0" UUID="1e7f7dd8-cb5b-4002-87da-4f772f3b23db" TEXT="United Arab Emirates" ABBREVIATEDLABEL="AE" LABEL="ARE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="522" CREATED="2009-01-28 17:07:04.0" UUID="b45832ce-0d6d-4eca-83e8-df92df9314f4" TEXT="Ukraine" ABBREVIATEDLABEL="UA" LABEL="UKR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="523" CREATED="2009-01-28 17:07:04.0" UUID="c5363333-0bac-4400-8d1a-8c486bf07fa3" TEXT="Uganda, Republic of" ABBREVIATEDLABEL="UG" LABEL="UGA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="524" CREATED="2009-01-28 17:07:04.0" UUID="1ac2948e-2a0d-4539-8559-b32083dad255" TEXT="US Virgin Islands" ABBREVIATEDLABEL="VI" LABEL="VIR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="525" CREATED="2009-01-28 17:07:04.0" UUID="f4f0e498-c4de-43ea-9a31-68c2757d73da" TEXT="Tuvalu" ABBREVIATEDLABEL="TV" LABEL="TUV" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="526" CREATED="2009-01-28 17:07:04.0" UUID="cbe475f7-73b6-45a0-b760-cf506c9f9a20" TEXT="Turks and Caicos Islands" ABBREVIATEDLABEL="TC" LABEL="TCA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="527" CREATED="2009-01-28 17:07:04.0" UUID="70122c5d-d50c-419a-a7e2-f5fc72ecb020" TEXT="Turkmenistan" ABBREVIATEDLABEL="TM" LABEL="TKM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="528" CREATED="2009-01-28 17:07:04.0" UUID="16074b9f-52a5-490a-a788-f71047858016" TEXT="Turkey, Republic of" ABBREVIATEDLABEL="TR" LABEL="TUR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="529" CREATED="2009-01-28 17:07:04.0" UUID="ad7add6e-3107-433b-8ddf-5942a8bc17da" TEXT="Tunisia, Republic of" ABBREVIATEDLABEL="TN" LABEL="TUN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="530" CREATED="2009-01-28 17:07:04.0" UUID="6148d89f-cd51-439f-8356-287ddd58f685" TEXT="Trinidad and Tobago, Republic of" ABBREVIATEDLABEL="TT" LABEL="TTO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="531" CREATED="2009-01-28 17:07:04.0" UUID="707064e8-b662-485a-919b-f25271dda9c7" TEXT="Tonga, Kingdom of" ABBREVIATEDLABEL="TO" LABEL="TON" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="532" CREATED="2009-01-28 17:07:04.0" UUID="f83b5975-a4d8-4d60-aa4b-75a7d0cbd3dd" TEXT="Tokelau (Tokelau Islands)" ABBREVIATEDLABEL="TK" LABEL="TKL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="533" CREATED="2009-01-28 17:07:04.0" UUID="2e3bf71a-71ed-417c-89e2-d20afb7a57ae" TEXT="Togo, Togolese Republic" ABBREVIATEDLABEL="TG" LABEL="TGO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="534" CREATED="2009-01-28 17:07:04.0" UUID="aec389f1-6b87-4a17-b7aa-46dd13c61aab" TEXT="Timor-Leste, Democratic Republic of" ABBREVIATEDLABEL="TL" LABEL="TLS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="535" CREATED="2009-01-28 17:07:04.0" UUID="d462bef3-3d75-4ad8-bc2d-277420cb3267" TEXT="Thailand, Kingdom of" ABBREVIATEDLABEL="TH" LABEL="THA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="536" CREATED="2009-01-28 17:07:04.0" UUID="17c94f2f-1f75-49a6-aa7b-a9a92c777927" TEXT="Tanzania, United Republic of" ABBREVIATEDLABEL="TZ" LABEL="TZA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="537" CREATED="2009-01-28 17:07:04.0" UUID="3f1ad3d4-3d94-4ab6-80f3-c0e88235e432" TEXT="Tajikistan" ABBREVIATEDLABEL="TJ" LABEL="TJK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="538" CREATED="2009-01-28 17:07:04.0" UUID="ffd71437-dc94-4f20-85d0-b5d3968b3aed" TEXT="Taiwan, Province of China" ABBREVIATEDLABEL="TW" LABEL="TWN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="539" CREATED="2009-01-28 17:07:04.0" UUID="f7a623e3-345c-4b07-a6f6-43ffd7ef930e" TEXT="Syrian Arab Republic" ABBREVIATEDLABEL="SY" LABEL="SYR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="540" CREATED="2009-01-28 17:07:04.0" UUID="4805ef0e-4573-4292-85a0-8c309b7dcc5d" TEXT="Switzerland, Swiss Confederation" ABBREVIATEDLABEL="CH" LABEL="CHE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="541" CREATED="2009-01-28 17:07:04.0" UUID="1d6784b1-0fac-42e0-87fb-cbf0d26c31ca" TEXT="Sweden, Kingdom of" ABBREVIATEDLABEL="SE" LABEL="SWE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="542" CREATED="2009-01-28 17:07:04.0" UUID="40dfac1e-f46a-4eeb-99d8-109c876d5422" TEXT="Swaziland, Kingdom of" ABBREVIATEDLABEL="SZ" LABEL="SWZ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="543" CREATED="2009-01-28 17:07:04.0" UUID="c8488444-d598-45e3-b933-0fbcb680d55a" TEXT="Svalbard &amp; Jan Mayen Islands" ABBREVIATEDLABEL="SJ" LABEL="SJM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="544" CREATED="2009-01-28 17:07:04.0" UUID="1805f809-ff21-4df6-9d71-b7c9c4c1bfae" TEXT="Suriname, Republic of" ABBREVIATEDLABEL="SR" LABEL="SUR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="545" CREATED="2009-01-28 17:07:04.0" UUID="beef7ea6-dd25-4b29-8e73-5c5e1e200993" TEXT="Sudan, Democratic Republic of the" ABBREVIATEDLABEL="SD" LABEL="SDN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="546" CREATED="2009-01-28 17:07:04.0" UUID="13115adb-4300-4318-8d3a-852126d964da" TEXT="Sri Lanka, Democratic Socialist Republic of" ABBREVIATEDLABEL="LK" LABEL="LKA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="547" CREATED="2009-01-28 17:07:04.0" UUID="da319187-fdbb-475e-81ed-2ed86b9fb221" TEXT="Spain, Spanish State" ABBREVIATEDLABEL="ES" LABEL="ESP" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="548" CREATED="2009-01-28 17:07:04.0" UUID="40958f58-7583-4641-84b7-5d469f011d20" TEXT="South Georgia and the South Sandwich Islands" ABBREVIATEDLABEL="GS" LABEL="SGS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="549" CREATED="2009-01-28 17:07:04.0" UUID="38b09e38-9b8f-415d-a72d-9cf880e015cc" TEXT="South Africa, Republic of" ABBREVIATEDLABEL="ZA" LABEL="ZAF" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="550" CREATED="2009-01-28 17:07:04.0" UUID="755951cd-b5e2-4a1d-9b6c-a7a00c996b7b" TEXT="Somalia, Somali Republic" ABBREVIATEDLABEL="SO" LABEL="SOM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="551" CREATED="2009-01-28 17:07:04.0" UUID="549ece34-abdf-44c8-8767-9a65fb9836d0" TEXT="Solomon Islands" ABBREVIATEDLABEL="SB" LABEL="SLB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="552" CREATED="2009-01-28 17:07:04.0" UUID="196ad737-9708-40ec-8525-1a9357cf6dcc" TEXT="Slovenia" ABBREVIATEDLABEL="SI" LABEL="SVN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="553" CREATED="2009-01-28 17:07:04.0" UUID="56898a44-aabd-4482-8fae-8b8e99af14d9" TEXT="Slovakia (Slovak Republic)" ABBREVIATEDLABEL="SK" LABEL="SVK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="554" CREATED="2009-01-28 17:07:04.0" UUID="57eaeb12-359f-45c7-a440-8de71a94aa21" TEXT="Singapore, Republic of" ABBREVIATEDLABEL="SG" LABEL="SGP" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="555" CREATED="2009-01-28 17:07:04.0" UUID="15109967-88f9-458e-a94f-3b62c8300dac" TEXT="Sierra Leone, Republic of" ABBREVIATEDLABEL="SL" LABEL="SLE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="556" CREATED="2009-01-28 17:07:04.0" UUID="963f2964-fe7d-4f44-b2ee-d1d46e08a94a" TEXT="Seychelles, Republic of" ABBREVIATEDLABEL="SC" LABEL="SYC" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="557" CREATED="2009-01-28 17:07:04.0" UUID="510dc97f-6fea-4914-86f5-e931bde4830b" TEXT="Serbia and Montenegro" ABBREVIATEDLABEL="CS" LABEL="SCG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="558" CREATED="2009-01-28 17:07:04.0" UUID="4568a660-99d7-4155-8e49-df388e3d15a2" TEXT="Senegal, Republic of" ABBREVIATEDLABEL="SN" LABEL="SEN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="559" CREATED="2009-01-28 17:07:04.0" UUID="3d03c150-4598-482b-8077-04f635f8557b" TEXT="Saudi Arabia, Kingdom of" ABBREVIATEDLABEL="SA" LABEL="SAU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="560" CREATED="2009-01-28 17:07:04.0" UUID="a7821fb7-d418-4a94-9a85-8e5562d0ef07" TEXT="Sao Tome and Principe, Democratic Republic of" ABBREVIATEDLABEL="ST" LABEL="STP" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="561" CREATED="2009-01-28 17:07:04.0" UUID="91613c8f-f6ed-4591-a393-a07e20eea3d7" TEXT="San Marino, Republic of" ABBREVIATEDLABEL="SM" LABEL="SMR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="562" CREATED="2009-01-28 17:07:04.0" UUID="f5610b8d-b880-4d16-a1e5-96ce45d5b331" TEXT="Samoa, Independent State of" ABBREVIATEDLABEL="WS" LABEL="WSM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="563" CREATED="2009-01-28 17:07:04.0" UUID="7d081a2b-b28a-4434-bbfd-3be335796e9f" TEXT="St. Vincent and the Grenadines" ABBREVIATEDLABEL="VC" LABEL="VCT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="564" CREATED="2009-01-28 17:07:04.0" UUID="f99cb30a-11a0-419d-89f3-270e71396569" TEXT="St. Pierre and Miquelon" ABBREVIATEDLABEL="PM" LABEL="SPM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="565" CREATED="2009-01-28 17:07:04.0" UUID="06969a6f-b7ee-4d0f-b535-a316030d7123" TEXT="St. Lucia" ABBREVIATEDLABEL="LC" LABEL="LCA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="566" CREATED="2009-01-28 17:07:04.0" UUID="aec2b12c-25a4-4267-97f0-2da84cbbec51" TEXT="St. Kitts and Nevis" ABBREVIATEDLABEL="KN" LABEL="KNA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="567" CREATED="2009-01-28 17:07:04.0" UUID="4f385bc6-4b4e-4f40-ab3a-0c32583e2136" TEXT="St. Helena" ABBREVIATEDLABEL="SH" LABEL="SHN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="568" CREATED="2009-01-28 17:07:04.0" UUID="165c1efc-2fd3-408b-b7c4-31495cbf6a39" TEXT="Rwanda, Rwandese Republic" ABBREVIATEDLABEL="RW" LABEL="RWA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="569" CREATED="2009-01-28 17:07:04.0" UUID="24500849-930d-424d-98c6-d4976d00ef44" TEXT="Russian Federation" ABBREVIATEDLABEL="RU" LABEL="RUS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="570" CREATED="2009-01-28 17:07:04.0" UUID="d8d1654f-6a59-4068-b855-b959e234ba67" TEXT="Romania, Socialist Republic of" ABBREVIATEDLABEL="RO" LABEL="ROU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="571" CREATED="2009-01-28 17:07:04.0" UUID="00b2f879-c862-40ed-a102-b01949e5011b" TEXT="Reunion" ABBREVIATEDLABEL="RE" LABEL="REU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="572" CREATED="2009-01-28 17:07:04.0" UUID="59932814-5ed2-41e4-b0ae-fe2425b9943d" TEXT="Qatar, State of" ABBREVIATEDLABEL="QA" LABEL="QAT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="573" CREATED="2009-01-28 17:07:04.0" UUID="c720a11e-c077-41a9-bbcd-c492182e7719" TEXT="Puerto Rico" ABBREVIATEDLABEL="PR" LABEL="PRI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="574" CREATED="2009-01-28 17:07:04.0" UUID="1cb58b77-de26-442b-9176-46fafdcbe9d6" TEXT="Portugal, Portuguese Republic" ABBREVIATEDLABEL="PT" LABEL="PRT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="575" CREATED="2009-01-28 17:07:04.0" UUID="4e64f8a7-0607-4262-bfc0-bea21cc8dc71" TEXT="Poland, Polish People&apos;s Republic" ABBREVIATEDLABEL="PL" LABEL="POL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="576" CREATED="2009-01-28 17:07:04.0" UUID="06e91b35-4600-4643-8871-6b46c70eb26b" TEXT="Pitcairn Island" ABBREVIATEDLABEL="PN" LABEL="PCN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="577" CREATED="2009-01-28 17:07:04.0" UUID="52ab2c43-8610-439f-a83d-62b72a19c375" TEXT="Philippines, Republic of the" ABBREVIATEDLABEL="PH" LABEL="PHL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="578" CREATED="2009-01-28 17:07:04.0" UUID="8cad4d45-a512-4667-b70f-92e18ca83c77" TEXT="Peru, Republic of" ABBREVIATEDLABEL="PE" LABEL="PER" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="579" CREATED="2009-01-28 17:07:04.0" UUID="fd39b77e-fb10-4be2-b12b-2e414a228149" TEXT="Paraguay, Republic of" ABBREVIATEDLABEL="PY" LABEL="PRY" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="580" CREATED="2009-01-28 17:07:04.0" UUID="c7fc92f9-85d9-4aef-bf5b-d6c05e890c0b" TEXT="Papua New Guinea" ABBREVIATEDLABEL="PG" LABEL="PNG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="581" CREATED="2009-01-28 17:07:04.0" UUID="98341e23-8606-49f5-87f0-aa6990c7bc7c" TEXT="Panama, Republic of" ABBREVIATEDLABEL="PA" LABEL="PAN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="582" CREATED="2009-01-28 17:07:04.0" UUID="cf5ee05e-4baf-4b80-9310-dd131fdf403e" TEXT="Palestinian Territory, Occupied" ABBREVIATEDLABEL="PS" LABEL="PSE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="583" CREATED="2009-01-28 17:07:04.0" UUID="0d856a68-75b9-4ec9-bc5f-603bfaf2a11f" TEXT="Palau" ABBREVIATEDLABEL="PW" LABEL="PLW" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="584" CREATED="2009-01-28 17:07:04.0" UUID="af325d23-9f2c-4b61-971e-95676c399adc" TEXT="Pakistan, Islamic Republic of" ABBREVIATEDLABEL="PK" LABEL="PAK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="585" CREATED="2009-01-28 17:07:04.0" UUID="264cbad2-b33f-4a6f-b554-45b4902aae16" TEXT="Oman, Sultanate of" ABBREVIATEDLABEL="OM" LABEL="OMN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="586" CREATED="2009-01-28 17:07:04.0" UUID="9b4a869b-1fe7-4c5a-9a5a-047d86d6c456" TEXT="Norway, Kingdom of" ABBREVIATEDLABEL="NO" LABEL="NOR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="587" CREATED="2009-01-28 17:07:04.0" UUID="47a57426-ad62-4338-aee6-7cce75187d65" TEXT="Northern Mariana Islands" ABBREVIATEDLABEL="MP" LABEL="MNP" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="588" CREATED="2009-01-28 17:07:04.0" UUID="aef87802-60a0-426b-84f4-8b8afb993d3c" TEXT="Norfolk Island" ABBREVIATEDLABEL="NF" LABEL="NFK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="589" CREATED="2009-01-28 17:07:04.0" UUID="6fe1a778-41d4-4345-abe2-ab3b9fd51a89" TEXT="Niue, Republic of" ABBREVIATEDLABEL="NU" LABEL="NIU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="590" CREATED="2009-01-28 17:07:04.0" UUID="85d517b6-cc0c-4e50-ab83-9316c5c7c056" TEXT="Nigeria, Federal Republic of" ABBREVIATEDLABEL="NG" LABEL="NGA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="591" CREATED="2009-01-28 17:07:04.0" UUID="440fb9c8-db0b-426b-8eb2-ef315744d0ac" TEXT="Niger, Republic of the" ABBREVIATEDLABEL="NE" LABEL="NER" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="592" CREATED="2009-01-28 17:07:04.0" UUID="ed9bbd20-5d22-4519-9f81-e7b091b8ad6c" TEXT="Nicaragua, Republic of" ABBREVIATEDLABEL="NI" LABEL="NIC" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="593" CREATED="2009-01-28 17:07:04.0" UUID="cf15a890-ac54-4b27-bd3d-9a33b4c69c70" TEXT="New Zealand" ABBREVIATEDLABEL="NZ" LABEL="NZL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="594" CREATED="2009-01-28 17:07:04.0" UUID="723428e8-2cab-40fd-8acd-98e2f707419d" TEXT="New Caledonia" ABBREVIATEDLABEL="NC" LABEL="NCL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="595" CREATED="2009-01-28 17:07:04.0" UUID="b8a6f2b0-4900-4f0b-8785-248b4ca2c6ef" TEXT="Netherlands, Kingdom of the" ABBREVIATEDLABEL="NL" LABEL="NLD" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="596" CREATED="2009-01-28 17:07:04.0" UUID="89e8b673-1ca3-4e16-af18-50b0a32e79a0" TEXT="Netherlands Antilles" ABBREVIATEDLABEL="AN" LABEL="ANT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="597" CREATED="2009-01-28 17:07:04.0" UUID="50652692-36f9-42c0-b61e-da354113fcd8" TEXT="Nepal, Kingdom of" ABBREVIATEDLABEL="NP" LABEL="NPL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="598" CREATED="2009-01-28 17:07:04.0" UUID="bce2c73f-99f8-453a-b482-c7483cb3ada5" TEXT="Nauru, Republic of" ABBREVIATEDLABEL="NR" LABEL="NRU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="599" CREATED="2009-01-28 17:07:04.0" UUID="2808cefa-0263-483e-b957-cabac363813a" TEXT="Namibia" ABBREVIATEDLABEL="NA" LABEL="NAM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="600" CREATED="2009-01-28 17:07:04.0" UUID="b7448c21-47b3-496d-a658-d09cc915ea44" TEXT="Myanmar" ABBREVIATEDLABEL="MM" LABEL="MMR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="601" CREATED="2009-01-28 17:07:04.0" UUID="a4c98ae3-6076-47ce-aa6a-eca704c781da" TEXT="Mozambique, People&apos;s Republic of" ABBREVIATEDLABEL="MZ" LABEL="MOZ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="602" CREATED="2009-01-28 17:07:04.0" UUID="83cd211a-841e-4377-9cb5-13765c6588fe" TEXT="Morocco, Kingdom of" ABBREVIATEDLABEL="MA" LABEL="MAR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="603" CREATED="2009-01-28 17:07:04.0" UUID="ac61a7a8-1415-48ce-a79f-2d150553c9c3" TEXT="Montserrat" ABBREVIATEDLABEL="MS" LABEL="MSR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="604" CREATED="2009-01-28 17:07:04.0" UUID="d9ae1dac-0f18-4187-9557-7c347c64bb74" TEXT="Mongolia, Mongolian People&apos;s Republic" ABBREVIATEDLABEL="MN" LABEL="MNG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="605" CREATED="2009-01-28 17:07:04.0" UUID="4a4530ef-7f29-4c32-9dce-b24b695355be" TEXT="Monaco, Principality of" ABBREVIATEDLABEL="MC" LABEL="MCO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="606" CREATED="2009-01-28 17:07:04.0" UUID="9284b165-d221-43b4-8745-8ff35b578b49" TEXT="Moldova, Republic of" ABBREVIATEDLABEL="MD" LABEL="MDA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="607" CREATED="2009-01-28 17:07:04.0" UUID="6806fd60-a9c3-4c1d-abde-e19643b33d3b" TEXT="Micronesia, Federated States of" ABBREVIATEDLABEL="FM" LABEL="FSM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="608" CREATED="2009-01-28 17:07:04.0" UUID="6b28cd35-05ba-437e-b192-4678b2e74879" TEXT="Mexico, United Mexican States" ABBREVIATEDLABEL="MX" LABEL="MEX" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="609" CREATED="2009-01-28 17:07:04.0" UUID="5f11574e-0c7e-49ac-aa80-e8386a5fe9e0" TEXT="Mayotte" ABBREVIATEDLABEL="YT" LABEL="MYT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="610" CREATED="2009-01-28 17:07:04.0" UUID="043462e4-efaa-4831-8b24-5d3bd5c16e71" TEXT="Mauritius" ABBREVIATEDLABEL="MU" LABEL="MUS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="611" CREATED="2009-01-28 17:07:04.0" UUID="28052ea4-3266-4f2a-a9b1-64f488700eb3" TEXT="Mauritania, Islamic Republic of" ABBREVIATEDLABEL="MR" LABEL="MRT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="612" CREATED="2009-01-28 17:07:04.0" UUID="7a53715b-5abd-4fb9-9fe3-ecb6762ca326" TEXT="Martinique" ABBREVIATEDLABEL="MQ" LABEL="MTQ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="613" CREATED="2009-01-28 17:07:04.0" UUID="65191005-5d57-4b0f-9774-9c3af7bf75cc" TEXT="Marshall Islands" ABBREVIATEDLABEL="MH" LABEL="MHL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="614" CREATED="2009-01-28 17:07:04.0" UUID="303c06cf-7be7-42c2-88a1-1cd3ece1cc2b" TEXT="Malta, Republic of" ABBREVIATEDLABEL="MT" LABEL="MLT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="615" CREATED="2009-01-28 17:07:04.0" UUID="143809c1-f169-4aa5-b1ce-017622043345" TEXT="Mali, Republic of" ABBREVIATEDLABEL="ML" LABEL="MLI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="616" CREATED="2009-01-28 17:07:04.0" UUID="2a62107a-d26a-47b1-bbc3-b7bd7e592a05" TEXT="Maldives, Republic of" ABBREVIATEDLABEL="MV" LABEL="MDV" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="617" CREATED="2009-01-28 17:07:04.0" UUID="52bb86a0-d4d8-468d-b654-163406b67da6" TEXT="Malaysia" ABBREVIATEDLABEL="MY" LABEL="MYS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="618" CREATED="2009-01-28 17:07:04.0" UUID="0510d34f-97f7-40dd-a052-9ab1d4f8b18f" TEXT="Malawi, Republic of" ABBREVIATEDLABEL="MW" LABEL="MWI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="619" CREATED="2009-01-28 17:07:04.0" UUID="8f086445-3cf6-441d-a854-ed716c7c6b91" TEXT="Madagascar, Republic of" ABBREVIATEDLABEL="MG" LABEL="MDG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="620" CREATED="2009-01-28 17:07:04.0" UUID="f1c4ee55-5315-4880-9550-fce931818a50" TEXT="Macedonia, the former Yugoslav Republic of" ABBREVIATEDLABEL="MK" LABEL="MKD" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="621" CREATED="2009-01-28 17:07:04.0" UUID="b9b0c16a-275b-484d-b136-dadf3fb92fee" TEXT="Macao, Special Administrative Region of China" ABBREVIATEDLABEL="MO" LABEL="MAC" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="622" CREATED="2009-01-28 17:07:04.0" UUID="a7918f18-db0b-413a-8f6e-2f2228c8811b" TEXT="Luxembourg, Grand Duchy of" ABBREVIATEDLABEL="LU" LABEL="LUX" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="623" CREATED="2009-01-28 17:07:04.0" UUID="1273d467-f30e-46c3-a581-7e0cf3adc8b1" TEXT="Lithuania" ABBREVIATEDLABEL="LT" LABEL="LTU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="624" CREATED="2009-01-28 17:07:04.0" UUID="30783970-e3af-4c3c-a6a2-8f9cfae66ff0" TEXT="Liechtenstein, Principality of" ABBREVIATEDLABEL="LI" LABEL="LIE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="625" CREATED="2009-01-28 17:07:04.0" UUID="0faa763d-304f-4ce8-8f0d-be8ff4b882da" TEXT="Libyan Arab Jamahiriya" ABBREVIATEDLABEL="LY" LABEL="LBY" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="626" CREATED="2009-01-28 17:07:04.0" UUID="50b535e7-04d8-450e-ba6c-c091c99d7ccd" TEXT="Liberia, Republic of" ABBREVIATEDLABEL="LR" LABEL="LBR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="627" CREATED="2009-01-28 17:07:04.0" UUID="5e3c6893-6760-4884-9055-866cb0996fef" TEXT="Lesotho, Kingdom of" ABBREVIATEDLABEL="LS" LABEL="LSO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="628" CREATED="2009-01-28 17:07:04.0" UUID="5623b951-9b22-48a3-866c-7262ab22b564" TEXT="Lebanon, Lebanese Republic" ABBREVIATEDLABEL="LB" LABEL="LBN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="629" CREATED="2009-01-28 17:07:04.0" UUID="0d0e0f09-b31c-4fea-97d6-b7d4eeb0216c" TEXT="Latvia" ABBREVIATEDLABEL="LV" LABEL="LVA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="630" CREATED="2009-01-28 17:07:04.0" UUID="b7f27e45-6a58-498b-aca5-ce707ea4d9ff" TEXT="Lao People&apos;s Democratic Republic" ABBREVIATEDLABEL="LA" LABEL="LAO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="631" CREATED="2009-01-28 17:07:04.0" UUID="c1c61b72-2e13-4f9f-be06-26f7b3e6bd6a" TEXT="Kyrgyz Republic" ABBREVIATEDLABEL="KG" LABEL="KGZ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="632" CREATED="2009-01-28 17:07:04.0" UUID="2b595a26-b7a8-4d32-8ff9-e0b1eea30d81" TEXT="Kuwait, State of" ABBREVIATEDLABEL="KW" LABEL="KWT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="633" CREATED="2009-01-28 17:07:04.0" UUID="d3502cf3-2f39-427d-b909-1d46f9510d0f" TEXT="Korea, Republic of" ABBREVIATEDLABEL="KR" LABEL="KOR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="634" CREATED="2009-01-28 17:07:04.0" UUID="32242f87-6444-4cb0-a1bf-44450ec9b1bb" TEXT="Korea, Democratic People&apos;s Republic of" ABBREVIATEDLABEL="KP" LABEL="PRK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="635" CREATED="2009-01-28 17:07:04.0" UUID="73af0a7d-ddfa-4bf8-bdcb-b0eddc87bcde" TEXT="Kiribati, Republic of" ABBREVIATEDLABEL="KI" LABEL="KIR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="636" CREATED="2009-01-28 17:07:04.0" UUID="a5771e66-eee8-4fb9-9b99-e8725af83986" TEXT="Kenya, Republic of" ABBREVIATEDLABEL="KE" LABEL="KEN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="637" CREATED="2009-01-28 17:07:04.0" UUID="63e62347-be1a-4153-b54b-0252c7f63034" TEXT="Kazakhstan, Republic of" ABBREVIATEDLABEL="KZ" LABEL="KAZ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="638" CREATED="2009-01-28 17:07:04.0" UUID="b4d6aa0d-af25-4755-8f3d-e656ddb84ed6" TEXT="Jordan, Hashemite Kingdom of" ABBREVIATEDLABEL="JO" LABEL="JOR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="639" CREATED="2009-01-28 17:07:04.0" UUID="754c8297-3a8c-4897-8435-f8db86a3dffc" TEXT="Japan" ABBREVIATEDLABEL="JP" LABEL="JPN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="640" CREATED="2009-01-28 17:07:04.0" UUID="b0309527-edd9-4c0b-b457-bb0c6e9f79a9" TEXT="Jamaica" ABBREVIATEDLABEL="JM" LABEL="JAM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="641" CREATED="2009-01-28 17:07:04.0" UUID="6cc2cec0-c760-4de5-993a-9233693302af" TEXT="Italy, Italian Republic" ABBREVIATEDLABEL="IT" LABEL="ITA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="642" CREATED="2009-01-28 17:07:04.0" UUID="91ffc6fa-30c7-4a0f-8182-0347e96c728a" TEXT="Israel, State of" ABBREVIATEDLABEL="IL" LABEL="ISR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="643" CREATED="2009-01-28 17:07:04.0" UUID="be4fc33d-6b09-4652-b714-f5f8234281a2" TEXT="Ireland" ABBREVIATEDLABEL="IE" LABEL="IRL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="644" CREATED="2009-01-28 17:07:04.0" UUID="55521304-fd75-4dfd-8e0d-6e37b5221540" TEXT="Iraq, Republic of" ABBREVIATEDLABEL="IQ" LABEL="IRQ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="645" CREATED="2009-01-28 17:07:04.0" UUID="405d1998-acbb-48ad-8ab7-b6cbf47d2181" TEXT="Iran, Islamic Republic of" ABBREVIATEDLABEL="IR" LABEL="IRN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="646" CREATED="2009-01-28 17:07:04.0" UUID="ff3f93da-d548-413c-a240-16ed42d1f514" TEXT="Indonesia, Republic of" ABBREVIATEDLABEL="ID" LABEL="IDN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="647" CREATED="2009-01-28 17:07:04.0" UUID="8d986f5c-0459-4669-bea0-1c20f77b9a8a" TEXT="India, Republic of" ABBREVIATEDLABEL="IN" LABEL="IND" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="648" CREATED="2009-01-28 17:07:04.0" UUID="bca574c6-d108-445d-b34b-19d44ea3fc26" TEXT="Iceland, Republic of" ABBREVIATEDLABEL="IS" LABEL="ISL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="649" CREATED="2009-01-28 17:07:04.0" UUID="2834410d-d060-4bcc-83f7-2f03c28e32d6" TEXT="Hungary, Hungarian People&apos;s Republic" ABBREVIATEDLABEL="HU" LABEL="HUN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="650" CREATED="2009-01-28 17:07:04.0" UUID="ef79c92e-d700-4a09-b3f2-205d81f0d88f" TEXT="Hrvatska (Croatia)" ABBREVIATEDLABEL="HR" LABEL="HRV" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="651" CREATED="2009-01-28 17:07:04.0" UUID="cec6d8ab-7811-4454-a82e-4f54812b2872" TEXT="Hong Kong, Special Administrative Region of China" ABBREVIATEDLABEL="HK" LABEL="HKG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="652" CREATED="2009-01-28 17:07:04.0" UUID="a16e989b-49e7-43c4-b2e5-5a99b070ac84" TEXT="Honduras, Republic of" ABBREVIATEDLABEL="HN" LABEL="HND" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="653" CREATED="2009-01-28 17:07:04.0" UUID="53d64876-217d-450f-914c-2ae5d493651a" TEXT="Holy See (Vatican City State)" ABBREVIATEDLABEL="VA" LABEL="VAT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="654" CREATED="2009-01-28 17:07:04.0" UUID="8349dc2a-fd35-4a79-9484-e5819f06b7e8" TEXT="Heard and McDonald Islands" ABBREVIATEDLABEL="HM" LABEL="HMD" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="655" CREATED="2009-01-28 17:07:04.0" UUID="4261d607-c1a7-4321-b176-a6d38969e468" TEXT="Haiti, Republic of" ABBREVIATEDLABEL="HT" LABEL="HTI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="656" CREATED="2009-01-28 17:07:04.0" UUID="0f2c985c-d544-47e9-a8e0-1f65053937de" TEXT="Guyana, Republic of" ABBREVIATEDLABEL="GY" LABEL="GUY" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="657" CREATED="2009-01-28 17:07:04.0" UUID="71b60d82-2d45-46e2-a758-1e62368a811e" TEXT="Guinea-Bissau, Republic of" ABBREVIATEDLABEL="GW" LABEL="GNB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="658" CREATED="2009-01-28 17:07:04.0" UUID="94aaf65b-98a2-4386-a16f-89b35e530a6e" TEXT="Guinea, Revolutionary People&apos;s Rep&apos;c of" ABBREVIATEDLABEL="GN" LABEL="GIN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="659" CREATED="2009-01-28 17:07:04.0" UUID="ef990a5c-62da-47f0-8587-5cdf2219b30a" TEXT="Guatemala, Republic of" ABBREVIATEDLABEL="GT" LABEL="GTM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="660" CREATED="2009-01-28 17:07:04.0" UUID="81a33e46-4192-4356-9ea8-6dd3f8eb7208" TEXT="Guam" ABBREVIATEDLABEL="GU" LABEL="GUM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="661" CREATED="2009-01-28 17:07:04.0" UUID="7c003250-cd87-4754-a7c6-bb7bfef7bf3c" TEXT="Guadeloupe" ABBREVIATEDLABEL="GP" LABEL="GLP" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="662" CREATED="2009-01-28 17:07:04.0" UUID="81cada32-5b17-449e-adce-07396d31b387" TEXT="Grenada" ABBREVIATEDLABEL="GD" LABEL="GRD" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="663" CREATED="2009-01-28 17:07:04.0" UUID="8ee6dee8-5723-4d75-8032-56d217092470" TEXT="Greenland" ABBREVIATEDLABEL="GL" LABEL="GRL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="664" CREATED="2009-01-28 17:07:04.0" UUID="af1d0f3d-3381-41b8-b40c-a341cdef9a29" TEXT="Greece, Hellenic Republic" ABBREVIATEDLABEL="GR" LABEL="GRC" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="665" CREATED="2009-01-28 17:07:04.0" UUID="ffb7da9c-eaa0-41ad-b8a5-81c0d81b5c1e" TEXT="Gibraltar" ABBREVIATEDLABEL="GI" LABEL="GIB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="666" CREATED="2009-01-28 17:07:04.0" UUID="f374a14c-52c7-4ad2-901b-9001ba6e9b9d" TEXT="Ghana, Republic of" ABBREVIATEDLABEL="GH" LABEL="GHA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="667" CREATED="2009-01-28 17:07:04.0" UUID="69dc9be6-c712-4759-aaf7-9762f5b8c24a" TEXT="Germany" ABBREVIATEDLABEL="DE" LABEL="DEU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="668" CREATED="2009-01-28 17:07:04.0" UUID="f133be04-1696-46a6-83d5-8dfb69bc31f1" TEXT="Georgia" ABBREVIATEDLABEL="GE" LABEL="GEO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="669" CREATED="2009-01-28 17:07:04.0" UUID="2e35707f-4a2d-4aa9-9194-349bb4ba7f91" TEXT="Gambia, Republic of the" ABBREVIATEDLABEL="GM" LABEL="GMB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="670" CREATED="2009-01-28 17:07:04.0" UUID="0dac6829-557d-4a9b-a62d-254eb0f5c9bf" TEXT="Gabon, Gabonese Republic" ABBREVIATEDLABEL="GA" LABEL="GAB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="671" CREATED="2009-01-28 17:07:04.0" UUID="606f526d-3dc3-440a-8c4d-163d7fbd8f80" TEXT="French Southern Territories" ABBREVIATEDLABEL="TF" LABEL="ATF" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="672" CREATED="2009-01-28 17:07:04.0" UUID="e23e6979-e49f-4f5d-89ba-9a9d760fbab2" TEXT="French Polynesia" ABBREVIATEDLABEL="PF" LABEL="PYF" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="673" CREATED="2009-01-28 17:07:04.0" UUID="9a4ad944-2782-4d58-9400-1e2d60f25933" TEXT="French Guiana" ABBREVIATEDLABEL="GF" LABEL="GUF" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="674" CREATED="2009-01-28 17:07:04.0" UUID="a18429f5-5478-4009-98e5-27f194a0e698" TEXT="France, French Republic" ABBREVIATEDLABEL="FR" LABEL="FRA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="675" CREATED="2009-01-28 17:07:04.0" UUID="12ebddd2-722d-46f3-8065-2ca0c7653b29" TEXT="Finland, Republic of" ABBREVIATEDLABEL="FI" LABEL="FIN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="676" CREATED="2009-01-28 17:07:04.0" UUID="13a5612a-b4c5-4c25-9e25-9ca31092cef4" TEXT="Fiji, Republic of the Fiji Islands" ABBREVIATEDLABEL="FJ" LABEL="FJI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="677" CREATED="2009-01-28 17:07:04.0" UUID="3527a40a-0b59-4119-a32f-0c948c6a3d69" TEXT="Falkland Islands (Malvinas)" ABBREVIATEDLABEL="FK" LABEL="FLK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="678" CREATED="2009-01-28 17:07:04.0" UUID="eca8f267-c261-4e71-96ba-53039711bf9e" TEXT="Faeroe Islands" ABBREVIATEDLABEL="FO" LABEL="FRO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="679" CREATED="2009-01-28 17:07:04.0" UUID="ca1fe465-e852-4022-8cdd-8125e31fa818" TEXT="Ethiopia" ABBREVIATEDLABEL="ET" LABEL="ETH" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="680" CREATED="2009-01-28 17:07:04.0" UUID="7b6e18d7-5782-46eb-ba04-3a8e05470f18" TEXT="Estonia" ABBREVIATEDLABEL="EE" LABEL="EST" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="681" CREATED="2009-01-28 17:07:04.0" UUID="b980c57f-2463-4717-8a4a-2a16b06e7a08" TEXT="Eritrea" ABBREVIATEDLABEL="ER" LABEL="ERI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="682" CREATED="2009-01-28 17:07:04.0" UUID="bb8b81ad-42c0-484c-99d8-dc43f5eec2c9" TEXT="Equatorial Guinea, Republic of" ABBREVIATEDLABEL="GQ" LABEL="GNQ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="683" CREATED="2009-01-28 17:07:04.0" UUID="be691718-8810-40a3-be4f-ed654f1dce3c" TEXT="El Salvador, Republic of" ABBREVIATEDLABEL="SV" LABEL="SLV" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="684" CREATED="2009-01-28 17:07:04.0" UUID="788a5fe2-5e86-4055-acb5-fa5b0b180672" TEXT="Egypt, Arab Republic of" ABBREVIATEDLABEL="EG" LABEL="EGY" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="685" CREATED="2009-01-28 17:07:04.0" UUID="4ebf2ba5-f8cc-401c-8714-e52e04dc8d01" TEXT="Ecuador, Republic of" ABBREVIATEDLABEL="EC" LABEL="ECU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="686" CREATED="2009-01-28 17:07:04.0" UUID="e1120e95-746c-48c3-b2b0-457191069bd1" TEXT="Dominican Republic" ABBREVIATEDLABEL="DO" LABEL="DOM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="687" CREATED="2009-01-28 17:07:04.0" UUID="32f335e1-9ae0-4b3e-9759-d4aa36174d51" TEXT="Dominica, Commonwealth of" ABBREVIATEDLABEL="DM" LABEL="DMA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="688" CREATED="2009-01-28 17:07:04.0" UUID="4528ade8-4f95-4e1d-95d2-221b1cf7c0ad" TEXT="Djibouti, Republic of" ABBREVIATEDLABEL="DJ" LABEL="DJI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="689" CREATED="2009-01-28 17:07:04.0" UUID="e4b8e3d4-90c5-4b23-ade0-ac997ba52e04" TEXT="Denmark, Kingdom of" ABBREVIATEDLABEL="DK" LABEL="DNK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="690" CREATED="2009-01-28 17:07:04.0" UUID="b2b6bbc8-c3d4-4216-acfa-3900438ae5e4" TEXT="Czech Republic" ABBREVIATEDLABEL="CZ" LABEL="CZE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="691" CREATED="2009-01-28 17:07:04.0" UUID="c855569b-89bb-4d93-a554-1cc6f3b542e7" TEXT="Cyprus, Republic of" ABBREVIATEDLABEL="CY" LABEL="CYP" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="692" CREATED="2009-01-28 17:07:04.0" UUID="562d74f6-d600-46ef-9f1e-1a9789bfbbf2" TEXT="Cuba, Republic of" ABBREVIATEDLABEL="CU" LABEL="CUB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="693" CREATED="2009-01-28 17:07:04.0" UUID="02399f05-b730-445e-9f04-905cab9372b5" TEXT="Cote D&apos;Ivoire, Ivory Coast, Republic of the" ABBREVIATEDLABEL="CI" LABEL="CIV" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="694" CREATED="2009-01-28 17:07:04.0" UUID="7fe381a9-c616-49c4-a1f5-6e8dee2b2b09" TEXT="Costa Rica, Republic of" ABBREVIATEDLABEL="CR" LABEL="CRI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="695" CREATED="2009-01-28 17:07:04.0" UUID="229596c6-604c-42cc-b02a-39d281c7845c" TEXT="Cook Islands" ABBREVIATEDLABEL="CK" LABEL="COK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="696" CREATED="2009-01-28 17:07:04.0" UUID="8ca108a9-9a99-4ac3-9955-59b2afa559bb" TEXT="Congo, People&apos;s Republic of" ABBREVIATEDLABEL="CG" LABEL="COG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="697" CREATED="2009-01-28 17:07:04.0" UUID="3b0f34b5-5690-45a6-b92b-ebb2e310a4ce" TEXT="Congo, Democratic Republic of" ABBREVIATEDLABEL="CD" LABEL="COD" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="698" CREATED="2009-01-28 17:07:04.0" UUID="21767361-82c8-40d7-a632-f4b3e4ef6e17" TEXT="Comoros, Union of the" ABBREVIATEDLABEL="KM" LABEL="COM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="699" CREATED="2009-01-28 17:07:04.0" UUID="151275ee-ddd1-4c27-b1da-3decdd98c473" TEXT="Colombia, Republic of" ABBREVIATEDLABEL="CO" LABEL="COL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="700" CREATED="2009-01-28 17:07:04.0" UUID="806c1a3a-588b-40d0-a14e-c707bfd1c6d3" TEXT="Cocos (Keeling) Islands" ABBREVIATEDLABEL="CC" LABEL="CCK" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="701" CREATED="2009-01-28 17:07:04.0" UUID="08c6ac7c-ab43-4e65-ae77-381bd9a55e12" TEXT="Christmas Island" ABBREVIATEDLABEL="CX" LABEL="CXR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="702" CREATED="2009-01-28 17:07:04.0" UUID="753ee954-dfec-49dc-b375-8096bc89c4c6" TEXT="China, People&apos;s Republic of" ABBREVIATEDLABEL="CN" LABEL="CHN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="703" CREATED="2009-01-28 17:07:04.0" UUID="2079e1fb-2886-4fbd-93da-5e4152713e98" TEXT="Chile, Republic of" ABBREVIATEDLABEL="CL" LABEL="CHL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="704" CREATED="2009-01-28 17:07:04.0" UUID="f33c817b-7673-4217-bd25-7b4462587c98" TEXT="Chad, Republic of" ABBREVIATEDLABEL="TD" LABEL="TCD" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="705" CREATED="2009-01-28 17:07:04.0" UUID="73233739-d0cd-4fc1-a732-a4bd87a97470" TEXT="Central African Republic" ABBREVIATEDLABEL="CF" LABEL="CAF" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="706" CREATED="2009-01-28 17:07:04.0" UUID="a4755147-f0cc-4a4a-9b8c-acfc3ce215fe" TEXT="Cayman Islands" ABBREVIATEDLABEL="KY" LABEL="CYM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="707" CREATED="2009-01-28 17:07:04.0" UUID="f7f69125-f975-4648-a28d-353523125c5a" TEXT="Cape Verde, Republic of" ABBREVIATEDLABEL="CV" LABEL="CPV" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="708" CREATED="2009-01-28 17:07:04.0" UUID="2ca6de1e-4229-4a78-8674-4fcc7e41c7c1" TEXT="Canada" ABBREVIATEDLABEL="CA" LABEL="CAN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="709" CREATED="2009-01-28 17:07:04.0" UUID="e68dd9cc-1372-49d9-a862-203411609215" TEXT="Cameroon, United Republic of" ABBREVIATEDLABEL="CM" LABEL="CMR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="710" CREATED="2009-01-28 17:07:04.0" UUID="6423f32e-2e4a-4cbe-88bc-0a46310fe4c9" TEXT="Cambodia, Kingdom of" ABBREVIATEDLABEL="KH" LABEL="KHM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="711" CREATED="2009-01-28 17:07:04.0" UUID="5a3020a6-9b09-420a-afa2-a98fb7a6e081" TEXT="Burundi, Republic of" ABBREVIATEDLABEL="BI" LABEL="BDI" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="712" CREATED="2009-01-28 17:07:04.0" UUID="aacd8a77-d0b2-46e2-b9a3-a63f59a3f6b8" TEXT="Burkina Faso" ABBREVIATEDLABEL="BF" LABEL="BFA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="713" CREATED="2009-01-28 17:07:04.0" UUID="c7d078d6-91f5-4a6e-ba19-3f5791b52840" TEXT="Bulgaria, People&apos;s Republic of" ABBREVIATEDLABEL="BG" LABEL="BGR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="714" CREATED="2009-01-28 17:07:04.0" UUID="3b29dd2b-229f-4861-9ed6-8759aa1cb2aa" TEXT="Brunei Darussalam" ABBREVIATEDLABEL="BN" LABEL="BRN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="715" CREATED="2009-01-28 17:07:04.0" UUID="6218757d-1e31-439a-8249-9c7f40fe112f" TEXT="British Virgin Islands" ABBREVIATEDLABEL="VG" LABEL="VGB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="716" CREATED="2009-01-28 17:07:04.0" UUID="4387fe4f-3507-4e73-8329-45ab5e6a6355" TEXT="British Indian Ocean Territory (Chagos Archipelago)" ABBREVIATEDLABEL="IO" LABEL="IOT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="717" CREATED="2009-01-28 17:07:04.0" UUID="9ec39285-f2d1-4566-bd26-5d8b9500e394" TEXT="Brazil, Federative Republic of" ABBREVIATEDLABEL="BR" LABEL="BRA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="718" CREATED="2009-01-28 17:07:04.0" UUID="0c122eff-dfe4-4ba3-ba95-d365cb893c98" TEXT="Bouvet Island (Bouvetoya)" ABBREVIATEDLABEL="BV" LABEL="BVT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="719" CREATED="2009-01-28 17:07:04.0" UUID="9bda4025-e4af-4137-9362-84f917539c98" TEXT="Botswana, Republic of" ABBREVIATEDLABEL="BW" LABEL="BWA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="720" CREATED="2009-01-28 17:07:04.0" UUID="ff2b25c3-5dca-405f-b2ae-678329384837" TEXT="Bosnia and Herzegovina" ABBREVIATEDLABEL="BA" LABEL="BIH" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="721" CREATED="2009-01-28 17:07:04.0" UUID="1a2d9af9-9a47-491a-ac8c-c49d4834121a" TEXT="Bolivia, Republic of" ABBREVIATEDLABEL="BO" LABEL="BOL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="722" CREATED="2009-01-28 17:07:04.0" UUID="c7f0cd9c-d512-4f47-95b9-4ec471b75510" TEXT="Bhutan, Kingdom of" ABBREVIATEDLABEL="BT" LABEL="BTN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="723" CREATED="2009-01-28 17:07:04.0" UUID="cf9ddab7-72a2-4b21-8851-3fb1f5770feb" TEXT="Bermuda" ABBREVIATEDLABEL="BM" LABEL="BMU" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="724" CREATED="2009-01-28 17:07:04.0" UUID="094782c0-07c3-4752-a2e1-1947d39ad261" TEXT="Benin, People&apos;s Republic of" ABBREVIATEDLABEL="BJ" LABEL="BEN" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="725" CREATED="2009-01-28 17:07:04.0" UUID="a0094b17-ccb9-41ec-a305-2072fa2d5ce0" TEXT="Belize" ABBREVIATEDLABEL="BZ" LABEL="BLZ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="726" CREATED="2009-01-28 17:07:04.0" UUID="fd68bbf0-d275-4c7a-bc78-cec00d9b97c7" TEXT="Belgium, Kingdom of" ABBREVIATEDLABEL="BE" LABEL="BEL" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="727" CREATED="2009-01-28 17:07:04.0" UUID="dddafbed-9677-405b-8155-6a19993fec73" TEXT="Belarus" ABBREVIATEDLABEL="BY" LABEL="BLR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="728" CREATED="2009-01-28 17:07:04.0" UUID="32de453e-0449-402f-a8ad-bd3b69f49892" TEXT="Barbados" ABBREVIATEDLABEL="BB" LABEL="BRB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="729" CREATED="2009-01-28 17:07:04.0" UUID="684869e6-cf8c-4f11-837c-5089a339f79e" TEXT="Bangladesh, People&apos;s Republic of" ABBREVIATEDLABEL="BD" LABEL="BGD" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="730" CREATED="2009-01-28 17:07:04.0" UUID="1324607b-ac9a-4a60-99a4-652a2ad5bf69" TEXT="Bahrain, Kingdom of" ABBREVIATEDLABEL="BH" LABEL="BHR" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="731" CREATED="2009-01-28 17:07:04.0" UUID="2f9275b2-4419-40d6-8c28-537c779b9cda" TEXT="Bahamas, Commonwealth of the" ABBREVIATEDLABEL="BS" LABEL="BHS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="732" CREATED="2009-01-28 17:07:04.0" UUID="ac68db52-cf03-4f5f-91a1-db9701de9ad3" TEXT="Azerbaijan, Republic of" ABBREVIATEDLABEL="AZ" LABEL="AZE" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="733" CREATED="2009-01-28 17:07:04.0" UUID="0a39146d-6670-47bc-b4fc-3bf3ee6da50e" TEXT="Austria, Republic of" ABBREVIATEDLABEL="AT" LABEL="AUT" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="734" CREATED="2009-01-28 17:07:04.0" UUID="b9919135-be23-43ed-adfc-bb1de9bebe72" TEXT="Australia, Commonwealth of" ABBREVIATEDLABEL="AU" LABEL="AUS" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="735" CREATED="2009-01-28 17:07:04.0" UUID="24fc5f8b-ef8b-49b3-ad25-70dd6413988e" TEXT="Aruba" ABBREVIATEDLABEL="AW" LABEL="ABW" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="736" CREATED="2009-01-28 17:07:04.0" UUID="5da48d9c-98ee-4827-a895-2c0bb27ec787" TEXT="Armenia" ABBREVIATEDLABEL="AM" LABEL="ARM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="737" CREATED="2009-01-28 17:07:04.0" UUID="32c9f22e-d4b0-4c48-a516-ed570c5fd42c" TEXT="Argentina, Argentine Republic" ABBREVIATEDLABEL="AR" LABEL="ARG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="738" CREATED="2009-01-28 17:07:04.0" UUID="355cd0ea-4604-4a84-8abe-ab35099027e3" TEXT="Antigua and Barbuda" ABBREVIATEDLABEL="AG" LABEL="ATG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="739" CREATED="2009-01-28 17:07:04.0" UUID="3195f1fd-3b06-457b-aba2-f7c3f90cdab7" TEXT="Antarctica (the territory South of 60 deg S)" ABBREVIATEDLABEL="AQ" LABEL="ATA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="740" CREATED="2009-01-28 17:07:04.0" UUID="aeaa9f71-b475-42fe-971b-afff04cc1e69" TEXT="Anguilla" ABBREVIATEDLABEL="AI" LABEL="AIA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="741" CREATED="2009-01-28 17:07:04.0" UUID="3cdbdaaa-eac8-46a8-bb5e-53c9b95f99bf" TEXT="Angola, Republic of" ABBREVIATEDLABEL="AO" LABEL="AGO" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="742" CREATED="2009-01-28 17:07:04.0" UUID="381fdbac-dac6-4d1a-9981-f9e2930f2f77" TEXT="Andorra, Principality of" ABBREVIATEDLABEL="AD" LABEL="AND" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="743" CREATED="2009-01-28 17:07:04.0" UUID="03b83252-1cc5-4f92-aaea-359266f65b08" TEXT="American Samoa" ABBREVIATEDLABEL="AS" LABEL="ASM" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="744" CREATED="2009-01-28 17:07:04.0" UUID="19491026-b6d4-4e95-8d5c-04b483e55bd8" TEXT="Algeria, People&apos;s Democratic Republic of" ABBREVIATEDLABEL="DZ" LABEL="DZA" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="745" CREATED="2009-01-28 17:07:04.0" UUID="4548e332-9051-4e86-bf7d-9809cd8f8fc2" TEXT="Albania, People&apos;s Socialist Republic of" ABBREVIATEDLABEL="AL" LABEL="ALB" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="746" CREATED="2009-01-28 17:07:04.0" UUID="f2509c99-7fa4-44c0-bd28-baa910898740" TEXT="Afghanistan" ABBREVIATEDLABEL="AF" LABEL="AFG" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="747" CREATED="2009-01-28 17:07:04.0" UUID="4dd0767b-750c-4cbd-8669-65a6500cfc75" TEXT="eu.etaxonomy.cdm.model.name.Rank" LABEL="Rank" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="748" CREATED="2009-01-28 17:07:04.0" UUID="ec4b16ca-cb74-4b41-aef5-3e6de483c7f9" TEXT="" ABBREVIATEDLABEL="" LABEL="Unknown Rank" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="749" CREATED="2009-01-28 17:07:04.0" UUID="b2251096-13f4-4656-9a25-1dc2b0fee187" TEXT="" ABBREVIATEDLABEL="" LABEL="Cultivar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="750" CREATED="2009-01-28 17:07:04.0" UUID="ad7b6cc4-5339-49ad-aa31-a5dd24d7e6ed" TEXT="" ABBREVIATEDLABEL="" LABEL="Cultivar Group" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="751" CREATED="2009-01-28 17:07:04.0" UUID="4849b974-95c9-4404-b607-8a34ff2e420a" TEXT="" ABBREVIATEDLABEL="" LABEL="Graft Chimaera" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="752" CREATED="2009-01-28 17:07:04.0" UUID="c339d32c-cb25-4c2d-af23-3616bae9e36d" TEXT="" ABBREVIATEDLABEL="" LABEL="Grex" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="753" CREATED="2009-01-28 17:07:04.0" UUID="72cc356a-b0db-4f4d-927e-27330d4be54e" TEXT="" ABBREVIATEDLABEL="" LABEL="Denomination Class" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="754" CREATED="2009-01-28 17:07:04.0" UUID="c7219751-0623-4e10-a1b5-4ef8e2a6c4f1" TEXT="" ABBREVIATEDLABEL="" LABEL="Candidate" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="755" CREATED="2009-01-28 17:07:04.0" UUID="74340ed6-5991-4b88-a6d1-06a8a3614ee2" TEXT="" ABBREVIATEDLABEL="" LABEL="Infraspecific Taxon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="756" CREATED="2009-01-28 17:07:04.0" UUID="1c1f9af2-4e38-4ba1-a598-979f621c5af2" TEXT="" ABBREVIATEDLABEL="" LABEL="Subsubform" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="757" CREATED="2009-01-28 17:07:04.0" UUID="c8f3829d-06c9-4450-b930-e4b722ab72ad" TEXT="" ABBREVIATEDLABEL="" LABEL="Subform" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="758" CREATED="2009-01-28 17:07:04.0" UUID="99d914bc-ea75-4372-b697-97ff881c71a7" TEXT="" ABBREVIATEDLABEL="" LABEL="Special Form" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="759" CREATED="2009-01-28 17:07:04.0" UUID="a7782af1-31eb-469e-a8e1-a2090d8c6e0d" TEXT="" ABBREVIATEDLABEL="" LABEL="Form" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="760" CREATED="2009-01-28 17:07:04.0" UUID="a99ac503-e52b-4185-8006-c33c4847defd" TEXT="" ABBREVIATEDLABEL="" LABEL="Convar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="761" CREATED="2009-01-28 17:07:04.0" UUID="86a9316c-1a44-4146-afc8-9e3291c1e205" TEXT="" ABBREVIATEDLABEL="" LABEL="Subsubvariety" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="762" CREATED="2009-01-28 17:07:04.0" UUID="d8fb3d62-103b-4a13-80df-cec906f8db8e" TEXT="" ABBREVIATEDLABEL="" LABEL="Subvariety" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="763" CREATED="2009-01-28 17:07:04.0" UUID="dc53ed0f-19a7-44da-bd1a-33915d02d528" TEXT="" ABBREVIATEDLABEL="" LABEL="Patho Variety" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="764" CREATED="2009-01-28 17:07:04.0" UUID="de70602c-8b7f-4d24-ace1-8acf550c64f0" TEXT="" ABBREVIATEDLABEL="" LABEL="Bio Variety" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="765" CREATED="2009-01-28 17:07:04.0" UUID="d590e101-a05c-43b1-8fa4-e1ed737ba166" TEXT="" ABBREVIATEDLABEL="" LABEL="Variety" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="766" CREATED="2009-01-28 17:07:04.0" UUID="abe4bd83-17fe-4a53-a0b2-ba3821a44f22" TEXT="" ABBREVIATEDLABEL="" LABEL="Infraspecies" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="767" CREATED="2009-01-28 17:07:04.0" UUID="a952dfe3-6716-40ab-8758-6cfe10f3006f" TEXT="" ABBREVIATEDLABEL="" LABEL="Subspecies" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="768" CREATED="2009-01-28 17:07:04.0" UUID="8b9ae5e0-ebb2-470b-bf74-961f859a2ceb" TEXT="" ABBREVIATEDLABEL="" LABEL="Subspecific Aggregate" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="769" CREATED="2009-01-28 17:07:04.0" UUID="fef40811-7e10-464f-8c02-438eb93034cd" TEXT="" ABBREVIATEDLABEL="" LABEL="Species" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="770" CREATED="2009-01-28 17:07:04.0" UUID="54e16a27-c087-4ee3-9431-a81c83ddad43" TEXT="" ABBREVIATEDLABEL="" LABEL="Infrageneric Taxon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="771" CREATED="2009-01-28 17:07:04.0" UUID="7742e64c-bbc4-45a0-96df-b632e3855d28" TEXT="" ABBREVIATEDLABEL="" LABEL="Species Aggregate" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="772" CREATED="2009-01-28 17:07:04.0" UUID="7ab5c990-a1e9-4cad-8c55-460941e69f5b" TEXT="" ABBREVIATEDLABEL="" LABEL="Subseries" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="773" CREATED="2009-01-28 17:07:04.0" UUID="f45db118-0b8c-4d64-b8f1-cd997397f173" TEXT="" ABBREVIATEDLABEL="" LABEL="Series" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="774" CREATED="2009-01-28 17:07:04.0" UUID="7fb5da9d-7e3a-4742-bac9-4251e8326f42" TEXT="" ABBREVIATEDLABEL="" LABEL="Subsection" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="775" CREATED="2009-01-28 17:07:04.0" UUID="ff2aacfb-5b0f-47b8-9137-3ae60d82e244" TEXT="" ABBREVIATEDLABEL="" LABEL="Section" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="776" CREATED="2009-01-28 17:07:04.0" UUID="288e525e-9e7c-4f56-828f-fd5400b02604" TEXT="" ABBREVIATEDLABEL="" LABEL="Infragenus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="777" CREATED="2009-01-28 17:07:04.0" UUID="96549114-b3db-4b03-a620-5f733f1d5f98" TEXT="" ABBREVIATEDLABEL="" LABEL="Subgenus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="778" CREATED="2009-01-28 17:07:04.0" UUID="0a712ab7-1f7d-4d98-b0b9-3e291c996b57" TEXT="" ABBREVIATEDLABEL="" LABEL="Genus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="779" CREATED="2009-01-28 17:07:04.0" UUID="ac956652-f320-40e4-98fb-4da2de7eb213" TEXT="" ABBREVIATEDLABEL="" LABEL="Suprageneric Taxon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="780" CREATED="2009-01-28 17:07:04.0" UUID="632e4379-ca1e-49e4-91a3-3e425e9a849d" TEXT="" ABBREVIATEDLABEL="" LABEL="Infratribe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="781" CREATED="2009-01-28 17:07:04.0" UUID="bed84715-fa26-4f76-8d6f-e8a713fd46ed" TEXT="" ABBREVIATEDLABEL="" LABEL="Subtribe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="782" CREATED="2009-01-28 17:07:04.0" UUID="56b1a005-4dae-40bb-a111-3948d810216b" TEXT="" ABBREVIATEDLABEL="" LABEL="Tribe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="783" CREATED="2009-01-28 17:07:04.0" UUID="13d2aa1f-054b-47c9-b3de-2c49a78d0718" TEXT="" ABBREVIATEDLABEL="" LABEL="Supertribe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="784" CREATED="2009-01-28 17:07:04.0" UUID="8cbd49d2-116e-4909-8df8-bd4967d0f432" TEXT="" ABBREVIATEDLABEL="" LABEL="Infrafamily" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="785" CREATED="2009-01-28 17:07:04.0" UUID="3d781d18-6ced-46d6-b741-5b3c3be7d4dd" TEXT="" ABBREVIATEDLABEL="" LABEL="Subfamily" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="786" CREATED="2009-01-28 17:07:04.0" UUID="2c3f2653-2bd3-4ba5-8707-e5f256b8d9e7" TEXT="" ABBREVIATEDLABEL="" LABEL="Family" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="787" CREATED="2009-01-28 17:07:04.0" UUID="a68196b2-016d-4376-9993-006bfd84564b" TEXT="" ABBREVIATEDLABEL="" LABEL="Superfamily" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="788" CREATED="2009-01-28 17:07:04.0" UUID="86bb93aa-6b2e-4a25-8dea-5b5979b70c75" TEXT="" ABBREVIATEDLABEL="" LABEL="Infraorder" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="789" CREATED="2009-01-28 17:07:04.0" UUID="d734a6b2-45e5-43f7-97d0-e95d57dcaa53" TEXT="" ABBREVIATEDLABEL="" LABEL="Suborder" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="790" CREATED="2009-01-28 17:07:04.0" UUID="23e8b534-f27f-4fe8-aa5e-c1f7c437424e" TEXT="" ABBREVIATEDLABEL="" LABEL="Order" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="791" CREATED="2009-01-28 17:07:04.0" UUID="1cd5a673-b1ca-4af8-90dd-549051206dcd" TEXT="" ABBREVIATEDLABEL="" LABEL="Superorder" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="792" CREATED="2009-01-28 17:07:04.0" UUID="ad466c81-2c0b-4e3e-9d5d-dedc89fdaf25" TEXT="" ABBREVIATEDLABEL="" LABEL="Infraclass" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="793" CREATED="2009-01-28 17:07:04.0" UUID="cc444c04-96a8-4634-9dbb-c4bff1013079" TEXT="" ABBREVIATEDLABEL="" LABEL="Subclass" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="794" CREATED="2009-01-28 17:07:04.0" UUID="48b59716-3891-43de-af35-cb24e18e75cc" TEXT="" ABBREVIATEDLABEL="" LABEL="Class" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="795" CREATED="2009-01-28 17:07:04.0" UUID="e47c0ed3-3230-4131-ac22-fe088d3f7a40" TEXT="" ABBREVIATEDLABEL="" LABEL="Superclass" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="796" CREATED="2009-01-28 17:07:04.0" UUID="c019a2c6-5ac8-4cf9-987e-5e764ed322a9" TEXT="" ABBREVIATEDLABEL="" LABEL="Infradivision" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="797" CREATED="2009-01-28 17:07:04.0" UUID="d3997cb1-4291-42ab-a1fc-0f79fa8e9d66" TEXT="" ABBREVIATEDLABEL="" LABEL="Subdivision" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="798" CREATED="2009-01-28 17:07:04.0" UUID="700f61dd-6e3d-4355-92ca-a1842528fa76" TEXT="" ABBREVIATEDLABEL="" LABEL="Division" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="799" CREATED="2009-01-28 17:07:04.0" UUID="ccbfbeef-1827-4eed-b900-33df2e826717" TEXT="" ABBREVIATEDLABEL="" LABEL="Superdivision" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="800" CREATED="2009-01-28 17:07:04.0" UUID="301bb606-5783-4200-810b-e13c20df7113" TEXT="" ABBREVIATEDLABEL="" LABEL="Infraphylum" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="801" CREATED="2009-01-28 17:07:04.0" UUID="a1b000b3-5985-4c52-bba0-6952dbeb7ecd" TEXT="" ABBREVIATEDLABEL="" LABEL="Subphylum" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="802" CREATED="2009-01-28 17:07:04.0" UUID="fdea7225-e538-401a-89bd-6c6eb8771d5e" TEXT="" ABBREVIATEDLABEL="" LABEL="Phylum" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="803" CREATED="2009-01-28 17:07:04.0" UUID="223e3a1b-a207-4986-9912-bdb4da423fc6" TEXT="" ABBREVIATEDLABEL="" LABEL="Superphylum" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="804" CREATED="2009-01-28 17:07:04.0" UUID="93ae5508-f973-4f0a-8a35-e9cff3fd527e" TEXT="" ABBREVIATEDLABEL="" LABEL="Infrakingdom" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="805" CREATED="2009-01-28 17:07:04.0" UUID="8476148b-06bc-4bb7-9037-3f77ee9a6ee6" TEXT="" ABBREVIATEDLABEL="" LABEL="Subkingdom" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="806" CREATED="2009-01-28 17:07:04.0" UUID="b6d35538-5bb3-46d6-a30e-294c58079984" TEXT="" ABBREVIATEDLABEL="" LABEL="Kingdom" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="807" CREATED="2009-01-28 17:07:04.0" UUID="8a36f6ae-fd53-4c50-8bc1-88858e1d1c65" TEXT="" ABBREVIATEDLABEL="" LABEL="Super Kingdom" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="808" CREATED="2009-01-28 17:07:04.0" UUID="91dbd5fc-1753-4ca3-9fcb-99bf9aba544f" TEXT="" ABBREVIATEDLABEL="" LABEL="Domain" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="809" CREATED="2009-01-28 17:07:04.0" UUID="3b56cda8-d4ed-4486-b824-d3b51dab34f1" TEXT="" ABBREVIATEDLABEL="" LABEL="Empire" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="810" CREATED="2009-01-28 17:07:04.0" UUID="14433f58-3cbe-4172-835c-eb05520e9dff" TEXT="eu.etaxonomy.cdm.model.name.TypeDesignationStatus" LABEL="TypeDesignationStatus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="811" CREATED="2009-01-28 17:07:04.0" UUID="f87c785e-35e7-4e3b-a7c4-8a7172985f01" TEXT="" ABBREVIATEDLABEL="" LABEL="Phototype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="812" CREATED="2009-01-28 17:07:04.0" UUID="6bfb1f27-1937-4922-81aa-9c5b6016ac93" TEXT="" ABBREVIATEDLABEL="" LABEL="Iconotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="813" CREATED="2009-01-28 17:07:04.0" UUID="004e97dd-b1dd-4abb-9047-fbba6fd0c084" TEXT="" ABBREVIATEDLABEL="" LABEL="Isoepitype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="814" CREATED="2009-01-28 17:07:04.0" UUID="e2eee93b-1604-40f7-9d3c-af4dcdc19188" TEXT="" ABBREVIATEDLABEL="" LABEL="Paralectotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="815" CREATED="2009-01-28 17:07:04.0" UUID="84b8c46c-8fb6-47e1-b65f-99e666517a94" TEXT="" ABBREVIATEDLABEL="" LABEL="Syntype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="816" CREATED="2009-01-28 17:07:04.0" UUID="8addd3eb-e9da-4576-8bf4-a66c2f79452e" TEXT="" ABBREVIATEDLABEL="" LABEL="Second Step Neotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="817" CREATED="2009-01-28 17:07:04.0" UUID="0d334a22-5195-4bb3-97d2-53a175b09cbd" TEXT="" ABBREVIATEDLABEL="" LABEL="Second Step Lectotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="818" CREATED="2009-01-28 17:07:04.0" UUID="b8970c37-9bcc-4b5a-b5d4-9d0d10ba1553" TEXT="" ABBREVIATEDLABEL="" LABEL="Paratype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="819" CREATED="2009-01-28 17:07:04.0" UUID="dc121102-bf2c-4e0e-821c-7fba57441710" TEXT="" ABBREVIATEDLABEL="" LABEL="Paraneotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="820" CREATED="2009-01-28 17:07:04.0" UUID="483d10bd-570c-4cae-9dbf-84b88642c89d" TEXT="" ABBREVIATEDLABEL="" LABEL="Isotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="821" CREATED="2009-01-28 17:07:04.0" UUID="d121818c-86ee-4e48-957c-cb14a47638f3" TEXT="" ABBREVIATEDLABEL="" LABEL="Isoneotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="822" CREATED="2009-01-28 17:07:04.0" UUID="cdf42062-6e58-4dc5-80ac-970c6795945f" TEXT="" ABBREVIATEDLABEL="" LABEL="Isolectotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="823" CREATED="2009-01-28 17:07:04.0" UUID="33a5cb52-2465-4c6c-8b03-a6306e001a22" TEXT="" ABBREVIATEDLABEL="" LABEL="Epitype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="824" CREATED="2009-01-28 17:07:04.0" UUID="19ce8dd7-b871-4826-be63-c34ffdf04e05" TEXT="" ABBREVIATEDLABEL="" LABEL="Neotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="825" CREATED="2009-01-28 17:07:04.0" UUID="8a2b9449-d024-4efc-9f5f-7ce5f4796225" TEXT="" ABBREVIATEDLABEL="" LABEL="Lectotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="826" CREATED="2009-01-28 17:07:04.0" UUID="fe463569-4262-421c-b0bd-0cc2aa984b88" TEXT="" ABBREVIATEDLABEL="" LABEL="Holotype" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="827" CREATED="2009-01-28 17:07:04.0" UUID="e0935ede-744c-4ef9-af5c-085ee3948828" TEXT="eu.etaxonomy.cdm.model.name.NomenclaturalStatusType" LABEL="NomenclaturalStatusType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="828" CREATED="2009-01-28 17:07:04.0" UUID="68b8a3af-06d1-4fdc-acf0-b994061ff6a8" TEXT="Subnudum" ABBREVIATEDLABEL="nom. subnud." LABEL="Subnudum" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="829" CREATED="2009-01-28 17:07:04.0" UUID="b5d9ba47-1e47-41af-a56f-eebbf9816f57" TEXT="Opus Utique Oppr" ABBREVIATEDLABEL="opus. utique oppr." LABEL="Opus Utique Oppr" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="830" CREATED="2009-01-28 17:07:04.0" UUID="c28bb4c9-7b65-4a0c-9d0f-afce1285c98b" TEXT="Valid" ABBREVIATEDLABEL="nom. valid" LABEL="Valid" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="831" CREATED="2009-01-28 17:07:04.0" UUID="60f5ec6a-25c6-4cab-ab48-fbf6b7862157" TEXT="Provisional" ABBREVIATEDLABEL="nom. provis." LABEL="Provisional" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="832" CREATED="2009-01-28 17:07:04.0" UUID="f9ddb607-32b7-4dd3-a6cb-59ca3c37bdf1" TEXT="Combination Invalid" ABBREVIATEDLABEL="comb. inval." LABEL="Combination Invalid" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="833" CREATED="2009-01-28 17:07:04.0" UUID="a3af565e-2c12-4d9b-aa25-7aff75c0991d" TEXT="Nudum" ABBREVIATEDLABEL="nom. nud." LABEL="Nudum" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="834" CREATED="2009-01-28 17:07:04.0" UUID="84345b5d-a59c-4423-86c3-f3bfdb7a6581" TEXT="Invalid" ABBREVIATEDLABEL="nom. inval." LABEL="Invalid" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="835" CREATED="2009-01-28 17:07:04.0" UUID="5318b0ef-96dc-4896-8e13-cc6961a406d0" TEXT="Sanctioned" ABBREVIATEDLABEL="nom. sanct." LABEL="Sanctioned" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="836" CREATED="2009-01-28 17:07:04.0" UUID="bbb80672-9e0e-4cdf-b389-60b7757995f1" TEXT="Conserved" ABBREVIATEDLABEL="nom. cons." LABEL="Conserved" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="837" CREATED="2009-01-28 17:07:04.0" UUID="4ea86294-cfee-4494-b41b-5f16aa68cc88" TEXT="Rejected Prop" ABBREVIATEDLABEL="nom. rej. prop." LABEL="Rejected Prop" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="838" CREATED="2009-01-28 17:07:04.0" UUID="fe9039ec-215e-4339-bfd1-dfcfe9d4b0f4" TEXT="Orthography Conserved" ABBREVIATEDLABEL="nom. orth. cons." LABEL="Orthography Conserved" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="839" CREATED="2009-01-28 17:07:04.0" UUID="fe9ab05c-29fc-4f35-b7a1-ba29ce0e4526" TEXT="Utique Rejected Prop" ABBREVIATEDLABEL="nom. utique rej. prop." LABEL="Utique Rejected Prop" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="840" CREATED="2009-01-28 17:07:04.0" UUID="8a6e0583-bc96-44ab-93f9-d6523f355295" TEXT="Novum" ABBREVIATEDLABEL="nom. nov." LABEL="Novum" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="841" CREATED="2009-01-28 17:07:04.0" UUID="600987fa-4a6c-47d6-9160-62202cb07651" TEXT="Alternative" ABBREVIATEDLABEL="nom. altern." LABEL="Alternative" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="842" CREATED="2009-01-28 17:07:04.0" UUID="f9d20acb-9c47-4d86-9480-aceb3c040738" TEXT="Legitimate" ABBREVIATEDLABEL="nom. legit." LABEL="Legitimate" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="843" CREATED="2009-01-28 17:07:04.0" UUID="93075ef0-e1c9-46b6-8911-4eecca5f32bc" TEXT="Orthography Conserved Prop" ABBREVIATEDLABEL="nom. orth. cons. prop." LABEL="Orthography Conserved Prop" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="844" CREATED="2009-01-28 17:07:04.0" UUID="c9a57665-266a-4543-83a9-8b6c0787cf6e" TEXT="Conserved Prop" ABBREVIATEDLABEL="nom. cons. prop." LABEL="Conserved Prop" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="845" CREATED="2009-01-28 17:07:04.0" UUID="19ea45a1-5642-4172-84d0-393fb950f481" TEXT="Utique Rejected" ABBREVIATEDLABEL="nom. utique rej." LABEL="Utique Rejected" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="846" CREATED="2009-01-28 17:07:04.0" UUID="1c5ec4fc-2e68-45db-bcb5-a725e4c5ce7b" TEXT="Rejected" ABBREVIATEDLABEL="nom. rej." LABEL="Rejected" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="847" CREATED="2009-01-28 17:07:04.0" UUID="fbcaa4f9-0e2d-4c56-b8ea-ab241746def0" TEXT="Superfluous" ABBREVIATEDLABEL="nom. superfl." LABEL="Superfluous" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="848" CREATED="2009-01-28 17:07:04.0" UUID="edd5d0f4-5b6f-4a10-b1df-3f7c046b3e26" TEXT="Illegitimate" ABBREVIATEDLABEL="nom. illeg." LABEL="Illegitimate" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="849" CREATED="2009-01-28 17:07:04.0" UUID="28120238-a734-40c7-95d3-d88dde96da85" TEXT="Confusum" ABBREVIATEDLABEL="nom. confus." LABEL="Confusum" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="850" CREATED="2009-01-28 17:07:04.0" UUID="77935ab4-034d-4b8b-955c-d82d144ba68e" TEXT="Doubtful" ABBREVIATEDLABEL="nom. dub." LABEL="Doubtful" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="851" CREATED="2009-01-28 17:07:04.0" UUID="b26d9137-e9f3-4744-b756-d13db5792fc6" TEXT="Ambiguous" ABBREVIATEDLABEL="nom. ambig." LABEL="Ambiguous" LANGUAGE_ID="352"/>\r
-  <REPRESENTATION ID="852" CREATED="2009-01-28 17:07:04.0" UUID="6327d819-8ca7-49d0-98cf-a4844ad3f13f" TEXT="eu.etaxonomy.cdm.model.taxon.SynonymType" LABEL="SynonymType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="853" CREATED="2009-01-28 17:07:04.0" UUID="b29a14fd-2b0b-412a-a1a8-aad99a801ade" TEXT="" ABBREVIATEDLABEL="has heterotypic synonym" LABEL="heterotypic synonym of" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="854" CREATED="2009-01-28 17:07:04.0" UUID="81767ba2-2a26-44b6-8093-81ae1add0ea9" TEXT="" LABEL="has heterotypic synonym" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="855" CREATED="2009-01-28 17:07:04.0" UUID="7fcfa524-bd36-4040-858b-1ae25beda078" TEXT="" ABBREVIATEDLABEL="has homotypic synonym" LABEL="homotypic synonym of" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="856" CREATED="2009-01-28 17:07:04.0" UUID="e5bc8d8f-f081-430b-b6f2-8df427012837" TEXT="" LABEL="has homotypic synonym" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="857" CREATED="2009-01-28 17:07:04.0" UUID="db7263e7-3db0-410b-a03a-381c0ebb3caa" TEXT="" ABBREVIATEDLABEL="has synonym" LABEL="synonym of" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="858" CREATED="2009-01-28 17:07:04.0" UUID="79ed507c-6968-48f4-a69a-eefdfd5ae17f" TEXT="" LABEL="has synonym" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="859" CREATED="2009-01-28 17:07:04.0" UUID="ecd71fef-f211-4e8b-ad5c-cf6eb7e87643" TEXT="eu.etaxonomy.cdm.model.name.HybridRelationshipType" LABEL="HybridRelationshipType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="860" CREATED="2009-01-28 17:07:04.0" UUID="911009d9-a5bc-42d7-89f4-a75e49e5b535" TEXT="" ABBREVIATEDLABEL="Child" LABEL="Male Parent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="861" CREATED="2009-01-28 17:07:04.0" UUID="fcfef967-b1d8-4d66-a580-6ff5aeccd5a0" TEXT="" LABEL="Child" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="862" CREATED="2009-01-28 17:07:04.0" UUID="7299d15e-d998-4b7a-8978-784ab16480fc" TEXT="" ABBREVIATEDLABEL="Child" LABEL="Female Parent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="863" CREATED="2009-01-28 17:07:04.0" UUID="7c9d44a8-de06-488b-a526-8c9258e44395" TEXT="" LABEL="Child" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="864" CREATED="2009-01-28 17:07:04.0" UUID="b2348eb6-b3a4-4481-85cb-f7c96fa1df49" TEXT="" ABBREVIATEDLABEL="Child" LABEL="Second Parent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="865" CREATED="2009-01-28 17:07:04.0" UUID="9379bd67-6ee8-43f9-a5f9-e220b9eb1a5b" TEXT="" LABEL="Child" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="866" CREATED="2009-01-28 17:07:04.0" UUID="b134a0d4-724a-4c9c-a95b-4ce883b6ae83" TEXT="" ABBREVIATEDLABEL="Child" LABEL="First Parent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="867" CREATED="2009-01-28 17:07:04.0" UUID="d289cf76-6f3d-43fb-9ccb-22f471697f41" TEXT="" LABEL="Child" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="868" CREATED="2009-01-28 17:07:04.0" UUID="c84eabdd-f2a3-4bfe-8ed3-c9ffc4d27a04" TEXT="eu.etaxonomy.cdm.model.name.NameRelationshipType" LABEL="NameRelationshipType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="869" CREATED="2009-01-28 17:07:04.0" UUID="30908fdc-9764-4678-ba9e-fbee45cabd70" TEXT="" ABBREVIATEDLABEL="is new combination blocked by" LABEL="blocking name for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="870" CREATED="2009-01-28 17:07:04.0" UUID="f785d058-b9fc-4e61-a359-828842368160" TEXT="" LABEL="is new combination blocked by" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="871" CREATED="2009-01-28 17:07:04.0" UUID="35587246-b135-4650-bbf6-b04193ac9260" TEXT="" ABBREVIATEDLABEL="is later validating" LABEL="later validated by" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="872" CREATED="2009-01-28 17:07:04.0" UUID="6f6eac46-6190-4ba9-983f-58794c39c4e5" TEXT="" LABEL="is later validating" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="873" CREATED="2009-01-28 17:07:04.0" UUID="7f3d5566-625d-4d36-bb9c-bdaf22a2eaeb" TEXT="" ABBREVIATEDLABEL="is validating" LABEL="validated by" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="874" CREATED="2009-01-28 17:07:04.0" UUID="5df4f2b3-06b6-4dc3-9f50-a9cc37b224fe" TEXT="" LABEL="is validating" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="875" CREATED="2009-01-28 17:07:04.0" UUID="cadbb859-0786-4f6d-b419-37ce8e18a1c8" TEXT="" ABBREVIATEDLABEL="is rejected in favour of" LABEL="conserved against" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="876" CREATED="2009-01-28 17:07:04.0" UUID="93df2f8d-b6fe-4e88-bae8-04357951b304" TEXT="" LABEL="is rejected in favour of" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="877" CREATED="2009-01-28 17:07:04.0" UUID="bd7743bb-8860-4641-a39f-7bbf2ccc3ff6" TEXT="" ABBREVIATEDLABEL="is new name for" LABEL="replaced synonym for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="878" CREATED="2009-01-28 17:07:04.0" UUID="b7fdaf5a-de00-4a40-a52b-50282fd99d49" TEXT="" LABEL="is new name for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="879" CREATED="2009-01-28 17:07:04.0" UUID="9ac3331c-2143-4ba9-a38a-64b8654022e5" TEXT="" ABBREVIATEDLABEL="is new combination for" LABEL="basionym for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="880" CREATED="2009-01-28 17:07:04.0" UUID="853bcfcf-7e0d-4758-95ff-d24de2baf9ad" TEXT="" LABEL="is new combination for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="881" CREATED="2009-01-28 17:07:04.0" UUID="3f6ef855-dc84-4055-9c5b-9e02845a74f3" TEXT="" ABBREVIATEDLABEL="has alternative name" LABEL="alternative name for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="882" CREATED="2009-01-28 17:07:04.0" UUID="72737cc7-81b6-40db-85b4-754a5fb1d89b" TEXT="" LABEL="has alternative name" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="883" CREATED="2009-01-28 17:07:04.0" UUID="78925860-6938-4b8f-b716-8dcf882a3252" TEXT="" ABBREVIATEDLABEL="is treated as earlier homonym for" LABEL="treated as later homonym for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="884" CREATED="2009-01-28 17:07:04.0" UUID="521e900a-8bf0-4512-bd4e-1e02f564568d" TEXT="" LABEL="is treated as earlier homonym for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="885" CREATED="2009-01-28 17:07:04.0" UUID="1adf68d6-ffa6-4daf-8240-4d6bd0c42c18" TEXT="" ABBREVIATEDLABEL="is earlier homonym for" LABEL="later homonym for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="886" CREATED="2009-01-28 17:07:04.0" UUID="4ccbc717-8d79-4426-8d52-e42da8e00acf" TEXT="" LABEL="is earlier homonym for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="887" CREATED="2009-01-28 17:07:04.0" UUID="d693b98a-534b-4292-8f73-d6306c76f337" TEXT="" ABBREVIATEDLABEL="has orthographic variant" LABEL="orthographic variant for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="888" CREATED="2009-01-28 17:07:04.0" UUID="43960382-21c7-4998-ac08-3cdba1dd1f2a" TEXT="" LABEL="has orthographic variant" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="889" CREATED="2009-01-28 17:07:04.0" UUID="bed48364-2d3d-44da-a9ff-504cf108a3af" TEXT="eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType" LABEL="TaxonRelationshipType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="890" CREATED="2009-01-28 17:07:04.0" UUID="e6e1936f-8808-4596-b2d3-a2783f323c73" TEXT="" ABBREVIATEDLABEL="All Relationships" LABEL="All Relationships" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="891" CREATED="2009-01-28 17:07:04.0" UUID="2b9e3d54-641c-4879-b75a-8824ad2401a6" TEXT="" LABEL="All Relationships" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="892" CREATED="2009-01-28 17:07:04.0" UUID="19e8fd0d-005f-4a1f-8778-bcd51eaf4f1b" TEXT="" ABBREVIATEDLABEL="Not Congruent to" LABEL="Not Congruent to" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="893" CREATED="2009-01-28 17:07:04.0" UUID="036119d8-7978-4821-a300-6ed6a5549362" TEXT="" LABEL="Not Congruent to" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="894" CREATED="2009-01-28 17:07:04.0" UUID="298c6033-a9a9-47bb-8b7a-2901620581e8" TEXT="" ABBREVIATEDLABEL="Does Not Include" LABEL="Not Included in" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="895" CREATED="2009-01-28 17:07:04.0" UUID="40c5d5f8-a52d-4bbd-a043-d83ccc8bec3f" TEXT="" LABEL="Does Not Include" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="896" CREATED="2009-01-28 17:07:04.0" UUID="9071f1df-0c45-4bed-a363-ac62096d18be" TEXT="" ABBREVIATEDLABEL="Included in or Overlaps or Excludes" LABEL="Includes or Overlaps or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="897" CREATED="2009-01-28 17:07:04.0" UUID="a016dc2b-3b65-4b27-b5bb-4e33c3139e5d" TEXT="" LABEL="Included in or Overlaps or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="898" CREATED="2009-01-28 17:07:04.0" UUID="79a61ba3-13a0-4319-8c2b-1724383e5b16" TEXT="" ABBREVIATEDLABEL="Congruent to or Overlaps or Excludes" LABEL="Congruent to or Overlaps or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="899" CREATED="2009-01-28 17:07:04.0" UUID="01dfb89a-e135-4f61-a766-d891f954d7d3" TEXT="" LABEL="Congruent to or Overlaps or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="900" CREATED="2009-01-28 17:07:04.0" UUID="2a4c168a-67b9-4780-be28-5fb1e5812e9e" TEXT="" ABBREVIATEDLABEL="Overlaps or Excludes" LABEL="Overlaps or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="901" CREATED="2009-01-28 17:07:04.0" UUID="90e08c4e-500a-4078-8dd3-64e8e76ea292" TEXT="" LABEL="Overlaps or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="902" CREATED="2009-01-28 17:07:04.0" UUID="5c6ac42c-6be0-44d0-b1f4-a5edac1c1028" TEXT="" ABBREVIATEDLABEL="Does Not Overlap" LABEL="Does Not Overlap" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="903" CREATED="2009-01-28 17:07:04.0" UUID="98e3128a-b2af-4524-9266-a865b3d95081" TEXT="" LABEL="Does Not Overlap" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="904" CREATED="2009-01-28 17:07:04.0" UUID="70148200-052b-4748-b150-22008fbe6a84" TEXT="" ABBREVIATEDLABEL="Included in or Includes or Excludes" LABEL="Included in or Includes or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="905" CREATED="2009-01-28 17:07:04.0" UUID="e7cd2d82-4fb3-4d10-b3e0-261f08d4ca09" TEXT="" LABEL="Included in or Includes or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="906" CREATED="2009-01-28 17:07:04.0" UUID="a809f393-061f-4eda-88ae-a85e74c077d8" TEXT="" ABBREVIATEDLABEL="Congruent to or Included in or Excludes" LABEL="Congruent to or Includes or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="907" CREATED="2009-01-28 17:07:04.0" UUID="c17cb687-20fd-4583-8536-3c05a599f665" TEXT="" LABEL="Congruent to or Included in or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="908" CREATED="2009-01-28 17:07:04.0" UUID="f5ba6c33-cfbf-4183-9376-f4750e52ab66" TEXT="" ABBREVIATEDLABEL="Included in or Excludes" LABEL="Includes or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="909" CREATED="2009-01-28 17:07:04.0" UUID="205dcb7f-71d7-41b3-80b9-97f0d0c70ff6" TEXT="" LABEL="Included in or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="910" CREATED="2009-01-28 17:07:04.0" UUID="611e5759-f556-4280-800f-55e2d449e490" TEXT="" ABBREVIATEDLABEL="Congruent to or Excludes" LABEL="Congruent to or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="911" CREATED="2009-01-28 17:07:04.0" UUID="5de53ae2-66af-4cdc-945b-ac73ad575ad3" TEXT="" LABEL="Congruent to or Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="912" CREATED="2009-01-28 17:07:04.0" UUID="bc2f99b3-fffc-453f-9fc4-9e5a86bab45b" TEXT="" ABBREVIATEDLABEL="Excludes" LABEL="Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="913" CREATED="2009-01-28 17:07:04.0" UUID="df003064-7034-49e5-b245-cef7cb333f37" TEXT="" LABEL="Excludes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="914" CREATED="2009-01-28 17:07:04.0" UUID="1c0f2730-51a2-4117-a313-72b0f5d3953f" TEXT="" ABBREVIATEDLABEL="Does Not Exclude" LABEL="Does Not Exclude" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="915" CREATED="2009-01-28 17:07:04.0" UUID="9105023d-4a17-4251-b413-74ffa5ce59f3" TEXT="" LABEL="Does Not Exclude" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="916" CREATED="2009-01-28 17:07:04.0" UUID="8904f9be-d1cc-4efd-99b9-126896158ea0" TEXT="" ABBREVIATEDLABEL="Included in or Includes or Overlaps" LABEL="Included in or Includes or Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="917" CREATED="2009-01-28 17:07:04.0" UUID="b600aba1-0bbc-4dac-90a6-1bfdf95a84ea" TEXT="" LABEL="Included in or Includes or Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="918" CREATED="2009-01-28 17:07:04.0" UUID="8306f18f-755b-4b95-9920-a12f182ef8a0" TEXT="" ABBREVIATEDLABEL="Congruent to or Included in or Overlaps" LABEL="Congruent to or Includes or Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="919" CREATED="2009-01-28 17:07:04.0" UUID="0e3b64e3-6695-4477-917d-66df1daf9b98" TEXT="" LABEL="Congruent to or Included in or Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="920" CREATED="2009-01-28 17:07:04.0" UUID="fa9c8e37-5b9c-421d-b720-45e6a03135b3" TEXT="" ABBREVIATEDLABEL="Included in or Overlaps" LABEL="Includes or Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="921" CREATED="2009-01-28 17:07:04.0" UUID="bdda147c-2ffb-4b89-a1fa-c161417ba8e9" TEXT="" LABEL="Included in or Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="922" CREATED="2009-01-28 17:07:04.0" UUID="2d0c5eb3-3435-4dce-943c-53205fe12640" TEXT="" ABBREVIATEDLABEL="Congruent to or Overlaps" LABEL="Congruent to or Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="923" CREATED="2009-01-28 17:07:04.0" UUID="2e406255-7a52-4e70-aebd-6dc094222b2a" TEXT="" LABEL="Congruent to or Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="924" CREATED="2009-01-28 17:07:04.0" UUID="fe7322c6-aabf-4b90-bfd3-e06120e3d6d5" TEXT="" ABBREVIATEDLABEL="Overlaps" LABEL="Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="925" CREATED="2009-01-28 17:07:04.0" UUID="0695d667-0763-4954-898a-c68bf2d86524" TEXT="" LABEL="Overlaps" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="926" CREATED="2009-01-28 17:07:04.0" UUID="5a35876a-6dd7-405f-b232-456286adb88f" TEXT="" ABBREVIATEDLABEL="Congruent to or Included in or Includes" LABEL="Congruent to or Included in or Includes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="927" CREATED="2009-01-28 17:07:04.0" UUID="6bd3b376-04ee-4d83-bf8b-206ffe83ecaf" TEXT="" LABEL="Congruent to or Included in or Includes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="928" CREATED="2009-01-28 17:07:04.0" UUID="122bdca0-bf2f-4ccb-9887-ee80f475675d" TEXT="" ABBREVIATEDLABEL="Included in or Includes" LABEL="Included in or Includes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="929" CREATED="2009-01-28 17:07:04.0" UUID="4038f915-c62d-4556-98ac-e22cda18d199" TEXT="" LABEL="Included in or Includes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="930" CREATED="2009-01-28 17:07:04.0" UUID="07f481db-a80b-4230-8676-f9901acf4cd7" TEXT="" ABBREVIATEDLABEL="Congruent to or Included in" LABEL="Congruent to or Includes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="931" CREATED="2009-01-28 17:07:04.0" UUID="feef5c35-9d0b-46dc-96ee-537fd0b79a5e" TEXT="" LABEL="Congruent to or Included in" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="932" CREATED="2009-01-28 17:07:04.0" UUID="7c0b51b1-53b0-447f-900c-221da66f2509" TEXT="" ABBREVIATEDLABEL="Included in" LABEL="Includes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="933" CREATED="2009-01-28 17:07:04.0" UUID="f96fb64d-77b2-4f5a-9d3c-02ac96a2b7ac" TEXT="" LABEL="Included in" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="934" CREATED="2009-01-28 17:07:04.0" UUID="94c7c9a8-f379-48e9-95cc-1f035f8027d3" TEXT="" ABBREVIATEDLABEL="Congruent to" LABEL="Congruent to" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="935" CREATED="2009-01-28 17:07:04.0" UUID="70eba982-1ebd-4dbe-a861-15e141036f65" TEXT="" LABEL="Congruent to" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="936" CREATED="2009-01-28 17:07:04.0" UUID="5b6598b1-e041-4e83-b6b8-b46572922807" TEXT="" ABBREVIATEDLABEL="Contradiction" LABEL="Contradiction" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="937" CREATED="2009-01-28 17:07:04.0" UUID="79c7bd46-e88c-40c0-afee-7b2b418b7516" TEXT="" LABEL="Contradiction" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="938" CREATED="2009-01-28 17:07:04.0" UUID="b4200179-ccda-448b-8a38-02ab79736ece" TEXT="" ABBREVIATEDLABEL="Has Invalid Designation" LABEL="Invalid Designation for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="939" CREATED="2009-01-28 17:07:04.0" UUID="3a710bd4-c1b0-4a4d-8587-224310e40e51" TEXT="" LABEL="Has Invalid Designation" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="940" CREATED="2009-01-28 17:07:04.0" UUID="cecd13a0-271b-4f41-b9a1-592ae2323b41" TEXT="" ABBREVIATEDLABEL="Has Misapplied Name" LABEL="Misapplied Name for" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="941" CREATED="2009-01-28 17:07:04.0" UUID="5d6bb90b-cc37-435f-8e6b-8c6bcdc57f06" TEXT="" LABEL="Has Misapplied Name" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="942" CREATED="2009-01-28 17:07:04.0" UUID="3411172b-f2d0-4450-a8f9-1d1ebb05b229" TEXT="" ABBREVIATEDLABEL="Taxonomically Includes" LABEL="Taxonomically Included in" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="943" CREATED="2009-01-28 17:07:04.0" UUID="103cd692-1e80-49ad-a018-d5795201bb2b" TEXT="" LABEL="Taxonomically Includes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="944" CREATED="2009-01-28 17:07:04.0" UUID="314864b2-74cf-44e9-aee0-c18c1158cea2" TEXT="eu.etaxonomy.cdm.model.common.MarkerType" LABEL="MarkerType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="945" CREATED="2009-01-28 17:07:04.0" UUID="c7655a6a-1094-4409-aa6a-78a185801eb2" TEXT="" ABBREVIATEDLABEL="" LABEL="complete" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="946" CREATED="2009-01-28 17:07:04.0" UUID="778088b3-9a37-47e4-a0db-f558361bf9a7" TEXT="" ABBREVIATEDLABEL="" LABEL="is doubtful" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="947" CREATED="2009-01-28 17:07:04.0" UUID="210d4194-8029-4fd3-ad9f-6007e6dc634e" TEXT="" ABBREVIATEDLABEL="" LABEL="imported" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="948" CREATED="2009-01-28 17:07:04.0" UUID="a429dc88-f136-4457-96f8-16bd5fb20b4d" TEXT="" ABBREVIATEDLABEL="" LABEL="to be checked" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="949" CREATED="2009-01-28 17:07:04.0" UUID="18ab7618-cc05-4d87-a51b-29d7658142dd" TEXT="eu.etaxonomy.cdm.model.common.AnnotationType" LABEL="AnnotationType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="950" CREATED="2009-01-28 17:07:04.0" UUID="6e04dbed-7218-4d92-a9a2-d6f47cf5a189" TEXT="" ABBREVIATEDLABEL="" LABEL="technical" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="951" CREATED="2009-01-28 17:07:04.0" UUID="feba298f-cf82-4494-9298-ada87b160305" TEXT="" ABBREVIATEDLABEL="" LABEL="editorial" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="952" CREATED="2009-01-28 17:07:04.0" UUID="8304cfa7-bbb8-4d07-8d4f-68d76e30e369" TEXT="eu.etaxonomy.cdm.model.location.NamedAreaType" LABEL="NamedAreaType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="953" CREATED="2009-01-28 17:07:04.0" UUID="9a83bd0b-7913-4937-8c06-464a0709e596" TEXT="administration area" ABBREVIATEDLABEL="" LABEL="administration area" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="954" CREATED="2009-01-28 17:07:04.0" UUID="c1a19a91-2c80-4266-818d-5f4b9fc082b7" TEXT=" &quot;natural area" ABBREVIATEDLABEL="" LABEL="natural area" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="955" CREATED="2009-01-28 17:07:04.0" UUID="ddba8b4e-31b9-486d-95a4-ed81a1c64f46" TEXT="eu.etaxonomy.cdm.model.location.NamedAreaLevel" LABEL="NamedAreaLevel" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="956" CREATED="2009-01-28 17:07:04.0" UUID="32e8f949-8651-4f98-81cd-d6abbc02f170" TEXT="Country" ABBREVIATEDLABEL="" LABEL="Country" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="957" CREATED="2009-01-28 17:07:04.0" UUID="cc2ae272-ed76-4f6f-b201-f5f01f351dec" TEXT="Town" ABBREVIATEDLABEL="" LABEL="Town" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="958" CREATED="2009-01-28 17:07:04.0" UUID="c825616e-0018-475c-8f01-d2d60b421752" TEXT="Province" ABBREVIATEDLABEL="" LABEL="Province" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="959" CREATED="2009-01-28 17:07:04.0" UUID="8d58b6ff-0ef2-46f8-9b69-62e638109c73" TEXT="State" ABBREVIATEDLABEL="" LABEL="State" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="960" CREATED="2009-01-28 17:07:04.0" UUID="9aeeef20-bdbe-4165-b4d5-08d3ea8bd69e" TEXT="Nature Reserve" ABBREVIATEDLABEL="" LABEL="Nature Reserve" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="961" CREATED="2009-01-28 17:07:04.0" UUID="17d1c09b-6544-4177-9500-3f6a57c0fa3c" TEXT="TDWG Level 4" ABBREVIATEDLABEL="" LABEL="TDWG Level 4" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="962" CREATED="2009-01-28 17:07:04.0" UUID="52832a9e-bb27-450a-9698-1d0261ab7734" TEXT=" &quot;TDWG Level 3" ABBREVIATEDLABEL="" LABEL="TDWG Level 3" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="963" CREATED="2009-01-28 17:07:04.0" UUID="3c05a6f5-8799-4d36-85ee-135f01bee90c" TEXT="TDWG Level 2" ABBREVIATEDLABEL="" LABEL="TDWG Level 2" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="964" CREATED="2009-01-28 17:07:04.0" UUID="010f5578-5a9e-4d9c-94fe-2302a9e14dfd" TEXT=" &quot;TDWG Level 1" ABBREVIATEDLABEL="" LABEL="TDWG Level 1" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="965" CREATED="2009-01-28 17:07:04.0" UUID="1db3d6d4-a65b-4ee8-b5dd-0b1e9539de5b" TEXT="eu.etaxonomy.cdm.model.name.NomenclaturalCode" LABEL="NomenclaturalCode" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="966" CREATED="2009-01-28 17:07:04.0" UUID="4ba9790d-8749-48ec-89ce-3d104e3673a8" TEXT="ICNAFP" ABBREVIATEDLABEL="" LABEL="International Code of Botanical Nomenclature" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="967" CREATED="2009-01-28 17:07:04.0" UUID="42222d02-7af4-4eb9-87bb-020fe08ee1b8" TEXT="ICVCN" ABBREVIATEDLABEL="" LABEL="International Code of Virus Classification and Nomenclature" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="968" CREATED="2009-01-28 17:07:04.0" UUID="8c5d79e3-3ff6-4781-a298-71ea07fe7a85" TEXT="ICZN" ABBREVIATEDLABEL="" LABEL="International Code of Zoological Nomenclature" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="969" CREATED="2009-01-28 17:07:04.0" UUID="068331bf-a9da-4182-96b7-b9f7e8aa0238" TEXT="ICNCP" ABBREVIATEDLABEL="" LABEL="International Code of Nomenclature for Cultivated Plants" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="970" CREATED="2009-01-28 17:07:04.0" UUID="26603512-dacd-4dce-9b03-c41facf9a78d" TEXT="ICNB" ABBREVIATEDLABEL="" LABEL="International Code of Nomenclature of Bacteria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="971" CREATED="2009-01-28 17:07:04.0" UUID="0afbf4c4-1558-4a05-9884-ed5b9bd5e017" TEXT="eu.etaxonomy.cdm.model.description.Feature" LABEL="Feature" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="972" CREATED="2009-01-28 17:07:04.0" UUID="ca1788e3-9a44-4087-ba0a-9fe1bf1ecc04" TEXT="Occurrence" ABBREVIATEDLABEL="100000" LABEL="Occurrence" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="973" CREATED="2009-01-28 17:07:04.0" UUID="eb7f4830-1fce-4eae-8e5d-129dc630af36" TEXT="Phenology" ABBREVIATEDLABEL="100000" LABEL="Phenology" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="974" CREATED="2009-01-28 17:07:04.0" UUID="ceb3ad27-fac3-41d8-9ed8-75857281fafd" TEXT="Citation" ABBREVIATEDLABEL="100000" LABEL="Citation" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="975" CREATED="2009-01-28 17:07:04.0" UUID="99a99814-3800-4f29-833e-c18a623d668a" TEXT="Materials Methods" ABBREVIATEDLABEL="100000" LABEL="Materials Methods" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="976" CREATED="2009-01-28 17:07:04.0" UUID="4a1cf2e0-de3c-4b80-a211-79880959ff4b" TEXT="Key" ABBREVIATEDLABEL="100000" LABEL="Key" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="977" CREATED="2009-01-28 17:07:04.0" UUID="077abbc9-2bfc-49e8-99c5-808c3ba7f0aa" TEXT="Synopsis" ABBREVIATEDLABEL="100000" LABEL="Synopsis" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="978" CREATED="2009-01-28 17:07:04.0" UUID="28eec021-c820-43d1-8598-acb932c85902" TEXT="Abstract" ABBREVIATEDLABEL="100000" LABEL="Abstract" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="979" CREATED="2009-01-28 17:07:04.0" UUID="787d97ab-118b-4f39-8d58-21967c4ec74c" TEXT="Conservation" ABBREVIATEDLABEL="100000" LABEL="Conservation" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="980" CREATED="2009-01-28 17:07:04.0" UUID="e507b217-fd4d-4dc9-b2ab-5f10e36304d8" TEXT="Discussion" ABBREVIATEDLABEL="100000" LABEL="Discussion" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="981" CREATED="2009-01-28 17:07:04.0" UUID="9747e8a9-b519-48a5-b6ac-830d386575eb" TEXT="Uses" ABBREVIATEDLABEL="100000" LABEL="Uses" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="982" CREATED="2009-01-28 17:07:04.0" UUID="cd343aee-82ee-4662-8b14-9723e49a6e55" TEXT="Ecology" ABBREVIATEDLABEL="100000" LABEL="Ecology" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="983" CREATED="2009-01-28 17:07:04.0" UUID="71c18886-a17f-4f58-b9b3-28ed5d028727" TEXT="Distribution" ABBREVIATEDLABEL="101000" LABEL="Distribution" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="984" CREATED="2009-01-28 17:07:04.0" UUID="e7601fae-10ac-47d0-8f07-f41926893eeb" TEXT="Diagnosis" ABBREVIATEDLABEL="100000" LABEL="Diagnosis" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="985" CREATED="2009-01-28 17:07:04.0" UUID="a59a6cec-c7e1-4f3e-a636-7c7255fb8f47" TEXT="Biology And Ecology" ABBREVIATEDLABEL="100000" LABEL="Biology And Ecology" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="986" CREATED="2009-01-28 17:07:04.0" UUID="0e6afab0-8402-47f2-9928-4c285e2506b5" TEXT="Introduction" ABBREVIATEDLABEL="100000" LABEL="Introduction" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="987" CREATED="2009-01-28 17:07:04.0" UUID="eba11b8c-fd68-4a92-b626-e7f22d465cfb" TEXT="Additional Publication" ABBREVIATEDLABEL="100000" LABEL="Additional Publication" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="988" CREATED="2009-01-28 17:07:04.0" UUID="e3eeb927-2f00-4ad4-8c5d-7c741423f003" TEXT="Etymology" ABBREVIATEDLABEL="100000" LABEL="Etymology" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="989" CREATED="2009-01-28 17:07:04.0" UUID="82f3e499-ed88-42a4-8903-93e351dfbbeb" TEXT="Cultivation" ABBREVIATEDLABEL="100000" LABEL="Cultivation" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="990" CREATED="2009-01-28 17:07:04.0" UUID="44338141-5617-478e-8600-4d98cd6e0734" TEXT="Image" ABBREVIATEDLABEL="100000" LABEL="Image" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="991" CREATED="2009-01-28 17:07:04.0" UUID="6020976d-dabe-4627-8e4c-96350a2c1835" TEXT="Acknowledgments" ABBREVIATEDLABEL="100000" LABEL="Acknowledgments" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="992" CREATED="2009-01-28 17:07:04.0" UUID="0b143eb6-82dc-499a-a25f-f614d24b66e5" TEXT="Protolog" ABBREVIATEDLABEL="100000" LABEL="Protolog" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="993" CREATED="2009-01-28 17:07:04.0" UUID="996d7ef5-ce2b-4f6e-9cd2-58c8789852c7" TEXT="Common Name" ABBREVIATEDLABEL="100001" LABEL="Common Name" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="994" CREATED="2009-01-28 17:07:04.0" UUID="16326723-d84b-484a-9c7d-dea8562352d7" TEXT="Multiple" ABBREVIATEDLABEL="100000" LABEL="Multiple" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="995" CREATED="2009-01-28 17:07:04.0" UUID="4b15760c-dfba-4dd5-b5e6-ab417a07fea7" TEXT="Materials Examined" ABBREVIATEDLABEL="100000" LABEL="Materials Examined" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="996" CREATED="2009-01-28 17:07:04.0" UUID="506c54df-1af3-438b-8e8c-3978246e010d" TEXT="Description" ABBREVIATEDLABEL="100000" LABEL="Description" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="997" CREATED="2009-01-28 17:07:04.0" UUID="95180eae-7676-4eec-8438-f77c7a7b9696" TEXT="Unknown" ABBREVIATEDLABEL="100000" LABEL="Unknown Feature Type" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="998" CREATED="2009-01-28 17:07:04.0" UUID="c68464be-02b7-4f0b-9004-68a2c712883e" TEXT="eu.etaxonomy.cdm.model.location.NamedArea" LABEL="NamedArea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="999" CREATED="2009-01-28 17:07:05.0" UUID="4564a34f-41a1-441a-8cda-1db851645317" TEXT="Zimbabwe" ABBREVIATEDLABEL="ZIM-OO" LABEL="Zimbabwe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1000" CREATED="2009-01-28 17:07:05.0" UUID="75411f23-e809-4563-bea8-7d812eff0ac2" TEXT="Zambia" ABBREVIATEDLABEL="ZAM-OO" LABEL="Zambia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1001" CREATED="2009-01-28 17:07:05.0" UUID="f98e9703-4af6-42d8-8d5c-a59d6ab17a25" TEXT="Zaire" ABBREVIATEDLABEL="ZAI-OO" LABEL="Zaire" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1002" CREATED="2009-01-28 17:07:05.0" UUID="fcbb68c0-048a-4b33-8f7d-ea5b32131de8" TEXT="Yukon" ABBREVIATEDLABEL="YUK-OO" LABEL="Yukon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1003" CREATED="2009-01-28 17:07:05.0" UUID="6ea2a6b5-718f-4689-9f1f-b34114c5d0b1" TEXT="Slovenia" ABBREVIATEDLABEL="YUG-SL" LABEL="Slovenia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1004" CREATED="2009-01-28 17:07:05.0" UUID="7038cde3-b618-4c7f-bbad-04d6f6a83fe1" TEXT="Serbia" ABBREVIATEDLABEL="YUG-SE" LABEL="Serbia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1005" CREATED="2009-01-28 17:07:05.0" UUID="35fb03e8-2deb-4c1f-9869-192209cbf4f8" TEXT="Montenegro" ABBREVIATEDLABEL="YUG-MN" LABEL="Montenegro" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1006" CREATED="2009-01-28 17:07:05.0" UUID="851ca7d5-8b0e-479b-bc6e-21cf7e5f7658" TEXT="Macedonia" ABBREVIATEDLABEL="YUG-MA" LABEL="Macedonia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1007" CREATED="2009-01-28 17:07:05.0" UUID="3962cf9c-0ca5-43c2-b24d-c17f16fb8bb3" TEXT="Kosovo" ABBREVIATEDLABEL="YUG-KO" LABEL="Kosovo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1008" CREATED="2009-01-28 17:07:05.0" UUID="e2a30e01-5253-49c5-83f9-8ccdc381ad7b" TEXT="Croatia" ABBREVIATEDLABEL="YUG-CR" LABEL="Croatia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1009" CREATED="2009-01-28 17:07:05.0" UUID="59323252-e69a-494d-8d5f-4757fa8df008" TEXT="Bosnia-Herzegovina" ABBREVIATEDLABEL="YUG-BH" LABEL="Bosnia-Herzegovina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1010" CREATED="2009-01-28 17:07:05.0" UUID="0c0f519d-2895-46b5-b90a-e9500d2747ac" TEXT="South Yemen" ABBREVIATEDLABEL="YEM-SY" LABEL="South Yemen" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1011" CREATED="2009-01-28 17:07:05.0" UUID="0131d2cd-d092-4b2f-b3c6-290bce94fe73" TEXT="North Yemen" ABBREVIATEDLABEL="YEM-NY" LABEL="North Yemen" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1012" CREATED="2009-01-28 17:07:05.0" UUID="2bf83c13-b3e1-4e40-9f5f-7f97bd57b3f2" TEXT="Yakutskiya" ABBREVIATEDLABEL="YAK-OO" LABEL="Yakutskiya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1013" CREATED="2009-01-28 17:07:05.0" UUID="f933b460-9852-4a25-8944-e80720c8f118" TEXT="Christmas I." ABBREVIATEDLABEL="XMS-OO" LABEL="Christmas I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1014" CREATED="2009-01-28 17:07:05.0" UUID="175ac3b3-f99d-4c17-96d2-2de0af2bc55b" TEXT="Wyoming" ABBREVIATEDLABEL="WYO-OO" LABEL="Wyoming" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1015" CREATED="2009-01-28 17:07:05.0" UUID="d2789def-5777-43f0-9df9-df0cc275a349" TEXT="West Virginia" ABBREVIATEDLABEL="WVA-OO" LABEL="West Virginia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1016" CREATED="2009-01-28 17:07:05.0" UUID="cdf7a6cf-0d54-40d8-8706-715d0ca2f50b" TEXT="West Siberia" ABBREVIATEDLABEL="WSB-OO" LABEL="West Siberia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1017" CREATED="2009-01-28 17:07:05.0" UUID="8e34c5a4-62a9-4532-8f2d-94cbc3ba6583" TEXT="Western Sahara" ABBREVIATEDLABEL="WSA-OO" LABEL="Western Sahara" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1018" CREATED="2009-01-28 17:07:05.0" UUID="d6d7cedd-f1bf-4601-87a8-615241143fc9" TEXT="Wisconsin" ABBREVIATEDLABEL="WIS-OO" LABEL="Wisconsin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1019" CREATED="2009-01-28 17:07:05.0" UUID="a14ae3e8-573a-4557-8668-0192821436a9" TEXT="St.Vincent" ABBREVIATEDLABEL="WIN-SV" LABEL="St.Vincent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1020" CREATED="2009-01-28 17:07:05.0" UUID="9262c8e5-1ae0-4e46-af11-eb711c2912af" TEXT="St.Lucia" ABBREVIATEDLABEL="WIN-SL" LABEL="St.Lucia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1021" CREATED="2009-01-28 17:07:05.0" UUID="81eda180-bb8b-4dbe-8b26-94acca9e2b79" TEXT="Martinique" ABBREVIATEDLABEL="WIN-MA" LABEL="Martinique" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1022" CREATED="2009-01-28 17:07:05.0" UUID="0f060273-efce-4e3e-a92e-147119d80061" TEXT="Grenada" ABBREVIATEDLABEL="WIN-GR" LABEL="Grenada" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1023" CREATED="2009-01-28 17:07:05.0" UUID="f2f09984-2a9c-489f-9a8e-2f25f8e15538" TEXT="Dominica" ABBREVIATEDLABEL="WIN-DO" LABEL="Dominica" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1024" CREATED="2009-01-28 17:07:05.0" UUID="e44d8b7f-a50f-4ec9-8549-1ce03cd35982" TEXT="Barbados" ABBREVIATEDLABEL="WIN-BA" LABEL="Barbados" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1025" CREATED="2009-01-28 17:07:05.0" UUID="a81ccfc3-4aa8-4d1f-8b65-ad0d5a403881" TEXT="Uttaranchal" ABBREVIATEDLABEL="WHM-UT" LABEL="Uttaranchal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1026" CREATED="2009-01-28 17:07:05.0" UUID="ff4e98b2-b8c5-442a-963b-918850a3b96b" TEXT="Jammu-Kashmir" ABBREVIATEDLABEL="WHM-JK" LABEL="Jammu-Kashmir" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1027" CREATED="2009-01-28 17:07:05.0" UUID="951080c9-4e6e-491c-bcc8-5d376130ad5d" TEXT="Himachal Pradesh" ABBREVIATEDLABEL="WHM-HP" LABEL="Himachal Pradesh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1028" CREATED="2009-01-28 17:07:05.0" UUID="94f5e56b-be1b-4889-b144-8f748f80b26e" TEXT="District of Columbia" ABBREVIATEDLABEL="WDC-OO" LABEL="District of Columbia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1029" CREATED="2009-01-28 17:07:05.0" UUID="67efa692-179f-42ba-a903-4318c4d1a561" TEXT="Western Australia" ABBREVIATEDLABEL="WAU-WA" LABEL="Western Australia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1030" CREATED="2009-01-28 17:07:05.0" UUID="a4d08738-55a5-4b28-8316-e535a59663e1" TEXT="Ashmore-Cartier Is." ABBREVIATEDLABEL="WAU-AC" LABEL="Ashmore-Cartier Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1031" CREATED="2009-01-28 17:07:05.0" UUID="a5d2728d-58da-4742-922d-adfd67bc94f4" TEXT="Washington" ABBREVIATEDLABEL="WAS-OO" LABEL="Washington" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1032" CREATED="2009-01-28 17:07:05.0" UUID="44b8f89b-00d0-4c17-95f1-c335aa578c90" TEXT="Wallis-Futuna Is." ABBREVIATEDLABEL="WAL-OO" LABEL="Wallis-Futuna Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1033" CREATED="2009-01-28 17:07:05.0" UUID="0e56f7ac-9f0d-43c9-858f-88a990935b67" TEXT="Wake I." ABBREVIATEDLABEL="WAK-OO" LABEL="Wake I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1034" CREATED="2009-01-28 17:07:05.0" UUID="da6f4b02-bafa-456e-8b07-cd7fdc3badf8" TEXT="Virginia" ABBREVIATEDLABEL="VRG-OO" LABEL="Virginia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1035" CREATED="2009-01-28 17:07:05.0" UUID="dedd479b-b824-477f-8ddf-3e0ab29d03d2" TEXT="Venezuelan Antilles" ABBREVIATEDLABEL="VNA-OO" LABEL="Venezuelan Antilles" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1036" CREATED="2009-01-28 17:07:05.0" UUID="6a6d54d7-2801-4afd-adcc-0016e2cebbc8" TEXT="Vietnam" ABBREVIATEDLABEL="VIE-OO" LABEL="Vietnam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1037" CREATED="2009-01-28 17:07:05.0" UUID="ae5293af-bab0-4995-a378-3aa494075606" TEXT="Victoria" ABBREVIATEDLABEL="VIC-OO" LABEL="Victoria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1038" CREATED="2009-01-28 17:07:05.0" UUID="b0acf3d3-2f51-4a57-9b7d-19ed5906e885" TEXT="Vermont" ABBREVIATEDLABEL="VER-OO" LABEL="Vermont" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1039" CREATED="2009-01-28 17:07:05.0" UUID="edf70eba-a51c-46f1-b1dd-ca494ba7163d" TEXT="Venezuela" ABBREVIATEDLABEL="VEN-OO" LABEL="Venezuela" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1040" CREATED="2009-01-28 17:07:05.0" UUID="c6b7b31d-f9fb-484a-8a0a-d192af860080" TEXT="Vanuatu" ABBREVIATEDLABEL="VAN-OO" LABEL="Vanuatu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1041" CREATED="2009-01-28 17:07:05.0" UUID="ba2ddd9e-ef85-4a51-91bb-61b5d705ccee" TEXT="Uzbekistan" ABBREVIATEDLABEL="UZB-OO" LABEL="Uzbekistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1042" CREATED="2009-01-28 17:07:05.0" UUID="0898acaa-d9ed-4476-8391-a2b28c47b86e" TEXT="Utah" ABBREVIATEDLABEL="UTA-OO" LABEL="Utah" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1043" CREATED="2009-01-28 17:07:05.0" UUID="58ea937d-97b2-4823-ae60-2dc1303218f4" TEXT="Uruguay" ABBREVIATEDLABEL="URU-OO" LABEL="Uruguay" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1044" CREATED="2009-01-28 17:07:05.0" UUID="ce3aae91-f806-4d00-b579-ef0ba9b8222b" TEXT="Ukraine" ABBREVIATEDLABEL="UKR-UK" LABEL="Ukraine" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1045" CREATED="2009-01-28 17:07:05.0" UUID="38f16bc3-9344-4a78-a1a1-c6970c5387d5" TEXT="Moldova" ABBREVIATEDLABEL="UKR-MO" LABEL="Moldova" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1046" CREATED="2009-01-28 17:07:05.0" UUID="c505b85f-be20-44d3-8f3b-233dcdae0596" TEXT="Uganda" ABBREVIATEDLABEL="UGA-OO" LABEL="Uganda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1047" CREATED="2009-01-28 17:07:05.0" UUID="2fb89fc9-4b16-40af-8e2f-dc955408993a" TEXT="Tadzhikistan" ABBREVIATEDLABEL="TZK-OO" LABEL="Tadzhikistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1048" CREATED="2009-01-28 17:07:05.0" UUID="b050d5c6-c9cd-41e1-9859-66b6652b0d4f" TEXT="North-West Province" ABBREVIATEDLABEL="TVL-NW" LABEL="North-West Province" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1049" CREATED="2009-01-28 17:07:05.0" UUID="aba3de47-22fa-4f32-bb60-5d23c880bc5c" TEXT="Northern Province" ABBREVIATEDLABEL="TVL-NP" LABEL="Northern Province" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1050" CREATED="2009-01-28 17:07:05.0" UUID="5130521b-1615-40db-9fca-aa9d438debfb" TEXT="Mpumalanga" ABBREVIATEDLABEL="TVL-MP" LABEL="Mpumalanga" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1051" CREATED="2009-01-28 17:07:05.0" UUID="dc82f8e8-a94d-4c52-8842-8d0662859f44" TEXT="Gauteng" ABBREVIATEDLABEL="TVL-GA" LABEL="Gauteng" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1052" CREATED="2009-01-28 17:07:05.0" UUID="6c3f26a0-3156-4534-a734-c293302edfcf" TEXT="Tuva" ABBREVIATEDLABEL="TVA-OO" LABEL="Tuva" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1053" CREATED="2009-01-28 17:07:05.0" UUID="9ec6f5fc-6601-4086-ade2-958fd2c11864" TEXT="Tuvalu" ABBREVIATEDLABEL="TUV-OO" LABEL="Tuvalu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1054" CREATED="2009-01-28 17:07:05.0" UUID="de22e34e-a929-4950-b595-89ad0bc37c35" TEXT="Turkey" ABBREVIATEDLABEL="TUR-OO" LABEL="Turkey" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1055" CREATED="2009-01-28 17:07:05.0" UUID="34d7145d-a076-47af-b0ea-164abf6e5e3b" TEXT="Tunisia" ABBREVIATEDLABEL="TUN-OO" LABEL="Tunisia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1056" CREATED="2009-01-28 17:07:05.0" UUID="9afbbe6e-292a-42fc-8f17-ffa7d909636e" TEXT="Turkey-in-Europe" ABBREVIATEDLABEL="TUE-OO" LABEL="Turkey-in-Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1057" CREATED="2009-01-28 17:07:05.0" UUID="d9c35d72-d930-475c-aca7-a5778fa5183f" TEXT="Tubuai Is." ABBREVIATEDLABEL="TUB-OO" LABEL="Tubuai Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1058" CREATED="2009-01-28 17:07:05.0" UUID="865398dd-6c56-48fe-ba18-9b11517e40c9" TEXT="Tuamotu" ABBREVIATEDLABEL="TUA-OO" LABEL="Tuamotu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1059" CREATED="2009-01-28 17:07:05.0" UUID="8dd2ae1b-ba69-4112-9185-d4dcd3ce0777" TEXT="Trinidad-Tobago" ABBREVIATEDLABEL="TRT-OO" LABEL="Trinidad-Tobago" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1060" CREATED="2009-01-28 17:07:05.0" UUID="06486793-be90-4b75-ac0e-a04861ef15f1" TEXT="Tonga" ABBREVIATEDLABEL="TON-OO" LABEL="Tonga" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1061" CREATED="2009-01-28 17:07:05.0" UUID="89c5c222-37c5-4404-a571-aa5736e73a00" TEXT="Tokelau" ABBREVIATEDLABEL="TOK-TO" LABEL="Tokelau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1062" CREATED="2009-01-28 17:07:05.0" UUID="9dd3977c-89e3-4359-ab10-94ff68784b00" TEXT="Swains I." ABBREVIATEDLABEL="TOK-SW" LABEL="Swains I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1063" CREATED="2009-01-28 17:07:05.0" UUID="298fca62-93f0-4fb4-81b0-f091cc88e71c" TEXT="Manihiki Is." ABBREVIATEDLABEL="TOK-MA" LABEL="Manihiki Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1064" CREATED="2009-01-28 17:07:05.0" UUID="da274fd0-a2b1-4fef-aab9-a8d62fb36c5b" TEXT="Togo" ABBREVIATEDLABEL="TOG-OO" LABEL="Togo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1065" CREATED="2009-01-28 17:07:05.0" UUID="cf49e7b6-0185-48e5-9828-89460b697f8c" TEXT="Turkmenistan" ABBREVIATEDLABEL="TKM-OO" LABEL="Turkmenistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1066" CREATED="2009-01-28 17:07:05.0" UUID="166a7d71-5d04-4531-94ba-bd9090385d7f" TEXT="Thailand" ABBREVIATEDLABEL="THA-OO" LABEL="Thailand" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1067" CREATED="2009-01-28 17:07:05.0" UUID="61c9c149-f588-4bf6-bb6b-a794d1a8a304" TEXT="Texas" ABBREVIATEDLABEL="TEX-OO" LABEL="Texas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1068" CREATED="2009-01-28 17:07:05.0" UUID="51c7a0fb-e8cf-4582-bb05-b07da7e32a6a" TEXT="Tennessee" ABBREVIATEDLABEL="TEN-OO" LABEL="Tennessee" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1069" CREATED="2009-01-28 17:07:05.0" UUID="b51da22d-8cc5-491d-8b04-da7a8119d83d" TEXT="Tristan da Cunha" ABBREVIATEDLABEL="TDC-OO" LABEL="Tristan da Cunha" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1070" CREATED="2009-01-28 17:07:05.0" UUID="ceb78a2c-3670-417a-b81c-b86e3079ae68" TEXT="Nagorno Karabakh" ABBREVIATEDLABEL="TCS-NK" LABEL="Nagorno Karabakh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1071" CREATED="2009-01-28 17:07:05.0" UUID="b7266926-eb91-4e95-9b90-09671066bad1" TEXT="Nakhichevan" ABBREVIATEDLABEL="TCS-NA" LABEL="Nakhichevan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1072" CREATED="2009-01-28 17:07:05.0" UUID="cf6207a6-5d80-4b47-9d9b-a094f5f7ced5" TEXT="Georgia" ABBREVIATEDLABEL="TCS-GR" LABEL="Georgia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1073" CREATED="2009-01-28 17:07:05.0" UUID="554ab792-91fb-456f-9b46-219745d0ee2c" TEXT="Azerbaijan" ABBREVIATEDLABEL="TCS-AZ" LABEL="Azerbaijan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1074" CREATED="2009-01-28 17:07:05.0" UUID="496bed46-7402-45a6-99f8-ec1448e63318" TEXT="Armenia" ABBREVIATEDLABEL="TCS-AR" LABEL="Armenia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1075" CREATED="2009-01-28 17:07:05.0" UUID="fd79f47a-1967-4654-8399-2a1811bb223d" TEXT="Adzhariya" ABBREVIATEDLABEL="TCS-AD" LABEL="Adzhariya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1076" CREATED="2009-01-28 17:07:05.0" UUID="61002752-c2d2-4608-af22-991903edf7d3" TEXT="Abkhaziya" ABBREVIATEDLABEL="TCS-AB" LABEL="Abkhaziya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1077" CREATED="2009-01-28 17:07:05.0" UUID="e8197fce-2969-4fab-8b81-9fc8915e0452" TEXT="Turks-Caicos Is." ABBREVIATEDLABEL="TCI-OO" LABEL="Turks-Caicos Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1078" CREATED="2009-01-28 17:07:05.0" UUID="5945e561-4d05-4043-a745-a3a0f1177ea1" TEXT="Tasmania" ABBREVIATEDLABEL="TAS-OO" LABEL="Tasmania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1079" CREATED="2009-01-28 17:07:05.0" UUID="98474c7f-e844-47ac-98cc-d4e526432734" TEXT="Tanzania" ABBREVIATEDLABEL="TAN-OO" LABEL="Tanzania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1080" CREATED="2009-01-28 17:07:05.0" UUID="58c48486-3b92-4f4f-9094-d2f88340899a" TEXT="Taiwan" ABBREVIATEDLABEL="TAI-OO" LABEL="Taiwan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1081" CREATED="2009-01-28 17:07:05.0" UUID="3a49c0a1-a434-4ac5-b2ff-5c4a1b5cfa66" TEXT="Swaziland" ABBREVIATEDLABEL="SWZ-OO" LABEL="Swaziland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1082" CREATED="2009-01-28 17:07:05.0" UUID="dbcba341-47e7-4f9d-b399-ebeeaeb5616b" TEXT="Switzerland" ABBREVIATEDLABEL="SWI-OO" LABEL="Switzerland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1083" CREATED="2009-01-28 17:07:05.0" UUID="b71eeec1-a631-4566-bb64-bb31a301f860" TEXT="Sweden" ABBREVIATEDLABEL="SWE-OO" LABEL="Sweden" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1084" CREATED="2009-01-28 17:07:05.0" UUID="b99d3a83-16db-4897-a28a-d6a6be4172b5" TEXT="Nicaraguan Caribbean Is." ABBREVIATEDLABEL="SWC-NC" LABEL="Nicaraguan Caribbean Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1085" CREATED="2009-01-28 17:07:05.0" UUID="10ed65f0-3405-4675-a413-f6eab835f23f" TEXT="Honduran Caribbean Is." ABBREVIATEDLABEL="SWC-HC" LABEL="Honduran Caribbean Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1086" CREATED="2009-01-28 17:07:05.0" UUID="bc621f02-4fc4-4161-9f36-cdf881b8c4f8" TEXT="Colombian Caribbean Is." ABBREVIATEDLABEL="SWC-CC" LABEL="Colombian Caribbean Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1087" CREATED="2009-01-28 17:07:05.0" UUID="b5773b5d-b438-416e-a326-10830568095e" TEXT="Svalbard" ABBREVIATEDLABEL="SVA-OO" LABEL="Svalbard" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1088" CREATED="2009-01-28 17:07:05.0" UUID="af2c9336-fbef-4199-b8b6-1ecfea0c433b" TEXT="Surinam" ABBREVIATEDLABEL="SUR-OO" LABEL="Surinam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1089" CREATED="2009-01-28 17:07:05.0" UUID="df793a0b-4696-4b3f-b6f0-5720257f02ae" TEXT="Sumatera" ABBREVIATEDLABEL="SUM-OO" LABEL="Sumatera" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1090" CREATED="2009-01-28 17:07:05.0" UUID="da8b61e1-554e-4521-a96f-da3e1100f5d6" TEXT="Sulawesi" ABBREVIATEDLABEL="SUL-OO" LABEL="Sulawesi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1091" CREATED="2009-01-28 17:07:05.0" UUID="58f55d07-1bfc-49ef-8b50-ed3e490d7e10" TEXT="Sudan" ABBREVIATEDLABEL="SUD-OO" LABEL="Sudan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1092" CREATED="2009-01-28 17:07:05.0" UUID="027f1d3d-7b89-431c-8c7e-42362e2ca624" TEXT="St.Helena" ABBREVIATEDLABEL="STH-OO" LABEL="St.Helena" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1093" CREATED="2009-01-28 17:07:05.0" UUID="c7522614-c0df-4072-90eb-188bcf7d10ab" TEXT="South Sandwich Is." ABBREVIATEDLABEL="SSA-OO" LABEL="South Sandwich Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1094" CREATED="2009-01-28 17:07:05.0" UUID="83260543-dd82-4bd4-b950-6d6d1cb30caf" TEXT="Sri Lanka" ABBREVIATEDLABEL="SRL-OO" LABEL="Sri Lanka" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1095" CREATED="2009-01-28 17:07:05.0" UUID="e879daf2-3a1b-4e8d-8d4c-5f334750e432" TEXT="Spain" ABBREVIATEDLABEL="SPA-SP" LABEL="Spain" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1096" CREATED="2009-01-28 17:07:05.0" UUID="e0a757ac-c1df-49d9-9ddd-bad03ada422d" TEXT="Gilbraltar" ABBREVIATEDLABEL="SPA-GI" LABEL="Gilbraltar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1097" CREATED="2009-01-28 17:07:05.0" UUID="13c69d56-cb40-469c-8b84-c1f3e0681092" TEXT="Andorra" ABBREVIATEDLABEL="SPA-AN" LABEL="Andorra" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1098" CREATED="2009-01-28 17:07:05.0" UUID="7e2c7206-2e2c-45d9-98c5-725e14b78668" TEXT="Somalia" ABBREVIATEDLABEL="SOM-OO" LABEL="Somalia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1099" CREATED="2009-01-28 17:07:05.0" UUID="fa69589f-83b1-4252-b296-d6d83d6be76c" TEXT="South Solomons" ABBREVIATEDLABEL="SOL-SO" LABEL="South Solomons" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1100" CREATED="2009-01-28 17:07:05.0" UUID="ce595147-df20-4ad1-b0d8-dbacf1e42a20" TEXT="North Solomons" ABBREVIATEDLABEL="SOL-NO" LABEL="North Solomons" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1101" CREATED="2009-01-28 17:07:05.0" UUID="29986d91-dba7-4f62-afa1-bf7b93aa675d" TEXT="Socotra" ABBREVIATEDLABEL="SOC-OO" LABEL="Socotra" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1102" CREATED="2009-01-28 17:07:05.0" UUID="ad7105af-cd14-4bbc-9916-aaf01b9323c4" TEXT="South Australia" ABBREVIATEDLABEL="SOA-OO" LABEL="South Australia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1103" CREATED="2009-01-28 17:07:05.0" UUID="8e56c3f9-e88c-475d-a433-52812e8e6702" TEXT="Sinai" ABBREVIATEDLABEL="SIN-OO" LABEL="Sinai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1104" CREATED="2009-01-28 17:07:05.0" UUID="f651a716-61f2-483e-9637-90ca41f88050" TEXT="Sierra Leone" ABBREVIATEDLABEL="SIE-OO" LABEL="Sierra Leone" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1105" CREATED="2009-01-28 17:07:05.0" UUID="2d04f62e-4f42-4e9f-8816-340099cc91e1" TEXT="Sicilia" ABBREVIATEDLABEL="SIC-SI" LABEL="Sicilia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1106" CREATED="2009-01-28 17:07:05.0" UUID="342cf6d7-853f-4b07-82ec-148d0a858339" TEXT="Malta" ABBREVIATEDLABEL="SIC-MA" LABEL="Malta" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1107" CREATED="2009-01-28 17:07:05.0" UUID="d110b6ee-9af0-4e78-869b-5bd910a022fb" TEXT="South Georgia" ABBREVIATEDLABEL="SGE-OO" LABEL="South Georgia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1108" CREATED="2009-01-28 17:07:05.0" UUID="a8302282-eaaa-4ae5-8e7d-bbad054b526f" TEXT="Seychelles" ABBREVIATEDLABEL="SEY-OO" LABEL="Seychelles" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1109" CREATED="2009-01-28 17:07:05.0" UUID="7d3af4e0-a21a-4f5e-b915-7a4f5028552c" TEXT="Senegal" ABBREVIATEDLABEL="SEN-OO" LABEL="Senegal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1110" CREATED="2009-01-28 17:07:05.0" UUID="56d4cb18-8980-45a2-9e4e-1917aa4510e9" TEXT="Selvagens" ABBREVIATEDLABEL="SEL-OO" LABEL="Selvagens" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1111" CREATED="2009-01-28 17:07:05.0" UUID="b38e1c57-f93e-4637-bf81-2a32d084f3ca" TEXT="South Dakota" ABBREVIATEDLABEL="SDA-OO" LABEL="South Dakota" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1112" CREATED="2009-01-28 17:07:05.0" UUID="c6918c2f-8a57-4d03-b244-9a3268860808" TEXT="Santa Cruz Is." ABBREVIATEDLABEL="SCZ-OO" LABEL="Santa Cruz Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1113" CREATED="2009-01-28 17:07:05.0" UUID="65f8b933-c900-4ce6-a95e-56f1814fae8a" TEXT="Spratly Is." ABBREVIATEDLABEL="SCS-SI" LABEL="Spratly Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1114" CREATED="2009-01-28 17:07:05.0" UUID="c6cd0324-2ba0-40ee-a5d9-f776219c7976" TEXT="Paracel Is." ABBREVIATEDLABEL="SCS-PI" LABEL="Paracel Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1115" CREATED="2009-01-28 17:07:05.0" UUID="709afec7-7245-4f53-8da9-1445fecf8c8e" TEXT="Society Is." ABBREVIATEDLABEL="SCI-OO" LABEL="Society Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1116" CREATED="2009-01-28 17:07:05.0" UUID="0d7db94f-edbc-44a1-bae0-a0934aad157e" TEXT="South Carolina" ABBREVIATEDLABEL="SCA-OO" LABEL="South Carolina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1117" CREATED="2009-01-28 17:07:05.0" UUID="cc0ad8d4-29f3-47c8-b834-70d75985f751" TEXT="Saudi Arabia" ABBREVIATEDLABEL="SAU-OO" LABEL="Saudi Arabia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1118" CREATED="2009-01-28 17:07:05.0" UUID="2ab2ada9-be59-43f9-a833-ba242ad8cdda" TEXT="Saskatchewan" ABBREVIATEDLABEL="SAS-OO" LABEL="Saskatchewan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1119" CREATED="2009-01-28 17:07:05.0" UUID="9079317c-8b0e-49f3-ade7-ac041f8ffe9c" TEXT="Sardegna" ABBREVIATEDLABEL="SAR-OO" LABEL="Sardegna" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1120" CREATED="2009-01-28 17:07:05.0" UUID="962b8eec-4faf-4f82-82e9-fb945ccb2707" TEXT="Samoa" ABBREVIATEDLABEL="SAM-WS" LABEL="Samoa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1121" CREATED="2009-01-28 17:07:05.0" UUID="ad29cca6-5f87-4a0c-bc3c-ce9d918900f7" TEXT="American Samoa" ABBREVIATEDLABEL="SAM-AS" LABEL="American Samoa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1122" CREATED="2009-01-28 17:07:05.0" UUID="32321c6a-93df-4d37-aa0a-742510e67f89" TEXT="Sakhalin" ABBREVIATEDLABEL="SAK-OO" LABEL="Sakhalin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1123" CREATED="2009-01-28 17:07:05.0" UUID="2f874e2f-5741-4c98-9170-6f7893569c80" TEXT="Rwanda" ABBREVIATEDLABEL="RWA-OO" LABEL="Rwanda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1124" CREATED="2009-01-28 17:07:05.0" UUID="189cd137-86be-4be8-bf9e-b8f8c60fb2fa" TEXT="Northwest European Russia" ABBREVIATEDLABEL="RUW-OO" LABEL="Northwest European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1125" CREATED="2009-01-28 17:07:05.0" UUID="aecbffa3-a0ea-41ec-aa5b-b7b7d20620b6" TEXT="South European Russia" ABBREVIATEDLABEL="RUS-OO" LABEL="South European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1126" CREATED="2009-01-28 17:07:05.0" UUID="bfc0d80f-d1df-466b-8d9a-502314be73ea" TEXT="North European Russia" ABBREVIATEDLABEL="RUN-OO" LABEL="North European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1127" CREATED="2009-01-28 17:07:05.0" UUID="92e057d5-e758-468a-a281-cf4cc2fad910" TEXT="East European Russia" ABBREVIATEDLABEL="RUE-OO" LABEL="East European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1128" CREATED="2009-01-28 17:07:05.0" UUID="01ab7265-469a-40d5-a95f-ed98c6070f8c" TEXT="Central European Russia" ABBREVIATEDLABEL="RUC-OO" LABEL="Central European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1129" CREATED="2009-01-28 17:07:05.0" UUID="9d2e895c-7c94-4242-b561-5c5d5bdfe463" TEXT="Romania" ABBREVIATEDLABEL="ROM-OO" LABEL="Romania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1130" CREATED="2009-01-28 17:07:05.0" UUID="adb3f8e6-a253-4ab2-a075-cf2417bdf665" TEXT="Rodrigues" ABBREVIATEDLABEL="ROD-OO" LABEL="Rodrigues" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1131" CREATED="2009-01-28 17:07:05.0" UUID="b7fd9a61-8e2a-44ca-bba5-ccf44896789a" TEXT="Rhode I." ABBREVIATEDLABEL="RHO-OO" LABEL="Rhode I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1132" CREATED="2009-01-28 17:07:05.0" UUID="f7c886e5-554d-4161-a3a8-68d064036679" TEXT="Réunion" ABBREVIATEDLABEL="REU-OO" LABEL="Réunion" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1133" CREATED="2009-01-28 17:07:05.0" UUID="57afa6e6-5c2f-4802-8a6c-7a51d377b90f" TEXT="Québec" ABBREVIATEDLABEL="QUE-OO" LABEL="Québec" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1134" CREATED="2009-01-28 17:07:05.0" UUID="ee97a3e0-d5f5-47b3-8139-535391a499af" TEXT="Queensland" ABBREVIATEDLABEL="QLD-QU" LABEL="Queensland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1135" CREATED="2009-01-28 17:07:05.0" UUID="ab352e04-4829-4ec3-bc01-e93b8f486a1b" TEXT="Coral Sea Is. Territory" ABBREVIATEDLABEL="QLD-CS" LABEL="Coral Sea Is. Territory" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1136" CREATED="2009-01-28 17:07:05.0" UUID="8111803a-dfeb-4782-bb2f-8965153c01d0" TEXT="Puerto Rico" ABBREVIATEDLABEL="PUE-OO" LABEL="Puerto Rico" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1137" CREATED="2009-01-28 17:07:05.0" UUID="d7c37bec-c6f4-48ac-b539-11dc8d74d855" TEXT="Primorye" ABBREVIATEDLABEL="PRM-OO" LABEL="Primorye" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1138" CREATED="2009-01-28 17:07:05.0" UUID="079f7975-97e1-4840-b5f1-71b2ef3c33ae" TEXT="Portugal" ABBREVIATEDLABEL="POR-OO" LABEL="Portugal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1139" CREATED="2009-01-28 17:07:05.0" UUID="6c57ae5c-9801-42ae-b4bc-02fdb63954da" TEXT="Poland" ABBREVIATEDLABEL="POL-OO" LABEL="Poland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1140" CREATED="2009-01-28 17:07:05.0" UUID="6bae9a54-e653-4dd6-89de-eddb18594cd7" TEXT="Pitcairn Is." ABBREVIATEDLABEL="PIT-OO" LABEL="Pitcairn Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1141" CREATED="2009-01-28 17:07:05.0" UUID="9ed76c57-3d36-46d8-957f-867a8652ebef" TEXT="Phoenix Is." ABBREVIATEDLABEL="PHX-OO" LABEL="Phoenix Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1142" CREATED="2009-01-28 17:07:05.0" UUID="815fb7e9-f8e5-4a6f-85cb-87fb7c8a68bf" TEXT="Philippines" ABBREVIATEDLABEL="PHI-OO" LABEL="Philippines" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1143" CREATED="2009-01-28 17:07:05.0" UUID="d5b7a4b0-b04e-486a-8f2b-2bdd5a70e9fd" TEXT="Peru" ABBREVIATEDLABEL="PER-OO" LABEL="Peru" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1144" CREATED="2009-01-28 17:07:05.0" UUID="95f3112a-1460-49c5-af9f-45ae9e12976e" TEXT="Pennsylvania" ABBREVIATEDLABEL="PEN-OO" LABEL="Pennsylvania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1145" CREATED="2009-01-28 17:07:05.0" UUID="29cd093e-bd10-44e2-8147-cfc2ed321fdf" TEXT="Prince Edward I." ABBREVIATEDLABEL="PEI-OO" LABEL="Prince Edward I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1146" CREATED="2009-01-28 17:07:05.0" UUID="f02f43b9-3a8c-456a-8074-b8a46158d03f" TEXT="Paraguay" ABBREVIATEDLABEL="PAR-OO" LABEL="Paraguay" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1147" CREATED="2009-01-28 17:07:05.0" UUID="fdc2ad3e-9168-43cd-b07d-4ec4ced0cf3f" TEXT="Panamá" ABBREVIATEDLABEL="PAN-OO" LABEL="Panamá" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1148" CREATED="2009-01-28 17:07:04.0" UUID="2c2b0d73-d44d-4bbe-abef-55c0dc753996" TEXT="Jordan" ABBREVIATEDLABEL="PAL-JO" LABEL="Jordan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1149" CREATED="2009-01-28 17:07:04.0" UUID="ccb9ccd4-5434-4c97-9418-c82d861c2049" TEXT="Israel" ABBREVIATEDLABEL="PAL-IS" LABEL="Israel" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1150" CREATED="2009-01-28 17:07:04.0" UUID="1d1c879a-161f-4048-a21b-2d7a974bd21e" TEXT="Pakistan" ABBREVIATEDLABEL="PAK-OO" LABEL="Pakistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1151" CREATED="2009-01-28 17:07:04.0" UUID="9713f9d9-d165-412b-8422-932f27f2d37a" TEXT="Oregon" ABBREVIATEDLABEL="ORE-OO" LABEL="Oregon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1152" CREATED="2009-01-28 17:07:04.0" UUID="fe0e43bb-d91b-4230-b898-75d1e490ade6" TEXT="Ontario" ABBREVIATEDLABEL="ONT-OO" LABEL="Ontario" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1153" CREATED="2009-01-28 17:07:04.0" UUID="5a335b8a-af0b-4542-9101-4bf90e2ae233" TEXT="Oman" ABBREVIATEDLABEL="OMA-OO" LABEL="Oman" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1154" CREATED="2009-01-28 17:07:04.0" UUID="11b40aa7-46a6-4b56-a10a-1cd514bf57e0" TEXT="Oklahoma" ABBREVIATEDLABEL="OKL-OO" LABEL="Oklahoma" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1155" CREATED="2009-01-28 17:07:04.0" UUID="9dafa597-63fd-4d22-b380-e5c6157f6aa1" TEXT="Ohio" ABBREVIATEDLABEL="OHI-OO" LABEL="Ohio" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1156" CREATED="2009-01-28 17:07:04.0" UUID="fe8f248b-24c4-42ae-935f-63425f970082" TEXT="Ogasawara-shoto" ABBREVIATEDLABEL="OGA-OO" LABEL="Ogasawara-shoto" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1157" CREATED="2009-01-28 17:07:04.0" UUID="bc1c9de0-cee0-41e1-9e42-f6f1b8de6201" TEXT="Free State" ABBREVIATEDLABEL="OFS-OO" LABEL="Free State" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1158" CREATED="2009-01-28 17:07:04.0" UUID="2f7933ae-10a0-4f6f-a6de-38b0b6a3eedb" TEXT="New Zealand South" ABBREVIATEDLABEL="NZS-OO" LABEL="New Zealand South" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1159" CREATED="2009-01-28 17:07:04.0" UUID="3578be59-0ae5-47b1-922f-c3416bcf0fae" TEXT="New Zealand North" ABBREVIATEDLABEL="NZN-OO" LABEL="New Zealand North" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1160" CREATED="2009-01-28 17:07:04.0" UUID="6842f8fa-5a64-4390-9e1d-54c9d2344eab" TEXT="New York" ABBREVIATEDLABEL="NWY-OO" LABEL="New York" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1161" CREATED="2009-01-28 17:07:04.0" UUID="0d2a31ec-0c8c-4f66-b75e-9cc9d63ae237" TEXT="Northwest Territories" ABBREVIATEDLABEL="NWT-OO" LABEL="Northwest Territories" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1162" CREATED="2009-01-28 17:07:04.0" UUID="e5ddc2a1-dd62-475e-8115-e633c110df10" TEXT="New Mexico" ABBREVIATEDLABEL="NWM-OO" LABEL="New Mexico" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1163" CREATED="2009-01-28 17:07:04.0" UUID="e48b3b25-074d-4bd6-b324-52c0cb8d9cfe" TEXT="New Jersey" ABBREVIATEDLABEL="NWJ-OO" LABEL="New Jersey" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1164" CREATED="2009-01-28 17:07:04.0" UUID="df620a8b-f98b-4446-9151-ac5284f2eb85" TEXT="New Hampshire" ABBREVIATEDLABEL="NWH-OO" LABEL="New Hampshire" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1165" CREATED="2009-01-28 17:07:04.0" UUID="9de7a239-4809-465f-abcc-d0d7adff3a07" TEXT="Papua New Guinea" ABBREVIATEDLABEL="NWG-PN" LABEL="Papua New Guinea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1166" CREATED="2009-01-28 17:07:04.0" UUID="2690deae-eb88-40a5-9c4f-7321f5d3ccc3" TEXT="Irian Jaya" ABBREVIATEDLABEL="NWG-IJ" LABEL="Irian Jaya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1167" CREATED="2009-01-28 17:07:04.0" UUID="c85789e3-d455-4462-a39a-83b33f26f4ce" TEXT="New Caledonia" ABBREVIATEDLABEL="NWC-OO" LABEL="New Caledonia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1168" CREATED="2009-01-28 17:07:04.0" UUID="dd5f9374-7e61-4347-bb5c-1b0d52d12a21" TEXT="Nunavut" ABBREVIATEDLABEL="NUN-OO" LABEL="Nunavut" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1169" CREATED="2009-01-28 17:07:04.0" UUID="4c848412-4f15-46f2-b339-a6e7261baa8a" TEXT="Niue" ABBREVIATEDLABEL="NUE-OO" LABEL="Niue" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1170" CREATED="2009-01-28 17:07:04.0" UUID="906678d4-6a7d-437f-8834-61c71ddb2d9e" TEXT="Northern Territory" ABBREVIATEDLABEL="NTA-OO" LABEL="Northern Territory" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1171" CREATED="2009-01-28 17:07:04.0" UUID="a33db6d2-3983-4469-8344-8248bd2e6de3" TEXT="New South Wales" ABBREVIATEDLABEL="NSW-NS" LABEL="New South Wales" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1172" CREATED="2009-01-28 17:07:04.0" UUID="1cd334ae-4ab9-40d7-b9c6-2b92f62e2380" TEXT="Australian Capital Territory" ABBREVIATEDLABEL="NSW-CT" LABEL="Australian Capital Territory" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1173" CREATED="2009-01-28 17:07:04.0" UUID="283fa80a-115b-4a30-975e-d8b34b9ca18a" TEXT="Nova Scotia" ABBREVIATEDLABEL="NSC-OO" LABEL="Nova Scotia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1174" CREATED="2009-01-28 17:07:04.0" UUID="069c44a0-a108-49e5-a8ba-e1d8057dbb17" TEXT="Nauru" ABBREVIATEDLABEL="NRU-OO" LABEL="Nauru" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1175" CREATED="2009-01-28 17:07:04.0" UUID="9f363fc8-4c69-4d50-8436-0c07468b582e" TEXT="Norway" ABBREVIATEDLABEL="NOR-OO" LABEL="Norway" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1176" CREATED="2009-01-28 17:07:04.0" UUID="ff9af1e8-0f03-4235-af1a-7cb0e7001155" TEXT="Nansei-shoto" ABBREVIATEDLABEL="NNS-OO" LABEL="Nansei-shoto" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1177" CREATED="2009-01-28 17:07:04.0" UUID="4c8b7864-f2b0-420e-84b2-a9e8d32475ae" TEXT="Curaçao" ABBREVIATEDLABEL="NLA-CU" LABEL="Curaçao" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1178" CREATED="2009-01-28 17:07:04.0" UUID="0104df3d-7b3b-4e0c-a027-7a1f304c469f" TEXT="Bonaire" ABBREVIATEDLABEL="NLA-BO" LABEL="Bonaire" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1179" CREATED="2009-01-28 17:07:04.0" UUID="a18effcb-64d3-4a91-bc7a-d2c0c0213b19" TEXT="Nicaragua" ABBREVIATEDLABEL="NIC-OO" LABEL="Nicaragua" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1180" CREATED="2009-01-28 17:07:04.0" UUID="bda8a8d3-1863-4bfb-8b87-899ef44b0584" TEXT="Niger" ABBREVIATEDLABEL="NGR-OO" LABEL="Niger" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1181" CREATED="2009-01-28 17:07:04.0" UUID="5f5dbf35-fe60-4457-b3c1-bbd617585f7b" TEXT="Nigeria" ABBREVIATEDLABEL="NGA-OO" LABEL="Nigeria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1182" CREATED="2009-01-28 17:07:04.0" UUID="f5379475-f81f-4780-9f6e-5e64c9c31c01" TEXT="St.Pierre-Miquelon" ABBREVIATEDLABEL="NFL-SP" LABEL="St.Pierre-Miquelon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1183" CREATED="2009-01-28 17:07:04.0" UUID="e9bc6421-c9ff-4d41-b101-d7cd337c055e" TEXT="Newfoundland" ABBREVIATEDLABEL="NFL-NE" LABEL="Newfoundland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1184" CREATED="2009-01-28 17:07:04.0" UUID="a6fa2e97-68a2-49a9-9dca-d34fb12f6529" TEXT="Norfolk I." ABBREVIATEDLABEL="NFK-NI" LABEL="Norfolk I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1185" CREATED="2009-01-28 17:07:04.0" UUID="615ac2ba-d4af-44a6-911d-00eaad492655" TEXT="Lord Howe I." ABBREVIATEDLABEL="NFK-LH" LABEL="Lord Howe I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1186" CREATED="2009-01-28 17:07:04.0" UUID="4e28ee8e-8964-444c-9218-3f3404cbbe5d" TEXT="Nevada" ABBREVIATEDLABEL="NEV-OO" LABEL="Nevada" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1187" CREATED="2009-01-28 17:07:04.0" UUID="75faf6c3-a818-4fd5-a61d-b9bb26b11a19" TEXT="Netherlands" ABBREVIATEDLABEL="NET-OO" LABEL="Netherlands" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1188" CREATED="2009-01-28 17:07:04.0" UUID="7a37c297-155d-4661-9808-e872f9101a90" TEXT="Nepal" ABBREVIATEDLABEL="NEP-OO" LABEL="Nepal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1189" CREATED="2009-01-28 17:07:04.0" UUID="4015d061-cb5e-4073-9df8-2abedeacb2ef" TEXT="Nebraska" ABBREVIATEDLABEL="NEB-OO" LABEL="Nebraska" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1190" CREATED="2009-01-28 17:07:04.0" UUID="45c884ea-a18a-4f4f-a7b3-a9d77f0e6dd7" TEXT="North Dakota" ABBREVIATEDLABEL="NDA-OO" LABEL="North Dakota" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1191" CREATED="2009-01-28 17:07:04.0" UUID="8f7c53f3-2f52-426c-ac4b-34df0bdca409" TEXT="Stavropol" ABBREVIATEDLABEL="NCS-ST" LABEL="Stavropol" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1192" CREATED="2009-01-28 17:07:04.0" UUID="b859ad12-1206-4722-b858-06ac44d82de9" TEXT="Severo-Osetiya" ABBREVIATEDLABEL="NCS-SO" LABEL="Severo-Osetiya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1193" CREATED="2009-01-28 17:07:04.0" UUID="864f57bc-d56e-403a-aabb-2a17d3f00854" TEXT="Krasnodar" ABBREVIATEDLABEL="NCS-KR" LABEL="Krasnodar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1194" CREATED="2009-01-28 17:07:04.0" UUID="23cccbff-93ec-4e38-bb99-da499d6f9bb5" TEXT="Karacheyevo-Cherkessiya" ABBREVIATEDLABEL="NCS-KC" LABEL="Karacheyevo-Cherkessiya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1195" CREATED="2009-01-28 17:07:04.0" UUID="3a0c35a5-44a2-43b4-9c25-b386b0bb7c73" TEXT="Kabardino-Balkariya" ABBREVIATEDLABEL="NCS-KB" LABEL="Kabardino-Balkariya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1196" CREATED="2009-01-28 17:07:04.0" UUID="f421792e-3ae4-464b-ad98-9ce48ba850f6" TEXT="Ingushetiya" ABBREVIATEDLABEL="NCS-IN" LABEL="Ingushetiya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1197" CREATED="2009-01-28 17:07:04.0" UUID="94bbfa9d-c4f1-4c21-988c-3ca88d8849e5" TEXT="Dagestan" ABBREVIATEDLABEL="NCS-DA" LABEL="Dagestan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1198" CREATED="2009-01-28 17:07:04.0" UUID="b0c453c9-48e7-4f0c-9d22-35b6e8351e73" TEXT="Chechnya" ABBREVIATEDLABEL="NCS-CH" LABEL="Chechnya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1199" CREATED="2009-01-28 17:07:04.0" UUID="91aec9bb-638f-433c-bd5f-ba4a1eaf6b31" TEXT="Nicobar Is." ABBREVIATEDLABEL="NCB-OO" LABEL="Nicobar Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1200" CREATED="2009-01-28 17:07:04.0" UUID="5a3188b8-c6bf-4eed-b1a9-1d663525c934" TEXT="North Carolina" ABBREVIATEDLABEL="NCA-OO" LABEL="North Carolina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1201" CREATED="2009-01-28 17:07:04.0" UUID="52392f16-ea76-48bd-90e9-5d0d3894d9c3" TEXT="New Brunswick" ABBREVIATEDLABEL="NBR-OO" LABEL="New Brunswick" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1202" CREATED="2009-01-28 17:07:04.0" UUID="9dcae2a1-dbbd-47dc-aa38-810343043560" TEXT="KwaZulu-Natal" ABBREVIATEDLABEL="NAT-OO" LABEL="KwaZulu-Natal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1203" CREATED="2009-01-28 17:07:04.0" UUID="e265c511-ed2e-4a46-a3c3-9bd47fb87723" TEXT="Namibia" ABBREVIATEDLABEL="NAM-OO" LABEL="Namibia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1204" CREATED="2009-01-28 17:07:04.0" UUID="a9180a47-d848-458d-9351-8f7c40f9c4d0" TEXT="Myanmar" ABBREVIATEDLABEL="MYA-OO" LABEL="Myanmar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1205" CREATED="2009-01-28 17:07:04.0" UUID="4a2ceea2-3560-4b7d-9cac-9d3a73de8580" TEXT="Yucatán" ABBREVIATEDLABEL="MXT-YU" LABEL="Yucatán" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1206" CREATED="2009-01-28 17:07:04.0" UUID="609ca24d-3829-4908-b7a3-81747332dc37" TEXT="Tabasco" ABBREVIATEDLABEL="MXT-TB" LABEL="Tabasco" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1207" CREATED="2009-01-28 17:07:04.0" UUID="e1650a20-173f-4075-8b24-47288701aa5e" TEXT="Quintana Roo" ABBREVIATEDLABEL="MXT-QR" LABEL="Quintana Roo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1208" CREATED="2009-01-28 17:07:04.0" UUID="f306d225-c0b7-49bf-b87b-25974c42fc49" TEXT="Chiapas" ABBREVIATEDLABEL="MXT-CI" LABEL="Chiapas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1209" CREATED="2009-01-28 17:07:04.0" UUID="aa0a32f2-f5da-45e4-807c-aac8aceb997e" TEXT="Campeche" ABBREVIATEDLABEL="MXT-CA" LABEL="Campeche" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1210" CREATED="2009-01-28 17:07:04.0" UUID="b56e57a3-4e9b-4246-9db2-63a8e59743b5" TEXT="Oaxaca" ABBREVIATEDLABEL="MXS-OA" LABEL="Oaxaca" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1211" CREATED="2009-01-28 17:07:04.0" UUID="83844849-9814-4e07-8f96-04d073dcc955" TEXT="Nayarit" ABBREVIATEDLABEL="MXS-NA" LABEL="Nayarit" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1212" CREATED="2009-01-28 17:07:04.0" UUID="274add23-cb5c-49c2-9482-71293fd6bb79" TEXT="Michoacán" ABBREVIATEDLABEL="MXS-MI" LABEL="Michoacán" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1213" CREATED="2009-01-28 17:07:04.0" UUID="1c252c11-4f7a-46b5-93e4-bf55da86d18b" TEXT="Jalisco" ABBREVIATEDLABEL="MXS-JA" LABEL="Jalisco" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1214" CREATED="2009-01-28 17:07:04.0" UUID="d17d5fa7-0095-41ac-8096-5f969bea33c7" TEXT="Guerrero" ABBREVIATEDLABEL="MXS-GR" LABEL="Guerrero" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1215" CREATED="2009-01-28 17:07:04.0" UUID="28610ef9-c96f-4752-8ec2-918168225ae7" TEXT="Colima" ABBREVIATEDLABEL="MXS-CL" LABEL="Colima" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1216" CREATED="2009-01-28 17:07:04.0" UUID="3793105f-349b-4869-9e05-d4ed130289e6" TEXT="Sonora" ABBREVIATEDLABEL="MXN-SO" LABEL="Sonora" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1217" CREATED="2009-01-28 17:07:04.0" UUID="f7db02f2-c3d8-4d40-82e2-bf87ef1195b6" TEXT="Sinaloa" ABBREVIATEDLABEL="MXN-SI" LABEL="Sinaloa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1218" CREATED="2009-01-28 17:07:04.0" UUID="d5dc73a4-69cc-41fe-b098-26f5cf60e05e" TEXT="Baja California Sur" ABBREVIATEDLABEL="MXN-BS" LABEL="Baja California Sur" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1219" CREATED="2009-01-28 17:07:04.0" UUID="24fb113f-89b1-46bb-b5e6-fb5e7143ffea" TEXT="Baja California" ABBREVIATEDLABEL="MXN-BC" LABEL="Baja California" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1220" CREATED="2009-01-28 17:07:04.0" UUID="666a03c5-4ad5-4594-8886-91e83bd42a4f" TEXT="Revillagigedo Is." ABBREVIATEDLABEL="MXI-RG" LABEL="Revillagigedo Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1221" CREATED="2009-01-28 17:07:04.0" UUID="e9e97f18-be57-4b0a-8be8-2a2e50ff65bb" TEXT="Rocas Alijos" ABBREVIATEDLABEL="MXI-RA" LABEL="Rocas Alijos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1222" CREATED="2009-01-28 17:07:04.0" UUID="9176abcb-cb5c-489e-b6db-6eb23d36b599" TEXT="Guadalupe I." ABBREVIATEDLABEL="MXI-GU" LABEL="Guadalupe I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1223" CREATED="2009-01-28 17:07:04.0" UUID="1074a5a0-9ac7-4579-95c6-9689269e438a" TEXT="Veracruz" ABBREVIATEDLABEL="MXG-VC" LABEL="Veracruz" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1224" CREATED="2009-01-28 17:07:04.0" UUID="390aad65-fc23-4687-bfdf-e1fd0ba717c1" TEXT="Zacatecas" ABBREVIATEDLABEL="MXE-ZA" LABEL="Zacatecas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1225" CREATED="2009-01-28 17:07:04.0" UUID="ff9040c7-33a6-417f-8395-00e843e91c84" TEXT="Tamaulipas" ABBREVIATEDLABEL="MXE-TA" LABEL="Tamaulipas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1226" CREATED="2009-01-28 17:07:04.0" UUID="94b4efe2-9e6d-4f2c-9809-745adbd38a68" TEXT="San Luis Potosí" ABBREVIATEDLABEL="MXE-SL" LABEL="San Luis Potosí" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1227" CREATED="2009-01-28 17:07:04.0" UUID="dff8c601-0fd4-423d-b656-9f420b5b604b" TEXT="Querétaro" ABBREVIATEDLABEL="MXE-QU" LABEL="Querétaro" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1228" CREATED="2009-01-28 17:07:04.0" UUID="c715a2ae-1d0a-4153-a66b-9c12aba58d94" TEXT="Nuevo León" ABBREVIATEDLABEL="MXE-NL" LABEL="Nuevo León" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1229" CREATED="2009-01-28 17:07:04.0" UUID="fd163a62-131d-4407-82b8-e4a431d85ced" TEXT="Hidalgo" ABBREVIATEDLABEL="MXE-HI" LABEL="Hidalgo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1230" CREATED="2009-01-28 17:07:04.0" UUID="ad369474-a8cf-43f1-8c3e-c4ddd1578446" TEXT="Guanajuato" ABBREVIATEDLABEL="MXE-GU" LABEL="Guanajuato" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1231" CREATED="2009-01-28 17:07:04.0" UUID="95adb387-8830-4860-9336-97198079fa17" TEXT="Durango" ABBREVIATEDLABEL="MXE-DU" LABEL="Durango" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1232" CREATED="2009-01-28 17:07:04.0" UUID="3a7df05c-fa62-4320-bd52-5834f8528c41" TEXT="Chihuahua" ABBREVIATEDLABEL="MXE-CU" LABEL="Chihuahua" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1233" CREATED="2009-01-28 17:07:04.0" UUID="e3512704-8b52-4134-ba4d-8bfb51197bd9" TEXT="Coahuila" ABBREVIATEDLABEL="MXE-CO" LABEL="Coahuila" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1234" CREATED="2009-01-28 17:07:04.0" UUID="862013c6-48fe-410c-b02e-2572834815c1" TEXT="Aguascalientes" ABBREVIATEDLABEL="MXE-AG" LABEL="Aguascalientes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1235" CREATED="2009-01-28 17:07:04.0" UUID="1af27085-70ff-46bb-a0ab-cb710f46fc46" TEXT="Tlaxcala" ABBREVIATEDLABEL="MXC-TL" LABEL="Tlaxcala" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1236" CREATED="2009-01-28 17:07:04.0" UUID="65b76b6f-7245-41f2-b9e0-45c5e9d4df92" TEXT="Puebla" ABBREVIATEDLABEL="MXC-PU" LABEL="Puebla" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1237" CREATED="2009-01-28 17:07:04.0" UUID="8653ef56-b38c-461a-9318-1856b22a86f1" TEXT="Morelos" ABBREVIATEDLABEL="MXC-MO" LABEL="Morelos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1238" CREATED="2009-01-28 17:07:04.0" UUID="11175d48-2b0a-4795-816f-6ecb0ad54f12" TEXT="México State" ABBREVIATEDLABEL="MXC-ME" LABEL="México State" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1239" CREATED="2009-01-28 17:07:04.0" UUID="94ea8e4a-33a7-48b8-98aa-1597222f1e7a" TEXT="Mexico Distrito Federal" ABBREVIATEDLABEL="MXC-DF" LABEL="Mexico Distrito Federal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1240" CREATED="2009-01-28 17:07:04.0" UUID="9aed0b80-f697-409f-bc9f-38a414737389" TEXT="Mauritania" ABBREVIATEDLABEL="MTN-OO" LABEL="Mauritania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1241" CREATED="2009-01-28 17:07:04.0" UUID="d7dcac90-af1e-4c28-858f-ecab0d9a81a2" TEXT="Missouri" ABBREVIATEDLABEL="MSO-OO" LABEL="Missouri" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1242" CREATED="2009-01-28 17:07:04.0" UUID="79bc549a-e8e1-476e-95fb-f4bc5983b540" TEXT="Mississippi" ABBREVIATEDLABEL="MSI-OO" LABEL="Mississippi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1243" CREATED="2009-01-28 17:07:04.0" UUID="a420d056-ce97-46b9-b6c5-84616b16a8c6" TEXT="Maryland" ABBREVIATEDLABEL="MRY-OO" LABEL="Maryland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1244" CREATED="2009-01-28 17:07:04.0" UUID="db85641f-ebc9-46b8-8c93-69bf5922244c" TEXT="Marshall Is." ABBREVIATEDLABEL="MRS-OO" LABEL="Marshall Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1245" CREATED="2009-01-28 17:07:04.0" UUID="3c83fbe5-5ec3-4c13-9802-defe521ef55d" TEXT="Marquesas" ABBREVIATEDLABEL="MRQ-OO" LABEL="Marquesas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1246" CREATED="2009-01-28 17:07:04.0" UUID="5487e4a1-a8c5-4b96-a4e4-276eb4f277bc" TEXT="Northern Marianas" ABBREVIATEDLABEL="MRN-NM" LABEL="Northern Marianas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1247" CREATED="2009-01-28 17:07:04.0" UUID="c2e47a9b-a90d-41bd-be93-a8ab00cc0900" TEXT="Guam" ABBREVIATEDLABEL="MRN-GU" LABEL="Guam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1248" CREATED="2009-01-28 17:07:04.0" UUID="1a3e7a70-4d29-4cbe-b461-d29961540e7e" TEXT="Marion-Prince Edward Is." ABBREVIATEDLABEL="MPE-OO" LABEL="Marion-Prince Edward Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1249" CREATED="2009-01-28 17:07:04.0" UUID="ee88fa13-4810-4a86-b414-7abaa93380f4" TEXT="Mozambique" ABBREVIATEDLABEL="MOZ-OO" LABEL="Mozambique" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1250" CREATED="2009-01-28 17:07:04.0" UUID="16deff64-8ec8-4b0b-848c-1d888f7882a1" TEXT="Spanish North African Territories" ABBREVIATEDLABEL="MOR-SP" LABEL="Spanish North African Territories" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1251" CREATED="2009-01-28 17:07:04.0" UUID="f88c40d0-51da-402f-b9cc-40f96f5714d2" TEXT="Morocco" ABBREVIATEDLABEL="MOR-MO" LABEL="Morocco" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1252" CREATED="2009-01-28 17:07:04.0" UUID="c5c7d46a-78d7-4f44-bae1-3fc79f3614c9" TEXT="Mongolia" ABBREVIATEDLABEL="MON-OO" LABEL="Mongolia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1253" CREATED="2009-01-28 17:07:04.0" UUID="a2b7a0c3-f713-4aac-a18b-4941df61b9fe" TEXT="Maluku" ABBREVIATEDLABEL="MOL-OO" LABEL="Maluku" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1254" CREATED="2009-01-28 17:07:04.0" UUID="0238a46e-6aa7-41a1-89e4-ffc0b4d63072" TEXT="Montana" ABBREVIATEDLABEL="MNT-OO" LABEL="Montana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1255" CREATED="2009-01-28 17:07:04.0" UUID="8883f9a9-2a23-43fb-9d80-60f25d6d6af4" TEXT="Singapore" ABBREVIATEDLABEL="MLY-SI" LABEL="Singapore" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1256" CREATED="2009-01-28 17:07:04.0" UUID="ef524ff1-c991-4201-94a1-fbe2afdde9ee" TEXT="Peninsular Malaysia" ABBREVIATEDLABEL="MLY-PM" LABEL="Peninsular Malaysia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1257" CREATED="2009-01-28 17:07:04.0" UUID="ee44fcb4-7e76-43c7-97eb-26b1ea37d9e2" TEXT="Malawi" ABBREVIATEDLABEL="MLW-OO" LABEL="Malawi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1258" CREATED="2009-01-28 17:07:04.0" UUID="85a6dd21-a48d-4d84-a4ea-5a4b3558ec8b" TEXT="Mali" ABBREVIATEDLABEL="MLI-OO" LABEL="Mali" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1259" CREATED="2009-01-28 17:07:04.0" UUID="8459c1e3-be56-49ef-b2c9-6164adac2dff" TEXT="Minnesota" ABBREVIATEDLABEL="MIN-OO" LABEL="Minnesota" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1260" CREATED="2009-01-28 17:07:04.0" UUID="4f976279-3026-449e-86a2-672b0b0df5a5" TEXT="Michigan" ABBREVIATEDLABEL="MIC-OO" LABEL="Michigan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1261" CREATED="2009-01-28 17:07:04.0" UUID="5adb9051-63c1-4105-8457-1cbfa2a7338a" TEXT="Maldives" ABBREVIATEDLABEL="MDV-OO" LABEL="Maldives" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1262" CREATED="2009-01-28 17:07:04.0" UUID="95dfb13a-adb9-418c-a344-ba2643b45590" TEXT="Madeira" ABBREVIATEDLABEL="MDR-OO" LABEL="Madeira" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1263" CREATED="2009-01-28 17:07:04.0" UUID="83bc1893-7e88-449f-8247-2ccb0ad26e96" TEXT="Madagascar" ABBREVIATEDLABEL="MDG-OO" LABEL="Madagascar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1264" CREATED="2009-01-28 17:07:04.0" UUID="250ed581-1bd5-47b1-b638-a7ebaa1a0cc0" TEXT="Marcus I." ABBREVIATEDLABEL="MCS-OO" LABEL="Marcus I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1265" CREATED="2009-01-28 17:07:04.0" UUID="37b6c523-7e06-406d-91f9-3d05ddebca4b" TEXT="Mozambique Channel Is." ABBREVIATEDLABEL="MCI-OO" LABEL="Mozambique Channel Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1266" CREATED="2009-01-28 17:07:04.0" UUID="d4653acb-1304-412d-8599-31646680fcaa" TEXT="Mauritius" ABBREVIATEDLABEL="MAU-OO" LABEL="Mauritius" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1267" CREATED="2009-01-28 17:07:04.0" UUID="1380d214-5443-4365-9beb-e9f9a7d7226a" TEXT="Masachusettes" ABBREVIATEDLABEL="MAS-OO" LABEL="Masachusettes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1268" CREATED="2009-01-28 17:07:04.0" UUID="086678ea-6cfc-485e-8cdc-4fb0e47683ee" TEXT="Macquarie Is." ABBREVIATEDLABEL="MAQ-OO" LABEL="Macquarie Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1269" CREATED="2009-01-28 17:07:04.0" UUID="47c8aa92-556c-45e0-85f4-c9b86b415dc2" TEXT="Manitoba" ABBREVIATEDLABEL="MAN-OO" LABEL="Manitoba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1270" CREATED="2009-01-28 17:07:04.0" UUID="a6a9c100-bf88-4287-83f1-34b4bebffeb0" TEXT="Maine" ABBREVIATEDLABEL="MAI-OO" LABEL="Maine" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1271" CREATED="2009-01-28 17:07:04.0" UUID="7eb42244-7521-4d69-a047-0016059b8f7a" TEXT="Magadan" ABBREVIATEDLABEL="MAG-OO" LABEL="Magadan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1272" CREATED="2009-01-28 17:07:04.0" UUID="e7eafa33-9ee0-4034-8a1f-e3e8ea0a343f" TEXT="Lesser Sunda Is." ABBREVIATEDLABEL="LSI-LS" LABEL="Lesser Sunda Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1273" CREATED="2009-01-28 17:07:04.0" UUID="6dea094b-3e4f-4cec-83fc-b05068e39ef7" TEXT="East Timor" ABBREVIATEDLABEL="LSI-ET" LABEL="East Timor" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1274" CREATED="2009-01-28 17:07:04.0" UUID="5a9d5ffa-e212-4cc2-b2c5-b77053df4d7b" TEXT="Bali" ABBREVIATEDLABEL="LSI-BA" LABEL="Bali" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1275" CREATED="2009-01-28 17:07:04.0" UUID="e3f16461-6a3d-4014-9be0-99bdb14b5dcd" TEXT="Louisiana" ABBREVIATEDLABEL="LOU-OO" LABEL="Louisiana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1276" CREATED="2009-01-28 17:07:04.0" UUID="67c631a6-9a19-4331-a212-93761a44016e" TEXT="U.S. Line Is." ABBREVIATEDLABEL="LIN-US" LABEL="U.S. Line Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1277" CREATED="2009-01-28 17:07:04.0" UUID="18b2a67a-8648-4a5a-af2c-fadb31b17dc9" TEXT="Kiribati Line Is." ABBREVIATEDLABEL="LIN-KI" LABEL="Kiribati Line Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1278" CREATED="2009-01-28 17:07:04.0" UUID="719c666a-15a7-4b65-ab30-70d1b87b9b73" TEXT="Lesotho" ABBREVIATEDLABEL="LES-OO" LABEL="Lesotho" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1279" CREATED="2009-01-28 17:07:04.0" UUID="840addb6-fbdc-424a-a55d-64b1951e88da" TEXT="Virgin Is." ABBREVIATEDLABEL="LEE-VI" LABEL="Virgin Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1280" CREATED="2009-01-28 17:07:04.0" UUID="44b18b3a-dd1b-478d-a82a-a354d74e8d6f" TEXT="St.Martin-St.Barthélémy" ABBREVIATEDLABEL="LEE-SM" LABEL="St.Martin-St.Barthélémy" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1281" CREATED="2009-01-28 17:07:04.0" UUID="104fd6e2-d20a-4b44-92e2-8759e5ac7142" TEXT="St.Kitts-Nevis" ABBREVIATEDLABEL="LEE-SK" LABEL="St.Kitts-Nevis" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1282" CREATED="2009-01-28 17:07:04.0" UUID="e300ccff-aff5-4a1a-b585-ba5084e222ce" TEXT="Netherlands Leeward Is." ABBREVIATEDLABEL="LEE-NL" LABEL="Netherlands Leeward Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1283" CREATED="2009-01-28 17:07:04.0" UUID="b1a422bf-fa84-4f97-9e3c-067639f3f531" TEXT="Montserrat" ABBREVIATEDLABEL="LEE-MO" LABEL="Montserrat" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1284" CREATED="2009-01-28 17:07:04.0" UUID="d7a850cb-02ee-4015-9231-59bb6a43da8e" TEXT="Guadeloupe" ABBREVIATEDLABEL="LEE-GU" LABEL="Guadeloupe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1285" CREATED="2009-01-28 17:07:04.0" UUID="3fbd1eac-be9c-445b-88d8-28b47b6d36f6" TEXT="British Virgin Is." ABBREVIATEDLABEL="LEE-BV" LABEL="British Virgin Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1286" CREATED="2009-01-28 17:07:04.0" UUID="50fd24cf-a02b-4e4d-9203-dcbe33348d06" TEXT="Aves I." ABBREVIATEDLABEL="LEE-AV" LABEL="Aves I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1287" CREATED="2009-01-28 17:07:04.0" UUID="233114db-5a71-4866-ac88-ba0a9aed89f1" TEXT="Anguilla" ABBREVIATEDLABEL="LEE-AG" LABEL="Anguilla" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1288" CREATED="2009-01-28 17:07:04.0" UUID="a235e23b-603f-4358-beaf-7e412319db62" TEXT="Antigua-Barbuda" ABBREVIATEDLABEL="LEE-AB" LABEL="Antigua-Barbuda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1289" CREATED="2009-01-28 17:07:04.0" UUID="be3e99a3-01ec-40f7-81e8-2245699d1817" TEXT="Laccadive Is." ABBREVIATEDLABEL="LDV-OO" LABEL="Laccadive Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1290" CREATED="2009-01-28 17:07:04.0" UUID="6ae2e354-9725-447f-8a00-6948f71b8d79" TEXT="Libya" ABBREVIATEDLABEL="LBY-OO" LABEL="Libya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1291" CREATED="2009-01-28 17:07:04.0" UUID="63700e30-7e99-49ca-8f5f-ddca244e7d96" TEXT="Syria" ABBREVIATEDLABEL="LBS-SY" LABEL="Syria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1292" CREATED="2009-01-28 17:07:04.0" UUID="fd2b4641-487c-4135-ae2e-09a111144f17" TEXT="Lebanon" ABBREVIATEDLABEL="LBS-LB" LABEL="Lebanon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1293" CREATED="2009-01-28 17:07:04.0" UUID="e5fbdadd-b0e4-420e-9cba-ed301633d08d" TEXT="Liberia" ABBREVIATEDLABEL="LBR-OO" LABEL="Liberia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1294" CREATED="2009-01-28 17:07:04.0" UUID="a31ba6b4-1182-4fb1-92da-60a6401efef1" TEXT="Laos" ABBREVIATEDLABEL="LAO-OO" LABEL="Laos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1295" CREATED="2009-01-28 17:07:04.0" UUID="aa56d7b4-bde4-4020-91ab-0a01f3dfd0f6" TEXT="Labrador" ABBREVIATEDLABEL="LAB-OO" LABEL="Labrador" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1296" CREATED="2009-01-28 17:07:04.0" UUID="417b479d-4427-49be-9e96-f5ed8afb57cd" TEXT="Kazan-retto" ABBREVIATEDLABEL="KZN-OO" LABEL="Kazan-retto" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1297" CREATED="2009-01-28 17:07:04.0" UUID="b6d49ec0-8d78-4ced-b26b-78c190559ac8" TEXT="Kuwait" ABBREVIATEDLABEL="KUW-OO" LABEL="Kuwait" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1298" CREATED="2009-01-28 17:07:04.0" UUID="0e211443-2fdd-4e74-acbc-7dbd98dc614c" TEXT="Kuril Is." ABBREVIATEDLABEL="KUR-OO" LABEL="Kuril Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1299" CREATED="2009-01-28 17:07:04.0" UUID="be23e1c6-1714-478e-a17b-3ecdc11d706c" TEXT="Kentucky" ABBREVIATEDLABEL="KTY-OO" LABEL="Kentucky" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1300" CREATED="2009-01-28 17:07:04.0" UUID="70b144ce-bd9b-4d60-82dd-bde739c56727" TEXT="Krym" ABBREVIATEDLABEL="KRY-OO" LABEL="Krym" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1301" CREATED="2009-01-28 17:07:04.0" UUID="b0bebc79-2e2b-4f4a-816c-829b2ba7df01" TEXT="Kriti" ABBREVIATEDLABEL="KRI-OO" LABEL="Kriti" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1302" CREATED="2009-01-28 17:07:04.0" UUID="11520f68-3ba0-4b3b-afbf-c9a9ff19c4af" TEXT="Krasnoyarsk" ABBREVIATEDLABEL="KRA-OO" LABEL="Krasnoyarsk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1303" CREATED="2009-01-28 17:07:04.0" UUID="3ae60f5f-ea23-4256-a5d2-92775a664ee9" TEXT="South Korea" ABBREVIATEDLABEL="KOR-SK" LABEL="South Korea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1304" CREATED="2009-01-28 17:07:04.0" UUID="cf56519c-b2fb-4927-be82-241eca8be834" TEXT="North Korea" ABBREVIATEDLABEL="KOR-NK" LABEL="North Korea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1305" CREATED="2009-01-28 17:07:04.0" UUID="6e13ca41-a430-4f4c-b3ea-510fb4b9b166" TEXT="Khabarovsk" ABBREVIATEDLABEL="KHA-OO" LABEL="Khabarovsk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1306" CREATED="2009-01-28 17:07:04.0" UUID="281f23aa-b9ff-44d0-b45e-a90502644d86" TEXT="Kirgizistan" ABBREVIATEDLABEL="KGZ-OO" LABEL="Kirgizistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1307" CREATED="2009-01-28 17:07:04.0" UUID="dfec0dad-5dd2-4c2c-8b7e-215df9fdd279" TEXT="Kermadec Is." ABBREVIATEDLABEL="KER-OO" LABEL="Kermadec Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1308" CREATED="2009-01-28 17:07:04.0" UUID="55d7f43a-bd40-4256-8720-e2363c847759" TEXT="Kenya" ABBREVIATEDLABEL="KEN-OO" LABEL="Kenya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1309" CREATED="2009-01-28 17:07:04.0" UUID="e4656106-d0ad-4678-8ec5-f5b417f522ec" TEXT="Kerguelen" ABBREVIATEDLABEL="KEG-OO" LABEL="Kerguelen" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1310" CREATED="2009-01-28 17:07:04.0" UUID="72693137-1343-4036-a48d-27b16cc4ccb2" TEXT="Kazakhstan" ABBREVIATEDLABEL="KAZ-OO" LABEL="Kazakhstan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1311" CREATED="2009-01-28 17:07:04.0" UUID="9a28d0bf-7c83-4538-be8a-ca089cd02af4" TEXT="Kansas" ABBREVIATEDLABEL="KAN-OO" LABEL="Kansas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1312" CREATED="2009-01-28 17:07:04.0" UUID="4b1e7d64-ef0c-4d5c-b74b-dd0b7073a827" TEXT="Kamchatka" ABBREVIATEDLABEL="KAM-OO" LABEL="Kamchatka" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1313" CREATED="2009-01-28 17:07:04.0" UUID="0ac99b59-5482-4639-8ab5-4c936a88f8b7" TEXT="Juan Fernández Is." ABBREVIATEDLABEL="JNF-OO" LABEL="Juan Fernández Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1314" CREATED="2009-01-28 17:07:04.0" UUID="910e7fa6-ab32-4fbb-8273-4829b0227fb8" TEXT="Jawa" ABBREVIATEDLABEL="JAW-OO" LABEL="Jawa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1315" CREATED="2009-01-28 17:07:04.0" UUID="2ef8f4d6-f07e-4cc1-8e5f-bfe41bd992a0" TEXT="Shikoku" ABBREVIATEDLABEL="JAP-SH" LABEL="Shikoku" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1316" CREATED="2009-01-28 17:07:04.0" UUID="fe0e07ed-50b8-4bcc-aaad-eea945ba6f3b" TEXT="Kyushu" ABBREVIATEDLABEL="JAP-KY" LABEL="Kyushu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1317" CREATED="2009-01-28 17:07:04.0" UUID="2d38f0b3-9311-485e-b242-7b5bcecbc807" TEXT="Honshu" ABBREVIATEDLABEL="JAP-HN" LABEL="Honshu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1318" CREATED="2009-01-28 17:07:04.0" UUID="cf66ee3b-aeba-4fb7-adb3-c0a0dfc1d336" TEXT="Hokkaido" ABBREVIATEDLABEL="JAP-HK" LABEL="Hokkaido" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1319" CREATED="2009-01-28 17:07:04.0" UUID="0dfca5a2-5442-4f45-8ddb-ccbea2d30202" TEXT="Jamaica" ABBREVIATEDLABEL="JAM-OO" LABEL="Jamaica" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1320" CREATED="2009-01-28 17:07:04.0" UUID="146be72f-c13d-45dc-987f-628386f8d9c8" TEXT="Ivory Coast" ABBREVIATEDLABEL="IVO-OO" LABEL="Ivory Coast" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1321" CREATED="2009-01-28 17:07:04.0" UUID="6b8e4c4a-87b7-4c78-8db5-39167024ae60" TEXT="Vatican City" ABBREVIATEDLABEL="ITA-VC" LABEL="Vatican City" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1322" CREATED="2009-01-28 17:07:04.0" UUID="6aee9dc9-c1bf-4c1e-94d7-e9e7e04fae18" TEXT="San Marino" ABBREVIATEDLABEL="ITA-SM" LABEL="San Marino" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1323" CREATED="2009-01-28 17:07:04.0" UUID="b423d236-2829-4a9d-9c0b-2f2a207377ca" TEXT="Italy" ABBREVIATEDLABEL="ITA-IT" LABEL="Italy" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1324" CREATED="2009-01-28 17:07:04.0" UUID="1f8dbf0c-3c59-49f0-8095-f21d7103557e" TEXT="Iraq" ABBREVIATEDLABEL="IRQ-OO" LABEL="Iraq" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1325" CREATED="2009-01-28 17:07:04.0" UUID="1c66da10-68dc-4f2b-8a34-38611f6e7ca2" TEXT="Iran" ABBREVIATEDLABEL="IRN-OO" LABEL="Iran" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1326" CREATED="2009-01-28 17:07:04.0" UUID="3050d30d-659e-4f41-b1b4-c1d7eeced48b" TEXT="Irkutsk" ABBREVIATEDLABEL="IRK-OO" LABEL="Irkutsk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1327" CREATED="2009-01-28 17:07:04.0" UUID="68b6fb67-4d52-4dc3-8516-86b489edd253" TEXT="Northern Ireland" ABBREVIATEDLABEL="IRE-NI" LABEL="Northern Ireland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1328" CREATED="2009-01-28 17:07:04.0" UUID="4acf2b6e-455f-4cf2-ad80-12336483f79b" TEXT="Ireland" ABBREVIATEDLABEL="IRE-IR" LABEL="Ireland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1329" CREATED="2009-01-28 17:07:04.0" UUID="ea28d3b1-2277-4455-a7d0-c75ace45cd8c" TEXT="Iowa" ABBREVIATEDLABEL="IOW-OO" LABEL="Iowa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1330" CREATED="2009-01-28 17:07:04.0" UUID="305c4c3b-73f0-43ea-9dcc-bc5d2dbec342" TEXT="Indiana" ABBREVIATEDLABEL="INI-OO" LABEL="Indiana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1331" CREATED="2009-01-28 17:07:04.0" UUID="b9eca024-14c4-48cd-a7cb-fe4c815e573d" TEXT="Yanam" ABBREVIATEDLABEL="IND-YA" LABEL="Yanam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1332" CREATED="2009-01-28 17:07:04.0" UUID="0ab920cb-df4a-479a-a025-178eb4187892" TEXT="West Bengal" ABBREVIATEDLABEL="IND-WB" LABEL="West Bengal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1333" CREATED="2009-01-28 17:07:04.0" UUID="49b6d0f1-b6e8-48d4-866c-559c7a19b21f" TEXT="Uttar Pradesh" ABBREVIATEDLABEL="IND-UP" LABEL="Uttar Pradesh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1334" CREATED="2009-01-28 17:07:04.0" UUID="8a3f77c3-1a91-4d51-9477-06620a3f0029" TEXT="Tamil Nadu" ABBREVIATEDLABEL="IND-TN" LABEL="Tamil Nadu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1335" CREATED="2009-01-28 17:07:04.0" UUID="a662fcfd-2339-499d-a604-33553e4d2182" TEXT="Rajasthan" ABBREVIATEDLABEL="IND-RA" LABEL="Rajasthan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1336" CREATED="2009-01-28 17:07:04.0" UUID="a6c59c2f-567a-4591-92a9-4384775d15e3" TEXT="Punjab" ABBREVIATEDLABEL="IND-PU" LABEL="Punjab" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1337" CREATED="2009-01-28 17:07:04.0" UUID="d883ddc0-4090-479c-975e-b05604acb47e" TEXT="Pondicherry" ABBREVIATEDLABEL="IND-PO" LABEL="Pondicherry" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1338" CREATED="2009-01-28 17:07:04.0" UUID="bc6d6085-9533-44df-85f2-3c218a601f03" TEXT="Orissa" ABBREVIATEDLABEL="IND-OR" LABEL="Orissa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1339" CREATED="2009-01-28 17:07:04.0" UUID="5cf8de17-9d0e-4e1b-8dd3-c2e0bbd30a9d" TEXT="Maharashtra" ABBREVIATEDLABEL="IND-MR" LABEL="Maharashtra" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1340" CREATED="2009-01-28 17:07:04.0" UUID="723d486d-f76b-4e33-8e84-6c72af376812" TEXT="Madhya Pradesh" ABBREVIATEDLABEL="IND-MP" LABEL="Madhya Pradesh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1341" CREATED="2009-01-28 17:07:04.0" UUID="eda6a5b0-a223-4a6a-ac5b-adbdac65da35" TEXT="Mahé" ABBREVIATEDLABEL="IND-MH" LABEL="Mahé" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1342" CREATED="2009-01-28 17:07:04.0" UUID="9a3aeb41-5eb4-4ba1-a1e3-0a4dc82edb7f" TEXT="Karnataka" ABBREVIATEDLABEL="IND-KT" LABEL="Karnataka" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1343" CREATED="2009-01-28 17:07:04.0" UUID="47aad0f3-25af-4599-8a2a-5f9c53f9d435" TEXT="Karaikal" ABBREVIATEDLABEL="IND-KL" LABEL="Karaikal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1344" CREATED="2009-01-28 17:07:04.0" UUID="4eb30b03-426a-4198-a208-7c79a2798f2a" TEXT="Kerala" ABBREVIATEDLABEL="IND-KE" LABEL="Kerala" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1345" CREATED="2009-01-28 17:07:04.0" UUID="65b2cc94-24ff-4bf5-b057-9b886a0356dc" TEXT="Jharkhand" ABBREVIATEDLABEL="IND-JK" LABEL="Jharkhand" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1346" CREATED="2009-01-28 17:07:04.0" UUID="bd292b3f-9700-4ac6-8bd2-35010354cc58" TEXT="Haryana" ABBREVIATEDLABEL="IND-HA" LABEL="Haryana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1347" CREATED="2009-01-28 17:07:04.0" UUID="e50ab641-ab91-40d8-bbd7-b5b23cb110d0" TEXT="Gujarat" ABBREVIATEDLABEL="IND-GU" LABEL="Gujarat" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1348" CREATED="2009-01-28 17:07:04.0" UUID="42a02bde-fa58-4da3-afd0-43a784d5341a" TEXT="Goa" ABBREVIATEDLABEL="IND-GO" LABEL="Goa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1349" CREATED="2009-01-28 17:07:04.0" UUID="a237025c-29ee-4b80-bb95-5301e2f80d6e" TEXT="Daman" ABBREVIATEDLABEL="IND-DM" LABEL="Daman" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1350" CREATED="2009-01-28 17:07:04.0" UUID="447bb7ec-510f-44a2-b019-8783c1475369" TEXT="Diu" ABBREVIATEDLABEL="IND-DI" LABEL="Diu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1351" CREATED="2009-01-28 17:07:04.0" UUID="0677183f-aa3c-46ab-94e2-c90246d135c3" TEXT="Delhi" ABBREVIATEDLABEL="IND-DE" LABEL="Delhi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1352" CREATED="2009-01-28 17:07:04.0" UUID="21fa71a7-d1a3-4032-8a49-7743109bb8bc" TEXT="Dadra-Nagar-Haveli" ABBREVIATEDLABEL="IND-DD" LABEL="Dadra-Nagar-Haveli" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1353" CREATED="2009-01-28 17:07:04.0" UUID="e6799278-0097-4840-9b69-ee7421b0f7a0" TEXT="Chattisgarh" ABBREVIATEDLABEL="IND-CT" LABEL="Chattisgarh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1354" CREATED="2009-01-28 17:07:04.0" UUID="a292235c-43d4-44b4-92dd-4bacff6f12ce" TEXT="Chandigarh" ABBREVIATEDLABEL="IND-CH" LABEL="Chandigarh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1355" CREATED="2009-01-28 17:07:04.0" UUID="1654e409-2fba-4c12-b3e7-0a4ba5acb43c" TEXT="Bihar" ABBREVIATEDLABEL="IND-BI" LABEL="Bihar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1356" CREATED="2009-01-28 17:07:04.0" UUID="f242e8f6-5f60-499d-a342-b60e648b10c7" TEXT="Andhra Pradesh" ABBREVIATEDLABEL="IND-AP" LABEL="Andhra Pradesh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1357" CREATED="2009-01-28 17:07:04.0" UUID="b0b1f9b7-ad3d-4814-8fe1-d53c6295c618" TEXT="Illinois" ABBREVIATEDLABEL="ILL-OO" LABEL="Illinois" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1358" CREATED="2009-01-28 17:07:04.0" UUID="144e13ad-28dd-40ce-87f9-1481407b3c14" TEXT="Idaho" ABBREVIATEDLABEL="IDA-OO" LABEL="Idaho" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1359" CREATED="2009-01-28 17:07:04.0" UUID="75b9a684-37a7-4240-85f8-c6a898d017b3" TEXT="Iceland" ABBREVIATEDLABEL="ICE-OO" LABEL="Iceland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1360" CREATED="2009-01-28 17:07:04.0" UUID="2aa03206-1389-46c7-a61b-9614917434df" TEXT="Hungary" ABBREVIATEDLABEL="HUN-OO" LABEL="Hungary" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1361" CREATED="2009-01-28 17:07:04.0" UUID="1b3b21c2-de63-4b07-a6f9-786584c1314f" TEXT="Honduras" ABBREVIATEDLABEL="HON-OO" LABEL="Honduras" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1362" CREATED="2009-01-28 17:07:04.0" UUID="067d493d-7ec9-4aad-9eb1-dfb5ada1e818" TEXT="Heard-McDonald Is." ABBREVIATEDLABEL="HMD-OO" LABEL="Heard-McDonald Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1363" CREATED="2009-01-28 17:07:04.0" UUID="f9220221-9114-4376-a198-0963378044ca" TEXT="Howland-Baker Is." ABBREVIATEDLABEL="HBI-OO" LABEL="Howland-Baker Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1364" CREATED="2009-01-28 17:07:04.0" UUID="9518104c-5ca9-44e0-b252-a561cd4bfd0d" TEXT="Midway Is." ABBREVIATEDLABEL="HAW-MI" LABEL="Midway Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1365" CREATED="2009-01-28 17:07:04.0" UUID="b431b58b-417f-45fd-a9f2-760712bf9ab9" TEXT="Johnston I." ABBREVIATEDLABEL="HAW-JI" LABEL="Johnston I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1366" CREATED="2009-01-28 17:07:04.0" UUID="aaecfbaa-cbed-4a15-9407-c1f6fb63ca35" TEXT="Hawaiian Is." ABBREVIATEDLABEL="HAW-HI" LABEL="Hawaiian Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1367" CREATED="2009-01-28 17:07:04.0" UUID="3f445c6e-a9d8-4076-8467-319ae55bfa9d" TEXT="Navassa I." ABBREVIATEDLABEL="HAI-NI" LABEL="Navassa I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1368" CREATED="2009-01-28 17:07:04.0" UUID="9ab72340-6895-43a9-be87-089eb5941380" TEXT="Haiti" ABBREVIATEDLABEL="HAI-HA" LABEL="Haiti" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1369" CREATED="2009-01-28 17:07:04.0" UUID="73810b2c-3f03-4d73-b548-446ad86ac3f7" TEXT="Guyana" ABBREVIATEDLABEL="GUY-OO" LABEL="Guyana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1370" CREATED="2009-01-28 17:07:04.0" UUID="d8f5ba48-72af-40c0-b621-c30a7d6656af" TEXT="Guinea" ABBREVIATEDLABEL="GUI-OO" LABEL="Guinea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1371" CREATED="2009-01-28 17:07:04.0" UUID="4f7b8c07-d74d-4dd3-a608-1240c97a955b" TEXT="Guatemala" ABBREVIATEDLABEL="GUA-OO" LABEL="Guatemala" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1372" CREATED="2009-01-28 17:07:04.0" UUID="00748df4-4d46-4c94-a9ee-c22d70fac14b" TEXT="United Arab Emirates" ABBREVIATEDLABEL="GST-UA" LABEL="United Arab Emirates" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1373" CREATED="2009-01-28 17:07:04.0" UUID="95841f07-6e4b-492d-8c00-2fd5bb30fff4" TEXT="Qatar" ABBREVIATEDLABEL="GST-QA" LABEL="Qatar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1374" CREATED="2009-01-28 17:07:04.0" UUID="0fdc1bb7-08bd-499d-9d6c-d96b710a62fd" TEXT="Bahrain" ABBREVIATEDLABEL="GST-BA" LABEL="Bahrain" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1375" CREATED="2009-01-28 17:07:04.0" UUID="8e451209-793f-4158-86d4-c3f61a68db04" TEXT="Greece" ABBREVIATEDLABEL="GRC-OO" LABEL="Greece" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1376" CREATED="2009-01-28 17:07:04.0" UUID="17e4ee97-c103-4dec-8dec-81d24c2bfeff" TEXT="Great Britain" ABBREVIATEDLABEL="GRB-OO" LABEL="Great Britain" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1377" CREATED="2009-01-28 17:07:04.0" UUID="c73f63ff-f704-4de5-9328-404941fd1571" TEXT="Greenland" ABBREVIATEDLABEL="GNL-OO" LABEL="Greenland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1378" CREATED="2009-01-28 17:07:04.0" UUID="04715bb6-8675-43a7-9b33-26aa14181680" TEXT="Guinea-Bissau" ABBREVIATEDLABEL="GNB-OO" LABEL="Guinea-Bissau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1379" CREATED="2009-01-28 17:07:04.0" UUID="cce046de-3dd5-48ab-8b46-6a838ccf6a34" TEXT="Gilbert Is." ABBREVIATEDLABEL="GIL-OO" LABEL="Gilbert Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1380" CREATED="2009-01-28 17:07:04.0" UUID="12d89413-93ad-4cf1-8bca-10224cc2ea02" TEXT="Ghana" ABBREVIATEDLABEL="GHA-OO" LABEL="Ghana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1381" CREATED="2009-01-28 17:07:04.0" UUID="9d1745cb-8b21-4bea-9e25-0cd78ad21bca" TEXT="São Tomé" ABBREVIATEDLABEL="GGI-ST" LABEL="São Tomé" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1382" CREATED="2009-01-28 17:07:04.0" UUID="099574fa-3e37-4349-897d-894edd2509c7" TEXT="Principe" ABBREVIATEDLABEL="GGI-PR" LABEL="Principe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1383" CREATED="2009-01-28 17:07:04.0" UUID="d93f1ef8-9cd8-4378-be30-77f6409fe534" TEXT="Bioko" ABBREVIATEDLABEL="GGI-BI" LABEL="Bioko" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1384" CREATED="2009-01-28 17:07:04.0" UUID="a553d4ce-05c6-4a0d-af29-298c4cf6bd73" TEXT="Annobón" ABBREVIATEDLABEL="GGI-AN" LABEL="Annobón" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1385" CREATED="2009-01-28 17:07:04.0" UUID="be2f50c4-3894-4398-b5b3-54022785250e" TEXT="Germany" ABBREVIATEDLABEL="GER-OO" LABEL="Germany" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1386" CREATED="2009-01-28 17:07:04.0" UUID="e01886f0-c2ea-4ebd-8b75-e35fdee96dab" TEXT="Georgia" ABBREVIATEDLABEL="GEO-OO" LABEL="Georgia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1387" CREATED="2009-01-28 17:07:04.0" UUID="003efb68-76fc-42e7-9bfd-78071636c49b" TEXT="Gambia, The" ABBREVIATEDLABEL="GAM-OO" LABEL="Gambia, The" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1388" CREATED="2009-01-28 17:07:04.0" UUID="a545af5d-87d5-496f-b4da-e556fbcc73ed" TEXT="Galápagos" ABBREVIATEDLABEL="GAL-OO" LABEL="Galápagos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1389" CREATED="2009-01-28 17:07:04.0" UUID="7bddd61f-40f3-4899-8c21-36f35f2c1112" TEXT="Gabon" ABBREVIATEDLABEL="GAB-OO" LABEL="Gabon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1390" CREATED="2009-01-28 17:07:04.0" UUID="401744da-fdd2-4cef-af41-6f48fd132ca8" TEXT="French Guiana" ABBREVIATEDLABEL="FRG-OO" LABEL="French Guiana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1391" CREATED="2009-01-28 17:07:04.0" UUID="a6599956-8139-4bc4-acf5-c81b1e78e365" TEXT="Monaco" ABBREVIATEDLABEL="FRA-MO" LABEL="Monaco" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1392" CREATED="2009-01-28 17:07:04.0" UUID="df17b813-5cf4-4ea5-95b7-9e268bb67b2a" TEXT="France" ABBREVIATEDLABEL="FRA-FR" LABEL="France" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1393" CREATED="2009-01-28 17:07:04.0" UUID="e3f20706-4eb0-4372-a693-aeaec0b4ff18" TEXT="Channel Is." ABBREVIATEDLABEL="FRA-CI" LABEL="Channel Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1394" CREATED="2009-01-28 17:07:04.0" UUID="3bac1e2f-d33b-4b84-ab55-49357fc4814e" TEXT="Føroyar" ABBREVIATEDLABEL="FOR-OO" LABEL="Føroyar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1395" CREATED="2009-01-28 17:07:04.0" UUID="3ce8873f-665c-45c3-8782-b4b68d48e277" TEXT="Florida" ABBREVIATEDLABEL="FLA-OO" LABEL="Florida" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1396" CREATED="2009-01-28 17:07:04.0" UUID="69ca49b4-49ca-4abf-b277-5e161685a2ef" TEXT="Finland" ABBREVIATEDLABEL="FIN-OO" LABEL="Finland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1397" CREATED="2009-01-28 17:07:04.0" UUID="b15bd930-f1dd-469b-9724-dadfd0599578" TEXT="Fiji" ABBREVIATEDLABEL="FIJ-OO" LABEL="Fiji" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1398" CREATED="2009-01-28 17:07:04.0" UUID="07490733-d380-4813-afe6-0b0221a58a68" TEXT="Falkland Is." ABBREVIATEDLABEL="FAL-OO" LABEL="Falkland Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1399" CREATED="2009-01-28 17:07:04.0" UUID="5964e389-8d2f-41e8-a9e7-d567c7c10bd4" TEXT="Ethiopia" ABBREVIATEDLABEL="ETH-OO" LABEL="Ethiopia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1400" CREATED="2009-01-28 17:07:04.0" UUID="ed3f86ab-48a5-41fc-a9d5-c74c9992a5b4" TEXT="Eritrea" ABBREVIATEDLABEL="ERI-OO" LABEL="Eritrea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1401" CREATED="2009-01-28 17:07:04.0" UUID="cd520819-af76-4c29-9914-1a403e8a2830" TEXT="Equatorial Guinea" ABBREVIATEDLABEL="EQG-OO" LABEL="Equatorial Guinea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1402" CREATED="2009-01-28 17:07:04.0" UUID="40bc21a1-485c-49ce-91f2-80718ce625ee" TEXT="El Salvador" ABBREVIATEDLABEL="ELS-OO" LABEL="El Salvador" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1403" CREATED="2009-01-28 17:07:04.0" UUID="7907cdfb-dc24-4f49-928d-fec9dd4c85fd" TEXT="Sikkim" ABBREVIATEDLABEL="EHM-SI" LABEL="Sikkim" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1404" CREATED="2009-01-28 17:07:04.0" UUID="0bfab947-5c46-4f80-822c-521ea3dc67a8" TEXT="Darjiling" ABBREVIATEDLABEL="EHM-DJ" LABEL="Darjiling" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1405" CREATED="2009-01-28 17:07:04.0" UUID="63e16131-36c5-420a-8d7d-6db42590dcbd" TEXT="Bhutan" ABBREVIATEDLABEL="EHM-BH" LABEL="Bhutan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1406" CREATED="2009-01-28 17:07:04.0" UUID="0a377f0f-f6aa-4b98-9cbd-6407a7744216" TEXT="Arunachal Pradesh" ABBREVIATEDLABEL="EHM-AP" LABEL="Arunachal Pradesh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1407" CREATED="2009-01-28 17:07:04.0" UUID="11e58c3a-f0d2-407c-aef4-f83b240bacab" TEXT="Egypt" ABBREVIATEDLABEL="EGY-OO" LABEL="Egypt" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1408" CREATED="2009-01-28 17:07:04.0" UUID="4c32e384-f55d-4a9e-af78-b7ba66b45891" TEXT="Ecuador" ABBREVIATEDLABEL="ECU-OO" LABEL="Ecuador" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1409" CREATED="2009-01-28 17:07:04.0" UUID="bf2df5ac-ff40-472b-a561-55a3259b7803" TEXT="Easter Is." ABBREVIATEDLABEL="EAS-OO" LABEL="Easter Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1410" CREATED="2009-01-28 17:07:04.0" UUID="fcc5935a-2a72-4f46-b601-d4a90d282cae" TEXT="East Aegean Is." ABBREVIATEDLABEL="EAI-OO" LABEL="East Aegean Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1411" CREATED="2009-01-28 17:07:04.0" UUID="e8dca4e0-3834-47e4-a5fd-feb4b71a4a96" TEXT="Desventurados Is." ABBREVIATEDLABEL="DSV-OO" LABEL="Desventurados Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1412" CREATED="2009-01-28 17:07:04.0" UUID="c1acda8f-122a-4ba4-bc97-99c32bf4d3f8" TEXT="Dominican Republic" ABBREVIATEDLABEL="DOM-OO" LABEL="Dominican Republic" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1413" CREATED="2009-01-28 17:07:04.0" UUID="21aaf90a-1e30-4c5d-90a7-8cf055b85656" TEXT="Djibouti" ABBREVIATEDLABEL="DJI-OO" LABEL="Djibouti" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1414" CREATED="2009-01-28 17:07:04.0" UUID="dd1067a0-fa6b-46fb-95b6-5c474eed6987" TEXT="Denmark" ABBREVIATEDLABEL="DEN-OO" LABEL="Denmark" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1415" CREATED="2009-01-28 17:07:04.0" UUID="50527729-3912-4f0c-a5f7-98fa827d2052" TEXT="Delaware" ABBREVIATEDLABEL="DEL-OO" LABEL="Delaware" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1416" CREATED="2009-01-28 17:07:04.0" UUID="16bd13b1-64e9-4de5-8e49-6585b0bd9d66" TEXT="Slovakia" ABBREVIATEDLABEL="CZE-SK" LABEL="Slovakia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1417" CREATED="2009-01-28 17:07:04.0" UUID="d4ecaa19-e0ff-4d2f-a34d-fc7a7252a3ca" TEXT="Czech Republic" ABBREVIATEDLABEL="CZE-CZ" LABEL="Czech Republic" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1418" CREATED="2009-01-28 17:07:04.0" UUID="e31c9dae-df0a-485e-b0bd-6681afa306ad" TEXT="Cyprus" ABBREVIATEDLABEL="CYP-OO" LABEL="Cyprus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1419" CREATED="2009-01-28 17:07:04.0" UUID="60867b96-f310-40c8-af2a-d380579a77bc" TEXT="Cape Verde" ABBREVIATEDLABEL="CVI-OO" LABEL="Cape Verde" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1420" CREATED="2009-01-28 17:07:04.0" UUID="4e9ece67-b2c1-4bbf-a9eb-2851e2434367" TEXT="Cuba" ABBREVIATEDLABEL="CUB-OO" LABEL="Cuba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1421" CREATED="2009-01-28 17:07:04.0" UUID="90a2d9b2-ff0a-404d-bde0-25b305640cee" TEXT="Chatham Is." ABBREVIATEDLABEL="CTM-OO" LABEL="Chatham Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1422" CREATED="2009-01-28 17:07:04.0" UUID="277e9b6e-69b3-4066-80cd-eb9c3db429f1" TEXT="Chita" ABBREVIATEDLABEL="CTA-OO" LABEL="Chita" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1423" CREATED="2009-01-28 17:07:04.0" UUID="ea0d2d17-ccb0-4402-b3d2-495b85cd04ab" TEXT="Crozet Is." ABBREVIATEDLABEL="CRZ-OO" LABEL="Crozet Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1424" CREATED="2009-01-28 17:07:04.0" UUID="a58a7eb2-ec41-4a99-a788-bca3fcaff2ce" TEXT="Palau" ABBREVIATEDLABEL="CRL-PA" LABEL="Palau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1425" CREATED="2009-01-28 17:07:04.0" UUID="472f9524-098d-4a5a-b901-f4d7b6231a77" TEXT="Micronesia Federated States" ABBREVIATEDLABEL="CRL-MF" LABEL="Micronesia Federated States" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1426" CREATED="2009-01-28 17:07:04.0" UUID="7a782ab7-7608-42c8-ae8e-713c693f243e" TEXT="Caprivi Strip" ABBREVIATEDLABEL="CPV-OO" LABEL="Caprivi Strip" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1427" CREATED="2009-01-28 17:07:04.0" UUID="26b75237-2041-4de4-aff3-7d72c65a8a53" TEXT="Western Cape Province" ABBREVIATEDLABEL="CPP-WC" LABEL="Western Cape Province" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1428" CREATED="2009-01-28 17:07:04.0" UUID="b275ce11-63a4-4f7d-845f-83b1dfeb2462" TEXT="Northern Cape Province" ABBREVIATEDLABEL="CPP-NC" LABEL="Northern Cape Province" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1429" CREATED="2009-01-28 17:07:04.0" UUID="09c3f2a2-ab6d-4177-93e6-20c16e2d0b5f" TEXT="Eastern Cape Province" ABBREVIATEDLABEL="CPP-EC" LABEL="Eastern Cape Province" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1430" CREATED="2009-01-28 17:07:04.0" UUID="58a0e339-20ce-4b47-a28a-16b25d8e1814" TEXT="Malpelo I." ABBREVIATEDLABEL="CPI-MA" LABEL="Malpelo I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1431" CREATED="2009-01-28 17:07:04.0" UUID="3966cf12-7d1e-4a23-ab9b-8a212f2600df" TEXT="Cocos I." ABBREVIATEDLABEL="CPI-CO" LABEL="Cocos I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1432" CREATED="2009-01-28 17:07:04.0" UUID="472b671a-d6a0-4684-a466-69aa8bdd5ce7" TEXT="Clipperton I." ABBREVIATEDLABEL="CPI-CL" LABEL="Clipperton I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1433" CREATED="2009-01-28 17:07:04.0" UUID="5e16a30b-1215-4a3f-a81d-13e84473652f" TEXT="Costa Rica" ABBREVIATEDLABEL="COS-OO" LABEL="Costa Rica" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1434" CREATED="2009-01-28 17:07:04.0" UUID="2e15e0a3-02b2-4793-8453-4b194d6e8074" TEXT="Corse" ABBREVIATEDLABEL="COR-OO" LABEL="Corse" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1435" CREATED="2009-01-28 17:07:04.0" UUID="ac015ccc-85ed-413c-b186-195295cdd76f" TEXT="Cook Is." ABBREVIATEDLABEL="COO-OO" LABEL="Cook Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1436" CREATED="2009-01-28 17:07:04.0" UUID="4d8dc34f-9503-4669-b4f6-1e5d6a34f7b7" TEXT="Congo" ABBREVIATEDLABEL="CON-OO" LABEL="Congo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1437" CREATED="2009-01-28 17:07:04.0" UUID="4b781405-f5af-41f7-9246-ea70dcfb5043" TEXT="Mayotte" ABBREVIATEDLABEL="COM-MA" LABEL="Mayotte" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1438" CREATED="2009-01-28 17:07:04.0" UUID="4c04ac1c-4075-417f-a5c9-e5d3ab42fd80" TEXT="Comoros" ABBREVIATEDLABEL="COM-CO" LABEL="Comoros" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1439" CREATED="2009-01-28 17:07:04.0" UUID="8c1fa941-5f46-4f02-aded-1d0ba382609e" TEXT="Colorado" ABBREVIATEDLABEL="COL-OO" LABEL="Colorado" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1440" CREATED="2009-01-28 17:07:04.0" UUID="ef7177fd-f245-48be-82f3-c1cfbbc5705e" TEXT="Canary Is." ABBREVIATEDLABEL="CNY-OO" LABEL="Canary Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1441" CREATED="2009-01-28 17:07:04.0" UUID="d7a3a7b4-ee7f-4eaa-91a2-eca78fcfeacf" TEXT="Connecticut" ABBREVIATEDLABEL="CNT-OO" LABEL="Connecticut" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1442" CREATED="2009-01-28 17:07:04.0" UUID="86970990-a843-481c-b2f0-3ca03d14f559" TEXT="Cameroon" ABBREVIATEDLABEL="CMN-OO" LABEL="Cameroon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1443" CREATED="2009-01-28 17:07:04.0" UUID="3b86981c-5a68-40be-bca1-4246bf1239b6" TEXT="Magellanes" ABBREVIATEDLABEL="CLS-MG" LABEL="Magellanes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1444" CREATED="2009-01-28 17:07:04.0" UUID="1acb784c-9c57-47be-893a-9a8d30f3ceb4" TEXT="Los Lagos" ABBREVIATEDLABEL="CLS-LL" LABEL="Los Lagos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1445" CREATED="2009-01-28 17:07:04.0" UUID="86d4aa93-3f28-4576-b09b-63a1aacc6471" TEXT="Aisén" ABBREVIATEDLABEL="CLS-AI" LABEL="Aisén" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1446" CREATED="2009-01-28 17:07:04.0" UUID="c0d89042-6401-4f78-8639-fd9f10209069" TEXT="Tarapaca" ABBREVIATEDLABEL="CLN-TA" LABEL="Tarapaca" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1447" CREATED="2009-01-28 17:07:04.0" UUID="0f9e3a5e-a109-4a07-b492-bb18facc2ace" TEXT="Atacama" ABBREVIATEDLABEL="CLN-AT" LABEL="Atacama" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1448" CREATED="2009-01-28 17:07:04.0" UUID="64f612cf-37c1-4b3e-a88c-cd01a808b978" TEXT="Antofagasta" ABBREVIATEDLABEL="CLN-AN" LABEL="Antofagasta" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1449" CREATED="2009-01-28 17:07:04.0" UUID="e5f901f1-e9ae-4698-bc60-dd8359a2b9aa" TEXT="Colombia" ABBREVIATEDLABEL="CLM-OO" LABEL="Colombia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1450" CREATED="2009-01-28 17:07:04.0" UUID="070cf6dd-60b7-4d31-9ebd-ec006db7640f" TEXT="Valparaíso" ABBREVIATEDLABEL="CLC-VA" LABEL="Valparaíso" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1451" CREATED="2009-01-28 17:07:04.0" UUID="652dab36-d701-4eea-bb3e-626921777a56" TEXT="Santiago" ABBREVIATEDLABEL="CLC-SA" LABEL="Santiago" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1452" CREATED="2009-01-28 17:07:04.0" UUID="67e8aa6e-9ebb-4cf4-a154-2742d38582a9" TEXT="O&apos;Higgins" ABBREVIATEDLABEL="CLC-OH" LABEL="O&apos;Higgins" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1453" CREATED="2009-01-28 17:07:04.0" UUID="e635e030-2f06-48cc-a98c-217e9ea93251" TEXT="Maule" ABBREVIATEDLABEL="CLC-MA" LABEL="Maule" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1454" CREATED="2009-01-28 17:07:04.0" UUID="574eb0fa-b223-4ca7-b245-4ea38c6d1d51" TEXT="La Araucania" ABBREVIATEDLABEL="CLC-LA" LABEL="La Araucania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1455" CREATED="2009-01-28 17:07:04.0" UUID="1be2456e-55cb-41b4-94d9-a66f11e77fc5" TEXT="Coquimbo" ABBREVIATEDLABEL="CLC-CO" LABEL="Coquimbo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1456" CREATED="2009-01-28 17:07:04.0" UUID="765815f5-128a-4966-b0de-8118b0c88a87" TEXT="Biobío" ABBREVIATEDLABEL="CLC-BI" LABEL="Biobío" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1457" CREATED="2009-01-28 17:07:04.0" UUID="3a382776-82b1-4757-9bfd-ab65cfce6392" TEXT="Cocos (Keeling) Is." ABBREVIATEDLABEL="CKI-OO" LABEL="Cocos (Keeling) Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1458" CREATED="2009-01-28 17:07:04.0" UUID="919598a6-6e53-4bef-8ec3-f36ee8be14a3" TEXT="Xinjiang" ABBREVIATEDLABEL="CHX-OO" LABEL="Xinjiang" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1459" CREATED="2009-01-28 17:07:04.0" UUID="a5fd3125-7174-493c-8c03-c051105952f6" TEXT="Tibet" ABBREVIATEDLABEL="CHT-OO" LABEL="Tibet" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1460" CREATED="2009-01-28 17:07:04.0" UUID="949632d1-67c2-43fa-b9de-00911dff34d2" TEXT="Zhejiang" ABBREVIATEDLABEL="CHS-ZJ" LABEL="Zhejiang" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1461" CREATED="2009-01-28 17:07:04.0" UUID="3b45f91d-170d-4e7f-9aee-e39cbac0bda7" TEXT="Shanghai" ABBREVIATEDLABEL="CHS-SH" LABEL="Shanghai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1462" CREATED="2009-01-28 17:07:04.0" UUID="c50c5bcc-3641-4a2d-b2d5-01d124cfd7d5" TEXT="Ma-tsu-Pai-chúan" ABBREVIATEDLABEL="CHS-MP" LABEL="Ma-tsu-Pai-chúan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1463" CREATED="2009-01-28 17:07:04.0" UUID="35c73981-17b2-4f7d-8299-9b55f5dcc1d7" TEXT="Macau" ABBREVIATEDLABEL="CHS-MA" LABEL="Macau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1464" CREATED="2009-01-28 17:07:04.0" UUID="ff6ca33a-484b-49d1-af50-0aa252e5ca52" TEXT="Kin-Men" ABBREVIATEDLABEL="CHS-KI" LABEL="Kin-Men" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1465" CREATED="2009-01-28 17:07:04.0" UUID="871514df-7599-4aa3-9eae-1d4c93eeb1b5" TEXT="Jiangxi" ABBREVIATEDLABEL="CHS-JX" LABEL="Jiangxi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1466" CREATED="2009-01-28 17:07:04.0" UUID="07c5190e-b482-42cd-ae06-4b75adb0be9d" TEXT="Jiangsu" ABBREVIATEDLABEL="CHS-JS" LABEL="Jiangsu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1467" CREATED="2009-01-28 17:07:04.0" UUID="7712905c-4107-4936-8c23-a4973e71e15a" TEXT="Hunan" ABBREVIATEDLABEL="CHS-HN" LABEL="Hunan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1468" CREATED="2009-01-28 17:07:04.0" UUID="d9a7e656-729a-4c40-8d97-e027c41d0e2a" TEXT="Hong Kong" ABBREVIATEDLABEL="CHS-HK" LABEL="Hong Kong" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1469" CREATED="2009-01-28 17:07:04.0" UUID="08aeafeb-9499-412a-8863-f2b70f111f1f" TEXT="Henan" ABBREVIATEDLABEL="CHS-HE" LABEL="Henan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1470" CREATED="2009-01-28 17:07:04.0" UUID="4fe75b31-9979-4847-9188-910d15f47357" TEXT="Guangxi" ABBREVIATEDLABEL="CHS-GX" LABEL="Guangxi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1471" CREATED="2009-01-28 17:07:04.0" UUID="3f22c64e-930c-4f81-bb39-2ad2087e1af7" TEXT="Guangdong" ABBREVIATEDLABEL="CHS-GD" LABEL="Guangdong" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1472" CREATED="2009-01-28 17:07:04.0" UUID="e60c935a-b315-4bff-ba27-9e95f0d62932" TEXT="Fujian" ABBREVIATEDLABEL="CHS-FJ" LABEL="Fujian" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1473" CREATED="2009-01-28 17:07:04.0" UUID="7d0513ac-4c27-4a7b-885a-a1a1edfb8724" TEXT="Anhui" ABBREVIATEDLABEL="CHS-AH" LABEL="Anhui" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1474" CREATED="2009-01-28 17:07:04.0" UUID="574dda06-a48b-410b-b368-a9db0ab447db" TEXT="Qinghai" ABBREVIATEDLABEL="CHQ-OO" LABEL="Qinghai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1475" CREATED="2009-01-28 17:07:04.0" UUID="21a0b0e4-1e86-4be4-9e41-6d914909bc2b" TEXT="Tianjin" ABBREVIATEDLABEL="CHN-TJ" LABEL="Tianjin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1476" CREATED="2009-01-28 17:07:04.0" UUID="7c0567e3-ffe2-4c3d-9554-e03ec7eeaca2" TEXT="Shanxi" ABBREVIATEDLABEL="CHN-SX" LABEL="Shanxi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1477" CREATED="2009-01-28 17:07:04.0" UUID="09898f09-810f-475d-8908-e6f4491e0497" TEXT="Shandong" ABBREVIATEDLABEL="CHN-SD" LABEL="Shandong" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1478" CREATED="2009-01-28 17:07:04.0" UUID="45b616e1-cc3b-402b-8ea5-4064a5f2b85a" TEXT="Shaanxi" ABBREVIATEDLABEL="CHN-SA" LABEL="Shaanxi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1479" CREATED="2009-01-28 17:07:04.0" UUID="bc7e06ed-eabd-493e-9a90-cde109c68c9e" TEXT="Hebei" ABBREVIATEDLABEL="CHN-HB" LABEL="Hebei" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1480" CREATED="2009-01-28 17:07:04.0" UUID="2518a128-e6b2-4361-bd83-f92e731324bd" TEXT="Gansu" ABBREVIATEDLABEL="CHN-GS" LABEL="Gansu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1481" CREATED="2009-01-28 17:07:04.0" UUID="09c6aa7a-71dd-4550-bad6-712e850ad8ba" TEXT="Beijing" ABBREVIATEDLABEL="CHN-BJ" LABEL="Beijing" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1482" CREATED="2009-01-28 17:07:04.0" UUID="3adaa10d-f9b5-49e0-bec7-295cfe36cc27" TEXT="Liaoning" ABBREVIATEDLABEL="CHM-LN" LABEL="Liaoning" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1483" CREATED="2009-01-28 17:07:04.0" UUID="f6141c33-506e-47e5-93ca-ed50c473e557" TEXT="Jilin" ABBREVIATEDLABEL="CHM-JL" LABEL="Jilin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1484" CREATED="2009-01-28 17:07:04.0" UUID="ddfbd97e-d8c6-43ba-8677-7fe3af4dd69b" TEXT="Heilongjiang" ABBREVIATEDLABEL="CHM-HJ" LABEL="Heilongjiang" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1485" CREATED="2009-01-28 17:07:04.0" UUID="47232a62-166a-453d-98ca-574ad765388f" TEXT="Ningxia" ABBREVIATEDLABEL="CHI-NX" LABEL="Ningxia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1486" CREATED="2009-01-28 17:07:04.0" UUID="306120aa-aa30-4d68-a119-7ef5bbc4367c" TEXT="Nei Mongol" ABBREVIATEDLABEL="CHI-NM" LABEL="Nei Mongol" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1487" CREATED="2009-01-28 17:07:04.0" UUID="1ec0a39f-5f95-43a1-baa0-e1431d942a44" TEXT="Hainan" ABBREVIATEDLABEL="CHH-OO" LABEL="Hainan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1488" CREATED="2009-01-28 17:07:04.0" UUID="3ce1eba0-56f7-466b-9503-a7baaf7271a4" TEXT="Yunnan" ABBREVIATEDLABEL="CHC-YN" LABEL="Yunnan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1489" CREATED="2009-01-28 17:07:04.0" UUID="a74c92e8-a6ac-4b5a-aa93-7bc17349565e" TEXT="Sichuan" ABBREVIATEDLABEL="CHC-SC" LABEL="Sichuan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1490" CREATED="2009-01-28 17:07:04.0" UUID="7dc8c5e2-6e62-4663-b43d-7725bc5b83ba" TEXT="Hubei" ABBREVIATEDLABEL="CHC-HU" LABEL="Hubei" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1491" CREATED="2009-01-28 17:07:04.0" UUID="eec620cf-cc51-40cc-bf80-3e97fb3ccee2" TEXT="Guizhou" ABBREVIATEDLABEL="CHC-GZ" LABEL="Guizhou" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1492" CREATED="2009-01-28 17:07:04.0" UUID="3408ec7b-1e36-4427-9d89-25b44947e1a1" TEXT="Chongqing" ABBREVIATEDLABEL="CHC-CQ" LABEL="Chongqing" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1493" CREATED="2009-01-28 17:07:04.0" UUID="efe603ba-cd1b-453b-808a-33051eda9c6a" TEXT="Chad" ABBREVIATEDLABEL="CHA-OO" LABEL="Chad" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1494" CREATED="2009-01-28 17:07:04.0" UUID="f46e2187-7ae2-4833-ba6f-25cbbc61def4" TEXT="Chagos Archipelago" ABBREVIATEDLABEL="CGS-OO" LABEL="Chagos Archipelago" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1495" CREATED="2009-01-28 17:07:04.0" UUID="a3a5bbb8-2194-4935-b759-c83cfcea4bae" TEXT="Cambodia" ABBREVIATEDLABEL="CBD-OO" LABEL="Cambodia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1496" CREATED="2009-01-28 17:07:04.0" UUID="aba21647-4c33-4199-84a1-f32ea107761d" TEXT="Cayman Is." ABBREVIATEDLABEL="CAY-OO" LABEL="Cayman Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1497" CREATED="2009-01-28 17:07:04.0" UUID="9cdb7811-48bd-4352-af7b-8f4c7223d759" TEXT="California" ABBREVIATEDLABEL="CAL-OO" LABEL="California" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1498" CREATED="2009-01-28 17:07:04.0" UUID="237523fb-4239-4518-a6fc-859f13f32734" TEXT="Central African Republic" ABBREVIATEDLABEL="CAF-OO" LABEL="Central African Republic" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1499" CREATED="2009-01-28 17:07:04.0" UUID="d2d218c2-9376-467c-b9d6-efff726178c3" TEXT="Cabinda" ABBREVIATEDLABEL="CAB-OO" LABEL="Cabinda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1500" CREATED="2009-01-28 17:07:04.0" UUID="05371604-d8b5-4503-a3dc-263d958bbffd" TEXT="Santa Catarina" ABBREVIATEDLABEL="BZS-SC" LABEL="Santa Catarina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1501" CREATED="2009-01-28 17:07:04.0" UUID="eb6e5600-a4ae-4916-8e50-20bb8cc73a11" TEXT="Rio Grande do Sul" ABBREVIATEDLABEL="BZS-RS" LABEL="Rio Grande do Sul" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1502" CREATED="2009-01-28 17:07:04.0" UUID="30cb515b-8fdf-4a3d-94a3-3406f6a97124" TEXT="Paraná" ABBREVIATEDLABEL="BZS-PR" LABEL="Paraná" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1503" CREATED="2009-01-28 17:07:04.0" UUID="f6ff93bf-4c26-4a54-a78e-45c675942586" TEXT="Tocantins" ABBREVIATEDLABEL="BZN-TO" LABEL="Tocantins" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1504" CREATED="2009-01-28 17:07:04.0" UUID="bf8d5b05-0b1a-48e8-af74-87d6a26e86a9" TEXT="Rondônia" ABBREVIATEDLABEL="BZN-RO" LABEL="Rondônia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1505" CREATED="2009-01-28 17:07:04.0" UUID="3c40815c-c3d3-430a-98d0-55c4cb3bb2f9" TEXT="Roraima" ABBREVIATEDLABEL="BZN-RM" LABEL="Roraima" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1506" CREATED="2009-01-28 17:07:04.0" UUID="29746ef1-d963-4ecd-ac51-2075a397e996" TEXT="Pará" ABBREVIATEDLABEL="BZN-PA" LABEL="Pará" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1507" CREATED="2009-01-28 17:07:04.0" UUID="2fe81783-d380-4403-8592-f7c27c85b70c" TEXT="Amapá" ABBREVIATEDLABEL="BZN-AP" LABEL="Amapá" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1508" CREATED="2009-01-28 17:07:04.0" UUID="e8d4027f-d428-4b89-a773-564e8e40f8ab" TEXT="Amazonas" ABBREVIATEDLABEL="BZN-AM" LABEL="Amazonas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1509" CREATED="2009-01-28 17:07:04.0" UUID="2b3cf5a6-6748-468e-9beb-6565d825ff58" TEXT="Acre" ABBREVIATEDLABEL="BZN-AC" LABEL="Acre" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1510" CREATED="2009-01-28 17:07:04.0" UUID="c8dd4bf4-9be2-4b94-aeb9-feace8bff75a" TEXT="Trindade" ABBREVIATEDLABEL="BZL-TR" LABEL="Trindade" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1511" CREATED="2009-01-28 17:07:04.0" UUID="5e160a13-863a-4d3c-8777-8f4abc95c484" TEXT="São Paulo" ABBREVIATEDLABEL="BZL-SP" LABEL="São Paulo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1512" CREATED="2009-01-28 17:07:04.0" UUID="44bfdd07-fb01-4563-aadb-3703901129b2" TEXT="Rio de Janeiro" ABBREVIATEDLABEL="BZL-RJ" LABEL="Rio de Janeiro" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1513" CREATED="2009-01-28 17:07:04.0" UUID="6ff32022-d42e-4278-8a60-2cd131514ca8" TEXT="Minas Gerais" ABBREVIATEDLABEL="BZL-MG" LABEL="Minas Gerais" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1514" CREATED="2009-01-28 17:07:04.0" UUID="24bd9f18-5f3c-4393-a3ce-ae38b565206f" TEXT="Espirito Santo" ABBREVIATEDLABEL="BZL-ES" LABEL="Espirito Santo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1515" CREATED="2009-01-28 17:07:04.0" UUID="51a121ca-f90a-4512-a939-c553d48b185f" TEXT="Sergipe" ABBREVIATEDLABEL="BZE-SE" LABEL="Sergipe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1516" CREATED="2009-01-28 17:07:04.0" UUID="cae814b0-e8bb-4395-ad4d-3efdb33a7da9" TEXT="Rio Grande do Norte" ABBREVIATEDLABEL="BZE-RN" LABEL="Rio Grande do Norte" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1517" CREATED="2009-01-28 17:07:04.0" UUID="9d530ccb-4e97-4b63-9b72-09b9838f889d" TEXT="Piauí" ABBREVIATEDLABEL="BZE-PI" LABEL="Piauí" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1518" CREATED="2009-01-28 17:07:04.0" UUID="f4ff7d02-1172-4ef2-9c4d-adf8e686a01c" TEXT="Pernambuco" ABBREVIATEDLABEL="BZE-PE" LABEL="Pernambuco" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1519" CREATED="2009-01-28 17:07:04.0" UUID="ba07e77a-69f5-4b50-82f3-391505c84afb" TEXT="Paraíba" ABBREVIATEDLABEL="BZE-PB" LABEL="Paraíba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1520" CREATED="2009-01-28 17:07:04.0" UUID="d4c69ec5-3cbb-4d11-9142-2d6337a36b9c" TEXT="Maranhao" ABBREVIATEDLABEL="BZE-MA" LABEL="Maranhao" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1521" CREATED="2009-01-28 17:07:04.0" UUID="21c80fed-a304-41bd-8e04-27700b0828f6" TEXT="Fernando de Noronha" ABBREVIATEDLABEL="BZE-FN" LABEL="Fernando de Noronha" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1522" CREATED="2009-01-28 17:07:04.0" UUID="fef50108-30e5-49cd-bee6-251fcb35c03f" TEXT="Ceará" ABBREVIATEDLABEL="BZE-CE" LABEL="Ceará" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1523" CREATED="2009-01-28 17:07:04.0" UUID="8af0bdc2-33eb-44e3-88ed-239da7b198e5" TEXT="Bahia" ABBREVIATEDLABEL="BZE-BA" LABEL="Bahia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1524" CREATED="2009-01-28 17:07:04.0" UUID="84e2e9c4-5454-4559-831e-ce0410a439ec" TEXT="Alagoas" ABBREVIATEDLABEL="BZE-AL" LABEL="Alagoas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1525" CREATED="2009-01-28 17:07:04.0" UUID="23e2cc89-8ef1-4202-8877-9dd2a6590487" TEXT="Mato Grosso" ABBREVIATEDLABEL="BZC-MT" LABEL="Mato Grosso" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1526" CREATED="2009-01-28 17:07:04.0" UUID="8324030a-8bd7-4f5c-82c2-ab50fa4cdffc" TEXT="Mato Grosso do Sul" ABBREVIATEDLABEL="BZC-MS" LABEL="Mato Grosso do Sul" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1527" CREATED="2009-01-28 17:07:04.0" UUID="1fe7b28a-dbeb-4c96-96d2-75c285b593fb" TEXT="Goiás" ABBREVIATEDLABEL="BZC-GO" LABEL="Goiás" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1528" CREATED="2009-01-28 17:07:04.0" UUID="a979d4ba-fccb-46be-b996-9d36f4559a47" TEXT="Brazilia Distrito Federal" ABBREVIATEDLABEL="BZC-DF" LABEL="Brazilia Distrito Federal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1529" CREATED="2009-01-28 17:07:04.0" UUID="347d067a-0b73-4a08-beeb-36fcd4c11768" TEXT="Burundi" ABBREVIATEDLABEL="BUR-OO" LABEL="Burundi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1530" CREATED="2009-01-28 17:07:04.0" UUID="9cb2f763-338c-4374-b3a9-fe23bff48cca" TEXT="Bulgaria" ABBREVIATEDLABEL="BUL-OO" LABEL="Bulgaria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1531" CREATED="2009-01-28 17:07:04.0" UUID="8af1ce1c-7614-4b63-8399-7683b7719d4a" TEXT="Buryatiya" ABBREVIATEDLABEL="BRY-OO" LABEL="Buryatiya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1532" CREATED="2009-01-28 17:07:04.0" UUID="053ce190-9583-4caf-9633-748d7fed84e0" TEXT="British Columbia" ABBREVIATEDLABEL="BRC-OO" LABEL="British Columbia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1533" CREATED="2009-01-28 17:07:04.0" UUID="af5cb62e-049e-493e-ad2e-8301326ec86e" TEXT="Bouvet I." ABBREVIATEDLABEL="BOU-OO" LABEL="Bouvet I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1534" CREATED="2009-01-28 17:07:04.0" UUID="0fd0badb-ef12-4dd7-8e84-7af68641a163" TEXT="Botswana" ABBREVIATEDLABEL="BOT-OO" LABEL="Botswana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1535" CREATED="2009-01-28 17:07:04.0" UUID="f1f9e2aa-d18c-4e16-8b20-eeb8b23bc6a4" TEXT="Sarawak" ABBREVIATEDLABEL="BOR-SR" LABEL="Sarawak" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1536" CREATED="2009-01-28 17:07:04.0" UUID="0e5a4e49-7c07-4564-af80-a38d3a42a25c" TEXT="Sabah" ABBREVIATEDLABEL="BOR-SB" LABEL="Sabah" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1537" CREATED="2009-01-28 17:07:04.0" UUID="79404955-22b4-46a4-9d2a-b1c276ddb790" TEXT="Kalimantan" ABBREVIATEDLABEL="BOR-KA" LABEL="Kalimantan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1538" CREATED="2009-01-28 17:07:04.0" UUID="e44b042d-bcf1-457a-93e2-b29a18d6eedd" TEXT="Brunei" ABBREVIATEDLABEL="BOR-BR" LABEL="Brunei" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1539" CREATED="2009-01-28 17:07:04.0" UUID="75429bc3-6954-4c97-9c6b-4c64a02e9a56" TEXT="Bolivia" ABBREVIATEDLABEL="BOL-OO" LABEL="Bolivia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1540" CREATED="2009-01-28 17:07:04.0" UUID="a112bcae-3aa7-41fe-aa23-2d6dbb3455f1" TEXT="Belize" ABBREVIATEDLABEL="BLZ-OO" LABEL="Belize" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1541" CREATED="2009-01-28 17:07:04.0" UUID="9f0d544a-6ef6-4641-817c-e7517ca50e04" TEXT="Lithuania" ABBREVIATEDLABEL="BLT-LI" LABEL="Lithuania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1542" CREATED="2009-01-28 17:07:04.0" UUID="42fdde87-ff84-4bee-9194-73f84e315fcf" TEXT="Latvia" ABBREVIATEDLABEL="BLT-LA" LABEL="Latvia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1543" CREATED="2009-01-28 17:07:04.0" UUID="4ca247e2-121d-4954-b9c0-7c6d8c578361" TEXT="Kaliningrad" ABBREVIATEDLABEL="BLT-KA" LABEL="Kaliningrad" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1544" CREATED="2009-01-28 17:07:04.0" UUID="0e7f253e-ae9c-465d-b014-7e7e5ddbd184" TEXT="Estonia" ABBREVIATEDLABEL="BLT-ES" LABEL="Estonia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1545" CREATED="2009-01-28 17:07:04.0" UUID="3b0d7d37-eb19-4bba-bf66-2088969ff690" TEXT="Belarus" ABBREVIATEDLABEL="BLR-OO" LABEL="Belarus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1546" CREATED="2009-01-28 17:07:04.0" UUID="a342409d-fc26-4759-9977-ede3717f1dcd" TEXT="Burkina" ABBREVIATEDLABEL="BKN-OO" LABEL="Burkina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1547" CREATED="2009-01-28 17:07:04.0" UUID="983f433e-7a44-45ed-b3c6-7d34cce2cae5" TEXT="Bismarck Archipelago" ABBREVIATEDLABEL="BIS-OO" LABEL="Bismarck Archipelago" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1548" CREATED="2009-01-28 17:07:04.0" UUID="40cd1d33-651b-41ae-8b71-877fd67cddd9" TEXT="Luxembourg" ABBREVIATEDLABEL="BGM-LU" LABEL="Luxembourg" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1549" CREATED="2009-01-28 17:07:04.0" UUID="da1b4bb9-8903-404f-ac07-cab80e26fc1f" TEXT="Belgium" ABBREVIATEDLABEL="BGM-BE" LABEL="Belgium" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1550" CREATED="2009-01-28 17:07:04.0" UUID="737732ee-efd1-4829-ac06-82aa03d0a9cb" TEXT="Bermuda" ABBREVIATEDLABEL="BER-OO" LABEL="Bermuda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1551" CREATED="2009-01-28 17:07:04.0" UUID="06f04b32-48b4-4ff9-b8a5-0e84e15d1ffa" TEXT="Benin" ABBREVIATEDLABEL="BEN-OO" LABEL="Benin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1552" CREATED="2009-01-28 17:07:04.0" UUID="da02f8f4-baf1-4b73-a3e5-665eed20ad44" TEXT="Bangladesh" ABBREVIATEDLABEL="BAN-OO" LABEL="Bangladesh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1553" CREATED="2009-01-28 17:07:04.0" UUID="7060b6cb-32ff-460f-90a8-57afefbcaa79" TEXT="Baleares" ABBREVIATEDLABEL="BAL-OO" LABEL="Baleares" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1554" CREATED="2009-01-28 17:07:04.0" UUID="1da72ce3-28b9-4b37-be03-afc87e0f7a79" TEXT="Bahamas" ABBREVIATEDLABEL="BAH-OO" LABEL="Bahamas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1555" CREATED="2009-01-28 17:07:04.0" UUID="169f1940-53ea-4707-97af-716f774e120a" TEXT="Açôres" ABBREVIATEDLABEL="AZO-OO" LABEL="Açôres" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1556" CREATED="2009-01-28 17:07:04.0" UUID="1b90aa77-9b3d-497e-8260-4a30681c68bf" TEXT="Liechtenstein" ABBREVIATEDLABEL="AUT-LI" LABEL="Liechtenstein" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1557" CREATED="2009-01-28 17:07:04.0" UUID="9ddf7d32-c93e-4085-a591-d132afcdbe69" TEXT="Austria" ABBREVIATEDLABEL="AUT-AU" LABEL="Austria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1558" CREATED="2009-01-28 17:07:04.0" UUID="d6fe0ea8-da22-4742-b6c6-91f042516be5" TEXT="Antipodean Is." ABBREVIATEDLABEL="ATP-OO" LABEL="Antipodean Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1559" CREATED="2009-01-28 17:07:04.0" UUID="3921fe32-3221-49d8-bb8a-15a7aa050418" TEXT="Tripura" ABBREVIATEDLABEL="ASS-TR" LABEL="Tripura" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1560" CREATED="2009-01-28 17:07:04.0" UUID="ff3f94ac-a933-45f5-b783-e376ea3f0e85" TEXT="Nagaland" ABBREVIATEDLABEL="ASS-NA" LABEL="Nagaland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1561" CREATED="2009-01-28 17:07:04.0" UUID="cc57344f-62d1-44b9-b4a7-434f65d5d6db" TEXT="Mizoram" ABBREVIATEDLABEL="ASS-MI" LABEL="Mizoram" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1562" CREATED="2009-01-28 17:07:04.0" UUID="024beeb7-1c85-4716-a72a-3243ac496370" TEXT="Meghalaya" ABBREVIATEDLABEL="ASS-ME" LABEL="Meghalaya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1563" CREATED="2009-01-28 17:07:04.0" UUID="f7b784ff-8fd5-42cb-b8a5-9fc2992854d3" TEXT="Manipur" ABBREVIATEDLABEL="ASS-MA" LABEL="Manipur" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1564" CREATED="2009-01-28 17:07:04.0" UUID="a85e049e-a71c-4d8f-97f9-6b892355da21" TEXT="Assam" ABBREVIATEDLABEL="ASS-AS" LABEL="Assam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1565" CREATED="2009-01-28 17:07:04.0" UUID="d69c87d2-625f-4151-8f52-3886d044bbdf" TEXT="Amsterdam-St.Paul Is." ABBREVIATEDLABEL="ASP-OO" LABEL="Amsterdam-St.Paul Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1566" CREATED="2009-01-28 17:07:04.0" UUID="9c172760-a304-4255-a71e-403c18dc59d9" TEXT="Alaska" ABBREVIATEDLABEL="ASK-OO" LABEL="Alaska" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1567" CREATED="2009-01-28 17:07:04.0" UUID="67eca822-6eff-4473-90cf-fc1136de9e7e" TEXT="Ascension" ABBREVIATEDLABEL="ASC-OO" LABEL="Ascension" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1568" CREATED="2009-01-28 17:07:04.0" UUID="c1ed36a3-40b9-4609-828d-8ded66a46f1c" TEXT="Aruba" ABBREVIATEDLABEL="ARU-OO" LABEL="Aruba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1569" CREATED="2009-01-28 17:07:04.0" UUID="3d556ee4-a92b-4940-bff7-db8c94d0828b" TEXT="Arkansas" ABBREVIATEDLABEL="ARK-OO" LABEL="Arkansas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1570" CREATED="2009-01-28 17:07:04.0" UUID="2177ac69-e27d-483c-bcf6-975d0de5c793" TEXT="Arizona" ABBREVIATEDLABEL="ARI-OO" LABEL="Arizona" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1571" CREATED="2009-01-28 17:07:04.0" UUID="7cdd010a-0829-4479-8f51-364ba1b9b2e5" TEXT="Antarctica" ABBREVIATEDLABEL="ANT-OO" LABEL="Antarctica" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1572" CREATED="2009-01-28 17:07:04.0" UUID="c4e1c1ae-100e-417f-8d5e-9eaf11819e50" TEXT="Angola" ABBREVIATEDLABEL="ANG-OO" LABEL="Angola" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1573" CREATED="2009-01-28 17:07:04.0" UUID="f78e78db-8318-434d-bb33-15da56f1c182" TEXT="Coco Is." ABBREVIATEDLABEL="AND-CO" LABEL="Coco Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1574" CREATED="2009-01-28 17:07:04.0" UUID="0fcaa114-a550-4e5f-ac47-423c9b9756d0" TEXT="Andaman Is." ABBREVIATEDLABEL="AND-AN" LABEL="Andaman Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1575" CREATED="2009-01-28 17:07:04.0" UUID="426e9136-c613-44d9-8912-22862e7bd9f5" TEXT="Amur" ABBREVIATEDLABEL="AMU-OO" LABEL="Amur" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1576" CREATED="2009-01-28 17:07:04.0" UUID="d4e1aa3a-aafb-47d2-8405-11ad83f51a11" TEXT="Aleutian Is." ABBREVIATEDLABEL="ALU-OO" LABEL="Aleutian Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1577" CREATED="2009-01-28 17:07:04.0" UUID="02994f78-f105-4c41-9a15-2cf9746ecbc1" TEXT="Altay" ABBREVIATEDLABEL="ALT-OO" LABEL="Altay" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1578" CREATED="2009-01-28 17:07:04.0" UUID="b3123b52-e1eb-4332-8c8c-2565db5ae0c9" TEXT="Algeria" ABBREVIATEDLABEL="ALG-OO" LABEL="Algeria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1579" CREATED="2009-01-28 17:07:04.0" UUID="b191f711-984c-49d1-a09c-104c24e33be4" TEXT="Aldabra" ABBREVIATEDLABEL="ALD-OO" LABEL="Aldabra" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1580" CREATED="2009-01-28 17:07:04.0" UUID="727e3ca3-8319-4523-bb6b-99dae607d02c" TEXT="Albania" ABBREVIATEDLABEL="ALB-OO" LABEL="Albania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1581" CREATED="2009-01-28 17:07:04.0" UUID="9421a5f3-bfae-47c3-9776-28e11de2f4e6" TEXT="Alabama" ABBREVIATEDLABEL="ALA-OO" LABEL="Alabama" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1582" CREATED="2009-01-28 17:07:04.0" UUID="32af92e1-3a6b-45e3-b682-ebbc4e3f2acf" TEXT="Tucuman" ABBREVIATEDLABEL="AGW-TU" LABEL="Tucuman" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1583" CREATED="2009-01-28 17:07:04.0" UUID="1b9ef45a-f01c-40f3-b733-d194f1fd138b" TEXT="San Luis" ABBREVIATEDLABEL="AGW-SL" LABEL="San Luis" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1584" CREATED="2009-01-28 17:07:04.0" UUID="00a88205-e7c1-40e0-b908-70f23038fc53" TEXT="San Juan" ABBREVIATEDLABEL="AGW-SJ" LABEL="San Juan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1585" CREATED="2009-01-28 17:07:04.0" UUID="001cf819-93fa-4671-9f3a-10a590a604ef" TEXT="Santiago del Estero" ABBREVIATEDLABEL="AGW-SE" LABEL="Santiago del Estero" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1586" CREATED="2009-01-28 17:07:04.0" UUID="d678cc0d-a411-4c70-a8a2-3ae42902c16b" TEXT="Salta" ABBREVIATEDLABEL="AGW-SA" LABEL="Salta" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1587" CREATED="2009-01-28 17:07:04.0" UUID="0addda3d-7c81-4886-b92f-1bf465e548ff" TEXT="Mendoza" ABBREVIATEDLABEL="AGW-ME" LABEL="Mendoza" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1588" CREATED="2009-01-28 17:07:04.0" UUID="962c2e22-5f41-4a11-96f0-cb8c8d5030fc" TEXT="La Rioja" ABBREVIATEDLABEL="AGW-LR" LABEL="La Rioja" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1589" CREATED="2009-01-28 17:07:04.0" UUID="960278f4-2776-479e-8ade-b60edf7a1a58" TEXT="Jujuy" ABBREVIATEDLABEL="AGW-JU" LABEL="Jujuy" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1590" CREATED="2009-01-28 17:07:04.0" UUID="07f407e8-566b-456b-bff6-206d72fe10bd" TEXT="Catamarca" ABBREVIATEDLABEL="AGW-CA" LABEL="Catamarca" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1591" CREATED="2009-01-28 17:07:04.0" UUID="e5264271-13f5-4e12-b04a-e0ce5f506aa0" TEXT="Tierra del Fuego (Argentina)" ABBREVIATEDLABEL="AGS-TF" LABEL="Tierra del Fuego (Argentina)" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1592" CREATED="2009-01-28 17:07:04.0" UUID="ff44c5dd-8ac3-4be3-8cf9-8cb4add52a9b" TEXT="Santa Fé" ABBREVIATEDLABEL="AGS-SF" LABEL="Santa Fé" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1593" CREATED="2009-01-28 17:07:04.0" UUID="39d1a8a4-d44e-45c8-b1ab-3f67d47f9a2c" TEXT="Santa Cruz" ABBREVIATEDLABEL="AGS-SC" LABEL="Santa Cruz" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1594" CREATED="2009-01-28 17:07:04.0" UUID="92476bb7-9372-44c1-a0d5-a1dcb20224b8" TEXT="Rio Negro" ABBREVIATEDLABEL="AGS-RN" LABEL="Rio Negro" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1595" CREATED="2009-01-28 17:07:04.0" UUID="03de2504-e6c2-426f-b073-555de64c7a37" TEXT="Neuquén" ABBREVIATEDLABEL="AGS-NE" LABEL="Neuquén" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1596" CREATED="2009-01-28 17:07:04.0" UUID="f579e00b-0fa3-4b36-a517-13a2daeda4d2" TEXT="Chubut" ABBREVIATEDLABEL="AGS-CB" LABEL="Chubut" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1597" CREATED="2009-01-28 17:07:04.0" UUID="2426c7ad-a5c9-4efb-b88b-49f81082b880" TEXT="Misiones" ABBREVIATEDLABEL="AGE-MI" LABEL="Misiones" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1598" CREATED="2009-01-28 17:07:04.0" UUID="df1e5b3f-1521-474c-9609-c3eaf7f48dfa" TEXT="La Pampa" ABBREVIATEDLABEL="AGE-LP" LABEL="La Pampa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1599" CREATED="2009-01-28 17:07:04.0" UUID="ed22aace-0af8-4863-8b77-ff71b5aa998c" TEXT="Formosa" ABBREVIATEDLABEL="AGE-FO" LABEL="Formosa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1600" CREATED="2009-01-28 17:07:04.0" UUID="d97f9022-c0ee-455a-9f7b-1b99b76673b1" TEXT="Entre Ríos" ABBREVIATEDLABEL="AGE-ER" LABEL="Entre Ríos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1601" CREATED="2009-01-28 17:07:04.0" UUID="12ddb8e3-b1bc-449b-bcb7-25b901d672ab" TEXT="Argentina Distrito Federal" ABBREVIATEDLABEL="AGE-DF" LABEL="Argentina Distrito Federal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1602" CREATED="2009-01-28 17:07:04.0" UUID="ebbd557b-7d3d-403f-84e6-d9d705a902de" TEXT="Córdoba" ABBREVIATEDLABEL="AGE-CO" LABEL="Córdoba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1603" CREATED="2009-01-28 17:07:04.0" UUID="c4b2805e-2a0c-4ca5-83d2-266dc8958aa1" TEXT="Corrientes" ABBREVIATEDLABEL="AGE-CN" LABEL="Corrientes" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1604" CREATED="2009-01-28 17:07:04.0" UUID="fc1fec46-db17-4ce1-9782-5e59c163d41a" TEXT="Chaco" ABBREVIATEDLABEL="AGE-CH" LABEL="Chaco" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1605" CREATED="2009-01-28 17:07:04.0" UUID="382ad85d-df8d-487a-9def-fdaec1294b69" TEXT="Buenos Aires" ABBREVIATEDLABEL="AGE-BA" LABEL="Buenos Aires" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1606" CREATED="2009-01-28 17:07:04.0" UUID="f405416d-8396-4dc5-9e98-786d221fcad9" TEXT="Afghanistan" ABBREVIATEDLABEL="AFG-OO" LABEL="Afghanistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1607" CREATED="2009-01-28 17:07:04.0" UUID="4e7fbb5e-4fa5-4a6f-81ee-3e28da2ca0f6" TEXT="Alberta" ABBREVIATEDLABEL="ABT-OO" LABEL="Alberta" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1608" CREATED="2009-01-28 17:07:04.0" UUID="04b127e3-c30f-42f5-a4f5-8ddeb80bcec7" TEXT="Zimbabwe" ABBREVIATEDLABEL="ZIM" LABEL="Zimbabwe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1609" CREATED="2009-01-28 17:07:04.0" UUID="7956b534-4584-4d11-8bab-462e88b62360" TEXT="Zambia" ABBREVIATEDLABEL="ZAM" LABEL="Zambia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1610" CREATED="2009-01-28 17:07:04.0" UUID="a9c2d7c4-a2dc-4335-8111-90534822fd10" TEXT="Zaire" ABBREVIATEDLABEL="ZAI" LABEL="Zaire" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1611" CREATED="2009-01-28 17:07:04.0" UUID="cf79fa82-d058-43be-9f82-d3a917cced1a" TEXT="Yukon" ABBREVIATEDLABEL="YUK" LABEL="Yukon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1612" CREATED="2009-01-28 17:07:04.0" UUID="372ac4f5-3b7c-4bb6-829e-01fcfdffc16b" TEXT="Yugoslavia" ABBREVIATEDLABEL="YUG" LABEL="Yugoslavia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1613" CREATED="2009-01-28 17:07:04.0" UUID="201865cd-b705-4e6c-96a0-bce3f291cc2b" TEXT="Yemen" ABBREVIATEDLABEL="YEM" LABEL="Yemen" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1614" CREATED="2009-01-28 17:07:04.0" UUID="39a8e99b-3c07-4689-b0c4-6cb64b5f35eb" TEXT="Yakutskiya" ABBREVIATEDLABEL="YAK" LABEL="Yakutskiya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1615" CREATED="2009-01-28 17:07:04.0" UUID="f66a7a5b-258f-4e6b-9994-df6f37aa5f21" TEXT="Christmas I." ABBREVIATEDLABEL="XMS" LABEL="Christmas I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1616" CREATED="2009-01-28 17:07:04.0" UUID="2d33f5a6-bd8f-4f87-8345-f17e07a81a97" TEXT="Wyoming" ABBREVIATEDLABEL="WYO" LABEL="Wyoming" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1617" CREATED="2009-01-28 17:07:04.0" UUID="5511e63f-02ce-4e36-9b45-1ac4a02aacba" TEXT="West Virginia" ABBREVIATEDLABEL="WVA" LABEL="West Virginia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1618" CREATED="2009-01-28 17:07:04.0" UUID="26ae1d01-8cdf-4e38-a00e-d7a2071e6ae0" TEXT="West Siberia" ABBREVIATEDLABEL="WSB" LABEL="West Siberia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1619" CREATED="2009-01-28 17:07:04.0" UUID="bdf521bc-d689-486b-8853-c8f81f824931" TEXT="Western Sahara" ABBREVIATEDLABEL="WSA" LABEL="Western Sahara" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1620" CREATED="2009-01-28 17:07:04.0" UUID="35b5c6c6-f94f-40ca-9da1-33142d698d05" TEXT="Wisconsin" ABBREVIATEDLABEL="WIS" LABEL="Wisconsin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1621" CREATED="2009-01-28 17:07:04.0" UUID="0261cefd-c8c2-4feb-bdf5-680649029860" TEXT="Windward Is." ABBREVIATEDLABEL="WIN" LABEL="Windward Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1622" CREATED="2009-01-28 17:07:04.0" UUID="9087a8b6-69a0-41f8-b37a-e75236bf6aa5" TEXT="West Himalaya" ABBREVIATEDLABEL="WHM" LABEL="West Himalaya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1623" CREATED="2009-01-28 17:07:04.0" UUID="c79c19d4-82fc-4d44-a193-4527370cc338" TEXT="District of Columbia" ABBREVIATEDLABEL="WDC" LABEL="District of Columbia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1624" CREATED="2009-01-28 17:07:04.0" UUID="59852649-1fe0-49e9-8abb-b7aa5f250ba4" TEXT="Western Australia" ABBREVIATEDLABEL="WAU" LABEL="Western Australia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1625" CREATED="2009-01-28 17:07:04.0" UUID="7cff92ac-8277-48bf-a401-b8bd115e7c77" TEXT="Washington" ABBREVIATEDLABEL="WAS" LABEL="Washington" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1626" CREATED="2009-01-28 17:07:04.0" UUID="bebcc24a-4fd5-4196-8712-38d193d6002b" TEXT="Wallis-Futuna Is." ABBREVIATEDLABEL="WAL" LABEL="Wallis-Futuna Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1627" CREATED="2009-01-28 17:07:04.0" UUID="7d968108-9340-49ab-bc03-cf0e1025b780" TEXT="Wake I." ABBREVIATEDLABEL="WAK" LABEL="Wake I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1628" CREATED="2009-01-28 17:07:04.0" UUID="fabb75b4-f3ec-4066-b6a1-afb7ee1296b0" TEXT="Virginia" ABBREVIATEDLABEL="VRG" LABEL="Virginia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1629" CREATED="2009-01-28 17:07:04.0" UUID="639b9f7a-8b9c-49de-b061-c7224c038d66" TEXT="Venezuelan Antilles" ABBREVIATEDLABEL="VNA" LABEL="Venezuelan Antilles" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1630" CREATED="2009-01-28 17:07:04.0" UUID="e1cc2de7-47d4-4d83-b141-0c1a38bd0dac" TEXT="Vietnam" ABBREVIATEDLABEL="VIE" LABEL="Vietnam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1631" CREATED="2009-01-28 17:07:04.0" UUID="8bd3daf8-b922-47cf-b642-69227ffe2d6d" TEXT="Victoria" ABBREVIATEDLABEL="VIC" LABEL="Victoria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1632" CREATED="2009-01-28 17:07:04.0" UUID="f11a141f-f095-4947-aa72-4dc9a37040a7" TEXT="Vermont" ABBREVIATEDLABEL="VER" LABEL="Vermont" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1633" CREATED="2009-01-28 17:07:04.0" UUID="1bfc0b0c-7aea-4ec9-91f6-37002772e4bf" TEXT="Venezuela" ABBREVIATEDLABEL="VEN" LABEL="Venezuela" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1634" CREATED="2009-01-28 17:07:04.0" UUID="cad655c6-cccb-4fce-a1e3-1c05fcd31165" TEXT="Vanuatu" ABBREVIATEDLABEL="VAN" LABEL="Vanuatu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1635" CREATED="2009-01-28 17:07:04.0" UUID="0a7ddbae-a41b-4223-811a-3633cfdd3a98" TEXT="Uzbekistan" ABBREVIATEDLABEL="UZB" LABEL="Uzbekistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1636" CREATED="2009-01-28 17:07:04.0" UUID="63aae3da-f040-4907-afec-b84edd4828ec" TEXT="Utah" ABBREVIATEDLABEL="UTA" LABEL="Utah" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1637" CREATED="2009-01-28 17:07:04.0" UUID="c10b15f6-7ff9-4620-868d-6500d4d2cfc3" TEXT="Uruguay" ABBREVIATEDLABEL="URU" LABEL="Uruguay" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1638" CREATED="2009-01-28 17:07:04.0" UUID="f65c5251-7848-4450-82ed-db9a0c30d0e1" TEXT="Ukraine" ABBREVIATEDLABEL="UKR" LABEL="Ukraine" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1639" CREATED="2009-01-28 17:07:04.0" UUID="1f994597-4158-4751-ad81-23356759b9a4" TEXT="Uganda" ABBREVIATEDLABEL="UGA" LABEL="Uganda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1640" CREATED="2009-01-28 17:07:04.0" UUID="03c2499b-cb01-4a16-b0c1-055adb05b02c" TEXT="Tadzhikistan" ABBREVIATEDLABEL="TZK" LABEL="Tadzhikistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1641" CREATED="2009-01-28 17:07:04.0" UUID="6a6b66d7-47e2-4450-9158-846834fff94c" TEXT="Northern Provinces" ABBREVIATEDLABEL="TVL" LABEL="Northern Provinces" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1642" CREATED="2009-01-28 17:07:04.0" UUID="5c9b2f24-f419-48df-9bc0-2bf1f6890f7c" TEXT="Tuva" ABBREVIATEDLABEL="TVA" LABEL="Tuva" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1643" CREATED="2009-01-28 17:07:04.0" UUID="beb5f04c-9d75-47d8-8768-83b1f7d90eb6" TEXT="Tuvalu" ABBREVIATEDLABEL="TUV" LABEL="Tuvalu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1644" CREATED="2009-01-28 17:07:04.0" UUID="6ea011ff-276e-44e1-b364-fff28848a52b" TEXT="Turkey" ABBREVIATEDLABEL="TUR" LABEL="Turkey" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1645" CREATED="2009-01-28 17:07:04.0" UUID="27a707c8-8170-418e-812b-3ed1bea9c6cb" TEXT="Tunisia" ABBREVIATEDLABEL="TUN" LABEL="Tunisia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1646" CREATED="2009-01-28 17:07:04.0" UUID="0406dcab-928e-4831-9b04-19c6f47e70a0" TEXT="Turkey-in-Europe" ABBREVIATEDLABEL="TUE" LABEL="Turkey-in-Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1647" CREATED="2009-01-28 17:07:04.0" UUID="6d2ad48b-f54a-4a79-8a8b-734e3ef44ce5" TEXT="Tubuai Is." ABBREVIATEDLABEL="TUB" LABEL="Tubuai Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1648" CREATED="2009-01-28 17:07:04.0" UUID="f1d1b394-1105-45f0-b30a-0a02f9b99ab7" TEXT="Tuamotu" ABBREVIATEDLABEL="TUA" LABEL="Tuamotu" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1649" CREATED="2009-01-28 17:07:04.0" UUID="0f63be49-5caf-43d2-b7e4-88f9964c7a17" TEXT="Trinidad-Tobago" ABBREVIATEDLABEL="TRT" LABEL="Trinidad-Tobago" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1650" CREATED="2009-01-28 17:07:04.0" UUID="dd858c52-7617-4edd-a557-48d53c305f33" TEXT="Tonga" ABBREVIATEDLABEL="TON" LABEL="Tonga" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1651" CREATED="2009-01-28 17:07:04.0" UUID="404a50e6-e06f-414d-b84e-2d6635426e44" TEXT="Tokelau-Manihiki" ABBREVIATEDLABEL="TOK" LABEL="Tokelau-Manihiki" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1652" CREATED="2009-01-28 17:07:04.0" UUID="ae993666-f274-46f1-a5fc-b7e5e519061b" TEXT="Togo" ABBREVIATEDLABEL="TOG" LABEL="Togo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1653" CREATED="2009-01-28 17:07:04.0" UUID="efb4faf0-742e-4133-9f97-cd928e117094" TEXT="Turkmenistan" ABBREVIATEDLABEL="TKM" LABEL="Turkmenistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1654" CREATED="2009-01-28 17:07:04.0" UUID="f1dcba2d-ff9f-479c-bc73-1f185275d31b" TEXT="Thailand" ABBREVIATEDLABEL="THA" LABEL="Thailand" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1655" CREATED="2009-01-28 17:07:04.0" UUID="bdf3a573-74fa-41a1-9bbb-4299f620340b" TEXT="Texas" ABBREVIATEDLABEL="TEX" LABEL="Texas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1656" CREATED="2009-01-28 17:07:04.0" UUID="a4678d75-ad03-44a1-bf1c-59db3861850a" TEXT="Tennessee" ABBREVIATEDLABEL="TEN" LABEL="Tennessee" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1657" CREATED="2009-01-28 17:07:04.0" UUID="d135bcb5-4514-4cb1-83e4-fcd8fddaebda" TEXT="Tristan da Cunha" ABBREVIATEDLABEL="TDC" LABEL="Tristan da Cunha" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1658" CREATED="2009-01-28 17:07:04.0" UUID="6323cc2a-086a-4efc-a500-f2062f8ad62b" TEXT="Transcaucasus" ABBREVIATEDLABEL="TCS" LABEL="Transcaucasus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1659" CREATED="2009-01-28 17:07:04.0" UUID="e391a659-d719-48ff-947f-e7174ee3eda4" TEXT="Turks-Caicos Is." ABBREVIATEDLABEL="TCI" LABEL="Turks-Caicos Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1660" CREATED="2009-01-28 17:07:04.0" UUID="335cf53b-ecbf-450a-a167-56701c12b749" TEXT="Tasmania" ABBREVIATEDLABEL="TAS" LABEL="Tasmania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1661" CREATED="2009-01-28 17:07:04.0" UUID="335a08d1-2ff5-43aa-84bc-aac19f77cf2d" TEXT="Tanzania" ABBREVIATEDLABEL="TAN" LABEL="Tanzania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1662" CREATED="2009-01-28 17:07:04.0" UUID="f1bca77f-31c0-4a13-8061-6a1b1b07c793" TEXT="Taiwan" ABBREVIATEDLABEL="TAI" LABEL="Taiwan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1663" CREATED="2009-01-28 17:07:04.0" UUID="47581d81-2720-4c90-b669-b5c912385165" TEXT="Swaziland" ABBREVIATEDLABEL="SWZ" LABEL="Swaziland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1664" CREATED="2009-01-28 17:07:04.0" UUID="3e4de56b-2075-4318-bd95-7e24162b734d" TEXT="Switzerland" ABBREVIATEDLABEL="SWI" LABEL="Switzerland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1665" CREATED="2009-01-28 17:07:04.0" UUID="df1be255-b46c-407a-8cab-1b12a1eeeb5f" TEXT="Sweden" ABBREVIATEDLABEL="SWE" LABEL="Sweden" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1666" CREATED="2009-01-28 17:07:04.0" UUID="e153ba3d-548e-4d3f-b342-90f06471b2f9" TEXT="Southwest Caribbean" ABBREVIATEDLABEL="SWC" LABEL="Southwest Caribbean" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1667" CREATED="2009-01-28 17:07:04.0" UUID="71217233-33a9-4fda-9b24-d44a936581d9" TEXT="Svalbard" ABBREVIATEDLABEL="SVA" LABEL="Svalbard" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1668" CREATED="2009-01-28 17:07:04.0" UUID="5e56653f-0486-4a94-81b8-3f16060f6a54" TEXT="Suriname" ABBREVIATEDLABEL="SUR" LABEL="Suriname" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1669" CREATED="2009-01-28 17:07:04.0" UUID="a2b535f1-1971-426e-8c1f-e9978fa87027" TEXT="Sumatera" ABBREVIATEDLABEL="SUM" LABEL="Sumatera" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1670" CREATED="2009-01-28 17:07:04.0" UUID="02ba5ad1-f8e9-4452-8ca7-189ed4ceff8f" TEXT="Sulawesi" ABBREVIATEDLABEL="SUL" LABEL="Sulawesi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1671" CREATED="2009-01-28 17:07:04.0" UUID="124f622d-83d6-4aa8-9cf4-2e94ff658d0b" TEXT="Sudan" ABBREVIATEDLABEL="SUD" LABEL="Sudan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1672" CREATED="2009-01-28 17:07:04.0" UUID="ecfaa881-81ff-4f13-aa11-651b77080032" TEXT="St.Helena" ABBREVIATEDLABEL="STH" LABEL="St.Helena" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1673" CREATED="2009-01-28 17:07:04.0" UUID="4a029c69-fb09-4029-9f81-d3a83f3ee496" TEXT="South Sandwich Is." ABBREVIATEDLABEL="SSA" LABEL="South Sandwich Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1674" CREATED="2009-01-28 17:07:04.0" UUID="88c90698-e987-4fa1-8c03-d31850fc77e4" TEXT="Sri Lanka" ABBREVIATEDLABEL="SRL" LABEL="Sri Lanka" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1675" CREATED="2009-01-28 17:07:04.0" UUID="cd722d73-4069-4cc8-a602-47b956c1fed1" TEXT="Spain" ABBREVIATEDLABEL="SPA" LABEL="Spain" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1676" CREATED="2009-01-28 17:07:04.0" UUID="da68d248-4a9f-463c-826d-3bcb2a231a68" TEXT="Somalia" ABBREVIATEDLABEL="SOM" LABEL="Somalia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1677" CREATED="2009-01-28 17:07:04.0" UUID="a26a7da0-d821-4b31-8d50-95dbf8feb581" TEXT="Solomon Is." ABBREVIATEDLABEL="SOL" LABEL="Solomon Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1678" CREATED="2009-01-28 17:07:04.0" UUID="3773eb3d-7809-47e8-912a-97f18c86b7c3" TEXT="Socotra" ABBREVIATEDLABEL="SOC" LABEL="Socotra" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1679" CREATED="2009-01-28 17:07:04.0" UUID="287399dc-c508-4288-ac83-55d45eaef0e2" TEXT="South Australia" ABBREVIATEDLABEL="SOA" LABEL="South Australia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1680" CREATED="2009-01-28 17:07:04.0" UUID="656a86c9-cde5-4aac-b991-d26f7fcb43bf" TEXT="Sinai" ABBREVIATEDLABEL="SIN" LABEL="Sinai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1681" CREATED="2009-01-28 17:07:04.0" UUID="cfbcddf3-a8c9-48df-911c-03fffddd8443" TEXT="Sierra Leone" ABBREVIATEDLABEL="SIE" LABEL="Sierra Leone" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1682" CREATED="2009-01-28 17:07:04.0" UUID="bfb0cdf1-3f1e-4948-b396-dc476513b3cf" TEXT="Sicilia" ABBREVIATEDLABEL="SIC" LABEL="Sicilia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1683" CREATED="2009-01-28 17:07:04.0" UUID="456ff636-76a5-45a0-bf61-609fbd546e54" TEXT="South Georgia" ABBREVIATEDLABEL="SGE" LABEL="South Georgia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1684" CREATED="2009-01-28 17:07:04.0" UUID="a6ffde3a-2851-4d10-97d6-9fcb5af12f07" TEXT="Seychelles" ABBREVIATEDLABEL="SEY" LABEL="Seychelles" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1685" CREATED="2009-01-28 17:07:04.0" UUID="8a44f29f-8b3c-4ca3-b022-a7d22e0bc581" TEXT="Senegal" ABBREVIATEDLABEL="SEN" LABEL="Senegal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1686" CREATED="2009-01-28 17:07:04.0" UUID="adf3deb3-c52f-404f-bdae-2c0cb0037492" TEXT="Selvagens" ABBREVIATEDLABEL="SEL" LABEL="Selvagens" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1687" CREATED="2009-01-28 17:07:04.0" UUID="37c6f0e3-534b-4fde-87c6-bda344d75ad1" TEXT="South Dakota" ABBREVIATEDLABEL="SDA" LABEL="South Dakota" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1688" CREATED="2009-01-28 17:07:04.0" UUID="1b2444dd-745c-4a45-834f-7831f98de843" TEXT="Santa Cruz Is." ABBREVIATEDLABEL="SCZ" LABEL="Santa Cruz Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1689" CREATED="2009-01-28 17:07:04.0" UUID="0d05c56f-2ae2-4c77-b0fe-65df225c7306" TEXT="South China Sea" ABBREVIATEDLABEL="SCS" LABEL="South China Sea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1690" CREATED="2009-01-28 17:07:04.0" UUID="30f30732-07ee-4979-a9d6-e50cb314efbe" TEXT="Society Is." ABBREVIATEDLABEL="SCI" LABEL="Society Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1691" CREATED="2009-01-28 17:07:04.0" UUID="f6c8b660-a8ff-40ca-a766-7bf7d7ee0392" TEXT="South Carolina" ABBREVIATEDLABEL="SCA" LABEL="South Carolina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1692" CREATED="2009-01-28 17:07:04.0" UUID="7276c06a-5208-4b9f-88d6-723bd3db3fbe" TEXT="Saudi Arabia" ABBREVIATEDLABEL="SAU" LABEL="Saudi Arabia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1693" CREATED="2009-01-28 17:07:04.0" UUID="b641ea25-d751-43c2-bf57-56d2d8fa5bfb" TEXT="Saskatchewan" ABBREVIATEDLABEL="SAS" LABEL="Saskatchewan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1694" CREATED="2009-01-28 17:07:04.0" UUID="afaffa81-8d2c-4dd9-b023-03526d11962c" TEXT="Sardegna" ABBREVIATEDLABEL="SAR" LABEL="Sardegna" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1695" CREATED="2009-01-28 17:07:04.0" UUID="a5e3da03-64b5-457b-90a6-bc41057f4f1f" TEXT="Samoa" ABBREVIATEDLABEL="SAM" LABEL="Samoa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1696" CREATED="2009-01-28 17:07:04.0" UUID="3d1eb785-fb83-49c3-b84c-af6a816213bc" TEXT="Sakhalin" ABBREVIATEDLABEL="SAK" LABEL="Sakhalin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1697" CREATED="2009-01-28 17:07:04.0" UUID="c00ee021-46f9-4f6b-bc16-3c84d368cc7c" TEXT="Rwanda" ABBREVIATEDLABEL="RWA" LABEL="Rwanda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1698" CREATED="2009-01-28 17:07:04.0" UUID="30f40504-1b43-4d84-8d62-65c63e853f19" TEXT="Northwest European Russia" ABBREVIATEDLABEL="RUW" LABEL="Northwest European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1699" CREATED="2009-01-28 17:07:04.0" UUID="e10684f3-e427-48fd-af2f-07fb4da9ef07" TEXT="South European Russia" ABBREVIATEDLABEL="RUS" LABEL="South European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1700" CREATED="2009-01-28 17:07:04.0" UUID="253f0b99-2503-406b-8d71-e747d44deed8" TEXT="North European Russia" ABBREVIATEDLABEL="RUN" LABEL="North European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1701" CREATED="2009-01-28 17:07:04.0" UUID="485c15f7-38f6-4356-a810-333d02b3af58" TEXT="East European Russia" ABBREVIATEDLABEL="RUE" LABEL="East European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1702" CREATED="2009-01-28 17:07:04.0" UUID="6f1af6ed-e959-4da5-95d0-65cb9567fa52" TEXT="Central European Russia" ABBREVIATEDLABEL="RUC" LABEL="Central European Russia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1703" CREATED="2009-01-28 17:07:04.0" UUID="4912c201-4b17-41e0-9f10-ecd65b4dbe02" TEXT="Romania" ABBREVIATEDLABEL="ROM" LABEL="Romania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1704" CREATED="2009-01-28 17:07:04.0" UUID="5475120b-ee04-44e1-b060-fabb2ec338af" TEXT="Rodrigues" ABBREVIATEDLABEL="ROD" LABEL="Rodrigues" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1705" CREATED="2009-01-28 17:07:04.0" UUID="ef2febc3-f8ac-4597-bf80-72e1f3aff50d" TEXT="Rhode I." ABBREVIATEDLABEL="RHO" LABEL="Rhode I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1706" CREATED="2009-01-28 17:07:04.0" UUID="0a9e4345-3acf-431e-bab4-5409a9f284dc" TEXT="Réunion" ABBREVIATEDLABEL="REU" LABEL="Réunion" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1707" CREATED="2009-01-28 17:07:04.0" UUID="db16379e-57a8-4975-bb02-145bc61fa4de" TEXT="Québec" ABBREVIATEDLABEL="QUE" LABEL="Québec" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1708" CREATED="2009-01-28 17:07:04.0" UUID="94e8e1a5-633e-480f-8b92-e5135ecd7b5a" TEXT="Queensland" ABBREVIATEDLABEL="QLD" LABEL="Queensland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1709" CREATED="2009-01-28 17:07:04.0" UUID="cc9d9927-be07-4da0-8f98-07ef15ca7fbb" TEXT="Puerto Rico" ABBREVIATEDLABEL="PUE" LABEL="Puerto Rico" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1710" CREATED="2009-01-28 17:07:04.0" UUID="b9c8ad6f-fd02-4080-a2fd-79dae69b21e6" TEXT="Primorye" ABBREVIATEDLABEL="PRM" LABEL="Primorye" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1711" CREATED="2009-01-28 17:07:04.0" UUID="8028ce28-d24e-4c12-a92d-edc71c18718b" TEXT="Portugal" ABBREVIATEDLABEL="POR" LABEL="Portugal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1712" CREATED="2009-01-28 17:07:04.0" UUID="068fbd9c-cdc9-4d81-af68-c88eb98a9ea0" TEXT="Poland" ABBREVIATEDLABEL="POL" LABEL="Poland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1713" CREATED="2009-01-28 17:07:04.0" UUID="aedd82ac-631a-484e-af72-7e03a58b9876" TEXT="Pitcairn Is." ABBREVIATEDLABEL="PIT" LABEL="Pitcairn Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1714" CREATED="2009-01-28 17:07:04.0" UUID="c04c8886-e14a-4a98-9f76-0fbc0048e66b" TEXT="Phoenix Is." ABBREVIATEDLABEL="PHX" LABEL="Phoenix Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1715" CREATED="2009-01-28 17:07:04.0" UUID="00397358-3299-4234-ae5b-a8c831f387d4" TEXT="Philippines" ABBREVIATEDLABEL="PHI" LABEL="Philippines" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1716" CREATED="2009-01-28 17:07:04.0" UUID="a6d5ff3e-4ed8-490c-b1da-a27a5c304c38" TEXT="Peru" ABBREVIATEDLABEL="PER" LABEL="Peru" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1717" CREATED="2009-01-28 17:07:04.0" UUID="d2d2bc25-230e-4907-9f49-50d22eb711dd" TEXT="Pennsylvania" ABBREVIATEDLABEL="PEN" LABEL="Pennsylvania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1718" CREATED="2009-01-28 17:07:04.0" UUID="f8ff6a7f-694e-4a65-8cd5-48f85cf4894f" TEXT="Prince Edward I." ABBREVIATEDLABEL="PEI" LABEL="Prince Edward I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1719" CREATED="2009-01-28 17:07:04.0" UUID="df2aa34b-4fc6-4d1d-aff8-90ca392a5038" TEXT="Paraguay" ABBREVIATEDLABEL="PAR" LABEL="Paraguay" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1720" CREATED="2009-01-28 17:07:04.0" UUID="89135f13-a986-487a-bec5-5debe3b366aa" TEXT="Panamá" ABBREVIATEDLABEL="PAN" LABEL="Panamá" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1721" CREATED="2009-01-28 17:07:04.0" UUID="753b1161-4ee9-4976-a1e2-2e9aadaff1af" TEXT="Palestine" ABBREVIATEDLABEL="PAL" LABEL="Palestine" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1722" CREATED="2009-01-28 17:07:04.0" UUID="f67754b6-0a59-4c8c-a9cb-1419b4f4d39b" TEXT="Pakistan" ABBREVIATEDLABEL="PAK" LABEL="Pakistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1723" CREATED="2009-01-28 17:07:04.0" UUID="73d539c5-6783-4a0d-aadc-c45c7f482e78" TEXT="Oregon" ABBREVIATEDLABEL="ORE" LABEL="Oregon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1724" CREATED="2009-01-28 17:07:04.0" UUID="b1882c24-a665-4214-9404-721a2c0b5a48" TEXT="Ontario" ABBREVIATEDLABEL="ONT" LABEL="Ontario" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1725" CREATED="2009-01-28 17:07:04.0" UUID="45edf6f0-633a-4c86-bb8c-26f7d3cda5e9" TEXT="Oman" ABBREVIATEDLABEL="OMA" LABEL="Oman" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1726" CREATED="2009-01-28 17:07:04.0" UUID="8d7783c6-40a1-415d-b50a-0c7d188caf55" TEXT="Oklahoma" ABBREVIATEDLABEL="OKL" LABEL="Oklahoma" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1727" CREATED="2009-01-28 17:07:04.0" UUID="b3423a58-11f5-4928-bc0b-6589ee6213c0" TEXT="Ohio" ABBREVIATEDLABEL="OHI" LABEL="Ohio" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1728" CREATED="2009-01-28 17:07:04.0" UUID="ac4b755d-1dff-4f9b-8764-2178f3417c68" TEXT="Ogasawara-shoto" ABBREVIATEDLABEL="OGA" LABEL="Ogasawara-shoto" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1729" CREATED="2009-01-28 17:07:04.0" UUID="fcf8e97b-9751-4268-9a90-c703e5c5e264" TEXT="Free State" ABBREVIATEDLABEL="OFS" LABEL="Free State" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1730" CREATED="2009-01-28 17:07:04.0" UUID="2902aba7-bc87-4fcc-9c8a-759fab4c2d8b" TEXT="New Zealand South" ABBREVIATEDLABEL="NZS" LABEL="New Zealand South" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1731" CREATED="2009-01-28 17:07:04.0" UUID="d5ed03ae-5753-4202-a0d2-8d8879f2bcfb" TEXT="New Zealand North" ABBREVIATEDLABEL="NZN" LABEL="New Zealand North" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1732" CREATED="2009-01-28 17:07:04.0" UUID="ba7835d5-bac6-4f7f-ae14-ecf338666453" TEXT="New York" ABBREVIATEDLABEL="NWY" LABEL="New York" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1733" CREATED="2009-01-28 17:07:04.0" UUID="39b87822-121e-4f17-a76d-1bae760dfa83" TEXT="Northwest Territories" ABBREVIATEDLABEL="NWT" LABEL="Northwest Territories" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1734" CREATED="2009-01-28 17:07:04.0" UUID="f48f8fc2-dd36-498f-b8ff-5d8214186afd" TEXT="New Mexico" ABBREVIATEDLABEL="NWM" LABEL="New Mexico" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1735" CREATED="2009-01-28 17:07:04.0" UUID="3cc3094e-cd51-4613-9e46-b3e4d986b858" TEXT="New Jersey" ABBREVIATEDLABEL="NWJ" LABEL="New Jersey" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1736" CREATED="2009-01-28 17:07:04.0" UUID="28e1ac81-35aa-4e56-8c6e-bcde017cad0f" TEXT="New Hampshire" ABBREVIATEDLABEL="NWH" LABEL="New Hampshire" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1737" CREATED="2009-01-28 17:07:04.0" UUID="1bd2d736-ca21-448b-8ffb-2d911278ab30" TEXT="New Guinea" ABBREVIATEDLABEL="NWG" LABEL="New Guinea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1738" CREATED="2009-01-28 17:07:04.0" UUID="fd516e51-d2d0-44bd-b863-4351f253ec0b" TEXT="New Caledonia" ABBREVIATEDLABEL="NWC" LABEL="New Caledonia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1739" CREATED="2009-01-28 17:07:04.0" UUID="cfed86b4-3d4b-4d4d-b629-1e842d51317b" TEXT="Nunavut" ABBREVIATEDLABEL="NUN" LABEL="Nunavut" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1740" CREATED="2009-01-28 17:07:04.0" UUID="c59401fa-5c5a-4bd3-a08e-8df3dce7c907" TEXT="Niue" ABBREVIATEDLABEL="NUE" LABEL="Niue" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1741" CREATED="2009-01-28 17:07:04.0" UUID="8eeb0dfc-ffd9-4cdd-a06b-c808ae6c6379" TEXT="Northern Territory" ABBREVIATEDLABEL="NTA" LABEL="Northern Territory" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1742" CREATED="2009-01-28 17:07:04.0" UUID="3258dcf1-b2a0-4be9-822e-e06a00aa916e" TEXT="New South Wales" ABBREVIATEDLABEL="NSW" LABEL="New South Wales" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1743" CREATED="2009-01-28 17:07:04.0" UUID="2e2be626-c172-496d-aa00-15b83077b181" TEXT="Nova Scotia" ABBREVIATEDLABEL="NSC" LABEL="Nova Scotia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1744" CREATED="2009-01-28 17:07:04.0" UUID="32579b77-a9da-4bdd-99fe-b88fc09fae6b" TEXT="Nauru" ABBREVIATEDLABEL="NRU" LABEL="Nauru" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1745" CREATED="2009-01-28 17:07:04.0" UUID="c9750999-bfb7-4253-82be-10d853840a76" TEXT="Norway" ABBREVIATEDLABEL="NOR" LABEL="Norway" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1746" CREATED="2009-01-28 17:07:04.0" UUID="6ed84f26-a8b8-46a7-9997-b215eed27d68" TEXT="Nansei-shoto" ABBREVIATEDLABEL="NNS" LABEL="Nansei-shoto" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1747" CREATED="2009-01-28 17:07:04.0" UUID="8f450800-f9f1-4e7f-990a-71bebb7e2961" TEXT="Netherlands Antilles" ABBREVIATEDLABEL="NLA" LABEL="Netherlands Antilles" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1748" CREATED="2009-01-28 17:07:04.0" UUID="f4201be6-d02f-4679-8613-e1770b8ca92f" TEXT="Nicaragua" ABBREVIATEDLABEL="NIC" LABEL="Nicaragua" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1749" CREATED="2009-01-28 17:07:04.0" UUID="6b0bbe26-78c6-4d91-ac86-a7758ccbef2d" TEXT="Niger" ABBREVIATEDLABEL="NGR" LABEL="Niger" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1750" CREATED="2009-01-28 17:07:04.0" UUID="2f9b2676-e439-42f1-b3b6-ca3a11560b70" TEXT="Nigeria" ABBREVIATEDLABEL="NGA" LABEL="Nigeria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1751" CREATED="2009-01-28 17:07:04.0" UUID="fc01de7b-634c-4748-9768-845724ce505f" TEXT="Newfoundland" ABBREVIATEDLABEL="NFL" LABEL="Newfoundland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1752" CREATED="2009-01-28 17:07:04.0" UUID="b36f9c7b-b43b-4355-b543-79f32824d147" TEXT="Norfolk Is." ABBREVIATEDLABEL="NFK" LABEL="Norfolk Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1753" CREATED="2009-01-28 17:07:04.0" UUID="273919f2-30b5-44d6-acd7-10726e2389b0" TEXT="Nevada" ABBREVIATEDLABEL="NEV" LABEL="Nevada" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1754" CREATED="2009-01-28 17:07:04.0" UUID="611856aa-99c7-46f5-824b-ee9710657261" TEXT="Netherlands" ABBREVIATEDLABEL="NET" LABEL="Netherlands" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1755" CREATED="2009-01-28 17:07:04.0" UUID="656e63ea-773b-4259-bf21-3f88a03fd90a" TEXT="Nepal" ABBREVIATEDLABEL="NEP" LABEL="Nepal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1756" CREATED="2009-01-28 17:07:04.0" UUID="670c990e-762e-4e21-9cee-80024f23d8d7" TEXT="Nebraska" ABBREVIATEDLABEL="NEB" LABEL="Nebraska" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1757" CREATED="2009-01-28 17:07:04.0" UUID="78022c59-3222-4e15-b59a-a673fc0fc7ac" TEXT="North Dakota" ABBREVIATEDLABEL="NDA" LABEL="North Dakota" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1758" CREATED="2009-01-28 17:07:04.0" UUID="066a37e3-cb0a-4eab-aff4-241e0d8febb8" TEXT="North Caucasus" ABBREVIATEDLABEL="NCS" LABEL="North Caucasus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1759" CREATED="2009-01-28 17:07:04.0" UUID="f576f5dc-5ff9-4f48-99e9-9825cd2e22eb" TEXT="Nicobar Is." ABBREVIATEDLABEL="NCB" LABEL="Nicobar Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1760" CREATED="2009-01-28 17:07:04.0" UUID="899456dc-5b5e-4d14-a8e2-21fc53eb6b10" TEXT="North Carolina" ABBREVIATEDLABEL="NCA" LABEL="North Carolina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1761" CREATED="2009-01-28 17:07:04.0" UUID="a1711451-b072-47b0-ad40-113ca4763ed7" TEXT="New Brunswick" ABBREVIATEDLABEL="NBR" LABEL="New Brunswick" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1762" CREATED="2009-01-28 17:07:04.0" UUID="3a8d92a8-a0f0-4f4a-bf89-81606b9df761" TEXT="KwaZulu-Natal" ABBREVIATEDLABEL="NAT" LABEL="KwaZulu-Natal" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1763" CREATED="2009-01-28 17:07:04.0" UUID="4927a320-f54b-43ff-a926-1be6d1eab898" TEXT="Namibia" ABBREVIATEDLABEL="NAM" LABEL="Namibia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1764" CREATED="2009-01-28 17:07:04.0" UUID="e1e52cf3-e891-4825-a283-bcd7dabecab0" TEXT="Myanmar" ABBREVIATEDLABEL="MYA" LABEL="Myanmar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1765" CREATED="2009-01-28 17:07:04.0" UUID="33b67bca-cd28-451d-b897-ca91f3fe7b36" TEXT="Mexico Southeast" ABBREVIATEDLABEL="MXT" LABEL="Mexico Southeast" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1766" CREATED="2009-01-28 17:07:04.0" UUID="4c782a7a-9733-466b-9157-cee617024657" TEXT="Mexico Southwest" ABBREVIATEDLABEL="MXS" LABEL="Mexico Southwest" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1767" CREATED="2009-01-28 17:07:04.0" UUID="0c9c992e-7484-43f5-8e33-324ee5492ad4" TEXT="Mexico Northwest" ABBREVIATEDLABEL="MXN" LABEL="Mexico Northwest" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1768" CREATED="2009-01-28 17:07:04.0" UUID="d3382e93-7f42-4ac5-8c0f-307340246e6a" TEXT="Mexican Pacific Is." ABBREVIATEDLABEL="MXI" LABEL="Mexican Pacific Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1769" CREATED="2009-01-28 17:07:04.0" UUID="9a7fc5da-43d9-4b8a-b96c-8c5d4ea3071a" TEXT="Mexico Gulf" ABBREVIATEDLABEL="MXG" LABEL="Mexico Gulf" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1770" CREATED="2009-01-28 17:07:04.0" UUID="4cae45ba-1aee-48f2-9dc5-f8180065f854" TEXT="Mexico Northeast" ABBREVIATEDLABEL="MXE" LABEL="Mexico Northeast" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1771" CREATED="2009-01-28 17:07:04.0" UUID="6f374f41-a759-4ff1-b233-7948a68e607a" TEXT="Mexico Central" ABBREVIATEDLABEL="MXC" LABEL="Mexico Central" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1772" CREATED="2009-01-28 17:07:04.0" UUID="dc71b760-71ea-4992-a200-63e323d2f85b" TEXT="Mauritania" ABBREVIATEDLABEL="MTN" LABEL="Mauritania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1773" CREATED="2009-01-28 17:07:04.0" UUID="4e3adcf9-5694-4ff0-be88-9dd46c79371b" TEXT="Missouri" ABBREVIATEDLABEL="MSO" LABEL="Missouri" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1774" CREATED="2009-01-28 17:07:04.0" UUID="dde187b4-71e2-4a8d-90b3-488499a17bb7" TEXT="Mississippi" ABBREVIATEDLABEL="MSI" LABEL="Mississippi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1775" CREATED="2009-01-28 17:07:04.0" UUID="117b0e41-1cfb-4dec-9e5c-e5f504fca445" TEXT="Maryland" ABBREVIATEDLABEL="MRY" LABEL="Maryland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1776" CREATED="2009-01-28 17:07:04.0" UUID="6976c932-0b9d-40d1-97d8-b1ef39224c63" TEXT="Marshall Is." ABBREVIATEDLABEL="MRS" LABEL="Marshall Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1777" CREATED="2009-01-28 17:07:04.0" UUID="743a9773-677f-445a-aef2-4402ccf791d1" TEXT="Marquesas" ABBREVIATEDLABEL="MRQ" LABEL="Marquesas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1778" CREATED="2009-01-28 17:07:04.0" UUID="1a849e4b-03d2-4c9d-83d1-3de8a20f13d4" TEXT="Marianas" ABBREVIATEDLABEL="MRN" LABEL="Marianas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1779" CREATED="2009-01-28 17:07:04.0" UUID="7db4d6e6-a77e-46e0-9af8-d255b98dbace" TEXT="Marion-Prince Edward Is." ABBREVIATEDLABEL="MPE" LABEL="Marion-Prince Edward Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1780" CREATED="2009-01-28 17:07:04.0" UUID="7deb75c3-b921-40de-9292-4cd988a7db9a" TEXT="Mozambique" ABBREVIATEDLABEL="MOZ" LABEL="Mozambique" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1781" CREATED="2009-01-28 17:07:04.0" UUID="7bd6f1f4-5dcd-4ad8-930b-ec2237ecfb15" TEXT="Morocco" ABBREVIATEDLABEL="MOR" LABEL="Morocco" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1782" CREATED="2009-01-28 17:07:04.0" UUID="73582aa6-53b3-4f02-bf00-260a41dcc881" TEXT="Mongolia" ABBREVIATEDLABEL="MON" LABEL="Mongolia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1783" CREATED="2009-01-28 17:07:04.0" UUID="815be445-be5a-408d-b923-e58e4a81068c" TEXT="Maluku" ABBREVIATEDLABEL="MOL" LABEL="Maluku" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1784" CREATED="2009-01-28 17:07:04.0" UUID="78fbfe72-2a40-4ab7-ba31-c4d3d10194cf" TEXT="Montana" ABBREVIATEDLABEL="MNT" LABEL="Montana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1785" CREATED="2009-01-28 17:07:04.0" UUID="5a01bf13-3689-4a45-b6c0-4515b88289b5" TEXT="Malaya" ABBREVIATEDLABEL="MLY" LABEL="Malaya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1786" CREATED="2009-01-28 17:07:04.0" UUID="065bebeb-53e3-482f-8821-9e16cb8e391e" TEXT="Malawi" ABBREVIATEDLABEL="MLW" LABEL="Malawi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1787" CREATED="2009-01-28 17:07:04.0" UUID="bb447458-703b-48c9-83b3-d3e9cac4244a" TEXT="Mali" ABBREVIATEDLABEL="MLI" LABEL="Mali" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1788" CREATED="2009-01-28 17:07:04.0" UUID="ae4f3b94-25fb-4888-8195-b98c1c4faa1c" TEXT="Minnesota" ABBREVIATEDLABEL="MIN" LABEL="Minnesota" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1789" CREATED="2009-01-28 17:07:04.0" UUID="7bbbd9bd-82d4-4b5a-adf7-f8ae17534a88" TEXT="Michigan" ABBREVIATEDLABEL="MIC" LABEL="Michigan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1790" CREATED="2009-01-28 17:07:04.0" UUID="4aa24968-e601-4a3f-b675-46c59197617c" TEXT="Maldives" ABBREVIATEDLABEL="MDV" LABEL="Maldives" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1791" CREATED="2009-01-28 17:07:04.0" UUID="6582dfa0-58b0-46cc-a0f8-4c10dea65ef5" TEXT="Madeira" ABBREVIATEDLABEL="MDR" LABEL="Madeira" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1792" CREATED="2009-01-28 17:07:04.0" UUID="717de2ac-2f02-427f-a7ae-61cbb9f27f62" TEXT="Madagascar" ABBREVIATEDLABEL="MDG" LABEL="Madagascar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1793" CREATED="2009-01-28 17:07:04.0" UUID="8c916711-e315-42c3-9f94-22a267e32ad6" TEXT="Marcus I." ABBREVIATEDLABEL="MCS" LABEL="Marcus I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1794" CREATED="2009-01-28 17:07:04.0" UUID="04f1c323-0d6f-4609-a5be-aa03d223cb8f" TEXT="Mozambique Channel Is." ABBREVIATEDLABEL="MCI" LABEL="Mozambique Channel Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1795" CREATED="2009-01-28 17:07:04.0" UUID="72214dec-a131-4d85-b64d-ffa385ad72db" TEXT="Mauritius" ABBREVIATEDLABEL="MAU" LABEL="Mauritius" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1796" CREATED="2009-01-28 17:07:04.0" UUID="72e6685b-5ee5-4049-bb5f-1db0ca87eedd" TEXT="Massachusetts" ABBREVIATEDLABEL="MAS" LABEL="Massachusetts" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1797" CREATED="2009-01-28 17:07:04.0" UUID="aeaff946-33b4-4f12-bb44-07a843458f8f" TEXT="Macquarie Is." ABBREVIATEDLABEL="MAQ" LABEL="Macquarie Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1798" CREATED="2009-01-28 17:07:04.0" UUID="94b67071-6e99-47e3-979e-f41338255837" TEXT="Manitoba" ABBREVIATEDLABEL="MAN" LABEL="Manitoba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1799" CREATED="2009-01-28 17:07:04.0" UUID="f110db67-76ff-4650-89bd-0e7f871a5eb2" TEXT="Maine" ABBREVIATEDLABEL="MAI" LABEL="Maine" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1800" CREATED="2009-01-28 17:07:04.0" UUID="ff301562-24e4-4c79-b405-37f776275fdd" TEXT="Magadan" ABBREVIATEDLABEL="MAG" LABEL="Magadan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1801" CREATED="2009-01-28 17:07:04.0" UUID="d10c4563-d19b-4f05-8176-3601b56715df" TEXT="Lesser Sunda Is." ABBREVIATEDLABEL="LSI" LABEL="Lesser Sunda Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1802" CREATED="2009-01-28 17:07:04.0" UUID="f94b0e41-bfbf-40fa-90cc-a5faa65e0bc0" TEXT="Louisiana" ABBREVIATEDLABEL="LOU" LABEL="Louisiana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1803" CREATED="2009-01-28 17:07:04.0" UUID="2359d5cf-ecf0-48c5-91c5-c5d8d4d1300c" TEXT="Line Is." ABBREVIATEDLABEL="LIN" LABEL="Line Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1804" CREATED="2009-01-28 17:07:04.0" UUID="1d5b8a2f-faae-4ad8-b9fb-ba40a8026bc0" TEXT="Lesotho" ABBREVIATEDLABEL="LES" LABEL="Lesotho" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1805" CREATED="2009-01-28 17:07:04.0" UUID="69f73638-c4ff-4c19-950d-ef6427af895c" TEXT="Leeward Is." ABBREVIATEDLABEL="LEE" LABEL="Leeward Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1806" CREATED="2009-01-28 17:07:04.0" UUID="ec864984-f3b2-43da-b918-59f4f7f9b9ce" TEXT="Laccadive Is." ABBREVIATEDLABEL="LDV" LABEL="Laccadive Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1807" CREATED="2009-01-28 17:07:04.0" UUID="cf56ef4f-0f0c-4c7f-9582-fdb33650a92a" TEXT="Libya" ABBREVIATEDLABEL="LBY" LABEL="Libya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1808" CREATED="2009-01-28 17:07:04.0" UUID="8a115806-4f78-4196-8fe2-11ef4307a5a4" TEXT="Lebanon-Syria" ABBREVIATEDLABEL="LBS" LABEL="Lebanon-Syria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1809" CREATED="2009-01-28 17:07:04.0" UUID="dcd60080-ba02-4794-9a79-45a3df77001b" TEXT="Liberia" ABBREVIATEDLABEL="LBR" LABEL="Liberia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1810" CREATED="2009-01-28 17:07:04.0" UUID="bef87c7e-cc1c-4ef7-9c4d-0e70cadd47bb" TEXT="Laos" ABBREVIATEDLABEL="LAO" LABEL="Laos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1811" CREATED="2009-01-28 17:07:04.0" UUID="f8a2a06a-23c3-4b98-a425-8e57bacc4f2d" TEXT="Labrador" ABBREVIATEDLABEL="LAB" LABEL="Labrador" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1812" CREATED="2009-01-28 17:07:04.0" UUID="fc528c48-860c-496e-98a0-9cc498b15726" TEXT="Kazan-retto" ABBREVIATEDLABEL="KZN" LABEL="Kazan-retto" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1813" CREATED="2009-01-28 17:07:04.0" UUID="cb448515-1b2c-47e0-bcf8-4dfd84a0c9b2" TEXT="Kuwait" ABBREVIATEDLABEL="KUW" LABEL="Kuwait" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1814" CREATED="2009-01-28 17:07:04.0" UUID="bb8e64f3-103e-4589-b752-0a8634822880" TEXT="Kuril Is." ABBREVIATEDLABEL="KUR" LABEL="Kuril Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1815" CREATED="2009-01-28 17:07:04.0" UUID="045484a7-a103-491e-8937-426a23977db9" TEXT="Kentucky" ABBREVIATEDLABEL="KTY" LABEL="Kentucky" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1816" CREATED="2009-01-28 17:07:04.0" UUID="51e6818c-0cb3-4fa9-975e-c595cdc95751" TEXT="Krym" ABBREVIATEDLABEL="KRY" LABEL="Krym" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1817" CREATED="2009-01-28 17:07:04.0" UUID="e56d9f2d-79ef-418b-ae93-94d414cd8b97" TEXT="Kriti" ABBREVIATEDLABEL="KRI" LABEL="Kriti" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1818" CREATED="2009-01-28 17:07:04.0" UUID="17ec317a-6476-41b6-87fc-634311d9ac0a" TEXT="Krasnoyarsk" ABBREVIATEDLABEL="KRA" LABEL="Krasnoyarsk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1819" CREATED="2009-01-28 17:07:04.0" UUID="23777142-c6b2-4cf2-a5f1-83ba2e5dcffe" TEXT="Korea" ABBREVIATEDLABEL="KOR" LABEL="Korea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1820" CREATED="2009-01-28 17:07:04.0" UUID="0a79deb1-d7f1-456a-a4aa-261669cfd99c" TEXT="Khabarovsk" ABBREVIATEDLABEL="KHA" LABEL="Khabarovsk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1821" CREATED="2009-01-28 17:07:04.0" UUID="f3a7cca5-85a5-4494-b811-657d9662513a" TEXT="Kirgizistan" ABBREVIATEDLABEL="KGZ" LABEL="Kirgizistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1822" CREATED="2009-01-28 17:07:04.0" UUID="87f6e830-ef83-4171-90c6-eb002bd0e81c" TEXT="Kermadec Is." ABBREVIATEDLABEL="KER" LABEL="Kermadec Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1823" CREATED="2009-01-28 17:07:04.0" UUID="31b9faf0-e99a-4907-b521-e0bfae49d4ec" TEXT="Kenya" ABBREVIATEDLABEL="KEN" LABEL="Kenya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1824" CREATED="2009-01-28 17:07:04.0" UUID="504cd85c-d4e6-4892-9199-4069aaf16257" TEXT="Kerguelen" ABBREVIATEDLABEL="KEG" LABEL="Kerguelen" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1825" CREATED="2009-01-28 17:07:04.0" UUID="e2831e46-2af9-47db-a26a-be7afa657dfd" TEXT="Kazakhstan" ABBREVIATEDLABEL="KAZ" LABEL="Kazakhstan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1826" CREATED="2009-01-28 17:07:04.0" UUID="792d71da-f7b2-45f3-b60f-4b73e6710179" TEXT="Kansas" ABBREVIATEDLABEL="KAN" LABEL="Kansas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1827" CREATED="2009-01-28 17:07:04.0" UUID="4bde806d-b053-4b5c-b012-6ff3ec2b5d39" TEXT="Kamchatka" ABBREVIATEDLABEL="KAM" LABEL="Kamchatka" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1828" CREATED="2009-01-28 17:07:04.0" UUID="71d3b6d4-a66a-457d-8960-e908664b6698" TEXT="Juan Fernández Is." ABBREVIATEDLABEL="JNF" LABEL="Juan Fernández Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1829" CREATED="2009-01-28 17:07:04.0" UUID="15136023-a0f5-4a9e-b6d7-a23b28a83f37" TEXT="Jawa" ABBREVIATEDLABEL="JAW" LABEL="Jawa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1830" CREATED="2009-01-28 17:07:04.0" UUID="2f54dea5-2834-4328-8329-bcffa94f3a3f" TEXT="Japan" ABBREVIATEDLABEL="JAP" LABEL="Japan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1831" CREATED="2009-01-28 17:07:04.0" UUID="fb7f87d4-03dd-4c4a-8022-4fa000b5a39f" TEXT="Jamaica" ABBREVIATEDLABEL="JAM" LABEL="Jamaica" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1832" CREATED="2009-01-28 17:07:04.0" UUID="4de2b75b-ebc2-4185-9994-b1eddb508636" TEXT="Ivory Coast" ABBREVIATEDLABEL="IVO" LABEL="Ivory Coast" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1833" CREATED="2009-01-28 17:07:04.0" UUID="bdd5f7b8-f29a-4de3-a886-e53be99c962d" TEXT="Italy" ABBREVIATEDLABEL="ITA" LABEL="Italy" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1834" CREATED="2009-01-28 17:07:04.0" UUID="d8efba08-f926-4b43-858f-136065b8e88a" TEXT="Iraq" ABBREVIATEDLABEL="IRQ" LABEL="Iraq" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1835" CREATED="2009-01-28 17:07:04.0" UUID="415375bb-3e19-47dd-b439-b0c646f36023" TEXT="Iran" ABBREVIATEDLABEL="IRN" LABEL="Iran" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1836" CREATED="2009-01-28 17:07:04.0" UUID="21e044e4-f71b-43cf-98b3-b75af961ce21" TEXT="Irkutsk" ABBREVIATEDLABEL="IRK" LABEL="Irkutsk" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1837" CREATED="2009-01-28 17:07:04.0" UUID="03636b82-ce68-4149-ae49-6c9187a7072f" TEXT="Ireland" ABBREVIATEDLABEL="IRE" LABEL="Ireland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1838" CREATED="2009-01-28 17:07:04.0" UUID="83665c02-218a-4227-8b09-03e0646243e6" TEXT="Iowa" ABBREVIATEDLABEL="IOW" LABEL="Iowa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1839" CREATED="2009-01-28 17:07:04.0" UUID="6d70c13f-57f7-42bd-9d3d-c67a69fbf604" TEXT="Indiana" ABBREVIATEDLABEL="INI" LABEL="Indiana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1840" CREATED="2009-01-28 17:07:04.0" UUID="236fdb10-9d13-4eb2-8592-1f99dc6b1210" TEXT="India" ABBREVIATEDLABEL="IND" LABEL="India" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1841" CREATED="2009-01-28 17:07:04.0" UUID="6b81a6f3-0ee5-40f0-9130-55d7bea82833" TEXT="Illinois" ABBREVIATEDLABEL="ILL" LABEL="Illinois" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1842" CREATED="2009-01-28 17:07:04.0" UUID="b653fd83-2a6f-4d9e-b80f-d5c04e53204f" TEXT="Idaho" ABBREVIATEDLABEL="IDA" LABEL="Idaho" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1843" CREATED="2009-01-28 17:07:04.0" UUID="1d9b4b24-eda9-4fd6-b968-0feccd9b1534" TEXT="Iceland" ABBREVIATEDLABEL="ICE" LABEL="Iceland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1844" CREATED="2009-01-28 17:07:04.0" UUID="a5e8f908-3ec7-40dc-a9cb-a38bd22af89b" TEXT="Hungary" ABBREVIATEDLABEL="HUN" LABEL="Hungary" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1845" CREATED="2009-01-28 17:07:04.0" UUID="1e0b43f6-47ee-4b33-ac12-2413216d76aa" TEXT="Honduras" ABBREVIATEDLABEL="HON" LABEL="Honduras" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1846" CREATED="2009-01-28 17:07:04.0" UUID="70024418-c40d-41ba-b161-5db67156c84f" TEXT="Heard-McDonald Is." ABBREVIATEDLABEL="HMD" LABEL="Heard-McDonald Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1847" CREATED="2009-01-28 17:07:04.0" UUID="af767376-7e90-4799-afd2-d5860c4c9388" TEXT="Howland-Baker Is." ABBREVIATEDLABEL="HBI" LABEL="Howland-Baker Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1848" CREATED="2009-01-28 17:07:04.0" UUID="f96c8e08-bf4d-4ed3-b49f-acbecdf8f20c" TEXT="Hawaii" ABBREVIATEDLABEL="HAW" LABEL="Hawaii" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1849" CREATED="2009-01-28 17:07:04.0" UUID="56f952d4-d52f-45cb-82b8-cb3ef78376da" TEXT="Haiti" ABBREVIATEDLABEL="HAI" LABEL="Haiti" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1850" CREATED="2009-01-28 17:07:04.0" UUID="bbc1a564-ddef-4be6-9101-7d5db6169a93" TEXT="Guyana" ABBREVIATEDLABEL="GUY" LABEL="Guyana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1851" CREATED="2009-01-28 17:07:04.0" UUID="229ff862-2dac-4202-82d6-58fe3e854394" TEXT="Guinea" ABBREVIATEDLABEL="GUI" LABEL="Guinea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1852" CREATED="2009-01-28 17:07:04.0" UUID="507178c7-24e1-4c5c-960a-66c65ccc9fbc" TEXT="Guatemala" ABBREVIATEDLABEL="GUA" LABEL="Guatemala" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1853" CREATED="2009-01-28 17:07:04.0" UUID="6a9a3ab3-2065-4984-963e-d81dea70f645" TEXT="Gulf States" ABBREVIATEDLABEL="GST" LABEL="Gulf States" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1854" CREATED="2009-01-28 17:07:04.0" UUID="57e7cb8e-3a24-42fd-ad5f-ebb6c1afdff1" TEXT="Greece" ABBREVIATEDLABEL="GRC" LABEL="Greece" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1855" CREATED="2009-01-28 17:07:04.0" UUID="67b7621a-4505-4e19-9d10-7450d9b5fb6e" TEXT="Great Britain" ABBREVIATEDLABEL="GRB" LABEL="Great Britain" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1856" CREATED="2009-01-28 17:07:04.0" UUID="afae6011-8e2f-46c7-ad14-41e4ec2313ea" TEXT="Greenland" ABBREVIATEDLABEL="GNL" LABEL="Greenland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1857" CREATED="2009-01-28 17:07:04.0" UUID="77c7bf69-e10d-491a-863f-2dbcda90a32a" TEXT="Guinea-Bissau" ABBREVIATEDLABEL="GNB" LABEL="Guinea-Bissau" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1858" CREATED="2009-01-28 17:07:04.0" UUID="b1339663-b946-43cb-be02-7bd0baa89e7d" TEXT="Gilbert Is." ABBREVIATEDLABEL="GIL" LABEL="Gilbert Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1859" CREATED="2009-01-28 17:07:04.0" UUID="1ead52b4-169d-4279-8096-1bf77e28b7fc" TEXT="Ghana" ABBREVIATEDLABEL="GHA" LABEL="Ghana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1860" CREATED="2009-01-28 17:07:04.0" UUID="df3bb7f7-2bb2-47e0-a17e-987cbdcdd224" TEXT="Gulf of Guinea Is." ABBREVIATEDLABEL="GGI" LABEL="Gulf of Guinea Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1861" CREATED="2009-01-28 17:07:04.0" UUID="000cb44d-7b4e-418e-91ce-1b19372f690d" TEXT="Germany" ABBREVIATEDLABEL="GER" LABEL="Germany" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1862" CREATED="2009-01-28 17:07:04.0" UUID="88c1f1a1-fb64-4902-89ee-5d14c978edaf" TEXT="Georgia" ABBREVIATEDLABEL="GEO" LABEL="Georgia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1863" CREATED="2009-01-28 17:07:04.0" UUID="99a711dc-eb24-4159-9a2d-833c7a83ffe2" TEXT="Gambia, The" ABBREVIATEDLABEL="GAM" LABEL="Gambia, The" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1864" CREATED="2009-01-28 17:07:04.0" UUID="443f05ff-9370-4e60-890d-436cf600499f" TEXT="Galápagos" ABBREVIATEDLABEL="GAL" LABEL="Galápagos" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1865" CREATED="2009-01-28 17:07:04.0" UUID="79addac5-85e5-486a-9d12-3d8cb8351bad" TEXT="Gabon" ABBREVIATEDLABEL="GAB" LABEL="Gabon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1866" CREATED="2009-01-28 17:07:04.0" UUID="0dfda26a-c9e0-4308-9b49-f211f607801f" TEXT="French Guiana" ABBREVIATEDLABEL="FRG" LABEL="French Guiana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1867" CREATED="2009-01-28 17:07:04.0" UUID="15e00909-88f6-4ef2-980e-2559785fec38" TEXT="France" ABBREVIATEDLABEL="FRA" LABEL="France" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1868" CREATED="2009-01-28 17:07:04.0" UUID="95730947-e581-48ec-8f09-3c9ea8e1fe20" TEXT="Føroyar" ABBREVIATEDLABEL="FOR" LABEL="Føroyar" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1869" CREATED="2009-01-28 17:07:04.0" UUID="683bd0ac-6bbc-40ca-a8e8-c733710128c9" TEXT="Florida" ABBREVIATEDLABEL="FLA" LABEL="Florida" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1870" CREATED="2009-01-28 17:07:04.0" UUID="5bff2aae-b6e3-43ec-8295-5fdbcd7161cc" TEXT="Finland" ABBREVIATEDLABEL="FIN" LABEL="Finland" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1871" CREATED="2009-01-28 17:07:04.0" UUID="b9a48b83-e90d-4f65-a3b2-4c68b17ac684" TEXT="Fiji" ABBREVIATEDLABEL="FIJ" LABEL="Fiji" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1872" CREATED="2009-01-28 17:07:04.0" UUID="c1794960-97a1-4f7c-893e-023930a4745e" TEXT="Falkland Is." ABBREVIATEDLABEL="FAL" LABEL="Falkland Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1873" CREATED="2009-01-28 17:07:04.0" UUID="58179fc8-3380-40f3-9aa5-980b3bf856fe" TEXT="Ethiopia" ABBREVIATEDLABEL="ETH" LABEL="Ethiopia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1874" CREATED="2009-01-28 17:07:04.0" UUID="219f030e-7ad7-43c7-8ac7-9ffde648af76" TEXT="Eritrea" ABBREVIATEDLABEL="ERI" LABEL="Eritrea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1875" CREATED="2009-01-28 17:07:04.0" UUID="cedb67ae-8785-45eb-9c53-beb7198e13e3" TEXT="Equatorial Guinea" ABBREVIATEDLABEL="EQG" LABEL="Equatorial Guinea" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1876" CREATED="2009-01-28 17:07:04.0" UUID="f729d9b1-c133-42ec-bbe7-0948f63b2479" TEXT="El Salvador" ABBREVIATEDLABEL="ELS" LABEL="El Salvador" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1877" CREATED="2009-01-28 17:07:04.0" UUID="aeb01fc8-79ad-4b54-bd20-78b77db10306" TEXT="East Himalaya" ABBREVIATEDLABEL="EHM" LABEL="East Himalaya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1878" CREATED="2009-01-28 17:07:04.0" UUID="782d4ad3-232f-45a7-8139-1d22ad7c9a7e" TEXT="Egypt" ABBREVIATEDLABEL="EGY" LABEL="Egypt" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1879" CREATED="2009-01-28 17:07:04.0" UUID="e75de565-053b-477b-93f7-8af8dea1aebf" TEXT="Ecuador" ABBREVIATEDLABEL="ECU" LABEL="Ecuador" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1880" CREATED="2009-01-28 17:07:04.0" UUID="c17593b7-656f-44bc-b0be-bbe7125961dd" TEXT="Easter Is." ABBREVIATEDLABEL="EAS" LABEL="Easter Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1881" CREATED="2009-01-28 17:07:04.0" UUID="a89e3e9d-130f-4eab-99b7-9f6b41a0d92d" TEXT="East Aegean Is." ABBREVIATEDLABEL="EAI" LABEL="East Aegean Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1882" CREATED="2009-01-28 17:07:04.0" UUID="e948ef9c-d87e-4551-bede-21679170d4c8" TEXT="Desventurados Is." ABBREVIATEDLABEL="DSV" LABEL="Desventurados Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1883" CREATED="2009-01-28 17:07:04.0" UUID="73cb1471-e25d-4a7e-8b21-0bd26c40e1e3" TEXT="Dominican Republic" ABBREVIATEDLABEL="DOM" LABEL="Dominican Republic" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1884" CREATED="2009-01-28 17:07:04.0" UUID="e810844f-6a0b-4c11-9a02-bd38c0b4f06d" TEXT="Djibouti" ABBREVIATEDLABEL="DJI" LABEL="Djibouti" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1885" CREATED="2009-01-28 17:07:04.0" UUID="1227fd0c-0efa-48f3-94b6-e9fd047455d2" TEXT="Denmark" ABBREVIATEDLABEL="DEN" LABEL="Denmark" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1886" CREATED="2009-01-28 17:07:04.0" UUID="7c599ca7-6f04-4bd0-a16d-9296fbef151d" TEXT="Delaware" ABBREVIATEDLABEL="DEL" LABEL="Delaware" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1887" CREATED="2009-01-28 17:07:04.0" UUID="6f62156d-1d08-4807-9587-acabc2791d79" TEXT="Czechoslovakia" ABBREVIATEDLABEL="CZE" LABEL="Czechoslovakia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1888" CREATED="2009-01-28 17:07:04.0" UUID="1794ac6e-bc72-49c4-94ae-f570460ed080" TEXT="Cyprus" ABBREVIATEDLABEL="CYP" LABEL="Cyprus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1889" CREATED="2009-01-28 17:07:04.0" UUID="a261b624-d732-42d7-975d-36065f177bcd" TEXT="Cape Verde" ABBREVIATEDLABEL="CVI" LABEL="Cape Verde" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1890" CREATED="2009-01-28 17:07:04.0" UUID="28be14ef-04dc-46b6-88cf-3bb057644a71" TEXT="Cuba" ABBREVIATEDLABEL="CUB" LABEL="Cuba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1891" CREATED="2009-01-28 17:07:04.0" UUID="b933f05c-9022-429f-a89e-a2b2b0a8b3f8" TEXT="Chatham Is." ABBREVIATEDLABEL="CTM" LABEL="Chatham Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1892" CREATED="2009-01-28 17:07:04.0" UUID="7f35afa1-b5fd-456c-9052-93c7ce91ff7c" TEXT="Chita" ABBREVIATEDLABEL="CTA" LABEL="Chita" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1893" CREATED="2009-01-28 17:07:04.0" UUID="5eddb941-14d5-48aa-bec6-922880c8ef6a" TEXT="Crozet Is." ABBREVIATEDLABEL="CRZ" LABEL="Crozet Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1894" CREATED="2009-01-28 17:07:04.0" UUID="4b003b75-9498-4b3a-8da2-6ee2cdd441eb" TEXT="Caroline Is." ABBREVIATEDLABEL="CRL" LABEL="Caroline Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1895" CREATED="2009-01-28 17:07:04.0" UUID="0154a3ee-0118-4cea-9198-91bfb512dcb0" TEXT="Caprivi Strip" ABBREVIATEDLABEL="CPV" LABEL="Caprivi Strip" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1896" CREATED="2009-01-28 17:07:04.0" UUID="9ecae3d5-0841-4fd0-ad75-9b3af0c8b8cf" TEXT="Cape Provinces" ABBREVIATEDLABEL="CPP" LABEL="Cape Provinces" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1897" CREATED="2009-01-28 17:07:04.0" UUID="5fe9a9f6-d224-4e68-a84c-1220369d0908" TEXT="Central American Pacific Is." ABBREVIATEDLABEL="CPI" LABEL="Central American Pacific Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1898" CREATED="2009-01-28 17:07:04.0" UUID="410a9f06-c532-4f27-b79b-3ceb23d3c407" TEXT="Costa Rica" ABBREVIATEDLABEL="COS" LABEL="Costa Rica" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1899" CREATED="2009-01-28 17:07:04.0" UUID="8f568c56-3176-46b2-a7b5-f67dfe452eaa" TEXT="Corse" ABBREVIATEDLABEL="COR" LABEL="Corse" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1900" CREATED="2009-01-28 17:07:04.0" UUID="a286b329-3de6-4395-baed-f3e07bdb7544" TEXT="Cook Is." ABBREVIATEDLABEL="COO" LABEL="Cook Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1901" CREATED="2009-01-28 17:07:04.0" UUID="bf2ec9fd-630f-46a5-aa29-9672cc2188b6" TEXT="Congo" ABBREVIATEDLABEL="CON" LABEL="Congo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1902" CREATED="2009-01-28 17:07:04.0" UUID="8ee842d8-84fd-4cd6-aa74-bc2bc630e071" TEXT="Comoros" ABBREVIATEDLABEL="COM" LABEL="Comoros" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1903" CREATED="2009-01-28 17:07:04.0" UUID="1eb8e19c-209c-4d6d-9428-1b19419dcdbc" TEXT="Colorado" ABBREVIATEDLABEL="COL" LABEL="Colorado" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1904" CREATED="2009-01-28 17:07:04.0" UUID="3e4722ab-be1c-4a25-bbf2-600dd71c8097" TEXT="Canary Is." ABBREVIATEDLABEL="CNY" LABEL="Canary Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1905" CREATED="2009-01-28 17:07:04.0" UUID="19a1e304-1608-487f-8151-afd371d42bcc" TEXT="Connecticut" ABBREVIATEDLABEL="CNT" LABEL="Connecticut" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1906" CREATED="2009-01-28 17:07:04.0" UUID="5a161a98-e200-4786-b477-e37e8fe21369" TEXT="Cameroon" ABBREVIATEDLABEL="CMN" LABEL="Cameroon" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1907" CREATED="2009-01-28 17:07:04.0" UUID="31f1f61b-0ce7-44a0-a29a-c73e6fbeafaa" TEXT="Chile South" ABBREVIATEDLABEL="CLS" LABEL="Chile South" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1908" CREATED="2009-01-28 17:07:04.0" UUID="50eef45c-6de9-4e08-82e9-36867def9630" TEXT="Chile North" ABBREVIATEDLABEL="CLN" LABEL="Chile North" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1909" CREATED="2009-01-28 17:07:04.0" UUID="dd4940de-f8f1-4bda-b1fd-d795a7d81b92" TEXT="Colombia" ABBREVIATEDLABEL="CLM" LABEL="Colombia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1910" CREATED="2009-01-28 17:07:04.0" UUID="4f154b4d-c6d2-4da9-a015-fe6312f0616a" TEXT="Chile Central" ABBREVIATEDLABEL="CLC" LABEL="Chile Central" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1911" CREATED="2009-01-28 17:07:04.0" UUID="76384b54-afa0-4b20-a926-b8f21133c7f9" TEXT="Cocos (Keeling) Is." ABBREVIATEDLABEL="CKI" LABEL="Cocos (Keeling) Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1912" CREATED="2009-01-28 17:07:04.0" UUID="70f6f84c-da6c-4809-9af2-4591e15ce00f" TEXT="Xinjiang" ABBREVIATEDLABEL="CHX" LABEL="Xinjiang" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1913" CREATED="2009-01-28 17:07:04.0" UUID="6eae88ff-edb0-4172-981f-a0a5d5c9b79e" TEXT="Tibet" ABBREVIATEDLABEL="CHT" LABEL="Tibet" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1914" CREATED="2009-01-28 17:07:04.0" UUID="b663999c-30fc-4b31-af11-2b9714fd1d60" TEXT="China Southeast" ABBREVIATEDLABEL="CHS" LABEL="China Southeast" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1915" CREATED="2009-01-28 17:07:04.0" UUID="00fac4f1-09a0-4415-b4d0-2dc7dbc37e9b" TEXT="Qinghai" ABBREVIATEDLABEL="CHQ" LABEL="Qinghai" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1916" CREATED="2009-01-28 17:07:04.0" UUID="d8ebf145-8f21-441e-bd3f-d719a1f38403" TEXT="China North-Central" ABBREVIATEDLABEL="CHN" LABEL="China North-Central" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1917" CREATED="2009-01-28 17:07:04.0" UUID="efb3ce2f-0a61-4f97-81de-b5a53d3ce053" TEXT="Manchuria" ABBREVIATEDLABEL="CHM" LABEL="Manchuria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1918" CREATED="2009-01-28 17:07:04.0" UUID="8c1569b5-ba29-44d6-a76d-ed7c8c7dc621" TEXT="Inner Mongolia" ABBREVIATEDLABEL="CHI" LABEL="Inner Mongolia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1919" CREATED="2009-01-28 17:07:04.0" UUID="ca0fb300-f3cc-4beb-b2d5-5cee0fb2b7ee" TEXT="Hainan" ABBREVIATEDLABEL="CHH" LABEL="Hainan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1920" CREATED="2009-01-28 17:07:04.0" UUID="68cd8fd6-c07c-4937-a453-92290b333e8f" TEXT="China South-Central" ABBREVIATEDLABEL="CHC" LABEL="China South-Central" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1921" CREATED="2009-01-28 17:07:04.0" UUID="44df1cdf-0ce4-4c61-ad5c-3fcd5aef18ef" TEXT="Chad" ABBREVIATEDLABEL="CHA" LABEL="Chad" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1922" CREATED="2009-01-28 17:07:04.0" UUID="74991e89-501b-423a-af98-7e8d764a925c" TEXT="Chagos Archipelago" ABBREVIATEDLABEL="CGS" LABEL="Chagos Archipelago" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1923" CREATED="2009-01-28 17:07:04.0" UUID="c7025858-90fe-48fa-a7b0-208ca9ae9683" TEXT="Cambodia" ABBREVIATEDLABEL="CBD" LABEL="Cambodia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1924" CREATED="2009-01-28 17:07:04.0" UUID="cb523758-ef38-46bf-96b4-4b1794b2d771" TEXT="Cayman Is." ABBREVIATEDLABEL="CAY" LABEL="Cayman Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1925" CREATED="2009-01-28 17:07:04.0" UUID="59a7c456-1eea-44bf-8dd0-28973ea11379" TEXT="California" ABBREVIATEDLABEL="CAL" LABEL="California" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1926" CREATED="2009-01-28 17:07:04.0" UUID="7c4d000f-22e6-4e39-becf-f6188242853d" TEXT="Central African Republic" ABBREVIATEDLABEL="CAF" LABEL="Central African Republic" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1927" CREATED="2009-01-28 17:07:04.0" UUID="16eecf8c-35c8-4d04-9deb-20b53276d95f" TEXT="Cabinda" ABBREVIATEDLABEL="CAB" LABEL="Cabinda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1928" CREATED="2009-01-28 17:07:04.0" UUID="cd7f48ee-7388-46f2-8b33-9b61908672cc" TEXT="Brazil South" ABBREVIATEDLABEL="BZS" LABEL="Brazil South" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1929" CREATED="2009-01-28 17:07:04.0" UUID="2c8ef356-96c9-412f-9216-9fc9935255a4" TEXT="Brazil North" ABBREVIATEDLABEL="BZN" LABEL="Brazil North" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1930" CREATED="2009-01-28 17:07:04.0" UUID="db2b938e-4380-4e0b-b272-55a2defc470e" TEXT="Brazil Southeast" ABBREVIATEDLABEL="BZL" LABEL="Brazil Southeast" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1931" CREATED="2009-01-28 17:07:04.0" UUID="183c7a98-4fcf-4853-bf21-8e0ff7e0a1da" TEXT="Brazil Northeast" ABBREVIATEDLABEL="BZE" LABEL="Brazil Northeast" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1932" CREATED="2009-01-28 17:07:04.0" UUID="814bbb45-fa08-4c5e-bc09-5dac9e8ede17" TEXT="Brazil West-Central" ABBREVIATEDLABEL="BZC" LABEL="Brazil West-Central" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1933" CREATED="2009-01-28 17:07:04.0" UUID="73098163-cf92-4224-8f57-ae45d6fb4d79" TEXT="Burundi" ABBREVIATEDLABEL="BUR" LABEL="Burundi" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1934" CREATED="2009-01-28 17:07:04.0" UUID="9775e1a7-bfbc-4373-ae78-a257182505a0" TEXT="Bulgaria" ABBREVIATEDLABEL="BUL" LABEL="Bulgaria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1935" CREATED="2009-01-28 17:07:04.0" UUID="62360e78-23c2-4e21-a992-85e52b1bbf50" TEXT="Buryatiya" ABBREVIATEDLABEL="BRY" LABEL="Buryatiya" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1936" CREATED="2009-01-28 17:07:04.0" UUID="ffa17374-1a85-4c3d-8828-0967575012ca" TEXT="British Columbia" ABBREVIATEDLABEL="BRC" LABEL="British Columbia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1937" CREATED="2009-01-28 17:07:04.0" UUID="d51d8d8b-330c-43fb-9f86-5b2bfc81dcb0" TEXT="Bouvet I." ABBREVIATEDLABEL="BOU" LABEL="Bouvet I." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1938" CREATED="2009-01-28 17:07:04.0" UUID="e849d575-7266-4c55-897f-2b569db8afc2" TEXT="Botswana" ABBREVIATEDLABEL="BOT" LABEL="Botswana" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1939" CREATED="2009-01-28 17:07:04.0" UUID="8268c25a-0fa8-410f-ab1c-b102b1929206" TEXT="Borneo" ABBREVIATEDLABEL="BOR" LABEL="Borneo" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1940" CREATED="2009-01-28 17:07:04.0" UUID="e7b52e8e-3dba-4b9f-9d89-4403ffb20855" TEXT="Bolivia" ABBREVIATEDLABEL="BOL" LABEL="Bolivia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1941" CREATED="2009-01-28 17:07:04.0" UUID="9f18c292-e71f-4427-8172-fc3fcff55411" TEXT="Belize" ABBREVIATEDLABEL="BLZ" LABEL="Belize" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1942" CREATED="2009-01-28 17:07:04.0" UUID="9afdaeb1-40c4-4c41-b090-7ce8dcd4b93d" TEXT="Baltic States" ABBREVIATEDLABEL="BLT" LABEL="Baltic States" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1943" CREATED="2009-01-28 17:07:04.0" UUID="e1d9dcae-f3ab-48aa-a5b5-b1ad3a8064a1" TEXT="Belarus" ABBREVIATEDLABEL="BLR" LABEL="Belarus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1944" CREATED="2009-01-28 17:07:04.0" UUID="a1f3b9e1-1c1e-43fb-9f9c-cbc6657c661b" TEXT="Burkina" ABBREVIATEDLABEL="BKN" LABEL="Burkina" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1945" CREATED="2009-01-28 17:07:04.0" UUID="33751e00-9438-4286-a082-cafdacedbc65" TEXT="Bismarck Archipelago" ABBREVIATEDLABEL="BIS" LABEL="Bismarck Archipelago" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1946" CREATED="2009-01-28 17:07:04.0" UUID="b7f2886f-44ec-4bb5-b21c-4d539a74e95f" TEXT="Belgium" ABBREVIATEDLABEL="BGM" LABEL="Belgium" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1947" CREATED="2009-01-28 17:07:04.0" UUID="df276736-946c-43b9-97fb-f6aa140c968a" TEXT="Bermuda" ABBREVIATEDLABEL="BER" LABEL="Bermuda" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1948" CREATED="2009-01-28 17:07:04.0" UUID="f29738fa-3e44-48f0-97d7-500b3321ea9f" TEXT="Benin" ABBREVIATEDLABEL="BEN" LABEL="Benin" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1949" CREATED="2009-01-28 17:07:04.0" UUID="064d1847-bf76-4844-9182-7650d4d71755" TEXT="Bangladesh" ABBREVIATEDLABEL="BAN" LABEL="Bangladesh" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1950" CREATED="2009-01-28 17:07:04.0" UUID="41f0c9a1-1715-4bc6-910e-ab51a8928414" TEXT="Baleares" ABBREVIATEDLABEL="BAL" LABEL="Baleares" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1951" CREATED="2009-01-28 17:07:04.0" UUID="96bb2337-8818-49d3-b833-288913507ac7" TEXT="Bahamas" ABBREVIATEDLABEL="BAH" LABEL="Bahamas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1952" CREATED="2009-01-28 17:07:04.0" UUID="96e65ad5-3d68-4799-9b49-6f54d90eb01b" TEXT="Azores" ABBREVIATEDLABEL="AZO" LABEL="Azores" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1953" CREATED="2009-01-28 17:07:04.0" UUID="29710acc-d55a-4fda-9b6c-a3c000cd44b6" TEXT="Austria" ABBREVIATEDLABEL="AUT" LABEL="Austria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1954" CREATED="2009-01-28 17:07:04.0" UUID="aa147cbf-af78-4a2f-8c31-e65d8e7be436" TEXT="Antipodean Is." ABBREVIATEDLABEL="ATP" LABEL="Antipodean Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1955" CREATED="2009-01-28 17:07:04.0" UUID="818af1bd-826a-498e-bb4c-768d11bde35c" TEXT="Assam" ABBREVIATEDLABEL="ASS" LABEL="Assam" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1956" CREATED="2009-01-28 17:07:04.0" UUID="12ffb227-98ab-4e8c-8879-a359df9162d1" TEXT="Amsterdam-St.Paul Is." ABBREVIATEDLABEL="ASP" LABEL="Amsterdam-St.Paul Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1957" CREATED="2009-01-28 17:07:04.0" UUID="65f40d6c-e83b-4768-ab57-aaf82550771e" TEXT="Alaska" ABBREVIATEDLABEL="ASK" LABEL="Alaska" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1958" CREATED="2009-01-28 17:07:04.0" UUID="8cde87df-d2f3-441c-8daa-067b5e4541c8" TEXT="Ascension" ABBREVIATEDLABEL="ASC" LABEL="Ascension" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1959" CREATED="2009-01-28 17:07:04.0" UUID="c1a3506f-69ee-4df5-b09a-f04b275f9306" TEXT="Aruba" ABBREVIATEDLABEL="ARU" LABEL="Aruba" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1960" CREATED="2009-01-28 17:07:04.0" UUID="a1d4125f-6854-44cd-ae2b-e6d75f63037d" TEXT="Arkansas" ABBREVIATEDLABEL="ARK" LABEL="Arkansas" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1961" CREATED="2009-01-28 17:07:04.0" UUID="b2b5918a-59f3-4240-bb5c-4bcebc723007" TEXT="Arizona" ABBREVIATEDLABEL="ARI" LABEL="Arizona" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1962" CREATED="2009-01-28 17:07:04.0" UUID="905e20e8-cdb4-44db-b690-b87d37e9f554" TEXT="Antarctica" ABBREVIATEDLABEL="ANT" LABEL="Antarctica" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1963" CREATED="2009-01-28 17:07:04.0" UUID="c0143cc5-7b95-43f8-acc2-fdceaf807428" TEXT="Angola" ABBREVIATEDLABEL="ANG" LABEL="Angola" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1964" CREATED="2009-01-28 17:07:04.0" UUID="8fb59b64-eef1-419f-90ec-32052a80c3c6" TEXT="Andaman Is." ABBREVIATEDLABEL="AND" LABEL="Andaman Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1965" CREATED="2009-01-28 17:07:04.0" UUID="4d87632f-b174-498d-a3bb-b10bce0ecff9" TEXT="Amur" ABBREVIATEDLABEL="AMU" LABEL="Amur" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1966" CREATED="2009-01-28 17:07:04.0" UUID="f5bd9144-5f45-4516-aba9-6d3eb2e688b3" TEXT="Aleutian Is." ABBREVIATEDLABEL="ALU" LABEL="Aleutian Is." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1967" CREATED="2009-01-28 17:07:04.0" UUID="f58d80db-9dc8-4bde-b579-e1c243c94cc3" TEXT="Altay" ABBREVIATEDLABEL="ALT" LABEL="Altay" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1968" CREATED="2009-01-28 17:07:04.0" UUID="5f4ddba8-6d40-4cba-8f75-56957db6dd2c" TEXT="Algeria" ABBREVIATEDLABEL="ALG" LABEL="Algeria" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1969" CREATED="2009-01-28 17:07:04.0" UUID="03724563-65a2-4420-963f-d4b1baa41741" TEXT="Aldabra" ABBREVIATEDLABEL="ALD" LABEL="Aldabra" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1970" CREATED="2009-01-28 17:07:04.0" UUID="e22dd7c2-e886-4b79-8789-1c476da563cb" TEXT="Albania" ABBREVIATEDLABEL="ALB" LABEL="Albania" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1971" CREATED="2009-01-28 17:07:04.0" UUID="8adc9cb5-8f49-4f9e-b7d7-1dd6dba22541" TEXT="Alabama" ABBREVIATEDLABEL="ALA" LABEL="Alabama" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1972" CREATED="2009-01-28 17:07:04.0" UUID="8ead5d5a-ab74-401a-a1e4-c05cfcd855a3" TEXT="Argentina Northwest" ABBREVIATEDLABEL="AGW" LABEL="Argentina Northwest" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1973" CREATED="2009-01-28 17:07:04.0" UUID="012bbf6f-0b32-4a63-8ae0-e928902dd0c6" TEXT="Argentina South" ABBREVIATEDLABEL="AGS" LABEL="Argentina South" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1974" CREATED="2009-01-28 17:07:04.0" UUID="99342bd9-d2ff-44ed-9f0f-b8d88865454c" TEXT="Argentina Northeast" ABBREVIATEDLABEL="AGE" LABEL="Argentina Northeast" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1975" CREATED="2009-01-28 17:07:04.0" UUID="c9dfed8d-2538-4417-9fae-5911c428b4c4" TEXT="Afghanistan" ABBREVIATEDLABEL="AFG" LABEL="Afghanistan" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1976" CREATED="2009-01-28 17:07:04.0" UUID="8347fd8a-4eb5-441a-8cf1-f242db4e5b61" TEXT="Alberta" ABBREVIATEDLABEL="ABT" LABEL="Alberta" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1977" CREATED="2009-01-28 17:07:04.0" UUID="ccad69c3-3e46-4138-b48a-778e29917427" TEXT="Antarctic Continent" ABBREVIATEDLABEL="91" LABEL="Antarctic Continent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1978" CREATED="2009-01-28 17:07:04.0" UUID="c2c3dc61-2390-479c-ab6b-f1cb2e78875b" TEXT="Subantarctic Islands" ABBREVIATEDLABEL="90" LABEL="Subantarctic Islands" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1979" CREATED="2009-01-28 17:07:04.0" UUID="24b75758-4dc1-4562-a27a-6c5a3a221594" TEXT="Southern South America" ABBREVIATEDLABEL="85" LABEL="Southern South America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1980" CREATED="2009-01-28 17:07:04.0" UUID="c648f569-44fe-495b-8581-08dbe31d5cee" TEXT="Brazil" ABBREVIATEDLABEL="84" LABEL="Brazil" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1981" CREATED="2009-01-28 17:07:04.0" UUID="4b8f0105-53e8-4438-874b-593c039c543a" TEXT="Western South America" ABBREVIATEDLABEL="83" LABEL="Western South America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1982" CREATED="2009-01-28 17:07:04.0" UUID="971d338b-e07b-45da-b13d-3d3ff747ca92" TEXT="Northern South America" ABBREVIATEDLABEL="82" LABEL="Northern South America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1983" CREATED="2009-01-28 17:07:04.0" UUID="260c9e6c-faba-4037-88a7-71af7832dba6" TEXT="Caribbean" ABBREVIATEDLABEL="81" LABEL="Caribbean" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1984" CREATED="2009-01-28 17:07:04.0" UUID="a057d562-c3bf-4b63-b489-bc4b663cf66b" TEXT="Central America" ABBREVIATEDLABEL="80" LABEL="Central America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1985" CREATED="2009-01-28 17:07:04.0" UUID="cfe46a56-8983-4f42-836f-1b87abcb5628" TEXT="Mexico" ABBREVIATEDLABEL="79" LABEL="Mexico" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1986" CREATED="2009-01-28 17:07:04.0" UUID="6916629f-b15f-4f35-86e1-2ccd2268da70" TEXT="Southeastern U.S.A." ABBREVIATEDLABEL="78" LABEL="Southeastern U.S.A." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1987" CREATED="2009-01-28 17:07:04.0" UUID="9f101792-b20b-486d-87d5-e44f3f4519cc" TEXT="South-Central U.S.A." ABBREVIATEDLABEL="77" LABEL="South-Central U.S.A." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1988" CREATED="2009-01-28 17:07:04.0" UUID="ca5e37b8-7c97-4314-9e3c-a8ce6a97f252" TEXT="Southwestern U.S.A." ABBREVIATEDLABEL="76" LABEL="Southwestern U.S.A." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1989" CREATED="2009-01-28 17:07:04.0" UUID="c93c49bd-7937-4888-b4ef-24addce67b87" TEXT="Northeastern U.S.A." ABBREVIATEDLABEL="75" LABEL="Northeastern U.S.A." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1990" CREATED="2009-01-28 17:07:04.0" UUID="738ab1f2-6e1d-472e-ad86-2faeee713b98" TEXT="North-Central U.S.A." ABBREVIATEDLABEL="74" LABEL="North-Central U.S.A." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1991" CREATED="2009-01-28 17:07:04.0" UUID="d93e22e9-682d-4d2f-bef5-cc56280fab7f" TEXT="Northwestern U.S.A." ABBREVIATEDLABEL="73" LABEL="Northwestern U.S.A." LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1992" CREATED="2009-01-28 17:07:04.0" UUID="ccddf33e-4fd0-469e-8fa8-645ed6b47b5c" TEXT="Eastern Canada" ABBREVIATEDLABEL="72" LABEL="Eastern Canada" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1993" CREATED="2009-01-28 17:07:04.0" UUID="affb0bf7-16dd-41a3-b517-1b7c05ff3c42" TEXT="Western Canada" ABBREVIATEDLABEL="71" LABEL="Western Canada" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1994" CREATED="2009-01-28 17:07:04.0" UUID="2a3ed8da-a673-4fe5-b7d2-d8132ceeceae" TEXT="Subarctic America" ABBREVIATEDLABEL="70" LABEL="Subarctic America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1995" CREATED="2009-01-28 17:07:04.0" UUID="25d500b3-c6ed-4eae-8369-f0f5ff71e0a4" TEXT="North-Central Pacific" ABBREVIATEDLABEL="63" LABEL="North-Central Pacific" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1996" CREATED="2009-01-28 17:07:04.0" UUID="63cf4742-0b2d-4ab9-92df-88e813f1b6a1" TEXT="Northwestern Pacific" ABBREVIATEDLABEL="62" LABEL="Northwestern Pacific" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1997" CREATED="2009-01-28 17:07:04.0" UUID="1d5399da-c3ee-4c79-9de4-c8dafea9a34b" TEXT="South-Central Pacific" ABBREVIATEDLABEL="61" LABEL="South-Central Pacific" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1998" CREATED="2009-01-28 17:07:04.0" UUID="7ec5bdf3-beca-47bc-b677-2b1fac4a3f39" TEXT="Southwestern Pacific" ABBREVIATEDLABEL="60" LABEL="Southwestern Pacific" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="1999" CREATED="2009-01-28 17:07:04.0" UUID="abca5959-921f-4831-b33f-e16d8f56ae03" TEXT="New Zealand" ABBREVIATEDLABEL="51" LABEL="New Zealand" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2000" CREATED="2009-01-28 17:07:04.0" UUID="390e80d3-9833-4086-bb48-1ee01067ae74" TEXT="Australia" ABBREVIATEDLABEL="50" LABEL="Australia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2001" CREATED="2009-01-28 17:07:04.0" UUID="29a8345f-68a1-4667-be74-d4e0a03177b0" TEXT="Papuasia" ABBREVIATEDLABEL="43" LABEL="Papuasia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2002" CREATED="2009-01-28 17:07:04.0" UUID="4b287e13-d2cf-465f-a04b-ccd615bb1b39" TEXT="Malesia" ABBREVIATEDLABEL="42" LABEL="Malesia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2003" CREATED="2009-01-28 17:07:04.0" UUID="1de5329a-4893-44d1-9d3a-7233025a7788" TEXT="Indo-China" ABBREVIATEDLABEL="41" LABEL="Indo-China" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2004" CREATED="2009-01-28 17:07:04.0" UUID="8496bff1-c2da-46a9-b087-30e86b919bcd" TEXT="Indian Subcontinent" ABBREVIATEDLABEL="40" LABEL="Indian Subcontinent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2005" CREATED="2009-01-28 17:07:04.0" UUID="066cbf94-f4bf-439b-8b1c-6711ff22e6e6" TEXT="Eastern Asia" ABBREVIATEDLABEL="38" LABEL="Eastern Asia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2006" CREATED="2009-01-28 17:07:04.0" UUID="a2c6b9a3-5373-4249-9782-61a8749253fb" TEXT="Mongolia" ABBREVIATEDLABEL="37" LABEL="Mongolia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2007" CREATED="2009-01-28 17:07:04.0" UUID="e5e1d779-3f1d-4319-91e0-24493a323a5d" TEXT="China" ABBREVIATEDLABEL="36" LABEL="China" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2008" CREATED="2009-01-28 17:07:04.0" UUID="5d2fc0f0-f8b7-4751-95d9-b98bfe9b77b9" TEXT="Arabian Peninsula" ABBREVIATEDLABEL="35" LABEL="Arabian Peninsula" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2009" CREATED="2009-01-28 17:07:04.0" UUID="2a45d1ad-edc7-441f-966c-4fd6ba23c9d7" TEXT="Western Asia" ABBREVIATEDLABEL="34" LABEL="Western Asia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2010" CREATED="2009-01-28 17:07:04.0" UUID="e13cbf3f-2232-4444-8151-55df64cb88c1" TEXT="Caucasus" ABBREVIATEDLABEL="33" LABEL="Caucasus" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2011" CREATED="2009-01-28 17:07:04.0" UUID="0f14af86-5baa-49d4-9ee0-efe535ead132" TEXT="Middle Asia" ABBREVIATEDLABEL="32" LABEL="Middle Asia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2012" CREATED="2009-01-28 17:07:04.0" UUID="9e240f60-db8c-492b-9ed0-caea41162ca5" TEXT="Russian Far East" ABBREVIATEDLABEL="31" LABEL="Russian Far East" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2013" CREATED="2009-01-28 17:07:04.0" UUID="7ba3fc23-c928-4288-ab41-c2740a648439" TEXT="Siberia" ABBREVIATEDLABEL="30" LABEL="Siberia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2014" CREATED="2009-01-28 17:07:04.0" UUID="76070580-aaa8-48ca-ac70-45331188fec8" TEXT="Western Indian Ocean" ABBREVIATEDLABEL="29" LABEL="Western Indian Ocean" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2015" CREATED="2009-01-28 17:07:04.0" UUID="c066223f-7690-45a1-9cdd-f6611a913b97" TEXT="Middle Atlantic Ocean" ABBREVIATEDLABEL="28" LABEL="Middle Atlantic Ocean" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2016" CREATED="2009-01-28 17:07:04.0" UUID="a7006220-e7a5-4e15-9d4a-c91c9c12f492" TEXT="Southern Africa" ABBREVIATEDLABEL="27" LABEL="Southern Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2017" CREATED="2009-01-28 17:07:04.0" UUID="781e272f-a434-4e83-b134-66977b011dbc" TEXT="South Tropical Africa" ABBREVIATEDLABEL="26" LABEL="South Tropical Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2018" CREATED="2009-01-28 17:07:04.0" UUID="58c5dde5-39ff-4ac6-ad53-8f894b232f1d" TEXT="East Tropical Africa" ABBREVIATEDLABEL="25" LABEL="East Tropical Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2019" CREATED="2009-01-28 17:07:04.0" UUID="803b33f8-542b-4cf9-aa6a-91cc416f8b12" TEXT="Northeast Tropical Africa" ABBREVIATEDLABEL="24" LABEL="Northeast Tropical Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2020" CREATED="2009-01-28 17:07:04.0" UUID="34b7477f-1b97-41d6-ba21-9b3f64ea0d7a" TEXT="West-Central Tropical Africa" ABBREVIATEDLABEL="23" LABEL="West-Central Tropical Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2021" CREATED="2009-01-28 17:07:04.0" UUID="717b84ef-686d-40af-b0a4-c79b4535610a" TEXT="West Tropical Africa" ABBREVIATEDLABEL="22" LABEL="West Tropical Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2022" CREATED="2009-01-28 17:07:04.0" UUID="6c2d579d-66a4-4caa-9d3d-f9c95a5a0078" TEXT="Macaronesia" ABBREVIATEDLABEL="21" LABEL="Macaronesia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2023" CREATED="2009-01-28 17:07:04.0" UUID="b45ea90f-fb52-4b9f-9897-66ca8c30c806" TEXT="Northern Africa" ABBREVIATEDLABEL="20" LABEL="Northern Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2024" CREATED="2009-01-28 17:07:04.0" UUID="519e5628-495b-423d-8d62-594a6f36520c" TEXT="Eastern Europe" ABBREVIATEDLABEL="14" LABEL="Eastern Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2025" CREATED="2009-01-28 17:07:04.0" UUID="59632122-db22-4425-aaa7-8e03e138083e" TEXT="Southeastern Europe" ABBREVIATEDLABEL="13" LABEL="Southeastern Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2026" CREATED="2009-01-28 17:07:04.0" UUID="02d2a641-365a-47c1-a7c6-d364acf70463" TEXT="Southwestern Europe" ABBREVIATEDLABEL="12" LABEL="Southwestern Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2027" CREATED="2009-01-28 17:07:04.0" UUID="19fade52-1b65-4db2-881d-49c15492a696" TEXT="Middle Europe" ABBREVIATEDLABEL="11" LABEL="Middle Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2028" CREATED="2009-01-28 17:07:04.0" UUID="4e8a1da5-d978-4865-b8b5-24e9d516e024" TEXT="Northern Europe" ABBREVIATEDLABEL="10" LABEL="Northern Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2029" CREATED="2009-01-28 17:07:04.0" UUID="4136a52a-ad17-4bac-8a3e-5f1974b607ee" TEXT="Antarctic" ABBREVIATEDLABEL="9" LABEL="Antarctic" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2030" CREATED="2009-01-28 17:07:04.0" UUID="11472879-1255-4f37-b5b3-cfb0619bc61e" TEXT="Southern America" ABBREVIATEDLABEL="8" LABEL="Southern America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2031" CREATED="2009-01-28 17:07:04.0" UUID="49656a4f-df0e-4a37-97f2-cf19a6e05c60" TEXT="Northern America" ABBREVIATEDLABEL="7" LABEL="Northern America" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2032" CREATED="2009-01-28 17:07:04.0" UUID="fab5077c-f240-4885-849a-8e18fb617296" TEXT="Pacific" ABBREVIATEDLABEL="6" LABEL="Pacific" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2033" CREATED="2009-01-28 17:07:04.0" UUID="0bb79131-d872-49e2-a354-602975407c6d" TEXT="Australasia" ABBREVIATEDLABEL="5" LABEL="Australasia" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2034" CREATED="2009-01-28 17:07:04.0" UUID="fa8f29e2-1b9c-4f43-bdca-fbb99017e843" TEXT="Asia-Tropical" ABBREVIATEDLABEL="4" LABEL="Asia-Tropical" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2035" CREATED="2009-01-28 17:07:04.0" UUID="355acfe5-fda1-4dba-9799-b8099a1e4aa3" TEXT="Asia-Temperate" ABBREVIATEDLABEL="3" LABEL="Asia-Temperate" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2036" CREATED="2009-01-28 17:07:04.0" UUID="954851fc-2d30-4b38-8486-71d0fab6c90f" TEXT="Africa" ABBREVIATEDLABEL="2" LABEL="Africa" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2037" CREATED="2009-01-28 17:07:04.0" UUID="1acf6721-110c-4114-a940-11c71525c0de" TEXT="Europe" ABBREVIATEDLABEL="1" LABEL="Europe" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2038" CREATED="2009-01-28 17:07:06.0" UUID="d1dd71c7-7832-45d1-a74d-6339093522e1" TEXT="eu.etaxonomy.cdm.model.description.PresenceTerm" LABEL="PresenceTerm" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2039" CREATED="2009-01-28 17:07:06.0" UUID="13143e8b-d44b-4afb-b14f-56efc0e8616b" TEXT="endemic for the relevant area" ABBREVIATEDLABEL="e" LABEL="endemic for the relevant area" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2040" CREATED="2009-01-28 17:07:06.0" UUID="99905124-cf94-426e-b994-233b862fbabf" TEXT="introduced: cultivated" ABBREVIATEDLABEL="ic" LABEL="introduced: cultivated" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2041" CREATED="2009-01-28 17:07:06.0" UUID="e5eb017b-64ae-457b-bc62-b68a0b8ac7c9" TEXT="introduced: reported in error" ABBREVIATEDLABEL="if" LABEL="introduced: reported in error" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2042" CREATED="2009-01-28 17:07:06.0" UUID="2a3ca576-35e7-42c5-9537-c1ac34bc0ac2" TEXT="introduced: naturalized" ABBREVIATEDLABEL="in" LABEL="introduced: naturalized" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2043" CREATED="2009-01-28 17:07:06.0" UUID="39de26c8-ec2c-4b1b-958c-1ee57b54c415" TEXT="introduced: adventitious (casual)" ABBREVIATEDLABEL="id" LABEL="introduced: adventitious (casual)" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2044" CREATED="2009-01-28 17:07:06.0" UUID="e0aa8417-c64c-4e07-88f3-ceb04ef9c53e" TEXT="introduced: uncertain degree of naturalisation" ABBREVIATEDLABEL="ip" LABEL="introduced: uncertain degree of naturalisation" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2045" CREATED="2009-01-28 17:07:06.0" UUID="7de33d54-ff52-4c9e-88a2-b9c196d0893e" TEXT="introduced: doubtfully introduced (perhaps cultivated only)" ABBREVIATEDLABEL="id" LABEL="introduced: doubtfully introduced (perhaps cultivated only)" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2046" CREATED="2009-01-28 17:07:06.0" UUID="aeccde77-184c-4dcb-8bd0-4daa703e93c9" TEXT="introduced: formerly introduced" ABBREVIATEDLABEL="ie" LABEL="introduced: formerly introduced" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2047" CREATED="2009-01-28 17:07:06.0" UUID="b4d34d7b-ac7b-406a-b32d-f10d927b682b" TEXT="introduced: presence questionable" ABBREVIATEDLABEL="iq" LABEL="introduced: presence questionable" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2048" CREATED="2009-01-28 17:07:06.0" UUID="33d2ee96-3fb9-474f-b6ac-e18a6a389daa" TEXT="introduced" ABBREVIATEDLABEL="i" LABEL="introduced" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2049" CREATED="2009-01-28 17:07:06.0" UUID="87e50715-bcfc-4390-b3f4-85354d102731" TEXT="cultivated: reported in error" ABBREVIATEDLABEL="cf" LABEL="cultivated: reported in error" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2050" CREATED="2009-01-28 17:07:06.0" UUID="313665e4-b871-4fc5-9137-29015febc793" TEXT="cultivated" ABBREVIATEDLABEL="c" LABEL="cultivated" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2051" CREATED="2009-01-28 17:07:06.0" UUID="2d1fd31f-b5f2-4216-af6f-b6d489951cc7" TEXT="native: reported in error" ABBREVIATEDLABEL="nf" LABEL="native: reported in error" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2052" CREATED="2009-01-28 17:07:06.0" UUID="0804ab42-4ed4-420b-97cb-2d0c9a8eb602" TEXT="native: doubtfully native" ABBREVIATEDLABEL="nd" LABEL="native: doubtfully native" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2053" CREATED="2009-01-28 17:07:06.0" UUID="6b5ec2da-b6f7-4769-aa4e-d5b172761e17" TEXT="native: formerly native" ABBREVIATEDLABEL="ne" LABEL="native: formerly native" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2054" CREATED="2009-01-28 17:07:06.0" UUID="fa63c84a-e009-4ed7-b34a-67c54887650c" TEXT="native: presence questionable" ABBREVIATEDLABEL="nq" LABEL="native: presence questionable" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2055" CREATED="2009-01-28 17:07:06.0" UUID="6b070a2e-7dff-40e9-8817-7f5d90f7c18d" TEXT="native" ABBREVIATEDLABEL="n" LABEL="native" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2056" CREATED="2009-01-28 17:07:06.0" UUID="ab69e335-ef60-4cd0-933a-c7843166161c" TEXT="present" ABBREVIATEDLABEL="p" LABEL="present" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2057" CREATED="2009-01-28 17:07:06.0" UUID="4ac523aa-3ba5-42c9-8771-647df62d76ec" TEXT="eu.etaxonomy.cdm.model.description.AbsenceTerm" LABEL="AbsenceTerm" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2058" CREATED="2009-01-28 17:07:06.0" UUID="3ba4ed3b-e4fb-44c2-8379-5a691a18fe38" TEXT="absent" ABBREVIATEDLABEL="a" LABEL="absent" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2059" CREATED="2009-01-28 17:07:06.0" UUID="4c145eea-8f75-4d31-b3cd-54620f0545bd" TEXT="eu.etaxonomy.cdm.model.description.Sex" LABEL="Sex" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2060" CREATED="2009-01-28 17:07:06.0" UUID="9fcf9283-d741-4b76-b242-e815f4b88bab" TEXT="female" ABBREVIATEDLABEL="f" LABEL="female" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2061" CREATED="2009-01-28 17:07:06.0" UUID="e14fa30d-5fd7-4033-9a68-7bbb63b84bdd" TEXT="male" ABBREVIATEDLABEL="m" LABEL="male" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2062" CREATED="2009-01-28 17:07:06.0" UUID="9c1c20d6-b116-4a64-a3f9-c3f038be7b80" TEXT="eu.etaxonomy.cdm.model.occurrence.DerivationEventType" LABEL="DerivationEventType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2063" CREATED="2009-01-28 17:07:06.0" UUID="d316b108-0982-4705-b7f0-b90321832dd6" TEXT="gathering in-situ" ABBREVIATEDLABEL="" LABEL="gathering in-situ" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2064" CREATED="2009-01-28 17:07:06.0" UUID="8608b246-8b55-4627-8452-60f3ffdc03b9" TEXT=" &quot;duplicate segregation" ABBREVIATEDLABEL="" LABEL="duplicate segregation" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2065" CREATED="2009-01-28 17:07:06.0" UUID="f4d768e1-b52e-4a0e-998f-f1a5c228c18f" TEXT="tissue sampling" ABBREVIATEDLABEL="" LABEL="tissue sampling" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2066" CREATED="2009-01-28 17:07:06.0" UUID="0f86c871-7d6a-4770-8d99-575d9aa60cd1" TEXT=" &quot;dna extraction" ABBREVIATEDLABEL="" LABEL="dna extraction" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2067" CREATED="2009-01-28 17:07:06.0" UUID="25eb807d-8b3c-4f06-81a0-f751a7e891ca" TEXT=" &quot;sexual reproduction" ABBREVIATEDLABEL="" LABEL="sexual reproduction" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2068" CREATED="2009-01-28 17:07:06.0" UUID="98c44da3-0f2e-4c6f-926f-2a6d3d7a1d9d" TEXT="duplicate" ABBREVIATEDLABEL="" LABEL="duplicate" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2069" CREATED="2009-01-28 17:07:06.0" UUID="8ab32f75-1c03-4659-9aab-722c97b315a0" TEXT=" &quot;accessioning" ABBREVIATEDLABEL="" LABEL="accessioning" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2070" CREATED="2009-01-28 17:07:06.0" UUID="7a3c0c72-88b3-41ba-a955-72e17696497e" TEXT=" &quot;vegetative propagation" ABBREVIATEDLABEL="" LABEL="vegetative propagation" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2071" CREATED="2009-01-28 17:07:06.0" UUID="b650a1b0-2196-47ed-b998-27ed3ee2d663" TEXT="eu.etaxonomy.cdm.model.occurrence.PreservationMethod" LABEL="PreservationMethod" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2072" CREATED="2009-01-28 17:07:06.0" UUID="e3d475ee-00ce-4963-acc1-001b8c703284" TEXT="eu.etaxonomy.cdm.model.occurrence.DeterminationModifier" LABEL="DeterminationModifier" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2073" CREATED="2009-01-28 17:07:06.0" UUID="f4942c21-ef04-4e2c-a390-2aa8cf1e1ef2" TEXT="eu.etaxonomy.cdm.model.description.StatisticalMeasure" LABEL="StatisticalMeasure" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2074" CREATED="2009-01-28 17:07:06.0" UUID="fe5801b3-5396-48a5-8aad-386f4f8a9e1e" TEXT="" ABBREVIATEDLABEL="" LABEL="Max" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2075" CREATED="2009-01-28 17:07:06.0" UUID="70bf7727-8632-4c81-96c8-367001e3b84d" TEXT="" ABBREVIATEDLABEL="" LABEL="SampleSize" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2076" CREATED="2009-01-28 17:07:06.0" UUID="60f47628-8be9-4b3f-b256-49b5c074af13" TEXT="" ABBREVIATEDLABEL="" LABEL="Average" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2077" CREATED="2009-01-28 17:07:06.0" UUID="ccce5efa-d2cb-47f8-bbc3-fa171da508dc" TEXT="" ABBREVIATEDLABEL="" LABEL="TypicalUpperBoundary" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2078" CREATED="2009-01-28 17:07:06.0" UUID="11fb208e-bc3e-417a-afac-2c6416e60a46" TEXT="" ABBREVIATEDLABEL="" LABEL="StandardDeviation" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2079" CREATED="2009-01-28 17:07:06.0" UUID="236963d0-f863-4faf-b463-9a4723133635" TEXT="" ABBREVIATEDLABEL="" LABEL="TypicalLowerBoundary" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2080" CREATED="2009-01-28 17:07:06.0" UUID="b3f49565-fd20-4c66-a25b-35009e4ff16a" TEXT="" ABBREVIATEDLABEL="" LABEL="Variance" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2081" CREATED="2009-01-28 17:07:06.0" UUID="1dca8240-f5d0-427b-8379-ee6d4f40d719" TEXT="" ABBREVIATEDLABEL="" LABEL="Min" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2082" CREATED="2009-01-28 17:07:06.0" UUID="7dc2410e-834f-4d21-a12f-d2439a96fd03" TEXT="eu.etaxonomy.cdm.model.media.RightsType" LABEL="RightsType" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2083" CREATED="2009-01-28 17:07:06.0" UUID="ec1d903d-4c14-43f9-84e2-c4d3e47d8cd0" TEXT="" ABBREVIATEDLABEL="" LABEL="license" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2084" CREATED="2009-01-28 17:07:06.0" UUID="faa0537a-0740-47c6-8c93-d7aac8697e32" TEXT="" ABBREVIATEDLABEL="" LABEL="access rights" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION ID="2085" CREATED="2009-01-28 17:07:06.0" UUID="2827e22f-340d-45fe-94ee-544e2b22d585" TEXT="" ABBREVIATEDLABEL="" LABEL="copyright" LANGUAGE_ID="406"/>\r
-  <REPRESENTATION_ANNOTATION/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="1" CREATED="2009-01-28 17:07:03.0" UUID="45ac7043-7f5e-4f37-92f2-3874aaaef2de" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.common.Language"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="2" CREATED="2009-01-28 17:07:04.0" UUID="e72cbcb6-58f8-4201-9774-15d0c6abc128" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.location.Continent"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="3" CREATED="2009-01-28 17:07:04.0" UUID="006b1870-7347-4624-990f-e5ed78484a1a" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.location.WaterbodyOrCountry"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="4" CREATED="2009-01-28 17:07:04.0" UUID="ef0d1ce1-26e3-4e83-b47b-ca74eed40b1b" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.name.Rank"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="5" CREATED="2009-01-28 17:07:04.0" UUID="ab177bd7-d3c8-4e58-a388-226fff6ba3c2" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.name.TypeDesignationStatus"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="6" CREATED="2009-01-28 17:07:04.0" UUID="bb28cdca-2f8a-4f11-9c21-517e9ae87f1f" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.name.NomenclaturalStatusType"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="7" CREATED="2009-01-28 17:07:04.0" UUID="48917fde-d083-4659-b07d-413db843bd50" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.taxon.SynonymType"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="8" CREATED="2009-01-28 17:07:04.0" UUID="fc4abe52-9c25-4cfa-a682-8615bf4bbf07" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.name.HybridRelationshipType"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="9" CREATED="2009-01-28 17:07:04.0" UUID="6878cb82-c1a4-4613-b012-7e73b413c8cd" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.name.NameRelationshipType"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="10" CREATED="2009-01-28 17:07:04.0" UUID="15db0cf7-7afc-4a86-a7d4-221c73b0c9ac" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="11" CREATED="2009-01-28 17:07:04.0" UUID="19dffff7-e142-429c-a420-5d28e4ebe305" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.common.MarkerType"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="12" CREATED="2009-01-28 17:07:04.0" UUID="ca04609b-1ba0-4d31-9c2e-aa8eb2f4e62d" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.common.AnnotationType"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="13" CREATED="2009-01-28 17:07:04.0" UUID="e51d52d6-965b-4f7d-900f-4ba9c6f5dd33" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.location.NamedAreaType"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="14" CREATED="2009-01-28 17:07:04.0" UUID="49034253-27c8-4219-97e8-f8d987d3d122" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.location.NamedAreaLevel"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="15" CREATED="2009-01-28 17:07:04.0" UUID="fa032b1a-1ad2-4fb0-a1d9-3016399a80fa" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.name.NomenclaturalCode"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="16" CREATED="2009-01-28 17:07:04.0" UUID="b187d555-f06f-4d65-9e53-da7c93f8eaa8" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.description.Feature"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="17" CREATED="2009-01-28 17:07:04.0" UUID="1fb40504-d1d7-44b0-9731-374fbe6cac77" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.location.NamedArea"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="18" CREATED="2009-01-28 17:07:06.0" UUID="adbbbe15-c4d3-47b7-80a8-c7d104e53a05" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.description.PresenceTerm"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="19" CREATED="2009-01-28 17:07:06.0" UUID="5cd438c8-a8a1-4958-842e-169e83e2ceee" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.description.AbsenceTerm"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="20" CREATED="2009-01-28 17:07:06.0" UUID="9718b7dd-8bc0-4cad-be57-3c54d4d432fe" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.description.Sex"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="21" CREATED="2009-01-28 17:07:06.0" UUID="398b50bb-348e-4fe0-a7f5-a75afd846d1f" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.occurrence.DerivationEventType"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="22" CREATED="2009-01-28 17:07:06.0" UUID="a7dc20c9-e6b3-459e-8f05-8d6d8fceb465" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.occurrence.PreservationMethod"/>\r
-  <TERMVOCABULARY DTYPE="OrderedTermVocabulary" ID="23" CREATED="2009-01-28 17:07:06.0" UUID="fe87ea8d-6e0a-4e5d-b0da-0ab8ea67ca77" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.occurrence.DeterminationModifier"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="24" CREATED="2009-01-28 17:07:06.0" UUID="066cc62e-7213-495e-a020-97a1233bc037" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.description.StatisticalMeasure"/>\r
-  <TERMVOCABULARY DTYPE="TermVocabulary" ID="25" CREATED="2009-01-28 17:07:06.0" UUID="8627c526-73af-44d9-902c-11c1f11b60b4" URI="" TERMSOURCEURI="eu.etaxonomy.cdm.model.media.RightsType"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="1" REPRESENTATIONS_ID="1"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="2" REPRESENTATIONS_ID="487"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="3" REPRESENTATIONS_ID="497"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="4" REPRESENTATIONS_ID="747"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="5" REPRESENTATIONS_ID="810"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="6" REPRESENTATIONS_ID="827"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="7" REPRESENTATIONS_ID="852"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="8" REPRESENTATIONS_ID="859"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="9" REPRESENTATIONS_ID="868"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="10" REPRESENTATIONS_ID="889"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="11" REPRESENTATIONS_ID="944"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="12" REPRESENTATIONS_ID="949"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="13" REPRESENTATIONS_ID="952"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="14" REPRESENTATIONS_ID="955"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="15" REPRESENTATIONS_ID="965"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="16" REPRESENTATIONS_ID="971"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="17" REPRESENTATIONS_ID="998"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="18" REPRESENTATIONS_ID="2038"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="19" REPRESENTATIONS_ID="2057"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="20" REPRESENTATIONS_ID="2059"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="21" REPRESENTATIONS_ID="2062"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="22" REPRESENTATIONS_ID="2071"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="23" REPRESENTATIONS_ID="2072"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="24" REPRESENTATIONS_ID="2073"/>\r
-  <TERMVOCABULARY_REPRESENTATION TERMVOCABULARY_ID="25" REPRESENTATIONS_ID="2082"/>\r
-</dataset>\r
diff --git a/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/database/schema/dataset.dtd b/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/cdm/database/schema/dataset.dtd
deleted file mode 100644 (file)
index cf84374..0000000
+++ /dev/null
@@ -1,3727 +0,0 @@
-<!ELEMENT dataset (
-    ADDRESS*,
-    ADDRESS_AUD*,
-    AGENTBASE*,
-    AGENTBASE_AGENTBASE*,
-    AGENTBASE_AGENTBASE_AUD*,
-    AGENTBASE_ANNOTATION*,
-    AGENTBASE_ANNOTATION_AUD*,
-    AGENTBASE_AUD*,
-    AGENTBASE_DEFINEDTERMBASE*,
-    AGENTBASE_DEFINEDTERMBASE_AUD*,
-    AGENTBASE_EXTENSION*,
-    AGENTBASE_EXTENSION_AUD*,
-    AGENTBASE_MARKER*,
-    AGENTBASE_MARKER_AUD*,
-    AGENTBASE_MEDIA*,
-    AGENTBASE_MEDIA_AUD*,
-    AGENTBASE_ORIGINALSOURCE*,
-    AGENTBASE_ORIGINALSOURCE_AUD*,
-    AGENTBASE_RIGHTSINFO*,
-    AGENTBASE_RIGHTSINFO_AUD*,
-    ANNOTATION*,
-    ANNOTATION_ANNOTATION*,
-    ANNOTATION_ANNOTATION_AUD*,
-    ANNOTATION_AUD*,
-    ANNOTATION_MARKER*,
-    ANNOTATION_MARKER_AUD*,
-    AUDITEVENT*,
-    CDM_VIEW*,
-    CDM_VIEW_CDM_VIEW*,
-    CDMPREFERENCE*,
-    COLLECTION*,
-    COLLECTION_ANNOTATION*,
-    COLLECTION_ANNOTATION_AUD*,
-    COLLECTION_AUD*,
-    COLLECTION_EXTENSION*,
-    COLLECTION_EXTENSION_AUD*,
-    COLLECTION_MARKER*,
-    COLLECTION_MARKER_AUD*,
-    COLLECTION_MEDIA*,
-    COLLECTION_MEDIA_AUD*,
-    COLLECTION_ORIGINALSOURCE*,
-    COLLECTION_ORIGINALSOURCE_AUD*,
-    COLLECTION_RIGHTSINFO*,
-    COLLECTION_RIGHTSINFO_AUD*,
-    CONTACT*,
-    CONTACT_AUD*,
-    DB_VERSION*,
-    DEFINEDTERMBASE*,
-    DEFINEDTERMBASE_AUD*,
-    DEFINEDTERMBASE_CONTINENT*,
-    DEFINEDTERMBASE_CONTINENT_AUD*,
-    DEFINEDTERMBASE_MEDIA*,
-    DEFINEDTERMBASE_MEDIA_AUD*,
-    DEFINEDTERMBASE_RECOMMENDEDMODIFIERENUMERATION*,
-    DEFINEDTERMBASE_RECOMMENDEDMODIFIERENUMERATION_AUD*,
-    DEFINEDTERMBASE_REPRESENTATION*,
-    DEFINEDTERMBASE_REPRESENTATION_AUD*,
-    DEFINEDTERMBASE_STATISTICALMEASURE*,
-    DEFINEDTERMBASE_STATISTICALMEASURE_AUD*,
-    DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION*,
-    DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION_AUD*,
-    DEFINEDTERMBASE_COUNTRY*,
-    DEFINEDTERMBASE_COUNTRY_AUD*,
-    DERIVATIONEVENT*,
-    DERIVATIONEVENT_ANNOTATION*,
-    DERIVATIONEVENT_ANNOTATION_AUD*,
-    DERIVATIONEVENT_AUD*,
-    DERIVATIONEVENT_MARKER*,
-    DERIVATIONEVENT_MARKER_AUD*,
-    DESCRIPTIONBASE*,
-    DESCRIPTIONBASE_ANNOTATION*,
-    DESCRIPTIONBASE_ANNOTATION_AUD*,
-    DESCRIPTIONBASE_AUD*,
-    DESCRIPTIONBASE_EXTENSION*,
-    DESCRIPTIONBASE_EXTENSION_AUD*,
-    DESCRIPTIONBASE_GEOSCOPE*,
-    DESCRIPTIONBASE_GEOSCOPE_AUD*,
-    DESCRIPTIONBASE_MARKER*,
-    DESCRIPTIONBASE_MARKER_AUD*,
-    DESCRIPTIONBASE_ORIGINALSOURCE*,
-    DESCRIPTIONBASE_ORIGINALSOURCE_AUD*,
-    DESCRIPTIONBASE_REFERENCE*,
-    DESCRIPTIONBASE_REFERENCE_AUD*,
-    DESCRIPTIONBASE_RIGHTSINFO*,
-    DESCRIPTIONBASE_RIGHTSINFO_AUD*,
-    DESCRIPTIONBASE_SCOPE*,
-    DESCRIPTIONBASE_SCOPE_AUD*,
-    DESCRIPTIONELEMENTBASE*,
-    DESCRIPTIONELEMENTBASE_ANNOTATION*,
-    DESCRIPTIONELEMENTBASE_ANNOTATION_AUD*,
-    DESCRIPTIONELEMENTBASE_AUD*,
-    DESCRIPTIONELEMENTBASE_LANGUAGESTRING*,
-    DESCRIPTIONELEMENTBASE_LANGUAGESTRING_AUD*,
-    DESCRIPTIONELEMENTBASE_MARKER*,
-    DESCRIPTIONELEMENTBASE_MARKER_AUD*,
-    DESCRIPTIONELEMENTBASE_MEDIA*,
-    DESCRIPTIONELEMENTBASE_MEDIA_AUD*,
-    DESCRIPTIONELEMENTBASE_MODIFIER*,
-    DESCRIPTIONELEMENTBASE_MODIFIER_AUD*,
-    DESCRIPTIONELEMENTBASE_MODIFYINGTEXT*,
-    DESCRIPTIONELEMENTBASE_MODIFYINGTEXT_AUD*,
-    DETERMINATIONEVENT*,
-    DETERMINATIONEVENT_ANNOTATION*,
-    DETERMINATIONEVENT_ANNOTATION_AUD*,
-    DETERMINATIONEVENT_AUD*,
-    DETERMINATIONEVENT_MARKER*,
-    DETERMINATIONEVENT_MARKER_AUD*,
-    DETERMINATIONEVENT_REFERENCE*,
-    DETERMINATIONEVENT_REFERENCE_AUD*,
-    EXTENSION*,
-    EXTENSION_AUD*,
-    FEATURENODE*,
-    FEATURENODE_AUD*,
-    FEATURETREE*,
-    FEATURETREE_AUD*,
-    FEATURETREE_REPRESENTATION*,
-    FEATURETREE_REPRESENTATION_AUD*,
-    GATHERINGEVENT*,
-    GATHERINGEVENT_ANNOTATION*,
-    GATHERINGEVENT_ANNOTATION_AUD*,
-    GATHERINGEVENT_AUD*,
-    GATHERINGEVENT_DEFINEDTERMBASE*,
-    GATHERINGEVENT_DEFINEDTERMBASE_AUD*,
-    GATHERINGEVENT_MARKER*,
-    GATHERINGEVENT_MARKER_AUD*,
-    GRANTEDAUTHORITYIMPL*,
-    HIBERNATE_SEQUENCES*,
-    HOMOTYPICALGROUP*,
-    HOMOTYPICALGROUP_ANNOTATION*,
-    HOMOTYPICALGROUP_ANNOTATION_AUD*,
-    HOMOTYPICALGROUP_AUD*,
-    HOMOTYPICALGROUP_MARKER*,
-    HOMOTYPICALGROUP_MARKER_AUD*,
-    HYBRIDRELATIONSHIP*,
-    HYBRIDRELATIONSHIP_ANNOTATION*,
-    HYBRIDRELATIONSHIP_ANNOTATION_AUD*,
-    HYBRIDRELATIONSHIP_AUD*,
-    HYBRIDRELATIONSHIP_MARKER*,
-    HYBRIDRELATIONSHIP_MARKER_AUD*,
-    MEDIAKEY_TAXONSCOPE*,
-    MEDIAKEY_TAXONSCOPE_AUD*,
-    INDIVIDUALSASSOCIATION_LANGUAGESTRING*,
-    INDIVIDUALSASSOCIATION_LANGUAGESTRING_AUD*,
-    INSTITUTIONALMEMBERSHIP*,
-    INSTITUTIONALMEMBERSHIP_AUD*,
-    LANGUAGESTRING*,
-    LANGUAGESTRING_ANNOTATION*,
-    LANGUAGESTRING_ANNOTATION_AUD*,
-    LANGUAGESTRING_AUD*,
-    LANGUAGESTRING_MARKER*,
-    LANGUAGESTRING_MARKER_AUD*,
-    MARKER*,
-    MARKER_AUD*,
-    MEDIA*,
-    MEDIAREPRESENTATION*,
-    MEDIAREPRESENTATIONPART*,
-    MEDIAREPRESENTATIONPART_AUD*,
-    MEDIAREPRESENTATION_AUD*,
-    MEDIAREPRESENTATION_MEDIAREPRESENTATIONPART_AUD*,
-    MEDIA_ANNOTATION*,
-    MEDIA_ANNOTATION_AUD*,
-    MEDIA_AUD*,
-    MEDIA_DEFINEDTERMBASE*,
-    MEDIA_DEFINEDTERMBASE_AUD*,
-    MEDIA_DESCRIPTION*,
-    MEDIA_DESCRIPTION_AUD*,
-    MEDIA_LANGUAGESTRING*,
-    MEDIA_LANGUAGESTRING_AUD*,
-    MEDIA_MARKER*,
-    MEDIA_MARKER_AUD*,
-    MEDIA_RIGHTSINFO*,
-    MEDIA_RIGHTSINFO_AUD*,
-    MEDIA_SEQUENCE*,
-    MEDIA_SEQUENCE_AUD*,
-    MEDIAKEY_COVEREDTAXON*,
-    MEDIAKEY_COVEREDTAXON_AUD*,
-    NAMERELATIONSHIP*,
-    NAMERELATIONSHIP_ANNOTATION*,
-    NAMERELATIONSHIP_ANNOTATION_AUD*,
-    NAMERELATIONSHIP_AUD*,
-    NAMERELATIONSHIP_MARKER*,
-    NAMERELATIONSHIP_MARKER_AUD*,
-    NOMENCLATURALSTATUS*,
-    NOMENCLATURALSTATUS_ANNOTATION*,
-    NOMENCLATURALSTATUS_ANNOTATION_AUD*,
-    NOMENCLATURALSTATUS_AUD*,
-    NOMENCLATURALSTATUS_MARKER*,
-    NOMENCLATURALSTATUS_MARKER_AUD*,
-    ORIGINALSOURCE*,
-    ORIGINALSOURCE_ANNOTATION*,
-    ORIGINALSOURCE_ANNOTATION_AUD*,
-    ORIGINALSOURCE_AUD*,
-    ORIGINALSOURCE_MARKER*,
-    ORIGINALSOURCE_MARKER_AUD*,
-    PERMISSIONGROUP*,
-    PERMISSIONGROUP_GRANTEDAUTHORITYIMPL*,
-    PERSON_KEYWORD*,
-    PERSON_KEYWORD_AUD*,
-    REFERENCE*,
-    REFERENCE_ANNOTATION*,
-    REFERENCE_ANNOTATION_AUD*,
-    REFERENCE_AUD*,
-    REFERENCE_EXTENSION*,
-    REFERENCE_EXTENSION_AUD*,
-    REFERENCE_MARKER*,
-    REFERENCE_MARKER_AUD*,
-    REFERENCE_MEDIA*,
-    REFERENCE_MEDIA_AUD*,
-    REFERENCE_ORIGINALSOURCE*,
-    REFERENCE_ORIGINALSOURCE_AUD*,
-    REFERENCE_RIGHTSINFO*,
-    REFERENCE_RIGHTSINFO_AUD*,
-    RELATIONSHIPTERMBASE_INVERSEREPRESENTATION*,
-    RELATIONSHIPTERMBASE_INVERSEREPRESENTATION_AUD*,
-    REPRESENTATION*,
-    REPRESENTATION_ANNOTATION*,
-    REPRESENTATION_ANNOTATION_AUD*,
-    REPRESENTATION_AUD*,
-    REPRESENTATION_MARKER*,
-    REPRESENTATION_MARKER_AUD*,
-    RIGHTSINFO*,
-    RIGHTSINFO_ANNOTATION*,
-    RIGHTSINFO_ANNOTATION_AUD*,
-    RIGHTSINFO_AUD*,
-    RIGHTSINFO_MARKER*,
-    RIGHTSINFO_MARKER_AUD*,
-    SEQUENCE*,
-    SEQUENCE_ANNOTATION*,
-    SEQUENCE_ANNOTATION_AUD*,
-    SEQUENCE_AUD*,
-    SEQUENCE_EXTENSION*,
-    SEQUENCE_EXTENSION_AUD*,
-    SEQUENCE_MARKER*,
-    SEQUENCE_MARKER_AUD*,
-    SEQUENCE_MEDIA*,
-    SEQUENCE_MEDIA_AUD*,
-    SEQUENCE_ORIGINALSOURCE*,
-    SEQUENCE_ORIGINALSOURCE_AUD*,
-    SEQUENCE_REFERENCE*,
-    SEQUENCE_REFERENCE_AUD*,
-    SEQUENCE_RIGHTSINFO*,
-    SEQUENCE_RIGHTSINFO_AUD*,
-    SPECIMENOROBSERVATIONBASE*,
-    SPECIMENOROBSERVATIONBASE_ANNOTATION*,
-    SPECIMENOROBSERVATIONBASE_ANNOTATION_AUD*,
-    SPECIMENOROBSERVATIONBASE_AUD*,
-    SPECIMENOROBSERVATIONBASE_DERIVATIONEVENT*,
-    SPECIMENOROBSERVATIONBASE_DERIVATIONEVENT_AUD*,
-    SPECIMENOROBSERVATIONBASE_EXTENSION*,
-    SPECIMENOROBSERVATIONBASE_EXTENSION_AUD*,
-    SPECIMENOROBSERVATIONBASE_LANGUAGESTRING*,
-    SPECIMENOROBSERVATIONBASE_LANGUAGESTRING_AUD*,
-    SPECIMENOROBSERVATIONBASE_MARKER*,
-    SPECIMENOROBSERVATIONBASE_MARKER_AUD*,
-    SPECIMENOROBSERVATIONBASE_MEDIA*,
-    SPECIMENOROBSERVATIONBASE_MEDIA_AUD*,
-    SPECIMENOROBSERVATIONBASE_ORIGINALSOURCE*,
-    SPECIMENOROBSERVATIONBASE_ORIGINALSOURCE_AUD*,
-    SPECIMENOROBSERVATIONBASE_RIGHTSINFO*,
-    SPECIMENOROBSERVATIONBASE_RIGHTSINFO_AUD*,
-    STATEDATA*,
-    STATEDATA_AUD*,
-    STATEDATA_DEFINEDTERMBASE*,
-    STATEDATA_DEFINEDTERMBASE_AUD*,
-    STATEDATA_LANGUAGESTRING*,
-    STATEDATA_LANGUAGESTRING_AUD*,
-    STATISTICALMEASUREMENTVALUE*,
-    STATISTICALMEASUREMENTVALUE_AUD*,
-    STATISTICALMEASUREMENTVALUE_DEFINEDTERMBASE*,
-    STATISTICALMEASUREMENTVALUE_DEFINEDTERMBASE_AUD*,
-    TAXONBASE*,
-    TAXONBASE_ANNOTATION*,
-    TAXONBASE_ANNOTATION_AUD*,
-    TAXONBASE_AUD*,
-    TAXONBASE_EXTENSION*,
-    TAXONBASE_EXTENSION_AUD*,
-    TAXONBASE_MARKER*,
-    TAXONBASE_MARKER_AUD*,
-    TAXONBASE_ORIGINALSOURCE*,
-    TAXONBASE_ORIGINALSOURCE_AUD*,
-    TAXONBASE_RIGHTSINFO*,
-    TAXONBASE_RIGHTSINFO_AUD*,
-    TAXONINTERACTION_LANGUAGESTRING*,
-    TAXONINTERACTION_LANGUAGESTRING_AUD*,
-    TAXONNAMEBASE*,
-    TAXONNAMEBASE_ANNOTATION*,
-    TAXONNAMEBASE_ANNOTATION_AUD*,
-    TAXONNAMEBASE_AUD*,
-    TAXONNAMEBASE_EXTENSION*,
-    TAXONNAMEBASE_EXTENSION_AUD*,
-    TAXONNAMEBASE_HYBRIDRELATIONSHIP*,
-    TAXONNAMEBASE_HYBRIDRELATIONSHIP_AUD*,
-    TAXONNAMEBASE_MARKER*,
-    TAXONNAMEBASE_MARKER_AUD*,
-    TAXONNAMEBASE_NOMENCLATURALSTATUS*,
-    TAXONNAMEBASE_NOMENCLATURALSTATUS_AUD*,
-    TAXONNAMEBASE_ORIGINALSOURCE*,
-    TAXONNAMEBASE_ORIGINALSOURCE_AUD*,
-    TAXONNAMEBASE_RIGHTSINFO*,
-    TAXONNAMEBASE_RIGHTSINFO_AUD*,
-    TAXONNAMEBASE_TYPEDESIGNATIONBASE*,
-    TAXONNAMEBASE_TYPEDESIGNATIONBASE_AUD*,
-    TAXONNODE*,
-    TAXONNODE_ANNOTATION*,
-    TAXONNODE_ANNOTATION_AUD*,
-    TAXONNODE_EXCLUDEDNOTE*,
-    TAXONNODE_EXCLUDEDNOTE_AUD*,
-    TAXONNODE_MARKER*,
-    TAXONNODE_MARKER_AUD*,
-    TAXONRELATIONSHIP*,
-    TAXONRELATIONSHIP_ANNOTATION*,
-    TAXONRELATIONSHIP_ANNOTATION_AUD*,
-    TAXONRELATIONSHIP_AUD*,
-    TAXONRELATIONSHIP_MARKER*,
-    TAXONRELATIONSHIP_MARKER_AUD*,
-    TERMVOCABULARY*,
-    TERMVOCABULARY_AUD*,
-    TERMVOCABULARY_REPRESENTATION*,
-    TERMVOCABULARY_REPRESENTATION_AUD*,
-    TYPEDESIGNATIONBASE*,
-    TYPEDESIGNATIONBASE_ANNOTATION*,
-    TYPEDESIGNATIONBASE_ANNOTATION_AUD*,
-    TYPEDESIGNATIONBASE_AUD*,
-    TYPEDESIGNATIONBASE_MARKER*,
-    TYPEDESIGNATIONBASE_MARKER_AUD*,
-    USER*,
-    USER_GRANTEDAUTHORITYIMPL*,
-    USER_PERMISSIONGROUP*)>
-
-<!ELEMENT ADDRESS EMPTY>
-<!ATTLIST ADDRESS
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    LOCALITY CDATA #IMPLIED
-    LOCATION_ERRORRADIUS CDATA #IMPLIED
-    LOCATION_LATITUDE CDATA #IMPLIED
-    LOCATION_LONGITUDE CDATA #IMPLIED
-    POBOX CDATA #IMPLIED
-    POSTCODE CDATA #IMPLIED
-    REGION CDATA #IMPLIED
-    STREET CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CONTACT_ID CDATA #IMPLIED
-    COUNTRY_ID CDATA #IMPLIED
-    LOCATION_REFERENCESYSTEM_ID CDATA #IMPLIED
->
-
-<!ELEMENT ADDRESS_AUD EMPTY>
-<!ATTLIST ADDRESS_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    LOCALITY CDATA #IMPLIED
-    LOCATION_ERRORRADIUS CDATA #IMPLIED
-    LOCATION_LATITUDE CDATA #IMPLIED
-    LOCATION_LONGITUDE CDATA #IMPLIED
-    POBOX CDATA #IMPLIED
-    POSTCODE CDATA #IMPLIED
-    REGION CDATA #IMPLIED
-    STREET CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CONTACT_ID CDATA #IMPLIED
-    COUNTRY_ID CDATA #IMPLIED
-    LOCATION_REFERENCESYSTEM_ID CDATA #IMPLIED
->
-
-<!ELEMENT AGENTBASE EMPTY>
-<!ATTLIST AGENTBASE
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    LSID CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    CODE CDATA #IMPLIED
-    NAME CDATA #IMPLIED
-    NOMENCLATURALTITLE CDATA #IMPLIED
-    FIRSTNAME CDATA #IMPLIED
-    LASTNAME CDATA #IMPLIED
-    LIFESPAN_END CDATA #IMPLIED
-    LIFESPAN_START CDATA #IMPLIED
-    PREFIX CDATA #IMPLIED
-    SUFFIX CDATA #IMPLIED
-    PROTECTEDNOMENCLATURALTITLECACHE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CONTACT_ID CDATA #IMPLIED
-    ISPARTOF_ID CDATA #IMPLIED
->
-
-<!ELEMENT AGENTBASE_AGENTBASE EMPTY>
-<!ATTLIST AGENTBASE_AGENTBASE
-    TEAM_ID CDATA #IMPLIED
-    TEAMMEMBERS_ID CDATA #IMPLIED
-    SORTINDEX CDATA #IMPLIED
->
-
-<!ELEMENT AGENTBASE_AGENTBASE_AUD EMPTY>
-<!ATTLIST AGENTBASE_AGENTBASE_AUD
-    REV CDATA #REQUIRED
-    AGENTBASE_ID CDATA #REQUIRED
-    TEAMMEMBERS_ID CDATA #REQUIRED
-    SORTINDEX CDATA #IMPLIED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT AGENTBASE_ANNOTATION EMPTY>
-<!ATTLIST AGENTBASE_ANNOTATION
-    AGENTBASE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT AGENTBASE_ANNOTATION_AUD EMPTY>
-<!ATTLIST AGENTBASE_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    AGENTBASE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT AGENTBASE_AUD EMPTY>
-<!ATTLIST AGENTBASE_AUD
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    LSID CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    NOMENCLATURALTITLE CDATA #IMPLIED
-    PROTECTEDNOMENCLATURALTITLECACHE CDATA #IMPLIED
-    FIRSTNAME CDATA #IMPLIED
-    LASTNAME CDATA #IMPLIED
-    LIFESPAN_END CDATA #IMPLIED
-    LIFESPAN_START CDATA #IMPLIED
-    PREFIX CDATA #IMPLIED
-    SUFFIX CDATA #IMPLIED
-    CONTACT_ID CDATA #IMPLIED
-    CODE CDATA #IMPLIED
-    NAME CDATA #IMPLIED
-    ISPARTOF_ID CDATA #IMPLIED
->
-
-<!ELEMENT AGENTBASE_DEFINEDTERMBASE EMPTY>
-<!ATTLIST AGENTBASE_DEFINEDTERMBASE
-    AGENTBASE_ID CDATA #REQUIRED
-    TYPES_ID CDATA #REQUIRED
->
-
-<!ELEMENT AGENTBASE_DEFINEDTERMBASE_AUD EMPTY>
-<!ATTLIST AGENTBASE_DEFINEDTERMBASE_AUD
-    REV CDATA #REQUIRED
-    AGENTBASE_ID CDATA #REQUIRED
-    TYPES_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT AGENTBASE_EXTENSION EMPTY>
-<!ATTLIST AGENTBASE_EXTENSION
-    AGENTBASE_ID CDATA #REQUIRED
-    EXTENSIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT AGENTBASE_EXTENSION_AUD EMPTY>
-<!ATTLIST AGENTBASE_EXTENSION_AUD
-    REV CDATA #REQUIRED
-    AGENTBASE_ID CDATA #REQUIRED
-    EXTENSIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT AGENTBASE_MARKER EMPTY>
-<!ATTLIST AGENTBASE_MARKER
-    AGENTBASE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT AGENTBASE_MARKER_AUD EMPTY>
-<!ATTLIST AGENTBASE_MARKER_AUD
-    REV CDATA #REQUIRED
-    AGENTBASE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT AGENTBASE_MEDIA EMPTY>
-<!ATTLIST AGENTBASE_MEDIA
-    AGENTBASE_ID CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
->
-
-<!ELEMENT AGENTBASE_MEDIA_AUD EMPTY>
-<!ATTLIST AGENTBASE_MEDIA_AUD
-    REV CDATA #REQUIRED
-    AGENTBASE_ID CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT AGENTBASE_ORIGINALSOURCE EMPTY>
-<!ATTLIST AGENTBASE_ORIGINALSOURCE
-    AGENTBASE_ID CDATA #REQUIRED
-    SOURCES_ID CDATA #REQUIRED
->
-
-<!ELEMENT AGENTBASE_ORIGINALSOURCE_AUD EMPTY>
-<!ATTLIST AGENTBASE_ORIGINALSOURCE_AUD
-    REV CDATA #REQUIRED
-    AGENTBASE_ID CDATA #REQUIRED
-    SOURCES_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT AGENTBASE_RIGHTSINFO EMPTY>
-<!ATTLIST AGENTBASE_RIGHTSINFO
-    AGENTBASE_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
->
-
-<!ELEMENT AGENTBASE_RIGHTSINFO_AUD EMPTY>
-<!ATTLIST AGENTBASE_RIGHTSINFO_AUD
-    REV CDATA #REQUIRED
-    AGENTBASE_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT ANNOTATION EMPTY>
-<!ATTLIST ANNOTATION
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    TEXT CDATA #IMPLIED
-    LINKBACKURI CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    LANGUAGE_ID CDATA #IMPLIED
-    ANNOTATIONTYPE_ID CDATA #IMPLIED
-    COMMENTATOR_ID CDATA #IMPLIED
->
-
-<!ELEMENT ANNOTATION_ANNOTATION EMPTY>
-<!ATTLIST ANNOTATION_ANNOTATION
-    ANNOTATION_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT ANNOTATION_ANNOTATION_AUD EMPTY>
-<!ATTLIST ANNOTATION_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    ANNOTATION_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT ANNOTATION_AUD EMPTY>
-<!ATTLIST ANNOTATION_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    TEXT CDATA #IMPLIED
-    LINKBACKURI CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    LANGUAGE_ID CDATA #IMPLIED
-    ANNOTATIONTYPE_ID CDATA #IMPLIED
-    COMMENTATOR_ID CDATA #IMPLIED
->
-
-<!ELEMENT ANNOTATION_MARKER EMPTY>
-<!ATTLIST ANNOTATION_MARKER
-    ANNOTATION_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT ANNOTATION_MARKER_AUD EMPTY>
-<!ATTLIST ANNOTATION_MARKER_AUD
-    REV CDATA #REQUIRED
-    ANNOTATION_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT AUDITEVENT EMPTY>
-<!ATTLIST AUDITEVENT
-    REVISIONNUMBER CDATA #REQUIRED
-    TIMESTAMP CDATA #IMPLIED
-    UUID CDATA #IMPLIED
->
-
-<!ELEMENT CDM_VIEW EMPTY>
-<!ATTLIST CDM_VIEW
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    DESCRIPTION CDATA #IMPLIED
-    NAME CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    REFERENCE_ID CDATA #IMPLIED
->
-
-<!ELEMENT CDM_VIEW_CDM_VIEW EMPTY>
-<!ATTLIST CDM_VIEW_CDM_VIEW
-    CDM_VIEW_ID CDATA #REQUIRED
-    SUPERVIEWS_ID CDATA #REQUIRED
->
-
-<!ELEMENT CDMPREFERENCE EMPTY>
-<!ATTLIST CDMPREFERENCE
-    KEY_SUBJECT CDATA #REQUIRED
-    KEY_PREDICATE CDATA #REQUIRED
-    VALUE CDATA #IMPLIED
-    ALLOWOVERRIDE CDATA #REQUIRED
->
-
-<!ELEMENT COLLECTION EMPTY>
-<!ATTLIST COLLECTION
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    LSID CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    CODE CDATA #IMPLIED
-    CODESTANDARD CDATA #IMPLIED
-    NAME CDATA #IMPLIED
-    TOWNORLOCATION CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    INSTITUTE_ID CDATA #IMPLIED
-    SUPERCOLLECTION_ID CDATA #IMPLIED
->
-
-<!ELEMENT COLLECTION_ANNOTATION EMPTY>
-<!ATTLIST COLLECTION_ANNOTATION
-    COLLECTION_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT COLLECTION_ANNOTATION_AUD EMPTY>
-<!ATTLIST COLLECTION_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    COLLECTION_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT COLLECTION_AUD EMPTY>
-<!ATTLIST COLLECTION_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    LSID CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    CODE CDATA #IMPLIED
-    CODESTANDARD CDATA #IMPLIED
-    NAME CDATA #IMPLIED
-    TOWNORLOCATION CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    INSTITUTE_ID CDATA #IMPLIED
-    SUPERCOLLECTION_ID CDATA #IMPLIED
->
-
-<!ELEMENT COLLECTION_EXTENSION EMPTY>
-<!ATTLIST COLLECTION_EXTENSION
-    COLLECTION_ID CDATA #REQUIRED
-    EXTENSIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT COLLECTION_EXTENSION_AUD EMPTY>
-<!ATTLIST COLLECTION_EXTENSION_AUD
-    REV CDATA #REQUIRED
-    COLLECTION_ID CDATA #REQUIRED
-    EXTENSIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT COLLECTION_MARKER EMPTY>
-<!ATTLIST COLLECTION_MARKER
-    COLLECTION_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT COLLECTION_MARKER_AUD EMPTY>
-<!ATTLIST COLLECTION_MARKER_AUD
-    REV CDATA #REQUIRED
-    COLLECTION_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT COLLECTION_MEDIA EMPTY>
-<!ATTLIST COLLECTION_MEDIA
-    COLLECTION_ID CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
->
-
-<!ELEMENT COLLECTION_MEDIA_AUD EMPTY>
-<!ATTLIST COLLECTION_MEDIA_AUD
-    REV CDATA #REQUIRED
-    COLLECTION_ID CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT COLLECTION_ORIGINALSOURCE EMPTY>
-<!ATTLIST COLLECTION_ORIGINALSOURCE
-    COLLECTION_ID CDATA #REQUIRED
-    SOURCES_ID CDATA #REQUIRED
->
-
-<!ELEMENT COLLECTION_ORIGINALSOURCE_AUD EMPTY>
-<!ATTLIST COLLECTION_ORIGINALSOURCE_AUD
-    REV CDATA #REQUIRED
-    COLLECTION_ID CDATA #REQUIRED
-    SOURCES_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT COLLECTION_RIGHTSINFO EMPTY>
-<!ATTLIST COLLECTION_RIGHTSINFO
-    COLLECTION_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
->
-
-<!ELEMENT COLLECTION_RIGHTSINFO_AUD EMPTY>
-<!ATTLIST COLLECTION_RIGHTSINFO_AUD
-    REV CDATA #REQUIRED
-    COLLECTION_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT CONTACT EMPTY>
-<!ATTLIST CONTACT
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    EMAIL CDATA #IMPLIED
-    FAX CDATA #IMPLIED
-    PHONE CDATA #IMPLIED
-    URL CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
->
-
-<!ELEMENT CONTACT_AUD EMPTY>
-<!ATTLIST CONTACT_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    EMAIL CDATA #IMPLIED
-    FAX CDATA #IMPLIED
-    PHONE CDATA #IMPLIED
-    URL CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
->
-
-<!ELEMENT DB_VERSION EMPTY>
-<!ATTLIST DB_VERSION
-    VERSION_INDEX CDATA #IMPLIED
-    VERSION_TIMESTAMP CDATA #IMPLIED
-    LAST_UPDATE_SUCCEEDED CDATA #IMPLIED
-    CODESCRIPTS_TIMESTAMP CDATA #IMPLIED
-    LAST_CODEUPDATE_SUCCEEDED CDATA #IMPLIED
->
-
-<!ELEMENT DEFINEDTERMBASE EMPTY>
-<!ATTLIST DEFINEDTERMBASE
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    TERMTYPE CDATA #IMPLIED
-    URI CDATA #IMPLIED
-    RANKCLASS CDATA #IMPLIED
-    ORDERINDEX CDATA #IMPLIED
-    IDINVOCABULARY CDATA #IMPLIED
-    ISO639_1 CDATA #IMPLIED
-    SYMMETRICAL CDATA #IMPLIED
-    TRANSITIVE CDATA #IMPLIED
-    DEFAULTCOLOR CDATA #IMPLIED
-    SUPPORTSCOMMONTAXONNAME CDATA #IMPLIED
-    SUPPORTSDISTRIBUTION CDATA #IMPLIED
-    SUPPORTSINDIVIDUALASSOCIATION CDATA #IMPLIED
-    SUPPORTSQUANTITATIVEDATA CDATA #IMPLIED
-    SUPPORTSTAXONINTERACTION CDATA #IMPLIED
-    SUPPORTSTEXTDATA CDATA #IMPLIED
-    SUPPORTSCATEGORICALDATA CDATA #IMPLIED
-    POINTAPPROXIMATION_ERRORRADIUS CDATA #IMPLIED
-    POINTAPPROXIMATION_LATITUDE CDATA #IMPLIED
-    POINTAPPROXIMATION_LONGITUDE CDATA #IMPLIED
-    VALIDPERIOD_END CDATA #IMPLIED
-    VALIDPERIOD_START CDATA #IMPLIED
-    ISO3166_A2 CDATA #IMPLIED
-    ABSENCETERM CDATA #IMPLIED
-    ISTECHNICAL CDATA #REQUIRED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    KINDOF_ID CDATA #IMPLIED
-    PARTOF_ID CDATA #IMPLIED
-    VOCABULARY_ID CDATA #IMPLIED
-    LEVEL_ID CDATA #IMPLIED
-    POINTAPPROXIMATION_REFERENCESYSTEM_ID CDATA #IMPLIED
-    SHAPE_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
->
-
-<!ELEMENT DEFINEDTERMBASE_AUD EMPTY>
-<!ATTLIST DEFINEDTERMBASE_AUD
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    TERMTYPE CDATA #IMPLIED
-    URI CDATA #IMPLIED
-    RANKCLASS CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    KINDOF_ID CDATA #IMPLIED
-    PARTOF_ID CDATA #IMPLIED
-    VOCABULARY_ID CDATA #IMPLIED
-    ORDERINDEX CDATA #IMPLIED
-    IDINVOCABULARY CDATA #IMPLIED
-    ISO639_1 CDATA #IMPLIED
-    ABSENCETERM CDATA #IMPLIED
-    ISTECHNICAL CDATA #IMPLIED
-    DEFAULTCOLOR CDATA #IMPLIED
-    SUPPORTSCOMMONTAXONNAME CDATA #IMPLIED
-    SUPPORTSDISTRIBUTION CDATA #IMPLIED
-    SUPPORTSINDIVIDUALASSOCIATION CDATA #IMPLIED
-    SUPPORTSQUANTITATIVEDATA CDATA #IMPLIED
-    SUPPORTSTAXONINTERACTION CDATA #IMPLIED
-    SUPPORTSTEXTDATA CDATA #IMPLIED
-    SUPPORTSCATEGORICALDATA CDATA #IMPLIED
-    POINTAPPROXIMATION_ERRORRADIUS CDATA #IMPLIED
-    POINTAPPROXIMATION_LATITUDE CDATA #IMPLIED
-    POINTAPPROXIMATION_LONGITUDE CDATA #IMPLIED
-    VALIDPERIOD_END CDATA #IMPLIED
-    VALIDPERIOD_START CDATA #IMPLIED
-    LEVEL_ID CDATA #IMPLIED
-    POINTAPPROXIMATION_REFERENCESYSTEM_ID CDATA #IMPLIED
-    SHAPE_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
-    SYMMETRICAL CDATA #IMPLIED
-    TRANSITIVE CDATA #IMPLIED
-    ISO3166_A2 CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
->
-
-<!ELEMENT DEFINEDTERMBASE_CONTINENT EMPTY>
-<!ATTLIST DEFINEDTERMBASE_CONTINENT
-    COUNTRY_ID CDATA #REQUIRED
-    CONTINENTS_ID CDATA #REQUIRED
->
-
-<!ELEMENT DEFINEDTERMBASE_CONTINENT_AUD EMPTY>
-<!ATTLIST DEFINEDTERMBASE_CONTINENT_AUD
-    REV CDATA #REQUIRED
-    COUNTRY_ID CDATA #REQUIRED
-    CONTINENTS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DEFINEDTERMBASE_MEDIA EMPTY>
-<!ATTLIST DEFINEDTERMBASE_MEDIA
-    DEFINEDTERMBASE_ID CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
->
-
-<!ELEMENT DEFINEDTERMBASE_MEDIA_AUD EMPTY>
-<!ATTLIST DEFINEDTERMBASE_MEDIA_AUD
-    REV CDATA #REQUIRED
-    DEFINEDTERMBASE_ID CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DEFINEDTERMBASE_RECOMMENDEDMODIFIERENUMERATION EMPTY>
-<!ATTLIST DEFINEDTERMBASE_RECOMMENDEDMODIFIERENUMERATION
-    DEFINEDTERMBASE_ID CDATA #REQUIRED
-    RECOMMENDEDMODIFIERENUMERATION_ID CDATA #REQUIRED
->
-
-<!ELEMENT DEFINEDTERMBASE_RECOMMENDEDMODIFIERENUMERATION_AUD EMPTY>
-<!ATTLIST DEFINEDTERMBASE_RECOMMENDEDMODIFIERENUMERATION_AUD
-    REV CDATA #REQUIRED
-    DEFINEDTERMBASE_ID CDATA #REQUIRED
-    RECOMMENDEDMODIFIERENUMERATION_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DEFINEDTERMBASE_REPRESENTATION EMPTY>
-<!ATTLIST DEFINEDTERMBASE_REPRESENTATION
-    DEFINEDTERMBASE_ID CDATA #REQUIRED
-    REPRESENTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT DEFINEDTERMBASE_REPRESENTATION_AUD EMPTY>
-<!ATTLIST DEFINEDTERMBASE_REPRESENTATION_AUD
-    REV CDATA #REQUIRED
-    DEFINEDTERMBASE_ID CDATA #REQUIRED
-    REPRESENTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DEFINEDTERMBASE_STATISTICALMEASURE EMPTY>
-<!ATTLIST DEFINEDTERMBASE_STATISTICALMEASURE
-    DEFINEDTERMBASE_ID CDATA #REQUIRED
-    RECOMMENDEDSTATISTICALMEASURES_ID CDATA #REQUIRED
->
-
-<!ELEMENT DEFINEDTERMBASE_STATISTICALMEASURE_AUD EMPTY>
-<!ATTLIST DEFINEDTERMBASE_STATISTICALMEASURE_AUD
-    REV CDATA #REQUIRED
-    DEFINEDTERMBASE_ID CDATA #REQUIRED
-    RECOMMENDEDSTATISTICALMEASURES_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION EMPTY>
-<!ATTLIST DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION
-    DEFINEDTERMBASE_ID CDATA #REQUIRED
-    SUPPORTEDCATEGORICALENUMERATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION_AUD EMPTY>
-<!ATTLIST DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION_AUD
-    REV CDATA #REQUIRED
-    DEFINEDTERMBASE_ID CDATA #REQUIRED
-    SUPPORTEDCATEGORICALENUMERATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DEFINEDTERMBASE_COUNTRY EMPTY>
-<!ATTLIST DEFINEDTERMBASE_COUNTRY
-    DEFINEDTERMBASE_ID CDATA #REQUIRED
-    COUNTRIES_ID CDATA #REQUIRED
->
-
-<!ELEMENT DEFINEDTERMBASE_COUNTRY_AUD EMPTY>
-<!ATTLIST DEFINEDTERMBASE_COUNTRY_AUD
-    REV CDATA #REQUIRED
-    DEFINEDTERMBASE_ID CDATA #REQUIRED
-    COUNTRIES_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DERIVATIONEVENT EMPTY>
-<!ATTLIST DERIVATIONEVENT
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    DESCRIPTION CDATA #IMPLIED
-    TIMEPERIOD_END CDATA #IMPLIED
-    TIMEPERIOD_START CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    ACTOR_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT DERIVATIONEVENT_ANNOTATION EMPTY>
-<!ATTLIST DERIVATIONEVENT_ANNOTATION
-    DERIVATIONEVENT_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT DERIVATIONEVENT_ANNOTATION_AUD EMPTY>
-<!ATTLIST DERIVATIONEVENT_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    DERIVATIONEVENT_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DERIVATIONEVENT_AUD EMPTY>
-<!ATTLIST DERIVATIONEVENT_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    DESCRIPTION CDATA #IMPLIED
-    TIMEPERIOD_END CDATA #IMPLIED
-    TIMEPERIOD_START CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    ACTOR_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT DERIVATIONEVENT_MARKER EMPTY>
-<!ATTLIST DERIVATIONEVENT_MARKER
-    DERIVATIONEVENT_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT DERIVATIONEVENT_MARKER_AUD EMPTY>
-<!ATTLIST DERIVATIONEVENT_MARKER_AUD
-    REV CDATA #REQUIRED
-    DERIVATIONEVENT_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONBASE EMPTY>
-<!ATTLIST DESCRIPTIONBASE
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    LSID CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    IMAGEGALLERY CDATA #IMPLIED
-    ISDEFAULT CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    SPECIMEN_ID CDATA #IMPLIED
-    TAXON_ID CDATA #IMPLIED
-    TAXONNAME_ID CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONBASE_ANNOTATION EMPTY>
-<!ATTLIST DESCRIPTIONBASE_ANNOTATION
-    DESCRIPTIONBASE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT DESCRIPTIONBASE_ANNOTATION_AUD EMPTY>
-<!ATTLIST DESCRIPTIONBASE_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    DESCRIPTIONBASE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONBASE_AUD EMPTY>
-<!ATTLIST DESCRIPTIONBASE_AUD
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    LSID CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    IMAGEGALLERY CDATA #IMPLIED
-    ISDEFAULT CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    SPECIMEN_ID CDATA #IMPLIED
-    TAXON_ID CDATA #IMPLIED
-    TAXONNAME_ID CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONBASE_EXTENSION EMPTY>
-<!ATTLIST DESCRIPTIONBASE_EXTENSION
-    DESCRIPTIONBASE_ID CDATA #REQUIRED
-    EXTENSIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT DESCRIPTIONBASE_EXTENSION_AUD EMPTY>
-<!ATTLIST DESCRIPTIONBASE_EXTENSION_AUD
-    REV CDATA #REQUIRED
-    DESCRIPTIONBASE_ID CDATA #REQUIRED
-    EXTENSIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONBASE_GEOSCOPE EMPTY>
-<!ATTLIST DESCRIPTIONBASE_GEOSCOPE
-    DESCRIPTIONBASE_ID CDATA #REQUIRED
-    GEOSCOPES_ID CDATA #REQUIRED
->
-
-<!ELEMENT DESCRIPTIONBASE_GEOSCOPE_AUD EMPTY>
-<!ATTLIST DESCRIPTIONBASE_GEOSCOPE_AUD
-    REV CDATA #REQUIRED
-    DESCRIPTIONBASE_ID CDATA #REQUIRED
-    GEOSCOPES_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONBASE_MARKER EMPTY>
-<!ATTLIST DESCRIPTIONBASE_MARKER
-    DESCRIPTIONBASE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT DESCRIPTIONBASE_MARKER_AUD EMPTY>
-<!ATTLIST DESCRIPTIONBASE_MARKER_AUD
-    REV CDATA #REQUIRED
-    DESCRIPTIONBASE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONBASE_ORIGINALSOURCE EMPTY>
-<!ATTLIST DESCRIPTIONBASE_ORIGINALSOURCE
-    DESCRIPTIONBASE_ID CDATA #REQUIRED
-    SOURCES_ID CDATA #REQUIRED
->
-
-<!ELEMENT DESCRIPTIONBASE_ORIGINALSOURCE_AUD EMPTY>
-<!ATTLIST DESCRIPTIONBASE_ORIGINALSOURCE_AUD
-    REV CDATA #REQUIRED
-    DESCRIPTIONBASE_ID CDATA #REQUIRED
-    SOURCES_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONBASE_REFERENCE EMPTY>
-<!ATTLIST DESCRIPTIONBASE_REFERENCE
-    DESCRIPTIONBASE_ID CDATA #REQUIRED
-    DESCRIPTIONSOURCES_ID CDATA #REQUIRED
->
-
-<!ELEMENT DESCRIPTIONBASE_REFERENCE_AUD EMPTY>
-<!ATTLIST DESCRIPTIONBASE_REFERENCE_AUD
-    REV CDATA #REQUIRED
-    DESCRIPTIONBASE_ID CDATA #REQUIRED
-    DESCRIPTIONSOURCES_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONBASE_RIGHTSINFO EMPTY>
-<!ATTLIST DESCRIPTIONBASE_RIGHTSINFO
-    DESCRIPTIONBASE_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
->
-
-<!ELEMENT DESCRIPTIONBASE_RIGHTSINFO_AUD EMPTY>
-<!ATTLIST DESCRIPTIONBASE_RIGHTSINFO_AUD
-    REV CDATA #REQUIRED
-    DESCRIPTIONBASE_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONBASE_SCOPE EMPTY>
-<!ATTLIST DESCRIPTIONBASE_SCOPE
-    DESCRIPTIONBASE_ID CDATA #REQUIRED
-    SCOPES_ID CDATA #REQUIRED
->
-
-<!ELEMENT DESCRIPTIONBASE_SCOPE_AUD EMPTY>
-<!ATTLIST DESCRIPTIONBASE_SCOPE_AUD
-    REV CDATA #REQUIRED
-    DESCRIPTIONBASE_ID CDATA #REQUIRED
-    SCOPES_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONELEMENTBASE EMPTY>
-<!ATTLIST DESCRIPTIONELEMENTBASE
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
-    ORDERRELEVANT CDATA #IMPLIED
-    NAME CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
-    FEATURE_ID CDATA #IMPLIED
-    INDESCRIPTION_ID CDATA #IMPLIED
-    LANGUAGE_ID CDATA #IMPLIED
-    AREA_ID CDATA #IMPLIED
-    STATUS_ID CDATA #IMPLIED
-    ASSOCIATEDSPECIMENOROBSERVATION_ID CDATA #IMPLIED
-    UNIT_ID CDATA #IMPLIED
-    TAXON2_ID CDATA #IMPLIED
-    FORMAT_ID CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONELEMENTBASE_ANNOTATION EMPTY>
-<!ATTLIST DESCRIPTIONELEMENTBASE_ANNOTATION
-    DESCRIPTIONELEMENTBASE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT DESCRIPTIONELEMENTBASE_ANNOTATION_AUD EMPTY>
-<!ATTLIST DESCRIPTIONELEMENTBASE_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    DESCRIPTIONELEMENTBASE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONELEMENTBASE_AUD EMPTY>
-<!ATTLIST DESCRIPTIONELEMENTBASE_AUD
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
-    FEATURE_ID CDATA #IMPLIED
-    INDESCRIPTION_ID CDATA #IMPLIED
-    NAME CDATA #IMPLIED
-    LANGUAGE_ID CDATA #IMPLIED
-    UNIT_ID CDATA #IMPLIED
-    FORMAT_ID CDATA #IMPLIED
-    TAXON2_ID CDATA #IMPLIED
-    AREA_ID CDATA #IMPLIED
-    STATUS_ID CDATA #IMPLIED
-    ORDERRELEVANT CDATA #IMPLIED
-    ASSOCIATEDSPECIMENOROBSERVATION_ID CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONELEMENTBASE_LANGUAGESTRING EMPTY>
-<!ATTLIST DESCRIPTIONELEMENTBASE_LANGUAGESTRING
-    TEXTDATA_ID CDATA #REQUIRED
-    MULTILANGUAGETEXT_ID CDATA #REQUIRED
->
-
-<!ELEMENT DESCRIPTIONELEMENTBASE_LANGUAGESTRING_AUD EMPTY>
-<!ATTLIST DESCRIPTIONELEMENTBASE_LANGUAGESTRING_AUD
-    REV CDATA #REQUIRED
-    TEXTDATA_ID CDATA #REQUIRED
-    MULTILANGUAGETEXT_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONELEMENTBASE_MARKER EMPTY>
-<!ATTLIST DESCRIPTIONELEMENTBASE_MARKER
-    DESCRIPTIONELEMENTBASE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT DESCRIPTIONELEMENTBASE_MARKER_AUD EMPTY>
-<!ATTLIST DESCRIPTIONELEMENTBASE_MARKER_AUD
-    REV CDATA #REQUIRED
-    DESCRIPTIONELEMENTBASE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONELEMENTBASE_MEDIA EMPTY>
-<!ATTLIST DESCRIPTIONELEMENTBASE_MEDIA
-    DESCRIPTIONELEMENTBASE_ID CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
->
-
-<!ELEMENT DESCRIPTIONELEMENTBASE_MEDIA_AUD EMPTY>
-<!ATTLIST DESCRIPTIONELEMENTBASE_MEDIA_AUD
-    REV CDATA #REQUIRED
-    DESCRIPTIONELEMENTBASE_ID CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONELEMENTBASE_MODIFIER EMPTY>
-<!ATTLIST DESCRIPTIONELEMENTBASE_MODIFIER
-    DESCRIPTIONELEMENTBASE_ID CDATA #REQUIRED
-    MODIFIERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT DESCRIPTIONELEMENTBASE_MODIFIER_AUD EMPTY>
-<!ATTLIST DESCRIPTIONELEMENTBASE_MODIFIER_AUD
-    REV CDATA #REQUIRED
-    DESCRIPTIONELEMENTBASE_ID CDATA #REQUIRED
-    MODIFIERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DESCRIPTIONELEMENTBASE_MODIFYINGTEXT EMPTY>
-<!ATTLIST DESCRIPTIONELEMENTBASE_MODIFYINGTEXT
-    DESCRIPTIONELEMENTBASE_ID CDATA #REQUIRED
-    MODIFYINGTEXT_ID CDATA #IMPLIED
-    MODIFYINGTEXT_MAPKEY_ID CDATA #REQUIRED
->
-
-<!ELEMENT DESCRIPTIONELEMENTBASE_MODIFYINGTEXT_AUD EMPTY>
-<!ATTLIST DESCRIPTIONELEMENTBASE_MODIFYINGTEXT_AUD
-    REV CDATA #REQUIRED
-    DESCRIPTIONELEMENTBASE_ID CDATA #REQUIRED
-    MODIFYINGTEXT_ID CDATA #REQUIRED
-    MODIFYINGTEXT_MAPKEY_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DETERMINATIONEVENT EMPTY>
-<!ATTLIST DETERMINATIONEVENT
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    DESCRIPTION CDATA #IMPLIED
-    TIMEPERIOD_END CDATA #IMPLIED
-    TIMEPERIOD_START CDATA #IMPLIED
-    PREFERREDFLAG CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    ACTOR_ID CDATA #IMPLIED
-    IDENTIFIEDUNIT_ID CDATA #IMPLIED
-    MODIFIER_ID CDATA #IMPLIED
-    TAXON_ID CDATA #IMPLIED
->
-
-<!ELEMENT DETERMINATIONEVENT_ANNOTATION EMPTY>
-<!ATTLIST DETERMINATIONEVENT_ANNOTATION
-    DETERMINATIONEVENT_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT DETERMINATIONEVENT_ANNOTATION_AUD EMPTY>
-<!ATTLIST DETERMINATIONEVENT_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    DETERMINATIONEVENT_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DETERMINATIONEVENT_AUD EMPTY>
-<!ATTLIST DETERMINATIONEVENT_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    DESCRIPTION CDATA #IMPLIED
-    TIMEPERIOD_END CDATA #IMPLIED
-    TIMEPERIOD_START CDATA #IMPLIED
-    PREFERREDFLAG CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    ACTOR_ID CDATA #IMPLIED
-    IDENTIFIEDUNIT_ID CDATA #IMPLIED
-    MODIFIER_ID CDATA #IMPLIED
-    TAXON_ID CDATA #IMPLIED
->
-
-<!ELEMENT DETERMINATIONEVENT_MARKER EMPTY>
-<!ATTLIST DETERMINATIONEVENT_MARKER
-    DETERMINATIONEVENT_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT DETERMINATIONEVENT_MARKER_AUD EMPTY>
-<!ATTLIST DETERMINATIONEVENT_MARKER_AUD
-    REV CDATA #REQUIRED
-    DETERMINATIONEVENT_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT DETERMINATIONEVENT_REFERENCE EMPTY>
-<!ATTLIST DETERMINATIONEVENT_REFERENCE
-    DETERMINATIONEVENT_ID CDATA #REQUIRED
-    SETOFREFERENCES_ID CDATA #REQUIRED
->
-
-<!ELEMENT DETERMINATIONEVENT_REFERENCE_AUD EMPTY>
-<!ATTLIST DETERMINATIONEVENT_REFERENCE_AUD
-    REV CDATA #REQUIRED
-    DETERMINATIONEVENT_ID CDATA #REQUIRED
-    SETOFREFERENCES_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT EXTENSION EMPTY>
-<!ATTLIST EXTENSION
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    VALUE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT EXTENSION_AUD EMPTY>
-<!ATTLIST EXTENSION_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    VALUE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT FEATURENODE EMPTY>
-<!ATTLIST FEATURENODE
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    FEATURE_ID CDATA #IMPLIED
-    PARENT_FK CDATA #IMPLIED
->
-
-<!ELEMENT FEATURENODE_AUD EMPTY>
-<!ATTLIST FEATURENODE_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    FEATURE_ID CDATA #IMPLIED
-    PARENT_FK CDATA #IMPLIED
->
-
-<!ELEMENT FEATURETREE EMPTY>
-<!ATTLIST FEATURETREE
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    URI CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    ROOT_ID CDATA #IMPLIED
->
-
-<!ELEMENT FEATURETREE_AUD EMPTY>
-<!ATTLIST FEATURETREE_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    URI CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    ROOT_ID CDATA #IMPLIED
->
-
-<!ELEMENT FEATURETREE_REPRESENTATION EMPTY>
-<!ATTLIST FEATURETREE_REPRESENTATION
-    FEATURETREE_ID CDATA #REQUIRED
-    REPRESENTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT FEATURETREE_REPRESENTATION_AUD EMPTY>
-<!ATTLIST FEATURETREE_REPRESENTATION_AUD
-    REV CDATA #REQUIRED
-    FEATURETREE_ID CDATA #REQUIRED
-    REPRESENTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT GATHERINGEVENT EMPTY>
-<!ATTLIST GATHERINGEVENT
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    DESCRIPTION CDATA #IMPLIED
-    TIMEPERIOD_END CDATA #IMPLIED
-    TIMEPERIOD_START CDATA #IMPLIED
-    ABSOLUTEELEVATION CDATA #IMPLIED
-    ABSOLUTEELEVATIONERROR CDATA #IMPLIED
-    COLLECTINGMETHOD CDATA #IMPLIED
-    COLLECTINGMETHODMAX CDATA #IMPLIED
-    DISTANCETOGROUND CDATA #IMPLIED
-    DISTANCETOGROUNDMAX CDATA #IMPLIED
-    DISTANCETOGROUNDTEXT CDATA #IMPLIED
-    DISTANCETOWATERSURFACE CDATA #IMPLIED
-    DISTANCETOWATERSURFACEMAX CDATA #IMPLIED
-    DISTANCETOWATERSURFACETEXT CDATA #IMPLIED
-    EXACTLOCATION_ERRORRADIUS CDATA #IMPLIED
-    EXACTLOCATION_LATITUDE CDATA #IMPLIED
-    EXACTLOCATION_LONGITUDE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    ACTOR_ID CDATA #IMPLIED
-    EXACTLOCATION_REFERENCESYSTEM_ID CDATA #IMPLIED
-    LOCALITY_ID CDATA #IMPLIED
->
-
-<!ELEMENT GATHERINGEVENT_ANNOTATION EMPTY>
-<!ATTLIST GATHERINGEVENT_ANNOTATION
-    GATHERINGEVENT_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT GATHERINGEVENT_ANNOTATION_AUD EMPTY>
-<!ATTLIST GATHERINGEVENT_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    GATHERINGEVENT_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT GATHERINGEVENT_AUD EMPTY>
-<!ATTLIST GATHERINGEVENT_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    DESCRIPTION CDATA #IMPLIED
-    TIMEPERIOD_END CDATA #IMPLIED
-    TIMEPERIOD_START CDATA #IMPLIED
-    ABSOLUTEELEVATION CDATA #IMPLIED
-    ABSOLUTEELEVATIONERROR CDATA #IMPLIED
-    COLLECTINGMETHOD CDATA #IMPLIED
-    DISTANCETOGROUND CDATA #IMPLIED
-    DISTANCETOGROUNDMAX CDATA #IMPLIED
-    DISTANCETOGROUNDTEXT CDATA #IMPLIED
-    DISTANCETOWATERSURFACE CDATA #IMPLIED
-    DISTANCETOWATERSURFACEMAX CDATA #IMPLIED
-    DISTANCETOWATERSURFACETEXT CDATA #IMPLIED
-    EXACTLOCATION_ERRORRADIUS CDATA #IMPLIED
-    EXACTLOCATION_LATITUDE CDATA #IMPLIED
-    EXACTLOCATION_LONGITUDE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    ACTOR_ID CDATA #IMPLIED
-    EXACTLOCATION_REFERENCESYSTEM_ID CDATA #IMPLIED
-    LOCALITY_ID CDATA #IMPLIED
->
-
-<!ELEMENT GATHERINGEVENT_DEFINEDTERMBASE EMPTY>
-<!ATTLIST GATHERINGEVENT_DEFINEDTERMBASE
-    GATHERINGEVENT_ID CDATA #REQUIRED
-    COLLECTINGAREAS_ID CDATA #REQUIRED
->
-
-<!ELEMENT GATHERINGEVENT_DEFINEDTERMBASE_AUD EMPTY>
-<!ATTLIST GATHERINGEVENT_DEFINEDTERMBASE_AUD
-    REV CDATA #REQUIRED
-    GATHERINGEVENT_ID CDATA #REQUIRED
-    COLLECTINGAREAS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT GATHERINGEVENT_MARKER EMPTY>
-<!ATTLIST GATHERINGEVENT_MARKER
-    GATHERINGEVENT_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT GATHERINGEVENT_MARKER_AUD EMPTY>
-<!ATTLIST GATHERINGEVENT_MARKER_AUD
-    REV CDATA #REQUIRED
-    GATHERINGEVENT_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT GRANTEDAUTHORITYIMPL EMPTY>
-<!ATTLIST GRANTEDAUTHORITYIMPL
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    AUTHORITY CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
->
-
-<!ELEMENT HIBERNATE_SEQUENCES EMPTY>
-<!ATTLIST HIBERNATE_SEQUENCES
-       SEQUENCE_NAME CDATA #IMPLIED
-       NEXT_VAL CDATA #IMPLIED
->
-
-<!ELEMENT HOMOTYPICALGROUP EMPTY>
-<!ATTLIST HOMOTYPICALGROUP
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
->
-
-<!ELEMENT HOMOTYPICALGROUP_ANNOTATION EMPTY>
-<!ATTLIST HOMOTYPICALGROUP_ANNOTATION
-    HOMOTYPICALGROUP_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT HOMOTYPICALGROUP_ANNOTATION_AUD EMPTY>
-<!ATTLIST HOMOTYPICALGROUP_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    HOMOTYPICALGROUP_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT HOMOTYPICALGROUP_AUD EMPTY>
-<!ATTLIST HOMOTYPICALGROUP_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
->
-
-<!ELEMENT HOMOTYPICALGROUP_MARKER EMPTY>
-<!ATTLIST HOMOTYPICALGROUP_MARKER
-    HOMOTYPICALGROUP_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT HOMOTYPICALGROUP_MARKER_AUD EMPTY>
-<!ATTLIST HOMOTYPICALGROUP_MARKER_AUD
-    REV CDATA #REQUIRED
-    HOMOTYPICALGROUP_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT HYBRIDRELATIONSHIP EMPTY>
-<!ATTLIST HYBRIDRELATIONSHIP
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
-    DOUBTFUL CDATA #IMPLIED
-    RULECONSIDERED CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
-    RELATEDFROM_ID CDATA #IMPLIED
-    RELATEDTO_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT HYBRIDRELATIONSHIP_ANNOTATION EMPTY>
-<!ATTLIST HYBRIDRELATIONSHIP_ANNOTATION
-    HYBRIDRELATIONSHIP_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT HYBRIDRELATIONSHIP_ANNOTATION_AUD EMPTY>
-<!ATTLIST HYBRIDRELATIONSHIP_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    HYBRIDRELATIONSHIP_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT HYBRIDRELATIONSHIP_AUD EMPTY>
-<!ATTLIST HYBRIDRELATIONSHIP_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
-    DOUBTFUL CDATA #IMPLIED
-    RULECONSIDERED CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
-    RELATEDFROM_ID CDATA #IMPLIED
-    RELATEDTO_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT HYBRIDRELATIONSHIP_MARKER EMPTY>
-<!ATTLIST HYBRIDRELATIONSHIP_MARKER
-    HYBRIDRELATIONSHIP_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT HYBRIDRELATIONSHIP_MARKER_AUD EMPTY>
-<!ATTLIST HYBRIDRELATIONSHIP_MARKER_AUD
-    REV CDATA #REQUIRED
-    HYBRIDRELATIONSHIP_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT MEDIAKEY_TAXONSCOPE EMPTY>
-<!ATTLIST MEDIAKEY_TAXONSCOPE
-    MEDIAKEY_FK CDATA #REQUIRED
-    TAXONOMICSCOPE_FK CDATA #REQUIRED
->
-
-<!ELEMENT MEDIAKEY_TAXONSCOPE_AUD EMPTY>
-<!ATTLIST MEDIAKEY_TAXONSCOPE_AUD
-    REV CDATA #REQUIRED
-    MEDIAKEY_FK CDATA #REQUIRED
-    TAXONOMICSCOPE_FK CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT INDIVIDUALSASSOCIATION_LANGUAGESTRING EMPTY>
-<!ATTLIST INDIVIDUALSASSOCIATION_LANGUAGESTRING
-    DESCRIPTIONELEMENTBASE_ID CDATA #REQUIRED
-    DESCRIPTION_ID CDATA #IMPLIED
-    DESCRIPTION_MAPKEY_ID CDATA #REQUIRED
->
-
-<!ELEMENT INDIVIDUALSASSOCIATION_LANGUAGESTRING_AUD EMPTY>
-<!ATTLIST INDIVIDUALSASSOCIATION_LANGUAGESTRING_AUD
-    REV CDATA #REQUIRED
-    DESCRIPTIONELEMENTBASE_ID CDATA #REQUIRED
-    DESCRIPTION_ID CDATA #REQUIRED
-    DESCRIPTION_MAPKEY_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT INSTITUTIONALMEMBERSHIP EMPTY>
-<!ATTLIST INSTITUTIONALMEMBERSHIP
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    DEPARTMENT CDATA #IMPLIED
-    PERIOD_END CDATA #IMPLIED
-    PERIOD_START CDATA #IMPLIED
-    ROLE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    INSTITUTE_ID CDATA #IMPLIED
-    PERSON_ID CDATA #IMPLIED
->
-
-<!ELEMENT INSTITUTIONALMEMBERSHIP_AUD EMPTY>
-<!ATTLIST INSTITUTIONALMEMBERSHIP_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    DEPARTMENT CDATA #IMPLIED
-    PERIOD_END CDATA #IMPLIED
-    PERIOD_START CDATA #IMPLIED
-    ROLE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    INSTITUTE_ID CDATA #IMPLIED
-    PERSON_ID CDATA #IMPLIED
->
-
-<!ELEMENT LANGUAGESTRING EMPTY>
-<!ATTLIST LANGUAGESTRING
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    TEXT CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    LANGUAGE_ID CDATA #IMPLIED
->
-
-<!ELEMENT LANGUAGESTRING_ANNOTATION EMPTY>
-<!ATTLIST LANGUAGESTRING_ANNOTATION
-    LANGUAGESTRING_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT LANGUAGESTRING_ANNOTATION_AUD EMPTY>
-<!ATTLIST LANGUAGESTRING_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    LANGUAGESTRING_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT LANGUAGESTRING_AUD EMPTY>
-<!ATTLIST LANGUAGESTRING_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    TEXT CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    LANGUAGE_ID CDATA #IMPLIED
->
-
-<!ELEMENT LANGUAGESTRING_MARKER EMPTY>
-<!ATTLIST LANGUAGESTRING_MARKER
-    LANGUAGESTRING_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT LANGUAGESTRING_MARKER_AUD EMPTY>
-<!ATTLIST LANGUAGESTRING_MARKER_AUD
-    REV CDATA #REQUIRED
-    LANGUAGESTRING_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT MARKER EMPTY>
-<!ATTLIST MARKER
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    FLAG CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    MARKERTYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT MARKER_AUD EMPTY>
-<!ATTLIST MARKER_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    FLAG CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    MARKERTYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT MEDIA EMPTY>
-<!ATTLIST MEDIA
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    LSID CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    MEDIACREATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    ARTIST_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
->
-
-<!ELEMENT MEDIAREPRESENTATION EMPTY>
-<!ATTLIST MEDIAREPRESENTATION
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    MIMETYPE CDATA #IMPLIED
-    SUFFIX CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    MEDIA_ID CDATA #IMPLIED
->
-
-<!ELEMENT MEDIAREPRESENTATIONPART EMPTY>
-<!ATTLIST MEDIAREPRESENTATIONPART
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    SIZE CDATA #IMPLIED
-    URI CDATA #IMPLIED
-    DURATION CDATA #IMPLIED
-    HEIGHT CDATA #IMPLIED
-    WIDTH CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    REPRESENTATION_ID CDATA #IMPLIED
-    SORTINDEX CDATA #IMPLIED
->
-
-<!ELEMENT MEDIAREPRESENTATIONPART_AUD EMPTY>
-<!ATTLIST MEDIAREPRESENTATIONPART_AUD
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    SIZE CDATA #IMPLIED
-    URI CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    REPRESENTATION_ID CDATA #IMPLIED
-    DURATION CDATA #IMPLIED
-    HEIGHT CDATA #IMPLIED
-    WIDTH CDATA #IMPLIED
->
-
-<!ELEMENT MEDIAREPRESENTATION_AUD EMPTY>
-<!ATTLIST MEDIAREPRESENTATION_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    MIMETYPE CDATA #IMPLIED
-    SUFFIX CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    MEDIA_ID CDATA #IMPLIED
->
-
-<!ELEMENT MEDIAREPRESENTATION_MEDIAREPRESENTATIONPART_AUD EMPTY>
-<!ATTLIST MEDIAREPRESENTATION_MEDIAREPRESENTATIONPART_AUD
-    REV CDATA #REQUIRED
-    REPRESENTATION_ID CDATA #REQUIRED
-    ID CDATA #REQUIRED
-    SORTINDEX CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT MEDIA_ANNOTATION EMPTY>
-<!ATTLIST MEDIA_ANNOTATION
-    MEDIA_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT MEDIA_ANNOTATION_AUD EMPTY>
-<!ATTLIST MEDIA_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT MEDIA_AUD EMPTY>
-<!ATTLIST MEDIA_AUD
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    LSID CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    MEDIACREATED CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    ARTIST_ID CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
->
-
-<!ELEMENT MEDIA_DEFINEDTERMBASE EMPTY>
-<!ATTLIST MEDIA_DEFINEDTERMBASE
-    MEDIA_ID CDATA #REQUIRED
-    GEOGRAPHICALSCOPE_ID CDATA #REQUIRED
->
-
-<!ELEMENT MEDIA_DEFINEDTERMBASE_AUD EMPTY>
-<!ATTLIST MEDIA_DEFINEDTERMBASE_AUD
-    REV CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
-    GEOGRAPHICALSCOPE_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT MEDIA_DESCRIPTION EMPTY>
-<!ATTLIST MEDIA_DESCRIPTION
-    MEDIA_ID CDATA #REQUIRED
-    DESCRIPTION_ID CDATA #IMPLIED
-    DESCRIPTION_MAPKEY_ID CDATA #REQUIRED
->
-
-<!ELEMENT MEDIA_DESCRIPTION_AUD EMPTY>
-<!ATTLIST MEDIA_DESCRIPTION_AUD
-    REV CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
-    DESCRIPTION_ID CDATA #REQUIRED
-    DESCRIPTION_MAPKEY_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT MEDIA_LANGUAGESTRING EMPTY>
-<!ATTLIST MEDIA_LANGUAGESTRING
-    MEDIA_ID CDATA #REQUIRED
-    TITLE_ID CDATA #IMPLIED
-    TITLE_MAPKEY_ID CDATA #REQUIRED
->
-
-<!ELEMENT MEDIA_LANGUAGESTRING_AUD EMPTY>
-<!ATTLIST MEDIA_LANGUAGESTRING_AUD
-    REV CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
-    TITLE_ID CDATA #REQUIRED
-    TITLE_MAPKEY_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT MEDIA_MARKER EMPTY>
-<!ATTLIST MEDIA_MARKER
-    MEDIA_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT MEDIA_MARKER_AUD EMPTY>
-<!ATTLIST MEDIA_MARKER_AUD
-    REV CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT MEDIA_RIGHTSINFO EMPTY>
-<!ATTLIST MEDIA_RIGHTSINFO
-    MEDIA_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
->
-
-<!ELEMENT MEDIA_RIGHTSINFO_AUD EMPTY>
-<!ATTLIST MEDIA_RIGHTSINFO_AUD
-    REV CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT MEDIA_SEQUENCE EMPTY>
-<!ATTLIST MEDIA_SEQUENCE
-    MEDIA_ID CDATA #REQUIRED
-    USEDSEQUENCES_ID CDATA #REQUIRED
->
-
-<!ELEMENT MEDIA_SEQUENCE_AUD EMPTY>
-<!ATTLIST MEDIA_SEQUENCE_AUD
-    REV CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
-    USEDSEQUENCES_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT MEDIAKEY_COVEREDTAXON EMPTY>
-<!ATTLIST MEDIAKEY_COVEREDTAXON
-    MEDIAKEY_ID CDATA #REQUIRED
-    COVEREDTAXA_ID CDATA #REQUIRED
->
-
-<!ELEMENT MEDIAKEY_COVEREDTAXON_AUD EMPTY>
-<!ATTLIST MEDIAKEY_COVEREDTAXON_AUD
-    REV CDATA #REQUIRED
-    MEDIAKEY_ID CDATA #REQUIRED
-    COVEREDTAXA_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT NAMERELATIONSHIP EMPTY>
-<!ATTLIST NAMERELATIONSHIP
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
-    DOUBTFUL CDATA #IMPLIED
-    RULECONSIDERED CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
-    RELATEDFROM_ID CDATA #IMPLIED
-    RELATEDTO_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT NAMERELATIONSHIP_ANNOTATION EMPTY>
-<!ATTLIST NAMERELATIONSHIP_ANNOTATION
-    NAMERELATIONSHIP_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT NAMERELATIONSHIP_ANNOTATION_AUD EMPTY>
-<!ATTLIST NAMERELATIONSHIP_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    NAMERELATIONSHIP_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT NAMERELATIONSHIP_AUD EMPTY>
-<!ATTLIST NAMERELATIONSHIP_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
-    DOUBTFUL CDATA #IMPLIED
-    RULECONSIDERED CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
-    RELATEDFROM_ID CDATA #IMPLIED
-    RELATEDTO_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT NAMERELATIONSHIP_MARKER EMPTY>
-<!ATTLIST NAMERELATIONSHIP_MARKER
-    NAMERELATIONSHIP_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT NAMERELATIONSHIP_MARKER_AUD EMPTY>
-<!ATTLIST NAMERELATIONSHIP_MARKER_AUD
-    REV CDATA #REQUIRED
-    NAMERELATIONSHIP_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT NOMENCLATURALSTATUS EMPTY>
-<!ATTLIST NOMENCLATURALSTATUS
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
-    RULECONSIDERED CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT NOMENCLATURALSTATUS_ANNOTATION EMPTY>
-<!ATTLIST NOMENCLATURALSTATUS_ANNOTATION
-    NOMENCLATURALSTATUS_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT NOMENCLATURALSTATUS_ANNOTATION_AUD EMPTY>
-<!ATTLIST NOMENCLATURALSTATUS_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    NOMENCLATURALSTATUS_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT NOMENCLATURALSTATUS_AUD EMPTY>
-<!ATTLIST NOMENCLATURALSTATUS_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
-    RULECONSIDERED CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT NOMENCLATURALSTATUS_MARKER EMPTY>
-<!ATTLIST NOMENCLATURALSTATUS_MARKER
-    NOMENCLATURALSTATUS_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT NOMENCLATURALSTATUS_MARKER_AUD EMPTY>
-<!ATTLIST NOMENCLATURALSTATUS_MARKER_AUD
-    REV CDATA #REQUIRED
-    NOMENCLATURALSTATUS_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT ORIGINALSOURCE EMPTY>
-<!ATTLIST ORIGINALSOURCE
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
-    IDINSOURCE CDATA #IMPLIED
-    IDNAMESPACE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
->
-
-<!ELEMENT ORIGINALSOURCE_ANNOTATION EMPTY>
-<!ATTLIST ORIGINALSOURCE_ANNOTATION
-    ORIGINALSOURCE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT ORIGINALSOURCE_ANNOTATION_AUD EMPTY>
-<!ATTLIST ORIGINALSOURCE_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    ORIGINALSOURCE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT ORIGINALSOURCE_AUD EMPTY>
-<!ATTLIST ORIGINALSOURCE_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
-    IDINSOURCE CDATA #IMPLIED
-    IDNAMESPACE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
->
-
-<!ELEMENT ORIGINALSOURCE_MARKER EMPTY>
-<!ATTLIST ORIGINALSOURCE_MARKER
-    ORIGINALSOURCE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT ORIGINALSOURCE_MARKER_AUD EMPTY>
-<!ATTLIST ORIGINALSOURCE_MARKER_AUD
-    REV CDATA #REQUIRED
-    ORIGINALSOURCE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT PERMISSIONGROUP EMPTY>
-<!ATTLIST PERMISSIONGROUP
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    NAME CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
->
-
-<!ELEMENT PERMISSIONGROUP_GRANTEDAUTHORITYIMPL EMPTY>
-<!ATTLIST PERMISSIONGROUP_GRANTEDAUTHORITYIMPL
-    GROUP_ID CDATA #REQUIRED
-    GRANTEDAUTHORITIES_ID CDATA #REQUIRED
->
-
-<!ELEMENT PERSON_KEYWORD EMPTY>
-<!ATTLIST PERSON_KEYWORD
-    PERSON_FK CDATA #REQUIRED
-    KEYWORD_FK CDATA #REQUIRED
->
-
-<!ELEMENT PERSON_KEYWORD_AUD EMPTY>
-<!ATTLIST PERSON_KEYWORD_AUD
-    REV CDATA #REQUIRED
-    PERSON_FK CDATA #REQUIRED
-    KEYWORD_FK CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT REFERENCE EMPTY>
-<!ATTLIST REFERENCE
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    LSID CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    HASPROBLEM CDATA #IMPLIED
-    NOMENCLATURALLYRELEVANT CDATA #IMPLIED
-    PROBLEMENDS CDATA #IMPLIED
-    PROBLEMSTARTS CDATA #IMPLIED
-    URI CDATA #IMPLIED
-    DATEPUBLISHED_END CDATA #IMPLIED
-    DATEPUBLISHED_START CDATA #IMPLIED
-    TITLE CDATA #IMPLIED
-    PAGES CDATA #IMPLIED
-    SERIES CDATA #IMPLIED
-    VOLUME CDATA #IMPLIED
-    ADDRESS CDATA #IMPLIED
-    ANNOTE CDATA #IMPLIED
-    BOOKTITLE CDATA #IMPLIED
-    CHAPTER CDATA #IMPLIED
-    EDITION CDATA #IMPLIED
-    EDITOR CDATA #IMPLIED
-    EPRINT CDATA #IMPLIED
-    HOWPUBLISHED CDATA #IMPLIED
-    INSTITUTION CDATA #IMPLIED
-    JOURNAL CDATA #IMPLIED
-    MONTH CDATA #IMPLIED
-    NOTE CDATA #IMPLIED
-    NUMBER CDATA #IMPLIED
-    ORGANIZATION CDATA #IMPLIED
-    PUBLISHER CDATA #IMPLIED
-    REPORTTYPE CDATA #IMPLIED
-    SCHOOL CDATA #IMPLIED
-    YEAR CDATA #IMPLIED
-    PLACEPUBLISHED CDATA #IMPLIED
-    SERIESPART CDATA #IMPLIED
-    ISBN CDATA #IMPLIED
-    ISSN CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    AUTHORSHIP_ID CDATA #IMPLIED
-    INJOURNAL_ID CDATA #IMPLIED
-    CROSSREF_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
-    INSERIES_ID CDATA #IMPLIED
-    INBOOK_ID CDATA #IMPLIED
-    INPROCEEDINGS_ID CDATA #IMPLIED
-    INSTITUTION_ID CDATA #IMPLIED
-    SCHOOL_ID CDATA #IMPLIED
->
-
-<!ELEMENT REFERENCE_ANNOTATION EMPTY>
-<!ATTLIST REFERENCE_ANNOTATION
-    REFERENCE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT REFERENCE_ANNOTATION_AUD EMPTY>
-<!ATTLIST REFERENCE_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    REFERENCE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT REFERENCE_AUD EMPTY>
-<!ATTLIST REFERENCE_AUD
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    LSID CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    HASPROBLEM CDATA #IMPLIED
-    NOMENCLATURALLYRELEVANT CDATA #IMPLIED
-    PROBLEMENDS CDATA #IMPLIED
-    PROBLEMSTARTS CDATA #IMPLIED
-    URI CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    AUTHORSHIP_ID CDATA #IMPLIED
-    DATEPUBLISHED_END CDATA #IMPLIED
-    DATEPUBLISHED_START CDATA #IMPLIED
-    TITLE CDATA #IMPLIED
-    ABBREVTITLE CDATA #IMPLIED
-    ABBREVTITLECACHE CDATA #IMPLIED
-    PROTECTEDABBREVTITLECACHE CDATA #IMPLIED
-    PAGES CDATA #IMPLIED
-    PLACEPUBLISHED CDATA #IMPLIED
-    PUBLISHER CDATA #IMPLIED
-    SCHOOL_ID CDATA #IMPLIED
-    EDITOR CDATA #IMPLIED
-    SERIESPART CDATA #IMPLIED
-    VOLUME CDATA #IMPLIED
-    INSERIES_ID CDATA #IMPLIED
-    EDITION CDATA #IMPLIED
-    ISBN CDATA #IMPLIED
-    ORGANIZATION CDATA #IMPLIED
-    SERIES CDATA #IMPLIED
-    ISSN CDATA #IMPLIED
-    ADDRESS CDATA #IMPLIED
-    ANNOTE CDATA #IMPLIED
-    BOOKTITLE CDATA #IMPLIED
-    CHAPTER CDATA #IMPLIED
-    EPRINT CDATA #IMPLIED
-    HOWPUBLISHED CDATA #IMPLIED
-    INSTITUTION CDATA #IMPLIED
-    JOURNAL CDATA #IMPLIED
-    MONTH CDATA #IMPLIED
-    NOTE CDATA #IMPLIED
-    NUMBER CDATA #IMPLIED
-    REPORTTYPE CDATA #IMPLIED
-    SCHOOL CDATA #IMPLIED
-    YEAR CDATA #IMPLIED
-    CROSSREF_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
-    INBOOK_ID CDATA #IMPLIED
-    INJOURNAL_ID CDATA #IMPLIED
-    INPROCEEDINGS_ID CDATA #IMPLIED
-    INSTITUTION_ID CDATA #IMPLIED
->
-
-<!ELEMENT REFERENCE_EXTENSION EMPTY>
-<!ATTLIST REFERENCE_EXTENSION
-    REFERENCE_ID CDATA #REQUIRED
-    EXTENSIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT REFERENCE_EXTENSION_AUD EMPTY>
-<!ATTLIST REFERENCE_EXTENSION_AUD
-    REV CDATA #REQUIRED
-    REFERENCE_ID CDATA #REQUIRED
-    EXTENSIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT REFERENCE_MARKER EMPTY>
-<!ATTLIST REFERENCE_MARKER
-    REFERENCE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT REFERENCE_MARKER_AUD EMPTY>
-<!ATTLIST REFERENCE_MARKER_AUD
-    REV CDATA #REQUIRED
-    REFERENCE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT REFERENCE_MEDIA EMPTY>
-<!ATTLIST REFERENCE_MEDIA
-    REFERENCE_ID CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
->
-
-<!ELEMENT REFERENCE_MEDIA_AUD EMPTY>
-<!ATTLIST REFERENCE_MEDIA_AUD
-    REV CDATA #REQUIRED
-    REFERENCE_ID CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT REFERENCE_ORIGINALSOURCE EMPTY>
-<!ATTLIST REFERENCE_ORIGINALSOURCE
-    REFERENCE_ID CDATA #REQUIRED
-    SOURCES_ID CDATA #REQUIRED
->
-
-<!ELEMENT REFERENCE_ORIGINALSOURCE_AUD EMPTY>
-<!ATTLIST REFERENCE_ORIGINALSOURCE_AUD
-    REV CDATA #REQUIRED
-    REFERENCE_ID CDATA #REQUIRED
-    SOURCES_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT REFERENCE_RIGHTSINFO EMPTY>
-<!ATTLIST REFERENCE_RIGHTSINFO
-    REFERENCE_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
->
-
-<!ELEMENT REFERENCE_RIGHTSINFO_AUD EMPTY>
-<!ATTLIST REFERENCE_RIGHTSINFO_AUD
-    REV CDATA #REQUIRED
-    REFERENCE_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT RELATIONSHIPTERMBASE_INVERSEREPRESENTATION EMPTY>
-<!ATTLIST RELATIONSHIPTERMBASE_INVERSEREPRESENTATION
-    RELATIONSHIPTERMBASE_ID CDATA #REQUIRED
-    INVERSEREPRESENTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT RELATIONSHIPTERMBASE_INVERSEREPRESENTATION_AUD EMPTY>
-<!ATTLIST RELATIONSHIPTERMBASE_INVERSEREPRESENTATION_AUD
-    REV CDATA #REQUIRED
-    RELATIONSHIPTERMBASE_ID CDATA #REQUIRED
-    INVERSEREPRESENTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT REPRESENTATION EMPTY>
-<!ATTLIST REPRESENTATION
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    TEXT CDATA #IMPLIED
-    ABBREVIATEDLABEL CDATA #IMPLIED
-    LABEL CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    LANGUAGE_ID CDATA #IMPLIED
->
-
-<!ELEMENT REPRESENTATION_ANNOTATION EMPTY>
-<!ATTLIST REPRESENTATION_ANNOTATION
-    REPRESENTATION_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT REPRESENTATION_ANNOTATION_AUD EMPTY>
-<!ATTLIST REPRESENTATION_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    REPRESENTATION_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT REPRESENTATION_AUD EMPTY>
-<!ATTLIST REPRESENTATION_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    TEXT CDATA #IMPLIED
-    ABBREVIATEDLABEL CDATA #IMPLIED
-    LABEL CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    LANGUAGE_ID CDATA #IMPLIED
->
-
-<!ELEMENT REPRESENTATION_MARKER EMPTY>
-<!ATTLIST REPRESENTATION_MARKER
-    REPRESENTATION_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT REPRESENTATION_MARKER_AUD EMPTY>
-<!ATTLIST REPRESENTATION_MARKER_AUD
-    REV CDATA #REQUIRED
-    REPRESENTATION_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT RIGHTSINFO EMPTY>
-<!ATTLIST RIGHTSINFO
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    TEXT CDATA #IMPLIED
-    ABBREVIATEDTEXT CDATA #IMPLIED
-    URI CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    LANGUAGE_ID CDATA #IMPLIED
-    AGENTBASE_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT RIGHTSINFO_ANNOTATION EMPTY>
-<!ATTLIST RIGHTSINFO_ANNOTATION
-    RIGHTSINFO_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT RIGHTSINFO_ANNOTATION_AUD EMPTY>
-<!ATTLIST RIGHTSINFO_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    RIGHTSINFO_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT RIGHTSINFO_AUD EMPTY>
-<!ATTLIST RIGHTSINFO_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    TEXT CDATA #IMPLIED
-    ABBREVIATEDTEXT CDATA #IMPLIED
-    URI CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    LANGUAGE_ID CDATA #IMPLIED
-    AGENTBASE_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT RIGHTSINFO_MARKER EMPTY>
-<!ATTLIST RIGHTSINFO_MARKER
-    RIGHTSINFO_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT RIGHTSINFO_MARKER_AUD EMPTY>
-<!ATTLIST RIGHTSINFO_MARKER_AUD
-    REV CDATA #REQUIRED
-    RIGHTSINFO_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT SEQUENCE EMPTY>
-<!ATTLIST SEQUENCE
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    LSID CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    BARCODE CDATA #IMPLIED
-    GENBANKACCESSIONNUMBER CDATA #IMPLIED
-    GENBANKURI CDATA #IMPLIED 
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    DATESEQUENCED CDATA #IMPLIED
-    LENGTH CDATA #IMPLIED
-    SEQUENCE CDATA #IMPLIED
-    MARKER_ID CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    PUBLISHEDIN_ID CDATA #IMPLIED
->
-
-<!ELEMENT SEQUENCE_ANNOTATION EMPTY>
-<!ATTLIST SEQUENCE_ANNOTATION
-    SEQUENCE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT SEQUENCE_ANNOTATION_AUD EMPTY>
-<!ATTLIST SEQUENCE_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    SEQUENCE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT SEQUENCE_AUD EMPTY>
-<!ATTLIST SEQUENCE_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    LSID CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    BARCODE CDATA #IMPLIED
-    GENBANKACCESSIONNUMBER CDATA #IMPLIED
-    GENBANKURI CDATA #IMPLIED 
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    DATESEQUENCED CDATA #IMPLIED
-    LENGTH CDATA #IMPLIED
-    SEQUENCE CDATA #IMPLIED
-    MARKER_ID CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    PUBLISHEDIN_ID CDATA #IMPLIED
->
-
-<!ELEMENT SEQUENCE_EXTENSION EMPTY>
-<!ATTLIST SEQUENCE_EXTENSION
-    SEQUENCE_ID CDATA #REQUIRED
-    EXTENSIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT SEQUENCE_EXTENSION_AUD EMPTY>
-<!ATTLIST SEQUENCE_EXTENSION_AUD
-    REV CDATA #REQUIRED
-    SEQUENCE_ID CDATA #REQUIRED
-    EXTENSIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT SEQUENCE_MARKER EMPTY>
-<!ATTLIST SEQUENCE_MARKER
-    SEQUENCE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT SEQUENCE_MARKER_AUD EMPTY>
-<!ATTLIST SEQUENCE_MARKER_AUD
-    REV CDATA #REQUIRED
-    SEQUENCE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT SEQUENCE_MEDIA EMPTY>
-<!ATTLIST SEQUENCE_MEDIA
-    SEQUENCE_ID CDATA #REQUIRED
-    CHROMATOGRAMS_ID CDATA #REQUIRED
->
-
-<!ELEMENT SEQUENCE_MEDIA_AUD EMPTY>
-<!ATTLIST SEQUENCE_MEDIA_AUD
-    REV CDATA #REQUIRED
-    SEQUENCE_ID CDATA #REQUIRED
-    CHROMATOGRAMS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT SEQUENCE_ORIGINALSOURCE EMPTY>
-<!ATTLIST SEQUENCE_ORIGINALSOURCE
-    SEQUENCE_ID CDATA #REQUIRED
-    SOURCES_ID CDATA #REQUIRED
->
-
-<!ELEMENT SEQUENCE_ORIGINALSOURCE_AUD EMPTY>
-<!ATTLIST SEQUENCE_ORIGINALSOURCE_AUD
-    REV CDATA #REQUIRED
-    SEQUENCE_ID CDATA #REQUIRED
-    SOURCES_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT SEQUENCE_REFERENCE EMPTY>
-<!ATTLIST SEQUENCE_REFERENCE
-    SEQUENCE_ID CDATA #REQUIRED
-    CITATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT SEQUENCE_REFERENCE_AUD EMPTY>
-<!ATTLIST SEQUENCE_REFERENCE_AUD
-    REV CDATA #REQUIRED
-    SEQUENCE_ID CDATA #REQUIRED
-    CITATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT SEQUENCE_RIGHTSINFO EMPTY>
-<!ATTLIST SEQUENCE_RIGHTSINFO
-    SEQUENCE_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
->
-
-<!ELEMENT SEQUENCE_RIGHTSINFO_AUD EMPTY>
-<!ATTLIST SEQUENCE_RIGHTSINFO_AUD
-    REV CDATA #REQUIRED
-    SEQUENCE_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    RECORDBASIS CDATA #IMPLIED
-    LSID CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    PROTECTEDIDENTITYCACHE CDATA #IMPLIED
-    IDENTITYCACHE CDATA #IMPLIED
-    PUBLISHED CDATA #IMPLIED
-    INDIVIDUALCOUNT CDATA #IMPLIED
-    ACCESSIONNUMBER CDATA #IMPLIED
-    CATALOGNUMBER CDATA #IMPLIED
-    COLLECTORSNUMBER CDATA #IMPLIED
-    FIELDNOTES CDATA #IMPLIED
-    FIELDNUMBER CDATA #IMPLIED
-    BARCODE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    LIFESTAGE_ID CDATA #IMPLIED
-    SEX_ID CDATA #IMPLIED
-    KINDOFUNIT_ID CDATA #IMPLIED
-    COLLECTION_ID CDATA #IMPLIED
-    DERIVATIONEVENT_ID CDATA #IMPLIED
-    STOREDUNDER_ID CDATA #IMPLIED
-    PRESERVATION_ID CDATA #IMPLIED
-    GATHERINGEVENT_ID CDATA #IMPLIED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_ANNOTATION EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_ANNOTATION
-    SPECIMENOROBSERVATIONBASE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_ANNOTATION_AUD EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    SPECIMENOROBSERVATIONBASE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_AUD EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_AUD
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    RECORDBASIS CDATA #IMPLIED
-    LSID CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    PROTECTEDIDENTITYCACHE CDATA #IMPLIED
-    IDENTITYCACHE CDATA #IMPLIED
-    PUBLISHED CDATA #IMPLIED
-    INDIVIDUALCOUNT CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    LIFESTAGE_ID CDATA #IMPLIED
-    SEX_ID CDATA #IMPLIED
-    KINDOFUNIT_ID CDATA #IMPLIED
-    ACCESSIONNUMBER CDATA #IMPLIED
-    CATALOGNUMBER CDATA #IMPLIED
-    COLLECTORSNUMBER CDATA #IMPLIED
-    COLLECTION_ID CDATA #IMPLIED
-    DERIVATIONEVENT_ID CDATA #IMPLIED
-    STOREDUNDER_ID CDATA #IMPLIED
-    FIELDNOTES CDATA #IMPLIED
-    FIELDNUMBER CDATA #IMPLIED
-    BARCODE CDATA #IMPLIED
-    GATHERINGEVENT_ID CDATA #IMPLIED
-    PRESERVATION_ID CDATA #IMPLIED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_DERIVATIONEVENT EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_DERIVATIONEVENT
-    ORIGINALS_ID CDATA #REQUIRED
-    DERIVATIONEVENTS_ID CDATA #REQUIRED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_DERIVATIONEVENT_AUD EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_DERIVATIONEVENT_AUD
-    REV CDATA #REQUIRED
-    ORIGINALS_ID CDATA #REQUIRED
-    DERIVATIONEVENTS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_EXTENSION EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_EXTENSION
-    SPECIMENOROBSERVATIONBASE_ID CDATA #REQUIRED
-    EXTENSIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_EXTENSION_AUD EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_EXTENSION_AUD
-    REV CDATA #REQUIRED
-    SPECIMENOROBSERVATIONBASE_ID CDATA #REQUIRED
-    EXTENSIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_LANGUAGESTRING EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_LANGUAGESTRING
-    SPECIMENOROBSERVATIONBASE_ID CDATA #REQUIRED
-    DESCRIPTION_ID CDATA #IMPLIED
-    DESCRIPTION_MAPKEY_ID CDATA #REQUIRED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_LANGUAGESTRING_AUD EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_LANGUAGESTRING_AUD
-    REV CDATA #REQUIRED
-    SPECIMENOROBSERVATIONBASE_ID CDATA #REQUIRED
-    DESCRIPTION_ID CDATA #REQUIRED
-    DESCRIPTION_MAPKEY_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_MARKER EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_MARKER
-    SPECIMENOROBSERVATIONBASE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_MARKER_AUD EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_MARKER_AUD
-    REV CDATA #REQUIRED
-    SPECIMENOROBSERVATIONBASE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_MEDIA EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_MEDIA
-    SPECIMENOROBSERVATIONBASE_ID CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_MEDIA_AUD EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_MEDIA_AUD
-    REV CDATA #REQUIRED
-    SPECIMENOROBSERVATIONBASE_ID CDATA #REQUIRED
-    MEDIA_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_ORIGINALSOURCE EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_ORIGINALSOURCE
-    SPECIMENOROBSERVATIONBASE_ID CDATA #REQUIRED
-    SOURCES_ID CDATA #REQUIRED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_ORIGINALSOURCE_AUD EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_ORIGINALSOURCE_AUD
-    REV CDATA #REQUIRED
-    SPECIMENOROBSERVATIONBASE_ID CDATA #REQUIRED
-    SOURCES_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_RIGHTSINFO EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_RIGHTSINFO
-    SPECIMENOROBSERVATIONBASE_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
->
-
-<!ELEMENT SPECIMENOROBSERVATIONBASE_RIGHTSINFO_AUD EMPTY>
-<!ATTLIST SPECIMENOROBSERVATIONBASE_RIGHTSINFO_AUD
-    REV CDATA #REQUIRED
-    SPECIMENOROBSERVATIONBASE_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT STATEDATA EMPTY>
-<!ATTLIST STATEDATA
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    STATE_ID CDATA #IMPLIED
->
-
-<!ELEMENT STATEDATA_AUD EMPTY>
-<!ATTLIST STATEDATA_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    STATE_ID CDATA #IMPLIED
->
-
-<!ELEMENT STATEDATA_DEFINEDTERMBASE EMPTY>
-<!ATTLIST STATEDATA_DEFINEDTERMBASE
-    STATEDATA_ID CDATA #REQUIRED
-    MODIFIERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT STATEDATA_DEFINEDTERMBASE_AUD EMPTY>
-<!ATTLIST STATEDATA_DEFINEDTERMBASE_AUD
-    REV CDATA #REQUIRED
-    STATEDATA_ID CDATA #REQUIRED
-    MODIFIERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT STATEDATA_LANGUAGESTRING EMPTY>
-<!ATTLIST STATEDATA_LANGUAGESTRING
-    STATEDATA_ID CDATA #REQUIRED
-    MODIFYINGTEXT_ID CDATA #IMPLIED
-    MODIFYINGTEXT_MAPKEY_ID CDATA #REQUIRED
->
-
-<!ELEMENT STATEDATA_LANGUAGESTRING_AUD EMPTY>
-<!ATTLIST STATEDATA_LANGUAGESTRING_AUD
-    REV CDATA #REQUIRED
-    STATEDATA_ID CDATA #REQUIRED
-    MODIFYINGTEXT_ID CDATA #REQUIRED
-    MODIFYINGTEXT_MAPKEY_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT STATISTICALMEASUREMENTVALUE EMPTY>
-<!ATTLIST STATISTICALMEASUREMENTVALUE
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    VALUE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT STATISTICALMEASUREMENTVALUE_AUD EMPTY>
-<!ATTLIST STATISTICALMEASUREMENTVALUE_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    VALUE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT STATISTICALMEASUREMENTVALUE_DEFINEDTERMBASE EMPTY>
-<!ATTLIST STATISTICALMEASUREMENTVALUE_DEFINEDTERMBASE
-    STATISTICALMEASUREMENTVALUE_ID CDATA #REQUIRED
-    MODIFIERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT STATISTICALMEASUREMENTVALUE_DEFINEDTERMBASE_AUD EMPTY>
-<!ATTLIST STATISTICALMEASUREMENTVALUE_DEFINEDTERMBASE_AUD
-    REV CDATA #REQUIRED
-    STATISTICALMEASUREMENTVALUE_ID CDATA #REQUIRED
-    MODIFIERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TAXONBASE EMPTY>
-<!ATTLIST TAXONBASE
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    LSID CDATA #IMPLIED
-    SECMICROREFERENCE CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    DOUBTFUL CDATA #IMPLIED
-    PUBLISHED CDATA #IMPLIED
-    TAXONSTATUSUNKNOWN CDATA #IMPLIED
-    UNPLACED CDATA #IMPLIED
-    EXCLUDED CDATA #IMPLIED
-    PARTIAL CDATA #IMPLIED
-    PROPARTE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    TAXONNAME_FK CDATA #IMPLIED
-    SEC_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
-    ACCEPTEDTAXON_ID  CDATA #IMPLIED
->
-
-<!ELEMENT TAXONBASE_ANNOTATION EMPTY>
-<!ATTLIST TAXONBASE_ANNOTATION
-    TAXONBASE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONBASE_ANNOTATION_AUD EMPTY>
-<!ATTLIST TAXONBASE_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    TAXONBASE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TAXONBASE_AUD EMPTY>
-<!ATTLIST TAXONBASE_AUD
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    LSID CDATA #IMPLIED
-    SECMICROREFERENCE CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    DOUBTFUL CDATA #IMPLIED
-    PUBLISHED CDATA #IMPLIED
-    TAXONSTATUSUNKNOWN CDATA #IMPLIED
-    UNPLACED CDATA #IMPLIED
-    EXCLUDED CDATA #IMPLIED
-    PARTIAL CDATA #IMPLIED
-    PROPARTE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    TAXONNAME_FK CDATA #IMPLIED
-    SEC_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
-    ACCEPTEDTAXON_ID  CDATA #IMPLIED
->
-
-<!ELEMENT TAXONBASE_EXTENSION EMPTY>
-<!ATTLIST TAXONBASE_EXTENSION
-    TAXONBASE_ID CDATA #REQUIRED
-    EXTENSIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONBASE_EXTENSION_AUD EMPTY>
-<!ATTLIST TAXONBASE_EXTENSION_AUD
-    REV CDATA #REQUIRED
-    TAXONBASE_ID CDATA #REQUIRED
-    EXTENSIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TAXONBASE_MARKER EMPTY>
-<!ATTLIST TAXONBASE_MARKER
-    TAXONBASE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONBASE_MARKER_AUD EMPTY>
-<!ATTLIST TAXONBASE_MARKER_AUD
-    REV CDATA #REQUIRED
-    TAXONBASE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TAXONBASE_ORIGINALSOURCE EMPTY>
-<!ATTLIST TAXONBASE_ORIGINALSOURCE
-    TAXONBASE_ID CDATA #REQUIRED
-    SOURCES_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONBASE_ORIGINALSOURCE_AUD EMPTY>
-<!ATTLIST TAXONBASE_ORIGINALSOURCE_AUD
-    REV CDATA #REQUIRED
-    TAXONBASE_ID CDATA #REQUIRED
-    SOURCES_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TAXONBASE_RIGHTSINFO EMPTY>
-<!ATTLIST TAXONBASE_RIGHTSINFO
-    TAXONBASE_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONBASE_RIGHTSINFO_AUD EMPTY>
-<!ATTLIST TAXONBASE_RIGHTSINFO_AUD
-    REV CDATA #REQUIRED
-    TAXONBASE_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TAXONINTERACTION_LANGUAGESTRING EMPTY>
-<!ATTLIST TAXONINTERACTION_LANGUAGESTRING
-    DESCRIPTIONELEMENTBASE_ID CDATA #REQUIRED
-    DESCRIPTION_ID CDATA #IMPLIED
-    DESCRIPTION_MAPKEY_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONINTERACTION_LANGUAGESTRING_AUD EMPTY>
-<!ATTLIST TAXONINTERACTION_LANGUAGESTRING_AUD
-    REV CDATA #REQUIRED
-    DESCRIPTIONELEMENTBASE_ID CDATA #REQUIRED
-    DESCRIPTION_ID CDATA #REQUIRED
-    DESCRIPTION_MAPKEY_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TAXONNAMEBASE EMPTY>
-<!ATTLIST TAXONNAMEBASE
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    LSID CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    APPENDEDPHRASE CDATA #IMPLIED
-    FULLTITLECACHE CDATA #IMPLIED
-    HASPROBLEM CDATA #IMPLIED
-    NOMENCLATURALMICROREFERENCE CDATA #IMPLIED
-    PROBLEMENDS CDATA #IMPLIED
-    PROBLEMSTARTS CDATA #IMPLIED
-    PROTECTEDFULLTITLECACHE CDATA #IMPLIED
-    AUTHORSHIPCACHE CDATA #IMPLIED
-    GENUSORUNINOMIAL CDATA #IMPLIED
-    INFRAGENERICEPITHET CDATA #IMPLIED
-    INFRASPECIFICEPITHET CDATA #IMPLIED
-    NAMECACHE CDATA #IMPLIED
-    PROTECTEDAUTHORSHIPCACHE CDATA #IMPLIED
-    PROTECTEDNAMECACHE CDATA #IMPLIED
-    SPECIFICEPITHET CDATA #IMPLIED
-    NAMEAPPROBATION CDATA #IMPLIED
-    SUBGENUSAUTHORSHIP CDATA #IMPLIED
-    ANAMORPHIC CDATA #IMPLIED
-    BINOMHYBRID CDATA #IMPLIED
-    HYBRIDFORMULA CDATA #IMPLIED
-    MONOMHYBRID CDATA #IMPLIED
-    TRINOMHYBRID CDATA #IMPLIED
-    CULTIVARNAME CDATA #IMPLIED
-    ACRONYM CDATA #IMPLIED
-    BREED CDATA #IMPLIED
-    ORIGINALPUBLICATIONYEAR CDATA #IMPLIED
-    PUBLICATIONYEAR CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    HOMOTYPICALGROUP_ID CDATA #IMPLIED
-    NOMENCLATURALREFERENCE_ID CDATA #IMPLIED
-    RANK_ID CDATA #IMPLIED
-    BASIONYMAUTHORSHIP_ID CDATA #IMPLIED
-    COMBINATIONAUTHORSHIP_ID CDATA #IMPLIED
-    EXBASIONYMAUTHORSHIP_ID CDATA #IMPLIED
-    EXCOMBINATIONAUTHORSHIP_ID CDATA #IMPLIED
->
-
-<!ELEMENT TAXONNAMEBASE_ANNOTATION EMPTY>
-<!ATTLIST TAXONNAMEBASE_ANNOTATION
-    TAXONNAMEBASE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONNAMEBASE_ANNOTATION_AUD EMPTY>
-<!ATTLIST TAXONNAMEBASE_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    TAXONNAMEBASE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TAXONNAMEBASE_AUD EMPTY>
-<!ATTLIST TAXONNAMEBASE_AUD
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    LSID CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    APPENDEDPHRASE CDATA #IMPLIED
-    FULLTITLECACHE CDATA #IMPLIED
-    HASPROBLEM CDATA #IMPLIED
-    NOMENCLATURALMICROREFERENCE CDATA #IMPLIED
-    PROBLEMENDS CDATA #IMPLIED
-    PROBLEMSTARTS CDATA #IMPLIED
-    PROTECTEDFULLTITLECACHE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    HOMOTYPICALGROUP_ID CDATA #IMPLIED
-    NOMENCLATURALREFERENCE_ID CDATA #IMPLIED
-    RANK_ID CDATA #IMPLIED
-    ACRONYM CDATA #IMPLIED
-    AUTHORSHIPCACHE CDATA #IMPLIED
-    GENUSORUNINOMIAL CDATA #IMPLIED
-    INFRAGENERICEPITHET CDATA #IMPLIED
-    INFRASPECIFICEPITHET CDATA #IMPLIED
-    NAMECACHE CDATA #IMPLIED
-    PROTECTEDAUTHORSHIPCACHE CDATA #IMPLIED
-    PROTECTEDNAMECACHE CDATA #IMPLIED
-    SPECIFICEPITHET CDATA #IMPLIED
-    BASIONYMAUTHORSHIP_ID CDATA #IMPLIED
-    COMBINATIONAUTHORSHIP_ID CDATA #IMPLIED
-    EXBASIONYMAUTHORSHIP_ID CDATA #IMPLIED
-    EXCOMBINATIONAUTHORSHIP_ID CDATA #IMPLIED
-    NAMEAPPROBATION CDATA #IMPLIED
-    SUBGENUSAUTHORSHIP CDATA #IMPLIED
-    ANAMORPHIC CDATA #IMPLIED
-    BINOMHYBRID CDATA #IMPLIED
-    HYBRIDFORMULA CDATA #IMPLIED
-    MONOMHYBRID CDATA #IMPLIED
-    TRINOMHYBRID CDATA #IMPLIED
-    CULTIVARNAME CDATA #IMPLIED
-    BREED CDATA #IMPLIED
-    ORIGINALPUBLICATIONYEAR CDATA #IMPLIED
-    PUBLICATIONYEAR CDATA #IMPLIED
->
-
-<!ELEMENT TAXONNAMEBASE_EXTENSION EMPTY>
-<!ATTLIST TAXONNAMEBASE_EXTENSION
-    TAXONNAMEBASE_ID CDATA #REQUIRED
-    EXTENSIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONNAMEBASE_EXTENSION_AUD EMPTY>
-<!ATTLIST TAXONNAMEBASE_EXTENSION_AUD
-    REV CDATA #REQUIRED
-    TAXONNAMEBASE_ID CDATA #REQUIRED
-    EXTENSIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TAXONNAMEBASE_HYBRIDRELATIONSHIP EMPTY>
-<!ATTLIST TAXONNAMEBASE_HYBRIDRELATIONSHIP
-    TAXONNAMEBASE_ID CDATA #REQUIRED
-    HYBRIDRELATIONSHIPS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONNAMEBASE_HYBRIDRELATIONSHIP_AUD EMPTY>
-<!ATTLIST TAXONNAMEBASE_HYBRIDRELATIONSHIP_AUD
-    REV CDATA #REQUIRED
-    TAXONNAMEBASE_ID CDATA #REQUIRED
-    HYBRIDRELATIONSHIPS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TAXONNAMEBASE_MARKER EMPTY>
-<!ATTLIST TAXONNAMEBASE_MARKER
-    TAXONNAMEBASE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONNAMEBASE_MARKER_AUD EMPTY>
-<!ATTLIST TAXONNAMEBASE_MARKER_AUD
-    REV CDATA #REQUIRED
-    TAXONNAMEBASE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TAXONNAMEBASE_NOMENCLATURALSTATUS EMPTY>
-<!ATTLIST TAXONNAMEBASE_NOMENCLATURALSTATUS
-    TAXONNAMEBASE_ID CDATA #REQUIRED
-    STATUS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONNAMEBASE_NOMENCLATURALSTATUS_AUD EMPTY>
-<!ATTLIST TAXONNAMEBASE_NOMENCLATURALSTATUS_AUD
-    REV CDATA #REQUIRED
-    TAXONNAMEBASE_ID CDATA #REQUIRED
-    STATUS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TAXONNAMEBASE_ORIGINALSOURCE EMPTY>
-<!ATTLIST TAXONNAMEBASE_ORIGINALSOURCE
-    TAXONNAMEBASE_ID CDATA #REQUIRED
-    SOURCES_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONNAMEBASE_ORIGINALSOURCE_AUD EMPTY>
-<!ATTLIST TAXONNAMEBASE_ORIGINALSOURCE_AUD
-    REV CDATA #REQUIRED
-    TAXONNAMEBASE_ID CDATA #REQUIRED
-    SOURCES_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TAXONNAMEBASE_RIGHTSINFO EMPTY>
-<!ATTLIST TAXONNAMEBASE_RIGHTSINFO
-    TAXONNAMEBASE_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONNAMEBASE_RIGHTSINFO_AUD EMPTY>
-<!ATTLIST TAXONNAMEBASE_RIGHTSINFO_AUD
-    REV CDATA #REQUIRED
-    TAXONNAMEBASE_ID CDATA #REQUIRED
-    RIGHTS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TAXONNAMEBASE_TYPEDESIGNATIONBASE EMPTY>
-<!ATTLIST TAXONNAMEBASE_TYPEDESIGNATIONBASE
-    TAXONNAMEBASE_ID CDATA #REQUIRED
-    TYPEDESIGNATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONNAMEBASE_TYPEDESIGNATIONBASE_AUD EMPTY>
-<!ATTLIST TAXONNAMEBASE_TYPEDESIGNATIONBASE_AUD
-    REV CDATA #REQUIRED
-    TAXONNAMEBASE_ID CDATA #REQUIRED
-    TYPEDESIGNATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-<!ELEMENT TAXONNODE EMPTY>
-<!ATTLIST TAXONNODE
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    SORTINDEX CDATA #IMPLIED
-    TREEINDEX CDATA #IMPLIED
-    COUNTCHILDREN CDATA #IMPLIED
-    MICROREFERENCEFORPARENTCHILDRELATION CDATA #IMPLIED
-    EXCLUDED CDATA #IMPLIED
-    UNPLACED CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CLASSIFICATION_ID CDATA #IMPLIED
-    PARENT_ID CDATA #IMPLIED
-    REFERENCEFORPARENTCHILDRELATION_ID CDATA #IMPLIED
-    SYNONYMTOBEUSED_ID CDATA #IMPLIED
-    TAXON_ID CDATA #IMPLIED
->
-<!ELEMENT TAXONNODE_AUD EMPTY>
-<!ATTLIST TAXONNODE_AUD
-    REV CDATA #REQUIRED
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    SORTINDEX CDATA #IMPLIED
-    TREEINDEX CDATA #IMPLIED
-    COUNTCHILDREN CDATA #IMPLIED
-    MICROREFERENCEFORPARENTCHILDRELATION CDATA #IMPLIED
-    EXCLUDED CDATA #IMPLIED
-    UNPLACED CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CLASSIFICATION_ID CDATA #IMPLIED
-    PARENT_ID CDATA #IMPLIED
-    REFERENCEFORPARENTCHILDRELATION_ID CDATA #IMPLIED
-    SYNONYMTOBEUSED_ID CDATA #IMPLIED
-    TAXON_ID CDATA #IMPLIED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TAXONNODE_ANNOTATION EMPTY>
-<!ATTLIST TAXONNODE_ANNOTATION
-    TAXONNODE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONNODE_ANNOTATION_AUD EMPTY>
-<!ATTLIST TAXONNODE_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    TAXONNODE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-<!ELEMENT TAXONNNODE_EXCLUDEDNOTE EMPTY>
-<!ATTLIST TAXONNODE_EXCLUDEDNOTE
-    TAXONNODE_ID CDATA #REQUIRED
-    EXCLUDEDNOTE_ID CDATA #REQUIRED
-    EXCLUDEDNOTE_MAPKEY_ID CDATA #REQUIRED
->
-<!ELEMENT TAXONNODE_EXCLUDEDNOTE_AUD EMPTY>
-<!ATTLIST TAXONNODE_EXCLUDEDNOTE_AUD
-    REV CDATA #REQUIRED
-    TAXONNODE_ID CDATA #REQUIRED
-    EXCLUDEDNOTE_ID CDATA #REQUIRED
-    EXCLUDEDNOTE_MAPKEY_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-<!ELEMENT TAXONNNODE_MARKER EMPTY>
-<!ATTLIST TAXONNODE_MARKER
-    TAXONNODE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-<!ELEMENT TAXONNNODE_MARKER_AUD EMPTY>
-<!ATTLIST TAXONNODE_MARKER_AUD
-    REV CDATA #REQUIRED
-    TAXONNODE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-
-<!ELEMENT TAXONRELATIONSHIP EMPTY>
-<!ATTLIST TAXONRELATIONSHIP
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
-    DOUBTFUL CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
-    RELATEDFROM_ID CDATA #IMPLIED
-    RELATEDTO_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT TAXONRELATIONSHIP_ANNOTATION EMPTY>
-<!ATTLIST TAXONRELATIONSHIP_ANNOTATION
-    TAXONRELATIONSHIP_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONRELATIONSHIP_ANNOTATION_AUD EMPTY>
-<!ATTLIST TAXONRELATIONSHIP_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    TAXONRELATIONSHIP_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TAXONRELATIONSHIP_AUD EMPTY>
-<!ATTLIST TAXONRELATIONSHIP_AUD
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
-    DOUBTFUL CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
-    RELATEDFROM_ID CDATA #IMPLIED
-    RELATEDTO_ID CDATA #IMPLIED
-    TYPE_ID CDATA #IMPLIED
->
-
-<!ELEMENT TAXONRELATIONSHIP_MARKER EMPTY>
-<!ATTLIST TAXONRELATIONSHIP_MARKER
-    TAXONRELATIONSHIP_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONRELATIONSHIP_MARKER_AUD EMPTY>
-<!ATTLIST TAXONRELATIONSHIP_MARKER_AUD
-    REV CDATA #REQUIRED
-    TAXONRELATIONSHIP_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TERMVOCABULARY EMPTY>
-<!ATTLIST TERMVOCABULARY
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    TERMTYPE CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    URI CDATA #IMPLIED
-    TERMSOURCEURI CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
->
-
-<!ELEMENT TERMVOCABULARY_AUD EMPTY>
-<!ATTLIST TERMVOCABULARY_AUD
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    TERMTYPE CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    URI CDATA #IMPLIED
-    TERMSOURCEURI CDATA #IMPLIED
-    TITLECACHE CDATA #IMPLIED
-    PROTECTEDTITLECACHE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
->
-
-<!ELEMENT TERMVOCABULARY_REPRESENTATION EMPTY>
-<!ATTLIST TERMVOCABULARY_REPRESENTATION
-    TERMVOCABULARY_ID CDATA #REQUIRED
-    REPRESENTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TERMVOCABULARY_REPRESENTATION_AUD EMPTY>
-<!ATTLIST TERMVOCABULARY_REPRESENTATION_AUD
-    REV CDATA #REQUIRED
-    TERMVOCABULARY_ID CDATA #REQUIRED
-    REPRESENTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TYPEDESIGNATIONBASE EMPTY>
-<!ATTLIST TYPEDESIGNATIONBASE
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
-    NOTDESIGNATED CDATA #IMPLIED
-    CONSERVEDTYPE CDATA #IMPLIED
-    LECTOTYPE CDATA #IMPLIED
-    REJECTEDTYPE CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
-    TYPENAME_ID CDATA #IMPLIED
-    TYPESPECIMEN_ID CDATA #IMPLIED
-    TYPESTATUS_ID CDATA #IMPLIED
->
-
-<!ELEMENT TYPEDESIGNATIONBASE_ANNOTATION EMPTY>
-<!ATTLIST TYPEDESIGNATIONBASE_ANNOTATION
-    TYPEDESIGNATIONBASE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TYPEDESIGNATIONBASE_ANNOTATION_AUD EMPTY>
-<!ATTLIST TYPEDESIGNATIONBASE_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    TYPEDESIGNATIONBASE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT TYPEDESIGNATIONBASE_AUD EMPTY>
-<!ATTLIST TYPEDESIGNATIONBASE_AUD
-    DTYPE CDATA #IMPLIED
-    ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    UPDATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
-    NOTDESIGNATED CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
-    UPDATEDBY_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
-    CONSERVEDTYPE CDATA #IMPLIED
-    LECTOTYPE CDATA #IMPLIED
-    REJECTEDTYPE CDATA #IMPLIED
-    TYPENAME_ID CDATA #IMPLIED
-    TYPESPECIMEN_ID CDATA #IMPLIED
-    TYPESTATUS_ID CDATA #IMPLIED
->
-
-<!ELEMENT TYPEDESIGNATIONBASE_MARKER EMPTY>
-<!ATTLIST TYPEDESIGNATIONBASE_MARKER
-    TYPEDESIGNATIONBASE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TYPEDESIGNATIONBASE_MARKER_AUD EMPTY>
-<!ATTLIST TYPEDESIGNATIONBASE_MARKER_AUD
-    REV CDATA #REQUIRED
-    TYPEDESIGNATIONBASE_ID CDATA #REQUIRED
-    MARKERS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT USER EMPTY>
-<!ATTLIST USER
-    ID CDATA #REQUIRED
-    CREATED CDATA #IMPLIED
-    UUID CDATA #IMPLIED
-    ACCOUNTNONEXPIRED CDATA #IMPLIED
-    ACCOUNTNONLOCKED CDATA #IMPLIED
-    CREDENTIALSNONEXPIRED CDATA #IMPLIED
-    EMAILADDRESS CDATA #IMPLIED
-    ENABLED CDATA #IMPLIED
-    PASSWORD CDATA #IMPLIED
-    USERNAME CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
->
-
-<!ELEMENT USER_GRANTEDAUTHORITYIMPL EMPTY>
-<!ATTLIST USER_GRANTEDAUTHORITYIMPL
-    USER_ID CDATA #REQUIRED
-    GRANTEDAUTHORITIES_ID CDATA #REQUIRED
->
-
-<!ELEMENT USER_PERMISSIONGROUP EMPTY>
-<!ATTLIST USER_PERMISSIONGROUP
-    MEMBERS_ID CDATA #REQUIRED
-    GROUPS_ID CDATA #REQUIRED
->
-
diff --git a/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/io/EndnoteRecordImportTest-input.xml b/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/io/EndnoteRecordImportTest-input.xml
deleted file mode 100644 (file)
index 920efbc..0000000
+++ /dev/null
@@ -1,29259 +0,0 @@
-
-<xml>
-       <records>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>1</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">1</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Achilli, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Contribution a l’йtude anatomique des Dypsidйesde Madagascar.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ann. Mus. Colon. Marseille</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ann. Mus. Colon. Marseille</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">99-147</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">sйr. 3</style>
-                       </volume>
-                       <number>
-                               <style face="normal" font="default" size="100%">I</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1913</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>2</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">2</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Adam, H., S. Jouannic, J. Escoute, Y. Duval, J.-L. Verdeil and J. W. Tregear</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Reproductive developmental complexity inthe African oil palm (</style>
-                                       <style face="italic" font="default" size="100%">Elaeis guineensis</style>
-                                       <style face="normal" font="default" size="100%">, Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1836-1852</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">92</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2005</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>3</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">3</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Adam, H., S. Jouannic, F. Morcillo, F. Richaud, Y. Duval and J.W. Tregear</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">MADS box genes in oil palm (</style>
-                                       <style face="italic" font="default" size="100%">Elaeis guineensis</style>
-                                       <style face="normal" font="default" size="100%">): patterns in the evolution of the SQUAMOSA, DEFICIENS, GLOBOSA, AGAMOUS, and SEPALLATA subfamilies.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Molec. Evol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Molec. Evol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">15-31</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">62</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2006</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>4</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">4</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Adam, H., S. Jouannic, F. Morcillo, J.-L. Verdeil, Y. Duval and J.W. Tregear</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Determination of flower structure in</style>
-                                       <style face="italic" font="default" size="100%">Elaeis guineensis</style>
-                                       <style face="normal" font="default" size="100%">: do palms use the same homeotic genes as other species?</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ann. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ann. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-12</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">100</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2007</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>5</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">5</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Akhmetiev, M.A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">New findings of palms from the Darrydagh Oligocene deposits (Nakhichevan ASSR).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Byull. Moskovsk. Obshch. Isp. Prir., Otd. Geol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Byull. Moskovsk. Obshch. Isp. Prir., Otd. Geol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">51-67</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">64</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1989</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>649</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">649</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Allen, P.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The rain forests of the Golfo Dulce.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1956</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Univ. of Florida Press, Gainesville.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>6</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">6</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ambwani, K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Borassoid fossil palm root from the Deccan Intertrappean Beds of Nawargaon in Wardha District,Maharashtra.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Geophytology</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Geophytology</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">13-15</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1981</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>7</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">7</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ambwani, K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Palmoxylon shahpuraensis</style>
-                                       <style face="normal" font="default" size="100%">sp. nov., a fossil palm resembling</style>
-                                       <style face="italic" font="default" size="100%">Licuala</style>
-                                       <style face="normal" font="default" size="100%">from the Deccan Intertrappean beds of Mandla District, Madhya Pradesh.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">52-59</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">31</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1983</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>8</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">8</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ambwani, K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Palmostroboxylon arengoidum</style>
-                                       <style face="normal" font="default" size="100%">sp. nov.: a fossil palmpeduncle resembling</style>
-                                       <style face="italic" font="default" size="100%">Arenga</style>
-                                       <style face="normal" font="default" size="100%">from the Deccan Intertrappean Bedsof Shahpura, Madhya Pradesh.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">134-139</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">32</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>9</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">9</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ambwani, K. and D. Dutta</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Seed-like structure indinosaurian coprolite of Lameta Formation (Upper Cretaceous) at Pisdura, Maharashtra, India.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Curr. Sci.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Curr. Sci.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">352-354</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">88</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2005</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>10</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">10</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ambwani, K. and R.C. Mehrotra</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A new fossil palm woodfrom the Deccan Intertrappean beds of Shahpura, Mandla District, Madhya Pradesh.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Geophytology</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Geophytology</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">70-75</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">19</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1989</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>11</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">11</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ancibor, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palmeras fosiles del Cretacico Tardio de la Patagonia Argentina (Bajo de Santa Rosa, Rio Negro).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ameghiniana</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ameghiniana</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">287-299</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">32</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1995</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>12</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">12</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Andreаnszky, G.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Reste einer neuen Tertiдren Palme aus Ungarn.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Hung. Acta Biol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Hung. Acta Biol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">31-36</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">1</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1949</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>13</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">13</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Anstett, M.-C.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">An experimental study of the interaction between the dwarf palm (</style>
-                                       <style face="italic" font="default" size="100%">Chamaerops humilis</style>
-                                       <style face="normal" font="default" size="100%">) and its floral visitor</style>
-                                       <style face="italic" font="default" size="100%">Derelomus chamaeropsis</style>
-                                       <style face="normal" font="default" size="100%">throughout the life cycle of the weevil.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Acta Oecol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Acta Oecol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">551-558</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">20</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1998</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>14</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">14</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Aranold, C.A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Tertiary plants from North America. 1. A Nipa fruit from the Eocene of Texas.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">73-74</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">1</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1952</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>655</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">655</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Asmussen, C.B.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A. and F. Borchsenius (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Toward a chloroplast DNA phylogeny of the tribe Geonomeae (Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Evolution, variation and classification of palms</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">121–129</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999a</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">The New York Botanical Garden Press, Bronx, NY.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>15</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">15</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Asmussen, C.B.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Relationships of the tribe Geonomeae (Arecaceae) based on plastid rps16 DNA sequences.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Acta Bot. Venez.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Acta Bot. Venez.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">65-76</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">22</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>17</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">17</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Asmussen, C. B., J. Dransfield, V. Deickmann, A.S. Barfod, J.-C. Pintaud and W.J. Baker</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A new subfamily classification of the palm family (Arecaceae): evidence from plastid DNA phylogeny.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">15-38</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">151</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2006</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>16</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">16</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Asmussen, C.B. and M.W. Chase</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Coding and noncoding plastid DNA in palm systematics.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1103-1117</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">88</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>18</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">18</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Avalos, G.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Production of a second set of stilt roots inarborescent palms: a solution to the puzzle.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">83-85</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">48</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2004</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>19</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">19</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Babajide Salami, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Upper Senonian and Lower Tertiarypollen grains from the southern Nigeria sedimentary basin.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rev. Esp. Micropaleontol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rev. Esp. Micropaleontol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">5-26</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">17</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1985</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>20</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">20</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bacon, P.R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Germination of</style>
-                                       <style face="italic" font="default" size="100%">Nypa fruticans</style>
-                                       <style face="normal" font="default" size="100%">in Trinidad.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">57-61</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">45</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>21</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">21</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bailey, L.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">American palmettos.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">274-339</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">3</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1934</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>22</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">22</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bailey, L.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Certain ptychospermate palms of horticulturists.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">410-437</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">3</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1935</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>23</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">23</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bailey, L.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Washingtonia</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">53-82</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">4</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1936</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>24</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">24</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bailey, L.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Erythea</style>
-                                       <style face="normal" font="default" size="100%">- the Hesper Palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">85-118</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">4</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1937a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>25</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">25</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bailey, L.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Notes on</style>
-                                       <style face="italic" font="default" size="100%">Brahea</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">119-125</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">4</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1937b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>26</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">26</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bailey, L.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Howea</style>
-                                       <style face="normal" font="default" size="100%">in cultivation - the Sentry Palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">188-198</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">4</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1939a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>27</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">27</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bailey, L.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">New Haitian genus of palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">239-246</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">4</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1939b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>28</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">28</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bailey, L.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palms of the Seychelles Islands.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">3-48</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">6</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1942</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>29</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">29</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Baker, W.J., C.B. Asmussen, S.C. Barrow, J. Dransfield and T.A. Hedderson</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A phylogenetic study of the palm family (Palmae) based on chloroplast DNA sequences from thetrnL-trnF region.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Pl. Syst. Evol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Pl. Syst. Evol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">111-126</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">219</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>568</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">568</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Baker, W.J., J. Dransfield, M.M. Harley and A. Bruneau</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A. and F.Borchsenius (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Morphology and cladistic analysis of subfamily Calamoideae (Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Evolution, variation and classification of palms.</style>
-                               </secondary-title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999b</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">The New York Botanical Garden Press, Bronx, NY.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>30</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">30</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Baker, W.J., J. Dransfield and T.A. Hedderson</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Phylogeny, character evolution and a new classification of the Calamoid palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">297-322</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">25</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2000a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>31</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">31</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Baker, W.J., T.A. Hedderson and J. Dransfield</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Molecular phylogenetics of subfamily Calamoideae (Palmae) based on nrDNA ITS and cpDNA rps16 intron sequence data.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Molec. Phylogen. Evol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Molec. Phylogen. Evol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">195-217</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">14</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2000b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>32</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">32</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Baker, W.J., T.A. Hedderson and J. Dransfield</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Molecular phylogenetics of</style>
-                                       <style face="italic" font="default" size="100%">Calamus</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) and related rattan genera based on 5S nrDNA spacer sequence data.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Molec. Phylogen. Evol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Molec. Phylogen. Evol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">218-231</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">14</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2000c</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>35</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">35</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Baker, W.J., R.A. Maturbongs, J. Wanggai and G.G. Hambali</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Siphokentia</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">175-181</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">44</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2000d</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>36</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">36</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Baker, W.J., S. Zona, C.D. Heatubun, C.E. Lewis, R.A. Maturbongs and M.V. Norup</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Dransfieldia</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae) - a new palm genus from western New Guinea.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">60-68</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">31</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2006</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>34</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">34</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Baker, W.J. and A.H.B. Loo</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A synopsis of the genus</style>
-                                       <style face="italic" font="default" size="100%">Hydriastele</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">61-68</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">59</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2004</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>33</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">33</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Baker, W.J. and I. Hutton</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Lepidorrhachis</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">33-38</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">50</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2006</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>654</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">654</key>
-                       </foreign-keys>
-                       <ref-type name="Thesis">32</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Balick, M.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The biology and economics of the</style>
-                                       <style face="italic" font="default" size="100%">Oenocarpus</style>
-                                       <style face="normal" font="default" size="100%">-</style>
-                                       <style face="italic" font="default" size="100%">Jessenia</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) complex.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Harvard University, Cambridge, MA</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <work-type>
-                               <style face="normal" font="default" size="100%">PhD thesis</style>
-                       </work-type>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>37</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">37</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Balick, M.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Mauritiella</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) reconsidered.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">459-460</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">33</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1981</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>38</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">38</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Balick, M.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The indigenous palm flora of  “Las Gaviotas”, Colombia, including observations on local names and use.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. Mus. Leafl.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. Mus. Leafl.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-34</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">30</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1985</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>39</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">39</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Balick, M.J. and D. Johnson</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The conservation status of</style>
-                                       <style face="italic" font="default" size="100%">Schippia concolor</style>
-                                       <style face="normal" font="default" size="100%">in Belize.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">124-128</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">38</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1994</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>40</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">40</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ballance, P.F., M.R. Gregory and G.W. Gibson</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Coconuts in Miocene turbidites in New Zealand: possible evidence for tsunami origin of some turbidity currents.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Geology</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Geology</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">592-595</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">9</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1981</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>42</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">42</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bande, M.B., U. Prakash and K. Ambwani</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A fossil palm fruit</style>
-                                       <style face="italic" font="default" size="100%">Hyphaeneocarpon indicum</style>
-                                       <style face="normal" font="default" size="100%">gen. et sp. nov. from the Deccan Intertrappean beds, India.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">303-309</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">30</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>41</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">41</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bande, M.B. and K. Ambwani</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Sclerosperma</style>
-                                       <style face="normal" font="default" size="100%">-type pollen grains from the Neyveli lignite of India.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">63-67</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">30</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>43</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">43</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Banka, R. and W.J. Baker</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A monograph of the genus</style>
-                                       <style face="italic" font="default" size="100%">Rhopaloblaste</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">47-60</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">59</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2004</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>44</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">44</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Barford, A.S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A monographic study of the subfamily Phytelephantoideae (Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Opera Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Opera Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-73</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">105</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1991</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>630</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">630</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Barford, A.S., F. Ervik and R. Bernal</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A. and F. Borchsenius (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Recent evidence on the evolution of phytelephantoid palms (Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Evolution, variation and classification of palms.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">266–277</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">The New York Botanical Garden Press, Bronx, New York.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>45</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">45</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Barford, A.S. and N.W. Uhl</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Floral development in</style>
-                                       <style face="italic" font="default" size="100%">Aphandra</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">185-195</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">88</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>46</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">46</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Barrow, S.C.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of</style>
-                                       <style face="italic" font="default" size="100%">Phoenix</style>
-                                       <style face="normal" font="default" size="100%">L.(Palmae:Coryphoideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">513-575</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">53</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1998</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>599</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">599</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Barrow, S.C.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A. and F. Borchsenius (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Systematic studies in</style>
-                                       <style face="italic" font="default" size="100%">Phoenix</style>
-                                       <style face="normal" font="default" size="100%">L. (Palmae: Coryphoideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Evolution, variation and classification of palms.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">215–223</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">The New York Botanical Garden Press, Bronx, NY.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>47</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">47</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Basu, S.K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Corypha palms in India.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Econ. Taxon. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Econ. Taxon. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">477-486</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1988</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>614</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">614</key>
-                       </foreign-keys>
-                       <ref-type name="Thesis">32</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bayton, R.P.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Borassus</style>
-                                       <style face="normal" font="default" size="100%">L. and the borassoid palms: systematics and evolution.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2005</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">The University of Reading</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <work-type>
-                               <style face="normal" font="default" size="100%">Ph.D. Thesis</style>
-                       </work-type>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>48</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">48</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bayton, R.P.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of</style>
-                                       <style face="italic" font="default" size="100%">Borassus</style>
-                                       <style face="normal" font="default" size="100%">L. (Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">561-586</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">62</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2007</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>49</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">49</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beach, J.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The reproductive biology of the Peach or “Pejibaye” palm (</style>
-                                       <style face="italic" font="default" size="100%">Bactris gasipaes</style>
-                                       <style face="normal" font="default" size="100%">) and a wild congener (</style>
-                                       <style face="italic" font="default" size="100%">B. porschiana</style>
-                                       <style face="normal" font="default" size="100%">) in the Atlantic lowlands of Costa Rica.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">107-119</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">28</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>50</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">50</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beach, J.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Pollination biology of spadices and spicate inflorescences in Cyclanthaceae and Palmae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">615-616</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">73</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1986</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>51</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">51</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beccari, O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Reliquiae Schefferianae. Illustrazione di alcunepalme viventi nel Giardino Botanico di Buitenzorg.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ann. Jard. Bot. Buitenzorg</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ann. Jard. Bot. Buitenzorg</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">77-171</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">2</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1885</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>52</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">52</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beccari, O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Nuovi studi sulle palme asiatiche.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Malesia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Malesia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">58-149</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">3</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1886</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>53</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">53</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beccari, O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Asiatic palms - Lepidocaryeae. Part I. The species of</style>
-                                       <style face="italic" font="default" size="100%">Calamus</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ann. Roy. Bot. Gard. Calcutta</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ann. Roy. Bot. Gard. Calcutta</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-518</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1908</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>54</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">54</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beccari, O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Studio monografica del genere</style>
-                                       <style face="italic" font="default" size="100%">Raphia</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Webbia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Webbia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">37-130</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">3</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1910</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>55</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">55</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beccari, O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Asiatic palms - Lepidocaryeae. Part I. Thespecies of Daemonorops.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ann. Roy. Bot. Gard. Calcutta</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ann. Roy. Bot. Gard. Calcutta</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-237</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">12</style>
-                       </volume>
-                       <number>
-                               <style face="normal" font="default" size="100%">1</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1911</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>56</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">56</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beccari, O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The palms indigenous to Cuba I. Pomona Coll.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Econ. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Econ. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">253-276</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">2</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1912</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>57</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">57</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beccari, O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Contributi alla conoscenza delle palme.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Webbia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Webbia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">143-240</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">4</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1913a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>58</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">58</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beccari, O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Asiatic palms - Lepidocaryeae. Supplement to Part I. The species of</style>
-                                       <style face="italic" font="default" size="100%">Calamus</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ann. Roy. Bot. Gard. Calcutta.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ann. Roy. Bot. Gard. Calcutta.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-142</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11 (App)</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1913b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>59</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">59</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beccari, O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Contributo alla conoscenza della palma a olio (</style>
-                                       <style face="italic" font="default" size="100%">Elaeis guineensis</style>
-                                       <style face="normal" font="default" size="100%">).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Agric. Colon.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Agric. Colon.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">5-37</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">8</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1914</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>60</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">60</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beccari, O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Asiatic palms - Lepidocaryeae. Part III.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ann. Roy. Bot. Gard. Calcutta</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ann. Roy. Bot. Gard. Calcutta</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-231</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">12</style>
-                       </volume>
-                       <number>
-                               <style face="normal" font="default" size="100%">2</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1918</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline-ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>61</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">61</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beccari, O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The palms of the Philippine Islands.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Philipp. J. Sc.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Philipp. J. Sc.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">295-362</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">14</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1919</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>62</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">62</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beccari, O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Le Palme della Nuova Caledonia. M. Ricci, Firenze.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Reprinted from Webbia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Reprinted from Webbia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">71-146</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">5</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1920</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>620</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">620</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beccari, O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palme della tribщ Borasseae (ed. U. Martelli).</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1924</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">G. Passeri, Firenxe</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>63</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">63</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beccari, O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Asiatic palms - Corypheae (ed. U. Martelli).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ann. Roy. Bot. Gard. Calcutta</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ann. Roy. Bot. Gard. Calcutta</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-356</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">13</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1931</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>64</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">64</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beccari, O. and J.F. Rock</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A monographic study of thegenus</style>
-                                       <style face="italic" font="default" size="100%">Pritchardia</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Mem. Bernice Pauahi Bishop Mus.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Mem. Bernice Pauahi Bishop Mus.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-77</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">8</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1921</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>65</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">65</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beccari, O. and R.G. Pichi-Sermolli</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Subfamiliae Arecoidearum palmae gerontogeae tribuum et generumconspectus.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Webbia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Webbia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-187</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1955</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>66</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">66</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beentje, H.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A monograph of</style>
-                                       <style face="italic" font="default" size="100%">Ravenea</style>
-                                       <style face="normal" font="default" size="100%">(Palmae:Ceroxyloideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">623-671</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">49</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1994</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>67</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">67</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Beerling, D.J. and C.K. Kelly</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Evolutionary comparative analyses of the relationships between leaf structure and function.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">New Phytol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">New Phytol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">35-51</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">134</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1996</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>69</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">69</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bernal, R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Nuevas especies y combinaciones en la subtribu Wettiniinae (Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Caldasia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Caldasia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">367-378.</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">17</style>
-                       </volume>
-                       <number>
-                               <style face="normal" font="default" size="100%">(82-85)</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1995</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>68</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">68</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bernal, R.G.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The genus</style>
-                                       <style face="italic" font="default" size="100%">Metasocratea</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">151-152</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">41</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1986</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>70</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">70</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Berry, E.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A palm from the mid-Cretaceous.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Torreya</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Torreya</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">30-33</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">5</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1905</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>71</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">71</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Berry, E.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Contributions to the Mesozoic flora of the Atlantic coastal plain - VII</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bull Torrey Bot. Club</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bull Torrey Bot. Club</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">399-424</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">38</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1911</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline-ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>72</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">72</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Berry, E.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Fruits of a date palm in the Tertiary deposits of eastern Texas.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Sci.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Sci.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">403-406</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">37</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1914a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>73</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">73</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Berry, E.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The Upper Cretaceous and Eocene floras of South Carolina and Georgia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">United States Geological Survey</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">United States Geological Survey</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">200 pp</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">Professional paper 84</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1914b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>74</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">74</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Berry, E.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A Nipa-palm in the North American Eocene.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Science</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Science</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">57-60</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">37</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1914c</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>75</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">75</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Berry, E.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Lower Eocene floras of southeastern North America.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">U.S. Geol. Surv. Profess. Paper</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">U.S. Geol. Surv. Profess. Paper</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-481</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">91</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1916</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>76</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">76</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Berry, E.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The fossil plants from Vero, Florida.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Florida State Geol. Surv., 9th Ann. Report.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">.</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">19-53</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1917</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>77</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">77</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Berry, E. W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Upper Cretaceous floras of the eastern Gulfregion in Tennessee Mississippi, Alabama, and Georgia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Prof. Pap. U.S. Geol. Surv.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">177 pp., 23 pls.</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">112</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1919a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>78</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">78</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Berry, E.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Miocene fossil plants from Peru.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Proc. U.S. Natl. Mus.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Proc. U.S. Natl. Mus.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">279-294</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">55</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1919b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>79</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">79</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Berry, E.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A palm nut from the Miocene of the Canal Zone.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Proc. U.S. Natl. Mus.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Proc. U.S. Natl. Mus.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">21-22</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">59</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1921a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>80</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">80</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Berry, E.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Tertiary fossil plants from Venezuela.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Proc. U.S. Natl. Mus.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Proc. U.S. Natl. Mus.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">553-579</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">59</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1921b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>81</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">81</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Berry, E.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The middle and upper Eocene floras of southeastern North America.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">U.S. Geol. Surv. Profess.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">206 pp</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">Paper 92.</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1924</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>82</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">82</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Berry, E.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A fossil palm fruit from the Middle Eocene of Northwestern Peru.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Proc. U.S. Natl. Mus. 70, art.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Proc. U.S. Natl. Mus. 70, art.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-4</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">3</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1926a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>83</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">83</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Berry, E.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Cocos</style>
-                                       <style face="normal" font="default" size="100%">and</style>
-                                       <style face="italic" font="default" size="100%">Phymatocaryon</style>
-                                       <style face="normal" font="default" size="100%">in the Pliocene of New Zealand.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Sci.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Sci.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">181-184</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">212</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1926b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>84</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">84</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Berry, E.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A palm nut of Attalea from the Upper Eocene of Florida.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Wash. Acad. Sci.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Wash. Acad. Sci.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">252-255</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">19</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1929</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>85</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">85</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Biondi, E. and R. Filicgeddu</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A palm fossil closely related to Chamaerops humilis L. from the Lower Miocene of Sardinia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Giorn. Bot. Ital.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Giorn. Bot. Ital.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">711-724</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">124</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1990</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>86</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">86</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Boltenhagen, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Spores et pollen du Crйtacй Supйrieur du Gabon.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Pollen and Spores</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Pollen and Spores</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">335-355</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">9</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1967</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>87</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">87</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bonde, S.D.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Amesoneuron borassoides</style>
-                                       <style face="normal" font="default" size="100%">sp. nov. - a borassoid palm leaf from the Deccan Intertrappean bed at Mohgaonkalan, India.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Biovigyanan</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Biovigyanan</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">89-91</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">12</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1986a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>88</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">88</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bonde, S.D.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Sabalophyllum livistonoides</style>
-                                       <style face="normal" font="default" size="100%">gen. et sp. nov.: a petrified palm leaf segment from Deccan Intertrappean bed at Nawargaon District Wardha, Maharashtra, India.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Biovigyanan</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Biovigyanan</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">113-118</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">12</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1986b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>89</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">89</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bonde, S.D., M.S. Kumbhojkar and R.T. Aher.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Phoenicicaulon mahabalei</style>
-                                       <style face="normal" font="default" size="100%">gen. et sp. nov., a sheathing leaf base of Phoenix from the Deccan Intertrappean beds of India.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Geophytology</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Geophytology</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">11-16</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">29</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2000</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>90</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">90</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bonnet, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Sur un Nipadites de l’Eocйne d’Egypte.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bull. Mus. Hist. Nat. (Paris)</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bull. Mus. Hist. Nat. (Paris)</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">499-502</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">10</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1904</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>92</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">92</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Borchsenius, F. and F. Skov</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Ecological amplitudes of Ecuadorian palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">179-183</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">41</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1997</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>91</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">91</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Borchsenius, F. and R. Bernal</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Aiphanes</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Fl. Neotrop. Monogr. No</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Fl. Neotrop. Monogr. No</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-94</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">70</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1996</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>94</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">94</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Boulos, L.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The discovery of</style>
-                                       <style face="italic" font="default" size="100%">Medemia</style>
-                                       <style face="normal" font="default" size="100%">palm in the Nubian Desert of Egypt.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. Not.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. Not.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">117-120</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">121</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1968</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>95</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">95</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Boureau, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Sur la presence du</style>
-                                       <style face="italic" font="default" size="100%">Palmoxylon aschersoni</style>
-                                       <style face="normal" font="default" size="100%">Schenkdans les couches tertiaires de la vallee du Chelif (Algerie).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bull. Mus. Nat. Hist. Nat. Sйr. 2,</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bull. Mus. Nat. Hist. Nat. Sйr. 2,</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">230-236</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">19</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1947</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>96</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">96</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Boureau, E., M. Salard-Cheboldaeff, M, J.C. Koeniguer and P. Louvet</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Evolution des Flores et de la vegetation tertiaresen Afrique, au nord de l’Equateur. Proc. 10th AETFAT Congress, Pretoria, 1982.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bothalia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bothalia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">355-367</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">14</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1983</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>580</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">580</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bowerbank, J.S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A History of the fossil fruits and seeds of the London Clay.</style>
-                               </title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1–44 pp</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1840</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">John Van Vorst, London.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>97</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">97</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Brown, R.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Ivory-nut palm from the late Tertiary of Ecuador.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Science</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Science</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1131-1132</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">123</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1956</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>98</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">98</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Brown, R.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Paleocene flora of the Rocky Mountains and Great Plains.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">US Geol. Surv. Prof. Paper.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">US Geol. Surv. Prof. Paper.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">199 pp.</style>
-                       </pages>
-                       <number>
-                               <style face="normal" font="default" size="100%">375</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1962</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>99</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">99</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Brown, W.H.and E.D. Merrill.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Philippine palms and palm products.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bull. Bur. Forest Philipp. Islands</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bull. Bur. Forest Philipp. Islands</style>
-                               </full-title>
-                       </periodical>
-                       <number>
-                               <style face="normal" font="default" size="100%">18</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1919</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>101</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">101</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Buckley, R. and H.C. Harries</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Self-sown wild-type coconuts from Australia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Biotropica</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Biotropica</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">148-151</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">16</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>102</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">102</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Budantsev, L.YU.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The find of a Sabal palm in the Eocenic beds in northwestern Kamchatka Peninsula.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. Zhurn. S.S.S.R.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. Zhurn. S.S.S.R.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1777-1783</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">64</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1979</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>103</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">103</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bullock, S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Demography of an undergrowth palm in littoral Cameroon.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Biotropica</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Biotropica</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">247-255</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">12</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>104</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">104</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bureau, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Sur quelques palmiers fossiles d’Italie.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bull. Mus. Hist. Nat. (Paris)</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bull. Mus. Hist. Nat. (Paris)</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">280-285</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">2</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1896</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>578</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">578</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Burkill, I.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A dictionary of the economic products of the Malay Peninsula. 2nd Ed.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1966</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Ministry of Agriculture and Cooperatives, Kuala Lumpur, Malaysia.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>105</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">105</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Burney, D.A., H.F. James, L.P. Burney, S.L. Olson, W. Kikuchi,W.L. Wagner, M. Burney, D. Mcclosky, D. Kikuchi, F.V. Grady, R. Gage Ii and R. Nishek.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Fossil evidence for adiverse biota from Kaua’i and its transformation since humanarrival.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ecol. Monogr.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ecol. Monogr.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">615-641</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">71</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>107</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">107</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Burret, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Die gattung</style>
-                                       <style face="italic" font="default" size="100%">Ceroxylon</style>
-                                       <style face="normal" font="default" size="100%">Humb. et Bonpl.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Bot. Gart. Berlin-Dahlem</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Bot. Gart. Berlin-Dahlem</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">841-854</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">10</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1929</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>108</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">108</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Burret, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Geonomae americanae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. Jahrb. Syst.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. Jahrb. Syst.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">123-270</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">63</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1930</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>109</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">109</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Burret, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Chamaedorea</style>
-                                       <style face="normal" font="default" size="100%">Willd. und verwandte Palmengattungen.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Bot. Gart. Berlin-Dahlem.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Bot. Gart. Berlin-Dahlem.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">724-768</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1933a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>110</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">110</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Burret, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Schippia</style>
-                                       <style face="normal" font="default" size="100%">, eine neue Palmengattung aus Brit. Honduras.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Bot. Gart. Berlin-Dahlem.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Bot. Gart. Berlin-Dahlem.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">867-869</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1933b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>111</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">111</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Burret, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Bactris</style>
-                                       <style face="normal" font="default" size="100%">und verwandte Palmengattungen.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Repert. Spec. Nov. Regni Veg.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Repert. Spec. Nov. Regni Veg.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">167-184</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">34</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1933c</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>112</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">112</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Burret, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">New palms from Fiji.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Occas. Pap. Bernice Pauahi Bishop Mus.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Occas. Pap. Bernice Pauahi Bishop Mus.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-14</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1935</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>113</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">113</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Burret, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Die Palmengattung</style>
-                                       <style face="italic" font="default" size="100%">Gronophyllum</style>
-                                       <style face="normal" font="default" size="100%">Scheff.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Bot. Gart. Berlin-Dahlem</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Bot. Gart. Berlin-Dahlem</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">200-205</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">13</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1936a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>114</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">114</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Burret, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Die Palmengattungen Nengella Becc. und</style>
-                                       <style face="italic" font="default" size="100%">Leptophoenix</style>
-                                       <style face="normal" font="default" size="100%">Becc.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Bot. Gart. Berlin-Dahlem</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Bot. Gart. Berlin-Dahlem</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">312-317</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">13</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1936b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>115</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">115</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Burret, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palmae chinenses.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Bot. Gart. Berlin-Dahlem</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Bot. Gart. Berlin-Dahlem</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">582-606</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">13</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1937</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>116</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">116</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Burret, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Die Palmengattung</style>
-                                       <style face="italic" font="default" size="100%">Tessmaniodoxa</style>
-                                       <style face="normal" font="default" size="100%">gen. nov.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Bot. Gart. Berlin-Dahlem.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Bot. Gart. Berlin-Dahlem.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">336-338</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">15</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1941</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>117</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">117</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Burret, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Neue Palmen aus der Gruppe der Lepidocaryoideae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Bot. Gart. Berlin-Dahlem</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Bot. Gart. Berlin-Dahlem</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">728-755</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">15</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1942</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>118</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">118</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Buzek, C.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Date-palm seeds from the Lower Miocene of Central Europe.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Vestn. Ъstredn. Ъstavu Geol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Vestn. Ъstredn. Ъstavu Geol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">159-168</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">52</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1977</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>106</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">106</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bъrquez, A., J. Sarukhбn and A. Pedroza.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Floral biologyof a rain forest palm,</style>
-                                       <style face="italic" font="default" size="100%">Astrocaryum mexicanum</style>
-                                       <style face="normal" font="default" size="100%">Liebm.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">407-419</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">94</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1987</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>100</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">100</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Bьchler, W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Eine fossile Flora aus dem oberen Oligozдn von Ebnat-Kappel.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. Helv.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. Helv.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">133-166</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">100</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1990</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>639</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">639</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Campbell, J., R. Fordyce, A. Grebneff and P. Maxwell</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Fossil coconuts from mid-Cenozoic shallow marine sediments in southern New Zealand.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2000</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Otago University, Geology Dept., Dunedin, New Zealand. [Poster abstract]</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>624</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">624</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Caratini, C. and C. Tissot</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Le Sondage Misedor, etude palynologique.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1985</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Etudes de Gйographie Tropical, Bordeaux: Centre Nationale de Recherche Scientifique</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>119</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">119</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Chandler, M.E.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The Oligocene Flora of the Bovey Tracey Lake Basin, Devonshire.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bull. Brit. Mus. (Nat. Hist.) Geol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bull. Brit. Mus. (Nat. Hist.) Geol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">71-123</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">3</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1957</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>120</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">120</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Chandler, M.E.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Flora of the Lower Headon Beds of Hampshire and the Isle of Wight.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bull. Brit. Mus. (Nat. Hist.) Geology</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bull. Brit. Mus. (Nat. Hist.) Geology</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">91-158</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">5</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1961a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>586</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">586</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Chandler, M.E.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The Lower Tertiary Floras of Southern England. Volume I. Palaeocene Floras, London Clay Flora.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1961b</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Brit. Mus. (Nat. Hist.), London.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>569</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">569</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Chandler, M.E.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The Lower Tertiary Floras of Southern England. Volume II. Flora of the Pipe Clay Series of Dorset (Lower Bagshot).</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1962</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Brit. Mus. (Nat. Hist.), London.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>583</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">583</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Chandler, M.E.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The Lower Tertiary Floras of Southern England. Volume III. Flora of the Bournemouth Beds, the Boscombe, and the Highcliff Sands.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1963</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Brit. Mus. (Nat. Hist.), London.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>663</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">663</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Chandler, M.E.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The Lower Tertiary Floras of Southern England. Volume IV. A summary and survey of findings in the light of recent botanical observations.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1964</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Brit. Mus. (Nat. Hist.), London</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>608</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">608</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Chandler, M.E.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Supplement to The Lower Tertiary Floras of Southern England. Part 5.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978</style>
-                               </year>
-                       </dates>
-                       <pub-location>
-                               <style face="normal" font="default" size="100%">Tertiary Research Special Paper #4.</style>
-                       </pub-location>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">The Tertiary Research Group, London.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>581</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">581</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Chandler, M.E.J. c.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The Lower Tertiary Floras of Southern England. Volume I. Palaeocene Floras, London Clay Flora. Supplement - Atlas of plates.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1961</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Brit. Mus. (Nat. Hist.), London.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>121</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">121</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Chapin, M.H., F.B. Essig and J.-C. Pintaud</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Themorphology and histology of the fruits of</style>
-                                       <style face="italic" font="default" size="100%">Pelagodoxa</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae): taxonomic and biogeographical implications.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">779-785</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">26</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>122</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">122</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Clement, C.R. and J.M. Urpi</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Leaf morphology of the Pejibaye palm (</style>
-                                       <style face="italic" font="default" size="100%">Bactris gasipaes</style>
-                                       <style face="normal" font="default" size="100%">H.B.K.).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rev. Biol. Trop.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rev. Biol. Trop.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">103-112</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">31</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1983</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>600</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">600</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Conwentz, H.W.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Goeppert, H.R. and A. Menge.</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Die Flora des Bernsteins. Die angiospermen des Bernsteins</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Die Flora des Bernsteins und ihre Beziehungen zur Flora der Tortiдrformation und der Gegenwart.</style>
-                               </secondary-title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1886</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Danzig, Germany.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>123</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">123</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Cook, O.F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Glaucothea</style>
-                                       <style face="normal" font="default" size="100%">, a new genus of palms from Lower California.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Washington Acad. Sci.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Washington Acad. Sci.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">236-241</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">5</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1915</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>124</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">124</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Cook, O.F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">New genera and species of ivory palms from Colombia, Ecuador and Peru.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Washington Acad. Sci.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Washington Acad. Sci.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">218-230</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">17</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1927</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>125</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">125</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Cook, O.F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">New household palm,</style>
-                                       <style face="italic" font="default" size="100%">Neanthe bella</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Science</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Science</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">120-122</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">86</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1937a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>126</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">126</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Cook, O.F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Hurricane palms in Florida, including a new genus</style>
-                                       <style face="italic" font="default" size="100%">Simpsonia</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Science</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Science</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">332-333</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">85</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1937b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>127</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">127</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Cook, O.F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Bornoa</style>
-                                       <style face="normal" font="default" size="100%">, an endemic palm of Haiti.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Natl. Hort. Mag.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Natl. Hort. Mag.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">254-280</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">18</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1939a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>128</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">128</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Cook, O.F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A second household palm,</style>
-                                       <style face="italic" font="default" size="100%">Omanthe costaricana</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Science</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Science</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">298-299</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">90</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1939b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>129</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">129</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Cook, O.F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Aublet the botanist, a pioneer against slavery, witha memorial genus of palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Washington Acad. Sci.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Washington Acad. Sci.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">294-299</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">30</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1940</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>130</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">130</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Cook, O.F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Household palms and related genera. Part I.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Natl. Hort. Mag.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Natl. Hort. Mag.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">83-102</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">22</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1943a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>131</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">131</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Cook, O.F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Household palms and related genera. Part II.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Natl. Hort. Mag.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Natl. Hort. Mag.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">134-152</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">22</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1943b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>132</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">132</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Cook, O.F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Cascade palms of southern Mexico.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Natl. Hort. Mag.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Natl. Hort. Mag.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">10-34</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">26</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1947a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>133</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">133</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Cook, O.F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Climbing and creeping palms in Mexico and Guatemala, related to household palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Natl. Hort. Mag.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Natl. Hort. Mag.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">215-231</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">26</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1947b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>134</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">134</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Cook, O.F. and C.B. Doyle</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The edible pacaya palm of Alta Verapaz.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Natl. Hort. Mag.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Natl. Hort. Mag.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">161-179</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">18</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1939</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>135</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">135</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Couper, R.A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The spore and pollen flora of the Cocos-bearing beds, Mangonui, North Auckland.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Trans. Roy. Soc. New Zealand, Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Trans. Roy. Soc. New Zealand, Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">340-348</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">79</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1952</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>136</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">136</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Couper, R.A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Upper Mesozoic and Cainozoic spores and pollen grains from New Zealand.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeontol. Bull. New Zealand Geol. Surv. 22.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">77 pp., 3 tab., 3 text figs, 9 pls</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1953</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Wellington.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>137</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">137</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Couvreur, T.L.P., W.J. Hahn, J.-J. De Granville, J.-L. Pham, B. Ludeсa and J.-C. Pintaud</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Phylogenetic relationships of the cultivated Neotropical palm</style>
-                                       <style face="italic" font="default" size="100%">Bactris gasipaes</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae) withi ts wild relatives inferred from non-coding chloroplastic sequences and nuclear microsatellite polymorphism.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">519-530</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">32</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2007</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>138</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">138</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Cuenca, A. and C.B. Asmussen-Lange</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Phylogeny of the palm tribe Chamaedoreeae (Arecaceae) based on plastid DNA sequences.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">250-263</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">32</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2007</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>633</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">633</key>
-                       </foreign-keys>
-                       <ref-type name="Thesis">32</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Cuenca-Navarro, A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Systematics, biogeography and evolution of morphological characters of the palm tribe Chamaedoreeae.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2007</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Faculty of Life Sciences, University of Copenhagen.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <work-type>
-                               <style face="normal" font="default" size="100%">Ph.D. Thesis</style>
-                       </work-type>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>139</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">139</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Czeczott, H.O. and K. Juchniewicz</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Monocotyledonae:Palmae. Flora Kopalna Turowa kolo Bogatyni, II.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Prace Muz. Ziemi</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Prace Muz. Ziemi</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">57-64</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">24</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1975</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>140</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">140</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Czeczott, H.O. and K. Juchniewicz.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palmae II. Flora Kopalna Turowa kolo Bogatyni, II.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Prace Muz. Ziemi</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Prace Muz. Ziemi</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">26-29</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">33</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>141</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">141</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Daghlian, C.P.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Coryphoid palms from the Lower and Middle Eocene of southeastern North America.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeontographica</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeontographica</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">44-82</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">Abt. B 166</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>142</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">142</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dahlgren, B.E. and S.F. Glassman</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of the genus</style>
-                                       <style face="italic" font="default" size="100%">Copernicia</style>
-                                       <style face="normal" font="default" size="100%">1. South American species.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">3-40</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">9</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1961</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>143</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">143</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dahlgren, B.E. and S.F. Glassman</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of the genus</style>
-                                       <style face="italic" font="default" size="100%">Copernicia</style>
-                                       <style face="normal" font="default" size="100%">2. West Indian species.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">43-232</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">9</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1963</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>144</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">144</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">De Magnano, S.M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Trithrinax campestris</style>
-                                       <style face="normal" font="default" size="100%">(Palmae): inflorescentia y flor con especial referencia al gineceo.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kurtziana</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kurtziana</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">137-152</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">7</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1973</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>145</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">145</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">De Mason, D.A., K.W. Stolte andB. Tisserat</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Floral development in</style>
-                                       <style face="italic" font="default" size="100%">Phoenix dactylifera</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Canad. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Canad. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1437-1446</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">60</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>146</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">146</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">De Nevers, G.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Notes on Panama palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Proc. Calif. Acad. Sci.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Proc. Calif. Acad. Sci.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">329-342</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">48</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1995</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>147</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">147</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dolianti, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Fructos de</style>
-                                       <style face="italic" font="default" size="100%">Nipa</style>
-                                       <style face="normal" font="default" size="100%">no Paleoceno de Pernambuco, Brasil.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bol. Minist. Agric. (Rio de Janeiro)</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bol. Minist. Agric. (Rio de Janeiro)</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-36</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">158</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1955</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>148</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">148</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dorf, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Upper Cretaceous floras of the Rocky Mountain region.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Contributions to paleontology, Carneg. Inst.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">168 pp</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">508</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1942</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>154</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">154</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dowe, J.L. and A.K. Irvine</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of</style>
-                                       <style face="italic" font="default" size="100%">Linospadix</style>
-                                       <style face="normal" font="default" size="100%">in Australia, with the description of a new species.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">192-197, 211-217.</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">41</style>
-                       </volume>
-                       <number>
-                               <style face="normal" font="default" size="100%">(4)</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1997</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>153</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">153</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dowe, J.L. and D.R. Hodel</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of</style>
-                                       <style face="italic" font="default" size="100%">Archontophoenix</style>
-                                       <style face="normal" font="default" size="100%">H. Wendl. &amp; Drude (Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Austrobaileya</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Austrobaileya</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">227-244</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">4</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1994</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>151</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">151</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dowe, J.L and M.D. Ferrero</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A new species of rheophytic palm from New Guinea.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">194-197</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">44</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2000</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>152</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">152</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dowe, J.L. and M.D. Ferrero</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Revision of</style>
-                                       <style face="italic" font="default" size="100%">Calyptrocalyx</style>
-                                       <style face="normal" font="default" size="100%">and the New Guinea species of</style>
-                                       <style face="italic" font="default" size="100%">Linospadix</style>
-                                       <style face="normal" font="default" size="100%">(Linospadicinae: Arecoideae: Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Blumea</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Blumea</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">207-251</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">46</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>150</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">150</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dowe, J.L. and M.H. Chapin</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Beccari’s “Grande Nouveautй”: the discovery, taxonomic history and typification of</style>
-                                       <style face="italic" font="default" size="100%">Pelagodoxa henryana</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">185-192</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">50</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2006</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>155</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">155</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dowe, J.L. and N.W. Uhl</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Carpoxylon macrospermum</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">68-73</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">33</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1989</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>149</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">149</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dowe, J.L. and P. Cabalion</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A taxonomic account of Arecaceae in Vanuatu, with descriptions of three new species.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Austral. Syst. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Austral. Syst. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-60</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">9</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1996</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>555</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">555</key>
-                       </foreign-keys>
-                       <ref-type name="Thesis">32</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Studies in the Malayan palms</style>
-                                       <style face="italic" font="default" size="100%">Eugeissona</style>
-                                       <style face="normal" font="default" size="100%">and</style>
-                                       <style face="italic" font="default" size="100%">Johannesteijsmannia</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1970</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">University of Cambridge</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <work-type>
-                               <style face="normal" font="default" size="100%">PhD. Thesis</style>
-                       </work-type>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>156</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">156</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The genus</style>
-                                       <style face="italic" font="default" size="100%">Borassodendron</style>
-                                       <style face="normal" font="default" size="100%">in Malesia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Reinwardtia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Reinwardtia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">351-363</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">8</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1972a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>157</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">157</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The genus</style>
-                                       <style face="italic" font="default" size="100%">Johannesteijsmannia</style>
-                                       <style face="normal" font="default" size="100%">H.E. Moore Jr.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gard Bull. Singapore</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gard Bull. Singapore</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">63-83</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">26</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1972b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>158</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">158</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A note on the habitat of</style>
-                                       <style face="italic" font="default" size="100%">Pigafetta filaris</style>
-                                       <style face="normal" font="default" size="100%">in North Celebes.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">48</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">20</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1976</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>159</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">159</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The genus</style>
-                                       <style face="italic" font="default" size="100%">Maxburretia</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb. 11(4)</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb. 11(4)</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">.</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">187-199</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>160</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">160</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A manual of the rattans of the Malay Peninsula. Mal. For. Records 29.</style>
-                               </title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">270 pp.</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1979a</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Forest Dept. Malaysia.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>563</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">563</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A monograph of the genus</style>
-                                       <style face="italic" font="default" size="100%">Ceratolobus</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1–33</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">34</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1979b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>161</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">161</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Retispatha</style>
-                                       <style face="normal" font="default" size="100%">, a new genus of Palmae (Lepidocaryoideae) from Borneo.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">529-536</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">34</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1979c</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>162</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">162</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Pogonotium</style>
-                                       <style face="normal" font="default" size="100%">(Palmae: Lepidocaryoideae) a new genus related to Daemonorops.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">761-768</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">34</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>163</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">163</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Systematic notes on</style>
-                                       <style face="italic" font="default" size="100%">Pinanga</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) in Borneo.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">769-788</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">34</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>164</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">164</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A synopsis of</style>
-                                       <style face="italic" font="default" size="100%">Korthalsia</style>
-                                       <style face="normal" font="default" size="100%">(Palmae Lepidocaryoideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">163-194</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">36</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1981a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>165</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">165</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A house in Thailand.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">36-38</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">25</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1981c</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>166</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">166</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Clinostigma</style>
-                                       <style face="normal" font="default" size="100%">in New Ireland.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">73-76</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">26</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>167</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">167</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A reassessment of the genera</style>
-                                       <style face="italic" font="default" size="100%">Plectocomiopsis</style>
-                                       <style face="normal" font="default" size="100%">,</style>
-                                       <style face="italic" font="default" size="100%">Myrialepis</style>
-                                       <style face="normal" font="default" size="100%">and</style>
-                                       <style face="italic" font="default" size="100%">Bejaudia</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">237-254</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">37</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>168</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">168</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Pogonotium moorei</style>
-                                       <style face="normal" font="default" size="100%">, a new species from Sarawak.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">174-177</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">26</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982c</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>169</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">169</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Kerriodoxa</style>
-                                       <style face="normal" font="default" size="100%">, a new coryphoid palm genus from Thailand.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">3-11</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">27</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1983</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>176</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">176</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J., J.R. Flenley, S.M. King, D.D. Harkness and S. Rapu</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A recently extinct palm from Easter Island.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Nature</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Nature</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">750-752</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">312</style>
-                       </volume>
-                       <number>
-                               <style face="normal" font="default" size="100%">(No 5996)</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>575</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">575</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The rattans of Sabah.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984a</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Forest Department, Sabah</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>170</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">170</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The genus</style>
-                                       <style face="italic" font="default" size="100%">Areca</style>
-                                       <style face="normal" font="default" size="100%">(Palmae: Arecoideae) in Borneo.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-22</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">39</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>177</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">177</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J., A.K. Irvine and N.W. Uhl.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Oraniopsis appendiculata</style>
-                                       <style face="normal" font="default" size="100%">, a previously misunderstood Queensland Palm.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">56-63</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">29</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1985</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>171</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">171</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Voanioala</style>
-                                       <style face="normal" font="default" size="100%">(Arecoideae: Cocoeae: Butiinae), a new palm genus from Madagascar.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">191-198</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">44</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1989</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>643</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">643</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Zizka, G.</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Paschalococos disperta</style>
-                                       <style face="normal" font="default" size="100%">J. Dransfield, gen. et sp. nov.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Flowering plants of Easter Island.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">64–65</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1991a</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Hortus Francofurtensis, Wissenschaftliche Berichte, Palmengarten, Frankfurt</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>172</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">172</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Lemurophoenix</style>
-                                       <style face="normal" font="default" size="100%">(Palmae: Arecoideae), a new genus from Madagascar.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">61-68</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">46</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1991b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>173</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">173</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Notes on</style>
-                                       <style face="italic" font="default" size="100%">Pinanga</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) in Sarawak.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">691-698</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">46</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1991c</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>576</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">576</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The rattans of Sarawak.</style>
-                               </title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">213 pp</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1992</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Royal Botanic Gardens Kew and Sarawak Forest Department.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>174</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">174</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Pigafetta</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">34-40</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">42</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1998</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>179</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">179</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J., M. Rakotoarinivo, W.J. Baker, R.P. Bayton,J.B. Fisher, J.W. Horn, B. Leroy and X. Metz.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A new Coryphoid palm genus from Madagascar.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">79-91</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">156</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2008</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>175</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">175</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J. and H.J. Beentje</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Satranala</style>
-                                       <style face="normal" font="default" size="100%">(Coryphoideae:Borasseae: Hyphaeninae), a new palm genus from Madagascar.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">85-92</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">50</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1995a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>619</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">619</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J. and H.J. Beentje</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The palms of Madagascar.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1995b</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Royal Botanic Gardens, Kew and the International Palm Society</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>178</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">178</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J. and J.P. Mogea</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The flowering behaviour of</style>
-                                       <style face="italic" font="default" size="100%">Arenga</style>
-                                       <style face="normal" font="default" size="100%">(Palmae: Caryotoideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn.Soc.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn.Soc.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-10</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">88</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>180</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">180</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J. and N.W. Uhl</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The transfer of</style>
-                                       <style face="italic" font="default" size="100%">Livistonakingiana</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) to</style>
-                                       <style face="italic" font="default" size="100%">Pholidocarpus</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">197-198</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">38</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1983a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>181</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">181</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J. and N.W. Uhl</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Wissmannia</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) reduced to</style>
-                                       <style face="italic" font="default" size="100%">Livistona</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">199-200</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">38</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1983b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>562</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">562</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Dransfield, J. Pages</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Tomlinson, P.B. and M.H. Zimmermann (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The growth forms of rain forest palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Tropical trees as living systems.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">247–268</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Cambridge University Press. New York.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>621</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">621</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Drasnfield, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palmae. Flora of Tropical East Africa.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1986</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">A.A. Balkema, Rotterdam</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>590</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">590</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Drude, O.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Engler, A. and K. Prantl.</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palmae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Die Natьrlichen Pflanzenfamilien</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1–93</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">2 (3)</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1887</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>182</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">182</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Duke, N.C.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Nypa</style>
-                                       <style face="normal" font="default" size="100%">in the mangroves of Central America: introduced or relict?</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">127-132</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">35</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1991</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline-ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>183</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">183</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ediger, V.S., Z. Bati and C. Alisan.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Paleopalynology and paleoecology of</style>
-                                       <style face="italic" font="default" size="100%">Calamus</style>
-                                       <style face="normal" font="default" size="100%">-like disulcate pollen grains.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">97-105</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">62</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1990</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>184</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">184</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Edwards, P.J., J. Kollmann and K. Fleischmann</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Life history evolution in</style>
-                                       <style face="italic" font="default" size="100%">Lodoicea maldivica</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Nordic J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Nordic J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">227-237</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">22</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>185</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">185</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">ELias de Paula, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Anatomia de</style>
-                                       <style face="italic" font="default" size="100%">Euterpe oleracea</style>
-                                       <style face="normal" font="default" size="100%">Mart.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Acta Amazon.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Acta Amazon.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">265-278</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">5</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1975</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>186</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">186</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Erdtman, G. and G. Singh</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">On the pollen morphology in</style>
-                                       <style face="italic" font="default" size="100%">Sclerosperma mannii</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bull. Jard. Bot. Йtat Bruxelles</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bull. Jard. Bot. Йtat Bruxelles</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">217-220</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">27</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1957</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>187</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">187</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ergo, A.B.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Nouvelle evidence d’origine africaine de l’Elaeisguineensis Jacq. Par la decouverte de graines fossils en Uganda.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ann. Gembloux</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ann. Gembloux</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">191-201</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">102</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1997</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>188</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">188</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Erwin, D.M. and R.A. Stockey</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Silicified monocotyledonsfrom the Middle Eocene Princeton chert (Allenby Formation) of British Columbia, Canada.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">147-162</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">70</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1991</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>189</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">189</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Essig, F.B.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Observations on pollination in</style>
-                                       <style face="italic" font="default" size="100%">Bactris</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">20-24</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">15</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1971</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>190</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">190</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Essig, F.B.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Pollination in some New Guinea palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">75-83</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">17</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1973</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>191</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">191</key>
-                       </foreign-keys>
-                       <ref-type name="Thesis">32</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Essig, F.B.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A systematic study of the genus</style>
-                                       <style face="italic" font="default" size="100%">Ptychosperma</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1975</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Cornell University.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <work-type>
-                               <style face="normal" font="default" size="100%">PhD Thesis</style>
-                       </work-type>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>192</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">192</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Essig, F.B.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A systematic histological study of palm fruits. I. The</style>
-                                       <style face="italic" font="default" size="100%">Ptychosperma</style>
-                                       <style face="normal" font="default" size="100%">alliance.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">151-168</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">2</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1977</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>193</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">193</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Essig, F.B.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of the genus</style>
-                                       <style face="italic" font="default" size="100%">Ptychosperma</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Allertonia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Allertonia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">415-478</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">1</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>194</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">194</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Essig, F.B.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A synopsis of the genus</style>
-                                       <style face="italic" font="default" size="100%">Gulubia</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">159-173</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">26</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>198</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">198</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Essig, F.B., T. Manka and L. Bussard</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A systematic histological study of palm fruits. III. Subtribe Iguanurinae (Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">307-325</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">51</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>196</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">196</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Essig, F.B., L. Bussard and N. Hernandez</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A systematic histological study of palm fruits. IV. Subtribe Oncospermatinae (Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">466-471</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">53</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>195</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">195</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Essig, F.B.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A systematic histological study of palm fruits. VI. Subtribe Linospadicinae (Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">196-201</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">54</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>200</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">200</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Essig, F.B. and B.E. Young</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A systematic histological study of palm fruits. II. The</style>
-                                       <style face="italic" font="default" size="100%">Areca</style>
-                                       <style face="normal" font="default" size="100%">alliance.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">16-28</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">4</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1979</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>199</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">199</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Essig, F.B. and B.E. Young</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A reconsideration of</style>
-                                       <style face="italic" font="default" size="100%">Gronophyllum</style>
-                                       <style face="normal" font="default" size="100%">and</style>
-                                       <style face="italic" font="default" size="100%">Nengella</style>
-                                       <style face="normal" font="default" size="100%">(Arecoideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">129-137</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">29</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1985</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>197</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">197</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Essig, F.B. and N. Hernandez</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A systematic histological study of palm fruits: 5. Subtribe Archontophoenicinae (Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">65-71</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">54</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>201</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">201</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Evans, R.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Systematics of</style>
-                                       <style face="italic" font="default" size="100%">Cryosophila</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot. Monogr.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot. Monogr.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-70</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">46</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1995</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>202</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">202</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Evans, R.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Monograph of</style>
-                                       <style face="italic" font="default" size="100%">Colpothrinax</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">177-195</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">45</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>203</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">203</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Evans, T.D., K. Sengdala. B. Thammavong, O.V. Viengkham and J. Dransfield.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A synopsis of the rattans (Arecaceae:Calamoideae) of Laos and neighbouring parts of Indochina.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bulletin</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bulletin</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-84</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">57</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>204</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">204</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ferguson, I.K., J. Dransfield, F.C. Page and G. Thanikaimoni.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Notes on the pollen morphology of</style>
-                                       <style face="italic" font="default" size="100%">Pinanga</style>
-                                       <style face="normal" font="default" size="100%">with special reference to</style>
-                                       <style face="italic" font="default" size="100%">P. aristata</style>
-                                       <style face="normal" font="default" size="100%">and</style>
-                                       <style face="italic" font="default" size="100%">P. pilosa</style>
-                                       <style face="normal" font="default" size="100%">(Palmae: Arecoideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Grana</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Grana</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">65-72</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">22</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1983</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>205</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">205</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Fernando, E.S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of the genus</style>
-                                       <style face="italic" font="default" size="100%">Nenga</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">55-70</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">27</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1983</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>206</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">206</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Fernando, E.S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The genus</style>
-                                       <style face="italic" font="default" size="100%">Heterospathe</style>
-                                       <style face="normal" font="default" size="100%">(Palmae: Arecoideae) in the Philippines.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">219-234</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">45</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1990</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>207</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">207</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Fernando, E.S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">New species of</style>
-                                       <style face="italic" font="default" size="100%">Pinanga</style>
-                                       <style face="normal" font="default" size="100%">(Palmae: Arecoideae) from Luzon Island, Philippines.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">775-784</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">49</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1994</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>208</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">208</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ferraz-Vicentini, K.R. and M.L. Salgado-Labouriau.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynological analysis of a palm swamp in Central Brazil.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. S. Amer. Earth Sci.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. S. Amer. Earth Sci.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">207-219</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">9</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1996</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>209</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">209</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Fisher, J. and J. French</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The occurrence of intercalary and uninterrupted meristems in the internodes of tropical monocotyledons.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">510-525</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">63</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1976</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>210</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">210</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Fisher, J.B., R.W. Sanders and N. Edmonson</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The flowering and fruiting of</style>
-                                       <style face="italic" font="default" size="100%">Corypha umbraculifera</style>
-                                       <style face="normal" font="default" size="100%">in Miami, Florida.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">68-77</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">31</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1987</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>211</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">211</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Fisher, J.B. and P.B. Tomlinson</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Branch and inflorescence production in saw palmetto (</style>
-                                       <style face="italic" font="default" size="100%">Serenoa repens</style>
-                                       <style face="normal" font="default" size="100%">).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">10-19</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">17</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1973</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>212</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">212</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Fisher, J.B. and S. Zona</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Unusual branching in</style>
-                                       <style face="italic" font="default" size="100%">Manicaria</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">99-102</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">50</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2006</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>213</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">213</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Fliche, P.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Йtude sur la flore fossile de l’Argonne Albien-Cenomanien.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bull. Soc.Sci. Nancy</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bull. Soc.Sci. Nancy</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">114-306</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">14</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1896</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>214</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">214</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Fong, F.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">An unconventional alcohol fuel crop.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">64-67</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">31</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1987</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>215</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">215</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Fong, F.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The apung palm; traditional techniques of sugar tappingand alcohol extraction in Sarawak.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">21-26</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">33</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1989</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>625</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">625</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Fox, J.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Harvest of the Palm. Ecological Change in Eastern Indonesia</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1977</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Harvard Univ. Press, Cambridge, Massachusetts</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>216</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">216</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Frederiksen, N.O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Sporomorphs from the Jackson Group (Upper Eocene) and adjacent strata of Mississippi and western Alabama.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">U.S. Geol. Surv. Reston, VA Prof. Paper</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">U.S. Geol. Surv. Reston, VA Prof. Paper</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-75</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">1084</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>627</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">627</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Frederiksen, N.O.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">J. Gray, A.J. Boucot and W.B. Berry (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Middle Eocene to Early Oligocene plant communities of the Gulf Coast</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Communities of the Past</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">493–549</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1981</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Hutchinson Ross Publ. Co., Stronsburg PA</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>218</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">218</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Frederiksen, N.O., V.D. Wiggins, I.K. Ferguson, J. Dransfield and C.M. Ager.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Distribution, paleoecology, and botanical affinity of the Eocene pollen genus</style>
-                                       <style face="italic" font="default" size="100%">Diporoconia</style>
-                                       <style face="normal" font="default" size="100%">n. gen.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palynology</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palynology</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">37-60</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">9</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1985</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>217</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">217</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Frederiksen, N.O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Middle and late Paleocene angiosperm pollen from Pakistan.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palynology</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palynology</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">91-137</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">18</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1994</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>219</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">219</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Frite, P.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Sur la dйcouverte, au Sйnйgal, de deux fruits fossils appartenant aux genres Kigelia DC et Nipadites Bowerb.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Compt. Rend. Hebd. Sйances Acad. Sci.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Compt. Rend. Hebd. Sйances Acad. Sci.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">245-246</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">173</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1921</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>660</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">660</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Fuller, D.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A. and F. Borchsenius (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The lost palm of Fiji - a resolution of</style>
-                                       <style face="italic" font="default" size="100%">Goniocladus</style>
-                                       <style face="normal" font="default" size="100%">and a preliminary cladistic analysis of</style>
-                                       <style face="italic" font="default" size="100%">Physokentia</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Evolution, variation and classification of palms.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">203–213</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">The New York Botanical Garden Press, Bronx, NY.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>220</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">220</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Furtado, C.X.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The limits of</style>
-                                       <style face="italic" font="default" size="100%">Areca</style>
-                                       <style face="normal" font="default" size="100%">L. and its sections.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Repert. Spec. Nov. Regni Veg.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Repert. Spec. Nov. Regni Veg.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">217-239</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">33</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1933</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>221</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">221</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Furtado, C.X.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palmae Malesicae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Repert. Spec. Nov. Regni Veg.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Repert. Spec. Nov. Regni Veg.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">18-25</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">35</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1934</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>222</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">222</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Furtado, C.X.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palmae Malesicae VIII. - The genus</style>
-                                       <style face="italic" font="default" size="100%">Licuala</style>
-                                       <style face="normal" font="default" size="100%">in the Malay Peninsula.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gard. Bull Straits Settlem.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gard. Bull Straits Settlem.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">31-73</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1940</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>223</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">223</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Furtado, C.X.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palmae Malesicae X. The Malayan species of</style>
-                                       <style face="italic" font="default" size="100%">Salacca</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gard. Bull. Singapore</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gard. Bull. Singapore</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">378-403</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">12</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1949</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>224</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">224</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Furtado, C.X.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The species of</style>
-                                       <style face="italic" font="default" size="100%">Daemonorops</style>
-                                       <style face="normal" font="default" size="100%">in Malaya.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gard. Bull. Singapore</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gard. Bull. Singapore</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">49-147</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">14</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1953</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>225</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">225</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Galeano, G.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Novedades en el genero</style>
-                                       <style face="italic" font="default" size="100%">Ceroxylon</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Caldasia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Caldasia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">395-408</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">17</style>
-                       </volume>
-                       <number>
-                               <style face="normal" font="default" size="100%">(82-85)</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1995</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>226</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">226</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Galeano-Garces, G. and R. Bernal-Gonzalez</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Two new species of</style>
-                                       <style face="italic" font="default" size="100%">Ceroxylon</style>
-                                       <style face="normal" font="default" size="100%">from Colombia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Caldasia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Caldasia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">693-699</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">13</style>
-                       </volume>
-                       <number>
-                               <style face="normal" font="default" size="100%">(65)</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>227</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">227</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Galeano-Garces, G. and R. Bernal-Gonzalez</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Novedades de las palmas de Colombia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Caldasia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Caldasia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">693-699</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">13</style>
-                       </volume>
-                       <number>
-                               <style face="normal" font="default" size="100%">(65)</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1983</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>228</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">228</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Gamble, J.S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Flora of the Presidency of Madras.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Botanical Survey of India, Calcutta</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Botanical Survey of India, Calcutta</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1085-1086</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">3</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1935</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>229</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">229</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Gardner, J.S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Description and correlation of the Bournemouth Beds. Part II. Lower or Freshwater Series.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Quart. J. Geol. Soc. London</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Quart. J. Geol. Soc. London</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-15</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">38</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1882</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>579</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">579</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Gee, C.T.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Knobloch, E. and Z. Kvacek (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">On the fossil occurrence of the mangrove palm</style>
-                                       <style face="italic" font="default" size="100%">Nypa</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Paleofloristics and paleoclimatic changes in the Cretaceous and Tertiary.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">315–319</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1993</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Geologicky ustav Dionyza Stura, Prague</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>230</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">230</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Gee, C.T.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The mangrove palm</style>
-                                       <style face="italic" font="default" size="100%">Nypa</style>
-                                       <style face="normal" font="default" size="100%">in the geologic past of the New World.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Wetlands Ecol. Managem.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Wetlands Ecol. Managem.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">181-194</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">9</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>234</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">234</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Gibbons, M., T.W. Spannerand S.Y. Chen</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Trachycarpus princeps</style>
-                                       <style face="normal" font="default" size="100%">, the stone gate palm, an exciting new species from China.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">65-74</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">39</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1995</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>231</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">231</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Gibbons, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Trithrinax</style>
-                                       <style face="normal" font="default" size="100%">: trials and tribulations.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">74-79</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">45</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>235</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">235</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Gibbons, M, T.W. Spanner, V.D. Nguyen and P. Anh</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Trachycarpus geminisectus</style>
-                                       <style face="normal" font="default" size="100%">, the eight peaks fan palm, a new species from Vietnam.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">143-148</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">47</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2003</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>232</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">232</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Gibbons, M. and T.W. Spanner</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Medemia argun</style>
-                                       <style face="normal" font="default" size="100%">lives!</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">65-74</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">40</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1996</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>233</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">233</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Gibbons, M. and T.W. Spanner</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Trachycarpus oreophilus</style>
-                                       <style face="normal" font="default" size="100%">: the Thailand Trachycarpus.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">201-207</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">41</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1997</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>236</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">236</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Glassman, S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of B. E. Dahlgren’s index of American palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Phanerogamarum Monographiae</style>
-                               </secondary-title>
-                       </titles>
-                       <volume>
-                               <style face="normal" font="default" size="100%">Tomus VI.</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1972</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Cramer, Germany</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>238</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">238</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Glassman, S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Revisions of the palm genus</style>
-                                       <style face="italic" font="default" size="100%">Syagrus</style>
-                                       <style face="normal" font="default" size="100%">Mart. and other selected genera in the</style>
-                                       <style face="italic" font="default" size="100%">Cocos</style>
-                                       <style face="normal" font="default" size="100%">alliance.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">(Illinois biological monographs, 56).</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">230p.</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">ix</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1987</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Urbana, IU., Chicago, IU., University of Illinois Press.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>237</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">237</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Glassman, S.F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Re-evaluation of the genus</style>
-                                       <style face="italic" font="default" size="100%">Butia</style>
-                                       <style face="normal" font="default" size="100%">with a description of a new species.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">65-79</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">23</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1979</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>239</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">239</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Glassman, S.F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A taxonomic treatment of the palm subtribe Attaleinae (tribe Cocoeae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Illinois Biol. Monogr. 59</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">414pp.</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Urbana: University of Illinois Press</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>560</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">560</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Gonzбlez-Guzmбn, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A palynological study on the Upper los Cuervos and Mirador Formations (Lower and Middle Eocene; Tibъ Area, Colombia).</style>
-                               </title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">65 pp</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1967</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Brill, Leiden</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>637</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">637</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Govaerts, R. and J. Dransfield</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">World checklist of palms.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2005</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Royal Botanic Gardens, Kew.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>240</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">240</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Graham, A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Studies in neotropical botany II.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">The Miocene communities of Veracruz, Mexico.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">The Miocene communities of Veracruz, Mexico.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">63</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">Ann. Missouri Bot. Gard.</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1976</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>241</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">241</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Graham, A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Studies in neotropical American paleobotany.VIII. The Pliocene communities of Panama - introduction and ferns, gymnosperms, angiosperms (monocots).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ann. Missouri Bot. Gard.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ann. Missouri Bot. Gard.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">190-200</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">78</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1991</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>242</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">242</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Green, P.S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Arecaceae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Flora of Australia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Flora of Australia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">407-412</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">49</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1994</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>570</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">570</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Gregor, H.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palmae in Die Jungtertiдren Floren Sьddeutschlands.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Ferdinand Enke Verlag, Stuttgart</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>243</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">243</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Gruas-Cavagnetto, C.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Йtude palynologique du Palйogиnedu sud de l’Angleterre.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Cahier de Micropalйontologie</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">49 pp. 10 pls</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1976</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">CNRS Paris.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>244</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">244</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Gruezo, W.M. and H.C. Harries</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Self-sown, wild-type coconuts in the Philippines.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Biotropica</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Biotropica</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">140-147</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">16</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>245</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">245</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Guanchez, F.J. and G.A. Romero</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The flowers and unusual inflorescences of</style>
-                                       <style face="italic" font="default" size="100%">Leopoldinia</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">152-158</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">39</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1995</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>648</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">648</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Guerrero, A.M.A. de and C.R. Clement</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Bibliografia sobre Pejibaye (</style>
-                                       <style face="italic" font="default" size="100%">Bactris gasipaes</style>
-                                       <style face="normal" font="default" size="100%">). CATIE/GT2.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Centro Agronуmico Tropical de Investigaciуn y Enseсanza unidad de Recursos Genйticos. Turrialba, Costa Rica.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>246</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">246</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Gunn, B.F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The phylogeny of the Cocoeae (Arecaceae) with emphasis on</style>
-                                       <style face="italic" font="default" size="100%">Cocos nucifera</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ann. Missouri Bot. Gard.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ann. Missouri Bot. Gard.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">505-522</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">91</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2004</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>247</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">247</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Gupta, P.C. and S. Warnakulasuriya</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Global epidemiology of areca nut usage.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Addict. Biol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Addict. Biol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">77-83</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">7</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>248</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">248</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Haffer, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Speciation in Amazonian forest birds.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Science</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Science</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">131-137</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">165</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1969</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>585</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">585</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Gregor H.J. and H. Hagn</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Fossil fructifications from the Cretaceous-Palaeocene boundary of Egypt (Danian Bir Abu Mungar).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Tertiary Res.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Tertiary Res.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">121–147</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">4</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>615</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">615</key>
-                       </foreign-keys>
-                       <ref-type name="Thesis">32</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hahn, W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Biosystematics and evolution of the genus</style>
-                                       <style face="italic" font="default" size="100%">Caryota</style>
-                                       <style face="normal" font="default" size="100%">(Palmae: Arecoideae).</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1993</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">University of Wisconsin, Madison, Wisconsin</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <work-type>
-                               <style face="normal" font="default" size="100%">PhD Thesis</style>
-                       </work-type>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>249</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">249</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hahn, W.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A phylogenetic analysis of the Arecoid Line of palms based on plastid DNA sequence data.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Molec. Phylogen. Evol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Molec. Phylogen. Evol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">189-204</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">23</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>250</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">250</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hahn, W.J. and K.J. Sytsma</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Molecular systematics andbiogeography of the Southeast Asian genus</style>
-                                       <style face="italic" font="default" size="100%">Caryota</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">558-580</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">24</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>251</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">251</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hallй, F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The longest leaf in palms?</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">18</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">21</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1977</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>589</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">589</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Harley, M.M., M.H. Kurmann and I.K. Fergusson.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Blackmore, S. and S. Barnes (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Systematic implications of comparative morphology in selected fossil and extant pollen from the Palmae and the Sapotaceae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Pollen and spores: patterns of diversification.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">225–238</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1991</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Clarendon Press, Oxford.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>252</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">252</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Harley, M.M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Ultrastructure of pollen from some Eocene palm flowers (Messel, Germany).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Meded. Rijks Geol. Dienst,</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Meded. Rijks Geol. Dienst,</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">193-209</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">58</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1997</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>254</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">254</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Harley, M.M. and R.J. Morley.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Ultrastructural studies ofsome fossil and extant palm pollen, with notes on the geologicalhistory of subtribes Iguanurinae and Calaminae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">153-182</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">85</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1995</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>253</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">253</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Harley, M.M. and W.J. Baker.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Pollen aperture morphology in Arecaceae: application within phylogenetic analyses, and a summary of the fossil record of palm-like pollen.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Grana</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Grana</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">45-77</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">40</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>255</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">255</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Harries, H.C.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Evolution, dissemination and classification of</style>
-                                       <style face="italic" font="default" size="100%">Cocos nucifera</style>
-                                       <style face="normal" font="default" size="100%">L.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. Rev. (Lancaster)</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. Rev. (Lancaster)</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">265-319</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">44</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>638</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">638</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Harries, H.C.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Biogeography of the coconut</style>
-                                       <style face="italic" font="default" size="100%">Cocos nucifera</style>
-                                       <style face="normal" font="default" size="100%">L.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">155–162</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">36</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1992</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>651</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">651</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hartley, C.W.S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The oil palm. 3rd Ed.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1988</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Longman, London</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>256</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">256</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hastings, L.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of</style>
-                                       <style face="italic" font="default" size="100%">Rhapis</style>
-                                       <style face="normal" font="default" size="100%">, the Lady Palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">62-78</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">47</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2003</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>257</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">257</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Heatubun, C.D.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A monograph of</style>
-                                       <style face="italic" font="default" size="100%">Sommieria</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">599-611</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">57</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>258</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">258</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Pollination of</style>
-                                       <style face="italic" font="default" size="100%">Socratea exorrhiza</style>
-                                       <style face="normal" font="default" size="100%">and</style>
-                                       <style face="italic" font="default" size="100%">Iriartea ventricosa</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">64-71</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">29</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1985</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>259</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">259</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Barcella odora</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">74-76</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">30</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1986</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>260</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">260</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Arecaceae. Part I. Introduction and the Iriarteinae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Fl. Neotrop. Monogr.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Fl. Neotrop. Monogr.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-100</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">53</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1990</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>558</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">558</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The palms of the Amazon.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1995</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Oxford University Press, New York.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>559</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">559</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A., G. Galeano and R. Bernal.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A field guide to the palms of the Americas.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1995</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Princeton University Press, Princeton, New Jersey</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>261</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">261</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A phylogenetic analysis of the Euterpeinae (Palmae, Arecoideae, Areceae) based on morphology and anatomy.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">106-113</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">51</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>262</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">262</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Bactris</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Fl. Neotrop. Monogr.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Fl. Neotrop. Monogr.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-181</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">79</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2000</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>263</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">263</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Phenetic and phylogenetic analysis of</style>
-                                       <style face="italic" font="default" size="100%">Reinhardtia</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1491-1502</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">89</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>264</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">264</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A multivariate analysis of</style>
-                                       <style face="italic" font="default" size="100%">Hyospathe</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">953-965</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">91</style>
-                       </volume>
-                       <number>
-                               <style face="normal" font="default" size="100%">(6)</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2004</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>265</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">265</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A multivariate study of</style>
-                                       <style face="italic" font="default" size="100%">Calyptrogyne</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">60-83</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">30</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2005</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>267</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">267</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A. and E. Ferreira</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A morphometric study of</style>
-                                       <style face="italic" font="default" size="100%">Synechanthus</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">693-702</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">27</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>268</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">268</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A. and G. Galeano</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Euterpe</style>
-                                       <style face="normal" font="default" size="100%">,</style>
-                                       <style face="italic" font="default" size="100%">Prestoea</style>
-                                       <style face="normal" font="default" size="100%">and</style>
-                                       <style face="italic" font="default" size="100%">Neonicholsonia</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Fl. Neotrop. Monogr.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Fl. Neotrop. Monogr.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-90</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">72</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1996</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>266</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">266</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of</style>
-                                       <style face="italic" font="default" size="100%">Wallichia</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Taiwania</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Taiwania</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-11</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">52</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2007</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>269</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">269</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hermann, A. and J. Kvacek.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Campanian Grьnbach Flora ofLower Austria: preliminary floristics and palaeoclimatology.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ann. Naturhist. Wien, A.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ann. Naturhist. Wien, A.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-121</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">103</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>270</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">270</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hilgeman, R.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The differentiation, development and anatomy of the axillary bud, inflorescence and offshoot in the date palm.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Date Grower’s Inst. Rep.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Date Grower’s Inst. Rep.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">6-10</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">31</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1954</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>271</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">271</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hodel, D.R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Notes on</style>
-                                       <style face="italic" font="default" size="100%">Pritchardia</style>
-                                       <style face="normal" font="default" size="100%">in Hawaii.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">65-81</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">24</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>272</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">272</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hodel, D.R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Chamaedorea</style>
-                                       <style face="normal" font="default" size="100%">palms: the species and their cultivation.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1992</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">International Palm Society, Kansas.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>273</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">273</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hodel, D.R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">New species of palms from Thailand, part 2.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palm J.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palm J.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">7-20</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">136</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1997</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>274</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">274</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hodel, D.R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A review of the genus</style>
-                                       <style face="italic" font="default" size="100%">Pritchardia</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-53</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">51, Supplement to Vol. 4.</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2007</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>613</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">613</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hodel, D.R. and J.-C. Pintaud</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The palms of New Caledonia.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1998</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Kampon Tansacha, Nong Nooch Tropical Garden, Pattaya, Thailand</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>275</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">275</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hodge, W.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palm cabbage.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">124-131</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">9</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1965</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>276</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">276</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hoeken-Klinkenberg, P.M.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A palynological investigation of some Upper-Cretaceous sediments in Nigeria.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Pollen and Spores</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Pollen and Spores</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">209-231</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">6</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1964</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>277</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">277</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hofmann, C.-C. and R. Zetter.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynological investigation of the Krappfeld area, Palaeocene/Eocene, Carintha (Austria).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeontographica B</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeontographica B</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">47-64</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">259</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>278</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">278</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hollick, A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A new fossil palm from the Cretaceous formation at Glen Cove, Long Island.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bull. Torrey Bot. Club</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bull. Torrey Bot. Club</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">168-169</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">10</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1893</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>279</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">279</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hollick, A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palaeobotany of Porto Rico.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Scientific Survey of Porto Rico and the Virgin Islands 7.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">177-193</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1928</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>577</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">577</key>
-                       </foreign-keys>
-                       <ref-type name="Thesis">32</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hoppe, L.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The pollination biology and biogeography of the mangrove palm</style>
-                                       <style face="italic" font="default" size="100%">Nypa fruticans</style>
-                                       <style face="normal" font="default" size="100%">Wurmb (Arecaceae).</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2005</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">University of Aarhus</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <work-type>
-                               <style face="normal" font="default" size="100%">Master’s thesis</style>
-                       </work-type>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>280</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">280</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">House, A.P.N.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The ecology of</style>
-                                       <style face="italic" font="default" size="100%">Oncosperma horridum</style>
-                                       <style face="normal" font="default" size="100%">on Siberut Isalnd, Indonesia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">83-89</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">28</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>288</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">288</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Huard, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Restes epineux de palmier lepidocaryoide du Neogene des Landes.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Naturalia Monspel., Sйr. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Naturalia Monspel., Sйr. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">319-346</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">18</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1967</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>289</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">289</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Hьbschmann, L.K., C. Grandez and H. Balslev.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Uses of Vara Casha - a neotropical liana palm,</style>
-                                       <style face="italic" font="default" size="100%">Desmoncus polyacanthos</style>
-                                       <style face="normal" font="default" size="100%">- in Iquitos, Peru.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">167-176</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">51</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2007</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>290</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">290</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Irvine, A.K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Wodyetia</style>
-                                       <style face="normal" font="default" size="100%">, a new arecoid genus from Australia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">158-167</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">27</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1983</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>282</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">282</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Isnard, S., T. Speck and N.P. Rowe.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Biomechanics and development of the climbing habit in two species of the South American palm genus</style>
-                                       <style face="italic" font="default" size="100%">Desmoncus</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1444-1456</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">92</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2005</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>281</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">281</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Isnard, S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Biomechanics and development of rattans: what is special about Plectocomia himalayana Griff. (Calamoideae, Plectocomiinae)?</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">83-91</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">151</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2006</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>291</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">291</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Jablonszky, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A tarnуci mediterrбn koru flora (Diemediterrane Flora von Tarnуc).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Magyar Kirбlyi бllami Fцldtaniintйzet йvkцnyve, Budapest</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Magyar Kirбlyi бllami Fцldtaniintйzet йvkцnyve, Budapest</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">228-273</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">22</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1914</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>292</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">292</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Jahnichen, H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The oldest record of</style>
-                                       <style face="italic" font="default" size="100%">Nypa burtini</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">International Organisation of Palaeobot. Newsletter</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">International Organisation of Palaeobot. Newsletter</style>
-                               </full-title>
-                       </periodical>
-                       <volume>
-                               <style face="normal" font="default" size="100%">42</style>
-                       </volume>
-                       <number>
-                               <style face="normal" font="default" size="100%">12</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1990</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>293</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">293</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Jan Du Chкne, R.E., M.S. Onyike and M.A. Sowunmi.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Some new Eocene pollen on the Ogwashi-Asaba Formation, South-Eastern Nigeria.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rev. Micropalйontol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rev. Micropalйontol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">285-322</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">10</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>283</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">283</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Jaramillo, C. and D.L. Dilcher.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Middle Paleogenepalynology of Central Colombia, South America: a study of pollen and spores from tropical latitudes.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeontographica Abt. B</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeontographica Abt. B</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">87-213</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">258</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>294</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">294</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Jarzen, D.M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Some Maestrichtian palynomorphs and their phytogeographical and palaeoecological implications.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palynology</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palynology</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">29-38</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">2</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>295</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">295</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Johnson, D.V.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A bibliography of major works on the oil palm.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Oil Palm News</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Oil Palm News</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">4-6</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">27</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1983</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>296</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">296</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Johnson, D.V.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Present and potential economic uses of palms in arid and semi-arid areas.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Plants for arid lands</style>
-                               </secondary-title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1985</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Royal Botanic Gardens, Kew</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>284</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">284</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Johnson, D.V.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The making of a dugout canoe from the trunk of the palm</style>
-                                       <style face="italic" font="default" size="100%">Iriartea deltoidea</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">201-205</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">42</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1998</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>297</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">297</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Johnson, M.A.T.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">New chromosome counts in the Palmae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">109-114</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">40</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1985</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>285</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">285</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Jouannic, S., X. Argout, F. Lechauve, C. Fizames, A. Borgel,F. Morcillo, F. Aberlenc-Bertossi, Y. Duval and J. Tregear.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Analysis of expressed sequence tags from oil palm (</style>
-                                       <style face="italic" font="default" size="100%">Elaeis guineensis</style>
-                                       <style face="normal" font="default" size="100%">).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">FEBS Lett.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">FEBS Lett.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">2709-2714</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">579</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2005</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>662</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">662</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Jumelle, H. and H. Perrier de la Bвthie</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">H. Humbert (ed.).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palmiers.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Flore de Madagascar et des Comores. 30e famille.</style>
-                               </secondary-title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1945</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Imprimerie officiella, Atananarivo</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>299</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">299</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kahn, F. and G. Second</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The genus</style>
-                                       <style face="italic" font="default" size="100%">Astrocaryum</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) in Amazonia: classical taxonomy and DNA analysis (AFLP).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Mem. New York Bot. Gard.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Mem. New York Bot. Gard.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">179-184</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">83</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>298</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">298</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kahn, F. and K. Mejia.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A new species of</style>
-                                       <style face="italic" font="default" size="100%">Chelyocarpus</style>
-                                       <style face="normal" font="default" size="100%">(Palmae, Coryphoideae) from Peruvian Amazonia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">69-72</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">32</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1988</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>610</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">610</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kaplan, D.R., N.G. Dengler and R.E. Dengler.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The mechanism of plication inception in palm leaves: histogenetic observations on the palmate leaf of</style>
-                                       <style face="italic" font="default" size="100%">Rhapis excelsa</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Canad. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Canad. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">2999–3106</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">60</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>300</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">300</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kar, R.K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The fossil floras of Kachchh - IV. Tertiary palynostratigraphy.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-279</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">34</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1985</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>301</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">301</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kar, R.K. and M. Kumar</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Neocouperipollis</style>
-                                       <style face="normal" font="default" size="100%">- a new name for</style>
-                                       <style face="italic" font="default" size="100%">Couperipollis</style>
-                                       <style face="normal" font="default" size="100%">Venkatachala and Kar.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">171-174</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">35</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1986</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>286</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">286</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kar, R.K. and M. Bhattacharya</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynology of Rajpardilignite, Cambay Basin and Gujra Dam and Akri lignite, Kutch Basin.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">250-263</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">39</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1992</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>287</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">287</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kaul, K.N.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A palm stem from the Miocene of Antigua, W. I.</style>
-                                       <style face="italic" font="default" size="100%">Phytelephas seewardii</style>
-                                       <style face="normal" font="default" size="100%">sp. nov.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Proc. Linn. Soc. London</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Proc. Linn. Soc. London</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">3-4</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">155</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1943</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>652</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">652</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kaul, K.N.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A silicified palm fruit from Mexico,</style>
-                                       <style face="italic" font="default" size="100%">Manicaria edwardsii</style>
-                                       <style face="normal" font="default" size="100%">sp. nov.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Indian Bot. Soc.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Indian Bot. Soc.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">327–330</style>
-                       </pages>
-                       <number>
-                               <style face="normal" font="default" size="100%">(M.O.P. Iyengar Comm. vol.)</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1946</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>641</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">641</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kaul, K.N.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A palm fruit from Kapurdi (Jodhpur, Rajasthan Desert),</style>
-                                       <style face="italic" font="default" size="100%">Cocos sahnii</style>
-                                       <style face="normal" font="default" size="100%">sp. nov.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Curr. Sci.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Curr. Sci.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">138</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">20</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1951</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>609</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">609</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kedves, M. and E. Bohony</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Observations sur quelques pollens de Palmiers provenant des couches Tertiares de Hongrie.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Pollen and Spores</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Pollen and Spores</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">141–147</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">8</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1966</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>567</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">567</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Khan, A.M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynology of Tertiary sediments from Papua New Guinea. I. New form genera and species from Upper Tertiary sediments.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Austral. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Austral. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">753–781</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">24</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1976</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>571</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">571</key>
-                       </foreign-keys>
-                       <ref-type name="Thesis">32</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Khin Sein, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Fossil Spores of the London Clay.</style>
-                               </title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">401 pp</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1961</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">University of London.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <work-type>
-                               <style face="normal" font="default" size="100%">Unpublished PhD thesis.</style>
-                       </work-type>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>665</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">665</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kiew, R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The natural history of</style>
-                                       <style face="italic" font="default" size="100%">Iguanura geonomiformis</style>
-                                       <style face="normal" font="default" size="100%">Martius, a Malayan undergrowth palmlet.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">3–10</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">16</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1972</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>666</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">666</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kiew, R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The genus</style>
-                                       <style face="italic" font="default" size="100%">Iguanura</style>
-                                       <style face="normal" font="default" size="100%">Bl. (Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gard. Bull. Singapore</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gard. Bull. Singapore</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">191–226</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">28</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1976</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>667</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">667</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kiew, R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">New species and records of</style>
-                                       <style face="italic" font="default" size="100%">Iguanura</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) from Sarawak and Thailand.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">143–145</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">34</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1979</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>605</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">605</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kimnach, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The species of</style>
-                                       <style face="italic" font="default" size="100%">Trachycarpus</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">155–160</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">21</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1977</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>618</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">618</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Koch, B.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Coryphoid palm fruits and seeds from the Danian of Nыgssuaq, West Greenland.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Medd. Grшnland Kommiss. Vidensk. Unders. Grшnland</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Medd. Grшnland Kommiss. Vidensk. Unders. Grшnland</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1–38</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">193</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1972</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>572</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">572</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Konzolovб, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Arecales (Palmae) in the North Bohemian Tertiary.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Sbornik Geol. Paleont. Prada P.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Sbornik Geol. Paleont. Prada P.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">143–158</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">13</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1971</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>587</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">587</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kryshtofovich, A.N.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palm remains (</style>
-                                       <style face="italic" font="default" size="100%">Nipadites burtinii</style>
-                                       <style face="normal" font="default" size="100%">Brongniart) from the Eocene at Viosnessensk in the Odessa Region.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Izv. Geol. Kom</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Izv. Geol. Kom</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">6</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">45</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1927</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>594</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">594</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kryshtofovich, A.N.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Occurrence of the palm,</style>
-                                       <style face="italic" font="default" size="100%">Sabal nipponica</style>
-                                       <style face="normal" font="default" size="100%">, n. sp. in the Tertiary rocks of Hokkaido and Kyushu.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Geol. Soc. Tokyo</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Geol. Soc. Tokyo</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">59–66</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">25</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1918</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>588</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">588</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Krдusel, R</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Nipadites borneensis</style>
-                                       <style face="normal" font="default" size="100%">n. sp. eine fossile palmen frucht aus Borneo.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Senckenbergiana</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Senckenbergiana</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">3–4</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">5</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1923</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>656</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">656</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kubitski, K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Dispersal and distribution in</style>
-                                       <style face="italic" font="default" size="100%">Leopoldinia</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Nordic J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Nordic J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">429–432</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1991</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>634</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">634</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kulkarni, A. and T.S. Mahabalй</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Palmoxylon kamalam</style>
-                                       <style face="normal" font="default" size="100%">Rode from Kondhali, District Nagpur, M.S., and its resemblance with other palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">170–178 +2 pls</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">20</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1971</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>582</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">582</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kulkarni, A.R. and N.R. Phadtare.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Leaf epidermis of</style>
-                                       <style face="italic" font="default" size="100%">Nypa</style>
-                                       <style face="normal" font="default" size="100%">from lignitic beds of Ratnagiri District, Maharashtra.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Geophytology</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Geophytology</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">125–128</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">10</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>584</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">584</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kulkarni, A. R.and N.R. Phadtare.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Pollen of</style>
-                                       <style face="italic" font="default" size="100%">Nypa</style>
-                                       <style face="normal" font="default" size="100%">from lignitic beds of Ratnagiri District, Maharashtra.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Phytomorphology</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">48–51</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">31</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1981</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>623</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">623</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kunth, C.S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Recherche sur les plantes trouvйes dans les tombeaux egyptiens par M. Passalacqua.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ann. Sci. Nat. (Paris)</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">418–423</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">8</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1826</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>592</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">592</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kvacek, J. and A.B. Hermann.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Monocotyledons from the Early Campanian (Cretaceous) of Grьnbach, Lower Austria.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">323–353</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">128</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2004</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>593</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">593</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kvacek, Z.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Bнlina: a window on Early Miocene marshland environments.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">111–123</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">101</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1998</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>653</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">653</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Kьchmeister, H., I. Silberbauer-Gottsberger and G. Gottsberger</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Flowering, pollination, nectar standing crop, and nectarines of</style>
-                                       <style face="italic" font="default" size="100%">Euterpe precatoria</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae), an Amazonian rain forest palm.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Pl. Syst. Evol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Pl. Syst. Evol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">71–97</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">206</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1997</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>601</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">601</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Lacroix, A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Sur la dйcouverte d’un gisement d’empreintes vйgйtales dans les cendres volcaniques anciennes de l’оle de Phira (Santorin).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Compt. Rend. Hebd. Sйances Acad. Sci. Serie D.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Compt. Rend. Hebd. Sйances Acad. Sci. Serie D.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">656–659</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">123</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1896</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>617</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">617</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Lakhanpal, R.N.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Tertiary floras of India and their bearing on the historical geology of the region.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Taxon</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Taxon</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">675–694</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">19</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1970</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>607</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">607</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Lakhanpal, R.N., J.S. Guleria and N. Awasthi</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The fossil floras of Kachchh. III. Tertiary megafossils.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">228–319</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">33</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>302</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">302</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Leon, H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Contribucion al studio de las palmas de Cuba. III. Gйnero Coccothrinax.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Mйm. Soc. Cub. Hist. Nat. Felipe Poey</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Mйm. Soc. Cub. Hist. Nat. Felipe Poey</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">107-156</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">13</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1939</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>303</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">303</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Leon, H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Contribucion al studio de las palmas de Cuba V. Novedades en el genero Hemithrinax.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Mem. Soc. Cub. Hist. Nat. Felipe Poey</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Mem. Soc. Cub. Hist. Nat. Felipe Poey</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">379-383</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">15</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1941</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>596</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">596</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Leon, H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palmaceas.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Flora de Cuba I.</style>
-                               </secondary-title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1946</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Cultural, S.A., La Habana</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>304</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">304</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Lewis, C.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A phylogenetic analysis of the palm subtribe Oncospermatinae (Arecaceae) based on morphological characters.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">78-91</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">54</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>305</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">305</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Lewis, C.E. and J.J. Doyle</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Phylogenetic utility of the nuclear gene malate synthase in the palm family (Arecaceeae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Molec. Phylogen. Evol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Molec. Phylogen. Evol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">409-420</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">19</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>306</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">306</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Lewis, C.E. and J.J. Doyle</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A phylogenetic analysis of tribe Areceae (Arecaceae) using two low-copy nuclear genes.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Pl. Syst. Evol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Pl. Syst. Evol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-17</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">236</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>307</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">307</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Lewis, C.E. and S. Zona.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Leucothrinax morrisii</style>
-                                       <style face="normal" font="default" size="100%">, a new name for a familiar Caribean palm.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">84-88</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">52</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2008</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>308</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">308</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Lim, C.K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Unravelling</style>
-                                       <style face="italic" font="default" size="100%">Iguanura</style>
-                                       <style face="normal" font="default" size="100%">Bl. (Palmae) in Peninsular Malaysia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gard. Bull. Singapore</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gard. Bull. Singapore</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-64</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">48</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1998</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>309</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">309</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Lim, C.K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Unravelling</style>
-                                       <style face="italic" font="default" size="100%">Pinanga</style>
-                                       <style face="normal" font="default" size="100%">Blume (Palmae) in Peninsular Malaysia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Folia Malaysiana</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Folia Malaysiana</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">219-276</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">2</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>310</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">310</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Listabarth, C.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Pollination and pollinator breeding in</style>
-                                       <style face="italic" font="default" size="100%">Desmoncus</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">13-23</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">38</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1994</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>311</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">311</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Listabarth, C.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Pollination of</style>
-                                       <style face="italic" font="default" size="100%">Bactris</style>
-                                       <style face="normal" font="default" size="100%">by</style>
-                                       <style face="italic" font="default" size="100%">Phyllotrox</style>
-                                       <style face="normal" font="default" size="100%">and</style>
-                                       <style face="italic" font="default" size="100%">Epurea</style>
-                                       <style face="normal" font="default" size="100%">. Implications of the palm breeding beetles on pollination at the community level.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Biotropica</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Biotropica</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">69-81</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">28</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1996</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>312</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">312</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Litke, R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Kutikularanalytische Untersuchungen im Niederlausitzer Unterflцz.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palдontol. Abh., Abt. B. Palдobot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palдontol. Abh., Abt. B. Palдobot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">327-413</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">2</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1966</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>313</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">313</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Lleras, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Acrocomia</style>
-                                       <style face="normal" font="default" size="100%">, um gкnero com grande potencial.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Noticбrio</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Noticбrio</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">3-5</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">1</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1985</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>314</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">314</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Loo, A.H.B., J. Dransfield, M.W. Chase and W.J. Baker</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Low copy nuclear DNA, phylogeny and the evolution ofdichogamy in the betel nut palms and their relatives (Arecinae, Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Molec. Phylogen. Evol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Molec. Phylogen. Evol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">598-618</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">39</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2006</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>612</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">612</key>
-                       </foreign-keys>
-                       <ref-type name="Thesis">32</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Look, S.L.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Population genetics and phylogeny of the Malesian palm genus</style>
-                                       <style face="italic" font="default" size="100%">Johannesteijsmannia</style>
-                                       <style face="normal" font="default" size="100%">H.E. Moore.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2007</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">National University of Singapore</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <work-type>
-                               <style face="normal" font="default" size="100%">PhD Thesis</style>
-                       </work-type>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>561</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">561</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Lorente, M.A.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">J. Cramer</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynology and palinofacies of the Upper Tertiary of Venezuela.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Dissertaciones Botanicae Bd 99</style>
-                               </secondary-title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1986</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Berlin, Stuttgart</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>315</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">315</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Louvet, P. and P. Magnier</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Confirmation de la derive ducontinent Africain au Tertiare par la palйobotanique.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">96e Congrиsnational des sociйtйs savants, Toulouse, 1971, sciences</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">177-189</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">5</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1971</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>316</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">316</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ludwig, N.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Acanthophoenix</style>
-                                       <style face="normal" font="default" size="100%">in Rйunion, Mascarene Islands.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">82-98</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">50</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2006</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>317</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">317</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">MacBride, J.F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Flora of Peru.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Publ. Field Mus. Nat. Hist., Bot. Ser.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Publ. Field Mus. Nat. Hist., Bot. Ser.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">321-418</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">13</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1960</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>318</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">318</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Macko, S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Lower Miocene pollen flora from the valley of Klodnica near Gliwece (Upper Silesia).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Prace Wroclawsk. Towarz. Nauk.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Prace Wroclawsk. Towarz. Nauk.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-314</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">88</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1957</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>319</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">319</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Madulid, D.A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A monograph of</style>
-                                       <style face="italic" font="default" size="100%">Plectocomia</style>
-                                       <style face="normal" font="default" size="100%">(Palmae: Lepidocaryoideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kalikasan</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kalikasan</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-94</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">10</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1981</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>320</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">320</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Mahabalй, T.S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Resolution of the artificial palm genus,</style>
-                                       <style face="italic" font="default" size="100%">Palmoxylon</style>
-                                       <style face="normal" font="default" size="100%">: a new approach.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">76-83</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">7</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1958</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>321</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">321</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Mahabalй, T.S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The origin of the coconut.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">238-248</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">25</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>322</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">322</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Mai, D.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Die Mastixioideen-Floren im Tertiдr der Oberlausitz.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palдeontol. Abh., Palaeobot. (Berlin) Abt. B,</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palдeontol. Abh., Palaeobot. (Berlin) Abt. B,</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-192</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">2</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1964</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>323</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">323</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Mai, D.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Fossile Frьchte und Samen des Geiseltales aus den Mitteleozдn.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Abh. Zentr. Geol. Inst., Palдontol. Abh.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Abh. Zentr. Geol. Inst., Palдontol. Abh.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">93-149</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">26</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1976</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>324</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">324</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Mai, D.H. and H. Walther</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Die Floren der Haselbacher Serie im WeiЯelster-Becken (Bezirk Leipzig, DDR).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Abh. Staatl. Mus. Min. Geol. (Dresden)</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Abh. Staatl. Mus. Min. Geol. (Dresden)</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-200</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">28</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>325</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">325</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Maloney, B.K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Borassodendron</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) in the Southeast Asian pollen record.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Blumea</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Blumea</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">427-432</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">45</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2000</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>326</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">326</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Martelli, U.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Pelagodoxa henryana</style>
-                                       <style face="normal" font="default" size="100%">Becc., palma della Isole Marquesas.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Nuovo Giorn. Bot. Ital. n.s.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Nuovo Giorn. Bot. Ital. n.s.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">243-250</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">39</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1932</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>327</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">327</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Maury, C.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">O Cretaceo da Parahyba do Norte. As floras do Cretaceo Superior da America do Sul.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Monogr. Serv. Geol. Mus. Brasil</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Monogr. Serv. Geol. Mus. Brasil</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-305</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">8</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1930</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>566</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">566</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">McClatchey, W.C.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A. and F. Borchsenius (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Phylogenetic analysis of morphological characters of</style>
-                                       <style face="italic" font="default" size="100%">Metroxylon</style>
-                                       <style face="normal" font="default" size="100%">section</style>
-                                       <style face="italic" font="default" size="100%">Coelococcus</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) and resulting implications for studies of other Calamoideae genera.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Evolution, variation and classification of palms.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">285–306</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">The New York Botanical Garden Press, Bronx, NY.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>611</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">611</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">McKamey, L.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Secret of the Orient: dwarf</style>
-                                       <style face="italic" font="default" size="100%">Rhapis excelsa</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1983</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Grunwald Printing Co., Corpus Christi, Texas.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>329</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">329</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Mehrotra, R.C., R.P. Tiwari and B.I. Mazumder.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Nypa megafossils from the Tertiary sediments of northeast India.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Geobios</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Geobios</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">83-92</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">36</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2003</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>330</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">330</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Migliaccio, C.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The genus</style>
-                                       <style face="italic" font="default" size="100%">Heterospathe</style>
-                                       <style face="normal" font="default" size="100%">in cultivation.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">15-21</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">45</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>331</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">331</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Mildenhall, D.C. and D.T. Pocknall.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Miocene-Pleistocenespores and pollen from Central Otago, South Island, New Zealand.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeontol. Bull. New Zealand Geol. Surv.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeontol. Bull. New Zealand Geol. Surv.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-128</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">59</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1989</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>332</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">332</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Miller, R.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The versatile sugar palm.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">115-147</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">8</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1964</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>333</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">333</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Misra, B.K., A. Singh and C.G.K. Ramanujam</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Trilatiporate pollen from Indian Palaeogene and Neogene sequences: evolution, migration and continental drift.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">331-352</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">91</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1996</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>334</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">334</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moegenburg, S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The functions of hooked fibers on</style>
-                                       <style face="italic" font="default" size="100%">Euterpe</style>
-                                       <style face="normal" font="default" size="100%">endocarps.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">16-20</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">47</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2003</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>335</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">335</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Mogea, J.P.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The flabellate species of</style>
-                                       <style face="italic" font="default" size="100%">Salacca</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Reinwardtia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Reinwardtia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">461-479</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">9</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>336</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">336</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Mogea, J.P.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Four new species of</style>
-                                       <style face="italic" font="default" size="100%">Arenga</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) from Indonesia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Reinwardtia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Reinwardtia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">181-189</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">12</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2004</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>337</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">337</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Monteillet, J. and J.R. Lappartient</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Fruits et graines du Crйtace superieur des carriers de Paki (Sйnйgal).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">331-344</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">34</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1981</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>338</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">338</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Synopses of various genera of Arecoideae. 22.</style>
-                                       <style face="italic" font="default" size="100%">Neoveitchia</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">537-540</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">8</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1957a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>339</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">339</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Synopses of various genera of Arecoideae. 23.</style>
-                                       <style face="italic" font="default" size="100%">Reinhardtia</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">541-576</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">8</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1957b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>340</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">340</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Satakentia</style>
-                                       <style face="normal" font="default" size="100%">- a new genus of Palmae-Arecoideae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">3-12</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">13</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1969a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>341</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">341</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">New palms from the Pacific II.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">67-76</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">13</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1969b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>342</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">342</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">New palms from the Pacific III.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">99-108</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">13</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1969c</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>343</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">343</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A synopsis of the genus</style>
-                                       <style face="italic" font="default" size="100%">Physokentia</style>
-                                       <style face="normal" font="default" size="100%">(Palmae-Arecoideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">120-136</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">13</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1969d</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>344</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">344</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The genus</style>
-                                       <style face="italic" font="default" size="100%">Juania</style>
-                                       <style face="normal" font="default" size="100%">(Palmae: Arecoideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">385-393</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">10</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1969e</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>345</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">345</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The genus</style>
-                                       <style face="italic" font="default" size="100%">Synechanthus</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">10-19</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">15</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1971</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>346</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">346</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Chelyocarpus</style>
-                                       <style face="normal" font="default" size="100%">and its allies</style>
-                                       <style face="italic" font="default" size="100%">Cryosophila</style>
-                                       <style face="normal" font="default" size="100%">and</style>
-                                       <style face="italic" font="default" size="100%">Itaya</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">67-88</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">16</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1972</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>347</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">347</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The genus</style>
-                                       <style face="italic" font="default" size="100%">Hyophorbe</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">212-245</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>348</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">348</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Tectiphiala</style>
-                                       <style face="normal" font="default" size="100%">, a new genus of Palmae from Mauritius.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">284-290</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>659</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">659</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Smith, A.C.</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Arecaeae</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Flora Vitiensis Nova 1.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">392–438</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1979</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Pacific Tropical Garden, Lawaii, Kauai, Hawaii.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>349</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">349</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A new species of</style>
-                                       <style face="italic" font="default" size="100%">Wettinia</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) from Ecuador.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">42-43</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">26</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>350</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">350</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E. and A.B. Anderson</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Ceroxylon alpinum</style>
-                                       <style face="normal" font="default" size="100%">and</style>
-                                       <style face="italic" font="default" size="100%">Ceroxylon quindiuense</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">168-185</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1976</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>565</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">565</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E. and F.R. Fosberg.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The palms of Micronesia and the Bonin Islands</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">423–478</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">8</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1956</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>353</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">353</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E. and J. Dransfield</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A new species of</style>
-                                       <style face="italic" font="default" size="100%">Wettinia</style>
-                                       <style face="normal" font="default" size="100%">and notes on the genus.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Notes Roy. Bot. Gard, Edinburgh</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Notes Roy. Bot. Gard, Edinburgh</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">259-267</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">36</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>351</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">351</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E. and L.J. Guйho</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Acanthophoenix and</style>
-                                       <style face="italic" font="default" size="100%">Dictyosperma</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) in the Mascarene Islands.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-16</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">12</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>352</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">352</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E. and L.J. Guйho</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Flore des Mascareignes.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palmiers</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palmiers</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-34</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">189</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>595</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">595</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E. and N.W. Uhl.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The monocotyledons: their evolution and comparative biology. VI. Palms and the origin and evolution of monocotyledons.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Quart. Rev. Biol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Quart. Rev. Biol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">414–436</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">48</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1973</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>354</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">354</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moore, H.E. and N.W. Uhl</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The indigenous palms of New Caledonia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Allertonia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Allertonia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">313-402</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">3</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>636</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">636</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moraes, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Allagoptera</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Fl. Neotrop. Monogr</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1–34</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">73</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1996a</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">New York Botanical Garden, New York.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>355</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">355</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moraes, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Novelties of the genera</style>
-                                       <style face="italic" font="default" size="100%">Parajubaea</style>
-                                       <style face="normal" font="default" size="100%">and</style>
-                                       <style face="italic" font="default" size="100%">Syagrus</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) from Interandean valleys of Bolivia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Novon</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Novon</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">85-92</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">6</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1996b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>356</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">356</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moraes, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Flora de Palmeras de Bolivia.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2004</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Herbario Nacionalde Bolivia, La Paz, Bolivia.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>645</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">645</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moraes, M. and A. Henderson</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The genus Parajubaea (Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">92–99</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">42</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1990</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>647</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">647</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Mora-Urpi, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">El Pejibaye (</style>
-                                       <style face="italic" font="default" size="100%">Bactris gasipaes</style>
-                                       <style face="normal" font="default" size="100%">H.B.K.): origen, biologia floral y manejo agronуnomico.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palmeras poco utilizadas de America Tropical: Informe de la Reuniуn de Consulta Organizada por FAO y Catie.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">118–160</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1983</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Turrialba, Costa Rica</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>357</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">357</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Morcote-Rios, G. and R. Bernal</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Remains of palms (Palmae) at archaeological sites in the New World: a review.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. Rev. (Lancaster)</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. Rev. (Lancaster)</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">309-350</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">67</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>358</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">358</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Morley, R.J.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">R. Hall and J. D. Holloway (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynological evidence for Tertiary plant dispersals in the SE Asian region in relation to plate tectonics and dispersal.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Biogeography and geological evolution of SE Asia. Backhuys,Leiden</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">211-234</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1998</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>359</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">359</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Morley, R.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Origin and evolution of tropical rain forests.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2000</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Wiley, Chichester.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>591</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">591</key>
-                       </foreign-keys>
-                       <ref-type name="Thesis">32</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Morrow, L.O.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Floral morphology and anatomy of certain Coryphoideae (Palmae).</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1965</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Cornell University.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <work-type>
-                               <style face="normal" font="default" size="100%">Ph.D. thesis</style>
-                       </work-type>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>360</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">360</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Moya Lopez, C.E. and A. Leiva</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Gaussia spirituana</style>
-                                       <style face="normal" font="default" size="100%">Moya et Leiva, sp. nov.: una nueva palma de Cuba Central.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Revista Jard. Bot. Nac. Univ. Habana</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Revista Jard. Bot. Nac. Univ. Habana</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">15-20</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">12</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1991</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>361</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">361</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Muller, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynological contributions to the history of Tertiary vegetation in N. W. Borneo.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Xth Int. Bot. Congress, Edinburgh. Abstracts: 271.</style>
-                               </secondary-title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1964</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>362</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">362</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Muller, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynology of the Pedawan and Plateau sandstone formations (Cretaceous - Eocene) in Sarawak, Malaysia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Micropaleontology</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Micropaleontology</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-37</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">14</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1968</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>363</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">363</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Muller, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynological evidence for change in geomorphology, climate and vegetation in the Mio-Pliocene of Malesia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Trans. II Aberdeen-Hull Symp. Malesian Ecol.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">6-16</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">Miscell. Series no 13</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1972</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Univ. Hull. Dept. Geograph.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>364</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">364</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Muller, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Reflections on fossil palm pollen.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Proc. IV Palynol. Conf. Lucknow I</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">568-579.</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1979</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>365</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">365</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Muller, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Fossil pollen records of extant angiosperms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. Rev. (Lancaster)</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. Rev. (Lancaster)</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-142</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">47</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1981</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>367</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">367</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Murray, S.G.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The formation of endocarp in palm fruits.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">91-102</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">17</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1973</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>366</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">366</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Muсiz, O.and A. Borhidi.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Catбlogo de las palmas de Cuba.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Acta Bot. Hung.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Acta Bot. Hung.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">309-345</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">28</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>93</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">93</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Borhidi A. and O. Muсiz.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Adiciones al catбlogo de las palmas de Cuba.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Acta Bot. Hung.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Acta Bot. Hung.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">225-230</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">31</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1985</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>328</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">328</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Mйdus, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynologie de sйdiments Tertiaires du Sйnйgal mйridional.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Pollen and Spores</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Pollen and Spores</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">545-601</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">17</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1975</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>368</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">368</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Newton, C.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Le palmier Argoun:</style>
-                                       <style face="italic" font="default" size="100%">Medemia argun</style>
-                                       <style face="normal" font="default" size="100%">(Mart.) Wьrttemb ex Wendl.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Encyclopйdie religieuse de l’Univers vegetal Croyances phytoreligieuses de l’Egypte ancienne (ERUV) II Or Monsp</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Encyclopйdie religieuse de l’Univers vegetal Croyances phytoreligieuses de l’Egypte ancienne (ERUV) II Or Monsp</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">141-153</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">XI</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>369</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">369</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Noblick, L.R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Syagrus cearensis</style>
-                                       <style face="normal" font="default" size="100%">, a twin-stemmed new palm from Brazil.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">70-76</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">48</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2004a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>370</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">370</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Noblick, L.R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Syagrus vermicularis</style>
-                                       <style face="normal" font="default" size="100%">, a fascinating new palm from northern Brazil.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">109-116</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">48</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2004b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>371</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">371</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Noblick, L.R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The grassy</style>
-                                       <style face="italic" font="default" size="100%">Butia</style>
-                                       <style face="normal" font="default" size="100%">: two new species and a new combination.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">167-178</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">50</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2006</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>372</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">372</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Norton, S.A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Betel: consumption and consequences.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Amer. Acad. Dermatol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Amer. Acad. Dermatol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">81-88</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">38</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1998</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>373</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">373</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Norup, M.V.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Alsmithia</style>
-                                       <style face="normal" font="default" size="100%">subsumed in</style>
-                                       <style face="italic" font="default" size="100%">Heterospathe</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae, Arecoideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Novon</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Novon</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">455-457</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">15</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2005</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>374</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">374</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Norup, M.V., J. Dransfield, M.W. Chase, A.S. Barfod, E.S. Fernando and W.J. Baker.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Homoplasious character combinations and generic delimitations: a case study from the Indo-Pacific arecoid palms (Arecaceae: Areceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1065-1080</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">93</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2006</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>375</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">375</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ollivier-Pierre, M.-F., C. Gruas-Cavagnetto, E. Roche and M. Schuler.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Elements de flore de type tropical et variations climatiques au Paleogene dans quelques basins d’Europenord-occidentale.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Mйm. Trav. Inst. Montpellier Йcole Prat. Hautes Йtudes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Mйm. Trav. Inst. Montpellier Йcole Prat. Hautes Йtudes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">173-205</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">17</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1987</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>376</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">376</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Otedoh, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The African origin of</style>
-                                       <style face="italic" font="default" size="100%">Raphia taedigera</style>
-                                       <style face="normal" font="default" size="100%">- Palmae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Nigerian Field</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Nigerian Field</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">11-16</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">42</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1977</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>377</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">377</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Otedoh, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of the genus</style>
-                                       <style face="italic" font="default" size="100%">Raphia</style>
-                                       <style face="normal" font="default" size="100%">Beauv. (Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Nigerian Inst. Oil Palm Res.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Nigerian Inst. Oil Palm Res.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">145-189</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">6</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>616</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">616</key>
-                       </foreign-keys>
-                       <ref-type name="Thesis">32</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Pallot, J.M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Plant microfossils from the Isle of Wight</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1961</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">University of London</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <work-type>
-                               <style face="normal" font="default" size="100%">Unpublished PhD thesis</style>
-                       </work-type>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>379</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">379</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Pan, A.D., B.F. Jacobs, J. Dransfield and W.J. Baker.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The fossil history of palms in Africa and new records from the Late Oligocene (~28 - 27 Myr) of northwestern Ethiopia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">69-81</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">151</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2006</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>380</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">380</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Parthasarathy, M.V.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Observations on metaphloem in the vegetative parts of palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1140-1168</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">55</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1968</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>381</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">381</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Parthasarathy, M.V.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Ultrastructure of phloem in palms. III. Mature phloem.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Protoplasma</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Protoplasma</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">265-315</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">79</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1974</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>642</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">642</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Patil, G.V. and E.V. Uphadhye</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Sharma, A.K., G.C. Mitra and M. Banerjee (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Cocos</style>
-                                       <style face="normal" font="default" size="100%">-like fruit from Mohgaonkalan and its significance towards the stratigraphy of Mohgaonkalan Intertrappean beds.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Proc. Symp. Evolutionary Botany and Biostratigraphy. Univ. Calcutta 1979.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">541–554</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Today &amp; Tomorrow’s Printers &amp; Publ., New Delhi</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>646</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">646</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Pesce, C.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Oil palms and other oil seeds of the Amazon. Translated by D.V. Johnson.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1941</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Reference Publ. Inc., Algonac, Michigan.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>382</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">382</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Pflanzl, G.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Das Alter der Braunkohlen des Meissners der Flцze 2 und 3 des Hirschberges und eines benachbarten Kohlenlagers bei Laudenbach.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Hess. Land. Bodenforsch. (Wiesbaden)</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Notizbl. Hess. Land. Bodenforsch. (Wiesbaden)</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">232-244</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">84</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1956</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>383</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">383</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Phadtare, N.R.and A.R. Kulkarni.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynological investigations of Ratnagiri lignite, Maharashtra.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Geophytology</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Geophytology</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">158-179</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">10</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>384</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">384</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Phadtare, N.R.and A.R. Kulkarni.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Affinity of the genus Quilonipollenites with the Malaysian palm Eugeissona Griffith.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Pollen and Spores</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Pollen and Spores</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">217-226</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">26</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>385</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">385</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Pinheiro, C.U.B.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Germination strategies of palms: the case of</style>
-                                       <style face="italic" font="default" size="100%">Schippia concolor</style>
-                                       <style face="normal" font="default" size="100%">Burret in Belize.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">519-527</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">53</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>657</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">657</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Pintaud, J.-C.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A. and F. Borchsenius (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A cladistic analysis of the Archontophoenicinae (Palmae, Areceae) based on morphological and anatomical characters.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Evolution, variation and classification of palms.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">279–284</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999a</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">The New York Botanical Garden Press, Bronx, NY.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>658</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">658</key>
-                       </foreign-keys>
-                       <ref-type name="Thesis">32</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Pintaud, J.-C.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Phylogйnie, biogйographie et йcologie des palmiers de Nouvelle-Calйdonie</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999b</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Universitй Paul Sabatier, Toulouse</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <work-type>
-                               <style face="normal" font="default" size="100%">Ph.D. thesis</style>
-                       </work-type>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>388</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">388</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Pintaud, J.-C. and D.R. Hodel</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of</style>
-                                       <style face="italic" font="default" size="100%">Kentiopsis</style>
-                                       <style face="normal" font="default" size="100%">, a genus endemic to New Caledonia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">32-33</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">42</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1998a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>389</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">389</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Pintaud, J.-C. and D.R. Hodel</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Three new species of</style>
-                                       <style face="italic" font="default" size="100%">Burretiokentia</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">152-155</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">42</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1998b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>390</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">390</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Pintaud, J.-C. and H. Setoguchi</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Satakentia</style>
-                                       <style face="normal" font="default" size="100%">revisited.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">194-199</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">43</style>
-                       </volume>
-                       <number>
-                               <style face="normal" font="default" size="100%">(4)</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>387</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">387</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Pintaud, J.-C. and B. Millan.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Vegetative transformation of inflorescences in</style>
-                                       <style face="italic" font="default" size="100%">Socratea salazarii</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">86-89</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">48</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2004</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>386</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">386</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Pintaud, J.-C. and W.J. Baker</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of the palm genera (Arecaceae) of New Caledonia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">61-73</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">63</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2008</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>391</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">391</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Plotkin, M.J. and M.J. Balick</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Medicinal uses of South American palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Ethnopharmacology</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Ethnopharmacology</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">157-179</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">10</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>392</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">392</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Poinar, G. JR.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Fossil flowers in Dominican and Mexican amber.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">57-61</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">138</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>393</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">393</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Poinar, G. JR.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Fossil flowers in Dominican and Baltic amber.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">361-367</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">139</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>394</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">394</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Pole, M.S. and M.K. McPhail.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Eocene</style>
-                                       <style face="italic" font="default" size="100%">Nypa</style>
-                                       <style face="normal" font="default" size="100%">from Regatta Point, Tasmania.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">55-67</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">92</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1996</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>395</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">395</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Poroniй, R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Sporologie der eozдnen Kohle von Kalewa in Burma.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Senckenberg. Leth.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Senckenberg. Leth.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">451-481</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">41</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1960</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>396</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">396</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Potter, F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Investigations of angiosperms from the Eocene of southeastern North America: pollen assemblages from Miller Pit, Henry County, Tennessee.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeontographica Abt. B Palдophytol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeontographica Abt. B Palдophytol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">44-96</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">157</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1976</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>397</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">397</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Prakash, U. and K. Ambwani</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A petrified Livistona-like palm stem,</style>
-                                       <style face="italic" font="default" size="100%">Palmoxylon livistonoides</style>
-                                       <style face="normal" font="default" size="100%">sp. nov. from the Deccan Intertrappean beds of India.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">297-306</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">26</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>398</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">398</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Putz, F.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Biology and human use of</style>
-                                       <style face="italic" font="default" size="100%">Leopoldinia piassaba</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">149-156</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">23</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1979</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>399</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">399</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Quero, H.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Coccothrinax readii</style>
-                                       <style face="normal" font="default" size="100%">, a new species from the peninsula of Yucatan, Mexico.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">118-124</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">24</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>400</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">400</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Quero, H.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Pseudophoenix sargentii</style>
-                                       <style face="normal" font="default" size="100%">in the Yucatan Peninsula, Mexico.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">63-72</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">25</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1981</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>401</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">401</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Quero, H.J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Sabal gretheriae</style>
-                                       <style face="normal" font="default" size="100%">, a new species of palm from the Yucatan Peninsula, Mexico.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">219-224</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">35</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1991</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>402</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">402</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Quero, H.J. and R.W. Read</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of the palm genus</style>
-                                       <style face="italic" font="default" size="100%">Gaussia</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">145-154</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1986</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>404</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">404</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Rakotoarinivo, M., T. Ranarivelo and J. Dransfield.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A new species of</style>
-                                       <style face="italic" font="default" size="100%">Beccariophoenix</style>
-                                       <style face="normal" font="default" size="100%">from the High Plateau of Madagascar.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">63-75</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">51</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2007</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>405</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">405</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ramanujam, C.G.K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Palmoxylon arcotense</style>
-                                       <style face="normal" font="default" size="100%">sp. nov., a fossil palm resembling the living genus</style>
-                                       <style face="italic" font="default" size="100%">Livistona</style>
-                                       <style face="normal" font="default" size="100%">from South India.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">89-91</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">2</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1953</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>406</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">406</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ramanujam, C.G.K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynology of the Miocene lignite from South Arcot District, Madras, India.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Pollen and Spores</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Pollen and Spores</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">149-203</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">8</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1966</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>410</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">410</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ramanujam, C.G.K., and P.R. Reddy.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynoflora of Neyveli lignite - floristic and palaeoenvironmental analysis.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Palynol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Palynol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">58-74</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">20</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>408</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">408</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ramanujam, C.G.K., H. Ramakrishna and C. Mallesham.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynoassemblage of the subsurface Miocene sediments of the East Coast of Southern India - its floristic and environmental significance.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Proc. Spl. Ind. Geo. Con., Poona</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">113-117</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1986</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>407</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">407</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ramanujam, C.G.K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynology of the Neogene Warkalli Beds of Kerala State in South India.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Palaeontol. Soc. India</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Palaeontol. Soc. India</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">26-46</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">32</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1987</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>414</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">414</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ramanujam, C.G.K., P.R. Reddy and G.M. Rao.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynoassemblages of the subsurface Tertiary strata at Pattanakad, Alleppey District, Kerala</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Palaeontol. Soc. India</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Palaeontol. Soc. India</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">51-58</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">36</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1991</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>415</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">415</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ramanujam, C.G.K., P.R. Reddy and G.M. Rao.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynology of Tertiary subcrops of Kalaikode Borewell in KeralaState.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Indian J. Earth Sci.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Indian J. Earth Sci.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">18-27</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">19</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1992</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline-ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>411</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">411</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ramanujam, C.G.K., P.R. Reddy and H. Ramakrishna.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Dicolpate palm pollen from the Neogene deposits of Godavari - Krishna Basin, A.P.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Palynol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Palynol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">129-136</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">33</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1997</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>412</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">412</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ramanujam, C.G.K., P.R. Reddy and H. Ramakrishna</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Botanical affinities of Jacobipollenites (Ramanujam) Singh &amp; Misra.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Geophytology</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Geophytology</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">111-113</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">27</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1998</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>413</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">413</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ramanujam, C.G.K., P.R. Reddy and H. Ramakrishna.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Pollen types of Arecaceae from the Tertiary deposits of SouthernIndia - a critical appraisal.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Swamy Bot. Cl.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Swamy Bot. Cl.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">51-63</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">18</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>409</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">409</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ramanujam, C.G.K. and  K.P. Rao.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A palynological approach to the study of Warkalli deposits of Kerala in South India.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Geophytology</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Geophytology</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">160-164</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">7</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1977</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>416</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">416</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Rao, K.P. and C.G.K. Ramanujam.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A palynologicalapproach to the study of Quilon Beds of Kerala State in South India.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Curr. Sci.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Curr. Sci.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">730-732</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">44</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1975</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>417</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">417</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Rao, K.P. and C.G.K. Ramanujam.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynology of the Neogene Quilon Beds of Kerala State in South India I. Spores of pteridophytes and pollen of monocotyledons.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">397-427</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">25</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>419</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">419</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Rauwerdink, J.B.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">An essay on</style>
-                                       <style face="italic" font="default" size="100%">Metroxylon</style>
-                                       <style face="normal" font="default" size="100%">, the sago palm.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">165-180</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">30</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1985</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>420</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">420</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Ravololonanahary, H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The conservation status of</style>
-                                       <style face="italic" font="default" size="100%">Satranala decussilvae</style>
-                                       <style face="normal" font="default" size="100%">in the Ianobe Valley, Masoala National Park, Madagascar.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">145-148</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">43</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>421</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">421</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Read, R.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A study of</style>
-                                       <style face="italic" font="default" size="100%">Pseudophoenix</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">169-213</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">10</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1968</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>422</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">422</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Read, R.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Some notes on</style>
-                                       <style face="italic" font="default" size="100%">Pseudophoenix</style>
-                                       <style face="normal" font="default" size="100%">and a key to the species.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">13-22</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">13</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1969</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>423</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">423</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Read, R.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The genus</style>
-                                       <style face="italic" font="default" size="100%">Thrinax</style>
-                                       <style face="normal" font="default" size="100%">(Palmae: Coryphoideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Smithsonian Contr. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Smithsonian Contr. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-98</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">19</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1975</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>644</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">644</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Read, R.W.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">R.A. Howard (ed.)</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palmae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Flora of the Lesser Antilles 3.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">320–368</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1979</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Arnold Arboretum, Harvard Univ.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>424</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">424</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Read, R.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Notes on Palmae, I.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Phytologia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Phytologia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">285-287</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">46</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>425</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">425</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Read, R.W. and L.J. Hickey.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revised classification of fossil palm and palm-like leaves.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Taxon</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Taxon</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">129-137</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">21</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1972</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>426</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">426</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Rechinger, K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Plantae novae pacificae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Repert. Spec. Nov. Reg. Veg.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Repert. Spec. Nov. Reg. Veg.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">232</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">4</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1907</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>427</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">427</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Reddy, G.N. and A.R. Kulkarni.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Developmental fruit anatomy of some coryphoid palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Geophytology</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Geophytology</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">233-244</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">12</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>428</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">428</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Reddy, G.N. and A.R. Kulkarni</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Contribution to the anatomy of palm fruits - Cocosoid palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Proc. Indian Acad. Sci., Pl. Sci.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Proc. Indian Acad. Sci., Pl. Sci.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">153-165</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">95</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1985</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>429</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">429</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Reddy, G.N. and A.R. Kulkarni</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Megasporogenesis in</style>
-                                       <style face="italic" font="default" size="100%">Cocos nucifera</style>
-                                       <style face="normal" font="default" size="100%">L. - a reinvestigation.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Curr. Sci.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Curr. Sci.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">156-157</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">58</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1989</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>597</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">597</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Reid, E.M. and M.E.J. Chandler</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The Bembridge Flora. Volume 1.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1926</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">British Museum (Natural History) London</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>430</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">430</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Reid, E.M.and M.E.J. Chandler</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The flora of the London Clay.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Brit. Mus. (Nat. Hist.)</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">561 pp. + 35 pls</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">Publication 8.</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1933</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>431</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">431</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Rendle, A.B.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Revision of the genus</style>
-                                       <style face="italic" font="default" size="100%">Nipadites</style>
-                                       <style face="normal" font="default" size="100%">Bowerbank.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Linn. Soc., Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Linn. Soc., Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">143-154</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">30</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1894</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>640</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">640</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Rigby, J.F.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Pant, D.D. (ed.).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A fossil</style>
-                                       <style face="italic" font="default" size="100%">Cocos nucifera</style>
-                                       <style face="normal" font="default" size="100%">L. fruit from the latest Pliocene of Queensland Australia.</style>
-                               </title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">379–381</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1995</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Birbal Sahni Centenary Volume. Allahabad University</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>432</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">432</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Robertson, B.L.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Embryology of</style>
-                                       <style face="italic" font="default" size="100%">Jubaeopsis caffra</style>
-                                       <style face="normal" font="default" size="100%">Becc.: 1. Microsporangium, microsporogenesis and microgametogenesis.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. S. African Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. S. African Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">97-108</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">42</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1976a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>433</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">433</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Robertson, B.L.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Embryology of</style>
-                                       <style face="italic" font="default" size="100%">Jubaeopsis caffra</style>
-                                       <style face="normal" font="default" size="100%">Becc.: 2. Megasporangium, megasporogenesis and megagametogenesis.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J.S. African Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J.S. African Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">173-184</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">42</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1976b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>573</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">573</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Roche, E. ..</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Etude palynologique (pollen et spores) de l’Eocene de Belgique.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Service Geologique de Belgique - Professional paper No 193.</style>
-                               </secondary-title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Ministere des Affaires Economiques</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>434</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">434</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Roncal, J., J. Francisco-Ortega, C.B. Asmussen and C.E. Lewis</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Molecular phylogenetics of tribe Geonomeae (Arecaceae) using nuclear DNA sequences of phosphoribulokinaseand RNA polymerase II.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Syst. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">275-283</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">30</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2005</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>435</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">435</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Roncal, J., S. Zona and C.E. Lewis</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Molecular phylogenetic studies of Caribbean palms (Arecaceae) and their relationships to biogeography and conservation.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. Rev.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. Rev.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">78-102</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">74</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2008</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>628</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">628</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Roth, I.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Leaf structure of a Venezuelan cloud forest in relation to the microclimate.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Handbuch der Pflanzenanatomie XIV, 1.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">244 pp.</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1990</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Gebrьder Borntraeger: Berlin &amp; Stuttgart</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>436</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">436</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Rotinsulu, W.C.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The use of</style>
-                                       <style face="italic" font="default" size="100%">Pigafetta elata</style>
-                                       <style face="normal" font="default" size="100%">for making furniture in Indonesia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">39-41</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">45</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>437</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">437</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Rowen N., S. Isnard and T. Speck.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Diversity of mechanical architectures in climbing plants: an evolutionary perspective.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Pl. Growth Regulat.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Pl. Growth Regulat.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">108-128</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">23</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2004</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>438</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">438</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Roy, S.K. and P.K. Ghosh</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">On the occurrence of</style>
-                                       <style face="italic" font="default" size="100%">Palmoxylon coronatum</style>
-                                       <style face="normal" font="default" size="100%">in West Bengal, India.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ameghiniana</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ameghiniana</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">130-134</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">17</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>439</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">439</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Rudall, P.J., K. Abranson, J. Dransfield and W. Baker.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Floral anatomy in</style>
-                                       <style face="italic" font="default" size="100%">Dypsis</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae-Areceae): a case of complex synorganization and stamen reduction.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">115-133</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">143</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2003</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>440</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">440</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Rull, V.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Biogeographical and evolutionary considerations of</style>
-                                       <style face="italic" font="default" size="100%">Mauritia</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae), based on palynological evidence.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">109-122</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">100</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1998</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>441</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">441</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Russell, T.A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The</style>
-                                       <style face="italic" font="default" size="100%">Raphia</style>
-                                       <style face="normal" font="default" size="100%">palms of West Africa.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">173-196</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">19</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1965</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>403</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">403</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Rбkosi, L.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A Magyarorszбgi Eocйn mangrove palinolуgiaia datai.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">M. Бll. Fцld. Int. Йvi Jel.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">M. Бll. Fцld. Int. Йvi Jel.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">357-372 + summary in French, pp. 372-374.</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1976</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>418</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">418</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Rбsky, K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Fosszilis nцvйnyek a Martinovics-hegyi (Budapest) felsцecйnbуl.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Fцldt. Kцzl.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Fцldt. Kцzl.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">295-298</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">86</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1956</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>442</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">442</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Sahni, B.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A silicified</style>
-                                       <style face="italic" font="default" size="100%">Cocos</style>
-                                       <style face="normal" font="default" size="100%">-like palm stem, Palmoxylon (Cocos) sundaram, from the Deccan Intertrappean beds.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Indian Bot. Soc.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Indian Bot. Soc.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">361-374</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">M.O.P. Iyengar Comm. vol.</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1946</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>443</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">443</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Sahni, B.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Revisions of Indian fossil plants. III. Monocotyledons.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Monograph 1</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-89</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1964</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Birbal Sahni Institute of Palaeobotany, Lucknow</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>444</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">444</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Salard-Cheboldaeff, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Sur la palynoflore Maestrichtienne et Tertiare du bassin sйdimentaire littoral du Cameroun.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Pollen and Spores</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Pollen and Spores</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">215-260</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">10</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>445</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">445</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Salard-Cheboldaeff, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynologie Maestrichtienne et Tertiaire du Cameroun. Etude qualitative et repartition verticaleds principales espиces.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">365-387</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">28</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1979</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>446</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">446</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Salard-Cheboldaeff, M.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynologie Maestrichtienne et Tertiaire du Cameroun.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">401-439</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">32</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1981</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>447</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">447</key>
-                       </foreign-keys>
-                       <ref-type name="Conference Proceedings">10</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Salujha, S.K., G.S. Kindra and K. Rehman.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynology ofthe South Shillong Front, part I: The Palaeogene of Garo Hills.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Proc. Sem. Paleopalynol. Ind. Stratigr. 1971, Calcutta</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">265-291</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1973a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>448</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">448</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Salujha, S.K., K. Rehman and G.S. Kindra.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Distinction between the Bhuban and Bokabil sediments on the southern edge of Shillong Plateau based on palynofossil assemblages.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bull. O.N.G.C.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bull. O.N.G.C.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">109-117</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">10</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1973b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>449</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">449</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Sanders, R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Cladistics of</style>
-                                       <style face="italic" font="default" size="100%">Bactris</style>
-                                       <style face="normal" font="default" size="100%">(Palmae): survey of characters and refution of Burret’s classification.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Selbyana</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Selbyana</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">105-133</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">12</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1991</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>450</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">450</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Saporta, G. Le Marquis de.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Йtudes sur la vйgйtation du Sud-Est de la France a l’йpoque Tertiare. Armissan prиs Narbonne (Aude).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ann. Sci. Nat., Bot. Sйr. 5,</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ann. Sci. Nat., Bot. Sйr. 5,</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">5-264</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">4</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1865</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>451</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">451</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Saporta, G. Le Marquis de.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Essai descriptiv sur plantes fossiles des arkoses de Brives pres de Puy-en-Velay.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ann. Soc. Agric. Puy</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ann. Soc. Agric. Puy</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-72</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">33</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1878</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>452</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">452</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Saporta, G. Le Marquis de.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Le Monde des Plantes avant l’Apparition de l’Homme.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">G. Masson, Paris.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">G. Masson, Paris.</style>
-                               </full-title>
-                       </periodical>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1879</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>453</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">453</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Saporta, G. Le Marquis de.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Des palmiers fossils.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rev. Gйn. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rev. Gйn. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">229-243</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">1</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1889</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>454</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">454</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Sarma, P.S., P.R. Reddy and K. Srisailam.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynomorphs referable to monocotyledons from the Neyveli lignite deposit of Tamilnadu.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Indian J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Indian J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">201-209</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">7</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>455</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">455</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Savolainen, V., M.-C. Anstett, C. Lexer, I. Hutton, J.J. Clarkson, M.V. Norup, M.P. Powell, D. Springate, N. Salamin and W.J. Baker.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Sympatric speciation in palms on an oceanic island.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Nature</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Nature</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">210-213</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">441</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2006</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>456</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">456</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Saw, L.G.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of</style>
-                                       <style face="italic" font="default" size="100%">Licuala</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) in the Malay Peninsula.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Sandakania</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Sandakania</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-95</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">10</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1997</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>457</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">457</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Saxena, R.K. and N.K. Misra.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynological investigation ofthe Ratnagiri beds of Sindhu Durg District, Maharashtra.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">263-276</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">38</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1990</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>458</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">458</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Scariot, A.O. and E. Lleras</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Reproductive biology of thepalm</style>
-                                       <style face="italic" font="default" size="100%">Acrocomia aculeata</style>
-                                       <style face="normal" font="default" size="100%">in Central Brazil.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bioitropica</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bioitropica</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">12-22</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">23</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1991</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>459</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">459</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Schmidt, M.E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The distribution and characteristics of Louisiana petrified palmwood.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">142-145</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">38</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1994</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>460</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">460</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Schrank, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Nonmarine Cretaceous correlations in Egypt andnorthern Sudan: palynological and palaeobotanical evidence.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Cretaceous Res.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Cretaceous Res.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">351-368</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">13</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1992</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>461</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">461</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Schrank, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynology of the Yesomma Formation in Northern Somalia: a study of pollen spores and associated phytoplankton from the late Cretaceous Palmae Province.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeontographica, Abt. B</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeontographica, Abt. B</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">63-112</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">231</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1994</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>463</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">463</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Schuler, M., C. Cavelier, C. Dupuis, E. Steurbaut, N. Vandenberghe, J. Riveline, E. Roche and M.-J. Soncini.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The Paleogene of the Paris and Belgian Basins.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Standardstages and regional stratotypes. Cah. Micropalйontol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Standardstages and regional stratotypes. Cah. Micropalйontol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">29-92</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">7</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1992</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>462</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">462</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Schuler, M. and J. Doubinger.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Observations palynologiques dans le Bassin d’Amaga (Colombie).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Pollen and Spores</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Pollen and Spores</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">429-450</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">12</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1970</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>602</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">602</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Schweingruber, F.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Anatomie europaischer Hцlzer.</style>
-                               </title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">800 pp.</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1990</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Verlag Paul Haupt: Bern &amp; Stuttgart.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>464</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">464</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Seubert, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Root anatomy of palms, II. Calamoideae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Feddes Repert.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Feddes Repert.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">43-59</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">107</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1996</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>465</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">465</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Seubert, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Root anatomy of palms, III. Ceroxyloideae, Nypoideae, Phytelepheae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Feddes Repert.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Feddes Repert.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">597-619</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">107</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1996</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline-ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>466</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">466</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Seubert, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Root anatomy of palms, I. Coryphoideae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Flora</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Flora</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">81-103</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">192</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1997</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>467</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">467</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Seubert, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Root anatomy of palms, IV. Arecoideae, part I. General remarks and descriptions of the roots.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Feddes Repert.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Feddes Repert.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">89-127</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">109</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1998a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>468</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">468</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Seubert, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Root anatomy of palms, IV. Arecoideae, part II. Systematic implications.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Feddes Repert.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Feddes Repert.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">231-247</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">109</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1998b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>469</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">469</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Shete, R.H. and A.R. Kulkarni</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palmocarpon coryphoidium sp. nov. A coryphoid palm fruit from Deccan Intertrappean beds of Wardha District, Maharashtra.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Indian Bot. Soc.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Indian Bot. Soc.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">45-50</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">64</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1985</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline-ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>470</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">470</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Shinde, N.W. and A.R. Kulkarni.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Fruits of</style>
-                                       <style face="italic" font="default" size="100%">Nyssa</style>
-                                       <style face="normal" font="default" size="100%">and</style>
-                                       <style face="italic" font="default" size="100%">Eugeissona</style>
-                                       <style face="normal" font="default" size="100%">from lignitic exposures of Ratnagiri District, Maharashtra.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Proceedings of Special Indian Geophytology Conference, Poona.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">165-169</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1989</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>471</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">471</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Shuey, A.G. and R.P. Wunderlin</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The needle palm:</style>
-                                       <style face="italic" font="default" size="100%">Rhapidophyllum hystrix</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">47-59</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">21</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1977</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>472</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">472</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Singh, H.P. and M.R. Rao.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Tertiary palynology of Kerala Basin - an overview.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">256-262</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">38</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1990</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>473</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">473</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Singh, R.S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Diversity of</style>
-                                       <style face="italic" font="default" size="100%">Nypa</style>
-                                       <style face="normal" font="default" size="100%">in the Indian subcontinent: Late Cretaceous to recent.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">147-154</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">48</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>474</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">474</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Skov, F. and H. Baslev</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of</style>
-                                       <style face="italic" font="default" size="100%">Hyospathe</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Nordic J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Nordic J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">189-202</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">9</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1989</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>475</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">475</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Small, I.K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The needle palm</style>
-                                       <style face="italic" font="default" size="100%">Rhapidophyllum hystrix</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. New York Bot. Gard.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. New York Bot. Gard.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">105-114</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">24</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1923</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>476</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">476</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Solde de Porta, N.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Contribuciуn al studio palinolуgico del terciario de Colombia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bol. Geol. Univ. Industrial Santander, Bucaramanga.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bol. Geol. Univ. Industrial Santander, Bucaramanga.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">55-81</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">7</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1961</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>574</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">574</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Song, Z.C., M. Li, W. Wang, C. Zhao, Z. Zhu, Y. Zheng, Y. Zhang, D. Wang, S. Zhou and Y. Zhao.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Fossil spores and pollen of China: vol. 1: the late Cretaceous and Tertiary spores and pollen.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Science Press, China.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>606</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">606</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Spanner, T.W., H.J. Noltie and M. Gibbons</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A new species of Trachycarpus (Palmae) from W. Bengal, India</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Edinburgh J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Edinburgh J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">257–259</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">54</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1997</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>477</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">477</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Spruce, R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palmae Amazonicae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Linn. Soc. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Linn. Soc. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">65-183</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1871</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>478</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">478</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Srisailam, K.,and C.G.K. Ramanujam.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Fossil palm pollen grains from the Warkalli sediments of Cannanore area.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rec. Geol. Surv. India</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rec. Geol. Surv. India</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">123-131</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">114</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>479</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">479</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Srivastava, S.K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Ctenolophon</style>
-                                       <style face="normal" font="default" size="100%">and</style>
-                                       <style face="italic" font="default" size="100%">Sclerosperma</style>
-                                       <style face="normal" font="default" size="100%">paleogeography and Senonian plate position.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Palynol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Palynol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">239-253</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">23-4</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1987</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>480</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">480</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Srivastava, S.K. and P.L. Binda.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Depositional history of the Early Eocene Shumaysi Formation, Saudi Arabia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palynology</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palynology</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">47-61</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">15</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1991</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>482</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">482</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Stauffer, F.W., C.B. Asmussen, A. Henderson and P.K. Endress.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of</style>
-                                       <style face="italic" font="default" size="100%">Asterogyne</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae, Arecoideae, Geonomeae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Brittonia</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">326-356</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">55</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2003</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>483</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">483</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Stauffer, F.W., W.J. Baker, J. Dransfield and P.K. Endress.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Comparative floral structure and systematics of</style>
-                                       <style face="italic" font="default" size="100%">Pelagodoxa</style>
-                                       <style face="normal" font="default" size="100%">and</style>
-                                       <style face="italic" font="default" size="100%">Sommieria</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">27-39</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">146</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2004</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>481</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">481</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Stauffer, F.W. and P.K. Endress</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Comparative morphology of female flowers and systematics in Geonomeae (Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Pl. Syst. Evol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Pl. Syst. Evol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">171-203</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">242</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2003</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>484</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">484</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Stenzel, G.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Palmoxylon iriarteum</style>
-                                       <style face="normal" font="default" size="100%">n. sp., ein fossiles Palmenholzaus Antigua.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bih. Kongl. Svenska Vetensk.-Akad. Handl. 22 III</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bih. Kongl. Svenska Vetensk.-Akad. Handl. 22 III</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">18 pp</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1897</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>485</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">485</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Stephyrtza, A.G.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Conifers, box and palm of Miocene flora of Bursuk in Moldavia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. Zhurn. S.S.S.R.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. Zhurn. S.S.S.R.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">458-468</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">57</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1972</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>604</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">604</key>
-                       </foreign-keys>
-                       <ref-type name="Thesis">32</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Stьhrk, C.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Molekularsystematische Studien in der Subtribus Thrinacinae, mit besonderer Berьcksichtigung der Gattung Trachycarpus H. Wendl. (Arecaceae).</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2006</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">University of Hamburg</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <work-type>
-                               <style face="normal" font="default" size="100%">Diplomarbeit im Studienfach Biologie (Masters Thesis)</style>
-                       </work-type>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>556</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">556</key>
-                       </foreign-keys>
-                       <ref-type name="Thesis">32</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Sunderland, T.C.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The taxonomy, ecology and utilisation of African rattans (Palmae: Calamoideae).</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001.</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">University College, London</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <work-type>
-                               <style face="normal" font="default" size="100%">PhD thesis</style>
-                       </work-type>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>557</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">557</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Sunderland, T.C.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Field Guide to the rattans of Africa.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2007</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Kew Publishing, Royal Botanic Gardens, Kew</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>486</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">486</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Szafer, W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Miocenka flora ze starych Gliwic na Slasku.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Prace Inst. Geol. (Warsawa)</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Prace Inst. Geol. (Warsawa)</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-205</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">33</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1961</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>487</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">487</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Takahashi, K.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Miospores from the Eocene Nanggulan Formation in the Yogyakarta region, Central Java.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Trans. Proc. Japan Soc. N.S.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Trans. Proc. Japan Soc. N.S.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">303-353</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">126</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1982</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>488</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">488</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Takhtajan, A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A taxonomic study of the Tertiary fan palms ofthe USSR.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. Zhurn.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. Zhurn.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1661-1674</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">43</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1958</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>489</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">489</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Tang, C.Z. and T.L. Wu</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A new species of</style>
-                                       <style face="italic" font="default" size="100%">Chuniophoenix</style>
-                                       <style face="normal" font="default" size="100%">(Palmae) from Hainan.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Acta Phytotax. Sin.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Acta Phytotax. Sin.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">111-112</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">15</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1977</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>490</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">490</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Teodoridis, V.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Early Miocene carpological material from the Czech part of the Zittau Basin.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Acta Palaeobot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Acta Palaeobot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">9-49</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">43</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2003</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>491</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">491</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Thanikaimoni, G.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Les Palmiers: palynologie et systematique.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Trav. Sect. Sci. Techn. Inst. Franз. Pondichиry</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Trav. Sect. Sci. Techn. Inst. Franз. Pondichиry</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-286</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1970</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>492</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">492</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Theile-Pfeiffer, H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Die Mikroflora aus dem Mitteleozдnen Цlschiefer von Messel bei Darmstadt.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeontographica (Stuttgart) B</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeontographica (Stuttgart) B</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-86</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">211</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1988</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>493</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">493</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Thomas, M.M., N.C. Garwood, W.J. Baker, S.A. Henderson,S.J. Russel, D.R. Hodel and R.M. Bateman.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Molecular phylogeny of the palm genus</style>
-                                       <style face="italic" font="default" size="100%">Chamaedorea</style>
-                                       <style face="normal" font="default" size="100%">, based on the low-copynuclear genes PRK and RPB2.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Molec. Phylogen. Evol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Molec. Phylogen. Evol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">398-415</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">38</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2006</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>554</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">554</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Tomlinson, P.B.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Metcalfe, C.R. (ed.).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palmae.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Anatomy of the monocotyledons II</style>
-                               </secondary-title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1961</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Clarendon Press, Oxford.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>494</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">494</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Tomlinson, P.B.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Notes on the vegetative anatomy of</style>
-                                       <style face="italic" font="default" size="100%">Aristeyera spicata</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Arnold Arbor.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Arnold Arbor.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">23-29</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">47</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1966</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>496</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">496</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Tomlinson, P.B. and M.H. Zimmermann</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Stem vascular architecture in the American climbing palm</style>
-                                       <style face="italic" font="default" size="100%">Desmoncus</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae-Arecoideae-Bactridinae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. J. Linn. Soc.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">243-254</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">142</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2003</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>495</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">495</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Tomlinson, P.B. and P.K. Soderholm</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The flowering and fruiting of</style>
-                                       <style face="italic" font="default" size="100%">Corypha elata</style>
-                                       <style face="normal" font="default" size="100%">in South Florida.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">83-99</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">19</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1975</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>497</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">497</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Trail, J.W.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Descriptions of new species of palms collected in the valley of the Amazon in north Brazil in 1874.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">75-81</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">15</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1877</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>498</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">498</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Tralau, H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The genus</style>
-                                       <style face="italic" font="default" size="100%">Nypa</style>
-                                       <style face="normal" font="default" size="100%">van Wurmb.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kungl. Svenska Vetenskapsakad. Handl.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kungl. Svenska Vetenskapsakad. Handl.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">5-29</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">Ser. 4</style>
-                       </volume>
-                       <number>
-                               <style face="normal" font="default" size="100%">10</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1964</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>500</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">500</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Tripathi, R.P., S.N. Mishra and B.D. Sharma</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Cocos nucifera</style>
-                                       <style face="normal" font="default" size="100%">like petrified fruit from the Tertiary of Amarkantak, M.P.,India.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">251-255</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">48</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>501</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">501</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Truswell, E.M. and J.A. Owen.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Eocene pollen from Bungonia, New South Wales.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Mem. Ass. Australas. Palaeontol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Mem. Ass. Australas. Palaeontol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">259-284</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">5</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1988</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>499</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">499</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Trйnel, P., M.H.G. Gustafsson, W.J. Baker, C.B. Asmussenlange, J. Dransfield and F. Borchsenius.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Mid-Tertiarydispersal, not Gondwanan vicariance explains distribution patterns in the wax palm subfamily (Ceroxyloideae: Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Molec. Phylogen. Evol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Molec. Phylogen. Evol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">272-288</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">45</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2007</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>502</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">502</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Tschudy, R.H.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Stratigraphic distribution of significant Eocene palynomorphs of the Mississippi Embayment.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Geol. Surv. Prof. Paper</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Geol. Surv. Prof. Paper</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-24 + 4 pls.</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">743-B</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1973</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>503</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">503</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Tuzson, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Adatok Magyarorszбg fossilis flуrбjбhoz. Additamenta add florum fossilem Hungariae III.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Magyar Kir. Allamн Foldt. Intez. Evk.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Magyar Kir. Allamн Foldt. Intez. Evk.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">210-233</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">21</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1913</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>622</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">622</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Tдckholm, V. and M. Drar</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Flora of Egypt. II. Angiospermae, part Monocotyledones: Cyperaceae-Juncaceae.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1950</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Fouad I University Press</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>504</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">504</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Morphology and anatomy of the inflorescence axis and flowers of a new palm,</style>
-                                       <style face="italic" font="default" size="100%">Aristeyera spicata</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Arnold Arbor.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Arnold Arbor.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">9-22</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">47</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1966</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>516</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">516</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W., L.O. Morrow and H.E. Moore, Jr</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Anatomy of the palm</style>
-                                       <style face="italic" font="default" size="100%">Rhapis excelsa</style>
-                                       <style face="normal" font="default" size="100%">, VII. Flowers.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Arnold Arbor.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Arnold Arbor.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">138-152</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">50</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1969</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>505</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">505</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Anatomy and ontogeny of the cincinni and flowers in</style>
-                                       <style face="italic" font="default" size="100%">Nannorrhops ritchiana</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Arnold Arbor.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Arnold Arbor.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">411-43</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">50</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1969a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>506</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">506</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Floral anatomy of</style>
-                                       <style face="italic" font="default" size="100%">Juania</style>
-                                       <style face="normal" font="default" size="100%">,</style>
-                                       <style face="italic" font="default" size="100%">Ravenea</style>
-                                       <style face="normal" font="default" size="100%">, and</style>
-                                       <style face="italic" font="default" size="100%">Ceroxylon</style>
-                                       <style face="normal" font="default" size="100%">(Palmae-Arecoideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">394-411</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">10</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1969b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>507</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">507</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Inflorescence and flower structure in</style>
-                                       <style face="italic" font="default" size="100%">Nypa fruticans</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">729-743</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">59</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1972a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>508</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">508</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Floral anatomy of</style>
-                                       <style face="italic" font="default" size="100%">Chelyocarpus</style>
-                                       <style face="normal" font="default" size="100%">,</style>
-                                       <style face="italic" font="default" size="100%">Cryosophila</style>
-                                       <style face="normal" font="default" size="100%">, and</style>
-                                       <style face="italic" font="default" size="100%">Itaya</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">89-100</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">16</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1972b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>509</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">509</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Leaf anatomy in the</style>
-                                       <style face="italic" font="default" size="100%">Chelyocarpus</style>
-                                       <style face="normal" font="default" size="100%">alliance.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">101-110</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">16</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1972c</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>510</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">510</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Developmental studies in</style>
-                                       <style face="italic" font="default" size="100%">Ptychosperma</style>
-                                       <style face="normal" font="default" size="100%">(Palmae). I. The inflorescence and the flower cluster.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">82-96</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">63</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1976a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>511</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">511</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Developmental studies in</style>
-                                       <style face="italic" font="default" size="100%">Ptychosperma</style>
-                                       <style face="normal" font="default" size="100%">(Palmae). II. The staminate and pistillate flowers.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">97-109</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">63</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1976b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>512</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">512</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Floral anatomy of</style>
-                                       <style face="italic" font="default" size="100%">Maxburretia</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">200-211</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>513</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">513</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Floral anatomy of the five species of</style>
-                                       <style face="italic" font="default" size="100%">Hyophorbe</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">245-267</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>514</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">514</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Leaf anatomy in the species of</style>
-                                       <style face="italic" font="default" size="100%">Hyophorbe</style>
-                                       <style face="normal" font="default" size="100%">(Palmae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Gentes Herb.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">268-283</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">11</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978c</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>603</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">603</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W., J. Dransfield, J.I. Davis, M.A. Luckow, K.S. Hansen and J.J. Doyle.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Rudall, P.J., P.J. Cribb, D.F. Cutler and C.J. Humphries (eds)</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Phylogenetic relationships among palms: cladistic analyses of morphological and chloroplast DNA restriction site variation.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Monocotyledons: systematics and evolution.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">623–661</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1995</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Royal Botanic Gardens, Kew</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>635</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">635</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W.</style>
-                                       </author>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Leins, P., S.C. Tucker and P.K. Endress (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Floral organogenesis in palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Aspects of floral development.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">25–44</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1988</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Berlin</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>517</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">517</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W. and H.E. Moore.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The palm gynoecium.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">945-992</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">58</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1971</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>518</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">518</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W. and H.E. Moore.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The protection of pollen and ovules in palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">111-149</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">17</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1973</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>519</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">519</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W. and H.E. Moore.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Correlations of inflorescence, flower structure, and floral anatomy with pollination in some palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Biotropica</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Biotropica</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">170-190</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">9</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1977a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>520</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">520</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W. and H. E. Moore</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Centrifugal stamen initiationin phytelephantoid palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1152-1161</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">64</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1977b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>521</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">521</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W. and H.E. Moore</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The structure of the acervulus, the flower cluster of chamaedoreoid palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Amer. J. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">197-204</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">65</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>522</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">522</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W. and H.E. Moore</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Androecial development in six polyandrous genera representing five major groups of palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ann. Bot. (Oxford) ser. 2,</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ann. Bot. (Oxford) ser. 2,</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">57-75</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">445</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>515</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">515</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W. and J. Martens</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Systematic leaf anatomy of New Caledonian palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. Soc. Amer. Misc. Ser. Publ.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. Soc. Amer. Misc. Ser. Publ.</style>
-                               </full-title>
-                       </periodical>
-                       <volume>
-                               <style face="normal" font="default" size="100%">158: 120.</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>629</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">629</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W. and J. Dransfield</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">White, R.A. and W.C. Dickison (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Development of the inflorescence, androecium and gynoecium with reference to palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Contemporary problems in plant anatomy</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">397–449</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Academic Press, New York</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>626</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">626</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Uhl, N.W. and J. Dransfield</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Genera Palmarum, a classification of palms based on the work of Harold E. Moore Jr.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1987</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">L.H. Bailey Hortorium and the International Palm Society, Lawrence, Kansas.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>523</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">523</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Unger, F.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Botanishe Streifzьge auf dem Gebiete der Culturgeschichte. IV. Die Pflanzen des alten Дgypten. Sitzungsber.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kaisersl. Akad. Wiss. Wien, Math.-Naturwiss. Cl.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kaisersl. Akad. Wiss. Wien, Math.-Naturwiss. Cl.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">69-140</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">38</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1859</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>524</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">524</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Van der Burgh, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Some palms in the Miocene of the Lower Rhenish Plain.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Rev. Palaeobot. Palynol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">359-374</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">40</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1984</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>525</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">525</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Van der Hammen, T.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">El desarollo de la Flora Colombiana en los periodos geologicos. I. Maestrichtiano hasta Terciaro mas inferior.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bol. Geol. (Bogotа),</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bol. Geol. (Bogotа),</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">49-106</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">2</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1954</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>526</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">526</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Van der Hammen, T.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Descripciуn de algunos gйneros y especies de polen y esporas fуsiles.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bol. Geol. (Bogotа)</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bol. Geol. (Bogotа)</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">111-117</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">4</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1956</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>527</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">527</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Van der Hammen, T. and C. Garcнa de Mutis.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The Paleocene pollen flora of Colombia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Leidse Geologische Mededlingen</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Leidse Geologische Mededlingen</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">105-116</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">35</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1966</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>528</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">528</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">van Valkenburg, J., T.C.H. Sunderland, L.N. Banak and Y. Issembй</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Sclerosperma</style>
-                                       <style face="normal" font="default" size="100%">and</style>
-                                       <style face="italic" font="default" size="100%">Podococcus</style>
-                                       <style face="normal" font="default" size="100%">in Gabon.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">77-83</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">51</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2007</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>529</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">529</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">van Valkenburg, J., T.C.H. Sunderland and T. Couvreur</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of the genus</style>
-                                       <style face="italic" font="default" size="100%">Sclerosperma</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Kew Bull.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">75-86</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">63</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2008</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>530</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">530</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Varma, Y.N.R., C.G.K. Ramanujam and R.S. Patil.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palyno flora of Tertiary sediments of Tonakkal area, Kerala.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Palynol.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Palynol.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">39-53</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">22</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1986</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>531</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">531</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Vaudois-Miйja, N. and A. Lejal-Nicol</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palйocarpologies africaine: apparition dиs l’Aptien en Йgypte d’un Palmier (Hyphaeneocarpon aegyptiacum n. sp.).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Compt. Rendu Acad. Sci. Paris, 304 (Ser. 2)</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Compt. Rendu Acad. Sci. Paris, 304 (Ser. 2)</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">233-238</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">6</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1987</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>532</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">532</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Vaughan, J.G.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Structure of</style>
-                                       <style face="italic" font="default" size="100%">Acrocomia</style>
-                                       <style face="normal" font="default" size="100%">fruit.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Nature</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Nature</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">81</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">188</style>
-                       </volume>
-                       <number>
-                               <style face="normal" font="default" size="100%">(4744)</style>
-                       </number>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1960</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>533</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">533</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Venkatachala, B.S. and R.K. Kar</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palynology of the Tertiary sediments of Kutch. 1. Spores and pollen from Bore-holeNo. 14.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palaeobotanist</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">157-178</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">17</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1969</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>631</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">631</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Wallace, A.R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The palm trees of the Amazon and their uses.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1853</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">John van Voorst, London</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>534</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">534</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Walther, G R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Are there indigenous palms in Switzerland?</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bot. Helv.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bot. Helv.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">159-180</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">113</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2003</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>661</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">661</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Watling, D.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Palms of the Fiji Islands</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2005</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Environmental Consultants, Fiji.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>535</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">535</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Weber, R.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Some aspects of the Upper Cretaceous angiosperm flora of Coahuila, Mйxico.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Courier Forschungsinst. Senckenberg</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Courier Forschungsinst. Senckenberg</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">38-46</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">30</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1978</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>598</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">598</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Werker, E.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Seed anatomy</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Handbuch der Pflanzenanatomie</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">424 pp</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">x.3.</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1997</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Gebruder Borntraeger, Berlin and Stuttgart.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>632</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">632</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Wessels Boer, J.G.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The indigenous palms of Suriname.</style>
-                               </title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1965</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">E.J. Brill, Leiden</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>536</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">536</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Wessels Boer, J.G.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The geonomoid palms.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Verh. Kon. Akad. Wetensch., Afd. Natuurk., Sect. 2</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Verh. Kon. Akad. Wetensch., Afd. Natuurk., Sect. 2</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-202</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">58</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1968</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>537</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">537</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Whistler, W.A.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The palms of Samoa.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Mooreana</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Mooreana</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">24-29</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">2</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1992</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>538</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">538</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Wilbert, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The Temiche cap.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">105-109</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">24</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>539</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">539</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Wilbert, J.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The palm-leaf sail of the Warao Indians.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">162-169</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">24</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1980</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>540</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">540</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Witono, J.R., J.P. Mogea and S. Somadikarta.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Pinanga in Java and Bali.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">193-201</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">46</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>541</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">541</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Yamashita, C. and M. De P. Valle</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">On the linkage between Anodorhynchus macaws and palm nuts, and the extinction of the Glaucous Macaw.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Bull. B.O.C.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Bull. B.O.C.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">53-60</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">113</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1993</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>542</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">542</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Yamashita, C. and Y.M. De Barros</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The Blue Throated Macaw</style>
-                                       <style face="italic" font="default" size="100%">Ara glaucogularis</style>
-                                       <style face="normal" font="default" size="100%">; characterization of its distinctive habitats in savannahs of the Beni, Bolivia.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Ararajuba</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Ararajuba</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">141-150</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">5</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1997</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>564</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">564</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Zetter, R. and C.-CH. Hofmann.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Piller, E.W. and M.W. Rasser (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">New aspects of the palynoflora of the lowermost Eocene in Austria (Krappfeld area).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Paleogene of Austria.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">473–507</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2001</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Schriftenreihe de Erdwissenschaftlichen Kommission, Austria Academy of Science.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>650</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">650</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Zeven, A.C.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The semi-wild oil palm and its industry in Africa.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Agricultural Research Repports 689</style>
-                               </secondary-title>
-                       </titles>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1967</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">Centre for Agricultural Publications and Documentation, Wageningen, The Netherlands.</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>543</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">543</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Zimmermann, M.H. and P.B. Tomlinson</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Vascular patterns in palm stems: variations of the</style>
-                                       <style face="italic" font="default" size="100%">Rhapis</style>
-                                       <style face="normal" font="default" size="100%">principle.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">J. Arnold Arbor.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">J. Arnold Arbor.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">402-424</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">55</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1974</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>544</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">544</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Zona, S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A monograph of</style>
-                                       <style face="italic" font="default" size="100%">Sabal</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae: Coryphoideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Aliso</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Aliso</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">583-666</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">12</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1990</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>545</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">545</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Zona, S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of</style>
-                                       <style face="italic" font="default" size="100%">Calyptronoma</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Principes</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">140-151</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">39</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1995</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>546</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">546</key>
-                       </foreign-keys>
-                       <ref-type name="Book">6</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Zona, S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="italic" font="default" size="100%">Roystonea</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae, Arecoideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Fl. Neotrop. Monogr.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Fl. Neotrop. Monogr.</style>
-                               </full-title>
-                       </periodical>
-                       <volume>
-                               <style face="normal" font="default" size="100%">71</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1996</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">The New York Botanical Garden Press, Bronx, NY</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>547</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">547</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Zona, S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">The genera of Palmae (Arecaceae) in the southeastern United States.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Harvard Pap. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Harvard Pap. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">71-107</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">2</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1997</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>664</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">664</key>
-                       </foreign-keys>
-                       <ref-type name="Book Section">5</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Zona, S.</style>
-                                       </author>
-                               </authors>
-                               <secondary-authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Henderson, A. and F. Borchsenius (eds).</style>
-                                       </author>
-                               </secondary-authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">New perspectives on generic limits and relationships in the Ptychospermatinae (Palmae: Arecoideae)</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Evolution, variation and classification of palms.</style>
-                               </secondary-title>
-                       </titles>
-                       <pages>
-                               <style face="normal" font="default" size="100%">255–263</style>
-                       </pages>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999a</style>
-                               </year>
-                       </dates>
-                       <publisher>
-                               <style face="normal" font="default" size="100%">The New York Botanical Garden Press, Bronx, NY</style>
-                       </publisher>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>548</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">548</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Zona, S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Revision of</style>
-                                       <style face="italic" font="default" size="100%">Drymophloeus</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae: Arecoideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Blumea</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Blumea</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">1-24</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">44</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>549</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">549</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Zona, S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of</style>
-                                       <style face="italic" font="default" size="100%">Pseudophoenix</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">19-38</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">46</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002a</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>550</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">550</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Zona, S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Name changes in</style>
-                                       <style face="italic" font="default" size="100%">Attalea</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">132-133</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">46</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2002b</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>551</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">551</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Zona, S.</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Endosperm condition and the paradox of</style>
-                                       <style face="italic" font="default" size="100%">Ptychococcus paradoxus</style>
-                                       <style face="normal" font="default" size="100%">.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Telopea</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Telopea</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">179-185</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">10</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">2003</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>553</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">553</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Zona, S. and D. Fuller</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">A revision of</style>
-                                       <style face="italic" font="default" size="100%">Veitchia</style>
-                                       <style face="normal" font="default" size="100%">(Arecaceae-Arecoideae).</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Harvard Pap. Bot.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Harvard Pap. Bot.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">543-560</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">4</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>552</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">552</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Zona, S. and F.B. Essig</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">How many species of</style>
-                                       <style face="italic" font="default" size="100%">Brassiophoenix</style>
-                                       <style face="normal" font="default" size="100%">?</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Palms</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">45-48</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">43</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1999</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-               <record>
-                       <database name="My EndNote Library.enl" path="C:\Documents and Settings\andy.HOME\My Documents\My EndNote Library.enl">My EndNote Library.enl</database>
-                       <source-app name="EndNote" version="13.0">EndNote</source-app>
-                       <rec-number>378</rec-number>
-                       <foreign-keys>
-                               <key app="EN" db-id="xwv95aetwd5w9gev2wnp9tt6tdwpdrpx09d5">378</key>
-                       </foreign-keys>
-                       <ref-type name="Journal Article">17</ref-type>
-                       <contributors>
-                               <authors>
-                                       <author>
-                                               <style face="normal" font="default" size="100%">Фyama, T. and H. Matsuo</style>
-                                       </author>
-                               </authors>
-                       </contributors>
-                       <titles>
-                               <title>
-                                       <style face="normal" font="default" size="100%">Notes on palmaean leaf from Фarai flora (Upper Cretaceous), Oarai Machi, Ibaraki Prefecture, Japan.</style>
-                               </title>
-                               <secondary-title>
-                                       <style face="normal" font="default" size="100%">Trans. and Proc. Palaeontol. Soc. Jap. n.s.</style>
-                               </secondary-title>
-                       </titles>
-                       <periodical>
-                               <full-title>
-                                       <style face="normal" font="default" size="100%">Trans. and Proc. Palaeontol. Soc. Jap. n.s.</style>
-                               </full-title>
-                       </periodical>
-                       <pages>
-                               <style face="normal" font="default" size="100%">241-246</style>
-                       </pages>
-                       <volume>
-                               <style face="normal" font="default" size="100%">55</style>
-                       </volume>
-                       <dates>
-                               <year>
-                                       <style face="normal" font="default" size="100%">1964</style>
-                               </year>
-                       </dates>
-                       <label>
-                               <style face="normal" font="default" size="100%">inline_ref</style>
-                       </label>
-                       <urls></urls>
-               </record>
-       </records>
-</xml>
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/io/NormalExplicitImportTest-input.xls b/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/io/NormalExplicitImportTest-input.xls
deleted file mode 100644 (file)
index 1c69278..0000000
Binary files a/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/io/NormalExplicitImportTest-input.xls and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/io/NormalExplicitImportTest.xml b/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/io/NormalExplicitImportTest.xml
deleted file mode 100644 (file)
index fc0676e..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../cdm/database/schema/dataset.dtd">
-<!--  <TAXONBASE DTYPE="Taxon" ID="4" CREATED="2009-02-03 17:52:26.0" UUID="aafce7fe-0c5f-42ed-814b-4c7c2c715660" TITLECACHE="Abies sec. ???" PROTECTEDTITLECACHE="false" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="4"/>-->
-<!--  <TAXONBASE DTYPE="Taxon" ID="5" CREATED="2009-02-03 17:52:26.0" UUID="5c1a3d10-3a32-45d1-a5ae-1e982533b79f" TITLECACHE="Abies alba sec. ???" PROTECTEDTITLECACHE="false" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="5"/>-->
-<!--  <TAXONBASE DTYPE="Synonym" ID="6" CREATED="2009-02-03 17:52:26.0" UUID="4de9d002-d68c-49af-84f1-7f9eddaa1226" TITLECACHE="Abies alba sec. ???" PROTECTEDTITLECACHE="false" DOUBTFUL="false" TAXONNAME_FK="6"/>-->
-<!--  <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" CREATED="2009-02-03 17:52:26.0" UUID="88fab5b3-0d9a-42c3-9915-71fc17266116" TITLECACHE="" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="1"/>-->
-<!--  <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" CREATED="2009-02-03 17:52:26.0" UUID="984e4304-57b0-4ce8-8f94-7c39be7396d9" TITLECACHE="Abies" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="Abies" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2" RANK_ID="774"/>-->
-<!--  <TAXONNAMEBASE DTYPE="BotanicalName" ID="3" CREATED="2009-02-03 17:52:26.0" UUID="a7e666e7-0d96-4284-9cc4-8e5ccc3b9a36" TITLECACHE="Abies alba" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="Abies alba" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies alba" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="alba" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="3" RANK_ID="765"/>-->
-<!--  <TAXONNAMEBASE DTYPE="BotanicalName" ID="4" CREATED="2009-02-03 17:52:26.0" UUID="ebd459a6-52ec-4f7c-a520-32c82aa31011" TITLECACHE="Abies" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="Abies" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="4" RANK_ID="774" COMBINATIONAUTHORSHIP_ID="1"/>-->
-<!--  <TAXONNAMEBASE DTYPE="BotanicalName" ID="5" CREATED="2009-02-03 17:52:26.0" UUID="5d74500b-9fd5-4d18-b9cd-cc1c8a372fec" TITLECACHE="Abies alba" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="Abies alba" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies alba" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="alba" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="5" RANK_ID="765" COMBINATIONAUTHORSHIP_ID="1"/>-->
-<!--  <TAXONNAMEBASE DTYPE="BotanicalName" ID="6" CREATED="2009-02-03 17:52:26.0" UUID="55e6ee55-371e-418e-8775-d885d28453c4" TITLECACHE="Abies alba" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="Abies alba" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies alba" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="alba" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="6" RANK_ID="765" COMBINATIONAUTHORSHIP_ID="2"/>-->
-</dataset>
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/io/TcsXmlImportConfiguratorTest-input.xml b/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/io/TcsXmlImportConfiguratorTest-input.xml
deleted file mode 100644 (file)
index 545f7c8..0000000
+++ /dev/null
@@ -1,382 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<DataSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.tdwg.org/schemas/tcs/1.01     http://tdwg.napier.ac.uk/TCS_1.01/v101.xsd" xmlns="http://www.tdwg.org/schemas/tcs/1.01">
-    <!-- This is an instance document that tests as many different
-    applications of the schema as possible within a single document.
-    It is not meant to a 'realistic' example of a real data set
-    but a illustration of all the different types of data that can 
-    be passed. -->
-    <MetaData>
-        <!-- to be completed -->
-        <Simple/>
-    </MetaData>
-    <Specimens>
-        <Specimen id="2">
-            <Simple/>
-            <Institution identifier=""/>
-            <Collection identifier="LE"/>
-            <SpecimenItem identifier=""/>
-        </Specimen>
-    </Specimens>
-    <Publications>
-        <Publication id="1">
-            <Simple>Fl. SSR</Simple>
-        </Publication>
-        <Publication id="2">
-            <Simple>Copeland, H.F. (1943). A study, anatomical and taxonomic, of the
-                genera of Rhododendroideae. Am. Midl.Nat. 30:533-625</Simple>
-        </Publication>
-        <Publication id="3">
-            <Simple>Wilson, E.H. &amp; Rehder, A. (1921). A monograph of the azaleas.
-                Publication of the Arnold Arboretum No. 9 Harvard University, Cambridge
-            MA.</Simple>
-        </Publication>
-        <Publication id="4">
-            <Simple>Judd, W.S. &amp; Kron, K.A. (1995) A Revision of Rhododendron VI
-                Edinb. J. Bot. 52(1): 1-54</Simple>
-        </Publication>
-        <Publication id="5">
-            <Simple>Maximoxicz, C.J. (1870) Rhododendron schlippenbachii. Mem. Acad. Sci.
-                St Petersbourg. ser.3 15.</Simple>
-        </Publication>
-    </Publications>
-    <TaxonNames>
-        <TaxonName id="0" nomenclaturalCode="Botanical">
-            <Simple>Rhododendron</Simple>
-        </TaxonName>
-        <TaxonName nomenclaturalCode="Botanical" id="1">
-            <Simple>Rhododendron subgenus Pentanthera (G. Don) Poyarkova</Simple>
-            <CanonicalName>
-                <Simple>Rhododedron subgenus Pentanthera</Simple>
-                <Genus>Rhododendron</Genus>
-                <InfragenericEpithet>Pentanthera</InfragenericEpithet>
-            </CanonicalName>
-            <CanonicalAuthorship>
-                <Simple>(G.Don) Poyarkova</Simple>
-                <BasionymAuthorship>
-                    <Simple>G. Don</Simple>
-                    <Authors>
-                        <AgentName>G. Don</AgentName>
-                    </Authors>
-                </BasionymAuthorship>
-                <CombinationAuthorship>
-                    <Simple>Poyarkova</Simple>
-                    <Authors>
-                        <AgentName>Poyarkova</AgentName>
-                    </Authors>
-                </CombinationAuthorship>
-            </CanonicalAuthorship>
-            <PublishedIn ref="1">Fl. SSR Vol 18 (1952)</PublishedIn>
-            <MicroReference>Page 57</MicroReference>
-            <Typification>
-                <Simple>Rhododendron flavum G.Don</Simple>
-                    <!--
-                        N.B. This could be linked to a full name entry if
-                        required but no details are in the current monograph so
-                        it isn't
-                    -->
-                <TypeName/>
-            </Typification>
-        </TaxonName>
-        <TaxonName id="2" nomenclaturalCode="Botanical">
-            <Simple>Rhododendron sect. Sciadorhodion Rehder &amp; Wilson</Simple>
-            <CanonicalName>
-                <Simple>Rhododendron sect. Sciadorhodion</Simple>
-                <Genus>Rhododendron</Genus>
-                <InfragenericEpithet>Sciadorhodion</InfragenericEpithet>
-            </CanonicalName>
-            <CanonicalAuthorship>
-                <Simple>Rehder &amp; Wilson</Simple>
-                <BasionymAuthorship>
-                    <Simple>Rehder &amp; Wilson</Simple>
-                </BasionymAuthorship>
-            </CanonicalAuthorship>
-            <PublishedIn linkType="local" ref="3">Wislon &amp; Rehder Monogr. Azaleas 79 (1921)</PublishedIn>
-            <MicroReference>Page 79</MicroReference>
-            <Typification>
-                <Simple/>
-                <TypeName>
-                    <NameReference linkType="local" ref="3">Rhododendron quinquefolium Bisset
-                        &amp; Moore</NameReference>
-                    <LectotypePublication ref="2">Copeland, H.F.(1943)</LectotypePublication>
-                </TypeName>
-            </Typification>
-            <Basionym>
-                <RelatedName ref="4">Azalea subgen. Sciadorhodion (Rhehder &amp; Wilson)
-                    Copeland</RelatedName>
-            </Basionym>
-        </TaxonName>
-        <TaxonName id="3" nomenclaturalCode="Botanical">
-            <Simple>Rhododendron quinquefolium Bisset &amp; Moore</Simple>
-        </TaxonName>
-        <TaxonName id="4" nomenclaturalCode="Botanical">
-            <!-- for brevity this NameObject isn't fully expanded -->
-            <Simple>Azalea subgen. Sciadorhodion (Rhehder &amp; Wilson) Copeland </Simple>
-            <Basionym>
-                <RelatedName ref="2">Rhododendron sect. Sciadorhodion Rehder &amp;
-                Wilson</RelatedName>
-            </Basionym>
-        </TaxonName>
-        <TaxonName id="5" nomenclaturalCode="Botanical">
-            <Simple>Rhododendron schlippenbachii Maxim.</Simple>
-            <Rank code="sp">Species</Rank>
-            <CanonicalName>
-                <Simple>Rhododendron schlippenbachii</Simple>
-                <Genus>Rhododendron</Genus>
-                <SpecificEpithet>schlippenbachii</SpecificEpithet>
-            </CanonicalName>
-            <CanonicalAuthorship>
-                <Simple>Maxim.</Simple>
-                <BasionymAuthorship>
-                    <Simple>Maxim.</Simple>
-                    <Authors>
-                        <AgentName>Maximoxicz, C.J.</AgentName>
-                    </Authors>
-                </BasionymAuthorship>
-            </CanonicalAuthorship>
-            <PublishedIn ref="5">Bull. Acad. Sci. St Petersbourg, ser. 3 15 (1870)</PublishedIn>
-            <MicroReference>Page 226</MicroReference>
-            <Typification>
-                <Simple/>
-                <TypeVouchers>
-                <TypeVoucher typeOfType="lecto">
-                    <VoucherReference linkType="local" ref="1"/>
-                    <LectotypePublication ref="4"/>
-                    <LectotypeMicroReference>Page 15</LectotypeMicroReference>
-                </TypeVoucher>
-                <TypeVoucher typeOfType="isolecto">
-                    <VoucherReference linkType="local" ref="2"/>
-                    <LectotypePublication ref="4"/>
-                    <LectotypeMicroReference>Page 15</LectotypeMicroReference>
-                </TypeVoucher>
-                </TypeVouchers>
-            </Typification>
-        </TaxonName>
-        <TaxonName id="6" nomenclaturalCode="Botanical">
-            <Simple>Azalea schlippenbachii (Maxim.) Kuntze</Simple>
-            <CanonicalName>
-                <Simple>Azalea schlippenbachii</Simple>
-                <Genus>Azalea</Genus>
-                <SpecificEpithet>schlippenbachii</SpecificEpithet>
-            </CanonicalName>
-            <CanonicalAuthorship>
-                <Simple>(Maxim.) Kuntze</Simple>
-                <BasionymAuthorship>
-                    <Simple>Maxim.</Simple>
-                </BasionymAuthorship>
-                <CombinationAuthorship>
-                    <Simple>Kuntze</Simple>
-                </CombinationAuthorship>
-            </CanonicalAuthorship>
-            <PublishedIn>Revis. Gen.Pl. 2:387 (1891)</PublishedIn>
-            <Typification>
-                <Simple/>
-                <TypeVouchers>
-                <TypeVoucher typeOfType="lecto">
-                    <VoucherReference ref="2">[Russia] Manchuria, shores of Possiet Bay, [SW of
-                        Vladivostok], 1860, C. Maximowicz LE</VoucherReference>
-                    <LectotypePublication ref="4"/>
-                    <LectotypeMicroReference>Page 15</LectotypeMicroReference>
-                </TypeVoucher>
-               </TypeVouchers>
-            </Typification>
-        </TaxonName>
-        <TaxonName id="7" nomenclaturalCode="Botanical">
-            <Simple>Rhododendron pentaphyllum Maxim.</Simple>
-            <CanonicalName>
-                <Simple>Rhododendron pentaphyllum</Simple>
-                <Genus>Rhododendron</Genus>
-                <SpecificEpithet>pentaphyllum</SpecificEpithet>
-            </CanonicalName>
-            <CanonicalAuthorship>
-                <Simple>Maxim.</Simple>
-            </CanonicalAuthorship>
-            <PublishedIn>Bull. Acad. Sci. St Petersbourg, ser. 3, 31:65 (1887)</PublishedIn>
-            <Typification>
-                <Simple/>
-                <TypeVouchers>
-                    <TypeVoucher typeOfType="holo">
-                        <VoucherReference>Japan, Kyushiu, prov. Osumi, summit, Mt Taka-kuma, Tashiro
-                            (LE)</VoucherReference>
-                    </TypeVoucher>
-                </TypeVouchers>
-           
-            </Typification>
-        </TaxonName>
-        <TaxonName id="8" nomenclaturalCode="Botanical">
-            <Simple>Azalea pentaphylla (Maxim.) Copeland</Simple>
-            <CanonicalName>
-                <Simple>Azalea pentaphylla</Simple>
-                <Genus>Azalea</Genus>
-                <SpecificEpithet>pentaphylla</SpecificEpithet>
-            </CanonicalName>
-            <CanonicalAuthorship>
-                <Simple>(Maxim.) Copeland</Simple>
-                <BasionymAuthorship>
-                    <Simple>Maxim.</Simple>
-                </BasionymAuthorship>
-                <CombinationAuthorship>
-                    <Simple>Copeland</Simple>
-                </CombinationAuthorship>
-            </CanonicalAuthorship>
-            <PublishedIn>Am.Midl.Nat. 30:595 (1943)</PublishedIn>
-            <Typification>
-                <Simple/>
-                <TypeVouchers>
-                    <TypeVoucher typeOfType="holo">
-                        <VoucherReference>Japan, Kyushiu, prov. Osumi, summit, Mt Taka-kuma, Tashiro
-                            (LE)</VoucherReference>
-                    </TypeVoucher>
-                </TypeVouchers>
-            </Typification>
-        </TaxonName>
-        <TaxonName id="9" nomenclaturalCode="Botanical">
-            <Simple>Rhododendron pentaphyllum var. nikoense Komatsu</Simple>
-            <Rank code="var">variety</Rank>
-            <CanonicalName>
-                <Simple>Rhododendron pentaphyllum var. nikoense</Simple>
-                <Genus ref="0">Rhododendron</Genus>
-                <SpecificEpithet>pentaphyllum</SpecificEpithet>
-                <InfraspecificEpithet>nikoense</InfraspecificEpithet>
-            </CanonicalName>
-            <CanonicalAuthorship>
-                <Simple>Konatsu</Simple>
-            </CanonicalAuthorship>
-            <PublishedIn>Icon. Pl. Koisikav. 3: 45, t 168 (1916)</PublishedIn>
-        </TaxonName>
-        <TaxonName id="10" nomenclaturalCode="Botanical">
-            <Simple>Rhododendron nikoense (Komatsu) Nakai</Simple>
-            <Rank code="sp">Species</Rank>
-            <CanonicalName>
-                <Simple>Rhododendron nikoense</Simple>
-                <Genus ref="0">Rhododendron</Genus>
-                <SpecificEpithet>nikoense</SpecificEpithet>
-            </CanonicalName>
-            <CanonicalAuthorship>
-                <Simple>(Komatsu) Nakai</Simple>
-                <BasionymAuthorship>
-                    <Simple>Komatsu</Simple>
-                </BasionymAuthorship>
-                <CombinationAuthorship>
-                    <Simple>Nakai</Simple>
-                </CombinationAuthorship>
-            </CanonicalAuthorship>
-            <PublishedIn>Nakai &amp; Koidz. Trees and Shrubs Japan 1: 68 (1922)</PublishedIn>
-            <Basionym>
-                <RelatedName ref="9">Rhododendron pentaphyllum var. nikoense</RelatedName>
-            </Basionym>
-        </TaxonName>
-        <TaxonName id="11" nomenclaturalCode="Botanical">
-            <Simple>Rhododendron quinquefolium Bisset &amp; S. Moore var. roseum Rehder</Simple>
-            <Rank code="var">variety</Rank>
-            <CanonicalName>
-                <Simple>Rhododendron quinquefolium</Simple>
-                <Genus ref="0">Rhododendron</Genus>
-                <SpecificEpithet>quinquefolium</SpecificEpithet>
-                <InfraspecificEpithet>roseum</InfraspecificEpithet>
-            </CanonicalName>
-            <CanonicalAuthorship>
-                <Simple>Rehder</Simple>
-            </CanonicalAuthorship>
-            <PublishedIn>Bailey, Stand. Cycl. Hort. 5: 2947 (1916)</PublishedIn>
-        </TaxonName>
-        <TaxonName id="12" nomenclaturalCode="Botanical">
-            <Simple>Rhododendron pentaphyllum Maxim. var. shikokianum T. Yamazaki</Simple>
-            <Rank code="sp">species</Rank>
-            <CanonicalName>
-                <Simple>Rhododendron pentaphyllum var. shikokianum</Simple>
-                <Genus ref="0">Rhododendron</Genus>
-                <SpecificEpithet>pentaphyllum</SpecificEpithet>
-                <InfraspecificEpithet>shikokianum</InfraspecificEpithet>
-            </CanonicalName>
-            <CanonicalAuthorship>
-                <Simple>T. Yamazaki</Simple>
-            </CanonicalAuthorship>
-            <PublishedIn>Jap. Bot. 63: 312 (1988)</PublishedIn>
-        </TaxonName>
-    </TaxonNames>
-    <TaxonConcepts>
-        <TaxonConcept id="1">
-            <Name scientific="true" linkType="local" ref="2">Rhododendron sect. Sciadorhodion Rehder
-                &amp; Wilson</Name>
-            <Rank code="sect">Section</Rank>
-            <AccordingTo>
-                <Simple>Judd &amp; Kron (1995)</Simple>
-                <AccordingToDetailed>
-                    <PublishedIn linkType="local" ref="4">Judd &amp; Kron (1995) A Revision of
-                        Rhododendron VI </PublishedIn>
-                    <MicroReference>Page 13-14</MicroReference>
-                </AccordingToDetailed>
-            </AccordingTo>
-            <TaxonRelationships>
-                <TaxonRelationship type="is parent taxon of">
-                    <ToTaxonConcept linkType="local" ref="2"/>
-                </TaxonRelationship>
-            </TaxonRelationships>
-        </TaxonConcept>
-        <TaxonConcept id="2">
-            <Name scientific="true" linkType="local" ref="5">Rhododendron schlippenbachii Maxim.</Name>
-            <AccordingTo>
-                <Simple>Judd &amp; Kron (1995)</Simple>
-                <AccordingToDetailed>
-                    <PublishedIn linkType="local" ref="4"/>
-                    <MicroReference>Page 15</MicroReference>
-                </AccordingToDetailed>
-            </AccordingTo>
-            <TaxonRelationships>
-                <TaxonRelationship type="is child taxon of">
-                    <ToTaxonConcept ref="1">Rhododendron sect. Sciadorhodion Rehder &amp;
-                    Wilson</ToTaxonConcept>
-                </TaxonRelationship>
-            </TaxonRelationships>
-        </TaxonConcept>
-        <TaxonConcept id="3">
-            <Name scientific="true" ref="6">Azalea schlippenbachii (Maxim.) Kuntze</Name>
-            <AccordingTo>
-                <Simple>Kuntze (1891)</Simple>
-            </AccordingTo>
-            <TaxonRelationships>
-                <TaxonRelationship type="is congruent to">
-                    <ToTaxonConcept ref="2"/>
-                </TaxonRelationship>
-            </TaxonRelationships>
-        </TaxonConcept>
-        <TaxonConcept id="4">
-            <Name scientific="true" ref="7">Rhododendron pentaphyllum Maxim.</Name>
-            <AccordingTo>
-                <Simple>Judd &amp; Kron (1995)</Simple>
-            </AccordingTo>
-            <TaxonRelationships>
-                <!-- relationships linking to taxonconcept without any descriptive string -->
-                <TaxonRelationship type="has synonym">
-                    <ToTaxonConcept ref="6"/>
-                </TaxonRelationship>
-                <TaxonRelationship type="has synonym">
-                    <ToTaxonConcept ref="7"/>
-                </TaxonRelationship>
-                <!-- relationship with linking reference to another taxon concept and string description of concept -->
-                <TaxonRelationship type="has synonym">
-                    <ToTaxonConcept ref="8">Rhododendron pentaphyllum var. nikoense
-                    Komatsu</ToTaxonConcept>
-                </TaxonRelationship>
-                <!-- relationships without linking -->
-                <TaxonRelationship type="has synonym">
-                    <ToTaxonConcept>Rhododendron pentaphyllum Maxim. var. shikokianum T.
-                    Yamazaki</ToTaxonConcept>
-                </TaxonRelationship>
-                <TaxonRelationship type="has synonym">
-                    <ToTaxonConcept>Rhododendron quinquefolium Bisset &amp; S. Moore var. roseum
-                        Rehder</ToTaxonConcept>
-                </TaxonRelationship>
-            </TaxonRelationships>
-        </TaxonConcept>
-        <TaxonConcept id="6">
-            <Name scientific="true">Rhododendron nikoense (Komatsu) Nakai</Name>
-        </TaxonConcept>
-        <TaxonConcept id="7">
-            <Name scientific="true" ref="10">Rhododendron nikoense (Komatsu) Nakai</Name>
-        </TaxonConcept>
-        <TaxonConcept id="8">
-            <Name scientific="true" ref="9">Rhododendron pentaphyllum var. nikoense Komatsu</Name>
-        </TaxonConcept>
-    </TaxonConcepts>
-</DataSet>
diff --git a/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/store/CdmStoreTest.xml b/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/store/CdmStoreTest.xml
deleted file mode 100644 (file)
index 4e55b46..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>\r
-<dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../cdm/database/schema/dataset.dtd">\r
-  <HOMOTYPICALGROUP ID="1" CREATED="2008-12-10 09:56:07.0" UUID="7b214eb9-a6ac-48e5-af02-bbea634d2a03" UPDATED="2008-12-10 09:56:07.238"/>\r
-  <HOMOTYPICALGROUP ID="2" CREATED="2008-12-10 09:56:07.0" UUID="6c241a4c-e5a0-4344-8e5e-a81f17b75973" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="3" CREATED="2008-12-10 09:56:07.0" UUID="76eac2b8-9c5a-4b25-acd1-e4e0d894106f" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="4" CREATED="2008-12-10 09:56:07.0" UUID="3c6ff240-9cab-4ec9-b47e-97280318ab30" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="5" CREATED="2008-12-10 09:56:07.0" UUID="5cd73df5-1c72-44a6-9864-adb145d8bd56" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="6" CREATED="2008-12-10 09:56:07.0" UUID="335977f0-ef55-4294-b78b-aed47435b428" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="7" CREATED="2008-12-10 09:56:07.0" UUID="e902a44e-7b26-4dc5-8251-d62c48d01bad" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="8" CREATED="2008-12-10 09:56:07.0" UUID="4806e853-d7c3-4216-8fa1-022be728bd3c" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="9" CREATED="2008-12-10 09:56:07.0" UUID="c454bd99-c7f3-43d6-8846-5fcc24f0c31b" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="10" CREATED="2008-12-10 09:56:07.0" UUID="4a92945c-e198-4f59-a19c-717e0b83e9f0" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="11" CREATED="2008-12-10 09:56:07.0" UUID="c5e7f225-60c2-4001-9488-0f584ba522ea" UPDATED="2008-12-10 09:56:07.238"/>\r
-  <HOMOTYPICALGROUP ID="12" CREATED="2008-12-10 09:56:07.0" UUID="a4f0abc0-f6c3-42f0-98e9-10aec07415f2" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="13" CREATED="2008-12-10 09:56:07.0" UUID="9eb6d8c4-4b74-481f-9063-6251843606a3" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="14" CREATED="2008-12-10 09:56:07.0" UUID="2addf98d-ab27-4b26-ae1b-06fda059cddd" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="15" CREATED="2008-12-10 09:56:07.0" UUID="399af850-b662-4c3d-9038-ea5219af49de" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="16" CREATED="2008-12-10 09:56:07.0" UUID="ffb3e841-ea6a-4107-8dc7-7ee52f7ae500" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="17" CREATED="2008-12-10 09:56:07.0" UUID="de608141-143c-4337-91e9-4094fe814522" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="18" CREATED="2008-12-10 09:56:07.0" UUID="2f17e98b-d5bd-4c54-ab5c-e0fea4eaaae0" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="19" CREATED="2008-12-10 09:56:07.0" UUID="9a554521-7f2a-451d-8bea-64827d562db9" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="20" CREATED="2008-12-10 09:56:07.0" UUID="7dcc4480-9a81-47a5-9830-0a70c8f64b79" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="21" CREATED="2008-12-10 09:56:07.0" UUID="a779e64e-6d57-406f-97c2-f09187ef9d87" UPDATED="2008-12-10 09:56:07.238"/>\r
-  <HOMOTYPICALGROUP ID="22" CREATED="2008-12-10 09:56:07.0" UUID="9b17ca72-bdef-498a-bc76-cdbb2734c08d" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="23" CREATED="2008-12-10 09:56:07.0" UUID="b4406aa9-c923-40e8-b75e-39b434149a03" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="24" CREATED="2008-12-10 09:56:07.0" UUID="422bf053-72bb-4624-ac65-92de413c7ea2" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="25" CREATED="2008-12-10 09:56:07.0" UUID="1cb31fff-de80-455b-898e-7da8eea8ddb4" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="26" CREATED="2008-12-10 09:56:07.0" UUID="7dcdf873-5dfe-4349-9509-3aee3d3f830f" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="27" CREATED="2008-12-10 09:56:07.0" UUID="ff5ccd39-ac81-4859-a158-7487eddfcd2f" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="28" CREATED="2008-12-10 09:56:07.0" UUID="ca6c8000-a5da-4464-8f4b-8c602a7c58df" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="29" CREATED="2008-12-10 09:56:07.0" UUID="4a617bae-ef0d-4f4f-91d3-8f246dea1479" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="30" CREATED="2008-12-10 09:56:07.0" UUID="17fa02ae-3506-4ed3-b79e-611aa862cacc" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="31" CREATED="2008-12-10 09:56:07.0" UUID="cee3baf6-c479-4606-8d5a-bc8380167175" UPDATED="2008-12-10 09:56:07.238"/>\r
-  <HOMOTYPICALGROUP ID="32" CREATED="2008-12-10 09:56:07.0" UUID="036286ea-3379-4f86-b100-11179cf2e793" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="33" CREATED="2008-12-10 09:56:07.0" UUID="a218a8e3-70ae-4c58-9463-7725e1b8e112" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="34" CREATED="2008-12-10 09:56:07.0" UUID="5381dcb7-bddf-49d5-8669-1f34d8a43b32" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="35" CREATED="2008-12-10 09:56:07.0" UUID="baf4e929-4291-4635-aa35-1255069eefe6" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="36" CREATED="2008-12-10 09:56:07.0" UUID="b2b007a4-9c8c-43a1-8da4-20ed85464cf2" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="37" CREATED="2008-12-10 09:56:07.0" UUID="c9bb41cf-d577-46d6-932e-45e5d85f573e" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <REFERENCEBASE DTYPE="Book" ID="1" CREATED="2008-12-10 09:56:07.0" UUID="596b1325-be50-4b0a-9aa2-3ecd610215f2" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Lorem ipsum" PROTECTEDTITLECACHE="true" NOMENCLATURALLYRELEVANT="false" HASPROBLEM="false" PROBLEMENDS="-1" PROBLEMSTARTS="-1"/>\r
-  <REFERENCEBASE DTYPE="WebPage" ID="2" CREATED="2008-12-10 09:56:07.0" UUID="ad4322b7-4b05-48af-be70-f113e46c545e" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="cate-sphingidae.org" PROTECTEDTITLECACHE="true" NOMENCLATURALLYRELEVANT="false" HASPROBLEM="false" PROBLEMENDS="-1" PROBLEMSTARTS="-1"/>\r
-  <REFERENCEBASE DTYPE="WebPage" ID="3" CREATED="2008-12-10 09:56:07.0" UUID="ad4322b7-4b05-48af-be70-f113e46c545e" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="cate-araceae.org" PROTECTEDTITLECACHE="true" NOMENCLATURALLYRELEVANT="false" HASPROBLEM="false" PROBLEMENDS="-1" PROBLEMSTARTS="-1"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="1" SEC_ID="1" CREATED="2008-12-10 09:56:07.0" UUID="496b1325-be50-4b0a-9aa2-3ecd610215f2" UPDATED="2008-12-10 09:56:07.253" TITLECACHE=" sec. ???" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="1"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="2" SEC_ID="1" CREATED="2008-12-10 09:56:07.0" UUID="822d98dc-9ef7-44b7-a870-94573a3bcb46" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="  sec. ???" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONOMICPARENTCACHE_ID="1" TAXONNAME_FK="2"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="3" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="54e767ee-894e-4540-a758-f906ecb4e2d9" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Sphingidae Linnaeus, 1758 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="3"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="4" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="ef96fafa-7750-4141-b31b-1ad1daab3e76" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Lathoe Fabricius, 1807 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="4"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="5" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="17233b5e-74e7-42fc-bc37-522684657ed4" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Smerinthus Latreille, 1802 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="5"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="6" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="b989a278-c414-49f7-9a10-7d784700e4c4" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Manduca Hübner, 1807 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="6"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="7" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="15611343-6b11-487f-8233-4756a49a83e2" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Lepchina Oberthür, 1904 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="7"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="8" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="1489d3dd-71da-4b34-aa5a-d15fccb6bb22" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Smerinthus kindermannii Lederer, 1853 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="8"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="9" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="900052b7-b69c-4e26-a8f0-01c215214c40" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Mimas Hübner, 1819 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="9"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="10" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="8e312b40-924f-46b7-8e8d-837f9ad12f51" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Callambulyx Rothschild &amp; Jordan, 1903 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="10"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="11" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="53fac190-0b4b-44f5-b4e7-b1ca9a25a6e9" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Dolbina Staudinger, 1877 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="11"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="12" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="7748d6f0-04d8-4052-9904-c43f55682419" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Akbesia Rothschild &amp; Jordan, 1903 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="12"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="13" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="63f251fa-f283-46bb-ad42-7390f0a1e806" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Sphinx Linnaeus, 1758 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="13"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="14" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="00245994-149e-4cc4-8186-aefd48d4acf8" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Agrius Hübner, 1819 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="14"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="15" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="c5cc8674-4242-49a4-aada-72d63194f5fa" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Acherontia Laspeyres, 1809 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="15"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="16" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="6ecc117a-3e9a-4030-8748-f63a0412e065" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Hemaris Dalman, 1816 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="16"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="17" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="f6700b5b-b6dc-421a-b979-9429ffad8262" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Proserpinus Hübner, 1819 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="17"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="18" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="b503efaf-b800-421b-beba-3c6fab4b3c34" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Sphingonaepiopsis Wallengren, 1858 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="18"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="19" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="a9f42927-e507-4fda-9629-62073a908aae" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Rethera Rothschild &amp; Jordan, 1903 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="19"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="20" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="557ac748-90df-47a6-b6f4-92d7b1d53abb" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Daphnis Hübner, 1819 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="20"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="21" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="c089d514-f599-4f5a-bc90-3a11176d0f76" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Clarina Tutt, 1903 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="21"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="22" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="74ad1d5e-4f73-4e0d-a209-4bf07abd33fa" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Acosmeryx Boisduval, 1875 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="22"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="23" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="8ecb0dfa-31fd-4f5a-bb83-b897cda813db" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Macroglossum Scopoli, 1777 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="23"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="24" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="3d2a3441-4602-405f-8ba7-0685d88d7235" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Hyles Hübner, 1819 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="24"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="25" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="4b47c134-0c99-43c9-a046-620a195cd69e" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Deilephila Laspeyres, 1809 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="25"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="26" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="7832c932-f687-4180-a808-fa82d57a9ac8" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Hippotion Hübner, 1819 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="26"/>\r
-  <TAXONBASE DTYPE="Synonym" ID="27" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="d75b2e3d-7394-4ada-b6a5-93175b8751c1" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Atropos Agassiz, 1846 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONNAME_FK="27" TAXONSTATUSUNKNOWN="false" ACCEPTEDTAXON_ID="15" TYPE_ID="846" />\r
-  <TAXONBASE DTYPE="Synonym" ID="28" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="6bfedf25-6dbc-4d5c-9d56-84f9052f3b2a" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Atropos Oken, 1815 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONNAME_FK="28" TAXONSTATUSUNKNOWN="false" ACCEPTEDTAXON_ID="15" TYPE_ID="846" />\r
-  <TAXONBASE DTYPE="Synonym" ID="29" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="b3cc5671-5082-4e67-9310-aa88b331f3c7" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Brachyglossa Boisduval, 1828 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONNAME_FK="29" TAXONSTATUSUNKNOWN="false" ACCEPTEDTAXON_ID="15" TYPE_ID="846" />\r
-  <TAXONBASE DTYPE="Synonym" ID="30" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="f017e915-0266-4f6d-8db4-eff4e8d6af5c" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Manduca Hübner, 1806 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONNAME_FK="30" TAXONSTATUSUNKNOWN="false" ACCEPTEDTAXON_ID="15" TYPE_ID="846" />\r
-  <TAXONBASE DTYPE="Synonym" ID="31" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="3da4ab34-6c50-4586-801e-732615899b07" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Atropos Leach, 1815 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONNAME_FK="31" TAXONSTATUSUNKNOWN="false" ACCEPTEDTAXON_ID="15" TYPE_ID="847" />\r
-  <TAXONBASE DTYPE="Taxon" ID="32" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="d88aa25c-7984-4870-bc9c-821f094d3a48" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Manduca afflicta (Grote, 1865) sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="32"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="33" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="2c41e444-b160-4c6a-a1be-d5317d97d68d" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Manduca bergarmatipes (Clark, 1927) sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="33"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="34" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="7fe66bfd-235b-4164-8f0a-d054b5e962ba" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Manduca chinchilla (Gehlen, 1942) sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="34"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="35" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="4cab3cc5-eb80-477c-ac1b-be3c3d0a5a85" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Acherontia atropos (Linnaeus, 1758) sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="35"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="36" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="b04cc9cb-2b4a-4cc4-a94a-3c93a2158b06" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Acherontia lachesis (Fabricius, 1798) sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="36"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="37" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="7b8b5cb3-37ba-4dba-91ac-4c6ffd6ac331" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Acherontia styx Westwood, 1847 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="37"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="38" SEC_ID="3" CREATED="2008-12-10 09:56:07.0" UUID="bc09aca6-06fd-4905-b1e7-cbf7cc65d783" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Cryptocoryne x purpurea nothovar borneoensis N.Jacobsen, Bastm. &amp; Yuji Sasaki sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="38"/>\r
-  <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" CREATED="2008-12-10 09:56:07.0" UUID="a49a3963-c4ea-4047-8588-2f8f15352730" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" NAMECACHE="Aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="1" RANK_ID="774" GENUSORUNINOMIAL="Aus" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" CREATED="2008-12-10 09:56:07.0" UUID="05a438d6-065f-49ef-84db-c7dc2c259975" UPDATED="2008-12-10 09:56:07.253" TITLECACHE=" " PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE=" " PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" NAMECACHE="Aus aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2" RANK_ID="765" GENUSORUNINOMIAL="Aus" SPECIFICEPITHET="aus"  NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="3" CREATED="2008-12-10 09:56:07.0" UUID="9640a158-2bdb-4cbc-bff6-8f77e781f86b" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Sphingidae Linnaeus, 1758" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Linnaeus, 1758" NAMECACHE="Sphingidae" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="3" RANK_ID="782" GENUSORUNINOMIAL="Sphingidae" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="4" CREATED="2008-12-10 09:56:07.0" UUID="446d8d76-e206-49e1-b6da-d06ce1f296e1" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Lathoe Fabricius, 1807" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Fabricius, 1807" NAMECACHE="Laothoe" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="4" RANK_ID="774" GENUSORUNINOMIAL="Laothoe" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="5" CREATED="2008-12-10 09:56:07.0" UUID="3d0b9061-fc9d-4de5-9dc1-341e10eb139e" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Smerinthus Latreille, 1802" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Latreille, 1802" NAMECACHE="Smerinthus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="5" RANK_ID="774" GENUSORUNINOMIAL="Smerinthus" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="6" CREATED="2008-12-10 09:56:07.0" UUID="e4d3c75c-3bfb-451e-ade1-e5e0307879dd" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Manduca Hübner, 1807" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Hübner, 1807" NAMECACHE="Manduca" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="6" RANK_ID="774" GENUSORUNINOMIAL="Manduca" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="7" CREATED="2008-12-10 09:56:07.0" UUID="9dcb7f80-05c6-4eb0-bc04-8a72353a67d7" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Lepchina Oberthür, 1904" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Oberthür, 1904" NAMECACHE="Lepchina" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="7" RANK_ID="774" GENUSORUNINOMIAL="Lepchina" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="8" CREATED="2008-12-10 09:56:07.0" UUID="f2983a50-5121-4641-a9ab-0507821b7563" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Smerinthus kindermannii Lederer, 1853" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Lederer, 1853" NAMECACHE="Smerinthus kindermannii" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="8" RANK_ID="765" GENUSORUNINOMIAL="Smerinthus" SPECIFICEPITHET="kindermannii" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="9" CREATED="2008-12-10 09:56:07.0" UUID="73a90270-16bb-43f6-b7f0-305b617c9971" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Mimas Hübner, 1819" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Hübner, 1819" NAMECACHE="Mimas" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="9" RANK_ID="774" GENUSORUNINOMIAL="Mimas" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="10" CREATED="2008-12-10 09:56:07.0" UUID="a67e7431-5c04-4cb6-b83e-c50c439561fe" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Callambulyx Rothschild &amp; Jordan, 1903" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Rothschild &amp; Jordan, 1903" NAMECACHE="Callambulyx" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="10" RANK_ID="774" GENUSORUNINOMIAL="Callambulyx" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="11" CREATED="2008-12-10 09:56:07.0" UUID="8e6aaf9b-5b99-4525-873b-f535d35834ac" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Dolbina Staudinger, 1877" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Staudinger, 1877" NAMECACHE="Dolbina" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="11" RANK_ID="774" GENUSORUNINOMIAL="Dolbina" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="12" CREATED="2008-12-10 09:56:07.0" UUID="c1864a99-c025-47e1-87f5-5917b905cca1" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Akbesia Rothschild &amp; Jordan, 1903" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Rothschild &amp; Jordan, 1903" NAMECACHE="Akbesia" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="12" RANK_ID="774" GENUSORUNINOMIAL="Akbesia" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="13" CREATED="2008-12-10 09:56:07.0" UUID="071a336b-3f31-44d8-bc81-4505dd7ca50b" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Sphinx Linnaeus, 1758" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Linnaeus, 1758" NAMECACHE="Sphinx" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="13" RANK_ID="774" GENUSORUNINOMIAL="Sphinx" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="14" CREATED="2008-12-10 09:56:07.0" UUID="e8bf37f5-5b87-43dc-8481-a2e58e4f1e71" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Agrius Hübner, 1819" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Hübner, 1819" NAMECACHE="Agrius" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="14" RANK_ID="774" GENUSORUNINOMIAL="Agrius" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="15" CREATED="2008-12-10 09:56:07.0" UUID="c2cab2ad-3e3a-47b8-8aa8-d9e1c0857647" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Acherontia Laspeyres, 1809" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Laspeyres, 1809" NAMECACHE="Acherontia" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="15" RANK_ID="774" GENUSORUNINOMIAL="Acherontia" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="16" CREATED="2008-12-10 09:56:07.0" UUID="3d54aed8-7caa-4c74-bbe2-7b946b63f39b" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Hemaris Dalman, 1816" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Dalman, 1816" NAMECACHE="Hemaris" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="16" RANK_ID="774" GENUSORUNINOMIAL="Hemaris" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="17" CREATED="2008-12-10 09:56:07.0" UUID="2a91a640-ab5a-4993-a58d-a07c0f2ecba3" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Proserpinus Hübner, 1819" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Hübner, 1819" NAMECACHE="Proserpinus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="17" RANK_ID="774" GENUSORUNINOMIAL="Proserpinus" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="18" CREATED="2008-12-10 09:56:07.0" UUID="3f159abb-55fa-4c62-966d-3ff1ebc7b34b" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Sphingonaepiopsis Wallengren, 1858" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Wallengren, 1858" NAMECACHE="Sphingonaepiopsis" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="18" RANK_ID="774" GENUSORUNINOMIAL="Sphingonaepiopsis" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="19" CREATED="2008-12-10 09:56:07.0" UUID="2910ccab-35ea-45bb-ba1a-e8bceed11bd2" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Rethera Rothschild &amp; Jordan, 1903" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Rothschild &amp; Jordan, 1903" NAMECACHE="Rethera" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="19" RANK_ID="774" GENUSORUNINOMIAL="Rethera" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="20" CREATED="2008-12-10 09:56:07.0" UUID="e400203b-9b0f-4bc7-8aea-9f060de276de" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Daphnis Hübner, 1819" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Hübner, 1819" NAMECACHE="Rethera" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="20" RANK_ID="774" GENUSORUNINOMIAL="Daphnis" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="21" CREATED="2008-12-10 09:56:07.0" UUID="66354004-1ae2-4aa0-b4d6-d2c6c15a2fb5" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Clarina Tutt, 1903" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Tutt, 1903" NAMECACHE="Clarina" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="21" RANK_ID="774" GENUSORUNINOMIAL="Clarina" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="22" CREATED="2008-12-10 09:56:07.0" UUID="f57b8d58-e89d-40ea-9d5b-a2cf96d017eb" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Acosmeryx Boisduval, 1875" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Boisduval, 1875" NAMECACHE="Acosmeryx" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="22" RANK_ID="774" GENUSORUNINOMIAL="Acosmeryx" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="23" CREATED="2008-12-10 09:56:07.0" UUID="c3007d9a-3a7c-4cb1-9818-f4f529e760a4" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Macroglossum Scopoli, 1777" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Scopoli, 1777" NAMECACHE="Macroglossum" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="23" RANK_ID="774" GENUSORUNINOMIAL="Macroglossum" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="24" CREATED="2008-12-10 09:56:07.0" UUID="aa3dadc8-dc13-4e35-86cd-fd3ca2e796ca" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Hyles Hübner, 1819" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Hübner, 1819" NAMECACHE="Hyles" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="24" RANK_ID="774" GENUSORUNINOMIAL="Hyles" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="25" CREATED="2008-12-10 09:56:07.0" UUID="1673213d-60b4-4770-a8e9-509882340d0a" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Deilephila Laspeyres, 1809" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Laspeyres, 1809" NAMECACHE="Deilephila" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="25" RANK_ID="774" GENUSORUNINOMIAL="Deilephila" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="26" CREATED="2008-12-10 09:56:07.0" UUID="862897cc-a3e6-436d-899a-96f82d02b4a2" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Hippotion Hübner, 1819" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Hübner, 1819" NAMECACHE="Hippotion" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="26" RANK_ID="774" GENUSORUNINOMIAL="Hippotion" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="27" CREATED="2008-12-10 09:56:07.0" UUID="27004fcc-14d4-47d4-a3e1-75750fdb5b79" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Atropos Agassiz, 1846" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Agassiz, 1846" NAMECACHE="Atropos" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="27" RANK_ID="774" GENUSORUNINOMIAL="Atropos" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="28" CREATED="2008-12-10 09:56:07.0" UUID="748ccb21-f3a4-4f32-a514-53931965ca2d" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Atropos Oken, 1815" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Oken, 1815" NAMECACHE="Atropos" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="28" RANK_ID="774" GENUSORUNINOMIAL="Atropos" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="29" CREATED="2008-12-10 09:56:07.0" UUID="ea1f496a-c4cc-49e4-96d6-f46d58d23297" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Brachyglossa Boisduval, 1828" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Boisduval, 1828" NAMECACHE="Brachyglossa" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="29" RANK_ID="774" GENUSORUNINOMIAL="Brachyglossa" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="30" CREATED="2008-12-10 09:56:07.0" UUID="238e41b3-9f4f-44b7-8cf5-28090febe9bb" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Manduca Hübner, 1806" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Hübner, 1806" NAMECACHE="Manduca" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="30" RANK_ID="774" GENUSORUNINOMIAL="Manduca" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="31" CREATED="2008-12-10 09:56:07.0" UUID="feda2055-292c-4391-86b7-06bfdab77472" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Atropos Leach, 1815" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Leach, 1815" NAMECACHE="Atropos" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="15" RANK_ID="774" GENUSORUNINOMIAL="Atropos" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="32" CREATED="2008-12-10 09:56:07.0" UUID="9faf43ed-2003-4bc2-9dfd-61c71eaa3829" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Manduca afflicta (Grote, 1865)" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="(Grote, 1865)" NAMECACHE="Manduca afflicta" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="31" RANK_ID="765" GENUSORUNINOMIAL="Manduca" SPECIFICEPITHET="afflicta" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="33" CREATED="2008-12-10 09:56:07.0" UUID="666ecfcd-9ee3-41d4-8c47-7cb692cb7f27" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Manduca bergarmatipes (Clark, 1927)" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="(Clark, 1927)" NAMECACHE="Manduca bergarmatipes" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="32" RANK_ID="765" GENUSORUNINOMIAL="Manduca" SPECIFICEPITHET="bergarmatipes" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="34" CREATED="2008-12-10 09:56:07.0" UUID="31b6c4fb-fcd1-4ce7-b26a-2ca15a6c8ac5" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Manduca chinchilla (Gehlen, 1942)" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="(Gehlen, 1942)" NAMECACHE="Manduca chinchilla" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="33" RANK_ID="765" GENUSORUNINOMIAL="Manduca" SPECIFICEPITHET="chinchilla" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="35" CREATED="2008-12-10 09:56:07.0" UUID="866278ea-0a6a-4308-acb3-e7e22624e5ea" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Acherontia atropos (Linnaeus, 1758)" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="(Linnaeus, 1758)" NAMECACHE="Acherontia atropos" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="34" RANK_ID="765" GENUSORUNINOMIAL="Acherontia" SPECIFICEPITHET="atropos" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="36" CREATED="2008-12-10 09:56:07.0" UUID="7969821b-a2cf-4d01-95ec-6a5ed0ca3f69" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Acherontia lachesis (Fabricius, 1798)" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="(Fabricius, 1798)" NAMECACHE="Acherontia lachesis" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="35" RANK_ID="765" GENUSORUNINOMIAL="Acherontia" SPECIFICEPITHET="lachesis" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="37" CREATED="2008-12-10 09:56:07.0" UUID="61b1dcae-8aa6-478a-bcd6-080cf0eb6ad7" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Acherontia styx Westwood, 1847" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Westwood, 1847" NAMECACHE="Acherontia styx" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="36" RANK_ID="765" GENUSORUNINOMIAL="Acherontia" SPECIFICEPITHET="styx" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="BotanicalName" ID="38" CREATED="2008-12-10 09:56:07.0" UUID="c9e7124b-2e60-4df2-996c-b7d024c85d33" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Cryptocoryne x purpurea nothovar borneoensis N.Jacobsen, Bastm. &amp; Yuji Sasaki" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="N.Jacobsen, Bastm. &amp; Yuji Sasaki" NAMECACHE="Cryptocoryne x purpurea nothovar borneoensis" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="true" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="37" RANK_ID="761" GENUSORUNINOMIAL="Cryptocoryne" SPECIFICEPITHET="purpurea" INFRASPECIFICEPITHET="borneoensis" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONRELATIONSHIP ID="1" CREATED="2008-12-10 09:56:07.0" UUID="25064dff-f526-408e-b851-670d7770e337" UPDATED="2008-12-10 09:56:07.253" CITATIONMICROREFERENCE="Lorem ipsum dolor" RELATEDFROM_ID="2" RELATEDTO_ID="1" TYPE_ID="889"/>\r
-  <TAXONRELATIONSHIP ID="2" CREATED="2008-12-10 09:56:07.0" UUID="5cf04da3-74a8-446c-9cec-9e2e78bed4f7" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="4" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="3" CREATED="2008-12-10 09:56:07.0" UUID="b5694cbc-c353-40cb-a029-abea64c08a4b" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="5" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="4" CREATED="2008-12-10 09:56:07.0" UUID="8ddfcad5-02fc-4ba5-911d-52790a5236bd" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="6" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="5" CREATED="2008-12-10 09:56:07.0" UUID="4222ca4a-3fb1-4e66-8f0c-b69439c35466" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="7" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="6" CREATED="2008-12-10 09:56:07.0" UUID="9537d7f1-6484-4396-b7db-e1be52d247c6" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="8" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="7" CREATED="2008-12-10 09:56:07.0" UUID="df457da4-1f11-487d-941a-df6d4f88ba7d" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="9" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="8" CREATED="2008-12-10 09:56:07.0" UUID="6e7a347e-0761-4035-bfaf-4529908f77c1" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="10" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="9" CREATED="2008-12-10 09:56:07.0" UUID="f963474b-9c42-4d4f-a940-8ece9c2e9b4d" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="11" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="10" CREATED="2008-12-10 09:56:07.0" UUID="7ee82501-4141-4330-811c-892da5630f1e" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="12" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="11" CREATED="2008-12-10 09:56:07.0" UUID="2683cd9f-cf13-4284-bd77-5464631851ca" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="13" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="12" CREATED="2008-12-10 09:56:07.0" UUID="09d24cc7-3d42-4144-9341-91e614deed31" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="14" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="13" CREATED="2008-12-10 09:56:07.0" UUID="e2fcf58d-8362-404d-af4a-db7dc09d347c" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="15" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="14" CREATED="2008-12-10 09:56:07.0" UUID="11f506d1-a5ca-4a7b-ba1c-a5e12f6e1c19" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="16" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="15" CREATED="2008-12-10 09:56:07.0" UUID="894ca804-41d2-4dbe-b1a6-0b539bb34cc2" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="17" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="16" CREATED="2008-12-10 09:56:07.0" UUID="6d34e195-d647-4aab-914a-3c05793ab542" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="18" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="17" CREATED="2008-12-10 09:56:07.0" UUID="6d34e195-d647-4aab-914a-3c05793ab542" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="19" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="18" CREATED="2008-12-10 09:56:07.0" UUID="946dd020-b059-4a6c-8485-7f9584e35558" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="20" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="19" CREATED="2008-12-10 09:56:07.0" UUID="296473d0-0635-482b-b6af-0b7e1b73f526" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="21" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="20" CREATED="2008-12-10 09:56:07.0" UUID="18a5b4e2-7517-4443-add0-27d5789af9bb" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="22" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="21" CREATED="2008-12-10 09:56:07.0" UUID="1d279ded-7130-49d7-bc01-4ddeb665a0e2" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="23" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="22" CREATED="2008-12-10 09:56:07.0" UUID="7cd235ca-0b52-46aa-8a28-3e8581d3494d" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="24" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="23" CREATED="2008-12-10 09:56:07.0" UUID="d1195b65-1554-4047-a0c2-54db7e9996b3" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="25" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="24" CREATED="2008-12-10 09:56:07.0" UUID="7ba3d7c9-4ba3-48d9-8ae8-6fad26487d46" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="26" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="25" CREATED="2008-12-10 09:56:07.0" UUID="90c6866e-04db-404b-be87-5055f011b392" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="6" RELATEDFROM_ID="32" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="26" CREATED="2008-12-10 09:56:07.0" UUID="5a47aff4-9fb4-477a-bcab-4393c577eee6" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="6" RELATEDFROM_ID="33" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="27" CREATED="2008-12-10 09:56:07.0" UUID="ca1e0be3-cb42-44aa-a4c5-60956d7eec66" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="6" RELATEDFROM_ID="34" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="28" CREATED="2008-12-10 09:56:07.0" UUID="6a7dd40f-1b77-467f-ae97-cfe76e28506d" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="15" RELATEDFROM_ID="35" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="29" CREATED="2008-12-10 09:56:07.0" UUID="b075aa3c-9b58-4a1d-b144-d7ed2f7ca78d" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="15" RELATEDFROM_ID="36" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="30" CREATED="2008-12-10 09:56:07.0" UUID="c11aea8f-ca80-4c44-ada5-9b45293434bd" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="15" RELATEDFROM_ID="37" TYPE_ID="889" DOUBTFUL="false"/>\r
-</dataset>
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/store/ConcurrentSessionTest.xml b/eu.etaxonomy.taxeditor.store/src/test/resources/eu/etaxonomy/taxeditor/store/ConcurrentSessionTest.xml
deleted file mode 100644 (file)
index 16aa00f..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>\r
-<dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../cdm/database/schema/dataset.dtd">\r
-  <HOMOTYPICALGROUP ID="1" CREATED="2008-12-10 09:56:07.0" UUID="7b214eb9-a6ac-48e5-af02-bbea634d2a03" UPDATED="2008-12-10 09:56:07.238"/>\r
-  <HOMOTYPICALGROUP ID="2" CREATED="2008-12-10 09:56:07.0" UUID="6c241a4c-e5a0-4344-8e5e-a81f17b75973" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="3" CREATED="2008-12-10 09:56:07.0" UUID="76eac2b8-9c5a-4b25-acd1-e4e0d894106f" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="4" CREATED="2008-12-10 09:56:07.0" UUID="3c6ff240-9cab-4ec9-b47e-97280318ab30" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="5" CREATED="2008-12-10 09:56:07.0" UUID="5cd73df5-1c72-44a6-9864-adb145d8bd56" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="6" CREATED="2008-12-10 09:56:07.0" UUID="335977f0-ef55-4294-b78b-aed47435b428" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="7" CREATED="2008-12-10 09:56:07.0" UUID="e902a44e-7b26-4dc5-8251-d62c48d01bad" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="8" CREATED="2008-12-10 09:56:07.0" UUID="4806e853-d7c3-4216-8fa1-022be728bd3c" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="9" CREATED="2008-12-10 09:56:07.0" UUID="c454bd99-c7f3-43d6-8846-5fcc24f0c31b" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="10" CREATED="2008-12-10 09:56:07.0" UUID="4a92945c-e198-4f59-a19c-717e0b83e9f0" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="11" CREATED="2008-12-10 09:56:07.0" UUID="c5e7f225-60c2-4001-9488-0f584ba522ea" UPDATED="2008-12-10 09:56:07.238"/>\r
-  <HOMOTYPICALGROUP ID="12" CREATED="2008-12-10 09:56:07.0" UUID="a4f0abc0-f6c3-42f0-98e9-10aec07415f2" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="13" CREATED="2008-12-10 09:56:07.0" UUID="9eb6d8c4-4b74-481f-9063-6251843606a3" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="14" CREATED="2008-12-10 09:56:07.0" UUID="2addf98d-ab27-4b26-ae1b-06fda059cddd" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="15" CREATED="2008-12-10 09:56:07.0" UUID="399af850-b662-4c3d-9038-ea5219af49de" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="16" CREATED="2008-12-10 09:56:07.0" UUID="ffb3e841-ea6a-4107-8dc7-7ee52f7ae500" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="17" CREATED="2008-12-10 09:56:07.0" UUID="de608141-143c-4337-91e9-4094fe814522" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="18" CREATED="2008-12-10 09:56:07.0" UUID="2f17e98b-d5bd-4c54-ab5c-e0fea4eaaae0" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="19" CREATED="2008-12-10 09:56:07.0" UUID="9a554521-7f2a-451d-8bea-64827d562db9" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="20" CREATED="2008-12-10 09:56:07.0" UUID="7dcc4480-9a81-47a5-9830-0a70c8f64b79" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="21" CREATED="2008-12-10 09:56:07.0" UUID="a779e64e-6d57-406f-97c2-f09187ef9d87" UPDATED="2008-12-10 09:56:07.238"/>\r
-  <HOMOTYPICALGROUP ID="22" CREATED="2008-12-10 09:56:07.0" UUID="9b17ca72-bdef-498a-bc76-cdbb2734c08d" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="23" CREATED="2008-12-10 09:56:07.0" UUID="b4406aa9-c923-40e8-b75e-39b434149a03" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="24" CREATED="2008-12-10 09:56:07.0" UUID="422bf053-72bb-4624-ac65-92de413c7ea2" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="25" CREATED="2008-12-10 09:56:07.0" UUID="1cb31fff-de80-455b-898e-7da8eea8ddb4" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="26" CREATED="2008-12-10 09:56:07.0" UUID="7dcdf873-5dfe-4349-9509-3aee3d3f830f" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="27" CREATED="2008-12-10 09:56:07.0" UUID="ff5ccd39-ac81-4859-a158-7487eddfcd2f" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="28" CREATED="2008-12-10 09:56:07.0" UUID="ca6c8000-a5da-4464-8f4b-8c602a7c58df" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="29" CREATED="2008-12-10 09:56:07.0" UUID="4a617bae-ef0d-4f4f-91d3-8f246dea1479" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="30" CREATED="2008-12-10 09:56:07.0" UUID="17fa02ae-3506-4ed3-b79e-611aa862cacc" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="31" CREATED="2008-12-10 09:56:07.0" UUID="cee3baf6-c479-4606-8d5a-bc8380167175" UPDATED="2008-12-10 09:56:07.238"/>\r
-  <HOMOTYPICALGROUP ID="32" CREATED="2008-12-10 09:56:07.0" UUID="036286ea-3379-4f86-b100-11179cf2e793" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="33" CREATED="2008-12-10 09:56:07.0" UUID="a218a8e3-70ae-4c58-9463-7725e1b8e112" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="34" CREATED="2008-12-10 09:56:07.0" UUID="5381dcb7-bddf-49d5-8669-1f34d8a43b32" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="35" CREATED="2008-12-10 09:56:07.0" UUID="baf4e929-4291-4635-aa35-1255069eefe6" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="36" CREATED="2008-12-10 09:56:07.0" UUID="b2b007a4-9c8c-43a1-8da4-20ed85464cf2" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <HOMOTYPICALGROUP ID="37" CREATED="2008-12-10 09:56:07.0" UUID="c9bb41cf-d577-46d6-932e-45e5d85f573e" UPDATED="2008-12-10 09:56:07.253"/>\r
-  <REFERENCEBASE DTYPE="Book" ID="1" CREATED="2008-12-10 09:56:07.0" UUID="596b1325-be50-4b0a-9aa2-3ecd610215f2" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Lorem ipsum" PROTECTEDTITLECACHE="true" NOMENCLATURALLYRELEVANT="false" HASPROBLEM="false" PROBLEMENDS="-1" PROBLEMSTARTS="-1"/>\r
-  <REFERENCEBASE DTYPE="WebPage" ID="2" CREATED="2008-12-10 09:56:07.0" UUID="ad4322b7-4b05-48af-be70-f113e46c545e" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="cate-sphingidae.org" PROTECTEDTITLECACHE="true" NOMENCLATURALLYRELEVANT="false" HASPROBLEM="false" PROBLEMENDS="-1" PROBLEMSTARTS="-1"/>\r
-  <REFERENCEBASE DTYPE="WebPage" ID="3" CREATED="2008-12-10 09:56:07.0" UUID="ad4322b7-4b05-48af-be70-f113e46c545e" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="cate-araceae.org" PROTECTEDTITLECACHE="true" NOMENCLATURALLYRELEVANT="false" HASPROBLEM="false" PROBLEMENDS="-1" PROBLEMSTARTS="-1"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="1" SEC_ID="1" CREATED="2008-12-10 09:56:07.0" UUID="496b1325-be50-4b0a-9aa2-3ecd610215f2" UPDATED="2008-12-10 09:56:07.253" TITLECACHE=" sec. ???" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false"  TAXONNAME_FK="1"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="2" SEC_ID="1" CREATED="2008-12-10 09:56:07.0" UUID="822d98dc-9ef7-44b7-a870-94573a3bcb46" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="  sec. ???" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONOMICPARENTCACHE_ID="1" TAXONNAME_FK="2"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="3" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="54e767ee-894e-4540-a758-f906ecb4e2d9" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Sphingidae Linnaeus, 1758 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="3"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="4" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="ef96fafa-7750-4141-b31b-1ad1daab3e76" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Lathoe Fabricius, 1807 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="4"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="5" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="17233b5e-74e7-42fc-bc37-522684657ed4" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Smerinthus Latreille, 1802 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="5"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="6" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="b989a278-c414-49f7-9a10-7d784700e4c4" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Manduca Hübner, 1807 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="6"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="7" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="15611343-6b11-487f-8233-4756a49a83e2" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Lepchina Oberthür, 1904 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="7"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="8" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="1489d3dd-71da-4b34-aa5a-d15fccb6bb22" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Smerinthus kindermannii Lederer, 1853 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="8"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="9" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="900052b7-b69c-4e26-a8f0-01c215214c40" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Mimas Hübner, 1819 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="9"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="10" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="8e312b40-924f-46b7-8e8d-837f9ad12f51" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Callambulyx Rothschild &amp; Jordan, 1903 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="10"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="11" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="53fac190-0b4b-44f5-b4e7-b1ca9a25a6e9" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Dolbina Staudinger, 1877 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="11"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="12" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="7748d6f0-04d8-4052-9904-c43f55682419" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Akbesia Rothschild &amp; Jordan, 1903 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false"  TAXONNAME_FK="12"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="13" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="63f251fa-f283-46bb-ad42-7390f0a1e806" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Sphinx Linnaeus, 1758 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="13"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="14" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="00245994-149e-4cc4-8186-aefd48d4acf8" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Agrius Hübner, 1819 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="14"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="15" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="c5cc8674-4242-49a4-aada-72d63194f5fa" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Acherontia Laspeyres, 1809 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="15"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="16" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="6ecc117a-3e9a-4030-8748-f63a0412e065" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Hemaris Dalman, 1816 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="16"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="17" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="f6700b5b-b6dc-421a-b979-9429ffad8262" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Proserpinus Hübner, 1819 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="17"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="18" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="b503efaf-b800-421b-beba-3c6fab4b3c34" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Sphingonaepiopsis Wallengren, 1858 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="18"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="19" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="a9f42927-e507-4fda-9629-62073a908aae" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Rethera Rothschild &amp; Jordan, 1903 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="19"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="20" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="557ac748-90df-47a6-b6f4-92d7b1d53abb" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Daphnis Hübner, 1819 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="20"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="21" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="c089d514-f599-4f5a-bc90-3a11176d0f76" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Clarina Tutt, 1903 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="21"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="22" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="74ad1d5e-4f73-4e0d-a209-4bf07abd33fa" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Acosmeryx Boisduval, 1875 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="22"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="23" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="8ecb0dfa-31fd-4f5a-bb83-b897cda813db" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Macroglossum Scopoli, 1777 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="23"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="24" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="3d2a3441-4602-405f-8ba7-0685d88d7235" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Hyles Hübner, 1819 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="24"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="25" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="4b47c134-0c99-43c9-a046-620a195cd69e" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Deilephila Laspeyres, 1809 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="25"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="26" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="7832c932-f687-4180-a808-fa82d57a9ac8" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Hippotion Hübner, 1819 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="26"/>\r
-  <TAXONBASE DTYPE="Synonym" ID="27" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="d75b2e3d-7394-4ada-b6a5-93175b8751c1" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Atropos Agassiz, 1846 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONNAME_FK="27" TAXONSTATUSUNKNOWN="false" ACCEPTEDTAXON_ID="15" TYPE_ID="846" />\r
-  <TAXONBASE DTYPE="Synonym" ID="28" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="6bfedf25-6dbc-4d5c-9d56-84f9052f3b2a" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Atropos Oken, 1815 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONNAME_FK="28" TAXONSTATUSUNKNOWN="false" ACCEPTEDTAXON_ID="15" TYPE_ID="846" />\r
-  <TAXONBASE DTYPE="Synonym" ID="29" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="b3cc5671-5082-4e67-9310-aa88b331f3c7" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Brachyglossa Boisduval, 1828 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONNAME_FK="29" TAXONSTATUSUNKNOWN="false" ACCEPTEDTAXON_ID="15" TYPE_ID="846" />\r
-  <TAXONBASE DTYPE="Synonym" ID="30" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="f017e915-0266-4f6d-8db4-eff4e8d6af5c" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Manduca Hübner, 1806 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONNAME_FK="30" TAXONSTATUSUNKNOWN="false" ACCEPTEDTAXON_ID="15" TYPE_ID="846" />\r
-  <TAXONBASE DTYPE="Synonym" ID="31" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="3da4ab34-6c50-4586-801e-732615899b07" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Atropos Leach, 1815 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONNAME_FK="31" TAXONSTATUSUNKNOWN="false" ACCEPTEDTAXON_ID="15" TYPE_ID="847" />\r
-  <TAXONBASE DTYPE="Taxon" ID="32" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="d88aa25c-7984-4870-bc9c-821f094d3a48" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Manduca afflicta (Grote, 1865) sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false"  TAXONNAME_FK="32"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="33" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="2c41e444-b160-4c6a-a1be-d5317d97d68d" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Manduca bergarmatipes (Clark, 1927) sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="33"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="34" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="7fe66bfd-235b-4164-8f0a-d054b5e962ba" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Manduca chinchilla (Gehlen, 1942) sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="34"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="35" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="4cab3cc5-eb80-477c-ac1b-be3c3d0a5a85" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Acherontia atropos (Linnaeus, 1758) sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="35"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="36" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="b04cc9cb-2b4a-4cc4-a94a-3c93a2158b06" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Acherontia lachesis (Fabricius, 1798) sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false"  TAXONNAME_FK="36"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="37" SEC_ID="2" CREATED="2008-12-10 09:56:07.0" UUID="7b8b5cb3-37ba-4dba-91ac-4c6ffd6ac331" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Acherontia styx Westwood, 1847 sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false"  TAXONNAME_FK="37"/>\r
-  <TAXONBASE DTYPE="Taxon" ID="38" SEC_ID="3" CREATED="2008-12-10 09:56:07.0" UUID="bc09aca6-06fd-4905-b1e7-cbf7cc65d783" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Cryptocoryne x purpurea nothovar borneoensis N.Jacobsen, Bastm. &amp; Yuji Sasaki sec. cate-sphingidae.org" PROTECTEDTITLECACHE="true" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONNAME_FK="38"/>\r
-  <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" CREATED="2008-12-10 09:56:07.0" UUID="a49a3963-c4ea-4047-8588-2f8f15352730" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" NAMECACHE="Aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="1" RANK_ID="774" GENUSORUNINOMIAL="Aus" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" CREATED="2008-12-10 09:56:07.0" UUID="05a438d6-065f-49ef-84db-c7dc2c259975" UPDATED="2008-12-10 09:56:07.253" TITLECACHE=" " PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE=" " PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" NAMECACHE="Aus aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2" RANK_ID="765" GENUSORUNINOMIAL="Aus" SPECIFICEPITHET="aus"  NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="3" CREATED="2008-12-10 09:56:07.0" UUID="9640a158-2bdb-4cbc-bff6-8f77e781f86b" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Sphingidae Linnaeus, 1758" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Linnaeus, 1758" NAMECACHE="Sphingidae" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="3" RANK_ID="782" GENUSORUNINOMIAL="Sphingidae" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="4" CREATED="2008-12-10 09:56:07.0" UUID="446d8d76-e206-49e1-b6da-d06ce1f296e1" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Lathoe Fabricius, 1807" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Fabricius, 1807" NAMECACHE="Laothoe" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="4" RANK_ID="774" GENUSORUNINOMIAL="Laothoe" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="5" CREATED="2008-12-10 09:56:07.0" UUID="3d0b9061-fc9d-4de5-9dc1-341e10eb139e" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Smerinthus Latreille, 1802" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Latreille, 1802" NAMECACHE="Smerinthus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="5" RANK_ID="774" GENUSORUNINOMIAL="Smerinthus" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="6" CREATED="2008-12-10 09:56:07.0" UUID="e4d3c75c-3bfb-451e-ade1-e5e0307879dd" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Manduca Hübner, 1807" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Hübner, 1807" NAMECACHE="Manduca" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="6" RANK_ID="774" GENUSORUNINOMIAL="Manduca" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="7" CREATED="2008-12-10 09:56:07.0" UUID="9dcb7f80-05c6-4eb0-bc04-8a72353a67d7" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Lepchina Oberthür, 1904" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Oberthür, 1904" NAMECACHE="Lepchina" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="7" RANK_ID="774" GENUSORUNINOMIAL="Lepchina" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="8" CREATED="2008-12-10 09:56:07.0" UUID="f2983a50-5121-4641-a9ab-0507821b7563" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Smerinthus kindermannii Lederer, 1853" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Lederer, 1853" NAMECACHE="Smerinthus kindermannii" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="8" RANK_ID="765" GENUSORUNINOMIAL="Smerinthus" SPECIFICEPITHET="kindermannii" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="9" CREATED="2008-12-10 09:56:07.0" UUID="73a90270-16bb-43f6-b7f0-305b617c9971" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Mimas Hübner, 1819" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Hübner, 1819" NAMECACHE="Mimas" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="9" RANK_ID="774" GENUSORUNINOMIAL="Mimas" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="10" CREATED="2008-12-10 09:56:07.0" UUID="a67e7431-5c04-4cb6-b83e-c50c439561fe" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Callambulyx Rothschild &amp; Jordan, 1903" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Rothschild &amp; Jordan, 1903" NAMECACHE="Callambulyx" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="10" RANK_ID="774" GENUSORUNINOMIAL="Callambulyx" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="11" CREATED="2008-12-10 09:56:07.0" UUID="8e6aaf9b-5b99-4525-873b-f535d35834ac" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Dolbina Staudinger, 1877" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Staudinger, 1877" NAMECACHE="Dolbina" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="11" RANK_ID="774" GENUSORUNINOMIAL="Dolbina" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="12" CREATED="2008-12-10 09:56:07.0" UUID="c1864a99-c025-47e1-87f5-5917b905cca1" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Akbesia Rothschild &amp; Jordan, 1903" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Rothschild &amp; Jordan, 1903" NAMECACHE="Akbesia" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="12" RANK_ID="774" GENUSORUNINOMIAL="Akbesia" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="13" CREATED="2008-12-10 09:56:07.0" UUID="071a336b-3f31-44d8-bc81-4505dd7ca50b" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Sphinx Linnaeus, 1758" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Linnaeus, 1758" NAMECACHE="Sphinx" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="13" RANK_ID="774" GENUSORUNINOMIAL="Sphinx" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="14" CREATED="2008-12-10 09:56:07.0" UUID="e8bf37f5-5b87-43dc-8481-a2e58e4f1e71" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Agrius Hübner, 1819" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Hübner, 1819" NAMECACHE="Agrius" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="14" RANK_ID="774" GENUSORUNINOMIAL="Agrius" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="15" CREATED="2008-12-10 09:56:07.0" UUID="c2cab2ad-3e3a-47b8-8aa8-d9e1c0857647" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Acherontia Laspeyres, 1809" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Laspeyres, 1809" NAMECACHE="Acherontia" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="15" RANK_ID="774" GENUSORUNINOMIAL="Acherontia" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="16" CREATED="2008-12-10 09:56:07.0" UUID="3d54aed8-7caa-4c74-bbe2-7b946b63f39b" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Hemaris Dalman, 1816" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Dalman, 1816" NAMECACHE="Hemaris" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="16" RANK_ID="774" GENUSORUNINOMIAL="Hemaris" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="17" CREATED="2008-12-10 09:56:07.0" UUID="2a91a640-ab5a-4993-a58d-a07c0f2ecba3" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Proserpinus Hübner, 1819" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Hübner, 1819" NAMECACHE="Proserpinus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="17" RANK_ID="774" GENUSORUNINOMIAL="Proserpinus" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="18" CREATED="2008-12-10 09:56:07.0" UUID="3f159abb-55fa-4c62-966d-3ff1ebc7b34b" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Sphingonaepiopsis Wallengren, 1858" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Wallengren, 1858" NAMECACHE="Sphingonaepiopsis" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="18" RANK_ID="774" GENUSORUNINOMIAL="Sphingonaepiopsis" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="19" CREATED="2008-12-10 09:56:07.0" UUID="2910ccab-35ea-45bb-ba1a-e8bceed11bd2" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Rethera Rothschild &amp; Jordan, 1903" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Rothschild &amp; Jordan, 1903" NAMECACHE="Rethera" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="19" RANK_ID="774" GENUSORUNINOMIAL="Rethera" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="20" CREATED="2008-12-10 09:56:07.0" UUID="e400203b-9b0f-4bc7-8aea-9f060de276de" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Daphnis Hübner, 1819" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Hübner, 1819" NAMECACHE="Rethera" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="20" RANK_ID="774" GENUSORUNINOMIAL="Daphnis" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="21" CREATED="2008-12-10 09:56:07.0" UUID="66354004-1ae2-4aa0-b4d6-d2c6c15a2fb5" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Clarina Tutt, 1903" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Tutt, 1903" NAMECACHE="Clarina" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="21" RANK_ID="774" GENUSORUNINOMIAL="Clarina" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="22" CREATED="2008-12-10 09:56:07.0" UUID="f57b8d58-e89d-40ea-9d5b-a2cf96d017eb" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Acosmeryx Boisduval, 1875" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Boisduval, 1875" NAMECACHE="Acosmeryx" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="22" RANK_ID="774" GENUSORUNINOMIAL="Acosmeryx" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="23" CREATED="2008-12-10 09:56:07.0" UUID="c3007d9a-3a7c-4cb1-9818-f4f529e760a4" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Macroglossum Scopoli, 1777" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Scopoli, 1777" NAMECACHE="Macroglossum" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="23" RANK_ID="774" GENUSORUNINOMIAL="Macroglossum" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="24" CREATED="2008-12-10 09:56:07.0" UUID="aa3dadc8-dc13-4e35-86cd-fd3ca2e796ca" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Hyles Hübner, 1819" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Hübner, 1819" NAMECACHE="Hyles" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="24" RANK_ID="774" GENUSORUNINOMIAL="Hyles" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="25" CREATED="2008-12-10 09:56:07.0" UUID="1673213d-60b4-4770-a8e9-509882340d0a" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Deilephila Laspeyres, 1809" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Laspeyres, 1809" NAMECACHE="Deilephila" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="25" RANK_ID="774" GENUSORUNINOMIAL="Deilephila" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="26" CREATED="2008-12-10 09:56:07.0" UUID="862897cc-a3e6-436d-899a-96f82d02b4a2" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Hippotion Hübner, 1819" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Hübner, 1819" NAMECACHE="Hippotion" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="26" RANK_ID="774" GENUSORUNINOMIAL="Hippotion" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="27" CREATED="2008-12-10 09:56:07.0" UUID="27004fcc-14d4-47d4-a3e1-75750fdb5b79" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Atropos Agassiz, 1846" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Agassiz, 1846" NAMECACHE="Atropos" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="27" RANK_ID="774" GENUSORUNINOMIAL="Atropos" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="28" CREATED="2008-12-10 09:56:07.0" UUID="748ccb21-f3a4-4f32-a514-53931965ca2d" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Atropos Oken, 1815" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Oken, 1815" NAMECACHE="Atropos" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="28" RANK_ID="774" GENUSORUNINOMIAL="Atropos" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="29" CREATED="2008-12-10 09:56:07.0" UUID="ea1f496a-c4cc-49e4-96d6-f46d58d23297" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Brachyglossa Boisduval, 1828" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Boisduval, 1828" NAMECACHE="Brachyglossa" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="29" RANK_ID="774" GENUSORUNINOMIAL="Brachyglossa" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="30" CREATED="2008-12-10 09:56:07.0" UUID="238e41b3-9f4f-44b7-8cf5-28090febe9bb" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Manduca Hübner, 1806" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Hübner, 1806" NAMECACHE="Manduca" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="30" RANK_ID="774" GENUSORUNINOMIAL="Manduca" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="31" CREATED="2008-12-10 09:56:07.0" UUID="feda2055-292c-4391-86b7-06bfdab77472" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Atropos Leach, 1815" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Leach, 1815" NAMECACHE="Atropos" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="15" RANK_ID="774" GENUSORUNINOMIAL="Atropos" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="32" CREATED="2008-12-10 09:56:07.0" UUID="9faf43ed-2003-4bc2-9dfd-61c71eaa3829" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Manduca afflicta (Grote, 1865)" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="(Grote, 1865)" NAMECACHE="Manduca afflicta" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="31" RANK_ID="765" GENUSORUNINOMIAL="Manduca" SPECIFICEPITHET="afflicta" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="33" CREATED="2008-12-10 09:56:07.0" UUID="666ecfcd-9ee3-41d4-8c47-7cb692cb7f27" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Manduca bergarmatipes (Clark, 1927)" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="(Clark, 1927)" NAMECACHE="Manduca bergarmatipes" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="32" RANK_ID="765" GENUSORUNINOMIAL="Manduca" SPECIFICEPITHET="bergarmatipes" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="34" CREATED="2008-12-10 09:56:07.0" UUID="31b6c4fb-fcd1-4ce7-b26a-2ca15a6c8ac5" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Manduca chinchilla (Gehlen, 1942)" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="(Gehlen, 1942)" NAMECACHE="Manduca chinchilla" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="33" RANK_ID="765" GENUSORUNINOMIAL="Manduca" SPECIFICEPITHET="chinchilla" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="35" CREATED="2008-12-10 09:56:07.0" UUID="866278ea-0a6a-4308-acb3-e7e22624e5ea" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Acherontia atropos (Linnaeus, 1758)" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="(Linnaeus, 1758)" NAMECACHE="Acherontia atropos" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="34" RANK_ID="765" GENUSORUNINOMIAL="Acherontia" SPECIFICEPITHET="atropos" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="36" CREATED="2008-12-10 09:56:07.0" UUID="7969821b-a2cf-4d01-95ec-6a5ed0ca3f69" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Acherontia lachesis (Fabricius, 1798)" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="(Fabricius, 1798)" NAMECACHE="Acherontia lachesis" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="35" RANK_ID="765" GENUSORUNINOMIAL="Acherontia" SPECIFICEPITHET="lachesis" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="ZoologicalName" ID="37" CREATED="2008-12-10 09:56:07.0" UUID="61b1dcae-8aa6-478a-bcd6-080cf0eb6ad7" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Acherontia styx Westwood, 1847" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Westwood, 1847" NAMECACHE="Acherontia styx" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false"  HOMOTYPICALGROUP_ID="36" RANK_ID="765" GENUSORUNINOMIAL="Acherontia" SPECIFICEPITHET="styx" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONNAMEBASE DTYPE="BotanicalName" ID="38" CREATED="2008-12-10 09:56:07.0" UUID="c9e7124b-2e60-4df2-996c-b7d024c85d33" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Cryptocoryne x purpurea nothovar borneoensis N.Jacobsen, Bastm. &amp; Yuji Sasaki" PROTECTEDTITLECACHE="true" HASPROBLEM="false" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="N.Jacobsen, Bastm. &amp; Yuji Sasaki" NAMECACHE="Cryptocoryne x purpurea nothovar borneoensis" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="true" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="37" RANK_ID="761" GENUSORUNINOMIAL="Cryptocoryne" SPECIFICEPITHET="purpurea" INFRASPECIFICEPITHET="borneoensis" NOMENCLATURALREFERENCE_ID="1"/>\r
-  <TAXONRELATIONSHIP ID="1" CREATED="2008-12-10 09:56:07.0" UUID="25064dff-f526-408e-b851-670d7770e337" UPDATED="2008-12-10 09:56:07.253" CITATIONMICROREFERENCE="Lorem ipsum dolor" RELATEDFROM_ID="2" RELATEDTO_ID="1" TYPE_ID="889"/>\r
-  <TAXONRELATIONSHIP ID="2" CREATED="2008-12-10 09:56:07.0" UUID="5cf04da3-74a8-446c-9cec-9e2e78bed4f7" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="4" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="3" CREATED="2008-12-10 09:56:07.0" UUID="b5694cbc-c353-40cb-a029-abea64c08a4b" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="5" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="4" CREATED="2008-12-10 09:56:07.0" UUID="8ddfcad5-02fc-4ba5-911d-52790a5236bd" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="6" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="5" CREATED="2008-12-10 09:56:07.0" UUID="4222ca4a-3fb1-4e66-8f0c-b69439c35466" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="7" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="6" CREATED="2008-12-10 09:56:07.0" UUID="9537d7f1-6484-4396-b7db-e1be52d247c6" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="8" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="7" CREATED="2008-12-10 09:56:07.0" UUID="df457da4-1f11-487d-941a-df6d4f88ba7d" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="9" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="8" CREATED="2008-12-10 09:56:07.0" UUID="6e7a347e-0761-4035-bfaf-4529908f77c1" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="10" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="9" CREATED="2008-12-10 09:56:07.0" UUID="f963474b-9c42-4d4f-a940-8ece9c2e9b4d" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="11" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="10" CREATED="2008-12-10 09:56:07.0" UUID="7ee82501-4141-4330-811c-892da5630f1e" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="12" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="11" CREATED="2008-12-10 09:56:07.0" UUID="2683cd9f-cf13-4284-bd77-5464631851ca" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="13" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="12" CREATED="2008-12-10 09:56:07.0" UUID="09d24cc7-3d42-4144-9341-91e614deed31" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="14" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="13" CREATED="2008-12-10 09:56:07.0" UUID="e2fcf58d-8362-404d-af4a-db7dc09d347c" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="15" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="14" CREATED="2008-12-10 09:56:07.0" UUID="11f506d1-a5ca-4a7b-ba1c-a5e12f6e1c19" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="16" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="15" CREATED="2008-12-10 09:56:07.0" UUID="894ca804-41d2-4dbe-b1a6-0b539bb34cc2" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="17" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="16" CREATED="2008-12-10 09:56:07.0" UUID="6d34e195-d647-4aab-914a-3c05793ab542" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="18" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="17" CREATED="2008-12-10 09:56:07.0" UUID="6d34e195-d647-4aab-914a-3c05793ab542" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="19" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="18" CREATED="2008-12-10 09:56:07.0" UUID="946dd020-b059-4a6c-8485-7f9584e35558" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="20" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="19" CREATED="2008-12-10 09:56:07.0" UUID="296473d0-0635-482b-b6af-0b7e1b73f526" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="21" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="20" CREATED="2008-12-10 09:56:07.0" UUID="18a5b4e2-7517-4443-add0-27d5789af9bb" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="22" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="21" CREATED="2008-12-10 09:56:07.0" UUID="1d279ded-7130-49d7-bc01-4ddeb665a0e2" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="23" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="22" CREATED="2008-12-10 09:56:07.0" UUID="7cd235ca-0b52-46aa-8a28-3e8581d3494d" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="24" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="23" CREATED="2008-12-10 09:56:07.0" UUID="d1195b65-1554-4047-a0c2-54db7e9996b3" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="25" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="24" CREATED="2008-12-10 09:56:07.0" UUID="7ba3d7c9-4ba3-48d9-8ae8-6fad26487d46" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="3" RELATEDFROM_ID="26" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="25" CREATED="2008-12-10 09:56:07.0" UUID="90c6866e-04db-404b-be87-5055f011b392" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="6" RELATEDFROM_ID="32" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="26" CREATED="2008-12-10 09:56:07.0" UUID="5a47aff4-9fb4-477a-bcab-4393c577eee6" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="6" RELATEDFROM_ID="33" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="27" CREATED="2008-12-10 09:56:07.0" UUID="ca1e0be3-cb42-44aa-a4c5-60956d7eec66" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="6" RELATEDFROM_ID="34" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="28" CREATED="2008-12-10 09:56:07.0" UUID="6a7dd40f-1b77-467f-ae97-cfe76e28506d" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="15" RELATEDFROM_ID="35" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="29" CREATED="2008-12-10 09:56:07.0" UUID="b075aa3c-9b58-4a1d-b144-d7ed2f7ca78d" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="15" RELATEDFROM_ID="36" TYPE_ID="889" DOUBTFUL="false"/>\r
-  <TAXONRELATIONSHIP ID="30" CREATED="2008-12-10 09:56:07.0" UUID="c11aea8f-ca80-4c44-ada5-9b45293434bd" UPDATED="2008-12-10 09:56:07.253" RELATEDTO_ID="15" RELATEDFROM_ID="37" TYPE_ID="889" DOUBTFUL="false"/>\r
-</dataset>
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.store/src/test/resources/unitils.properties b/eu.etaxonomy.taxeditor.store/src/test/resources/unitils.properties
deleted file mode 100644 (file)
index 8e06279..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-unitils.modules=database,dbunit,hibernate,inject,spring\r
-unitils.module.easymock.enabled=false\r
-\r
-database.driverClassName=org.hsqldb.jdbcDriver\r
-database.url=jdbc:hsqldb:mem:cdm\r
-database.userName=sa\r
-database.password=\r
-database.dialect=hsqldb\r
-database.schemaNames=PUBLIC\r
-org.dbunit.dataset.datatype.IDataTypeFactory.implClassName.hsqldb=eu.etaxonomy.cdm.test.integration.HsqldbDataTypeFactory\r
-dbMaintainer.fileScriptSource.scripts.locations=src/test/resources/dbscripts\r
-\r
-DatabaseModule.Transactional.value.default=commit\r
-transactionManager.type=spring\r
-updateDataBaseSchema.enabled=true\r
-\r
-dataSetStructureGenerator.xsd.dirName=src/test/resources/eu/etaxonomy/cdm/api/service/\r
-dbMaintainer.dbVersionSource.autoCreateVersionTable=true
\ No newline at end of file
index 6a87849f358682cc2be3062bfde9c8547cd6ef7b..05ae47250324eb5b3363a8c72cd5b6a50f862fe5 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.16.0
+Bundle-Version: 5.42.0
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: EDIT
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
@@ -10,7 +10,6 @@ Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.ui.ide,
  org.junit;bundle-version="4.8.2",
- eu.etaxonomy.taxeditor.webapp,
  eu.etaxonomy.taxeditor.cdmlib,
  eu.etaxonomy.taxeditor.bulkeditor,
  eu.etaxonomy.taxeditor.editor,
@@ -20,14 +19,24 @@ Require-Bundle: org.eclipse.ui,
  eu.etaxonomy.taxeditor.store,
  org.apache.log4j,
  org.eclipse.swtbot.eclipse.core,
- org.eclipse.swtbot.eclipse.finder
+ org.eclipse.swtbot.eclipse.finder,
+ eu.etaxonomy.taxeditor.workbench
 Eclipse-RegisterBuddy: org.apache.log4j, org.eclipse.swtbot.swt.finder
 Bundle-ClassPath: .,
  lib/byte-buddy-0.5.1.jar,
- lib/org.springframework.context-3.2.2.RELEASE.jar,
  lib/unitils-core-3.4.2.jar,
  lib/unitils-database-3.4.2.jar,
  lib/unitils-dbmaintainer-3.4.2.jar,
  lib/unitils-dbunit-3.4.2.jar,
  lib/unitils-spring-3.4.2.jar,
- lib/dbunit-2.4.9.jar
+ lib/dbunit-2.4.9.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,
+ lib/commons-pool-1.6.jar,
+ lib/hamcrest-core-1.3.jar
+Import-Package: eu.etaxonomy.taxeditor.local
+
+
+
index 4c13ab916d9839335483e9c9a32e81deebf28172..17edaee965f02afb19e938f2de527e855087575d 100644 (file)
@@ -2,13 +2,18 @@ source.. = src/test/java/,\
            src/test/resources/
 bin.includes = META-INF/,\
                .,\
+               lib/junit-4.13.2.jar,\
                lib/byte-buddy-0.5.1.jar,\
-               lib/org.springframework.context-3.2.2.RELEASE.jar,\
                lib/unitils-core-3.4.2.jar,\
                lib/unitils-database-3.4.2.jar,\
                lib/unitils-dbmaintainer-3.4.2.jar,\
                lib/unitils-dbunit-3.4.2.jar,\
                lib/unitils-spring-3.4.2.jar,\
-               lib/dbunit-2.4.9.jar,\               
+               lib/dbunit-2.4.9.jar,\
+               lib/h2-1.4.200.jar,\
+               lib/c3p0-0.9.5.2.jar,\
+               lib/commons-dbcp-1.4.jar,\
+               lib/commons-pool-1.6.jar,\
+               lib/hamcrest-core-1.3.jar,\
                src/test/resources/
 output.. = target/classes
diff --git a/eu.etaxonomy.taxeditor.test/lib/dbunit-2.4.9.jar b/eu.etaxonomy.taxeditor.test/lib/dbunit-2.4.9.jar
deleted file mode 100644 (file)
index 130921b..0000000
Binary files a/eu.etaxonomy.taxeditor.test/lib/dbunit-2.4.9.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.test/lib/h2-1.4.200.jar b/eu.etaxonomy.taxeditor.test/lib/h2-1.4.200.jar
new file mode 100644 (file)
index 0000000..3d194f2
Binary files /dev/null and b/eu.etaxonomy.taxeditor.test/lib/h2-1.4.200.jar differ
diff --git a/eu.etaxonomy.taxeditor.test/lib/org.springframework.context-3.2.2.RELEASE.jar b/eu.etaxonomy.taxeditor.test/lib/org.springframework.context-3.2.2.RELEASE.jar
deleted file mode 100644 (file)
index e285a21..0000000
Binary files a/eu.etaxonomy.taxeditor.test/lib/org.springframework.context-3.2.2.RELEASE.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.test/lib/unitils-core-3.4.2.jar b/eu.etaxonomy.taxeditor.test/lib/unitils-core-3.4.2.jar
deleted file mode 100644 (file)
index ab4c22e..0000000
Binary files a/eu.etaxonomy.taxeditor.test/lib/unitils-core-3.4.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.test/lib/unitils-database-3.4.2.jar b/eu.etaxonomy.taxeditor.test/lib/unitils-database-3.4.2.jar
deleted file mode 100644 (file)
index dfcb6ae..0000000
Binary files a/eu.etaxonomy.taxeditor.test/lib/unitils-database-3.4.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.test/lib/unitils-dbmaintainer-3.4.2.jar b/eu.etaxonomy.taxeditor.test/lib/unitils-dbmaintainer-3.4.2.jar
deleted file mode 100644 (file)
index 01f8994..0000000
Binary files a/eu.etaxonomy.taxeditor.test/lib/unitils-dbmaintainer-3.4.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.test/lib/unitils-dbunit-3.4.2.jar b/eu.etaxonomy.taxeditor.test/lib/unitils-dbunit-3.4.2.jar
deleted file mode 100644 (file)
index 778274e..0000000
Binary files a/eu.etaxonomy.taxeditor.test/lib/unitils-dbunit-3.4.2.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.test/lib/unitils-spring-3.4.2.jar b/eu.etaxonomy.taxeditor.test/lib/unitils-spring-3.4.2.jar
deleted file mode 100644 (file)
index f30810b..0000000
Binary files a/eu.etaxonomy.taxeditor.test/lib/unitils-spring-3.4.2.jar and /dev/null differ
index bab5c01299dc9db700760d52b75ea127ab26b4e6..5c48ff2fd0124268ebe626aa0b338fe23affdbb1 100644 (file)
@@ -3,16 +3,19 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.16.0</version>
+    <version>5.42.0</version>
   </parent>
   <artifactId>eu.etaxonomy.taxeditor.test</artifactId>
   <!-- for packaging=eclipse-test-plugin 
        see https://wiki.eclipse.org/Tycho/Packaging_Types#eclipse-test-plugin -->
   <packaging>eclipse-test-plugin</packaging>
   <name>UI Test Bundle</name>
+  <properties>
+               <unitils.version>3.4.2</unitils.version>
+  </properties>
   <description>Holds all Tests for the Taxonomic Editor</description>
   <build>
-  <resources>
+   <resources>
       <resource>
         <!-- replace the place holders like ${...} in datasources.xml -->
         <filtering>true</filtering>
@@ -65,7 +68,6 @@
         <groupId>org.eclipse.tycho</groupId>
         <artifactId>tycho-surefire-plugin</artifactId>
         <version>${tycho.version}</version>
-        
       </plugin>
       <plugin>
         <groupId>org.eclipse.jetty</groupId>
         as long as this is unfixed we replace it by 
         ${basedir}/../
       -->
-          <war>${basedir}/../eu.etaxonomy.taxeditor.cdmlib/src/main/resources/etc/jetty/cdmlib-remote-webapp.war</war>
+          <war>${basedir}/../eu.etaxonomy.taxeditor.local/lib/cdmlib-remote-webapp.war</war>
           <daemon>true</daemon>
           <supportedPackagings>
                 <!-- see https://github.com/eclipse/jetty.project/issues/2372 -->
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <version>3.2.0</version>
+        <executions>
+          <execution>
+            <id>copy-dependency-jars</id>
+            <phase>validate</phase>
+            <goals>
+              <goal>copy-dependencies</goal>
+            </goals>
+            <configuration>
+              <includeArtifactIds>
+                junit,unitils-core,unitils-database,unitils-dbmaintainer,unitils-dbunit,unitils-spring,
+                dbunit,c3p0,commons-dbcp,commons-pool,hamcrest-core
+              </includeArtifactIds>
+              <outputDirectory>
+                ${basedir}/lib
+              </outputDirectory>
+              <overWriteReleases>true</overWriteReleases>
+              <overWriteSnapshots>true</overWriteSnapshots>
+              <excludeTransitive>true</excludeTransitive>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
+  <dependencies>
+        <dependency>
+           <groupId>junit</groupId>
+           <artifactId>junit</artifactId>
+           <version>4.13.2</version>
+           <scope>test</scope>
+         </dependency>
+      <dependency>
+        <groupId>org.unitils</groupId>
+        <artifactId>unitils-core</artifactId>
+        <version>${unitils.version}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.unitils</groupId>
+        <artifactId>unitils-database</artifactId>
+        <version>${unitils.version}</version>
+        <scope>test</scope>
+        <exclusions>
+          <exclusion>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-jdbc</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.unitils</groupId>
+        <artifactId>unitils-dbmaintainer</artifactId>
+        <version>${unitils.version}</version>
+        <scope>test</scope>
+        <exclusions>
+          <exclusion>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-nop</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.unitils</groupId>
+        <artifactId>unitils-dbunit</artifactId>
+        <version>${unitils.version}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.unitils</groupId>
+        <artifactId>unitils-spring</artifactId>
+        <version>${unitils.version}</version>
+        <scope>test</scope>
+      </dependency>
+      
+      <dependency>
+        <groupId>org.dbunit</groupId>
+        <artifactId>dbunit</artifactId>
+        <version>2.4.9</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>com.mchange</groupId>
+        <artifactId>c3p0</artifactId>
+        <version>0.9.5.2</version>
+        <scope>test</scope>
+      </dependency>
+         <dependency>
+           <groupId>commons-dbcp</groupId>
+           <artifactId>commons-dbcp</artifactId>
+           <version>1.4</version>
+         </dependency>
+         <dependency>
+           <groupId>commons-pool</groupId>
+           <artifactId>commons-pool</artifactId>
+           <version>1.6</version>
+         </dependency>
+         <dependency>
+           <groupId>org.hamcrest</groupId>
+           <artifactId>hamcrest-core</artifactId>
+           <version>1.3</version>
+           <scope>test</scope>
+         </dependency>
+         
+  </dependencies>
 </project>
\ No newline at end of file
index 47e09af4a34763fb96661358401f65fd59e36176..3d2ea2530f87bda2cbcad215fbce99a78af3069e 100644 (file)
@@ -15,16 +15,13 @@ import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.junit.Assert;
-import org.junit.BeforeClass;
 import org.junit.Test;
 import org.unitils.dbunit.annotation.DataSet;
 
-import eu.etaxonomy.cdm.api.service.ICommonService;
 import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
 import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.cache.CdmTransientEntityCacher;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.Language;
@@ -37,25 +34,20 @@ import eu.etaxonomy.taxeditor.httpinvoker.RemotingSessionAwareTest;
 /**
  * @author cmathew
  * @date 7 Oct 2014
- *
  */
 @DataSet
 public class CdmClientCachingTest extends RemotingSessionAwareTest {
 
     @SuppressWarnings("unused")
-       private static final Logger logger = Logger.getLogger(CdmClientCachingTest.class);
+       private static final Logger logger = LogManager.getLogger(CdmClientCachingTest.class);
 
     private final UUID polytomousKeyUuid = UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66");
-    private final UUID taxon1Uuid = UUID.fromString("2b336df7-29e8-4f79-985f-66502739d22f");
     private final UUID polytomousKeyNodeUuid1 = UUID.fromString("75e4c924-ff58-4ee7-a59d-fd9173517d08");
     private final UUID polytomousKeyNodeUuid2 = UUID.fromString("b775c027-13c0-4b87-8aa9-712faeaafbdc");
 
 
     private final IPolytomousKeyService polytomousKeyService = getRemoteApplicationController().getPolytomousKeyService();
     private final IPolytomousKeyNodeService polytomousKeyNodeService = getRemoteApplicationController().getPolytomousKeyNodeService();
-    private final ICommonService commonService = getRemoteApplicationController().getCommonService();
-    private final ITaxonService taxonService = getRemoteApplicationController().getTaxonService();
-
 
     private static final List<String> PKEY_DEPTH1_INIT_STRATEGY = Arrays.asList(new String[] {
                        });
@@ -66,15 +58,6 @@ public class CdmClientCachingTest extends RemotingSessionAwareTest {
     private static final List<String> PKEY_DEPTH3_INIT_STRATEGY = Arrays.asList(new String[] {
                "root.statement"});
 
-
-    @BeforeClass
-    public static void initializePolytomousKeyTest() {
-
-    }
-
-
-
-
     @Test
     public void recursiveLoadSubGraphDepth1Test() {
 
@@ -86,10 +69,8 @@ public class CdmClientCachingTest extends RemotingSessionAwareTest {
 
         // checking to make sure the root object is in the session cache
         Assert.assertSame(CdmBase.deproxy(pkey1.getRoot(),PolytomousKeyNode.class), cacher.getFromCache(pkey1.getRoot()));
-
     }
 
-
     @Test
     public void recursiveLoadSubGraphDepth2Test() {
 
@@ -105,7 +86,6 @@ public class CdmClientCachingTest extends RemotingSessionAwareTest {
         Assert.assertSame(CdmBase.deproxy(pkey.getRoot()), cacher.getFromCache(pkey.getRoot()));
         Assert.assertSame(CdmBase.deproxy(pkey.getRoot().getStatement()), cacher.getFromCache(pkey.getRoot().getStatement()));
         Assert.assertSame(CdmBase.deproxy(pkey.getRoot().getQuestion()), cacher.getFromCache(pkey.getRoot().getQuestion()));
-
     }
 
     /**
@@ -152,7 +132,6 @@ public class CdmClientCachingTest extends RemotingSessionAwareTest {
 
         Assert.assertSame(ks2, cacher.getFromCache(ks2));
         Assert.assertSame(cacher.getFromCache(ks1), cacher.getFromCache(ks2));
-
     }
 
     /**
index 0bb9fa8243437f966f2318051aded0d81df477a4..38a79aebaf85cdb5a4463925c838b4706b01a20c 100644 (file)
@@ -11,7 +11,8 @@ package eu.etaxonomy.taxeditor.httpinvoker;
 import java.lang.reflect.Field;
 import java.util.Map;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.junit.BeforeClass;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.Authentication;
@@ -24,7 +25,7 @@ import org.unitils.spring.annotation.SpringApplicationContext;
 import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteController;
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.application.CdmDataChangeService;
-import eu.etaxonomy.cdm.api.cache.CdmServiceCacher;
+import eu.etaxonomy.cdm.api.cache.CdmServiceCachingProxy;
 import eu.etaxonomy.cdm.cache.CdmRemoteCacheManager;
 import eu.etaxonomy.cdm.model.permission.User;
 import eu.etaxonomy.taxeditor.remoting.cache.ConversationalTransientEntityCacher;
@@ -36,19 +37,17 @@ import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
 import net.sf.ehcache.CacheManager;
 
-
 /**
  * Base class for remoting tests, responsible for
  * - starting / stop the cdm server
  * - running some basic connection tests
  * - setting up the remote configuration.
- *
  */
 @Transactional(TransactionMode.DISABLED)
 @SpringApplicationContext("file:./target/classes/eu/etaxonomy/cdm/testRemotingApplicationContext.xml")
 public abstract class BaseRemotingTest extends ThreadedTest {
     @SuppressWarnings("unused")
-       private static final Logger logger = Logger.getLogger(BaseRemotingTest.class);
+       private static final Logger logger = LogManager.getLogger(BaseRemotingTest.class);
 
     private static ICdmRemoteSource cdmRemoteSource;
     private static CdmPersistentRemoteSource remotePersistentSource;
@@ -71,8 +70,6 @@ public abstract class BaseRemotingTest extends ThreadedTest {
             e.printStackTrace();
            // Assert.fail("Server failed to start. Reason : " + e.getMessage());
         }
-
-
     }
 
     public static void emptyAllCachesExceptModelCache() {
@@ -85,7 +82,6 @@ public abstract class BaseRemotingTest extends ThreadedTest {
         }
     }
 
-
     public static void initializeController(String sourceName, String host, int port, String contextPath, String username, String password) {
 
         if(CdmApplicationState.getCurrentAppConfig() != null) {
@@ -97,7 +93,7 @@ public abstract class BaseRemotingTest extends ThreadedTest {
                         null,
                         null);
         CdmApplicationState.setCurrentAppConfig(remoteApplicationController);
-        CdmApplicationState.setCdmServiceCacher(new CdmServiceCacher());
+        CdmApplicationState.setTermProxy(new CdmServiceCachingProxy());
 
         cdmEntitySessionManager = getRemoteApplicationController().getCdmEntitySessionManager();
 
@@ -116,7 +112,6 @@ public abstract class BaseRemotingTest extends ThreadedTest {
         UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password);
         Authentication authentication = getRemoteApplicationController().getAuthenticationManager().authenticate(token);
 
-
         User user = (User) authentication.getPrincipal();
         /* circumventing problem with hibernate not refreshing the transient collection authorities in this case,
          * see http://dev.e-taxonomy.eu/trac/ticket/4053 */
@@ -126,9 +121,6 @@ public abstract class BaseRemotingTest extends ThreadedTest {
         CdmApplicationState.setCurrentSecurityContext(SecurityContextHolder.getContext());
 
 
-
-
-
 //        SecurityContextHolder.clearContext();
 //        SecurityContextImpl sc = new SecurityContextImpl();
 //        Authentication token = new UsernamePasswordAuthenticationToken(username,password);
@@ -142,7 +134,6 @@ public abstract class BaseRemotingTest extends ThreadedTest {
 
     }
 
-
     protected static CdmApplicationRemoteController getRemoteApplicationController() {
         return (CdmApplicationRemoteController) CdmApplicationState.getCurrentAppConfig();
     }
@@ -159,7 +150,6 @@ public abstract class BaseRemotingTest extends ThreadedTest {
         return cdmEntitySessionManager;
     }
 
-
     protected static CdmEntitySession getSession(ICdmEntitySessionEnabled sessionOwner) {
         Map<ICdmEntitySessionEnabled, CdmEntitySession> ownerSessionMap =
                 (Map<ICdmEntitySessionEnabled, CdmEntitySession>) getFieldValueViaReflection(cdmEntitySessionManager, "ownerSessionMap");
@@ -174,29 +164,20 @@ public abstract class BaseRemotingTest extends ThreadedTest {
         return (ConversationalTransientEntityCacher) getFieldValueViaReflection(getSession(sessionOwner), "cdmTransientEntityCacher");
     }
 
-
     protected static Object getFieldValueViaReflection(Object object, String fieldName) {
         Class<?> clazz = object.getClass();
         try {
             Field field = clazz.getDeclaredField(fieldName);
             field.setAccessible(true);
             return field.get(object);
-        } catch (NoSuchFieldException e) {
-            e.printStackTrace();
-        } catch (SecurityException e) {
-            e.printStackTrace();
-        } catch (IllegalArgumentException e) {
-            e.printStackTrace();
-        } catch (IllegalAccessException e) {
+        } catch (NoSuchFieldException | SecurityException |
+                IllegalArgumentException | IllegalAccessException e) {
             e.printStackTrace();
         }
         return null;
     }
 
-
     protected static void authenticateDefaultUser() {
         authenticate(user, password);
     }
-
-
-}
+}
\ No newline at end of file
index 5aad2cd746a8d7ae2f2036262f80aae72b836e04..84b5d87d18475389f55238d5875b7387a255ee6c 100644 (file)
@@ -8,7 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.httpinvoker;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.junit.Assert;
 import org.junit.Test;
 import org.springframework.remoting.RemoteAccessException;
@@ -18,7 +18,7 @@ import eu.etaxonomy.taxeditor.lazyloading.RemotePersistentCollectionTest;
 import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSource;
 
 public class CdmRemoteSourceTest extends BaseRemotingTest {
-       private static final Logger logger = Logger.getLogger(RemotePersistentCollectionTest.class);
+       private static final Logger logger = LogManager.getLogger(RemotePersistentCollectionTest.class);
 
 
        @Test
index 7bbcea07e42d43d60f292bcf07d174d55c37c1ab..632c48838ef2c882afcbafc6a185d290185ec47f 100644 (file)
@@ -13,7 +13,8 @@ import java.io.IOException;
 import java.net.URISyntaxException;
 import java.net.URL;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.core.runtime.Platform;
 import org.junit.Assert;
@@ -21,21 +22,19 @@ import org.junit.Ignore;
 import org.junit.Test;
 import org.osgi.framework.Bundle;
 
+import eu.etaxonomy.taxeditor.local.CdmServer;
 import eu.etaxonomy.taxeditor.remoting.server.CdmServerUtils;
-import eu.etaxonomy.taxeditor.webapp.CdmEmbeddedServerException;
-import eu.etaxonomy.taxeditor.webapp.CdmServer;
-import eu.etaxonomy.taxeditor.webapp.ICDMServerError;
-
+import eu.etaxonomy.taxeditor.workbench.datasource.CdmEmbeddedServerException;
+import eu.etaxonomy.taxeditor.workbench.datasource.ICdmServerError;
 
 /**
  * @author cmathew
  * @date 6 Oct 2014
- *
  */
 public class CdmServerTest extends TestConfig {
-    
+
        @SuppressWarnings("unused")
-       private static final Logger logger = Logger.getLogger(CdmServerTest.class);
+       private static final Logger logger = LogManager.getLogger(CdmServerTest.class);
 
     @Test
     public void generateConfigFile() throws IOException {
@@ -51,16 +50,19 @@ public class CdmServerTest extends TestConfig {
         Bundle bundle = Platform.getBundle("eu.etaxonomy.taxeditor.test");
         URL mgdDatasourcesConfigURL = bundle.getEntry("src/test/resources/.cdmLibrary/writableResources/mgd.datasources.xml");
         File mgdDatasourcesConfigFile = new File(FileLocator.resolve(mgdDatasourcesConfigURL).toURI());
-        CdmServer cdmServer = new CdmServer("cdmTest", mgdDatasourcesConfigFile);
-        cdmServer.start(new ICDMServerError() {
-            @Override
-            public void handleError(Throwable t) {
-                Assert.fail("Error starting server. Reason : " + t.getMessage());
-            }
-        });
-        try {
+        try{
+            CdmServer cdmServer = new CdmServer("cdmTest", mgdDatasourcesConfigFile);
+            cdmServer.start(new ICdmServerError() {
+                @Override
+                public void handleError(Throwable t) {
+                    Assert.fail("Error starting server. Reason : " + t.getMessage());
+                }
+            });
             cdmServer.stop();
-        } catch (Exception e) {
+        }catch( CdmEmbeddedServerException cese){
+           cese.printStackTrace();
+           Assert.fail("Error instantiating server. Reason: " + cese.getMessage());
+        }catch (Exception e) {
             e.printStackTrace();
             Assert.fail("Error stopping server. Reason : " + e.getMessage());
         }
index f1a6c57a0d1b78dbdde21693dd04d5a0922bcfdc..86a5652c5785729babd0b1d5ed59ee0d1b9cdef2 100644 (file)
@@ -8,7 +8,7 @@
  */
 package eu.etaxonomy.taxeditor.httpinvoker;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.junit.Assert;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -23,10 +23,9 @@ 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);
+    private static final Logger logger = LogManager.getLogger(HttpInvokerServicesTest.class);
 
     ITestService testService =  getRemoteApplicationController().getTestService();
 
@@ -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 01c4be81c7d15e7d5de585298f0e04d728102d78..f099561e14830a898ca84eef09062262f41e0dde 100644 (file)
@@ -10,7 +10,8 @@ package eu.etaxonomy.taxeditor.httpinvoker;
 
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.junit.After;
 import org.junit.Before;
 import org.springframework.security.core.userdetails.UserDetails;
@@ -27,11 +28,10 @@ import eu.etaxonomy.taxeditor.session.MockSessionOwner;
 /**
  * @author cmathew
  * @date 12 Jun 2015
- *
  */
 public abstract class RemotingSessionAwareTest extends BaseRemotingTest {
 
-    private static final Logger logger = Logger.getLogger(RemotingSessionAwareTest.class);
+    private static final Logger logger = LogManager.getLogger();
 
     protected ConversationalTransientEntityCacher cacher;
     protected MockSessionOwner sessionOwner;
index c466672e2262a9bc0e649f599422100d6d1d774c..d9bce21280676691fbcadcacb6a6732a0b96bd13 100644 (file)
@@ -14,7 +14,7 @@ import java.io.InputStream;
 import java.net.URL;
 import java.util.Properties;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.core.runtime.Platform;
 import org.junit.BeforeClass;
@@ -28,7 +28,7 @@ import org.unitils.UnitilsJUnit4;
  */
 public abstract class TestConfig extends UnitilsJUnit4 {
 
-    private static final Logger logger = Logger.getLogger(TestConfig.class);
+    private static final Logger logger = LogManager.getLogger(TestConfig.class);
 
     private final static String DEFAULT_USER = "admin";
     private final static String DEFAULT_PASSWORD = "00000";
index d9f06cc1f478c56bc8bb029e48c21a9f1d8f1591..dd4e4be45244ea483deb037a51a667eea4347d9b 100644 (file)
@@ -14,7 +14,7 @@ import java.util.List;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
@@ -45,7 +45,7 @@ import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
 @Ignore
 @DataSet
 public class AbstractLazyInitializerTest extends BaseRemotingTest {
-    private static final Logger logger = Logger.getLogger(AbstractLazyInitializerTest.class);
+    private static final Logger logger = LogManager.getLogger(AbstractLazyInitializerTest.class);
 
     private static IClassificationService classificationService;
     private static ITaxonService taxonService;
index 8948adcb83e2c51f7f1cc9c9c21f1077c48fa417..bef18b1b2f48a50ed2457735c8c51edad82b5ec9 100644 (file)
@@ -8,21 +8,22 @@
  */
 package eu.etaxonomy.taxeditor.lazyloading;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.junit.Assert;
 import org.junit.Test;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
-import eu.etaxonomy.cdm.api.cache.CdmServiceCacher;
+import eu.etaxonomy.cdm.api.cache.CdmServiceCachingProxy;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.taxeditor.httpinvoker.RemotingSessionAwareTest;
 
 public class CdmServiceCacherTest extends RemotingSessionAwareTest {
 
     @SuppressWarnings("unused")
-    private static final Logger logger = Logger.getLogger(CdmServiceCacherTest.class);
+    private static final Logger logger = LogManager.getLogger(CdmServiceCacherTest.class);
 
-       private static CdmServiceCacher cdmServiceCacher = CdmApplicationState.getCdmServiceCacher();
+       private static CdmServiceCachingProxy cdmServiceCacher = CdmApplicationState.getTermProxy();
 
        @Test
        public void testLanguageCache() {
@@ -35,4 +36,4 @@ public class CdmServiceCacherTest extends RemotingSessionAwareTest {
                Language languageInCache = (Language)cdmServiceCacher.getFromCache(language.getUuid());
                Assert.assertEquals("Loaded Language Term should match Language Term in Cache",language,languageInCache);
        }
-}
+}
\ No newline at end of file
index 007c1f2a1eccde9f53440f04ebc6bed59215b8fc..cacc071c905c5a6d475338d7093149920a29cbee 100644 (file)
@@ -16,7 +16,8 @@ import java.util.List;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
@@ -50,7 +51,7 @@ import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
 @Ignore
 public class RemoteLazyLoadingTest extends BaseRemotingTest {
 
-    private static final Logger logger = Logger.getLogger(RemoteLazyLoadingTest.class);
+    private static final Logger logger = LogManager.getLogger();
 
     private static IClassificationService classificationService;
     private static ITaxonService taxonService;
@@ -73,11 +74,8 @@ public class RemoteLazyLoadingTest extends BaseRemotingTest {
 //        Assert.assertNotNull(classification);
         taxonNodes = classificationService.getAllNodes();
         Assert.assertFalse(taxonNodes.isEmpty());
-
     }
 
-
-
     @Test
     public void testCDMEntityGet() {
         Iterator<TaxonNode> taxonNodeItr = taxonNodes.iterator();
@@ -101,8 +99,6 @@ public class RemoteLazyLoadingTest extends BaseRemotingTest {
 
             count++;
         }
-
-
     }
 
     @Test
@@ -231,6 +227,7 @@ public class RemoteLazyLoadingTest extends BaseRemotingTest {
 
         Assert.assertEquals("Title caches should be equal",oldTitleCache,nvnOld.getTitleCache());
     }
+
     @Ignore
     @Test
     public void testCDMEntitySaveCollection() {
index d1871f099d670b29d7c0f76a776f2de1498eb365..3fea2f9a7c8cb4fad47ddaa70a67b75d90cab418 100644 (file)
@@ -13,7 +13,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
@@ -40,7 +40,7 @@ import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
 //Could be combined with AbstractLazyInitializerTest
 @Ignore
 public class RemotePersistentCollectionTest extends BaseRemotingTest {
-       private static final Logger logger = Logger.getLogger(RemotePersistentCollectionTest.class);
+       private static final Logger logger = LogManager.getLogger(RemotePersistentCollectionTest.class);
 
        private static IClassificationService classificationService;
        private static ICommonService commonService;
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 691d75b60400a002f28fde5c4713865b0de66175..bfc850870a8f26c633c3889a32cfd9abc7fc5444 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.operation;
 
 import org.eclipse.core.commands.operations.AbstractOperation;
@@ -18,15 +17,12 @@ import org.junit.Before;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.taxeditor.httpinvoker.RemotingSessionAwareTest;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 import eu.etaxonomy.taxeditor.test.MockConversationEnabled;
 
 /**
  * @author n.hoffmann
  * @created 15.04.2009
- * @version 1.0
  */
 public abstract class BaseOperationTest extends RemotingSessionAwareTest {
 
@@ -36,13 +32,12 @@ public abstract class BaseOperationTest extends RemotingSessionAwareTest {
        public static final IAdaptable info = null;
        public static final IPostOperationEnabled postOperation = null;
        public static final IConversationEnabled conversationEnabled = new MockConversationEnabled();
-       public static final ICdmEntitySessionEnabled cdmEntitySessionEnabled = null;
+       public static final ICdmEntitySessionEnabled<?> cdmEntitySessionEnabled = null;
 
        protected static AbstractOperation operation;
 
        @Before
        public void initializeOperations() {
-           RemotingCdmUpdateOperation.throwExceptions = true;
+           CdmUpdateOperation.throwExceptions = true;
        }
-
-}
+}
\ No newline at end of file
index a995aa366952b8f95c6c5015c77fbdaa9cda40f3..23234a00d33234db238f51db451ef00e8011cc3f 100644 (file)
@@ -20,8 +20,8 @@ import org.unitils.dbunit.annotation.DataSet;
 
 import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
-import eu.etaxonomy.taxeditor.navigation.key.polytomous.operation.RemotingDeletePolytomousKeyOperation;
-import eu.etaxonomy.taxeditor.navigation.key.polytomous.operation.RemotingUpdatePolytomousKeyAllNodesOperation;
+import eu.etaxonomy.taxeditor.navigation.key.polytomous.operation.DeletePolytomousKeyOperation;
+import eu.etaxonomy.taxeditor.navigation.key.polytomous.operation.UpdatePolytomousKeyAllNodesOperation;
 
 /**
  * @author cmathew
@@ -53,7 +53,7 @@ public class PolytomousKeyViewPartTest extends BaseOperationTest {
         uuids.add(pkey3Uuid);
 
         int keysToDeleteCount = keysToDelete.size();
-        operation = new RemotingDeletePolytomousKeyOperation(sessionOwner,
+        operation = new DeletePolytomousKeyOperation(sessionOwner,
                 false,
                 uuids);
         operation.execute(monitor, info);
@@ -68,7 +68,7 @@ public class PolytomousKeyViewPartTest extends BaseOperationTest {
 
     @Test
     public void testUpdateAllNodes() throws ExecutionException {
-        operation = new RemotingUpdatePolytomousKeyAllNodesOperation(sessionOwner,
+        operation = new UpdatePolytomousKeyAllNodesOperation(sessionOwner,
                 false,
                 pkey1Uuid);
         operation.execute(monitor, info);
index c02ac97186ba46c6edd4fd194a1917536651a161..690c862f1a1821e6d66f5406a2cb6dd8c3f730c4 100644 (file)
@@ -12,7 +12,7 @@ import java.util.HashSet;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
 import org.junit.Assert;
 import org.junit.BeforeClass;
@@ -25,7 +25,7 @@ import eu.etaxonomy.cdm.api.service.UpdateResult.Status;
 import eu.etaxonomy.cdm.api.service.dto.CdmEntityIdentifier;
 import eu.etaxonomy.cdm.cache.ProxyUtils;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.store.operations.RemotingTestUpdateOperation;
+import eu.etaxonomy.taxeditor.store.operations.TestUpdateOperation;
 
 /**
  * @author cmathew
@@ -36,7 +36,7 @@ import eu.etaxonomy.taxeditor.store.operations.RemotingTestUpdateOperation;
 public class RemotingCdmUpdateOperationTest extends BaseOperationTest {
 
     @SuppressWarnings("unused")
-       private static final Logger logger = Logger.getLogger(RemotingCdmUpdateOperationTest.class);
+       private static final Logger logger = LogManager.getLogger(RemotingCdmUpdateOperationTest.class);
 
     private static ITaxonNodeService taxonNodeService = getRemoteApplicationController().getTaxonNodeService();
 
@@ -81,7 +81,7 @@ public class RemotingCdmUpdateOperationTest extends BaseOperationTest {
 
         sessionOwner.setExpectedUpdatedObjects(taxonNodes);
 
-        operation = new RemotingTestUpdateOperation(result, sessionOwner, false);
+        operation = new TestUpdateOperation(result, sessionOwner, false);
         operation.execute(monitor, info);
 
         Assert.assertEquals(taxonNodes, sessionOwner.getEventUpdatedObjects());
@@ -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);
@@ -114,7 +114,7 @@ public class RemotingCdmUpdateOperationTest extends BaseOperationTest {
 
         result.setStatus(Status.OK);
         sessionOwner.setExpectedUpdatedObjects(taxonNodes);
-        operation = new RemotingTestUpdateOperation(result, sessionOwner, false);
+        operation = new TestUpdateOperation(result, sessionOwner, false);
         operation.execute(monitor, info);
 
         Assert.assertEquals(taxonNodes, sessionOwner.getEventUpdatedObjects());
@@ -136,20 +136,20 @@ 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);
-        operation = new RemotingTestUpdateOperation(result, sessionOwner, false);
+        operation = new TestUpdateOperation(result, sessionOwner, false);
         operation.execute(monitor, info);
 
         Assert.assertEquals(taxonNodes, sessionOwner.getEventUpdatedObjects());
@@ -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);
@@ -166,7 +166,7 @@ public class RemotingCdmUpdateOperationTest extends BaseOperationTest {
         int taxonNodeCountChildren = taxonNode.getCountChildren();
         sessionOwner.setExpectedUpdatedObjects(taxonNodes);
 
-        operation = new RemotingTestUpdateOperation(cei, sessionOwner, false);
+        operation = new TestUpdateOperation(cei, sessionOwner, false);
         operation.execute(monitor, info);
 
         Set eventUpdatedObjects = sessionOwner.getEventUpdatedObjects();
similarity index 92%
rename from eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/operation/TaxonNameEditorTest.java
rename to eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/operation/TaxonEditorTest.java
index 135a04c6a0ca2b3ff541db74c81307b2246ea431..b1cb49975f3624b095a8c740f8da8ec70a470294 100644 (file)
@@ -14,23 +14,23 @@ import java.util.List;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
 import org.junit.Assert;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.unitils.dbunit.annotation.DataSet;
 
-import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.model.common.Annotation;
-import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.description.TextData;
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingSwapEnum;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
 import eu.etaxonomy.cdm.model.name.INonViralName;
 import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
@@ -46,21 +46,15 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author cmathew
  * @date 3 Feb 2015
- *
  */
-
 @DataSet
-public class TaxonNameEditorTest extends BaseOperationTest {
+public class TaxonEditorTest extends BaseOperationTest {
 
     @SuppressWarnings("unused")
-       private static final Logger logger = Logger.getLogger(TaxonNameEditorTest.class);
-
-    ITaxonNodeService taxonNodeService = getRemoteApplicationController().getTaxonNodeService();
-    ITaxonService taxonService = getRemoteApplicationController().getTaxonService();
-    IClassificationService classificationService = getRemoteApplicationController().getClassificationService();
-
-    Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
+       private static final Logger logger = LogManager.getLogger();
 
+    private ITaxonNodeService taxonNodeService = getRemoteApplicationController().getTaxonNodeService();
+    private ITaxonService taxonService = getRemoteApplicationController().getTaxonService();
 
     @Test
     public void testAddHomotypicSynonym() throws ExecutionException {
@@ -97,8 +91,6 @@ public class TaxonNameEditorTest extends BaseOperationTest {
 
         operation.execute(monitor, info);
         taxonNodeService.merge(taxonNode);
-
-
     }
 
     @Test
@@ -116,16 +108,13 @@ public class TaxonNameEditorTest extends BaseOperationTest {
         operation.execute(monitor, info);
         taxonNodeService.merge(taxonNode);
 
-
         Assert.assertEquals(taxon.getHomotypicGroup().getTypifiedNames().size(), 2);
 
         Set<Synonym> synonyms = taxon.getSynonyms();
-
         for(Synonym synonym : synonyms) {
             taxonService.deleteSynonym(synonym.getUuid(), null);
         }
-
-        taxonNodeService.merge(taxonNode);
+        taxonNodeService.merge(taxonNode, true);
 
         newSynonymName = TaxonNameFactory.NewBotanicalInstance(null);
         newSynonymName.setTitleCache("Another New Synonym", true);
@@ -133,7 +122,7 @@ public class TaxonNameEditorTest extends BaseOperationTest {
                 undoContext, taxon, group, newSynonymName, postOperation);
 
         operation.execute(monitor, info);
-        taxonNodeService.merge(taxonNode);
+        taxonNodeService.merge(taxonNode, true);
     }
 
     @Test
@@ -159,16 +148,13 @@ public class TaxonNameEditorTest extends BaseOperationTest {
            taxonService.merge(syn);
         }
 
-
         Assert.assertEquals(taxon.getHomotypicGroup().getTypifiedNames().size(), 2);
 
         Set<Synonym> synonyms = taxon.getSynonyms();
-
         for(Synonym synonym : synonyms) {
             Assert.assertEquals(syn.getUuid(), synonym.getUuid());
             taxonService.deleteSynonym(synonym.getUuid(), null);
         }
-
         taxonNodeService.merge(taxonNode);
 
         newSynonymName = TaxonNameFactory.NewBotanicalInstance(null);
@@ -180,9 +166,9 @@ public class TaxonNameEditorTest extends BaseOperationTest {
         taxonNodeService.merge(taxonNode);
     }
 
-
     @Test
-    public void swapSynonymWithAcceptedTaxon() throws ExecutionException {
+    @Ignore
+    public void swapSynonymWithAcceptedTaxon() {
         List<TaxonNode> rootEntities = new ArrayList<TaxonNode>();
         UUID taxonNodeUuid = UUID.fromString("d425a971-1abe-4895-9e1f-1e5c8ff1c84c");
         TaxonNode taxonNode = taxonNodeService.load(taxonNodeUuid);
@@ -196,7 +182,7 @@ public class TaxonNameEditorTest extends BaseOperationTest {
         Synonym synonym = (Synonym)taxonService.load(synonymUuid);
         TaxonName synonymName = synonym.getName();
 
-        UpdateResult result = taxonService.swapSynonymAndAcceptedTaxon(synonym.getUuid(), taxon.getUuid(), false);
+        UpdateResult result = taxonService.swapSynonymAndAcceptedTaxon(synonym.getUuid(), taxon.getUuid(), false, false, SecReferenceHandlingSwapEnum.KeepOrWarn, null, null);
         taxon = (Taxon)result.getCdmEntity();
         Set<TaxonName> synNames = taxon.getSynonymNames();
         Iterator<TaxonName> iterator = synNames.iterator();
@@ -226,22 +212,18 @@ public class TaxonNameEditorTest extends BaseOperationTest {
         Taxon taxon = taxonNode.getTaxon();
         TaxonDescription description = TaxonDescription.NewInstance(taxon);
 
-
         TextData textData = TextData.NewInstance();
-
         textData.setFeature(Feature.ECOLOGY());
         description.addElement(textData);
 
         DescriptionElementSource descriptionElementSource = DescriptionElementSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource);
         textData.addSource(descriptionElementSource);
 
-
         CdmStore.getService(ITaxonNodeService.class).merge(taxonNode);
 
         description.getId();
     }
 
-
     @Test
     public void addTaxonNodeCascadeProblem() {
         UUID taxonNodeUuid = UUID.fromString("ce54c396-3694-47f2-abb0-1d7b7e057985");
@@ -249,10 +231,12 @@ public class TaxonNameEditorTest extends BaseOperationTest {
         TaxonNode taxonNode = taxonNodeService.load(taxonNodeUuid);
         Taxon childTaxon = Taxon.NewInstance(null, null);
         TaxonNode childTaxonNode = taxonNode.addChildTaxon(childTaxon, null, null);
+        CdmStore.getService(ITaxonNodeService.class).merge(childTaxonNode, true);
+
         Taxon grandChildTaxon = Taxon.NewInstance(null, null);
         TaxonNode grandChildTaxonNode = childTaxonNode.addChildTaxon(grandChildTaxon, null, null);
 
-        CdmStore.getService(ITaxonNodeService.class).merge(grandChildTaxonNode,true);
+        CdmStore.getService(ITaxonNodeService.class).merge(grandChildTaxonNode, true);
 
         Assert.assertEquals(taxonNode.getChildNodes().get(0).getId(), childTaxonNode.getId());
 
@@ -266,6 +250,4 @@ public class TaxonNameEditorTest extends BaseOperationTest {
         Assert.assertFalse(grandChildTaxon.getId() == 0);
         Assert.assertEquals(taxonNode.getChildNodes().get(0).getChildNodes().get(0).getTaxon().getId(), grandChildTaxon.getId());
     }
-
-}
-
+}
\ No newline at end of file
index 6c11332e9e9b755db6353c4feb809b6e80a177ed..9101185f9ca60e477ce3d68cff3056dbee14f7b8 100644 (file)
@@ -14,7 +14,8 @@ import java.util.List;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.commands.ExecutionException;
 import org.junit.Assert;
 import org.junit.Ignore;
@@ -30,16 +31,17 @@ import eu.etaxonomy.cdm.api.service.config.TaxonNodeDeletionConfigurator;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
 import eu.etaxonomy.taxeditor.navigation.navigator.e4.TreeNodeDropAdapterE4.MovingType;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingChangeAcceptedTaxonToSynonymOperation;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingDeleteTaxonNodeOperation;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingMoveFactualDataOperation;
-import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingMoveTaxonOperation;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.ChangeAcceptedTaxonToSynonymOperation;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.DeleteTaxonNodeOperation;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.MoveFactualDataOperation;
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.MoveTaxonOperation;
 
 /**
  * @author cmathew
@@ -49,14 +51,13 @@ import eu.etaxonomy.taxeditor.navigation.navigator.operation.RemotingMoveTaxonOp
 public class TaxonNavigatorTest extends BaseOperationTest {
 
     @SuppressWarnings("unused")
-       private static final Logger logger = Logger.getLogger(TaxonNameEditorTest.class);
+       private static final Logger logger = LogManager.getLogger();
 
-    ITaxonNodeService taxonNodeService = getRemoteApplicationController().getTaxonNodeService();
-    ITaxonService taxonService = getRemoteApplicationController().getTaxonService();
-    IClassificationService classificationService = getRemoteApplicationController().getClassificationService();
-
-    Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
+    private ITaxonNodeService taxonNodeService = getRemoteApplicationController().getTaxonNodeService();
+    private ITaxonService taxonService = getRemoteApplicationController().getTaxonService();
+    private IClassificationService classificationService = getRemoteApplicationController().getClassificationService();
 
+    private Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
 
     @Test
     public void testChangeAcceptedTaxonToSynonym() throws ExecutionException {
@@ -73,18 +74,16 @@ public class TaxonNavigatorTest extends BaseOperationTest {
         sessionOwner.addExpectedUpdatedObject(oldTaxonNode.getParent());
         sessionOwner.addExpectedUpdatedObject(newAcceptedTaxonNode);
 
-        operation =  new RemotingChangeAcceptedTaxonToSynonymOperation(sessionOwner,
+        operation =  new ChangeAcceptedTaxonToSynonymOperation(sessionOwner,
                 false,
                 oldTaxonNode.getUuid(),
-                newAcceptedTaxonNode.getUuid(), true);
+                newAcceptedTaxonNode.getUuid(), null, SecReferenceHandlingEnum.KeepOrWarn, true);
         operation.execute(monitor, info);
         newAcceptedTaxonNode = taxonNodeService.load(newAcceptedTaxonNodeUuid);
         oldTaxonNode = taxonNodeService.load(oldTaxonNodeNodeUuid);
         Assert.assertNull(oldTaxonNode);
         Assert.assertEquals(countTargetSynonyms + 1,newAcceptedTaxonNode.getTaxon().getSynonyms().size());
         Assert.assertEquals(name, newAcceptedTaxonNode.getTaxon().getSynonyms().iterator().next().getName());
-
-
     }
 
     @Test
@@ -103,11 +102,11 @@ public class TaxonNavigatorTest extends BaseOperationTest {
         int childCount = oldParent.getCountChildren();
         TaxonNode newParentTreeNode = taxonNodeService.load(newParentTreeNodeUuid);
        // sessionOwner.addExpectedUpdatedObject(newParentTreeNode);
-        operation = new RemotingMoveTaxonOperation(sessionOwner,
+        operation = new MoveTaxonOperation(sessionOwner,
                 false,
                 uuids,
                 newParentTreeNode.getUuid(),
-                moveToParentNode);
+                moveToParentNode, SecReferenceHandlingEnum.KeepOrWarn, null);
         operation.execute(monitor, info);
         //TODO: fix this, because move taxon is now a longrunning task
 //        Assert.assertEquals(childCount-1, oldParent.getCountChildren());
@@ -128,7 +127,7 @@ public class TaxonNavigatorTest extends BaseOperationTest {
         int countTargetDescriptions = targetTaxon.getDescriptions().size();
         sessionOwner.addExpectedUpdatedObject(targetTaxon);
 
-        operation = new RemotingMoveFactualDataOperation(sessionOwner,
+        operation = new MoveFactualDataOperation(sessionOwner,
                 false,
                 sourceTaxonUuid,
                 targetTaxonUuid, true);
@@ -159,7 +158,7 @@ public class TaxonNavigatorTest extends BaseOperationTest {
 
         sessionOwner.addExpectedUpdatedObject(taxonNode.getParent());
 
-        operation = new RemotingDeleteTaxonNodeOperation(sessionOwner,
+        operation = new DeleteTaxonNodeOperation(sessionOwner,
                 false,
                 nodes,
                 null,
@@ -194,7 +193,7 @@ public class TaxonNavigatorTest extends BaseOperationTest {
         sessionOwner.addExpectedUpdatedObject(taxonNode1.getParent());
         sessionOwner.addExpectedUpdatedObject(taxonNode2.getParent());
         sessionOwner.addExpectedUpdatedObject(taxonNode3.getParent());
-        operation = new RemotingDeleteTaxonNodeOperation(sessionOwner,
+        operation = new DeleteTaxonNodeOperation(sessionOwner,
                 false,
                 nodes,
                 null,
@@ -230,7 +229,7 @@ public class TaxonNavigatorTest extends BaseOperationTest {
         config.setTaxonNodeConfig(configNodes);
 
         sessionOwner.addExpectedUpdatedObject(taxonNode.getParent());
-        operation = new RemotingDeleteTaxonNodeOperation(sessionOwner,
+        operation = new DeleteTaxonNodeOperation(sessionOwner,
                 false,
                 nodes,
                 null,
@@ -261,7 +260,7 @@ public class TaxonNavigatorTest extends BaseOperationTest {
         TaxonDeletionConfigurator config = new TaxonDeletionConfigurator();
         config.setTaxonNodeConfig(configNodes);
 
-        operation = new RemotingDeleteTaxonNodeOperation(sessionOwner,
+        operation = new DeleteTaxonNodeOperation(sessionOwner,
                 false,
                 nodes,
                 null,
index 145dd604feddff76020acc875fc59d2482c04240..d4714f4473180a0a76aa67ea7db25f505973c23d 100644 (file)
@@ -65,12 +65,11 @@ public class IOServiceExportTest extends BaseRemotingTest {
         stream = new FileOutputStream(savePath);
         stream.write(exportData);
         stream.close();
-
     }
 
     @Test
     public void exportCSVTest() throws IOException {
-        HashSet<UUID> set = new HashSet<UUID>();
+        HashSet<UUID> set = new HashSet<>();
         set.add(UUID.fromString("0c2b5d25-7b15-4401-8b51-dd4be0ee5cab"));
         CsvDemoExportConfigurator config = CsvDemoExportConfigurator.NewInstance(null, null);
         config.setClassificationUuids(set);
@@ -83,7 +82,6 @@ public class IOServiceExportTest extends BaseRemotingTest {
         config.setLastChange(true);
         config.setResultType(ExportResultType.BYTE_ARRAY);
 
-
         ExportResult result = ioService.export(config);
         byte[] dataList =(byte[])result.getExportData().getExportData();
        // Assert.assertEquals(1, dataList.length);
index b238b88cbd4100a77006dc1af0c81eee1d4670fc..e75ce2c0557324671b2b11aef9d9804a5ae41f1a 100644 (file)
@@ -31,7 +31,6 @@ import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator;
 import eu.etaxonomy.cdm.io.sdd.in.SDDImportConfigurator;
 import eu.etaxonomy.cdm.io.service.IIOService;
 import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
-import eu.etaxonomy.cdm.io.specimen.excel.in.SpecimenCdmExcelImportConfigurator;
 import eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
 import eu.etaxonomy.cdm.model.name.TaxonName;
@@ -59,7 +58,7 @@ public class IOServiceImportTest extends BaseRemotingTest {
         String importFilePath = "src/test/resources/imports/NormalExplicitImport.xls";
         NormalExplicitImportConfigurator config =
                 NormalExplicitImportConfigurator.NewInstance(null, null, null, null);
-        config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+        config.setNomenclaturalCode(NomenclaturalCode.ICNP);
         config.setDbSchemaValidation(DbSchemaValidation.CREATE);
         ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.URI);
         Assert.assertTrue(result.isSuccess());
@@ -73,7 +72,7 @@ public class IOServiceImportTest extends BaseRemotingTest {
         String importFilePath = "src/test/resources/imports/ABCDImport.xml";
         Abcd206ImportConfigurator config =
                 Abcd206ImportConfigurator.NewInstance(null, null);
-        config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+        config.setNomenclaturalCode(NomenclaturalCode.ICNP);
         config.setDbSchemaValidation(DbSchemaValidation.CREATE);
         ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.INPUTSTREAM);
         Assert.assertTrue(result.isSuccess());
@@ -88,7 +87,7 @@ public class IOServiceImportTest extends BaseRemotingTest {
         String importFilePath = "src/test/resources/imports/SDD.xml";
         SDDImportConfigurator config =
                 SDDImportConfigurator.NewInstance(null, null);
-        config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+        config.setNomenclaturalCode(NomenclaturalCode.ICNP);
         config.setDbSchemaValidation(DbSchemaValidation.CREATE);
         ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.URI);
         Assert.assertTrue(result.isSuccess());
@@ -96,23 +95,13 @@ public class IOServiceImportTest extends BaseRemotingTest {
         Assert.assertEquals(9,list.size());
     }
 
-    @Test
-    public void importSpecimenExcel() throws IOException {
-        String importFilePath = "src/test/resources/imports/SpecimenExcelImport.xls";
-        SpecimenCdmExcelImportConfigurator config = SpecimenCdmExcelImportConfigurator.NewInstance(null, null);
-        config.setNomenclaturalCode(NomenclaturalCode.ICNB);
-        config.setDbSchemaValidation(DbSchemaValidation.CREATE);
-        ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.URI);
-        Assert.assertTrue(result.isSuccess());
-//        List<SpecimenOrObservationBase> occurrences = occurrenceService.list(SpecimenOrObservationBase.class, null, null, null, null);
-//        Assert.assertEquals(3,occurrences.size());
-    }
 
     @Test
     public void importTCS() throws IOException {
         String importFilePath = "src/test/resources/imports/TcsImport.xml";
         TcsXmlImportConfigurator config = TcsXmlImportConfigurator.NewInstance(null, null);
-        config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+        config.setNomenclaturalCode(NomenclaturalCode.ICNP);
         config.setDbSchemaValidation(DbSchemaValidation.CREATE);
         ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.URI);
         Assert.assertTrue(result.isSuccess());
index acae78c83dcab689e0c341b03edaf6abd36e11a7..add195dad3069fea7ff04a917344ef62b72569f8 100644 (file)
@@ -13,11 +13,13 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.SubMonitor;
 import org.junit.After;
 import org.junit.Assert;
+import org.junit.Ignore;
 import org.junit.Test;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
@@ -34,18 +36,16 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author cmathew
  * @date 22 Oct 2015
- *
  */
 public class ProgressMonitorServiceTest extends RemotingSessionAwareTest {
 
-    private static final Logger logger = Logger.getLogger(ProgressMonitorServiceTest.class);
+    @SuppressWarnings("unused")
+    private static final Logger logger = LogManager.getLogger(ProgressMonitorServiceTest.class);
 
     ITestService testService =  getRemoteApplicationController().getTestService();
 
     IProgressMonitorService progressMonitorService = getRemoteApplicationController().getProgressMonitorService();
 
-
-
     @After
     public void revertAuthentication() {
         authenticateDefaultUser();
@@ -68,7 +68,7 @@ public class ProgressMonitorServiceTest extends RemotingSessionAwareTest {
     }
 
     @Test
-    public void testMonitLongRunningMethodByChangingUser() throws InterruptedException {
+    public void testMonitLongRunningMethodByChangingUser() {
 
         IllegalStateException ise = new IllegalStateException("IllegalStateException");
 
@@ -77,7 +77,6 @@ public class ProgressMonitorServiceTest extends RemotingSessionAwareTest {
         authenticateExtraUser();
         IRemotingProgressMonitor monitor = progressMonitorService.getRemotingMonitor(uuid);
         Assert.assertNull(monitor);
-
     }
 
     @Test
@@ -109,6 +108,7 @@ public class ProgressMonitorServiceTest extends RemotingSessionAwareTest {
     }
 
     @Test
+    @Ignore
     public void testMonitLongRunningMethodWithInterrupt() {
         IllegalStateException ise = new IllegalStateException("Interrupted Exception");
         final UUID uuid = testService.monitLongRunningMethod(ise, null, 0);
@@ -156,7 +156,7 @@ public class ProgressMonitorServiceTest extends RemotingSessionAwareTest {
     }
 
     @Test
-    public void testMonitLongRunningMethodWithCancellation() throws InterruptedException {
+    public void testMonitLongRunningMethodWithCancellation() {
 
         final UUID uuid = testService.monitLongRunningMethod(null, null, 0);
         final int pollInterval = 1000;
@@ -231,7 +231,7 @@ public class ProgressMonitorServiceTest extends RemotingSessionAwareTest {
         expectedMonitor.addReport("Report");
         expectedMonitor.done();
 
-        final UUID uuid = testService.monitLongRunningMethod(null, feedbacks, 0);
+        testService.monitLongRunningMethod(null, feedbacks, 0);
         final int pollInterval = 1000;
 
         feebackGenerators.remove(1);
@@ -307,9 +307,7 @@ public class ProgressMonitorServiceTest extends RemotingSessionAwareTest {
             this.expectedMonitor = expectedMonitor;
             this.monitorUuid = monitorUuid;
         }
-        /**
-         * {@inheritDoc}
-         */
+
         @Override
         public void postOperation(IRemotingProgressMonitor monitor) {
             if(expectedMonitor.getResult() instanceof Exception) {
@@ -338,9 +336,6 @@ public class ProgressMonitorServiceTest extends RemotingSessionAwareTest {
             this.waitTime = waitTime;
         }
 
-        /**
-         * {@inheritDoc}
-         */
         @Override
         public void setFeedbackForMonitor(UUID uuid) {
             if(waitTime > 0) {
@@ -352,6 +347,5 @@ public class ProgressMonitorServiceTest extends RemotingSessionAwareTest {
             }
             CdmApplicationState.getCurrentAppConfig().getProgressMonitorService().setFeedback(uuid, feedback);
         }
-
     }
-}
+}
\ No newline at end of file
index 7d50922edbc73cdd81f2c07552bb92b125ddc560..145816d00111d0251ce7b5ffb6136599a472fcdb 100644 (file)
@@ -1,38 +1,53 @@
+/**
+* Copyright (C) 2018 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.service;
 
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.junit.Assert;
 import org.junit.Test;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
-import eu.etaxonomy.cdm.api.cache.CdmServiceCacher;
+import eu.etaxonomy.cdm.api.cache.CdmServiceCachingProxy;
 import eu.etaxonomy.cdm.api.service.ITermService;
-import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.httpinvoker.RemotingSessionAwareTest;
 
 public class ServiceInterceptorTest extends RemotingSessionAwareTest {
 
-        private static final Logger logger = Logger.getLogger(ServiceInterceptorTest.class);
-        private final ITermService termService = getRemoteApplicationController().getTermService();
-        private static CdmServiceCacher cdmServiceCacher = CdmApplicationState.getCdmServiceCacher();
-
-
-           @Test
-           public void termServiceInterceptorTest() {
-               List<DefinedTermBase<?>> terms = termService.listByTermType(TermType.Language, null, null, null, null);
-               int cacheLanguageSize = 0;
-               List<UUID> keys = cdmServiceCacher.getDefaultCache().getKeys();
-               for(UUID key : keys) {
-                   if(cdmServiceCacher.getFromCache(key).getClass().equals(Language.class)) {
-                       cacheLanguageSize++;
-                   }
-               }
-               Assert.assertEquals(terms.size(), cacheLanguageSize);
-               // TO DO : get the static termTypeMap from TermServiceRequestExecutor and check the size
-           }
-}
+       @SuppressWarnings("unused")
+       private static final Logger logger = LogManager.getLogger(ServiceInterceptorTest.class);
+
+       private final ITermService termService = getRemoteApplicationController().getTermService();
+       private static CdmServiceCachingProxy cdmTermCache = CdmApplicationState.getTermProxy();
+
+
+    @Test
+    public void termServiceInterceptorTest() {
+       List<DefinedTermBase<?>> terms = termService.listByTermType(TermType.Language, null, null, null, null);
+       int cacheLanguageSize = 0;
+       List<UUID> keys = cdmTermCache.getPermanentCache().getKeys();
+       for(UUID key : keys) {
+           CdmBase cdmBase = cdmTermCache.getFromCache(key);
+           if(cdmBase != null && cdmBase.getClass().equals(Language.class)) {
+               cacheLanguageSize++;
+           }else{
+               System.err.println("There is no element for key" + key.toString());
+           }
+       }
+       Assert.assertEquals(terms.size(), cacheLanguageSize);
+       // TO DO : get the static termTypeMap from TermServiceRequestExecutor and check the size
+    }
+}
\ No newline at end of file
index b59a0273e7e2e8718aef07030842cf2c5dac68b2..3ca9c5c67860389ffd30ca686cac4837177422ab 100644 (file)
@@ -9,16 +9,15 @@
 package eu.etaxonomy.taxeditor.session;
 
 import java.util.ArrayList;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.junit.Assert;
-import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.unitils.dbunit.annotation.DataSet;
@@ -30,7 +29,6 @@ import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
 import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.ITermService;
-import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
@@ -62,31 +60,22 @@ import eu.etaxonomy.taxeditor.httpinvoker.TestThread;
 public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
 
     @SuppressWarnings("unused")
-    private static final Logger logger = Logger.getLogger(CdmEntitySessionAwareTest.class);
-
-    UUID polytomousKeyUuid = UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66");
-    UUID subKeyUuid = UUID.fromString("9d8bf4f6-a70a-4b80-8556-2ccfb436ff01");
-    //UUID polytomousKeyUuid = UUID.fromString("bab66772-2c83-428a-bb6d-655d12ac6097");
-    UUID taxon1Uuid = UUID.fromString("2b336df7-29e8-4f79-985f-66502739d22f");
-    UUID personUuid = UUID.fromString("945d08f2-eb92-45b6-9252-6275ea6d338b");
-
-    IPolytomousKeyService polytomousKeyService = getRemoteApplicationController().getPolytomousKeyService();
-    IPolytomousKeyNodeService polytomousKeyNodeService = getRemoteApplicationController().getPolytomousKeyNodeService();
-    ICommonService commonService = getRemoteApplicationController().getCommonService();
-    ITaxonService taxonService = getRemoteApplicationController().getTaxonService();
-    IVocabularyService vocabularyService = getRemoteApplicationController().getVocabularyService();
-    ITermService termService = getRemoteApplicationController().getTermService();
-    IUserService userService = getRemoteApplicationController().getUserService();
-
-    //Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
-
-    @BeforeClass
-    public static void initializePolytomousKeyTest() {
-    }
+    private static final Logger logger = LogManager.getLogger(CdmEntitySessionAwareTest.class);
+
+    private UUID polytomousKeyUuid = UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66");
+    private UUID subKeyUuid = UUID.fromString("9d8bf4f6-a70a-4b80-8556-2ccfb436ff01");
+    private UUID taxon1Uuid = UUID.fromString("2b336df7-29e8-4f79-985f-66502739d22f");
+    private UUID personUuid = UUID.fromString("945d08f2-eb92-45b6-9252-6275ea6d338b");
+
+    private IPolytomousKeyService polytomousKeyService = getRemoteApplicationController().getPolytomousKeyService();
+    private IPolytomousKeyNodeService polytomousKeyNodeService = getRemoteApplicationController().getPolytomousKeyNodeService();
+    private ICommonService commonService = getRemoteApplicationController().getCommonService();
+    private ITaxonService taxonService = getRemoteApplicationController().getTaxonService();
+    private IVocabularyService vocabularyService = getRemoteApplicationController().getVocabularyService();
+    private ITermService termService = getRemoteApplicationController().getTermService();
 
     @Test
-    @Ignore
-    public void readAllPolytomousKeys() {
+    public void testReadAllPolytomousKeys() {
         List<PolytomousKey> pKeys = polytomousKeyService.list(PolytomousKey.class, null, null, null, null);
         Iterator<PolytomousKey> pKeysItr = pKeys.iterator();
         Assert.assertEquals(pKeysItr.next().getUuid(),UUID.fromString("9d8bf4f6-a70a-4b80-8556-2ccfb436ff01"));
@@ -94,8 +83,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
     }
 
     @Test
-    //@DataSet("PolytomousKeyTest.readPolytmousKeyData.xml")
-    public void readPolytmousKeyData() {
+    public void testReadPolytmousKeyData() {
         PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
         Set<Taxon> taxonomicScope = pKey.getTaxonomicScope();
         Iterator<Taxon> tsItr = taxonomicScope.iterator();
@@ -105,7 +93,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
         Assert.assertEquals(tsItr.hasNext(), false);
 
         List<Credit> credits = pKey.getCredits();
-        AgentBase agent = credits.get(0).getAgent();
+        AgentBase<?> agent = credits.get(0).getAgent();
         Assert.assertEquals(agent.getId(),4809);
         Assert.assertEquals(agent.getTitleCache(),"R. A. Graham");
         Assert.assertEquals(credits.get(0).getText(),"Credits Text Test");
@@ -127,53 +115,62 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
         source = sourcesItr.next();
         Assert.assertEquals(source.getId(), 23711);
 
-        // TO DO : Added tests for Annotations , Markers
+        // TODO : Add tests for Annotations , Markers
     }
 
     @Test
-    public void readPolytomousKeyDataFromNodes() {
-        PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+    public void testReadPolytomousKeyDataFromNodes() {
+        PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid), PolytomousKey.class);
         PolytomousKeyNode rootNode = pKey.getRoot();
 
-        Assert.assertEquals(rootNode.getId(), 2750);
+        Assert.assertEquals(2750, rootNode.getId());
 
-        Assert.assertEquals(rootNode.getChildAt(0).getId(), 2751);
-        Assert.assertEquals(rootNode.getChildAt(0).getParent().getId(), rootNode.getId());
-        Assert.assertEquals(rootNode.getKey().getId(), pKey.getId());
-        Integer sortIndex = (Integer)getFieldValueViaReflection(rootNode.getChildAt(0), "sortIndex");
-        Assert.assertEquals(sortIndex, new Integer(0));
+        Assert.assertEquals(2751, rootNode.getChildAt(0).getId());
+        Assert.assertEquals(rootNode.getId(), rootNode.getChildAt(0).getParent().getId());
+        Assert.assertEquals(pKey.getId(), rootNode.getKey().getId());
+        //here was the explicit sortindex field test before, but this field does not exist anymore since #3722 and #10067 was fixed
+        Assert.assertEquals(0, rootNode.getIndex(rootNode.getChildAt(0)));
         String statement = "Capitula without ligulate ray-florets; leaves entire or subentire";
-        Assert.assertEquals(rootNode.getChildAt(0).getStatement().getLabelText(Language.ENGLISH()), statement);
+        Assert.assertEquals(statement, rootNode.getChildAt(0).getStatement().getLabelText(Language.ENGLISH()));
 
-        Assert.assertEquals(rootNode.getChildAt(1).getId(), 2753);
-        Assert.assertEquals(rootNode.getChildAt(1).getParent().getId(), rootNode.getId());
-        Assert.assertEquals(rootNode.getChildAt(1).getKey().getId(), pKey.getId());
-        sortIndex = (Integer)getFieldValueViaReflection(rootNode.getChildAt(1), "sortIndex");
-        Assert.assertEquals(sortIndex, new Integer(1));
+        Assert.assertEquals(2753, rootNode.getChildAt(1).getId());
+        Assert.assertEquals(rootNode.getId(), rootNode.getChildAt(1).getParent().getId());
+        Assert.assertEquals(pKey.getId(), rootNode.getChildAt(1).getKey().getId());
+        //here was the explicit sortindex field test before, but this field does not exist anymore since #3722 and #10067 was fixed
+        Assert.assertEquals(1, rootNode.getIndex(rootNode.getChildAt(1)));
         statement = "Capitula with ligulate ray-florets; leaves pinnatisect";
-        Assert.assertEquals(rootNode.getChildAt(1).getStatement().getLabelText(Language.ENGLISH()), statement);
+        Assert.assertEquals(statement, rootNode.getChildAt(1).getStatement().getLabelText(Language.ENGLISH()));
 
-        Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getId(), 2754);
-        Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getParent().getId(), rootNode.getChildAt(1).getId());
-        Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getKey().getId(), pKey.getId());
-        sortIndex = (Integer)getFieldValueViaReflection(rootNode.getChildAt(1).getChildAt(0), "sortIndex");
-        Assert.assertEquals(sortIndex, new Integer(0));
+        Assert.assertEquals(2754, rootNode.getChildAt(1).getChildAt(0).getId());
+        Assert.assertEquals(rootNode.getChildAt(1).getId(), rootNode.getChildAt(1).getChildAt(0).getParent().getId());
+        Assert.assertEquals(pKey.getId(), rootNode.getChildAt(1).getChildAt(0).getKey().getId());
+        //here was the explicit sortindex field test before, but this field does not exist anymore since #3722 and #10067 was fixed
+        Assert.assertEquals(0, rootNode.getChildAt(1).getIndex(rootNode.getChildAt(1).getChildAt(0)));
         statement = "Ray-florets yellow";
-        Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getStatement().getLabelText(Language.ENGLISH()), statement);
-        Assert.assertEquals(rootNode.getChildAt(1).getChildAt(0).getChildAt(0).getTaxon().getTitleCache(), "Achillea arabica Kotschy sec. Cyprus");
+        Assert.assertEquals(statement, rootNode.getChildAt(1).getChildAt(0).getStatement().getLabelText(Language.ENGLISH()));
+        Assert.assertEquals("Achillea arabica Kotschy sec. Cyprus", rootNode.getChildAt(1).getChildAt(0).getChildAt(0).getTaxon().getTitleCache());
     }
 
     @Test
     @Ignore
-    public void addGrandChildPolytomousKeyNode() {
+    public void testAddGrandChildPolytomousKeyNode() {
 
-        PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+        PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid), PolytomousKey.class);
+        UUID uuidRootNode = pKey.getRoot().getUuid();
         PolytomousKeyNode rootChildNode = pKey.getRoot().getChildAt(0);
+        UUID uuidRootChildNode = rootChildNode.getUuid();
         PolytomousKeyNode grandChildNode = PolytomousKeyNode.NewInstance();
         rootChildNode.addChild(grandChildNode);
+        UUID uuidGrandChildNode = rootChildNode.getUuid();
 
         MergeResult<PolytomousKey> result = polytomousKeyService.merge(pKey, true);
         pKey = result.getMergedEntity();
+        Assert.assertNotNull("1", pKey);
+        Assert.assertNotNull("2", pKey.getRoot());
+        Assert.assertEquals(uuidRootNode, pKey.getRoot().getUuid());
+        Assert.assertEquals(1, pKey.getRoot().getChildren().size());
+        Assert.assertEquals(1, pKey.getRoot().childCount());
+        Assert.assertNotNull("3", pKey.getRoot().getChildAt(0));
         grandChildNode = pKey.getRoot().getChildAt(0).getChildAt(0);
         Assert.assertTrue(0 != grandChildNode.getId());
         KeyStatement ks = KeyStatement.NewInstance("test");
@@ -183,11 +180,10 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
         //grandChildNode = pKey.getRoot().getChildAt(0).getChildAt(0);
         //KeyStatement ks = grandChildNode.getStatement();
         Assert.assertTrue(0 != ks.getId());
-
     }
 
     @Test
-    public void addGreatGrandChildPolytomousKeyNode() {
+    public void testAddGreatGrandChildPolytomousKeyNode() {
 
         PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
         PolytomousKeyNode rootChildNode = pKey.getRoot().getChildAt(0);
@@ -200,7 +196,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
     }
 
     @Test
-    public void savePolytomousKeyNodeData() {
+    public void testSavePolytomousKeyNodeData() {
         PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
 
         PolytomousKeyNode pkeynode = pkey.getRoot();
@@ -259,9 +255,8 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
         //Assert.assertEquals(pkeynode.getFeature().getId(), feature.getId());
     }
 
-
     @Test
-    public void savePolytomousKeyNodeDataWithSameSubKey() {
+    public void testSavePolytomousKeyNodeDataWithSameSubKey() {
 
         PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
 
@@ -281,7 +276,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
     }
 
     @Test
-    public void savePolytomousKeyNodeDataWithSameSubKeyUsingService() {
+    public void testSavePolytomousKeyNodeDataWithSameSubKeyUsingService() {
 
         PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
 
@@ -306,7 +301,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
     }
 
     @Test
-    public void savePolytomousKeyNodeDataWithSameLanguageInLabel() {
+    public void testSavePolytomousKeyNodeDataWithSameLanguageInLabel() {
 
         PolytomousKey pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
         PolytomousKeyNode pkeynode = pkey.getRoot();
@@ -321,7 +316,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
     }
 
     @Test
-    public void deleteSubKeyInPolytomousSubKeyWithoutInitializing() {
+    public void testDeleteSubKeyInPolytomousSubKeyWithoutInitializing() {
         PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
 
         PolytomousKeyNode rootNode = pKey.getRoot();
@@ -335,11 +330,11 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
             Assert.fail();
         }
 
-        Set<Integer> ids = new HashSet<Integer>();
+        List<Integer> ids = new ArrayList<>();
         ids.add(2753);
         ids.add(2754);
         ids.add(2751);
-        List<PolytomousKeyNode> nodes = polytomousKeyNodeService.findById(ids);
+        List<PolytomousKeyNode> nodes = polytomousKeyNodeService.loadByIds(ids, null);
         for (PolytomousKeyNode child:nodes){
             child.setSubkey(null);
            // polytomousKeyNodeService.merge(child);
@@ -359,16 +354,15 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
 
 
     @Test
-    public void deleteSubKeyInPolytomousNode() {
+    public void testDeleteSubKeyInPolytomousNode() {
         PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
 
-
         PolytomousKeyNode rootNode = pKey.getRoot();
         List<PolytomousKeyNode> children = rootNode.getChildren();
         PolytomousKeyNode child = rootNode.getChildAt(0);
         polytomousKeyNodeService.delete(child.getUuid(), true);
 
-        pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+        pKey = CdmBase.deproxy(polytomousKeyService.load(polytomousKeyUuid),PolytomousKey.class);
 
         rootNode = pKey.getRoot();
         children = rootNode.getChildren();
@@ -376,9 +370,9 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
     }
 
     @Test
-    public void deleteSubKeyInPolytomousSubKeyAfterInitializing() {
-        PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
+    public void testDeleteSubKeyInPolytomousSubKeyAfterInitializing() {
 
+        PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
 
         PolytomousKeyNode rootNode = pKey.getRoot();
         PolytomousKeyNode child = rootNode.getChildAt(0);
@@ -398,9 +392,10 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
     }
 
     @Test
-    public void saveNewTermVocabulary() {
+    public void testSaveNewTermVocabulary() {
         TermVocabulary<Feature> termVocabulary =
                 TermVocabulary.NewInstance(TermType.Feature,
+                        Feature.class,
                         null,
                         "Untitled",
                         null,
@@ -422,10 +417,10 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
     }
 
     @Test
-    public void saveNewTerm() {
+    public void testSaveNewTerm() {
         UUID vocNameFeatureUuid = UUID.fromString("fa7ca3eef-4092-49e1-beec-ed5096193e5e");
         UUID vocFeatureUuid = UUID.fromString("b187d555-f06f-4d65-9e53-da7c93f8eaa8");
-        Feature newTerm = (Feature)TermType.Feature.getEmptyDefinedTermBase();
+        Feature newTerm = (Feature)TermType.Feature.getEmptyDefinedTermBase(null);
         newTerm.setLabel("CreateTest");
 
         try {
@@ -459,6 +454,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
 
             vocNameFeature.addTerm(newTerm);
 
+            @SuppressWarnings({ "unchecked", "rawtypes"})
             List<MergeResult<TermVocabulary<Feature>>> mergeResults = (List)vocabularyService.merge(vocs, true);
 
             for(MergeResult<TermVocabulary<Feature>> result : mergeResults){
@@ -496,7 +492,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
     }
 
     @Test
-    public void updatePerson() {
+    public void testUpdatePerson() {
         // Test for #5138
         Person person = (Person) CdmApplicationState.getCurrentAppConfig().getAgentService().load(personUuid);
         person.setGivenName("Me");
@@ -504,7 +500,7 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
     }
 
     @Test
-    public void createPerson() {
+    public void testCreatePerson() {
         // Test for #5138
         Person person = Person.NewInstance();
         person = (Person) CdmApplicationState.getCurrentAppConfig().getAgentService().merge(person);
@@ -529,6 +525,5 @@ public class CdmEntitySessionAwareTest extends RemotingSessionAwareTest {
         ICdmEntitySession newActiveSession = getCdmEntitySessionManager().newSession(so2, true);
         Assert.assertFalse(activeSession.equals(newActiveSession));
         thread.unblock();
-
     }
 }
index a38e68cde517cafef358514fcfdea0d6e59e354e..3bf1ddeccb299a9c64e559666c20277e73109b4c 100644 (file)
@@ -4,9 +4,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.log4j.Logger;
 import org.junit.Assert;
-import org.junit.BeforeClass;
 import org.junit.Test;
 import org.unitils.dbunit.annotation.DataSet;
 
@@ -19,7 +17,6 @@ import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.description.KeyStatement;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
-import eu.etaxonomy.cdm.persistence.dao.description.IPolytomousKeyNodeDao;
 import eu.etaxonomy.cdm.persistence.dto.MergeResult;
 import eu.etaxonomy.taxeditor.httpinvoker.RemotingSessionAwareTest;
 
@@ -28,22 +25,12 @@ import eu.etaxonomy.taxeditor.httpinvoker.RemotingSessionAwareTest;
 @DataSet
 public class CdmEntitySessionManagerTest extends RemotingSessionAwareTest {
 
-       @SuppressWarnings("unused")
-       private static final Logger logger = Logger.getLogger(CdmEntitySessionManagerTest.class);
-
-
        IPolytomousKeyService polytomousKeyService = getRemoteApplicationController().getPolytomousKeyService();
        IPolytomousKeyNodeService polytomousKeyNodeService = getRemoteApplicationController().getPolytomousKeyNodeService();
 
        private final UUID polytomousKeyUuid = UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66");
        private final Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
 
-
-       @BeforeClass
-       public static void initializeCdmEntitySessionManagerTest() {
-       }
-
-
        @Test
        public void manageNullSessionTest() {
 
@@ -59,7 +46,6 @@ public class CdmEntitySessionManagerTest extends RemotingSessionAwareTest {
 
                Assert.assertNotNull(getActiveSession());
 
-
                // FIXME:Remoting fix test of setting root entities
                //Assert.assertEquals(rootEntities.size(),1);
                //Assert.assertSame(rootEntities.get(0), pKey);
@@ -74,7 +60,6 @@ public class CdmEntitySessionManagerTest extends RemotingSessionAwareTest {
 
                pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
 
-
                Assert.assertEquals(pKey.getTitleCache(), upTitleCache);
                node = pKey.getRoot().getChildAt(0);
                KeyStatement statement = node.getStatement();
@@ -105,7 +90,7 @@ public class CdmEntitySessionManagerTest extends RemotingSessionAwareTest {
                PolytomousKeyNode node = root.getChildAt(0);
                List<PolytomousKeyNode> nodes = root.getChildren();
                node.getStatement().getLabel(english).setText(upStatement);
-               
+
                MergeResult<PolytomousKey> result = polytomousKeyService.merge(key, true);
                key = result.getMergedEntity();
                pKeys = polytomousKeyService.list(PolytomousKey.class, null, null, null, null);
@@ -121,7 +106,5 @@ public class CdmEntitySessionManagerTest extends RemotingSessionAwareTest {
                        Assert.fail();
                }
                Assert.assertEquals(node.getStatement().getLabel(english).getText(), upStatement);
-
        }
-
 }
index 965c36730f2f4039abf6a5a86b94b63ba398e821..5bef5a52b4ca5b595b7da39b137155e96213947d 100644 (file)
@@ -5,7 +5,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.junit.Assert;
 
 import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
@@ -13,9 +13,9 @@ import eu.etaxonomy.cdm.api.application.ICdmChangeListener;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 
 public class MockSessionOwner<T extends CdmBase> 
-               implements ICdmEntitySessionEnabled, ICdmChangeListener {
+               implements ICdmEntitySessionEnabled<T>, ICdmChangeListener {
 
-    private static final Logger logger = Logger.getLogger(MockSessionOwner.class);
+    private static final Logger logger = LogManager.getLogger(MockSessionOwner.class);
 
     private final List<T> rootEntities;
     private Set<T> expectedUpdatedObjects;
@@ -69,9 +69,7 @@ public class MockSessionOwner<T extends CdmBase>
     public Set<? extends CdmBase> getEventUpdatedObjects() {
         return eventUpdatedObjects;
     }
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
-     */
+
     @Override
     public void onChange(CdmChangeEvent event) {
         eventUpdatedObjects = event.getChangedObjects();
@@ -83,13 +81,9 @@ public class MockSessionOwner<T extends CdmBase>
 
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
-     */
     @Override
     public Map<Object, List<String>> getPropertyPathsMap() {
         // TODO Auto-generated method stub
         return null;
     }
-
-}
+}
\ No newline at end of file
index 1012c54a21e85d1c306ad9a66fce37373b1489b8..1112e5768b52abfb80b64b1ec9a874efea9c79e3 100644 (file)
@@ -16,25 +16,16 @@ import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 /**
  * @author cmathew
  * @date 15 Jun 2015
- *
  */
 public class MockConversationEnabled implements IConversationEnabled {
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
-     */
     @Override
     public void update(CdmDataChangeMap arg0) {
         // TODO Auto-generated method stub
-
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
-     */
     @Override
     public ConversationHolder getConversationHolder() {
         return new ConversationHolderMock();
     }
-
-}
+}
\ No newline at end of file
index 280de5c15c5cfe44b1890d0a5b35e039b1488a04..8ba0e073536499117a21e62c4772dd4e48757fd8 100644 (file)
@@ -8,7 +8,6 @@
  */
 package eu.etaxonomy.taxeditor.ui.dialogs;
 
-import java.io.IOException;
 import java.util.List;
 
 import org.junit.Assert;
@@ -26,25 +25,27 @@ import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfoConfig;
 /**
  * @author cmathew
  * @date 26 Jan 2015
- *
  */
-
 public class CdmServerInfoTest extends UnitilsJUnit4 {
 
     @Test
-    public void pingServersTest() throws CdmServerException, IOException {
-        List<CdmServerInfo> servers = CdmServerInfo.getCdmServers();
+    public void pingServersTest() {
+        List<CdmServerInfo> servers = CdmServerInfo.getCdmServers(false);
         for(CdmServerInfo server : servers) {
             if(server.getServer().equals("localhost")){
                 //no need to test ping localhost
                 continue;
             }
-            server.pingServer();
+            try {
+                server.pingServer();
+            } catch (Exception e) {
+                System.out.println();
+                throw new RuntimeException("Pinging server " + server.getServer() + " was not successful.", e);
+            }
         }
     }
 
-
-    @Ignore // this should be targetting integration or production
+    @Ignore // this should be targeting integration or production
     @Test
     public void pingInstancesTest() {
         CdmServerInfo csii = new CdmServerInfo(new CdmServerInfoConfig("edit-test", "test.e-taxonomy.eu", 8080, "cdmserver/", false));
@@ -71,7 +72,7 @@ public class CdmServerInfoTest extends UnitilsJUnit4 {
         }
     }
 
-    @Ignore // this should be targetting integration or production
+    @Ignore // this should be targeting integration or production
     @Test
     public void refreshInstancesTest() throws CdmServerException {
         CdmServerInfo cdmServerInfo = new CdmServerInfo(new CdmServerInfoConfig("edit-test", "test.e-taxonomy.eu", 8080, "cdmserver/", false));
index adccccfe38ebdfebd567e8f535896741851c3daa..da662230c969476f08235b7c38c36d09db78cc3f 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,16 @@ 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
- * @author n.hoffmann\r
  *\r
+ * @author n.hoffmann\r
  */\r
 public abstract class AbstractSelectionElementTest extends AbstractEditorTest{\r
 \r
-       \r
-\r
        @After\r
        public void tearDown() {\r
                utils.cancel();\r
        }\r
-       \r
-}\r
+}
\ No newline at end of file
index 233cd8127bf2f25099f3e8adc86d0004cfbc2a59..1872a92953187f96638fb78adc40bcd44d7b4a2c 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,11 +18,11 @@ import org.junit.Test;
  * should be handled by different tests.\r
  *\r
  * @author n.hoffmann\r
- *\r
  */\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..83489273702b5ed4b52cf3d4091e43fa27423fe6 100644 (file)
@@ -1,19 +1,24 @@
 /**\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
 /**\r
  * @author n.hoffmann\r
- *\r
  */\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..55322d03decb8330fd4c6f54533d5168468930cb 100644 (file)
@@ -1,15 +1,19 @@
 /**\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
 /**\r
  * @author n.hoffmann\r
- *\r
  */\r
 @Ignore\r
 public class TaxonNodeSelectionElementTest extends AbstractSelectionElementTest {\r
@@ -25,5 +29,4 @@ public class TaxonNodeSelectionElementTest extends AbstractSelectionElementTest
                utils.openFilteredSelection(1, "Select parent taxon");\r
                utils.cancel();\r
        }\r
-\r
-}\r
+}
\ No newline at end of file
index fef3859f671d184031b2fee83fc7c9882e015722..b1efb1e69838bff59840e2b06174aae0159d02a3 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
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 be23b82da42abfc1cf3c2279d62414a6d83604ce..1537736d43c8e8691458ab53ce6981a7b3f1c12b 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans      http://www.springframework.org/schema/beans/spring-beans-2.5.xsd     http://www.springframework.org/schema/context     http://www.springframework.org/schema/context/spring-context-2.5.xsd">
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans      http://www.springframework.org/schema/beans/spring-beans-4.3.xsd     http://www.springframework.org/schema/context     http://www.springframework.org/schema/context/spring-context-4.3.xsd">
   ls
   <bean id="cdmTestDataSource" class="eu.etaxonomy.cdm.database.LocalH2" lazy-init="true">
     <property name="driverClassName" value="org.h2.Driver" />
index 35329517315eae5b60f7fb9996543dbf94f6b2d0..f4e09c43e045e1ee87b7054d7343c3bae924a0e2 100644 (file)
@@ -3,9 +3,9 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:tx="http://www.springframework.org/schema/tx"
   xmlns:context="http://www.springframework.org/schema/context"
-  xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-  http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-2.5.xsd
-  http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+  xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
+  http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-4.3.xsd
+  http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
 ">
  <bean id="dataSourceProperties" class="eu.etaxonomy.cdm.remote.config.DataSourceProperties">
    <property name="propsMap">
index ca4191922400c176f9b252391c865f2f8e0fe49d..06a13caa0a895911495f1d6b2e57394fb4c61770 100644 (file)
@@ -3,9 +3,9 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xmlns:context="http://www.springframework.org/schema/context"
-    xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
-    http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-2.5.xsd
-    http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+    xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
+    http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-4.3.xsd
+    http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
     ">
 
     <!--
index e6e3b44475d1353036107395577060d899c2ca6e..deb9ac171997ef8ec1e70c24dd7c8ce5a09a6bbc 100644 (file)
       RightsInfo                     1
       TaxonBase                      6
   
---><dataset>
+--><dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../database/schema/dataset.dtd">
   <PolytomousKey_Extension PolytomousKey_id="1550" extensions_id="10"/>
 
   <PolytomousKey_Credit PolytomousKey_id="1550" credits_id="20" sortIndex="0"/>
-
+  
   <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2751" modifyingtext_id="13780" modifyingtext_mapkey_id="124"/>
   <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2752" modifyingtext_id="13781" modifyingtext_mapkey_id="124"/>
   <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2753" modifyingtext_id="13795" modifyingtext_mapkey_id="124"/>
   <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2757" modifyingtext_id="13794" modifyingtext_mapkey_id="124"/>
   <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2758" modifyingtext_id="13791" modifyingtext_mapkey_id="124"/>
   <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2759" modifyingtext_id="13793" modifyingtext_mapkey_id="124"/>
-
-  <LanguageString id="13780" created="2014-03-10 10:03:09.0" uuid="cceaa60b-61f4-4c8a-bb0e-d45f0fa3e2dc" text="Modifying Text 1a" language_id="124"/>
-  <LanguageString id="13781" created="2014-03-10 10:03:17.0" uuid="01a0ace4-de49-4725-9909-e881fb13035d" text="Modifying Text 1b" language_id="124"/>
-  <LanguageString id="13782" created="2014-03-10 10:03:48.0" uuid="ec0fea40-69dd-4c3e-ab7a-34948037a069" updated="2014-03-10 10:06:32.0" text="Capitula with ligulate ray-florets; leaves pinnatisect" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13783" created="2014-03-10 10:04:03.0" uuid="82f8a3a0-567f-4d89-ba10-3f3699111d55" updated="2014-03-10 10:06:32.0" text="Ray-florets yellow" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13784" created="2014-03-10 10:04:21.0" uuid="4270501f-1efc-45c2-9e8f-c65f120e8f4c" updated="2014-03-10 10:06:32.0" text="Stem thinly pilose; leaves 10-15 mm wide, with spreading linear-subulate segments; perennial herb" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13785" created="2014-03-10 10:04:07.0" uuid="813f5fd6-c8f6-43e8-9a2b-1464f3ba052a" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13786" created="2014-03-10 10:04:53.0" uuid="ba17ac94-632f-4d69-ac89-a882e19ff1c5" updated="2014-03-10 10:06:32.0" text="Stem white-tomentose; leaves 1-3 mm wide, with minute overlapping, transverse segments; small subshrubs with a woody base" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13787" created="2014-03-10 10:04:34.0" uuid="ab219a5d-e0c4-45fd-8405-6693c3fb8abf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13788" created="2014-03-10 10:03:53.0" uuid="2baec690-422d-4f85-bcfd-24f5718cbecf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13789" created="2014-03-10 10:05:16.0" uuid="7c6a7984-8e6f-48b1-86b2-d5d643199bf3" updated="2014-03-10 10:06:32.0" text="Ray-florets white" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13790" created="2014-03-10 10:05:34.0" uuid="72bd8bc9-1904-47ab-8bec-b9296a98b244" updated="2014-03-10 10:06:32.0" text="Perennial herb; stem pilose, hairy or glabrescent, but not tomentose; ligules 1-2 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13791" created="2014-03-10 10:05:20.0" uuid="c917e3fb-e48b-4207-b77d-c1c108e37906" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13792" created="2014-03-10 10:06:15.0" uuid="c5dd35d8-da6a-4d05-b30c-6b55220bd989" updated="2014-03-10 10:06:32.0" text="Shrub with a woody base; stem white-tomentose or woolly; ligules 4-5 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13793" created="2014-03-10 10:06:03.0" uuid="227a17f6-1ca1-4d06-8480-25711b614863" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13794" created="2014-03-10 10:05:07.0" uuid="2c434ab1-8ca7-4464-b5cd-4cee40db41ed" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13795" created="2014-03-10 10:03:38.0" uuid="27190d54-f53b-401e-820c-edfb36d4bcbf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13796" created="2014-03-10 10:03:25.0" uuid="69cffb28-8a85-478f-bcae-533e20938ccd" updated="2014-03-10 10:06:32.0" text="Capitula without ligulate ray-florets; leaves entire or subentire" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="14570" created="2014-10-09 15:42:33.0" uuid="84967760-6dbe-4af4-8e0c-309f1af6ce20" updated="2014-10-09 15:42:44.0" text="Question 1" createdby_id="10" updatedby_id="10" language_id="124"/>
-  <LanguageString id="14571" created="2014-10-09 15:42:55.0" uuid="d82f37b1-f51d-42c1-a291-0c7820db155e" updated="2014-10-09 15:43:03.0" text="Question 2" createdby_id="10" updatedby_id="10" language_id="124"/>
-  <LanguageString id="14572" created="2014-10-09 15:42:55.0" uuid="d82f37b1-f51d-42c1-a291-0c7820db155f" updated="2014-10-09 15:43:03.0" text="Koi Sach Ya Sawal" createdby_id="30" updatedby_id="30" language_id="125"/>
-
-  <TaxonBase DTYPE="Taxon" id="32" created="2011-03-01 20:11:26.0" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" protectedtitlecache="false" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="35" created="2010-12-21 15:09:43.0" uuid="fade44fd-34b2-455f-861a-d1372b866f06" protectedtitlecache="false" titleCache="Achillea sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="36" created="2011-03-01 20:11:26.0" uuid="05f0a2e1-e3c3-4e74-8fec-8a0ae89236c3" protectedtitlecache="false" titleCache="Achillea cretica L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="37" created="2011-03-01 20:11:26.0" uuid="0f8d18a9-e861-48e8-bfab-83e01a379bc0" protectedtitlecache="false" titleCache="Achillea maritima (L.)Ehrend. &amp; Y.-P. Guo subsp. maritima sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="40" created="2010-12-21 15:09:43.0" uuid="2b336df7-29e8-4f79-985f-66502739d22f" protectedtitlecache="false" titleCache="Achillea millefolium L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="41" created="2011-03-01 20:11:26.0" uuid="094e1af8-efd8-4605-b037-b4f715379562" protectedtitlecache="false" titleCache="Achillea santolinoides subsp. wilhelmsii (K. Koch) Greuter sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" sec_id="10" publish="true"/>
+  
+  <LanguageString id="13780" uuid="cceaa60b-61f4-4c8a-bb0e-d45f0fa3e2dc" text="Modifying Text 1a" language_id="124"/>
+  <LanguageString id="13781" uuid="01a0ace4-de49-4725-9909-e881fb13035d" text="Modifying Text 1b" language_id="124"/>
+  <LanguageString id="13782" uuid="ec0fea40-69dd-4c3e-ab7a-34948037a069" text="Capitula with ligulate ray-florets; leaves pinnatisect" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13783" uuid="82f8a3a0-567f-4d89-ba10-3f3699111d55" text="Ray-florets yellow" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13784" uuid="4270501f-1efc-45c2-9e8f-c65f120e8f4c" text="Stem thinly pilose; leaves 10-15 mm wide, with spreading linear-subulate segments; perennial herb" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13785" uuid="813f5fd6-c8f6-43e8-9a2b-1464f3ba052a" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13786" uuid="ba17ac94-632f-4d69-ac89-a882e19ff1c5" text="Stem white-tomentose; leaves 1-3 mm wide, with minute overlapping, transverse segments; small subshrubs with a woody base" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13787" uuid="ab219a5d-e0c4-45fd-8405-6693c3fb8abf" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13788" uuid="2baec690-422d-4f85-bcfd-24f5718cbecf" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13789" uuid="7c6a7984-8e6f-48b1-86b2-d5d643199bf3" text="Ray-florets white" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13790" uuid="72bd8bc9-1904-47ab-8bec-b9296a98b244" text="Perennial herb; stem pilose, hairy or glabrescent, but not tomentose; ligules 1-2 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13791" uuid="c917e3fb-e48b-4207-b77d-c1c108e37906" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13792" uuid="c5dd35d8-da6a-4d05-b30c-6b55220bd989" text="Shrub with a woody base; stem white-tomentose or woolly; ligules 4-5 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13793" uuid="227a17f6-1ca1-4d06-8480-25711b614863" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13794" uuid="2c434ab1-8ca7-4464-b5cd-4cee40db41ed" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13795" uuid="27190d54-f53b-401e-820c-edfb36d4bcbf" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13796" uuid="69cffb28-8a85-478f-bcae-533e20938ccd" text="Capitula without ligulate ray-florets; leaves entire or subentire" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="14570" uuid="84967760-6dbe-4af4-8e0c-309f1af6ce20" text="Question 1" createdby_id="10" updatedby_id="10" language_id="124"/>
+  <LanguageString id="14571" uuid="d82f37b1-f51d-42c1-a291-0c7820db155e" text="Question 2" createdby_id="10" updatedby_id="10" language_id="124"/>
+  <LanguageString id="14572" uuid="d82f37b1-f51d-42c1-a291-0c7820db155f" text="Koi Sach Ya Sawal" createdby_id="30" updatedby_id="30" language_id="125"/>
+
+  <TaxonBase DTYPE="Taxon" id="32" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" protectedtitlecache="false" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="35" uuid="fade44fd-34b2-455f-861a-d1372b866f06" protectedtitlecache="false" titleCache="Achillea sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="36" uuid="05f0a2e1-e3c3-4e74-8fec-8a0ae89236c3" protectedtitlecache="false" titleCache="Achillea cretica L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="37" uuid="0f8d18a9-e861-48e8-bfab-83e01a379bc0" protectedtitlecache="false" titleCache="Achillea maritima (L.)Ehrend. &amp; Y.-P. Guo subsp. maritima sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="40" uuid="2b336df7-29e8-4f79-985f-66502739d22f" protectedtitlecache="false" titleCache="Achillea millefolium L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="41" uuid="094e1af8-efd8-4605-b037-b4f715379562" protectedtitlecache="false" titleCache="Achillea santolinoides subsp. wilhelmsii (K. Koch) Greuter sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="1" SOURCEDTAXON_ID="32" UUID="5ff76440-c9ab-4f13-8f1a-c39d57d3c714" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="2" SOURCEDTAXON_ID="35" UUID="3914b660-3cb3-4a5b-8fc7-264c7ac17a19" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="3" SOURCEDTAXON_ID="56" UUID="7cbe8fd0-1329-4421-8bb5-05b57f2048d1" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="4" SOURCEDTAXON_ID="37" UUID="14181c38-c344-4a9c-ba25-47877eff26af" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="5" SOURCEDTAXON_ID="40" UUID="1894e029-5303-474c-a1fc-8d97b493025b" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="6" SOURCEDTAXON_ID="41" UUID="68ad182d-1bce-4195-8690-af1d089c9d4d" SOURCETYPE="PTS" CITATION_ID="10" />
 
   <PolytomousKey_Taxon polytomousKey_id="1550" taxon_id="35"/>
 
-  <RightsInfo id="10" created="2014-10-09 15:45:53.0" uuid="bdfb572b-be25-45e7-9349-22a9da43531f" updated="2014-10-09 15:48:01.0" text="Rights Text Test" createdby_id="10" updatedby_id="10" agent_id="4808" type_id="2056"/>
+  <RightsInfo id="10" uuid="bdfb572b-be25-45e7-9349-22a9da43531f" text="Rights Text Test" createdby_id="10" updatedby_id="10" agent_id="4808" type_id="2056"/>
 
-  <PolytomousKeyNode id="2750" created="2014-03-10 10:02:35.0" uuid="75e4c924-ff58-4ee7-a59d-fd9173517d08" updated="2014-03-10 10:02:42.0" nodenumber="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2760" statement_id="2460"/>
-  <PolytomousKeyNode id="2751" created="2014-03-10 10:02:52.0" uuid="23e51ff7-11b1-443b-aff2-3fe8b5ace9fe" sortindex="0" key_id="1550" statement_id="2467" subkey_id="1550" taxon_id="37" parent_id="2750"/>
-  <PolytomousKeyNode id="2752" created="2014-03-10 10:03:16.0" uuid="dcf326f7-c0ad-4e76-b64e-43aea11f767c" key_id="1550"/>
-  <PolytomousKeyNode id="2753" created="2014-03-10 10:03:38.0" uuid="b775c027-13c0-4b87-8aa9-712faeaafbdc" updated="2014-03-10 10:06:32.0" nodenumber="2" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2761" statement_id="2460"  subkey_id="1550" parent_id="2750"/>
-  <PolytomousKeyNode id="2754" created="2014-03-10 10:03:52.0" uuid="df5d5922-35de-43d5-9d46-7730ae28eeb3" updated="2014-03-10 10:06:32.0" nodenumber="3" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2461" subkey_id="1550" parent_id="2753"/>
-  <PolytomousKeyNode id="2755" created="2014-03-10 10:04:07.0" uuid="0c8583ee-399e-433c-b76b-272c54dbd9f5" updated="2014-03-10 10:06:32.0" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2462" taxon_id="32" parent_id="2754"/>
-  <PolytomousKeyNode id="2756" created="2014-03-10 10:04:34.0" uuid="a10e1e61-82c0-470e-a245-10a927b80c9a" updated="2014-03-10 10:06:32.0" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2463" taxon_id="41" parent_id="2754"/>
-  <PolytomousKeyNode id="2757" created="2014-03-10 10:05:07.0" uuid="19f7a6a2-4c55-49cb-8b92-d68a9fd9074c" updated="2014-03-10 10:06:32.0" nodenumber="4" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2464" parent_id="2753"/>
-  <PolytomousKeyNode id="2758" created="2014-03-10 10:05:20.0" uuid="0a4d86d1-fba5-4088-8dcc-6f0e7268ca5b" updated="2014-03-10 10:06:32.0" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2465" taxon_id="40" parent_id="2757"/>
-  <PolytomousKeyNode id="2759" created="2014-03-10 10:06:03.0" uuid="827c9df4-ac15-4163-95ab-616d51f62803" updated="2014-03-10 10:06:32.0" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2466" taxon_id="36" parent_id="2757"/>
+  <PolytomousKeyNode id="2750" uuid="75e4c924-ff58-4ee7-a59d-fd9173517d08" nodenumber="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2760" statement_id="2460"/>
+  <PolytomousKeyNode id="2751" uuid="23e51ff7-11b1-443b-aff2-3fe8b5ace9fe" sortindex="0" key_id="1550" statement_id="2467" subkey_id="1550" taxon_id="37" parent_id="2750"/>
+  <PolytomousKeyNode id="2752" uuid="dcf326f7-c0ad-4e76-b64e-43aea11f767c" key_id="1550"/>
+  <PolytomousKeyNode id="2753" uuid="b775c027-13c0-4b87-8aa9-712faeaafbdc" nodenumber="2" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2761" statement_id="2460"  subkey_id="1550" parent_id="2750"/>
+  <PolytomousKeyNode id="2754" uuid="df5d5922-35de-43d5-9d46-7730ae28eeb3" nodenumber="3" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2461" subkey_id="1550" parent_id="2753"/>
+  <PolytomousKeyNode id="2755" uuid="0c8583ee-399e-433c-b76b-272c54dbd9f5" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2462" taxon_id="32" parent_id="2754"/>
+  <PolytomousKeyNode id="2756" uuid="a10e1e61-82c0-470e-a245-10a927b80c9a" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2463" taxon_id="41" parent_id="2754"/>
+  <PolytomousKeyNode id="2757" uuid="19f7a6a2-4c55-49cb-8b92-d68a9fd9074c" nodenumber="4" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2464" parent_id="2753"/>
+  <PolytomousKeyNode id="2758" uuid="0a4d86d1-fba5-4088-8dcc-6f0e7268ca5b" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2465" taxon_id="40" parent_id="2757"/>
+  <PolytomousKeyNode id="2759" uuid="827c9df4-ac15-4163-95ab-616d51f62803" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2466" taxon_id="36" parent_id="2757"/>
 
-  <Credit id="20" created="2014-10-09 15:45:22.0" uuid="aa412b15-ee6c-4834-b14e-a66969cb398d" updated="2014-10-09 15:48:01.0" text="Credits Text Test" createdby_id="10" updatedby_id="10" language_id="124" agent_id="4809"/>
+  <Credit id="20" uuid="aa412b15-ee6c-4834-b14e-a66969cb398d" text="Credits Text Test" createdby_id="10" updatedby_id="10" language_id="124" agent_id="4809"/>
 
-  <KeyStatement id="2460" created="2014-03-10 10:03:48.0" uuid="66da6df7-784c-4d5a-9378-58b2cf92ba13" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
-  <KeyStatement id="2461" created="2014-03-10 10:04:03.0" uuid="f9cfd498-de47-48fd-b38c-43cf57b63750" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
-  <KeyStatement id="2462" created="2014-03-10 10:04:21.0" uuid="817fb39e-91d4-4d8c-a942-6acab47575d1" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
-  <KeyStatement id="2463" created="2014-03-10 10:04:53.0" uuid="6b571b86-7764-4f27-925c-ae5e2653f7ad" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
-  <KeyStatement id="2464" created="2014-03-10 10:05:16.0" uuid="91bbb534-abdf-4915-9f6f-a0cb41f8cf58" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
-  <KeyStatement id="2465" created="2014-03-10 10:05:34.0" uuid="1991ca31-2630-4917-8db3-eb67cec8f231" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
-  <KeyStatement id="2466" created="2014-03-10 10:06:15.0" uuid="3e1bbc59-b098-4533-ac35-245e1140a0ae" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
-  <KeyStatement id="2467" created="2014-03-10 10:03:24.0" uuid="68fd99f6-64ce-4bb8-a6af-d2cf2c046e2c" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
-  <KeyStatement id="2760" created="2014-10-09 15:42:33.0" uuid="b9702653-f620-4208-bda9-a6fe082004d1" updated="2014-10-09 15:42:44.0" createdby_id="10" updatedby_id="10"/>
-  <KeyStatement id="2761" created="2014-10-09 15:42:55.0" uuid="688a432f-4b57-4c6f-a8f6-0c468a28cb7c" updated="2014-10-09 15:43:03.0" createdby_id="10" updatedby_id="10"/>
+  <KeyStatement id="2460" uuid="66da6df7-784c-4d5a-9378-58b2cf92ba13" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2461" uuid="f9cfd498-de47-48fd-b38c-43cf57b63750" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2462" uuid="817fb39e-91d4-4d8c-a942-6acab47575d1" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2463" uuid="6b571b86-7764-4f27-925c-ae5e2653f7ad" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2464" uuid="91bbb534-abdf-4915-9f6f-a0cb41f8cf58" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2465" uuid="1991ca31-2630-4917-8db3-eb67cec8f231" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2466" uuid="3e1bbc59-b098-4533-ac35-245e1140a0ae" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2467" uuid="68fd99f6-64ce-4bb8-a6af-d2cf2c046e2c" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2760" uuid="b9702653-f620-4208-bda9-a6fe082004d1" createdby_id="10" updatedby_id="10"/>
+  <KeyStatement id="2761" uuid="688a432f-4b57-4c6f-a8f6-0c468a28cb7c" createdby_id="10" updatedby_id="10"/>
 
-  <AgentBase DTYPE="Person" id="4809" created="2010-12-21 15:09:59.0" uuid="945d08f2-eb92-45b6-9252-6275ea6d338b" protectedtitlecache="false" titleCache="R. A. Graham" nomenclaturaltitle="R. A. Graham" createdby_id="11"/>
+  <AgentBase DTYPE="Person" id="4809" uuid="945d08f2-eb92-45b6-9252-6275ea6d338b" protectedtitlecache="false" titleCache="R. A. Graham" nomenclaturaltitle="R. A. Graham" createdby_id="11"/>
 
-  <Extension id="10" created="2014-10-09 15:45:41.0" uuid="0d6f35d7-7e76-446a-a017-7e8355ee1b4c" updated="2014-10-09 15:48:01.0" value="http://test.com" createdby_id="10" updatedby_id="10" type_id="2075"/>
+  <Extension id="10" uuid="0d6f35d7-7e76-446a-a017-7e8355ee1b4c" value="http://test.com" createdby_id="10" updatedby_id="10" type_id="2075"/>
 
   <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23710"/>
   <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23711"/>
   <KeyStatement_LanguageString KeyStatement_id="2761" label_id="14571" label_mapkey_id="124"/>
   <KeyStatement_LanguageString KeyStatement_id="2460" label_id="14572" label_mapkey_id="125"/>  
 
-  <PolytomousKey id="751" created="2013-03-24 11:17:08.0" uuid="9d8bf4f6-a70a-4b80-8556-2ccfb436ff01" protectedtitlecache="true" titleCache="Asphodeline" createdby_id="30"  startNumber="1"/>
-  <PolytomousKey id="1550" created="2014-03-10 10:02:35.0" uuid="0d53ba20-7de4-4baa-bd8a-401048447d66" updated="2014-03-10 10:02:42.0" protectedtitlecache="true" titleCache="Achillea" createdby_id="30" updatedby_id="30" root_id="2750" startNumber="1"/>
+  <PolytomousKey id="751" uuid="9d8bf4f6-a70a-4b80-8556-2ccfb436ff01" protectedtitlecache="true" titleCache="Asphodeline" createdby_id="30"  startNumber="1"/>
+  <PolytomousKey id="1550" uuid="0d53ba20-7de4-4baa-bd8a-401048447d66" protectedtitlecache="true" titleCache="Achillea" createdby_id="30" updatedby_id="30" root_id="2750" startNumber="1"/>
 
-  <OriginalSourceBase DTYPE="IdentifiableSource" id="23710" created="2014-03-10 10:06:57.0" uuid="95e05e82-499d-4b8a-ad6b-1085f74a7496" updated="2014-03-10 10:07:33.0" createdby_id="30" updatedby_id="30" citation_id="1730" sourceType="PTS"/>
-  <OriginalSourceBase DTYPE="IdentifiableSource" id="23711" created="2014-03-10 10:06:48.0" uuid="f77555fe-0d98-4c9f-98ed-a5bca6b1e342" updated="2014-03-10 10:07:33.0" createdby_id="30" updatedby_id="30" citation_id="50" sourceType="PTS"/>
+  <OriginalSourceBase DTYPE="IdentifiableSource" id="23710" uuid="95e05e82-499d-4b8a-ad6b-1085f74a7496" createdby_id="30" updatedby_id="30" citation_id="1730" sourceType="PTS"/>
+  <OriginalSourceBase DTYPE="IdentifiableSource" id="23711" uuid="f77555fe-0d98-4c9f-98ed-a5bca6b1e342" createdby_id="30" updatedby_id="30" citation_id="50" sourceType="PTS"/>
 
   
 </dataset>
index 67da9e734946eaf630a6d823fcb79161c2155a4f..3c23724cca51b1efddbd056fa04901fdd88bad8c 100644 (file)
@@ -26,8 +26,9 @@
     ANNOTATION_MARKER*,
     ANNOTATION_MARKER_AUD*,
     AUDITEVENT*,
-    CDM_VIEW*,
-    CDM_VIEW_CDM_VIEW*,
+    AUTHORITY*,
+    CDMLINK*,
+    CDMLINK_AUD*,
     CDMPREFERENCE*,
     COLLECTION*,
     COLLECTION_ANNOTATION*,
@@ -56,6 +57,8 @@
     DEFINEDTERMBASE_RECOMMENDEDMODIFIERENUMERATION_AUD*,
     DEFINEDTERMBASE_REPRESENTATION*,
     DEFINEDTERMBASE_REPRESENTATION_AUD*,
+    DEFINEDTERMBASE_INVERSEREPRESENTATION*,
+    DEFINEDTERMBASE_INVERSEREPRESENTATION_AUD*,
     DEFINEDTERMBASE_STATISTICALMEASURE*,
     DEFINEDTERMBASE_STATISTICALMEASURE_AUD*,
     DEFINEDTERMBASE_SUPPORTEDCATEGORICALENUMERATION*,
     DETERMINATIONEVENT_REFERENCE_AUD*,
     EXTENSION*,
     EXTENSION_AUD*,
-    FEATURENODE*,
-    FEATURENODE_AUD*,
-    FEATURETREE*,
-    FEATURETREE_AUD*,
-    FEATURETREE_REPRESENTATION*,
-    FEATURETREE_REPRESENTATION_AUD*,
+    FEATURESTATE*,
+    FEATURESTATE_AUD*,
     GATHERINGEVENT*,
     GATHERINGEVENT_ANNOTATION*,
     GATHERINGEVENT_ANNOTATION_AUD*,
     MARKER*,
     MARKER_AUD*,
     MEDIA*,
+    MEDIAMETADATA*,
+    MEDIAMETADATA_AUD*,
     MEDIAREPRESENTATION*,
     MEDIAREPRESENTATIONPART*,
     MEDIAREPRESENTATIONPART_AUD*,
     NOMENCLATURALSTATUS_AUD*,
     NOMENCLATURALSTATUS_MARKER*,
     NOMENCLATURALSTATUS_MARKER_AUD*,
-    ORIGINALSOURCE*,
-    ORIGINALSOURCE_ANNOTATION*,
-    ORIGINALSOURCE_ANNOTATION_AUD*,
-    ORIGINALSOURCE_AUD*,
-    ORIGINALSOURCE_MARKER*,
-    ORIGINALSOURCE_MARKER_AUD*,
+    ORIGINALSOURCEBASE*,
+    ORIGINALSOURCEBASE_AUD*,
+    ORIGINALSOURCEBASE_ANNOTATION*,
+    ORIGINALSOURCEBASE_ANNOTATION_AUD*,
+    ORIGINALSOURCEBASE_EXTERNALLINK*,
+    ORIGINALSOURCEBASE_EXTERNALLINK_AUD*,
+    ORIGINALSOURCEBASE_MARKER*,
+    ORIGINALSOURCEBASE_MARKER_AUD*,
     PERMISSIONGROUP*,
+    PERMISSIONGROUP_AUTHORITY*,
     PERMISSIONGROUP_GRANTEDAUTHORITYIMPL*,
     PERSON_KEYWORD*,
     PERSON_KEYWORD_AUD*,
     REFERENCE_ORIGINALSOURCE_AUD*,
     REFERENCE_RIGHTSINFO*,
     REFERENCE_RIGHTSINFO_AUD*,
-    TERMBASE_INVERSEREPRESENTATION*,
-    TERMBASE_INVERSEREPRESENTATION_AUD*,
     REPRESENTATION*,
     REPRESENTATION_ANNOTATION*,
     REPRESENTATION_ANNOTATION_AUD*,
     TAXONNAME_HYBRIDRELATIONSHIP_AUD*,
     TAXONNAME_MARKER*,
     TAXONNAME_MARKER_AUD*,
-    TAXONNAME_NOMENCLATURALSTATUS*,
-    TAXONNAME_NOMENCLATURALSTATUS_AUD*,
     TAXONNAME_ORIGINALSOURCE*,
     TAXONNAME_ORIGINALSOURCE_AUD*,
     TAXONNAME_RIGHTSINFO*,
     TAXONNODE*,
     TAXONNODE_ANNOTATION*,
     TAXONNODE_ANNOTATION_AUD*,
-    TAXONNODE_EXCLUDEDNOTE*,
-    TAXONNODE_EXCLUDEDNOTE_AUD*,
+    TAXONNODE_STATUSNOTE*,
+    TAXONNODE_STATUSNOTE_AUD*,
     TAXONNODE_MARKER*,
     TAXONNODE_MARKER_AUD*,
     TAXONRELATIONSHIP*,
     TAXONRELATIONSHIP_AUD*,
     TAXONRELATIONSHIP_MARKER*,
     TAXONRELATIONSHIP_MARKER_AUD*,
-    TERMVOCABULARY*,
-    TERMVOCABULARY_AUD*,
-    TERMVOCABULARY_REPRESENTATION*,
-    TERMVOCABULARY_REPRESENTATION_AUD*,
+    TERMRELATION*,
+    TERMRELATION_AUD*,
+    TERMCOLLECTION*,
+    TERMCOLLECTION_AUD*,
+    TERMCOLLECTION_REPRESENTATION*,
+    TERMCOLLECTION_REPRESENTATION_AUD*,
     TYPEDESIGNATIONBASE*,
     TYPEDESIGNATIONBASE_ANNOTATION*,
     TYPEDESIGNATIONBASE_ANNOTATION_AUD*,
     TYPEDESIGNATIONBASE_AUD*,
     TYPEDESIGNATIONBASE_MARKER*,
     TYPEDESIGNATIONBASE_MARKER_AUD*,
-    USER*,
-    USER_GRANTEDAUTHORITYIMPL*,
-    USER_PERMISSIONGROUP*)>
+    USERACCOUNT*,
+    USERACCOUNT_AUTHORITY*,
+    USERACCOUNT_GRANTEDAUTHORITYIMPL*,
+    USERACCOUNT_PERMISSIONGROUP*)>
 
 <!ELEMENT ADDRESS EMPTY>
 <!ATTLIST ADDRESS
     CODE CDATA #IMPLIED
     NAME CDATA #IMPLIED
     NOMENCLATURALTITLE CDATA #IMPLIED
-    FIRSTNAME CDATA #IMPLIED
+    GIVENNAME CDATA #IMPLIED
     INITIALS CDATA #IMPLIED
-    LASTNAME CDATA #IMPLIED
+    FAMILYNAME CDATA #IMPLIED
     LIFESPAN_END CDATA #IMPLIED
     LIFESPAN_START CDATA #IMPLIED
     PREFIX CDATA #IMPLIED
     SUFFIX CDATA #IMPLIED
+    ORCID CDATA #IMPLIED
     PROTECTEDNOMENCLATURALTITLECACHE CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     NOMENCLATURALTITLE CDATA #IMPLIED
     PROTECTEDNOMENCLATURALTITLECACHE CDATA #IMPLIED
-    FIRSTNAME CDATA #IMPLIED
+    GIVENNAME CDATA #IMPLIED
     INITIALS CDATA #IMPLIED
-    LASTNAME CDATA #IMPLIED
+    FAMILYNAME CDATA #IMPLIED
     LIFESPAN_END CDATA #IMPLIED
     LIFESPAN_START CDATA #IMPLIED
     PREFIX CDATA #IMPLIED
     SUFFIX CDATA #IMPLIED
+    ORCID CDATA #IMPLIED
     CONTACT_ID CDATA #IMPLIED
     CODE CDATA #IMPLIED
     NAME CDATA #IMPLIED
     UUID CDATA #IMPLIED
 >
 
-<!ELEMENT CDM_VIEW EMPTY>
-<!ATTLIST CDM_VIEW
+<!ELEMENT AUTHORITY EMPTY>
+<!ATTLIST AUTHORITY
+    DTYPE CDATA #REQUIRED
+    ID CDATA #REQUIRED
+    CREATED CDATA #REQUIRED
+    UUID CDATA #REQUIRED
+    PROPERTY CDATA #REQUIRED
+    PERMISSIONCLASS CDATA #REQUIRED
+    OPERATIONS CDATA #REQUIRED
+    TARGETUUID CDATA #REQUIRED
+    CREATEDBY_ID CDATA #REQUIRED
+>
+
+<!ELEMENT CDMLINK EMPTY>
+<!ATTLIST CDMLINK
     ID CDATA #REQUIRED
     CREATED CDATA #IMPLIED
     UUID CDATA #IMPLIED
-    DESCRIPTION CDATA #IMPLIED
-    NAME CDATA #IMPLIED
-    CREATEDBY_ID CDATA #IMPLIED
+    UPDATED CDATA #IMPLIED
+    ENDPOS CDATA #IMPLIED
+    STARTPOS CDATA #IMPLIED
+    AGENT_ID CDATA #IMPLIED
+    ANNOTATION_ID CDATA #IMPLIED
+    DESCRIPTION_ID CDATA #IMPLIED
+    KEY_ID CDATA #IMPLIED
+    LANGUAGESTRING_ID CDATA #IMPLIED
+    MEDIA_ID CDATA #IMPLIED
+    OCCURRENCE_ID CDATA #IMPLIED
     REFERENCE_ID CDATA #IMPLIED
+    SOURCE_ID CDATA #IMPLIED
+    TAXON_ID CDATA #IMPLIED
+    TAXONNAME_ID CDATA #IMPLIED
+    CREATEDBY_ID CDATA #IMPLIED
+    UPDATEDBY_ID CDATA #IMPLIED
 >
 
-<!ELEMENT CDM_VIEW_CDM_VIEW EMPTY>
-<!ATTLIST CDM_VIEW_CDM_VIEW
-    CDM_VIEW_ID CDATA #REQUIRED
-    SUPERVIEWS_ID CDATA #REQUIRED
+<!ELEMENT CDMLINK_AUD EMPTY>
+<!ATTLIST CDMLINK_AUD
+    ID CDATA #REQUIRED
+    REV CDATA #REQUIRED
+    REVTYPE CDATA #IMPLIED
+    CREATED CDATA #IMPLIED
+    UUID CDATA #IMPLIED
+    UPDATED CDATA #IMPLIED
+    ENDPOS CDATA #IMPLIED
+    STARTPOS CDATA #IMPLIED
+    AGENT_ID CDATA #IMPLIED
+    ANNOTATION_ID CDATA #IMPLIED
+    DESCRIPTION_ID CDATA #IMPLIED
+    KEY_ID CDATA #IMPLIED
+    LANGUAGESTRING_ID CDATA #IMPLIED
+    MEDIA_ID CDATA #IMPLIED
+    OCCURRENCE_ID CDATA #IMPLIED
+    REFERENCE_ID CDATA #IMPLIED
+    SOURCE_ID CDATA #IMPLIED
+    TAXON_ID CDATA #IMPLIED
+    TAXONNAME_ID CDATA #IMPLIED
+    CREATEDBY_ID CDATA #IMPLIED
+    UPDATEDBY_ID CDATA #IMPLIED
 >
 
 <!ELEMENT CDMPREFERENCE EMPTY>
     SYMMETRICAL CDATA #IMPLIED
     TRANSITIVE CDATA #IMPLIED
     DEFAULTCOLOR CDATA #IMPLIED
-    SUPPORTSCOMMONTAXONNAME CDATA #IMPLIED
-    SUPPORTSDISTRIBUTION CDATA #IMPLIED
-    SUPPORTSINDIVIDUALASSOCIATION CDATA #IMPLIED
-    SUPPORTSQUANTITATIVEDATA CDATA #IMPLIED
-    SUPPORTSTAXONINTERACTION CDATA #IMPLIED
-    SUPPORTSTEXTDATA CDATA #IMPLIED
-    SUPPORTSCATEGORICALDATA CDATA #IMPLIED
+    AVAILABLEFOR CDATA #IMPLIED
+    SUPPORTEDDATATYPES CDATA #IMPLIED
     POINTAPPROXIMATION_ERRORRADIUS CDATA #IMPLIED
     POINTAPPROXIMATION_LATITUDE CDATA #IMPLIED
     POINTAPPROXIMATION_LONGITUDE CDATA #IMPLIED
     ISO3166_A2 CDATA #IMPLIED
     ABSENCETERM CDATA #IMPLIED
     ISTECHNICAL CDATA #REQUIRED
+    LASTRETRIEVED CDATA #IMPLIED
+    EXTERNALID CDATA #IMPLIED
+    EXTERNALLINK CDATA #IMPLIED
+    AUTHORITYTYPE CDATA #IMPLIED
+    IMPORTMETHOD CDATA #IMPLIED
+    NOMENCLATURALSTANDING CDATA #IMPLIED
+    NOMENCLATURALSTANDINGINVERSE CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     KINDOF_ID CDATA #IMPLIED
     SHAPE_ID CDATA #IMPLIED
     TYPE_ID CDATA #IMPLIED
     STRUCTURE_ID CDATA #IMPLIED
+    PROPERTY_ID CDATA #IMPLIED
+    STRUCTUREMODIFIER_ID CDATA #IMPLIED
+    PROPERTYMODIFIER_ID CDATA #IMPLIED
 >
 
 <!ELEMENT DEFINEDTERMBASE_AUD EMPTY>
     SYMMETRICAL CDATA #IMPLIED
     TRANSITIVE CDATA #IMPLIED
     DEFAULTCOLOR CDATA #IMPLIED
-    SUPPORTSCOMMONTAXONNAME CDATA #IMPLIED
-    SUPPORTSDISTRIBUTION CDATA #IMPLIED
-    SUPPORTSINDIVIDUALASSOCIATION CDATA #IMPLIED
-    SUPPORTSQUANTITATIVEDATA CDATA #IMPLIED
-    SUPPORTSTAXONINTERACTION CDATA #IMPLIED
-    SUPPORTSTEXTDATA CDATA #IMPLIED
-    SUPPORTSCATEGORICALDATA CDATA #IMPLIED
+    AVAILABLEFOR CDATA #IMPLIED
+    SUPPORTEDDATATYPES CDATA #IMPLIED
     POINTAPPROXIMATION_ERRORRADIUS CDATA #IMPLIED
     POINTAPPROXIMATION_LATITUDE CDATA #IMPLIED
     POINTAPPROXIMATION_LONGITUDE CDATA #IMPLIED
     VALIDPERIOD_END CDATA #IMPLIED
     VALIDPERIOD_START CDATA #IMPLIED
     ISO3166_A2 CDATA #IMPLIED
+    LASTRETRIEVED CDATA #IMPLIED
+    EXTERNALID CDATA #IMPLIED
+    EXTERNALLINK CDATA #IMPLIED
+    AUTHORITYTYPE CDATA #IMPLIED
+    IMPORTMETHOD CDATA #IMPLIED
+    NOMENCLATURALSTANDING CDATA #IMPLIED
+    NOMENCLATURALSTANDINGINVERSE CDATA #IMPLIED
     LEVEL_ID CDATA #IMPLIED
     POINTAPPROXIMATION_REFERENCESYSTEM_ID CDATA #IMPLIED
     SHAPE_ID CDATA #IMPLIED
     TYPE_ID CDATA #IMPLIED
     TYPE_ID CDATA #IMPLIED
     STRUCTURE_ID CDATA #IMPLIED
+    PROPERTY_ID CDATA #IMPLIED
+    STRUCTUREMODIFIER_ID CDATA #IMPLIED
+    PROPERTYMODIFIER_ID CDATA #IMPLIED
 >
 
 <!ELEMENT DEFINEDTERMBASE_CONTINENT EMPTY>
     REVTYPE CDATA #IMPLIED
 >
 
+
+<!ELEMENT DEFINEDTERMBASE_INVERSEREPRESENTATION EMPTY>
+<!ATTLIST DEFINEDTERMBASE_INVERSEREPRESENTATION
+    DEFINEDTERMBASE_ID CDATA #REQUIRED
+    INVERSEREPRESENTATIONS_ID CDATA #REQUIRED
+>
+
+<!ELEMENT DEFINEDTERMBASE_INVERSEREPRESENTATION_AUD EMPTY>
+<!ATTLIST DEFINEDTERMBASE_INVERSEREPRESENTATION_AUD
+    REV CDATA #REQUIRED
+    DEFINEDTERMBASE_ID CDATA #REQUIRED
+    INVERSEREPRESENTATIONS_ID CDATA #REQUIRED
+    REVTYPE CDATA #IMPLIED
+>
+
 <!ELEMENT DEFINEDTERMBASE_STATISTICALMEASURE EMPTY>
 <!ATTLIST DEFINEDTERMBASE_STATISTICALMEASURE
     DEFINEDTERMBASE_ID CDATA #REQUIRED
     TITLECACHE CDATA #IMPLIED
     IMAGEGALLERY CDATA #IMPLIED
     ISDEFAULT CDATA #IMPLIED
+    TYPES CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     SPECIMEN_ID CDATA #IMPLIED
     TITLECACHE CDATA #IMPLIED
     IMAGEGALLERY CDATA #IMPLIED
     ISDEFAULT CDATA #IMPLIED
+    TYPES CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     SPECIMEN_ID CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
     CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
+    ORIGINALINFO CDATA #IMPLIED
     ORDERRELEVANT CDATA #IMPLIED
     NAME CDATA #IMPLIED
+    PERIOD_START  CDATA #IMPLIED
+    PERIOD_EXTREMESTART  CDATA #IMPLIED
+    PERIOD_END  CDATA #IMPLIED
+    PERIOD_EXTREMEEND  CDATA #IMPLIED
+    PERIOD_FREETEXT  CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     CITATION_ID CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
     CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
+    ORIGINALINFO CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     CITATION_ID CDATA #IMPLIED
     FEATURE_ID CDATA #IMPLIED
     INDESCRIPTION_ID CDATA #IMPLIED
     NAME CDATA #IMPLIED
+    PERIOD_START  CDATA #IMPLIED
+    PERIOD_EXTREMESTART  CDATA #IMPLIED
+    PERIOD_END  CDATA #IMPLIED
+    PERIOD_EXTREMEEND  CDATA #IMPLIED
+    PERIOD_FREETEXT  CDATA #IMPLIED
     LANGUAGE_ID CDATA #IMPLIED
     UNIT_ID CDATA #IMPLIED
     FORMAT_ID CDATA #IMPLIED
 <!ELEMENT DETERMINATIONEVENT_REFERENCE EMPTY>
 <!ATTLIST DETERMINATIONEVENT_REFERENCE
     DETERMINATIONEVENT_ID CDATA #REQUIRED
-    SETOFREFERENCES_ID CDATA #REQUIRED
+    REFERENCES_ID CDATA #REQUIRED
 >
 
 <!ELEMENT DETERMINATIONEVENT_REFERENCE_AUD EMPTY>
 <!ATTLIST DETERMINATIONEVENT_REFERENCE_AUD
     REV CDATA #REQUIRED
     DETERMINATIONEVENT_ID CDATA #REQUIRED
-    SETOFREFERENCES_ID CDATA #REQUIRED
+    REFERENCES_ID CDATA #REQUIRED
     REVTYPE CDATA #IMPLIED
 >
 
     TYPE_ID CDATA #IMPLIED
 >
 
-<!ELEMENT FEATURENODE EMPTY>
-<!ATTLIST FEATURENODE
+<!ELEMENT EXTERNALLINK EMPTY>
+<!ATTLIST EXTERNALLINK
     ID CDATA #REQUIRED
     CREATED CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
+    LINKTYPE CDATA #IMPLIED
+    SIZE CDATA #IMPLIED
+    URI CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
-    FEATURE_ID CDATA #IMPLIED
-    PARENT_FK CDATA #IMPLIED
 >
 
-<!ELEMENT FEATURENODE_AUD EMPTY>
-<!ATTLIST FEATURENODE_AUD
+<!ELEMENT EXTERNALLINK_AUD EMPTY>
+<!ATTLIST EXTERNALLINK_AUD
     ID CDATA #REQUIRED
     REV CDATA #REQUIRED
     REVTYPE CDATA #IMPLIED
     CREATED CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
+    LINKTYPE CDATA #IMPLIED
+    SIZE CDATA #IMPLIED
+    URI CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
-    FEATURE_ID CDATA #IMPLIED
-    PARENT_FK CDATA #IMPLIED
 >
 
-<!ELEMENT FEATURETREE EMPTY>
-<!ATTLIST FEATURETREE
+<!ELEMENT FEATURESTATE EMPTY>
+<!ATTLIST FEATURESTATE
     ID CDATA #REQUIRED
+    REV CDATA #REQUIRED
+    REVTYPE CDATA #IMPLIED
     CREATED CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
-    URI CDATA #IMPLIED
+    FEATURE_ID CDATA #IMPLIED
+    STATE_ID CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
-    ROOT_ID CDATA #IMPLIED
 >
 
-<!ELEMENT FEATURETREE_AUD EMPTY>
-<!ATTLIST FEATURETREE_AUD
+<!ELEMENT FEATURESTATE_AUD EMPTY>
+<!ATTLIST FEATURESTATE_AUD
     ID CDATA #REQUIRED
-    REV CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
     CREATED CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
-    URI CDATA #IMPLIED
+    FEATURE_ID CDATA #IMPLIED
+    STATE_ID CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
-    ROOT_ID CDATA #IMPLIED
->
-
-<!ELEMENT FEATURETREE_REPRESENTATION EMPTY>
-<!ATTLIST FEATURETREE_REPRESENTATION
-    FEATURETREE_ID CDATA #REQUIRED
-    REPRESENTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT FEATURETREE_REPRESENTATION_AUD EMPTY>
-<!ATTLIST FEATURETREE_REPRESENTATION_AUD
-    REV CDATA #REQUIRED
-    FEATURETREE_ID CDATA #REQUIRED
-    REPRESENTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
 >
 
 <!ELEMENT GATHERINGEVENT EMPTY>
 
 <!ELEMENT HIBERNATE_SEQUENCES EMPTY>
 <!ATTLIST HIBERNATE_SEQUENCES
-       SEQUENCE_NAME CDATA #IMPLIED
-       NEXT_VAL CDATA #IMPLIED
+    SEQUENCE_NAME CDATA #IMPLIED
+    NEXT_VAL CDATA #IMPLIED
 >
 
 <!ELEMENT HOMOTYPICALGROUP EMPTY>
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
     CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
+    ORIGINALINFO CDATA #IMPLIED
     DOUBTFUL CDATA #IMPLIED
     RULECONSIDERED CDATA #IMPLIED
+    CODEEDITION CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     CITATION_ID CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
     CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
+    ORIGINALINFO CDATA #IMPLIED
     DOUBTFUL CDATA #IMPLIED
     RULECONSIDERED CDATA #IMPLIED
+    CODEEDITION CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     CITATION_ID CDATA #IMPLIED
     CREATED CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
-    MEDIACREATED CDATA #IMPLIED
+    MEDIACREATED_START CDATA #IMPLIED
+    MEDIACREATED_END CDATA #IMPLIED
+    MEDIACREATED_FREETEXT CDATA #IMPLIED
     CITATIONMICROREFERENCE CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     CITATION_ID CDATA #IMPLIED
 >
 
+<!ATTLIST MEDIAMETADATA
+    ID CDATA #REQUIRED
+    CREATED CDATA #IMPLIED
+    UUID CDATA #IMPLIED
+    CREATEDBY_ID CDATA #IMPLIED
+    PAIRKEY CDATA #IMPLIED
+    PAIRVALUE CDATA #IMPLIED
+    MEDIAREPRESENTATION_ID CDATA #IMPLIED
+>
+
+<!ATTLIST MEDIAMETADATA_AUD
+    ID CDATA #REQUIRED
+    REV CDATA #REQUIRED
+    REVTYPE CDATA #IMPLIED
+    CREATED CDATA #IMPLIED
+    UUID CDATA #IMPLIED
+    CREATEDBY_ID CDATA #IMPLIED
+    PAIRKEY CDATA #IMPLIED
+    PAIRVALUE CDATA #IMPLIED
+    MEDIAREPRESENTATION_ID CDATA #IMPLIED
+>
+
 <!ELEMENT MEDIAREPRESENTATION EMPTY>
 <!ATTLIST MEDIAREPRESENTATION
     ID CDATA #REQUIRED
     CREATED CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
-    MEDIACREATED CDATA #IMPLIED
+    MEDIACREATED_START CDATA #IMPLIED
+    MEDIACREATED_END CDATA #IMPLIED
+    MEDIACREATED_FREETEXT CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     ARTIST_ID CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
     CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
+    ORIGINALINFO CDATA #IMPLIED
     DOUBTFUL CDATA #IMPLIED
     RULECONSIDERED CDATA #IMPLIED
+    CODEEDITION CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     CITATION_ID CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
     CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
+    ORIGINALINFO CDATA #IMPLIED
     DOUBTFUL CDATA #IMPLIED
     RULECONSIDERED CDATA #IMPLIED
+    CODEEDITION CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     CITATION_ID CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
     CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
+    ORIGINALINFO CDATA #IMPLIED
     RULECONSIDERED CDATA #IMPLIED
+    CODEEDITION CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     CITATION_ID CDATA #IMPLIED
     TYPE_ID CDATA #IMPLIED
+    NAME_ID CDATA #IMPLIED
 >
 
 <!ELEMENT NOMENCLATURALSTATUS_ANNOTATION EMPTY>
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
     CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
+    ORIGINALINFO CDATA #IMPLIED
     RULECONSIDERED CDATA #IMPLIED
+    CODEEDITION CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     CITATION_ID CDATA #IMPLIED
     TYPE_ID CDATA #IMPLIED
+    NAME_ID CDATA #IMPLIED
 >
 
 <!ELEMENT NOMENCLATURALSTATUS_MARKER EMPTY>
     REVTYPE CDATA #IMPLIED
 >
 
-<!ELEMENT ORIGINALSOURCE EMPTY>
-<!ATTLIST ORIGINALSOURCE
+<!ELEMENT ORIGINALSOURCEBASE EMPTY>
+<!ATTLIST ORIGINALSOURCEBASE
     ID CDATA #REQUIRED
     CREATED CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
     CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
+    ORIGINALINFO CDATA #IMPLIED
     IDINSOURCE CDATA #IMPLIED
     IDNAMESPACE CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     CITATION_ID CDATA #IMPLIED
+    CDMSOURCE_ID CDATA #IMPLIED
+    SOURCEDNAME_ID CDATA #IMPLIED
+    SOURCEDTAXON_ID CDATA #IMPLIED
 >
 
-<!ELEMENT ORIGINALSOURCE_ANNOTATION EMPTY>
-<!ATTLIST ORIGINALSOURCE_ANNOTATION
-    ORIGINALSOURCE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT ORIGINALSOURCE_ANNOTATION_AUD EMPTY>
-<!ATTLIST ORIGINALSOURCE_ANNOTATION_AUD
-    REV CDATA #REQUIRED
-    ORIGINALSOURCE_ID CDATA #REQUIRED
-    ANNOTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
-<!ELEMENT ORIGINALSOURCE_AUD EMPTY>
-<!ATTLIST ORIGINALSOURCE_AUD
+<!ELEMENT ORIGINALSOURCEBASE_AUD EMPTY>
+<!ATTLIST ORIGINALSOURCEBASE_AUD
     ID CDATA #REQUIRED
     REV CDATA #REQUIRED
     REVTYPE CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
     CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
+    ORIGINALINFO CDATA #IMPLIED
     IDINSOURCE CDATA #IMPLIED
     IDNAMESPACE CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     CITATION_ID CDATA #IMPLIED
+    CDMSOURCE_ID CDATA #IMPLIED
+    SOURCEDNAME_ID CDATA #IMPLIED
+    SOURCEDTAXON_ID CDATA #IMPLIED
+>
+
+<!ELEMENT ORIGINALSOURCEBASE_ANNOTATION EMPTY>
+<!ATTLIST ORIGINALSOURCEBASE_ANNOTATION
+    ORIGINALSOURCE_ID CDATA #REQUIRED
+    ANNOTATIONS_ID CDATA #REQUIRED
+>
+
+<!ELEMENT ORIGINALSOURCEBASE_ANNOTATION_AUD EMPTY>
+<!ATTLIST ORIGINALSOURCEBASE_ANNOTATION_AUD
+    REV CDATA #REQUIRED
+    ORIGINALSOURCE_ID CDATA #REQUIRED
+    ANNOTATIONS_ID CDATA #REQUIRED
+    REVTYPE CDATA #IMPLIED
+>
+
+<!ELEMENT ORIGINALSOURCEBASE_EXTERNALLINK EMPTY>
+<!ATTLIST ORIGINALSOURCEBASE_EXTERNALLINK
+    ORIGINALSOURCE_ID CDATA #REQUIRED
+    LINKS_ID CDATA #REQUIRED
+>
+
+<!ELEMENT ORIGINALSOURCEBASE_EXTERNALLINK_AUD EMPTY>
+<!ATTLIST ORIGINALSOURCEBASE_EXTERNALLINK_AUD
+    REV CDATA #REQUIRED
+    ORIGINALSOURCE_ID CDATA #REQUIRED
+    LINKS_ID CDATA #REQUIRED
+    REVTYPE CDATA #IMPLIED
 >
 
-<!ELEMENT ORIGINALSOURCE_MARKER EMPTY>
-<!ATTLIST ORIGINALSOURCE_MARKER
+<!ELEMENT ORIGINALSOURCEBASE_MARKER EMPTY>
+<!ATTLIST ORIGINALSOURCEBASE_MARKER
     ORIGINALSOURCE_ID CDATA #REQUIRED
     MARKERS_ID CDATA #REQUIRED
 >
 
-<!ELEMENT ORIGINALSOURCE_MARKER_AUD EMPTY>
-<!ATTLIST ORIGINALSOURCE_MARKER_AUD
+<!ELEMENT ORIGINALSOURCEBASE_MARKER_AUD EMPTY>
+<!ATTLIST ORIGINALSOURCEBASE_MARKER_AUD
     REV CDATA #REQUIRED
     ORIGINALSOURCE_ID CDATA #REQUIRED
     MARKERS_ID CDATA #REQUIRED
     CREATEDBY_ID CDATA #IMPLIED
 >
 
+<!ELEMENT PERMISSIONGROUP_AUTHORITY EMPTY>
+<!ATTLIST PERMISSIONGROUP_AUTHORITY
+    GROUP_ID CDATA #REQUIRED
+    AUTHORITIES_ID CDATA #REQUIRED
+>
+
 <!ELEMENT PERMISSIONGROUP_GRANTEDAUTHORITYIMPL EMPTY>
 <!ATTLIST PERMISSIONGROUP_GRANTEDAUTHORITYIMPL
     GROUP_ID CDATA #REQUIRED
     URI CDATA #IMPLIED
     DATEPUBLISHED_END CDATA #IMPLIED
     DATEPUBLISHED_START CDATA #IMPLIED
+    DATEPUBLISHED_FREETEXT CDATA #IMPLIED
+    DATEPUBLISHED_VERBATIMDATE CDATA #IMPLIED
     TITLE CDATA #IMPLIED
     PAGES CDATA #IMPLIED
     SERIES CDATA #IMPLIED
     EXTERNALID CDATA #IMPLIED
     EXTERNALLINK CDATA #IMPLIED
     AUTHORITYTYPE CDATA #IMPLIED
+    IMPORTMETHOD CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     AUTHORSHIP_ID CDATA #IMPLIED
     AUTHORSHIP_ID CDATA #IMPLIED
     DATEPUBLISHED_END CDATA #IMPLIED
     DATEPUBLISHED_START CDATA #IMPLIED
+    DATEPUBLISHED_FREETEXT CDATA #IMPLIED
+    DATEPUBLISHED_VERBATIMDATE CDATA #IMPLIED
     TITLE CDATA #IMPLIED
     ABBREVTITLE CDATA #IMPLIED
     ABBREVTITLECACHE CDATA #IMPLIED
     EXTERNALID CDATA #IMPLIED
     EXTERNALLINK CDATA #IMPLIED
     AUTHORITYTYPE CDATA #IMPLIED
+    IMPORTMETHOD CDATA #IMPLIED
     CROSSREF_ID CDATA #IMPLIED
     TYPE_ID CDATA #IMPLIED
     INBOOK_ID CDATA #IMPLIED
     REVTYPE CDATA #IMPLIED
 >
 
-<!ELEMENT TERMBASE_INVERSEREPRESENTATION EMPTY>
-<!ATTLIST TERMBASE_INVERSEREPRESENTATION
-    TERM_ID CDATA #REQUIRED
-    INVERSEREPRESENTATIONS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TERMBASE_INVERSEREPRESENTATION_AUD EMPTY>
-<!ATTLIST TERMBASE_INVERSEREPRESENTATION_AUD
-    REV CDATA #REQUIRED
-    TERM_ID CDATA #REQUIRED
-    INVERSEREPRESENTATIONS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
 
 <!ELEMENT REPRESENTATION EMPTY>
 <!ATTLIST REPRESENTATION
     TEXT CDATA #IMPLIED
     ABBREVIATEDLABEL CDATA #IMPLIED
     LABEL CDATA #IMPLIED
+    PLURAL CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     LANGUAGE_ID CDATA #IMPLIED
     TEXT CDATA #IMPLIED
     ABBREVIATEDLABEL CDATA #IMPLIED
     LABEL CDATA #IMPLIED
+    PLURAL CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     LANGUAGE_ID CDATA #IMPLIED
     CREATED CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
+    NUMBER CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     STATE_ID CDATA #IMPLIED
     CREATED CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
+    NUMBER CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     STATE_ID CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
     VALUE CDATA #IMPLIED
+    VALUE_SCALE CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     TYPE_ID CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
     VALUE CDATA #IMPLIED
+    VALUE_SCALE CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     TYPE_ID CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
     LSID CDATA #IMPLIED
-    SECMICROREFERENCE CDATA #IMPLIED
     PROTECTEDTITLECACHE CDATA #IMPLIED
     TITLECACHE CDATA #IMPLIED
     DOUBTFUL CDATA #IMPLIED
     PUBLISHED CDATA #IMPLIED
     TAXONSTATUSUNKNOWN CDATA #IMPLIED
-    UNPLACED CDATA #IMPLIED
-    EXCLUDED CDATA #IMPLIED
-    PARTIAL CDATA #IMPLIED
-    PROPARTE CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     TAXONNAME_FK CDATA #IMPLIED
-    SEC_ID CDATA #IMPLIED
     TYPE_ID CDATA #IMPLIED
     ACCEPTEDTAXON_ID  CDATA #IMPLIED
 >
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
     LSID CDATA #IMPLIED
-    SECMICROREFERENCE CDATA #IMPLIED
     PROTECTEDTITLECACHE CDATA #IMPLIED
     TITLECACHE CDATA #IMPLIED
     DOUBTFUL CDATA #IMPLIED
     PUBLISHED CDATA #IMPLIED
     TAXONSTATUSUNKNOWN CDATA #IMPLIED
-    UNPLACED CDATA #IMPLIED
-    EXCLUDED CDATA #IMPLIED
-    PARTIAL CDATA #IMPLIED
-    PROPARTE CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     TAXONNAME_FK CDATA #IMPLIED
-    SEC_ID CDATA #IMPLIED
     TYPE_ID CDATA #IMPLIED
     ACCEPTEDTAXON_ID  CDATA #IMPLIED
 >
     APPENDEDPHRASE CDATA #IMPLIED
     FULLTITLECACHE CDATA #IMPLIED
     HASPROBLEM CDATA #IMPLIED
-    NOMENCLATURALMICROREFERENCE CDATA #IMPLIED
     PROBLEMENDS CDATA #IMPLIED
     PROBLEMSTARTS CDATA #IMPLIED
     PROTECTEDFULLTITLECACHE CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     HOMOTYPICALGROUP_ID CDATA #IMPLIED
-    NOMENCLATURALREFERENCE_ID CDATA #IMPLIED
     RANK_ID CDATA #IMPLIED
     BASIONYMAUTHORSHIP_ID CDATA #IMPLIED
     COMBINATIONAUTHORSHIP_ID CDATA #IMPLIED
     EXBASIONYMAUTHORSHIP_ID CDATA #IMPLIED
     EXCOMBINATIONAUTHORSHIP_ID CDATA #IMPLIED
+    INBASIONYMAUTHORSHIP_ID CDATA #IMPLIED
+    INCOMBINATIONAUTHORSHIP_ID CDATA #IMPLIED
 >
 
 <!ELEMENT TAXONNAME_ANNOTATION EMPTY>
     APPENDEDPHRASE CDATA #IMPLIED
     FULLTITLECACHE CDATA #IMPLIED
     HASPROBLEM CDATA #IMPLIED
-    NOMENCLATURALMICROREFERENCE CDATA #IMPLIED
     PROBLEMENDS CDATA #IMPLIED
     PROBLEMSTARTS CDATA #IMPLIED
     PROTECTEDFULLTITLECACHE CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     HOMOTYPICALGROUP_ID CDATA #IMPLIED
-    NOMENCLATURALREFERENCE_ID CDATA #IMPLIED
     RANK_ID CDATA #IMPLIED
     ACRONYM CDATA #IMPLIED
     AUTHORSHIPCACHE CDATA #IMPLIED
     BREED CDATA #IMPLIED
     ORIGINALPUBLICATIONYEAR CDATA #IMPLIED
     PUBLICATIONYEAR CDATA #IMPLIED
+    INBASIONYMAUTHORSHIP_ID CDATA #IMPLIED
+    INCOMBINATIONAUTHORSHIP_ID CDATA #IMPLIED
 >
 
 <!ELEMENT TAXONNAME_EXTENSION EMPTY>
     REVTYPE CDATA #IMPLIED
 >
 
-<!ELEMENT TAXONNAME_NOMENCLATURALSTATUS EMPTY>
-<!ATTLIST TAXONNAME_NOMENCLATURALSTATUS
-    TAXONNAME_ID CDATA #REQUIRED
-    STATUS_ID CDATA #REQUIRED
->
-
-<!ELEMENT TAXONNAME_NOMENCLATURALSTATUS_AUD EMPTY>
-<!ATTLIST TAXONNAME_NOMENCLATURALSTATUS_AUD
-    REV CDATA #REQUIRED
-    TAXONNAME_ID CDATA #REQUIRED
-    STATUS_ID CDATA #REQUIRED
-    REVTYPE CDATA #IMPLIED
->
-
 <!ELEMENT TAXONNAME_ORIGINALSOURCE EMPTY>
 <!ATTLIST TAXONNAME_ORIGINALSOURCE
     TAXONNAME_ID CDATA #REQUIRED
     SORTINDEX CDATA #IMPLIED
     TREEINDEX CDATA #IMPLIED
     COUNTCHILDREN CDATA #IMPLIED
-    MICROREFERENCEFORPARENTCHILDRELATION CDATA #IMPLIED
-    EXCLUDED CDATA #IMPLIED
-    UNPLACED CDATA #IMPLIED
+    STATUS CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     CLASSIFICATION_ID CDATA #IMPLIED
     PARENT_ID CDATA #IMPLIED
-    REFERENCEFORPARENTCHILDRELATION_ID CDATA #IMPLIED
+    SOURCE_ID CDATA #IMPLIED
     SYNONYMTOBEUSED_ID CDATA #IMPLIED
     TAXON_ID CDATA #IMPLIED
 >
     SORTINDEX CDATA #IMPLIED
     TREEINDEX CDATA #IMPLIED
     COUNTCHILDREN CDATA #IMPLIED
-    MICROREFERENCEFORPARENTCHILDRELATION CDATA #IMPLIED
-    EXCLUDED CDATA #IMPLIED
-    UNPLACED CDATA #IMPLIED
+    STATUS CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     CLASSIFICATION_ID CDATA #IMPLIED
     PARENT_ID CDATA #IMPLIED
-    REFERENCEFORPARENTCHILDRELATION_ID CDATA #IMPLIED
+    SOURCE_ID CDATA #IMPLIED
     SYNONYMTOBEUSED_ID CDATA #IMPLIED
     TAXON_ID CDATA #IMPLIED
     REVTYPE CDATA #IMPLIED
     ANNOTATIONS_ID CDATA #REQUIRED
     REVTYPE CDATA #IMPLIED
 >
-<!ELEMENT TAXONNNODE_EXCLUDEDNOTE EMPTY>
-<!ATTLIST TAXONNODE_EXCLUDEDNOTE
+<!ELEMENT TAXONNNODE_STATUSNOTE EMPTY>
+<!ATTLIST TAXONNODE_STATUSNOTE
     TAXONNODE_ID CDATA #REQUIRED
-    EXCLUDEDNOTE_ID CDATA #REQUIRED
-    EXCLUDEDNOTE_MAPKEY_ID CDATA #REQUIRED
+    STATUSNOTE_ID CDATA #REQUIRED
+    STATUSNOTE_KEY CDATA #REQUIRED
 >
-<!ELEMENT TAXONNODE_EXCLUDEDNOTE_AUD EMPTY>
-<!ATTLIST TAXONNODE_EXCLUDEDNOTE_AUD
+<!ELEMENT TAXONNODE_STATUSNOTE_AUD EMPTY>
+<!ATTLIST TAXONNODE_STATUSNOTE_AUD
     REV CDATA #REQUIRED
     TAXONNODE_ID CDATA #REQUIRED
-    EXCLUDEDNOTE_ID CDATA #REQUIRED
-    EXCLUDEDNOTE_MAPKEY_ID CDATA #REQUIRED
+    STATUSNOTE_ID CDATA #REQUIRED
+    STATUSNOTE_KEY CDATA #REQUIRED
     REVTYPE CDATA #IMPLIED
 >
 <!ELEMENT TAXONNNODE_MARKER EMPTY>
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
     CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
+    ORIGINALINFO CDATA #IMPLIED
     DOUBTFUL CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
     CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
+    ORIGINALINFO CDATA #IMPLIED
     DOUBTFUL CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
     REVTYPE CDATA #IMPLIED
 >
 
-<!ELEMENT TERMVOCABULARY EMPTY>
-<!ATTLIST TERMVOCABULARY
+<!ELEMENT TERMCOLLECTION EMPTY>
+<!ATTLIST TERMCOLLECTION
     DTYPE CDATA #IMPLIED
     ID CDATA #REQUIRED
     CREATED CDATA #IMPLIED
     TERMSOURCEURI CDATA #IMPLIED
     TITLECACHE CDATA #IMPLIED
     PROTECTEDTITLECACHE CDATA #IMPLIED
+    ALLOWDUPLICATES CDATA #IMPLIED
+    ORDERRELEVANT CDATA #IMPLIED
+    ISFLAT CDATA #IMPLIED
+    LASTRETRIEVED CDATA #IMPLIED
+    EXTERNALID CDATA #IMPLIED
+    EXTERNALLINK CDATA #IMPLIED
+    AUTHORITYTYPE CDATA #IMPLIED
+    IMPORTMETHOD CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
+    ROOT_ID CDATA #IMPLIED
 >
 
-<!ELEMENT TERMVOCABULARY_AUD EMPTY>
-<!ATTLIST TERMVOCABULARY_AUD
+<!ELEMENT TERMCOLLECTION_AUD EMPTY>
+<!ATTLIST TERMCOLLECTION_AUD
     DTYPE CDATA #IMPLIED
     ID CDATA #REQUIRED
     REV CDATA #REQUIRED
     TERMSOURCEURI CDATA #IMPLIED
     TITLECACHE CDATA #IMPLIED
     PROTECTEDTITLECACHE CDATA #IMPLIED
+    ALLOWDUPLICATES CDATA #IMPLIED
+    ORDERRELEVANT CDATA #IMPLIED
+    ISFLAT CDATA #IMPLIED
+    LASTRETRIEVED CDATA #IMPLIED
+    EXTERNALID CDATA #IMPLIED
+    EXTERNALLINK CDATA #IMPLIED
+    AUTHORITYTYPE CDATA #IMPLIED
+    IMPORTMETHOD CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
+    ROOT_ID CDATA #IMPLIED
 >
 
-<!ELEMENT TERMVOCABULARY_REPRESENTATION EMPTY>
-<!ATTLIST TERMVOCABULARY_REPRESENTATION
-    TERMVOCABULARY_ID CDATA #REQUIRED
+<!ELEMENT TERMCOLLECTION_REPRESENTATION EMPTY>
+<!ATTLIST TERMCOLLECTION_REPRESENTATION
+    TERMCOLLECTION_ID CDATA #REQUIRED
     REPRESENTATIONS_ID CDATA #REQUIRED
 >
 
-<!ELEMENT TERMVOCABULARY_REPRESENTATION_AUD EMPTY>
-<!ATTLIST TERMVOCABULARY_REPRESENTATION_AUD
+<!ELEMENT TERMCOLLECTION_REPRESENTATION_AUD EMPTY>
+<!ATTLIST TERMCOLLECTION_REPRESENTATION_AUD
     REV CDATA #REQUIRED
-    TERMVOCABULARY_ID CDATA #REQUIRED
+    TERMCOLLECTION_ID CDATA #REQUIRED
     REPRESENTATIONS_ID CDATA #REQUIRED
     REVTYPE CDATA #IMPLIED
 >
 
+
+
+<!ELEMENT TERMRELATION EMPTY>
+<!ATTLIST TERMRELATION
+    ID CDATA #REQUIRED
+    CREATED CDATA #IMPLIED
+    UUID CDATA #IMPLIED
+    UPDATED CDATA #IMPLIED
+    CREATEDBY_ID CDATA #IMPLIED
+    UPDATEDBY_ID CDATA #IMPLIED
+    TERM_ID CDATA #IMPLIED
+    GRAPH_ID CDATA #IMPLIED
+    PARENT_ID CDATA #IMPLIED
+>
+
+<!ELEMENT TERMRELATION_AUD EMPTY>
+<!ATTLIST TERMRELATION_AUD
+    ID CDATA #REQUIRED
+    REV CDATA #REQUIRED
+    REVTYPE CDATA #IMPLIED
+    CREATED CDATA #IMPLIED
+    UUID CDATA #IMPLIED
+    UPDATED CDATA #IMPLIED
+    CREATEDBY_ID CDATA #IMPLIED
+    UPDATEDBY_ID CDATA #IMPLIED
+    TERM_ID CDATA #IMPLIED
+    GRAPH_ID CDATA #IMPLIED
+    PARENT_ID CDATA #IMPLIED
+>
+
 <!ELEMENT TYPEDESIGNATIONBASE EMPTY>
 <!ATTLIST TYPEDESIGNATIONBASE
     DTYPE CDATA #IMPLIED
     CREATED CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
+    ORIGINALINFO CDATA #IMPLIED
     NOTDESIGNATED CDATA #IMPLIED
     CONSERVEDTYPE CDATA #IMPLIED
     LECTOTYPE CDATA #IMPLIED
     REJECTEDTYPE CDATA #IMPLIED
+    ISVERBATIM CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
+    SOURCE_ID CDATA #IMPLIED
     TYPENAME_ID CDATA #IMPLIED
     TYPESPECIMEN_ID CDATA #IMPLIED
     TYPESTATUS_ID CDATA #IMPLIED
     CREATED CDATA #IMPLIED
     UUID CDATA #IMPLIED
     UPDATED CDATA #IMPLIED
-    CITATIONMICROREFERENCE CDATA #IMPLIED
-    ORIGINALNAMESTRING CDATA #IMPLIED
+    ORIGINALINFO CDATA #IMPLIED
     NOTDESIGNATED CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
     UPDATEDBY_ID CDATA #IMPLIED
-    CITATION_ID CDATA #IMPLIED
+    SOURCE_ID CDATA #IMPLIED
     CONSERVEDTYPE CDATA #IMPLIED
     LECTOTYPE CDATA #IMPLIED
     REJECTEDTYPE CDATA #IMPLIED
+    ISVERBATIM CDATA #IMPLIED
     TYPENAME_ID CDATA #IMPLIED
     TYPESPECIMEN_ID CDATA #IMPLIED
     TYPESTATUS_ID CDATA #IMPLIED
 >
 
 <!ELEMENT USER EMPTY>
-<!ATTLIST USER
+<!ATTLIST USERACCOUNT
     ID CDATA #REQUIRED
     CREATED CDATA #IMPLIED
     UUID CDATA #IMPLIED
     EMAILADDRESS CDATA #IMPLIED
     ENABLED CDATA #IMPLIED
     PASSWORD CDATA #IMPLIED
+    SALT CDATA #IMPLIED
     USERNAME CDATA #IMPLIED
     CREATEDBY_ID CDATA #IMPLIED
 >
 
-<!ELEMENT USER_GRANTEDAUTHORITYIMPL EMPTY>
-<!ATTLIST USER_GRANTEDAUTHORITYIMPL
+<!ELEMENT USERACCOUNT_AUTHORITY EMPTY>
+<!ATTLIST USERACCOUNT_AUTHORITY
+    USER_ID CDATA #REQUIRED
+    AUTHORITIES_ID CDATA #REQUIRED
+>
+
+<!ELEMENT USERACCOUNT_GRANTEDAUTHORITYIMPL EMPTY>
+<!ATTLIST USERACCOUNT_GRANTEDAUTHORITYIMPL
     USER_ID CDATA #REQUIRED
     GRANTEDAUTHORITIES_ID CDATA #REQUIRED
 >
 
-<!ELEMENT USER_PERMISSIONGROUP EMPTY>
-<!ATTLIST USER_PERMISSIONGROUP
+<!ELEMENT USERACCOUNT_PERMISSIONGROUP EMPTY>
+<!ATTLIST USERACCOUNT_PERMISSIONGROUP
     MEMBERS_ID CDATA #REQUIRED
     GROUPS_ID CDATA #REQUIRED
 >
index 11b95b2388a617db488f50db02b9e9b7755b4b7b..43ed365ba3ef6325c77b9111511d5708937b1018 100644 (file)
@@ -4,11 +4,11 @@
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:tx="http://www.springframework.org/schema/tx"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
-    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+    http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
     http://www.springframework.org/schema/context
-    http://www.springframework.org/schema/context/spring-context-2.5.xsd
+    http://www.springframework.org/schema/context/spring-context-4.3.xsd
     http://www.springframework.org/schema/tx
-    http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
+    http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
 
     <bean id="dataSource" class="org.unitils.database.UnitilsDataSourceFactoryBean"/>
 
index 4d92973f5fe0a9336fd37d8931d0b1796fe8508d..333ef7f6d2fe80194f891d63b4569912fab135fa 100644 (file)
@@ -11,6 +11,7 @@
   
 -->
 <dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../cdm/database/schema/dataset.dtd">
-  <TAXONNAME NAMETYPE="ICNAFP" ID="32" CREATED="2010-12-21 15:09:43.0" UUID="f8be96d0-9af9-4e19-b9f1-52a4c0ecc580" PROTECTEDTITLECACHE="true" TITLECACHE="Achillea arabica Kotschy" FULLTITLECACHE="Achillea arabica Kotschy" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" protectedfulltitlecache="false" authorshipcache="Kotschy" binomhybrid="false" genusoruninomial="Achillea" hybridformula="false" monomhybrid="false" namecache="Achillea arabica" protectedauthorshipcache="false" protectednamecache="false" specificepithet="arabica" trinomhybrid="false" anamorphic="false" createdby_id="11" homotypicalgroup_id="32" rank_id="778" />
-  <TAXONBASE DTYPE="Taxon" ID="32" CREATED="2011-03-01 20:11:26.0" UUID="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" UPDATED="2014-09-17 09:27:47.0" PROTECTEDTITLECACHE="true" TITLECACHE="Achillea arabica Kotschy sec. Cyprus" DOUBTFUL="false" USENAMECACHE="false" taxonstatusunknown="false" createdby_id="11" name_id="32" sec_id="10" publish="true"/>
+  <TAXONNAME NAMETYPE="ICNAFP" ID="32" UUID="f8be96d0-9af9-4e19-b9f1-52a4c0ecc580" PROTECTEDTITLECACHE="true" TITLECACHE="Achillea arabica Kotschy" FULLTITLECACHE="Achillea arabica Kotschy" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" protectedfulltitlecache="false" authorshipcache="Kotschy" binomhybrid="false" genusoruninomial="Achillea" hybridformula="false" monomhybrid="false" namecache="Achillea arabica" protectedauthorshipcache="false" protectednamecache="false" specificepithet="arabica" trinomhybrid="false" anamorphic="false" createdby_id="11" homotypicalgroup_id="32" rank_id="778" />
+  <TAXONBASE DTYPE="Taxon" ID="32" UUID="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" PROTECTEDTITLECACHE="true" TITLECACHE="Achillea arabica Kotschy sec. Cyprus" DOUBTFUL="false" USENAMECACHE="false" taxonstatusunknown="false" createdby_id="11" name_id="32" publish="true"/>
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="1" SOURCEDTAXON_ID="32" UUID="5ff76440-c9ab-4f13-8f1a-c39d57d3c714" SOURCETYPE="PTS" CITATION_ID="10" />
 </dataset>
index d1747604ded3c475a69aad8bb6968151d5f9cc08..b5cb4d8b6919ad7be4cb5bc859e3c25e357c831b 100644 (file)
   <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2758" modifyingtext_id="13791" modifyingtext_mapkey_id="124"/>
   <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2759" modifyingtext_id="13793" modifyingtext_mapkey_id="124"/>
 
-  <LanguageString id="13780" created="2014-03-10 10:03:09.0" uuid="cceaa60b-61f4-4c8a-bb0e-d45f0fa3e2dc" text="Modifying Text 1a" language_id="124"/>
-  <LanguageString id="13781" created="2014-03-10 10:03:17.0" uuid="01a0ace4-de49-4725-9909-e881fb13035d" text="" language_id="124"/>
-  <LanguageString id="13782" created="2014-03-10 10:03:48.0" uuid="ec0fea40-69dd-4c3e-ab7a-34948037a069" updated="2014-03-10 10:06:32.0" text="Capitula with ligulate ray-florets; leaves pinnatisect" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13783" created="2014-03-10 10:04:03.0" uuid="82f8a3a0-567f-4d89-ba10-3f3699111d55" updated="2014-03-10 10:06:32.0" text="Ray-florets yellow" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13784" created="2014-03-10 10:04:21.0" uuid="4270501f-1efc-45c2-9e8f-c65f120e8f4c" updated="2014-03-10 10:06:32.0" text="Stem thinly pilose; leaves 10-15 mm wide, with spreading linear-subulate segments; perennial herb" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13785" created="2014-03-10 10:04:07.0" uuid="813f5fd6-c8f6-43e8-9a2b-1464f3ba052a" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13786" created="2014-03-10 10:04:53.0" uuid="ba17ac94-632f-4d69-ac89-a882e19ff1c5" updated="2014-03-10 10:06:32.0" text="Stem white-tomentose; leaves 1-3 mm wide, with minute overlapping, transverse segments; small subshrubs with a woody base" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13787" created="2014-03-10 10:04:34.0" uuid="ab219a5d-e0c4-45fd-8405-6693c3fb8abf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13788" created="2014-03-10 10:03:53.0" uuid="2baec690-422d-4f85-bcfd-24f5718cbecf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13789" created="2014-03-10 10:05:16.0" uuid="7c6a7984-8e6f-48b1-86b2-d5d643199bf3" updated="2014-03-10 10:06:32.0" text="Ray-florets white" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13790" created="2014-03-10 10:05:34.0" uuid="72bd8bc9-1904-47ab-8bec-b9296a98b244" updated="2014-03-10 10:06:32.0" text="Perennial herb; stem pilose, hairy or glabrescent, but not tomentose; ligules 1-2 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13791" created="2014-03-10 10:05:20.0" uuid="c917e3fb-e48b-4207-b77d-c1c108e37906" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13792" created="2014-03-10 10:06:15.0" uuid="c5dd35d8-da6a-4d05-b30c-6b55220bd989" updated="2014-03-10 10:06:32.0" text="Shrub with a woody base; stem white-tomentose or woolly; ligules 4-5 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13793" created="2014-03-10 10:06:03.0" uuid="227a17f6-1ca1-4d06-8480-25711b614863" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13794" created="2014-03-10 10:05:07.0" uuid="2c434ab1-8ca7-4464-b5cd-4cee40db41ed" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13795" created="2014-03-10 10:03:38.0" uuid="27190d54-f53b-401e-820c-edfb36d4bcbf" updated="2014-03-10 10:06:32.0" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="13796" created="2014-03-10 10:03:25.0" uuid="69cffb28-8a85-478f-bcae-533e20938ccd" updated="2014-03-10 10:06:32.0" text="Capitula without ligulate ray-florets; leaves entire or subentire" createdby_id="30" updatedby_id="30" language_id="124"/>
-  <LanguageString id="14570" created="2014-10-09 15:42:33.0" uuid="84967760-6dbe-4af4-8e0c-309f1af6ce20" updated="2014-10-09 15:42:44.0" text="Question 1" createdby_id="10" updatedby_id="10" language_id="124"/>
-  <LanguageString id="14571" created="2014-10-09 15:42:55.0" uuid="d82f37b1-f51d-42c1-a291-0c7820db155e" updated="2014-10-09 15:43:03.0" text="Question 2" createdby_id="10" updatedby_id="10" language_id="124"/>
-
-  <TaxonBase DTYPE="Taxon" id="32" created="2011-03-01 20:11:26.0" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" protectedtitlecache="false" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="35" created="2010-12-21 15:09:43.0" uuid="fade44fd-34b2-455f-861a-d1372b866f06" protectedtitlecache="false" titleCache="Achillea sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="36" created="2011-03-01 20:11:26.0" uuid="05f0a2e1-e3c3-4e74-8fec-8a0ae89236c3" protectedtitlecache="false" titleCache="Achillea cretica L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="37" created="2011-03-01 20:11:26.0" uuid="0f8d18a9-e861-48e8-bfab-83e01a379bc0" protectedtitlecache="false" titleCache="Achillea maritima (L.)Ehrend. &amp; Y.-P. Guo subsp. maritima sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="40" created="2010-12-21 15:09:43.0" uuid="2b336df7-29e8-4f79-985f-66502739d22f" protectedtitlecache="false" titleCache="Achillea millefolium L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="41" created="2011-03-01 20:11:26.0" uuid="094e1af8-efd8-4605-b037-b4f715379562" protectedtitlecache="false" titleCache="Achillea santolinoides subsp. wilhelmsii (K. Koch) Greuter sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" sec_id="10" publish="true"/>
+  <LanguageString id="13780" uuid="cceaa60b-61f4-4c8a-bb0e-d45f0fa3e2dc" text="Modifying Text 1a" language_id="124"/>
+  <LanguageString id="13781" uuid="01a0ace4-de49-4725-9909-e881fb13035d" text="" language_id="124"/>
+  <LanguageString id="13782" uuid="ec0fea40-69dd-4c3e-ab7a-34948037a069" text="Capitula with ligulate ray-florets; leaves pinnatisect" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13783" uuid="82f8a3a0-567f-4d89-ba10-3f3699111d55" text="Ray-florets yellow" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13784" uuid="4270501f-1efc-45c2-9e8f-c65f120e8f4c" text="Stem thinly pilose; leaves 10-15 mm wide, with spreading linear-subulate segments; perennial herb" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13785" uuid="813f5fd6-c8f6-43e8-9a2b-1464f3ba052a" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13786" uuid="ba17ac94-632f-4d69-ac89-a882e19ff1c5" text="Stem white-tomentose; leaves 1-3 mm wide, with minute overlapping, transverse segments; small subshrubs with a woody base" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13787" uuid="ab219a5d-e0c4-45fd-8405-6693c3fb8abf" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13788" uuid="2baec690-422d-4f85-bcfd-24f5718cbecf" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13789" uuid="7c6a7984-8e6f-48b1-86b2-d5d643199bf3" text="Ray-florets white" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13790" uuid="72bd8bc9-1904-47ab-8bec-b9296a98b244" text="Perennial herb; stem pilose, hairy or glabrescent, but not tomentose; ligules 1-2 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13791" uuid="c917e3fb-e48b-4207-b77d-c1c108e37906" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13792" uuid="c5dd35d8-da6a-4d05-b30c-6b55220bd989" text="Shrub with a woody base; stem white-tomentose or woolly; ligules 4-5 mm diam." createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13793" uuid="227a17f6-1ca1-4d06-8480-25711b614863" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13794" uuid="2c434ab1-8ca7-4464-b5cd-4cee40db41ed" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13795" uuid="27190d54-f53b-401e-820c-edfb36d4bcbf" text="" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="13796" uuid="69cffb28-8a85-478f-bcae-533e20938ccd" text="Capitula without ligulate ray-florets; leaves entire or subentire" createdby_id="30" updatedby_id="30" language_id="124"/>
+  <LanguageString id="14570" uuid="84967760-6dbe-4af4-8e0c-309f1af6ce20" text="Question 1" createdby_id="10" updatedby_id="10" language_id="124"/>
+  <LanguageString id="14571" uuid="d82f37b1-f51d-42c1-a291-0c7820db155e" text="Question 2" createdby_id="10" updatedby_id="10" language_id="124"/>
+
+  <TaxonBase DTYPE="Taxon" id="32" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" protectedtitlecache="false" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="35" uuid="fade44fd-34b2-455f-861a-d1372b866f06" protectedtitlecache="false" titleCache="Achillea sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="36" uuid="05f0a2e1-e3c3-4e74-8fec-8a0ae89236c3" protectedtitlecache="false" titleCache="Achillea cretica L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="37" uuid="0f8d18a9-e861-48e8-bfab-83e01a379bc0" protectedtitlecache="false" titleCache="Achillea maritima (L.)Ehrend. &amp; Y.-P. Guo subsp. maritima sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="40" uuid="2b336df7-29e8-4f79-985f-66502739d22f" protectedtitlecache="false" titleCache="Achillea millefolium L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="41" uuid="094e1af8-efd8-4605-b037-b4f715379562" protectedtitlecache="false" titleCache="Achillea santolinoides subsp. wilhelmsii (K. Koch) Greuter sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="1" SOURCEDTAXON_ID="32" UUID="5ff76440-c9ab-4f13-8f1a-c39d57d3c714" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="2" SOURCEDTAXON_ID="35" UUID="3914b660-3cb3-4a5b-8fc7-264c7ac17a19" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="3" SOURCEDTAXON_ID="56" UUID="7cbe8fd0-1329-4421-8bb5-05b57f2048d1" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="4" SOURCEDTAXON_ID="37" UUID="14181c38-c344-4a9c-ba25-47877eff26af" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="5" SOURCEDTAXON_ID="40" UUID="1894e029-5303-474c-a1fc-8d97b493025b" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="6" SOURCEDTAXON_ID="41" UUID="68ad182d-1bce-4195-8690-af1d089c9d4d" SOURCETYPE="PTS" CITATION_ID="10" />
 
   <PolytomousKey_Taxon polytomousKey_id="1550" taxon_id="35"/>
 
-  <RightsInfo id="10" created="2014-10-09 15:45:53.0" uuid="bdfb572b-be25-45e7-9349-22a9da43531f" updated="2014-10-09 15:48:01.0" text="Rights Text Test" createdby_id="10" updatedby_id="10" agent_id="4808" type_id="2056"/>
+  <RightsInfo id="10" uuid="bdfb572b-be25-45e7-9349-22a9da43531f" text="Rights Text Test" createdby_id="10" updatedby_id="10" agent_id="4808" type_id="2056"/>
 
-  <PolytomousKeyNode id="2750" created="2014-03-10 10:02:35.0" uuid="75e4c924-ff58-4ee7-a59d-fd9173517d08" updated="2014-03-10 10:02:42.0" nodenumber="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2760"/>
-  <PolytomousKeyNode id="2751" created="2014-03-10 10:02:52.0" uuid="23e51ff7-11b1-443b-aff2-3fe8b5ace9fe" sortindex="0" key_id="1550" statement_id="2467" subkey_id="751" taxon_id="37" parent_id="2750"/>
-  <PolytomousKeyNode id="2752" created="2014-03-10 10:03:16.0" uuid="dcf326f7-c0ad-4e76-b64e-43aea11f767c" key_id="1550"/>
-  <PolytomousKeyNode id="2753" created="2014-03-10 10:03:38.0" uuid="b775c027-13c0-4b87-8aa9-712faeaafbdc" updated="2014-03-10 10:06:32.0" nodenumber="2" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2761" statement_id="2460"  subkey_id="751" parent_id="2750"/>
-  <PolytomousKeyNode id="2754" created="2014-03-10 10:03:52.0" uuid="df5d5922-35de-43d5-9d46-7730ae28eeb3" updated="2014-03-10 10:06:32.0" nodenumber="3" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2461" subkey_id="751" parent_id="2753"/>
-  <PolytomousKeyNode id="2755" created="2014-03-10 10:04:07.0" uuid="0c8583ee-399e-433c-b76b-272c54dbd9f5" updated="2014-03-10 10:06:32.0" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2462" taxon_id="32" parent_id="2754"/>
-  <PolytomousKeyNode id="2756" created="2014-03-10 10:04:34.0" uuid="a10e1e61-82c0-470e-a245-10a927b80c9a" updated="2014-03-10 10:06:32.0" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2463" taxon_id="41" parent_id="2754"/>
-  <PolytomousKeyNode id="2757" created="2014-03-10 10:05:07.0" uuid="19f7a6a2-4c55-49cb-8b92-d68a9fd9074c" updated="2014-03-10 10:06:32.0" nodenumber="4" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2464" parent_id="2753"/>
-  <PolytomousKeyNode id="2758" created="2014-03-10 10:05:20.0" uuid="0a4d86d1-fba5-4088-8dcc-6f0e7268ca5b" updated="2014-03-10 10:06:32.0" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2465" taxon_id="40" parent_id="2757"/>
-  <PolytomousKeyNode id="2759" created="2014-03-10 10:06:03.0" uuid="827c9df4-ac15-4163-95ab-616d51f62803" updated="2014-03-10 10:06:32.0" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2466" taxon_id="36" parent_id="2757"/>
+  <PolytomousKeyNode id="2750" uuid="75e4c924-ff58-4ee7-a59d-fd9173517d08" nodenumber="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2760"/>
+  <PolytomousKeyNode id="2751" uuid="23e51ff7-11b1-443b-aff2-3fe8b5ace9fe" sortindex="0" key_id="1550" statement_id="2467" subkey_id="751" taxon_id="37" parent_id="2750"/>
+  <PolytomousKeyNode id="2752" uuid="dcf326f7-c0ad-4e76-b64e-43aea11f767c" key_id="1550"/>
+  <PolytomousKeyNode id="2753" uuid="b775c027-13c0-4b87-8aa9-712faeaafbdc" nodenumber="2" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" question_id="2761" statement_id="2460"  subkey_id="751" parent_id="2750"/>
+  <PolytomousKeyNode id="2754" uuid="df5d5922-35de-43d5-9d46-7730ae28eeb3" nodenumber="3" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2461" subkey_id="751" parent_id="2753"/>
+  <PolytomousKeyNode id="2755" uuid="0c8583ee-399e-433c-b76b-272c54dbd9f5" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2462" taxon_id="32" parent_id="2754"/>
+  <PolytomousKeyNode id="2756" uuid="a10e1e61-82c0-470e-a245-10a927b80c9a" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2463" taxon_id="41" parent_id="2754"/>
+  <PolytomousKeyNode id="2757" uuid="19f7a6a2-4c55-49cb-8b92-d68a9fd9074c" nodenumber="4" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2464" parent_id="2753"/>
+  <PolytomousKeyNode id="2758" uuid="0a4d86d1-fba5-4088-8dcc-6f0e7268ca5b" sortindex="0" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2465" taxon_id="40" parent_id="2757"/>
+  <PolytomousKeyNode id="2759" uuid="827c9df4-ac15-4163-95ab-616d51f62803" sortindex="1" createdby_id="30" updatedby_id="30" key_id="1550" statement_id="2466" taxon_id="36" parent_id="2757"/>
 
-  <Credit id="20" created="2014-10-09 15:45:22.0" uuid="aa412b15-ee6c-4834-b14e-a66969cb398d" updated="2014-10-09 15:48:01.0" text="Credits Text Test" createdby_id="10" updatedby_id="10" language_id="124" agent_id="4809"/>
+  <Credit id="20" uuid="aa412b15-ee6c-4834-b14e-a66969cb398d" text="Credits Text Test" createdby_id="10" updatedby_id="10" language_id="124" agent_id="4809"/>
 
-  <KeyStatement id="2460" created="2014-03-10 10:03:48.0" uuid="66da6df7-784c-4d5a-9378-58b2cf92ba13" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
-  <KeyStatement id="2461" created="2014-03-10 10:04:03.0" uuid="f9cfd498-de47-48fd-b38c-43cf57b63750" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
-  <KeyStatement id="2462" created="2014-03-10 10:04:21.0" uuid="817fb39e-91d4-4d8c-a942-6acab47575d1" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
-  <KeyStatement id="2463" created="2014-03-10 10:04:53.0" uuid="6b571b86-7764-4f27-925c-ae5e2653f7ad" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
-  <KeyStatement id="2464" created="2014-03-10 10:05:16.0" uuid="91bbb534-abdf-4915-9f6f-a0cb41f8cf58" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
-  <KeyStatement id="2465" created="2014-03-10 10:05:34.0" uuid="1991ca31-2630-4917-8db3-eb67cec8f231" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
-  <KeyStatement id="2466" created="2014-03-10 10:06:15.0" uuid="3e1bbc59-b098-4533-ac35-245e1140a0ae" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
-  <KeyStatement id="2467" created="2014-03-10 10:03:24.0" uuid="68fd99f6-64ce-4bb8-a6af-d2cf2c046e2c" updated="2014-03-10 10:06:32.0" createdby_id="30" updatedby_id="30"/>
-  <KeyStatement id="2760" created="2014-10-09 15:42:33.0" uuid="b9702653-f620-4208-bda9-a6fe082004d1" updated="2014-10-09 15:42:44.0" createdby_id="10" updatedby_id="10"/>
-  <KeyStatement id="2761" created="2014-10-09 15:42:55.0" uuid="688a432f-4b57-4c6f-a8f6-0c468a28cb7c" updated="2014-10-09 15:43:03.0" createdby_id="10" updatedby_id="10"/>
+  <KeyStatement id="2460" uuid="66da6df7-784c-4d5a-9378-58b2cf92ba13" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2461" uuid="f9cfd498-de47-48fd-b38c-43cf57b63750" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2462" uuid="817fb39e-91d4-4d8c-a942-6acab47575d1" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2463" uuid="6b571b86-7764-4f27-925c-ae5e2653f7ad" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2464" uuid="91bbb534-abdf-4915-9f6f-a0cb41f8cf58" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2465" uuid="1991ca31-2630-4917-8db3-eb67cec8f231" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2466" uuid="3e1bbc59-b098-4533-ac35-245e1140a0ae" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2467" uuid="68fd99f6-64ce-4bb8-a6af-d2cf2c046e2c" createdby_id="30" updatedby_id="30"/>
+  <KeyStatement id="2760" uuid="b9702653-f620-4208-bda9-a6fe082004d1" createdby_id="10" updatedby_id="10"/>
+  <KeyStatement id="2761" uuid="688a432f-4b57-4c6f-a8f6-0c468a28cb7c" createdby_id="10" updatedby_id="10"/>
 
-  <AgentBase DTYPE="Person" id="4809" created="2010-12-21 15:09:59.0" uuid="945d08f2-eb92-45b6-9252-6275ea6d338b" protectedtitlecache="false" titleCache="R. A. Graham" nomenclaturaltitle="R. A. Graham" createdby_id="11"/>
+  <AgentBase DTYPE="Person" id="4809" uuid="945d08f2-eb92-45b6-9252-6275ea6d338b" protectedtitlecache="false" titleCache="R. A. Graham" nomenclaturaltitle="R. A. Graham" createdby_id="11"/>
 
-  <Extension id="10" created="2014-10-09 15:45:41.0" uuid="0d6f35d7-7e76-446a-a017-7e8355ee1b4c" updated="2014-10-09 15:48:01.0" value="http://test.com" createdby_id="10" updatedby_id="10" type_id="2075"/>
+  <Extension id="10" uuid="0d6f35d7-7e76-446a-a017-7e8355ee1b4c" value="http://test.com" createdby_id="10" updatedby_id="10" type_id="2075"/>
 
   <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23710"/>
   <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23711"/>
   <KeyStatement_LanguageString KeyStatement_id="2760" label_id="14570" label_mapkey_id="124"/>
   <KeyStatement_LanguageString KeyStatement_id="2761" label_id="14571" label_mapkey_id="124"/>
 
-  <PolytomousKey id="751" created="2013-03-24 11:17:08.0" uuid="9d8bf4f6-a70a-4b80-8556-2ccfb436ff01" protectedtitlecache="true" titleCache="Asphodeline" createdby_id="30"  startNumber="1"/>
-  <PolytomousKey id="1550" created="2014-03-10 10:02:35.0" uuid="0d53ba20-7de4-4baa-bd8a-401048447d66" updated="2014-03-10 10:02:42.0" protectedtitlecache="true" titleCache="Achillea" createdby_id="30" updatedby_id="30" root_id="2750" startNumber="1"/>
+  <PolytomousKey id="751" uuid="9d8bf4f6-a70a-4b80-8556-2ccfb436ff01" protectedtitlecache="true" titleCache="Asphodeline" createdby_id="30"  startNumber="1"/>
+  <PolytomousKey id="1550" uuid="0d53ba20-7de4-4baa-bd8a-401048447d66" protectedtitlecache="true" titleCache="Achillea" createdby_id="30" updatedby_id="30" root_id="2750" startNumber="1"/>
 
-  <OriginalSourceBase DTYPE="IdentifiableSource" id="23710" created="2014-03-10 10:06:57.0" uuid="95e05e82-499d-4b8a-ad6b-1085f74a7496" updated="2014-03-10 10:07:33.0" createdby_id="30" updatedby_id="30" citation_id="1730" sourceType="PTS"/>
-  <OriginalSourceBase DTYPE="IdentifiableSource" id="23711" created="2014-03-10 10:06:48.0" uuid="f77555fe-0d98-4c9f-98ed-a5bca6b1e342" updated="2014-03-10 10:07:33.0" createdby_id="30" updatedby_id="30" citation_id="50" sourceType="PTS"/>
+  <OriginalSourceBase DTYPE="IdentifiableSource" id="23710" uuid="95e05e82-499d-4b8a-ad6b-1085f74a7496" createdby_id="30" updatedby_id="30" citation_id="1730" sourceType="PTS"/>
+  <OriginalSourceBase DTYPE="IdentifiableSource" id="23711" uuid="f77555fe-0d98-4c9f-98ed-a5bca6b1e342" createdby_id="30" updatedby_id="30" citation_id="50" sourceType="PTS"/>
 
   <LanguageString id="10"/>
-</dataset>
+</dataset>
\ No newline at end of file
index 5856f784b92bb2ddb89de3988a8961f11be270a5..0a3d8b5a56a508110bad106ac55a3104436eb7de 100644 (file)
 -->
 <dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../cdm/database/schema/dataset.dtd">
 
-  <PolytomousKeyNode id="100" created="2012-11-23 19:53:37.0" uuid="c8e296da-441d-403b-9647-d729c00b2aa4" updated="2014-01-24 13:21:03.0" nodenumber="1"   key_id="90"/>
-  <PolytomousKeyNode id="101" created="2012-11-23 19:53:54.0" uuid="588754cd-6098-40d3-bb37-05d0a6676336" sortindex="0"  key_id="90"   parent_id="100"/>
-  <PolytomousKeyNode id="102" created="2012-11-23 19:54:42.0" uuid="52ea0b19-f29e-49fc-8326-02292fda4e43" sortindex="1"  key_id="90"   parent_id="100"/>
+  <PolytomousKeyNode id="100" uuid="c8e296da-441d-403b-9647-d729c00b2aa4" nodenumber="1"   key_id="90"/>
+  <PolytomousKeyNode id="101" uuid="588754cd-6098-40d3-bb37-05d0a6676336" sortindex="0"  key_id="90"   parent_id="100"/>
+  <PolytomousKeyNode id="102" uuid="52ea0b19-f29e-49fc-8326-02292fda4e43" sortindex="1"  key_id="90"   parent_id="100"/>
 
-  <PolytomousKey id="90" created="2012-11-23 19:53:37.0" uuid="f82cef88-5a9e-4917-9938-d08bda40836f" protectedtitlecache="true" titleCache="Cleome"  root_id="100" startNumber="1"/>
-  <PolytomousKey id="111" created="2013-02-15 16:26:38.0" uuid="a00ca7ec-b660-433c-bd14-596826ab2243" protectedtitlecache="true" titleCache="Ammi"   startNumber="1"/>
-  <PolytomousKey id="112" created="2013-02-15 16:31:54.0" uuid="197bc542-bf5b-4a52-aa66-c65df32c196b" protectedtitlecache="true" titleCache="Adonis"   startNumber="1"/>
-  <PolytomousKey id="113" created="2013-02-15 16:50:59.0" uuid="2ebacbb0-13f4-4407-8579-d5968e09a905" protectedtitlecache="true" titleCache="Enarthrocarpus"   startNumber="1"/>
-  <PolytomousKey id="114" created="2013-02-15 16:54:31.0" uuid="0426418c-5b76-4c19-8177-6bebb4d37329" protectedtitlecache="true" titleCache="Glaucium"  startNumber="1"/>
-  <PolytomousKey id="115" created="2013-02-15 17:05:42.0" uuid="6aa69b73-6242-4d3d-85c9-485aab9b1975" protectedtitlecache="true" titleCache="Sagina"   startNumber="1"/>
-  <PolytomousKey id="116" created="2013-02-15 17:09:43.0" uuid="cfe7626d-49cc-4dac-acbc-601825deb44a" protectedtitlecache="true" titleCache="Dianthus"   startNumber="1"/>
+  <PolytomousKey id="90" uuid="f82cef88-5a9e-4917-9938-d08bda40836f" protectedtitlecache="true" titleCache="Cleome"  root_id="100" startNumber="1"/>
+  <PolytomousKey id="111" uuid="a00ca7ec-b660-433c-bd14-596826ab2243" protectedtitlecache="true" titleCache="Ammi"   startNumber="1"/>
+  <PolytomousKey id="112" uuid="197bc542-bf5b-4a52-aa66-c65df32c196b" protectedtitlecache="true" titleCache="Adonis"   startNumber="1"/>
+  <PolytomousKey id="113" uuid="2ebacbb0-13f4-4407-8579-d5968e09a905" protectedtitlecache="true" titleCache="Enarthrocarpus"   startNumber="1"/>
+  <PolytomousKey id="114" uuid="0426418c-5b76-4c19-8177-6bebb4d37329" protectedtitlecache="true" titleCache="Glaucium"  startNumber="1"/>
+  <PolytomousKey id="115" uuid="6aa69b73-6242-4d3d-85c9-485aab9b1975" protectedtitlecache="true" titleCache="Sagina"   startNumber="1"/>
+  <PolytomousKey id="116" uuid="cfe7626d-49cc-4dac-acbc-601825deb44a" protectedtitlecache="true" titleCache="Dianthus"   startNumber="1"/>
 
   
 </dataset>
index 5d8c9dee452c274dddad6713ba5ec2b0e462265f..ad3b2333b17d94ac4f6f5e8c07bdfa306fe371e1 100644 (file)
 -->
 <dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../cdm/database/schema/dataset.dtd">
 
-  <TaxonNode id="46" created="2010-12-21 15:09:43.0" uuid="168a4d09-a2b0-4206-b4cc-5d13199f9306" countchildren="0"   classification_id="10" parent_id="47" taxon_id="48" treeIndex="#t10#4032#49#48#47#46#" sortIndex="0"/>
-  <TaxonNode id="47" created="2010-12-21 15:09:43.0" uuid="2f05d429-632d-4230-b9cb-70299360b470" countchildren="1"   classification_id="10" parent_id="48" taxon_id="51" treeIndex="#t10#4032#49#48#47#" sortIndex="0"/>
-  <TaxonNode id="48" created="2010-12-21 15:09:43.0" uuid="24773d3b-8f11-4400-99de-71658982b245" countchildren="6"   classification_id="10" parent_id="49"  treeIndex="#t10#4032#49#48#" sortIndex="0"/>
-  <TaxonNode id="49" created="2010-12-21 15:09:43.0" uuid="572290a9-7535-48c8-9f68-25ddbc9869ee" countchildren="10"   classification_id="10" parent_id="4032" taxon_id="49" treeIndex="#t10#4032#49#" sortIndex="0"/>
-  <TaxonNode id="236" created="2010-12-21 15:09:45.0" uuid="f5d97f8b-c673-4050-af06-bbfab33baaec" countchildren="0"   classification_id="10" parent_id="237" taxon_id="264" treeIndex="#t10#4032#49#48#237#236#" sortIndex="0"/>
-  <TaxonNode id="237" created="2010-12-21 15:09:45.0" uuid="4998de90-d0be-433b-a62f-0d57a1e399b0" countchildren="1"   classification_id="10" parent_id="48" taxon_id="265" treeIndex="#t10#4032#49#48#237#" sortIndex="1"/>
-  <TaxonNode id="714" created="2010-12-21 15:09:48.0" uuid="b85b5b78-6760-409f-ac91-bb89e95ff2a1" countchildren="0"   classification_id="10" parent_id="715" taxon_id="812" treeIndex="#t10#4032#49#48#715#714#" sortIndex="0"/>
-  <TaxonNode id="715" created="2010-12-21 15:09:48.0" uuid="91698cec-615f-4472-9002-feda1a6acded" countchildren="2"   classification_id="10" parent_id="48" taxon_id="814" treeIndex="#t10#4032#49#48#715#" sortIndex="2"/>
-  <TaxonNode id="716" created="2010-12-21 15:09:48.0" uuid="6ad8e9e2-f5f6-41ad-aa30-f62a903650db" countchildren="0"   classification_id="10" parent_id="715" taxon_id="815" treeIndex="#t10#4032#49#48#715#716#" sortIndex="1"/>
-  <TaxonNode id="828" created="2010-12-21 15:09:49.0" uuid="786622ba-cb2c-47f4-9eeb-65a6ebb7122b" countchildren="0"   classification_id="10" parent_id="829" taxon_id="946" treeIndex="#t10#4032#49#48#829#828#" sortIndex="0"/>
-  <TaxonNode id="829" created="2010-12-21 15:09:49.0" uuid="4fe03763-b966-4361-8334-352f6f777588" countchildren="1"   classification_id="10" parent_id="48" taxon_id="948" treeIndex="#t10#4032#49#48#829#" sortIndex="3"/>
-  <TaxonNode id="1915" created="2010-12-21 15:09:57.0" uuid="99f03b56-67cd-4e01-9ceb-2362d48f9d07" countchildren="0"   classification_id="10" parent_id="1916" taxon_id="2203" treeIndex="#t10#4032#49#48#1916#1915#" sortIndex="0"/>
-  <TaxonNode id="1916" created="2010-12-21 15:09:57.0" uuid="d8998200-500f-4312-90f4-2b60e6fd3a78" countchildren="1"   classification_id="10" parent_id="48" taxon_id="2205" treeIndex="#t10#4032#49#48#1916#" sortIndex="4"/>
-  <TaxonNode id="2354" created="2010-12-21 15:10:00.0" uuid="b8439f51-6b96-445a-b401-7a836ba1cf58" countchildren="0"   classification_id="10" parent_id="2355" taxon_id="2737" treeIndex="#t10#4032#49#48#2355#2354#" sortIndex="0"/>
-  <TaxonNode id="2355" created="2010-12-21 15:10:00.0" uuid="6da4e5b6-ebc3-4c46-bdce-24161b7bd0e2" countchildren="1"   classification_id="10" parent_id="48" taxon_id="2738" treeIndex="#t10#4032#49#48#2355#" sortIndex="5"/>
-  <TaxonNode id="4032" created="2014-01-16 10:24:29.0" uuid="29b3fd3f-29b4-4011-ab12-9c1ad1607dbd" countchildren="1" classification_id="10" treeIndex="#t10#4032#"/>
+  <TaxonNode id="46" uuid="168a4d09-a2b0-4206-b4cc-5d13199f9306" countchildren="0"   classification_id="10" parent_id="47" taxon_id="48" treeIndex="#t10#4032#49#48#47#46#" sortIndex="0"/>
+  <TaxonNode id="47" uuid="2f05d429-632d-4230-b9cb-70299360b470" countchildren="1"   classification_id="10" parent_id="48" taxon_id="51" treeIndex="#t10#4032#49#48#47#" sortIndex="0"/>
+  <TaxonNode id="48" uuid="24773d3b-8f11-4400-99de-71658982b245" countchildren="6"   classification_id="10" parent_id="49"  treeIndex="#t10#4032#49#48#" sortIndex="0"/>
+  <TaxonNode id="49" uuid="572290a9-7535-48c8-9f68-25ddbc9869ee" countchildren="10"   classification_id="10" parent_id="4032" taxon_id="49" treeIndex="#t10#4032#49#" sortIndex="0"/>
+  <TaxonNode id="236" uuid="f5d97f8b-c673-4050-af06-bbfab33baaec" countchildren="0"   classification_id="10" parent_id="237" taxon_id="264" treeIndex="#t10#4032#49#48#237#236#" sortIndex="0"/>
+  <TaxonNode id="237" uuid="4998de90-d0be-433b-a62f-0d57a1e399b0" countchildren="1"   classification_id="10" parent_id="48" taxon_id="265" treeIndex="#t10#4032#49#48#237#" sortIndex="1"/>
+  <TaxonNode id="714" uuid="b85b5b78-6760-409f-ac91-bb89e95ff2a1" countchildren="0"   classification_id="10" parent_id="715" taxon_id="812" treeIndex="#t10#4032#49#48#715#714#" sortIndex="0"/>
+  <TaxonNode id="715" uuid="91698cec-615f-4472-9002-feda1a6acded" countchildren="2"   classification_id="10" parent_id="48" taxon_id="814" treeIndex="#t10#4032#49#48#715#" sortIndex="2"/>
+  <TaxonNode id="716" uuid="6ad8e9e2-f5f6-41ad-aa30-f62a903650db" countchildren="0"   classification_id="10" parent_id="715" taxon_id="815" treeIndex="#t10#4032#49#48#715#716#" sortIndex="1"/>
+  <TaxonNode id="828" uuid="786622ba-cb2c-47f4-9eeb-65a6ebb7122b" countchildren="0"   classification_id="10" parent_id="829" taxon_id="946" treeIndex="#t10#4032#49#48#829#828#" sortIndex="0"/>
+  <TaxonNode id="829" uuid="4fe03763-b966-4361-8334-352f6f777588" countchildren="1"   classification_id="10" parent_id="48" taxon_id="948" treeIndex="#t10#4032#49#48#829#" sortIndex="3"/>
+  <TaxonNode id="1915" uuid="99f03b56-67cd-4e01-9ceb-2362d48f9d07" countchildren="0"   classification_id="10" parent_id="1916" taxon_id="2203" treeIndex="#t10#4032#49#48#1916#1915#" sortIndex="0"/>
+  <TaxonNode id="1916" uuid="d8998200-500f-4312-90f4-2b60e6fd3a78" countchildren="1"   classification_id="10" parent_id="48" taxon_id="2205" treeIndex="#t10#4032#49#48#1916#" sortIndex="4"/>
+  <TaxonNode id="2354" uuid="b8439f51-6b96-445a-b401-7a836ba1cf58" countchildren="0"   classification_id="10" parent_id="2355" taxon_id="2737" treeIndex="#t10#4032#49#48#2355#2354#" sortIndex="0"/>
+  <TaxonNode id="2355" uuid="6da4e5b6-ebc3-4c46-bdce-24161b7bd0e2" countchildren="1"   classification_id="10" parent_id="48" taxon_id="2738" treeIndex="#t10#4032#49#48#2355#" sortIndex="5"/>
+  <TaxonNode id="4032" uuid="29b3fd3f-29b4-4011-ab12-9c1ad1607dbd" countchildren="1" classification_id="10" treeIndex="#t10#4032#"/>
 
-  <TAXONNAME NAMETYPE="ICNAFP" id="48" created="2010-12-21 15:09:43.0" uuid="7aceb517-2b91-46b9-a5a2-88b7e0fb3230" protectedtitlecache="false" titleCache="Adiantum capillus-veneris L." fullTitleCache="Adiantum capillus-veneris L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Adiantum" hybridformula="false" monomhybrid="false" namecache="Adiantum capillus-veneris" protectedauthorshipcache="false" protectednamecache="false" specificepithet="capillus-veneris" trinomhybrid="false" anamorphic="false"    rank_id="778" />
-  <TAXONNAME NAMETYPE="ICNAFP" id="49" created="2010-12-21 15:09:43.0" uuid="079fff38-ff2d-426b-a49e-70b0f1db6c31" protectedtitlecache="false" titleCache="Pteridophyta" fullTitleCache="Pteridophyta" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Pteridophyta" hybridformula="false" monomhybrid="false" namecache="Pteridophyta" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="810"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="51" created="2010-12-21 15:09:43.0" uuid="c8af63e0-7bd4-4fad-aa2d-3777cbe1210a" protectedtitlecache="false" titleCache="Adiantum" fullTitleCache="Adiantum" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Adiantum" hybridformula="false" monomhybrid="false" namecache="Adiantum" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="264" created="2010-12-21 15:09:45.0" uuid="b976da6a-dd84-4fcd-9a1b-9847afba1da2" protectedtitlecache="false" titleCache="Anogramma leptophylla (L.) Link" fullTitleCache="Anogramma leptophylla (L.) Link" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(L.) Link" binomhybrid="false" genusoruninomial="Anogramma" hybridformula="false" monomhybrid="false" namecache="Anogramma leptophylla" protectedauthorshipcache="false" protectednamecache="false" specificepithet="leptophylla" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
-  <TAXONNAME NAMETYPE="ICNAFP" id="265" created="2010-12-21 15:09:45.0" uuid="c7f1db22-20fb-4eeb-810b-d37c5593b95d" protectedtitlecache="false" titleCache="Anogramma" fullTitleCache="Anogramma" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Anogramma" hybridformula="false" monomhybrid="false" namecache="Anogramma" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="812" created="2010-12-21 15:09:48.0" uuid="16450a2d-2085-471f-804a-defcd43c03e4" protectedtitlecache="false" titleCache="Cheilanthes acrostica (Balb.) Tod." fullTitleCache="Cheilanthes acrostica (Balb.) Tod." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(Balb.) Tod." binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes acrostica" protectedauthorshipcache="false" protectednamecache="false" specificepithet="acrostica" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
-  <TAXONNAME NAMETYPE="ICNAFP" id="814" created="2010-12-21 15:09:48.0" uuid="bbb1c5be-5a0c-45e2-b8af-f37a80ccf858" protectedtitlecache="false" titleCache="Cheilanthes" fullTitleCache="Cheilanthes" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="815" created="2010-12-21 15:09:48.0" uuid="f04a9283-f856-4d28-b469-4a222472862b" protectedtitlecache="false" titleCache="Cheilanthes maderensis Lowe" fullTitleCache="Cheilanthes maderensis Lowe" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="Lowe" binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes maderensis" protectedauthorshipcache="false" protectednamecache="false" specificepithet="maderensis" trinomhybrid="false" anamorphic="false"    rank_id="778" />
-  <TAXONNAME NAMETYPE="ICNAFP" id="946" created="2010-12-21 15:09:49.0" uuid="e30ef44b-52e4-41ff-a68d-9912d3c537f1" protectedtitlecache="false" titleCache="Cosentinia vellea (Aiton) Tod." fullTitleCache="Cosentinia vellea (Aiton) Tod." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(Aiton) Tod." binomhybrid="false" genusoruninomial="Cosentinia" hybridformula="false" monomhybrid="false" namecache="Cosentinia vellea" protectedauthorshipcache="false" protectednamecache="false" specificepithet="vellea" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
-  <TAXONNAME NAMETYPE="ICNAFP" id="948" created="2010-12-21 15:09:49.0" uuid="21fda99e-0425-4f29-b7b2-196f8a51b054" protectedtitlecache="false" titleCache="Cosentinia" fullTitleCache="Cosentinia" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Cosentinia" hybridformula="false" monomhybrid="false" namecache="Cosentinia" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="2203" created="2010-12-21 15:09:57.0" uuid="8fe0bb4b-7687-4d32-8ff2-94e690980f81" protectedtitlecache="false" titleCache="Notholaena marantae (L.) Desv." fullTitleCache="Notholaena marantae (L.) Desv." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(L.) Desv." binomhybrid="false" genusoruninomial="Notholaena" hybridformula="false" monomhybrid="false" namecache="Notholaena marantae" protectedauthorshipcache="false" protectednamecache="false" specificepithet="marantae" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
-  <TAXONNAME NAMETYPE="ICNAFP" id="2205" created="2010-12-21 15:09:57.0" uuid="77b7934f-8f62-4798-b96a-f3d12bfd5ebf" protectedtitlecache="false" titleCache="Notholaena" fullTitleCache="Notholaena" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Notholaena" hybridformula="false" monomhybrid="false" namecache="Notholaena" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="2737" created="2010-12-21 15:10:00.0" uuid="25560d66-07a3-41ce-8244-36ca98638c71" protectedtitlecache="false" titleCache="Pteris vittata L." fullTitleCache="Pteris vittata L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris vittata" protectedauthorshipcache="false" protectednamecache="false" specificepithet="vittata" trinomhybrid="false" anamorphic="false"    rank_id="778" />
-  <TAXONNAME NAMETYPE="ICNAFP" id="2738" created="2010-12-21 15:10:00.0" uuid="a40593ce-e8cc-43bb-a391-2de988b09039" protectedtitlecache="false" titleCache="Pteris" fullTitleCache="Pteris" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="48" uuid="7aceb517-2b91-46b9-a5a2-88b7e0fb3230" protectedtitlecache="false" titleCache="Adiantum capillus-veneris L." fullTitleCache="Adiantum capillus-veneris L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Adiantum" hybridformula="false" monomhybrid="false" namecache="Adiantum capillus-veneris" protectedauthorshipcache="false" protectednamecache="false" specificepithet="capillus-veneris" trinomhybrid="false" anamorphic="false"    rank_id="778" />
+  <TAXONNAME NAMETYPE="ICNAFP" id="49" uuid="079fff38-ff2d-426b-a49e-70b0f1db6c31" protectedtitlecache="false" titleCache="Pteridophyta" fullTitleCache="Pteridophyta" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Pteridophyta" hybridformula="false" monomhybrid="false" namecache="Pteridophyta" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="810"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="51" uuid="c8af63e0-7bd4-4fad-aa2d-3777cbe1210a" protectedtitlecache="false" titleCache="Adiantum" fullTitleCache="Adiantum" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Adiantum" hybridformula="false" monomhybrid="false" namecache="Adiantum" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="264" uuid="b976da6a-dd84-4fcd-9a1b-9847afba1da2" protectedtitlecache="false" titleCache="Anogramma leptophylla (L.) Link" fullTitleCache="Anogramma leptophylla (L.) Link" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(L.) Link" binomhybrid="false" genusoruninomial="Anogramma" hybridformula="false" monomhybrid="false" namecache="Anogramma leptophylla" protectedauthorshipcache="false" protectednamecache="false" specificepithet="leptophylla" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
+  <TAXONNAME NAMETYPE="ICNAFP" id="265" uuid="c7f1db22-20fb-4eeb-810b-d37c5593b95d" protectedtitlecache="false" titleCache="Anogramma" fullTitleCache="Anogramma" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Anogramma" hybridformula="false" monomhybrid="false" namecache="Anogramma" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="812" uuid="16450a2d-2085-471f-804a-defcd43c03e4" protectedtitlecache="false" titleCache="Cheilanthes acrostica (Balb.) Tod." fullTitleCache="Cheilanthes acrostica (Balb.) Tod." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(Balb.) Tod." binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes acrostica" protectedauthorshipcache="false" protectednamecache="false" specificepithet="acrostica" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
+  <TAXONNAME NAMETYPE="ICNAFP" id="814" uuid="bbb1c5be-5a0c-45e2-b8af-f37a80ccf858" protectedtitlecache="false" titleCache="Cheilanthes" fullTitleCache="Cheilanthes" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="815" uuid="f04a9283-f856-4d28-b469-4a222472862b" protectedtitlecache="false" titleCache="Cheilanthes maderensis Lowe" fullTitleCache="Cheilanthes maderensis Lowe" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="Lowe" binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes maderensis" protectedauthorshipcache="false" protectednamecache="false" specificepithet="maderensis" trinomhybrid="false" anamorphic="false"    rank_id="778" />
+  <TAXONNAME NAMETYPE="ICNAFP" id="946" uuid="e30ef44b-52e4-41ff-a68d-9912d3c537f1" protectedtitlecache="false" titleCache="Cosentinia vellea (Aiton) Tod." fullTitleCache="Cosentinia vellea (Aiton) Tod." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(Aiton) Tod." binomhybrid="false" genusoruninomial="Cosentinia" hybridformula="false" monomhybrid="false" namecache="Cosentinia vellea" protectedauthorshipcache="false" protectednamecache="false" specificepithet="vellea" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
+  <TAXONNAME NAMETYPE="ICNAFP" id="948" uuid="21fda99e-0425-4f29-b7b2-196f8a51b054" protectedtitlecache="false" titleCache="Cosentinia" fullTitleCache="Cosentinia" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Cosentinia" hybridformula="false" monomhybrid="false" namecache="Cosentinia" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="2203" uuid="8fe0bb4b-7687-4d32-8ff2-94e690980f81" protectedtitlecache="false" titleCache="Notholaena marantae (L.) Desv." fullTitleCache="Notholaena marantae (L.) Desv." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(L.) Desv." binomhybrid="false" genusoruninomial="Notholaena" hybridformula="false" monomhybrid="false" namecache="Notholaena marantae" protectedauthorshipcache="false" protectednamecache="false" specificepithet="marantae" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
+  <TAXONNAME NAMETYPE="ICNAFP" id="2205" uuid="77b7934f-8f62-4798-b96a-f3d12bfd5ebf" protectedtitlecache="false" titleCache="Notholaena" fullTitleCache="Notholaena" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Notholaena" hybridformula="false" monomhybrid="false" namecache="Notholaena" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="2737" uuid="25560d66-07a3-41ce-8244-36ca98638c71" protectedtitlecache="false" titleCache="Pteris vittata L." fullTitleCache="Pteris vittata L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris vittata" protectedauthorshipcache="false" protectednamecache="false" specificepithet="vittata" trinomhybrid="false" anamorphic="false"    rank_id="778" />
+  <TAXONNAME NAMETYPE="ICNAFP" id="2738" uuid="a40593ce-e8cc-43bb-a391-2de988b09039" protectedtitlecache="false" titleCache="Pteris" fullTitleCache="Pteris" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
 
-  <Classification id="10" created="2010-12-21 15:09:43.0" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" updated="2015-06-09 07:10:42.0" protectedtitlecache="false" titleCache="Cyprus"   updatedby_id="10" name_id="10"  rootnode_id="4032"/>
+  <Classification id="10" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" protectedtitlecache="false" titleCache="Cyprus"   updatedby_id="10" name_id="10"  rootnode_id="4032"/>
 
-  <TaxonBase DTYPE="Taxon" id="48" created="2011-03-01 20:11:26.0" uuid="b8402dc4-5050-4882-a147-01b71e0e47d6" protectedtitlecache="false" titleCache="Adiantum capillus-veneris L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="48"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="49" created="2010-12-21 15:09:43.0" uuid="1141a510-5ee8-4a59-ae60-7b4fea44872f" protectedtitlecache="false" titleCache="Pteridophyta sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="49"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="51" created="2010-12-21 15:09:43.0" uuid="233cac41-bb05-4925-bb9e-ab0bdf330973" protectedtitlecache="false" titleCache="Adiantum sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="51"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="264" created="2011-03-01 20:11:27.0" uuid="d679c5d0-53b3-40fc-97e1-0646aad7ed23" protectedtitlecache="false" titleCache="Anogramma leptophylla (L.) Link sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="264"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="265" created="2010-12-21 15:09:45.0" uuid="1fc1d927-1155-4282-a9f5-f07202f79ace" protectedtitlecache="false" titleCache="Anogramma sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="265"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="812" created="2011-03-01 20:11:29.0" uuid="e40854d7-143f-4054-b229-6ed4cedb4bff" protectedtitlecache="false" titleCache="Cheilanthes acrostica (Balb.) Tod. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="812"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="814" created="2010-12-21 15:09:48.0" uuid="433ad11a-b931-49a4-8128-d6f4d454914a" protectedtitlecache="false" titleCache="Cheilanthes sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="814"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="815" created="2010-12-21 15:09:48.0" uuid="7ea2c74a-f2b2-41f6-acdf-1ca35f5d03f8" protectedtitlecache="false" titleCache="Cheilanthes maderensis Lowe sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="815"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="946" created="2011-03-01 20:11:30.0" uuid="ba21b018-97d2-42d7-af6c-5e8db8e495ff" protectedtitlecache="false" titleCache="Cosentinia vellea (Aiton) Tod. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="946"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="948" created="2010-12-21 15:09:49.0" uuid="a2768f6d-80f2-4e0c-a6e3-99b7a9f3bc9d" protectedtitlecache="false" titleCache="Cosentinia sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="948"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="2203" created="2011-03-01 20:11:36.0" uuid="d9a0c5d5-baee-4b6b-974a-a7de5affe748" protectedtitlecache="false" titleCache="Notholaena marantae (L.) Desv. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="2203"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="2205" created="2010-12-21 15:09:57.0" uuid="c221d34c-76b0-4fc7-9901-e72efd4c899b" protectedtitlecache="false" titleCache="Notholaena sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="2205"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="2737" created="2011-03-01 20:11:39.0" uuid="6b46ac55-3e39-4c37-a1b6-b680b21599b2" protectedtitlecache="false" titleCache="Pteris vittata L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="2737"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="2738" created="2010-12-21 15:10:00.0" uuid="8ac3dca2-6bbf-4cd4-84b7-53ddc2973ed8" protectedtitlecache="false" titleCache="Pteris sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="2738"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="48" uuid="b8402dc4-5050-4882-a147-01b71e0e47d6" protectedtitlecache="false" titleCache="Adiantum capillus-veneris L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="48"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="49" uuid="1141a510-5ee8-4a59-ae60-7b4fea44872f" protectedtitlecache="false" titleCache="Pteridophyta sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="49"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="51" uuid="233cac41-bb05-4925-bb9e-ab0bdf330973" protectedtitlecache="false" titleCache="Adiantum sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="51"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="264" uuid="d679c5d0-53b3-40fc-97e1-0646aad7ed23" protectedtitlecache="false" titleCache="Anogramma leptophylla (L.) Link sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="264"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="265" uuid="1fc1d927-1155-4282-a9f5-f07202f79ace" protectedtitlecache="false" titleCache="Anogramma sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="265"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="812" uuid="e40854d7-143f-4054-b229-6ed4cedb4bff" protectedtitlecache="false" titleCache="Cheilanthes acrostica (Balb.) Tod. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="812"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="814" uuid="433ad11a-b931-49a4-8128-d6f4d454914a" protectedtitlecache="false" titleCache="Cheilanthes sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="814"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="815" uuid="7ea2c74a-f2b2-41f6-acdf-1ca35f5d03f8" protectedtitlecache="false" titleCache="Cheilanthes maderensis Lowe sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="815"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="946" uuid="ba21b018-97d2-42d7-af6c-5e8db8e495ff" protectedtitlecache="false" titleCache="Cosentinia vellea (Aiton) Tod. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="946"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="948" uuid="a2768f6d-80f2-4e0c-a6e3-99b7a9f3bc9d" protectedtitlecache="false" titleCache="Cosentinia sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="948"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="2203" uuid="d9a0c5d5-baee-4b6b-974a-a7de5affe748" protectedtitlecache="false" titleCache="Notholaena marantae (L.) Desv. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="2203"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="2205" uuid="c221d34c-76b0-4fc7-9901-e72efd4c899b" protectedtitlecache="false" titleCache="Notholaena sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="2205"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="2737" uuid="6b46ac55-3e39-4c37-a1b6-b680b21599b2" protectedtitlecache="false" titleCache="Pteris vittata L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="2737"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="2738" uuid="8ac3dca2-6bbf-4cd4-84b7-53ddc2973ed8" protectedtitlecache="false" titleCache="Pteris sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="2738"  publish="true"/>
 
-  <DescriptionBase DTYPE="TaxonDescription" id="28" created="2010-12-21 15:09:43.0" uuid="f04f8f66-ad92-42d0-89bc-04ac5b36163c" updated="2011-03-01 19:20:45.0" protectedtitlecache="false" titleCache="Taxon description for Adiantum capillus-veneris L." imagegallery="false"   taxon_id="48" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="149" created="2010-12-21 15:09:45.0" uuid="24df0fca-bfc4-4f0f-a269-336985ed6e5e" updated="2011-03-01 19:20:46.0" protectedtitlecache="false" titleCache="Taxon description for Anogramma leptophylla (L.) Link" imagegallery="false"   taxon_id="264" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="447" created="2010-12-21 15:09:48.0" uuid="01863b86-c6ae-48b8-a8da-f693be9087da" updated="2011-03-01 19:20:48.0" protectedtitlecache="false" titleCache="Taxon description for Cheilanthes acrostica (Balbis) Tod." imagegallery="false"   taxon_id="812" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="448" created="2010-12-21 15:09:48.0" uuid="aac7b184-e622-409b-8eda-e14998b9021d" protectedtitlecache="false" titleCache="Taxon description for Cheilanthes maderensis Lowe" imagegallery="false"   taxon_id="815" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="521" created="2010-12-21 15:09:49.0" uuid="2d672585-0f35-42f8-9923-dfd5545e6369" updated="2011-03-01 19:20:48.0" protectedtitlecache="false" titleCache="Taxon description for Cosentinia vellea (Aiton) Tod." imagegallery="false"   taxon_id="946" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="1234" created="2010-12-21 15:09:57.0" uuid="a8a734c2-122b-4d5b-9c89-a852f4ab4661" updated="2011-03-01 19:20:53.0" protectedtitlecache="false" titleCache="Taxon description for Notholaena marantae (L.) Desv." imagegallery="false"   taxon_id="2203" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="1524" created="2010-12-21 15:10:00.0" uuid="c4e66d46-e4fb-4da2-a432-3f1cf5353b81" updated="2011-03-01 19:20:55.0" protectedtitlecache="false" titleCache="Taxon description for Pteris vittata L." imagegallery="false"   taxon_id="2737" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="4567" created="2011-03-01 19:20:45.0" uuid="dd0f7395-6162-4ce4-8ece-774011b09325" updated="2011-03-01 20:11:26.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Adiantum capillus-veneris L. sec. Cyprus" imagegallery="false" taxon_id="48" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="4627" created="2011-03-01 19:20:46.0" uuid="34266202-eb5d-41ec-a0b2-da56deb11cc7" updated="2011-03-01 20:11:27.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Anogramma leptophylla (L.) Link sec. Cyprus" imagegallery="false" taxon_id="264" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="4798" created="2011-03-01 19:20:48.0" uuid="504b0178-39e6-4c79-8e33-ca00b0662f27" updated="2011-03-01 20:11:29.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Cheilanthes acrostica (Balbis) Tod. sec. Cyprus" imagegallery="false" taxon_id="812" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="4840" created="2011-03-01 19:20:48.0" uuid="73396d11-5d35-43fb-8b15-4d472bdcdd43" updated="2011-03-01 20:11:30.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Cosentinia vellea (Aiton) Tod. sec. Cyprus" imagegallery="false" taxon_id="946" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="5409" created="2011-03-01 19:20:55.0" uuid="64a797b2-7f92-4012-a4f5-d76f8aaeb6b4" updated="2011-03-01 20:11:39.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Pteris vittata L. sec. Cyprus" imagegallery="false" taxon_id="2737" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="5974" created="2011-03-01 19:20:53.0" uuid="71872861-8229-4cab-8042-b75dfa0e3f63" updated="2011-03-01 20:11:36.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Notholaena marantae (L.) Desv. sec. Cyprus" imagegallery="false" taxon_id="2203" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="11766" created="2012-07-30 15:39:44.0" uuid="6b4be8a2-ea86-4815-bd31-b022055a90f2" protectedtitlecache="false" titleCache="Image gallery for Pteris vittata L." imagegallery="true"   taxon_id="2737" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="12353" created="2012-12-03 12:21:48.0" uuid="b8d3a151-032e-48d9-9191-d7b8fb1fe1a0" protectedtitlecache="false" titleCache="Image gallery for Cheilanthes acrostica (Balbis) Tod." imagegallery="true"   taxon_id="812" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="12713" created="2013-02-10 21:43:33.0" uuid="61fbdc1b-80bf-4aea-b6cb-8f4d466bd923" protectedtitlecache="false" titleCache="Image gallery for Adiantum capillus-veneris L." imagegallery="true"   taxon_id="48" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="13728" created="2014-02-28 19:20:29.0" uuid="53b3125e-2a43-4433-a4dd-50dd9a4cf92c" updated="2014-02-28 19:20:29.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="48" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="13817" created="2014-02-28 19:20:34.0" uuid="7b108193-e689-417a-bcab-adaf6c49d532" updated="2014-02-28 19:20:34.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="264" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="14043" created="2014-02-28 19:20:58.0" uuid="de29cc97-a160-4783-b996-b929157335d5" updated="2014-02-28 19:20:58.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="812" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="14101" created="2014-02-28 19:21:07.0" uuid="815336d3-19d6-493d-9ea4-bcb320d1b922" updated="2014-02-28 19:21:08.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="946" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="14658" created="2014-02-28 19:23:51.0" uuid="ce4068f8-17b0-46e2-9fbb-e8c16efb7255" updated="2014-02-28 19:23:51.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="2203" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="14864" created="2014-02-28 19:25:21.0" uuid="2d55f445-8e72-43d3-976a-133828e89599" updated="2014-02-28 19:25:21.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="2737" isDefault="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="28" uuid="f04f8f66-ad92-42d0-89bc-04ac5b36163c" protectedtitlecache="false" titleCache="Taxon description for Adiantum capillus-veneris L." imagegallery="false"   taxon_id="48" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="149" uuid="24df0fca-bfc4-4f0f-a269-336985ed6e5e" protectedtitlecache="false" titleCache="Taxon description for Anogramma leptophylla (L.) Link" imagegallery="false"   taxon_id="264" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="447" uuid="01863b86-c6ae-48b8-a8da-f693be9087da" protectedtitlecache="false" titleCache="Taxon description for Cheilanthes acrostica (Balbis) Tod." imagegallery="false"   taxon_id="812" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="448" uuid="aac7b184-e622-409b-8eda-e14998b9021d" protectedtitlecache="false" titleCache="Taxon description for Cheilanthes maderensis Lowe" imagegallery="false"   taxon_id="815" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="521" uuid="2d672585-0f35-42f8-9923-dfd5545e6369" protectedtitlecache="false" titleCache="Taxon description for Cosentinia vellea (Aiton) Tod." imagegallery="false"   taxon_id="946" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="1234" uuid="a8a734c2-122b-4d5b-9c89-a852f4ab4661" protectedtitlecache="false" titleCache="Taxon description for Notholaena marantae (L.) Desv." imagegallery="false"   taxon_id="2203" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="1524" uuid="c4e66d46-e4fb-4da2-a432-3f1cf5353b81" protectedtitlecache="false" titleCache="Taxon description for Pteris vittata L." imagegallery="false"   taxon_id="2737" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="4567" uuid="dd0f7395-6162-4ce4-8ece-774011b09325" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Adiantum capillus-veneris L. sec. Cyprus" imagegallery="false" taxon_id="48" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="4627" uuid="34266202-eb5d-41ec-a0b2-da56deb11cc7" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Anogramma leptophylla (L.) Link sec. Cyprus" imagegallery="false" taxon_id="264" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="4798" uuid="504b0178-39e6-4c79-8e33-ca00b0662f27" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Cheilanthes acrostica (Balbis) Tod. sec. Cyprus" imagegallery="false" taxon_id="812" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="4840" uuid="73396d11-5d35-43fb-8b15-4d472bdcdd43" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Cosentinia vellea (Aiton) Tod. sec. Cyprus" imagegallery="false" taxon_id="946" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="5409" uuid="64a797b2-7f92-4012-a4f5-d76f8aaeb6b4" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Pteris vittata L. sec. Cyprus" imagegallery="false" taxon_id="2737" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="5974" uuid="71872861-8229-4cab-8042-b75dfa0e3f63" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Notholaena marantae (L.) Desv. sec. Cyprus" imagegallery="false" taxon_id="2203" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="11766" uuid="6b4be8a2-ea86-4815-bd31-b022055a90f2" protectedtitlecache="false" titleCache="Image gallery for Pteris vittata L." imagegallery="true"   taxon_id="2737" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="12353" uuid="b8d3a151-032e-48d9-9191-d7b8fb1fe1a0" protectedtitlecache="false" titleCache="Image gallery for Cheilanthes acrostica (Balbis) Tod." imagegallery="true"   taxon_id="812" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="12713" uuid="61fbdc1b-80bf-4aea-b6cb-8f4d466bd923" protectedtitlecache="false" titleCache="Image gallery for Adiantum capillus-veneris L." imagegallery="true"   taxon_id="48" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="13728" uuid="53b3125e-2a43-4433-a4dd-50dd9a4cf92c" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="48" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="13817" uuid="7b108193-e689-417a-bcab-adaf6c49d532" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="264" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="14043" uuid="de29cc97-a160-4783-b996-b929157335d5" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="812" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="14101" uuid="815336d3-19d6-493d-9ea4-bcb320d1b922" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="946" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="14658" uuid="ce4068f8-17b0-46e2-9fbb-e8c16efb7255" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="2203" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="14864" uuid="2d55f445-8e72-43d3-976a-133828e89599" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="2737" PUBLISH="true" ISDEFAULT="false"/>
   
   <LanguageString id="10"/>
 </dataset>
diff --git a/eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/operation/TaxonEditorTest.xml b/eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/operation/TaxonEditorTest.xml
new file mode 100644 (file)
index 0000000..ac81074
--- /dev/null
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+  generated by Jailer 4.3, Wed Mar 04 16:11:14 CET 2015 from cmathew@cmbgbm-t530
+  
+  Extraction Model:  all rows from Classification (extractionmodel/by-example/SbE-Classification-16-11-06-737.csv)
+  Database URL:      jdbc:mysql://127.0.0.1:3306/local-cyprus
+  Database User:     root
+  
+  Exported Rows:     31
+      Classification                 1
+      HomotypicalGroup               2
+      TaxonBase                      5
+      TaxonNameBase                  3
+      TaxonNode                      19
+  
+-->
+<dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../cdm/database/schema/dataset.dtd">
+  
+  <TaxonNode id="347" uuid="d425a971-1abe-4895-9e1f-1e5c8ff1c84c" countchildren="0"  classification_id="10"  taxon_id="387" treeIndex="#t10#4032#49#346#345#347#" sortIndex="1" />  
+  <TaxonNode id="351" uuid="ce54c396-3694-47f2-abb0-1d7b7e057985" countchildren="0"  classification_id="10"  taxon_id="394" treeIndex="#t10#4032#49#346#345#351#" sortIndex="4" />
+  
+  <HomotypicalGroup id="368" uuid="d7eaa174-4efd-4d09-a427-dce4ed6513f7" />
+  <HomotypicalGroup id="375" uuid="62ed57d6-2c69-4404-bb95-248a1c9bb24c" />
+
+  <TAXONNAME NAMETYPE="ICNAFP" id="387" uuid="d25985c7-6fb4-4b31-8a94-5d7c5ba6ad16" protectedtitlecache="false" titleCache="Asplenium ceterach L." fullTitleCache="Asplenium ceterach L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Asplenium" hybridformula="false" monomhybrid="false" namecache="Asplenium ceterach" protectedauthorshipcache="false" protectednamecache="false" specificepithet="ceterach" trinomhybrid="false" anamorphic="false"  homotypicalgroup_id="368" rank_id="778" />
+  <TAXONNAME NAMETYPE="ICNAFP" id="388" uuid="747021f1-cf5f-4249-a825-228da3368399" protectedtitlecache="true" titleCache="Asplenium cyprium Viane &amp; Van den heede" fullTitleCache="Asplenium cyprium Viane &amp; Van den heede" parsingproblem="16" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" hybridformula="false" monomhybrid="false" namecache="Asplenium cyprium Viane &amp; Van den heede" protectedauthorshipcache="false" protectednamecache="true" trinomhybrid="false" anamorphic="false" />
+  <TAXONNAME NAMETYPE="ICNAFP" id="394" uuid="08f8f376-c9a4-4ea9-950d-3ac30b7fa689" protectedtitlecache="false" titleCache="Asplenium viride Huds." fullTitleCache="Asplenium viride Huds." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="Huds." binomhybrid="false" genusoruninomial="Asplenium" hybridformula="false" monomhybrid="false" namecache="Asplenium viride" protectedauthorshipcache="false" protectednamecache="false" specificepithet="viride" trinomhybrid="false" anamorphic="false"  homotypicalgroup_id="375" rank_id="778" />
+
+  <Classification id="10" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" protectedtitlecache="false" titleCache="Cyprus"  name_id="10" source_id="4"/>
+  <TaxonBase DTYPE="Taxon"   id="387" uuid="9763e5f0-6cd4-4d96-b8a4-4420854f7727" protectedtitlecache="false" titleCache="Asplenium ceterach L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="387" publish="true"/>
+  <TaxonBase DTYPE="Synonym" id="388" uuid="1eb173bd-b174-4162-8ff5-5136d8f1e746" protectedtitlecache="false" titleCache="Asplenium cyprium Viane &amp; Van den heede sec. Cyprus" doubtful="false" usenamecache="false"  name_id="388" publish="true" acceptedtaxon_id="387"/>
+  <TaxonBase DTYPE="Taxon"   id="394" uuid="aff4fa6f-9aa8-463d-ac07-ec8a1925eb57" protectedtitlecache="false" titleCache="Asplenium viride Huds. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="394" publish="true"/>
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="1" SOURCEDTAXON_ID="387" UUID="5ff76440-c9ab-4f13-8f1a-c39d57d3c714" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="2" SOURCEDTAXON_ID="388" UUID="3914b660-3cb3-4a5b-8fc7-264c7ac17a19" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="3" SOURCEDTAXON_ID="394" UUID="7cbe8fd0-1329-4421-8bb5-05b57f2048d1" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="NamedSource"    ID="4"                       UUID="53dfd49b-f15b-4ce9-a52a-615d41634a4a" SOURCETYPE="PTS" CITATION_ID="10" />
+
+  <LanguageString id="10"/>
+  <DescriptionBase/>
+  <DescriptionElementBase/>
+</dataset>
diff --git a/eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/operation/TaxonNameEditorTest.xml b/eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/taxeditor/operation/TaxonNameEditorTest.xml
deleted file mode 100644 (file)
index 899210b..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
-  generated by Jailer 4.3, Wed Mar 04 16:11:14 CET 2015 from cmathew@cmbgbm-t530
-  
-  Extraction Model:  all rows from Classification (extractionmodel/by-example/SbE-Classification-16-11-06-737.csv)
-  Database URL:      jdbc:mysql://127.0.0.1:3306/local-cyprus
-  Database User:     root
-  
-  Exported Rows:     31
-      Classification                 1
-      HomotypicalGroup               2
-      TaxonBase                      5
-      TaxonNameBase                  3
-      TaxonNode                      19
-  
--->
-<dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../cdm/database/schema/dataset.dtd">
-  
-  <TaxonNode id="347" created="2010-12-21 15:09:45.0" uuid="d425a971-1abe-4895-9e1f-1e5c8ff1c84c" countchildren="0"  classification_id="10"  taxon_id="387" treeIndex="#t10#4032#49#346#345#347#" sortIndex="1" />  
-  <TaxonNode id="351" created="2010-12-21 15:09:46.0" uuid="ce54c396-3694-47f2-abb0-1d7b7e057985" countchildren="0"  classification_id="10"  taxon_id="394" treeIndex="#t10#4032#49#346#345#351#" sortIndex="4" />
-  
-  <HomotypicalGroup id="368" created="2010-12-21 15:09:45.0" uuid="d7eaa174-4efd-4d09-a427-dce4ed6513f7" />
-  <HomotypicalGroup id="375" created="2010-12-21 15:09:46.0" uuid="62ed57d6-2c69-4404-bb95-248a1c9bb24c" />
-
-  <TAXONNAME NAMETYPE="ICNAFP" id="387" created="2010-12-21 15:09:45.0" uuid="d25985c7-6fb4-4b31-8a94-5d7c5ba6ad16" protectedtitlecache="false" titleCache="Asplenium ceterach L." fullTitleCache="Asplenium ceterach L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Asplenium" hybridformula="false" monomhybrid="false" namecache="Asplenium ceterach" protectedauthorshipcache="false" protectednamecache="false" specificepithet="ceterach" trinomhybrid="false" anamorphic="false"  homotypicalgroup_id="368" rank_id="778" />
-  <TAXONNAME NAMETYPE="ICNAFP" id="388" created="2010-12-21 15:09:45.0" uuid="747021f1-cf5f-4249-a825-228da3368399" protectedtitlecache="true" titleCache="Asplenium cyprium Viane &amp; Van den heede" fullTitleCache="Asplenium cyprium Viane &amp; Van den heede" parsingproblem="16" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" hybridformula="false" monomhybrid="false" namecache="Asplenium cyprium Viane &amp; Van den heede" protectedauthorshipcache="false" protectednamecache="true" trinomhybrid="false" anamorphic="false" />
-  <TAXONNAME NAMETYPE="ICNAFP" id="394" created="2010-12-21 15:09:46.0" uuid="08f8f376-c9a4-4ea9-950d-3ac30b7fa689" protectedtitlecache="false" titleCache="Asplenium viride Huds." fullTitleCache="Asplenium viride Huds." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="Huds." binomhybrid="false" genusoruninomial="Asplenium" hybridformula="false" monomhybrid="false" namecache="Asplenium viride" protectedauthorshipcache="false" protectednamecache="false" specificepithet="viride" trinomhybrid="false" anamorphic="false"  homotypicalgroup_id="375" rank_id="778" />
-
-  <Classification id="10" created="2010-12-21 15:09:43.0" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" protectedtitlecache="false" titleCache="Cyprus"  name_id="10" reference_id="10" />
-  <TaxonBase DTYPE="Taxon" id="387" created="2011-03-01 20:11:27.0" uuid="9763e5f0-6cd4-4d96-b8a4-4420854f7727" protectedtitlecache="false" titleCache="Asplenium ceterach L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="387" sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Synonym" id="388" created="2010-12-21 15:09:45.0" uuid="1eb173bd-b174-4162-8ff5-5136d8f1e746" protectedtitlecache="false" titleCache="Asplenium cyprium Viane &amp; Van den heede sec. Cyprus" doubtful="false" usenamecache="false"  name_id="388" sec_id="10" publish="true" acceptedtaxon_id="387"/>
-  <TaxonBase DTYPE="Taxon" id="394" created="2011-03-01 20:11:27.0" uuid="aff4fa6f-9aa8-463d-ac07-ec8a1925eb57" protectedtitlecache="false" titleCache="Asplenium viride Huds. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="394" sec_id="10" publish="true"/>
-
-  <LanguageString id="10"/>
-  <DescriptionBase/>
-  <DescriptionElementBase/>
-</dataset>
index da003bab828c604e66bf6cb30dd0d23da59b9249..1c9409b4f2030e04ec79e94472f04d440f48c4ae 100644 (file)
   
 -->
 <dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../cdm/database/schema/dataset.dtd">
-  <TaxonNode id="13" created="2010-12-21 15:09:43.0" uuid="0ac32f24-6d55-44ae-8519-c86c83faa938" countchildren="122"  classification_id="10" parent_id="4032" taxon_id="11" treeIndex="#t10#4032#13#" sortIndex="0" />
-  <TaxonNode id="49" created="2010-12-21 15:09:43.0" uuid="572290a9-7535-48c8-9f68-25ddbc9869ee" countchildren="10"  classification_id="10" parent_id="4032" taxon_id="49" treeIndex="#t10#4032#49#" sortIndex="1" />
-  <TaxonNode id="4032" created="2014-01-16 10:24:29.0" uuid="29b3fd3f-29b4-4011-ab12-9c1ad1607dbd" countchildren="2" classification_id="10" treeIndex="#t10#4032#"/>
+  <TaxonNode id="13" uuid="0ac32f24-6d55-44ae-8519-c86c83faa938" countchildren="122"  classification_id="10" parent_id="4032" taxon_id="11" treeIndex="#t10#4032#13#" sortIndex="0" />
+  <TaxonNode id="49" uuid="572290a9-7535-48c8-9f68-25ddbc9869ee" countchildren="10"  classification_id="10" parent_id="4032" taxon_id="49" treeIndex="#t10#4032#49#" sortIndex="1" />
+  <TaxonNode id="4032" uuid="29b3fd3f-29b4-4011-ab12-9c1ad1607dbd" countchildren="2" classification_id="10" treeIndex="#t10#4032#"/>
 
-  <Classification id="10" created="2010-12-21 15:09:43.0" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" updated="2015-06-09 07:10:42.0" protectedtitlecache="false" titleCache="Cyprus"  updatedby_id="10"   rootnode_id="4032"/>
+  <Classification id="10" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" protectedtitlecache="false" titleCache="Cyprus"  updatedby_id="10"   rootnode_id="4032"/>
 
-  <TaxonBase DTYPE="Taxon" id="11" created="2010-12-21 15:09:43.0" uuid="575347a4-fac0-4af7-8514-a4246b45fd7d" protectedtitlecache="false" titleCache="Spermatophyta sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="49" created="2010-12-21 15:09:43.0" uuid="1141a510-5ee8-4a59-ae60-7b4fea44872f" protectedtitlecache="false" titleCache="Pteridophyta sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="11" uuid="575347a4-fac0-4af7-8514-a4246b45fd7d" protectedtitlecache="false" titleCache="Spermatophyta sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="49" uuid="1141a510-5ee8-4a59-ae60-7b4fea44872f" protectedtitlecache="false" titleCache="Pteridophyta sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" publish="true"/>
 
   
 </dataset>
index 76003e365ad1cdc70db96b3732ca380fd1b29944..eb7ea742d614477a137529cd869f330ae2bf0005 100644 (file)
   
 -->
 <dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../cdm/database/schema/dataset.dtd">
-  <TaxonNode id="46" created="2010-12-21 15:09:43.0" uuid="168a4d09-a2b0-4206-b4cc-5d13199f9306" countchildren="0"   classification_id="10" parent_id="47" taxon_id="48"   treeIndex="#t10#4032#49#48#47#46#" sortIndex="0" />
-  <TaxonNode id="47" created="2010-12-21 15:09:43.0" uuid="2f05d429-632d-4230-b9cb-70299360b470" countchildren="1"   classification_id="10" parent_id="48" taxon_id="51"   treeIndex="#t10#4032#49#48#47#" sortIndex="0" />
-  <TaxonNode id="48" created="2010-12-21 15:09:43.0" uuid="24773d3b-8f11-4400-99de-71658982b245" countchildren="6"   classification_id="10" parent_id="49" taxon_id="2739" treeIndex="#t10#4032#49#48#" sortIndex="0" />
-  <TaxonNode id="49" created="2010-12-21 15:09:43.0" uuid="572290a9-7535-48c8-9f68-25ddbc9869ee" countchildren="10"   classification_id="10" parent_id="4032" taxon_id="49" treeIndex="#t10#4032#49#" sortIndex="0" />
-  <TaxonNode id="236" created="2010-12-21 15:09:45.0" uuid="f5d97f8b-c673-4050-af06-bbfab33baaec" countchildren="0"   classification_id="10" parent_id="237" taxon_id="264" treeIndex="#t10#4032#49#48#237#236#" sortIndex="0" />
-  <TaxonNode id="237" created="2010-12-21 15:09:45.0" uuid="4998de90-d0be-433b-a62f-0d57a1e399b0" countchildren="1"   classification_id="10" parent_id="48" taxon_id="265" treeIndex="#t10#4032#49#48#237#" sortIndex="1" />
-  <TaxonNode id="714" created="2010-12-21 15:09:48.0" uuid="b85b5b78-6760-409f-ac91-bb89e95ff2a1" countchildren="0"   classification_id="10" parent_id="715" taxon_id="812" treeIndex="#t10#4032#49#48#715#714#" sortIndex="0" />
-  <TaxonNode id="715" created="2010-12-21 15:09:48.0" uuid="91698cec-615f-4472-9002-feda1a6acded" countchildren="2"   classification_id="10" parent_id="48" taxon_id="814" treeIndex="#t10#4032#49#48#715#" sortIndex="2" />
-  <TaxonNode id="716" created="2010-12-21 15:09:48.0" uuid="6ad8e9e2-f5f6-41ad-aa30-f62a903650db" countchildren="0"   classification_id="10" parent_id="715" taxon_id="815" treeIndex="#t10#4032#49#48#715#716#" sortIndex="1" />
-  <TaxonNode id="828" created="2010-12-21 15:09:49.0" uuid="786622ba-cb2c-47f4-9eeb-65a6ebb7122b" countchildren="0"   classification_id="10" parent_id="829" taxon_id="946" treeIndex="#t10#4032#49#48#829#828#" sortIndex="0" />
-  <TaxonNode id="829" created="2010-12-21 15:09:49.0" uuid="4fe03763-b966-4361-8334-352f6f777588" countchildren="1"   classification_id="10" parent_id="48" taxon_id="948" treeIndex="#t10#4032#49#48#829#" sortIndex="3" />
-  <TaxonNode id="1915" created="2010-12-21 15:09:57.0" uuid="99f03b56-67cd-4e01-9ceb-2362d48f9d07" countchildren="0"   classification_id="10" parent_id="1916" taxon_id="2203" treeIndex="#t10#4032#49#48#1916#1915#" sortIndex="0" />
-  <TaxonNode id="1916" created="2010-12-21 15:09:57.0" uuid="d8998200-500f-4312-90f4-2b60e6fd3a78" countchildren="1"   classification_id="10" parent_id="48" taxon_id="2205" treeIndex="#t10#4032#49#48#1916#" sortIndex="4" />
-  <TaxonNode id="2354" created="2010-12-21 15:10:00.0" uuid="b8439f51-6b96-445a-b401-7a836ba1cf58" countchildren="0"   classification_id="10" parent_id="2355" taxon_id="2737" treeIndex="#t10#4032#49#48#2355#2354#" sortIndex="0" />
-  <TaxonNode id="2355" created="2010-12-21 15:10:00.0" uuid="6da4e5b6-ebc3-4c46-bdce-24161b7bd0e2" countchildren="1"   classification_id="10" parent_id="48" taxon_id="2738" treeIndex="#t10#4032#49#48#2355#" sortIndex="5" />
-  <TaxonNode id="4032" created="2014-01-16 10:24:29.0" uuid="29b3fd3f-29b4-4011-ab12-9c1ad1607dbd" countchildren="1" classification_id="10" treeIndex="#t10#4032#" />
+  <TaxonNode id="46" uuid="168a4d09-a2b0-4206-b4cc-5d13199f9306" countchildren="0"   classification_id="10" parent_id="47" taxon_id="48"   treeIndex="#t10#4032#49#48#47#46#" sortIndex="0" />
+  <TaxonNode id="47" uuid="2f05d429-632d-4230-b9cb-70299360b470" countchildren="1"   classification_id="10" parent_id="48" taxon_id="51"   treeIndex="#t10#4032#49#48#47#" sortIndex="0" />
+  <TaxonNode id="48" uuid="24773d3b-8f11-4400-99de-71658982b245" countchildren="6"   classification_id="10" parent_id="49" taxon_id="2739" treeIndex="#t10#4032#49#48#" sortIndex="0" />
+  <TaxonNode id="49" uuid="572290a9-7535-48c8-9f68-25ddbc9869ee" countchildren="10"   classification_id="10" parent_id="4032" taxon_id="49" treeIndex="#t10#4032#49#" sortIndex="0" />
+  <TaxonNode id="236" uuid="f5d97f8b-c673-4050-af06-bbfab33baaec" countchildren="0"   classification_id="10" parent_id="237" taxon_id="264" treeIndex="#t10#4032#49#48#237#236#" sortIndex="0" />
+  <TaxonNode id="237" uuid="4998de90-d0be-433b-a62f-0d57a1e399b0" countchildren="1"   classification_id="10" parent_id="48" taxon_id="265" treeIndex="#t10#4032#49#48#237#" sortIndex="1" />
+  <TaxonNode id="714" uuid="b85b5b78-6760-409f-ac91-bb89e95ff2a1" countchildren="0"   classification_id="10" parent_id="715" taxon_id="812" treeIndex="#t10#4032#49#48#715#714#" sortIndex="0" />
+  <TaxonNode id="715" uuid="91698cec-615f-4472-9002-feda1a6acded" countchildren="2"   classification_id="10" parent_id="48" taxon_id="814" treeIndex="#t10#4032#49#48#715#" sortIndex="2" />
+  <TaxonNode id="716" uuid="6ad8e9e2-f5f6-41ad-aa30-f62a903650db" countchildren="0"   classification_id="10" parent_id="715" taxon_id="815" treeIndex="#t10#4032#49#48#715#716#" sortIndex="1" />
+  <TaxonNode id="828" uuid="786622ba-cb2c-47f4-9eeb-65a6ebb7122b" countchildren="0"   classification_id="10" parent_id="829" taxon_id="946" treeIndex="#t10#4032#49#48#829#828#" sortIndex="0" />
+  <TaxonNode id="829" uuid="4fe03763-b966-4361-8334-352f6f777588" countchildren="1"   classification_id="10" parent_id="48" taxon_id="948" treeIndex="#t10#4032#49#48#829#" sortIndex="3" />
+  <TaxonNode id="1915" uuid="99f03b56-67cd-4e01-9ceb-2362d48f9d07" countchildren="0"   classification_id="10" parent_id="1916" taxon_id="2203" treeIndex="#t10#4032#49#48#1916#1915#" sortIndex="0" />
+  <TaxonNode id="1916" uuid="d8998200-500f-4312-90f4-2b60e6fd3a78" countchildren="1"   classification_id="10" parent_id="48" taxon_id="2205" treeIndex="#t10#4032#49#48#1916#" sortIndex="4" />
+  <TaxonNode id="2354" uuid="b8439f51-6b96-445a-b401-7a836ba1cf58" countchildren="0"   classification_id="10" parent_id="2355" taxon_id="2737" treeIndex="#t10#4032#49#48#2355#2354#" sortIndex="0" />
+  <TaxonNode id="2355" uuid="6da4e5b6-ebc3-4c46-bdce-24161b7bd0e2" countchildren="1"   classification_id="10" parent_id="48" taxon_id="2738" treeIndex="#t10#4032#49#48#2355#" sortIndex="5" />
+  <TaxonNode id="4032" uuid="29b3fd3f-29b4-4011-ab12-9c1ad1607dbd" countchildren="1" classification_id="10" treeIndex="#t10#4032#" />
 
-  <TAXONNAME NAMETYPE="ICNAFP" id="48" created="2010-12-21 15:09:43.0" uuid="7aceb517-2b91-46b9-a5a2-88b7e0fb3230" protectedtitlecache="false" titleCache="Adiantum capillus-veneris L." fullTitleCache="Adiantum capillus-veneris L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Adiantum" hybridformula="false" monomhybrid="false" namecache="Adiantum capillus-veneris" protectedauthorshipcache="false" protectednamecache="false" specificepithet="capillus-veneris" trinomhybrid="false" anamorphic="false"    rank_id="778" />
-  <TAXONNAME NAMETYPE="ICNAFP" id="49" created="2010-12-21 15:09:43.0" uuid="079fff38-ff2d-426b-a49e-70b0f1db6c31" protectedtitlecache="false" titleCache="Pteridophyta" fullTitleCache="Pteridophyta" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Pteridophyta" hybridformula="false" monomhybrid="false" namecache="Pteridophyta" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="810"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="51" created="2010-12-21 15:09:43.0" uuid="c8af63e0-7bd4-4fad-aa2d-3777cbe1210a" protectedtitlecache="false" titleCache="Adiantum" fullTitleCache="Adiantum" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Adiantum" hybridformula="false" monomhybrid="false" namecache="Adiantum" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="264" created="2010-12-21 15:09:45.0" uuid="b976da6a-dd84-4fcd-9a1b-9847afba1da2" protectedtitlecache="false" titleCache="Anogramma leptophylla (L.) Link" fullTitleCache="Anogramma leptophylla (L.) Link" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(L.) Link" binomhybrid="false" genusoruninomial="Anogramma" hybridformula="false" monomhybrid="false" namecache="Anogramma leptophylla" protectedauthorshipcache="false" protectednamecache="false" specificepithet="leptophylla" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
-  <TAXONNAME NAMETYPE="ICNAFP" id="265" created="2010-12-21 15:09:45.0" uuid="c7f1db22-20fb-4eeb-810b-d37c5593b95d" protectedtitlecache="false" titleCache="Anogramma" fullTitleCache="Anogramma" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Anogramma" hybridformula="false" monomhybrid="false" namecache="Anogramma" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="812" created="2010-12-21 15:09:48.0" uuid="16450a2d-2085-471f-804a-defcd43c03e4" protectedtitlecache="false" titleCache="Cheilanthes acrostica (Balb.) Tod." fullTitleCache="Cheilanthes acrostica (Balb.) Tod." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(Balb.) Tod." binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes acrostica" protectedauthorshipcache="false" protectednamecache="false" specificepithet="acrostica" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
-  <TAXONNAME NAMETYPE="ICNAFP" id="814" created="2010-12-21 15:09:48.0" uuid="bbb1c5be-5a0c-45e2-b8af-f37a80ccf858" protectedtitlecache="false" titleCache="Cheilanthes" fullTitleCache="Cheilanthes" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="815" created="2010-12-21 15:09:48.0" uuid="f04a9283-f856-4d28-b469-4a222472862b" protectedtitlecache="false" titleCache="Cheilanthes maderensis Lowe" fullTitleCache="Cheilanthes maderensis Lowe" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="Lowe" binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes maderensis" protectedauthorshipcache="false" protectednamecache="false" specificepithet="maderensis" trinomhybrid="false" anamorphic="false"    rank_id="778" />
-  <TAXONNAME NAMETYPE="ICNAFP" id="946" created="2010-12-21 15:09:49.0" uuid="e30ef44b-52e4-41ff-a68d-9912d3c537f1" protectedtitlecache="false" titleCache="Cosentinia vellea (Aiton) Tod." fullTitleCache="Cosentinia vellea (Aiton) Tod." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(Aiton) Tod." binomhybrid="false" genusoruninomial="Cosentinia" hybridformula="false" monomhybrid="false" namecache="Cosentinia vellea" protectedauthorshipcache="false" protectednamecache="false" specificepithet="vellea" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
-  <TAXONNAME NAMETYPE="ICNAFP" id="948" created="2010-12-21 15:09:49.0" uuid="21fda99e-0425-4f29-b7b2-196f8a51b054" protectedtitlecache="false" titleCache="Cosentinia" fullTitleCache="Cosentinia" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Cosentinia" hybridformula="false" monomhybrid="false" namecache="Cosentinia" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="2203" created="2010-12-21 15:09:57.0" uuid="8fe0bb4b-7687-4d32-8ff2-94e690980f81" protectedtitlecache="false" titleCache="Notholaena marantae (L.) Desv." fullTitleCache="Notholaena marantae (L.) Desv." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(L.) Desv." binomhybrid="false" genusoruninomial="Notholaena" hybridformula="false" monomhybrid="false" namecache="Notholaena marantae" protectedauthorshipcache="false" protectednamecache="false" specificepithet="marantae" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
-  <TAXONNAME NAMETYPE="ICNAFP" id="2205" created="2010-12-21 15:09:57.0" uuid="77b7934f-8f62-4798-b96a-f3d12bfd5ebf" protectedtitlecache="false" titleCache="Notholaena" fullTitleCache="Notholaena" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Notholaena" hybridformula="false" monomhybrid="false" namecache="Notholaena" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="2737" created="2010-12-21 15:10:00.0" uuid="25560d66-07a3-41ce-8244-36ca98638c71" protectedtitlecache="false" titleCache="Pteris vittata L." fullTitleCache="Pteris vittata L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris vittata" protectedauthorshipcache="false" protectednamecache="false" specificepithet="vittata" trinomhybrid="false" anamorphic="false"    rank_id="778" />
-  <TAXONNAME NAMETYPE="ICNAFP" id="2738" created="2010-12-21 15:10:00.0" uuid="a40593ce-e8cc-43bb-a391-2de988b09039" protectedtitlecache="false" titleCache="Pteris" fullTitleCache="Pteris" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="2739" created="2010-12-21 15:10:00.0" uuid="81e2f844-70a9-4b14-82c2-9c2ba3fdb24e" protectedtitlecache="false" titleCache="Pteris cretica L." fullTitleCache="Pteris cretica L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris cretica" protectedauthorshipcache="false" protectednamecache="false" specificepithet="cretica" trinomhybrid="false" anamorphic="false"    rank_id="778" />
+  <TAXONNAME NAMETYPE="ICNAFP" id="48" uuid="7aceb517-2b91-46b9-a5a2-88b7e0fb3230" protectedtitlecache="false" titleCache="Adiantum capillus-veneris L." fullTitleCache="Adiantum capillus-veneris L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Adiantum" hybridformula="false" monomhybrid="false" namecache="Adiantum capillus-veneris" protectedauthorshipcache="false" protectednamecache="false" specificepithet="capillus-veneris" trinomhybrid="false" anamorphic="false"    rank_id="778" />
+  <TAXONNAME NAMETYPE="ICNAFP" id="49" uuid="079fff38-ff2d-426b-a49e-70b0f1db6c31" protectedtitlecache="false" titleCache="Pteridophyta" fullTitleCache="Pteridophyta" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Pteridophyta" hybridformula="false" monomhybrid="false" namecache="Pteridophyta" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="810"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="51" uuid="c8af63e0-7bd4-4fad-aa2d-3777cbe1210a" protectedtitlecache="false" titleCache="Adiantum" fullTitleCache="Adiantum" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Adiantum" hybridformula="false" monomhybrid="false" namecache="Adiantum" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="264" uuid="b976da6a-dd84-4fcd-9a1b-9847afba1da2" protectedtitlecache="false" titleCache="Anogramma leptophylla (L.) Link" fullTitleCache="Anogramma leptophylla (L.) Link" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(L.) Link" binomhybrid="false" genusoruninomial="Anogramma" hybridformula="false" monomhybrid="false" namecache="Anogramma leptophylla" protectedauthorshipcache="false" protectednamecache="false" specificepithet="leptophylla" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
+  <TAXONNAME NAMETYPE="ICNAFP" id="265" uuid="c7f1db22-20fb-4eeb-810b-d37c5593b95d" protectedtitlecache="false" titleCache="Anogramma" fullTitleCache="Anogramma" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Anogramma" hybridformula="false" monomhybrid="false" namecache="Anogramma" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="812" uuid="16450a2d-2085-471f-804a-defcd43c03e4" protectedtitlecache="false" titleCache="Cheilanthes acrostica (Balb.) Tod." fullTitleCache="Cheilanthes acrostica (Balb.) Tod." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(Balb.) Tod." binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes acrostica" protectedauthorshipcache="false" protectednamecache="false" specificepithet="acrostica" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
+  <TAXONNAME NAMETYPE="ICNAFP" id="814" uuid="bbb1c5be-5a0c-45e2-b8af-f37a80ccf858" protectedtitlecache="false" titleCache="Cheilanthes" fullTitleCache="Cheilanthes" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="815" uuid="f04a9283-f856-4d28-b469-4a222472862b" protectedtitlecache="false" titleCache="Cheilanthes maderensis Lowe" fullTitleCache="Cheilanthes maderensis Lowe" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="Lowe" binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes maderensis" protectedauthorshipcache="false" protectednamecache="false" specificepithet="maderensis" trinomhybrid="false" anamorphic="false"    rank_id="778" />
+  <TAXONNAME NAMETYPE="ICNAFP" id="946" uuid="e30ef44b-52e4-41ff-a68d-9912d3c537f1" protectedtitlecache="false" titleCache="Cosentinia vellea (Aiton) Tod." fullTitleCache="Cosentinia vellea (Aiton) Tod." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(Aiton) Tod." binomhybrid="false" genusoruninomial="Cosentinia" hybridformula="false" monomhybrid="false" namecache="Cosentinia vellea" protectedauthorshipcache="false" protectednamecache="false" specificepithet="vellea" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
+  <TAXONNAME NAMETYPE="ICNAFP" id="948" uuid="21fda99e-0425-4f29-b7b2-196f8a51b054" protectedtitlecache="false" titleCache="Cosentinia" fullTitleCache="Cosentinia" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Cosentinia" hybridformula="false" monomhybrid="false" namecache="Cosentinia" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="2203" uuid="8fe0bb4b-7687-4d32-8ff2-94e690980f81" protectedtitlecache="false" titleCache="Notholaena marantae (L.) Desv." fullTitleCache="Notholaena marantae (L.) Desv." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(L.) Desv." binomhybrid="false" genusoruninomial="Notholaena" hybridformula="false" monomhybrid="false" namecache="Notholaena marantae" protectedauthorshipcache="false" protectednamecache="false" specificepithet="marantae" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
+  <TAXONNAME NAMETYPE="ICNAFP" id="2205" uuid="77b7934f-8f62-4798-b96a-f3d12bfd5ebf" protectedtitlecache="false" titleCache="Notholaena" fullTitleCache="Notholaena" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Notholaena" hybridformula="false" monomhybrid="false" namecache="Notholaena" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="2737" uuid="25560d66-07a3-41ce-8244-36ca98638c71" protectedtitlecache="false" titleCache="Pteris vittata L." fullTitleCache="Pteris vittata L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris vittata" protectedauthorshipcache="false" protectednamecache="false" specificepithet="vittata" trinomhybrid="false" anamorphic="false"    rank_id="778" />
+  <TAXONNAME NAMETYPE="ICNAFP" id="2738" uuid="a40593ce-e8cc-43bb-a391-2de988b09039" protectedtitlecache="false" titleCache="Pteris" fullTitleCache="Pteris" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="2739" uuid="81e2f844-70a9-4b14-82c2-9c2ba3fdb24e" protectedtitlecache="false" titleCache="Pteris cretica L." fullTitleCache="Pteris cretica L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris cretica" protectedauthorshipcache="false" protectednamecache="false" specificepithet="cretica" trinomhybrid="false" anamorphic="false"    rank_id="778" />
    
-  <Classification id="10" created="2010-12-21 15:09:43.0" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" updated="2015-06-09 07:10:42.0" protectedtitlecache="false" titleCache="Cyprus"   updatedby_id="10" name_id="10"  rootnode_id="4032"/>
+  <Classification id="10" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" protectedtitlecache="false" titleCache="Cyprus"   updatedby_id="10" name_id="10"  rootnode_id="4032"/>
 
-  <TaxonBase DTYPE="Taxon" id="48" created="2011-03-01 20:11:26.0" uuid="b8402dc4-5050-4882-a147-01b71e0e47d6" protectedtitlecache="false" titleCache="Adiantum capillus-veneris L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="48"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="49" created="2010-12-21 15:09:43.0" uuid="1141a510-5ee8-4a59-ae60-7b4fea44872f" protectedtitlecache="false" titleCache="Pteridophyta sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="49"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="51" created="2010-12-21 15:09:43.0" uuid="233cac41-bb05-4925-bb9e-ab0bdf330973" protectedtitlecache="false" titleCache="Adiantum sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="51"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="264" created="2011-03-01 20:11:27.0" uuid="d679c5d0-53b3-40fc-97e1-0646aad7ed23" protectedtitlecache="false" titleCache="Anogramma leptophylla (L.) Link sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="264"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="265" created="2010-12-21 15:09:45.0" uuid="1fc1d927-1155-4282-a9f5-f07202f79ace" protectedtitlecache="false" titleCache="Anogramma sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="265"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="812" created="2011-03-01 20:11:29.0" uuid="e40854d7-143f-4054-b229-6ed4cedb4bff" protectedtitlecache="false" titleCache="Cheilanthes acrostica (Balb.) Tod. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="812"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="814" created="2010-12-21 15:09:48.0" uuid="433ad11a-b931-49a4-8128-d6f4d454914a" protectedtitlecache="false" titleCache="Cheilanthes sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="814"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="815" created="2010-12-21 15:09:48.0" uuid="7ea2c74a-f2b2-41f6-acdf-1ca35f5d03f8" protectedtitlecache="false" titleCache="Cheilanthes maderensis Lowe sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="815"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="946" created="2011-03-01 20:11:30.0" uuid="ba21b018-97d2-42d7-af6c-5e8db8e495ff" protectedtitlecache="false" titleCache="Cosentinia vellea (Aiton) Tod. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="946"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="948" created="2010-12-21 15:09:49.0" uuid="a2768f6d-80f2-4e0c-a6e3-99b7a9f3bc9d" protectedtitlecache="false" titleCache="Cosentinia sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="948"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="2203" created="2011-03-01 20:11:36.0" uuid="d9a0c5d5-baee-4b6b-974a-a7de5affe748" protectedtitlecache="false" titleCache="Notholaena marantae (L.) Desv. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="2203"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="2205" created="2010-12-21 15:09:57.0" uuid="c221d34c-76b0-4fc7-9901-e72efd4c899b" protectedtitlecache="false" titleCache="Notholaena sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="2205"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="2737" created="2011-03-01 20:11:39.0" uuid="6b46ac55-3e39-4c37-a1b6-b680b21599b2" protectedtitlecache="false" titleCache="Pteris vittata L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="2737"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="2738" created="2010-12-21 15:10:00.0" uuid="8ac3dca2-6bbf-4cd4-84b7-53ddc2973ed8" protectedtitlecache="false" titleCache="Pteris sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="2738"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="2739" created="2010-12-21 15:10:00.0" uuid="79b45ff5-c17c-44ec-9114-fb6b3cd1aef4" protectedtitlecache="false" titleCache="Pteris cretica sec. Cyprus" doubtful="false" usenamecache="false" name_id="2739" publish="true" taxonstatusunknown="false"/>
+  <TaxonBase DTYPE="Taxon" id="48" uuid="b8402dc4-5050-4882-a147-01b71e0e47d6" protectedtitlecache="false" titleCache="Adiantum capillus-veneris L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="48"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="49" uuid="1141a510-5ee8-4a59-ae60-7b4fea44872f" protectedtitlecache="false" titleCache="Pteridophyta sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="49"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="51" uuid="233cac41-bb05-4925-bb9e-ab0bdf330973" protectedtitlecache="false" titleCache="Adiantum sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="51"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="264" uuid="d679c5d0-53b3-40fc-97e1-0646aad7ed23" protectedtitlecache="false" titleCache="Anogramma leptophylla (L.) Link sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="264"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="265" uuid="1fc1d927-1155-4282-a9f5-f07202f79ace" protectedtitlecache="false" titleCache="Anogramma sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="265"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="812" uuid="e40854d7-143f-4054-b229-6ed4cedb4bff" protectedtitlecache="false" titleCache="Cheilanthes acrostica (Balb.) Tod. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="812"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="814" uuid="433ad11a-b931-49a4-8128-d6f4d454914a" protectedtitlecache="false" titleCache="Cheilanthes sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="814"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="815" uuid="7ea2c74a-f2b2-41f6-acdf-1ca35f5d03f8" protectedtitlecache="false" titleCache="Cheilanthes maderensis Lowe sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="815"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="946" uuid="ba21b018-97d2-42d7-af6c-5e8db8e495ff" protectedtitlecache="false" titleCache="Cosentinia vellea (Aiton) Tod. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="946"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="948" uuid="a2768f6d-80f2-4e0c-a6e3-99b7a9f3bc9d" protectedtitlecache="false" titleCache="Cosentinia sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="948"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="2203" uuid="d9a0c5d5-baee-4b6b-974a-a7de5affe748" protectedtitlecache="false" titleCache="Notholaena marantae (L.) Desv. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="2203"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="2205" uuid="c221d34c-76b0-4fc7-9901-e72efd4c899b" protectedtitlecache="false" titleCache="Notholaena sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="2205"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="2737" uuid="6b46ac55-3e39-4c37-a1b6-b680b21599b2" protectedtitlecache="false" titleCache="Pteris vittata L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="2737"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="2738" uuid="8ac3dca2-6bbf-4cd4-84b7-53ddc2973ed8" protectedtitlecache="false" titleCache="Pteris sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false"   name_id="2738"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="2739" uuid="79b45ff5-c17c-44ec-9114-fb6b3cd1aef4" protectedtitlecache="false" titleCache="Pteris cretica sec. Cyprus" doubtful="false" usenamecache="false" name_id="2739" publish="true" taxonstatusunknown="false"/>
 
-  <DescriptionBase DTYPE="TaxonDescription" id="28" uuid="f04f8f66-ad92-42d0-89bc-04ac5b36163c" updated="2011-03-01 19:20:45.0" protectedtitlecache="false" titleCache="Taxon description for Adiantum capillus-veneris L." imagegallery="false"   taxon_id="48" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="149" uuid="24df0fca-bfc4-4f0f-a269-336985ed6e5e" updated="2011-03-01 19:20:46.0" protectedtitlecache="false" titleCache="Taxon description for Anogramma leptophylla (L.) Link" imagegallery="false"   taxon_id="264" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="447" uuid="01863b86-c6ae-48b8-a8da-f693be9087da" updated="2011-03-01 19:20:48.0" protectedtitlecache="false" titleCache="Taxon description for Cheilanthes acrostica (Balbis) Tod." imagegallery="false"   taxon_id="812" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="448" uuid="aac7b184-e622-409b-8eda-e14998b9021d" protectedtitlecache="false" titleCache="Taxon description for Cheilanthes maderensis Lowe" imagegallery="false"   taxon_id="815" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="521" uuid="2d672585-0f35-42f8-9923-dfd5545e6369" updated="2011-03-01 19:20:48.0" protectedtitlecache="false" titleCache="Taxon description for Cosentinia vellea (Aiton) Tod." imagegallery="false"   taxon_id="946" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="1234" uuid="a8a734c2-122b-4d5b-9c89-a852f4ab4661" updated="2011-03-01 19:20:53.0" protectedtitlecache="false" titleCache="Taxon description for Notholaena marantae (L.) Desv." imagegallery="false"   taxon_id="2203" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="1524" uuid="c4e66d46-e4fb-4da2-a432-3f1cf5353b81" updated="2011-03-01 19:20:55.0" protectedtitlecache="false" titleCache="Taxon description for Pteris vittata L." imagegallery="false"   taxon_id="2737" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="4567" uuid="dd0f7395-6162-4ce4-8ece-774011b09325" updated="2011-03-01 20:11:26.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Adiantum capillus-veneris L. sec. Cyprus" imagegallery="false" taxon_id="48" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="4627" uuid="34266202-eb5d-41ec-a0b2-da56deb11cc7" updated="2011-03-01 20:11:27.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Anogramma leptophylla (L.) Link sec. Cyprus" imagegallery="false" taxon_id="264" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="4798" uuid="504b0178-39e6-4c79-8e33-ca00b0662f27" updated="2011-03-01 20:11:29.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Cheilanthes acrostica (Balbis) Tod. sec. Cyprus" imagegallery="false" taxon_id="812" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="4840" uuid="73396d11-5d35-43fb-8b15-4d472bdcdd43" updated="2011-03-01 20:11:30.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Cosentinia vellea (Aiton) Tod. sec. Cyprus" imagegallery="false" taxon_id="946" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="5409" uuid="64a797b2-7f92-4012-a4f5-d76f8aaeb6b4" updated="2011-03-01 20:11:39.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Pteris vittata L. sec. Cyprus" imagegallery="false" taxon_id="2737" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="5974" uuid="71872861-8229-4cab-8042-b75dfa0e3f63" updated="2011-03-01 20:11:36.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Notholaena marantae (L.) Desv. sec. Cyprus" imagegallery="false" taxon_id="2203" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="11766" uuid="6b4be8a2-ea86-4815-bd31-b022055a90f2" protectedtitlecache="false" titleCache="Image gallery for Pteris vittata L." imagegallery="true"   taxon_id="2737" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="12353" uuid="b8d3a151-032e-48d9-9191-d7b8fb1fe1a0" protectedtitlecache="false" titleCache="Image gallery for Cheilanthes acrostica (Balbis) Tod." imagegallery="true"   taxon_id="812" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="12713" uuid="61fbdc1b-80bf-4aea-b6cb-8f4d466bd923" protectedtitlecache="false" titleCache="Image gallery for Adiantum capillus-veneris L." imagegallery="true"   taxon_id="48" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="13728" uuid="53b3125e-2a43-4433-a4dd-50dd9a4cf92c" updated="2014-02-28 19:20:29.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="48" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="13817" uuid="7b108193-e689-417a-bcab-adaf6c49d532" updated="2014-02-28 19:20:34.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="264" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="14043" uuid="de29cc97-a160-4783-b996-b929157335d5" updated="2014-02-28 19:20:58.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="812" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="14101" uuid="815336d3-19d6-493d-9ea4-bcb320d1b922" updated="2014-02-28 19:21:08.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="946" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="14658" uuid="ce4068f8-17b0-46e2-9fbb-e8c16efb7255" updated="2014-02-28 19:23:51.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="2203" isDefault="false" types="#"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="14864" uuid="2d55f445-8e72-43d3-976a-133828e89599" updated="2014-02-28 19:25:21.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="2737" isDefault="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="28" uuid="f04f8f66-ad92-42d0-89bc-04ac5b36163c" protectedtitlecache="false" titleCache="Taxon description for Adiantum capillus-veneris L." imagegallery="false"   taxon_id="48" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="149" uuid="24df0fca-bfc4-4f0f-a269-336985ed6e5e" protectedtitlecache="false" titleCache="Taxon description for Anogramma leptophylla (L.) Link" imagegallery="false"   taxon_id="264" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="447" uuid="01863b86-c6ae-48b8-a8da-f693be9087da" protectedtitlecache="false" titleCache="Taxon description for Cheilanthes acrostica (Balbis) Tod." imagegallery="false"   taxon_id="812" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="448" uuid="aac7b184-e622-409b-8eda-e14998b9021d" protectedtitlecache="false" titleCache="Taxon description for Cheilanthes maderensis Lowe" imagegallery="false"   taxon_id="815" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="521" uuid="2d672585-0f35-42f8-9923-dfd5545e6369" protectedtitlecache="false" titleCache="Taxon description for Cosentinia vellea (Aiton) Tod." imagegallery="false"   taxon_id="946" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="1234" uuid="a8a734c2-122b-4d5b-9c89-a852f4ab4661" protectedtitlecache="false" titleCache="Taxon description for Notholaena marantae (L.) Desv." imagegallery="false"   taxon_id="2203" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="1524" uuid="c4e66d46-e4fb-4da2-a432-3f1cf5353b81" protectedtitlecache="false" titleCache="Taxon description for Pteris vittata L." imagegallery="false"   taxon_id="2737" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="4567" uuid="dd0f7395-6162-4ce4-8ece-774011b09325" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Adiantum capillus-veneris L. sec. Cyprus" imagegallery="false" taxon_id="48" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="4627" uuid="34266202-eb5d-41ec-a0b2-da56deb11cc7" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Anogramma leptophylla (L.) Link sec. Cyprus" imagegallery="false" taxon_id="264" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="4798" uuid="504b0178-39e6-4c79-8e33-ca00b0662f27" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Cheilanthes acrostica (Balbis) Tod. sec. Cyprus" imagegallery="false" taxon_id="812" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="4840" uuid="73396d11-5d35-43fb-8b15-4d472bdcdd43" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Cosentinia vellea (Aiton) Tod. sec. Cyprus" imagegallery="false" taxon_id="946" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="5409" uuid="64a797b2-7f92-4012-a4f5-d76f8aaeb6b4" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Pteris vittata L. sec. Cyprus" imagegallery="false" taxon_id="2737" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="5974" uuid="71872861-8229-4cab-8042-b75dfa0e3f63" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Notholaena marantae (L.) Desv. sec. Cyprus" imagegallery="false" taxon_id="2203" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="11766" uuid="6b4be8a2-ea86-4815-bd31-b022055a90f2" protectedtitlecache="false" titleCache="Image gallery for Pteris vittata L." imagegallery="true"   taxon_id="2737" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="12353" uuid="b8d3a151-032e-48d9-9191-d7b8fb1fe1a0" protectedtitlecache="false" titleCache="Image gallery for Cheilanthes acrostica (Balbis) Tod." imagegallery="true"   taxon_id="812" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="12713" uuid="61fbdc1b-80bf-4aea-b6cb-8f4d466bd923" protectedtitlecache="false" titleCache="Image gallery for Adiantum capillus-veneris L." imagegallery="true"   taxon_id="48" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="13728" uuid="53b3125e-2a43-4433-a4dd-50dd9a4cf92c" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="48" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="13817" uuid="7b108193-e689-417a-bcab-adaf6c49d532" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="264" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="14043" uuid="de29cc97-a160-4783-b996-b929157335d5" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="812" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="14101" uuid="815336d3-19d6-493d-9ea4-bcb320d1b922" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="946" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="14658" uuid="ce4068f8-17b0-46e2-9fbb-e8c16efb7255" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="2203" PUBLISH="true" ISDEFAULT="false" types="#"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="14864" uuid="2d55f445-8e72-43d3-976a-133828e89599" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="2737" PUBLISH="true" ISDEFAULT="false" types="#"/>
 
   <LanguageString id="10"/>
 </dataset>
index 8f87d1added8a777742a00a08e9b209595bbde90..5683b757abdd242a6bf1493a201d8ce52fb5ec48 100644 (file)
   
 -->
 <dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../cdm/database/schema/dataset.dtd">
-  <TaxonNode id="46" created="2010-12-21 15:09:43.0" uuid="168a4d09-a2b0-4206-b4cc-5d13199f9306" countchildren="0"   classification_id="10" parent_id="47" taxon_id="48" treeIndex="#t10#4032#49#48#47#46#" sortIndex="0"/>
-  <TaxonNode id="47" created="2010-12-21 15:09:43.0" uuid="2f05d429-632d-4230-b9cb-70299360b470" countchildren="1"   classification_id="10" parent_id="48" taxon_id="51" treeIndex="#t10#4032#49#48#47#" sortIndex="0"/>
-  <TaxonNode id="48" created="2010-12-21 15:09:43.0" uuid="24773d3b-8f11-4400-99de-71658982b245" countchildren="6"   classification_id="10" parent_id="49"  treeIndex="#t10#4032#49#48#" sortIndex="0"/>
-  <TaxonNode id="49" created="2010-12-21 15:09:43.0" uuid="572290a9-7535-48c8-9f68-25ddbc9869ee" countchildren="10"   classification_id="10" parent_id="4032" taxon_id="49" treeIndex="#t10#4032#49#" sortIndex="0"/>
-  <TaxonNode id="236" created="2010-12-21 15:09:45.0" uuid="f5d97f8b-c673-4050-af06-bbfab33baaec" countchildren="0"   classification_id="10" parent_id="237" taxon_id="264" treeIndex="#t10#4032#49#48#237#236#" sortIndex="0"/>
-  <TaxonNode id="237" created="2010-12-21 15:09:45.0" uuid="4998de90-d0be-433b-a62f-0d57a1e399b0" countchildren="1"   classification_id="10" parent_id="48" taxon_id="265" treeIndex="#t10#4032#49#48#237#" sortIndex="1"/>
-  <TaxonNode id="714" created="2010-12-21 15:09:48.0" uuid="b85b5b78-6760-409f-ac91-bb89e95ff2a1" countchildren="0"   classification_id="10" parent_id="715" taxon_id="812" treeIndex="#t10#4032#49#48#715#714#" sortIndex="0"/>
-  <TaxonNode id="715" created="2010-12-21 15:09:48.0" uuid="91698cec-615f-4472-9002-feda1a6acded" countchildren="2"   classification_id="10" parent_id="48" taxon_id="814" treeIndex="#t10#4032#49#48#715#" sortIndex="2"/>
-  <TaxonNode id="716" created="2010-12-21 15:09:48.0" uuid="6ad8e9e2-f5f6-41ad-aa30-f62a903650db" countchildren="0"   classification_id="10" parent_id="715" taxon_id="815" treeIndex="#t10#4032#49#48#715#716#" sortIndex="1"/>
-  <TaxonNode id="828" created="2010-12-21 15:09:49.0" uuid="786622ba-cb2c-47f4-9eeb-65a6ebb7122b" countchildren="0"   classification_id="10" parent_id="829" taxon_id="946" treeIndex="#t10#4032#49#48#829#828#" sortIndex="0"/>
-  <TaxonNode id="829" created="2010-12-21 15:09:49.0" uuid="4fe03763-b966-4361-8334-352f6f777588" countchildren="1"   classification_id="10" parent_id="48" taxon_id="948" treeIndex="#t10#4032#49#48#829#" sortIndex="3"/>
-  <TaxonNode id="1915" created="2010-12-21 15:09:57.0" uuid="99f03b56-67cd-4e01-9ceb-2362d48f9d07" countchildren="0"   classification_id="10" parent_id="1916" taxon_id="2203" treeIndex="#t10#4032#49#48#1916#1915#" sortIndex="0"/>
-  <TaxonNode id="1916" created="2010-12-21 15:09:57.0" uuid="d8998200-500f-4312-90f4-2b60e6fd3a78" countchildren="1"   classification_id="10" parent_id="48" taxon_id="2205" treeIndex="#t10#4032#49#48#1916#" sortIndex="4"/>
-  <TaxonNode id="2354" created="2010-12-21 15:10:00.0" uuid="b8439f51-6b96-445a-b401-7a836ba1cf58" countchildren="0"   classification_id="10" parent_id="2355" taxon_id="2737" treeIndex="#t10#4032#49#48#2355#2354#" sortIndex="0"/>
-  <TaxonNode id="2355" created="2010-12-21 15:10:00.0" uuid="6da4e5b6-ebc3-4c46-bdce-24161b7bd0e2" countchildren="1"   classification_id="10" parent_id="48" taxon_id="2738" treeIndex="#t10#4032#49#48#2355#" sortIndex="5"/>
-  <TaxonNode id="4032" created="2014-01-16 10:24:29.0" uuid="29b3fd3f-29b4-4011-ab12-9c1ad1607dbd" countchildren="1" classification_id="10" treeIndex="#t10#4032#"/>
+  <TaxonNode id="46" uuid="168a4d09-a2b0-4206-b4cc-5d13199f9306"  countchildren="0"   classification_id="10" parent_id="47" taxon_id="48"   treeIndex="#t10#4032#49#48#47#46#" sortIndex="0"/>
+  <TaxonNode id="47" uuid="2f05d429-632d-4230-b9cb-70299360b470"  countchildren="1"   classification_id="10" parent_id="48" taxon_id="51"   treeIndex="#t10#4032#49#48#47#" sortIndex="0"/>
+  <TaxonNode id="48" uuid="24773d3b-8f11-4400-99de-71658982b245"  countchildren="6"   classification_id="10" parent_id="49"                 treeIndex="#t10#4032#49#48#" sortIndex="0"/>
+  <TaxonNode id="49" uuid="572290a9-7535-48c8-9f68-25ddbc9869ee"  countchildren="10"  classification_id="10" parent_id="4032" taxon_id="49" treeIndex="#t10#4032#49#" sortIndex="0"/>
+  <TaxonNode id="236" uuid="f5d97f8b-c673-4050-af06-bbfab33baaec" countchildren="0"   classification_id="10" parent_id="237" taxon_id="264" treeIndex="#t10#4032#49#48#237#236#" sortIndex="0"/>
+  <TaxonNode id="237" uuid="4998de90-d0be-433b-a62f-0d57a1e399b0" countchildren="1"   classification_id="10" parent_id="48"  taxon_id="265" treeIndex="#t10#4032#49#48#237#" sortIndex="1"/>
+  <TaxonNode id="714" uuid="b85b5b78-6760-409f-ac91-bb89e95ff2a1" countchildren="0"   classification_id="10" parent_id="715" taxon_id="812" treeIndex="#t10#4032#49#48#715#714#" sortIndex="0"/>
+  <TaxonNode id="715" uuid="91698cec-615f-4472-9002-feda1a6acded" countchildren="2"   classification_id="10" parent_id="48"  taxon_id="814" treeIndex="#t10#4032#49#48#715#" sortIndex="2"/>
+  <TaxonNode id="716" uuid="6ad8e9e2-f5f6-41ad-aa30-f62a903650db" countchildren="0"   classification_id="10" parent_id="715" taxon_id="815" treeIndex="#t10#4032#49#48#715#716#" sortIndex="1"/>
+  <TaxonNode id="828" uuid="786622ba-cb2c-47f4-9eeb-65a6ebb7122b" countchildren="0"   classification_id="10" parent_id="829" taxon_id="946" treeIndex="#t10#4032#49#48#829#828#" sortIndex="0"/>
+  <TaxonNode id="829" uuid="4fe03763-b966-4361-8334-352f6f777588" countchildren="1"   classification_id="10" parent_id="48"  taxon_id="948" treeIndex="#t10#4032#49#48#829#" sortIndex="3"/>
+  <TaxonNode id="1915" uuid="99f03b56-67cd-4e01-9ceb-2362d48f9d07" countchildren="0"  classification_id="10" parent_id="1916" taxon_id="2203" treeIndex="#t10#4032#49#48#1916#1915#" sortIndex="0"/>
+  <TaxonNode id="1916" uuid="d8998200-500f-4312-90f4-2b60e6fd3a78" countchildren="1"  classification_id="10" parent_id="48"  taxon_id="2205" treeIndex="#t10#4032#49#48#1916#" sortIndex="4"/>
+  <TaxonNode id="2354" uuid="b8439f51-6b96-445a-b401-7a836ba1cf58" countchildren="0"  classification_id="10" parent_id="2355" taxon_id="2737" treeIndex="#t10#4032#49#48#2355#2354#" sortIndex="0"/>
+  <TaxonNode id="2355" uuid="6da4e5b6-ebc3-4c46-bdce-24161b7bd0e2" countchildren="1"  classification_id="10" parent_id="48"  taxon_id="2738" treeIndex="#t10#4032#49#48#2355#" sortIndex="5"/>
+  <TaxonNode id="4032" uuid="29b3fd3f-29b4-4011-ab12-9c1ad1607dbd" countchildren="1"  classification_id="10" treeIndex="#t10#4032#"/>
 
-  <TAXONNAME NAMETYPE="ICNAFP" id="48" created="2010-12-21 15:09:43.0" uuid="7aceb517-2b91-46b9-a5a2-88b7e0fb3230" protectedtitlecache="false" titleCache="Adiantum capillus-veneris L." fullTitleCache="Adiantum capillus-veneris L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Adiantum" hybridformula="false" monomhybrid="false" namecache="Adiantum capillus-veneris" protectedauthorshipcache="false" protectednamecache="false" specificepithet="capillus-veneris" trinomhybrid="false" anamorphic="false"    rank_id="778" />
-  <TAXONNAME NAMETYPE="ICNAFP" id="49" created="2010-12-21 15:09:43.0" uuid="079fff38-ff2d-426b-a49e-70b0f1db6c31" protectedtitlecache="false" titleCache="Pteridophyta" fullTitleCache="Pteridophyta" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Pteridophyta" hybridformula="false" monomhybrid="false" namecache="Pteridophyta" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="810"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="51" created="2010-12-21 15:09:43.0" uuid="c8af63e0-7bd4-4fad-aa2d-3777cbe1210a" protectedtitlecache="false" titleCache="Adiantum" fullTitleCache="Adiantum" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Adiantum" hybridformula="false" monomhybrid="false" namecache="Adiantum" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="264" created="2010-12-21 15:09:45.0" uuid="b976da6a-dd84-4fcd-9a1b-9847afba1da2" protectedtitlecache="false" titleCache="Anogramma leptophylla (L.) Link" fullTitleCache="Anogramma leptophylla (L.) Link" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(L.) Link" binomhybrid="false" genusoruninomial="Anogramma" hybridformula="false" monomhybrid="false" namecache="Anogramma leptophylla" protectedauthorshipcache="false" protectednamecache="false" specificepithet="leptophylla" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
-  <TAXONNAME NAMETYPE="ICNAFP" id="265" created="2010-12-21 15:09:45.0" uuid="c7f1db22-20fb-4eeb-810b-d37c5593b95d" protectedtitlecache="false" titleCache="Anogramma" fullTitleCache="Anogramma" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Anogramma" hybridformula="false" monomhybrid="false" namecache="Anogramma" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="812" created="2010-12-21 15:09:48.0" uuid="16450a2d-2085-471f-804a-defcd43c03e4" protectedtitlecache="false" titleCache="Cheilanthes acrostica (Balb.) Tod." fullTitleCache="Cheilanthes acrostica (Balb.) Tod." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(Balb.) Tod." binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes acrostica" protectedauthorshipcache="false" protectednamecache="false" specificepithet="acrostica" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
-  <TAXONNAME NAMETYPE="ICNAFP" id="814" created="2010-12-21 15:09:48.0" uuid="bbb1c5be-5a0c-45e2-b8af-f37a80ccf858" protectedtitlecache="false" titleCache="Cheilanthes" fullTitleCache="Cheilanthes" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="815" created="2010-12-21 15:09:48.0" uuid="f04a9283-f856-4d28-b469-4a222472862b" protectedtitlecache="false" titleCache="Cheilanthes maderensis Lowe" fullTitleCache="Cheilanthes maderensis Lowe" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="Lowe" binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes maderensis" protectedauthorshipcache="false" protectednamecache="false" specificepithet="maderensis" trinomhybrid="false" anamorphic="false"    rank_id="778" />
-  <TAXONNAME NAMETYPE="ICNAFP" id="946" created="2010-12-21 15:09:49.0" uuid="e30ef44b-52e4-41ff-a68d-9912d3c537f1" protectedtitlecache="false" titleCache="Cosentinia vellea (Aiton) Tod." fullTitleCache="Cosentinia vellea (Aiton) Tod." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(Aiton) Tod." binomhybrid="false" genusoruninomial="Cosentinia" hybridformula="false" monomhybrid="false" namecache="Cosentinia vellea" protectedauthorshipcache="false" protectednamecache="false" specificepithet="vellea" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
-  <TAXONNAME NAMETYPE="ICNAFP" id="948" created="2010-12-21 15:09:49.0" uuid="21fda99e-0425-4f29-b7b2-196f8a51b054" protectedtitlecache="false" titleCache="Cosentinia" fullTitleCache="Cosentinia" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Cosentinia" hybridformula="false" monomhybrid="false" namecache="Cosentinia" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="2203" created="2010-12-21 15:09:57.0" uuid="8fe0bb4b-7687-4d32-8ff2-94e690980f81" protectedtitlecache="false" titleCache="Notholaena marantae (L.) Desv." fullTitleCache="Notholaena marantae (L.) Desv." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(L.) Desv." binomhybrid="false" genusoruninomial="Notholaena" hybridformula="false" monomhybrid="false" namecache="Notholaena marantae" protectedauthorshipcache="false" protectednamecache="false" specificepithet="marantae" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
-  <TAXONNAME NAMETYPE="ICNAFP" id="2205" created="2010-12-21 15:09:57.0" uuid="77b7934f-8f62-4798-b96a-f3d12bfd5ebf" protectedtitlecache="false" titleCache="Notholaena" fullTitleCache="Notholaena" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Notholaena" hybridformula="false" monomhybrid="false" namecache="Notholaena" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
-  <TAXONNAME NAMETYPE="ICNAFP" id="2737" created="2010-12-21 15:10:00.0" uuid="25560d66-07a3-41ce-8244-36ca98638c71" protectedtitlecache="false" titleCache="Pteris vittata L." fullTitleCache="Pteris vittata L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris vittata" protectedauthorshipcache="false" protectednamecache="false" specificepithet="vittata" trinomhybrid="false" anamorphic="false"    rank_id="778" />
-  <TAXONNAME NAMETYPE="ICNAFP" id="2738" created="2010-12-21 15:10:00.0" uuid="a40593ce-e8cc-43bb-a391-2de988b09039" protectedtitlecache="false" titleCache="Pteris" fullTitleCache="Pteris" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="48" uuid="7aceb517-2b91-46b9-a5a2-88b7e0fb3230" protectedtitlecache="false" titleCache="Adiantum capillus-veneris L." fullTitleCache="Adiantum capillus-veneris L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Adiantum" hybridformula="false" monomhybrid="false" namecache="Adiantum capillus-veneris" protectedauthorshipcache="false" protectednamecache="false" specificepithet="capillus-veneris" trinomhybrid="false" anamorphic="false"    rank_id="778" />
+  <TAXONNAME NAMETYPE="ICNAFP" id="49" uuid="079fff38-ff2d-426b-a49e-70b0f1db6c31" protectedtitlecache="false" titleCache="Pteridophyta" fullTitleCache="Pteridophyta" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Pteridophyta" hybridformula="false" monomhybrid="false" namecache="Pteridophyta" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="810"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="51" uuid="c8af63e0-7bd4-4fad-aa2d-3777cbe1210a" protectedtitlecache="false" titleCache="Adiantum" fullTitleCache="Adiantum" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Adiantum" hybridformula="false" monomhybrid="false" namecache="Adiantum" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="264" uuid="b976da6a-dd84-4fcd-9a1b-9847afba1da2" protectedtitlecache="false" titleCache="Anogramma leptophylla (L.) Link" fullTitleCache="Anogramma leptophylla (L.) Link" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(L.) Link" binomhybrid="false" genusoruninomial="Anogramma" hybridformula="false" monomhybrid="false" namecache="Anogramma leptophylla" protectedauthorshipcache="false" protectednamecache="false" specificepithet="leptophylla" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
+  <TAXONNAME NAMETYPE="ICNAFP" id="265" uuid="c7f1db22-20fb-4eeb-810b-d37c5593b95d" protectedtitlecache="false" titleCache="Anogramma" fullTitleCache="Anogramma" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Anogramma" hybridformula="false" monomhybrid="false" namecache="Anogramma" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="812" uuid="16450a2d-2085-471f-804a-defcd43c03e4" protectedtitlecache="false" titleCache="Cheilanthes acrostica (Balb.) Tod." fullTitleCache="Cheilanthes acrostica (Balb.) Tod." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(Balb.) Tod." binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes acrostica" protectedauthorshipcache="false" protectednamecache="false" specificepithet="acrostica" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
+  <TAXONNAME NAMETYPE="ICNAFP" id="814" uuid="bbb1c5be-5a0c-45e2-b8af-f37a80ccf858" protectedtitlecache="false" titleCache="Cheilanthes" fullTitleCache="Cheilanthes" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="815" uuid="f04a9283-f856-4d28-b469-4a222472862b" protectedtitlecache="false" titleCache="Cheilanthes maderensis Lowe" fullTitleCache="Cheilanthes maderensis Lowe" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="Lowe" binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes maderensis" protectedauthorshipcache="false" protectednamecache="false" specificepithet="maderensis" trinomhybrid="false" anamorphic="false"    rank_id="778" />
+  <TAXONNAME NAMETYPE="ICNAFP" id="946" uuid="e30ef44b-52e4-41ff-a68d-9912d3c537f1" protectedtitlecache="false" titleCache="Cosentinia vellea (Aiton) Tod." fullTitleCache="Cosentinia vellea (Aiton) Tod." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(Aiton) Tod." binomhybrid="false" genusoruninomial="Cosentinia" hybridformula="false" monomhybrid="false" namecache="Cosentinia vellea" protectedauthorshipcache="false" protectednamecache="false" specificepithet="vellea" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
+  <TAXONNAME NAMETYPE="ICNAFP" id="948" uuid="21fda99e-0425-4f29-b7b2-196f8a51b054" protectedtitlecache="false" titleCache="Cosentinia" fullTitleCache="Cosentinia" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Cosentinia" hybridformula="false" monomhybrid="false" namecache="Cosentinia" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="2203" uuid="8fe0bb4b-7687-4d32-8ff2-94e690980f81" protectedtitlecache="false" titleCache="Notholaena marantae (L.) Desv." fullTitleCache="Notholaena marantae (L.) Desv." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(L.) Desv." binomhybrid="false" genusoruninomial="Notholaena" hybridformula="false" monomhybrid="false" namecache="Notholaena marantae" protectedauthorshipcache="false" protectednamecache="false" specificepithet="marantae" trinomhybrid="false" anamorphic="false"    rank_id="778"  />
+  <TAXONNAME NAMETYPE="ICNAFP" id="2205" uuid="77b7934f-8f62-4798-b96a-f3d12bfd5ebf" protectedtitlecache="false" titleCache="Notholaena" fullTitleCache="Notholaena" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Notholaena" hybridformula="false" monomhybrid="false" namecache="Notholaena" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
+  <TAXONNAME NAMETYPE="ICNAFP" id="2737" uuid="25560d66-07a3-41ce-8244-36ca98638c71" protectedtitlecache="false" titleCache="Pteris vittata L." fullTitleCache="Pteris vittata L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris vittata" protectedauthorshipcache="false" protectednamecache="false" specificepithet="vittata" trinomhybrid="false" anamorphic="false"    rank_id="778" />
+  <TAXONNAME NAMETYPE="ICNAFP" id="2738" uuid="a40593ce-e8cc-43bb-a391-2de988b09039" protectedtitlecache="false" titleCache="Pteris" fullTitleCache="Pteris" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false"    rank_id="788"/>
 
-  <Classification id="10" created="2010-12-21 15:09:43.0" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" updated="2015-06-09 07:10:42.0" protectedtitlecache="false" titleCache="Cyprus"   updatedby_id="10" name_id="10"  rootnode_id="4032"/>
+  <Classification id="10" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" protectedtitlecache="false" titleCache="Cyprus"   updatedby_id="10" name_id="10"  rootnode_id="4032"/>
 
-  <TaxonBase DTYPE="Taxon" id="48" created="2011-03-01 20:11:26.0" uuid="b8402dc4-5050-4882-a147-01b71e0e47d6" protectedtitlecache="false" titleCache="Adiantum capillus-veneris L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="48"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="49" created="2010-12-21 15:09:43.0" uuid="1141a510-5ee8-4a59-ae60-7b4fea44872f" protectedtitlecache="false" titleCache="Pteridophyta sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="49"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="51" created="2010-12-21 15:09:43.0" uuid="233cac41-bb05-4925-bb9e-ab0bdf330973" protectedtitlecache="false" titleCache="Adiantum sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="51"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="264" created="2011-03-01 20:11:27.0" uuid="d679c5d0-53b3-40fc-97e1-0646aad7ed23" protectedtitlecache="false" titleCache="Anogramma leptophylla (L.) Link sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="264"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="265" created="2010-12-21 15:09:45.0" uuid="1fc1d927-1155-4282-a9f5-f07202f79ace" protectedtitlecache="false" titleCache="Anogramma sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="265"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="812" created="2011-03-01 20:11:29.0" uuid="e40854d7-143f-4054-b229-6ed4cedb4bff" protectedtitlecache="false" titleCache="Cheilanthes acrostica (Balb.) Tod. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="812"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="814" created="2010-12-21 15:09:48.0" uuid="433ad11a-b931-49a4-8128-d6f4d454914a" protectedtitlecache="false" titleCache="Cheilanthes sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="814"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="815" created="2010-12-21 15:09:48.0" uuid="7ea2c74a-f2b2-41f6-acdf-1ca35f5d03f8" protectedtitlecache="false" titleCache="Cheilanthes maderensis Lowe sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="815"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="946" created="2011-03-01 20:11:30.0" uuid="ba21b018-97d2-42d7-af6c-5e8db8e495ff" protectedtitlecache="false" titleCache="Cosentinia vellea (Aiton) Tod. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="946"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="948" created="2010-12-21 15:09:49.0" uuid="a2768f6d-80f2-4e0c-a6e3-99b7a9f3bc9d" protectedtitlecache="false" titleCache="Cosentinia sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="948"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="2203" created="2011-03-01 20:11:36.0" uuid="d9a0c5d5-baee-4b6b-974a-a7de5affe748" protectedtitlecache="false" titleCache="Notholaena marantae (L.) Desv. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="2203"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="2205" created="2010-12-21 15:09:57.0" uuid="c221d34c-76b0-4fc7-9901-e72efd4c899b" protectedtitlecache="false" titleCache="Notholaena sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="2205"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="2737" created="2011-03-01 20:11:39.0" uuid="6b46ac55-3e39-4c37-a1b6-b680b21599b2" protectedtitlecache="false" titleCache="Pteris vittata L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="2737"  publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="2738" created="2010-12-21 15:10:00.0" uuid="8ac3dca2-6bbf-4cd4-84b7-53ddc2973ed8" protectedtitlecache="false" titleCache="Pteris sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="2738"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="48" uuid="b8402dc4-5050-4882-a147-01b71e0e47d6" protectedtitlecache="false" titleCache="Adiantum capillus-veneris L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="48"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="49" uuid="1141a510-5ee8-4a59-ae60-7b4fea44872f" protectedtitlecache="false" titleCache="Pteridophyta sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="49"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="51" uuid="233cac41-bb05-4925-bb9e-ab0bdf330973" protectedtitlecache="false" titleCache="Adiantum sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="51"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="264" uuid="d679c5d0-53b3-40fc-97e1-0646aad7ed23" protectedtitlecache="false" titleCache="Anogramma leptophylla (L.) Link sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="264"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="265" uuid="1fc1d927-1155-4282-a9f5-f07202f79ace" protectedtitlecache="false" titleCache="Anogramma sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="265"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="812" uuid="e40854d7-143f-4054-b229-6ed4cedb4bff" protectedtitlecache="false" titleCache="Cheilanthes acrostica (Balb.) Tod. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="812"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="814" uuid="433ad11a-b931-49a4-8128-d6f4d454914a" protectedtitlecache="false" titleCache="Cheilanthes sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="814"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="815" uuid="7ea2c74a-f2b2-41f6-acdf-1ca35f5d03f8" protectedtitlecache="false" titleCache="Cheilanthes maderensis Lowe sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="815"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="946" uuid="ba21b018-97d2-42d7-af6c-5e8db8e495ff" protectedtitlecache="false" titleCache="Cosentinia vellea (Aiton) Tod. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="946"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="948" uuid="a2768f6d-80f2-4e0c-a6e3-99b7a9f3bc9d" protectedtitlecache="false" titleCache="Cosentinia sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="948"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="2203" uuid="d9a0c5d5-baee-4b6b-974a-a7de5affe748" protectedtitlecache="false" titleCache="Notholaena marantae (L.) Desv. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="2203"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="2205" uuid="c221d34c-76b0-4fc7-9901-e72efd4c899b" protectedtitlecache="false" titleCache="Notholaena sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="2205"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="2737" uuid="6b46ac55-3e39-4c37-a1b6-b680b21599b2" protectedtitlecache="false" titleCache="Pteris vittata L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="2737"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="2738" uuid="8ac3dca2-6bbf-4cd4-84b7-53ddc2973ed8" protectedtitlecache="false" titleCache="Pteris sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="2738"  publish="true"/>
 
-  <DescriptionBase DTYPE="TaxonDescription" id="28" created="2010-12-21 15:09:43.0" uuid="f04f8f66-ad92-42d0-89bc-04ac5b36163c" updated="2011-03-01 19:20:45.0" protectedtitlecache="false" titleCache="Taxon description for Adiantum capillus-veneris L." imagegallery="false"   taxon_id="48" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="149" created="2010-12-21 15:09:45.0" uuid="24df0fca-bfc4-4f0f-a269-336985ed6e5e" updated="2011-03-01 19:20:46.0" protectedtitlecache="false" titleCache="Taxon description for Anogramma leptophylla (L.) Link" imagegallery="false"   taxon_id="264" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="447" created="2010-12-21 15:09:48.0" uuid="01863b86-c6ae-48b8-a8da-f693be9087da" updated="2011-03-01 19:20:48.0" protectedtitlecache="false" titleCache="Taxon description for Cheilanthes acrostica (Balbis) Tod." imagegallery="false"   taxon_id="812" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="448" created="2010-12-21 15:09:48.0" uuid="aac7b184-e622-409b-8eda-e14998b9021d" protectedtitlecache="false" titleCache="Taxon description for Cheilanthes maderensis Lowe" imagegallery="false"   taxon_id="815" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="521" created="2010-12-21 15:09:49.0" uuid="2d672585-0f35-42f8-9923-dfd5545e6369" updated="2011-03-01 19:20:48.0" protectedtitlecache="false" titleCache="Taxon description for Cosentinia vellea (Aiton) Tod." imagegallery="false"   taxon_id="946" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="1234" created="2010-12-21 15:09:57.0" uuid="a8a734c2-122b-4d5b-9c89-a852f4ab4661" updated="2011-03-01 19:20:53.0" protectedtitlecache="false" titleCache="Taxon description for Notholaena marantae (L.) Desv." imagegallery="false"   taxon_id="2203" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="1524" created="2010-12-21 15:10:00.0" uuid="c4e66d46-e4fb-4da2-a432-3f1cf5353b81" updated="2011-03-01 19:20:55.0" protectedtitlecache="false" titleCache="Taxon description for Pteris vittata L." imagegallery="false"   taxon_id="2737" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="4567" created="2011-03-01 19:20:45.0" uuid="dd0f7395-6162-4ce4-8ece-774011b09325" updated="2011-03-01 20:11:26.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Adiantum capillus-veneris L. sec. Cyprus" imagegallery="false" taxon_id="48" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="4627" created="2011-03-01 19:20:46.0" uuid="34266202-eb5d-41ec-a0b2-da56deb11cc7" updated="2011-03-01 20:11:27.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Anogramma leptophylla (L.) Link sec. Cyprus" imagegallery="false" taxon_id="264" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="4798" created="2011-03-01 19:20:48.0" uuid="504b0178-39e6-4c79-8e33-ca00b0662f27" updated="2011-03-01 20:11:29.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Cheilanthes acrostica (Balbis) Tod. sec. Cyprus" imagegallery="false" taxon_id="812" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="4840" created="2011-03-01 19:20:48.0" uuid="73396d11-5d35-43fb-8b15-4d472bdcdd43" updated="2011-03-01 20:11:30.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Cosentinia vellea (Aiton) Tod. sec. Cyprus" imagegallery="false" taxon_id="946" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="5409" created="2011-03-01 19:20:55.0" uuid="64a797b2-7f92-4012-a4f5-d76f8aaeb6b4" updated="2011-03-01 20:11:39.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Pteris vittata L. sec. Cyprus" imagegallery="false" taxon_id="2737" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="5974" created="2011-03-01 19:20:53.0" uuid="71872861-8229-4cab-8042-b75dfa0e3f63" updated="2011-03-01 20:11:36.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Notholaena marantae (L.) Desv. sec. Cyprus" imagegallery="false" taxon_id="2203" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="11766" created="2012-07-30 15:39:44.0" uuid="6b4be8a2-ea86-4815-bd31-b022055a90f2" protectedtitlecache="false" titleCache="Image gallery for Pteris vittata L." imagegallery="true"   taxon_id="2737" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="12353" created="2012-12-03 12:21:48.0" uuid="b8d3a151-032e-48d9-9191-d7b8fb1fe1a0" protectedtitlecache="false" titleCache="Image gallery for Cheilanthes acrostica (Balbis) Tod." imagegallery="true"   taxon_id="812" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="12713" created="2013-02-10 21:43:33.0" uuid="61fbdc1b-80bf-4aea-b6cb-8f4d466bd923" protectedtitlecache="false" titleCache="Image gallery for Adiantum capillus-veneris L." imagegallery="true"   taxon_id="48" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="13728" created="2014-02-28 19:20:29.0" uuid="53b3125e-2a43-4433-a4dd-50dd9a4cf92c" updated="2014-02-28 19:20:29.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="48" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="13817" created="2014-02-28 19:20:34.0" uuid="7b108193-e689-417a-bcab-adaf6c49d532" updated="2014-02-28 19:20:34.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="264" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="14043" created="2014-02-28 19:20:58.0" uuid="de29cc97-a160-4783-b996-b929157335d5" updated="2014-02-28 19:20:58.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="812" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="14101" created="2014-02-28 19:21:07.0" uuid="815336d3-19d6-493d-9ea4-bcb320d1b922" updated="2014-02-28 19:21:08.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="946" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="14658" created="2014-02-28 19:23:51.0" uuid="ce4068f8-17b0-46e2-9fbb-e8c16efb7255" updated="2014-02-28 19:23:51.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="2203" isDefault="false"/>
-  <DescriptionBase DTYPE="TaxonDescription" id="14864" created="2014-02-28 19:25:21.0" uuid="2d55f445-8e72-43d3-976a-133828e89599" updated="2014-02-28 19:25:21.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="2737" isDefault="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="28" uuid="f04f8f66-ad92-42d0-89bc-04ac5b36163c" protectedtitlecache="false" titleCache="Taxon description for Adiantum capillus-veneris L." imagegallery="false"   taxon_id="48" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="149" uuid="24df0fca-bfc4-4f0f-a269-336985ed6e5e" protectedtitlecache="false" titleCache="Taxon description for Anogramma leptophylla (L.) Link" imagegallery="false"   taxon_id="264" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="447" uuid="01863b86-c6ae-48b8-a8da-f693be9087da" protectedtitlecache="false" titleCache="Taxon description for Cheilanthes acrostica (Balbis) Tod." imagegallery="false"   taxon_id="812" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="448" uuid="aac7b184-e622-409b-8eda-e14998b9021d" protectedtitlecache="false" titleCache="Taxon description for Cheilanthes maderensis Lowe" imagegallery="false"   taxon_id="815" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="521" uuid="2d672585-0f35-42f8-9923-dfd5545e6369" protectedtitlecache="false" titleCache="Taxon description for Cosentinia vellea (Aiton) Tod." imagegallery="false"   taxon_id="946" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="1234" uuid="a8a734c2-122b-4d5b-9c89-a852f4ab4661" protectedtitlecache="false" titleCache="Taxon description for Notholaena marantae (L.) Desv." imagegallery="false"   taxon_id="2203" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="1524" uuid="c4e66d46-e4fb-4da2-a432-3f1cf5353b81" protectedtitlecache="false" titleCache="Taxon description for Pteris vittata L." imagegallery="false"   taxon_id="2737" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="4567" uuid="dd0f7395-6162-4ce4-8ece-774011b09325" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Adiantum capillus-veneris L. sec. Cyprus" imagegallery="false" taxon_id="48" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="4627" uuid="34266202-eb5d-41ec-a0b2-da56deb11cc7" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Anogramma leptophylla (L.) Link sec. Cyprus" imagegallery="false" taxon_id="264" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="4798" uuid="504b0178-39e6-4c79-8e33-ca00b0662f27" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Cheilanthes acrostica (Balbis) Tod. sec. Cyprus" imagegallery="false" taxon_id="812" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="4840" uuid="73396d11-5d35-43fb-8b15-4d472bdcdd43" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Cosentinia vellea (Aiton) Tod. sec. Cyprus" imagegallery="false" taxon_id="946" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="5409" uuid="64a797b2-7f92-4012-a4f5-d76f8aaeb6b4" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Pteris vittata L. sec. Cyprus" imagegallery="false" taxon_id="2737" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="5974" uuid="71872861-8229-4cab-8042-b75dfa0e3f63" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Notholaena marantae (L.) Desv. sec. Cyprus" imagegallery="false" taxon_id="2203" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="11766" uuid="6b4be8a2-ea86-4815-bd31-b022055a90f2" protectedtitlecache="false" titleCache="Image gallery for Pteris vittata L." imagegallery="true"   taxon_id="2737" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="12353" uuid="b8d3a151-032e-48d9-9191-d7b8fb1fe1a0" protectedtitlecache="false" titleCache="Image gallery for Cheilanthes acrostica (Balbis) Tod." imagegallery="true"   taxon_id="812" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="12713" uuid="61fbdc1b-80bf-4aea-b6cb-8f4d466bd923" protectedtitlecache="false" titleCache="Image gallery for Adiantum capillus-veneris L." imagegallery="true"   taxon_id="48" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="13728" uuid="53b3125e-2a43-4433-a4dd-50dd9a4cf92c" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="48" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="13817" uuid="7b108193-e689-417a-bcab-adaf6c49d532" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="264" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="14043" uuid="de29cc97-a160-4783-b996-b929157335d5" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="812" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="14101" uuid="815336d3-19d6-493d-9ea4-bcb320d1b922" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="946" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="14658" uuid="ce4068f8-17b0-46e2-9fbb-e8c16efb7255" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="2203" PUBLISH="true" ISDEFAULT="false"/>
+  <DescriptionBase DTYPE="TaxonDescription" id="14864" uuid="2d55f445-8e72-43d3-976a-133828e89599" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="2737" PUBLISH="true" ISDEFAULT="false"/>
 
   <LanguageString id="10"/>
 </dataset>
index c607f1a8a92044ed53f706ea2871dcab9efe099b..f51ddc61726abad98464e7b3a9475e64a3536238 100644 (file)
   <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2758" modifyingtext_id="13791" modifyingtext_mapkey_id="124"/>
   <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2759" modifyingtext_id="13793" modifyingtext_mapkey_id="124"/>
 
-  <LanguageString id="13780" created="2014-03-10 10:03:09.0" uuid="cceaa60b-61f4-4c8a-bb0e-d45f0fa3e2dc" text="Modifying Text 1a" language_id="124"/>
-  <LanguageString id="13781" created="2014-03-10 10:03:17.0" uuid="01a0ace4-de49-4725-9909-e881fb13035d" text="" language_id="124"/>
-  <LanguageString id="13782" created="2014-03-10 10:03:48.0" uuid="ec0fea40-69dd-4c3e-ab7a-34948037a069" updated="2014-03-10 10:06:32.0" text="Capitula with ligulate ray-florets; leaves pinnatisect"   language_id="124"/>
-  <LanguageString id="13783" created="2014-03-10 10:04:03.0" uuid="82f8a3a0-567f-4d89-ba10-3f3699111d55" updated="2014-03-10 10:06:32.0" text="Ray-florets yellow"   language_id="124"/>
-  <LanguageString id="13784" created="2014-03-10 10:04:21.0" uuid="4270501f-1efc-45c2-9e8f-c65f120e8f4c" updated="2014-03-10 10:06:32.0" text="Stem thinly pilose; leaves 10-15 mm wide, with spreading linear-subulate segments; perennial herb"   language_id="124"/>
-  <LanguageString id="13785" created="2014-03-10 10:04:07.0" uuid="813f5fd6-c8f6-43e8-9a2b-1464f3ba052a" updated="2014-03-10 10:06:32.0" text=""   language_id="124"/>
-  <LanguageString id="13786" created="2014-03-10 10:04:53.0" uuid="ba17ac94-632f-4d69-ac89-a882e19ff1c5" updated="2014-03-10 10:06:32.0" text="Stem white-tomentose; leaves 1-3 mm wide, with minute overlapping, transverse segments; small subshrubs with a woody base"   language_id="124"/>
-  <LanguageString id="13787" created="2014-03-10 10:04:34.0" uuid="ab219a5d-e0c4-45fd-8405-6693c3fb8abf" updated="2014-03-10 10:06:32.0" text=""   language_id="124"/>
-  <LanguageString id="13788" created="2014-03-10 10:03:53.0" uuid="2baec690-422d-4f85-bcfd-24f5718cbecf" updated="2014-03-10 10:06:32.0" text=""   language_id="124"/>
-  <LanguageString id="13789" created="2014-03-10 10:05:16.0" uuid="7c6a7984-8e6f-48b1-86b2-d5d643199bf3" updated="2014-03-10 10:06:32.0" text="Ray-florets white"   language_id="124"/>
-  <LanguageString id="13790" created="2014-03-10 10:05:34.0" uuid="72bd8bc9-1904-47ab-8bec-b9296a98b244" updated="2014-03-10 10:06:32.0" text="Perennial herb; stem pilose, hairy or glabrescent, but not tomentose; ligules 1-2 mm diam."   language_id="124"/>
-  <LanguageString id="13791" created="2014-03-10 10:05:20.0" uuid="c917e3fb-e48b-4207-b77d-c1c108e37906" updated="2014-03-10 10:06:32.0" text=""   language_id="124"/>
-  <LanguageString id="13792" created="2014-03-10 10:06:15.0" uuid="c5dd35d8-da6a-4d05-b30c-6b55220bd989" updated="2014-03-10 10:06:32.0" text="Shrub with a woody base; stem white-tomentose or woolly; ligules 4-5 mm diam."   language_id="124"/>
-  <LanguageString id="13793" created="2014-03-10 10:06:03.0" uuid="227a17f6-1ca1-4d06-8480-25711b614863" updated="2014-03-10 10:06:32.0" text=""   language_id="124"/>
-  <LanguageString id="13794" created="2014-03-10 10:05:07.0" uuid="2c434ab1-8ca7-4464-b5cd-4cee40db41ed" updated="2014-03-10 10:06:32.0" text=""   language_id="124"/>
-  <LanguageString id="13795" created="2014-03-10 10:03:38.0" uuid="27190d54-f53b-401e-820c-edfb36d4bcbf" updated="2014-03-10 10:06:32.0" text=""   language_id="124"/>
-  <LanguageString id="13796" created="2014-03-10 10:03:25.0" uuid="69cffb28-8a85-478f-bcae-533e20938ccd" updated="2014-03-10 10:06:32.0" text="Capitula without ligulate ray-florets; leaves entire or subentire"   language_id="124"/>
-  <LanguageString id="14570" created="2014-10-09 15:42:33.0" uuid="84967760-6dbe-4af4-8e0c-309f1af6ce20" updated="2014-10-09 15:42:44.0" text="Question 1" createdby_id="10" updatedby_id="10" language_id="124"/>
-  <LanguageString id="14571" created="2014-10-09 15:42:55.0" uuid="d82f37b1-f51d-42c1-a291-0c7820db155e" updated="2014-10-09 15:43:03.0" text="Question 2" createdby_id="10" updatedby_id="10" language_id="124"/>
-
-  <TaxonBase DTYPE="Taxon" id="32" created="2011-03-01 20:11:26.0" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" protectedtitlecache="false" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="35" created="2010-12-21 15:09:43.0" uuid="fade44fd-34b2-455f-861a-d1372b866f06" protectedtitlecache="false" titleCache="Achillea sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="36" created="2011-03-01 20:11:26.0" uuid="05f0a2e1-e3c3-4e74-8fec-8a0ae89236c3" protectedtitlecache="false" titleCache="Achillea cretica L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="37" created="2011-03-01 20:11:26.0" uuid="0f8d18a9-e861-48e8-bfab-83e01a379bc0" protectedtitlecache="false" titleCache="Achillea maritima (L.)Ehrend. &amp; Y.-P. Guo subsp. maritima sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="40" created="2010-12-21 15:09:43.0" uuid="2b336df7-29e8-4f79-985f-66502739d22f" protectedtitlecache="false" titleCache="Achillea millefolium L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="41" created="2011-03-01 20:11:26.0" uuid="094e1af8-efd8-4605-b037-b4f715379562" protectedtitlecache="false" titleCache="Achillea santolinoides subsp. wilhelmsii (K. Koch) Greuter sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" sec_id="10" publish="true"/>
+  <LanguageString id="13780" uuid="cceaa60b-61f4-4c8a-bb0e-d45f0fa3e2dc" text="Modifying Text 1a" language_id="124"/>
+  <LanguageString id="13781" uuid="01a0ace4-de49-4725-9909-e881fb13035d" text="" language_id="124"/>
+  <LanguageString id="13782" uuid="ec0fea40-69dd-4c3e-ab7a-34948037a069" text="Capitula with ligulate ray-florets; leaves pinnatisect"   language_id="124"/>
+  <LanguageString id="13783" uuid="82f8a3a0-567f-4d89-ba10-3f3699111d55" text="Ray-florets yellow"   language_id="124"/>
+  <LanguageString id="13784" uuid="4270501f-1efc-45c2-9e8f-c65f120e8f4c" text="Stem thinly pilose; leaves 10-15 mm wide, with spreading linear-subulate segments; perennial herb"   language_id="124"/>
+  <LanguageString id="13785" uuid="813f5fd6-c8f6-43e8-9a2b-1464f3ba052a" text=""   language_id="124"/>
+  <LanguageString id="13786" uuid="ba17ac94-632f-4d69-ac89-a882e19ff1c5" text="Stem white-tomentose; leaves 1-3 mm wide, with minute overlapping, transverse segments; small subshrubs with a woody base"   language_id="124"/>
+  <LanguageString id="13787" uuid="ab219a5d-e0c4-45fd-8405-6693c3fb8abf" text=""   language_id="124"/>
+  <LanguageString id="13788" uuid="2baec690-422d-4f85-bcfd-24f5718cbecf" text=""   language_id="124"/>
+  <LanguageString id="13789" uuid="7c6a7984-8e6f-48b1-86b2-d5d643199bf3" text="Ray-florets white"   language_id="124"/>
+  <LanguageString id="13790" uuid="72bd8bc9-1904-47ab-8bec-b9296a98b244" text="Perennial herb; stem pilose, hairy or glabrescent, but not tomentose; ligules 1-2 mm diam."   language_id="124"/>
+  <LanguageString id="13791" uuid="c917e3fb-e48b-4207-b77d-c1c108e37906" text=""   language_id="124"/>
+  <LanguageString id="13792" uuid="c5dd35d8-da6a-4d05-b30c-6b55220bd989" text="Shrub with a woody base; stem white-tomentose or woolly; ligules 4-5 mm diam."   language_id="124"/>
+  <LanguageString id="13793" uuid="227a17f6-1ca1-4d06-8480-25711b614863" text=""   language_id="124"/>
+  <LanguageString id="13794" uuid="2c434ab1-8ca7-4464-b5cd-4cee40db41ed" text=""   language_id="124"/>
+  <LanguageString id="13795" uuid="27190d54-f53b-401e-820c-edfb36d4bcbf" text=""   language_id="124"/>
+  <LanguageString id="13796" uuid="69cffb28-8a85-478f-bcae-533e20938ccd" text="Capitula without ligulate ray-florets; leaves entire or subentire"   language_id="124"/>
+  <LanguageString id="14570" uuid="84967760-6dbe-4af4-8e0c-309f1af6ce20" text="Question 1" createdby_id="10" updatedby_id="10" language_id="124"/>
+  <LanguageString id="14571" uuid="d82f37b1-f51d-42c1-a291-0c7820db155e" text="Question 2" createdby_id="10" updatedby_id="10" language_id="124"/>
+
+  <TaxonBase DTYPE="Taxon" id="32" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" protectedtitlecache="false" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="35" uuid="fade44fd-34b2-455f-861a-d1372b866f06" protectedtitlecache="false" titleCache="Achillea sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="36" uuid="05f0a2e1-e3c3-4e74-8fec-8a0ae89236c3" protectedtitlecache="false" titleCache="Achillea cretica L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="37" uuid="0f8d18a9-e861-48e8-bfab-83e01a379bc0" protectedtitlecache="false" titleCache="Achillea maritima (L.)Ehrend. &amp; Y.-P. Guo subsp. maritima sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="40" uuid="2b336df7-29e8-4f79-985f-66502739d22f" protectedtitlecache="false" titleCache="Achillea millefolium L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="41" uuid="094e1af8-efd8-4605-b037-b4f715379562" protectedtitlecache="false" titleCache="Achillea santolinoides subsp. wilhelmsii (K. Koch) Greuter sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="1" SOURCEDTAXON_ID="32" UUID="5ff76440-c9ab-4f13-8f1a-c39d57d3c714" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="2" SOURCEDTAXON_ID="35" UUID="3914b660-3cb3-4a5b-8fc7-264c7ac17a19" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="3" SOURCEDTAXON_ID="56" UUID="7cbe8fd0-1329-4421-8bb5-05b57f2048d1" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="4" SOURCEDTAXON_ID="37" UUID="14181c38-c344-4a9c-ba25-47877eff26af" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="5" SOURCEDTAXON_ID="40" UUID="1894e029-5303-474c-a1fc-8d97b493025b" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="6" SOURCEDTAXON_ID="41" UUID="68ad182d-1bce-4195-8690-af1d089c9d4d" SOURCETYPE="PTS" CITATION_ID="10" />
 
   <PolytomousKey_Taxon polytomousKey_id="1550" taxon_id="35"/>
 
-  <RightsInfo id="10" created="2014-10-09 15:45:53.0" uuid="bdfb572b-be25-45e7-9349-22a9da43531f" updated="2014-10-09 15:48:01.0" text="Rights Text Test" createdby_id="10" updatedby_id="10" agent_id="4809" type_id="2056"/>
+  <RightsInfo id="10" uuid="bdfb572b-be25-45e7-9349-22a9da43531f" text="Rights Text Test" createdby_id="10" updatedby_id="10" agent_id="4809" type_id="2056"/>
 
 
-  <PolytomousKeyNode id="2750" created="2014-03-10 10:02:35.0" uuid="75e4c924-ff58-4ee7-a59d-fd9173517d08" updated="2014-03-10 10:02:42.0" nodenumber="1"   key_id="1550" question_id="2760"/>
-  <PolytomousKeyNode id="2751" created="2014-03-10 10:02:52.0" uuid="23e51ff7-11b1-443b-aff2-3fe8b5ace9fe" sortindex="0" key_id="1550" statement_id="2467" subkey_id="751" taxon_id="37" parent_id="2750"/>
-  <PolytomousKeyNode id="2752" created="2014-03-10 10:03:16.0" uuid="dcf326f7-c0ad-4e76-b64e-43aea11f767c" key_id="1550"/>
-  <PolytomousKeyNode id="2753" created="2014-03-10 10:03:38.0" uuid="b775c027-13c0-4b87-8aa9-712faeaafbdc" updated="2014-03-10 10:06:32.0" nodenumber="2" sortindex="1"   key_id="1550" question_id="2761" statement_id="2460"  subkey_id="751" parent_id="2750"/>
-  <PolytomousKeyNode id="2754" created="2014-03-10 10:03:52.0" uuid="df5d5922-35de-43d5-9d46-7730ae28eeb3" updated="2014-03-10 10:06:32.0" nodenumber="3" sortindex="0"   key_id="1550" statement_id="2461" subkey_id="751" parent_id="2753"/>
-  <PolytomousKeyNode id="2755" created="2014-03-10 10:04:07.0" uuid="0c8583ee-399e-433c-b76b-272c54dbd9f5" updated="2014-03-10 10:06:32.0" sortindex="0"   key_id="1550" statement_id="2462" taxon_id="32" parent_id="2754"/>
-  <PolytomousKeyNode id="2756" created="2014-03-10 10:04:34.0" uuid="a10e1e61-82c0-470e-a245-10a927b80c9a" updated="2014-03-10 10:06:32.0" sortindex="1"   key_id="1550" statement_id="2463" taxon_id="41" parent_id="2754"/>
-  <PolytomousKeyNode id="2757" created="2014-03-10 10:05:07.0" uuid="19f7a6a2-4c55-49cb-8b92-d68a9fd9074c" updated="2014-03-10 10:06:32.0" nodenumber="4" sortindex="1"   key_id="1550" statement_id="2464" parent_id="2753"/>
-  <PolytomousKeyNode id="2758" created="2014-03-10 10:05:20.0" uuid="0a4d86d1-fba5-4088-8dcc-6f0e7268ca5b" updated="2014-03-10 10:06:32.0" sortindex="0"   key_id="1550" statement_id="2465" taxon_id="40" parent_id="2757"/>
-  <PolytomousKeyNode id="2759" created="2014-03-10 10:06:03.0" uuid="827c9df4-ac15-4163-95ab-616d51f62803" updated="2014-03-10 10:06:32.0" sortindex="1"   key_id="1550" statement_id="2466" taxon_id="36" parent_id="2757"/>
+  <PolytomousKeyNode id="2750" uuid="75e4c924-ff58-4ee7-a59d-fd9173517d08" nodenumber="1"   key_id="1550" question_id="2760"/>
+  <PolytomousKeyNode id="2751" uuid="23e51ff7-11b1-443b-aff2-3fe8b5ace9fe" sortindex="0" key_id="1550" statement_id="2467" subkey_id="751" taxon_id="37" parent_id="2750"/>
+  <PolytomousKeyNode id="2752" uuid="dcf326f7-c0ad-4e76-b64e-43aea11f767c" key_id="1550"/>
+  <PolytomousKeyNode id="2753" uuid="b775c027-13c0-4b87-8aa9-712faeaafbdc" nodenumber="2" sortindex="1"   key_id="1550" question_id="2761" statement_id="2460"  subkey_id="751" parent_id="2750"/>
+  <PolytomousKeyNode id="2754" uuid="df5d5922-35de-43d5-9d46-7730ae28eeb3" nodenumber="3" sortindex="0"   key_id="1550" statement_id="2461" subkey_id="751" parent_id="2753"/>
+  <PolytomousKeyNode id="2755" uuid="0c8583ee-399e-433c-b76b-272c54dbd9f5" sortindex="0"   key_id="1550" statement_id="2462" taxon_id="32" parent_id="2754"/>
+  <PolytomousKeyNode id="2756" uuid="a10e1e61-82c0-470e-a245-10a927b80c9a" sortindex="1"   key_id="1550" statement_id="2463" taxon_id="41" parent_id="2754"/>
+  <PolytomousKeyNode id="2757" uuid="19f7a6a2-4c55-49cb-8b92-d68a9fd9074c" nodenumber="4" sortindex="1"   key_id="1550" statement_id="2464" parent_id="2753"/>
+  <PolytomousKeyNode id="2758" uuid="0a4d86d1-fba5-4088-8dcc-6f0e7268ca5b" sortindex="0"   key_id="1550" statement_id="2465" taxon_id="40" parent_id="2757"/>
+  <PolytomousKeyNode id="2759" uuid="827c9df4-ac15-4163-95ab-616d51f62803" sortindex="1"   key_id="1550" statement_id="2466" taxon_id="36" parent_id="2757"/>
 
-  <Credit id="20" created="2014-10-09 15:45:22.0" uuid="aa412b15-ee6c-4834-b14e-a66969cb398d" updated="2014-10-09 15:48:01.0" text="Credits Text Test" createdby_id="10" updatedby_id="10" language_id="124" agent_id="4809"/>
+  <Credit id="20" uuid="aa412b15-ee6c-4834-b14e-a66969cb398d" text="Credits Text Test" createdby_id="10" updatedby_id="10" language_id="124" agent_id="4809"/>
 
-  <KeyStatement id="2460" created="2014-03-10 10:03:48.0" uuid="66da6df7-784c-4d5a-9378-58b2cf92ba13" updated="2014-03-10 10:06:32.0"  />
-  <KeyStatement id="2461" created="2014-03-10 10:04:03.0" uuid="f9cfd498-de47-48fd-b38c-43cf57b63750" updated="2014-03-10 10:06:32.0"  />
-  <KeyStatement id="2462" created="2014-03-10 10:04:21.0" uuid="817fb39e-91d4-4d8c-a942-6acab47575d1" updated="2014-03-10 10:06:32.0"  />
-  <KeyStatement id="2463" created="2014-03-10 10:04:53.0" uuid="6b571b86-7764-4f27-925c-ae5e2653f7ad" updated="2014-03-10 10:06:32.0"  />
-  <KeyStatement id="2464" created="2014-03-10 10:05:16.0" uuid="91bbb534-abdf-4915-9f6f-a0cb41f8cf58" updated="2014-03-10 10:06:32.0"  />
-  <KeyStatement id="2465" created="2014-03-10 10:05:34.0" uuid="1991ca31-2630-4917-8db3-eb67cec8f231" updated="2014-03-10 10:06:32.0"  />
-  <KeyStatement id="2466" created="2014-03-10 10:06:15.0" uuid="3e1bbc59-b098-4533-ac35-245e1140a0ae" updated="2014-03-10 10:06:32.0"  />
-  <KeyStatement id="2467" created="2014-03-10 10:03:24.0" uuid="68fd99f6-64ce-4bb8-a6af-d2cf2c046e2c" updated="2014-03-10 10:06:32.0"  />
-  <KeyStatement id="2760" created="2014-10-09 15:42:33.0" uuid="b9702653-f620-4208-bda9-a6fe082004d1" updated="2014-10-09 15:42:44.0" createdby_id="10" updatedby_id="10"/>
-  <KeyStatement id="2761" created="2014-10-09 15:42:55.0" uuid="688a432f-4b57-4c6f-a8f6-0c468a28cb7c" updated="2014-10-09 15:43:03.0" createdby_id="10" updatedby_id="10"/>
+  <KeyStatement id="2460" uuid="66da6df7-784c-4d5a-9378-58b2cf92ba13"  />
+  <KeyStatement id="2461" uuid="f9cfd498-de47-48fd-b38c-43cf57b63750"  />
+  <KeyStatement id="2462" uuid="817fb39e-91d4-4d8c-a942-6acab47575d1"  />
+  <KeyStatement id="2463" uuid="6b571b86-7764-4f27-925c-ae5e2653f7ad"  />
+  <KeyStatement id="2464" uuid="91bbb534-abdf-4915-9f6f-a0cb41f8cf58"  />
+  <KeyStatement id="2465" uuid="1991ca31-2630-4917-8db3-eb67cec8f231"  />
+  <KeyStatement id="2466" uuid="3e1bbc59-b098-4533-ac35-245e1140a0ae"  />
+  <KeyStatement id="2467" uuid="68fd99f6-64ce-4bb8-a6af-d2cf2c046e2c"  />
+  <KeyStatement id="2760" uuid="b9702653-f620-4208-bda9-a6fe082004d1" createdby_id="10" updatedby_id="10"/>
+  <KeyStatement id="2761" uuid="688a432f-4b57-4c6f-a8f6-0c468a28cb7c" createdby_id="10" updatedby_id="10"/>
 
-  <AgentBase DTYPE="Person" id="4809" created="2010-12-21 15:09:59.0" uuid="945d08f2-eb92-45b6-9252-6275ea6d338b" protectedtitlecache="false" titleCache="R. A. Graham" nomenclaturaltitle="R. A. Graham"/>
+  <AgentBase DTYPE="Person" id="4809" uuid="945d08f2-eb92-45b6-9252-6275ea6d338b" protectedtitlecache="false" titleCache="R. A. Graham" nomenclaturaltitle="R. A. Graham"/>
 
-  <Extension id="10" created="2014-10-09 15:45:41.0" uuid="0d6f35d7-7e76-446a-a017-7e8355ee1b4c" updated="2014-10-09 15:48:01.0" value="http://test.com" createdby_id="10" updatedby_id="10" type_id="2075"/>
+  <Extension id="10" uuid="0d6f35d7-7e76-446a-a017-7e8355ee1b4c" value="http://test.com" createdby_id="10" updatedby_id="10" type_id="2075"/>
 
   <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23710"/>
   <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23711"/>
   <KeyStatement_LanguageString KeyStatement_id="2760" label_id="14570" label_mapkey_id="124"/>
   <KeyStatement_LanguageString KeyStatement_id="2761" label_id="14571" label_mapkey_id="124"/>
 
-  <PolytomousKey id="751" created="2013-03-24 11:17:08.0" uuid="9d8bf4f6-a70a-4b80-8556-2ccfb436ff01" protectedtitlecache="true" titleCache="Asphodeline"   startNumber="1"/>
-  <PolytomousKey id="1550" created="2014-03-10 10:02:35.0" uuid="0d53ba20-7de4-4baa-bd8a-401048447d66" updated="2014-03-10 10:02:42.0" protectedtitlecache="true" titleCache="Achillea"   root_id="2750" startNumber="1"/>
+  <PolytomousKey id="751" uuid="9d8bf4f6-a70a-4b80-8556-2ccfb436ff01" protectedtitlecache="true" titleCache="Asphodeline"   startNumber="1"/>
+  <PolytomousKey id="1550" uuid="0d53ba20-7de4-4baa-bd8a-401048447d66" protectedtitlecache="true" titleCache="Achillea"   root_id="2750" startNumber="1"/>
 
-  <OriginalSourceBase DTYPE="IdentifiableSource" id="23710" created="2014-03-10 10:06:57.0" uuid="95e05e82-499d-4b8a-ad6b-1085f74a7496" updated="2014-03-10 10:07:33.0" sourceType="PTS"/>
-  <OriginalSourceBase DTYPE="IdentifiableSource" id="23711" created="2014-03-10 10:06:48.0" uuid="f77555fe-0d98-4c9f-98ed-a5bca6b1e342" updated="2014-03-10 10:07:33.0" sourceType="PTS"/>   
+  <OriginalSourceBase DTYPE="IdentifiableSource" id="23710" uuid="95e05e82-499d-4b8a-ad6b-1085f74a7496" sourceType="PTS"/>
+  <OriginalSourceBase DTYPE="IdentifiableSource" id="23711" uuid="f77555fe-0d98-4c9f-98ed-a5bca6b1e342" sourceType="PTS"/>   
   
 </dataset>
index 2cb95249357c7c3774d8028d41fe375d213f9453..874370fce710fdd2e9d69e737d2ad614446dc86a 100644 (file)
   <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2758" modifyingtext_id="13791" modifyingtext_mapkey_id="124"/>
   <PolytomousKeyNode_LanguageString PolytomousKeyNode_id="2759" modifyingtext_id="13793" modifyingtext_mapkey_id="124"/>
 
-  <LanguageString id="13780" created="2014-03-10 10:03:09.0" uuid="cceaa60b-61f4-4c8a-bb0e-d45f0fa3e2dc" text="Modifying Text 1a" language_id="124"/>
-  <LanguageString id="13781" created="2014-03-10 10:03:17.0" uuid="01a0ace4-de49-4725-9909-e881fb13035d" text="" language_id="124"/>
-  <LanguageString id="13782" created="2014-03-10 10:03:48.0" uuid="ec0fea40-69dd-4c3e-ab7a-34948037a069" updated="2014-03-10 10:06:32.0" text="Capitula with ligulate ray-florets; leaves pinnatisect"   language_id="124"/>
-  <LanguageString id="13783" created="2014-03-10 10:04:03.0" uuid="82f8a3a0-567f-4d89-ba10-3f3699111d55" updated="2014-03-10 10:06:32.0" text="Ray-florets yellow"   language_id="124"/>
-  <LanguageString id="13784" created="2014-03-10 10:04:21.0" uuid="4270501f-1efc-45c2-9e8f-c65f120e8f4c" updated="2014-03-10 10:06:32.0" text="Stem thinly pilose; leaves 10-15 mm wide, with spreading linear-subulate segments; perennial herb"   language_id="124"/>
-  <LanguageString id="13785" created="2014-03-10 10:04:07.0" uuid="813f5fd6-c8f6-43e8-9a2b-1464f3ba052a" updated="2014-03-10 10:06:32.0" text=""   language_id="124"/>
-  <LanguageString id="13786" created="2014-03-10 10:04:53.0" uuid="ba17ac94-632f-4d69-ac89-a882e19ff1c5" updated="2014-03-10 10:06:32.0" text="Stem white-tomentose; leaves 1-3 mm wide, with minute overlapping, transverse segments; small subshrubs with a woody base"   language_id="124"/>
-  <LanguageString id="13787" created="2014-03-10 10:04:34.0" uuid="ab219a5d-e0c4-45fd-8405-6693c3fb8abf" updated="2014-03-10 10:06:32.0" text=""   language_id="124"/>
-  <LanguageString id="13788" created="2014-03-10 10:03:53.0" uuid="2baec690-422d-4f85-bcfd-24f5718cbecf" updated="2014-03-10 10:06:32.0" text=""   language_id="124"/>
-  <LanguageString id="13789" created="2014-03-10 10:05:16.0" uuid="7c6a7984-8e6f-48b1-86b2-d5d643199bf3" updated="2014-03-10 10:06:32.0" text="Ray-florets white"   language_id="124"/>
-  <LanguageString id="13790" created="2014-03-10 10:05:34.0" uuid="72bd8bc9-1904-47ab-8bec-b9296a98b244" updated="2014-03-10 10:06:32.0" text="Perennial herb; stem pilose, hairy or glabrescent, but not tomentose; ligules 1-2 mm diam."   language_id="124"/>
-  <LanguageString id="13791" created="2014-03-10 10:05:20.0" uuid="c917e3fb-e48b-4207-b77d-c1c108e37906" updated="2014-03-10 10:06:32.0" text=""   language_id="124"/>
-  <LanguageString id="13792" created="2014-03-10 10:06:15.0" uuid="c5dd35d8-da6a-4d05-b30c-6b55220bd989" updated="2014-03-10 10:06:32.0" text="Shrub with a woody base; stem white-tomentose or woolly; ligules 4-5 mm diam."   language_id="124"/>
-  <LanguageString id="13793" created="2014-03-10 10:06:03.0" uuid="227a17f6-1ca1-4d06-8480-25711b614863" updated="2014-03-10 10:06:32.0" text=""   language_id="124"/>
-  <LanguageString id="13794" created="2014-03-10 10:05:07.0" uuid="2c434ab1-8ca7-4464-b5cd-4cee40db41ed" updated="2014-03-10 10:06:32.0" text=""   language_id="124"/>
-  <LanguageString id="13795" created="2014-03-10 10:03:38.0" uuid="27190d54-f53b-401e-820c-edfb36d4bcbf" updated="2014-03-10 10:06:32.0" text=""   language_id="124"/>
-  <LanguageString id="13796" created="2014-03-10 10:03:25.0" uuid="69cffb28-8a85-478f-bcae-533e20938ccd" updated="2014-03-10 10:06:32.0" text="Capitula without ligulate ray-florets; leaves entire or subentire"   language_id="124"/>
-  <LanguageString id="14570" created="2014-10-09 15:42:33.0" uuid="84967760-6dbe-4af4-8e0c-309f1af6ce20" updated="2014-10-09 15:42:44.0" text="Question 1" createdby_id="10" updatedby_id="10" language_id="124"/>
-  <LanguageString id="14571" created="2014-10-09 15:42:55.0" uuid="d82f37b1-f51d-42c1-a291-0c7820db155e" updated="2014-10-09 15:43:03.0" text="Question 2" createdby_id="10" updatedby_id="10" language_id="124"/>
-
-  <TaxonBase DTYPE="Taxon" id="32" created="2011-03-01 20:11:26.0" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" protectedtitlecache="false" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="35" created="2010-12-21 15:09:43.0" uuid="fade44fd-34b2-455f-861a-d1372b866f06" protectedtitlecache="false" titleCache="Achillea sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="36" created="2011-03-01 20:11:26.0" uuid="05f0a2e1-e3c3-4e74-8fec-8a0ae89236c3" protectedtitlecache="false" titleCache="Achillea cretica L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="37" created="2011-03-01 20:11:26.0" uuid="0f8d18a9-e861-48e8-bfab-83e01a379bc0" protectedtitlecache="false" titleCache="Achillea maritima (L.)Ehrend. &amp; Y.-P. Guo subsp. maritima sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="40" created="2010-12-21 15:09:43.0" uuid="2b336df7-29e8-4f79-985f-66502739d22f" protectedtitlecache="false" titleCache="Achillea millefolium L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11"  sec_id="10" publish="true"/>
-  <TaxonBase DTYPE="Taxon" id="41" created="2011-03-01 20:11:26.0" uuid="094e1af8-efd8-4605-b037-b4f715379562" protectedtitlecache="false" titleCache="Achillea santolinoides subsp. wilhelmsii (K. Koch) Greuter sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" sec_id="10" publish="true"/>
+  <LanguageString id="13780" uuid="cceaa60b-61f4-4c8a-bb0e-d45f0fa3e2dc" text="Modifying Text 1a" language_id="124"/>
+  <LanguageString id="13781" uuid="01a0ace4-de49-4725-9909-e881fb13035d" text="" language_id="124"/>
+  <LanguageString id="13782" uuid="ec0fea40-69dd-4c3e-ab7a-34948037a069" text="Capitula with ligulate ray-florets; leaves pinnatisect"   language_id="124"/>
+  <LanguageString id="13783" uuid="82f8a3a0-567f-4d89-ba10-3f3699111d55" text="Ray-florets yellow"   language_id="124"/>
+  <LanguageString id="13784" uuid="4270501f-1efc-45c2-9e8f-c65f120e8f4c" text="Stem thinly pilose; leaves 10-15 mm wide, with spreading linear-subulate segments; perennial herb"   language_id="124"/>
+  <LanguageString id="13785" uuid="813f5fd6-c8f6-43e8-9a2b-1464f3ba052a" text=""   language_id="124"/>
+  <LanguageString id="13786" uuid="ba17ac94-632f-4d69-ac89-a882e19ff1c5" text="Stem white-tomentose; leaves 1-3 mm wide, with minute overlapping, transverse segments; small subshrubs with a woody base"   language_id="124"/>
+  <LanguageString id="13787" uuid="ab219a5d-e0c4-45fd-8405-6693c3fb8abf" text=""   language_id="124"/>
+  <LanguageString id="13788" uuid="2baec690-422d-4f85-bcfd-24f5718cbecf" text=""   language_id="124"/>
+  <LanguageString id="13789" uuid="7c6a7984-8e6f-48b1-86b2-d5d643199bf3" text="Ray-florets white"   language_id="124"/>
+  <LanguageString id="13790" uuid="72bd8bc9-1904-47ab-8bec-b9296a98b244" text="Perennial herb; stem pilose, hairy or glabrescent, but not tomentose; ligules 1-2 mm diam."   language_id="124"/>
+  <LanguageString id="13791" uuid="c917e3fb-e48b-4207-b77d-c1c108e37906" text=""   language_id="124"/>
+  <LanguageString id="13792" uuid="c5dd35d8-da6a-4d05-b30c-6b55220bd989" text="Shrub with a woody base; stem white-tomentose or woolly; ligules 4-5 mm diam."   language_id="124"/>
+  <LanguageString id="13793" uuid="227a17f6-1ca1-4d06-8480-25711b614863" text=""   language_id="124"/>
+  <LanguageString id="13794" uuid="2c434ab1-8ca7-4464-b5cd-4cee40db41ed" text=""   language_id="124"/>
+  <LanguageString id="13795" uuid="27190d54-f53b-401e-820c-edfb36d4bcbf" text=""   language_id="124"/>
+  <LanguageString id="13796" uuid="69cffb28-8a85-478f-bcae-533e20938ccd" text="Capitula without ligulate ray-florets; leaves entire or subentire"   language_id="124"/>
+  <LanguageString id="14570" uuid="84967760-6dbe-4af4-8e0c-309f1af6ce20" text="Question 1" createdby_id="10" updatedby_id="10" language_id="124"/>
+  <LanguageString id="14571" uuid="d82f37b1-f51d-42c1-a291-0c7820db155e" text="Question 2" createdby_id="10" updatedby_id="10" language_id="124"/>
+
+  <TaxonBase DTYPE="Taxon" id="32" uuid="8217ef77-2ab1-4318-bd67-ccd0cdef07c4" protectedtitlecache="false" titleCache="Achillea arabica Kotschy sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="35" uuid="fade44fd-34b2-455f-861a-d1372b866f06" protectedtitlecache="false" titleCache="Achillea sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="36" uuid="05f0a2e1-e3c3-4e74-8fec-8a0ae89236c3" protectedtitlecache="false" titleCache="Achillea cretica L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="37" uuid="0f8d18a9-e861-48e8-bfab-83e01a379bc0" protectedtitlecache="false" titleCache="Achillea maritima (L.)Ehrend. &amp; Y.-P. Guo subsp. maritima sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="40" uuid="2b336df7-29e8-4f79-985f-66502739d22f" protectedtitlecache="false" titleCache="Achillea millefolium L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <TaxonBase DTYPE="Taxon" id="41" uuid="094e1af8-efd8-4605-b037-b4f715379562" protectedtitlecache="false" titleCache="Achillea santolinoides subsp. wilhelmsii (K. Koch) Greuter sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" createdby_id="11" publish="true"/>
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="1" SOURCEDTAXON_ID="32" UUID="5ff76440-c9ab-4f13-8f1a-c39d57d3c714" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="2" SOURCEDTAXON_ID="35" UUID="3914b660-3cb3-4a5b-8fc7-264c7ac17a19" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="3" SOURCEDTAXON_ID="56" UUID="7cbe8fd0-1329-4421-8bb5-05b57f2048d1" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="4" SOURCEDTAXON_ID="37" UUID="14181c38-c344-4a9c-ba25-47877eff26af" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="5" SOURCEDTAXON_ID="40" UUID="1894e029-5303-474c-a1fc-8d97b493025b" SOURCETYPE="PTS" CITATION_ID="10" />
+  <ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="6" SOURCEDTAXON_ID="41" UUID="68ad182d-1bce-4195-8690-af1d089c9d4d" SOURCETYPE="PTS" CITATION_ID="10" />
 
   <PolytomousKey_Taxon polytomousKey_id="1550" taxon_id="35"/>
 
-  <RightsInfo id="10" created="2014-10-09 15:45:53.0" uuid="bdfb572b-be25-45e7-9349-22a9da43531f" updated="2014-10-09 15:48:01.0" text="Rights Text Test" createdby_id="10" updatedby_id="10" agent_id="4809" type_id="2056"/>
+  <RightsInfo id="10" uuid="bdfb572b-be25-45e7-9349-22a9da43531f" text="Rights Text Test" createdby_id="10" updatedby_id="10" agent_id="4809" type_id="2056"/>
 
-  <PolytomousKeyNode id="2750" created="2014-03-10 10:02:35.0" uuid="75e4c924-ff58-4ee7-a59d-fd9173517d08" updated="2014-03-10 10:02:42.0" nodenumber="1"   key_id="1550" question_id="2760"/>
-  <PolytomousKeyNode id="2751" created="2014-03-10 10:02:52.0" uuid="23e51ff7-11b1-443b-aff2-3fe8b5ace9fe" sortindex="0" key_id="1550" statement_id="2467" subkey_id="1550" taxon_id="37" parent_id="2750"/>
-  <PolytomousKeyNode id="2752" created="2014-03-10 10:03:16.0" uuid="dcf326f7-c0ad-4e76-b64e-43aea11f767c" key_id="1550"/>
-  <PolytomousKeyNode id="2753" created="2014-03-10 10:03:38.0" uuid="b775c027-13c0-4b87-8aa9-712faeaafbdc" updated="2014-03-10 10:06:32.0" nodenumber="2" sortindex="1"   key_id="1550" question_id="2761" statement_id="2460"  subkey_id="1550" parent_id="2750"/>
-  <PolytomousKeyNode id="2754" created="2014-03-10 10:03:52.0" uuid="df5d5922-35de-43d5-9d46-7730ae28eeb3" updated="2014-03-10 10:06:32.0" nodenumber="3" sortindex="0"   key_id="1550" statement_id="2461" subkey_id="1550" parent_id="2753"/>
-  <PolytomousKeyNode id="2755" created="2014-03-10 10:04:07.0" uuid="0c8583ee-399e-433c-b76b-272c54dbd9f5" updated="2014-03-10 10:06:32.0" sortindex="0"   key_id="1550" statement_id="2462" taxon_id="32" parent_id="2754"/>
-  <PolytomousKeyNode id="2756" created="2014-03-10 10:04:34.0" uuid="a10e1e61-82c0-470e-a245-10a927b80c9a" updated="2014-03-10 10:06:32.0" sortindex="1"   key_id="1550" statement_id="2463" taxon_id="41" parent_id="2754"/>
-  <PolytomousKeyNode id="2757" created="2014-03-10 10:05:07.0" uuid="19f7a6a2-4c55-49cb-8b92-d68a9fd9074c" updated="2014-03-10 10:06:32.0" nodenumber="4" sortindex="1"   key_id="1550" statement_id="2464" parent_id="2753"/>
-  <PolytomousKeyNode id="2758" created="2014-03-10 10:05:20.0" uuid="0a4d86d1-fba5-4088-8dcc-6f0e7268ca5b" updated="2014-03-10 10:06:32.0" sortindex="0"   key_id="1550" statement_id="2465" taxon_id="40" parent_id="2757"/>
-  <PolytomousKeyNode id="2759" created="2014-03-10 10:06:03.0" uuid="827c9df4-ac15-4163-95ab-616d51f62803" updated="2014-03-10 10:06:32.0" sortindex="1"   key_id="1550" statement_id="2466" taxon_id="36" parent_id="2757"/>
+  <PolytomousKeyNode id="2750" uuid="75e4c924-ff58-4ee7-a59d-fd9173517d08" nodenumber="1"   key_id="1550" question_id="2760"/>
+  <PolytomousKeyNode id="2751" uuid="23e51ff7-11b1-443b-aff2-3fe8b5ace9fe" sortindex="0" key_id="1550" statement_id="2467" subkey_id="1550" taxon_id="37" parent_id="2750"/>
+  <PolytomousKeyNode id="2752" uuid="dcf326f7-c0ad-4e76-b64e-43aea11f767c" key_id="1550"/>
+  <PolytomousKeyNode id="2753" uuid="b775c027-13c0-4b87-8aa9-712faeaafbdc" nodenumber="2" sortindex="1"   key_id="1550" question_id="2761" statement_id="2460"  subkey_id="1550" parent_id="2750"/>
+  <PolytomousKeyNode id="2754" uuid="df5d5922-35de-43d5-9d46-7730ae28eeb3" nodenumber="3" sortindex="0"   key_id="1550" statement_id="2461" subkey_id="1550" parent_id="2753"/>
+  <PolytomousKeyNode id="2755" uuid="0c8583ee-399e-433c-b76b-272c54dbd9f5" sortindex="0"   key_id="1550" statement_id="2462" taxon_id="32" parent_id="2754"/>
+  <PolytomousKeyNode id="2756" uuid="a10e1e61-82c0-470e-a245-10a927b80c9a" sortindex="1"   key_id="1550" statement_id="2463" taxon_id="41" parent_id="2754"/>
+  <PolytomousKeyNode id="2757" uuid="19f7a6a2-4c55-49cb-8b92-d68a9fd9074c" nodenumber="4" sortindex="1"   key_id="1550" statement_id="2464" parent_id="2753"/>
+  <PolytomousKeyNode id="2758" uuid="0a4d86d1-fba5-4088-8dcc-6f0e7268ca5b" sortindex="0"   key_id="1550" statement_id="2465" taxon_id="40" parent_id="2757"/>
+  <PolytomousKeyNode id="2759" uuid="827c9df4-ac15-4163-95ab-616d51f62803" sortindex="1"   key_id="1550" statement_id="2466" taxon_id="36" parent_id="2757"/>
 
-  <Credit id="20" created="2014-10-09 15:45:22.0" uuid="aa412b15-ee6c-4834-b14e-a66969cb398d" updated="2014-10-09 15:48:01.0" text="Credits Text Test" createdby_id="10" updatedby_id="10" language_id="124" agent_id="4809"/>
+  <Credit id="20" uuid="aa412b15-ee6c-4834-b14e-a66969cb398d" text="Credits Text Test" createdby_id="10" updatedby_id="10" language_id="124" agent_id="4809"/>
 
-  <KeyStatement id="2460" created="2014-03-10 10:03:48.0" uuid="66da6df7-784c-4d5a-9378-58b2cf92ba13" updated="2014-03-10 10:06:32.0"  />
-  <KeyStatement id="2461" created="2014-03-10 10:04:03.0" uuid="f9cfd498-de47-48fd-b38c-43cf57b63750" updated="2014-03-10 10:06:32.0"  />
-  <KeyStatement id="2462" created="2014-03-10 10:04:21.0" uuid="817fb39e-91d4-4d8c-a942-6acab47575d1" updated="2014-03-10 10:06:32.0"  />
-  <KeyStatement id="2463" created="2014-03-10 10:04:53.0" uuid="6b571b86-7764-4f27-925c-ae5e2653f7ad" updated="2014-03-10 10:06:32.0"  />
-  <KeyStatement id="2464" created="2014-03-10 10:05:16.0" uuid="91bbb534-abdf-4915-9f6f-a0cb41f8cf58" updated="2014-03-10 10:06:32.0"  />
-  <KeyStatement id="2465" created="2014-03-10 10:05:34.0" uuid="1991ca31-2630-4917-8db3-eb67cec8f231" updated="2014-03-10 10:06:32.0"  />
-  <KeyStatement id="2466" created="2014-03-10 10:06:15.0" uuid="3e1bbc59-b098-4533-ac35-245e1140a0ae" updated="2014-03-10 10:06:32.0"  />
-  <KeyStatement id="2467" created="2014-03-10 10:03:24.0" uuid="68fd99f6-64ce-4bb8-a6af-d2cf2c046e2c" updated="2014-03-10 10:06:32.0"  />
-  <KeyStatement id="2760" created="2014-10-09 15:42:33.0" uuid="b9702653-f620-4208-bda9-a6fe082004d1" updated="2014-10-09 15:42:44.0" createdby_id="10" updatedby_id="10"/>
-  <KeyStatement id="2761" created="2014-10-09 15:42:55.0" uuid="688a432f-4b57-4c6f-a8f6-0c468a28cb7c" updated="2014-10-09 15:43:03.0" createdby_id="10" updatedby_id="10"/>
+  <KeyStatement id="2460" uuid="66da6df7-784c-4d5a-9378-58b2cf92ba13"  />
+  <KeyStatement id="2461" uuid="f9cfd498-de47-48fd-b38c-43cf57b63750"  />
+  <KeyStatement id="2462" uuid="817fb39e-91d4-4d8c-a942-6acab47575d1"  />
+  <KeyStatement id="2463" uuid="6b571b86-7764-4f27-925c-ae5e2653f7ad"  />
+  <KeyStatement id="2464" uuid="91bbb534-abdf-4915-9f6f-a0cb41f8cf58"  />
+  <KeyStatement id="2465" uuid="1991ca31-2630-4917-8db3-eb67cec8f231"  />
+  <KeyStatement id="2466" uuid="3e1bbc59-b098-4533-ac35-245e1140a0ae"  />
+  <KeyStatement id="2467" uuid="68fd99f6-64ce-4bb8-a6af-d2cf2c046e2c"  />
+  <KeyStatement id="2760" uuid="b9702653-f620-4208-bda9-a6fe082004d1" createdby_id="10" updatedby_id="10"/>
+  <KeyStatement id="2761" uuid="688a432f-4b57-4c6f-a8f6-0c468a28cb7c" createdby_id="10" updatedby_id="10"/>
 
-  <AgentBase DTYPE="Person" id="4809" created="2010-12-21 15:09:59.0" uuid="945d08f2-eb92-45b6-9252-6275ea6d338b" protectedtitlecache="false" titleCache="R. A. Graham" nomenclaturaltitle="R. A. Graham" createdby_id="11"/>
+  <AgentBase DTYPE="Person" id="4809" uuid="945d08f2-eb92-45b6-9252-6275ea6d338b" protectedtitlecache="false" titleCache="R. A. Graham" nomenclaturaltitle="R. A. Graham" createdby_id="11"/>
 
-  <Extension id="10" created="2014-10-09 15:45:41.0" uuid="0d6f35d7-7e76-446a-a017-7e8355ee1b4c" updated="2014-10-09 15:48:01.0" value="http://test.com" createdby_id="10" updatedby_id="10" type_id="2075"/>
+  <Extension id="10" uuid="0d6f35d7-7e76-446a-a017-7e8355ee1b4c" value="http://test.com" createdby_id="10" updatedby_id="10" type_id="2075"/>
 
   <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23710"/>
   <PolytomousKey_OriginalSourceBase PolytomousKey_id="1550" sources_id="23711"/>
   <KeyStatement_LanguageString KeyStatement_id="2760" label_id="14570" label_mapkey_id="124"/>
   <KeyStatement_LanguageString KeyStatement_id="2761" label_id="14571" label_mapkey_id="124"/>
 
-  <PolytomousKey id="751" created="2013-03-24 11:17:08.0" uuid="9d8bf4f6-a70a-4b80-8556-2ccfb436ff01" protectedtitlecache="true" titleCache="Asphodeline"   startNumber="1"/>
-  <PolytomousKey id="1550" created="2014-03-10 10:02:35.0" uuid="0d53ba20-7de4-4baa-bd8a-401048447d66" updated="2014-03-10 10:02:42.0" protectedtitlecache="true" titleCache="Achillea"   root_id="2750" startNumber="1"/>
+  <PolytomousKey id="751" uuid="9d8bf4f6-a70a-4b80-8556-2ccfb436ff01" protectedtitlecache="true" titleCache="Asphodeline"   startNumber="1"/>
+  <PolytomousKey id="1550" uuid="0d53ba20-7de4-4baa-bd8a-401048447d66" protectedtitlecache="true" titleCache="Achillea"   root_id="2750" startNumber="1"/>
 
-  <OriginalSourceBase DTYPE="IdentifiableSource" id="23710" created="2014-03-10 10:06:57.0" uuid="95e05e82-499d-4b8a-ad6b-1085f74a7496" updated="2014-03-10 10:07:33.0" sourceType="PTS"/>
-  <OriginalSourceBase DTYPE="IdentifiableSource" id="23711" created="2014-03-10 10:06:48.0" uuid="f77555fe-0d98-4c9f-98ed-a5bca6b1e342" updated="2014-03-10 10:07:33.0" sourceType="PTS"/>
+  <OriginalSourceBase DTYPE="IdentifiableSource" id="23710" uuid="95e05e82-499d-4b8a-ad6b-1085f74a7496" sourceType="PTS"/>
+  <OriginalSourceBase DTYPE="IdentifiableSource" id="23711" uuid="f77555fe-0d98-4c9f-98ed-a5bca6b1e342" sourceType="PTS"/>
 
 </dataset>
index bbb6a0b7d5c3461d90bc9683c85190bb56796b0b..a1ae32e112a0b300eaeb0c71ee4652b164888d4d 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 4154c284054dd75ddc488a0398e06769ff80890a..b2c59b184cf0bac6bf8a790ac97dba5259cf2440 100644 (file)
                     <Detail role="Caption">Dolichoderinae</Detail>
                 </Representation>
                 <Type>Image</Type>
-                <Source href="http://cybertaxonomy.eu/sites/wp5.e-taxonomy.eu/files/cybergate.PNG"/>
+                <Source href="https://cybertaxonomy.org/sites/wp5.e-taxonomy.eu/files/cybergate.PNG"/>
             </MediaObject>
             <MediaObject id="m2">
                 <Representation>
                     <Detail role="Caption">Dolichoderinae</Detail>
                 </Representation>
                 <Type>Image</Type>
-                <Source href="http://cybertaxonomy.eu/sites/wp5.e-taxonomy.eu/files/cybergate.PNG"/>
+                <Source href="https://cybertaxonomy.org/sites/wp5.e-taxonomy.eu/files/cybergate.PNG"/>
             </MediaObject>
         </MediaObjects>
     </Dataset>
diff --git a/eu.etaxonomy.taxeditor.webapp/META-INF/MANIFEST.MF b/eu.etaxonomy.taxeditor.webapp/META-INF/MANIFEST.MF
deleted file mode 100644 (file)
index 0fd28f1..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Webapp
-Bundle-SymbolicName: eu.etaxonomy.taxeditor.webapp;singleton:=true
-Bundle-Version: 5.16.0
-Require-Bundle: org.eclipse.core.runtime
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Bundle-ActivationPolicy: lazy
-Export-Package: eu.etaxonomy.taxeditor.webapp
-Bundle-ClassPath: .,
- lib/log4j-1.2.17.jar,
- lib/jetty-server-9.4.26.v20200117.jar,
- lib/javax.servlet-api-3.1.0.jar,
- lib/c3p0-0.9.5.2.jar,
- lib/h2-1.4.190.jar,
- lib/mchange-commons-java-0.2.11.jar,
- lib/postgresql-9.4-1206-jdbc4.jar,
- lib/jdbc4-2.0.jar,
- lib/mysql-connector-java-8.0.15.jar,
- lib/jetty-util-9.4.26.v20200117.jar,
- lib/jetty-webapp-9.4.26.v20200117.jar,
- lib/jetty-security-9.4.26.v20200117.jar,
- lib/jetty-servlet-9.4.26.v20200117.jar,
- lib/jetty-xml-9.4.26.v20200117.jar,
- lib/jetty-http-9.4.26.v20200117.jar,
- lib/jetty-io-9.4.26.v20200117.jar
-Bundle-Vendor: EDIT
-Import-Package: org.eclipse.jface.resource,
- org.eclipse.ui.plugin
-Bundle-Activator: eu.etaxonomy.taxeditor.webapp.TaxeditorWebappPlugin
diff --git a/eu.etaxonomy.taxeditor.webapp/build.properties b/eu.etaxonomy.taxeditor.webapp/build.properties
deleted file mode 100644 (file)
index fe9e828..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-source.. = src/main/java/,\
-           src/main/resources/
-bin.includes = META-INF/,\
-               .,\
-               lib/,\
-               lib/h2-1.4.190.jar,\
-               lib/mchange-commons-java-0.2.11.jar,\
-               lib/postgresql-9.4-1206-jdbc4.jar,\
-               lib/jdbc4-2.0.jar,\
-               lib/mysql-connector-java-8.0.15.jar,\
-               lib/jetty-util-9.4.26.v20200117.jar,\
-               lib/jetty-webapp-9.4.26.v20200117.jar,\
-               lib/jetty-security-9.4.26.v20200117.jar,\
-               lib/jetty-servlet-9.4.26.v20200117.jar,\
-               lib/jetty-xml-9.4.26.v20200117.jar,\
-               lib/jetty-http-9.4.26.v20200117.jar,\
-               lib/jetty-io-9.4.26.v20200117.jar
-output.. = bin/
diff --git a/eu.etaxonomy.taxeditor.webapp/src/main/resources/etc/jetty/.svnignore b/eu.etaxonomy.taxeditor.webapp/src/main/resources/etc/jetty/.svnignore
deleted file mode 100644 (file)
index a09ae97..0000000
+++ /dev/null
@@ -1 +0,0 @@
-cdmlib-remote-webapp.war
diff --git a/eu.etaxonomy.taxeditor.webapp/src/main/resources/etc/jetty/jetty-runner-9.2.3.v20140905.jar b/eu.etaxonomy.taxeditor.webapp/src/main/resources/etc/jetty/jetty-runner-9.2.3.v20140905.jar
deleted file mode 100644 (file)
index 91c88d6..0000000
Binary files a/eu.etaxonomy.taxeditor.webapp/src/main/resources/etc/jetty/jetty-runner-9.2.3.v20140905.jar and /dev/null differ
diff --git a/eu.etaxonomy.taxeditor.webapp/src/main/resources/etc/jetty/start-9.2.3.v20140905.jar b/eu.etaxonomy.taxeditor.webapp/src/main/resources/etc/jetty/start-9.2.3.v20140905.jar
deleted file mode 100644 (file)
index ef2faaf..0000000
Binary files a/eu.etaxonomy.taxeditor.webapp/src/main/resources/etc/jetty/start-9.2.3.v20140905.jar and /dev/null differ
index 8e1da3f3c6f0738dcec6972671e9d8d4b29c35bd..b24fc5d987c02329666c84bf11a782913ea6a802 100644 (file)
@@ -2,15 +2,15 @@ Manifest-Version: 1.0
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.workbench;singleton:=true
 Export-Package: eu.etaxonomy.taxeditor.bulkeditor,
  eu.etaxonomy.taxeditor.workbench,
+ eu.etaxonomy.taxeditor.workbench.datasource,
  eu.etaxonomy.taxeditor.workbench.part
 Bundle-Name: Workbench Bundle
-Bundle-Version: 5.16.0
+Bundle-Version: 5.42.0
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.e4.ui.workbench,
  org.eclipse.e4.ui.model.workbench;bundle-version="1.2.0",
  org.eclipse.e4.core.di.annotations;bundle-version="1.5.0",
- org.apache.log4j;bundle-version="1.2.15",
  org.eclipse.equinox.p2.ui,
  org.eclipse.equinox.p2.metadata;bundle-version="2.3.100",
  org.eclipse.equinox.p2.operations;bundle-version="2.4.200",
@@ -24,5 +24,6 @@ Bundle-Activator: eu.etaxonomy.taxeditor.workbench.Activator
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: EDIT
-Import-Package: javax.inject;version="1.0.0"
-
+Import-Package: javax.inject;version="1.0.0",
+ org.apache.logging.log4j,
+ org.apache.logging.log4j.core
index b19e060c98cd9a7af4b2c931475ef289f690b203..f4021a80db01381342a2614150c40955ba42d695 100644 (file)
@@ -51,7 +51,7 @@
         </children>
       </children>
       <children xsi:type="menu:Menu" xmi:id="_FaGnuiQNEeen_7LZsZSNoA" elementId="eu.etaxonomy.taxeditor.workbench.menu.admin" label="%menu.label.4" mnemonics="A">
-        <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_OzuHcMTmEems-YpsQcOSgA" coreExpressionId="isCdmStoreConnected"/>
+        <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_OzuHcMTmEems-YpsQcOSgA" coreExpressionId="hasROLE_USER_MANAGER_OR_hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_b4RFsCQsEeeq76l4saMAFQ" elementId="eu.etaxonomy.taxeditor.workbench.menu.admin.dbpreferences" label="%command.label.23" command="_VawPsCQsEeeq76l4saMAFQ">
           <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_b4RFsSQsEeeq76l4saMAFQ" coreExpressionId="hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
         </children>
index dca40bf01a22420ed9e6e9b527770ce22ce2fb8a..66ec1bff59ef80001a2ac4da7d5daa6134a2af2d 100644 (file)
@@ -3,7 +3,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.16.0</version>
+    <version>5.42.0</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/l10n/Messages.java b/eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/l10n/Messages.java
new file mode 100755 (executable)
index 0000000..712e478
--- /dev/null
@@ -0,0 +1,122 @@
+/**
+ * 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.l10n;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * @author pplitzner
+ * @date Apr 14, 2015
+ */
+public class Messages extends NLS {
+
+    private static final String BUNDLE_NAME = "src/main/java/eu.etaxonomy.taxeditor.l10n.messages"; //$NON-NLS-1$
+
+    public static String LoginDialog_CANCEL_MESSAGE;
+    public static String LoginDialog_LOGIN;
+    public static String LoginDialog_PASSWORD;
+    public static String LoginDialog_REALLY_CANCEL;
+    public static String LoginDialog_USER_LOGIN;
+    public static String LoginDialog_USER_NAME;
+
+    public static String CdmDataSourceViewPart_1;
+    public static String CdmDataSourceViewPart_10;
+    public static String CdmDataSourceViewPart_11;
+    public static String CdmDataSourceViewPart_12;
+    public static String CdmDataSourceViewPart_2;
+    public static String CdmDataSourceViewPart_3;
+    public static String CdmDataSourceViewPart_4;
+    public static String CdmDataSourceViewPart_5;
+    public static String CdmDataSourceViewPart_7;
+    public static String CdmDataSourceViewPart_8;
+    public static String CdmDataSourceViewPart_9;
+    public static String CdmViewerContextMenu_OPEN;
+    public static String CdmViewerContextMenu_OPEN_IN;
+    public static String ChangeConnectionHandler_ALREADY_CONNECTING;
+    public static String ChangeConnectionHandler_CURRENTLY_CONNECTING_ALREADY;
+    public static String ChangeConnectionHandler_CREATE_DATAMODEL;
+    public static String ChangeConnectionHandler_REALLY_CREATE_DATAMODEL;
+    public static String ChangeConnectionHandler_DATASOURCE_NOT_AVAILABLE;
+    public static String ChangeConnectionHandler_NOT_AVAILABLE_REASONS;
+
+       public static String CdmStoreConnector_AUTHENTICATING_USER;
+       public static String CdmStoreConnector_CHECK_IF_EDITOR_IS_COMPATIBLE;
+       public static String CdmStoreConnector_CHECK_IF_NON_EMPTY;
+       public static String CdmStoreConnector_CHECK_IF_REACHABLE;
+       public static String CdmStoreConnector_COMPATIBILITY_CHECK_FAILED;
+       public static String CdmStoreConnector_COULD_NOT_CONNECT_TO_CHOSEN_DATASOURCE;
+       public static String CdmStoreConnector_SUCCESS;
+       public static String CdmStoreConnector_DATA_MODEL_CREATION_SUCCESSFUL;
+       public static String CdmStoreConnector_COULD_NOT_CREATE_DATAMODEL;
+       public static String CdmStoreConnector_CREATING_DATAMODEL;
+       public static String CdmStoreConnector_ERROR_DURING_DATAMODEL_CREATION;
+       public static String CdmStoreConnector_REASON;
+       public static String CdmStoreConnector_SCHEME_NOT_COMPATIBLE;
+       public static String CdmStoreConnector_UPDATE_DATASOUREC_OR_CHOOSE_NEW_DATASOURCE;
+       public static String CdmStoreConnector_UPDATE_EDITOR_OR_CHOOSE_COMPATIBLE_DATASOURCE;
+
+    public static String RemotingLoginDialog_CHOOSE_COMPATIBLE_CDM_SERVER;
+    public static String RemotingLoginDialog_DEFAULT_LOGIN;
+       public static String RemotingLoginDialog_LABEL_ADVANCED;
+       public static String RemotingLoginDialog_LABEL_CDM_INSTANCE;
+       public static String RemotingLoginDialog_LABEL_CDM_SERVER;
+       public static String RemotingLoginDialog_LABEL_CONNECT;
+       public static String RemotingLoginDialog_LABEL_CREATE_SCHEMA;
+       public static String RemotingLoginDialog_LABEL_UPDATE_SCHEMA_VERSION;
+       public static String RemotingLoginDialog_MSG_UPDATE_SCHEMA_VERSION;
+    public static String RemotingLoginDialog_LABEL_EDITOR_CDM_VERSION;
+       public static String RemotingLoginDialog_LABEL_EDITOR_CDMLIB_VERSION;
+       public static String RemotingLoginDialog_LABEL_LOGIN;
+       public static String RemotingLoginDialog_LABEL_LOGIN_COLON;
+       public static String RemotingLoginDialog_LABEL_PASSWORD;
+       public static String RemotingLoginDialog_LABEL_PORT;
+       public static String RemotingLoginDialog_LABEL_REFRESH;
+       public static String RemotingLoginDialog_LABEL_REMEMBER_ME;
+       public static String RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES;
+       public static String RemotingLoginDialog_LABEL_SERVER_CDM_VERSION;
+       public static String RemotingLoginDialog_LABEL_SERVER_CDMLIB_VERSION;
+       public static String RemotingLoginDialog_LABEL_STOP_MANAGED_SERVER;
+       public static String RemotingLoginDialog_LOGIN_CANNOT_BE_EMPTY;
+       public static String RemotingLoginDialog_MESSAGE_PORT_SHOULD_BE_INTEGER;
+       public static String RemotingLoginDialog_PASSWORD_CANNOT_BE_EMPTY;
+       public static String RemotingLoginDialog_SERVER_LAUNCH_ERROR;
+       public static String RemotingLoginDialog_STATUS_AVAILABLE;
+       public static String RemotingLoginDialog_STATUS_CHECKING;
+       public static String RemotingLoginDialog_STATUS_ERROR;
+       public static String RemotingLoginDialog_STATUS_NO_INSTANCES_FOUND;
+       public static String RemotingLoginDialog_STATUS_NOT_AVAILABLE;
+       public static String RemotingLoginDialog_STATUS_NOT_COMPATIBLE;
+       public static String RemotingLoginDialog_STATUS_NOT_STARTED;
+       public static String RemotingLoginDialog_STATUS_REMOTING_NOT_ACTIVATED;
+       public static String RemotingLoginDialog_STATUS_RETRIEVING;
+       public static String RemotingLoginDialog_STATUS_STARTED;
+       public static String RemotingLoginDialog_UPDATE_EDITOR;
+       public static String RemotingLoginDialog_CONNECTION_FAILED_MESSAGE;
+    public static String RemotingLoginDialog_CONNECTION_TIMEOUT_MESSAGE;
+    public static String RemotingLoginDialog_CONNECTION_FAILED_TITLE;
+    public static String RemotingLoginDialog_COULD_NOT_STOP_SERVER;
+       public static String RemotingLoginDialog_ERROR_GENERATING_CONFIG_FILE;
+       public static String RemotingLoginDialog_ERROR_STARTING_SERVER;
+       public static String RemotingLoginDialog_ERROR_STOPPING_SERVER;
+       public static String RemotingLoginDialog_GENERATING_CONFIG_FILE;
+       public static String RemotingLoginDialog_JOB_SERVER_LAUNCH;
+       public static String RemotingLoginDialog_STARTING_MGD_SERVER;
+       public static String RemotingLoginDialog_TASK_LAUNCHING_SERVER;
+       public static String RemotingLoginDialog_MISSING_PERMISSION;
+       public static String RemotingLoginDialog_SCHEMA_MISSING;
+       public static String RemotingLoginDialog_NO_SCHEMA;
+
+    static {
+        // initialize resource bundle
+        NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+    }
+
+    private Messages() {
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/l10n/messages.properties b/eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/l10n/messages.properties
new file mode 100755 (executable)
index 0000000..4e19900
--- /dev/null
@@ -0,0 +1,607 @@
+CdmDataSourceViewPart_1=Loading datasources
+CdmDataSourceViewPart_10=Server
+CdmDataSourceViewPart_11=Name
+CdmDataSourceViewPart_12=Connected
+CdmDataSourceViewPart_2=Notes
+CdmDataSourceViewPart_3=Compatible
+CdmDataSourceViewPart_4=CDM Version
+CdmDataSourceViewPart_5=Created
+CdmDataSourceViewPart_7=Database
+CdmDataSourceViewPart_8=Type
+CdmDataSourceViewPart_9=Up
+LanguageEditorPreferencePage_ChooseDefaultLanguage=Please choose your default language for the editor: 
+LanguageEditorPreferencePage_EditorHasToRestart=The application has to be restarted, in order to complete the language switch.\nDo you want to restart now?
+LanguageEditorPreferencePage_PleaseRestart=Please Restart
+LanguageEditorPreferencePage_RestartRequired=After changing the default language, a restart is required,\nin order for the new settings to take effect.
+LanguageMenuPreferences_configure=Choose available languages
+LanguageMenuPreferences_warning=\ - Warning: no description - not shown in menus
+CommonNameLanguageMenuPreferences_configure=Choose available languages for common names
+LanguageRepresentationPreferencePage_global=Choose the global language that will be used throughout the editor to get representations in
+LanguageRepresentationPreferencePage_enable=Enable Multiple Language Editing Capability
+ListComponent_ADD_PROVIDER=Add Provider
+ListComponent_NO_PROVIDER_AVAILABLE=No Providers available
+ListComponent_REMOVE_PROVIDER=Remove Provider
+OpenCommonNameAreaWizardAdminHandler_COMMON_NAMES=Common Names
+OpenDistributionEditorWizardHandlerAdminE4_DISTRIBUTION=Distribution
+OpenDistributionEditorWizardHandlerE4_DISTRIBUTION=Distribution
+OrderPreferences_Restore=Restore the last Taxon Navigator state
+OrderPreferences_Sorting=Sorting
+OrderPreferencePage_NewNavigatorWindowRequired=A new taxon navigator window is required.
+OrderPreferencePage_PleaseReopenNavigator=Please reopen the taxon navigator.
+DatabaseRepairPage_chooseParameter=Please choose the trees where the sortIndex should be recalculated.
+DatabaseRepairPage_updateTaxonNodes=Taxonomic Tree
+DatabaseRepairPage_toolTip_taxonNode=The sort indexes of the taxonomic tree will be recalculated.
+DatabaseRepairPage_PolytomousKeyNode=Polytomous Key
+DatabaseRepairPage_toolTip_polytomousKeyNode=The sort indexes of all polytomous keys are recalculated.
+DatabaseRepairPage_featureNodes=Term Tree
+DatabaseRepairPage_toolTipFeatureNodes=The sort indexes of the term tree will be recalculated.
+DatabaseRepairPage_updateTaxonName=Scientific Names
+DatabaseRepairPage_toolTip_TaxonName=Caches of all scientific names are recalculated.
+DatabaseRepairPage_TaxonBase=Taxa and Synonyms
+DatabaseRepairPage_toolTip_taxonBase=Caches of all taxa and synonyms are recalculated.
+DatabaseRepairPage_Reference=References
+DatabaseRepairPage_toolTip_reference=Caches of all references are recalculated.
+DatabaseRepairPage_Specimen=Specimen
+DatabaseRepairPage_toolTip_specimen=Caches of all Derived Units und Field Units are recalculated.
+DatabaseRepairPage_TeamOrPerson=Persons and Teams
+DatabaseRepairPage_toolTip_teamOrPerson=Caches of all Persons and Teams are recalculated.
+DatabaseRepairPage_description=Update caches of selected types
+DatabaseRepairPage_description_sortIndex=Update sort indices of selected trees
+UIPreferences_expand=Expand sections when data are available in Details View. This might make the Editor slow.
+
+UpdateHandler_CHECK_UPDATE_JOB=Check Update Job
+UpdateHandler_INSTALL_JOB=Install Update Job
+UpdateHandler_NO_UPDATE_MESSAGE=No updates for the current installation have been found.
+UpdateHandler_NO_UPDATE_TITLE=No updates found
+UpdateHandler_UPDATE_INSTALLED_TITLE=Updates installed
+UpdateHandler_UPDATE_INSTALLED_TITLE_MESSAGE=Updates have been installed. Do you want to restart?
+UpdateHandler_UPDATES_FOUND_MESSAGE=Do you want to install the updates now?
+UpdateHandler_UPDATES_FOUND_TITLE=Updates found
+UriWithLabelElement_URL_NOT_SAVED=URI won't be saved\! 
+UriWithLabelElement_COULD_NOT_OPEN_BROWSER=Could not open external browser. URI is invalid.
+UriWithLabelElement_INVALID_URL=Invalid URI
+UriWithLabelElement_OPEN_EXTERNAL_BROWSER=Open in external browser
+
+DoiWithLabelElement_DOI_NOT_SAVED=DOI won't be saved\!
+OrcidWithLabelElement_ORCID_NOT_SAVED=ORCID won't be saved\!
+
+ChangeConnectionHandler_ALREADY_CONNECTING=Already creating data model
+ChangeConnectionHandler_CURRENTLY_CONNECTING_ALREADY=You are currently creating a data model for a datasource already.
+ChangeConnectionHandler_DATASOURCE_NOT_AVAILABLE=Chosen datasource is not available
+ChangeConnectionHandler_NOT_AVAILABLE_REASONS=This could mean that either the database server is not running or the machine is not reachable.\n\n Please also make sure that you are connected to the network when trying to connect to a remote datasource.
+ChangeConnectionHandler_CREATE_DATAMODEL=Create Data Model
+ChangeConnectionHandler_REALLY_CREATE_DATAMODEL=Do you want to create the data model for %s?\n\nCAUTION: Existing data will be deleted!\n\nNote: Creating the data model may take some time.
+
+LoginDialog_CANCEL_MESSAGE=Aborting the login procedure will close the database.
+LoginDialog_LOGIN=Login
+LoginDialog_PASSWORD=Password
+LoginDialog_REALLY_CANCEL=Do you really want to cancel?
+LoginDialog_USER_LOGIN=User Login
+LoginDialog_USER_NAME=Username
+
+CdmViewerContextMenu_OPEN=Open (%s)
+CdmViewerContextMenu_OPEN_IN=Open in...
+
+CdmStoreConnector_AUTHENTICATING_USER=Authenticating user
+CdmStoreConnector_CHECK_IF_EDITOR_IS_COMPATIBLE=Checking if datasource is compatible with this editor.
+CdmStoreConnector_CHECK_IF_NON_EMPTY=Checking if datasource is a non empty CDM database.
+CdmStoreConnector_CHECK_IF_REACHABLE=Checking if datasource is reachable.
+CdmStoreConnector_COMPATIBILITY_CHECK_FAILED=Datasource Compatibility Check failed
+CdmStoreConnector_COULD_NOT_CONNECT_TO_CHOSEN_DATASOURCE=Could not connect to chosen datasource
+CdmStoreConnector_COULD_NOT_CREATE_DATAMODEL=Could not create data model
+CdmStoreConnector_CREATING_DATAMODEL=Creating data model for %s
+CdmStoreConnector_ERROR_DURING_DATAMODEL_CREATION=An error occurred while trying to create data model for data source: %s\nPlease clear the data base and retry.
+CdmStoreConnector_SUCCESS=Success
+CdmStoreConnector_DATA_MODEL_CREATION_SUCCESSFUL=Data model created successfully
+CdmStoreConnector_REASON=Reason: 
+CdmStoreConnector_SCHEME_NOT_COMPATIBLE=The database schema for the chosen datasource '%s' \n is not compatible for this version of the taxonomic editor. \n\n%s
+CdmStoreConnector_UPDATE_DATASOUREC_OR_CHOOSE_NEW_DATASOURCE=Please update the chosen datasource or choose a new data source to connect to in the Datasource View.
+CdmStoreConnector_UPDATE_EDITOR_OR_CHOOSE_COMPATIBLE_DATASOURCE=Please update the Taxonomic Editor (Help->Check for Updates) or choose a compatible datasource
+ConfiguratorComposite_CONFIGURE=Configure
+
+RankMenuPreferences_display=Choose available ranks
+RankMenuPreferences_sort=Sort ranks hierarchically (default is alphabetically)
+RemotingLoginDialog_CONNECTION_FAILED_MESSAGE=Could not connect to CDM Server. Please check Internet connection and try again.\nIf the problem persists ask your system administrator or contact EditSupport@bgbm.org.
+RemotingLoginDialog_CONNECTION_TIMEOUT_MESSAGE=The connections to the CDM Server has timed out. Your Internet connection appears to have bad quality, please try again.\nIf this isn't a temporary problem ask your system administrator or contact EditSupport@bgbm.org.
+RemotingLoginDialog_CONNECTION_FAILED_TITLE=Connection to CDM server failed
+RemotingLoginDialog_DEFAULT_LOGIN=Default: %s (login), %s (password)
+RemotingLoginDialog_CHOOSE_COMPATIBLE_CDM_SERVER=Please choose a compatible cdm-server or update the chosen cdm-server
+RemotingLoginDialog_SCHEMA_MISSING=Database schema is missing. Please create database schema.\nNOTE: Any existing data in this database will be deleted if present!
+RemotingLoginDialog_NO_SCHEMA=No Schema
+RemotingLoginDialog_MSG_UPDATE_SCHEMA_VERSION=Database requires schema update. Please update to latest schema
+RemotingLoginDialog_LABEL_ADVANCED=advanced
+RemotingLoginDialog_LABEL_CDM_INSTANCE=Database : 
+RemotingLoginDialog_LABEL_CDM_SERVER=CDM Server : 
+RemotingLoginDialog_LABEL_CONNECT=Connect
+RemotingLoginDialog_LABEL_CREATE_SCHEMA=Create Schema
+RemotingLoginDialog_LABEL_UPDATE_SCHEMA_VERSION=Update Schema
+RemotingLoginDialog_LABEL_EDITOR_CDM_VERSION=Editor CDM Version :
+RemotingLoginDialog_LABEL_EDITOR_CDMLIB_VERSION=Editor Cdmlib Version :
+RemotingLoginDialog_LABEL_LOGIN=Login
+RemotingLoginDialog_LABEL_LOGIN_COLON=Login : 
+RemotingLoginDialog_LABEL_PASSWORD=Password : 
+RemotingLoginDialog_LABEL_PORT=Port : 
+RemotingLoginDialog_LABEL_REFRESH=Refresh
+RemotingLoginDialog_LABEL_REMEMBER_ME=Remember Me
+RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES=Retrieve Server Instances
+RemotingLoginDialog_LABEL_SERVER_CDM_VERSION=Server CDM Version :
+RemotingLoginDialog_LABEL_SERVER_CDMLIB_VERSION=Server Cdmlib Version :
+RemotingLoginDialog_LABEL_STOP_MANAGED_SERVER=Stop Managed Server
+RemotingLoginDialog_LOGIN_CANNOT_BE_EMPTY=User login cannot be empty
+RemotingLoginDialog_MESSAGE_PORT_SHOULD_BE_INTEGER=Port should be an integer
+RemotingLoginDialog_PASSWORD_CANNOT_BE_EMPTY=Password cannot be empty
+RemotingLoginDialog_SERVER_LAUNCH_ERROR=CDM Server launch error
+RemotingLoginDialog_STATUS_AVAILABLE=Available
+RemotingLoginDialog_STATUS_CHECKING=Checking ...
+RemotingLoginDialog_STATUS_ERROR=Error
+RemotingLoginDialog_STATUS_NO_INSTANCES_FOUND=No Instances Found
+RemotingLoginDialog_STATUS_NOT_AVAILABLE=Not Available
+RemotingLoginDialog_STATUS_NOT_COMPATIBLE=Not Compatible
+RemotingLoginDialog_STATUS_NOT_STARTED=Not Started
+RemotingLoginDialog_STATUS_REMOTING_NOT_ACTIVATED=Remoting not activated
+RemotingLoginDialog_STATUS_RETRIEVING=Retrieving ...
+RemotingLoginDialog_STATUS_STARTED=Started
+RemotingLoginDialog_UPDATE_EDITOR=Please update the Taxonomic Editor (Help->Check for Updates) or choose a compatible cdm-server
+RemotingLoginDialog_COULD_NOT_STOP_SERVER=Could not stop managed server running at port %s. Please stop it manually.
+RemotingLoginDialog_ERROR_GENERATING_CONFIG_FILE=Error generating server config file
+RemotingLoginDialog_ERROR_STARTING_SERVER=Error starting managed server
+RemotingLoginDialog_ERROR_STOPPING_SERVER=Error stopping managed server
+RemotingLoginDialog_GENERATING_CONFIG_FILE=Generating datasources config file for %s
+RemotingLoginDialog_JOB_SERVER_LAUNCH=Managed CDM Server Launch
+RemotingLoginDialog_STARTING_MGD_SERVER=Starting Managed CDM Server. This may take a while.
+RemotingLoginDialog_TASK_LAUNCHING_SERVER=Launching Managed CDM Server
+RemotingLoginDialog_MISSING_PERMISSION=Your credentials are valid but you are not permitted to use the TaxEditor with the selected data source
+
+EditPasswordElement_PLEASE_CREATE_OR_SAVE_USER=Please create or save user '%s' before changing password
+EditPasswordElement_USERNAME_DOES_NOT_EXIST=Username does not exist
+EmptySection_NO_VIEW_IMPLEMENTED=Unknown element. Details can not be shown.
+PasswordWizard_COULD_NOT_CHANGE_PWD=Could not change password
+PasswordWizard_OLD_PWD_INCORRECT=The old password is not correct.
+PasswordWizard_PROBLEM_WITH_CHANGING_PWD=Problem with changing password
+PasswordWizard_PWD_COULD_NOT_BE_CHANGED=The password could not be changed. 
+PasswordWizardPage_CHANGE_PASSWORD=Change password
+PasswordWizardPage_CHANGE_PASSWORD_AND_CONFIRM=Change password and confirm with current password
+PasswordWizardPage_NEW_PASSWORD=New Password
+PasswordWizardPage_OLD_PASSWORD=Old Password
+PasswordWizardPage_PASSWORD_MIN_CHARACTER=Password has to have at least %s characters
+PasswordWizardPage_PASSWORDS_DO_NOT_MATCH=The passwords do not match
+PasswordWizardPage_REPEAT_PASSWORD=Repeat Password
+
+SearchManager_LARGE_RESULT_EXPECTED=Large result expected
+SearchManager_LONG_SEARCH_WARNING=The current search will return %s objects. This will take a long time and/or might render the editor unusable. Please consider refining your search.\nSearch anyway?
+
+SupplementalDataPreferences_0=Show UUID and object ID in supplemental data view
+SupplementalDataViewPart_VIEWER_NAME=Supplemental Data
+
+DefinedTermDropAdapterE4_MOVE_DESCRIPTIONS=Move Terms
+DefinedTermDropAdapterE4_MOVE_FAILED=Move failed
+DefinedTermDropAdapterE4_MOVE_FAILED_MESSAGE=Cannot move term onto itself or its children
+DefinedTermDropAdapterE4_MOVE_FAILED_SAVE_MESSAGE=Moving the term failed. Try saving before.
+DefinedTermDropAdapterE4_TERM_TYPE_ERROR_MESSAGE=The term type of the dropped term does not match the target term type.
+DefinedTermDropAdapterE4_TERM_TYPE_ERROR_TITLE=Term types do not match
+
+DebugPreferences_0=Show up widget is disposed error messages
+DebugPreferences_1=Disable services api timestamp check
+DefaultFeatureTreePreferenecs_0=Default Feature Tree to be used for textual descriptions
+DefaultFeatureTreePreferenecs_1=Default Feature Tree to be used for structured descriptions
+
+DefinedTermEditorE4_SAVE_MESSAGE=You have made changes that must be saved before this query can be executed. Would you like to save?
+DefinedTermEditorE4_SAVE_TITLE=Save changes
+DefinedTermMenu_FEATURE_TREE=Term Tree
+DefinedTermMenu_MENU=Menu
+DefinedTermMenu_OTHER_S=Other %ss
+DefinedTermMenu_OTHERS=Others
+DefinedTermMenu_TERM_EDITOR=Term Editor
+DetailsViewerE4_TAXON_HAS_NO_NAME=Taxon has no name. Details can not be shown.
+DetailsViewPart_VIEWER_NAME=Details
+
+AuthenticatedUserBar_LOGGED_IN_AS=Logged in as: %s         
+AuthenticatedUserBar_NOT_LOGGED_IN=Not logged in   
+
+PresenceAbsenceMenuPreferences_choose=Choose available distribution states
+PresenceAbsenceTermDetailElement_CHOOSE_COLOR=Choose color
+PresenceAbsenceTermDetailElement_COLOR_NOT_SET=Color could not be set
+PresenceAbsenceTermDetailElement_LABEL_COLOR=Color  
+PreservationMethodMenuPreferences_select=Choose available preservation methods
+
+DeleteConfiguration_media_removeFromGallery=Remove the media from the image gallery but leave it in database
+DeleteConfiguration_media_deleteIfUsedInTaxonDescription=Delete also if media is used in taxon description
+DeleteConfiguration_media_deleteIfUsedSomeWhereElse=Delete the media also if it is used somewhere else        
+DeleteConfiguration_media_delete=Remove the media from the image gallery and delete the media completely, if possible
+DeleteResultMessagingUtils_ABORT=Delete was aborted
+DeleteResultMessagingUtils_SUCCES=Delete was successful
+DeleteTermBaseOperation_CANNOT_DELETE_TERM=Cannot delete defined term
+DeleteTermBaseOperation_CANNOT_DELETE_VOC=Cannot delete vocabulary
+DeleteTermBaseOperation_DELETE_ALL_TERMS_BEFORE=Delete all terms from this vocaulary before deleting the vocabulary.
+DeleteTermBaseOperation_DELETE_FAILED=Delete failed
+DeleteTermBaseOperation_SYSTEM_TERM=This is a CDM system defined term
+DeleteTermBaseOperation_SYSTEM_VOC=This is a CDM system vocabulary
+DeleteTermBaseOperation_TERM_INCLUDES_OTHERS=This term includes other terms. Please delete the included terms before deleting this term.
+DeleteTermBaseOperation_TERM_INLCUDES=Term has included terms
+DeleteTermBaseOperation_VOC_NOT_EMPTY=Vocabulary not empty
+
+DeleteConfiguration_descriptiveDataSet_deleteAllSpecimenDesc=Specimen descriptions
+DeleteConfiguration_descriptiveDataSet_deleteAllLiteratureDesc=Literature descriptions
+DeleteConfiguration_descriptiveDataSet_deleteAllDefaultDesc=Default descriptions
+DeleteConfiguration_descriptiveDataSet_deleteAllAggregatedDesc=Aggregated descriptions
+DeleteConfiguration_descriptiveDataSet_deleteSelection=Fully delete the following related descriptions\nUnchecked descriptions stay in the database attached to their taxa/specimens:
+
+DeleteConfiguration_descriptionFromDescriptiveDataSet_onlyRemove=Remove description only from descriptive dataset
+NewGrantedAuthority_AlreadyInDb=The granted authority already exists.
+
+SetSecundumConfiguration_IncludeAcceptedTaxa=Include accepted taxa
+SetSecundumConfiguration_IncludeSynonyms=Include synonyms
+SetSecundumConfiguration_OverwriteExistingAccepted=Overwrite existing references for accepted taxa
+SetSecundumConfiguration_OverwriteExistingSynonyms=Overwrite existing references for synonyms
+SetSecundumConfiguration_EmptySecundumDetail=Delete existing secundum reference details (recommended)
+SetSecundumConfiguration_IncludeSharedtaxa=Include shared taxa
+SetSecundumConfiguration_NewSecundum_Label=New secundum reference:
+SetSecundumConfiguration_Description=If no reference is chosen existing secundum references are deleted.
+SetSecundumConfiguration_Description_Configurator=Configure how to perform the set secundum reference operation.
+SetSecundumConfiguration_Title=Configuration
+
+DatabasePreferncesPage_Is_redList=Red List 2020
+DatabasePreferncesPage_Determination_only_for_field_unnits=Determinations only for field units
+DatabasePreferncesPage_Show_Collecting_Areas_in_general_section=Collecting areas in general section
+DatabasePreferncesPage_Show_Specimen_List_Editor=Show specimen list editor
+DatabasePreferncesPage_Taxon_Associations=Taxon associations in details view
+
+DatabasePreferencesPage_Biocase_Provider=Biocase provider
+DatabasePreferencesPage_details_view_configuration=Details view
+DatabasePreferencesPage_show_only_simple_details_view=Show only simple details view
+DatabasePreferencesPage_show_taxon=Show taxon
+DatabasePreferencesPage_show_lsid=Show LSID
+DatabasePreferencesPage_show_nomenclatural_code=Show nomenclatural code
+DatabasePreferencesPage_show_namecache=Show name cache
+DatabasePreferencesPage_show_appended_phrase=Show appended phrase
+DatabasePreferencesPage_show_rank=Show rank
+DatabasePreferencesPage_show_atomised_epithets=Show atomised epithets
+DatabasePreferencesPage_show_authorship_cache=Show authorship cache
+DatabasePreferencesPage_show_author_section=Show author section
+DatabasePreferencesPage_Show_nomenclatural_Ref=Show nomenclatural reference
+DatabasePreferencesPage_Show_nomenclaturalStatus=Show nomenclatural status
+DatabasePreferencesPage_Show_Protologue=Show protologue
+DatabasePreferencesPage_Show_Type_designation=Show type designation
+DatabasePreferencesPage_Show_NameRelations=Show name relations
+DatabasePreferencesPage_Define_Default_NomenclaturalCode=Default nomenclatural code
+DatabasePreferencesPage_UseLocalPreferences=Allow to use local preference
+DatabasePreferencesPage_Specimen_Or_Observation=Specimen or observation
+DatabasePreferncesPage_Life_Form=Show Life-Form in details view of field units
+DatabasePreferencesPage_SetPublishFlag=Configure the handling of publish flag for new taxa
+
+ImportFromFileAndChooseVocIdWizardPage_AreaVoc=Area Vocabulary
+ImportFromFileAndChooseVocIdWizardOage_AreaVoc_toolTip=Please choose a vocabulary for the used areas.
+ExcelDistributionUpdateWizard_ConfiguratorWizard_label=Configure Excel distribution update
+AbstractImportWizard_ConfigurationLabel=Configure the Import
+TaxonNodeWizardPage_edit=Edit Taxon Node
+TaxonNodeWizardPage_new=New Taxon
+TaxonNodeWizardPage_no_classification=No classification set.
+TaxonNodeWizardPage_no_taxon_name=No taxon name set.
+TaxonNodeWizardPage_not_all_required_fields=Not all required fields are filled.
+TaxonNodeWizardPage_PLACEMENT_SOURCE=Placement source
+TaxonNodeWizardPage_PARENT=Parent
+TaxonNodeWizardPage_PLACEMENT_SOURCE_DETAIL=Detail
+TaxonNodeWizardPage_NEW_TAXON=New Taxon
+TaxonNodeWizardPage_TAXON=Taxon
+TaxonNodeWizardPage_REUSE_EXISTING_TAXON=Reuse existing taxon
+TaxonNodeWizardPage_REUSE_EXISTING_NAME=Reuse existing name
+TaxonNodeWizardPage_SECUNDUM_REFERENCE=Secundum reference
+TaxonNodeWizardPage_PLACEMENT_NOTES=Placement notes
+TaxonNodeWizardPage_CLASSIFICATION=Classification
+TaxonNodeWizardPage_TAXON_NODE=Taxon node
+TaxonNodeWizardPage_TAXON_INFORMATION=Taxon information
+TaxonNodeWizardPage_TAXON_IS_PUBLISH=Taxon is publish
+TaxonomicEditorGeneralPreferences_background=Run long running operations in background
+TaxonomicEditorGeneralPreferences_connect=Connect to last used datasource when launching
+TaxonRelationshipTypeMenuPreferences_configure=Configure taxon relationship types
+TaxonSearchPreferences_0=Open search results in separate windows
+TCSImportWizard_ConfiguratorWizard_label=Configure the TCS import
+FeatureMenuPreferences_display=Choose available features
+TermTreeEditorComposite_ADD_FEATURE=Add a term to this term tree.
+TermTreeEditorComposite_FEATURE_TREE=Term Tree
+TermTreeEditorComposite_OPEN_TREE=Open Tree
+TermTreeEditorComposite_REMOVE_FEATURE=Remove a term from this term tree.
+FeatureTreeSelectionDialog_CHOOSE_TREE=Choose a term tree
+FeatureTreeSelectionDialog_ENTER_LABEL=Enter label for term tree
+FeatureTreeSelectionDialog_NEW_TREE=New Term tree
+FeatureTreeSelectionDialog_TREE_LABEL=Term tree label
+
+NonViralNameDetails_confirmDeleteOfZoologicalNameParts=The publication and original publication year needs to be removed
+NonViralNameDetails_descriptionDeleteZoologicalNameParts=If you click Yes, the original publication and publication year is removed and the nomenclatural code is changed.
+NonViralNameDetails_confirmDeleteOfBacterialNameParts=The name approbiation needs to be removed
+NonViralNameDetails_desciptionDeleteOfBacterialNameParts=If you click Ok, the name approbiation is removed and the nomenclatural code is changed.
+NonViralNameDetails_confirmDeleteOfFungiNameParts=The fungi information anamorph will be lost
+NonViralNameDetails_descriptionDeleteOfFungiNameParts=If you click Ok, the anamorph flag is removed and the nomenclatural code is changed.
+NonViralNameDetails_confirmDeleteOfCultivarNameParts=The cultivar name needs to be removed
+NonViralNameDetails_descriptionDeleteOfCultivarNameParts=If you click Ok, the cultivar name is removed and the nomenclatural code is changed
+
+NamedAreaTypeMenuPreferences=Choose available named area types
+NameDetailsViewComposite_Show_TypeDesignation=Name type designation section
+NameDetailsViewComposite_Show_Namerelationships=Name relationship section
+NameDetailsViewComposite_Show_Hybrid=Hybrid section
+NameDetailsViewComposite_Show_NameApprobiation=Name approbiation (for bacterial names)
+NameDetailsViewComposite_Show_Taxon=Taxon of the name
+NameDetailsViewComposite_Show_SecDetail=Secundum reference details
+NameDetailsViewComposite_SecEnabled=Secundum enabled (editing in details view possible)
+NameDetailsViewComposite_Show_LSID=Lsid of the name
+NameDetailsViewComposite_Show_NomenclaturalCode=Nomenclatural code
+NameDetailsViewComposite_Show_NameCache=Name cache of the name (only the scientific name without the author and year)
+NameDetailsViewComposite_Show_AppendedPhrase=Appended phrase
+NameDetailsViewComposite_Show_Rank=Rank of the name
+NameDetailsViewComposite_Show_AtomisedEpithets=Atomised epithets
+NameDetailsViewComposite_Show_AuthorCache=Authorship cache
+NameDetailsViewComposite_Show_Author=Whole authorship section
+NameDetailsViewComposite_Show_NomenclaturalReference=Nomenclatural reference section
+NameDetailsViewComposite_Show_NomenclaturalStatus=Nomenclatural status section
+NameDetailsViewComposite_Show_Protologue=Protologue section
+
+NameDetailsViewConfiguration_activateSimpleDetailsView=Show simplified name details view with the following elements:
+NameDetailsViewConfiguration_useLocalSettings=Use local settings for display of name details
+
+NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsidered=Rule Considered
+NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsideredCodeEdition=Code edition of rule considered
+NameDetailsViewComposite_Show_Namerelationships_RuleConsidered=Rule considered
+NameDetailsViewComposite_Show_Namerelationships_RuleConsideredCodeEdition=Code edition of rule considered
+
+SetPublishConfiguration_Publish=Set Publish Flag
+SetPublishConfiguration_Publish_tooltip=With set publish flag, the taxa are published in data portal and print publications
+SetPublishConfiguration_Description_Configurator=Configure where the publish flag should be set
+SetPublishConfiguration_IncludeAcceptedTaxa=Accepted taxa
+SetPublishConfiguration_IncludeSharedtaxa=Shared taxa (for accepted taxa, misapplications and pro parte synonyms)
+SetPublishConfiguration_IncludeSynonyms=Synonyms
+SetPublishConfiguration_IncludeProParteSynonyms=Pro Parte Synonyms
+SetPublishConfiguration_IncludeMisappliedNames=Misapplied Names
+SetPublishConfiguration_IncludeHybrids=Hybrids
+
+ExcelSpecimenUpdateWizard_ConfiguratorWizard_label=Configuration of excel specimen import
+ExcelTaxonUpdateWizard_ConfiguratorWizard_label=Configuration of excel taxon import
+ExperimentalFeaturesPreferences=Show experimental features
+ExtensionTypeMenuPreferences_choose=Choose available extension types
+ExternalServicesPreferences_max_height=Maximum Height
+ExternalServicesPreferences_max_width=Maximum Width
+
+SetPublishConfiguration_Title=Configuration for setting the publish flag
+SetPublishConfiguration_publish=publish
+SetPublishConfiguration_dont_publish=don't publish
+
+SearchDialog_patternLabel=Use * for wildcard
+SearchDialogPreferences_0=Show object id in entity selection dialogs
+SearchDialogPreferences_1=Set search for Identifier as default
+SearchDialogPreferences_2=Search for identifier and titleCache, if identifier search is enabled
+SearchDialogPreferences_3=In selection dialogs for taxa, sort by rank and name
+SearchDialogPreferences_4=Filter common name references
+
+SelectionViewMenu_selectVocabulary=choose vocabulary
+SelectionViewMenu_SET_FLAG='%s' set flag
+SelectionViewMenu_4_YES=Yes
+SelectionViewMenu_NO=No
+
+AbcdImportPreference_create_Individual_Association=Create an Individual Association for each specimen
+AbcdImportPreference_create_Individual_Association_tooltip=For each specimen associated to a taxon an individual association to this taxon is created
+AbcdImportPreference_create_new_classification_new_taxa=Create new classification for new taxa
+AbcdImportPreference_create_new_classification_new_taxa_tooltip=For taxa not existing in the database a new classification will be created
+AbcdImportPreference_description=Configure the default settings for the ABCD Import
+AbcdImportPreference_ignore_author=Ignore authorship for name matching
+AbcdImportPreference_ignore_author_tooltip=Name matching with existing names will be done without the authorship part of the name
+AbcdImportPreference_import_all_children_for_cultures_or_tissues=Import all children of cultures or tissue samples
+AbcdImportPreference_import_all_children_for_cultures_or_tissues_tooltip=For a tissue sample or culture all children will be searched and imported
+AbcdImportPreference_map_unit_nr_catalog_number=Unit ID mapping
+AbcdImportPreference_map_unit_number_catalog_number_tooltip=The Unit ID of every ABCD unit will be imported as accession number, barcode or catalogue number according to the selection
+AbcdImportPreference_map_unit_number_barcode=Map UnitID to barcode
+AbcdImportPreference_map_unit_number_barcode_tooltip=The UnitID of every ABCD unit will be mapped the barcode of the specimen
+AbcdImportPreference_map_unit_number_to_accession_number=Map UnitID to accession number
+AbcdImportPreference_media_as_mediaSpecimen=Import media as media specimen
+AbcdImportPreference_media_as_subUnit=Any media attached to a ABCD unit will be imported as a sub derivative of the specimen created from this unit
+AbcdImportPreference_not_import_existing_specimen=Do not import existing specimens
+AbcdImportPreference_not_import_existing_specimen_tooltip=Specimens that have previously been imported will be ignored in this import
+AbcdImportPreference_remove_country_from_locality=Remove country from locality text
+AbcdImportPreference_remove_country_from_locality_tooltip=If the locality text contains information about the country which is additionally stored in other ABCD elements then it is removed from the locality text
+AbcdImportPreference_reuse_descriptive_group=Reuse existing descriptive group
+AbcdImportPreference_reuse_descriptive_group_tooltip=Reuse one of the existing descriptive groups or create a new one for every import
+AbcdImportPreference_reuse_existing_taxa=Reuse existing taxa when possible
+AbcdImportPreference_reuse_existing_taxa_tooltip=Reuse existing taxa when the name matches the identified name of the specimen
+Preference_allow_override=Allow override
+Preference_override_allowed=Override allowed
+AbcdImportPreference_allow_override_tooltip=It is allowed to change this preference locally.
+AbcdImportPreference_override=Use local preference
+AbcdImportPreference_override_tooltip=Use local preference for ABCD import configurator.
+AbcdImportPreference_provider_for_associated_dna=Biocase Provider for associated DNA
+
+AbcdImportProvider_description=Configure the default list of biocase provider for the specimen search
+AbcdImportProvider_description_not_available=Local preferences are not allowed for biocase provider.\nIf you want to change the preference please contact an administrator.
+AvailableAreaVocabulariesPage_PAGE_DESCRIPTION=Select vocabularies to select the available areas from.
+AvailableAreaVocabulariesPage_PAGE_TITLE=Select Vocabularies for %s
+AvailableDistributionPage_CHECK_MESSAGE=Please check at least one item
+AvailableDistributionPage_PAGE_DESCRIPTION=In order to see and modify distribution status of taxa\nyou have to select the areas which you like to see/modify.
+AvailableDistributionPage_PAGE_TITLE=Select areas for Distribution Editor
+AvailableDistributionStatusPage_PAGE_DESCRIPTION=Choose available status in distribution editor.\nIf no status is selected all status are available.
+AvailableDistributionStatusPage_PAGE_TITLE=Select Distribution Status
+AvailableDistributionStatusWizard_PAGE_TITLE=Available Distribution Status
+AvailableDistributionStatusWizard_WINDOW_TITLE=Distribution Status Selection
+AvailableDistributionStatusWizard_WIZARD_TITLE=Distribution Status Selection
+AvailableDistributionWizard_CHECK_MESSAGE=Please check at least one item
+AvailableDistributionWizard_PAGE_TITLE=Available Distribution
+AvailableDistributionWizard_WINDOW_TITLE=Distribution Selection Wizard
+AvailableVocabularyWizard_PAGE_TITLE=AvailableDistributionPage
+AvailableVocabularyWizard_WINDOW_TITLE=Vocabulary Selection
+AvailableVocabularyWizard_WIZARD_TITLE=Vocabulary Selection
+
+CheckBoxTreeComposite_SELECT_DIRECT_CHILDREN=Toggle selection on direct children
+ChecklistEditorGeneralPreference_0=The CDM settings don't allow to set the preferences for using the distribution editor locally. If you need to make local settings, please ask an administrator.
+ChecklistEditorGeneralPreference_enable=Enable Distribution Editor
+ChecklistEditorGeneralPreference_open_distribution_selection=Select Area Vocabularies
+ChecklistEditorGeneralPreference_open_wizard=List of available area vocabularies
+ChecklistEditorGeneralPreference_show_rank=Show rank column
+ChecklistEditorGeneralPreference_sort_areas=Sort areas by order in vocabulary
+ChecklistEditorGeneralPreference_numberFormatExceptionLabel=The value needs to be a positive integer.
+ChecklistEditorGeneralPreference_numberOfStatus=Number of status shown in drop down
+ChecklistEditorGeneralPreference_tooltip_numberOfStatus=Number of status shown in drop down without scrollbar
+ChecklistEditorGeneralPreference_Configure_status_order=Status order in drop down
+
+GeneralPreference_allowOverride=Allow override
+GeneralPreference_yes=Yes
+GeneralPreference_no=No
+
+ChecklistEditorGeneralPreference_show_id_in_voc=ID in Vocabulary
+ChecklistEditorGeneralPreference_show_symbol1=Symbol
+ChecklistEditorGeneralPreference_show_symbol2=Symbol 2
+ChecklistEditorGeneralPreference_show_title=Lable
+ChecklistEditorGeneralPreference_show_symbol=Show symbol of the status, if existing
+ChecklistEditorGeneralPreference_STATUS_DISPLAY_TEXT=Configure how the status should be displayed
+ChecklistEditorGeneralPreference_own_Description=Create own fact dataset for distributions created by the Distribution Editor
+ChecklistEditorGeneralPreference_own_DescriptionToolTip=Entries created with the Distribution Editor, saved in an own Taxon Description
+GeneralPreference_override=Override
+ChecklistEditorGeneralPreference_Configure_display_of_Areas=Display of areas in the header
+ChecklistEditorGeneralPreference_Configure_display_of_Status=Display of distribution status in the table
+ChecklistEditorGeneralPreference_Configure_display_of_Status_in_Combo=Display of distribution status in drop-down
+
+GfBioTerminologyImportPresenter_NO_CONNECTION_MESSAGE=Could not retrieve data from web service
+GfBioTerminologyImportPresenter_NO_CONNECTION_TITLE=Web service unavailable
+GfBioTerminologyImportPresenter_NO_RESULTS_MESSAGE=No results found for the query.
+GfBioTerminologyImportPresenter_NO_RESULTS_TITLE=No results found
+GfBioTerminologyImportPresenter_COMBO_DEFAULT=All ontologies
+GfBioTerminologyImportPresenter_TEXT_SEARCH_DEFAULT=Use "*" for wildcard searching
+GfBioTerminologyImportPresenter_SEARCH_TOO_SHORT_MESSAGE=Search phrase with <4 letters are not possible for all ontologies. Please select a specific ontology
+GfBioTerminologyImportPresenter_SEARCH_TOO_SHORT_TITLE=Search phrase too short
+
+PublishEnum_publish=Publish
+PublishFlagPreference_description=Default value of the publish flag of a newly created taxon
+PublishFlagPreference_description_not_allowed=The configuration of the default settings for the publish flag in new created taxa is not possible in local preferences. \nIf you want to change the configuration, please contact an administrator.
+PublishFlagPreference_do_not_set=Don't set publish flag
+PublishFlagPreference_inherit=Inherit from parent
+PublishFlagPreference_set=Set publish flag
+
+NomenclaturalCodePreferences_available_codes=Available Codes
+NomenclaturalCodePreferences_choose=Choose which nomenclatural code you would like to use in your local application for scientific names unless otherwise specified.
+NomenclaturalCodePreferences_description=Nomenclatural default code for creation of new taxon names
+NomenclaturalCodePreferences_localChangesNotAllowed=The CDM settings don't allow to set the nomenclatural code locally. If you need to make local settings, please ask an administrator.
+NomenclaturalCodePreferences_useLocalCode=Use local nomenclatural code
+NomenclaturalStatusTypeMenuPreferences_1=Configure nomenclatural status types
+
+NameDetailsViewConfiguration_description=Configure the name details view. The selected parts are displayed, others are not visible.
+NameDetailsViewConfiguration_description_not_available=The configuration of the name details view is not possible in local preferences. \nIf you want to change the configuration, please contact an administrator.
+NameRelationshipTypeMenuPreferences_relationshipTypes=Configure name relationship types
+NameRelationshipWizardPage_description=Choose namerelationship type and related name
+NameTypeDesignationElement_4=Citation will be removed
+NameTypeDesignationElement_5=When changing the type from lectotype to a non lectotype the lectotype reference will be removed.\nDo you want to continue?
+NameTypeDesignationStatusMenuPreferences_configure=Configure name type designation status
+NavigatorOrderEnum_1=Alphabetical Order
+NavigatorOrderEnum_3=Natural Order
+NavigatorOrderEnum_5=Rank and Name Order
+
+DateDetail_parseText_tooltip=This field is for quick data entry. The content is parsed and the atomised fields will be filled, the content of this field will not be saved.
+
+GeneralPreference_open_common_name_area_selection=Select Areas
+
+VokabularyAdminPreferences_SELECT_VOCABULARY_TEXT=Choose available area vocabularies for common names
+SpecimenConfiguration_description=Select whether you want to edit specimen related data and how they should be displayed
+SpecimenOrObservationPreferences_0=The CDM settings don't allow to set the preferences for the display of specimen and observations locally. If you need to make local settings, please ask an administrator.
+SpecimenOrObservationPreferences_1=Set the preferences for the display of specimen and observations
+SpecimenTypeDesignationStatusMenuPreferences_configure=Configure specimen type designation status
+StageMenuPreferences_choose=Choose available stages
+DatabasePreferncesPage_Show_IOMenu=Show Import/Export menu entries
+DatabasePreferncesPage_Show_Specimen=Show specimen related views and menu entries
+DatabasePreferncesPage_Show_MediaView=Show Media View
+DatabasePreferncesPage_Show_ChecklistPerspective=Show Checklist Perspective as default Perspective
+DatabasePreferncesPage_Show_TaxonNodeWizard=Taxon Nodes can be edited in Wizard
+
+DatabasePreferncesPage_Show_Id_In_SelectionDialog=Show ID in selection dialogs
+DatabasePreferncesPage_Search_for_identifier_as_default=Use identifier search as default
+DatabasePreferncesPage_search_for_identifier_and_titleCache=Search also for title cache if identifier search is activated
+DatabasePreferncesPage_Sort_Taxa_By_Name_And_Rank=Sort taxa by rank and name
+DatabasePreferncesPage_CommonNameFilter=Filter common name references
+DatabasePreferncesPage_NamedAreaSearchField=Searchfield for named areas
+
+Distribution_status_selection=Status Selection
+DistributionAdminPreferences_SELECT_STATUS=List of available distribution status
+DistributionAdminPreferences_PER_AREA_STATUS=List of preferences defining available status per area.\nWith the mostright button you can edit the selected area specific status preference.\nFor defining new area specific status preference please use the button below the table
+DistributionAdminPreferences_DEFAULT_AREA_STATUS_NOT_ALLOWED=Actual status selection, the area specific selection is only available for serverside preferences.\nThe editing of the default status is not allowed in local preferences, if you need to edit them please contact an administrator.
+DistributionAdminPreferences_DEFAULT_AREA_STATUS=Actual status selection, the area specific selection is only available for serverside preferences.\nFor editing the default status selection use the button below
+
+MarkerTypeMenuPreferences_display=Choose available markers
+MeasurementUnitMenuPreferences_edit=Edit displayed measurement units
+MediaDetailElement_LOAD_IMAGE=Load image
+MediaDetailElement_Media_URI=Media URI
+MediaDetailElement_NO_FILE_FOUND=No file found
+MediaDetailElement_NO_PREVIEW=No preview available for this file type
+MediaDetailElement_TOGGLE_NOT_POSSIBLE_MESSAGE=Media consists of multiple representations or representatio parts
+MediaDetailElement_TOGGLE_NOT_POSSIBLE_TITLE=Toggling not possible
+MediaDetailElement_SHOW_IMAGE=Show Image
+MediaDetailElement_RELOAD_IMAGE=Reload Image
+
+
+MediaPreferences_advanced=Show Advanced Media View in Details View
+MediaPreferences_preview=Show Preview in Media View (Tree View)
+
+ToggleableText_ToolTip_closed=Cache is created automatically from atomized data, cache protected against manual entries
+ToggleableText_ToolTip_open=Cache can be edited manually, editing the atomized data has no effect on the cache (not recommended)
+TypeDesignationPreferences_typeDesignationsToAllNames=Add type designations to all names in a homotypical group
+TypeDesignationSection_ADD_TYPE=Add a type designation
+TypeDesignationSection_CREATE_DUPLICATE=Create type duplicate
+TypeDesignationSection_DUPLICATE_FAILED=Duplicating type failed
+TypeDesignationSection_NO_TYPES_YET=No type information yet.
+TypeDesignationSection_TYPE_DESIGNATIONS=Type Information
+
+FeatureTreeDropAdapter_CHOOSE_VOC=Choose vocabulary for import
+FeatureTreeDropAdapter_IMPORT_NOT_POSSIBLE=Import not possible
+FeatureTreeDropAdapter_MOVE_FAILED_SAVE_MESSAGE=Moving the feature node failed. Try saving before.
+FeatureTreeDropAdapter_ONLY_MOVE_FEATURES=Can only move features to feature trees
+FeatureTreeDropAdapter_ORDER_VOC_NOT_POSSIBLE=The chosen vocabulary is an ordered vocabulary.\nImporting into ordered vocabularies is currently not supported.
+
+DescriptionPreferences_1=Show vocabulary id for term labels
+SupplementalDataPreferences_0=Show UUID and object ID in supplemental data view
+
+TermOrder_idInVoc=ID in Vocabulary
+TermOrder_Title=Title
+TermOrder_natural=Natural
+
+ChecklistEditorGeneralPreference_Configure_area_order=Order of Areas
+Preference_Use_Default= Use Default
+SupplementalDataSourcePreferences_SHOW_ID=Show ID in Source
+SupplementalDataSourcePreferences_SHOW_NAMESPACE=Show ID Namespace
+
+OrderPreferencePage_NotAllowed=The DB preference does not allow to edit this preference locally
+Delete=Delete
+Preference_update=Update
+FactualData_showModifier=Show modifier
+FactualData_showModifier_FreeText=Show modifier freetext
+FactualData_description=If a preference is not selectable, there is a serverside preference not allowed to override.
+FactualData_showIdInVocabulary=Show id in vocabulary in area text field
+FactualData_showIdInVocabulary_tooltip=Show id in vocabulary in area text field of details view
+DistributionAggregationWizardPage_AGGREGATION_MODE=Aggregation mode
+DistributionAggregationWizardPage_AREA=From sub area to super area
+DistributionAggregationWizardPage_AREA_LEVEL=Area Level
+DistributionAggregationWizardPage_CHILD_PARENT=From child to parent taxon
+DistributionAggregationWizardPage_CLASSIFICATION=Aggregate selected classification
+DistributionAggregationWizardPage_DEFAULT=Default - by Presence Absence Term vocabulary
+DistributionAggregationWizardPage_DESCRIPTION=Configure the aggregation
+DistributionAggregationWizardPage_EXPORT_UNPUBLISHED=Export unpublished taxa
+DistributionAggregationWizardPage_HIGHEST_RANK=Highest rank
+DistributionAggregationWizardPage_LOWEST_RANK=Lowest rank
+DistributionAggregationWizardPage_SELECT_AREA=Select Super Areas
+DistributionAggregationWizardPage_SOURCE_MODE_AREA=Source mode sub area/super area
+DistributionAggregationWizardPage_SOURCE_TYPE=Source type
+DistributionAggregationWizardPage_SOURCEMODE_CHILD_PARENT=Source mode child/parent
+DistributionAggregationWizardPage_SOURCEMODE_WITHIN_TAXON=Source mode within taxon
+DistributionAggregationWizardPage_STATUS_ORDER=Status order
+DistributionAggregationWizardPage_TITLE=Distribution aggregation configuration
+DistributionAggregationWizardPage_TOOLTIP_AGGR_MODE=Selecting none deletes all existing aggregated distributions
+DistributionAggregationWizardPage_TOOLTIP_AREA_LEVEL=Selecting the area level to which the distribution should be aggregated
+DistributionAggregationWizardPage_TOOLTIP_AREA_SELECTION=If area aggregation is selected, the super areas can be selected. If none are selected the top level areas are used.
+DistributionAggregationWizardPage_TOOLTIP_SOURCE_TYPE=Type of sources that should be aggregated
+DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_AREA=Defines the source mode if aggregation from sub area to super area is selected.
+DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_CHILD_PARENT=Defines the source mode if aggregation from child to parent taxon is selected.
+DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_WITHIN_TAXON=Defines the source mode if aggragation within taxon is selected.
+AggregationWizardPage_SUBTREE=Aggregation for selected subtree(s) 
+AggregationWizardPage_SINGLE_TAXON=Aggregation only for
+AggregationWizardPage_WITHOUT_CHILDREN= (without children)
+SetAggregationConfiguration_Title=Aggregation configuration;
+StructuredDescriptionAggregationWizardPage_SELECT_SUBTREE=Taxa/subtree(s)
+StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_SUBTREE=If not all subtrees included in the descriptive dataset should be aggregated, select the subtrees for the aggregation
+StructuredDescriptionAggregationWizardPage_SELECT_ALL_SUBTREES=Aggregate all taxa in descriptive dataset
+StructuredDescriptionAggregationWizardPage_SELECT_SELECTED_TAXA_ONLY=Aggregate selected taxon/taxa only
+CommonNameLanguages_Title=Common Name Languages
+CommonNameVocabularyPreferencePage_description=Select the vocabularies for common name area selection.
+CommonNameLanguagePreferencePage_description=Choose the languages available for common names.
+EnumCombo_Placement_status=Placement status
+OriginalSourceAdvancedSection_advanced=more
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/l10n/messages_de.properties b/eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/l10n/messages_de.properties
new file mode 100755 (executable)
index 0000000..1707a2c
--- /dev/null
@@ -0,0 +1,606 @@
+CdmDataSourceViewPart_1=Datenquelle wird geladen
+CdmDataSourceViewPart_10=Server
+CdmDataSourceViewPart_11=Name
+CdmDataSourceViewPart_12=Verbunden
+CdmDataSourceViewPart_2=Notizen
+CdmDataSourceViewPart_3=Kompatibel
+CdmDataSourceViewPart_4=CDM Version
+CdmDataSourceViewPart_5=Erstellt
+CdmDataSourceViewPart_7=Datenquelle
+CdmDataSourceViewPart_8=Typ
+CdmDataSourceViewPart_9=Verf\u00FCgbar
+LanguageEditorPreferencePage_ChooseDefaultLanguage=Bitte wählen Sie die Standardsprache für den Taxonomischen Editor aus.
+LanguageEditorPreferencePage_EditorHasToRestart=Der Anwendung muss neu gestartet werden, um die Sprache zu wechseln.\nWollen Sie jetzt neu starten?
+LanguageEditorPreferencePage_PleaseRestart=Bitte neu starten
+LanguageEditorPreferencePage_RestartRequired=Nach dem Wechsel der Standardsprache ist ein Neustart erforderlich.
+LanguageMenuPreferences_configure=Auswahl der zur Verf\u00FCgung stehenden Sprachen
+LanguageMenuPreferences_warning=\ - Warnung: keine Beschreibung - wird nicht in den Menüs angezeigt
+CommonNameLanguageMenuPreferences_configure=Auswahl der für Trivialnamen zur Verf\u00FCgung stehenden Sprachen
+LanguageRepresentationPreferencePage_global=Wählen Sie die Sprache, für die im gesamten Editor die Repräsentationen ausgewählt werden soll (sofern vorhanden).
+LanguageRepresentationPreferencePage_enable=Aktiviere mehrsprachige Editierbarkeit
+ListComponent_ADD_PROVIDER=Provider hinzufügen
+ListComponent_NO_PROVIDER_AVAILABLE=Keine Provider verfügbar
+ListComponent_REMOVE_PROVIDER=Provider entfernen
+OpenCommonNameAreaWizardAdminHandler_COMMON_NAMES=Trivialnamen
+OpenDistributionEditorWizardHandlerAdminE4_DISTRIBUTION=Verbreitung
+OpenDistributionEditorWizardHandlerE4_DISTRIBUTION=Verbreitung
+OrderPreferences_Restore=Stelle den letzten Navigator Status wieder her
+OrderPreferences_Sorting=Sortierung
+OrderPreferencePage_NewNavigatorWindowRequired=Änderungen werden erst nach dem erneuten Öffnen des Navigators sichtbar.
+OrderPreferencePage_PleaseReopenNavigator=Um die Änderungen zu sehen, müssen Sie den Navigator schließen und neu öffnen.
+DatabaseRepairPage_chooseParameter=Bitte wählen Sie, für welche Bäume der SortIndex neu berechnet werden soll.
+DatabaseRepairPage_updateTaxonNodes=Taxonomischer Baum
+DatabaseRepairPage_toolTip_taxonNode=Die Sortier Indizes des Taxonomischen Baums werden aktualisiert.
+DatabaseRepairPage_PolytomousKeyNode=Polytome Schlüssel
+DatabaseRepairPage_toolTip_polytomousKeyNode=Die Sortier Indizes aller Polytomen Schlüssel werden aktualisiert.
+DatabaseRepairPage_featureNodes=Merkmalsbaum
+DatabaseRepairPage_toolTipFeatureNodes=Die Sortier Indizes des Merkmalsbaumes werden aktualisiert. 
+DatabaseRepairPage_updateTaxonName=Wissenschaftliche Namen
+DatabaseRepairPage_toolTip_TaxonName=Die Caches aller wissenschaftlichen Namen werden aktualisiert.
+DatabaseRepairPage_TaxonBase=Taxa und Synonyme
+DatabaseRepairPage_toolTip_taxonBase=Die Caches aller Taxa und Synonyme werden aktualisiert.
+DatabaseRepairPage_Reference=Referenzen
+DatabaseRepairPage_toolTip_reference=Die Caches aller Referenzen werden aktualisiert.
+DatabaseRepairPage_Specimen=Specimen
+DatabaseRepairPage_toolTip_specimen=Die Caches aller Derived Units und Field Units werden aktualisiert.
+DatabaseRepairPage_TeamOrPerson=Personen und Teams
+DatabaseRepairPage_toolTip_teamOrPerson=Die Caches aller Personen und Teams werden aktualisiert.
+DatabaseRepairPage_description=Die Caches aller ausgewählten Datentypen werden aktualisiert
+DatabaseRepairPage_description_sortIndex=Die Sortier Indizes aller ausgewählten Bäume werden aktualisiert.
+UIPreferences_expand=Klappe Abschnitte im Details View auf, wenn Daten vorhanden sind
+
+UpdateHandler_CHECK_UPDATE_JOB=Check Update Job
+UpdateHandler_INSTALL_JOB=Install Update Job
+UpdateHandler_NO_UPDATE_MESSAGE=Es wurden keine Updates für diese Installation gefunden.
+UpdateHandler_NO_UPDATE_TITLE=Keine Updates vorhanden
+UpdateHandler_UPDATE_INSTALLED_TITLE=Updates installed
+UpdateHandler_UPDATE_INSTALLED_TITLE_MESSAGE=Updates wurden installiert. Wollen Sie neu starten?
+UpdateHandler_UPDATES_FOUND_MESSAGE=Wollen Sie die Updates jetzt installieren?
+UpdateHandler_UPDATES_FOUND_TITLE=Updates gefunden
+UriWithLabelElement_URL_NOT_SAVED=URI wird nicht gespeichert\! 
+UriWithLabelElement_COULD_NOT_OPEN_BROWSER=Externer Browser konnte nicht geöffnet werden. URI ist ung\u00FCtlig.
+UriWithLabelElement_INVALID_URL=Ung\u00FCltige URI
+UriWithLabelElement_OPEN_EXTERNAL_BROWSER=Im Browser öffnen 
+
+DoiWithLabelElement_DOI_NOT_SAVED=DOI wird nicht gespeichert\!
+OrcidWithLabelElement_ORCID_NOT_SAVED=ORCID wird nicht gespeichert\!
+
+ChangeConnectionHandler_ALREADY_CONNECTING=Datenmodell wird erstellt
+ChangeConnectionHandler_CURRENTLY_CONNECTING_ALREADY=Es wird schon das Datenmodell für eine Datenquelle erstellt
+ChangeConnectionHandler_DATASOURCE_NOT_AVAILABLE=Gewählte Datenquelle ist nicht verfügbar
+ChangeConnectionHandler_NOT_AVAILABLE_REASONS=Eventuell ist der Server nicht verfügbar oder erreichbar.\n\nStellen Sie bitte auch sicher, dass sie Netzzugang haben, wenn sie sich zu einer Remote-Datenquelle verbinden.
+ChangeConnectionHandler_CREATE_DATAMODEL=Datenmodell erstellen
+ChangeConnectionHandler_REALLY_CREATE_DATAMODEL=Wollen sie wirklich das Datenmodell für %s erstellen?\n\nACHTUNG: Existierende Daten werden gelöscht!\n\nHinweis: Die Erstellung kann einige Zeit dauern.
+
+LoginDialog_CANCEL_MESSAGE=Ein Abbruch wird die Verbindung zur Datenquelle schließen.
+LoginDialog_LOGIN=Login
+LoginDialog_PASSWORD=Passwort
+LoginDialog_REALLY_CANCEL=Wollen Sie wirklich abbrechen?
+LoginDialog_USER_LOGIN=Benutzer Login
+LoginDialog_USER_NAME=Benutzername
+
+CdmViewerContextMenu_OPEN=\u00d6ffnen (%s)
+CdmViewerContextMenu_OPEN_IN=\u00d6ffnen in...
+
+CdmStoreConnector_AUTHENTICATING_USER=Benutzer authentifizieren
+CdmStoreConnector_CHECK_IF_EDITOR_IS_COMPATIBLE=Überprüfe, ob der Datenquelle mit diesem Editor kompatibel ist
+CdmStoreConnector_CHECK_IF_NON_EMPTY=Überprüfe, ob die Datenquelle nicht leer ist
+CdmStoreConnector_CHECK_IF_REACHABLE=Überprüfe, ob die Datenquelle erreichbar ist
+CdmStoreConnector_COMPATIBILITY_CHECK_FAILED=Datenquellenkompatibilitätscheck fehlgeschlagen
+CdmStoreConnector_COULD_NOT_CONNECT_TO_CHOSEN_DATASOURCE=Verbindung zur ausgewählten Datenquelle fehlgeschlagen
+CdmStoreConnector_COULD_NOT_CREATE_DATAMODEL=Could not create data model
+CdmStoreConnector_CREATING_DATAMODEL=Erstelle Datenmodell für %s
+CdmStoreConnector_ERROR_DURING_DATAMODEL_CREATION=Ein Fehler ist aufgetreten bei der Erstellung des Datenmodells für: %s\nBitte leeren Sie die Datenbank und versuchen es erneut.
+CdmStoreConnector_SUCCESS=Erfolgreich
+CdmStoreConnector_DATA_MODEL_CREATION_SUCCESSFUL=Datenmodell wurde efolgreich erstellt
+CdmStoreConnector_REASON=Grund: 
+CdmStoreConnector_SCHEME_NOT_COMPATIBLE=Das Datenbankschema für die gewählte Datenquelle '%s' \n ist nicht kompatibel mit dieser Version des Editors. \n\n%s
+CdmStoreConnector_UPDATE_DATASOUREC_OR_CHOOSE_NEW_DATASOURCE=Bitte aktualisieren Sie die ausgewählte Datenquelle oder wählen Sie eine neue Datenquelle aus.
+CdmStoreConnector_UPDATE_EDITOR_OR_CHOOSE_COMPATIBLE_DATASOURCE=Bitte aktualisieren Sie den Taxonomic Editor (Hilfe->Suche nach Updates) oder wählen sie eine kompatible Datenquelle
+ConfiguratorComposite_CONFIGURE=Einstellungen
+
+RankMenuPreferences_display=Auswahl der zur Verf\u00FCgung stehenden Ränge
+RankMenuPreferences_sort=Sortiere Ränge hierarchisch (default ist alphabetisch)
+RemotingLoginDialog_CONNECTION_FAILED_MESSAGE=Eine Verbindung zum CDM-Server konnte nicht hergestellt werden. Bitte überprüfen Sie die Internetverbindung und versuchen es erneut.\nWenn das Problem weiterhin besteht, fragen Sie den Netzwerkadministrator oder kontaktieren Sie EditSupport@bgbm.org.
+RemotingLoginDialog_CONNECTION_FAILED_TITLE=Verbindung fehlgeschlagen
+RemotingLoginDialog_DEFAULT_LOGIN=Standard: %s (Login), %s (Kennwort)
+RemotingLoginDialog_CHOOSE_COMPATIBLE_CDM_SERVER=Bitte wählen Sie einen kompatiblen CDM-Server oder aktualisieren sie den CDM-Server
+RemotingLoginDialog_SCHEMA_MISSING=Das Datenbankschema existiert nicht. Bitte erzeugen Sie das Datenbankschema.\nANMERKUNG: Alle existierenden Daten in dieser Datenbank werden gelöscht, sofern vorhanden!
+RemotingLoginDialog_MSG_UPDATE_SCHEMA_VERSION=Das Datenbankschema ist veraltet. Bitte aktualisieren sie das Schema.
+RemotingLoginDialog_NO_SCHEMA=Kein Schema
+RemotingLoginDialog_LABEL_ADVANCED=Erweitert
+RemotingLoginDialog_LABEL_CDM_INSTANCE=Datenbank : 
+RemotingLoginDialog_LABEL_CDM_SERVER=CDM-Server : 
+RemotingLoginDialog_LABEL_CONNECT=Verbinden
+RemotingLoginDialog_LABEL_CREATE_SCHEMA=Schema generieren
+RemotingLoginDialog_LABEL_UPDATE_SCHEMA_VERSION=Schema aktualisieren
+RemotingLoginDialog_LABEL_EDITOR_CDM_VERSION=Editor CDM Version :
+RemotingLoginDialog_LABEL_EDITOR_CDMLIB_VERSION=Editor Cdmlib Version :
+RemotingLoginDialog_LABEL_LOGIN=Login
+RemotingLoginDialog_LABEL_LOGIN_COLON=Login : 
+RemotingLoginDialog_LABEL_PASSWORD=Kennwort : 
+RemotingLoginDialog_LABEL_PORT=Port : 
+RemotingLoginDialog_LABEL_REFRESH=Aktualisieren
+RemotingLoginDialog_LABEL_REMEMBER_ME=Login Daten merken
+RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES=Abrufen der Serverinstanzen
+RemotingLoginDialog_LABEL_SERVER_CDM_VERSION=Server CDM Version :
+RemotingLoginDialog_LABEL_SERVER_CDMLIB_VERSION=Server Cdmlib Version :
+RemotingLoginDialog_LABEL_STOP_MANAGED_SERVER=Beende internen CDM-Server
+RemotingLoginDialog_LOGIN_CANNOT_BE_EMPTY=Nutzer-Login darf nicht leer sein
+RemotingLoginDialog_MESSAGE_PORT_SHOULD_BE_INTEGER=Port muss eine Zahl sein
+RemotingLoginDialog_PASSWORD_CANNOT_BE_EMPTY=Kennwort darf nicht leer sein
+RemotingLoginDialog_SERVER_LAUNCH_ERROR=CDM-Server Startfehler
+RemotingLoginDialog_STATUS_AVAILABLE=Verfügbar
+RemotingLoginDialog_STATUS_CHECKING=Überprüfe ...
+RemotingLoginDialog_STATUS_ERROR=Error
+RemotingLoginDialog_STATUS_NO_INSTANCES_FOUND=Keine Instanzen gefunden
+RemotingLoginDialog_STATUS_NOT_AVAILABLE=Nicht verfügbar
+RemotingLoginDialog_STATUS_NOT_COMPATIBLE=Nicht kompatibel
+RemotingLoginDialog_STATUS_NOT_STARTED=Nicht gestartet
+RemotingLoginDialog_STATUS_REMOTING_NOT_ACTIVATED=Remoting nicht aktiviert
+RemotingLoginDialog_STATUS_RETRIEVING=Abrufen ...
+RemotingLoginDialog_STATUS_STARTED=Gestartet
+RemotingLoginDialog_UPDATE_EDITOR=Bitte aktualisieren Sie den Taxonomic Editor (Hifle->Suche nach Updates) oder wählen Sie einen kompatiblen CDM-Server
+RemotingLoginDialog_COULD_NOT_STOP_SERVER=Konte den internen CDM-Server auf Port %s nicht beenden. Bitte beenden sie ihn manuell.
+RemotingLoginDialog_ERROR_GENERATING_CONFIG_FILE=Fehler beim Generieren der Config-Datei für den Server
+RemotingLoginDialog_ERROR_STARTING_SERVER=Fehler beim Starten des internen CDM-Servers
+RemotingLoginDialog_ERROR_STOPPING_SERVER=Fehler beim Beenden des internen CDM-Servers
+RemotingLoginDialog_GENERATING_CONFIG_FILE=Generiere Config-Datei für Datenquellen für %s
+RemotingLoginDialog_JOB_SERVER_LAUNCH=Starte internen CDM-Server
+RemotingLoginDialog_STARTING_MGD_SERVER=Starte internen CDM-Server. Dies kann eine Weile dauern.
+RemotingLoginDialog_TASK_LAUNCHING_SERVER=Starte internen CDM-Server
+RemotingLoginDialog_MISSING_PERMISSION="Die Anmeldedaten sind korrekt, aber Sie haben nicht die Rechte auf der ausgewählten Instanz mit dem Editor zu arbeiten"
+
+EditPasswordElement_PLEASE_CREATE_OR_SAVE_USER=Bitte erstellen oder speichern sie den Nutzer '%s', bevor Sie das Kennwort ändern
+EditPasswordElement_USERNAME_DOES_NOT_EXIST=Nutzername existiert nicht
+EmptySection_NO_VIEW_IMPLEMENTED=Unbekanntes Objekt. Details können nicht angezeigt werden.
+PasswordWizard_COULD_NOT_CHANGE_PWD=Konnte das Kennwort nicht ändern
+PasswordWizard_OLD_PWD_INCORRECT=Das alte Kennwort ist inkorrekt
+PasswordWizard_PROBLEM_WITH_CHANGING_PWD=Fehler beim Ändern des Kennworts
+PasswordWizard_PWD_COULD_NOT_BE_CHANGED=Das Kennwort konnte nicht geändert werden 
+PasswordWizardPage_CHANGE_PASSWORD=Kennwort ändern
+PasswordWizardPage_CHANGE_PASSWORD_AND_CONFIRM=Kennwort ändern und mit altem Kennwort bestätigen
+PasswordWizardPage_NEW_PASSWORD=Neues Kennwort
+PasswordWizardPage_OLD_PASSWORD=Altes Kennwort
+PasswordWizardPage_PASSWORD_MIN_CHARACTER=Kennwort muss mindesten %s Zeichen enthalten
+PasswordWizardPage_PASSWORDS_DO_NOT_MATCH=Die Kennwörter stimmen nicht überein
+PasswordWizardPage_REPEAT_PASSWORD=Kennwort wiederholen
+
+SearchManager_LARGE_RESULT_EXPECTED=Große Anzahl an Suchergebnissen
+SearchManager_LONG_SEARCH_WARNING=Die aktuelle Suche wird %s Objekte laden. Dies kann einige Zeit dauern und den Editor währenddessen unbedienbar machen. Bitte erstellen sie eine detailliertere Suche.\nTrotzdem suchen?
+
+SupplementalDataPreferences_0=Zeige UUID und Objekt ID unter Zusatzdaten
+SupplementalDataViewPart_VIEWER_NAME=Zusatzdaten
+
+DefinedTermDropAdapterE4_MOVE_DESCRIPTIONS=Terme verschieben
+DefinedTermDropAdapterE4_MOVE_FAILED=Verschieben fehlgeschlagen
+DefinedTermDropAdapterE4_MOVE_FAILED_MESSAGE=Terme können nicht auf sich selbst oder ihre Kindterme verschoben werden
+DefinedTermDropAdapterE4_MOVE_FAILED_SAVE_MESSAGE=Das Verschieben des Terms ist fehlgeschlagen. Versuchen Sie vorher zu speichern.
+DefinedTermDropAdapterE4_TERM_TYPE_ERROR_MESSAGE=Der Termtyp des verschobenen Terms stimmt nicht mit dem des Ziels überein.
+DefinedTermDropAdapterE4_TERM_TYPE_ERROR_TITLE=Termtypen stimmen nicht überein
+
+DebugPreferences_0=\"Widget is disposed\" Fehler Meldungen anzeigen
+DebugPreferences_1=Deaktiviere die Überprüfung des API Timestamp
+DefaultFeatureTreePreferenecs_0=Default Merkmalsbaum für textuelle Faktendaten
+DefaultFeatureTreePreferenecs_1=Default Merkmalsbaum für strukturelle Faktendaten
+
+DefinedTermEditorE4_SAVE_MESSAGE=Sie haben Änderungen, die gespeichert werden müssen, bevor die Operation ausgeführt werden kann. Möchten Sie speichern?
+DefinedTermEditorE4_SAVE_TITLE=Änderungen speichern
+DefinedTermMenu_FEATURE_TREE=Termbaum
+DefinedTermMenu_MENU=Menü
+DefinedTermMenu_OTHER_S=Weitere %ss
+DefinedTermMenu_OTHERS=Weitere
+DefinedTermMenu_TERM_EDITOR=Term-Editor
+DetailsViewerE4_TAXON_HAS_NO_NAME=Taxon hat keinen Namen. Details können nicht angezeigt werden.
+DetailsViewPart_VIEWER_NAME=Details
+
+AuthenticatedUserBar_LOGGED_IN_AS=Angemeldet als: %s         
+AuthenticatedUserBar_NOT_LOGGED_IN=Nicht angemeldet     
+         
+PresenceAbsenceMenuPreferences_choose=Auswahl der zur Verf\u00FCgung stehenden Verbreitungsstatus
+PresenceAbsenceTermDetailElement_CHOOSE_COLOR=Farbe wählen
+PresenceAbsenceTermDetailElement_COLOR_NOT_SET=Farbe konnte nicht gespeichert werden
+PresenceAbsenceTermDetailElement_LABEL_COLOR=Farbe
+PreservationMethodMenuPreferences_select=Auswahl der zur Verf\u00FCgung stehenden Präservierungsmethoden
+
+DeleteConfiguration_media_removeFromGallery=Entferne Mediendaten aus der Gallerie, aber behalte es in der Datenbank
+DeleteConfiguration_media_deleteIfUsedInTaxonDescription=Lösche die Mediendaten, auch wenn sie Teil einer Taxonbeschreibung ist
+DeleteConfiguration_media_deleteIfUsedSomeWhereElse=Lösche die Mediendaten vollständig, auch wenn sie an anderer Stelle verwendet werden
+DeleteConfiguration_media_delete=Entferne die Mediendaten aus der Gallerie und lösche sie aus der Datenbank, wenn sie nicht anderweitig verwendet werden.
+DeleteResultMessagingUtils_ABORT=Löschen wurde abgebrochen
+DeleteResultMessagingUtils_SUCCES=Löschen war erfolgreich
+DeleteTermBaseOperation_CANNOT_DELETE_TERM=Term konnte nicht gelöscht werden
+DeleteTermBaseOperation_CANNOT_DELETE_VOC=Vokabular konnte nicht gelöscht werden
+DeleteTermBaseOperation_DELETE_ALL_TERMS_BEFORE=Es müssen alle Terme dieses Vokabulars gelöscht werden, bevor das Vokabular gelöscht werden kann.
+DeleteTermBaseOperation_DELETE_FAILED=Löschen fehlgeschlagen
+DeleteTermBaseOperation_SYSTEM_TERM=Das ist ein CDM system-interner Term
+DeleteTermBaseOperation_SYSTEM_VOC=Das ist ein CDM system-internes Vokabular
+DeleteTermBaseOperation_TERM_INCLUDES_OTHERS=Der Term enthält weitere Terme. Es müssen zuerst alle enthaltenen Terme gelöscht werden.
+DeleteTermBaseOperation_TERM_INLCUDES=Der Term enthält weitere Terme
+DeleteTermBaseOperation_VOC_NOT_EMPTY=Vokabular ist nicht leer
+
+DeleteConfiguration_descriptiveDataSet_deleteAllSpecimenDesc=Specimen Beschreibungen
+DeleteConfiguration_descriptiveDataSet_deleteAllLiteratureDesc=Literatur Beschreibungen
+DeleteConfiguration_descriptiveDataSet_deleteAllDefaultDesc=Default Beschreibungen
+DeleteConfiguration_descriptiveDataSet_deleteAllAggregatedDesc=Aggregierte Beschreibungen 
+DeleteConfiguration_descriptiveDataSet_deleteSelection=Beschreibungstypen, die komplett gelöscht werden sollen.\nNicht ausgewählte Beschreibungen verbleiben in der Datenbank und verknüpft mit ihrem Beleg/Taxon:
+
+DeleteConfiguration_descriptionFromDescriptiveDataSet_onlyRemove=Entferne Beschreibungen nur aus dem Descriptive Dataset
+NewGrantedAuthority_AlreadyInDb=Die GrantedAuthority ist bereits in der DB enthalten.
+
+SetSecundumConfiguration_IncludeAcceptedTaxa=Anwenden auf akzeptierte Taxa
+SetSecundumConfiguration_IncludeSynonyms=Anwenden auf Synonyme
+SetSecundumConfiguration_OverwriteExistingAccepted=Existierende Secundum Referenzen bei akzeptierten Taxa überschreiben
+SetSecundumConfiguration_OverwriteExistingSynonyms=Existierende Secundum Referenzen bei Synonymen überschreiben
+SetSecundumConfiguration_EmptySecundumDetail=Existierende Secundum Referenz Details löschen (empfohlen)
+SetSecundumConfiguration_IncludeSharedtaxa=Auch mehrfach verwendete Taxa mit einbeziehen
+SetSecundumConfiguration_NewSecundum_Label=Neue Secundum Referenz:
+SetSecundumConfiguration_Description=Wenn keine Referenz ausgewählt wird, werden die bestehenden Secundum Referenzen gelöscht.
+SetSecundumConfiguration_Description_Configurator=Konfigurieren Sie, wie das Ersetzen der Secundum Referenz durchgeführt werden soll.
+SetSecundumConfiguration_Title=Konfiguration
+
+DatabasePreferncesPage_Is_redList=Rote Liste 2020
+DatabasePreferncesPage_Determination_only_for_field_unnits=Bestimmungen nur für Field Units anzeigen
+DatabasePreferncesPage_Show_Collecting_Areas_in_general_section=Sammelgebiete im allgemeinen Teil anzeigen
+DatabasePreferncesPage_Show_Specimen_List_Editor=Specimen List Editor anzeigen
+DatabasePreferncesPage_Taxon_Associations=Taxon Assoziationen im Details View anzeigen
+
+DatabasePreferencesPage_Biocase_Provider=Biocase Provider
+DatabasePreferencesPage_details_view_configuration=Details View
+DatabasePreferencesPage_show_only_simple_details_view=Nur einen einfachen (konfigurierbaren) Details View anzeigen
+DatabasePreferencesPage_show_taxon=Taxon
+DatabasePreferencesPage_show_lsid=LSID
+DatabasePreferencesPage_show_nomenclatural_code=Nomenklatorischen Code
+DatabasePreferencesPage_show_namecache=Name cache
+DatabasePreferencesPage_show_appended_phrase=Appended phrase
+DatabasePreferencesPage_show_rank=Rang
+DatabasePreferencesPage_show_atomised_epithets=Atomisierte Epithete
+DatabasePreferencesPage_show_authorship_cache=Autoren Cache
+DatabasePreferencesPage_show_author_section=Gesamter Autoren Bereich
+DatabasePreferencesPage_Show_nomenclatural_Ref=Nomenklatorische Referenz
+DatabasePreferencesPage_Show_nomenclaturalStatus=Nomenklatorischen Status
+DatabasePreferencesPage_Show_Protologue=Protologue
+DatabasePreferencesPage_Show_Type_designation=Type Designations
+DatabasePreferencesPage_Show_NameRelations=Namensrelationen
+DatabasePreferencesPage_Define_Default_NomenclaturalCode=Nomenklatorischer Standard Code
+DatabasePreferencesPage_UseLocalPreferences=Erlaube das lokale Überschreiben
+DatabasePreferencesPage_Specimen_Or_Observation=Belege und Observationen
+DatabasePreferncesPage_Life_Form=Life-Form im Details-View von Field Units anzeigen
+DatabasePreferencesPage_SetPublishFlag=Konfiguriere das Handling des Publish Flags bei neuen Taxa
+
+ImportFromFileAndChooseVocIdWizardPage_AreaVoc=Gebiets Vokabular
+ImportFromFileAndChooseVocIdWizardOage_AreaVoc_toolTip=Bitte wählen Sie ein Vokabular für die genutzten Areas aus.
+ExcelDistributionUpdateWizard_ConfiguratorWizard_label=Konfiguration des Excel Distribution Updates
+AbstractImportWizard_ConfigurationLabel=Konfiguration des Imports
+TaxonNodeWizardPage_edit=Bearbeite Taxon Knoten
+TaxonNodeWizardPage_new=Neues Taxon
+TaxonNodeWizardPage_no_classification=Keine Klassifikation ausgewählt
+TaxonNodeWizardPage_no_taxon_name=Kein Taxonnamen ausgewählt
+TaxonNodeWizardPage_not_all_required_fields=Nicht alle notwendigen Felder sind ausgefüllt
+TaxonNodeWizardPage_PLACEMENT_SOURCE=Platzierungsquelle
+TaxonNodeWizardPage_PARENT=Eltern
+TaxonNodeWizardPage_PLACEMENT_SOURCE_DETAIL=Detail
+TaxonNodeWizardPage_NEW_TAXON=Neues Taxon
+TaxonNodeWizardPage_TAXON=Taxon
+TaxonNodeWizardPage_REUSE_EXISTING_TAXON=Taxon wiederverwenden
+TaxonNodeWizardPage_REUSE_EXISTING_NAME=Namen wiederverwenden
+TaxonNodeWizardPage_SECUNDUM_REFERENCE=Secundum Referenz
+TaxonNodeWizardPage_PLACEMENT_NOTES=Plazierungs-Anmerkungen
+TaxonNodeWizardPage_CLASSIFICATION=Klassifikation
+TaxonNodeWizardPage_TAXON_NODE=Taxonknoten
+TaxonNodeWizardPage_TAXON_INFORMATION=Taxon Information
+TaxonNodeWizardPage_TAXON_IS_PUBLISH=Taxon ist öffentlich
+
+TaxonomicEditorGeneralPreferences_background=Long Running Operations laufen im Hintergrund
+TaxonomicEditorGeneralPreferences_connect=Beim Starten mit der zuletzt verwendeten Datenquelle verbinden
+TaxonRelationshipTypeMenuPreferences_configure=Auswahl der zur Verf\u00FCgung stehenden Taxonrelationstypen
+TaxonSearchPreferences_0=Öffne Suchergebnisse in eigenem Fenster
+TCSImportWizard_ConfiguratorWizard_label=Konfiguration des TCS Imports
+FeatureMenuPreferences_display=Auswahl der zur Verf\u00FCgung stehenden Features
+TermTreeEditorComposite_ADD_FEATURE=Term zum Termbaum hinzufügen
+TermTreeEditorComposite_FEATURE_TREE=Termbaum
+TermTreeEditorComposite_OPEN_TREE=Termbaum öffnen
+TermTreeEditorComposite_REMOVE_FEATURE=Term vom Termbaum entfernen
+FeatureTreeSelectionDialog_CHOOSE_TREE=Termbaum auswählen
+FeatureTreeSelectionDialog_ENTER_LABEL=Namen für Termbaum eingeben
+FeatureTreeSelectionDialog_NEW_TREE=Neuer Termbaum
+FeatureTreeSelectionDialog_TREE_LABEL=Termbaumname
+
+NonViralNameDetails_confirmDeleteOfZoologicalNameParts=Breed, Publication Date und Original Publication Date müssen entfernt werden.
+NonViralNameDetails_descriptionDeleteZoologicalNameParts=Bestätigen Sie, wenn Sie Breed, Publication Date und Original Publication Date löschen und den Nomenklatorischen Code des Namens ändern wollen.
+NonViralNameDetails_confirmDeleteOfBacterialNameParts=Name Approbiation muss entfernt werden.
+NonViralNameDetails_desciptionDeleteOfBacterialNameParts=Bestätigen Sie, wenn Sie Name Approbiation löschen wollen und den Nomenklatorischen Code ändern wollen.
+NonViralNameDetails_confirmDeleteOfFungiNameParts=Die Information, ob der Pilz anamorph ist, muss gelöscht werden
+NonViralNameDetails_descriptionDeleteOfFungiNameParts=Bestätigen Sie, wenn Sie die Information, ob der Pilz anamorph ist, löschen und den Nomenklatorischen Code ändern wollen.
+NonViralNameDetails_confirmDeleteOfCultivarNameParts=Der Cultivar Name muss gelöscht werden
+NonViralNameDetails_descriptionDeleteOfCultivarNameParts=Bestätigen Sie, wenn Sie den Cultivar Name löschen und den Nomenklatorischen Code ändern wollen.
+
+NamedAreaTypeMenuPreferences=Auswahl der zur Verf\u00FCgung stehenden Named Area Typen
+NameDetailsViewComposite_Show_TypeDesignation=Type Designations
+NameDetailsViewComposite_Show_Namerelationships=Namensrelationen
+NameDetailsViewComposite_Show_Hybrid=Hybride
+NameDetailsViewComposite_Show_NameApprobiation=Namens Approbation (für Bakterien)
+NameDetailsViewComposite_Show_Taxon=Taxon
+NameDetailsViewComposite_Show_SecDetail=Secundum Referenz Details
+NameDetailsViewComposite_SecEnabled=Secundum aktiviert (kann im Details View bearbeitet werden)
+NameDetailsViewComposite_Show_LSID=Lsid
+NameDetailsViewComposite_Show_NomenclaturalCode=Nomenclatorischer Code
+NameDetailsViewComposite_Show_NameCache=Cache des Namens (nur der wissenschaftliche Name ohne Autor und Jahr)
+NameDetailsViewComposite_Show_AppendedPhrase=Appended phrase
+NameDetailsViewComposite_Show_Rank=Rang
+NameDetailsViewComposite_Show_AtomisedEpithets=Atomisierte Epithete
+NameDetailsViewComposite_Show_AuthorCache=Autoren Cache
+NameDetailsViewComposite_Show_Author=Alle Autoreninformationen
+NameDetailsViewComposite_Show_NomenclaturalReference=Nomenklatorische Referenz
+NameDetailsViewComposite_Show_NomenclaturalStatus=Nomenklatorischer Status
+NameDetailsViewComposite_Show_Protologue=Protologue
+
+NameDetailsViewConfiguration_activateSimpleDetailsView=Vereinfachten Details View mit folgenden Elementen anzeigen:
+NameDetailsViewConfiguration_useLocalSettings=Verwende die lokalen Eigenschaften für die Darstellung der Details
+
+NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsidered=Angewandte/verwendete Regel
+NameDetailsViewComposite_Show_NomenclaturalStatus_RuleConsideredCodeEdition=Code Edition der Rule Considered
+NameDetailsViewComposite_Show_Namerelationships_RuleConsidered=Angewandte/verwendete Regel
+NameDetailsViewComposite_Show_Namerelationships_RuleConsideredCodeEdition=Code Edition der Rule Considered
+
+SetPublishConfiguration_Publish=Setze das Publish Flag
+SetPublishConfiguration_Publish_tooltip=Wenn das Publish Flag gesetzt ist, werden die Taxa veröffentlicht, sowohl im Datenportal als auch bei Print Publikationen
+SetPublishConfiguration_Description_Configurator=Konfigurieren Sie, wie das Setzen des Publish Flags durchgeführt werden soll
+SetPublishConfiguration_IncludeAcceptedTaxa=Akzeptierte Taxa
+SetPublishConfiguration_IncludeSharedtaxa=Mehrfach verwendete Taxa (für akzeptierte Taxa, Fehlanwendungen und Pro Parte Synonyme)
+SetPublishConfiguration_IncludeSynonyms=Synonyme
+SetPublishConfiguration_IncludeProParteSynonyms=Pro Parte Synonyme
+SetPublishConfiguration_IncludeMisappliedNames=Fehlanwendungen
+SetPublishConfiguration_IncludeHybrids=Hybride
+
+ExcelSpecimenUpdateWizard_ConfiguratorWizard_label=Konfiguration des Excel Specimen Imports
+ExcelTaxonUpdateWizard_ConfiguratorWizard_label=Konfiguration des Excel Taxon Imports
+ExperimentalFeaturesPreferences=Experimentelle Features anzeigen
+ExtensionTypeMenuPreferences_choose=Auswahl der zur Verf\u00FCgung stehenden Extension Types
+ExternalServicesPreferences_max_height=Maximale Höhe
+ExternalServicesPreferences_max_width=Maximale Breite
+
+SetPublishConfiguration_Title=Konfiguration zum Setzen des Publish Flags
+SetPublishConfiguration_publish=veröffentlichen
+SetPublishConfiguration_dont_publish=nicht veröffentlichen
+
+SearchDialog_patternLabel=Nutze * als Platzhalter für eine beliebige Zeichenkette
+SearchDialogPreferences_0=Objekt ID in Suchdialogen anzeigen
+SearchDialogPreferences_1=Indentifier standardmäßig in Suche verwenden
+SearchDialogPreferences_2=Suche nach Identifiern und Title Cache, wenn Identifier Suche aktiviert ist
+SearchDialogPreferences_3=In Taxon Suchdialogen nach Rang und Namen sortieren
+SearchDialogPreferences_4=Filter Referenzen für Trivialnamen
+
+SelectionViewMenu_selectVocabulary=Vokabular wählen
+SelectionViewMenu_SET_FLAG='%s' flag setzen
+SelectionViewMenu_4_YES=Ja
+SelectionViewMenu_NO=Nein
+
+AbcdImportPreference_create_Individual_Association=Erzeuge eine Individual Association für jedes Specimen
+AbcdImportPreference_create_Individual_Association_tooltip=Für jedes Specimen, dass mit einem Taxon verknüpft ist, wird eine Individual Association erzeugt.
+AbcdImportPreference_create_new_classification_new_taxa=Erzeuge eine neue Klassifikation für neue Taxa
+AbcdImportPreference_create_new_classification_new_taxa_tooltip=Für Taxa, die noch nicht in der Datenbank enthalten sind, wird eine neue Klassifikation erstellt.
+AbcdImportPreference_description=Konfiguration der Default Einstellungen für den ABCD Import
+AbcdImportPreference_ignore_author=Namensvergleich ohne Autor
+AbcdImportPreference_ignore_author_tooltip=Der Namensvergleich mit den bereits existierenden wissenschaftlichen Namen wird ohne den Autor durchgeführt.
+AbcdImportPreference_import_all_children_for_cultures_or_tissues=Kinder von Kulturen oder Gewebeproben importieren
+AbcdImportPreference_import_all_children_for_cultures_or_tissues_tooltip=Für Kulturen oder Gewebeproben werden auch die Kinder gesucht und importiert
+AbcdImportPreference_map_unit_nr_catalog_number=Unit ID Mapping 
+AbcdImportPreference_map_unit_number_catalog_number_tooltip=Die Unit IDs aller ABCD Units werden entsprechend der Auswahl als Accession Nummer, Barcode oder Katalog Nummer importiert.
+AbcdImportPreference_map_unit_number_barcode=UnitID als Barcode
+AbcdImportPreference_map_unit_number_barcode_tooltip=Die Unit IDs aller ABCD Units werden als Barcode importiert
+AbcdImportPreference_map_unit_number_to_accession_number=Unit ID als Accession Nummer
+AbcdImportPreference_media_as_mediaSpecimen=Importiere Media als Media Specimen
+AbcdImportPreference_media_as_subUnit=Alle Medien, die an einer ABCD Unit hängen, werden als ein Subderivat (Mediaspecimen) des neu erzeugten Specimen gespeichert
+AbcdImportPreference_not_import_existing_specimen=Ignoriere bereits existierende Specimen
+AbcdImportPreference_not_import_existing_specimen_tooltip=Bereits existierende Specimen werden beim Import ignoriert.
+AbcdImportPreference_remove_country_from_locality=Entferne das Land aus dem Locality Text
+AbcdImportPreference_remove_country_from_locality_tooltip=Wenn der Locality Text Informationen über das Land enthält und diese Informationen in anderen ABCD Elementen ebenfalls vorhanden sind, dann wird diese Information aus dem Locality Text entfernt.
+AbcdImportPreference_reuse_descriptive_group=Existierende Fakten verwenden
+AbcdImportPreference_reuse_descriptive_group_tooltip=Bei Taxa, die bereits Faktendaten besitzen, werden die Individual Associations in die bereits existierenden Faktengruppen integriert, sonst wird für jeden Import eine neue Faktengruppe erzeugt.
+AbcdImportPreference_reuse_existing_taxa=Existierende Taxa wieder verwenden
+AbcdImportPreference_reuse_existing_taxa_tooltip=Wenn Taxa schon existieren, dann werden die Individual Associations an diese angehängt.
+Preference_allow_override=Erlaube Überschreiben
+Preference_override_allowed=Überschreiben erlaubt
+AbcdImportPreference_allow_override_tooltip=Es dürfen lokale Änderungen an den Präferenzen vorgenommen werden.
+AbcdImportPreference_override=Nutze lokale Präferenzen
+AbcdImportPreference_override_tooltip=Die lokale Präferenzen für den ABCD Import Konfigurator sollen verwendet werden.
+AbcdImportPreference_provider_for_associated_dna=Biocase Provider für assoziierte DNA
+
+AbcdImportProvider_description=Konfiguration einer Liste von Biocase Providern für die Specimen Suche
+AbcdImportProvider_description_not_available=Es dürfen keine lokalen Änderungen an den Biocase Providern vorgenommen werden.\nWenn Sie die Präferenz dennoch ändern wollen, wenden Sie sich bitte an einen Administrator
+AvailableAreaVocabulariesPage_PAGE_DESCRIPTION=Auswahl der Vokabulare, aus denen die Gebiete für %s ausgewählt werden sollen.
+AvailableAreaVocabulariesPage_PAGE_TITLE=Vokabular für %s auswählen
+AvailableDistributionPage_CHECK_MESSAGE=Bitte wählen Sie mindestens einen Eintrag aus
+AvailableDistributionPage_PAGE_DESCRIPTION=Um den Verbreitungsstatus von Taxa anzuzeigen und zu bearbeiten,\n muss das Gebiet ausgewählt werden, dass angezeigt/bearbeitet werden soll.
+AvailableDistributionPage_PAGE_TITLE=Auswahl der zur Verf\u00FCgung stehenden Gebiete für den Verbreitungs-Editor
+AvailableDistributionStatusPage_PAGE_DESCRIPTION=Auswahl der im Verbreitungseditor zu Verf\u00FCgung stehenden Status.\nWenn kein Status ausgewählt ist, werden alle Status angezeigt.
+AvailableDistributionStatusPage_PAGE_TITLE=Verbreitungsstatus auswählen
+AvailableDistributionStatusWizard_PAGE_TITLE=Verfügbare Verbreitungsstatus
+AvailableDistributionStatusWizard_WINDOW_TITLE=Verbreitungsstatus auswählen
+AvailableDistributionStatusWizard_WIZARD_TITLE=Verbreitungsstatus auswählen
+AvailableDistributionWizard_CHECK_MESSAGE=Bitte wählen Sie mindestens einen Eintrag aus
+AvailableDistributionWizard_PAGE_TITLE=Verfügbare Verbreitungsgebiete
+AvailableDistributionWizard_WINDOW_TITLE=Verbreitung auswählen
+AvailableVocabularyWizard_PAGE_TITLE=Verbreitung auswählen
+AvailableVocabularyWizard_WINDOW_TITLE=Vokabular auswählen
+AvailableVocabularyWizard_WIZARD_TITLE=Vokabular auswählen
+
+CheckBoxTreeComposite_SELECT_DIRECT_CHILDREN=Alle direkten Kinder (de-)selektieren
+ChecklistEditorGeneralPreference_0=Die Datenbank Präferenzen erlauben kein lokales Bearbeiten der Verbreitungseditor Präferenzen. \nWenn Sie dennoch Änderungen an den Präferenzen vornehmen müssen, wenden Sie sich bitte an einen Administrator.
+ChecklistEditorGeneralPreference_enable=Verbreitungs-Editor aktivieren
+ChecklistEditorGeneralPreference_open_distribution_selection=Gebiets Vokabulare Auswählen
+ChecklistEditorGeneralPreference_open_wizard=Liste der verwendbaren Areal-Vokabulare, zum Editieren verwenden Sie bitte den unten stehenden Button
+ChecklistEditorGeneralPreference_show_rank=Rang Spalte anzeigen
+ChecklistEditorGeneralPreference_sort_areas=Areale gemäß Vokabular sortieren
+ChecklistEditorGeneralPreference_numberFormatExceptionLabel=Der Wert muss eine positive ganze Zahl sein.
+ChecklistEditorGeneralPreference_numberOfStatus=Anzahl der sichtbaren Status im Drop Down
+ChecklistEditorGeneralPreference_tooltip_numberOfStatus=Anzahl der sichtbaren Status im Drop Down ohne Scrollbar
+ChecklistEditorGeneralPreference_Configure_status_order=Sortierung des Status im Drop Down
+
+GeneralPreference_allowOverride=Erlaube Überschreiben
+GeneralPreference_yes=Ja
+GeneralPreference_no=Nein
+
+ChecklistEditorGeneralPreference_show_id_in_voc=ID im Vokabular
+ChecklistEditorGeneralPreference_show_symbol1=Symbol
+ChecklistEditorGeneralPreference_show_symbol2=Symbol 2
+ChecklistEditorGeneralPreference_show_title=Label
+ChecklistEditorGeneralPreference_show_symbol=Symbol des Status anzeigen, wenn es existiert
+ChecklistEditorGeneralPreference_STATUS_DISPLAY_TEXT=Einstellung für die Anzeige des Status
+ChecklistEditorGeneralPreference_own_Description=Erstelle eigenes Fakten-Datenset für Verbreitungs-Editor Daten
+ChecklistEditorGeneralPreference_own_DescriptionToolTip=Einträge, die mit dem Distribution Editor erstellt werden, \nwerden in einer eigenen TaxonDescription gespeichert
+GeneralPreference_override=Überschreiben
+ChecklistEditorGeneralPreference_Configure_display_of_Areas=Darstellung der Areale in der Kopfzeile
+ChecklistEditorGeneralPreference_Configure_display_of_Status=Darstellung der Verbreitung-Status in Tabelle
+ChecklistEditorGeneralPreference_Configure_display_of_Status_in_Combo=Darstellung der Verbreitung-Status in Drop-Down
+
+GfBioTerminologyImportPresenter_NO_CONNECTION_MESSAGE=Konnte keine Verbindung zum Webservice herstellen.
+GfBioTerminologyImportPresenter_NO_CONNECTION_TITLE=Webservice nicht erreichbar
+GfBioTerminologyImportPresenter_NO_RESULTS_MESSAGE=Keine Ergebnisse für die Anfrage gefunden
+GfBioTerminologyImportPresenter_NO_RESULTS_TITLE=Keine Ergebnisse
+GfBioTerminologyImportPresenter_COMBO_DEFAULT=Alle Ontologien
+GfBioTerminologyImportPresenter_TEXT_SEARCH_DEFAULT='*' f\u00FCr Platzhalter-Suche benutzen
+GfBioTerminologyImportPresenter_SEARCH_TOO_SHORT_MESSAGE=Suchbegriffe mit <4 Buchstaben sind nicht möglich für alle Ontologien. Bitte eine einzelne Ontologie auswählen.
+GfBioTerminologyImportPresenter_SEARCH_TOO_SHORT_TITLE=Suchbegriff zu kurz
+
+PublishEnum_publish=Publish
+PublishFlagPreference_description=Standardwert des Publish Flags eines neu erzeugten Taxon
+PublishFlagPreference_description_not_allowed=Die Konfiguration des Default Verhaltens beim Setzen des Publish Flags in einem neu erzeugten Taxon kann nur über die Admin Präferenzen geändert werden, da kein lokales Überschreiben erlaubt ist. \nWenn Sie dennoch Änderungen vornehmen möchten, wenden Sie sich an einen Administrator.
+PublishFlagPreference_do_not_set=Publish Flag NICHT setzen
+PublishFlagPreference_inherit=Erbe vom Elterntaxon
+PublishFlagPreference_set=Publish Flag setzen
+
+NomenclaturalCodePreferences_available_codes=Verfügbare Codes
+NomenclaturalCodePreferences_choose=Auswahl des Nomenklatorischen Codes, der lokal genutzt werden soll.
+NomenclaturalCodePreferences_description=Nomenklatorischer Standardcode beim Erstellen eines neuen Taxonnamens
+NomenclaturalCodePreferences_localChangesNotAllowed=The CDM settings don't allow to set the nomenclatural code locally. If you need to make local settings, please ask an administrator.
+NomenclaturalCodePreferences_useLocalCode=Nutze lokalen Nomenklatorischen Code
+NomenclaturalStatusTypeMenuPreferences_1=Auswahl der zur Verf\u00FCgung stehenden Nomenklatorischen Status Typen
+
+NameDetailsViewConfiguration_description=Konfiguration des Namensdetailsviews. \nDie ausgewählten Parts werden angezeigt, die anderen sind nicht sichtbar.
+NameDetailsViewConfiguration_description_not_available=Die Konfiguration des Details Views kann nur über die Admin Präferenzen geändert werden, da kein lokales Überschreiben erlaubt ist. \nWenn Sie dennoch Änderungen vornehmen möchten, wenden Sie sich an einen Administrator.
+NameRelationshipTypeMenuPreferences_relationshipTypes=Auswahl der zur Verf\u00FCgung stehenden Namensrelationstypen
+NameRelationshipWizardPage_description=Auswahl des Relationstyps und des in Beziehung stehenden Namens 
+NameTypeDesignationElement_4=Referenz wird entfernt
+NameTypeDesignationElement_5=Beim Ändern des Typs von Lectotype zu einem anderen Typ wird die Lectotyp-Referenze entfernt.\nWollen Sie fortfahren?
+NameTypeDesignationStatusMenuPreferences_configure=Auswahl der zur Verf\u00FCgung stehenden Nametypedesignation Status
+NavigatorOrderEnum_1=alphabetisch
+NavigatorOrderEnum_3=natürlich
+NavigatorOrderEnum_5=Rang und alphabetisch
+
+DateDetail_parseText_tooltip=Dieses Feld ist für die schnelle Dateneingabe. Der Inhalt des Feldes wird geparsed und in die atomisierten Felder geschrieben. Der Inhalt des Feldes selber wird nicht gespeichert.
+
+GeneralPreference_open_common_name_area_selection=Vokabulare auswählen
+
+VokabularyAdminPreferences_SELECT_VOCABULARY_TEXT=Auswahl der f\u00FCr Trivialnamen verf\u00FCgbaren Gebietsvokabulare
+SpecimenConfiguration_description=Wählen Sie aus, ob sie specimenbezogene Daten editieren wollen und wie diese angezeigt werden sollen.
+SpecimenOrObservationPreferences_0=Die serverseitigen Einstellungen erlauben kein lokales Editieren der Specimen Einstellungen. \nWenn Sie dennoch Änderungen vornehmen müssen, wenden Sie sich bitte an einen Administrator.
+SpecimenOrObservationPreferences_1=Editieren der Einstellungen zur Darstellung von Specimen und Beobachtungen.
+SpecimenTypeDesignationStatusMenuPreferences_configure=Auswahl der zur Verf\u00FCgung stehenden Specimentypedesignation Status
+StageMenuPreferences_choose=Auswahl der zur Verf\u00FCgung stehenden Stadien
+DatabasePreferncesPage_Show_IOMenu=Import/Export Men\u00FC Einträge anzeigen
+DatabasePreferncesPage_Show_Specimen=Specimenbezogene Views und Men\u00FCeinträge anzeigen
+DatabasePreferncesPage_Show_MediaView=Media View anzeigen
+DatabasePreferncesPage_Show_ChecklistPerspective=Checklist Perspektive als Default Perspektive anzeigen
+DatabasePreferncesPage_Show_TaxonNodeWizard=Wizard zum Editieren der Taxon Knoten anzeigen
+
+DatabasePreferncesPage_Show_Id_In_SelectionDialog=Zeige ID in Selection Dialogen
+DatabasePreferncesPage_Search_for_identifier_as_default=Nutze Identifier Suche als Default
+DatabasePreferncesPage_search_for_identifier_and_titleCache=Suche nach Identifier und Title Cache, wenn Identifier Suche aktiviert ist
+DatabasePreferncesPage_Sort_Taxa_By_Name_And_Rank=Sortiere Taxa nach Rang und Namen
+DatabasePreferncesPage_CommonNameFilter=Filtere Referenzen, die als Referenzen für Trivialnamen markiert sind
+DatabasePreferncesPage_NamedAreaSearchField=Suchfeld für Gebietssuche
+
+Distribution_status_selection=Status Auswahl
+DistributionAdminPreferences_SELECT_STATUS=Liste der verfügbaren Verbreitungs-Status
+DistributionAdminPreferences_PER_AREA_STATUS=Liste der pro Area definierten Status Präferenzen\nMit dem Button auf der rechten Seite können Sie die Präferenz für das Gebiet editieren.\nWenn Sie neue gebietsspezifische Statusangaben definieren wollen, müssen Sie den Button unter der Tabelle verwenden.
+DistributionAdminPreferences_DEFAULT_AREA_STATUS_NOT_ALLOWED=Liste der pro Area definierten Status Präferenzen. Die gebietsspezifische Statusauswahl ist aktuell nur serverseitig verfügbar.\nDie Bearbeitung die default Statusauswahl ist durch die serverseitige Präferenz nicht erlaubt. Wenn Sie dennoch die Status ändern wollen, kontaktieren Sie bitte eine Administrator.
+DistributionAdminPreferences_DEFAULT_AREA_STATUS=Liste der pro Area definierten Status Präferenzen. Die gebietsspezifische Statusauswahl ist aktuell nur serverseitig verfügbar.\nUm die default Statusauswahl zu bearbeiten, nutzen Sie bitte den Button unterhalb der Tabelle.
+
+MarkerTypeMenuPreferences_display=Auswahl der zur Verf\u00FCgung stehenden Marker
+MeasurementUnitMenuPreferences_edit=Angezeigte Maßeinheiten
+MediaDetailElement_LOAD_IMAGE=Lade Bild
+MediaDetailElement_Media_URI=Media URI
+MediaDetailElement_NO_FILE_FOUND=Keine Datei gefunden
+MediaDetailElement_NO_PREVIEW=Keine Vorschau für diesen Dateityp vorhanden
+MediaDetailElement_TOGGLE_NOT_POSSIBLE_MESSAGE=Media besteht aus mehreren "representations" oder "representation parts"
+MediaDetailElement_TOGGLE_NOT_POSSIBLE_TITLE=Umschalten nicht möglich
+MediaDetailElement_SHOW_IMAGE=Zeige Bild
+MediaDetailElement_RELOAD_IMAGE=Bild neu laden
+
+MediaPreferences_advanced=Erweiterten Media Details View anzeigen
+MediaPreferences_preview=Vorschau anzeigen
+
+ToggleableText_ToolTip_closed=Der Cache wird automatisch aus den atomisierten Daten erstellt und ist gegen manuelle Eingabe geschützt
+ToggleableText_ToolTip_open=Der Cache kann manuell bearbeitet werden, Änderungen an den atomisierten Daten haben keinen Einfluß auf den Cache (nicht empfohlen)
+TypeDesignationPreferences_typeDesignationsToAllNames=Füge allen Namen einer Homotypischen Gruppe, Type Designations zu
+TypeDesignationSection_ADD_TYPE=Typbestimmung hinzufügen
+TypeDesignationSection_CREATE_DUPLICATE=Typusdublette erzeugen
+TypeDesignationSection_DUPLICATE_FAILED=Dubletten-Erzeugung fehlgeschlagen
+TypeDesignationSection_NO_TYPES_YET=Noch keine Typusinformation vorhanden.
+TypeDesignationSection_TYPE_DESIGNATIONS=Typusinformation
+
+FeatureTreeDropAdapter_CHOOSE_VOC=Vokabular für den Import wählen
+FeatureTreeDropAdapter_IMPORT_NOT_POSSIBLE=Import nicht möglich
+FeatureTreeDropAdapter_MOVE_FAILED_SAVE_MESSAGE=Verschieben des Termknoten fehlgeschlagen. Versuchen Sie vorher zu speichern.
+FeatureTreeDropAdapter_ONLY_MOVE_FEATURES=Es ist nur möglich, Merkmale auf Merkmalsbäume zu verschieben.
+FeatureTreeDropAdapter_ORDER_VOC_NOT_POSSIBLE=Das gewählte Vokabular ist ein geordnetes Vokabular.\nImporte in geordnete Vokabulare sind aktuell nich unterstützt.
+
+DescriptionPreferences_1=Vokabular ID im Label von Termen anzeigen
+SupplementalDataPreferences_0=UUID und Objekt ID unter Zusatzdaten anzeigen
+
+TermOrder_idInVoc=ID im Vokabular
+TermOrder_Title=Titel
+TermOrder_natural=Natürlich
+
+ChecklistEditorGeneralPreference_Configure_area_order=Sortierung der Areas
+Preference_Use_Default= Standardwert benutzen
+SupplementalDataSourcePreferences_SHOW_ID=ID in Quelle anzeigen
+SupplementalDataSourcePreferences_SHOW_NAMESPACE=ID-Namensraum anzeigen
+
+OrderPreferencePage_NotAllowed=Die Datenbank Präferenz erlaub kein Editieren
+Delete=Löschen
+Preference_update=Aktualisieren
+FactualData_showModifier=Zeige Modifier
+FactualData_showModifier_FreeText=Zeige Freitext-Modifier
+FactualData_description=Wenn die Präferenz nicht ausgewählt werden kann, dann gibt es eine serverseitige Präferenz, die das Überschreiben nicht erlaubt.
+FactualData_showIdInVocabulary=Zeige Id im Vokabular im Areal-Textfeld
+FactualData_showIdInVocabulary_tooltip=Zeige die Id im Vokabular im Areal-Textfeld des Details View
+DistributionAggregationWizardPage_AGGREGATION_MODE=Aggregation mode
+DistributionAggregationWizardPage_AREA=From sub area to super area
+DistributionAggregationWizardPage_AREA_LEVEL=Area Level
+DistributionAggregationWizardPage_CHILD_PARENT=From child to parent taxon
+DistributionAggregationWizardPage_CLASSIFICATION=Aggregate selected classification
+DistributionAggregationWizardPage_DEFAULT=Default - by Presence Absence Term vocabulary
+DistributionAggregationWizardPage_DESCRIPTION=Configure the aggregation
+DistributionAggregationWizardPage_EXPORT_UNPUBLISHED=Export unpublished taxa
+DistributionAggregationWizardPage_HIGHEST_RANK=Highest rank
+DistributionAggregationWizardPage_LOWEST_RANK=Lowest rank
+DistributionAggregationWizardPage_SELECT_AREA=Select Super Areas
+DistributionAggregationWizardPage_SOURCE_MODE_AREA=Source mode sub area/super area
+DistributionAggregationWizardPage_SOURCE_TYPE=Source type
+DistributionAggregationWizardPage_SOURCEMODE_CHILD_PARENT=Source mode child/parent
+DistributionAggregationWizardPage_SOURCEMODE_WITHIN_TAXON=Source mode within taxon
+DistributionAggregationWizardPage_STATUS_ORDER=Status order
+DistributionAggregationWizardPage_TITLE=Distribution aggregation configuration
+DistributionAggregationWizardPage_TOOLTIP_AGGR_MODE=Selecting none deletes all existing aggregated distributions
+DistributionAggregationWizardPage_TOOLTIP_AREA_LEVEL=Selecting the area level to which the distribution should be aggregated
+DistributionAggregationWizardPage_TOOLTIP_AREA_SELECTION=Wenn Areal Aggregation ausgewählt ist, kann das Super Areal ausgewählt werden, wenn nichts ausgewählt wurde, werden die Top Level Areale verwendet.
+DistributionAggregationWizardPage_TOOLTIP_SOURCE_TYPE=Typus der zu aggregierenden Quellen
+DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_AREA=Definiert den Source Mode, wenn die Aggregation von Subareal zum Superareal ausgewählt wurde.
+DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_CHILD_PARENT=Definiert den Source Mode, wenn die Aggregation vom Kind zum Eltern ausgewählt wurde.
+DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_WITHIN_TAXON=Definiert den Source Mode, wenn die Aggregation innerhalb eines Taxons ausgewählt wurde.
+AggregationWizardPage_SUBTREE=Aggregation nur für ausgewählten Teilbaum/bäume 
+AggregationWizardPage_SINGLE_TAXON=Aggregation nur für
+SetAggregationConfiguration_Title=Aggregationskonfiguration
+StructuredDescriptionAggregationWizardPage_SELECT_SUBTREE=Taxa/Teilbäume
+StructuredDescriptionAggregationWizardPage_TOOLTIP_SELECT_SUBTREE=Wenn nicht alle Teilbäume des Descriptive Datasets in die Aggregation einfließen sollen, dann wählen Sie die zu verwendenden Teilbäume aus.
+StructuredDescriptionAggregationWizardPage_SELECT_ALL_SUBTREES=Aggregiere alle Taxa des Descriptive Datasets
+StructuredDescriptionAggregationWizardPage_SELECT_SELECTED_TAXA_ONLY=Aggregiere nur ausgewählte(s) Taxa/Taxon
+CommonNameLanguages_Title=Sprachen für Trivialnamen
+CommonNameVocabularyPreferencePage_description=Wählen Sie die Vokabulare, für die Area-Auswahl bei Trivialnamen.
+CommonNameLanguagePreferencePage_description=Wählen Sie die für Trivialnamen verfügbaren Sprachen.
+
+EnumCombo_Placement_status=Platzierungsstatus
+OriginalSourceAdvancedSection_advanced=mehr
\ No newline at end of file
index b84c3bb33fdb331a040b60209691fb97e1d8e2ee..546a2ad34829d1e75bc0d0d99497d5816435a575 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.workbench;
 
 import org.eclipse.ui.plugin.AbstractUIPlugin;
@@ -13,27 +21,21 @@ public class Activator extends AbstractUIPlugin {
 
        // The shared instance
        private static Activator plugin;
-       
+
        /**
         * The constructor
         */
        public Activator() {
        }
 
-       /*
-        * (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-        */
-       public void start(BundleContext context) throws Exception {
+       @Override
+    public void start(BundleContext context) throws Exception {
                super.start(context);
                plugin = this;
        }
 
-       /*
-        * (non-Javadoc)
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-        */
-       public void stop(BundleContext context) throws Exception {
+       @Override
+    public void stop(BundleContext context) throws Exception {
                plugin = null;
                super.stop(context);
        }
@@ -46,5 +48,4 @@ public class Activator extends AbstractUIPlugin {
        public static Activator getDefault() {
                return plugin;
        }
-
-}
+}
\ No newline at end of file
index 8b0a47305883494cb1511278e28680334cfefdbe..213c2520a2595d80185056cdcf5ba4ecca924855 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
 package eu.etaxonomy.taxeditor.workbench;
 
 public class AppModelId {
index 6481a27da4f6bd42706fa7e0afb37ff042bac3c1..afbd98824f0c9167bb03cc6502ec76b96b26f3b5 100644 (file)
@@ -6,27 +6,25 @@
 * 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.workbench;
 
 import java.io.IOException;
 import java.net.URL;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.e4.core.di.annotations.Execute;
 
 /**
  * @author p.ciardelli
  * @created 04.09.2009
- * @version 1.0
  */
 public class OpenExternalAboutPlatformHandler {
-       private static final Logger logger = Logger.getLogger(OpenExternalAboutPlatformHandler.class);
-
+       private static final Logger logger = LogManager.getLogger();
 
        @Execute
        public Object execute() {
-               String url = "https://cybertaxonomy.eu/";
+               String url = "https://cybertaxonomy.org/";
 
                try {
             WorkbenchUtility.openWebpage(new URL(url));
@@ -37,4 +35,4 @@ public class OpenExternalAboutPlatformHandler {
 
                return null;
        }
-}
+}
\ No newline at end of file
index 63cccdbbe6255921b6dedeff245824ccc7adf81e..b44eeaecdc295edf62825c7d5a7dd10777f14d43 100644 (file)
@@ -6,13 +6,12 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-
 package eu.etaxonomy.taxeditor.workbench;
 
 import java.io.IOException;
 import java.net.URL;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
 import org.eclipse.e4.core.di.annotations.Execute;
 
 /**
@@ -20,10 +19,10 @@ import org.eclipse.e4.core.di.annotations.Execute;
  *
  * @author p.ciardelli
  * @created 04.09.2009
- * @version 1.0
  */
 public class OpenExternalParserHelpHandler {
-       private static final Logger logger = Logger.getLogger(OpenExternalParserHelpHandler.class);
+       
+       private static final Logger logger = LogManager.getLogger(OpenExternalParserHelpHandler.class);
 
        @Execute
        /** {@inheritDoc} */
@@ -39,4 +38,4 @@ public class OpenExternalParserHelpHandler {
 
                return null;
        }
-}
+}
\ No newline at end of file
index 8a04d3b21299bc491c5ddb21839d5ce4e9f05924..1d52b9b4d7592e6c0fb2632e76760951208ee576 100644 (file)
@@ -1,7 +1,9 @@
 
 package eu.etaxonomy.taxeditor.workbench;
 
+import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import org.eclipse.core.commands.ParameterizedCommand;
 import org.eclipse.e4.core.di.annotations.CanExecute;
@@ -25,14 +27,22 @@ public class OpenPartHandler {
         }
         Map parameterMap = commandParameters.getParameterMap();
         String partId = parameterMap.get(AppModelId.COMMANDPARAMETER_EU_ETAXONOMY_TAXEDITOR_WORKBENCH_COMMANDPARAMETER_PARTNAME).toString();
-        MPart part = partService.createPart(partId);
-        part = partService.showPart(part, PartState.ACTIVATE);
-        if(part.getObject() instanceof IEditorAreaPart){
+        List<MPart> alreadyOpenedEditors = partService.getParts().stream()
+                .filter(part->part.getElementId()!=null && part.getElementId().equals(partId))
+                .collect(Collectors.toList());
+        MPart partToOpen = partService.createPart(partId);
+
+        if (alreadyOpenedEditors.size() > 0){
+            partToOpen = alreadyOpenedEditors.iterator().next();
+        }
+        partToOpen = partService.showPart(partToOpen, PartState.ACTIVATE);
+
+        if(partToOpen.getObject() instanceof IEditorAreaPart){
             MPartStack editorAreaPartStack = WorkbenchUtility.getEditorAreaPartStack(application, modelService);
             if(editorAreaPartStack!=null){
-                editorAreaPartStack.getChildren().add(part);
+                editorAreaPartStack.getChildren().add(partToOpen);
             }
-            part = partService.showPart(part, PartState.VISIBLE);
+            partToOpen = partService.showPart(partToOpen, PartState.VISIBLE);
         }
     }
 
index c0dd7275f2fc84c662086e84303c70500bc205f9..56d6b34f76392e850b0afec89cd3776d23f36d34 100644 (file)
@@ -116,4 +116,8 @@ public class WorkbenchUtility {
     public static boolean openWebpage(URL url){
         return Program.launch(url.toString());
     }
+
+    public static boolean openWebpage(String urlString){
+        return Program.launch(urlString);
+    }
 }
diff --git a/eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/datasource/CdmEmbeddedServerException.java b/eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/datasource/CdmEmbeddedServerException.java
new file mode 100644 (file)
index 0000000..76d3b45
--- /dev/null
@@ -0,0 +1,30 @@
+/**
+* Copyright (C) 2014 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.workbench.datasource;
+
+/**
+ * @author cmathew
+ * @date 23 Sep 2014
+ */
+public class CdmEmbeddedServerException extends Exception implements ICdmEmbeddedServerException {
+
+    private static final long serialVersionUID = -4294945316612420704L;
+
+       public CdmEmbeddedServerException(String message) {
+        super(message);
+    }
+
+    public CdmEmbeddedServerException(Exception e) {
+        super(e);
+    }
+
+    public CdmEmbeddedServerException(String message,Exception e) {
+        super(message,e);
+    }
+}
\ No newline at end of file
diff --git a/eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/datasource/ICdmEmbeddedServerException.java b/eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/datasource/ICdmEmbeddedServerException.java
new file mode 100755 (executable)
index 0000000..0f90932
--- /dev/null
@@ -0,0 +1,17 @@
+/**
+* Copyright (C) 2020 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.workbench.datasource;
+
+/**
+ * @author k.luther
+ * @since Sep 17, 2020
+ */
+public interface ICdmEmbeddedServerException {
+
+}
@@ -6,13 +6,13 @@
 * 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.webapp;
+package eu.etaxonomy.taxeditor.workbench.datasource;
 
 /**
  * @author cmathew
  * @date 16 Nov 2015
  */
-public interface ICDMServerError {
+public interface ICdmServerError {
 
     public void handleError(Throwable t);
 
diff --git a/eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/datasource/IRemotingLoginDialog.java b/eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/datasource/IRemotingLoginDialog.java
new file mode 100755 (executable)
index 0000000..3a28d45
--- /dev/null
@@ -0,0 +1,59 @@
+/**
+* Copyright (C) 2020 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.workbench.datasource;
+
+import org.eclipse.swt.SWT;
+
+import eu.etaxonomy.taxeditor.l10n.Messages;
+
+/**
+ * @author k.luther
+ * @since Sep 18, 2020
+ */
+public interface IRemotingLoginDialog {
+    static final String DEFAULT_PASS = "00000"; //$NON-NLS-1$
+     static final String DEFAULT_USER = "admin"; //$NON-NLS-1$
+
+     final static String STATUS_AVAILABLE = Messages.RemotingLoginDialog_STATUS_AVAILABLE;
+     final static String STATUS_NOT_AVAILABLE = Messages.RemotingLoginDialog_STATUS_NOT_AVAILABLE;
+     final static String STATUS_STARTED = Messages.RemotingLoginDialog_STATUS_STARTED;
+     final static String STATUS_NOT_STARTED = Messages.RemotingLoginDialog_STATUS_NOT_STARTED;
+     final static String STATUS_RETRIEVING = Messages.RemotingLoginDialog_STATUS_RETRIEVING;
+     final static String STATUS_CHECKING_AVAILABILITY = Messages.RemotingLoginDialog_STATUS_CHECKING;
+     final static String STATUS_NO_INSTANCES = Messages.RemotingLoginDialog_STATUS_NO_INSTANCES_FOUND;
+     final static String STATUS_NOT_COMPATIBLE = Messages.RemotingLoginDialog_STATUS_NOT_COMPATIBLE;
+
+     final static String MESG_COMPATIBLE_EDITOR_OLD = Messages.RemotingLoginDialog_UPDATE_EDITOR;
+     final static String MESG_COMPATIBLE_SERVER_OLD = Messages.RemotingLoginDialog_CHOOSE_COMPATIBLE_CDM_SERVER;
+     final static String MESG_SCHEMA_MISSING = Messages.RemotingLoginDialog_SCHEMA_MISSING;
+     final static String MESG_NO_SCHEMA = Messages.RemotingLoginDialog_NO_SCHEMA;
+
+     final static String LABEL_CONNECT = Messages.RemotingLoginDialog_LABEL_CONNECT;
+     final static String LABEL_CREATE_SCHEMA = Messages.RemotingLoginDialog_LABEL_CREATE_SCHEMA;
+     final static String LABEL_UPDATE_SCHEMA_VERSION = Messages.RemotingLoginDialog_LABEL_UPDATE_SCHEMA_VERSION;
+     final static String MESG_UPDATE_SCHEMA_VERSION = Messages.RemotingLoginDialog_MSG_UPDATE_SCHEMA_VERSION;
+
+     static final int BTN_COLOR_ATTENTION = SWT.COLOR_RED;
+
+     final static String STORE_PREFERENCES_NODE = "eu.etaxonomy.taxeditor.store"; //$NON-NLS-1$
+
+     final static String LOGIN_NODE = "login"; //$NON-NLS-1$
+     final static String USERNAME_SUFFIX = "_username"; //$NON-NLS-1$
+     final static String PASSWORD_SUFFIX = "_password"; //$NON-NLS-1$
+
+     final static String LAST_SERVER_INSTANCE_NODE = "lastServerInstance"; //$NON-NLS-1$
+     final static String LAST_SERVER_KEY = "lastServerKey"; //$NON-NLS-1$
+     final static String LAST_INSTANCE_KEY = "lastInstanceKey"; //$NON-NLS-1$
+
+     public void setMessage(String message);
+     public void hide(boolean isHidden);
+     public void onComplete();
+     public String getUsername();
+     public String getPassword();
+}
index 158a47fed5e5f45ee618037b5d5bc13a327caf5b..167fa94c8c858ecfcc09184d73a48740828abad2 100644 (file)
@@ -19,7 +19,6 @@ import eu.etaxonomy.taxeditor.workbench.part.ICollapsableExpandable;
 /**
  * @author pplitzner
  * @since Oct 30, 2017
- *
  */
 public class CollapseHandler {
 
index 8227b3d23ef9c60e26a250b5e6053de6e875aa50..4701b7e9dabad6aa6abc4d907dcbcdafe5623042 100755 (executable)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2018 EDIT
 * European Distributed Institute of Taxonomy
@@ -8,6 +7,7 @@
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 package eu.etaxonomy.taxeditor.workbench.handler;
+
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -18,7 +18,8 @@ import java.util.Map;
 
 import javax.inject.Named;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtensionRegistry;
@@ -32,26 +33,26 @@ import org.eclipse.jface.preference.PreferenceManager;
 import org.eclipse.jface.preference.PreferenceNode;
 import org.eclipse.swt.widgets.Shell;
 
-
 /**
  * Scans all extension for extension point <code>eu.etaxonomy.taxeditor.store.preferencePage</code> and
  * creates the tree of preference nodes according to the <code>category</code> attribute of the
  * extension point.<br>
  * <b>Note:</b> If, for a given category, no parent node can be found then this page will not be
  * added to the preferences
+ *
  * @author pplitzner/k.luther
  * @date 14.03.2018
- *
  */
 public class OpenAdminPreferencesHandler {
 
+    private static final Logger logger = LogManager.getLogger();
+
     private static final String ATT_NAME = "name"; //$NON-NLS-1$
     private static final String ATT_ID = "id"; //$NON-NLS-1$
     private static final String ATT_CATEGORY = "category"; //$NON-NLS-1$
     private static final String ATT_CLASS = "class"; //$NON-NLS-1$
     private static final String EXTENSION_ELEMENT_PAGE = "page"; //$NON-NLS-1$
     private static final String EXTENSION_POINT_ID = "eu.etaxonomy.taxeditor.store.adminPreferencePage"; //$NON-NLS-1$
-    private Logger logger = Logger.getLogger(OpenAdminPreferencesHandler.class);
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
@@ -92,7 +93,7 @@ public class OpenAdminPreferencesHandler {
         }
 
         //sort root nodes
-        Collections.sort(rootPages, new PreferenceNodeComparator());
+       // Collections.sort(rootPages, new PreferenceNodeComparator());
         //add root nodes
         rootPages.forEach(pageWrapper->{
             PreferenceNode node = new PreferenceNode(pageWrapper.id, pageWrapper.page);
@@ -121,7 +122,7 @@ public class OpenAdminPreferencesHandler {
         }
         PreferenceDialog dialog = new PreferenceDialog(shell, manager);
         dialog.create();
-        dialog.getTreeViewer().expandAll();
+        dialog.getTreeViewer().expandToLevel(2);
         dialog.open();
     }
 
index 44cc881882e49dc05c8736c7f52312c92586eb56..9a06de9b9ff13723bf65ed452c64159ae56c936e 100644 (file)
@@ -19,7 +19,8 @@ import java.util.Map;
 
 import javax.inject.Named;
 
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtensionRegistry;
@@ -50,7 +51,7 @@ public class OpenPreferencesHandler {
     private static final String ATT_CLASS = "class"; //$NON-NLS-1$
     private static final String EXTENSION_ELEMENT_PAGE = "page"; //$NON-NLS-1$
     private static final String EXTENSION_POINT_ID = "eu.etaxonomy.taxeditor.store.preferencePage"; //$NON-NLS-1$
-    private Logger logger = Logger.getLogger(OpenPreferencesHandler.class);
+    private Logger logger = LogManager.getLogger(OpenPreferencesHandler.class);
 
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
@@ -91,7 +92,7 @@ public class OpenPreferencesHandler {
         }
 
         //sort root nodes
-        Collections.sort(rootPages, new PreferenceNodeComparator());
+        //Collections.sort(rootPages, new PreferenceNodeComparator());
         //add root nodes
         rootPages.forEach(pageWrapper->{
             PreferenceNode node = new PreferenceNode(pageWrapper.id, pageWrapper.page);
index 0b1fa5b54707a8326f672cb8d742a2ad5a0ca0c3..74583cf6f8224638e1b62626c1af777f8fb3f969 100755 (executable)
@@ -2,6 +2,9 @@
 
 # local testing
 #WORKSPACE="/Users/n.hoffmann/Documents/workspace/taxeditor/trunk"
+# NOTE by AM (2022-06-07): this is probably outdated and can be removed as
+# we build with maven/tycho/jenkins now. Before removing compare with current
+# configuration
 
 PRODUCT_DIR="$WORKSPACE/eu.etaxonomy.taxeditor/target/products"
 
index 73fbc8bb311fef3c788d5c72aacce02dbd782f16..5ca7deb0bbc45766e89a84e8ee5535a186762273 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.16.0">
+<?pde version="3.5"?><product application="eu.etaxonomy.taxeditor.application.application" autoIncludeRequirements="true" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" includeLaunchers="true" name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" useFeatures="true" version="5.42.0">
   <aboutInfo>
     <image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
     <text>
@@ -13,7 +13,7 @@
     <programArgsLin>--launcher.GTK_version
 2
       </programArgsLin>
-    <vmArgs>-Xmx512M -Dorg.eclipse.update.reconcile=false -Declipse.p2.unsignedPolicy=allow
+    <vmArgs>-Xmx512M -Dorg.eclipse.update.reconcile=false -Declipse.p2.unsignedPolicy=allow -Dremoting.httpinvoker.measureDuration=true
       </vmArgs>
     <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
       </vmArgsMac>
@@ -21,7 +21,6 @@
   <windowImages i16="/eu.etaxonomy.taxeditor.application/icons/256color_16x16.gif" i32="/eu.etaxonomy.taxeditor.application/icons/256color_32x32.gif" i48="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
   <splash location="eu.etaxonomy.taxeditor.application" startupForegroundColor="000000" startupMessageRect="7,432,360,20" startupProgressRect="5,447,366,15"/>
   <launcher name="TaxonomicEditor">
-    <solaris/>
     <win useIco="false">
       <bmp/>
     </win>
@@ -38,5 +37,6 @@
     <plugin autoStart="true" id="org.eclipse.equinox.ds" startLevel="2"/>
     <plugin autoStart="true" id="org.eclipse.equinox.p2.transport.ecf" startLevel="4"/>
     <plugin autoStart="true" id="org.eclipse.equinox.simpleconfigurator" startLevel="1"/>
+    <property name="osgi.nl" value="en"/>
   </configurations>
 </product>
index b41e5244bfaf612a1cfaaf4028386df149da8fce..9c82986c71ed2eeaa42bee136988f3f8e066485a 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.42.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>
@@ -63,6 +61,7 @@
       <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
       <plugin id="org.eclipse.equinox.p2.transport.ecf" autoStart="true" startLevel="4" />
       <plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
+      <property name="osgi.nl" value="en"/>
    </configurations>
 
 </product>
index 086437d5a71ae5d2bb3a29a0d3016ae2f000df63..9a6dd2ed9d2e284134ee64c4cb86b0c281ad52b1 100644 (file)
@@ -2,7 +2,7 @@
   <parent>
     <groupId>eu.etaxonomy</groupId>
     <artifactId>taxeditor-parent</artifactId>
-    <version>5.16.0</version>
+    <version>5.42.0</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
@@ -11,7 +11,7 @@
 
   <name>EDIT Taxonomic Editor Product</name>
   <description>The EDIT Taxonomic Desktop Editor</description>
-  <url>https://cybertaxonomy.eu/taxeditor</url>
+  <url>https://cybertaxonomy.org/taxeditor</url>
   <properties>
     <product.id>eu.etaxonomy.taxeditor.product</product.id>
   </properties>
           <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 66268b8536a4fbdebe49bb1883356e53c3f90c61..9ea268890f18b8b720dd6eb61d6526d7c0afb168 100644 (file)
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target includeMode="feature" name="Eclipse Neon Target" sequenceNumber="54">
-<locations>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.equinox.sdk.feature.group" version="3.12.0.v20170209-1843"/>
-<unit id="org.eclipse.equinox.p2.rcp.feature.feature.group" version="1.2.203.v20170131-1444"/>
-<unit id="org.eclipse.equinox.p2.extras.feature.feature.group" version="1.2.203.v20170131-1444"/>
-<unit id="org.eclipse.equinox.serverside.sdk.feature.group" version="3.12.3.v20170209-1843"/>
-<unit id="org.eclipse.equinox.compendium.sdk.feature.group" version="3.12.0.v20160815-1406"/>
-<unit id="org.eclipse.equinox.core.sdk.feature.group" version="3.12.3.v20170209-1843"/>
-<unit id="org.eclipse.equinox.core.feature.feature.group" version="1.3.3.v20170209-1843"/>
-<unit id="org.eclipse.equinox.p2.core.feature.feature.group" version="1.3.203.v20170131-1444"/>
-<unit id="org.eclipse.equinox.p2.rcp.feature.source.feature.group" version="1.2.203.v20170131-1444"/>
-<unit id="org.eclipse.equinox.p2.core.feature.source.feature.group" version="1.3.203.v20170131-1444"/>
-<unit id="org.eclipse.equinox.p2.sdk.feature.group" version="3.9.203.v20170131-1444"/>
-<unit id="org.eclipse.objectteams.otequinox.feature.group" version="2.5.2.201612071657"/>
-<unit id="org.eclipse.equinox.p2.extras.feature.source.feature.group" version="1.2.203.v20170131-1444"/>
-<repository location="http://download.eclipse.org/releases/neon"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.emf.ecore.xcore.sdk.feature.group" version="1.4.0.v20160526-0606"/>
-<unit id="org.eclipse.emf.ecore.feature.group" version="2.12.0.v20160420-0247"/>
-<unit id="org.eclipse.emf.ecore.xcore.lib.feature.group" version="1.2.100.v20160526-0606"/>
-<unit id="org.eclipse.emf.sdk.feature.group" version="2.12.0.v20160526-0356"/>
-<unit id="org.eclipse.emf.common.feature.group" version="2.12.0.v20160420-0247"/>
-<unit id="org.eclipse.emf.ecore.xcore.feature.group" version="1.4.0.v20160526-0606"/>
-<unit id="org.eclipse.emf.feature.group" version="2.12.0.v20160526-0356"/>
-<repository location="http://download.eclipse.org/releases/neon"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.zest.sdk.feature.group" version="1.7.0.201606061308"/>
-<repository location="http://download.eclipse.org/releases/neon"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.e4.core.tools.feature.source.feature.group" version="4.5.100.v20170131-1452"/>
-<unit id="org.eclipse.equinox.p2.user.ui.source.feature.group" version="2.2.203.v20170131-1444"/>
-<unit id="org.eclipse.e4.rcp.feature.group" version="1.5.3.v20170228-0512"/>
-<unit id="org.eclipse.equinox.executable.feature.group" version="3.6.300.v20161122-1740"/>
-<unit id="org.eclipse.swtbot.forms.feature.group" version="2.5.0.201609021837"/>
-<unit id="org.eclipse.help.feature.group" version="2.2.2.v20170301-0400"/>
-<unit id="org.eclipse.e4.core.tools.feature.feature.group" version="4.5.100.v20170131-1452"/>
-<unit id="org.eclipse.e4.rcp.source.feature.group" version="1.5.3.v20170228-0512"/>
-<unit id="org.eclipse.sdk.ide" version="4.6.3.M20170301-0400"/>
-<unit id="epp.package.modeling" version="4.6.3.20170314-1500"/>
-<unit id="org.eclipse.platform.sdk" version="4.6.3.M20170301-0400"/>
-<unit id="org.eclipse.jdt.feature.group" version="3.12.3.v20170301-0400"/>
-<unit id="org.eclipse.pde.source.feature.group" version="3.12.3.v20170301-0400"/>
-<unit id="org.eclipse.core.runtime.feature.feature.group" version="1.1.203.v20170209-1843"/>
-<unit id="org.eclipse.pde.feature.group" version="3.12.3.v20170301-0400"/>
-<unit id="org.eclipse.rcp.sdk.id" version="4.6.3.M20170301-0400"/>
-<unit id="org.eclipse.swtbot.eclipse.feature.group" version="2.5.0.201609021837"/>
-<unit id="org.eclipse.platform.feature.group" version="4.6.3.v20170301-0400"/>
-<repository location="http://download.eclipse.org/releases/neon"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.nebula.widgets.nattable.extension.glazedlists.feature.feature.group" version="1.5.0.201703192131"/>
-<unit id="org.eclipse.nebula.widgets.nattable.extension.nebula.source.feature.feature.group" version="1.1.0.201703192131"/>
-<unit id="org.eclipse.nebula.widgets.nattable.core.feature.feature.group" version="1.5.0.201703192131"/>
-<unit id="org.eclipse.nebula.widgets.nattable.core.source.feature.feature.group" version="1.5.0.201703192131"/>
-<unit id="org.eclipse.nebula.widgets.nattable.extension.poi.feature.feature.group" version="1.5.0.201703192131"/>
-<unit id="org.eclipse.nebula.widgets.nattable.extension.nebula.feature.feature.group" version="1.1.0.201703192131"/>
-<unit id="org.eclipse.nebula.widgets.nattable.extension.e4.source.feature.feature.group" version="1.1.0.201703192131"/>
-<unit id="org.eclipse.nebula.widgets.nattable.extension.e4.feature.feature.group" version="1.1.0.201703192131"/>
-<unit id="org.eclipse.nebula.widgets.nattable.extension.poi.source.feature.feature.group" version="1.5.0.201703192131"/>
-<unit id="org.eclipse.nebula.widgets.nattable.extension.glazedlists.source.feature.feature.group" version="1.5.0.201703192131"/>
-<repository location="http://download.eclipse.org/nattable/releases/1.5.0/repository/"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.oomph.setup.sdk.feature.group" version="1.7.0.v20170305-1123"/>
-<repository location="http://download.eclipse.org/releases/neon"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
-<unit id="org.eclipse.nebula.widgets.compositetable.feature.feature.group" version="1.0.0.201912241810"/>
-<repository location="http://download.eclipse.org/nebula/releases/latest/"/>
-</location>
-</locations>
-<includeBundles>
-<feature id="org.eclipse.core.runtime.feature"/>
-<feature id="org.eclipse.cvs"/>
-<feature id="org.eclipse.cvs.source"/>
-<feature id="org.eclipse.draw2d"/>
-<feature id="org.eclipse.draw2d.sdk"/>
-<feature id="org.eclipse.draw2d.source"/>
-<feature id="org.eclipse.e4.core.tools.feature"/>
-<feature id="org.eclipse.e4.core.tools.feature.source"/>
-<feature id="org.eclipse.e4.rcp"/>
-<feature id="org.eclipse.e4.rcp.source"/>
-<feature id="org.eclipse.ecf.core.feature"/>
-<feature id="org.eclipse.ecf.core.source.feature"/>
-<feature id="org.eclipse.ecf.core.ssl.feature"/>
-<feature id="org.eclipse.ecf.core.ssl.source.feature"/>
-<feature id="org.eclipse.ecf.filetransfer.feature"/>
-<feature id="org.eclipse.ecf.filetransfer.httpclient4.feature"/>
-<feature id="org.eclipse.ecf.filetransfer.httpclient4.source.feature"/>
-<feature id="org.eclipse.ecf.filetransfer.httpclient4.ssl.feature"/>
-<feature id="org.eclipse.ecf.filetransfer.httpclient4.ssl.source.feature"/>
-<feature id="org.eclipse.ecf.filetransfer.source.feature"/>
-<feature id="org.eclipse.ecf.filetransfer.ssl.feature"/>
-<feature id="org.eclipse.ecf.filetransfer.ssl.source.feature"/>
-<feature id="org.eclipse.emf"/>
-<feature id="org.eclipse.emf.codegen"/>
-<feature id="org.eclipse.emf.codegen.ecore"/>
-<feature id="org.eclipse.emf.codegen.ecore.source"/>
-<feature id="org.eclipse.emf.codegen.ecore.ui"/>
-<feature id="org.eclipse.emf.codegen.ecore.ui.source"/>
-<feature id="org.eclipse.emf.codegen.source"/>
-<feature id="org.eclipse.emf.codegen.ui"/>
-<feature id="org.eclipse.emf.codegen.ui.source"/>
-<feature id="org.eclipse.emf.common"/>
-<feature id="org.eclipse.emf.common.source"/>
-<feature id="org.eclipse.emf.common.ui"/>
-<feature id="org.eclipse.emf.common.ui.source"/>
-<feature id="org.eclipse.emf.converter"/>
-<feature id="org.eclipse.emf.converter.source"/>
-<feature id="org.eclipse.emf.databinding"/>
-<feature id="org.eclipse.emf.databinding.edit"/>
-<feature id="org.eclipse.emf.databinding.edit.source"/>
-<feature id="org.eclipse.emf.databinding.source"/>
-<feature id="org.eclipse.emf.doc"/>
-<feature id="org.eclipse.emf.doc.source"/>
-<feature id="org.eclipse.emf.ecore"/>
-<feature id="org.eclipse.emf.ecore.edit"/>
-<feature id="org.eclipse.emf.ecore.edit.source"/>
-<feature id="org.eclipse.emf.ecore.editor"/>
-<feature id="org.eclipse.emf.ecore.editor.source"/>
-<feature id="org.eclipse.emf.ecore.source"/>
-<feature id="org.eclipse.emf.ecore.xcore"/>
-<feature id="org.eclipse.emf.ecore.xcore.lib"/>
-<feature id="org.eclipse.emf.ecore.xcore.lib.source"/>
-<feature id="org.eclipse.emf.ecore.xcore.sdk"/>
-<feature id="org.eclipse.emf.ecore.xcore.source"/>
-<feature id="org.eclipse.emf.ecore.xcore.ui"/>
-<feature id="org.eclipse.emf.ecore.xcore.ui.source"/>
-<feature id="org.eclipse.emf.edit"/>
-<feature id="org.eclipse.emf.edit.source"/>
-<feature id="org.eclipse.emf.edit.ui"/>
-<feature id="org.eclipse.emf.edit.ui.source"/>
-<feature id="org.eclipse.emf.mapping"/>
-<feature id="org.eclipse.emf.mapping.ecore"/>
-<feature id="org.eclipse.emf.mapping.ecore.editor"/>
-<feature id="org.eclipse.emf.mapping.ecore.editor.source"/>
-<feature id="org.eclipse.emf.mapping.ecore.source"/>
-<feature id="org.eclipse.emf.mapping.source"/>
-<feature id="org.eclipse.emf.mapping.ui"/>
-<feature id="org.eclipse.emf.mapping.ui.source"/>
-<feature id="org.eclipse.emf.sdk"/>
-<feature id="org.eclipse.emf.source"/>
-<feature id="org.eclipse.epp.logging.aeri.feature"/>
-<feature id="org.eclipse.epp.mpc"/>
-<feature id="org.eclipse.epp.package.common.feature"/>
-<feature id="org.eclipse.epp.package.modeling.feature"/>
-<feature id="org.eclipse.equinox.compendium.sdk"/>
-<feature id="org.eclipse.equinox.core.feature"/>
-<feature id="org.eclipse.equinox.core.sdk"/>
-<feature id="org.eclipse.equinox.executable"/>
-<feature id="org.eclipse.equinox.p2.core.feature"/>
-<feature id="org.eclipse.equinox.p2.core.feature.source"/>
-<feature id="org.eclipse.equinox.p2.discovery.feature"/>
-<feature id="org.eclipse.equinox.p2.extras.feature"/>
-<feature id="org.eclipse.equinox.p2.extras.feature.source"/>
-<feature id="org.eclipse.equinox.p2.rcp.feature"/>
-<feature id="org.eclipse.equinox.p2.rcp.feature.source"/>
-<feature id="org.eclipse.equinox.p2.sdk"/>
-<feature id="org.eclipse.equinox.p2.user.ui"/>
-<feature id="org.eclipse.equinox.p2.user.ui.source"/>
-<feature id="org.eclipse.equinox.sdk"/>
-<feature id="org.eclipse.equinox.server.core"/>
-<feature id="org.eclipse.equinox.server.jetty"/>
-<feature id="org.eclipse.equinox.server.p2"/>
-<feature id="org.eclipse.equinox.serverside.sdk"/>
-<feature id="org.eclipse.help"/>
-<feature id="org.eclipse.help.source"/>
-<feature id="org.eclipse.jdt"/>
-<feature id="org.eclipse.jdt.source"/>
-<feature id="org.eclipse.nebula.widgets.compositetable.feature"/>
-<feature id="org.eclipse.nebula.widgets.nattable.core.feature"/>
-<feature id="org.eclipse.nebula.widgets.nattable.core.source.feature"/>
-<feature id="org.eclipse.nebula.widgets.nattable.extension.e4.feature"/>
-<feature id="org.eclipse.nebula.widgets.nattable.extension.e4.source.feature"/>
-<feature id="org.eclipse.nebula.widgets.nattable.extension.glazedlists.feature"/>
-<feature id="org.eclipse.nebula.widgets.nattable.extension.glazedlists.source.feature"/>
-<feature id="org.eclipse.nebula.widgets.nattable.extension.nebula.feature"/>
-<feature id="org.eclipse.nebula.widgets.nattable.extension.nebula.source.feature"/>
-<feature id="org.eclipse.nebula.widgets.nattable.extension.poi.feature"/>
-<feature id="org.eclipse.nebula.widgets.nattable.extension.poi.source.feature"/>
-<feature id="org.eclipse.objectteams.otequinox"/>
-<feature id="org.eclipse.oomph.p2"/>
-<feature id="org.eclipse.oomph.setup"/>
-<feature id="org.eclipse.oomph.setup.core"/>
-<feature id="org.eclipse.oomph.setup.git"/>
-<feature id="org.eclipse.oomph.setup.jdt"/>
-<feature id="org.eclipse.oomph.setup.launching"/>
-<feature id="org.eclipse.oomph.setup.maven"/>
-<feature id="org.eclipse.oomph.setup.mylyn"/>
-<feature id="org.eclipse.oomph.setup.pde"/>
-<feature id="org.eclipse.oomph.setup.projects"/>
-<feature id="org.eclipse.oomph.setup.projectset"/>
-<feature id="org.eclipse.oomph.setup.sdk"/>
-<feature id="org.eclipse.oomph.setup.targlets"/>
-<feature id="org.eclipse.oomph.setup.ui.ide"/>
-<feature id="org.eclipse.oomph.setup.workbench"/>
-<feature id="org.eclipse.oomph.setup.workingsets"/>
-<feature id="org.eclipse.pde"/>
-<feature id="org.eclipse.pde.source"/>
-<feature id="org.eclipse.platform"/>
-<feature id="org.eclipse.platform.source"/>
-<feature id="org.eclipse.rcp"/>
-<feature id="org.eclipse.rcp.source"/>
-<feature id="org.eclipse.sdk"/>
-<feature id="org.eclipse.swtbot"/>
-<feature id="org.eclipse.swtbot.eclipse"/>
-<feature id="org.eclipse.swtbot.forms"/>
-<feature id="org.eclipse.zest"/>
-<feature id="org.eclipse.zest.sdk"/>
-<feature id="org.eclipse.zest.source"/>
-<plugin id="com.google.gson"/>
-<plugin id="com.google.guava"/>
-<plugin id="com.google.guava.source"/>
-<plugin id="com.google.inject"/>
-<plugin id="com.google.inject.source"/>
-<plugin id="javaewah"/>
-<plugin id="org.antlr.runtime"/>
-<plugin id="org.antlr.runtime.source"/>
-<plugin id="org.apache.commons.cli"/>
-<plugin id="org.apache.commons.codec.source"/>
-<plugin id="org.apache.commons.httpclient"/>
-<plugin id="org.apache.commons.httpclient.source"/>
-<plugin id="org.apache.commons.io"/>
-<plugin id="org.apache.commons.lang"/>
-<plugin id="org.apache.commons.lang.source"/>
-<plugin id="org.apache.commons.lang3"/>
-<plugin id="org.apache.log4j"/>
-<plugin id="org.apache.log4j.source"/>
-<plugin id="org.apache.xerces"/>
-<plugin id="org.apache.xml.resolver"/>
-<plugin id="org.apache.xml.serializer"/>
-<plugin id="org.eclipse.egit.core"/>
-<plugin id="org.eclipse.egit.core.source"/>
-<plugin id="org.eclipse.emf.mwe.core"/>
-<plugin id="org.eclipse.emf.mwe.core.source"/>
-<plugin id="org.eclipse.emf.mwe.utils"/>
-<plugin id="org.eclipse.emf.mwe.utils.source"/>
-<plugin id="org.eclipse.emf.mwe2.lib"/>
-<plugin id="org.eclipse.emf.mwe2.lib.source"/>
-<plugin id="org.eclipse.emf.mwe2.runtime"/>
-<plugin id="org.eclipse.emf.mwe2.runtime.source"/>
-<plugin id="org.eclipse.epp.logging.aeri.core.source"/>
-<plugin id="org.eclipse.epp.logging.aeri.ide.source"/>
-<plugin id="org.eclipse.epp.mpc.core.source"/>
-<plugin id="org.eclipse.epp.mpc.ui.source"/>
-<plugin id="org.eclipse.jgit"/>
-<plugin id="org.eclipse.jgit.source"/>
-<plugin id="org.eclipse.m2e.archetype.common"/>
-<plugin id="org.eclipse.m2e.core"/>
-<plugin id="org.eclipse.m2e.core.source"/>
-<plugin id="org.eclipse.m2e.maven.indexer"/>
-<plugin id="org.eclipse.m2e.maven.runtime"/>
-<plugin id="org.eclipse.m2e.maven.runtime.slf4j.simple"/>
-<plugin id="org.eclipse.m2e.workspace.cli"/>
-<plugin id="org.eclipse.mylyn.builds.core"/>
-<plugin id="org.eclipse.mylyn.builds.core.source"/>
-<plugin id="org.eclipse.mylyn.builds.ui"/>
-<plugin id="org.eclipse.mylyn.builds.ui.source"/>
-<plugin id="org.eclipse.mylyn.commons.core"/>
-<plugin id="org.eclipse.mylyn.commons.core.source"/>
-<plugin id="org.eclipse.mylyn.commons.identity.core"/>
-<plugin id="org.eclipse.mylyn.commons.identity.core.source"/>
-<plugin id="org.eclipse.mylyn.commons.net"/>
-<plugin id="org.eclipse.mylyn.commons.net.source"/>
-<plugin id="org.eclipse.mylyn.commons.notifications.core"/>
-<plugin id="org.eclipse.mylyn.commons.notifications.core.source"/>
-<plugin id="org.eclipse.mylyn.commons.notifications.feed"/>
-<plugin id="org.eclipse.mylyn.commons.notifications.feed.source"/>
-<plugin id="org.eclipse.mylyn.commons.notifications.ui"/>
-<plugin id="org.eclipse.mylyn.commons.notifications.ui.source"/>
-<plugin id="org.eclipse.mylyn.commons.repositories.core"/>
-<plugin id="org.eclipse.mylyn.commons.repositories.core.source"/>
-<plugin id="org.eclipse.mylyn.commons.repositories.ui"/>
-<plugin id="org.eclipse.mylyn.commons.repositories.ui.source"/>
-<plugin id="org.eclipse.mylyn.commons.screenshots"/>
-<plugin id="org.eclipse.mylyn.commons.screenshots.source"/>
-<plugin id="org.eclipse.mylyn.commons.ui"/>
-<plugin id="org.eclipse.mylyn.commons.ui.source"/>
-<plugin id="org.eclipse.mylyn.commons.workbench"/>
-<plugin id="org.eclipse.mylyn.commons.workbench.source"/>
-<plugin id="org.eclipse.mylyn.context.core"/>
-<plugin id="org.eclipse.mylyn.context.core.source"/>
-<plugin id="org.eclipse.mylyn.context.ui"/>
-<plugin id="org.eclipse.mylyn.context.ui.source"/>
-<plugin id="org.eclipse.mylyn.discovery.core"/>
-<plugin id="org.eclipse.mylyn.discovery.core.source"/>
-<plugin id="org.eclipse.mylyn.discovery.ui"/>
-<plugin id="org.eclipse.mylyn.discovery.ui.source"/>
-<plugin id="org.eclipse.mylyn.monitor.core"/>
-<plugin id="org.eclipse.mylyn.monitor.core.source"/>
-<plugin id="org.eclipse.mylyn.monitor.ui"/>
-<plugin id="org.eclipse.mylyn.monitor.ui.source"/>
-<plugin id="org.eclipse.mylyn.resources.ui"/>
-<plugin id="org.eclipse.mylyn.resources.ui.source"/>
-<plugin id="org.eclipse.mylyn.tasks.core"/>
-<plugin id="org.eclipse.mylyn.tasks.core.source"/>
-<plugin id="org.eclipse.mylyn.tasks.ui"/>
-<plugin id="org.eclipse.mylyn.tasks.ui.source"/>
-<plugin id="org.eclipse.mylyn.team.ui"/>
-<plugin id="org.eclipse.mylyn.team.ui.source"/>
-<plugin id="org.eclipse.mylyn.versions.core"/>
-<plugin id="org.eclipse.mylyn.versions.core.source"/>
-<plugin id="org.eclipse.mylyn.versions.ui"/>
-<plugin id="org.eclipse.mylyn.versions.ui.source"/>
-<plugin id="org.eclipse.oomph.base"/>
-<plugin id="org.eclipse.oomph.base.edit"/>
-<plugin id="org.eclipse.oomph.predicates"/>
-<plugin id="org.eclipse.oomph.predicates.edit"/>
-<plugin id="org.eclipse.oomph.resources"/>
-<plugin id="org.eclipse.oomph.resources.edit"/>
-<plugin id="org.eclipse.oomph.targlets"/>
-<plugin id="org.eclipse.oomph.targlets.core"/>
-<plugin id="org.eclipse.oomph.targlets.edit"/>
-<plugin id="org.eclipse.oomph.ui"/>
-<plugin id="org.eclipse.oomph.util"/>
-<plugin id="org.eclipse.oomph.util.pde"/>
-<plugin id="org.eclipse.oomph.workingsets"/>
-<plugin id="org.eclipse.oomph.workingsets.edit"/>
-<plugin id="org.eclipse.oomph.workingsets.editor"/>
-<plugin id="org.eclipse.xpand"/>
-<plugin id="org.eclipse.xpand.source"/>
-<plugin id="org.eclipse.xtend"/>
-<plugin id="org.eclipse.xtend.lib"/>
-<plugin id="org.eclipse.xtend.lib.macro"/>
-<plugin id="org.eclipse.xtend.lib.macro.source"/>
-<plugin id="org.eclipse.xtend.lib.source"/>
-<plugin id="org.eclipse.xtend.source"/>
-<plugin id="org.eclipse.xtend.typesystem.emf"/>
-<plugin id="org.eclipse.xtend.typesystem.emf.source"/>
-<plugin id="org.eclipse.xtext"/>
-<plugin id="org.eclipse.xtext.builder"/>
-<plugin id="org.eclipse.xtext.builder.source"/>
-<plugin id="org.eclipse.xtext.common.types"/>
-<plugin id="org.eclipse.xtext.common.types.edit"/>
-<plugin id="org.eclipse.xtext.common.types.edit.source"/>
-<plugin id="org.eclipse.xtext.common.types.source"/>
-<plugin id="org.eclipse.xtext.common.types.ui"/>
-<plugin id="org.eclipse.xtext.common.types.ui.source"/>
-<plugin id="org.eclipse.xtext.ecore"/>
-<plugin id="org.eclipse.xtext.ecore.source"/>
-<plugin id="org.eclipse.xtext.generator"/>
-<plugin id="org.eclipse.xtext.generator.source"/>
-<plugin id="org.eclipse.xtext.ide"/>
-<plugin id="org.eclipse.xtext.smap"/>
-<plugin id="org.eclipse.xtext.smap.source"/>
-<plugin id="org.eclipse.xtext.source"/>
-<plugin id="org.eclipse.xtext.ui"/>
-<plugin id="org.eclipse.xtext.ui.codetemplates"/>
-<plugin id="org.eclipse.xtext.ui.codetemplates.source"/>
-<plugin id="org.eclipse.xtext.ui.codetemplates.ui"/>
-<plugin id="org.eclipse.xtext.ui.codetemplates.ui.source"/>
-<plugin id="org.eclipse.xtext.ui.shared"/>
-<plugin id="org.eclipse.xtext.ui.shared.source"/>
-<plugin id="org.eclipse.xtext.ui.source"/>
-<plugin id="org.eclipse.xtext.util"/>
-<plugin id="org.eclipse.xtext.util.source"/>
-<plugin id="org.eclipse.xtext.xbase"/>
-<plugin id="org.eclipse.xtext.xbase.ide"/>
-<plugin id="org.eclipse.xtext.xbase.ide.source"/>
-<plugin id="org.eclipse.xtext.xbase.lib"/>
-<plugin id="org.eclipse.xtext.xbase.lib.source"/>
-<plugin id="org.eclipse.xtext.xbase.source"/>
-<plugin id="org.eclipse.xtext.xbase.ui"/>
-<plugin id="org.eclipse.xtext.xbase.ui.source"/>
-<plugin id="org.eclipse.xtext.xtext.generator"/>
-<plugin id="org.eclipse.xtext.xtext.generator.source"/>
-<plugin id="org.hamcrest.library"/>
-</includeBundles>
-</target>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<?pde version="3.8"?>\r
+<target includeMode="feature" name="Eclipse Neon Target" sequenceNumber="54">\r
+<locations>\r
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">\r
+<unit id="org.eclipse.equinox.sdk.feature.group" version="3.12.0.v20170209-1843"/>\r
+<unit id="org.eclipse.equinox.p2.rcp.feature.feature.group" version="1.2.203.v20170131-1444"/>\r
+<unit id="org.eclipse.equinox.p2.extras.feature.feature.group" version="1.2.203.v20170131-1444"/>\r
+<unit id="org.eclipse.equinox.serverside.sdk.feature.group" version="3.12.3.v20170209-1843"/>\r
+<unit id="org.eclipse.equinox.compendium.sdk.feature.group" version="3.12.0.v20160815-1406"/>\r
+<unit id="org.eclipse.equinox.core.sdk.feature.group" version="3.12.3.v20170209-1843"/>\r
+<unit id="org.eclipse.equinox.core.feature.feature.group" version="1.3.3.v20170209-1843"/>\r
+<unit id="org.eclipse.equinox.p2.core.feature.feature.group" version="1.3.203.v20170131-1444"/>\r
+<unit id="org.eclipse.equinox.p2.rcp.feature.source.feature.group" version="1.2.203.v20170131-1444"/>\r
+<unit id="org.eclipse.equinox.p2.core.feature.source.feature.group" version="1.3.203.v20170131-1444"/>\r
+<unit id="org.eclipse.equinox.p2.sdk.feature.group" version="3.9.203.v20170131-1444"/>\r
+<unit id="org.eclipse.objectteams.otequinox.feature.group" version="2.5.2.201612071657"/>\r
+<unit id="org.eclipse.equinox.p2.extras.feature.source.feature.group" version="1.2.203.v20170131-1444"/>\r
+<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.emf.ecore.xcore.sdk.feature.group" version="1.4.0.v20160526-0606"/>\r
+<unit id="org.eclipse.emf.ecore.feature.group" version="2.12.0.v20160420-0247"/>\r
+<unit id="org.eclipse.emf.ecore.xcore.lib.feature.group" version="1.2.100.v20160526-0606"/>\r
+<unit id="org.eclipse.emf.sdk.feature.group" version="2.12.0.v20160526-0356"/>\r
+<unit id="org.eclipse.emf.common.feature.group" version="2.12.0.v20160420-0247"/>\r
+<unit id="org.eclipse.emf.ecore.xcore.feature.group" version="1.4.0.v20160526-0606"/>\r
+<unit id="org.eclipse.emf.feature.group" version="2.12.0.v20160526-0356"/>\r
+<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.zest.sdk.feature.group" version="1.7.0.201606061308"/>\r
+<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.e4.core.tools.feature.source.feature.group" version="4.5.100.v20170131-1452"/>\r
+<unit id="org.eclipse.equinox.p2.user.ui.source.feature.group" version="2.2.203.v20170131-1444"/>\r
+<unit id="org.eclipse.e4.rcp.feature.group" version="1.5.3.v20170228-0512"/>\r
+<unit id="org.eclipse.equinox.executable.feature.group" version="3.6.300.v20161122-1740"/>\r
+<unit id="org.eclipse.swtbot.forms.feature.group" version="2.5.0.201609021837"/>\r
+<unit id="org.eclipse.help.feature.group" version="2.2.2.v20170301-0400"/>\r
+<unit id="org.eclipse.e4.core.tools.feature.feature.group" version="4.5.100.v20170131-1452"/>\r
+<unit id="org.eclipse.e4.rcp.source.feature.group" version="1.5.3.v20170228-0512"/>\r
+<unit id="org.eclipse.sdk.ide" version="4.6.3.M20170301-0400"/>\r
+<unit id="epp.package.modeling" version="4.6.3.20170314-1500"/>\r
+<unit id="org.eclipse.platform.sdk" version="4.6.3.M20170301-0400"/>\r
+<unit id="org.eclipse.jdt.feature.group" version="3.12.3.v20170301-0400"/>\r
+<unit id="org.eclipse.pde.source.feature.group" version="3.12.3.v20170301-0400"/>\r
+<unit id="org.eclipse.core.runtime.feature.feature.group" version="1.1.203.v20170209-1843"/>\r
+<unit id="org.eclipse.pde.feature.group" version="3.12.3.v20170301-0400"/>\r
+<unit id="org.eclipse.rcp.sdk.id" version="4.6.3.M20170301-0400"/>\r
+<unit id="org.eclipse.swtbot.eclipse.feature.group" version="2.5.0.201609021837"/>\r
+<unit id="org.eclipse.platform.feature.group" version="4.6.3.v20170301-0400"/>\r
+<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.nattable.extension.glazedlists.feature.feature.group" version="1.5.0.201703192131"/>\r
+<unit id="org.eclipse.nebula.widgets.nattable.extension.nebula.source.feature.feature.group" version="1.1.0.201703192131"/>\r
+<unit id="org.eclipse.nebula.widgets.nattable.core.feature.feature.group" version="1.5.0.201703192131"/>\r
+<unit id="org.eclipse.nebula.widgets.nattable.core.source.feature.feature.group" version="1.5.0.201703192131"/>\r
+<unit id="org.eclipse.nebula.widgets.nattable.extension.poi.feature.feature.group" version="1.5.0.201703192131"/>\r
+<unit id="org.eclipse.nebula.widgets.nattable.extension.nebula.feature.feature.group" version="1.1.0.201703192131"/>\r
+<unit id="org.eclipse.nebula.widgets.nattable.extension.e4.source.feature.feature.group" version="1.1.0.201703192131"/>\r
+<unit id="org.eclipse.nebula.widgets.nattable.extension.e4.feature.feature.group" version="1.1.0.201703192131"/>\r
+<unit id="org.eclipse.nebula.widgets.nattable.extension.poi.source.feature.feature.group" version="1.5.0.201703192131"/>\r
+<unit id="org.eclipse.nebula.widgets.nattable.extension.glazedlists.source.feature.feature.group" version="1.5.0.201703192131"/>\r
+<repository location="http://download.eclipse.org/nattable/releases/1.5.0/repository/"/>\r
+</location>\r
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">\r
+<unit id="org.eclipse.oomph.setup.sdk.feature.group" version="1.7.0.v20170305-1123"/>\r
+<repository location="http://download.eclipse.org/releases/neon"/>\r
+</location>\r
+       <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">\r
+               <repository location="https://archive.eclipse.org/nebula/Q22016/release/"/>\r
+               <unit id="org.eclipse.nebula.widgets.compositetable.feature.feature.group" version="1.0.0.201605182147"/>\r
+       </location>\r
+</locations>\r
+<includeBundles>\r
+<feature id="org.eclipse.core.runtime.feature"/>\r
+<feature id="org.eclipse.cvs"/>\r
+<feature id="org.eclipse.cvs.source"/>\r
+<feature id="org.eclipse.draw2d"/>\r
+<feature id="org.eclipse.draw2d.sdk"/>\r
+<feature id="org.eclipse.draw2d.source"/>\r
+<feature id="org.eclipse.e4.core.tools.feature"/>\r
+<feature id="org.eclipse.e4.core.tools.feature.source"/>\r
+<feature id="org.eclipse.e4.rcp"/>\r
+<feature id="org.eclipse.e4.rcp.source"/>\r
+<feature id="org.eclipse.ecf.core.feature"/>\r
+<feature id="org.eclipse.ecf.core.source.feature"/>\r
+<feature id="org.eclipse.ecf.core.ssl.feature"/>\r
+<feature id="org.eclipse.ecf.core.ssl.source.feature"/>\r
+<feature id="org.eclipse.ecf.filetransfer.feature"/>\r
+<feature id="org.eclipse.ecf.filetransfer.httpclient4.feature"/>\r
+<feature id="org.eclipse.ecf.filetransfer.httpclient4.source.feature"/>\r
+<feature id="org.eclipse.ecf.filetransfer.httpclient4.ssl.feature"/>\r
+<feature id="org.eclipse.ecf.filetransfer.httpclient4.ssl.source.feature"/>\r
+<feature id="org.eclipse.ecf.filetransfer.source.feature"/>\r
+<feature id="org.eclipse.ecf.filetransfer.ssl.feature"/>\r
+<feature id="org.eclipse.ecf.filetransfer.ssl.source.feature"/>\r
+<feature id="org.eclipse.emf"/>\r
+<feature id="org.eclipse.emf.codegen"/>\r
+<feature id="org.eclipse.emf.codegen.ecore"/>\r
+<feature id="org.eclipse.emf.codegen.ecore.source"/>\r
+<feature id="org.eclipse.emf.codegen.ecore.ui"/>\r
+<feature id="org.eclipse.emf.codegen.ecore.ui.source"/>\r
+<feature id="org.eclipse.emf.codegen.source"/>\r
+<feature id="org.eclipse.emf.codegen.ui"/>\r
+<feature id="org.eclipse.emf.codegen.ui.source"/>\r
+<feature id="org.eclipse.emf.common"/>\r
+<feature id="org.eclipse.emf.common.source"/>\r
+<feature id="org.eclipse.emf.common.ui"/>\r
+<feature id="org.eclipse.emf.common.ui.source"/>\r
+<feature id="org.eclipse.emf.converter"/>\r
+<feature id="org.eclipse.emf.converter.source"/>\r
+<feature id="org.eclipse.emf.databinding"/>\r
+<feature id="org.eclipse.emf.databinding.edit"/>\r
+<feature id="org.eclipse.emf.databinding.edit.source"/>\r
+<feature id="org.eclipse.emf.databinding.source"/>\r
+<feature id="org.eclipse.emf.doc"/>\r
+<feature id="org.eclipse.emf.doc.source"/>\r
+<feature id="org.eclipse.emf.ecore"/>\r
+<feature id="org.eclipse.emf.ecore.edit"/>\r
+<feature id="org.eclipse.emf.ecore.edit.source"/>\r
+<feature id="org.eclipse.emf.ecore.editor"/>\r
+<feature id="org.eclipse.emf.ecore.editor.source"/>\r
+<feature id="org.eclipse.emf.ecore.source"/>\r
+<feature id="org.eclipse.emf.ecore.xcore"/>\r
+<feature id="org.eclipse.emf.ecore.xcore.lib"/>\r
+<feature id="org.eclipse.emf.ecore.xcore.lib.source"/>\r
+<feature id="org.eclipse.emf.ecore.xcore.sdk"/>\r
+<feature id="org.eclipse.emf.ecore.xcore.source"/>\r
+<feature id="org.eclipse.emf.ecore.xcore.ui"/>\r
+<feature id="org.eclipse.emf.ecore.xcore.ui.source"/>\r
+<feature id="org.eclipse.emf.edit"/>\r
+<feature id="org.eclipse.emf.edit.source"/>\r
+<feature id="org.eclipse.emf.edit.ui"/>\r
+<feature id="org.eclipse.emf.edit.ui.source"/>\r
+<feature id="org.eclipse.emf.mapping"/>\r
+<feature id="org.eclipse.emf.mapping.ecore"/>\r
+<feature id="org.eclipse.emf.mapping.ecore.editor"/>\r
+<feature id="org.eclipse.emf.mapping.ecore.editor.source"/>\r
+<feature id="org.eclipse.emf.mapping.ecore.source"/>\r
+<feature id="org.eclipse.emf.mapping.source"/>\r
+<feature id="org.eclipse.emf.mapping.ui"/>\r
+<feature id="org.eclipse.emf.mapping.ui.source"/>\r
+<feature id="org.eclipse.emf.sdk"/>\r
+<feature id="org.eclipse.emf.source"/>\r
+<feature id="org.eclipse.epp.logging.aeri.feature"/>\r
+<feature id="org.eclipse.epp.mpc"/>\r
+<feature id="org.eclipse.epp.package.common.feature"/>\r
+<feature id="org.eclipse.epp.package.modeling.feature"/>\r
+<feature id="org.eclipse.equinox.compendium.sdk"/>\r
+<feature id="org.eclipse.equinox.core.feature"/>\r
+<feature id="org.eclipse.equinox.core.sdk"/>\r
+<feature id="org.eclipse.equinox.executable"/>\r
+<feature id="org.eclipse.equinox.p2.core.feature"/>\r
+<feature id="org.eclipse.equinox.p2.core.feature.source"/>\r
+<feature id="org.eclipse.equinox.p2.discovery.feature"/>\r
+<feature id="org.eclipse.equinox.p2.extras.feature"/>\r
+<feature id="org.eclipse.equinox.p2.extras.feature.source"/>\r
+<feature id="org.eclipse.equinox.p2.rcp.feature"/>\r
+<feature id="org.eclipse.equinox.p2.rcp.feature.source"/>\r
+<feature id="org.eclipse.equinox.p2.sdk"/>\r
+<feature id="org.eclipse.equinox.p2.user.ui"/>\r
+<feature id="org.eclipse.equinox.p2.user.ui.source"/>\r
+<feature id="org.eclipse.equinox.sdk"/>\r
+<feature id="org.eclipse.equinox.server.core"/>\r
+<feature id="org.eclipse.equinox.server.jetty"/>\r
+<feature id="org.eclipse.equinox.server.p2"/>\r
+<feature id="org.eclipse.equinox.serverside.sdk"/>\r
+<feature id="org.eclipse.help"/>\r
+<feature id="org.eclipse.help.source"/>\r
+<feature id="org.eclipse.jdt"/>\r
+<feature id="org.eclipse.jdt.source"/>\r
+<feature id="org.eclipse.nebula.widgets.compositetable.feature"/>\r
+<feature id="org.eclipse.nebula.widgets.nattable.core.feature"/>\r
+<feature id="org.eclipse.nebula.widgets.nattable.core.source.feature"/>\r
+<feature id="org.eclipse.nebula.widgets.nattable.extension.e4.feature"/>\r
+<feature id="org.eclipse.nebula.widgets.nattable.extension.e4.source.feature"/>\r
+<feature id="org.eclipse.nebula.widgets.nattable.extension.glazedlists.feature"/>\r
+<feature id="org.eclipse.nebula.widgets.nattable.extension.glazedlists.source.feature"/>\r
+<feature id="org.eclipse.nebula.widgets.nattable.extension.nebula.feature"/>\r
+<feature id="org.eclipse.nebula.widgets.nattable.extension.nebula.source.feature"/>\r
+<feature id="org.eclipse.nebula.widgets.nattable.extension.poi.feature"/>\r
+<feature id="org.eclipse.nebula.widgets.nattable.extension.poi.source.feature"/>\r
+<feature id="org.eclipse.objectteams.otequinox"/>\r
+<feature id="org.eclipse.oomph.p2"/>\r
+<feature id="org.eclipse.oomph.setup"/>\r
+<feature id="org.eclipse.oomph.setup.core"/>\r
+<feature id="org.eclipse.oomph.setup.git"/>\r
+<feature id="org.eclipse.oomph.setup.jdt"/>\r
+<feature id="org.eclipse.oomph.setup.launching"/>\r
+<feature id="org.eclipse.oomph.setup.maven"/>\r
+<feature id="org.eclipse.oomph.setup.mylyn"/>\r
+<feature id="org.eclipse.oomph.setup.pde"/>\r
+<feature id="org.eclipse.oomph.setup.projects"/>\r
+<feature id="org.eclipse.oomph.setup.projectset"/>\r
+<feature id="org.eclipse.oomph.setup.sdk"/>\r
+<feature id="org.eclipse.oomph.setup.targlets"/>\r
+<feature id="org.eclipse.oomph.setup.ui.ide"/>\r
+<feature id="org.eclipse.oomph.setup.workbench"/>\r
+<feature id="org.eclipse.oomph.setup.workingsets"/>\r
+<feature id="org.eclipse.pde"/>\r
+<feature id="org.eclipse.pde.source"/>\r
+<feature id="org.eclipse.platform"/>\r
+<feature id="org.eclipse.platform.source"/>\r
+<feature id="org.eclipse.rcp"/>\r
+<feature id="org.eclipse.rcp.source"/>\r
+<feature id="org.eclipse.sdk"/>\r
+<feature id="org.eclipse.swtbot"/>\r
+<feature id="org.eclipse.swtbot.eclipse"/>\r
+<feature id="org.eclipse.swtbot.forms"/>\r
+<feature id="org.eclipse.zest"/>\r
+<feature id="org.eclipse.zest.sdk"/>\r
+<feature id="org.eclipse.zest.source"/>\r
+<plugin id="com.google.gson"/>\r
+<plugin id="com.google.guava"/>\r
+<plugin id="com.google.guava.source"/>\r
+<plugin id="com.google.inject"/>\r
+<plugin id="com.google.inject.source"/>\r
+<plugin id="javaewah"/>\r
+<plugin id="org.antlr.runtime"/>\r
+<plugin id="org.antlr.runtime.source"/>\r
+<plugin id="org.apache.commons.cli"/>\r
+<plugin id="org.apache.commons.codec.source"/>\r
+<plugin id="org.apache.commons.httpclient"/>\r
+<plugin id="org.apache.commons.httpclient.source"/>\r
+<plugin id="org.apache.commons.io"/>\r
+<plugin id="org.apache.commons.lang"/>\r
+<plugin id="org.apache.commons.lang.source"/>\r
+<plugin id="org.apache.commons.lang3"/>\r
+<plugin id="org.apache.log4j"/>\r
+<plugin id="org.apache.log4j.source"/>\r
+<plugin id="org.apache.xerces"/>\r
+<plugin id="org.apache.xml.resolver"/>\r
+<plugin id="org.apache.xml.serializer"/>\r
+<plugin id="org.eclipse.egit.core"/>\r
+<plugin id="org.eclipse.egit.core.source"/>\r
+<plugin id="org.eclipse.emf.mwe.core"/>\r
+<plugin id="org.eclipse.emf.mwe.core.source"/>\r
+<plugin id="org.eclipse.emf.mwe.utils"/>\r
+<plugin id="org.eclipse.emf.mwe.utils.source"/>\r
+<plugin id="org.eclipse.emf.mwe2.lib"/>\r
+<plugin id="org.eclipse.emf.mwe2.lib.source"/>\r
+<plugin id="org.eclipse.emf.mwe2.runtime"/>\r
+<plugin id="org.eclipse.emf.mwe2.runtime.source"/>\r
+<plugin id="org.eclipse.epp.logging.aeri.core.source"/>\r
+<plugin id="org.eclipse.epp.logging.aeri.ide.source"/>\r
+<plugin id="org.eclipse.epp.mpc.core.source"/>\r
+<plugin id="org.eclipse.epp.mpc.ui.source"/>\r
+<plugin id="org.eclipse.jgit"/>\r
+<plugin id="org.eclipse.jgit.source"/>\r
+<plugin id="org.eclipse.m2e.archetype.common"/>\r
+<plugin id="org.eclipse.m2e.core"/>\r
+<plugin id="org.eclipse.m2e.core.source"/>\r
+<plugin id="org.eclipse.m2e.maven.indexer"/>\r
+<plugin id="org.eclipse.m2e.maven.runtime"/>\r
+<plugin id="org.eclipse.m2e.maven.runtime.slf4j.simple"/>\r
+<plugin id="org.eclipse.m2e.workspace.cli"/>\r
+<plugin id="org.eclipse.mylyn.builds.core"/>\r
+<plugin id="org.eclipse.mylyn.builds.core.source"/>\r
+<plugin id="org.eclipse.mylyn.builds.ui"/>\r
+<plugin id="org.eclipse.mylyn.builds.ui.source"/>\r
+<plugin id="org.eclipse.mylyn.commons.core"/>\r
+<plugin id="org.eclipse.mylyn.commons.core.source"/>\r
+<plugin id="org.eclipse.mylyn.commons.identity.core"/>\r
+<plugin id="org.eclipse.mylyn.commons.identity.core.source"/>\r
+<plugin id="org.eclipse.mylyn.commons.net"/>\r
+<plugin id="org.eclipse.mylyn.commons.net.source"/>\r
+<plugin id="org.eclipse.mylyn.commons.notifications.core"/>\r
+<plugin id="org.eclipse.mylyn.commons.notifications.core.source"/>\r
+<plugin id="org.eclipse.mylyn.commons.notifications.feed"/>\r
+<plugin id="org.eclipse.mylyn.commons.notifications.feed.source"/>\r
+<plugin id="org.eclipse.mylyn.commons.notifications.ui"/>\r
+<plugin id="org.eclipse.mylyn.commons.notifications.ui.source"/>\r
+<plugin id="org.eclipse.mylyn.commons.repositories.core"/>\r
+<plugin id="org.eclipse.mylyn.commons.repositories.core.source"/>\r
+<plugin id="org.eclipse.mylyn.commons.repositories.ui"/>\r
+<plugin id="org.eclipse.mylyn.commons.repositories.ui.source"/>\r
+<plugin id="org.eclipse.mylyn.commons.screenshots"/>\r
+<plugin id="org.eclipse.mylyn.commons.screenshots.source"/>\r
+<plugin id="org.eclipse.mylyn.commons.ui"/>\r
+<plugin id="org.eclipse.mylyn.commons.ui.source"/>\r
+<plugin id="org.eclipse.mylyn.commons.workbench"/>\r
+<plugin id="org.eclipse.mylyn.commons.workbench.source"/>\r
+<plugin id="org.eclipse.mylyn.context.core"/>\r
+<plugin id="org.eclipse.mylyn.context.core.source"/>\r
+<plugin id="org.eclipse.mylyn.context.ui"/>\r
+<plugin id="org.eclipse.mylyn.context.ui.source"/>\r
+<plugin id="org.eclipse.mylyn.discovery.core"/>\r
+<plugin id="org.eclipse.mylyn.discovery.core.source"/>\r
+<plugin id="org.eclipse.mylyn.discovery.ui"/>\r
+<plugin id="org.eclipse.mylyn.discovery.ui.source"/>\r
+<plugin id="org.eclipse.mylyn.monitor.core"/>\r
+<plugin id="org.eclipse.mylyn.monitor.core.source"/>\r
+<plugin id="org.eclipse.mylyn.monitor.ui"/>\r
+<plugin id="org.eclipse.mylyn.monitor.ui.source"/>\r
+<plugin id="org.eclipse.mylyn.resources.ui"/>\r
+<plugin id="org.eclipse.mylyn.resources.ui.source"/>\r
+<plugin id="org.eclipse.mylyn.tasks.core"/>\r
+<plugin id="org.eclipse.mylyn.tasks.core.source"/>\r
+<plugin id="org.eclipse.mylyn.tasks.ui"/>\r
+<plugin id="org.eclipse.mylyn.tasks.ui.source"/>\r
+<plugin id="org.eclipse.mylyn.team.ui"/>\r
+<plugin id="org.eclipse.mylyn.team.ui.source"/>\r
+<plugin id="org.eclipse.mylyn.versions.core"/>\r
+<plugin id="org.eclipse.mylyn.versions.core.source"/>\r
+<plugin id="org.eclipse.mylyn.versions.ui"/>\r
+<plugin id="org.eclipse.mylyn.versions.ui.source"/>\r
+<plugin id="org.eclipse.oomph.base"/>\r
+<plugin id="org.eclipse.oomph.base.edit"/>\r
+<plugin id="org.eclipse.oomph.predicates"/>\r
+<plugin id="org.eclipse.oomph.predicates.edit"/>\r
+<plugin id="org.eclipse.oomph.resources"/>\r
+<plugin id="org.eclipse.oomph.resources.edit"/>\r
+<plugin id="org.eclipse.oomph.targlets"/>\r
+<plugin id="org.eclipse.oomph.targlets.core"/>\r
+<plugin id="org.eclipse.oomph.targlets.edit"/>\r
+<plugin id="org.eclipse.oomph.ui"/>\r
+<plugin id="org.eclipse.oomph.util"/>\r
+<plugin id="org.eclipse.oomph.util.pde"/>\r
+<plugin id="org.eclipse.oomph.workingsets"/>\r
+<plugin id="org.eclipse.oomph.workingsets.edit"/>\r
+<plugin id="org.eclipse.oomph.workingsets.editor"/>\r
+<plugin id="org.eclipse.xpand"/>\r
+<plugin id="org.eclipse.xpand.source"/>\r
+<plugin id="org.eclipse.xtend"/>\r
+<plugin id="org.eclipse.xtend.lib"/>\r
+<plugin id="org.eclipse.xtend.lib.macro"/>\r
+<plugin id="org.eclipse.xtend.lib.macro.source"/>\r
+<plugin id="org.eclipse.xtend.lib.source"/>\r
+<plugin id="org.eclipse.xtend.source"/>\r
+<plugin id="org.eclipse.xtend.typesystem.emf"/>\r
+<plugin id="org.eclipse.xtend.typesystem.emf.source"/>\r
+<plugin id="org.eclipse.xtext"/>\r
+<plugin id="org.eclipse.xtext.builder"/>\r
+<plugin id="org.eclipse.xtext.builder.source"/>\r
+<plugin id="org.eclipse.xtext.common.types"/>\r
+<plugin id="org.eclipse.xtext.common.types.edit"/>\r
+<plugin id="org.eclipse.xtext.common.types.edit.source"/>\r
+<plugin id="org.eclipse.xtext.common.types.source"/>\r
+<plugin id="org.eclipse.xtext.common.types.ui"/>\r
+<plugin id="org.eclipse.xtext.common.types.ui.source"/>\r
+<plugin id="org.eclipse.xtext.ecore"/>\r
+<plugin id="org.eclipse.xtext.ecore.source"/>\r
+<plugin id="org.eclipse.xtext.generator"/>\r
+<plugin id="org.eclipse.xtext.generator.source"/>\r
+<plugin id="org.eclipse.xtext.ide"/>\r
+<plugin id="org.eclipse.xtext.smap"/>\r
+<plugin id="org.eclipse.xtext.smap.source"/>\r
+<plugin id="org.eclipse.xtext.source"/>\r
+<plugin id="org.eclipse.xtext.ui"/>\r
+<plugin id="org.eclipse.xtext.ui.codetemplates"/>\r
+<plugin id="org.eclipse.xtext.ui.codetemplates.source"/>\r
+<plugin id="org.eclipse.xtext.ui.codetemplates.ui"/>\r
+<plugin id="org.eclipse.xtext.ui.codetemplates.ui.source"/>\r
+<plugin id="org.eclipse.xtext.ui.shared"/>\r
+<plugin id="org.eclipse.xtext.ui.shared.source"/>\r
+<plugin id="org.eclipse.xtext.ui.source"/>\r
+<plugin id="org.eclipse.xtext.util"/>\r
+<plugin id="org.eclipse.xtext.util.source"/>\r
+<plugin id="org.eclipse.xtext.xbase"/>\r
+<plugin id="org.eclipse.xtext.xbase.ide"/>\r
+<plugin id="org.eclipse.xtext.xbase.ide.source"/>\r
+<plugin id="org.eclipse.xtext.xbase.lib"/>\r
+<plugin id="org.eclipse.xtext.xbase.lib.source"/>\r
+<plugin id="org.eclipse.xtext.xbase.source"/>\r
+<plugin id="org.eclipse.xtext.xbase.ui"/>\r
+<plugin id="org.eclipse.xtext.xbase.ui.source"/>\r
+<plugin id="org.eclipse.xtext.xtext.generator"/>\r
+<plugin id="org.eclipse.xtext.xtext.generator.source"/>\r
+<plugin id="org.hamcrest.library"/>\r
+</includeBundles>\r
+</target>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 6f620323785cf58a453190f283458fea94002cf8..01579f30a7085a0f6d7b8150770c271a2c9a4350 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.16.0</version>
+  <version>5.42.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.16.0</cdmlib.version>
+    <cdmlib.version>5.42.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.16.0</taxeditor.version>
+    <tycho.version>1.7.0</tycho.version>
+    <taxeditor.version>5.42.0</taxeditor.version>
     <update.dir>snapshot</update.dir>
-    <unitils.version>3.4.2</unitils.version>
-    <log4j.version>1.2.17</log4j.version>
-    <javadoc.opts>-Xdoclint:none</javadoc.opts>
-    <httpcomponents.version>4.5.11</httpcomponents.version>
+    <log4j.version>2.19.0</log4j.version>
+    <httpcomponents.version>4.5.13</httpcomponents.version>
     <jetty-version>9.4.26.v20200117</jetty-version>
+    <doclint>none</doclint>
+  
+  
+  
+  
+  
+  
+  
+  
+  
+  
+    <!-- see according comment in cdmlib for possible finetuning -->
   </properties>
   <modules>
     <module>eu.etaxonomy.taxeditor.cdmlib</module>
@@ -43,7 +53,7 @@
     <module>eu.etaxonomy.taxeditor.help</module>
     <module>eu.etaxonomy.taxeditor.molecular</module>
     <module>eu.etaxonomy.taxeditor.molecular.lib</module>
-    <module>eu.etaxonomy.taxeditor.webapp</module>
+    <module>eu.etaxonomy.taxeditor.local</module>
     <module>eu.etaxonomy.taxeditor.application</module>
     <module>eu.etaxonomy.taxeditor.feature.platform</module>
     <module>eu.etaxonomy.taxeditor.feature</module>
     </license>
   </licenses>
   <developers>
-    <developer>
-      <!-- your SVN account id please! -->
-      <id>a.kohlbecker</id>
-      <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>
-      <timezone>+1</timezone>
-      <roles>
-        <role>Architect</role>
-        <role>Java Developer</role>
-        <role>Release Manager</role>
-      </roles>
-      <url/>
-    </developer>
     <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>
       <layout>p2</layout>
-      <url>http://download.eclipse.org/technology/swtbot/snapshots/</url>
+      <!--<url>http://download.eclipse.org/technology/swtbot/snapshots</url>-->
+      <url>http://download.eclipse.org/technology/swtbot/releases/latest</url>
     </repository>
     <repository>
       <id>eclipse-nebula</id>
       <layout>p2</layout>
-      <url>http://download.eclipse.org/nebula/releases/latest</url>
+      <url> https://archive.eclipse.org/nebula/Q22016/release/</url>
+    
+    
+    
+    
+    
+    
+    
+      <!--<url>http://download.eclipse.org/nebula/releases/latest</url>-->
     </repository>
     <repository>
       <id>nattable</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 -->
   <build>
     <plugins>
       <plugin>
       <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-M7</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.1.0</version>
         </plugin>
       </plugins>
     </pluginManagement>
   </build>
+  <!-- ******* REPORTING ***** -->
   <reporting>
     <plugins>
       <plugin>
         <!-- 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>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-changes-plugin</artifactId>
-        <version>2.3</version>
-        <configuration>
-          <issueLinkTemplatePerSystem>
-            <default>%URL%/ticket/%ISSUE%</default>
-          </issueLinkTemplatePerSystem>
-        </configuration>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>changes-report</report>
-            </reports>
-          </reportSet>
-        </reportSets>
+        <version>3.1.1</version>
       </plugin>
     </plugins>
   </reporting>
       </url>
     </repository>
   </distributionManagement>
+  <!-- DEPENDENCY MANAGEMENT -->
   <dependencyManagement>
     <dependencies>
       <dependency>
         <groupId>com.itextpdf</groupId>
         <artifactId>itextpdf</artifactId>
-        <version>5.5.8</version>
+        <version>5.5.13.3</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>
diff --git a/project-setup-wire-locally.sh b/project-setup-wire-locally.sh
new file mode 100755 (executable)
index 0000000..e6c6571
--- /dev/null
@@ -0,0 +1,16 @@
+#!/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")
+
+rm -fr eu.etaxonomy.taxeditor.cdmlib/dev-linked-projects/*
+for prj in "${CDM_PROJETCS[@]}"; do
+       ln -sf $CDMLIB_ROOT/$prj/target/classes eu.etaxonomy.taxeditor.cdmlib/dev-linked-projects/$prj-classes
+done
index 8a319709b1945ef26e9d9dbb5d78edf8fee28b82..8aa20be9ccd5602b42628b5e4fdac4232452af23 100755 (executable)
@@ -4,6 +4,7 @@ echo -n "Clear eclipse project? [y,N]"
 read choice
 
 if [ "$choice" == "y" ]; then
+    #remove all ".classpath" and ".project" files and ".settings" folders
        find . -type f \( -name ".classpath" -o -name "*.project" \) -prune -exec rm -f {} \;
        find . -type d -name ".settings" -prune -exec rm -rf {} \;
 fi
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
deleted file mode 100644 (file)
index 9cb00f4..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<document xmlns="http://maven.apache.org/changes/1.0.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/xsd/changes-1.0.0.xsd">
-  <properties>
-    <title>Taxonomic Editor Releases</title>
-    <author email="n.hoffmann@bgbm.org">Niels Hoffmann</author>
-  </properties>
-  <body>
-       
-       <release version="3.0.0.beta" date="2010-09-07" description="Version 3.0 pre-release">
-      <action dev="n.hoffmann" type="fix">
-        Test
-      </action>
-    </release>
-  </body>
-</document>
\ No newline at end of file
index 67e374d800d6dd711b395d5eb97d8d7090fb6a1f..2330106b955200a6cb04f32bd838e71c6e60aba0 100644 (file)
@@ -120,7 +120,7 @@ $ mvn validate
 
 ** <eu.etaxonomy.taxeditor.printpublisher>
 
-    This plugin is a frontend and GUI for the <cdmlib-print> module. Please see the {{{http://cybertaxonomy.eu/printpublisher/}according documentation}} for further information.
+    This plugin is a frontend and GUI for the <cdmlib-print> module. Please see the {{{http://cybertaxonomy.org/printpublisher/}according documentation}} for further information.
 
 ** <eu.etaxonomy.taxeditor.application>
 
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>
index 1c45234b2278d982ad391ac374680f9535c4f25b..8847d18df38327355171b391b3084ae4676c1ed9 100644 (file)
@@ -11,8 +11,8 @@
                        <item name="Screenshots" href="screenshots.html"/>
                        <item name="Manual" href="manual.html"/>
                        <!--item name="FAQ" href="faq.html"/-->
-                       <item name="Releases" href="https://dev.e-taxonomy.eu/redmine/projects/edit/wiki/CdmPlatformRoadmap"/>
-                       <item name="Download" href="https://cybertaxonomy.eu/download/taxeditor/stable"/>
+                       <item name="Releases" href="https://dev.e-taxonomy.eu/redmine/projects/edit/wiki/Release_Notes"/>
+                       <item name="Download" href="https://cybertaxonomy.org/download/taxeditor/stable"/>
                </menu>
                <menu name="Developer">
                        <item name="Getting started" href="getting-started.html"/>